diff --git a/.fern/metadata.json b/.fern/metadata.json new file mode 100644 index 0000000000..4c1fb8cfca --- /dev/null +++ b/.fern/metadata.json @@ -0,0 +1,72 @@ +{ + "cliVersion": "2.8.1", + "generatorName": "fernapi/fern-typescript-sdk", + "generatorVersion": "3.35.8", + "generatorConfig": { + "packagePath": "src/management", + "namespaceExport": "Management", + "allowCustomFetcher": true, + "omitFernHeaders": true, + "useDefaultRequestParameterValues": true, + "exportAllRequestsAtRoot": true, + "consolidateTypeFiles": true, + "generateEndpointMetadata": true, + "testFramework": "jest", + "packageJson": { + "engines": { + "node": "^20.19.0 || ^22.12.0 || ^24.0.0" + }, + "lint-staged": { + "*.{js,ts,tsx}": ["eslint --fix", "prettier --write"], + "*.{json,md,yml,yaml}": ["prettier --write"] + }, + "scripts": { + "prepare": "husky", + "lint": "eslint . --ext .js,.ts,.tsx", + "lint:fix": "eslint . --ext .js,.ts,.tsx --fix", + "lint:check": "eslint . --ext .js,.ts,.tsx", + "test:coverage": "jest --config jest.config.mjs --coverage", + "test:coverage:unit": "jest --selectProjects unit --coverage", + "test:coverage:browser": "jest --selectProjects browser --coverage", + "test:coverage:wire": "jest --selectProjects wire --coverage", + "docs": "typedoc", + "docs:clean": "rm -rf docs", + "docs:build": "npm run docs:clean && npm run docs", + "precommit": "lint-staged", + "validate": "yarn lint:check && yarn format --check && yarn test" + }, + "dependencies": { + "uuid": "^11.1.0", + "jose": "^4.13.2", + "auth0-legacy": "npm:auth0@^4.27.0" + }, + "devDependencies": { + "typedoc": "^0.28.7", + "typedoc-plugin-missing-exports": "^4.0.0", + "nock": "^14.0.6", + "undici": "^7.12.0", + "@eslint/js": "^9.32.0", + "@typescript-eslint/eslint-plugin": "^8.38.0", + "@typescript-eslint/parser": "^8.38.0", + "eslint": "^9.32.0", + "eslint-config-prettier": "^10.1.8", + "eslint-plugin-prettier": "^5.5.3", + "husky": "^9.1.7", + "lint-staged": "^16.1.4" + }, + "exports": { + "./legacy": { + "types": "./legacy/exports/index.d.ts", + "import": { + "types": "./legacy/exports/index.d.mts", + "default": "./legacy/exports/index.mjs" + }, + "require": { + "types": "./legacy/exports/index.d.ts", + "default": "./legacy/exports/index.js" + } + } + } + } + } +} diff --git a/.npmignore b/.npmignore deleted file mode 100644 index 30a92cfa32..0000000000 --- a/.npmignore +++ /dev/null @@ -1,11 +0,0 @@ -node_modules -src/management -tests -.gitignore -.github -.fernignore -.prettierrc.yml -biome.json -tsconfig.json -yarn.lock -pnpm-lock.yaml \ No newline at end of file diff --git a/.prettierrc.yml b/.prettierrc.yml deleted file mode 100644 index 0c06786bf5..0000000000 --- a/.prettierrc.yml +++ /dev/null @@ -1,2 +0,0 @@ -tabWidth: 4 -printWidth: 120 diff --git a/biome.json b/biome.json new file mode 100644 index 0000000000..a777468e4a --- /dev/null +++ b/biome.json @@ -0,0 +1,74 @@ +{ + "$schema": "https://biomejs.dev/schemas/2.3.1/schema.json", + "root": true, + "vcs": { + "enabled": false + }, + "files": { + "ignoreUnknown": true, + "includes": [ + "**", + "!!dist", + "!!**/dist", + "!!lib", + "!!**/lib", + "!!_tmp_*", + "!!**/_tmp_*", + "!!*.tmp", + "!!**/*.tmp", + "!!.tmp/", + "!!**/.tmp/", + "!!*.log", + "!!**/*.log", + "!!**/.DS_Store", + "!!**/Thumbs.db" + ] + }, + "formatter": { + "enabled": true, + "indentStyle": "space", + "indentWidth": 4, + "lineWidth": 120 + }, + "javascript": { + "formatter": { + "quoteStyle": "double" + } + }, + "assist": { + "enabled": true, + "actions": { + "source": { + "organizeImports": "on" + } + } + }, + "linter": { + "rules": { + "style": { + "useNodejsImportProtocol": "off" + }, + "suspicious": { + "noAssignInExpressions": "warn", + "noUselessEscapeInString": { + "level": "warn", + "fix": "none", + "options": {} + }, + "noThenProperty": "warn", + "useIterableCallbackReturn": "warn", + "noShadowRestrictedNames": "warn", + "noTsIgnore": { + "level": "warn", + "fix": "none", + "options": {} + }, + "noConfusingVoidType": { + "level": "warn", + "fix": "none", + "options": {} + } + } + } + } +} diff --git a/changelog.md b/changelog.md new file mode 100644 index 0000000000..9660680824 --- /dev/null +++ b/changelog.md @@ -0,0 +1,4 @@ +## 5.1.1 - 2025-12-03 +* SDK regeneration +* Unable to analyze changes with AI, incrementing PATCH version. + diff --git a/package.json b/package.json index 02783cc7f0..a1fe44e097 100644 --- a/package.json +++ b/package.json @@ -1,11 +1,8 @@ { "name": "auth0", - "version": "5.1.0", + "version": "5.1.1", "private": false, - "repository": { - "type": "git", - "url": "git+https://github.com/auth0/node-auth0.git" - }, + "repository": "github:auth0/node-auth0", "license": "MIT", "type": "commonjs", "main": "./dist/cjs/index.js", @@ -38,21 +35,19 @@ } }, "files": [ - "legacy", - "package.json", "dist", "reference.md", "README.md", "LICENSE" ], "scripts": { - "format": "prettier . --write --ignore-unknown", - "format:check": "prettier . --check --ignore-unknown", + "format": "biome format --write --skip-parse-errors --no-errors-on-unmatched --max-diagnostics=none", + "format:check": "biome format --skip-parse-errors --no-errors-on-unmatched --max-diagnostics=none", "lint": "eslint . --ext .js,.ts,.tsx", "lint:fix": "eslint . --ext .js,.ts,.tsx --fix", - "check": "yarn format:check && yarn lint", - "check:fix": "yarn format && yarn lint:fix", - "build": "yarn build:cjs && yarn build:esm", + "check": "biome check --skip-parse-errors --no-errors-on-unmatched --max-diagnostics=none", + "check:fix": "biome check --fix --unsafe --skip-parse-errors --no-errors-on-unmatched --max-diagnostics=none", + "build": "pnpm build:cjs && pnpm build:esm", "build:cjs": "tsc --project ./tsconfig.cjs.json", "build:esm": "tsc --project ./tsconfig.esm.json && node scripts/rename-to-esm-files.js dist/esm", "test": "jest --config jest.config.mjs", @@ -60,16 +55,20 @@ "test:wire": "jest --selectProjects wire", "prepare": "husky", "lint:check": "eslint . --ext .js,.ts,.tsx", - "lint:package": "publint --pack npm", "test:coverage": "jest --config jest.config.mjs --coverage", "test:coverage:unit": "jest --selectProjects unit --coverage", "test:coverage:browser": "jest --selectProjects browser --coverage", "test:coverage:wire": "jest --selectProjects wire --coverage", "docs": "typedoc", "docs:clean": "rm -rf docs", - "docs:build": "yarn docs:clean && yarn docs", + "docs:build": "npm run docs:clean && npm run docs", "precommit": "lint-staged", - "validate": "yarn lint:check && yarn format --check && yarn build && yarn test && yarn lint:package" + "validate": "yarn lint:check && yarn format --check && yarn test" + }, + "dependencies": { + "uuid": "^11.1.0", + "jose": "^4.13.2", + "auth0-legacy": "npm:auth0@^4.27.0" }, "devDependencies": { "webpack": "^5.97.1", @@ -82,7 +81,7 @@ "msw": "2.11.2", "@types/node": "^18.19.70", "typescript": "~5.7.2", - "prettier": "3.4.2", + "@biomejs/biome": "2.3.1", "typedoc": "^0.28.7", "typedoc-plugin-missing-exports": "^4.0.0", "nock": "^14.0.6", @@ -94,8 +93,7 @@ "eslint-config-prettier": "^10.1.8", "eslint-plugin-prettier": "^5.5.3", "husky": "^9.1.7", - "lint-staged": "^16.1.4", - "publint": "^0.3.12" + "lint-staged": "^16.1.4" }, "browser": { "fs": false, @@ -103,25 +101,11 @@ "path": false, "stream": false }, - "packageManager": "yarn@1.22.22", + "packageManager": "pnpm@10.20.0", "engines": { "node": "^20.19.0 || ^22.12.0 || ^24.0.0" }, "sideEffects": false, - "bugs": { - "url": "https://github.com/auth0/node-auth0/issues" - }, - "homepage": "https://github.com/auth0/node-auth0", - "keywords": [ - "auth0", - "authentication", - "login", - "auth", - "jwt", - "management api", - "json web token" - ], - "description": "Auth0 Node.js SDK for the Management API v2.", "lint-staged": { "*.{js,ts,tsx}": [ "eslint --fix", @@ -130,10 +114,5 @@ "*.{json,md,yml,yaml}": [ "prettier --write" ] - }, - "dependencies": { - "uuid": "^11.1.0", - "jose": "^4.13.2", - "auth0-legacy": "npm:auth0@^4.27.0" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000000..03513fe46e --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,5114 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + auth0-legacy: + specifier: npm:auth0@^4.27.0 + version: auth0@4.37.0 + jose: + specifier: ^4.13.2 + version: 4.15.9 + uuid: + specifier: ^11.1.0 + version: 11.1.0 + devDependencies: + '@biomejs/biome': + specifier: 2.3.1 + version: 2.3.1 + '@eslint/js': + specifier: ^9.32.0 + version: 9.39.1 + '@jest/globals': + specifier: ^29.7.0 + version: 29.7.0 + '@types/jest': + specifier: ^29.5.14 + version: 29.5.14 + '@types/node': + specifier: ^18.19.70 + version: 18.19.130 + '@typescript-eslint/eslint-plugin': + specifier: ^8.38.0 + version: 8.48.1(@typescript-eslint/parser@8.48.1(eslint@9.39.1)(typescript@5.7.3))(eslint@9.39.1)(typescript@5.7.3) + '@typescript-eslint/parser': + specifier: ^8.38.0 + version: 8.48.1(eslint@9.39.1)(typescript@5.7.3) + eslint: + specifier: ^9.32.0 + version: 9.39.1 + eslint-config-prettier: + specifier: ^10.1.8 + version: 10.1.8(eslint@9.39.1) + eslint-plugin-prettier: + specifier: ^5.5.3 + version: 5.5.4(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@9.39.1))(eslint@9.39.1)(prettier@3.7.3) + husky: + specifier: ^9.1.7 + version: 9.1.7 + jest: + specifier: ^29.7.0 + version: 29.7.0(@types/node@18.19.130) + jest-environment-jsdom: + specifier: ^29.7.0 + version: 29.7.0 + lint-staged: + specifier: ^16.1.4 + version: 16.2.7 + msw: + specifier: 2.11.2 + version: 2.11.2(@types/node@18.19.130)(typescript@5.7.3) + nock: + specifier: ^14.0.6 + version: 14.0.10 + ts-jest: + specifier: ^29.3.4 + version: 29.4.6(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@29.7.0)(jest@29.7.0(@types/node@18.19.130))(typescript@5.7.3) + ts-loader: + specifier: ^9.5.1 + version: 9.5.4(typescript@5.7.3)(webpack@5.103.0) + typedoc: + specifier: ^0.28.7 + version: 0.28.15(typescript@5.7.3) + typedoc-plugin-missing-exports: + specifier: ^4.0.0 + version: 4.1.2(typedoc@0.28.15(typescript@5.7.3)) + typescript: + specifier: ~5.7.2 + version: 5.7.3 + undici: + specifier: ^7.12.0 + version: 7.16.0 + webpack: + specifier: ^5.97.1 + version: 5.103.0 + +packages: + + '@babel/code-frame@7.27.1': + resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} + engines: {node: '>=6.9.0'} + + '@babel/compat-data@7.28.5': + resolution: {integrity: sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==} + engines: {node: '>=6.9.0'} + + '@babel/core@7.28.5': + resolution: {integrity: sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==} + engines: {node: '>=6.9.0'} + + '@babel/generator@7.28.5': + resolution: {integrity: sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-compilation-targets@7.27.2': + resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-globals@7.28.0': + resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-imports@7.27.1': + resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-transforms@7.28.3': + resolution: {integrity: sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-plugin-utils@7.27.1': + resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-string-parser@7.27.1': + resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.28.5': + resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-option@7.27.1': + resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} + engines: {node: '>=6.9.0'} + + '@babel/helpers@7.28.4': + resolution: {integrity: sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.28.5': + resolution: {integrity: sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/plugin-syntax-async-generators@7.8.4': + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-bigint@7.8.3': + resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-class-properties@7.12.13': + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-class-static-block@7.14.5': + resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-attributes@7.27.1': + resolution: {integrity: sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-meta@7.10.4': + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-json-strings@7.8.3': + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-jsx@7.27.1': + resolution: {integrity: sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-logical-assignment-operators@7.10.4': + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3': + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-numeric-separator@7.10.4': + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-object-rest-spread@7.8.3': + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-optional-catch-binding@7.8.3': + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-optional-chaining@7.8.3': + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-private-property-in-object@7.14.5': + resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-top-level-await@7.14.5': + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-typescript@7.27.1': + resolution: {integrity: sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/template@7.27.2': + resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} + engines: {node: '>=6.9.0'} + + '@babel/traverse@7.28.5': + resolution: {integrity: sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.28.5': + resolution: {integrity: sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==} + engines: {node: '>=6.9.0'} + + '@bcoe/v8-coverage@0.2.3': + resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + + '@biomejs/biome@2.3.1': + resolution: {integrity: sha512-A29evf1R72V5bo4o2EPxYMm5mtyGvzp2g+biZvRFx29nWebGyyeOSsDWGx3tuNNMFRepGwxmA9ZQ15mzfabK2w==} + engines: {node: '>=14.21.3'} + hasBin: true + + '@biomejs/cli-darwin-arm64@2.3.1': + resolution: {integrity: sha512-ombSf3MnTUueiYGN1SeI9tBCsDUhpWzOwS63Dove42osNh0PfE1cUtHFx6eZ1+MYCCLwXzlFlYFdrJ+U7h6LcA==} + engines: {node: '>=14.21.3'} + cpu: [arm64] + os: [darwin] + + '@biomejs/cli-darwin-x64@2.3.1': + resolution: {integrity: sha512-pcOfwyoQkrkbGvXxRvZNe5qgD797IowpJPovPX5biPk2FwMEV+INZqfCaz4G5bVq9hYnjwhRMamg11U4QsRXrQ==} + engines: {node: '>=14.21.3'} + cpu: [x64] + os: [darwin] + + '@biomejs/cli-linux-arm64-musl@2.3.1': + resolution: {integrity: sha512-+DZYv8l7FlUtTrWs1Tdt1KcNCAmRO87PyOnxKGunbWm5HKg1oZBSbIIPkjrCtDZaeqSG1DiGx7qF+CPsquQRcg==} + engines: {node: '>=14.21.3'} + cpu: [arm64] + os: [linux] + + '@biomejs/cli-linux-arm64@2.3.1': + resolution: {integrity: sha512-td5O8pFIgLs8H1sAZsD6v+5quODihyEw4nv2R8z7swUfIK1FKk+15e4eiYVLcAE4jUqngvh4j3JCNgg0Y4o4IQ==} + engines: {node: '>=14.21.3'} + cpu: [arm64] + os: [linux] + + '@biomejs/cli-linux-x64-musl@2.3.1': + resolution: {integrity: sha512-Y3Ob4nqgv38Mh+6EGHltuN+Cq8aj/gyMTJYzkFZV2AEj+9XzoXB9VNljz9pjfFNHUxvLEV4b55VWyxozQTBaUQ==} + engines: {node: '>=14.21.3'} + cpu: [x64] + os: [linux] + + '@biomejs/cli-linux-x64@2.3.1': + resolution: {integrity: sha512-PYWgEO7up7XYwSAArOpzsVCiqxBCXy53gsReAb1kKYIyXaoAlhBaBMvxR/k2Rm9aTuZ662locXUmPk/Aj+Xu+Q==} + engines: {node: '>=14.21.3'} + cpu: [x64] + os: [linux] + + '@biomejs/cli-win32-arm64@2.3.1': + resolution: {integrity: sha512-RHIG/zgo+69idUqVvV3n8+j58dKYABRpMyDmfWu2TITC+jwGPiEaT0Q3RKD+kQHiS80mpBrST0iUGeEXT0bU9A==} + engines: {node: '>=14.21.3'} + cpu: [arm64] + os: [win32] + + '@biomejs/cli-win32-x64@2.3.1': + resolution: {integrity: sha512-izl30JJ5Dp10mi90Eko47zhxE6pYyWPcnX1NQxKpL/yMhXxf95oLTzfpu4q+MDBh/gemNqyJEwjBpe0MT5iWPA==} + engines: {node: '>=14.21.3'} + cpu: [x64] + os: [win32] + + '@bundled-es-modules/cookie@2.0.1': + resolution: {integrity: sha512-8o+5fRPLNbjbdGRRmJj3h6Hh1AQJf2dk3qQ/5ZFb+PXkRNiSoMGGUKlsgLfrxneb72axVJyIYji64E2+nNfYyw==} + + '@bundled-es-modules/statuses@1.0.1': + resolution: {integrity: sha512-yn7BklA5acgcBr+7w064fGV+SGIFySjCKpqjcWgBAIfrAkY+4GQTJJHQMeT3V/sgz23VTEVV8TtOmkvJAhFVfg==} + + '@eslint-community/eslint-utils@4.9.0': + resolution: {integrity: sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + + '@eslint-community/regexpp@4.12.2': + resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + '@eslint/config-array@0.21.1': + resolution: {integrity: sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/config-helpers@0.4.2': + resolution: {integrity: sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/core@0.17.0': + resolution: {integrity: sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/eslintrc@3.3.3': + resolution: {integrity: sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/js@9.39.1': + resolution: {integrity: sha512-S26Stp4zCy88tH94QbBv3XCuzRQiZ9yXofEILmglYTh/Ug/a9/umqvgFtYBAo3Lp0nsI/5/qH1CCrbdK3AP1Tw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/object-schema@2.1.7': + resolution: {integrity: sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/plugin-kit@0.4.1': + resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@gerrit0/mini-shiki@3.18.0': + resolution: {integrity: sha512-zTAG1cXK5Q+T6CBEa8mqEnCx/H9rrpWEn+vhMbWikzmeO2jltY6zVE2m9YCO+xDi+P0vpBrOG1Xgi8AZtlNoUA==} + + '@humanfs/core@0.19.1': + resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} + engines: {node: '>=18.18.0'} + + '@humanfs/node@0.16.7': + resolution: {integrity: sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==} + engines: {node: '>=18.18.0'} + + '@humanwhocodes/module-importer@1.0.1': + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + + '@humanwhocodes/retry@0.4.3': + resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} + engines: {node: '>=18.18'} + + '@inquirer/ansi@1.0.2': + resolution: {integrity: sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ==} + engines: {node: '>=18'} + + '@inquirer/confirm@5.1.21': + resolution: {integrity: sha512-KR8edRkIsUayMXV+o3Gv+q4jlhENF9nMYUZs9PA2HzrXeHI8M5uDag70U7RJn9yyiMZSbtF5/UexBtAVtZGSbQ==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/core@10.3.2': + resolution: {integrity: sha512-43RTuEbfP8MbKzedNqBrlhhNKVwoK//vUFNW3Q3vZ88BLcrs4kYpGg+B2mm5p2K/HfygoCxuKwJJiv8PbGmE0A==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/figures@1.0.15': + resolution: {integrity: sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g==} + engines: {node: '>=18'} + + '@inquirer/type@3.0.10': + resolution: {integrity: sha512-BvziSRxfz5Ov8ch0z/n3oijRSEcEsHnhggm4xFZe93DHcUCTlutlq9Ox4SVENAfcRD22UQq7T/atg9Wr3k09eA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@istanbuljs/load-nyc-config@1.1.0': + resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} + engines: {node: '>=8'} + + '@istanbuljs/schema@0.1.3': + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + engines: {node: '>=8'} + + '@jest/console@29.7.0': + resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/core@29.7.0': + resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + + '@jest/environment@29.7.0': + resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/expect-utils@29.7.0': + resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/expect@29.7.0': + resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/fake-timers@29.7.0': + resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/globals@29.7.0': + resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/reporters@29.7.0': + resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + + '@jest/schemas@29.6.3': + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/source-map@29.6.3': + resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/test-result@29.7.0': + resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/test-sequencer@29.7.0': + resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/transform@29.7.0': + resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/types@29.6.3': + resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jridgewell/gen-mapping@0.3.13': + resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} + + '@jridgewell/remapping@2.3.5': + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/source-map@0.3.11': + resolution: {integrity: sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==} + + '@jridgewell/sourcemap-codec@1.5.5': + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + + '@jridgewell/trace-mapping@0.3.31': + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + + '@mswjs/interceptors@0.39.8': + resolution: {integrity: sha512-2+BzZbjRO7Ct61k8fMNHEtoKjeWI9pIlHFTqBwZ5icHpqszIgEZbjb1MW5Z0+bITTCTl3gk4PDBxs9tA/csXvA==} + engines: {node: '>=18'} + + '@open-draft/deferred-promise@2.2.0': + resolution: {integrity: sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==} + + '@open-draft/logger@0.3.0': + resolution: {integrity: sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ==} + + '@open-draft/until@2.1.0': + resolution: {integrity: sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==} + + '@pkgr/core@0.2.9': + resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + + '@shikijs/engine-oniguruma@3.19.0': + resolution: {integrity: sha512-1hRxtYIJfJSZeM5ivbUXv9hcJP3PWRo5prG/V2sWwiubUKTa+7P62d2qxCW8jiVFX4pgRHhnHNp+qeR7Xl+6kg==} + + '@shikijs/langs@3.19.0': + resolution: {integrity: sha512-dBMFzzg1QiXqCVQ5ONc0z2ebyoi5BKz+MtfByLm0o5/nbUu3Iz8uaTCa5uzGiscQKm7lVShfZHU1+OG3t5hgwg==} + + '@shikijs/themes@3.19.0': + resolution: {integrity: sha512-H36qw+oh91Y0s6OlFfdSuQ0Ld+5CgB/VE6gNPK+Hk4VRbVG/XQgkjnt4KzfnnoO6tZPtKJKHPjwebOCfjd6F8A==} + + '@shikijs/types@3.19.0': + resolution: {integrity: sha512-Z2hdeEQlzuntf/BZpFG8a+Fsw9UVXdML7w0o3TgSXV3yNESGon+bs9ITkQb3Ki7zxoXOOu5oJWqZ2uto06V9iQ==} + + '@shikijs/vscode-textmate@10.0.2': + resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} + + '@sinclair/typebox@0.27.8': + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + + '@sinonjs/commons@3.0.1': + resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} + + '@sinonjs/fake-timers@10.3.0': + resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} + + '@tootallnate/once@2.0.0': + resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} + engines: {node: '>= 10'} + + '@types/babel__core@7.20.5': + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} + + '@types/babel__generator@7.27.0': + resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==} + + '@types/babel__template@7.4.4': + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} + + '@types/babel__traverse@7.28.0': + resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==} + + '@types/cookie@0.6.0': + resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} + + '@types/eslint-scope@3.7.7': + resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} + + '@types/eslint@9.6.1': + resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} + + '@types/estree@1.0.8': + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} + + '@types/graceful-fs@4.1.9': + resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} + + '@types/hast@3.0.4': + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + + '@types/istanbul-lib-coverage@2.0.6': + resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} + + '@types/istanbul-lib-report@3.0.3': + resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} + + '@types/istanbul-reports@3.0.4': + resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} + + '@types/jest@29.5.14': + resolution: {integrity: sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==} + + '@types/jsdom@20.0.1': + resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==} + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + '@types/node@18.19.130': + resolution: {integrity: sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg==} + + '@types/stack-utils@2.0.3': + resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} + + '@types/statuses@2.0.6': + resolution: {integrity: sha512-xMAgYwceFhRA2zY+XbEA7mxYbA093wdiW8Vu6gZPGWy9cmOyU9XesH1tNcEWsKFd5Vzrqx5T3D38PWx1FIIXkA==} + + '@types/tough-cookie@4.0.5': + resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==} + + '@types/unist@3.0.3': + resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} + + '@types/yargs-parser@21.0.3': + resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} + + '@types/yargs@17.0.35': + resolution: {integrity: sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==} + + '@typescript-eslint/eslint-plugin@8.48.1': + resolution: {integrity: sha512-X63hI1bxl5ohelzr0LY5coufyl0LJNthld+abwxpCoo6Gq+hSqhKwci7MUWkXo67mzgUK6YFByhmaHmUcuBJmA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/parser': ^8.48.1 + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/parser@8.48.1': + resolution: {integrity: sha512-PC0PDZfJg8sP7cmKe6L3QIL8GZwU5aRvUFedqSIpw3B+QjRSUZeeITC2M5XKeMXEzL6wccN196iy3JLwKNvDVA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/project-service@8.48.1': + resolution: {integrity: sha512-HQWSicah4s9z2/HifRPQ6b6R7G+SBx64JlFQpgSSHWPKdvCZX57XCbszg/bapbRsOEv42q5tayTYcEFpACcX1w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/scope-manager@8.48.1': + resolution: {integrity: sha512-rj4vWQsytQbLxC5Bf4XwZ0/CKd362DkWMUkviT7DCS057SK64D5lH74sSGzhI6PDD2HCEq02xAP9cX68dYyg1w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/tsconfig-utils@8.48.1': + resolution: {integrity: sha512-k0Jhs4CpEffIBm6wPaCXBAD7jxBtrHjrSgtfCjUvPp9AZ78lXKdTR8fxyZO5y4vWNlOvYXRtngSZNSn+H53Jkw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/type-utils@8.48.1': + resolution: {integrity: sha512-1jEop81a3LrJQLTf/1VfPQdhIY4PlGDBc/i67EVWObrtvcziysbLN3oReexHOM6N3jyXgCrkBsZpqwH0hiDOQg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/types@8.48.1': + resolution: {integrity: sha512-+fZ3LZNeiELGmimrujsDCT4CRIbq5oXdHe7chLiW8qzqyPMnn1puNstCrMNVAqwcl2FdIxkuJ4tOs/RFDBVc/Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/typescript-estree@8.48.1': + resolution: {integrity: sha512-/9wQ4PqaefTK6POVTjJaYS0bynCgzh6ClJHGSBj06XEHjkfylzB+A3qvyaXnErEZSaxhIo4YdyBgq6j4RysxDg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/utils@8.48.1': + resolution: {integrity: sha512-fAnhLrDjiVfey5wwFRwrweyRlCmdz5ZxXz2G/4cLn0YDLjTapmN4gcCsTBR1N2rWnZSDeWpYtgLDsJt+FpmcwA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/visitor-keys@8.48.1': + resolution: {integrity: sha512-BmxxndzEWhE4TIEEMBs8lP3MBWN3jFPs/p6gPm/wkv02o41hI6cq9AuSmGAaTTHPtA1FTi2jBre4A9rm5ZmX+Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@webassemblyjs/ast@1.14.1': + resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} + + '@webassemblyjs/floating-point-hex-parser@1.13.2': + resolution: {integrity: sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==} + + '@webassemblyjs/helper-api-error@1.13.2': + resolution: {integrity: sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==} + + '@webassemblyjs/helper-buffer@1.14.1': + resolution: {integrity: sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==} + + '@webassemblyjs/helper-numbers@1.13.2': + resolution: {integrity: sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==} + + '@webassemblyjs/helper-wasm-bytecode@1.13.2': + resolution: {integrity: sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==} + + '@webassemblyjs/helper-wasm-section@1.14.1': + resolution: {integrity: sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==} + + '@webassemblyjs/ieee754@1.13.2': + resolution: {integrity: sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==} + + '@webassemblyjs/leb128@1.13.2': + resolution: {integrity: sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==} + + '@webassemblyjs/utf8@1.13.2': + resolution: {integrity: sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==} + + '@webassemblyjs/wasm-edit@1.14.1': + resolution: {integrity: sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==} + + '@webassemblyjs/wasm-gen@1.14.1': + resolution: {integrity: sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==} + + '@webassemblyjs/wasm-opt@1.14.1': + resolution: {integrity: sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==} + + '@webassemblyjs/wasm-parser@1.14.1': + resolution: {integrity: sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==} + + '@webassemblyjs/wast-printer@1.14.1': + resolution: {integrity: sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==} + + '@xtuc/ieee754@1.2.0': + resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} + + '@xtuc/long@4.2.2': + resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + + abab@2.0.6: + resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} + deprecated: Use your platform's native atob() and btoa() methods instead + + acorn-globals@7.0.1: + resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==} + + acorn-import-phases@1.0.4: + resolution: {integrity: sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==} + engines: {node: '>=10.13.0'} + peerDependencies: + acorn: ^8.14.0 + + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + acorn-walk@8.3.4: + resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} + engines: {node: '>=0.4.0'} + + acorn@8.15.0: + resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} + engines: {node: '>=0.4.0'} + hasBin: true + + agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} + + ajv-formats@2.1.1: + resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + + ajv-keywords@5.1.0: + resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} + peerDependencies: + ajv: ^8.8.2 + + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + + ajv@8.17.1: + resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} + + ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + + ansi-escapes@7.2.0: + resolution: {integrity: sha512-g6LhBsl+GBPRWGWsBtutpzBYuIIdBkLEvad5C/va/74Db018+5TZiyA26cZJAr3Rft5lprVqOIPxf5Vid6tqAw==} + engines: {node: '>=18'} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-regex@6.2.2: + resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==} + engines: {node: '>=12'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + + ansi-styles@6.2.3: + resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} + engines: {node: '>=12'} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + auth0@4.37.0: + resolution: {integrity: sha512-+TqJRxh4QvbD4TQIYx1ak2vanykQkG/nIZLuR6o8LoQj425gjVG3tFuUbbOeh/nCpP1rnvU0CCV1ChZHYXLU/A==} + engines: {node: '>=18'} + + babel-jest@29.7.0: + resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@babel/core': ^7.8.0 + + babel-plugin-istanbul@6.1.1: + resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} + engines: {node: '>=8'} + + babel-plugin-jest-hoist@29.6.3: + resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + babel-preset-current-node-syntax@1.2.0: + resolution: {integrity: sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==} + peerDependencies: + '@babel/core': ^7.0.0 || ^8.0.0-0 + + babel-preset-jest@29.6.3: + resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@babel/core': ^7.0.0 + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + baseline-browser-mapping@2.8.32: + resolution: {integrity: sha512-OPz5aBThlyLFgxyhdwf/s2+8ab3OvT7AdTNvKHBwpXomIYeXqpUUuT8LrdtxZSsWJ4R4CU1un4XGh5Ez3nlTpw==} + hasBin: true + + brace-expansion@1.1.12: + resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} + + brace-expansion@2.0.2: + resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + browserslist@4.28.0: + resolution: {integrity: sha512-tbydkR/CxfMwelN0vwdP/pLkDwyAASZ+VfWm4EOwlB6SWhx1sYnWLqo8N5j0rAzPfzfRaxt0mM/4wPU/Su84RQ==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + bs-logger@0.2.6: + resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==} + engines: {node: '>= 6'} + + bser@2.1.1: + resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} + + buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + call-bind-apply-helpers@1.0.2: + resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} + engines: {node: '>= 0.4'} + + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + + camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} + + caniuse-lite@1.0.30001757: + resolution: {integrity: sha512-r0nnL/I28Zi/yjk1el6ilj27tKcdjLsNqAOZr0yVjWPrSQyHgKI2INaEWw21bAQSv2LXRt1XuCS/GomNpWOxsQ==} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + char-regex@1.0.2: + resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} + engines: {node: '>=10'} + + chrome-trace-event@1.0.4: + resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} + engines: {node: '>=6.0'} + + ci-info@3.9.0: + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} + engines: {node: '>=8'} + + cjs-module-lexer@1.4.3: + resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==} + + cli-cursor@5.0.0: + resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} + engines: {node: '>=18'} + + cli-truncate@5.1.1: + resolution: {integrity: sha512-SroPvNHxUnk+vIW/dOSfNqdy1sPEFkrTk6TUtqLCnBlo3N7TNYYkzzN7uSD6+jVjrdO4+p8nH7JzH6cIvUem6A==} + engines: {node: '>=20'} + + cli-width@4.1.0: + resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} + engines: {node: '>= 12'} + + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + co@4.6.0: + resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} + engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + + collect-v8-coverage@1.0.3: + resolution: {integrity: sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + + commander@14.0.2: + resolution: {integrity: sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ==} + engines: {node: '>=20'} + + commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + + cookie@0.7.2: + resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} + engines: {node: '>= 0.6'} + + create-jest@29.7.0: + resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} + + cssom@0.3.8: + resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} + + cssom@0.5.0: + resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} + + cssstyle@2.3.0: + resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} + engines: {node: '>=8'} + + data-urls@3.0.2: + resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} + engines: {node: '>=12'} + + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + decimal.js@10.6.0: + resolution: {integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==} + + dedent@1.7.0: + resolution: {integrity: sha512-HGFtf8yhuhGhqO07SV79tRp+br4MnbdjeVxotpn1QBl30pcLLCQjX5b2295ll0fv8RKDKsmWYrl05usHM9CewQ==} + peerDependencies: + babel-plugin-macros: ^3.1.0 + peerDependenciesMeta: + babel-plugin-macros: + optional: true + + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + + deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + detect-newline@3.1.0: + resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} + engines: {node: '>=8'} + + diff-sequences@29.6.3: + resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + domexception@4.0.0: + resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} + engines: {node: '>=12'} + deprecated: Use your platform's native DOMException instead + + dunder-proto@1.0.1: + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} + engines: {node: '>= 0.4'} + + electron-to-chromium@1.5.263: + resolution: {integrity: sha512-DrqJ11Knd+lo+dv+lltvfMDLU27g14LMdH2b0O3Pio4uk0x+z7OR+JrmyacTPN2M8w3BrZ7/RTwG3R9B7irPlg==} + + emittery@0.13.1: + resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} + engines: {node: '>=12'} + + emoji-regex@10.6.0: + resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + enhanced-resolve@5.18.3: + resolution: {integrity: sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==} + engines: {node: '>=10.13.0'} + + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + + entities@6.0.1: + resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} + engines: {node: '>=0.12'} + + environment@1.1.0: + resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} + engines: {node: '>=18'} + + error-ex@1.3.4: + resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==} + + es-define-property@1.0.1: + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + es-module-lexer@1.7.0: + resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} + + es-object-atoms@1.1.1: + resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} + engines: {node: '>= 0.4'} + + es-set-tostringtag@2.1.0: + resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} + engines: {node: '>= 0.4'} + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + escape-string-regexp@2.0.0: + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} + engines: {node: '>=8'} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + escodegen@2.1.0: + resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} + engines: {node: '>=6.0'} + hasBin: true + + eslint-config-prettier@10.1.8: + resolution: {integrity: sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + + eslint-plugin-prettier@5.5.4: + resolution: {integrity: sha512-swNtI95SToIz05YINMA6Ox5R057IMAmWZ26GqPxusAp1TZzj+IdY9tXNWWD3vkF/wEqydCONcwjTFpxybBqZsg==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + '@types/eslint': '>=8.0.0' + eslint: '>=8.0.0' + eslint-config-prettier: '>= 7.0.0 <10.0.0 || >=10.1.0' + prettier: '>=3.0.0' + peerDependenciesMeta: + '@types/eslint': + optional: true + eslint-config-prettier: + optional: true + + eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} + + eslint-scope@8.4.0: + resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-visitor-keys@4.2.1: + resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint@9.39.1: + resolution: {integrity: sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true + + espree@10.4.0: + resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + esquery@1.6.0: + resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} + engines: {node: '>=0.10'} + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + + events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + + execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + + exit@0.1.2: + resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} + engines: {node: '>= 0.8.0'} + + expect@29.7.0: + resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-diff@1.3.0: + resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + fast-uri@3.1.0: + resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==} + + fb-watchman@2.0.2: + resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} + + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + + file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + + flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} + + flatted@3.3.3: + resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} + + form-data@4.0.5: + resolution: {integrity: sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==} + engines: {node: '>= 6'} + + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-east-asian-width@1.4.0: + resolution: {integrity: sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==} + engines: {node: '>=18'} + + get-intrinsic@1.3.0: + resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} + engines: {node: '>= 0.4'} + + get-package-type@0.1.0: + resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} + engines: {node: '>=8.0.0'} + + get-proto@1.0.1: + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} + engines: {node: '>= 0.4'} + + get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + glob-to-regexp@0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported + + globals@14.0.0: + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + engines: {node: '>=18'} + + gopd@1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + + graphql@16.12.0: + resolution: {integrity: sha512-DKKrynuQRne0PNpEbzuEdHlYOMksHSUI8Zc9Unei5gTsMNA2/vMpoMz/yKba50pejK56qj98qM0SjYxAKi13gQ==} + engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} + + handlebars@4.7.8: + resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} + engines: {node: '>=0.4.7'} + hasBin: true + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + has-symbols@1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} + engines: {node: '>= 0.4'} + + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + headers-polyfill@4.0.3: + resolution: {integrity: sha512-IScLbePpkvO846sIwOtOTDjutRMWdXdJmXdMvk6gCBHxFO8d+QKOQedyZSxFTTFYRSmlgSTDtXqqq4pcenBXLQ==} + + html-encoding-sniffer@3.0.0: + resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} + engines: {node: '>=12'} + + html-escaper@2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + + http-proxy-agent@5.0.0: + resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} + engines: {node: '>= 6'} + + https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + + human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + + husky@9.1.7: + resolution: {integrity: sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==} + engines: {node: '>=18'} + hasBin: true + + iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + + ignore@7.0.5: + resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} + engines: {node: '>= 4'} + + import-fresh@3.3.1: + resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} + engines: {node: '>=6'} + + import-local@3.2.0: + resolution: {integrity: sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==} + engines: {node: '>=8'} + hasBin: true + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + + is-core-module@2.16.1: + resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} + engines: {node: '>= 0.4'} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-fullwidth-code-point@5.1.0: + resolution: {integrity: sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==} + engines: {node: '>=18'} + + is-generator-fn@2.1.0: + resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} + engines: {node: '>=6'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-node-process@1.2.0: + resolution: {integrity: sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-potential-custom-element-name@1.0.1: + resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} + + is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + istanbul-lib-coverage@3.2.2: + resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} + engines: {node: '>=8'} + + istanbul-lib-instrument@5.2.1: + resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} + engines: {node: '>=8'} + + istanbul-lib-instrument@6.0.3: + resolution: {integrity: sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==} + engines: {node: '>=10'} + + istanbul-lib-report@3.0.1: + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + engines: {node: '>=10'} + + istanbul-lib-source-maps@4.0.1: + resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} + engines: {node: '>=10'} + + istanbul-reports@3.2.0: + resolution: {integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==} + engines: {node: '>=8'} + + jest-changed-files@29.7.0: + resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-circus@29.7.0: + resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-cli@29.7.0: + resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + + jest-config@29.7.0: + resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@types/node': '*' + ts-node: '>=9.0.0' + peerDependenciesMeta: + '@types/node': + optional: true + ts-node: + optional: true + + jest-diff@29.7.0: + resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-docblock@29.7.0: + resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-each@29.7.0: + resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-environment-jsdom@29.7.0: + resolution: {integrity: sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + + jest-environment-node@29.7.0: + resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-get-type@29.6.3: + resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-haste-map@29.7.0: + resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-leak-detector@29.7.0: + resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-matcher-utils@29.7.0: + resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-message-util@29.7.0: + resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-mock@29.7.0: + resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-pnp-resolver@1.2.3: + resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} + engines: {node: '>=6'} + peerDependencies: + jest-resolve: '*' + peerDependenciesMeta: + jest-resolve: + optional: true + + jest-regex-util@29.6.3: + resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-resolve-dependencies@29.7.0: + resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-resolve@29.7.0: + resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-runner@29.7.0: + resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-runtime@29.7.0: + resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-snapshot@29.7.0: + resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-util@29.7.0: + resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-validate@29.7.0: + resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-watcher@29.7.0: + resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-worker@27.5.1: + resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} + engines: {node: '>= 10.13.0'} + + jest-worker@29.7.0: + resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest@29.7.0: + resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + + jose@4.15.9: + resolution: {integrity: sha512-1vUQX+IdDMVPj4k8kOxgUqlcK518yluMuGZwqlr44FS1ppZB/5GWh4rZG89erpOBOJjU/OBsnCVFfapsRz6nEA==} + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-yaml@3.14.2: + resolution: {integrity: sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==} + hasBin: true + + js-yaml@4.1.1: + resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} + hasBin: true + + jsdom@20.0.3: + resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==} + engines: {node: '>=14'} + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + + jsesc@3.1.0: + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} + engines: {node: '>=6'} + hasBin: true + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + json-stringify-safe@5.0.1: + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + kleur@3.0.3: + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} + engines: {node: '>=6'} + + leven@3.1.0: + resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} + engines: {node: '>=6'} + + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + linkify-it@5.0.0: + resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} + + lint-staged@16.2.7: + resolution: {integrity: sha512-lDIj4RnYmK7/kXMya+qJsmkRFkGolciXjrsZ6PC25GdTfWOAWetR0ZbsNXRAj1EHHImRSalc+whZFg56F5DVow==} + engines: {node: '>=20.17'} + hasBin: true + + listr2@9.0.5: + resolution: {integrity: sha512-ME4Fb83LgEgwNw96RKNvKV4VTLuXfoKudAmm2lP8Kk87KaMK0/Xrx/aAkMWmT8mDb+3MlFDspfbCs7adjRxA2g==} + engines: {node: '>=20.0.0'} + + loader-runner@4.3.1: + resolution: {integrity: sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==} + engines: {node: '>=6.11.5'} + + locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + + lodash.memoize@4.1.2: + resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} + + lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + + log-update@6.1.0: + resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==} + engines: {node: '>=18'} + + lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + + lunr@2.3.9: + resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==} + + make-dir@4.0.0: + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + engines: {node: '>=10'} + + make-error@1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + + makeerror@1.0.12: + resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} + + markdown-it@14.1.0: + resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} + hasBin: true + + math-intrinsics@1.1.0: + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} + engines: {node: '>= 0.4'} + + mdurl@2.0.0: + resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} + + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + + mimic-function@5.0.1: + resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} + engines: {node: '>=18'} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + msw@2.11.2: + resolution: {integrity: sha512-MI54hLCsrMwiflkcqlgYYNJJddY5/+S0SnONvhv1owOplvqohKSQyGejpNdUGyCwgs4IH7PqaNbPw/sKOEze9Q==} + engines: {node: '>=18'} + hasBin: true + peerDependencies: + typescript: '>= 4.8.x' + peerDependenciesMeta: + typescript: + optional: true + + mute-stream@2.0.0: + resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==} + engines: {node: ^18.17.0 || >=20.5.0} + + nano-spawn@2.0.0: + resolution: {integrity: sha512-tacvGzUY5o2D8CBh2rrwxyNojUsZNU2zjNTzKQrkgGJQTbGAfArVWXSKMBokBeeg6C7OLRGUEyoFlYbfeWQIqw==} + engines: {node: '>=20.17'} + + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + + nock@14.0.10: + resolution: {integrity: sha512-Q7HjkpyPeLa0ZVZC5qpxBt5EyLczFJ91MEewQiIi9taWuA0KB/MDJlUWtON+7dGouVdADTQsf9RA7TZk6D8VMw==} + engines: {node: '>=18.20.0 <20 || >=20.12.1'} + + node-int64@0.4.0: + resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} + + node-releases@2.0.27: + resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + + nwsapi@2.2.22: + resolution: {integrity: sha512-ujSMe1OWVn55euT1ihwCI1ZcAaAU3nxUiDwfDQldc51ZXaB9m2AyOn6/jh1BLe2t/G8xd6uKG1UBF2aZJeg2SQ==} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + + onetime@7.0.0: + resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} + engines: {node: '>=18'} + + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + + outvariant@1.4.3: + resolution: {integrity: sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA==} + + p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + + parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + + parse5@7.3.0: + resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + path-to-regexp@6.3.0: + resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + picomatch@4.0.3: + resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} + engines: {node: '>=12'} + + pidtree@0.6.0: + resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} + engines: {node: '>=0.10'} + hasBin: true + + pirates@4.0.7: + resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==} + engines: {node: '>= 6'} + + pkg-dir@4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} + + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + + prettier-linter-helpers@1.0.0: + resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} + engines: {node: '>=6.0.0'} + + prettier@3.7.3: + resolution: {integrity: sha512-QgODejq9K3OzoBbuyobZlUhznP5SKwPqp+6Q6xw6o8gnhr4O85L2U915iM2IDcfF2NPXVaM9zlo9tdwipnYwzg==} + engines: {node: '>=14'} + hasBin: true + + pretty-format@29.7.0: + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + prompts@2.4.2: + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} + engines: {node: '>= 6'} + + propagate@2.0.1: + resolution: {integrity: sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==} + engines: {node: '>= 8'} + + psl@1.15.0: + resolution: {integrity: sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==} + + punycode.js@2.3.1: + resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} + engines: {node: '>=6'} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + pure-rand@6.1.0: + resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} + + querystringify@2.2.0: + resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} + + randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + + react-is@18.3.1: + resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + + requires-port@1.0.0: + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + + resolve-cwd@3.0.0: + resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} + engines: {node: '>=8'} + + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + + resolve.exports@2.0.3: + resolution: {integrity: sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==} + engines: {node: '>=10'} + + resolve@1.22.11: + resolution: {integrity: sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==} + engines: {node: '>= 0.4'} + hasBin: true + + restore-cursor@5.1.0: + resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} + engines: {node: '>=18'} + + rettime@0.7.0: + resolution: {integrity: sha512-LPRKoHnLKd/r3dVxcwO7vhCW+orkOGj9ViueosEBK6ie89CijnfRlhaDhHq/3Hxu4CkWQtxwlBG0mzTQY6uQjw==} + + rfdc@1.4.1: + resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + saxes@6.0.0: + resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} + engines: {node: '>=v12.22.7'} + + schema-utils@4.3.3: + resolution: {integrity: sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==} + engines: {node: '>= 10.13.0'} + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + semver@7.7.3: + resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} + engines: {node: '>=10'} + hasBin: true + + serialize-javascript@6.0.2: + resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + + slice-ansi@7.1.2: + resolution: {integrity: sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==} + engines: {node: '>=18'} + + source-map-support@0.5.13: + resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} + + source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + source-map@0.7.6: + resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==} + engines: {node: '>= 12'} + + sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + + stack-utils@2.0.6: + resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} + engines: {node: '>=10'} + + statuses@2.0.2: + resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} + engines: {node: '>= 0.8'} + + strict-event-emitter@0.5.1: + resolution: {integrity: sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==} + + string-argv@0.3.2: + resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} + engines: {node: '>=0.6.19'} + + string-length@4.0.2: + resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} + engines: {node: '>=10'} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@7.2.0: + resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} + engines: {node: '>=18'} + + string-width@8.1.0: + resolution: {integrity: sha512-Kxl3KJGb/gxkaUMOjRsQ8IrXiGW75O4E3RPjFIINOVH8AMl2SQ/yWdTzWwF3FevIX9LcMAjJW+GRwAlAbTSXdg==} + engines: {node: '>=20'} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.1.2: + resolution: {integrity: sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==} + engines: {node: '>=12'} + + strip-bom@4.0.0: + resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} + engines: {node: '>=8'} + + strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + symbol-tree@3.2.4: + resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + + synckit@0.11.11: + resolution: {integrity: sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==} + engines: {node: ^14.18.0 || >=16.0.0} + + tapable@2.3.0: + resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} + engines: {node: '>=6'} + + terser-webpack-plugin@5.3.14: + resolution: {integrity: sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==} + engines: {node: '>= 10.13.0'} + peerDependencies: + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true + + terser@5.44.1: + resolution: {integrity: sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw==} + engines: {node: '>=10'} + hasBin: true + + test-exclude@6.0.0: + resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} + engines: {node: '>=8'} + + tinyglobby@0.2.15: + resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} + engines: {node: '>=12.0.0'} + + tldts-core@7.0.19: + resolution: {integrity: sha512-lJX2dEWx0SGH4O6p+7FPwYmJ/bu1JbcGJ8RLaG9b7liIgZ85itUVEPbMtWRVrde/0fnDPEPHW10ZsKW3kVsE9A==} + + tldts@7.0.19: + resolution: {integrity: sha512-8PWx8tvC4jDB39BQw1m4x8y5MH1BcQ5xHeL2n7UVFulMPH/3Q0uiamahFJ3lXA0zO2SUyRXuVVbWSDmstlt9YA==} + hasBin: true + + tmpl@1.0.5: + resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + tough-cookie@4.1.4: + resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} + engines: {node: '>=6'} + + tough-cookie@6.0.0: + resolution: {integrity: sha512-kXuRi1mtaKMrsLUxz3sQYvVl37B0Ns6MzfrtV5DvJceE9bPyspOqk9xxv7XbZWcfLWbFmm997vl83qUWVJA64w==} + engines: {node: '>=16'} + + tr46@3.0.0: + resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} + engines: {node: '>=12'} + + ts-api-utils@2.1.0: + resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} + engines: {node: '>=18.12'} + peerDependencies: + typescript: '>=4.8.4' + + ts-jest@29.4.6: + resolution: {integrity: sha512-fSpWtOO/1AjSNQguk43hb/JCo16oJDnMJf3CdEGNkqsEX3t0KX96xvyX1D7PfLCpVoKu4MfVrqUkFyblYoY4lA==} + engines: {node: ^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@babel/core': '>=7.0.0-beta.0 <8' + '@jest/transform': ^29.0.0 || ^30.0.0 + '@jest/types': ^29.0.0 || ^30.0.0 + babel-jest: ^29.0.0 || ^30.0.0 + esbuild: '*' + jest: ^29.0.0 || ^30.0.0 + jest-util: ^29.0.0 || ^30.0.0 + typescript: '>=4.3 <6' + peerDependenciesMeta: + '@babel/core': + optional: true + '@jest/transform': + optional: true + '@jest/types': + optional: true + babel-jest: + optional: true + esbuild: + optional: true + jest-util: + optional: true + + ts-loader@9.5.4: + resolution: {integrity: sha512-nCz0rEwunlTZiy6rXFByQU1kVVpCIgUpc/psFiKVrUwrizdnIbRFu8w7bxhUF0X613DYwT4XzrZHpVyMe758hQ==} + engines: {node: '>=12.0.0'} + peerDependencies: + typescript: '*' + webpack: ^5.0.0 + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + + type-detect@4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} + + type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + + type-fest@4.41.0: + resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} + engines: {node: '>=16'} + + typedoc-plugin-missing-exports@4.1.2: + resolution: {integrity: sha512-WNoeWX9+8X3E3riuYPduilUTFefl1K+Z+5bmYqNeH5qcWjtnTRMbRzGdEQ4XXn1WEO4WCIlU0vf46Ca2y/mspg==} + peerDependencies: + typedoc: ^0.28.1 + + typedoc@0.28.15: + resolution: {integrity: sha512-mw2/2vTL7MlT+BVo43lOsufkkd2CJO4zeOSuWQQsiXoV2VuEn7f6IZp2jsUDPmBMABpgR0R5jlcJ2OGEFYmkyg==} + engines: {node: '>= 18', pnpm: '>= 10'} + hasBin: true + peerDependencies: + typescript: 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x || 5.7.x || 5.8.x || 5.9.x + + typescript@5.7.3: + resolution: {integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==} + engines: {node: '>=14.17'} + hasBin: true + + uc.micro@2.1.0: + resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} + + uglify-js@3.19.3: + resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==} + engines: {node: '>=0.8.0'} + hasBin: true + + undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + + undici-types@6.21.0: + resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + + undici@7.16.0: + resolution: {integrity: sha512-QEg3HPMll0o3t2ourKwOeUAZ159Kn9mx5pnzHRQO8+Wixmh88YdZRiIwat0iNzNNXn0yoEtXJqFpyW7eM8BV7g==} + engines: {node: '>=20.18.1'} + + universalify@0.2.0: + resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} + engines: {node: '>= 4.0.0'} + + update-browserslist-db@1.1.4: + resolution: {integrity: sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + url-parse@1.5.10: + resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + + uuid@11.1.0: + resolution: {integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==} + hasBin: true + + uuid@9.0.1: + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + hasBin: true + + v8-to-istanbul@9.3.0: + resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==} + engines: {node: '>=10.12.0'} + + w3c-xmlserializer@4.0.0: + resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} + engines: {node: '>=14'} + + walker@1.0.8: + resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} + + watchpack@2.4.4: + resolution: {integrity: sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==} + engines: {node: '>=10.13.0'} + + webidl-conversions@7.0.0: + resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} + engines: {node: '>=12'} + + webpack-sources@3.3.3: + resolution: {integrity: sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==} + engines: {node: '>=10.13.0'} + + webpack@5.103.0: + resolution: {integrity: sha512-HU1JOuV1OavsZ+mfigY0j8d1TgQgbZ6M+J75zDkpEAwYeXjWSqrGJtgnPblJjd/mAyTNQ7ygw0MiKOn6etz8yw==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + + whatwg-encoding@2.0.0: + resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} + engines: {node: '>=12'} + + whatwg-mimetype@3.0.0: + resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} + engines: {node: '>=12'} + + whatwg-url@11.0.0: + resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} + engines: {node: '>=12'} + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + + wordwrap@1.0.0: + resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} + + wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@9.0.2: + resolution: {integrity: sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==} + engines: {node: '>=18'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + write-file-atomic@4.0.2: + resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + ws@8.18.3: + resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + xml-name-validator@4.0.0: + resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} + engines: {node: '>=12'} + + xmlchars@2.2.0: + resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + yaml@2.8.2: + resolution: {integrity: sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==} + engines: {node: '>= 14.6'} + hasBin: true + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + + yoctocolors-cjs@2.1.3: + resolution: {integrity: sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==} + engines: {node: '>=18'} + +snapshots: + + '@babel/code-frame@7.27.1': + dependencies: + '@babel/helper-validator-identifier': 7.28.5 + js-tokens: 4.0.0 + picocolors: 1.1.1 + + '@babel/compat-data@7.28.5': {} + + '@babel/core@7.28.5': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.28.5 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5) + '@babel/helpers': 7.28.4 + '@babel/parser': 7.28.5 + '@babel/template': 7.27.2 + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 + '@jridgewell/remapping': 2.3.5 + convert-source-map: 2.0.0 + debug: 4.4.3 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/generator@7.28.5': + dependencies: + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + jsesc: 3.1.0 + + '@babel/helper-compilation-targets@7.27.2': + dependencies: + '@babel/compat-data': 7.28.5 + '@babel/helper-validator-option': 7.27.1 + browserslist: 4.28.0 + lru-cache: 5.1.1 + semver: 6.3.1 + + '@babel/helper-globals@7.28.0': {} + + '@babel/helper-module-imports@7.27.1': + dependencies: + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-module-imports': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 + '@babel/traverse': 7.28.5 + transitivePeerDependencies: + - supports-color + + '@babel/helper-plugin-utils@7.27.1': {} + + '@babel/helper-string-parser@7.27.1': {} + + '@babel/helper-validator-identifier@7.28.5': {} + + '@babel/helper-validator-option@7.27.1': {} + + '@babel/helpers@7.28.4': + dependencies: + '@babel/template': 7.27.2 + '@babel/types': 7.28.5 + + '@babel/parser@7.28.5': + dependencies: + '@babel/types': 7.28.5 + + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/template@7.27.2': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 + + '@babel/traverse@7.28.5': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.28.5 + '@babel/helper-globals': 7.28.0 + '@babel/parser': 7.28.5 + '@babel/template': 7.27.2 + '@babel/types': 7.28.5 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + '@babel/types@7.28.5': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 + + '@bcoe/v8-coverage@0.2.3': {} + + '@biomejs/biome@2.3.1': + optionalDependencies: + '@biomejs/cli-darwin-arm64': 2.3.1 + '@biomejs/cli-darwin-x64': 2.3.1 + '@biomejs/cli-linux-arm64': 2.3.1 + '@biomejs/cli-linux-arm64-musl': 2.3.1 + '@biomejs/cli-linux-x64': 2.3.1 + '@biomejs/cli-linux-x64-musl': 2.3.1 + '@biomejs/cli-win32-arm64': 2.3.1 + '@biomejs/cli-win32-x64': 2.3.1 + + '@biomejs/cli-darwin-arm64@2.3.1': + optional: true + + '@biomejs/cli-darwin-x64@2.3.1': + optional: true + + '@biomejs/cli-linux-arm64-musl@2.3.1': + optional: true + + '@biomejs/cli-linux-arm64@2.3.1': + optional: true + + '@biomejs/cli-linux-x64-musl@2.3.1': + optional: true + + '@biomejs/cli-linux-x64@2.3.1': + optional: true + + '@biomejs/cli-win32-arm64@2.3.1': + optional: true + + '@biomejs/cli-win32-x64@2.3.1': + optional: true + + '@bundled-es-modules/cookie@2.0.1': + dependencies: + cookie: 0.7.2 + + '@bundled-es-modules/statuses@1.0.1': + dependencies: + statuses: 2.0.2 + + '@eslint-community/eslint-utils@4.9.0(eslint@9.39.1)': + dependencies: + eslint: 9.39.1 + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.12.2': {} + + '@eslint/config-array@0.21.1': + dependencies: + '@eslint/object-schema': 2.1.7 + debug: 4.4.3 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@eslint/config-helpers@0.4.2': + dependencies: + '@eslint/core': 0.17.0 + + '@eslint/core@0.17.0': + dependencies: + '@types/json-schema': 7.0.15 + + '@eslint/eslintrc@3.3.3': + dependencies: + ajv: 6.12.6 + debug: 4.4.3 + espree: 10.4.0 + globals: 14.0.0 + ignore: 5.3.2 + import-fresh: 3.3.1 + js-yaml: 4.1.1 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/js@9.39.1': {} + + '@eslint/object-schema@2.1.7': {} + + '@eslint/plugin-kit@0.4.1': + dependencies: + '@eslint/core': 0.17.0 + levn: 0.4.1 + + '@gerrit0/mini-shiki@3.18.0': + dependencies: + '@shikijs/engine-oniguruma': 3.19.0 + '@shikijs/langs': 3.19.0 + '@shikijs/themes': 3.19.0 + '@shikijs/types': 3.19.0 + '@shikijs/vscode-textmate': 10.0.2 + + '@humanfs/core@0.19.1': {} + + '@humanfs/node@0.16.7': + dependencies: + '@humanfs/core': 0.19.1 + '@humanwhocodes/retry': 0.4.3 + + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/retry@0.4.3': {} + + '@inquirer/ansi@1.0.2': {} + + '@inquirer/confirm@5.1.21(@types/node@18.19.130)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@18.19.130) + '@inquirer/type': 3.0.10(@types/node@18.19.130) + optionalDependencies: + '@types/node': 18.19.130 + + '@inquirer/core@10.3.2(@types/node@18.19.130)': + dependencies: + '@inquirer/ansi': 1.0.2 + '@inquirer/figures': 1.0.15 + '@inquirer/type': 3.0.10(@types/node@18.19.130) + cli-width: 4.1.0 + mute-stream: 2.0.0 + signal-exit: 4.1.0 + wrap-ansi: 6.2.0 + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 18.19.130 + + '@inquirer/figures@1.0.15': {} + + '@inquirer/type@3.0.10(@types/node@18.19.130)': + optionalDependencies: + '@types/node': 18.19.130 + + '@istanbuljs/load-nyc-config@1.1.0': + dependencies: + camelcase: 5.3.1 + find-up: 4.1.0 + get-package-type: 0.1.0 + js-yaml: 3.14.2 + resolve-from: 5.0.0 + + '@istanbuljs/schema@0.1.3': {} + + '@jest/console@29.7.0': + dependencies: + '@jest/types': 29.6.3 + '@types/node': 18.19.130 + chalk: 4.1.2 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + slash: 3.0.0 + + '@jest/core@29.7.0': + dependencies: + '@jest/console': 29.7.0 + '@jest/reporters': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 18.19.130 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + ci-info: 3.9.0 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-changed-files: 29.7.0 + jest-config: 29.7.0(@types/node@18.19.130) + jest-haste-map: 29.7.0 + jest-message-util: 29.7.0 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-resolve-dependencies: 29.7.0 + jest-runner: 29.7.0 + jest-runtime: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + jest-watcher: 29.7.0 + micromatch: 4.0.8 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-ansi: 6.0.1 + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + - ts-node + + '@jest/environment@29.7.0': + dependencies: + '@jest/fake-timers': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 18.19.130 + jest-mock: 29.7.0 + + '@jest/expect-utils@29.7.0': + dependencies: + jest-get-type: 29.6.3 + + '@jest/expect@29.7.0': + dependencies: + expect: 29.7.0 + jest-snapshot: 29.7.0 + transitivePeerDependencies: + - supports-color + + '@jest/fake-timers@29.7.0': + dependencies: + '@jest/types': 29.6.3 + '@sinonjs/fake-timers': 10.3.0 + '@types/node': 18.19.130 + jest-message-util: 29.7.0 + jest-mock: 29.7.0 + jest-util: 29.7.0 + + '@jest/globals@29.7.0': + dependencies: + '@jest/environment': 29.7.0 + '@jest/expect': 29.7.0 + '@jest/types': 29.6.3 + jest-mock: 29.7.0 + transitivePeerDependencies: + - supports-color + + '@jest/reporters@29.7.0': + dependencies: + '@bcoe/v8-coverage': 0.2.3 + '@jest/console': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@jridgewell/trace-mapping': 0.3.31 + '@types/node': 18.19.130 + chalk: 4.1.2 + collect-v8-coverage: 1.0.3 + exit: 0.1.2 + glob: 7.2.3 + graceful-fs: 4.2.11 + istanbul-lib-coverage: 3.2.2 + istanbul-lib-instrument: 6.0.3 + istanbul-lib-report: 3.0.1 + istanbul-lib-source-maps: 4.0.1 + istanbul-reports: 3.2.0 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + jest-worker: 29.7.0 + slash: 3.0.0 + string-length: 4.0.2 + strip-ansi: 6.0.1 + v8-to-istanbul: 9.3.0 + transitivePeerDependencies: + - supports-color + + '@jest/schemas@29.6.3': + dependencies: + '@sinclair/typebox': 0.27.8 + + '@jest/source-map@29.6.3': + dependencies: + '@jridgewell/trace-mapping': 0.3.31 + callsites: 3.1.0 + graceful-fs: 4.2.11 + + '@jest/test-result@29.7.0': + dependencies: + '@jest/console': 29.7.0 + '@jest/types': 29.6.3 + '@types/istanbul-lib-coverage': 2.0.6 + collect-v8-coverage: 1.0.3 + + '@jest/test-sequencer@29.7.0': + dependencies: + '@jest/test-result': 29.7.0 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + slash: 3.0.0 + + '@jest/transform@29.7.0': + dependencies: + '@babel/core': 7.28.5 + '@jest/types': 29.6.3 + '@jridgewell/trace-mapping': 0.3.31 + babel-plugin-istanbul: 6.1.1 + chalk: 4.1.2 + convert-source-map: 2.0.0 + fast-json-stable-stringify: 2.1.0 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + jest-regex-util: 29.6.3 + jest-util: 29.7.0 + micromatch: 4.0.8 + pirates: 4.0.7 + slash: 3.0.0 + write-file-atomic: 4.0.2 + transitivePeerDependencies: + - supports-color + + '@jest/types@29.6.3': + dependencies: + '@jest/schemas': 29.6.3 + '@types/istanbul-lib-coverage': 2.0.6 + '@types/istanbul-reports': 3.0.4 + '@types/node': 18.19.130 + '@types/yargs': 17.0.35 + chalk: 4.1.2 + + '@jridgewell/gen-mapping@0.3.13': + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/remapping@2.3.5': + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/source-map@0.3.11': + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/sourcemap-codec@1.5.5': {} + + '@jridgewell/trace-mapping@0.3.31': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.5 + + '@mswjs/interceptors@0.39.8': + dependencies: + '@open-draft/deferred-promise': 2.2.0 + '@open-draft/logger': 0.3.0 + '@open-draft/until': 2.1.0 + is-node-process: 1.2.0 + outvariant: 1.4.3 + strict-event-emitter: 0.5.1 + + '@open-draft/deferred-promise@2.2.0': {} + + '@open-draft/logger@0.3.0': + dependencies: + is-node-process: 1.2.0 + outvariant: 1.4.3 + + '@open-draft/until@2.1.0': {} + + '@pkgr/core@0.2.9': {} + + '@shikijs/engine-oniguruma@3.19.0': + dependencies: + '@shikijs/types': 3.19.0 + '@shikijs/vscode-textmate': 10.0.2 + + '@shikijs/langs@3.19.0': + dependencies: + '@shikijs/types': 3.19.0 + + '@shikijs/themes@3.19.0': + dependencies: + '@shikijs/types': 3.19.0 + + '@shikijs/types@3.19.0': + dependencies: + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + + '@shikijs/vscode-textmate@10.0.2': {} + + '@sinclair/typebox@0.27.8': {} + + '@sinonjs/commons@3.0.1': + dependencies: + type-detect: 4.0.8 + + '@sinonjs/fake-timers@10.3.0': + dependencies: + '@sinonjs/commons': 3.0.1 + + '@tootallnate/once@2.0.0': {} + + '@types/babel__core@7.20.5': + dependencies: + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 + '@types/babel__generator': 7.27.0 + '@types/babel__template': 7.4.4 + '@types/babel__traverse': 7.28.0 + + '@types/babel__generator@7.27.0': + dependencies: + '@babel/types': 7.28.5 + + '@types/babel__template@7.4.4': + dependencies: + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 + + '@types/babel__traverse@7.28.0': + dependencies: + '@babel/types': 7.28.5 + + '@types/cookie@0.6.0': {} + + '@types/eslint-scope@3.7.7': + dependencies: + '@types/eslint': 9.6.1 + '@types/estree': 1.0.8 + + '@types/eslint@9.6.1': + dependencies: + '@types/estree': 1.0.8 + '@types/json-schema': 7.0.15 + + '@types/estree@1.0.8': {} + + '@types/graceful-fs@4.1.9': + dependencies: + '@types/node': 18.19.130 + + '@types/hast@3.0.4': + dependencies: + '@types/unist': 3.0.3 + + '@types/istanbul-lib-coverage@2.0.6': {} + + '@types/istanbul-lib-report@3.0.3': + dependencies: + '@types/istanbul-lib-coverage': 2.0.6 + + '@types/istanbul-reports@3.0.4': + dependencies: + '@types/istanbul-lib-report': 3.0.3 + + '@types/jest@29.5.14': + dependencies: + expect: 29.7.0 + pretty-format: 29.7.0 + + '@types/jsdom@20.0.1': + dependencies: + '@types/node': 18.19.130 + '@types/tough-cookie': 4.0.5 + parse5: 7.3.0 + + '@types/json-schema@7.0.15': {} + + '@types/node@18.19.130': + dependencies: + undici-types: 5.26.5 + + '@types/stack-utils@2.0.3': {} + + '@types/statuses@2.0.6': {} + + '@types/tough-cookie@4.0.5': {} + + '@types/unist@3.0.3': {} + + '@types/yargs-parser@21.0.3': {} + + '@types/yargs@17.0.35': + dependencies: + '@types/yargs-parser': 21.0.3 + + '@typescript-eslint/eslint-plugin@8.48.1(@typescript-eslint/parser@8.48.1(eslint@9.39.1)(typescript@5.7.3))(eslint@9.39.1)(typescript@5.7.3)': + dependencies: + '@eslint-community/regexpp': 4.12.2 + '@typescript-eslint/parser': 8.48.1(eslint@9.39.1)(typescript@5.7.3) + '@typescript-eslint/scope-manager': 8.48.1 + '@typescript-eslint/type-utils': 8.48.1(eslint@9.39.1)(typescript@5.7.3) + '@typescript-eslint/utils': 8.48.1(eslint@9.39.1)(typescript@5.7.3) + '@typescript-eslint/visitor-keys': 8.48.1 + eslint: 9.39.1 + graphemer: 1.4.0 + ignore: 7.0.5 + natural-compare: 1.4.0 + ts-api-utils: 2.1.0(typescript@5.7.3) + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@8.48.1(eslint@9.39.1)(typescript@5.7.3)': + dependencies: + '@typescript-eslint/scope-manager': 8.48.1 + '@typescript-eslint/types': 8.48.1 + '@typescript-eslint/typescript-estree': 8.48.1(typescript@5.7.3) + '@typescript-eslint/visitor-keys': 8.48.1 + debug: 4.4.3 + eslint: 9.39.1 + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/project-service@8.48.1(typescript@5.7.3)': + dependencies: + '@typescript-eslint/tsconfig-utils': 8.48.1(typescript@5.7.3) + '@typescript-eslint/types': 8.48.1 + debug: 4.4.3 + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/scope-manager@8.48.1': + dependencies: + '@typescript-eslint/types': 8.48.1 + '@typescript-eslint/visitor-keys': 8.48.1 + + '@typescript-eslint/tsconfig-utils@8.48.1(typescript@5.7.3)': + dependencies: + typescript: 5.7.3 + + '@typescript-eslint/type-utils@8.48.1(eslint@9.39.1)(typescript@5.7.3)': + dependencies: + '@typescript-eslint/types': 8.48.1 + '@typescript-eslint/typescript-estree': 8.48.1(typescript@5.7.3) + '@typescript-eslint/utils': 8.48.1(eslint@9.39.1)(typescript@5.7.3) + debug: 4.4.3 + eslint: 9.39.1 + ts-api-utils: 2.1.0(typescript@5.7.3) + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/types@8.48.1': {} + + '@typescript-eslint/typescript-estree@8.48.1(typescript@5.7.3)': + dependencies: + '@typescript-eslint/project-service': 8.48.1(typescript@5.7.3) + '@typescript-eslint/tsconfig-utils': 8.48.1(typescript@5.7.3) + '@typescript-eslint/types': 8.48.1 + '@typescript-eslint/visitor-keys': 8.48.1 + debug: 4.4.3 + minimatch: 9.0.5 + semver: 7.7.3 + tinyglobby: 0.2.15 + ts-api-utils: 2.1.0(typescript@5.7.3) + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@8.48.1(eslint@9.39.1)(typescript@5.7.3)': + dependencies: + '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.1) + '@typescript-eslint/scope-manager': 8.48.1 + '@typescript-eslint/types': 8.48.1 + '@typescript-eslint/typescript-estree': 8.48.1(typescript@5.7.3) + eslint: 9.39.1 + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/visitor-keys@8.48.1': + dependencies: + '@typescript-eslint/types': 8.48.1 + eslint-visitor-keys: 4.2.1 + + '@webassemblyjs/ast@1.14.1': + dependencies: + '@webassemblyjs/helper-numbers': 1.13.2 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + + '@webassemblyjs/floating-point-hex-parser@1.13.2': {} + + '@webassemblyjs/helper-api-error@1.13.2': {} + + '@webassemblyjs/helper-buffer@1.14.1': {} + + '@webassemblyjs/helper-numbers@1.13.2': + dependencies: + '@webassemblyjs/floating-point-hex-parser': 1.13.2 + '@webassemblyjs/helper-api-error': 1.13.2 + '@xtuc/long': 4.2.2 + + '@webassemblyjs/helper-wasm-bytecode@1.13.2': {} + + '@webassemblyjs/helper-wasm-section@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-buffer': 1.14.1 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/wasm-gen': 1.14.1 + + '@webassemblyjs/ieee754@1.13.2': + dependencies: + '@xtuc/ieee754': 1.2.0 + + '@webassemblyjs/leb128@1.13.2': + dependencies: + '@xtuc/long': 4.2.2 + + '@webassemblyjs/utf8@1.13.2': {} + + '@webassemblyjs/wasm-edit@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-buffer': 1.14.1 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/helper-wasm-section': 1.14.1 + '@webassemblyjs/wasm-gen': 1.14.1 + '@webassemblyjs/wasm-opt': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 + '@webassemblyjs/wast-printer': 1.14.1 + + '@webassemblyjs/wasm-gen@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/ieee754': 1.13.2 + '@webassemblyjs/leb128': 1.13.2 + '@webassemblyjs/utf8': 1.13.2 + + '@webassemblyjs/wasm-opt@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-buffer': 1.14.1 + '@webassemblyjs/wasm-gen': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 + + '@webassemblyjs/wasm-parser@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-api-error': 1.13.2 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/ieee754': 1.13.2 + '@webassemblyjs/leb128': 1.13.2 + '@webassemblyjs/utf8': 1.13.2 + + '@webassemblyjs/wast-printer@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@xtuc/long': 4.2.2 + + '@xtuc/ieee754@1.2.0': {} + + '@xtuc/long@4.2.2': {} + + abab@2.0.6: {} + + acorn-globals@7.0.1: + dependencies: + acorn: 8.15.0 + acorn-walk: 8.3.4 + + acorn-import-phases@1.0.4(acorn@8.15.0): + dependencies: + acorn: 8.15.0 + + acorn-jsx@5.3.2(acorn@8.15.0): + dependencies: + acorn: 8.15.0 + + acorn-walk@8.3.4: + dependencies: + acorn: 8.15.0 + + acorn@8.15.0: {} + + agent-base@6.0.2: + dependencies: + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + ajv-formats@2.1.1(ajv@8.17.1): + optionalDependencies: + ajv: 8.17.1 + + ajv-keywords@5.1.0(ajv@8.17.1): + dependencies: + ajv: 8.17.1 + fast-deep-equal: 3.1.3 + + ajv@6.12.6: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + ajv@8.17.1: + dependencies: + fast-deep-equal: 3.1.3 + fast-uri: 3.1.0 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + + ansi-escapes@4.3.2: + dependencies: + type-fest: 0.21.3 + + ansi-escapes@7.2.0: + dependencies: + environment: 1.1.0 + + ansi-regex@5.0.1: {} + + ansi-regex@6.2.2: {} + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@5.2.0: {} + + ansi-styles@6.2.3: {} + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + argparse@1.0.10: + dependencies: + sprintf-js: 1.0.3 + + argparse@2.0.1: {} + + asynckit@0.4.0: {} + + auth0@4.37.0: + dependencies: + jose: 4.15.9 + undici-types: 6.21.0 + uuid: 9.0.1 + + babel-jest@29.7.0(@babel/core@7.28.5): + dependencies: + '@babel/core': 7.28.5 + '@jest/transform': 29.7.0 + '@types/babel__core': 7.20.5 + babel-plugin-istanbul: 6.1.1 + babel-preset-jest: 29.6.3(@babel/core@7.28.5) + chalk: 4.1.2 + graceful-fs: 4.2.11 + slash: 3.0.0 + transitivePeerDependencies: + - supports-color + + babel-plugin-istanbul@6.1.1: + dependencies: + '@babel/helper-plugin-utils': 7.27.1 + '@istanbuljs/load-nyc-config': 1.1.0 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-instrument: 5.2.1 + test-exclude: 6.0.0 + transitivePeerDependencies: + - supports-color + + babel-plugin-jest-hoist@29.6.3: + dependencies: + '@babel/template': 7.27.2 + '@babel/types': 7.28.5 + '@types/babel__core': 7.20.5 + '@types/babel__traverse': 7.28.0 + + babel-preset-current-node-syntax@1.2.0(@babel/core@7.28.5): + dependencies: + '@babel/core': 7.28.5 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.28.5) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.28.5) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.28.5) + '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.28.5) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.28.5) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.28.5) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.28.5) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.28.5) + + babel-preset-jest@29.6.3(@babel/core@7.28.5): + dependencies: + '@babel/core': 7.28.5 + babel-plugin-jest-hoist: 29.6.3 + babel-preset-current-node-syntax: 1.2.0(@babel/core@7.28.5) + + balanced-match@1.0.2: {} + + baseline-browser-mapping@2.8.32: {} + + brace-expansion@1.1.12: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + brace-expansion@2.0.2: + dependencies: + balanced-match: 1.0.2 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + browserslist@4.28.0: + dependencies: + baseline-browser-mapping: 2.8.32 + caniuse-lite: 1.0.30001757 + electron-to-chromium: 1.5.263 + node-releases: 2.0.27 + update-browserslist-db: 1.1.4(browserslist@4.28.0) + + bs-logger@0.2.6: + dependencies: + fast-json-stable-stringify: 2.1.0 + + bser@2.1.1: + dependencies: + node-int64: 0.4.0 + + buffer-from@1.1.2: {} + + call-bind-apply-helpers@1.0.2: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + + callsites@3.1.0: {} + + camelcase@5.3.1: {} + + camelcase@6.3.0: {} + + caniuse-lite@1.0.30001757: {} + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + char-regex@1.0.2: {} + + chrome-trace-event@1.0.4: {} + + ci-info@3.9.0: {} + + cjs-module-lexer@1.4.3: {} + + cli-cursor@5.0.0: + dependencies: + restore-cursor: 5.1.0 + + cli-truncate@5.1.1: + dependencies: + slice-ansi: 7.1.2 + string-width: 8.1.0 + + cli-width@4.1.0: {} + + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + co@4.6.0: {} + + collect-v8-coverage@1.0.3: {} + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.4: {} + + colorette@2.0.20: {} + + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 + + commander@14.0.2: {} + + commander@2.20.3: {} + + concat-map@0.0.1: {} + + convert-source-map@2.0.0: {} + + cookie@0.7.2: {} + + create-jest@29.7.0(@types/node@18.19.130): + dependencies: + '@jest/types': 29.6.3 + chalk: 4.1.2 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-config: 29.7.0(@types/node@18.19.130) + jest-util: 29.7.0 + prompts: 2.4.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + + cross-spawn@7.0.6: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + cssom@0.3.8: {} + + cssom@0.5.0: {} + + cssstyle@2.3.0: + dependencies: + cssom: 0.3.8 + + data-urls@3.0.2: + dependencies: + abab: 2.0.6 + whatwg-mimetype: 3.0.0 + whatwg-url: 11.0.0 + + debug@4.4.3: + dependencies: + ms: 2.1.3 + + decimal.js@10.6.0: {} + + dedent@1.7.0: {} + + deep-is@0.1.4: {} + + deepmerge@4.3.1: {} + + delayed-stream@1.0.0: {} + + detect-newline@3.1.0: {} + + diff-sequences@29.6.3: {} + + domexception@4.0.0: + dependencies: + webidl-conversions: 7.0.0 + + dunder-proto@1.0.1: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-errors: 1.3.0 + gopd: 1.2.0 + + electron-to-chromium@1.5.263: {} + + emittery@0.13.1: {} + + emoji-regex@10.6.0: {} + + emoji-regex@8.0.0: {} + + enhanced-resolve@5.18.3: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.3.0 + + entities@4.5.0: {} + + entities@6.0.1: {} + + environment@1.1.0: {} + + error-ex@1.3.4: + dependencies: + is-arrayish: 0.2.1 + + es-define-property@1.0.1: {} + + es-errors@1.3.0: {} + + es-module-lexer@1.7.0: {} + + es-object-atoms@1.1.1: + dependencies: + es-errors: 1.3.0 + + es-set-tostringtag@2.1.0: + dependencies: + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + + escalade@3.2.0: {} + + escape-string-regexp@2.0.0: {} + + escape-string-regexp@4.0.0: {} + + escodegen@2.1.0: + dependencies: + esprima: 4.0.1 + estraverse: 5.3.0 + esutils: 2.0.3 + optionalDependencies: + source-map: 0.6.1 + + eslint-config-prettier@10.1.8(eslint@9.39.1): + dependencies: + eslint: 9.39.1 + + eslint-plugin-prettier@5.5.4(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@9.39.1))(eslint@9.39.1)(prettier@3.7.3): + dependencies: + eslint: 9.39.1 + prettier: 3.7.3 + prettier-linter-helpers: 1.0.0 + synckit: 0.11.11 + optionalDependencies: + '@types/eslint': 9.6.1 + eslint-config-prettier: 10.1.8(eslint@9.39.1) + + eslint-scope@5.1.1: + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + + eslint-scope@8.4.0: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-visitor-keys@3.4.3: {} + + eslint-visitor-keys@4.2.1: {} + + eslint@9.39.1: + dependencies: + '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.1) + '@eslint-community/regexpp': 4.12.2 + '@eslint/config-array': 0.21.1 + '@eslint/config-helpers': 0.4.2 + '@eslint/core': 0.17.0 + '@eslint/eslintrc': 3.3.3 + '@eslint/js': 9.39.1 + '@eslint/plugin-kit': 0.4.1 + '@humanfs/node': 0.16.7 + '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.4.3 + '@types/estree': 1.0.8 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.6 + debug: 4.4.3 + escape-string-regexp: 4.0.0 + eslint-scope: 8.4.0 + eslint-visitor-keys: 4.2.1 + espree: 10.4.0 + esquery: 1.6.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 8.0.0 + find-up: 5.0.0 + glob-parent: 6.0.2 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + json-stable-stringify-without-jsonify: 1.0.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.4 + transitivePeerDependencies: + - supports-color + + espree@10.4.0: + dependencies: + acorn: 8.15.0 + acorn-jsx: 5.3.2(acorn@8.15.0) + eslint-visitor-keys: 4.2.1 + + esprima@4.0.1: {} + + esquery@1.6.0: + dependencies: + estraverse: 5.3.0 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@4.3.0: {} + + estraverse@5.3.0: {} + + esutils@2.0.3: {} + + eventemitter3@5.0.1: {} + + events@3.3.0: {} + + execa@5.1.1: + dependencies: + cross-spawn: 7.0.6 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + + exit@0.1.2: {} + + expect@29.7.0: + dependencies: + '@jest/expect-utils': 29.7.0 + jest-get-type: 29.6.3 + jest-matcher-utils: 29.7.0 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + + fast-deep-equal@3.1.3: {} + + fast-diff@1.3.0: {} + + fast-json-stable-stringify@2.1.0: {} + + fast-levenshtein@2.0.6: {} + + fast-uri@3.1.0: {} + + fb-watchman@2.0.2: + dependencies: + bser: 2.1.1 + + fdir@6.5.0(picomatch@4.0.3): + optionalDependencies: + picomatch: 4.0.3 + + file-entry-cache@8.0.0: + dependencies: + flat-cache: 4.0.1 + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + find-up@4.1.0: + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + + find-up@5.0.0: + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + flat-cache@4.0.1: + dependencies: + flatted: 3.3.3 + keyv: 4.5.4 + + flatted@3.3.3: {} + + form-data@4.0.5: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + es-set-tostringtag: 2.1.0 + hasown: 2.0.2 + mime-types: 2.1.35 + + fs.realpath@1.0.0: {} + + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} + + gensync@1.0.0-beta.2: {} + + get-caller-file@2.0.5: {} + + get-east-asian-width@1.4.0: {} + + get-intrinsic@1.3.0: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + function-bind: 1.1.2 + get-proto: 1.0.1 + gopd: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.2 + math-intrinsics: 1.1.0 + + get-package-type@0.1.0: {} + + get-proto@1.0.1: + dependencies: + dunder-proto: 1.0.1 + es-object-atoms: 1.1.1 + + get-stream@6.0.1: {} + + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + glob-to-regexp@0.4.1: {} + + glob@7.2.3: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + globals@14.0.0: {} + + gopd@1.2.0: {} + + graceful-fs@4.2.11: {} + + graphemer@1.4.0: {} + + graphql@16.12.0: {} + + handlebars@4.7.8: + dependencies: + minimist: 1.2.8 + neo-async: 2.6.2 + source-map: 0.6.1 + wordwrap: 1.0.0 + optionalDependencies: + uglify-js: 3.19.3 + + has-flag@4.0.0: {} + + has-symbols@1.1.0: {} + + has-tostringtag@1.0.2: + dependencies: + has-symbols: 1.1.0 + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + headers-polyfill@4.0.3: {} + + html-encoding-sniffer@3.0.0: + dependencies: + whatwg-encoding: 2.0.0 + + html-escaper@2.0.2: {} + + http-proxy-agent@5.0.0: + dependencies: + '@tootallnate/once': 2.0.0 + agent-base: 6.0.2 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + https-proxy-agent@5.0.1: + dependencies: + agent-base: 6.0.2 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + human-signals@2.1.0: {} + + husky@9.1.7: {} + + iconv-lite@0.6.3: + dependencies: + safer-buffer: 2.1.2 + + ignore@5.3.2: {} + + ignore@7.0.5: {} + + import-fresh@3.3.1: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + import-local@3.2.0: + dependencies: + pkg-dir: 4.2.0 + resolve-cwd: 3.0.0 + + imurmurhash@0.1.4: {} + + inflight@1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + inherits@2.0.4: {} + + is-arrayish@0.2.1: {} + + is-core-module@2.16.1: + dependencies: + hasown: 2.0.2 + + is-extglob@2.1.1: {} + + is-fullwidth-code-point@3.0.0: {} + + is-fullwidth-code-point@5.1.0: + dependencies: + get-east-asian-width: 1.4.0 + + is-generator-fn@2.1.0: {} + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-node-process@1.2.0: {} + + is-number@7.0.0: {} + + is-potential-custom-element-name@1.0.1: {} + + is-stream@2.0.1: {} + + isexe@2.0.0: {} + + istanbul-lib-coverage@3.2.2: {} + + istanbul-lib-instrument@5.2.1: + dependencies: + '@babel/core': 7.28.5 + '@babel/parser': 7.28.5 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.2.2 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + istanbul-lib-instrument@6.0.3: + dependencies: + '@babel/core': 7.28.5 + '@babel/parser': 7.28.5 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.2.2 + semver: 7.7.3 + transitivePeerDependencies: + - supports-color + + istanbul-lib-report@3.0.1: + dependencies: + istanbul-lib-coverage: 3.2.2 + make-dir: 4.0.0 + supports-color: 7.2.0 + + istanbul-lib-source-maps@4.0.1: + dependencies: + debug: 4.4.3 + istanbul-lib-coverage: 3.2.2 + source-map: 0.6.1 + transitivePeerDependencies: + - supports-color + + istanbul-reports@3.2.0: + dependencies: + html-escaper: 2.0.2 + istanbul-lib-report: 3.0.1 + + jest-changed-files@29.7.0: + dependencies: + execa: 5.1.1 + jest-util: 29.7.0 + p-limit: 3.1.0 + + jest-circus@29.7.0: + dependencies: + '@jest/environment': 29.7.0 + '@jest/expect': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 18.19.130 + chalk: 4.1.2 + co: 4.6.0 + dedent: 1.7.0 + is-generator-fn: 2.1.0 + jest-each: 29.7.0 + jest-matcher-utils: 29.7.0 + jest-message-util: 29.7.0 + jest-runtime: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 + p-limit: 3.1.0 + pretty-format: 29.7.0 + pure-rand: 6.1.0 + slash: 3.0.0 + stack-utils: 2.0.6 + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + + jest-cli@29.7.0(@types/node@18.19.130): + dependencies: + '@jest/core': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 + chalk: 4.1.2 + create-jest: 29.7.0(@types/node@18.19.130) + exit: 0.1.2 + import-local: 3.2.0 + jest-config: 29.7.0(@types/node@18.19.130) + jest-util: 29.7.0 + jest-validate: 29.7.0 + yargs: 17.7.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + + jest-config@29.7.0(@types/node@18.19.130): + dependencies: + '@babel/core': 7.28.5 + '@jest/test-sequencer': 29.7.0 + '@jest/types': 29.6.3 + babel-jest: 29.7.0(@babel/core@7.28.5) + chalk: 4.1.2 + ci-info: 3.9.0 + deepmerge: 4.3.1 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-circus: 29.7.0 + jest-environment-node: 29.7.0 + jest-get-type: 29.6.3 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-runner: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + micromatch: 4.0.8 + parse-json: 5.2.0 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-json-comments: 3.1.1 + optionalDependencies: + '@types/node': 18.19.130 + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + + jest-diff@29.7.0: + dependencies: + chalk: 4.1.2 + diff-sequences: 29.6.3 + jest-get-type: 29.6.3 + pretty-format: 29.7.0 + + jest-docblock@29.7.0: + dependencies: + detect-newline: 3.1.0 + + jest-each@29.7.0: + dependencies: + '@jest/types': 29.6.3 + chalk: 4.1.2 + jest-get-type: 29.6.3 + jest-util: 29.7.0 + pretty-format: 29.7.0 + + jest-environment-jsdom@29.7.0: + dependencies: + '@jest/environment': 29.7.0 + '@jest/fake-timers': 29.7.0 + '@jest/types': 29.6.3 + '@types/jsdom': 20.0.1 + '@types/node': 18.19.130 + jest-mock: 29.7.0 + jest-util: 29.7.0 + jsdom: 20.0.3 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + jest-environment-node@29.7.0: + dependencies: + '@jest/environment': 29.7.0 + '@jest/fake-timers': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 18.19.130 + jest-mock: 29.7.0 + jest-util: 29.7.0 + + jest-get-type@29.6.3: {} + + jest-haste-map@29.7.0: + dependencies: + '@jest/types': 29.6.3 + '@types/graceful-fs': 4.1.9 + '@types/node': 18.19.130 + anymatch: 3.1.3 + fb-watchman: 2.0.2 + graceful-fs: 4.2.11 + jest-regex-util: 29.6.3 + jest-util: 29.7.0 + jest-worker: 29.7.0 + micromatch: 4.0.8 + walker: 1.0.8 + optionalDependencies: + fsevents: 2.3.3 + + jest-leak-detector@29.7.0: + dependencies: + jest-get-type: 29.6.3 + pretty-format: 29.7.0 + + jest-matcher-utils@29.7.0: + dependencies: + chalk: 4.1.2 + jest-diff: 29.7.0 + jest-get-type: 29.6.3 + pretty-format: 29.7.0 + + jest-message-util@29.7.0: + dependencies: + '@babel/code-frame': 7.27.1 + '@jest/types': 29.6.3 + '@types/stack-utils': 2.0.3 + chalk: 4.1.2 + graceful-fs: 4.2.11 + micromatch: 4.0.8 + pretty-format: 29.7.0 + slash: 3.0.0 + stack-utils: 2.0.6 + + jest-mock@29.7.0: + dependencies: + '@jest/types': 29.6.3 + '@types/node': 18.19.130 + jest-util: 29.7.0 + + jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): + optionalDependencies: + jest-resolve: 29.7.0 + + jest-regex-util@29.6.3: {} + + jest-resolve-dependencies@29.7.0: + dependencies: + jest-regex-util: 29.6.3 + jest-snapshot: 29.7.0 + transitivePeerDependencies: + - supports-color + + jest-resolve@29.7.0: + dependencies: + chalk: 4.1.2 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + jest-pnp-resolver: 1.2.3(jest-resolve@29.7.0) + jest-util: 29.7.0 + jest-validate: 29.7.0 + resolve: 1.22.11 + resolve.exports: 2.0.3 + slash: 3.0.0 + + jest-runner@29.7.0: + dependencies: + '@jest/console': 29.7.0 + '@jest/environment': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 18.19.130 + chalk: 4.1.2 + emittery: 0.13.1 + graceful-fs: 4.2.11 + jest-docblock: 29.7.0 + jest-environment-node: 29.7.0 + jest-haste-map: 29.7.0 + jest-leak-detector: 29.7.0 + jest-message-util: 29.7.0 + jest-resolve: 29.7.0 + jest-runtime: 29.7.0 + jest-util: 29.7.0 + jest-watcher: 29.7.0 + jest-worker: 29.7.0 + p-limit: 3.1.0 + source-map-support: 0.5.13 + transitivePeerDependencies: + - supports-color + + jest-runtime@29.7.0: + dependencies: + '@jest/environment': 29.7.0 + '@jest/fake-timers': 29.7.0 + '@jest/globals': 29.7.0 + '@jest/source-map': 29.6.3 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 18.19.130 + chalk: 4.1.2 + cjs-module-lexer: 1.4.3 + collect-v8-coverage: 1.0.3 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + jest-message-util: 29.7.0 + jest-mock: 29.7.0 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 + slash: 3.0.0 + strip-bom: 4.0.0 + transitivePeerDependencies: + - supports-color + + jest-snapshot@29.7.0: + dependencies: + '@babel/core': 7.28.5 + '@babel/generator': 7.28.5 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.5) + '@babel/types': 7.28.5 + '@jest/expect-utils': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + babel-preset-current-node-syntax: 1.2.0(@babel/core@7.28.5) + chalk: 4.1.2 + expect: 29.7.0 + graceful-fs: 4.2.11 + jest-diff: 29.7.0 + jest-get-type: 29.6.3 + jest-matcher-utils: 29.7.0 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + natural-compare: 1.4.0 + pretty-format: 29.7.0 + semver: 7.7.3 + transitivePeerDependencies: + - supports-color + + jest-util@29.7.0: + dependencies: + '@jest/types': 29.6.3 + '@types/node': 18.19.130 + chalk: 4.1.2 + ci-info: 3.9.0 + graceful-fs: 4.2.11 + picomatch: 2.3.1 + + jest-validate@29.7.0: + dependencies: + '@jest/types': 29.6.3 + camelcase: 6.3.0 + chalk: 4.1.2 + jest-get-type: 29.6.3 + leven: 3.1.0 + pretty-format: 29.7.0 + + jest-watcher@29.7.0: + dependencies: + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 18.19.130 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + emittery: 0.13.1 + jest-util: 29.7.0 + string-length: 4.0.2 + + jest-worker@27.5.1: + dependencies: + '@types/node': 18.19.130 + merge-stream: 2.0.0 + supports-color: 8.1.1 + + jest-worker@29.7.0: + dependencies: + '@types/node': 18.19.130 + jest-util: 29.7.0 + merge-stream: 2.0.0 + supports-color: 8.1.1 + + jest@29.7.0(@types/node@18.19.130): + dependencies: + '@jest/core': 29.7.0 + '@jest/types': 29.6.3 + import-local: 3.2.0 + jest-cli: 29.7.0(@types/node@18.19.130) + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + + jose@4.15.9: {} + + js-tokens@4.0.0: {} + + js-yaml@3.14.2: + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + + js-yaml@4.1.1: + dependencies: + argparse: 2.0.1 + + jsdom@20.0.3: + dependencies: + abab: 2.0.6 + acorn: 8.15.0 + acorn-globals: 7.0.1 + cssom: 0.5.0 + cssstyle: 2.3.0 + data-urls: 3.0.2 + decimal.js: 10.6.0 + domexception: 4.0.0 + escodegen: 2.1.0 + form-data: 4.0.5 + html-encoding-sniffer: 3.0.0 + http-proxy-agent: 5.0.0 + https-proxy-agent: 5.0.1 + is-potential-custom-element-name: 1.0.1 + nwsapi: 2.2.22 + parse5: 7.3.0 + saxes: 6.0.0 + symbol-tree: 3.2.4 + tough-cookie: 4.1.4 + w3c-xmlserializer: 4.0.0 + webidl-conversions: 7.0.0 + whatwg-encoding: 2.0.0 + whatwg-mimetype: 3.0.0 + whatwg-url: 11.0.0 + ws: 8.18.3 + xml-name-validator: 4.0.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + jsesc@3.1.0: {} + + json-buffer@3.0.1: {} + + json-parse-even-better-errors@2.3.1: {} + + json-schema-traverse@0.4.1: {} + + json-schema-traverse@1.0.0: {} + + json-stable-stringify-without-jsonify@1.0.1: {} + + json-stringify-safe@5.0.1: {} + + json5@2.2.3: {} + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + + kleur@3.0.3: {} + + leven@3.1.0: {} + + levn@0.4.1: + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + + lines-and-columns@1.2.4: {} + + linkify-it@5.0.0: + dependencies: + uc.micro: 2.1.0 + + lint-staged@16.2.7: + dependencies: + commander: 14.0.2 + listr2: 9.0.5 + micromatch: 4.0.8 + nano-spawn: 2.0.0 + pidtree: 0.6.0 + string-argv: 0.3.2 + yaml: 2.8.2 + + listr2@9.0.5: + dependencies: + cli-truncate: 5.1.1 + colorette: 2.0.20 + eventemitter3: 5.0.1 + log-update: 6.1.0 + rfdc: 1.4.1 + wrap-ansi: 9.0.2 + + loader-runner@4.3.1: {} + + locate-path@5.0.0: + dependencies: + p-locate: 4.1.0 + + locate-path@6.0.0: + dependencies: + p-locate: 5.0.0 + + lodash.memoize@4.1.2: {} + + lodash.merge@4.6.2: {} + + log-update@6.1.0: + dependencies: + ansi-escapes: 7.2.0 + cli-cursor: 5.0.0 + slice-ansi: 7.1.2 + strip-ansi: 7.1.2 + wrap-ansi: 9.0.2 + + lru-cache@5.1.1: + dependencies: + yallist: 3.1.1 + + lunr@2.3.9: {} + + make-dir@4.0.0: + dependencies: + semver: 7.7.3 + + make-error@1.3.6: {} + + makeerror@1.0.12: + dependencies: + tmpl: 1.0.5 + + markdown-it@14.1.0: + dependencies: + argparse: 2.0.1 + entities: 4.5.0 + linkify-it: 5.0.0 + mdurl: 2.0.0 + punycode.js: 2.3.1 + uc.micro: 2.1.0 + + math-intrinsics@1.1.0: {} + + mdurl@2.0.0: {} + + merge-stream@2.0.0: {} + + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + + mime-db@1.52.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + mimic-fn@2.1.0: {} + + mimic-function@5.0.1: {} + + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.12 + + minimatch@9.0.5: + dependencies: + brace-expansion: 2.0.2 + + minimist@1.2.8: {} + + ms@2.1.3: {} + + msw@2.11.2(@types/node@18.19.130)(typescript@5.7.3): + dependencies: + '@bundled-es-modules/cookie': 2.0.1 + '@bundled-es-modules/statuses': 1.0.1 + '@inquirer/confirm': 5.1.21(@types/node@18.19.130) + '@mswjs/interceptors': 0.39.8 + '@open-draft/deferred-promise': 2.2.0 + '@open-draft/until': 2.1.0 + '@types/cookie': 0.6.0 + '@types/statuses': 2.0.6 + graphql: 16.12.0 + headers-polyfill: 4.0.3 + is-node-process: 1.2.0 + outvariant: 1.4.3 + path-to-regexp: 6.3.0 + picocolors: 1.1.1 + rettime: 0.7.0 + strict-event-emitter: 0.5.1 + tough-cookie: 6.0.0 + type-fest: 4.41.0 + yargs: 17.7.2 + optionalDependencies: + typescript: 5.7.3 + transitivePeerDependencies: + - '@types/node' + + mute-stream@2.0.0: {} + + nano-spawn@2.0.0: {} + + natural-compare@1.4.0: {} + + neo-async@2.6.2: {} + + nock@14.0.10: + dependencies: + '@mswjs/interceptors': 0.39.8 + json-stringify-safe: 5.0.1 + propagate: 2.0.1 + + node-int64@0.4.0: {} + + node-releases@2.0.27: {} + + normalize-path@3.0.0: {} + + npm-run-path@4.0.1: + dependencies: + path-key: 3.1.1 + + nwsapi@2.2.22: {} + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + onetime@5.1.2: + dependencies: + mimic-fn: 2.1.0 + + onetime@7.0.0: + dependencies: + mimic-function: 5.0.1 + + optionator@0.9.4: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 + + outvariant@1.4.3: {} + + p-limit@2.3.0: + dependencies: + p-try: 2.2.0 + + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + + p-locate@4.1.0: + dependencies: + p-limit: 2.3.0 + + p-locate@5.0.0: + dependencies: + p-limit: 3.1.0 + + p-try@2.2.0: {} + + parent-module@1.0.1: + dependencies: + callsites: 3.1.0 + + parse-json@5.2.0: + dependencies: + '@babel/code-frame': 7.27.1 + error-ex: 1.3.4 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + + parse5@7.3.0: + dependencies: + entities: 6.0.1 + + path-exists@4.0.0: {} + + path-is-absolute@1.0.1: {} + + path-key@3.1.1: {} + + path-parse@1.0.7: {} + + path-to-regexp@6.3.0: {} + + picocolors@1.1.1: {} + + picomatch@2.3.1: {} + + picomatch@4.0.3: {} + + pidtree@0.6.0: {} + + pirates@4.0.7: {} + + pkg-dir@4.2.0: + dependencies: + find-up: 4.1.0 + + prelude-ls@1.2.1: {} + + prettier-linter-helpers@1.0.0: + dependencies: + fast-diff: 1.3.0 + + prettier@3.7.3: {} + + pretty-format@29.7.0: + dependencies: + '@jest/schemas': 29.6.3 + ansi-styles: 5.2.0 + react-is: 18.3.1 + + prompts@2.4.2: + dependencies: + kleur: 3.0.3 + sisteransi: 1.0.5 + + propagate@2.0.1: {} + + psl@1.15.0: + dependencies: + punycode: 2.3.1 + + punycode.js@2.3.1: {} + + punycode@2.3.1: {} + + pure-rand@6.1.0: {} + + querystringify@2.2.0: {} + + randombytes@2.1.0: + dependencies: + safe-buffer: 5.2.1 + + react-is@18.3.1: {} + + require-directory@2.1.1: {} + + require-from-string@2.0.2: {} + + requires-port@1.0.0: {} + + resolve-cwd@3.0.0: + dependencies: + resolve-from: 5.0.0 + + resolve-from@4.0.0: {} + + resolve-from@5.0.0: {} + + resolve.exports@2.0.3: {} + + resolve@1.22.11: + dependencies: + is-core-module: 2.16.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + restore-cursor@5.1.0: + dependencies: + onetime: 7.0.0 + signal-exit: 4.1.0 + + rettime@0.7.0: {} + + rfdc@1.4.1: {} + + safe-buffer@5.2.1: {} + + safer-buffer@2.1.2: {} + + saxes@6.0.0: + dependencies: + xmlchars: 2.2.0 + + schema-utils@4.3.3: + dependencies: + '@types/json-schema': 7.0.15 + ajv: 8.17.1 + ajv-formats: 2.1.1(ajv@8.17.1) + ajv-keywords: 5.1.0(ajv@8.17.1) + + semver@6.3.1: {} + + semver@7.7.3: {} + + serialize-javascript@6.0.2: + dependencies: + randombytes: 2.1.0 + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + signal-exit@3.0.7: {} + + signal-exit@4.1.0: {} + + sisteransi@1.0.5: {} + + slash@3.0.0: {} + + slice-ansi@7.1.2: + dependencies: + ansi-styles: 6.2.3 + is-fullwidth-code-point: 5.1.0 + + source-map-support@0.5.13: + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + + source-map-support@0.5.21: + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + + source-map@0.6.1: {} + + source-map@0.7.6: {} + + sprintf-js@1.0.3: {} + + stack-utils@2.0.6: + dependencies: + escape-string-regexp: 2.0.0 + + statuses@2.0.2: {} + + strict-event-emitter@0.5.1: {} + + string-argv@0.3.2: {} + + string-length@4.0.2: + dependencies: + char-regex: 1.0.2 + strip-ansi: 6.0.1 + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string-width@7.2.0: + dependencies: + emoji-regex: 10.6.0 + get-east-asian-width: 1.4.0 + strip-ansi: 7.1.2 + + string-width@8.1.0: + dependencies: + get-east-asian-width: 1.4.0 + strip-ansi: 7.1.2 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-ansi@7.1.2: + dependencies: + ansi-regex: 6.2.2 + + strip-bom@4.0.0: {} + + strip-final-newline@2.0.0: {} + + strip-json-comments@3.1.1: {} + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + supports-color@8.1.1: + dependencies: + has-flag: 4.0.0 + + supports-preserve-symlinks-flag@1.0.0: {} + + symbol-tree@3.2.4: {} + + synckit@0.11.11: + dependencies: + '@pkgr/core': 0.2.9 + + tapable@2.3.0: {} + + terser-webpack-plugin@5.3.14(webpack@5.103.0): + dependencies: + '@jridgewell/trace-mapping': 0.3.31 + jest-worker: 27.5.1 + schema-utils: 4.3.3 + serialize-javascript: 6.0.2 + terser: 5.44.1 + webpack: 5.103.0 + + terser@5.44.1: + dependencies: + '@jridgewell/source-map': 0.3.11 + acorn: 8.15.0 + commander: 2.20.3 + source-map-support: 0.5.21 + + test-exclude@6.0.0: + dependencies: + '@istanbuljs/schema': 0.1.3 + glob: 7.2.3 + minimatch: 3.1.2 + + tinyglobby@0.2.15: + dependencies: + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + + tldts-core@7.0.19: {} + + tldts@7.0.19: + dependencies: + tldts-core: 7.0.19 + + tmpl@1.0.5: {} + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + tough-cookie@4.1.4: + dependencies: + psl: 1.15.0 + punycode: 2.3.1 + universalify: 0.2.0 + url-parse: 1.5.10 + + tough-cookie@6.0.0: + dependencies: + tldts: 7.0.19 + + tr46@3.0.0: + dependencies: + punycode: 2.3.1 + + ts-api-utils@2.1.0(typescript@5.7.3): + dependencies: + typescript: 5.7.3 + + ts-jest@29.4.6(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@29.7.0)(jest@29.7.0(@types/node@18.19.130))(typescript@5.7.3): + dependencies: + bs-logger: 0.2.6 + fast-json-stable-stringify: 2.1.0 + handlebars: 4.7.8 + jest: 29.7.0(@types/node@18.19.130) + json5: 2.2.3 + lodash.memoize: 4.1.2 + make-error: 1.3.6 + semver: 7.7.3 + type-fest: 4.41.0 + typescript: 5.7.3 + yargs-parser: 21.1.1 + optionalDependencies: + '@babel/core': 7.28.5 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + babel-jest: 29.7.0(@babel/core@7.28.5) + jest-util: 29.7.0 + + ts-loader@9.5.4(typescript@5.7.3)(webpack@5.103.0): + dependencies: + chalk: 4.1.2 + enhanced-resolve: 5.18.3 + micromatch: 4.0.8 + semver: 7.7.3 + source-map: 0.7.6 + typescript: 5.7.3 + webpack: 5.103.0 + + type-check@0.4.0: + dependencies: + prelude-ls: 1.2.1 + + type-detect@4.0.8: {} + + type-fest@0.21.3: {} + + type-fest@4.41.0: {} + + typedoc-plugin-missing-exports@4.1.2(typedoc@0.28.15(typescript@5.7.3)): + dependencies: + typedoc: 0.28.15(typescript@5.7.3) + + typedoc@0.28.15(typescript@5.7.3): + dependencies: + '@gerrit0/mini-shiki': 3.18.0 + lunr: 2.3.9 + markdown-it: 14.1.0 + minimatch: 9.0.5 + typescript: 5.7.3 + yaml: 2.8.2 + + typescript@5.7.3: {} + + uc.micro@2.1.0: {} + + uglify-js@3.19.3: + optional: true + + undici-types@5.26.5: {} + + undici-types@6.21.0: {} + + undici@7.16.0: {} + + universalify@0.2.0: {} + + update-browserslist-db@1.1.4(browserslist@4.28.0): + dependencies: + browserslist: 4.28.0 + escalade: 3.2.0 + picocolors: 1.1.1 + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + + url-parse@1.5.10: + dependencies: + querystringify: 2.2.0 + requires-port: 1.0.0 + + uuid@11.1.0: {} + + uuid@9.0.1: {} + + v8-to-istanbul@9.3.0: + dependencies: + '@jridgewell/trace-mapping': 0.3.31 + '@types/istanbul-lib-coverage': 2.0.6 + convert-source-map: 2.0.0 + + w3c-xmlserializer@4.0.0: + dependencies: + xml-name-validator: 4.0.0 + + walker@1.0.8: + dependencies: + makeerror: 1.0.12 + + watchpack@2.4.4: + dependencies: + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + + webidl-conversions@7.0.0: {} + + webpack-sources@3.3.3: {} + + webpack@5.103.0: + dependencies: + '@types/eslint-scope': 3.7.7 + '@types/estree': 1.0.8 + '@types/json-schema': 7.0.15 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/wasm-edit': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 + acorn: 8.15.0 + acorn-import-phases: 1.0.4(acorn@8.15.0) + browserslist: 4.28.0 + chrome-trace-event: 1.0.4 + enhanced-resolve: 5.18.3 + es-module-lexer: 1.7.0 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.3.1 + mime-types: 2.1.35 + neo-async: 2.6.2 + schema-utils: 4.3.3 + tapable: 2.3.0 + terser-webpack-plugin: 5.3.14(webpack@5.103.0) + watchpack: 2.4.4 + webpack-sources: 3.3.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + + whatwg-encoding@2.0.0: + dependencies: + iconv-lite: 0.6.3 + + whatwg-mimetype@3.0.0: {} + + whatwg-url@11.0.0: + dependencies: + tr46: 3.0.0 + webidl-conversions: 7.0.0 + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + word-wrap@1.2.5: {} + + wordwrap@1.0.0: {} + + wrap-ansi@6.2.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@9.0.2: + dependencies: + ansi-styles: 6.2.3 + string-width: 7.2.0 + strip-ansi: 7.1.2 + + wrappy@1.0.2: {} + + write-file-atomic@4.0.2: + dependencies: + imurmurhash: 0.1.4 + signal-exit: 3.0.7 + + ws@8.18.3: {} + + xml-name-validator@4.0.0: {} + + xmlchars@2.2.0: {} + + y18n@5.0.8: {} + + yallist@3.1.1: {} + + yaml@2.8.2: {} + + yargs-parser@21.1.1: {} + + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + + yocto-queue@0.1.0: {} + + yoctocolors-cjs@2.1.3: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 0000000000..6e4c395107 --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1 @@ +packages: ['.'] \ No newline at end of file diff --git a/reference.md b/reference.md index 2633abfe85..be71253b94 100644 --- a/reference.md +++ b/reference.md @@ -1,7 +1,5 @@ # Reference - ## Actions -
client.actions.list({ ...params }) -> core.Page
@@ -15,7 +13,6 @@
Retrieve all actions. -
@@ -36,7 +33,7 @@ const pageableResponse = await client.actions.list({ deployed: true, page: 1, per_page: 1, - installed: true, + installed: true }); for await (const item of pageableResponse) { console.log(item); @@ -49,7 +46,7 @@ let page = await client.actions.list({ deployed: true, page: 1, per_page: 1, - installed: true, + installed: true }); while (page.hasNextPage()) { page = page.getNextPage(); @@ -57,8 +54,8 @@ while (page.hasNextPage()) { // You can also access the underlying response const response = page.response; -``` +``` @@ -72,21 +69,22 @@ const response = page.response;
-**request:** `Management.ListActionsRequestParameters` - +**request:** `Management.ListActionsRequestParameters` +
-**requestOptions:** `Actions.RequestOptions` - +**requestOptions:** `ActionsClient.RequestOptions` +
+
@@ -104,7 +102,6 @@ const response = page.response;
Create an action. Once an action is created, it must be deployed, and then bound to a trigger before it will be executed as part of a flow. -
@@ -121,14 +118,12 @@ Create an action. Once an action is created, it must be deployed, and then bound ```typescript await client.actions.create({ name: "name", - supported_triggers: [ - { - id: "id", - }, - ], + supported_triggers: [{ + id: "id" + }] }); -``` +``` @@ -142,21 +137,22 @@ await client.actions.create({
-**request:** `Management.CreateActionRequestContent` - +**request:** `Management.CreateActionRequestContent` +
-**requestOptions:** `Actions.RequestOptions` - +**requestOptions:** `ActionsClient.RequestOptions` +
+ @@ -174,7 +170,6 @@ await client.actions.create({
Retrieve an action by its ID. -
@@ -190,8 +185,8 @@ Retrieve an action by its ID. ```typescript await client.actions.get("id"); -``` +``` @@ -206,20 +201,21 @@ await client.actions.get("id");
**id:** `string` — The ID of the action to retrieve. - +
-**requestOptions:** `Actions.RequestOptions` - +**requestOptions:** `ActionsClient.RequestOptions` +
+ @@ -237,7 +233,6 @@ await client.actions.get("id");
Deletes an action and all of its associated versions. An action must be unbound from all triggers before it can be deleted. -
@@ -253,10 +248,10 @@ Deletes an action and all of its associated versions. An action must be unbound ```typescript await client.actions.delete("id", { - force: true, + force: true }); -``` +``` @@ -271,28 +266,29 @@ await client.actions.delete("id", {
**id:** `string` — The ID of the action to delete. - +
-**request:** `Management.DeleteActionRequestParameters` - +**request:** `Management.DeleteActionRequestParameters` +
-**requestOptions:** `Actions.RequestOptions` - +**requestOptions:** `ActionsClient.RequestOptions` +
+ @@ -310,7 +306,6 @@ await client.actions.delete("id", {
Update an existing action. If this action is currently bound to a trigger, updating it will not affect any user flows until the action is deployed. -
@@ -326,8 +321,8 @@ Update an existing action. If this action is currently bound to a trigger, updat ```typescript await client.actions.update("id"); -``` +``` @@ -342,28 +337,29 @@ await client.actions.update("id");
**id:** `string` — The id of the action to update. - +
-**request:** `Management.UpdateActionRequestContent` - +**request:** `Management.UpdateActionRequestContent` +
-**requestOptions:** `Actions.RequestOptions` - +**requestOptions:** `ActionsClient.RequestOptions` +
+ @@ -381,7 +377,6 @@ await client.actions.update("id");
Deploy an action. Deploying an action will create a new immutable version of the action. If the action is currently bound to a trigger, then the system will begin executing the newly deployed version of the action immediately. Otherwise, the action will only be executed as a part of a flow once it is bound to that flow. -
@@ -397,8 +392,8 @@ Deploy an action. Deploying an action will create a new immutable version of the ```typescript await client.actions.deploy("id"); -``` +``` @@ -413,20 +408,21 @@ await client.actions.deploy("id");
**id:** `string` — The ID of an action. - +
-**requestOptions:** `Actions.RequestOptions` - +**requestOptions:** `ActionsClient.RequestOptions` +
+ @@ -444,7 +440,6 @@ await client.actions.deploy("id");
Test an action. After updating an action, it can be tested prior to being deployed to ensure it behaves as expected. -
@@ -461,11 +456,11 @@ Test an action. After updating an action, it can be tested prior to being deploy ```typescript await client.actions.test("id", { payload: { - key: "value", - }, + "key": "value" + } }); -``` +``` @@ -480,34 +475,34 @@ await client.actions.test("id", {
**id:** `string` — The id of the action to test. - +
-**request:** `Management.TestActionRequestContent` - +**request:** `Management.TestActionRequestContent` +
-**requestOptions:** `Actions.RequestOptions` - +**requestOptions:** `ActionsClient.RequestOptions` +
+ ## Branding -
client.branding.get() -> Management.GetBrandingResponseContent
@@ -521,7 +516,6 @@ await client.actions.test("id", {
Retrieve branding settings. -
@@ -537,8 +531,8 @@ Retrieve branding settings. ```typescript await client.branding.get(); -``` +``` @@ -552,13 +546,14 @@ await client.branding.get();
-**requestOptions:** `Branding.RequestOptions` - +**requestOptions:** `BrandingClient.RequestOptions` +
+
@@ -576,7 +571,6 @@ await client.branding.get();
Update branding settings. -
@@ -592,8 +586,8 @@ Update branding settings. ```typescript await client.branding.update(); -``` +``` @@ -607,27 +601,27 @@ await client.branding.update();
-**request:** `Management.UpdateBrandingRequestContent` - +**request:** `Management.UpdateBrandingRequestContent` +
-**requestOptions:** `Branding.RequestOptions` - +**requestOptions:** `BrandingClient.RequestOptions` +
+ ## ClientGrants -
client.clientGrants.list({ ...params }) -> core.Page
@@ -640,8 +634,7 @@ await client.branding.update();
-Retrieve a list of client grants, including the scopes associated with the application/API pair. - +Retrieve a list of client grants, including the scopes associated with the application/API pair.
@@ -661,8 +654,7 @@ const pageableResponse = await client.clientGrants.list({ take: 1, audience: "audience", client_id: "client_id", - allow_any_organization: true, - subject_type: "client", + allow_any_organization: true }); for await (const item of pageableResponse) { console.log(item); @@ -674,8 +666,7 @@ let page = await client.clientGrants.list({ take: 1, audience: "audience", client_id: "client_id", - allow_any_organization: true, - subject_type: "client", + allow_any_organization: true }); while (page.hasNextPage()) { page = page.getNextPage(); @@ -683,8 +674,8 @@ while (page.hasNextPage()) { // You can also access the underlying response const response = page.response; -``` +```
@@ -698,21 +689,22 @@ const response = page.response;
-**request:** `Management.ListClientGrantsRequestParameters` - +**request:** `Management.ListClientGrantsRequestParameters` +
-**requestOptions:** `ClientGrants.RequestOptions` - +**requestOptions:** `ClientGrantsClient.RequestOptions` +
+
@@ -730,7 +722,6 @@ const response = page.response;
Create a client grant for a machine-to-machine login flow. To learn more, read Client Credential Flow. -
@@ -748,9 +739,10 @@ Create a client grant for a machine-to-machine login flow. To learn more, read < await client.clientGrants.create({ client_id: "client_id", audience: "audience", + scope: ["scope"] }); -``` +``` @@ -764,21 +756,22 @@ await client.clientGrants.create({
-**request:** `Management.CreateClientGrantRequestContent` - +**request:** `Management.CreateClientGrantRequestContent` +
-**requestOptions:** `ClientGrants.RequestOptions` - +**requestOptions:** `ClientGrantsClient.RequestOptions` +
+ @@ -796,7 +789,6 @@ await client.clientGrants.create({
Delete the Client Credential Flow from your machine-to-machine application. -
@@ -812,8 +804,8 @@ Delete the @@ -828,20 +820,21 @@ await client.clientGrants.delete("id");
**id:** `string` — ID of the client grant to delete. - +
-**requestOptions:** `ClientGrants.RequestOptions` - +**requestOptions:** `ClientGrantsClient.RequestOptions` +
+ @@ -859,7 +852,6 @@ await client.clientGrants.delete("id");
Update a client grant. -
@@ -875,8 +867,8 @@ Update a client grant. ```typescript await client.clientGrants.update("id"); -``` +``` @@ -891,34 +883,34 @@ await client.clientGrants.update("id");
**id:** `string` — ID of the client grant to update. - +
-**request:** `Management.UpdateClientGrantRequestContent` - +**request:** `Management.UpdateClientGrantRequestContent` +
-**requestOptions:** `ClientGrants.RequestOptions` - +**requestOptions:** `ClientGrantsClient.RequestOptions` +
+ ## Clients -
client.clients.list({ ...params }) -> core.Page
@@ -987,7 +979,7 @@ const pageableResponse = await client.clients.list({ is_global: true, is_first_party: true, app_type: "app_type", - q: "q", + q: "q" }); for await (const item of pageableResponse) { console.log(item); @@ -1003,7 +995,7 @@ let page = await client.clients.list({ is_global: true, is_first_party: true, app_type: "app_type", - q: "q", + q: "q" }); while (page.hasNextPage()) { page = page.getNextPage(); @@ -1011,8 +1003,8 @@ while (page.hasNextPage()) { // You can also access the underlying response const response = page.response; -``` +```
@@ -1026,21 +1018,22 @@ const response = page.response;
-**request:** `Management.ListClientsRequestParameters` - +**request:** `Management.ListClientsRequestParameters` +
-**requestOptions:** `Clients.RequestOptions` - +**requestOptions:** `ClientsClient.RequestOptions` +
+
@@ -1058,16 +1051,15 @@ const response = page.response;
Create a new client (application or SSO integration). For more information, read Create Applications -API Endpoints for Single Sign-On. - -Notes: +API Endpoints for Single Sign-On. +Notes: - We recommend leaving the `client_secret` parameter unspecified to allow the generation of a safe secret. -- The client_authentication_methods and token_endpoint_auth_method properties are mutually exclusive. Use - client_authentication_methods to configure the client with Private Key JWT authentication method. Otherwise, use token_endpoint_auth_method - to configure the client with client secret (basic or post) or with no authentication method (none). -- When using client_authentication_methods to configure the client with Private Key JWT authentication method, specify fully defined credentials. - These credentials will be automatically enabled for Private Key JWT authentication on the client. +- The client_authentication_methods and token_endpoint_auth_method properties are mutually exclusive. Use +client_authentication_methods to configure the client with Private Key JWT authentication method. Otherwise, use token_endpoint_auth_method +to configure the client with client secret (basic or post) or with no authentication method (none). +- When using client_authentication_methods to configure the client with Private Key JWT authentication method, specify fully defined credentials. +These credentials will be automatically enabled for Private Key JWT authentication on the client. - To configure client_authentication_methods, the create:client_credentials scope is required. - To configure client_authentication_methods, the property jwt_configuration.alg must be set to RS256. @@ -1087,10 +1079,10 @@ Notes: ```typescript await client.clients.create({ - name: "name", + name: "name" }); -``` +```
@@ -1104,21 +1096,22 @@ await client.clients.create({
-**request:** `Management.CreateClientRequestContent` - +**request:** `Management.CreateClientRequestContent` +
-**requestOptions:** `Clients.RequestOptions` - +**requestOptions:** `ClientsClient.RequestOptions` +
+ @@ -1135,9 +1128,8 @@ await client.clients.create({
-Retrieve client details by ID. Clients are SSO connections or Applications linked with your Auth0 tenant. A list of fields to include or exclude may also be specified. +Retrieve client details by ID. Clients are SSO connections or Applications linked with your Auth0 tenant. A list of fields to include or exclude may also be specified. For more information, read Applications in Auth0 and Single Sign-On. -
@@ -1201,28 +1193,29 @@ await client.clients.get("id", {
**id:** `string` — ID of the client to retrieve. - +
-**request:** `Management.GetClientRequestParameters` - +**request:** `Management.GetClientRequestParameters` +
-**requestOptions:** `Clients.RequestOptions` - +**requestOptions:** `ClientsClient.RequestOptions` +
+ @@ -1240,7 +1233,6 @@ await client.clients.get("id", {
Delete a client and related configuration (rules, connections, etc). -
@@ -1256,8 +1248,8 @@ Delete a client and related configuration (rules, connections, etc). ```typescript await client.clients.delete("id"); -``` +``` @@ -1272,20 +1264,21 @@ await client.clients.delete("id");
**id:** `string` — ID of the client to delete. - +
-**requestOptions:** `Clients.RequestOptions` - +**requestOptions:** `ClientsClient.RequestOptions` +
+ @@ -1305,17 +1298,16 @@ await client.clients.delete("id"); Updates a client's settings. For more information, read
Applications in Auth0 and Single Sign-On. Notes: - - The `client_secret` and `signing_key` attributes can only be updated with the `update:client_keys` scope. - The client_authentication_methods and token_endpoint_auth_method properties are mutually exclusive. Use client_authentication_methods to configure the client with Private Key JWT authentication method. Otherwise, use token_endpoint_auth_method to configure the client with client secret (basic or post) or with no authentication method (none). - When using client_authentication_methods to configure the client with Private Key JWT authentication method, only specify the credential IDs that were generated when creating the credentials on the client. - To configure client_authentication_methods, the update:client_credentials scope is required. - To configure client_authentication_methods, the property jwt_configuration.alg must be set to RS256. - To change a client's is_first_party property to false, the organization_usage and organization_require_behavior properties must be unset. - - - - + + + + #### 🔌 Usage @@ -1327,8 +1319,8 @@ Notes: ```typescript await client.clients.update("id"); -``` +``` @@ -1343,28 +1335,29 @@ await client.clients.update("id");
**id:** `string` — ID of the client to update. - +
-**request:** `Management.UpdateClientRequestContent` - +**request:** `Management.UpdateClientRequestContent` +
-**requestOptions:** `Clients.RequestOptions` - +**requestOptions:** `ClientsClient.RequestOptions` +
+ @@ -1386,7 +1379,6 @@ Rotate a client secret. This endpoint cannot be used with clients configured with Private Key JWT authentication method (client_authentication_methods configured with private_key_jwt). The generated secret is NOT base64 encoded. For more information, read Rotate Client Secrets. - @@ -1402,8 +1394,8 @@ For more information, read @@ -1418,26 +1410,26 @@ await client.clients.rotateSecret("id");
**id:** `string` — ID of the client that will rotate secrets. - +
-**requestOptions:** `Clients.RequestOptions` - +**requestOptions:** `ClientsClient.RequestOptions` +
+ ## Connections -
client.connections.list({ ...params }) -> core.Page
@@ -1450,10 +1442,9 @@ await client.clients.rotateSecret("id");
-Retrieves detailed list of all connections that match the specified strategy. If no strategy is provided, all connections within your tenant are retrieved. This action can accept a list of fields to include or exclude from the resulting list of connections. +Retrieves detailed list of all connections that match the specified strategy. If no strategy is provided, all connections within your tenant are retrieved. This action can accept a list of fields to include or exclude from the resulting list of connections. This endpoint supports two types of pagination: -
  • Offset pagination
  • Checkpoint pagination
  • @@ -1464,14 +1455,12 @@ Checkpoint pagination must be used if you need to retrieve more than 1000 connec

    Checkpoint Pagination

    To search by checkpoint, use the following parameters: -
    • from: Optional id from which to start selection.
    • take: The total amount of entries to retrieve when using the from parameter. Defaults to 50.
    Note: The first time you call this endpoint using checkpoint pagination, omit the from parameter. If there are more results, a next value is included in the response. You can use this for subsequent API calls. When next is no longer included in the response, no pages are remaining. -
@@ -1491,7 +1480,7 @@ const pageableResponse = await client.connections.list({ take: 1, name: "name", fields: "fields", - include_fields: true, + include_fields: true }); for await (const item of pageableResponse) { console.log(item); @@ -1503,7 +1492,7 @@ let page = await client.connections.list({ take: 1, name: "name", fields: "fields", - include_fields: true, + include_fields: true }); while (page.hasNextPage()) { page = page.getNextPage(); @@ -1511,8 +1500,8 @@ while (page.hasNextPage()) { // You can also access the underlying response const response = page.response; -``` +```
@@ -1526,21 +1515,22 @@ const response = page.response;
-**request:** `Management.ListConnectionsQueryParameters` - +**request:** `Management.ListConnectionsQueryParameters` +
-**requestOptions:** `Connections.RequestOptions` - +**requestOptions:** `ConnectionsClient.RequestOptions` +
+
@@ -1558,7 +1548,6 @@ const response = page.response;
Creates a new connection according to the JSON object received in body.
-
@@ -1575,10 +1564,10 @@ Creates a new connection according to the JSON object received in body @@ -1592,21 +1581,22 @@ await client.connections.create({
-**request:** `Management.CreateConnectionRequestContent` - +**request:** `Management.CreateConnectionRequestContent` +
-**requestOptions:** `Connections.RequestOptions` - +**requestOptions:** `ConnectionsClient.RequestOptions` +
+ @@ -1624,7 +1614,6 @@ await client.connections.create({
Retrieve details for a specified connection along with options that can be used for identity provider configuration. -
@@ -1641,10 +1630,10 @@ Retrieve details for a specified @@ -1659,28 +1648,29 @@ await client.connections.get("id", {
**id:** `string` — The id of the connection to retrieve - +
-**request:** `Management.GetConnectionRequestParameters` - +**request:** `Management.GetConnectionRequestParameters` +
-**requestOptions:** `Connections.RequestOptions` - +**requestOptions:** `ConnectionsClient.RequestOptions` +
+ @@ -1698,7 +1688,6 @@ await client.connections.get("id", {
Removes a specific connection from your tenant. This action cannot be undone. Once removed, users can no longer use this connection to authenticate. -
@@ -1714,8 +1703,8 @@ Removes a specific @@ -1730,20 +1719,21 @@ await client.connections.delete("id");
**id:** `string` — The id of the connection to delete - +
-**requestOptions:** `Connections.RequestOptions` - +**requestOptions:** `ConnectionsClient.RequestOptions` +
+ @@ -1763,7 +1753,6 @@ await client.connections.delete("id"); Update details for a specific
connection, including option properties for identity provider configuration. Note: If you use the options parameter, the entire options object is overriden. To avoid partial data or other issues, ensure all parameters are present when using this option. - @@ -1779,8 +1768,8 @@ Update details for a specific @@ -1795,28 +1784,29 @@ await client.connections.update("id");
**id:** `string` — The id of the connection to update - +
-**request:** `Management.UpdateConnectionRequestContent` - +**request:** `Management.UpdateConnectionRequestContent` +
-**requestOptions:** `Connections.RequestOptions` - +**requestOptions:** `ConnectionsClient.RequestOptions` +
+ @@ -1833,8 +1823,7 @@ await client.connections.update("id");
-Retrieves the status of an ad/ldap connection referenced by its ID. 200 OK http status code response is returned when the connection is online, otherwise a 404 status code is returned along with an error message - +Retrieves the status of an ad/ldap connection referenced by its ID. 200 OK http status code response is returned when the connection is online, otherwise a 404 status code is returned along with an error message
@@ -1850,8 +1839,8 @@ Retrieves the status of an ad/ldap connection referenced by its ID. ```typescript await client.connections.checkStatus("id"); -``` +``` @@ -1866,26 +1855,26 @@ await client.connections.checkStatus("id");
**id:** `string` — ID of the connection to check - +
-**requestOptions:** `Connections.RequestOptions` - +**requestOptions:** `ConnectionsClient.RequestOptions` +
+ ## CustomDomains -
client.customDomains.list() -> Management.ListCustomDomainsResponseContent
@@ -1899,7 +1888,6 @@ await client.connections.checkStatus("id");
Retrieve details on custom domains. -
@@ -1915,8 +1903,8 @@ Retrieve details on custom domai ```typescript await client.customDomains.list(); -``` +``` @@ -1930,13 +1918,14 @@ await client.customDomains.list();
-**requestOptions:** `CustomDomains.RequestOptions` - +**requestOptions:** `CustomDomainsClient.RequestOptions` +
+
@@ -1963,13 +1952,14 @@ Optional attributes that can be updated: - custom_client_ip_header - tls_policy + TLS Policies: - recommended - for modern usage this includes TLS 1.2 only - - - - + + + + #### 🔌 Usage @@ -1982,10 +1972,10 @@ TLS Policies: ```typescript await client.customDomains.create({ domain: "domain", - type: "auth0_managed_certs", + type: "auth0_managed_certs" }); -``` +``` @@ -1999,21 +1989,22 @@ await client.customDomains.create({
-**request:** `Management.CreateCustomDomainRequestContent` - +**request:** `Management.CreateCustomDomainRequestContent` +
-**requestOptions:** `CustomDomains.RequestOptions` - +**requestOptions:** `CustomDomainsClient.RequestOptions` +
+ @@ -2031,7 +2022,6 @@ await client.customDomains.create({
Retrieve a custom domain configuration and status. -
@@ -2047,8 +2037,8 @@ Retrieve a custom domain configuration and status. ```typescript await client.customDomains.get("id"); -``` +``` @@ -2063,20 +2053,21 @@ await client.customDomains.get("id");
**id:** `string` — ID of the custom domain to retrieve. - +
-**requestOptions:** `CustomDomains.RequestOptions` - +**requestOptions:** `CustomDomainsClient.RequestOptions` +
+ @@ -2094,7 +2085,6 @@ await client.customDomains.get("id");
Delete a custom domain and stop serving requests for it. -
@@ -2110,8 +2100,8 @@ Delete a custom domain and stop serving requests for it. ```typescript await client.customDomains.delete("id"); -``` +``` @@ -2126,20 +2116,21 @@ await client.customDomains.delete("id");
**id:** `string` — ID of the custom domain to delete. - +
-**requestOptions:** `CustomDomains.RequestOptions` - +**requestOptions:** `CustomDomainsClient.RequestOptions` +
+ @@ -2170,18 +2161,20 @@ send should be:
Updating TLS_POLICY for a custom domain
To update the tls_policy for a domain, the body to send should be:
{ "tls_policy": "recommended" }
+ TLS Policies: - recommended - for modern usage this includes TLS 1.2 only + Some considerations: - The TLS ciphers and protocols available in each TLS policy follow industry recommendations, and may be updated occasionally. - The compatible TLS policy is no longer supported. - - - - + + + + #### 🔌 Usage @@ -2193,8 +2186,8 @@ Some considerations: ```typescript await client.customDomains.update("id"); -``` +``` @@ -2209,28 +2202,29 @@ await client.customDomains.update("id");
**id:** `string` — The id of the custom domain to update - +
-**request:** `Management.UpdateCustomDomainRequestContent` - +**request:** `Management.UpdateCustomDomainRequestContent` +
-**requestOptions:** `CustomDomains.RequestOptions` - +**requestOptions:** `CustomDomainsClient.RequestOptions` +
+ @@ -2248,7 +2242,6 @@ await client.customDomains.update("id");
Run the test process on a custom domain. -
@@ -2264,8 +2257,8 @@ Run the test process on a custom domain. ```typescript await client.customDomains.test("id"); -``` +``` @@ -2280,20 +2273,21 @@ await client.customDomains.test("id");
**id:** `string` — ID of the custom domain to test. - +
-**requestOptions:** `CustomDomains.RequestOptions` - +**requestOptions:** `CustomDomainsClient.RequestOptions` +
+ @@ -2318,7 +2312,6 @@ For self_managed_certs, when the custom domain is verified for the
Learn more about verifying custom domains that use Auth0 Managed certificates. Learn more about verifying custom domains that use Self Managed certificates. - @@ -2334,8 +2327,8 @@ For self_managed_certs, when the custom domain is verified for the ```typescript await client.customDomains.verify("id"); -``` +``` @@ -2350,26 +2343,26 @@ await client.customDomains.verify("id");
**id:** `string` — ID of the custom domain to verify. - +
-**requestOptions:** `CustomDomains.RequestOptions` - +**requestOptions:** `CustomDomainsClient.RequestOptions` +
+ ## DeviceCredentials -
client.deviceCredentials.list({ ...params }) -> core.Page
@@ -2383,7 +2376,6 @@ await client.customDomains.verify("id");
Retrieve device credential information (public_key, refresh_token, or rotating_refresh_token) associated with a specific user. -
@@ -2406,7 +2398,7 @@ const pageableResponse = await client.deviceCredentials.list({ include_fields: true, user_id: "user_id", client_id: "client_id", - type: "public_key", + type: "public_key" }); for await (const item of pageableResponse) { console.log(item); @@ -2421,7 +2413,7 @@ let page = await client.deviceCredentials.list({ include_fields: true, user_id: "user_id", client_id: "client_id", - type: "public_key", + type: "public_key" }); while (page.hasNextPage()) { page = page.getNextPage(); @@ -2429,8 +2421,8 @@ while (page.hasNextPage()) { // You can also access the underlying response const response = page.response; -``` +``` @@ -2444,21 +2436,22 @@ const response = page.response;
-**request:** `Management.ListDeviceCredentialsRequestParameters` - +**request:** `Management.ListDeviceCredentialsRequestParameters` +
-**requestOptions:** `DeviceCredentials.RequestOptions` - +**requestOptions:** `DeviceCredentialsClient.RequestOptions` +
+
@@ -2478,7 +2471,6 @@ const response = page.response; Create a device credential public key to manage refresh token rotation for a given user_id. Device Credentials APIs are designed for ad-hoc administrative use only and paging is by default enabled for GET requests. When refresh token rotation is enabled, the endpoint becomes consistent. For more information, read Signing Keys. - @@ -2496,10 +2488,10 @@ When refresh token rotation is enabled, the endpoint becomes consistent. For mor await client.deviceCredentials.createPublicKey({ device_name: "device_name", value: "value", - device_id: "device_id", + device_id: "device_id" }); -``` +``` @@ -2513,21 +2505,22 @@ await client.deviceCredentials.createPublicKey({
-**request:** `Management.CreatePublicKeyDeviceCredentialRequestContent` - +**request:** `Management.CreatePublicKeyDeviceCredentialRequestContent` +
-**requestOptions:** `DeviceCredentials.RequestOptions` - +**requestOptions:** `DeviceCredentialsClient.RequestOptions` +
+ @@ -2545,7 +2538,6 @@ await client.deviceCredentials.createPublicKey({
Permanently delete a device credential (such as a refresh token or public key) with the given ID. -
@@ -2561,8 +2553,8 @@ Permanently delete a device credential (such as a refresh token or public key) w ```typescript await client.deviceCredentials.delete("id"); -``` +``` @@ -2577,26 +2569,26 @@ await client.deviceCredentials.delete("id");
**id:** `string` — ID of the credential to delete. - +
-**requestOptions:** `DeviceCredentials.RequestOptions` - +**requestOptions:** `DeviceCredentialsClient.RequestOptions` +
+ ## EmailTemplates -
client.emailTemplates.create({ ...params }) -> Management.CreateEmailTemplateResponseContent
@@ -2610,7 +2602,6 @@ await client.deviceCredentials.delete("id");
Create an email template. -
@@ -2626,10 +2617,10 @@ Create an email template. ```typescript await client.emailTemplates.create({ - template: "verify_email", + template: "verify_email" }); -``` +``` @@ -2643,21 +2634,22 @@ await client.emailTemplates.create({
-**request:** `Management.CreateEmailTemplateRequestContent` - +**request:** `Management.CreateEmailTemplateRequestContent` +
-**requestOptions:** `EmailTemplates.RequestOptions` - +**requestOptions:** `EmailTemplatesClient.RequestOptions` +
+
@@ -2675,7 +2667,6 @@ await client.emailTemplates.create({
Retrieve an email template by pre-defined name. These names are `verify_email`, `verify_email_by_code`, `reset_email`, `reset_email_by_code`, `welcome_email`, `blocked_account`, `stolen_credentials`, `enrollment_email`, `mfa_oob_code`, `user_invitation`, and `async_approval`. The names `change_password`, and `password_reset` are also supported for legacy scenarios. -
@@ -2691,8 +2682,8 @@ Retrieve an email template by pre-defined name. These names are `verify_email`, ```typescript await client.emailTemplates.get("verify_email"); -``` +``` @@ -2707,20 +2698,21 @@ await client.emailTemplates.get("verify_email");
**templateName:** `Management.EmailTemplateNameEnum` — Template name. Can be `verify_email`, `verify_email_by_code`, `reset_email`, `reset_email_by_code`, `welcome_email`, `blocked_account`, `stolen_credentials`, `enrollment_email`, `mfa_oob_code`, `user_invitation`, `async_approval`, `change_password` (legacy), or `password_reset` (legacy). - +
-**requestOptions:** `EmailTemplates.RequestOptions` - +**requestOptions:** `EmailTemplatesClient.RequestOptions` +
+ @@ -2738,7 +2730,6 @@ await client.emailTemplates.get("verify_email");
Update an email template. -
@@ -2754,10 +2745,10 @@ Update an email template. ```typescript await client.emailTemplates.set("verify_email", { - template: "verify_email", + template: "verify_email" }); -``` +``` @@ -2772,28 +2763,29 @@ await client.emailTemplates.set("verify_email", {
**templateName:** `Management.EmailTemplateNameEnum` — Template name. Can be `verify_email`, `verify_email_by_code`, `reset_email`, `reset_email_by_code`, `welcome_email`, `blocked_account`, `stolen_credentials`, `enrollment_email`, `mfa_oob_code`, `user_invitation`, `async_approval`, `change_password` (legacy), or `password_reset` (legacy). - +
-**request:** `Management.SetEmailTemplateRequestContent` - +**request:** `Management.SetEmailTemplateRequestContent` +
-**requestOptions:** `EmailTemplates.RequestOptions` - +**requestOptions:** `EmailTemplatesClient.RequestOptions` +
+ @@ -2811,7 +2803,6 @@ await client.emailTemplates.set("verify_email", {
Modify an email template. -
@@ -2827,8 +2818,8 @@ Modify an email template. ```typescript await client.emailTemplates.update("verify_email"); -``` +``` @@ -2843,34 +2834,34 @@ await client.emailTemplates.update("verify_email");
**templateName:** `Management.EmailTemplateNameEnum` — Template name. Can be `verify_email`, `verify_email_by_code`, `reset_email`, `reset_email_by_code`, `welcome_email`, `blocked_account`, `stolen_credentials`, `enrollment_email`, `mfa_oob_code`, `user_invitation`, `async_approval`, `change_password` (legacy), or `password_reset` (legacy). - +
-**request:** `Management.UpdateEmailTemplateRequestContent` - +**request:** `Management.UpdateEmailTemplateRequestContent` +
-**requestOptions:** `EmailTemplates.RequestOptions` - +**requestOptions:** `EmailTemplatesClient.RequestOptions` +
+ ## EventStreams -
client.eventStreams.list({ ...params }) -> Management.EventStreamResponseContent[]
@@ -2886,10 +2877,10 @@ await client.emailTemplates.update("verify_email"); ```typescript await client.eventStreams.list({ from: "from", - take: 1, + take: 1 }); -``` +```
@@ -2903,21 +2894,22 @@ await client.eventStreams.list({
-**request:** `Management.ListEventStreamsRequestParameters` - +**request:** `Management.ListEventStreamsRequestParameters` +
-**requestOptions:** `EventStreams.RequestOptions` - +**requestOptions:** `EventStreamsClient.RequestOptions` +
+
@@ -2942,13 +2934,13 @@ await client.eventStreams.create({ webhook_endpoint: "webhook_endpoint", webhook_authorization: { method: "basic", - username: "username", - }, - }, - }, + username: "username" + } + } + } }); -``` +``` @@ -2962,21 +2954,22 @@ await client.eventStreams.create({
-**request:** `Management.EventStreamsCreateRequest` - +**request:** `Management.EventStreamsCreateRequest` +
-**requestOptions:** `EventStreams.RequestOptions` - +**requestOptions:** `EventStreamsClient.RequestOptions` +
+ @@ -2995,8 +2988,8 @@ await client.eventStreams.create({ ```typescript await client.eventStreams.get("id"); -``` +``` @@ -3011,20 +3004,21 @@ await client.eventStreams.get("id");
**id:** `string` — Unique identifier for the event stream. - +
-**requestOptions:** `EventStreams.RequestOptions` - +**requestOptions:** `EventStreamsClient.RequestOptions` +
+ @@ -3043,8 +3037,8 @@ await client.eventStreams.get("id"); ```typescript await client.eventStreams.delete("id"); -``` +``` @@ -3059,20 +3053,21 @@ await client.eventStreams.delete("id");
**id:** `string` — Unique identifier for the event stream. - +
-**requestOptions:** `EventStreams.RequestOptions` - +**requestOptions:** `EventStreamsClient.RequestOptions` +
+ @@ -3091,8 +3086,8 @@ await client.eventStreams.delete("id"); ```typescript await client.eventStreams.update("id"); -``` +``` @@ -3107,28 +3102,89 @@ await client.eventStreams.update("id");
**id:** `string` — Unique identifier for the event stream. + +
+ + +
+
+ +**request:** `Management.UpdateEventStreamRequestContent` + +
+
+ +
+
+ +**requestOptions:** `EventStreamsClient.RequestOptions` + +
+
+ + + + + + + +
client.eventStreams.getStats(id, { ...params }) -> Management.GetEventStreamStatsResponseContent +
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```typescript +await client.eventStreams.getStats("id", { + date_from: "date_from", + date_to: "date_to" +}); + +``` +
+
+#### ⚙️ Parameters +
-**request:** `Management.UpdateEventStreamRequestContent` +
+
+**id:** `string` — Unique identifier for the event stream. +
-**requestOptions:** `EventStreams.RequestOptions` +**request:** `Management.EventStreamsGetStatsRequest` + +
+
+ +
+
+**requestOptions:** `EventStreamsClient.RequestOptions` +
+
@@ -3147,10 +3203,10 @@ await client.eventStreams.update("id"); ```typescript await client.eventStreams.test("id", { - event_type: "user.created", + event_type: "user.created" }); -``` +``` @@ -3165,34 +3221,34 @@ await client.eventStreams.test("id", {
**id:** `string` — Unique identifier for the event stream. - +
-**request:** `Management.CreateEventStreamTestEventRequestContent` - +**request:** `Management.CreateEventStreamTestEventRequestContent` +
-**requestOptions:** `EventStreams.RequestOptions` - +**requestOptions:** `EventStreamsClient.RequestOptions` +
+ ## Flows -
client.flows.list({ ...params }) -> core.Page
@@ -3210,7 +3266,7 @@ const pageableResponse = await client.flows.list({ page: 1, per_page: 1, include_totals: true, - synchronous: true, + synchronous: true }); for await (const item of pageableResponse) { console.log(item); @@ -3221,7 +3277,7 @@ let page = await client.flows.list({ page: 1, per_page: 1, include_totals: true, - synchronous: true, + synchronous: true }); while (page.hasNextPage()) { page = page.getNextPage(); @@ -3229,8 +3285,8 @@ while (page.hasNextPage()) { // You can also access the underlying response const response = page.response; -``` +```
@@ -3244,21 +3300,22 @@ const response = page.response;
-**request:** `Management.FlowsListRequest` - +**request:** `Management.FlowsListRequest` +
-**requestOptions:** `Flows.RequestOptions` - +**requestOptions:** `FlowsClient.RequestOptions` +
+
@@ -3277,10 +3334,10 @@ const response = page.response; ```typescript await client.flows.create({ - name: "name", + name: "name" }); -``` +``` @@ -3294,21 +3351,22 @@ await client.flows.create({
-**request:** `Management.CreateFlowRequestContent` - +**request:** `Management.CreateFlowRequestContent` +
-**requestOptions:** `Flows.RequestOptions` - +**requestOptions:** `FlowsClient.RequestOptions` +
+ @@ -3327,8 +3385,8 @@ await client.flows.create({ ```typescript await client.flows.get("id"); -``` +``` @@ -3343,28 +3401,29 @@ await client.flows.get("id");
**id:** `string` — Flow identifier - +
-**request:** `Management.GetFlowRequestParameters` - +**request:** `Management.GetFlowRequestParameters` +
-**requestOptions:** `Flows.RequestOptions` - +**requestOptions:** `FlowsClient.RequestOptions` +
+ @@ -3383,8 +3442,8 @@ await client.flows.get("id"); ```typescript await client.flows.delete("id"); -``` +``` @@ -3399,20 +3458,21 @@ await client.flows.delete("id");
**id:** `string` — Flow id - +
-**requestOptions:** `Flows.RequestOptions` - +**requestOptions:** `FlowsClient.RequestOptions` +
+ @@ -3431,8 +3491,8 @@ await client.flows.delete("id"); ```typescript await client.flows.update("id"); -``` +``` @@ -3447,34 +3507,34 @@ await client.flows.update("id");
**id:** `string` — Flow identifier - +
-**request:** `Management.UpdateFlowRequestContent` - +**request:** `Management.UpdateFlowRequestContent` +
-**requestOptions:** `Flows.RequestOptions` - +**requestOptions:** `FlowsClient.RequestOptions` +
+ ## Forms -
client.forms.list({ ...params }) -> core.Page
@@ -3491,7 +3551,7 @@ await client.flows.update("id"); const pageableResponse = await client.forms.list({ page: 1, per_page: 1, - include_totals: true, + include_totals: true }); for await (const item of pageableResponse) { console.log(item); @@ -3501,7 +3561,7 @@ for await (const item of pageableResponse) { let page = await client.forms.list({ page: 1, per_page: 1, - include_totals: true, + include_totals: true }); while (page.hasNextPage()) { page = page.getNextPage(); @@ -3509,8 +3569,8 @@ while (page.hasNextPage()) { // You can also access the underlying response const response = page.response; -``` +```
@@ -3524,21 +3584,22 @@ const response = page.response;
-**request:** `Management.ListFormsRequestParameters` - +**request:** `Management.ListFormsRequestParameters` +
-**requestOptions:** `Forms.RequestOptions` - +**requestOptions:** `FormsClient.RequestOptions` +
+
@@ -3557,10 +3618,10 @@ const response = page.response; ```typescript await client.forms.create({ - name: "name", + name: "name" }); -``` +``` @@ -3574,21 +3635,22 @@ await client.forms.create({
-**request:** `Management.CreateFormRequestContent` - +**request:** `Management.CreateFormRequestContent` +
-**requestOptions:** `Forms.RequestOptions` - +**requestOptions:** `FormsClient.RequestOptions` +
+ @@ -3607,8 +3669,8 @@ await client.forms.create({ ```typescript await client.forms.get("id"); -``` +``` @@ -3623,28 +3685,29 @@ await client.forms.get("id");
**id:** `string` — The ID of the form to retrieve. - +
-**request:** `Management.GetFormRequestParameters` - +**request:** `Management.GetFormRequestParameters` +
-**requestOptions:** `Forms.RequestOptions` - +**requestOptions:** `FormsClient.RequestOptions` +
+ @@ -3663,8 +3726,8 @@ await client.forms.get("id"); ```typescript await client.forms.delete("id"); -``` +``` @@ -3679,20 +3742,21 @@ await client.forms.delete("id");
**id:** `string` — The ID of the form to delete. - +
-**requestOptions:** `Forms.RequestOptions` - +**requestOptions:** `FormsClient.RequestOptions` +
+ @@ -3711,8 +3775,8 @@ await client.forms.delete("id"); ```typescript await client.forms.update("id"); -``` +``` @@ -3727,34 +3791,34 @@ await client.forms.update("id");
**id:** `string` — The ID of the form to update. - +
-**request:** `Management.UpdateFormRequestContent` - +**request:** `Management.UpdateFormRequestContent` +
-**requestOptions:** `Forms.RequestOptions` - +**requestOptions:** `FormsClient.RequestOptions` +
+ ## UserGrants -
client.userGrants.list({ ...params }) -> core.Page
@@ -3767,8 +3831,7 @@ await client.forms.update("id");
-Retrieve the grants associated with your account. - +Retrieve the grants associated with your account.
@@ -3789,7 +3852,7 @@ const pageableResponse = await client.userGrants.list({ include_totals: true, user_id: "user_id", client_id: "client_id", - audience: "audience", + audience: "audience" }); for await (const item of pageableResponse) { console.log(item); @@ -3802,7 +3865,7 @@ let page = await client.userGrants.list({ include_totals: true, user_id: "user_id", client_id: "client_id", - audience: "audience", + audience: "audience" }); while (page.hasNextPage()) { page = page.getNextPage(); @@ -3810,8 +3873,8 @@ while (page.hasNextPage()) { // You can also access the underlying response const response = page.response; -``` +```
@@ -3825,21 +3888,22 @@ const response = page.response;
-**request:** `Management.ListUserGrantsRequestParameters` - +**request:** `Management.ListUserGrantsRequestParameters` +
-**requestOptions:** `UserGrants.RequestOptions` - +**requestOptions:** `UserGrantsClient.RequestOptions` +
+
@@ -3856,8 +3920,7 @@ const response = page.response;
-Delete a grant associated with your account. - +Delete a grant associated with your account.
@@ -3873,10 +3936,10 @@ Delete a grant associated with your account. ```typescript await client.userGrants.deleteByUserId({ - user_id: "user_id", + user_id: "user_id" }); -``` +``` @@ -3890,21 +3953,22 @@ await client.userGrants.deleteByUserId({
-**request:** `Management.DeleteUserGrantByUserIdRequestParameters` - +**request:** `Management.DeleteUserGrantByUserIdRequestParameters` +
-**requestOptions:** `UserGrants.RequestOptions` - +**requestOptions:** `UserGrantsClient.RequestOptions` +
+ @@ -3921,8 +3985,7 @@ await client.userGrants.deleteByUserId({
-Delete a grant associated with your account. - +Delete a grant associated with your account.
@@ -3938,8 +4001,8 @@ Delete a grant associated with your account. ```typescript await client.userGrants.delete("id"); -``` +``` @@ -3954,26 +4017,26 @@ await client.userGrants.delete("id");
**id:** `string` — ID of the grant to delete. - +
-**requestOptions:** `UserGrants.RequestOptions` - +**requestOptions:** `UserGrantsClient.RequestOptions` +
+ ## Hooks -
client.hooks.list({ ...params }) -> core.Page
@@ -3987,7 +4050,6 @@ await client.userGrants.delete("id");
Retrieve all hooks. Accepts a list of fields to include or exclude in the result. -
@@ -4008,7 +4070,7 @@ const pageableResponse = await client.hooks.list({ include_totals: true, enabled: true, fields: "fields", - triggerId: "credentials-exchange", + triggerId: "credentials-exchange" }); for await (const item of pageableResponse) { console.log(item); @@ -4021,7 +4083,7 @@ let page = await client.hooks.list({ include_totals: true, enabled: true, fields: "fields", - triggerId: "credentials-exchange", + triggerId: "credentials-exchange" }); while (page.hasNextPage()) { page = page.getNextPage(); @@ -4029,8 +4091,8 @@ while (page.hasNextPage()) { // You can also access the underlying response const response = page.response; -``` +``` @@ -4044,21 +4106,22 @@ const response = page.response;
-**request:** `Management.ListHooksRequestParameters` - +**request:** `Management.ListHooksRequestParameters` +
-**requestOptions:** `Hooks.RequestOptions` - +**requestOptions:** `HooksClient.RequestOptions` +
+
@@ -4076,7 +4139,6 @@ const response = page.response;
Create a new hook. -
@@ -4094,10 +4156,10 @@ Create a new hook. await client.hooks.create({ name: "name", script: "script", - triggerId: "credentials-exchange", + triggerId: "credentials-exchange" }); -``` +``` @@ -4111,21 +4173,22 @@ await client.hooks.create({
-**request:** `Management.CreateHookRequestContent` - +**request:** `Management.CreateHookRequestContent` +
-**requestOptions:** `Hooks.RequestOptions` - +**requestOptions:** `HooksClient.RequestOptions` +
+ @@ -4143,7 +4206,6 @@ await client.hooks.create({
Retrieve a hook by its ID. Accepts a list of fields to include in the result. -
@@ -4159,10 +4221,10 @@ Retrieve a hook by its ID. Accepts a ```typescript await client.hooks.get("id", { - fields: "fields", + fields: "fields" }); -``` +``` @@ -4177,28 +4239,29 @@ await client.hooks.get("id", {
**id:** `string` — ID of the hook to retrieve. - +
-**request:** `Management.GetHookRequestParameters` - +**request:** `Management.GetHookRequestParameters` +
-**requestOptions:** `Hooks.RequestOptions` - +**requestOptions:** `HooksClient.RequestOptions` +
+ @@ -4216,7 +4279,6 @@ await client.hooks.get("id", {
Delete a hook. -
@@ -4232,8 +4294,8 @@ Delete a hook. ```typescript await client.hooks.delete("id"); -``` +``` @@ -4248,20 +4310,21 @@ await client.hooks.delete("id");
**id:** `string` — ID of the hook to delete. - +
-**requestOptions:** `Hooks.RequestOptions` - +**requestOptions:** `HooksClient.RequestOptions` +
+ @@ -4279,7 +4342,6 @@ await client.hooks.delete("id");
Update an existing hook. -
@@ -4295,8 +4357,8 @@ Update an existing hook. ```typescript await client.hooks.update("id"); -``` +``` @@ -4311,34 +4373,34 @@ await client.hooks.update("id");
**id:** `string` — ID of the hook to update. - +
-**request:** `Management.UpdateHookRequestContent` - +**request:** `Management.UpdateHookRequestContent` +
-**requestOptions:** `Hooks.RequestOptions` - +**requestOptions:** `HooksClient.RequestOptions` +
+ ## Jobs -
client.jobs.get(id) -> Management.GetJobResponseContent
@@ -4352,7 +4414,6 @@ await client.hooks.update("id");
Retrieves a job. Useful to check its status. -
@@ -4368,8 +4429,8 @@ Retrieves a job. Useful to check its status. ```typescript await client.jobs.get("id"); -``` +``` @@ -4384,26 +4445,26 @@ await client.jobs.get("id");
**id:** `string` — ID of the job. - +
-**requestOptions:** `Jobs.RequestOptions` - +**requestOptions:** `JobsClient.RequestOptions` +
+
## LogStreams -
client.logStreams.list() -> Management.LogStreamResponseSchema[]
@@ -4417,7 +4478,6 @@ await client.jobs.get("id");
Retrieve details on log streams. -
Sample Response
[{
 	"id": "string",
 	"name": "string",
@@ -4498,8 +4558,8 @@ Retrieve details on log streams
 
@@ -4513,13 +4573,14 @@ await client.logStreams.list();
-**requestOptions:** `LogStreams.RequestOptions` - +**requestOptions:** `LogStreamsClient.RequestOptions` +
+
@@ -4537,7 +4598,6 @@ await client.logStreams.list();
Create a log stream. -
Log Stream Types
The type of log stream being created determines the properties required in the sink payload.
HTTP Stream
For an http Stream, the sink properties are listed in the payload below Request:
{
@@ -4680,11 +4740,11 @@ Response: 
{
 await client.logStreams.create({
     type: "http",
     sink: {
-        httpEndpoint: "httpEndpoint",
-    },
+        httpEndpoint: "httpEndpoint"
+    }
 });
-```
 
+```
 
@@ -4698,21 +4758,22 @@ await client.logStreams.create({
-**request:** `Management.CreateLogStreamRequestContent` - +**request:** `Management.CreateLogStreamRequestContent` +
-**requestOptions:** `LogStreams.RequestOptions` - +**requestOptions:** `LogStreamsClient.RequestOptions` +
+ @@ -4730,7 +4791,6 @@ await client.logStreams.create({
Retrieve a log stream configuration and status. -
Sample responses
Amazon EventBridge Log Stream
{
 	"id": "string",
 	"name": "string",
@@ -4763,49 +4823,52 @@ Retrieve a log stream configuration and status.
 	}
 
 }
Mixpanel
-Request:
{
-"name": "string",
-"type": "mixpanel",
-"sink": {
-"mixpanelRegion": "string", // "us" | "eu",
-"mixpanelProjectId": "string",
-"mixpanelServiceAccountUsername": "string",
-"mixpanelServiceAccountPassword": "string"
-}
-} 
-Response:
{
-"id": "string",
-"name": "string",
-"type": "mixpanel",
-"status": "active",
-"sink": {
-"mixpanelRegion": "string", // "us" | "eu",
-"mixpanelProjectId": "string",
-"mixpanelServiceAccountUsername": "string",
-"mixpanelServiceAccountPassword": "string" // the following is redacted on return
-}
-} 
- -
Segment
- - Request:
 {
-      "name": "string",
-      "type": "segment",
-      "sink": {
-    	"segmentWriteKey": "string"
-      }
-    }
- - Response:
{
-      "id": "string",
-      "name": "string",
-      "type": "segment",
-      "status": "active",
-      "sink": {
-    	"segmentWriteKey": "string"
-      }
-    } 
- + + Request:
{
+	  "name": "string",
+	  "type": "mixpanel",
+	  "sink": {
+		"mixpanelRegion": "string", // "us" | "eu",
+		"mixpanelProjectId": "string",
+		"mixpanelServiceAccountUsername": "string",
+		"mixpanelServiceAccountPassword": "string"
+	  }
+	} 
+ + + Response:
{
+		"id": "string",
+		"name": "string",
+		"type": "mixpanel",
+		"status": "active",
+		"sink": {
+		  "mixpanelRegion": "string", // "us" | "eu",
+		  "mixpanelProjectId": "string",
+		  "mixpanelServiceAccountUsername": "string",
+		  "mixpanelServiceAccountPassword": "string" // the following is redacted on return
+		}
+	  } 
+ +
Segment
+ + Request:
 {
+	  "name": "string",
+	  "type": "segment",
+	  "sink": {
+		"segmentWriteKey": "string"
+	  }
+	}
+ + Response:
{
+	  "id": "string",
+	  "name": "string",
+	  "type": "segment",
+	  "status": "active",
+	  "sink": {
+		"segmentWriteKey": "string"
+	  }
+	} 
+
Splunk Log Stream
{
 	"id": "string",
 	"name": "string",
@@ -4844,8 +4907,8 @@ Response: 
{
 
 ```typescript
 await client.logStreams.get("id");
-```
 
+```
 
@@ -4860,20 +4923,21 @@ await client.logStreams.get("id");
**id:** `string` — The id of the log stream to get - +
-**requestOptions:** `LogStreams.RequestOptions` - +**requestOptions:** `LogStreamsClient.RequestOptions` +
+ @@ -4891,7 +4955,6 @@ await client.logStreams.get("id");
Delete a log stream. -
@@ -4907,8 +4970,8 @@ Delete a log stream. ```typescript await client.logStreams.delete("id"); -``` +``` @@ -4923,20 +4986,21 @@ await client.logStreams.delete("id");
**id:** `string` — The id of the log stream to delete - +
-**requestOptions:** `LogStreams.RequestOptions` - +**requestOptions:** `LogStreamsClient.RequestOptions` +
+ @@ -4954,7 +5018,6 @@ await client.logStreams.delete("id");
Update a log stream. -

Examples of how to use the PATCH endpoint.

The following fields may be updated in a PATCH operation:
  • name
  • status
  • sink
Note: For log streams of type eventbridge and eventgrid, updating the sink is not permitted.
Update the status of a log stream
{
 	"status": "active|paused"
@@ -5004,8 +5067,8 @@ Update a log stream.
 
 ```typescript
 await client.logStreams.update("id");
-```
 
+```
 
@@ -5020,34 +5083,34 @@ await client.logStreams.update("id");
**id:** `string` — The id of the log stream to get - +
-**request:** `Management.UpdateLogStreamRequestContent` - +**request:** `Management.UpdateLogStreamRequestContent` +
-**requestOptions:** `LogStreams.RequestOptions` - +**requestOptions:** `LogStreamsClient.RequestOptions` +
+ ## Logs -
client.logs.list({ ...params }) -> core.Page
@@ -5089,7 +5152,6 @@ Auth0
@@ -5148,21 +5210,22 @@ const response = page.response;
-**request:** `Management.ListLogsRequestParameters` - +**request:** `Management.ListLogsRequestParameters` +
-**requestOptions:** `Logs.RequestOptions` - +**requestOptions:** `LogsClient.RequestOptions` +
+
@@ -5180,7 +5243,6 @@ const response = page.response;
Retrieve an individual log event. -
@@ -5196,8 +5258,8 @@ Retrieve an individual log event. ```typescript await client.logs.get("id"); -``` +``` @@ -5212,26 +5274,26 @@ await client.logs.get("id");
**id:** `string` — log_id of the log to retrieve. - +
-**requestOptions:** `Logs.RequestOptions` - +**requestOptions:** `LogsClient.RequestOptions` +
+ ## NetworkAcls -
client.networkAcls.list({ ...params }) -> core.Page
@@ -5245,7 +5307,6 @@ await client.logs.get("id");
Get all access control list entries for your client. -
@@ -5263,7 +5324,7 @@ Get all access control list entries for your client. const pageableResponse = await client.networkAcls.list({ page: 1, per_page: 1, - include_totals: true, + include_totals: true }); for await (const item of pageableResponse) { console.log(item); @@ -5273,7 +5334,7 @@ for await (const item of pageableResponse) { let page = await client.networkAcls.list({ page: 1, per_page: 1, - include_totals: true, + include_totals: true }); while (page.hasNextPage()) { page = page.getNextPage(); @@ -5281,8 +5342,8 @@ while (page.hasNextPage()) { // You can also access the underlying response const response = page.response; -``` +``` @@ -5296,21 +5357,22 @@ const response = page.response;
-**request:** `Management.ListNetworkAclsRequestParameters` - +**request:** `Management.ListNetworkAclsRequestParameters` +
-**requestOptions:** `NetworkAcls.RequestOptions` - +**requestOptions:** `NetworkAclsClient.RequestOptions` +
+
@@ -5328,7 +5390,6 @@ const response = page.response;
Create a new access control list for your client. -
@@ -5349,11 +5410,11 @@ await client.networkAcls.create({ priority: 1.1, rule: { action: {}, - scope: "management", - }, + scope: "management" + } }); -``` +``` @@ -5367,21 +5428,22 @@ await client.networkAcls.create({
-**request:** `Management.CreateNetworkAclRequestContent` - +**request:** `Management.CreateNetworkAclRequestContent` +
-**requestOptions:** `NetworkAcls.RequestOptions` - +**requestOptions:** `NetworkAclsClient.RequestOptions` +
+ @@ -5399,7 +5461,6 @@ await client.networkAcls.create({
Get a specific access control list entry for your client. -
@@ -5415,8 +5476,8 @@ Get a specific access control list entry for your client. ```typescript await client.networkAcls.get("id"); -``` +``` @@ -5431,20 +5492,21 @@ await client.networkAcls.get("id");
**id:** `string` — The id of the access control list to retrieve. - +
-**requestOptions:** `NetworkAcls.RequestOptions` - +**requestOptions:** `NetworkAclsClient.RequestOptions` +
+ @@ -5462,7 +5524,6 @@ await client.networkAcls.get("id");
Update existing access control list for your client. -
@@ -5483,11 +5544,11 @@ await client.networkAcls.set("id", { priority: 1.1, rule: { action: {}, - scope: "management", - }, + scope: "management" + } }); -``` +``` @@ -5502,28 +5563,29 @@ await client.networkAcls.set("id", {
**id:** `string` — The id of the ACL to update. - +
-**request:** `Management.SetNetworkAclRequestContent` - +**request:** `Management.SetNetworkAclRequestContent` +
-**requestOptions:** `NetworkAcls.RequestOptions` - +**requestOptions:** `NetworkAclsClient.RequestOptions` +
+ @@ -5541,7 +5603,6 @@ await client.networkAcls.set("id", {
Delete existing access control list for your client. -
@@ -5557,8 +5618,8 @@ Delete existing access control list for your client. ```typescript await client.networkAcls.delete("id"); -``` +``` @@ -5573,20 +5634,21 @@ await client.networkAcls.delete("id");
**id:** `string` — The id of the ACL to delete - +
-**requestOptions:** `NetworkAcls.RequestOptions` - +**requestOptions:** `NetworkAclsClient.RequestOptions` +
+ @@ -5604,7 +5666,6 @@ await client.networkAcls.delete("id");
Update existing access control list for your client. -
@@ -5620,8 +5681,8 @@ Update existing access control list for your client. ```typescript await client.networkAcls.update("id"); -``` +``` @@ -5636,34 +5697,34 @@ await client.networkAcls.update("id");
**id:** `string` — The id of the ACL to update. - +
-**request:** `Management.UpdateNetworkAclRequestContent` - +**request:** `Management.UpdateNetworkAclRequestContent` +
-**requestOptions:** `NetworkAcls.RequestOptions` - +**requestOptions:** `NetworkAclsClient.RequestOptions` +
+ ## Organizations -
client.organizations.list({ ...params }) -> core.Page
@@ -5679,7 +5740,6 @@ await client.networkAcls.update("id"); Retrieve detailed list of all Organizations available in your tenant. For more information, see Auth0 Organizations. This endpoint supports two types of pagination: -
  • Offset pagination
  • Checkpoint pagination
  • @@ -5690,14 +5750,12 @@ Checkpoint pagination must be used if you need to retrieve more than 1000 organi

    Checkpoint Pagination

    To search by checkpoint, use the following parameters: -
    • from: Optional id from which to start selection.
    • take: The total number of entries to retrieve when using the from parameter. Defaults to 50.
    Note: The first time you call this endpoint using checkpoint pagination, omit the from parameter. If there are more results, a next value is included in the response. You can use this for subsequent API calls. When next is no longer included in the response, no pages are remaining. -
@@ -5715,7 +5773,7 @@ To search by checkpoint, use the following parameters: const pageableResponse = await client.organizations.list({ from: "from", take: 1, - sort: "sort", + sort: "sort" }); for await (const item of pageableResponse) { console.log(item); @@ -5725,7 +5783,7 @@ for await (const item of pageableResponse) { let page = await client.organizations.list({ from: "from", take: 1, - sort: "sort", + sort: "sort" }); while (page.hasNextPage()) { page = page.getNextPage(); @@ -5733,8 +5791,8 @@ while (page.hasNextPage()) { // You can also access the underlying response const response = page.response; -``` +``` @@ -5748,21 +5806,22 @@ const response = page.response;
-**request:** `Management.ListOrganizationsRequestParameters` - +**request:** `Management.ListOrganizationsRequestParameters` +
-**requestOptions:** `Organizations.RequestOptions` - +**requestOptions:** `OrganizationsClient.RequestOptions` +
+
@@ -5779,8 +5838,7 @@ const response = page.response;
-Create a new Organization within your tenant. To learn more about Organization settings, behavior, and configuration options, review Create Your First Organization. - +Create a new Organization within your tenant. To learn more about Organization settings, behavior, and configuration options, review Create Your First Organization.
@@ -5796,10 +5854,10 @@ Create a new Organization within your tenant. To learn more about Organization s ```typescript await client.organizations.create({ - name: "name", + name: "name" }); -``` +``` @@ -5813,21 +5871,22 @@ await client.organizations.create({
-**request:** `Management.CreateOrganizationRequestContent` - +**request:** `Management.CreateOrganizationRequestContent` +
-**requestOptions:** `Organizations.RequestOptions` - +**requestOptions:** `OrganizationsClient.RequestOptions` +
+ @@ -5845,7 +5904,6 @@ await client.organizations.create({
Retrieve details about a single Organization specified by name. -
@@ -5861,8 +5919,8 @@ Retrieve details about a single Organization specified by name. ```typescript await client.organizations.getByName("name"); -``` +``` @@ -5877,20 +5935,21 @@ await client.organizations.getByName("name");
**name:** `string` — name of the organization to retrieve. - +
-**requestOptions:** `Organizations.RequestOptions` - +**requestOptions:** `OrganizationsClient.RequestOptions` +
+ @@ -5907,8 +5966,7 @@ await client.organizations.getByName("name");
-Retrieve details about a single Organization specified by ID. - +Retrieve details about a single Organization specified by ID.
@@ -5924,8 +5982,8 @@ Retrieve details about a single Organization specified by ID. ```typescript await client.organizations.get("id"); -``` +``` @@ -5940,20 +5998,21 @@ await client.organizations.get("id");
**id:** `string` — ID of the organization to retrieve. - +
-**requestOptions:** `Organizations.RequestOptions` - +**requestOptions:** `OrganizationsClient.RequestOptions` +
+ @@ -5970,10 +6029,9 @@ await client.organizations.get("id");
-Remove an Organization from your tenant. This action cannot be undone. +Remove an Organization from your tenant. This action cannot be undone. Note: Members are automatically disassociated from an Organization when it is deleted. However, this action does not delete these users from your tenant. -
@@ -5989,8 +6047,8 @@ Remove an Organization from your tenant. This action cannot be undone. ```typescript await client.organizations.delete("id"); -``` +``` @@ -6005,20 +6063,21 @@ await client.organizations.delete("id");
**id:** `string` — Organization identifier. - +
-**requestOptions:** `Organizations.RequestOptions` - +**requestOptions:** `OrganizationsClient.RequestOptions` +
+ @@ -6036,7 +6095,6 @@ await client.organizations.delete("id");
Update the details of a specific Organization, such as name and display name, branding options, and metadata. -
@@ -6052,8 +6110,8 @@ Update the details of a specific @@ -6068,34 +6126,34 @@ await client.organizations.update("id");
**id:** `string` — ID of the organization to update. - +
-**request:** `Management.UpdateOrganizationRequestContent` - +**request:** `Management.UpdateOrganizationRequestContent` +
-**requestOptions:** `Organizations.RequestOptions` - +**requestOptions:** `OrganizationsClient.RequestOptions` +
+ ## Prompts -
client.prompts.getSettings() -> Management.GetSettingsResponseContent
@@ -6109,7 +6167,6 @@ await client.organizations.update("id");
Retrieve details of the Universal Login configuration of your tenant. This includes the Identifier First Authentication and WebAuthn with Device Biometrics for MFA features. -
@@ -6125,8 +6182,8 @@ Retrieve details of the Universal Login configuration of your tenant. This inclu ```typescript await client.prompts.getSettings(); -``` +``` @@ -6140,13 +6197,14 @@ await client.prompts.getSettings();
-**requestOptions:** `Prompts.RequestOptions` - +**requestOptions:** `PromptsClient.RequestOptions` +
+
@@ -6164,7 +6222,6 @@ await client.prompts.getSettings();
Update the Universal Login configuration of your tenant. This includes the Identifier First Authentication and WebAuthn with Device Biometrics for MFA features. -
@@ -6180,8 +6237,8 @@ Update the Universal Login configuration of your tenant. This includes the @@ -6195,27 +6252,27 @@ await client.prompts.updateSettings();
-**request:** `Management.UpdateSettingsRequestContent` - +**request:** `Management.UpdateSettingsRequestContent` +
-**requestOptions:** `Prompts.RequestOptions` - +**requestOptions:** `PromptsClient.RequestOptions` +
+ ## RefreshTokens -
client.refreshTokens.get(id) -> Management.GetRefreshTokenResponseContent
@@ -6229,7 +6286,6 @@ await client.prompts.updateSettings();
Retrieve refresh token information. -
@@ -6245,8 +6301,8 @@ Retrieve refresh token information. ```typescript await client.refreshTokens.get("id"); -``` +``` @@ -6261,20 +6317,21 @@ await client.refreshTokens.get("id");
**id:** `string` — ID refresh token to retrieve - +
-**requestOptions:** `RefreshTokens.RequestOptions` - +**requestOptions:** `RefreshTokensClient.RequestOptions` +
+
@@ -6292,7 +6349,6 @@ await client.refreshTokens.get("id");
Delete a refresh token by its ID. -
@@ -6308,8 +6364,8 @@ Delete a refresh token by its ID. ```typescript await client.refreshTokens.delete("id"); -``` +``` @@ -6324,26 +6380,26 @@ await client.refreshTokens.delete("id");
**id:** `string` — ID of the refresh token to delete. - +
-**requestOptions:** `RefreshTokens.RequestOptions` - +**requestOptions:** `RefreshTokensClient.RequestOptions` +
+ ## ResourceServers -
client.resourceServers.list({ ...params }) -> core.Page
@@ -6357,7 +6413,6 @@ await client.refreshTokens.delete("id");
Retrieve details of all APIs associated with your tenant. -
@@ -6376,7 +6431,7 @@ const pageableResponse = await client.resourceServers.list({ page: 1, per_page: 1, include_totals: true, - include_fields: true, + include_fields: true }); for await (const item of pageableResponse) { console.log(item); @@ -6387,7 +6442,7 @@ let page = await client.resourceServers.list({ page: 1, per_page: 1, include_totals: true, - include_fields: true, + include_fields: true }); while (page.hasNextPage()) { page = page.getNextPage(); @@ -6395,8 +6450,8 @@ while (page.hasNextPage()) { // You can also access the underlying response const response = page.response; -``` +``` @@ -6410,21 +6465,22 @@ const response = page.response;
-**request:** `Management.ListResourceServerRequestParameters` - +**request:** `Management.ListResourceServerRequestParameters` +
-**requestOptions:** `ResourceServers.RequestOptions` - +**requestOptions:** `ResourceServersClient.RequestOptions` +
+
@@ -6442,7 +6498,6 @@ const response = page.response;
Create a new API associated with your tenant. Note that all new APIs must be registered with Auth0. For more information, read APIs. -
@@ -6458,10 +6513,10 @@ Create a new API associated with your tenant. Note that all new APIs must be reg ```typescript await client.resourceServers.create({ - identifier: "identifier", + identifier: "identifier" }); -``` +``` @@ -6475,21 +6530,22 @@ await client.resourceServers.create({
-**request:** `Management.CreateResourceServerRequestContent` - +**request:** `Management.CreateResourceServerRequestContent` +
-**requestOptions:** `ResourceServers.RequestOptions` - +**requestOptions:** `ResourceServersClient.RequestOptions` +
+ @@ -6507,7 +6563,6 @@ await client.resourceServers.create({
Retrieve API details with the given ID. -
@@ -6523,10 +6578,10 @@ Retrieve API details with the given ID ```typescript await client.resourceServers.get("id", { - include_fields: true, + include_fields: true }); -``` +``` @@ -6541,28 +6596,29 @@ await client.resourceServers.get("id", {
**id:** `string` — ID or audience of the resource server to retrieve. - +
-**request:** `Management.GetResourceServerRequestParameters` - +**request:** `Management.GetResourceServerRequestParameters` +
-**requestOptions:** `ResourceServers.RequestOptions` - +**requestOptions:** `ResourceServersClient.RequestOptions` +
+ @@ -6580,7 +6636,6 @@ await client.resourceServers.get("id", {
Delete an existing API by ID. For more information, read API Settings. -
@@ -6596,8 +6651,8 @@ Delete an existing API by ID. For more information, read @@ -6612,20 +6667,21 @@ await client.resourceServers.delete("id");
**id:** `string` — ID or the audience of the resource server to delete. - +
-**requestOptions:** `ResourceServers.RequestOptions` - +**requestOptions:** `ResourceServersClient.RequestOptions` +
+ @@ -6643,7 +6699,6 @@ await client.resourceServers.delete("id");
Change an existing API setting by resource server ID. For more information, read API Settings. -
@@ -6659,8 +6714,8 @@ Change an existing API setting by resource server ID. For more information, read ```typescript await client.resourceServers.update("id"); -``` +``` @@ -6675,34 +6730,34 @@ await client.resourceServers.update("id");
**id:** `string` — ID or audience of the resource server to update. - +
-**request:** `Management.UpdateResourceServerRequestContent` - +**request:** `Management.UpdateResourceServerRequestContent` +
-**requestOptions:** `ResourceServers.RequestOptions` - +**requestOptions:** `ResourceServersClient.RequestOptions` +
+ ## Roles -
client.roles.list({ ...params }) -> core.Page
@@ -6718,7 +6773,6 @@ await client.resourceServers.update("id"); Retrieve detailed list of user roles created in your tenant. Note: The returned list does not include standard roles available for tenant members, such as Admin or Support Access. -
@@ -6737,7 +6791,7 @@ const pageableResponse = await client.roles.list({ per_page: 1, page: 1, include_totals: true, - name_filter: "name_filter", + name_filter: "name_filter" }); for await (const item of pageableResponse) { console.log(item); @@ -6748,7 +6802,7 @@ let page = await client.roles.list({ per_page: 1, page: 1, include_totals: true, - name_filter: "name_filter", + name_filter: "name_filter" }); while (page.hasNextPage()) { page = page.getNextPage(); @@ -6756,8 +6810,8 @@ while (page.hasNextPage()) { // You can also access the underlying response const response = page.response; -``` +``` @@ -6771,21 +6825,22 @@ const response = page.response;
-**request:** `Management.ListRolesRequestParameters` - +**request:** `Management.ListRolesRequestParameters` +
-**requestOptions:** `Roles.RequestOptions` - +**requestOptions:** `RolesClient.RequestOptions` +
+
@@ -6805,7 +6860,6 @@ const response = page.response; Create a user role for Role-Based Access Control. Note: New roles are not associated with any permissions by default. To assign existing permissions to your role, review Associate Permissions with a Role. To create new permissions, review Add API Permissions. - @@ -6821,10 +6875,10 @@ Create a user role for @@ -6838,21 +6892,22 @@ await client.roles.create({
-**request:** `Management.CreateRoleRequestContent` - +**request:** `Management.CreateRoleRequestContent` +
-**requestOptions:** `Roles.RequestOptions` - +**requestOptions:** `RolesClient.RequestOptions` +
+ @@ -6870,7 +6925,6 @@ await client.roles.create({
Retrieve details about a specific user role specified by ID. -
@@ -6886,8 +6940,8 @@ Retrieve details about a specific @@ -6902,20 +6956,21 @@ await client.roles.get("id");
**id:** `string` — ID of the role to retrieve. - +
-**requestOptions:** `Roles.RequestOptions` - +**requestOptions:** `RolesClient.RequestOptions` +
+ @@ -6933,7 +6988,6 @@ await client.roles.get("id");
Delete a specific user role from your tenant. Once deleted, it is removed from any user who was previously assigned that role. This action cannot be undone. -
@@ -6949,8 +7003,8 @@ Delete a specific @@ -6965,20 +7019,21 @@ await client.roles.delete("id");
**id:** `string` — ID of the role to delete. - +
-**requestOptions:** `Roles.RequestOptions` - +**requestOptions:** `RolesClient.RequestOptions` +
+ @@ -6996,7 +7051,6 @@ await client.roles.delete("id");
Modify the details of a specific user role specified by ID. -
@@ -7012,8 +7066,8 @@ Modify the details of a specific @@ -7028,34 +7082,34 @@ await client.roles.update("id");
**id:** `string` — ID of the role to update. - +
-**request:** `Management.UpdateRoleRequestContent` - +**request:** `Management.UpdateRoleRequestContent` +
-**requestOptions:** `Roles.RequestOptions` - +**requestOptions:** `RolesClient.RequestOptions` +
+ ## Rules -
client.rules.list({ ...params }) -> core.Page
@@ -7069,7 +7123,6 @@ await client.roles.update("id");
Retrieve a filtered list of rules. Accepts a list of fields to include or exclude. -
@@ -7090,7 +7143,7 @@ const pageableResponse = await client.rules.list({ include_totals: true, enabled: true, fields: "fields", - include_fields: true, + include_fields: true }); for await (const item of pageableResponse) { console.log(item); @@ -7103,7 +7156,7 @@ let page = await client.rules.list({ include_totals: true, enabled: true, fields: "fields", - include_fields: true, + include_fields: true }); while (page.hasNextPage()) { page = page.getNextPage(); @@ -7111,8 +7164,8 @@ while (page.hasNextPage()) { // You can also access the underlying response const response = page.response; -``` +``` @@ -7126,21 +7179,22 @@ const response = page.response;
-**request:** `Management.ListRulesRequestParameters` - +**request:** `Management.ListRulesRequestParameters` +
-**requestOptions:** `Rules.RequestOptions` - +**requestOptions:** `RulesClient.RequestOptions` +
+
@@ -7160,7 +7214,6 @@ const response = page.response; Create a new rule. Note: Changing a rule's stage of execution from the default login_success can change the rule's function signature to have user omitted. - @@ -7177,10 +7230,10 @@ Note: Changing a rule's stage of execution from the default login_success< ```typescript await client.rules.create({ name: "name", - script: "script", + script: "script" }); -``` +``` @@ -7194,21 +7247,22 @@ await client.rules.create({
-**request:** `Management.CreateRuleRequestContent` - +**request:** `Management.CreateRuleRequestContent` +
-**requestOptions:** `Rules.RequestOptions` - +**requestOptions:** `RulesClient.RequestOptions` +
+ @@ -7226,7 +7280,6 @@ await client.rules.create({
Retrieve rule details. Accepts a list of fields to include or exclude in the result. -
@@ -7243,10 +7296,10 @@ Retrieve rule details. Accepts a list ```typescript await client.rules.get("id", { fields: "fields", - include_fields: true, + include_fields: true }); -``` +``` @@ -7261,28 +7314,29 @@ await client.rules.get("id", {
**id:** `string` — ID of the rule to retrieve. - +
-**request:** `Management.GetRuleRequestParameters` - +**request:** `Management.GetRuleRequestParameters` +
-**requestOptions:** `Rules.RequestOptions` - +**requestOptions:** `RulesClient.RequestOptions` +
+ @@ -7300,7 +7354,6 @@ await client.rules.get("id", {
Delete a rule. -
@@ -7316,8 +7369,8 @@ Delete a rule. ```typescript await client.rules.delete("id"); -``` +``` @@ -7332,20 +7385,21 @@ await client.rules.delete("id");
**id:** `string` — ID of the rule to delete. - +
-**requestOptions:** `Rules.RequestOptions` - +**requestOptions:** `RulesClient.RequestOptions` +
+ @@ -7363,7 +7417,6 @@ await client.rules.delete("id");
Update an existing rule. -
@@ -7379,8 +7432,8 @@ Update an existing rule. ```typescript await client.rules.update("id"); -``` +``` @@ -7395,34 +7448,34 @@ await client.rules.update("id");
**id:** `string` — ID of the rule to retrieve. - +
-**request:** `Management.UpdateRuleRequestContent` - +**request:** `Management.UpdateRuleRequestContent` +
-**requestOptions:** `Rules.RequestOptions` - +**requestOptions:** `RulesClient.RequestOptions` +
+ ## RulesConfigs -
client.rulesConfigs.list() -> Management.RulesConfig[]
@@ -7438,7 +7491,6 @@ await client.rules.update("id"); Retrieve rules config variable keys. Note: For security, config variable values cannot be retrieved outside rule execution. -
@@ -7454,8 +7506,8 @@ Retrieve rules config variable keys. ```typescript await client.rulesConfigs.list(); -``` +``` @@ -7469,13 +7521,14 @@ await client.rulesConfigs.list();
-**requestOptions:** `RulesConfigs.RequestOptions` - +**requestOptions:** `RulesConfigsClient.RequestOptions` +
+
@@ -7493,7 +7546,6 @@ await client.rulesConfigs.list();
Sets a rules config variable. -
@@ -7509,10 +7561,10 @@ Sets a rules config variable. ```typescript await client.rulesConfigs.set("key", { - value: "value", + value: "value" }); -``` +``` @@ -7527,28 +7579,29 @@ await client.rulesConfigs.set("key", {
**key:** `string` — Key of the rules config variable to set (max length: 127 characters). - +
-**request:** `Management.SetRulesConfigRequestContent` - +**request:** `Management.SetRulesConfigRequestContent` +
-**requestOptions:** `RulesConfigs.RequestOptions` - +**requestOptions:** `RulesConfigsClient.RequestOptions` +
+ @@ -7566,7 +7619,6 @@ await client.rulesConfigs.set("key", {
Delete a rules config variable identified by its key. -
@@ -7582,8 +7634,8 @@ Delete a rules config variable identified by its key. ```typescript await client.rulesConfigs.delete("key"); -``` +``` @@ -7598,26 +7650,26 @@ await client.rulesConfigs.delete("key");
**key:** `string` — Key of the rules config variable to delete. - +
-**requestOptions:** `RulesConfigs.RequestOptions` - +**requestOptions:** `RulesConfigsClient.RequestOptions` +
+ ## SelfServiceProfiles -
client.selfServiceProfiles.list({ ...params }) -> core.Page
@@ -7631,7 +7683,6 @@ await client.rulesConfigs.delete("key");
Retrieves self-service profiles. -
@@ -7649,7 +7700,7 @@ Retrieves self-service profiles. const pageableResponse = await client.selfServiceProfiles.list({ page: 1, per_page: 1, - include_totals: true, + include_totals: true }); for await (const item of pageableResponse) { console.log(item); @@ -7659,7 +7710,7 @@ for await (const item of pageableResponse) { let page = await client.selfServiceProfiles.list({ page: 1, per_page: 1, - include_totals: true, + include_totals: true }); while (page.hasNextPage()) { page = page.getNextPage(); @@ -7667,8 +7718,8 @@ while (page.hasNextPage()) { // You can also access the underlying response const response = page.response; -``` +``` @@ -7682,21 +7733,22 @@ const response = page.response;
-**request:** `Management.ListSelfServiceProfilesRequestParameters` - +**request:** `Management.ListSelfServiceProfilesRequestParameters` +
-**requestOptions:** `SelfServiceProfiles.RequestOptions` - +**requestOptions:** `SelfServiceProfilesClient.RequestOptions` +
+
@@ -7714,7 +7766,6 @@ const response = page.response;
Creates a self-service profile. -
@@ -7730,10 +7781,10 @@ Creates a self-service profile. ```typescript await client.selfServiceProfiles.create({ - name: "name", + name: "name" }); -``` +``` @@ -7747,21 +7798,22 @@ await client.selfServiceProfiles.create({
-**request:** `Management.CreateSelfServiceProfileRequestContent` - +**request:** `Management.CreateSelfServiceProfileRequestContent` +
-**requestOptions:** `SelfServiceProfiles.RequestOptions` - +**requestOptions:** `SelfServiceProfilesClient.RequestOptions` +
+ @@ -7779,7 +7831,6 @@ await client.selfServiceProfiles.create({
Retrieves a self-service profile by Id. -
@@ -7795,8 +7846,8 @@ Retrieves a self-service profile by Id. ```typescript await client.selfServiceProfiles.get("id"); -``` +``` @@ -7811,20 +7862,21 @@ await client.selfServiceProfiles.get("id");
**id:** `string` — The id of the self-service profile to retrieve - +
-**requestOptions:** `SelfServiceProfiles.RequestOptions` - +**requestOptions:** `SelfServiceProfilesClient.RequestOptions` +
+ @@ -7842,7 +7894,6 @@ await client.selfServiceProfiles.get("id");
Deletes a self-service profile by Id. -
@@ -7858,8 +7909,8 @@ Deletes a self-service profile by Id. ```typescript await client.selfServiceProfiles.delete("id"); -``` +``` @@ -7874,20 +7925,21 @@ await client.selfServiceProfiles.delete("id");
**id:** `string` — The id of the self-service profile to delete - +
-**requestOptions:** `SelfServiceProfiles.RequestOptions` - +**requestOptions:** `SelfServiceProfilesClient.RequestOptions` +
+ @@ -7905,7 +7957,6 @@ await client.selfServiceProfiles.delete("id");
Updates a self-service profile. -
@@ -7921,8 +7972,8 @@ Updates a self-service profile. ```typescript await client.selfServiceProfiles.update("id"); -``` +``` @@ -7937,34 +7988,34 @@ await client.selfServiceProfiles.update("id");
**id:** `string` — The id of the self-service profile to update - +
-**request:** `Management.UpdateSelfServiceProfileRequestContent` - +**request:** `Management.UpdateSelfServiceProfileRequestContent` +
-**requestOptions:** `SelfServiceProfiles.RequestOptions` - +**requestOptions:** `SelfServiceProfilesClient.RequestOptions` +
+ ## Sessions -
client.sessions.get(id) -> Management.GetSessionResponseContent
@@ -7978,7 +8029,6 @@ await client.selfServiceProfiles.update("id");
Retrieve session information. -
@@ -7994,8 +8044,8 @@ Retrieve session information. ```typescript await client.sessions.get("id"); -``` +``` @@ -8010,20 +8060,21 @@ await client.sessions.get("id");
**id:** `string` — ID of session to retrieve - +
-**requestOptions:** `Sessions.RequestOptions` - +**requestOptions:** `SessionsClient.RequestOptions` +
+
@@ -8041,7 +8092,6 @@ await client.sessions.get("id");
Delete a session by ID. -
@@ -8057,8 +8107,8 @@ Delete a session by ID. ```typescript await client.sessions.delete("id"); -``` +``` @@ -8073,90 +8123,20 @@ await client.sessions.delete("id");
**id:** `string` — ID of the session to delete. - -
- - -
-
- -**requestOptions:** `Sessions.RequestOptions` - -
-
- - - - - - - -
client.sessions.update(id, { ...params }) -> Management.UpdateSessionResponseContent -
-
- -#### 📝 Description - -
-
- -
-
- -Update session information. - -
-
-
-
- -#### 🔌 Usage - -
-
- -
-
- -```typescript -await client.sessions.update("id"); -``` - +
-
-
- -#### ⚙️ Parameters
-
-
- -**id:** `string` — ID of the session to update. - +**requestOptions:** `SessionsClient.RequestOptions` +
- -
-
- -**request:** `Management.UpdateSessionRequestContent` -
-
-
- -**requestOptions:** `Sessions.RequestOptions` - -
-
-
-
@@ -8175,7 +8155,6 @@ await client.sessions.update("id");
Revokes a session by ID and all associated refresh tokens. -
@@ -8191,8 +8170,8 @@ Revokes a session by ID and all associated refresh tokens. ```typescript await client.sessions.revoke("id"); -``` +``` @@ -8207,26 +8186,26 @@ await client.sessions.revoke("id");
**id:** `string` — ID of the session to revoke. - +
-**requestOptions:** `Sessions.RequestOptions` - +**requestOptions:** `SessionsClient.RequestOptions` +
+
## Stats -
client.stats.getActiveUsersCount() -> Management.GetActiveUsersCountStatsResponseContent
@@ -8240,7 +8219,6 @@ await client.sessions.revoke("id");
Retrieve the number of active users that logged in during the last 30 days. -
@@ -8256,8 +8234,8 @@ Retrieve the number of active users that logged in during the last 30 days. ```typescript await client.stats.getActiveUsersCount(); -``` +``` @@ -8271,13 +8249,14 @@ await client.stats.getActiveUsersCount();
-**requestOptions:** `Stats.RequestOptions` - +**requestOptions:** `StatsClient.RequestOptions` +
+
@@ -8295,7 +8274,6 @@ await client.stats.getActiveUsersCount();
Retrieve the number of logins, signups and breached-password detections (subscription required) that occurred each day within a specified date range. -
@@ -8312,10 +8290,10 @@ Retrieve the number of logins, signups and breached-password detections (subscri ```typescript await client.stats.getDaily({ from: "from", - to: "to", + to: "to" }); -``` +``` @@ -8329,27 +8307,27 @@ await client.stats.getDaily({
-**request:** `Management.GetDailyStatsRequestParameters` - +**request:** `Management.GetDailyStatsRequestParameters` +
-**requestOptions:** `Stats.RequestOptions` - +**requestOptions:** `StatsClient.RequestOptions` +
+ ## SupplementalSignals -
client.supplementalSignals.get() -> Management.GetSupplementalSignalsResponseContent
@@ -8363,7 +8341,6 @@ await client.stats.getDaily({
Get the supplemental signals configuration for a tenant. -
@@ -8379,8 +8356,8 @@ Get the supplemental signals configuration for a tenant. ```typescript await client.supplementalSignals.get(); -``` +``` @@ -8394,13 +8371,14 @@ await client.supplementalSignals.get();
-**requestOptions:** `SupplementalSignals.RequestOptions` - +**requestOptions:** `SupplementalSignalsClient.RequestOptions` +
+
@@ -8418,7 +8396,6 @@ await client.supplementalSignals.get();
Update the supplemental signals configuration for a tenant. -
@@ -8434,10 +8411,10 @@ Update the supplemental signals configuration for a tenant. ```typescript await client.supplementalSignals.patch({ - akamai_enabled: true, + akamai_enabled: true }); -``` +``` @@ -8451,27 +8428,27 @@ await client.supplementalSignals.patch({
-**request:** `Management.UpdateSupplementalSignalsRequestContent` - +**request:** `Management.UpdateSupplementalSignalsRequestContent` +
-**requestOptions:** `SupplementalSignals.RequestOptions` - +**requestOptions:** `SupplementalSignalsClient.RequestOptions` +
+ ## Tickets -
client.tickets.verifyEmail({ ...params }) -> Management.VerifyEmailTicketResponseContent
@@ -8485,7 +8462,6 @@ await client.supplementalSignals.patch({
Create an email verification ticket for a given user. An email verification ticket is a generated URL that the user can consume to verify their email address. -
@@ -8501,10 +8477,10 @@ Create an email verification ticket for a given user. An email verification tick ```typescript await client.tickets.verifyEmail({ - user_id: "user_id", + user_id: "user_id" }); -``` +``` @@ -8518,21 +8494,22 @@ await client.tickets.verifyEmail({
-**request:** `Management.VerifyEmailTicketRequestContent` - +**request:** `Management.VerifyEmailTicketRequestContent` +
-**requestOptions:** `Tickets.RequestOptions` - +**requestOptions:** `TicketsClient.RequestOptions` +
+
@@ -8552,7 +8529,6 @@ await client.tickets.verifyEmail({ Create a password change ticket for a given user. A password change ticket is a generated URL that the user can consume to start a reset password flow. Note: This endpoint does not verify the given user’s identity. If you call this endpoint within your application, you must design your application to verify the user’s identity. - @@ -8568,8 +8544,8 @@ Note: This endpoint does not verify the given user’s identity. If you call thi ```typescript await client.tickets.changePassword(); -``` +``` @@ -8583,27 +8559,27 @@ await client.tickets.changePassword();
-**request:** `Management.ChangePasswordTicketRequestContent` - +**request:** `Management.ChangePasswordTicketRequestContent` +
-**requestOptions:** `Tickets.RequestOptions` - +**requestOptions:** `TicketsClient.RequestOptions` +
+ ## TokenExchangeProfiles -
client.tokenExchangeProfiles.list({ ...params }) -> core.Page
@@ -8619,14 +8595,12 @@ await client.tickets.changePassword(); Retrieve a list of all Token Exchange Profiles available in your tenant. This endpoint supports Checkpoint pagination. To search by checkpoint, use the following parameters: -
  • from: Optional id from which to start selection.
  • take: The total amount of entries to retrieve when using the from parameter. Defaults to 50.
Note: The first time you call this endpoint using checkpoint pagination, omit the from parameter. If there are more results, a next value is included in the response. You can use this for subsequent API calls. When next is no longer included in the response, no pages are remaining. -
@@ -8643,7 +8617,7 @@ This endpoint supports Checkpoint pagination. To search by checkpoint, use the f ```typescript const pageableResponse = await client.tokenExchangeProfiles.list({ from: "from", - take: 1, + take: 1 }); for await (const item of pageableResponse) { console.log(item); @@ -8652,7 +8626,7 @@ for await (const item of pageableResponse) { // Or you can manually iterate page-by-page let page = await client.tokenExchangeProfiles.list({ from: "from", - take: 1, + take: 1 }); while (page.hasNextPage()) { page = page.getNextPage(); @@ -8660,8 +8634,8 @@ while (page.hasNextPage()) { // You can also access the underlying response const response = page.response; -``` +``` @@ -8675,21 +8649,22 @@ const response = page.response;
-**request:** `Management.TokenExchangeProfilesListRequest` - +**request:** `Management.TokenExchangeProfilesListRequest` +
-**requestOptions:** `TokenExchangeProfiles.RequestOptions` - +**requestOptions:** `TokenExchangeProfilesClient.RequestOptions` +
+
@@ -8707,7 +8682,6 @@ const response = page.response;
Create a new Token Exchange Profile within your tenant. -
@@ -8725,10 +8699,10 @@ Create a new Token Exchange Profile within your tenant. await client.tokenExchangeProfiles.create({ name: "name", subject_token_type: "subject_token_type", - action_id: "action_id", + action_id: "action_id" }); -``` +``` @@ -8742,21 +8716,22 @@ await client.tokenExchangeProfiles.create({
-**request:** `Management.CreateTokenExchangeProfileRequestContent` - +**request:** `Management.CreateTokenExchangeProfileRequestContent` +
-**requestOptions:** `TokenExchangeProfiles.RequestOptions` - +**requestOptions:** `TokenExchangeProfilesClient.RequestOptions` +
+ @@ -8774,7 +8749,6 @@ await client.tokenExchangeProfiles.create({
Retrieve details about a single Token Exchange Profile specified by ID. -
@@ -8790,8 +8764,8 @@ Retrieve details about a single Token Exchange Profile specified by ID. ```typescript await client.tokenExchangeProfiles.get("id"); -``` +``` @@ -8806,20 +8780,21 @@ await client.tokenExchangeProfiles.get("id");
**id:** `string` — ID of the Token Exchange Profile to retrieve. - +
-**requestOptions:** `TokenExchangeProfiles.RequestOptions` - +**requestOptions:** `TokenExchangeProfilesClient.RequestOptions` +
+ @@ -8837,7 +8812,6 @@ await client.tokenExchangeProfiles.get("id");
Delete a Token Exchange Profile within your tenant. -
@@ -8853,8 +8827,8 @@ Delete a Token Exchange Profile within your tenant. ```typescript await client.tokenExchangeProfiles.delete("id"); -``` +``` @@ -8869,20 +8843,21 @@ await client.tokenExchangeProfiles.delete("id");
**id:** `string` — ID of the Token Exchange Profile to delete. - +
-**requestOptions:** `TokenExchangeProfiles.RequestOptions` - +**requestOptions:** `TokenExchangeProfilesClient.RequestOptions` +
+ @@ -8900,7 +8875,6 @@ await client.tokenExchangeProfiles.delete("id");
Update a Token Exchange Profile within your tenant. -
@@ -8916,8 +8890,8 @@ Update a Token Exchange Profile within your tenant. ```typescript await client.tokenExchangeProfiles.update("id"); -``` +``` @@ -8932,35 +8906,35 @@ await client.tokenExchangeProfiles.update("id");
**id:** `string` — ID of the Token Exchange Profile to update. - +
-**request:** `Management.UpdateTokenExchangeProfileRequestContent` - +**request:** `Management.UpdateTokenExchangeProfileRequestContent` +
-**requestOptions:** `TokenExchangeProfiles.RequestOptions` - +**requestOptions:** `TokenExchangeProfilesClient.RequestOptions` +
+ -## UserAttributeProfiles - -
client.userAttributeProfiles.list({ ...params }) -> core.Page +## UserBlocks +
client.userBlocks.listByIdentifier({ ...params }) -> Management.ListUserBlocksByIdentifierResponseContent
@@ -8972,8 +8946,7 @@ await client.tokenExchangeProfiles.update("id");
-Retrieve a list of User Attribute Profiles. This endpoint supports Checkpoint pagination. - +Retrieve details of all Brute-force Protection blocks for a user with the given identifier (username, phone number, or email).
@@ -8988,27 +8961,12 @@ Retrieve a list of User Attribute Profiles. This endpoint supports Checkpoint pa
```typescript -const pageableResponse = await client.userAttributeProfiles.list({ - from: "from", - take: 1, -}); -for await (const item of pageableResponse) { - console.log(item); -} - -// Or you can manually iterate page-by-page -let page = await client.userAttributeProfiles.list({ - from: "from", - take: 1, +await client.userBlocks.listByIdentifier({ + identifier: "identifier", + consider_brute_force_enablement: true }); -while (page.hasNextPage()) { - page = page.getNextPage(); -} -// You can also access the underlying response -const response = page.response; ``` -
@@ -9022,26 +8980,27 @@ const response = page.response;
-**request:** `Management.ListUserAttributeProfileRequestParameters` - +**request:** `Management.ListUserBlocksByIdentifierRequestParameters` +
-**requestOptions:** `UserAttributeProfiles.RequestOptions` - +**requestOptions:** `UserBlocksClient.RequestOptions` +
+
-
client.userAttributeProfiles.create({ ...params }) -> Management.CreateUserAttributeProfileResponseContent +
client.userBlocks.deleteByIdentifier({ ...params }) -> void
@@ -9053,8 +9012,9 @@ const response = page.response;
-Retrieve details about a single User Attribute Profile specified by ID. +Remove all Brute-force Protection blocks for the user with the given identifier (username, phone number, or email). +Note: This endpoint does not unblock users that were blocked by a tenant administrator.
@@ -9069,19 +9029,11 @@ Retrieve details about a single User Attribute Profile specified by ID.
```typescript -await client.userAttributeProfiles.create({ - name: "name", - user_attributes: { - key: { - description: "description", - label: "label", - profile_required: true, - auth0_mapping: "auth0_mapping", - }, - }, +await client.userBlocks.deleteByIdentifier({ + identifier: "identifier" }); -``` +```
@@ -9095,26 +9047,27 @@ await client.userAttributeProfiles.create({
-**request:** `Management.CreateUserAttributeProfileRequestContent` - +**request:** `Management.DeleteUserBlocksByIdentifierRequestParameters` +
-**requestOptions:** `UserAttributeProfiles.RequestOptions` - +**requestOptions:** `UserBlocksClient.RequestOptions` +
+
-
client.userAttributeProfiles.listTemplates() -> Management.ListUserAttributeProfileTemplateResponseContent +
client.userBlocks.list(id, { ...params }) -> Management.ListUserBlocksResponseContent
@@ -9126,8 +9079,7 @@ await client.userAttributeProfiles.create({
-Retrieve a list of User Attribute Profile Templates. - +Retrieve details of all Brute-force Protection blocks for the user with the given ID.
@@ -9142,9 +9094,11 @@ Retrieve a list of User Attribute Profile Templates.
```typescript -await client.userAttributeProfiles.listTemplates(); -``` +await client.userBlocks.list("id", { + consider_brute_force_enablement: true +}); +```
@@ -9158,31 +9112,49 @@ await client.userAttributeProfiles.listTemplates();
-**requestOptions:** `UserAttributeProfiles.RequestOptions` - -
-
- - - +**id:** `string` — user_id of the user blocks to retrieve. + -
-
client.userAttributeProfiles.getTemplate(id) -> Management.GetUserAttributeProfileTemplateResponseContent
-#### 📝 Description +**request:** `Management.ListUserBlocksRequestParameters` + +
+
+**requestOptions:** `UserBlocksClient.RequestOptions` + +
+
+ + + + + + +
+ +
client.userBlocks.delete(id) -> void +
+
+ +#### 📝 Description +
-Retrieve a User Attribute Profile Template. +
+
+ +Remove all Brute-force Protection blocks for the user with the given ID. +Note: This endpoint does not unblock users that were blocked by a tenant administrator.
@@ -9197,9 +9169,9 @@ Retrieve a User Attribute Profile Template.
```typescript -await client.userAttributeProfiles.getTemplate("id"); -``` +await client.userBlocks.delete("id"); +```
@@ -9213,26 +9185,28 @@ await client.userAttributeProfiles.getTemplate("id");
-**id:** `string` — ID of the user-attribute-profile-template to retrieve. - +**id:** `string` — The user_id of the user to update. +
-**requestOptions:** `UserAttributeProfiles.RequestOptions` - +**requestOptions:** `UserBlocksClient.RequestOptions` +
+
-
client.userAttributeProfiles.get(id) -> Management.GetUserAttributeProfileResponseContent +## Users +
client.users.list({ ...params }) -> core.Page
@@ -9244,8 +9218,20 @@ await client.userAttributeProfiles.getTemplate("id");
-Retrieve details about a single User Attribute Profile specified by ID. +Retrieve details of users. It is possible to: + +- Specify a search criteria for users +- Sort the users to be returned +- Select the fields to be returned +- Specify the number of users to retrieve per page and the page index + +The q query parameter can be used to get users that match the specified criteria using query string syntax. + +Learn more about searching for users. + +Read about best practices when working with the API endpoints for retrieving users. +Auth0 limits the number of users you can return. If you exceed this threshold, please redefine your search, use the export job, or the User Import / Export extension.
@@ -9260,9 +9246,43 @@ Retrieve details about a single User Attribute Profile specified by ID.
```typescript -await client.userAttributeProfiles.get("id"); -``` +const pageableResponse = await client.users.list({ + page: 1, + per_page: 1, + include_totals: true, + sort: "sort", + connection: "connection", + fields: "fields", + include_fields: true, + q: "q", + search_engine: "v1", + primary_order: true +}); +for await (const item of pageableResponse) { + console.log(item); +} + +// Or you can manually iterate page-by-page +let page = await client.users.list({ + page: 1, + per_page: 1, + include_totals: true, + sort: "sort", + connection: "connection", + fields: "fields", + include_fields: true, + q: "q", + search_engine: "v1", + primary_order: true +}); +while (page.hasNextPage()) { + page = page.getNextPage(); +} +// You can also access the underlying response +const response = page.response; + +```
@@ -9276,26 +9296,27 @@ await client.userAttributeProfiles.get("id");
-**id:** `string` — ID of the user-attribute-profile to retrieve. - +**request:** `Management.ListUsersRequestParameters` +
-**requestOptions:** `UserAttributeProfiles.RequestOptions` - +**requestOptions:** `UsersClient.RequestOptions` +
+
-
client.userAttributeProfiles.delete(id) -> void +
client.users.create({ ...params }) -> Management.CreateUserResponseContent
@@ -9307,8 +9328,9 @@ await client.userAttributeProfiles.get("id");
-Delete a single User Attribute Profile specified by ID. +Create a new user for a given database or passwordless connection. +Note: connection is required but other parameters such as email and password are dependent upon the type of connection.
@@ -9323,9 +9345,11 @@ Delete a single User Attribute Profile specified by ID.
```typescript -await client.userAttributeProfiles.delete("id"); -``` +await client.users.create({ + connection: "connection" +}); +```
@@ -9339,26 +9363,27 @@ await client.userAttributeProfiles.delete("id");
-**id:** `string` — ID of the user-attribute-profile to delete. - +**request:** `Management.CreateUserRequestContent` +
-**requestOptions:** `UserAttributeProfiles.RequestOptions` - +**requestOptions:** `UsersClient.RequestOptions` +
+
-
client.userAttributeProfiles.update(id, { ...params }) -> Management.UpdateUserAttributeProfileResponseContent +
client.users.listUsersByEmail({ ...params }) -> Management.UserResponseSchema[]
@@ -9370,8 +9395,11 @@ await client.userAttributeProfiles.delete("id");
-Update the details of a specific User attribute profile, such as name, user_id and user_attributes. +Find users by email. If Auth0 is the identity provider (idP), the email address associated with a user is saved in lower case, regardless of how you initially provided it. +For example, if you register a user as JohnSmith@example.com, Auth0 saves the user's email as johnsmith@example.com. + +Therefore, when using this endpoint, make sure that you are searching for users via email addresses using the correct case.
@@ -9386,9 +9414,13 @@ Update the details of a specific User attribute profile, such as name, user_id a
```typescript -await client.userAttributeProfiles.update("id"); -``` +await client.users.listUsersByEmail({ + fields: "fields", + include_fields: true, + email: "email" +}); +```
@@ -9402,36 +9434,27 @@ await client.userAttributeProfiles.update("id");
-**id:** `string` — ID of the user attribute profile to update. - -
-
- -
-
- -**request:** `Management.UpdateUserAttributeProfileRequestContent` - +**request:** `Management.ListUsersByEmailRequestParameters` +
-**requestOptions:** `UserAttributeProfiles.RequestOptions` - +**requestOptions:** `UsersClient.RequestOptions` +
+
-## UserBlocks - -
client.userBlocks.listByIdentifier({ ...params }) -> Management.ListUserBlocksByIdentifierResponseContent +
client.users.get(id, { ...params }) -> Management.GetUserResponseContent
@@ -9443,8 +9466,7 @@ await client.userAttributeProfiles.update("id");
-Retrieve details of all Brute-force Protection blocks for a user with the given identifier (username, phone number, or email). - +Retrieve user details. A list of fields to include or exclude may also be specified. For more information, see Retrieve Users with the Get Users Endpoint.
@@ -9459,12 +9481,12 @@ Retrieve details of all
@@ -9478,26 +9500,35 @@ await client.userBlocks.listByIdentifier({
-**request:** `Management.ListUserBlocksByIdentifierRequestParameters` - +**id:** `string` — ID of the user to retrieve. +
-**requestOptions:** `UserBlocks.RequestOptions` +**request:** `Management.GetUserRequestParameters` + +
+
+ +
+
+**requestOptions:** `UsersClient.RequestOptions` +
+
-
client.userBlocks.deleteByIdentifier({ ...params }) -> void +
client.users.delete(id) -> void
@@ -9509,10 +9540,7 @@ await client.userBlocks.listByIdentifier({
-Remove all Brute-force Protection blocks for the user with the given identifier (username, phone number, or email). - -Note: This endpoint does not unblock users that were blocked by a tenant administrator. - +Delete a user by user ID. This action cannot be undone. For Auth0 Dashboard instructions, see Delete Users.
@@ -9527,11 +9555,9 @@ Note: This endpoint does not unblock users that were
@@ -9545,26 +9571,27 @@ await client.userBlocks.deleteByIdentifier({
-**request:** `Management.DeleteUserBlocksByIdentifierRequestParameters` - +**id:** `string` — ID of the user to delete. +
-**requestOptions:** `UserBlocks.RequestOptions` - +**requestOptions:** `UsersClient.RequestOptions` +
+
-
client.userBlocks.list(id, { ...params }) -> Management.ListUserBlocksResponseContent +
client.users.update(id, { ...params }) -> Management.UpdateUserResponseContent
@@ -9576,8 +9603,76 @@ await client.userBlocks.deleteByIdentifier({
-Retrieve details of all Brute-force Protection blocks for the user with the given ID. +Update a user. + +These are the attributes that can be updated at the root level: + +
    +
  • app_metadata
  • +
  • blocked
  • +
  • email
  • +
  • email_verified
  • +
  • family_name
  • +
  • given_name
  • +
  • name
  • +
  • nickname
  • +
  • password
  • +
  • phone_number
  • +
  • phone_verified
  • +
  • picture
  • +
  • username
  • +
  • user_metadata
  • +
  • verify_email
  • +
+ +Some considerations: +
    +
  • The properties of the new object will replace the old ones.
  • +
  • The metadata fields are an exception to this rule (user_metadata and app_metadata). These properties are merged instead of being replaced but be careful, the merge only occurs on the first level.
  • +
  • If you are updating email, email_verified, phone_number, phone_verified, username or password of a secondary identity, you need to specify the connection property too.
  • +
  • If you are updating email or phone_number you can specify, optionally, the client_id property.
  • +
  • Updating email_verified is not supported for enterprise and passwordless sms connections.
  • +
  • Updating the blocked to false does not affect the user's blocked state from an excessive amount of incorrectly provided credentials. Use the "Unblock a user" endpoint from the "User Blocks" API to change the user's state.
  • +
  • Supported attributes can be unset by supplying null as the value.
  • +
+ +
Updating a field (non-metadata property)
+To mark the email address of a user as verified, the body to send should be: +
{ "email_verified": true }
+ +
Updating a user metadata root property
Let's assume that our test user has the following user_metadata: +
{ "user_metadata" : { "profileCode": 1479 } }
+ +To add the field addresses the body to send should be: +
{ "user_metadata" : { "addresses": {"work_address": "100 Industrial Way"} }}
+ +The modified object ends up with the following user_metadata property:
{
+  "user_metadata": {
+    "profileCode": 1479,
+    "addresses": { "work_address": "100 Industrial Way" }
+  }
+}
+ +
Updating an inner user metadata property
If there's existing user metadata to which we want to add "home_address": "742 Evergreen Terrace" (using the addresses property) we should send the whole addresses object. Since this is a first-level object, the object will be merged in, but its own properties will not be. The body to send should be: +
{
+  "user_metadata": {
+    "addresses": {
+      "work_address": "100 Industrial Way",
+      "home_address": "742 Evergreen Terrace"
+    }
+  }
+}
+The modified object ends up with the following user_metadata property: +
{
+  "user_metadata": {
+    "profileCode": 1479,
+    "addresses": {
+      "work_address": "100 Industrial Way",
+      "home_address": "742 Evergreen Terrace"
+    }
+  }
+}
@@ -9592,11 +9687,9 @@ Retrieve details of all
@@ -9610,34 +9703,35 @@ await client.userBlocks.list("id", {
-**id:** `string` — user_id of the user blocks to retrieve. - +**id:** `string` — ID of the user to update. +
-**request:** `Management.ListUserBlocksRequestParameters` - +**request:** `Management.UpdateUserRequestContent` +
-**requestOptions:** `UserBlocks.RequestOptions` - +**requestOptions:** `UsersClient.RequestOptions` +
+
-
client.userBlocks.delete(id) -> void +
client.users.regenerateRecoveryCode(id) -> Management.RegenerateUsersRecoveryCodeResponseContent
@@ -9649,10 +9743,7 @@ await client.userBlocks.list("id", {
-Remove all Brute-force Protection blocks for the user with the given ID. - -Note: This endpoint does not unblock users that were blocked by a tenant administrator. - +Remove an existing multi-factor authentication (MFA) recovery code and generate a new one. If a user cannot access the original device or account used for MFA enrollment, they can use a recovery code to authenticate.
@@ -9667,9 +9758,9 @@ Note: This endpoint does not unblock users that were
@@ -9683,28 +9774,27 @@ await client.userBlocks.delete("id");
-**id:** `string` — The user_id of the user to update. - +**id:** `string` — ID of the user to regenerate a multi-factor authentication recovery code for. +
-**requestOptions:** `UserBlocks.RequestOptions` - +**requestOptions:** `UsersClient.RequestOptions` +
+
-## Users - -
client.users.list({ ...params }) -> core.Page +
client.users.revokeAccess(id, { ...params }) -> void
@@ -9716,25 +9806,11 @@ await client.userBlocks.delete("id");
-Retrieve details of users. It is possible to: - -- Specify a search criteria for users -- Sort the users to be returned -- Select the fields to be returned -- Specify the number of users to retrieve per page and the page index - - The q query parameter can be used to get users that match the specified criteria using query string syntax. - -Learn more about searching for users. - -Read about best practices when working with the API endpoints for retrieving users. - -Auth0 limits the number of users you can return. If you exceed this threshold, please redefine your search, use the export job, or the User Import / Export extension. - -
-
-
-
+Revokes selected resources related to a user (sessions, refresh tokens, ...). + + + + #### 🔌 Usage @@ -9745,43 +9821,9 @@ Auth0 limits the number of users you can return. If you exceed this threshold, p
```typescript -const pageableResponse = await client.users.list({ - page: 1, - per_page: 1, - include_totals: true, - sort: "sort", - connection: "connection", - fields: "fields", - include_fields: true, - q: "q", - search_engine: "v1", - primary_order: true, -}); -for await (const item of pageableResponse) { - console.log(item); -} - -// Or you can manually iterate page-by-page -let page = await client.users.list({ - page: 1, - per_page: 1, - include_totals: true, - sort: "sort", - connection: "connection", - fields: "fields", - include_fields: true, - q: "q", - search_engine: "v1", - primary_order: true, -}); -while (page.hasNextPage()) { - page = page.getNextPage(); -} +await client.users.revokeAccess("id"); -// You can also access the underlying response -const response = page.response; ``` -
@@ -9795,26 +9837,36 @@ const response = page.response;
-**request:** `Management.ListUsersRequestParameters` - +**id:** `string` — ID of the user. +
-**requestOptions:** `Users.RequestOptions` +**request:** `Management.RevokeUserAccessRequestContent` + +
+
+ +
+
+**requestOptions:** `UsersClient.RequestOptions` +
+
-
client.users.create({ ...params }) -> Management.CreateUserResponseContent +## Actions Versions +
client.actions.versions.list(actionId, { ...params }) -> core.Page
@@ -9826,10 +9878,7 @@ const response = page.response;
-Create a new user for a given database or passwordless connection. - -Note: connection is required but other parameters such as email and password are dependent upon the type of connection. - +Retrieve all of an action's versions. An action version is created whenever an action is deployed. An action version is immutable, once created.
@@ -9844,11 +9893,27 @@ Note: connection is required but other parameters such as ema
```typescript -await client.users.create({ - connection: "connection", +const pageableResponse = await client.actions.versions.list("actionId", { + page: 1, + per_page: 1 }); -``` +for await (const item of pageableResponse) { + console.log(item); +} + +// Or you can manually iterate page-by-page +let page = await client.actions.versions.list("actionId", { + page: 1, + per_page: 1 +}); +while (page.hasNextPage()) { + page = page.getNextPage(); +} + +// You can also access the underlying response +const response = page.response; +```
@@ -9862,26 +9927,35 @@ await client.users.create({
-**request:** `Management.CreateUserRequestContent` - +**actionId:** `string` — The ID of the action. +
-**requestOptions:** `Users.RequestOptions` +**request:** `Management.ListActionVersionsRequestParameters` + +
+
+ +
+
+**requestOptions:** `VersionsClient.RequestOptions` +
+
-
client.users.listUsersByEmail({ ...params }) -> Management.UserResponseSchema[] +
client.actions.versions.get(actionId, id) -> Management.GetActionVersionResponseContent
@@ -9893,12 +9967,7 @@ await client.users.create({
-Find users by email. If Auth0 is the identity provider (idP), the email address associated with a user is saved in lower case, regardless of how you initially provided it. - -For example, if you register a user as JohnSmith@example.com, Auth0 saves the user's email as johnsmith@example.com. - -Therefore, when using this endpoint, make sure that you are searching for users via email addresses using the correct case. - +Retrieve a specific version of an action. An action version is created whenever an action is deployed. An action version is immutable, once created.
@@ -9913,13 +9982,9 @@ Therefore, when using this endpoint, make sure that you are searching for users
```typescript -await client.users.listUsersByEmail({ - fields: "fields", - include_fields: true, - email: "email", -}); -``` +await client.actions.versions.get("actionId", "id"); +```
@@ -9933,26 +9998,35 @@ await client.users.listUsersByEmail({
-**request:** `Management.ListUsersByEmailRequestParameters` - +**actionId:** `string` — The ID of the action. +
-**requestOptions:** `Users.RequestOptions` +**id:** `string` — The ID of the action version. + +
+
+ +
+
+**requestOptions:** `VersionsClient.RequestOptions` +
+
-
client.users.get(id, { ...params }) -> Management.GetUserResponseContent +
client.actions.versions.deploy(actionId, id, { ...params }) -> Management.DeployActionVersionResponseContent
@@ -9964,8 +10038,7 @@ await client.users.listUsersByEmail({
-Retrieve user details. A list of fields to include or exclude may also be specified. For more information, see Retrieve Users with the Get Users Endpoint. - +Performs the equivalent of a roll-back of an action to an earlier, specified version. Creates a new, deployed action version that is identical to the specified version. If this action is currently bound to a trigger, the system will begin executing the newly-created version immediately.
@@ -9980,12 +10053,9 @@ Retrieve user details. A list of fields to include or exclude may also be specif
```typescript -await client.users.get("id", { - fields: "fields", - include_fields: true, -}); -``` +await client.actions.versions.deploy("actionId", "id"); +```
@@ -9999,34 +10069,44 @@ await client.users.get("id", {
-**id:** `string` — ID of the user to retrieve. - +**actionId:** `string` — The ID of an action. +
-**request:** `Management.GetUserRequestParameters` - +**id:** `string` — The ID of an action version. +
-**requestOptions:** `Users.RequestOptions` +**request:** `Management.DeployActionVersionRequestContent | undefined` + +
+
+ +
+
+**requestOptions:** `VersionsClient.RequestOptions` +
+
-
client.users.delete(id) -> void +## Actions Executions +
client.actions.executions.get(id) -> Management.GetActionExecutionResponseContent
@@ -10038,8 +10118,7 @@ await client.users.get("id", {
-Delete a user by user ID. This action cannot be undone. For Auth0 Dashboard instructions, see Delete Users. - +Retrieve information about a specific execution of a trigger. Relevant execution IDs will be included in tenant logs generated as part of that authentication flow. Executions will only be stored for 10 days after their creation.
@@ -10054,9 +10133,9 @@ Delete a user by user ID. This action cannot be undone. For Auth0 Dashboard inst
```typescript -await client.users.delete("id"); -``` +await client.actions.executions.get("id"); +```
@@ -10070,26 +10149,28 @@ await client.users.delete("id");
-**id:** `string` — ID of the user to delete. - +**id:** `string` — The ID of the execution to retrieve. +
-**requestOptions:** `Users.RequestOptions` - +**requestOptions:** `ExecutionsClient.RequestOptions` +
+
-
client.users.update(id, { ...params }) -> Management.UpdateUserResponseContent +## Actions Triggers +
client.actions.triggers.list() -> Management.ListActionTriggersResponseContent
@@ -10101,79 +10182,7 @@ await client.users.delete("id");
-Update a user. - -These are the attributes that can be updated at the root level: - -
    -
  • app_metadata
  • -
  • blocked
  • -
  • email
  • -
  • email_verified
  • -
  • family_name
  • -
  • given_name
  • -
  • name
  • -
  • nickname
  • -
  • password
  • -
  • phone_number
  • -
  • phone_verified
  • -
  • picture
  • -
  • username
  • -
  • user_metadata
  • -
  • verify_email
  • -
- -Some considerations: - -
    -
  • The properties of the new object will replace the old ones.
  • -
  • The metadata fields are an exception to this rule (user_metadata and app_metadata). These properties are merged instead of being replaced but be careful, the merge only occurs on the first level.
  • -
  • If you are updating email, email_verified, phone_number, phone_verified, username or password of a secondary identity, you need to specify the connection property too.
  • -
  • If you are updating email or phone_number you can specify, optionally, the client_id property.
  • -
  • Updating email_verified is not supported for enterprise and passwordless sms connections.
  • -
  • Updating the blocked to false does not affect the user's blocked state from an excessive amount of incorrectly provided credentials. Use the "Unblock a user" endpoint from the "User Blocks" API to change the user's state.
  • -
  • Supported attributes can be unset by supplying null as the value.
  • -
- -
Updating a field (non-metadata property)
-To mark the email address of a user as verified, the body to send should be: -
{ "email_verified": true }
- -
Updating a user metadata root property
Let's assume that our test user has the following user_metadata: -
{ "user_metadata" : { "profileCode": 1479 } }
- -To add the field addresses the body to send should be: - -
{ "user_metadata" : { "addresses": {"work_address": "100 Industrial Way"} }}
- -The modified object ends up with the following user_metadata property:
{
-"user_metadata": {
-"profileCode": 1479,
-"addresses": { "work_address": "100 Industrial Way" }
-}
-}
- -
Updating an inner user metadata property
If there's existing user metadata to which we want to add "home_address": "742 Evergreen Terrace" (using the addresses property) we should send the whole addresses object. Since this is a first-level object, the object will be merged in, but its own properties will not be. The body to send should be: -
{
-  "user_metadata": {
-    "addresses": {
-      "work_address": "100 Industrial Way",
-      "home_address": "742 Evergreen Terrace"
-    }
-  }
-}
- -The modified object ends up with the following user_metadata property: - -
{
-  "user_metadata": {
-    "profileCode": 1479,
-    "addresses": {
-      "work_address": "100 Industrial Way",
-      "home_address": "742 Evergreen Terrace"
-    }
-  }
-}
+Retrieve the set of triggers currently available within actions. A trigger is an extensibility point to which actions can be bound.
@@ -10188,9 +10197,9 @@ The modified object ends up with the following user_metadata proper
```typescript -await client.users.update("id"); -``` +await client.actions.triggers.list(); +```
@@ -10204,34 +10213,20 @@ await client.users.update("id");
-**id:** `string` — ID of the user to update. - +**requestOptions:** `TriggersClient.RequestOptions` +
- -
-
- -**request:** `Management.UpdateUserRequestContent` -
-
-
- -**requestOptions:** `Users.RequestOptions` - -
-
- -
-
client.users.regenerateRecoveryCode(id) -> Management.RegenerateUsersRecoveryCodeResponseContent +## Actions Triggers Bindings +
client.actions.triggers.bindings.list(triggerId, { ...params }) -> core.Page
@@ -10243,8 +10238,7 @@ await client.users.update("id");
-Remove an existing multi-factor authentication (MFA) recovery code and generate a new one. If a user cannot access the original device or account used for MFA enrollment, they can use a recovery code to authenticate. - +Retrieve the actions that are bound to a trigger. Once an action is created and deployed, it must be attached (i.e. bound) to a trigger so that it will be executed as part of a flow. The list of actions returned reflects the order in which they will be executed during the appropriate flow.
@@ -10259,12 +10253,30 @@ Remove an existing multi-factor authentication (MFA) -
- +const pageableResponse = await client.actions.triggers.bindings.list("triggerId", { + page: 1, + per_page: 1 +}); +for await (const item of pageableResponse) { + console.log(item); +} + +// Or you can manually iterate page-by-page +let page = await client.actions.triggers.bindings.list("triggerId", { + page: 1, + per_page: 1 +}); +while (page.hasNextPage()) { + page = page.getNextPage(); +} + +// You can also access the underlying response +const response = page.response; + +``` + + + #### ⚙️ Parameters @@ -10275,26 +10287,35 @@ await client.users.regenerateRecoveryCode("id");
-**id:** `string` — ID of the user to regenerate a multi-factor authentication recovery code for. - +**triggerId:** `Management.ActionTriggerTypeEnum` — An actions extensibility point. +
-**requestOptions:** `Users.RequestOptions` +**request:** `Management.ListActionTriggerBindingsRequestParameters` + +
+
+ +
+
+**requestOptions:** `BindingsClient.RequestOptions` +
+
-
client.users.revokeAccess(id, { ...params }) -> void +
client.actions.triggers.bindings.updateMany(triggerId, { ...params }) -> Management.UpdateActionBindingsResponseContent
@@ -10306,8 +10327,7 @@ await client.users.regenerateRecoveryCode("id");
-Revokes selected resources related to a user (sessions, refresh tokens, ...). - +Update the actions that are bound (i.e. attached) to a trigger. Once an action is created and deployed, it must be attached (i.e. bound) to a trigger so that it will be executed as part of a flow. The order in which the actions are provided will determine the order in which they are executed.
@@ -10322,9 +10342,9 @@ Revokes selected resources related to a user (sessions, refresh tokens, ...).
```typescript -await client.users.revokeAccess("id"); -``` +await client.actions.triggers.bindings.updateMany("triggerId"); +```
@@ -10338,36 +10358,36 @@ await client.users.revokeAccess("id");
-**id:** `string` — ID of the user. - +**triggerId:** `Management.ActionTriggerTypeEnum` — An actions extensibility point. +
-**request:** `Management.RevokeUserAccessRequestContent` - +**request:** `Management.UpdateActionBindingsRequestContent` +
-**requestOptions:** `Users.RequestOptions` - +**requestOptions:** `BindingsClient.RequestOptions` +
+
-## Actions Versions - -
client.actions.versions.list(actionId, { ...params }) -> core.Page +## Anomaly Blocks +
client.anomaly.blocks.checkIp(id) -> void
@@ -10379,8 +10399,7 @@ await client.users.revokeAccess("id");
-Retrieve all of an action's versions. An action version is created whenever an action is deployed. An action version is immutable, once created. - +Check if the given IP address is blocked via the Suspicious IP Throttling due to multiple suspicious attempts.
@@ -10395,27 +10414,9 @@ Retrieve all of an action's versions. An action version is created whenever an a
```typescript -const pageableResponse = await client.actions.versions.list("actionId", { - page: 1, - per_page: 1, -}); -for await (const item of pageableResponse) { - console.log(item); -} - -// Or you can manually iterate page-by-page -let page = await client.actions.versions.list("actionId", { - page: 1, - per_page: 1, -}); -while (page.hasNextPage()) { - page = page.getNextPage(); -} +await client.anomaly.blocks.checkIp("id"); -// You can also access the underlying response -const response = page.response; ``` -
@@ -10429,34 +10430,27 @@ const response = page.response;
-**actionId:** `string` — The ID of the action. - -
-
- -
-
- -**request:** `Management.ListActionVersionsRequestParameters` - +**id:** `Management.AnomalyIpFormat` — IP address to check. +
-**requestOptions:** `Versions.RequestOptions` - +**requestOptions:** `BlocksClient.RequestOptions` +
+
-
client.actions.versions.get(actionId, id) -> Management.GetActionVersionResponseContent +
client.anomaly.blocks.unblockIp(id) -> void
@@ -10468,8 +10462,7 @@ const response = page.response;
-Retrieve a specific version of an action. An action version is created whenever an action is deployed. An action version is immutable, once created. - +Remove a block imposed by Suspicious IP Throttling for the given IP address.
@@ -10484,9 +10477,9 @@ Retrieve a specific version of an action. An action version is created whenever
```typescript -await client.actions.versions.get("actionId", "id"); -``` +await client.anomaly.blocks.unblockIp("id"); +```
@@ -10500,34 +10493,28 @@ await client.actions.versions.get("actionId", "id");
-**actionId:** `string` — The ID of the action. - -
-
- -
-
- -**id:** `string` — The ID of the action version. - +**id:** `Management.AnomalyIpFormat` — IP address to unblock. +
-**requestOptions:** `Versions.RequestOptions` - +**requestOptions:** `BlocksClient.RequestOptions` +
+
-
client.actions.versions.deploy(actionId, id, { ...params }) -> Management.DeployActionVersionResponseContent +## AttackProtection BreachedPasswordDetection +
client.attackProtection.breachedPasswordDetection.get() -> Management.GetBreachedPasswordDetectionSettingsResponseContent
@@ -10539,8 +10526,7 @@ await client.actions.versions.get("actionId", "id");
-Performs the equivalent of a roll-back of an action to an earlier, specified version. Creates a new, deployed action version that is identical to the specified version. If this action is currently bound to a trigger, the system will begin executing the newly-created version immediately. - +Retrieve details of the Breached Password Detection configuration of your tenant.
@@ -10555,9 +10541,9 @@ Performs the equivalent of a roll-back of an action to an earlier, specified ver
```typescript -await client.actions.versions.deploy("actionId", "id"); -``` +await client.attackProtection.breachedPasswordDetection.get(); +```
@@ -10571,44 +10557,19 @@ await client.actions.versions.deploy("actionId", "id");
-**actionId:** `string` — The ID of an action. - -
-
- -
-
- -**id:** `string` — The ID of an action version. - +**requestOptions:** `BreachedPasswordDetectionClient.RequestOptions` +
- -
-
- -**request:** `Management.DeployActionVersionRequestContent | undefined` -
-
-
- -**requestOptions:** `Versions.RequestOptions` - -
-
- -
-## Actions Executions - -
client.actions.executions.get(id) -> Management.GetActionExecutionResponseContent +
client.attackProtection.breachedPasswordDetection.update({ ...params }) -> Management.UpdateBreachedPasswordDetectionSettingsResponseContent
@@ -10620,8 +10581,7 @@ await client.actions.versions.deploy("actionId", "id");
-Retrieve information about a specific execution of a trigger. Relevant execution IDs will be included in tenant logs generated as part of that authentication flow. Executions will only be stored for 10 days after their creation. - +Update details of the Breached Password Detection configuration of your tenant.
@@ -10636,9 +10596,9 @@ Retrieve information about a specific execution of a trigger. Relevant execution
```typescript -await client.actions.executions.get("id"); -``` +await client.attackProtection.breachedPasswordDetection.update(); +```
@@ -10652,28 +10612,28 @@ await client.actions.executions.get("id");
-**id:** `string` — The ID of the execution to retrieve. - +**request:** `Management.UpdateBreachedPasswordDetectionSettingsRequestContent` +
-**requestOptions:** `Executions.RequestOptions` - +**requestOptions:** `BreachedPasswordDetectionClient.RequestOptions` +
+
-## Actions Triggers - -
client.actions.triggers.list() -> Management.ListActionTriggersResponseContent +## AttackProtection BruteForceProtection +
client.attackProtection.bruteForceProtection.get() -> Management.GetBruteForceSettingsResponseContent
@@ -10685,8 +10645,7 @@ await client.actions.executions.get("id");
-Retrieve the set of triggers currently available within actions. A trigger is an extensibility point to which actions can be bound. - +Retrieve details of the Brute-force Protection configuration of your tenant.
@@ -10701,9 +10660,9 @@ Retrieve the set of triggers currently available within actions. A trigger is an
```typescript -await client.actions.triggers.list(); -``` +await client.attackProtection.bruteForceProtection.get(); +```
@@ -10717,20 +10676,19 @@ await client.actions.triggers.list();
-**requestOptions:** `Triggers.RequestOptions` - +**requestOptions:** `BruteForceProtectionClient.RequestOptions` +
+
-## Actions Triggers Bindings - -
client.actions.triggers.bindings.list(triggerId, { ...params }) -> core.Page +
client.attackProtection.bruteForceProtection.update({ ...params }) -> Management.UpdateBruteForceSettingsResponseContent
@@ -10742,8 +10700,7 @@ await client.actions.triggers.list();
-Retrieve the actions that are bound to a trigger. Once an action is created and deployed, it must be attached (i.e. bound) to a trigger so that it will be executed as part of a flow. The list of actions returned reflects the order in which they will be executed during the appropriate flow. - +Update the Brute-force Protection configuration of your tenant.
@@ -10758,27 +10715,9 @@ Retrieve the actions that are bound to a trigger. Once an action is created and
```typescript -const pageableResponse = await client.actions.triggers.bindings.list("triggerId", { - page: 1, - per_page: 1, -}); -for await (const item of pageableResponse) { - console.log(item); -} - -// Or you can manually iterate page-by-page -let page = await client.actions.triggers.bindings.list("triggerId", { - page: 1, - per_page: 1, -}); -while (page.hasNextPage()) { - page = page.getNextPage(); -} +await client.attackProtection.bruteForceProtection.update(); -// You can also access the underlying response -const response = page.response; ``` -
@@ -10792,34 +10731,28 @@ const response = page.response;
-**triggerId:** `Management.ActionTriggerTypeEnum` — An actions extensibility point. - -
-
- -
-
- -**request:** `Management.ListActionTriggerBindingsRequestParameters` - +**request:** `Management.UpdateBruteForceSettingsRequestContent` +
-**requestOptions:** `Bindings.RequestOptions` - +**requestOptions:** `BruteForceProtectionClient.RequestOptions` +
+
-
client.actions.triggers.bindings.updateMany(triggerId, { ...params }) -> Management.UpdateActionBindingsResponseContent +## AttackProtection SuspiciousIpThrottling +
client.attackProtection.suspiciousIpThrottling.get() -> Management.GetSuspiciousIpThrottlingSettingsResponseContent
@@ -10831,8 +10764,7 @@ const response = page.response;
-Update the actions that are bound (i.e. attached) to a trigger. Once an action is created and deployed, it must be attached (i.e. bound) to a trigger so that it will be executed as part of a flow. The order in which the actions are provided will determine the order in which they are executed. - +Retrieve details of the Suspicious IP Throttling configuration of your tenant.
@@ -10847,9 +10779,9 @@ Update the actions that are bound (i.e. attached) to a trigger. Once an action i
```typescript -await client.actions.triggers.bindings.updateMany("triggerId"); -``` +await client.attackProtection.suspiciousIpThrottling.get(); +```
@@ -10863,36 +10795,19 @@ await client.actions.triggers.bindings.updateMany("triggerId");
-**triggerId:** `Management.ActionTriggerTypeEnum` — An actions extensibility point. - +**requestOptions:** `SuspiciousIpThrottlingClient.RequestOptions` +
- -
-
- -**request:** `Management.UpdateActionBindingsRequestContent` -
-
-
- -**requestOptions:** `Bindings.RequestOptions` - -
-
- -
-## Anomaly Blocks - -
client.anomaly.blocks.checkIp(id) -> void +
client.attackProtection.suspiciousIpThrottling.update({ ...params }) -> Management.UpdateSuspiciousIpThrottlingSettingsResponseContent
@@ -10904,8 +10819,7 @@ await client.actions.triggers.bindings.updateMany("triggerId");
-Check if the given IP address is blocked via the Suspicious IP Throttling due to multiple suspicious attempts. - +Update the details of the Suspicious IP Throttling configuration of your tenant.
@@ -10920,9 +10834,9 @@ Check if the given IP address is blocked via the
@@ -10936,30 +10850,32 @@ await client.anomaly.blocks.checkIp("id");
-**id:** `Management.AnomalyIpFormat` — IP address to check. - +**request:** `Management.UpdateSuspiciousIpThrottlingSettingsRequestContent` +
-**requestOptions:** `Blocks.RequestOptions` - +**requestOptions:** `SuspiciousIpThrottlingClient.RequestOptions` +
+
-
client.anomaly.blocks.unblockIp(id) -> void +## Branding Templates +
client.branding.templates.getUniversalLogin() -> Management.GetUniversalLoginTemplateResponseContent
-#### 📝 Description +#### 🔌 Usage
@@ -10967,25 +10883,10 @@ await client.anomaly.blocks.checkIp("id");
-Remove a block imposed by Suspicious IP Throttling for the given IP address. +```typescript +await client.branding.templates.getUniversalLogin(); -
-
-
-
- -#### 🔌 Usage - -
-
- -
-
- -```typescript -await client.anomaly.blocks.unblockIp("id"); ``` -
@@ -10999,83 +10900,19 @@ await client.anomaly.blocks.unblockIp("id");
-**id:** `Management.AnomalyIpFormat` — IP address to unblock. - -
-
- -
-
- -**requestOptions:** `Blocks.RequestOptions` - -
-
-
-
- - - -
- -## AttackProtection BotDetection - -
client.attackProtection.botDetection.get() -> Management.GetBotDetectionSettingsResponseContent -
-
- -#### 📝 Description - -
-
- -
-
- -Get the Bot Detection configuration of your tenant. - -
-
-
-
- -#### 🔌 Usage - -
-
- -
-
- -```typescript -await client.attackProtection.botDetection.get(); -``` - +**requestOptions:** `TemplatesClient.RequestOptions` +
-#### ⚙️ Parameters - -
-
- -
-
- -**requestOptions:** `BotDetection.RequestOptions` - -
-
-
-
-
client.attackProtection.botDetection.update({ ...params }) -> Management.UpdateBotDetectionSettingsResponseContent +
client.branding.templates.updateUniversalLogin({ ...params }) -> void
@@ -11087,8 +10924,31 @@ await client.attackProtection.botDetection.get();
-Update the Bot Detection configuration of your tenant. +Update the Universal Login branding template. + +

When content-type header is set to application/json, the expected body must be JSON:

+
+{
+  "template": "<!DOCTYPE html><html><head>{%- auth0:head -%}</head><body>{%- auth0:widget -%}</body></html>"
+}
+
+

+ When content-type header is set to text/html, the expected body must be the HTML template: +

+
+<!DOCTYPE html>
+<code>
+  <html>
+    <head>
+     {%- auth0:head -%}
+    </head>
+    <body>
+      {%- auth0:widget -%}
+    </body>
+  </html>
+</code>
+
@@ -11103,9 +10963,9 @@ Update the Bot Detection configuration of your tenant.
```typescript -await client.attackProtection.botDetection.update(); -``` +await client.branding.templates.updateUniversalLogin("string"); +```
@@ -11119,46 +10979,30 @@ await client.attackProtection.botDetection.update();
-**request:** `Management.UpdateBotDetectionSettingsRequestContent` - +**request:** `Management.UpdateUniversalLoginTemplateRequestContent` +
-**requestOptions:** `BotDetection.RequestOptions` - +**requestOptions:** `TemplatesClient.RequestOptions` +
+
-## AttackProtection BreachedPasswordDetection - -
client.attackProtection.breachedPasswordDetection.get() -> Management.GetBreachedPasswordDetectionSettingsResponseContent -
-
- -#### 📝 Description - -
-
- +
client.branding.templates.deleteUniversalLogin() -> void
-Retrieve details of the Breached Password Detection configuration of your tenant. - -
-
-
-
- #### 🔌 Usage
@@ -11168,9 +11012,9 @@ Retrieve details of the Breached Password Detection configuration of your tenant
```typescript -await client.attackProtection.breachedPasswordDetection.get(); -``` +await client.branding.templates.deleteUniversalLogin(); +```
@@ -11184,18 +11028,20 @@ await client.attackProtection.breachedPasswordDetection.get();
-**requestOptions:** `BreachedPasswordDetection.RequestOptions` - +**requestOptions:** `TemplatesClient.RequestOptions` +
+
-
client.attackProtection.breachedPasswordDetection.update({ ...params }) -> Management.UpdateBreachedPasswordDetectionSettingsResponseContent +## Branding Themes +
client.branding.themes.create({ ...params }) -> Management.CreateBrandingThemeResponseContent
@@ -11207,8 +11053,7 @@ await client.attackProtection.breachedPasswordDetection.get();
-Update details of the Breached Password Detection configuration of your tenant. - +Create branding theme.
@@ -11223,9 +11068,80 @@ Update details of the Breached Password Detection configuration of your tenant.
```typescript -await client.attackProtection.breachedPasswordDetection.update(); -``` +await client.branding.themes.create({ + borders: { + button_border_radius: 1.1, + button_border_weight: 1.1, + buttons_style: "pill", + input_border_radius: 1.1, + input_border_weight: 1.1, + inputs_style: "pill", + show_widget_shadow: true, + widget_border_weight: 1.1, + widget_corner_radius: 1.1 + }, + colors: { + body_text: "body_text", + error: "error", + header: "header", + icons: "icons", + input_background: "input_background", + input_border: "input_border", + input_filled_text: "input_filled_text", + input_labels_placeholders: "input_labels_placeholders", + links_focused_components: "links_focused_components", + primary_button: "primary_button", + primary_button_label: "primary_button_label", + secondary_button_border: "secondary_button_border", + secondary_button_label: "secondary_button_label", + success: "success", + widget_background: "widget_background", + widget_border: "widget_border" + }, + fonts: { + body_text: { + bold: true, + size: 1.1 + }, + buttons_text: { + bold: true, + size: 1.1 + }, + font_url: "font_url", + input_labels: { + bold: true, + size: 1.1 + }, + links: { + bold: true, + size: 1.1 + }, + links_style: "normal", + reference_text_size: 1.1, + subtitle: { + bold: true, + size: 1.1 + }, + title: { + bold: true, + size: 1.1 + } + }, + page_background: { + background_color: "background_color", + background_image_url: "background_image_url", + page_layout: "center" + }, + widget: { + header_text_alignment: "center", + logo_height: 1.1, + logo_position: "center", + logo_url: "logo_url", + social_buttons_layout: "bottom" + } +}); +```
@@ -11239,28 +11155,27 @@ await client.attackProtection.breachedPasswordDetection.update();
-**request:** `Management.UpdateBreachedPasswordDetectionSettingsRequestContent` - +**request:** `Management.CreateBrandingThemeRequestContent` +
-**requestOptions:** `BreachedPasswordDetection.RequestOptions` - +**requestOptions:** `ThemesClient.RequestOptions` +
+
-## AttackProtection BruteForceProtection - -
client.attackProtection.bruteForceProtection.get() -> Management.GetBruteForceSettingsResponseContent +
client.branding.themes.getDefault() -> Management.GetBrandingDefaultThemeResponseContent
@@ -11272,8 +11187,7 @@ await client.attackProtection.breachedPasswordDetection.update();
-Retrieve details of the Brute-force Protection configuration of your tenant. - +Retrieve default branding theme.
@@ -11288,9 +11202,9 @@ Retrieve details of the Brute-force Protection configuration of your tenant.
```typescript -await client.attackProtection.bruteForceProtection.get(); -``` +await client.branding.themes.getDefault(); +```
@@ -11304,18 +11218,19 @@ await client.attackProtection.bruteForceProtection.get();
-**requestOptions:** `BruteForceProtection.RequestOptions` - +**requestOptions:** `ThemesClient.RequestOptions` +
+
-
client.attackProtection.bruteForceProtection.update({ ...params }) -> Management.UpdateBruteForceSettingsResponseContent +
client.branding.themes.get(themeId) -> Management.GetBrandingThemeResponseContent
@@ -11327,8 +11242,7 @@ await client.attackProtection.bruteForceProtection.get();
-Update the Brute-force Protection configuration of your tenant. - +Retrieve branding theme.
@@ -11343,9 +11257,9 @@ Update the Brute-force Protection configuration of your tenant.
```typescript -await client.attackProtection.bruteForceProtection.update(); -``` +await client.branding.themes.get("themeId"); +```
@@ -11359,28 +11273,27 @@ await client.attackProtection.bruteForceProtection.update();
-**request:** `Management.UpdateBruteForceSettingsRequestContent` - +**themeId:** `string` — The ID of the theme +
-**requestOptions:** `BruteForceProtection.RequestOptions` - +**requestOptions:** `ThemesClient.RequestOptions` +
+
-## AttackProtection Captcha - -
client.attackProtection.captcha.get() -> Management.GetAttackProtectionCaptchaResponseContent +
client.branding.themes.delete(themeId) -> void
@@ -11392,8 +11305,7 @@ await client.attackProtection.bruteForceProtection.update();
-Get the CAPTCHA configuration for your client. - +Delete branding theme.
@@ -11408,9 +11320,9 @@ Get the CAPTCHA configuration for your client.
```typescript -await client.attackProtection.captcha.get(); -``` +await client.branding.themes.delete("themeId"); +```
@@ -11424,18 +11336,27 @@ await client.attackProtection.captcha.get();
-**requestOptions:** `Captcha.RequestOptions` +**themeId:** `string` — The ID of the theme + +
+
+ +
+
+**requestOptions:** `ThemesClient.RequestOptions` +
+
-
client.attackProtection.captcha.update({ ...params }) -> Management.UpdateAttackProtectionCaptchaResponseContent +
client.branding.themes.update(themeId, { ...params }) -> Management.UpdateBrandingThemeResponseContent
@@ -11447,8 +11368,7 @@ await client.attackProtection.captcha.get();
-Update existing CAPTCHA configuration for your client. - +Update branding theme.
@@ -11463,1583 +11383,80 @@ Update existing CAPTCHA configuration for your client.
```typescript -await client.attackProtection.captcha.update(); -``` - -
-
- - - -#### ⚙️ Parameters - -
-
- -
-
- -**request:** `Management.UpdateAttackProtectionCaptchaRequestContent` - -
-
- -
-
- -**requestOptions:** `Captcha.RequestOptions` - -
-
-
-
- - - -
- -## AttackProtection SuspiciousIpThrottling - -
client.attackProtection.suspiciousIpThrottling.get() -> Management.GetSuspiciousIpThrottlingSettingsResponseContent -
-
- -#### 📝 Description - -
-
- -
-
- -Retrieve details of the Suspicious IP Throttling configuration of your tenant. - -
-
-
-
- -#### 🔌 Usage - -
-
- -
-
- -```typescript -await client.attackProtection.suspiciousIpThrottling.get(); -``` - -
-
-
-
- -#### ⚙️ Parameters - -
-
- -
-
- -**requestOptions:** `SuspiciousIpThrottling.RequestOptions` - -
-
-
-
- -
-
-
- -
client.attackProtection.suspiciousIpThrottling.update({ ...params }) -> Management.UpdateSuspiciousIpThrottlingSettingsResponseContent -
-
- -#### 📝 Description - -
-
- -
-
- -Update the details of the Suspicious IP Throttling configuration of your tenant. - -
-
-
-
- -#### 🔌 Usage - -
-
- -
-
- -```typescript -await client.attackProtection.suspiciousIpThrottling.update(); -``` - -
-
-
-
- -#### ⚙️ Parameters - -
-
- -
-
- -**request:** `Management.UpdateSuspiciousIpThrottlingSettingsRequestContent` - -
-
- -
-
- -**requestOptions:** `SuspiciousIpThrottling.RequestOptions` - -
-
-
-
- -
-
-
- -## Branding Templates - -
client.branding.templates.getUniversalLogin() -> Management.GetUniversalLoginTemplateResponseContent -
-
- -#### 🔌 Usage - -
-
- -
-
- -```typescript -await client.branding.templates.getUniversalLogin(); -``` - -
-
-
-
- -#### ⚙️ Parameters - -
-
- -
-
- -**requestOptions:** `Templates.RequestOptions` - -
-
-
-
- -
-
-
- -
client.branding.templates.updateUniversalLogin({ ...params }) -> void -
-
- -#### 📝 Description - -
-
- -
-
- -Update the Universal Login branding template. - -

When content-type header is set to application/json:

-
-{
-  "template": "<!DOCTYPE html>{% assign resolved_dir = dir | default: "auto" %}<html lang="{{locale}}" dir="{{resolved_dir}}"><head>{%- auth0:head -%}</head><body class="_widget-auto-layout">{%- auth0:widget -%}</body></html>"
-}
-
- -

- When content-type header is set to text/html: -

-
-<!DOCTYPE html>
-{% assign resolved_dir = dir | default: "auto" %}
-<html lang="{{locale}}" dir="{{resolved_dir}}">
-  <head>
-    {%- auth0:head -%}
-  </head>
-  <body class="_widget-auto-layout">
-    {%- auth0:widget -%}
-  </body>
-</html>
-
-
-
-
-
- -#### 🔌 Usage - -
-
- -
-
- -```typescript -await client.branding.templates.updateUniversalLogin("string"); -``` - -
-
-
-
- -#### ⚙️ Parameters - -
-
- -
-
- -**request:** `Management.UpdateUniversalLoginTemplateRequestContent` - -
-
- -
-
- -**requestOptions:** `Templates.RequestOptions` - -
-
-
-
- -
-
-
- -
client.branding.templates.deleteUniversalLogin() -> void -
-
- -#### 🔌 Usage - -
-
- -
-
- -```typescript -await client.branding.templates.deleteUniversalLogin(); -``` - -
-
-
-
- -#### ⚙️ Parameters - -
-
- -
-
- -**requestOptions:** `Templates.RequestOptions` - -
-
-
-
- -
-
-
- -## Branding Themes - -
client.branding.themes.create({ ...params }) -> Management.CreateBrandingThemeResponseContent -
-
- -#### 📝 Description - -
-
- -
-
- -Create branding theme. - -
-
-
-
- -#### 🔌 Usage - -
-
- -
-
- -```typescript -await client.branding.themes.create({ - borders: { - button_border_radius: 1.1, - button_border_weight: 1.1, - buttons_style: "pill", - input_border_radius: 1.1, - input_border_weight: 1.1, - inputs_style: "pill", - show_widget_shadow: true, - widget_border_weight: 1.1, - widget_corner_radius: 1.1, - }, - colors: { - body_text: "body_text", - error: "error", - header: "header", - icons: "icons", - input_background: "input_background", - input_border: "input_border", - input_filled_text: "input_filled_text", - input_labels_placeholders: "input_labels_placeholders", - links_focused_components: "links_focused_components", - primary_button: "primary_button", - primary_button_label: "primary_button_label", - secondary_button_border: "secondary_button_border", - secondary_button_label: "secondary_button_label", - success: "success", - widget_background: "widget_background", - widget_border: "widget_border", - }, - fonts: { - body_text: { - bold: true, - size: 1.1, - }, - buttons_text: { - bold: true, - size: 1.1, - }, - font_url: "font_url", - input_labels: { - bold: true, - size: 1.1, - }, - links: { - bold: true, - size: 1.1, - }, - links_style: "normal", - reference_text_size: 1.1, - subtitle: { - bold: true, - size: 1.1, - }, - title: { - bold: true, - size: 1.1, - }, - }, - page_background: { - background_color: "background_color", - background_image_url: "background_image_url", - page_layout: "center", - }, - widget: { - header_text_alignment: "center", - logo_height: 1.1, - logo_position: "center", - logo_url: "logo_url", - social_buttons_layout: "bottom", - }, -}); -``` - -
-
-
-
- -#### ⚙️ Parameters - -
-
- -
-
- -**request:** `Management.CreateBrandingThemeRequestContent` - -
-
- -
-
- -**requestOptions:** `Themes.RequestOptions` - -
-
-
-
- -
-
-
- -
client.branding.themes.getDefault() -> Management.GetBrandingDefaultThemeResponseContent -
-
- -#### 📝 Description - -
-
- -
-
- -Retrieve default branding theme. - -
-
-
-
- -#### 🔌 Usage - -
-
- -
-
- -```typescript -await client.branding.themes.getDefault(); -``` - -
-
-
-
- -#### ⚙️ Parameters - -
-
- -
-
- -**requestOptions:** `Themes.RequestOptions` - -
-
-
-
- -
-
-
- -
client.branding.themes.get(themeId) -> Management.GetBrandingThemeResponseContent -
-
- -#### 📝 Description - -
-
- -
-
- -Retrieve branding theme. - -
-
-
-
- -#### 🔌 Usage - -
-
- -
-
- -```typescript -await client.branding.themes.get("themeId"); -``` - -
-
-
-
- -#### ⚙️ Parameters - -
-
- -
-
- -**themeId:** `string` — The ID of the theme - -
-
- -
-
- -**requestOptions:** `Themes.RequestOptions` - -
-
-
-
- -
-
-
- -
client.branding.themes.delete(themeId) -> void -
-
- -#### 📝 Description - -
-
- -
-
- -Delete branding theme. - -
-
-
-
- -#### 🔌 Usage - -
-
- -
-
- -```typescript -await client.branding.themes.delete("themeId"); -``` - -
-
-
-
- -#### ⚙️ Parameters - -
-
- -
-
- -**themeId:** `string` — The ID of the theme - -
-
- -
-
- -**requestOptions:** `Themes.RequestOptions` - -
-
-
-
- -
-
-
- -
client.branding.themes.update(themeId, { ...params }) -> Management.UpdateBrandingThemeResponseContent -
-
- -#### 📝 Description - -
-
- -
-
- -Update branding theme. - -
-
-
-
- -#### 🔌 Usage - -
-
- -
-
- -```typescript -await client.branding.themes.update("themeId", { - borders: { - button_border_radius: 1.1, - button_border_weight: 1.1, - buttons_style: "pill", - input_border_radius: 1.1, - input_border_weight: 1.1, - inputs_style: "pill", - show_widget_shadow: true, - widget_border_weight: 1.1, - widget_corner_radius: 1.1, - }, - colors: { - body_text: "body_text", - error: "error", - header: "header", - icons: "icons", - input_background: "input_background", - input_border: "input_border", - input_filled_text: "input_filled_text", - input_labels_placeholders: "input_labels_placeholders", - links_focused_components: "links_focused_components", - primary_button: "primary_button", - primary_button_label: "primary_button_label", - secondary_button_border: "secondary_button_border", - secondary_button_label: "secondary_button_label", - success: "success", - widget_background: "widget_background", - widget_border: "widget_border", - }, - fonts: { - body_text: { - bold: true, - size: 1.1, - }, - buttons_text: { - bold: true, - size: 1.1, - }, - font_url: "font_url", - input_labels: { - bold: true, - size: 1.1, - }, - links: { - bold: true, - size: 1.1, - }, - links_style: "normal", - reference_text_size: 1.1, - subtitle: { - bold: true, - size: 1.1, - }, - title: { - bold: true, - size: 1.1, - }, - }, - page_background: { - background_color: "background_color", - background_image_url: "background_image_url", - page_layout: "center", - }, - widget: { - header_text_alignment: "center", - logo_height: 1.1, - logo_position: "center", - logo_url: "logo_url", - social_buttons_layout: "bottom", - }, -}); -``` - -
-
-
-
- -#### ⚙️ Parameters - -
-
- -
-
- -**themeId:** `string` — The ID of the theme - -
-
- -
-
- -**request:** `Management.UpdateBrandingThemeRequestContent` - -
-
- -
-
- -**requestOptions:** `Themes.RequestOptions` - -
-
-
-
- -
-
-
- -## Branding Phone Providers - -
client.branding.phone.providers.list({ ...params }) -> Management.ListBrandingPhoneProvidersResponseContent -
-
- -#### 📝 Description - -
-
- -
-
- -Retrieve a list of phone providers details set for a Tenant. A list of fields to include or exclude may also be specified. - -
-
-
-
- -#### 🔌 Usage - -
-
- -
-
- -```typescript -await client.branding.phone.providers.list({ - disabled: true, -}); -``` - -
-
-
-
- -#### ⚙️ Parameters - -
-
- -
-
- -**request:** `Management.ListBrandingPhoneProvidersRequestParameters` - -
-
- -
-
- -**requestOptions:** `Providers.RequestOptions` - -
-
-
-
- -
-
-
- -
client.branding.phone.providers.create({ ...params }) -> Management.CreateBrandingPhoneProviderResponseContent -
-
- -#### 📝 Description - -
-
- -
-
- -Create a phone provider. -The credentials object requires different properties depending on the phone provider (which is specified using the name property). - -
-
-
-
- -#### 🔌 Usage - -
-
- -
-
- -```typescript -await client.branding.phone.providers.create({ - name: "twilio", - credentials: { - auth_token: "auth_token", - }, -}); -``` - -
-
-
-
- -#### ⚙️ Parameters - -
-
- -
-
- -**request:** `Management.CreateBrandingPhoneProviderRequestContent` - -
-
- -
-
- -**requestOptions:** `Providers.RequestOptions` - -
-
-
-
- -
-
-
- -
client.branding.phone.providers.get(id) -> Management.GetBrandingPhoneProviderResponseContent -
-
- -#### 📝 Description - -
-
- -
-
- -Retrieve phone provider details. A list of fields to include or exclude may also be specified. - -
-
-
-
- -#### 🔌 Usage - -
-
- -
-
- -```typescript -await client.branding.phone.providers.get("id"); -``` - -
-
-
-
- -#### ⚙️ Parameters - -
-
- -
-
- -**id:** `string` - -
-
- -
-
- -**requestOptions:** `Providers.RequestOptions` - -
-
-
-
- -
-
-
- -
client.branding.phone.providers.delete(id) -> void -
-
- -#### 📝 Description - -
-
- -
-
- -Delete the configured phone provider. - -
-
-
-
- -#### 🔌 Usage - -
-
- -
-
- -```typescript -await client.branding.phone.providers.delete("id"); -``` - -
-
-
-
- -#### ⚙️ Parameters - -
-
- -
-
- -**id:** `string` - -
-
- -
-
- -**requestOptions:** `Providers.RequestOptions` - -
-
-
-
- -
-
-
- -
client.branding.phone.providers.update(id, { ...params }) -> Management.UpdateBrandingPhoneProviderResponseContent -
-
- -#### 📝 Description - -
-
- -
-
- -Update a phone provider. -The credentials object requires different properties depending on the phone provider (which is specified using the name property). - -
-
-
-
- -#### 🔌 Usage - -
-
- -
-
- -```typescript -await client.branding.phone.providers.update("id"); -``` - -
-
-
-
- -#### ⚙️ Parameters - -
-
- -
-
- -**id:** `string` - -
-
- -
-
- -**request:** `Management.UpdateBrandingPhoneProviderRequestContent` - -
-
- -
-
- -**requestOptions:** `Providers.RequestOptions` - -
-
-
-
- -
-
-
- -
client.branding.phone.providers.test(id, { ...params }) -> Management.CreatePhoneProviderSendTestResponseContent -
-
- -#### 🔌 Usage - -
-
- -
-
- -```typescript -await client.branding.phone.providers.test("id", { - to: "to", -}); -``` - -
-
-
-
- -#### ⚙️ Parameters - -
-
- -
-
- -**id:** `string` - -
-
- -
-
- -**request:** `Management.CreatePhoneProviderSendTestRequestContent` - -
-
- -
-
- -**requestOptions:** `Providers.RequestOptions` - -
-
-
-
- -
-
-
- -## Branding Phone Templates - -
client.branding.phone.templates.list({ ...params }) -> Management.ListPhoneTemplatesResponseContent -
-
- -#### 🔌 Usage - -
-
- -
-
- -```typescript -await client.branding.phone.templates.list({ - disabled: true, -}); -``` - -
-
-
-
- -#### ⚙️ Parameters - -
-
- -
-
- -**request:** `Management.ListPhoneTemplatesRequestParameters` - -
-
- -
-
- -**requestOptions:** `Templates.RequestOptions` - -
-
-
-
- -
-
-
- -
client.branding.phone.templates.create({ ...params }) -> Management.CreatePhoneTemplateResponseContent -
-
- -#### 🔌 Usage - -
-
- -
-
- -```typescript -await client.branding.phone.templates.create(); -``` - -
-
-
-
- -#### ⚙️ Parameters - -
-
- -
-
- -**request:** `Management.CreatePhoneTemplateRequestContent` - -
-
- -
-
- -**requestOptions:** `Templates.RequestOptions` - -
-
-
-
- -
-
-
- -
client.branding.phone.templates.get(id) -> Management.GetPhoneTemplateResponseContent -
-
- -#### 🔌 Usage - -
-
- -
-
- -```typescript -await client.branding.phone.templates.get("id"); -``` - -
-
-
-
- -#### ⚙️ Parameters - -
-
- -
-
- -**id:** `string` - -
-
- -
-
- -**requestOptions:** `Templates.RequestOptions` - -
-
-
-
- -
-
-
- -
client.branding.phone.templates.delete(id) -> void -
-
- -#### 🔌 Usage - -
-
- -
-
- -```typescript -await client.branding.phone.templates.delete("id"); -``` - -
-
-
-
- -#### ⚙️ Parameters - -
-
- -
-
- -**id:** `string` - -
-
- -
-
- -**requestOptions:** `Templates.RequestOptions` - -
-
-
-
- -
-
-
- -
client.branding.phone.templates.update(id, { ...params }) -> Management.UpdatePhoneTemplateResponseContent -
-
- -#### 🔌 Usage - -
-
- -
-
- -```typescript -await client.branding.phone.templates.update("id"); -``` - -
-
-
-
- -#### ⚙️ Parameters - -
-
- -
-
- -**id:** `string` - -
-
- -
-
- -**request:** `Management.UpdatePhoneTemplateRequestContent` - -
-
- -
-
- -**requestOptions:** `Templates.RequestOptions` - -
-
-
-
- -
-
-
- -
client.branding.phone.templates.reset(id, { ...params }) -> Management.ResetPhoneTemplateResponseContent -
-
- -#### 🔌 Usage - -
-
- -
-
- -```typescript -await client.branding.phone.templates.reset("id", { - key: "value", -}); -``` - -
-
-
-
- -#### ⚙️ Parameters - -
-
- -
-
- -**id:** `string` - -
-
- -
-
- -**request:** `Management.ResetPhoneTemplateRequestContent` - -
-
- -
-
- -**requestOptions:** `Templates.RequestOptions` - -
-
-
-
- -
-
-
- -
client.branding.phone.templates.test(id, { ...params }) -> Management.CreatePhoneTemplateTestNotificationResponseContent -
-
- -#### 🔌 Usage - -
-
- -
-
- -```typescript -await client.branding.phone.templates.test("id", { - to: "to", -}); -``` - -
-
-
-
- -#### ⚙️ Parameters - -
-
- -
-
- -**id:** `string` - -
-
- -
-
- -**request:** `Management.CreatePhoneTemplateTestNotificationRequestContent` - -
-
- -
-
- -**requestOptions:** `Templates.RequestOptions` - -
-
-
-
- -
-
-
- -## ClientGrants Organizations - -
client.clientGrants.organizations.list(id, { ...params }) -> core.Page -
-
- -#### 🔌 Usage - -
-
- -
-
- -```typescript -const pageableResponse = await client.clientGrants.organizations.list("id", { - from: "from", - take: 1, -}); -for await (const item of pageableResponse) { - console.log(item); -} - -// Or you can manually iterate page-by-page -let page = await client.clientGrants.organizations.list("id", { - from: "from", - take: 1, +await client.branding.themes.update("themeId", { + borders: { + button_border_radius: 1.1, + button_border_weight: 1.1, + buttons_style: "pill", + input_border_radius: 1.1, + input_border_weight: 1.1, + inputs_style: "pill", + show_widget_shadow: true, + widget_border_weight: 1.1, + widget_corner_radius: 1.1 + }, + colors: { + body_text: "body_text", + error: "error", + header: "header", + icons: "icons", + input_background: "input_background", + input_border: "input_border", + input_filled_text: "input_filled_text", + input_labels_placeholders: "input_labels_placeholders", + links_focused_components: "links_focused_components", + primary_button: "primary_button", + primary_button_label: "primary_button_label", + secondary_button_border: "secondary_button_border", + secondary_button_label: "secondary_button_label", + success: "success", + widget_background: "widget_background", + widget_border: "widget_border" + }, + fonts: { + body_text: { + bold: true, + size: 1.1 + }, + buttons_text: { + bold: true, + size: 1.1 + }, + font_url: "font_url", + input_labels: { + bold: true, + size: 1.1 + }, + links: { + bold: true, + size: 1.1 + }, + links_style: "normal", + reference_text_size: 1.1, + subtitle: { + bold: true, + size: 1.1 + }, + title: { + bold: true, + size: 1.1 + } + }, + page_background: { + background_color: "background_color", + background_image_url: "background_image_url", + page_layout: "center" + }, + widget: { + header_text_alignment: "center", + logo_height: 1.1, + logo_position: "center", + logo_url: "logo_url", + social_buttons_layout: "bottom" + } }); -while (page.hasNextPage()) { - page = page.getNextPage(); -} -// You can also access the underlying response -const response = page.response; ``` -
@@ -13053,101 +11470,36 @@ const response = page.response;
-**id:** `string` — ID of the client grant - -
-
- -
-
- -**request:** `Management.ListClientGrantOrganizationsRequestParameters` - -
-
- -
-
- -**requestOptions:** `Organizations.RequestOptions` - -
-
-
-
- +**themeId:** `string` — The ID of the theme + -
- -## Clients Credentials - -
client.clients.credentials.list(clientId) -> Management.ClientCredential[] -
-
- -#### 📝 Description - -
-
-Get the details of a client credential. - -Important: To enable credentials to be used for a client authentication method, set the client_authentication_methods property on the client. To enable credentials to be used for JWT-Secured Authorization requests set the signed_request_object property on the client. - +**request:** `Management.UpdateBrandingThemeRequestContent` +
-
-
- -#### 🔌 Usage
-
-
- -```typescript -await client.clients.credentials.list("client_id"); -``` - -
-
+**requestOptions:** `ThemesClient.RequestOptions` +
- -#### ⚙️ Parameters - -
-
- -
-
- -**clientId:** `string` — ID of the client. -
-
-
- -**requestOptions:** `Credentials.RequestOptions` - -
-
-
-
-
client.clients.credentials.create(clientId, { ...params }) -> Management.PostClientCredentialResponseContent +## Branding Phone Providers +
client.branding.phone.providers.list({ ...params }) -> Management.ListBrandingPhoneProvidersResponseContent
@@ -13159,41 +11511,7 @@ await client.clients.credentials.list("client_id");
-Create a client credential associated to your application. Credentials can be used to configure Private Key JWT and mTLS authentication methods, as well as for JWT-secured Authorization requests. - -
Public Key
Public Key credentials can be used to set up Private Key JWT client authentication and JWT-secured Authorization requests. - -Sample:
{
-"credential_type": "public_key",
-"name": "string",
-"pem": "string",
-"alg": "RS256",
-"parse_expiry_from_cert": false,
-"expires_at": "2022-12-31T23:59:59Z"
-}
- -
Certificate (CA-signed & self-signed)
Certificate credentials can be used to set up mTLS client authentication. CA-signed certificates can be configured either with a signed certificate or with just the certificate Subject DN. - -CA-signed Certificate Sample (pem):
{
-"credential_type": "x509_cert",
-"name": "string",
-"pem": "string"
-}
CA-signed Certificate Sample (subject_dn):
{
-"credential_type": "cert_subject_dn",
-"name": "string",
-"subject_dn": "string"
-}
Self-signed Certificate Sample:
{
-"credential_type": "cert_subject_dn",
-"name": "string",
-"pem": "string"
-}
- -The credential will be created but not yet enabled for use until you set the corresponding properties in the client: - - +Retrieve a list of phone providers details set for a Tenant. A list of fields to include or exclude may also be specified.
@@ -13208,125 +11526,45 @@ The credential will be created but not yet enabled for use until you set the cor
```typescript -await client.clients.credentials.create("client_id", { - credential_type: "public_key", +await client.branding.phone.providers.list({ + disabled: true }); -``` - -
-
- - - -#### ⚙️ Parameters - -
-
- -
-
- -**clientId:** `string` — ID of the client. - -
-
- -
-
- -**request:** `Management.PostClientCredentialRequestContent` - -
-
- -
-
- -**requestOptions:** `Credentials.RequestOptions` - -
-
-
-
- - - -
- -
client.clients.credentials.get(clientId, credentialId) -> Management.GetClientCredentialResponseContent -
-
- -#### 📝 Description - -
-
- -
-
- -Get the details of a client credential. - -Important: To enable credentials to be used for a client authentication method, set the client_authentication_methods property on the client. To enable credentials to be used for JWT-Secured Authorization requests set the signed_request_object property on the client. - -
-
-
-
- -#### 🔌 Usage - -
-
- -
-
-```typescript -await client.clients.credentials.get("client_id", "credential_id"); ``` -
-#### ⚙️ Parameters - -
-
- -
-
- -**clientId:** `string` — ID of the client. - -
-
+#### ⚙️ Parameters
-**credentialId:** `string` — ID of the credential. +
+
+**request:** `Management.ListBrandingPhoneProvidersRequestParameters` +
-**requestOptions:** `Credentials.RequestOptions` - +**requestOptions:** `ProvidersClient.RequestOptions` +
+
-
client.clients.credentials.delete(clientId, credentialId) -> void +
client.branding.phone.providers.create({ ...params }) -> Management.CreateBrandingPhoneProviderResponseContent
@@ -13338,8 +11576,8 @@ await client.clients.credentials.get("client_id", "credential_id");
-Delete a client credential you previously created. May be enabled or disabled. For more information, read Client Credential Flow. - +Create a phone provider. +The credentials object requires different properties depending on the phone provider (which is specified using the name property).
@@ -13354,9 +11592,14 @@ Delete a client credential you previously created. May be enabled or disabled. F
```typescript -await client.clients.credentials.delete("client_id", "credential_id"); -``` +await client.branding.phone.providers.create({ + name: "twilio", + credentials: { + auth_token: "auth_token" + } +}); +```
@@ -13370,34 +11613,27 @@ await client.clients.credentials.delete("client_id", "credential_id");
-**clientId:** `string` — ID of the client. - -
-
- -
-
- -**credentialId:** `string` — ID of the credential to delete. - +**request:** `Management.CreateBrandingPhoneProviderRequestContent` +
-**requestOptions:** `Credentials.RequestOptions` - +**requestOptions:** `ProvidersClient.RequestOptions` +
+
-
client.clients.credentials.update(clientId, credentialId, { ...params }) -> Management.PatchClientCredentialResponseContent +
client.branding.phone.providers.get(id) -> Management.GetBrandingPhoneProviderResponseContent
@@ -13409,8 +11645,7 @@ await client.clients.credentials.delete("client_id", "credential_id");
-Change a client credential you previously created. May be enabled or disabled. For more information, read Client Credential Flow. - +Retrieve phone provider details. A list of fields to include or exclude may also be specified.
@@ -13425,9 +11660,9 @@ Change a client credential you previously created. May be enabled or disabled. F
```typescript -await client.clients.credentials.update("client_id", "credential_id"); -``` +await client.branding.phone.providers.get("id"); +```
@@ -13441,44 +11676,27 @@ await client.clients.credentials.update("client_id", "credential_id");
-**clientId:** `string` — ID of the client. - +**id:** `string` +
-**credentialId:** `string` — ID of the credential. - +**requestOptions:** `ProvidersClient.RequestOptions` +
- -
-
- -**request:** `Management.PatchClientCredentialRequestContent` -
-
-
- -**requestOptions:** `Credentials.RequestOptions` - -
-
- -
-## Clients Connections - -
client.clients.connections.get(id, { ...params }) -> core.Page +
client.branding.phone.providers.delete(id) -> void
@@ -13490,16 +11708,7 @@ await client.clients.credentials.update("client_id", "credential_id");
-Retrieve all connections that are enabled for the specified Application, using checkpoint pagination. A list of fields to include or exclude for each connection may also be specified. - -
    -
  • - This endpoint requires the read:connections scope and any one of read:clients or read:client_summary. -
  • -
  • - Note: The first time you call this endpoint, omit the from parameter. If there are more results, a next value is included in the response. You can use this for subsequent API calls. When next is no longer included in the response, no further results are remaining. -
  • -
+Delete the configured phone provider.
@@ -13514,31 +11723,9 @@ Retrieve all connections that are enabled for the specified
@@ -13552,36 +11739,27 @@ const response = page.response;
-**id:** `string` — ID of the client for which to retrieve enabled connections. - -
-
- -
-
- -**request:** `Management.ConnectionsGetRequest` - +**id:** `string` +
-**requestOptions:** `Connections.RequestOptions` - +**requestOptions:** `ProvidersClient.RequestOptions` +
+
-## Connections Clients - -
client.connections.clients.get(id, { ...params }) -> core.Page +
client.branding.phone.providers.update(id, { ...params }) -> Management.UpdateBrandingPhoneProviderResponseContent
@@ -13593,10 +11771,8 @@ const response = page.response;
-Retrieve all clients that have the specified connection enabled. - -Note: The first time you call this endpoint, omit the from parameter. If there are more results, a next value is included in the response. You can use this for subsequent API calls. When next is no longer included in the response, no further results are remaining. - +Update a phone provider. +The credentials object requires different properties depending on the phone provider (which is specified using the name property).
@@ -13611,27 +11787,9 @@ Retrieve all clients that have the specified
@@ -13645,34 +11803,35 @@ const response = page.response;
-**id:** `string` — The id of the connection for which enabled clients are to be retrieved - +**id:** `string` +
-**request:** `Management.GetConnectionEnabledClientsRequestParameters` - +**request:** `Management.UpdateBrandingPhoneProviderRequestContent` +
-**requestOptions:** `Clients.RequestOptions` - +**requestOptions:** `ProvidersClient.RequestOptions` +
+
-
client.connections.clients.update(id, { ...params }) -> void +
client.branding.phone.providers.test(id, { ...params }) -> Management.CreatePhoneProviderSendTestResponseContent
@@ -13685,14 +11844,11 @@ const response = page.response;
```typescript -await client.connections.clients.update("id", [ - { - client_id: "client_id", - status: true, - }, -]); -``` +await client.branding.phone.providers.test("id", { + to: "to" +}); +```
@@ -13706,54 +11862,39 @@ await client.connections.clients.update("id", [
-**id:** `string` — The id of the connection to modify - +**id:** `string` +
-**request:** `Management.UpdateEnabledClientConnectionsRequestContent` - +**request:** `Management.CreatePhoneProviderSendTestRequestContent` +
-**requestOptions:** `Clients.RequestOptions` - +**requestOptions:** `ProvidersClient.RequestOptions` +
+
-## Connections Keys - -
client.connections.keys.get(id) -> Management.ConnectionKey[] -
-
- -#### 📝 Description - -
-
- +## Branding Phone Templates +
client.branding.phone.templates.list({ ...params }) -> Management.ListPhoneTemplatesResponseContent
-Gets the connection keys for the Okta or OIDC connection strategy. - -
-
-
-
- #### 🔌 Usage
@@ -13763,9 +11904,11 @@ Gets the connection keys for the Okta or OIDC connection strategy.
```typescript -await client.connections.keys.get("id"); -``` +await client.branding.phone.templates.list({ + disabled: true +}); +```
@@ -13779,44 +11922,30 @@ await client.connections.keys.get("id");
-**id:** `string` — ID of the connection - +**request:** `Management.ListPhoneTemplatesRequestParameters` +
-**requestOptions:** `Keys.RequestOptions` - +**requestOptions:** `TemplatesClient.RequestOptions` +
+
-
client.connections.keys.rotate(id, { ...params }) -> Management.RotateConnectionsKeysResponseContent -
-
- -#### 📝 Description - -
-
- +
client.branding.phone.templates.create({ ...params }) -> Management.CreatePhoneTemplateResponseContent
-Rotates the connection keys for the Okta or OIDC connection strategies. - -
-
-
-
- #### 🔌 Usage
@@ -13826,9 +11955,9 @@ Rotates the connection keys for the Okta or OIDC connection strategies.
```typescript -await client.connections.keys.rotate("id"); -``` +await client.branding.phone.templates.create(); +```
@@ -13842,40 +11971,31 @@ await client.connections.keys.rotate("id");
-**id:** `string` — ID of the connection - -
-
- -
-
- -**request:** `Management.RotateConnectionKeysRequestContent | null` - +**request:** `Management.CreatePhoneTemplateRequestContent` +
-**requestOptions:** `Keys.RequestOptions` - +**requestOptions:** `TemplatesClient.RequestOptions` +
+
-## Connections ScimConfiguration - -
client.connections.scimConfiguration.get(id) -> Management.GetScimConfigurationResponseContent +
client.branding.phone.templates.get(id) -> Management.GetPhoneTemplateResponseContent
-#### 📝 Description +#### 🔌 Usage
@@ -13883,14 +12003,16 @@ await client.connections.keys.rotate("id");
-Retrieves a scim configuration by its connectionId. +```typescript +await client.branding.phone.templates.get("id"); +```
-#### 🔌 Usage +#### ⚙️ Parameters
@@ -13898,60 +12020,78 @@ Retrieves a scim configuration by its connectionId.
-```typescript -await client.connections.scimConfiguration.get("id"); -``` +**id:** `string` + +
+
+
+
+ +**requestOptions:** `TemplatesClient.RequestOptions` +
-#### ⚙️ Parameters -
-
+
+
+
+
client.branding.phone.templates.delete(id) -> void
-**id:** `string` — The id of the connection to retrieve its SCIM configuration +#### 🔌 Usage -
-
+
+
-**requestOptions:** `ScimConfiguration.RequestOptions` +```typescript +await client.branding.phone.templates.delete("id"); +```
- - -
+#### ⚙️ Parameters -
client.connections.scimConfiguration.create(id, { ...params }) -> Management.CreateScimConfigurationResponseContent
-#### 📝 Description -
+**id:** `string` + +
+
+
-Create a scim configuration for a connection. - +**requestOptions:** `TemplatesClient.RequestOptions` + +
+
+ + +
+ +
client.branding.phone.templates.update(id, { ...params }) -> Management.UpdatePhoneTemplateResponseContent +
+
#### 🔌 Usage @@ -13962,9 +12102,9 @@ Create a scim configuration for a connection.
```typescript -await client.connections.scimConfiguration.create("id"); -``` +await client.branding.phone.templates.update("id"); +```
@@ -13978,38 +12118,39 @@ await client.connections.scimConfiguration.create("id");
-**id:** `string` — The id of the connection to create its SCIM configuration - +**id:** `string` +
-**request:** `Management.CreateScimConfigurationRequestContent | null` - +**request:** `Management.UpdatePhoneTemplateRequestContent` +
-**requestOptions:** `ScimConfiguration.RequestOptions` - +**requestOptions:** `TemplatesClient.RequestOptions` +
+
-
client.connections.scimConfiguration.delete(id) -> void +
client.branding.phone.templates.reset(id, { ...params }) -> Management.ResetPhoneTemplateResponseContent
-#### 📝 Description +#### 🔌 Usage
@@ -14017,14 +12158,18 @@ await client.connections.scimConfiguration.create("id");
-Deletes a scim configuration by its connectionId. +```typescript +await client.branding.phone.templates.reset("id", { + "key": "value" +}); +```
-#### 🔌 Usage +#### ⚙️ Parameters
@@ -14032,61 +12177,38 @@ Deletes a scim configuration by its connectionId.
-```typescript -await client.connections.scimConfiguration.delete("id"); -``` - +**id:** `string` +
-
-
- -#### ⚙️ Parameters
-
-
- -**id:** `string` — The id of the connection to delete its SCIM configuration - +**request:** `Management.ResetPhoneTemplateRequestContent` +
-**requestOptions:** `ScimConfiguration.RequestOptions` - +**requestOptions:** `TemplatesClient.RequestOptions` +
+
-
client.connections.scimConfiguration.update(id, { ...params }) -> Management.UpdateScimConfigurationResponseContent -
-
- -#### 📝 Description - -
-
- +
client.branding.phone.templates.test(id, { ...params }) -> Management.CreatePhoneTemplateTestNotificationResponseContent
-Update a scim configuration by its connectionId. - -
-
-
-
- #### 🔌 Usage
@@ -14096,12 +12218,11 @@ Update a scim configuration by its connectionId.
```typescript -await client.connections.scimConfiguration.update("id", { - user_id_attribute: "user_id_attribute", - mapping: [{}], +await client.branding.phone.templates.test("id", { + to: "to" }); -``` +```
@@ -14115,38 +12236,40 @@ await client.connections.scimConfiguration.update("id", {
-**id:** `string` — The id of the connection to update its SCIM configuration - +**id:** `string` +
-**request:** `Management.UpdateScimConfigurationRequestContent` - +**request:** `Management.CreatePhoneTemplateTestNotificationRequestContent` +
-**requestOptions:** `ScimConfiguration.RequestOptions` - +**requestOptions:** `TemplatesClient.RequestOptions` +
+
-
client.connections.scimConfiguration.getDefaultMapping(id) -> Management.GetScimConfigurationDefaultMappingResponseContent +## ClientGrants Organizations +
client.clientGrants.organizations.list(id, { ...params }) -> core.Page
-#### 📝 Description +#### 🔌 Usage
@@ -14154,14 +12277,34 @@ await client.connections.scimConfiguration.update("id", {
-Retrieves a scim configuration's default mapping by its connectionId. +```typescript +const pageableResponse = await client.clientGrants.organizations.list("id", { + from: "from", + take: 1 +}); +for await (const item of pageableResponse) { + console.log(item); +} + +// Or you can manually iterate page-by-page +let page = await client.clientGrants.organizations.list("id", { + from: "from", + take: 1 +}); +while (page.hasNextPage()) { + page = page.getNextPage(); +} + +// You can also access the underlying response +const response = page.response; +```
-#### 🔌 Usage +#### ⚙️ Parameters
@@ -14169,45 +12312,36 @@ Retrieves a scim configuration's default mapping by its connectionId
-```typescript -await client.connections.scimConfiguration.getDefaultMapping("id"); -``` - -
-
+**id:** `string` — ID of the client grant +
-#### ⚙️ Parameters - -
-
-
-**id:** `string` — The id of the connection to retrieve its default SCIM mapping - +**request:** `Management.ListClientGrantOrganizationsRequestParameters` +
-**requestOptions:** `ScimConfiguration.RequestOptions` - +**requestOptions:** `OrganizationsClient.RequestOptions` +
+
-## Connections Users - -
client.connections.users.deleteByEmail(id, { ...params }) -> void +## Clients Credentials +
client.clients.credentials.list(client_id) -> Management.ClientCredential[]
@@ -14219,8 +12353,9 @@ await client.connections.scimConfiguration.getDefaultMapping("id");
-Deletes a specified connection user by its email (you cannot delete all users from specific connection). Currently, only Database Connections are supported. +Get the details of a client credential. +Important: To enable credentials to be used for a client authentication method, set the client_authentication_methods property on the client. To enable credentials to be used for JWT-Secured Authorization requests set the signed_request_object property on the client.
@@ -14235,11 +12370,9 @@ Deletes a specified connection user by its email (you cannot delete all users fr
```typescript -await client.connections.users.deleteByEmail("id", { - email: "email", -}); -``` +await client.clients.credentials.list("client_id"); +```
@@ -14253,36 +12386,27 @@ await client.connections.users.deleteByEmail("id", {
-**id:** `string` — The id of the connection (currently only database connections are supported) - -
-
- -
-
- -**request:** `Management.DeleteConnectionUsersByEmailQueryParameters` - +**client_id:** `string` — ID of the client. +
-**requestOptions:** `Users.RequestOptions` - +**requestOptions:** `CredentialsClient.RequestOptions` +
+
-## Connections ScimConfiguration Tokens - -
client.connections.scimConfiguration.tokens.get(id) -> Management.GetScimTokensResponseContent +
client.clients.credentials.create(client_id, { ...params }) -> Management.PostClientCredentialResponseContent
@@ -14294,8 +12418,39 @@ await client.connections.users.deleteByEmail("id", {
-Retrieves all scim tokens by its connection id. +Create a client credential associated to your application. Credentials can be used to configure Private Key JWT and mTLS authentication methods, as well as for JWT-secured Authorization requests. + +
Public Key
Public Key credentials can be used to set up Private Key JWT client authentication and JWT-secured Authorization requests. + +Sample:
{
+  "credential_type": "public_key",
+  "name": "string",
+  "pem": "string",
+  "alg": "RS256",
+  "parse_expiry_from_cert": false,
+  "expires_at": "2022-12-31T23:59:59Z"
+}
+
Certificate (CA-signed & self-signed)
Certificate credentials can be used to set up mTLS client authentication. CA-signed certificates can be configured either with a signed certificate or with just the certificate Subject DN. + +CA-signed Certificate Sample (pem):
{
+  "credential_type": "x509_cert",
+  "name": "string",
+  "pem": "string"
+}
CA-signed Certificate Sample (subject_dn):
{
+  "credential_type": "cert_subject_dn",
+  "name": "string",
+  "subject_dn": "string"
+}
Self-signed Certificate Sample:
{
+  "credential_type": "cert_subject_dn",
+  "name": "string",
+  "pem": "string"
+}
+The credential will be created but not yet enabled for use until you set the corresponding properties in the client: +
@@ -14310,9 +12465,11 @@ Retrieves all scim tokens by its connection id.
```typescript -await client.connections.scimConfiguration.tokens.get("id"); -``` +await client.clients.credentials.create("client_id", { + credential_type: "public_key" +}); +```
@@ -14326,26 +12483,35 @@ await client.connections.scimConfiguration.tokens.get("id");
-**id:** `string` — The id of the connection to retrieve its SCIM configuration - +**client_id:** `string` — ID of the client. +
-**requestOptions:** `Tokens.RequestOptions` +**request:** `Management.PostClientCredentialRequestContent` + +
+
+ +
+
+**requestOptions:** `CredentialsClient.RequestOptions` +
+
-
client.connections.scimConfiguration.tokens.create(id, { ...params }) -> Management.CreateScimTokenResponseContent +
client.clients.credentials.get(client_id, credential_id) -> Management.GetClientCredentialResponseContent
@@ -14357,8 +12523,9 @@ await client.connections.scimConfiguration.tokens.get("id");
-Create a scim token for a scim client. +Get the details of a client credential. +Important: To enable credentials to be used for a client authentication method, set the client_authentication_methods property on the client. To enable credentials to be used for JWT-Secured Authorization requests set the signed_request_object property on the client.
@@ -14373,9 +12540,9 @@ Create a scim token for a scim client.
```typescript -await client.connections.scimConfiguration.tokens.create("id"); -``` +await client.clients.credentials.get("client_id", "credential_id"); +```
@@ -14389,34 +12556,35 @@ await client.connections.scimConfiguration.tokens.create("id");
-**id:** `string` — The id of the connection to create its SCIM token - +**client_id:** `string` — ID of the client. +
-**request:** `Management.CreateScimTokenRequestContent` - +**credential_id:** `string` — ID of the credential. +
-**requestOptions:** `Tokens.RequestOptions` - +**requestOptions:** `CredentialsClient.RequestOptions` +
+
-
client.connections.scimConfiguration.tokens.delete(id, tokenId) -> void +
client.clients.credentials.delete(client_id, credential_id) -> void
@@ -14428,8 +12596,7 @@ await client.connections.scimConfiguration.tokens.create("id");
-Deletes a scim token by its connection id and tokenId. - +Delete a client credential you previously created. May be enabled or disabled. For more information, read Client Credential Flow.
@@ -14444,9 +12611,9 @@ Deletes a scim token by its connection id and tokenId.
```typescript -await client.connections.scimConfiguration.tokens.delete("id", "tokenId"); -``` +await client.clients.credentials.delete("client_id", "credential_id"); +```
@@ -14460,36 +12627,35 @@ await client.connections.scimConfiguration.tokens.delete("id", "tokenId");
-**id:** `string` — The connection id that owns the SCIM token to delete - +**client_id:** `string` — ID of the client. +
-**tokenId:** `string` — The id of the scim token to delete - +**credential_id:** `string` — ID of the credential to delete. +
-**requestOptions:** `Tokens.RequestOptions` - +**requestOptions:** `CredentialsClient.RequestOptions` +
+
-## Emails Provider - -
client.emails.provider.get({ ...params }) -> Management.GetEmailProviderResponseContent +
client.clients.credentials.update(client_id, credential_id, { ...params }) -> Management.PatchClientCredentialResponseContent
@@ -14501,8 +12667,7 @@ await client.connections.scimConfiguration.tokens.delete("id", "tokenId");
-Retrieve details of the email provider configuration in your tenant. A list of fields to include or exclude may also be specified. - +Change a client credential you previously created. May be enabled or disabled. For more information, read Client Credential Flow.
@@ -14517,12 +12682,9 @@ Retrieve details of the
@@ -14536,26 +12698,44 @@ await client.emails.provider.get({
-**request:** `Management.GetEmailProviderRequestParameters` +**client_id:** `string` — ID of the client. + +
+
+ +
+
+**credential_id:** `string` — ID of the credential. +
-**requestOptions:** `Provider.RequestOptions` +**request:** `Management.PatchClientCredentialRequestContent` + +
+
+ +
+
+**requestOptions:** `CredentialsClient.RequestOptions` +
+
-
client.emails.provider.create({ ...params }) -> Management.CreateEmailProviderResponseContent +## Clients Connections +
client.clients.connections.get(id, { ...params }) -> core.Page
@@ -14563,51 +12743,17 @@ await client.emails.provider.get({
- -
-
- -Create an email provider. The credentials object -requires different properties depending on the email provider (which is specified using the name property): - -
    -
  • mandrill requires api_key
  • -
  • sendgrid requires api_key
  • -
  • - sparkpost requires api_key. Optionally, set region to eu to use - the SparkPost service hosted in Western Europe; set to null to use the SparkPost service hosted in - North America. eu or null are the only valid values for region. -
  • -
  • - mailgun requires api_key and domain. Optionally, set region to - eu to use the Mailgun service hosted in Europe; set to null otherwise. eu or - null are the only valid values for region. -
  • -
  • ses requires accessKeyId, secretAccessKey, and region
  • -
  • - smtp requires smtp_host, smtp_port, smtp_user, and - smtp_pass -
  • -
-Depending on the type of provider it is possible to specify settings object with different configuration -options, which will be used when sending an email: + +
+
+ +Retrieve all connections that are enabled for the specified Application, using checkpoint pagination. A list of fields to include or exclude for each connection may also be specified.
  • - smtp provider, settings may contain headers object. -
      -
    • - When using AWS SES SMTP host, you may provide a name of configuration set in - X-SES-Configuration-Set header. Value must be a string. -
    • -
    • - When using Sparkpost host, you may provide value for - X-MSYS_API header. Value must be an object. -
    • -
    + This endpoint requires the read:connections scope and any one of read:clients or read:client_summary.
  • - for ses provider, settings may contain message object, where you can provide - a name of configuration set in configuration_set_name property. Value must be a string. + Note: The first time you call this endpoint, omit the from parameter. If there are more results, a next value is included in the response. You can use this for subsequent API calls. When next is no longer included in the response, no further results are remaining.
@@ -14624,14 +12770,31 @@ options, which will be used when sending an email:
```typescript -await client.emails.provider.create({ - name: "mailgun", - credentials: { - api_key: "api_key", - }, +const pageableResponse = await client.clients.connections.get("id", { + from: "from", + take: 1, + fields: "fields", + include_fields: true }); -``` +for await (const item of pageableResponse) { + console.log(item); +} +// Or you can manually iterate page-by-page +let page = await client.clients.connections.get("id", { + from: "from", + take: 1, + fields: "fields", + include_fields: true +}); +while (page.hasNextPage()) { + page = page.getNextPage(); +} + +// You can also access the underlying response +const response = page.response; + +```
@@ -14645,26 +12808,36 @@ await client.emails.provider.create({
-**request:** `Management.CreateEmailProviderRequestContent` - +**id:** `string` — ID of the client for which to retrieve enabled connections. +
-**requestOptions:** `Provider.RequestOptions` +**request:** `Management.ConnectionsGetRequest` + +
+
+ +
+
+**requestOptions:** `ConnectionsClient.RequestOptions` +
+
-
client.emails.provider.delete() -> void +## Connections Clients +
client.connections.clients.get(id, { ...params }) -> core.Page
@@ -14676,8 +12849,9 @@ await client.emails.provider.create({
-Delete the email provider. +Retrieve all clients that have the specified connection enabled. +Note: The first time you call this endpoint, omit the from parameter. If there are more results, a next value is included in the response. You can use this for subsequent API calls. When next is no longer included in the response, no further results are remaining.
@@ -14692,9 +12866,27 @@ Delete the email provider.
```typescript -await client.emails.provider.delete(); -``` +const pageableResponse = await client.connections.clients.get("id", { + take: 1, + from: "from" +}); +for await (const item of pageableResponse) { + console.log(item); +} + +// Or you can manually iterate page-by-page +let page = await client.connections.clients.get("id", { + take: 1, + from: "from" +}); +while (page.hasNextPage()) { + page = page.getNextPage(); +} +// You can also access the underlying response +const response = page.response; + +```
@@ -14708,75 +12900,38 @@ await client.emails.provider.delete();
-**requestOptions:** `Provider.RequestOptions` - -
-
- - - +**id:** `string` — The id of the connection for which enabled clients are to be retrieved + -
-
client.emails.provider.update({ ...params }) -> Management.UpdateEmailProviderResponseContent
-#### 📝 Description - -
-
+**request:** `Management.GetConnectionEnabledClientsRequestParameters` + +
+
-Update an email provider. The credentials object -requires different properties depending on the email provider (which is specified using the name property): - -
    -
  • mandrill requires api_key
  • -
  • sendgrid requires api_key
  • -
  • - sparkpost requires api_key. Optionally, set region to eu to use - the SparkPost service hosted in Western Europe; set to null to use the SparkPost service hosted in - North America. eu or null are the only valid values for region. -
  • -
  • - mailgun requires api_key and domain. Optionally, set region to - eu to use the Mailgun service hosted in Europe; set to null otherwise. eu or - null are the only valid values for region. -
  • -
  • ses requires accessKeyId, secretAccessKey, and region
  • -
  • - smtp requires smtp_host, smtp_port, smtp_user, and - smtp_pass -
  • -
-Depending on the type of provider it is possible to specify settings object with different configuration -options, which will be used when sending an email: -
    -
  • - smtp provider, settings may contain headers object. -
      -
    • - When using AWS SES SMTP host, you may provide a name of configuration set in - X-SES-Configuration-Set header. Value must be a string. -
    • -
    • - When using Sparkpost host, you may provide value for - X-MSYS_API header. Value must be an object. -
    • -
    - for ses provider, settings may contain message object, where you can provide - a name of configuration set in configuration_set_name property. Value must be a string. -
  • -
+**requestOptions:** `ClientsClient.RequestOptions` +
+ + + +
+ +
client.connections.clients.update(id, { ...params }) -> void +
+
+ #### 🔌 Usage
@@ -14786,9 +12941,12 @@ options, which will be used when sending an email:
```typescript -await client.emails.provider.update(); -``` +await client.connections.clients.update("id", [{ + client_id: "client_id", + status: true + }]); +```
@@ -14802,32 +12960,40 @@ await client.emails.provider.update();
-**request:** `Management.UpdateEmailProviderRequestContent` - +**id:** `string` — The id of the connection to modify +
-**requestOptions:** `Provider.RequestOptions` +**request:** `Management.UpdateEnabledClientConnectionsRequestContent` + +
+
+ +
+
+**requestOptions:** `ClientsClient.RequestOptions` +
+
-## EventStreams Deliveries - -
client.eventStreams.deliveries.list(id, { ...params }) -> Management.EventStreamDelivery[] +## Connections Keys +
client.connections.keys.get(id) -> Management.ConnectionKey[]
-#### 🔌 Usage +#### 📝 Description
@@ -14835,23 +13001,13 @@ await client.emails.provider.update();
-```typescript -await client.eventStreams.deliveries.list("id", { - statuses: "statuses", - event_types: "event_types", - date_from: "date_from", - date_to: "date_to", - from: "from", - take: 1, -}); -``` - +Gets the connection keys for the Okta or OIDC connection strategy.
-#### ⚙️ Parameters +#### 🔌 Usage
@@ -14859,37 +13015,61 @@ await client.eventStreams.deliveries.list("id", {
-**id:** `string` — Unique identifier for the event stream. +```typescript +await client.connections.keys.get("id"); +``` +
+
+#### ⚙️ Parameters +
-**request:** `Management.ListEventStreamDeliveriesRequestParameters` +
+
+**id:** `string` — ID of the connection +
-**requestOptions:** `Deliveries.RequestOptions` - +**requestOptions:** `KeysClient.RequestOptions` +
+
-
client.eventStreams.deliveries.getHistory(id, eventId) -> Management.GetEventStreamDeliveryHistoryResponseContent +
client.connections.keys.rotate(id, { ...params }) -> Management.RotateConnectionsKeysResponseContent +
+
+ +#### 📝 Description + +
+
+
+Rotates the connection keys for the Okta or OIDC connection strategies. +
+
+
+
+ #### 🔌 Usage
@@ -14899,9 +13079,9 @@ await client.eventStreams.deliveries.list("id", {
```typescript -await client.eventStreams.deliveries.getHistory("id", "event_id"); -``` +await client.connections.keys.rotate("id"); +```
@@ -14915,39 +13095,53 @@ await client.eventStreams.deliveries.getHistory("id", "event_id");
-**id:** `string` — Unique identifier for the event stream. - +**id:** `string` — ID of the connection +
-**eventId:** `string` — Unique identifier for the event - +**request:** `Management.RotateConnectionKeysRequestContent | null` +
-**requestOptions:** `Deliveries.RequestOptions` - +**requestOptions:** `KeysClient.RequestOptions` +
+
-## EventStreams Redeliveries +## Connections ScimConfiguration +
client.connections.scimConfiguration.get(id) -> Management.GetScimConfigurationResponseContent +
+
+ +#### 📝 Description -
client.eventStreams.redeliveries.create(id, { ...params }) -> Management.CreateEventStreamRedeliveryResponseContent
+
+
+ +Retrieves a scim configuration by its connectionId. +
+
+
+
+ #### 🔌 Usage
@@ -14957,9 +13151,9 @@ await client.eventStreams.deliveries.getHistory("id", "event_id");
```typescript -await client.eventStreams.redeliveries.create("id"); -``` +await client.connections.scimConfiguration.get("id"); +```
@@ -14973,37 +13167,44 @@ await client.eventStreams.redeliveries.create("id");
-**id:** `string` — Unique identifier for the event stream. - +**id:** `string` — The id of the connection to retrieve its SCIM configuration +
-**request:** `Management.CreateEventStreamRedeliveryRequestContent` +**requestOptions:** `ScimConfigurationClient.RequestOptions` + +
+
+ +
+ +
+ +
client.connections.scimConfiguration.create(id, { ...params }) -> Management.CreateScimConfigurationResponseContent +
+
+ +#### 📝 Description
-**requestOptions:** `Redeliveries.RequestOptions` +
+
+Create a scim configuration for a connection.
-
-
-
- -
client.eventStreams.redeliveries.createById(id, eventId) -> void -
-
- #### 🔌 Usage
@@ -15013,9 +13214,9 @@ await client.eventStreams.redeliveries.create("id");
```typescript -await client.eventStreams.redeliveries.createById("id", "event_id"); -``` +await client.connections.scimConfiguration.create("id"); +```
@@ -15029,40 +13230,39 @@ await client.eventStreams.redeliveries.createById("id", "event_id");
-**id:** `string` — Unique identifier for the event stream. - +**id:** `string` — The id of the connection to create its SCIM configuration +
-**eventId:** `string` — Unique identifier for the event - +**request:** `Management.CreateScimConfigurationRequestContent | null` +
-**requestOptions:** `Redeliveries.RequestOptions` - +**requestOptions:** `ScimConfigurationClient.RequestOptions` +
+
-## Flows Executions - -
client.flows.executions.list(flowId, { ...params }) -> core.Page +
client.connections.scimConfiguration.delete(id) -> void
-#### 🔌 Usage +#### 📝 Description
@@ -15070,34 +13270,13 @@ await client.eventStreams.redeliveries.createById("id", "event_id");
-```typescript -const pageableResponse = await client.flows.executions.list("flow_id", { - from: "from", - take: 1, -}); -for await (const item of pageableResponse) { - console.log(item); -} - -// Or you can manually iterate page-by-page -let page = await client.flows.executions.list("flow_id", { - from: "from", - take: 1, -}); -while (page.hasNextPage()) { - page = page.getNextPage(); -} - -// You can also access the underlying response -const response = page.response; -``` - +Deletes a scim configuration by its connectionId.
-#### ⚙️ Parameters +#### 🔌 Usage
@@ -15105,38 +13284,48 @@ const response = page.response;
-**flowId:** `string` — Flow id +```typescript +await client.connections.scimConfiguration.delete("id"); +``` +
+
+#### ⚙️ Parameters +
-**request:** `Management.ExecutionsListRequest` +
+
+**id:** `string` — The id of the connection to delete its SCIM configuration +
-**requestOptions:** `Executions.RequestOptions` - +**requestOptions:** `ScimConfigurationClient.RequestOptions` +
+
-
client.flows.executions.get(flowId, executionId, { ...params }) -> Management.GetFlowExecutionResponseContent +
client.connections.scimConfiguration.update(id, { ...params }) -> Management.UpdateScimConfigurationResponseContent
-#### 🔌 Usage +#### 📝 Description
@@ -15144,16 +13333,13 @@ const response = page.response;
-```typescript -await client.flows.executions.get("flow_id", "execution_id"); -``` - +Update a scim configuration by its connectionId.
-#### ⚙️ Parameters +#### 🔌 Usage
@@ -15161,46 +13347,59 @@ await client.flows.executions.get("flow_id", "execution_id");
-**flowId:** `string` — Flow id +```typescript +await client.connections.scimConfiguration.update("id", { + user_id_attribute: "user_id_attribute", + mapping: [{}] +}); +``` +
+
+#### ⚙️ Parameters +
-**executionId:** `string` — Flow execution id +
+
+**id:** `string` — The id of the connection to update its SCIM configuration +
-**request:** `Management.ExecutionsGetRequest` - +**request:** `Management.UpdateScimConfigurationRequestContent` +
-**requestOptions:** `Executions.RequestOptions` - +**requestOptions:** `ScimConfigurationClient.RequestOptions` +
+
-
client.flows.executions.delete(flowId, executionId) -> void +
client.connections.scimConfiguration.getDefaultMapping(id) -> Management.GetScimConfigurationDefaultMappingResponseContent
-#### 🔌 Usage +#### 📝 Description
@@ -15208,16 +13407,13 @@ await client.flows.executions.get("flow_id", "execution_id");
-```typescript -await client.flows.executions.delete("flow_id", "execution_id"); -``` - +Retrieves a scim configuration's default mapping by its connectionId.
-#### ⚙️ Parameters +#### 🔌 Usage
@@ -15225,39 +13421,62 @@ await client.flows.executions.delete("flow_id", "execution_id");
-**flowId:** `string` — Flows id +```typescript +await client.connections.scimConfiguration.getDefaultMapping("id"); +```
+
+
+ +#### ⚙️ Parameters
-**executionId:** `string` — Flow execution identifier +
+
+**id:** `string` — The id of the connection to retrieve its default SCIM mapping +
-**requestOptions:** `Executions.RequestOptions` - +**requestOptions:** `ScimConfigurationClient.RequestOptions` +
+
-## Flows Vault Connections +## Connections Users +
client.connections.users.deleteByEmail(id, { ...params }) -> void +
+
+ +#### 📝 Description + +
+
-
client.flows.vault.connections.list({ ...params }) -> core.Page
+Deletes a specified connection user by its email (you cannot delete all users from specific connection). Currently, only Database Connections are supported. +
+
+
+
+ #### 🔌 Usage
@@ -15267,29 +13486,11 @@ await client.flows.executions.delete("flow_id", "execution_id");
```typescript -const pageableResponse = await client.flows.vault.connections.list({ - page: 1, - per_page: 1, - include_totals: true, -}); -for await (const item of pageableResponse) { - console.log(item); -} - -// Or you can manually iterate page-by-page -let page = await client.flows.vault.connections.list({ - page: 1, - per_page: 1, - include_totals: true, +await client.connections.users.deleteByEmail("id", { + email: "email" }); -while (page.hasNextPage()) { - page = page.getNextPage(); -} -// You can also access the underlying response -const response = page.response; ``` -
@@ -15303,29 +13504,53 @@ const response = page.response;
-**request:** `Management.ListFlowsVaultConnectionsRequestParameters` - +**id:** `string` — The id of the connection (currently only database connections are supported) +
-**requestOptions:** `Connections.RequestOptions` +**request:** `Management.DeleteConnectionUsersByEmailQueryParameters` + +
+
+ +
+
+**requestOptions:** `UsersClient.RequestOptions` +
+
-
client.flows.vault.connections.create({ ...params }) -> Management.CreateFlowsVaultConnectionResponseContent +## Connections ScimConfiguration Tokens +
client.connections.scimConfiguration.tokens.get(id) -> Management.GetScimTokensResponseContent +
+
+ +#### 📝 Description + +
+
+
+Retrieves all scim tokens by its connection id. +
+
+
+
+ #### 🔌 Usage
@@ -15335,17 +13560,9 @@ const response = page.response;
```typescript -await client.flows.vault.connections.create({ - name: "name", - app_id: "ACTIVECAMPAIGN", - setup: { - type: "API_KEY", - api_key: "api_key", - base_url: "base_url", - }, -}); -``` +await client.connections.scimConfiguration.tokens.get("id"); +```
@@ -15359,30 +13576,31 @@ await client.flows.vault.connections.create({
-**request:** `Management.CreateFlowsVaultConnectionRequestContent` - +**id:** `string` — The id of the connection to retrieve its SCIM configuration +
-**requestOptions:** `Connections.RequestOptions` - +**requestOptions:** `TokensClient.RequestOptions` +
+
-
client.flows.vault.connections.get(id) -> Management.GetFlowsVaultConnectionResponseContent +
client.connections.scimConfiguration.tokens.create(id, { ...params }) -> Management.CreateScimTokenResponseContent
-#### 🔌 Usage +#### 📝 Description
@@ -15390,16 +13608,13 @@ await client.flows.vault.connections.create({
-```typescript -await client.flows.vault.connections.get("id"); -``` - +Create a scim token for a scim client.
-#### ⚙️ Parameters +#### 🔌 Usage
@@ -15407,77 +13622,69 @@ await client.flows.vault.connections.get("id");
-**id:** `string` — Flows Vault connection ID +```typescript +await client.connections.scimConfiguration.tokens.create("id"); +``` +
+
+#### ⚙️ Parameters +
-**requestOptions:** `Connections.RequestOptions` - -
-
-
-
+
+
+**id:** `string` — The id of the connection to create its SCIM token +
-
-
client.flows.vault.connections.delete(id) -> void
-#### 🔌 Usage - -
-
+**request:** `Management.CreateScimTokenRequestContent` + +
+
-```typescript -await client.flows.vault.connections.delete("id"); -``` - +**requestOptions:** `TokensClient.RequestOptions` +
-#### ⚙️ Parameters -
-
+
+
+
+
client.connections.scimConfiguration.tokens.delete(id, tokenId) -> void
-**id:** `string` — Vault connection id - -
-
+#### 📝 Description
-**requestOptions:** `Connections.RequestOptions` +
+
+Deletes a scim token by its connection id and tokenId.
- - -
- -
client.flows.vault.connections.update(id, { ...params }) -> Management.UpdateFlowsVaultConnectionResponseContent -
-
- #### 🔌 Usage
@@ -15487,9 +13694,9 @@ await client.flows.vault.connections.delete("id");
```typescript -await client.flows.vault.connections.update("id"); -``` +await client.connections.scimConfiguration.tokens.delete("id", "tokenId"); +```
@@ -15503,36 +13710,36 @@ await client.flows.vault.connections.update("id");
-**id:** `string` — Flows Vault connection ID - +**id:** `string` — The connection id that owns the SCIM token to delete +
-**request:** `Management.UpdateFlowsVaultConnectionRequestContent` - +**tokenId:** `string` — The id of the scim token to delete +
-**requestOptions:** `Connections.RequestOptions` - +**requestOptions:** `TokensClient.RequestOptions` +
+
-## Guardian Enrollments - -
client.guardian.enrollments.createTicket({ ...params }) -> Management.CreateGuardianEnrollmentTicketResponseContent +## Emails Provider +
client.emails.provider.get({ ...params }) -> Management.GetEmailProviderResponseContent
@@ -15544,11 +13751,7 @@ await client.flows.vault.connections.update("id");
-Create a multi-factor authentication (MFA) enrollment ticket, and optionally send an email with the created ticket, to a given user. -Create a multi-factor authentication (MFA) enrollment ticket, and optionally send an email with the created ticket to a given user. Enrollment tickets can specify which factor users must enroll with or allow existing MFA users to enroll in additional factors.
- -Note: Users cannot enroll in Email as a factor through custom enrollment tickets. - +Retrieve details of the email provider configuration in your tenant. A list of fields to include or exclude may also be specified.
@@ -15563,11 +13766,12 @@ Note: Users cannot enroll in Email as a factor through custom enrollment tickets
```typescript -await client.guardian.enrollments.createTicket({ - user_id: "user_id", +await client.emails.provider.get({ + fields: "fields", + include_fields: true }); -``` +```
@@ -15581,26 +13785,27 @@ await client.guardian.enrollments.createTicket({
-**request:** `Management.CreateGuardianEnrollmentTicketRequestContent` - +**request:** `Management.GetEmailProviderRequestParameters` +
-**requestOptions:** `Enrollments.RequestOptions` - +**requestOptions:** `ProviderClient.RequestOptions` +
+
-
client.guardian.enrollments.get(id) -> Management.GetGuardianEnrollmentResponseContent +
client.emails.provider.create({ ...params }) -> Management.CreateEmailProviderResponseContent
@@ -15612,8 +13817,48 @@ await client.guardian.enrollments.createTicket({
-Retrieve details, such as status and type, for a specific multi-factor authentication enrollment registered to a user account. - +Create an email provider. The credentials object +requires different properties depending on the email provider (which is specified using the name property): +
    +
  • mandrill requires api_key
  • +
  • sendgrid requires api_key
  • +
  • + sparkpost requires api_key. Optionally, set region to eu to use + the SparkPost service hosted in Western Europe; set to null to use the SparkPost service hosted in + North America. eu or null are the only valid values for region. +
  • +
  • + mailgun requires api_key and domain. Optionally, set region to + eu to use the Mailgun service hosted in Europe; set to null otherwise. eu or + null are the only valid values for region. +
  • +
  • ses requires accessKeyId, secretAccessKey, and region
  • +
  • + smtp requires smtp_host, smtp_port, smtp_user, and + smtp_pass +
  • +
+Depending on the type of provider it is possible to specify settings object with different configuration +options, which will be used when sending an email: +
    +
  • + smtp provider, settings may contain headers object. +
      +
    • + When using AWS SES SMTP host, you may provide a name of configuration set in + X-SES-Configuration-Set header. Value must be a string. +
    • +
    • + When using Sparkpost host, you may provide value for + X-MSYS_API header. Value must be an object. +
    • +
    +
  • +
  • + for ses provider, settings may contain message object, where you can provide + a name of configuration set in configuration_set_name property. Value must be a string. +
  • +
@@ -15628,9 +13873,14 @@ Retrieve details, such as status and type, for a specific multi-factor authentic
```typescript -await client.guardian.enrollments.get("id"); -``` +await client.emails.provider.create({ + name: "mailgun", + credentials: { + api_key: "api_key" + } +}); +```
@@ -15644,26 +13894,27 @@ await client.guardian.enrollments.get("id");
-**id:** `string` — ID of the enrollment to be retrieve. - +**request:** `Management.CreateEmailProviderRequestContent` +
-**requestOptions:** `Enrollments.RequestOptions` - +**requestOptions:** `ProviderClient.RequestOptions` +
+
-
client.guardian.enrollments.delete(id) -> void +
client.emails.provider.delete() -> void
@@ -15675,8 +13926,7 @@ await client.guardian.enrollments.get("id");
-Remove a specific multi-factor authentication (MFA) enrollment from a user's account. This allows the user to re-enroll with MFA. For more information, review Reset User Multi-Factor Authentication and Recovery Codes. - +Delete the email provider.
@@ -15691,9 +13941,9 @@ Remove a specific multi-factor authentication (MFA) enrollment from a user's acc
```typescript -await client.guardian.enrollments.delete("id"); -``` +await client.emails.provider.delete(); +```
@@ -15707,28 +13957,19 @@ await client.guardian.enrollments.delete("id");
-**id:** `string` — ID of the enrollment to be deleted. - -
-
- -
-
- -**requestOptions:** `Enrollments.RequestOptions` - +**requestOptions:** `ProviderClient.RequestOptions` +
+
-## Guardian Factors - -
client.guardian.factors.list() -> Management.GuardianFactor[] +
client.emails.provider.update({ ...params }) -> Management.UpdateEmailProviderResponseContent
@@ -15740,8 +13981,46 @@ await client.guardian.enrollments.delete("id");
-Retrieve details of all multi-factor authentication factors associated with your tenant. - +Update an email provider. The credentials object +requires different properties depending on the email provider (which is specified using the name property): +
    +
  • mandrill requires api_key
  • +
  • sendgrid requires api_key
  • +
  • + sparkpost requires api_key. Optionally, set region to eu to use + the SparkPost service hosted in Western Europe; set to null to use the SparkPost service hosted in + North America. eu or null are the only valid values for region. +
  • +
  • + mailgun requires api_key and domain. Optionally, set region to + eu to use the Mailgun service hosted in Europe; set to null otherwise. eu or + null are the only valid values for region. +
  • +
  • ses requires accessKeyId, secretAccessKey, and region
  • +
  • + smtp requires smtp_host, smtp_port, smtp_user, and + smtp_pass +
  • +
+Depending on the type of provider it is possible to specify settings object with different configuration +options, which will be used when sending an email: +
    +
  • + smtp provider, settings may contain headers object. +
      +
    • + When using AWS SES SMTP host, you may provide a name of configuration set in + X-SES-Configuration-Set header. Value must be a string. +
    • +
    • + When using Sparkpost host, you may provide value for + X-MSYS_API header. Value must be an object. +
    • +
    + for ses provider, settings may contain message object, where you can provide + a name of configuration set in configuration_set_name property. Value must be a string. +
  • +
@@ -15756,9 +14035,9 @@ Retrieve details of all set(name, { ...params }) -> Management.SetGuardianFactorResponseContent -
-
- -#### 📝 Description - -
-
- +## EventStreams Deliveries +
client.eventStreams.deliveries.list(id, { ...params }) -> Management.EventStreamDelivery[]
-Update the status (i.e., enabled or disabled) of a specific multi-factor authentication factor. - -
-
-
-
- #### 🔌 Usage
@@ -15811,11 +14085,16 @@ Update the status (i.e., enabled or disabled) of a specific multi-factor authent
```typescript -await client.guardian.factors.set("push-notification", { - enabled: true, +await client.eventStreams.deliveries.list("id", { + statuses: "statuses", + event_types: "event_types", + date_from: "date_from", + date_to: "date_to", + from: "from", + take: 1 }); -``` +```
@@ -15829,40 +14108,39 @@ await client.guardian.factors.set("push-notification", {
-**name:** `Management.GuardianFactorNameEnum` — Factor name. Can be `sms`, `push-notification`, `email`, `duo` `otp` `webauthn-roaming`, `webauthn-platform`, or `recovery-code`. - +**id:** `string` — Unique identifier for the event stream. +
-**request:** `Management.SetGuardianFactorRequestContent` - +**request:** `Management.ListEventStreamDeliveriesRequestParameters` +
-**requestOptions:** `Factors.RequestOptions` - +**requestOptions:** `DeliveriesClient.RequestOptions` +
+
-## Guardian Policies - -
client.guardian.policies.list() -> Management.ListGuardianPoliciesResponseContent +
client.eventStreams.deliveries.getHistory(id, event_id) -> Management.GetEventStreamDeliveryHistoryResponseContent
-#### 📝 Description +#### 🔌 Usage
@@ -15870,23 +14148,16 @@ await client.guardian.factors.set("push-notification", {
-Retrieve the multi-factor authentication (MFA) policies configured for your tenant. - -The following policies are supported: - -
    -
  • all-applications policy prompts with MFA for all logins.
  • -
  • confidence-score policy prompts with MFA only for low confidence logins.
  • -
- -Note: The confidence-score policy is part of the Adaptive MFA feature. Adaptive MFA requires an add-on for the Enterprise plan; review Auth0 Pricing for more details. +```typescript +await client.eventStreams.deliveries.getHistory("id", "event_id"); +```
-#### 🔌 Usage +#### ⚙️ Parameters
@@ -15894,39 +14165,40 @@ The following policies are supported:
-```typescript -await client.guardian.policies.list(); -``` - -
-
+**id:** `string` — Unique identifier for the event stream. +
-#### ⚙️ Parameters -
+**event_id:** `string` — Unique identifier for the event + +
+
+
-**requestOptions:** `Policies.RequestOptions` - +**requestOptions:** `DeliveriesClient.RequestOptions` +
+
-
client.guardian.policies.set({ ...params }) -> Management.SetGuardianPoliciesResponseContent +## EventStreams Redeliveries +
client.eventStreams.redeliveries.create(id, { ...params }) -> Management.CreateEventStreamRedeliveryResponseContent
-#### 📝 Description +#### 🔌 Usage
@@ -15934,23 +14206,16 @@ await client.guardian.policies.list();
-Set multi-factor authentication (MFA) policies for your tenant. - -The following policies are supported: - -
    -
  • all-applications policy prompts with MFA for all logins.
  • -
  • confidence-score policy prompts with MFA only for low confidence logins.
  • -
- -Note: The confidence-score policy is part of the Adaptive MFA feature. Adaptive MFA requires an add-on for the Enterprise plan; review Auth0 Pricing for more details. +```typescript +await client.eventStreams.redeliveries.create("id"); +```
-#### 🔌 Usage +#### ⚙️ Parameters
@@ -15958,49 +14223,39 @@ The following policies are supported:
-```typescript -await client.guardian.policies.set(["all-applications"]); -``` - -
-
+**id:** `string` — Unique identifier for the event stream. +
-#### ⚙️ Parameters - -
-
-
-**request:** `Management.SetGuardianPoliciesRequestContent` - +**request:** `Management.CreateEventStreamRedeliveryRequestContent` +
-**requestOptions:** `Policies.RequestOptions` - +**requestOptions:** `RedeliveriesClient.RequestOptions` +
+
-## Guardian Factors Phone - -
client.guardian.factors.phone.getMessageTypes() -> Management.GetGuardianFactorPhoneMessageTypesResponseContent +
client.eventStreams.redeliveries.createById(id, event_id) -> void
-#### 📝 Description +#### 🔌 Usage
@@ -16008,14 +14263,16 @@ await client.guardian.policies.set(["all-applications"]);
-Retrieve list of phone-type MFA factors (i.e., sms and voice) that are enabled for your tenant. +```typescript +await client.eventStreams.redeliveries.createById("id", "event_id"); +```
-#### 🔌 Usage +#### ⚙️ Parameters
@@ -16023,39 +14280,40 @@ Retrieve list of setMessageTypes({ ...params }) -> Management.SetGuardianFactorPhoneMessageTypesResponseContent +## Flows Executions +
client.flows.executions.list(flow_id, { ...params }) -> core.Page
-#### 📝 Description +#### 🔌 Usage
@@ -16063,14 +14321,34 @@ await client.guardian.factors.phone.getMessageTypes();
-Replace the list of phone-type MFA factors (i.e., sms and voice) that are enabled for your tenant. +```typescript +const pageableResponse = await client.flows.executions.list("flow_id", { + from: "from", + take: 1 +}); +for await (const item of pageableResponse) { + console.log(item); +} +// Or you can manually iterate page-by-page +let page = await client.flows.executions.list("flow_id", { + from: "from", + take: 1 +}); +while (page.hasNextPage()) { + page = page.getNextPage(); +} + +// You can also access the underlying response +const response = page.response; + +```
-#### 🔌 Usage +#### ⚙️ Parameters
@@ -16078,49 +14356,39 @@ Replace the list of -
+**flow_id:** `string` — Flow id +
-#### ⚙️ Parameters - -
-
-
-**request:** `Management.SetGuardianFactorPhoneMessageTypesRequestContent` - +**request:** `Management.ExecutionsListRequest` +
-**requestOptions:** `Phone.RequestOptions` - +**requestOptions:** `ExecutionsClient.RequestOptions` +
+
-
client.guardian.factors.phone.getTwilioProvider() -> Management.GetGuardianFactorsProviderPhoneTwilioResponseContent +
client.flows.executions.get(flow_id, execution_id, { ...params }) -> Management.GetFlowExecutionResponseContent
-#### 📝 Description +#### 🔌 Usage
@@ -16128,14 +14396,16 @@ await client.guardian.factors.phone.setMessageTypes({
-Retrieve configuration details for a Twilio phone provider that has been set up in your tenant. To learn more, review Configure SMS and Voice Notifications for MFA. +```typescript +await client.flows.executions.get("flow_id", "execution_id"); +```
-#### 🔌 Usage +#### ⚙️ Parameters
@@ -16143,39 +14413,47 @@ Retrieve configuration details for a Twilio phone provider that has been set up
-```typescript -await client.guardian.factors.phone.getTwilioProvider(); -``` - +**flow_id:** `string` — Flow id +
+ +
+
+ +**execution_id:** `string` — Flow execution id +
-#### ⚙️ Parameters -
+**request:** `Management.ExecutionsGetRequest` + +
+
+
-**requestOptions:** `Phone.RequestOptions` - +**requestOptions:** `ExecutionsClient.RequestOptions` +
+
-
client.guardian.factors.phone.setTwilioProvider({ ...params }) -> Management.SetGuardianFactorsProviderPhoneTwilioResponseContent +
client.flows.executions.delete(flow_id, execution_id) -> void
-#### 📝 Description +#### 🔌 Usage
@@ -16183,14 +14461,16 @@ await client.guardian.factors.phone.getTwilioProvider();
-Update the configuration of a Twilio phone provider that has been set up in your tenant. To learn more, review Configure SMS and Voice Notifications for MFA. +```typescript +await client.flows.executions.delete("flow_id", "execution_id"); +```
-#### 🔌 Usage +#### ⚙️ Parameters
@@ -16198,43 +14478,36 @@ Update the configuration of a Twilio phone provider that has been set up in your
-```typescript -await client.guardian.factors.phone.setTwilioProvider(); -``` - +**flow_id:** `string` — Flows id +
-
-
- -#### ⚙️ Parameters
-
-
- -**request:** `Management.SetGuardianFactorsProviderPhoneTwilioRequestContent` - +**execution_id:** `string` — Flow execution identifier +
-**requestOptions:** `Phone.RequestOptions` - +**requestOptions:** `ExecutionsClient.RequestOptions` +
+
-
client.guardian.factors.phone.getSelectedProvider() -> Management.GetGuardianFactorsProviderPhoneResponseContent +## Guardian Enrollments +
client.guardian.enrollments.createTicket({ ...params }) -> Management.CreateGuardianEnrollmentTicketResponseContent
@@ -16246,8 +14519,10 @@ await client.guardian.factors.phone.setTwilioProvider();
-Retrieve details of the multi-factor authentication phone provider configured for your tenant. +Create a multi-factor authentication (MFA) enrollment ticket, and optionally send an email with the created ticket, to a given user. +Create a multi-factor authentication (MFA) enrollment ticket, and optionally send an email with the created ticket to a given user. Enrollment tickets can specify which factor users must enroll with or allow existing MFA users to enroll in additional factors.
+Note: Users cannot enroll in Email as a factor through custom enrollment tickets.
@@ -16262,9 +14537,11 @@ Retrieve details of the multi-factor authentication phone provider configured fo
```typescript -await client.guardian.factors.phone.getSelectedProvider(); -``` +await client.guardian.enrollments.createTicket({ + user_id: "user_id" +}); +```
@@ -16278,21 +14555,44 @@ await client.guardian.factors.phone.getSelectedProvider();
-**requestOptions:** `Phone.RequestOptions` +**request:** `Management.CreateGuardianEnrollmentTicketRequestContent` + +
+
+ +
+
+**requestOptions:** `EnrollmentsClient.RequestOptions` +
+
-
client.guardian.factors.phone.setProvider({ ...params }) -> Management.SetGuardianFactorsProviderPhoneResponseContent +
client.guardian.enrollments.get(id) -> Management.GetGuardianEnrollmentResponseContent +
+
+ +#### 📝 Description + +
+
+
+Retrieve details, such as status and type, for a specific multi-factor authentication enrollment registered to a user account. +
+
+
+
+ #### 🔌 Usage
@@ -16302,11 +14602,9 @@ await client.guardian.factors.phone.getSelectedProvider();
```typescript -await client.guardian.factors.phone.setProvider({ - provider: "auth0", -}); -``` +await client.guardian.enrollments.get("id"); +```
@@ -16320,26 +14618,27 @@ await client.guardian.factors.phone.setProvider({
-**request:** `Management.SetGuardianFactorsProviderPhoneRequestContent` - +**id:** `string` — ID of the enrollment to be retrieve. +
-**requestOptions:** `Phone.RequestOptions` - +**requestOptions:** `EnrollmentsClient.RequestOptions` +
+
-
client.guardian.factors.phone.getTemplates() -> Management.GetGuardianFactorPhoneTemplatesResponseContent +
client.guardian.enrollments.delete(id) -> void
@@ -16351,8 +14650,7 @@ await client.guardian.factors.phone.setProvider({
-Retrieve details of the multi-factor authentication enrollment and verification templates for phone-type factors available in your tenant. - +Remove a specific multi-factor authentication (MFA) enrollment from a user's account. This allows the user to re-enroll with MFA. For more information, review Reset User Multi-Factor Authentication and Recovery Codes.
@@ -16367,9 +14665,9 @@ Retrieve details of the multi-factor authentication enrollment and verification
```typescript -await client.guardian.factors.phone.getTemplates(); -``` +await client.guardian.enrollments.delete("id"); +```
@@ -16383,18 +14681,28 @@ await client.guardian.factors.phone.getTemplates();
-**requestOptions:** `Phone.RequestOptions` +**id:** `string` — ID of the enrollment to be deleted. + +
+
+ +
+
+**requestOptions:** `EnrollmentsClient.RequestOptions` +
+
-
client.guardian.factors.phone.setTemplates({ ...params }) -> Management.SetGuardianFactorPhoneTemplatesResponseContent +## Guardian Factors +
client.guardian.factors.list() -> Management.GuardianFactor[]
@@ -16406,8 +14714,7 @@ await client.guardian.factors.phone.getTemplates();
-Customize the messages sent to complete phone enrollment and verification (subscription required). - +Retrieve details of all multi-factor authentication factors associated with your tenant.
@@ -16422,12 +14729,9 @@ Customize the messages sent to complete phone enrollment and verification (subsc
```typescript -await client.guardian.factors.phone.setTemplates({ - enrollment_message: "enrollment_message", - verification_message: "verification_message", -}); -``` +await client.guardian.factors.list(); +```
@@ -16441,28 +14745,19 @@ await client.guardian.factors.phone.setTemplates({
-**request:** `Management.SetGuardianFactorPhoneTemplatesRequestContent` - -
-
- -
-
- -**requestOptions:** `Phone.RequestOptions` - +**requestOptions:** `FactorsClient.RequestOptions` +
+
-## Guardian Factors PushNotification - -
client.guardian.factors.pushNotification.getApnsProvider() -> Management.GetGuardianFactorsProviderApnsResponseContent +
client.guardian.factors.set(name, { ...params }) -> Management.SetGuardianFactorResponseContent
@@ -16474,8 +14769,7 @@ await client.guardian.factors.phone.setTemplates({
-Retrieve configuration details for the multi-factor authentication APNS provider associated with your tenant. - +Update the status (i.e., enabled or disabled) of a specific multi-factor authentication factor.
@@ -16490,9 +14784,11 @@ Retrieve configuration details for the multi-factor authentication APNS provider
```typescript -await client.guardian.factors.pushNotification.getApnsProvider(); -``` +await client.guardian.factors.set("push-notification", { + enabled: true +}); +```
@@ -16506,18 +14802,36 @@ await client.guardian.factors.pushNotification.getApnsProvider();
-**requestOptions:** `PushNotification.RequestOptions` +**name:** `Management.GuardianFactorNameEnum` — Factor name. Can be `sms`, `push-notification`, `email`, `duo` `otp` `webauthn-roaming`, `webauthn-platform`, or `recovery-code`. + +
+
+ +
+
+ +**request:** `Management.SetGuardianFactorRequestContent` + +
+
+ +
+
+**requestOptions:** `FactorsClient.RequestOptions` +
+
-
client.guardian.factors.pushNotification.setApnsProvider({ ...params }) -> Management.SetGuardianFactorsProviderPushNotificationApnsResponseContent +## Guardian Policies +
client.guardian.policies.list() -> Management.ListGuardianPoliciesResponseContent
@@ -16529,8 +14843,15 @@ await client.guardian.factors.pushNotification.getApnsProvider();
-Modify configuration details of the multi-factor authentication APNS provider associated with your tenant. +Retrieve the multi-factor authentication (MFA) policies configured for your tenant. + +The following policies are supported: +
    +
  • all-applications policy prompts with MFA for all logins.
  • +
  • confidence-score policy prompts with MFA only for low confidence logins.
  • +
+Note: The confidence-score policy is part of the Adaptive MFA feature. Adaptive MFA requires an add-on for the Enterprise plan; review Auth0 Pricing for more details.
@@ -16545,9 +14866,9 @@ Modify configuration details of the multi-factor authentication APNS provider as
```typescript -await client.guardian.factors.pushNotification.setApnsProvider({}); -``` +await client.guardian.policies.list(); +```
@@ -16561,26 +14882,19 @@ await client.guardian.factors.pushNotification.setApnsProvider({});
-**request:** `Management.SetGuardianFactorsProviderPushNotificationApnsRequestContent` - -
-
- -
-
- -**requestOptions:** `PushNotification.RequestOptions` - +**requestOptions:** `PoliciesClient.RequestOptions` +
+
-
client.guardian.factors.pushNotification.setFcmProvider({ ...params }) -> Management.SetGuardianFactorsProviderPushNotificationFcmResponseContent +
client.guardian.policies.set({ ...params }) -> Management.SetGuardianPoliciesResponseContent
@@ -16592,8 +14906,15 @@ await client.guardian.factors.pushNotification.setApnsProvider({});
-Modify configuration details of the multi-factor authentication FCM provider associated with your tenant. +Set multi-factor authentication (MFA) policies for your tenant. + +The following policies are supported: +
    +
  • all-applications policy prompts with MFA for all logins.
  • +
  • confidence-score policy prompts with MFA only for low confidence logins.
  • +
+Note: The confidence-score policy is part of the Adaptive MFA feature. Adaptive MFA requires an add-on for the Enterprise plan; review Auth0 Pricing for more details.
@@ -16608,9 +14929,9 @@ Modify configuration details of the multi-factor authentication FCM provider ass
```typescript -await client.guardian.factors.pushNotification.setFcmProvider({}); -``` +await client.guardian.policies.set(["all-applications"]); +```
@@ -16624,26 +14945,28 @@ await client.guardian.factors.pushNotification.setFcmProvider({});
-**request:** `Management.SetGuardianFactorsProviderPushNotificationFcmRequestContent` - +**request:** `Management.SetGuardianPoliciesRequestContent` +
-**requestOptions:** `PushNotification.RequestOptions` - +**requestOptions:** `PoliciesClient.RequestOptions` +
+
-
client.guardian.factors.pushNotification.setFcmv1Provider({ ...params }) -> Management.SetGuardianFactorsProviderPushNotificationFcmv1ResponseContent +## Guardian Factors Phone +
client.guardian.factors.phone.getMessageTypes() -> Management.GetGuardianFactorPhoneMessageTypesResponseContent
@@ -16655,8 +14978,7 @@ await client.guardian.factors.pushNotification.setFcmProvider({});
-Modify configuration details of the multi-factor authentication FCMV1 provider associated with your tenant. - +Retrieve list of phone-type MFA factors (i.e., sms and voice) that are enabled for your tenant.
@@ -16671,9 +14993,9 @@ Modify configuration details of the multi-factor authentication FCMV1 provider a
```typescript -await client.guardian.factors.pushNotification.setFcmv1Provider({}); -``` +await client.guardian.factors.phone.getMessageTypes(); +```
@@ -16687,26 +15009,19 @@ await client.guardian.factors.pushNotification.setFcmv1Provider({});
-**request:** `Management.SetGuardianFactorsProviderPushNotificationFcmv1RequestContent` - -
-
- -
-
- -**requestOptions:** `PushNotification.RequestOptions` - +**requestOptions:** `PhoneClient.RequestOptions` +
+
-
client.guardian.factors.pushNotification.getSnsProvider() -> Management.GetGuardianFactorsProviderSnsResponseContent +
client.guardian.factors.phone.setMessageTypes({ ...params }) -> Management.SetGuardianFactorPhoneMessageTypesResponseContent
@@ -16718,8 +15033,7 @@ await client.guardian.factors.pushNotification.setFcmv1Provider({});
-Retrieve configuration details for an AWS SNS push notification provider that has been enabled for MFA. To learn more, review Configure Push Notifications for MFA. - +Replace the list of phone-type MFA factors (i.e., sms and voice) that are enabled for your tenant.
@@ -16734,9 +15048,11 @@ Retrieve configuration details for an AWS SNS push notification provider that ha
```typescript -await client.guardian.factors.pushNotification.getSnsProvider(); -``` +await client.guardian.factors.phone.setMessageTypes({ + message_types: ["sms"] +}); +```
@@ -16750,18 +15066,27 @@ await client.guardian.factors.pushNotification.getSnsProvider();
-**requestOptions:** `PushNotification.RequestOptions` +**request:** `Management.SetGuardianFactorPhoneMessageTypesRequestContent` + +
+
+ +
+
+**requestOptions:** `PhoneClient.RequestOptions` +
+
-
client.guardian.factors.pushNotification.setSnsProvider({ ...params }) -> Management.SetGuardianFactorsProviderPushNotificationSnsResponseContent +
client.guardian.factors.phone.getTwilioProvider() -> Management.GetGuardianFactorsProviderPhoneTwilioResponseContent
@@ -16773,8 +15098,7 @@ await client.guardian.factors.pushNotification.getSnsProvider();
-Configure the AWS SNS push notification provider configuration (subscription required). - +Retrieve configuration details for a Twilio phone provider that has been set up in your tenant. To learn more, review Configure SMS and Voice Notifications for MFA.
@@ -16789,9 +15113,9 @@ Configure the updateSnsProvider({ ...params }) -> Management.UpdateGuardianFactorsProviderPushNotificationSnsResponseContent +
client.guardian.factors.phone.setTwilioProvider({ ...params }) -> Management.SetGuardianFactorsProviderPhoneTwilioResponseContent
@@ -16836,8 +15153,7 @@ await client.guardian.factors.pushNotification.setSnsProvider();
-Configure the AWS SNS push notification provider configuration (subscription required). - +Update the configuration of a Twilio phone provider that has been set up in your tenant. To learn more, review Configure SMS and Voice Notifications for MFA.
@@ -16852,9 +15168,9 @@ Configure the getSelectedProvider() -> Management.GetGuardianFactorsProviderPushNotificationResponseContent +
client.guardian.factors.phone.getSelectedProvider() -> Management.GetGuardianFactorsProviderPhoneResponseContent
@@ -16899,8 +15216,7 @@ await client.guardian.factors.pushNotification.updateSnsProvider();
-Modify the push notification provider configured for your tenant. For more information, review Configure Push Notifications for MFA. - +Retrieve details of the multi-factor authentication phone provider configured for your tenant.
@@ -16915,9 +15231,9 @@ Modify the push notification provider configured for your tenant. For more infor
```typescript -await client.guardian.factors.pushNotification.getSelectedProvider(); -``` +await client.guardian.factors.phone.getSelectedProvider(); +```
@@ -16931,36 +15247,22 @@ await client.guardian.factors.pushNotification.getSelectedProvider();
-**requestOptions:** `PushNotification.RequestOptions` - +**requestOptions:** `PhoneClient.RequestOptions` +
+
-
client.guardian.factors.pushNotification.setProvider({ ...params }) -> Management.SetGuardianFactorsProviderPushNotificationResponseContent -
-
- -#### 📝 Description - -
-
- +
client.guardian.factors.phone.setProvider({ ...params }) -> Management.SetGuardianFactorsProviderPhoneResponseContent
-Modify the push notification provider configured for your tenant. For more information, review Configure Push Notifications for MFA. - -
-
-
-
- #### 🔌 Usage
@@ -16970,11 +15272,11 @@ Modify the push notification provider configured for your tenant. For more infor
```typescript -await client.guardian.factors.pushNotification.setProvider({ - provider: "guardian", +await client.guardian.factors.phone.setProvider({ + provider: "auth0" }); -``` +```
@@ -16988,28 +15290,27 @@ await client.guardian.factors.pushNotification.setProvider({
-**request:** `Management.SetGuardianFactorsProviderPushNotificationRequestContent` - +**request:** `Management.SetGuardianFactorsProviderPhoneRequestContent` +
-**requestOptions:** `PushNotification.RequestOptions` - +**requestOptions:** `PhoneClient.RequestOptions` +
+
-## Guardian Factors Sms - -
client.guardian.factors.sms.getTwilioProvider() -> Management.GetGuardianFactorsProviderSmsTwilioResponseContent +
client.guardian.factors.phone.getTemplates() -> Management.GetGuardianFactorPhoneTemplatesResponseContent
@@ -17021,10 +15322,7 @@ await client.guardian.factors.pushNotification.setProvider({
-Retrieve the Twilio SMS provider configuration (subscription required). - - A new endpoint is available to retrieve the Twilio configuration related to phone factors (phone Twilio configuration). It has the same payload as this one. Please use it instead. - +Retrieve details of the multi-factor authentication enrollment and verification templates for phone-type factors available in your tenant.
@@ -17039,9 +15337,9 @@ Retrieve the setTwilioProvider({ ...params }) -> Management.SetGuardianFactorsProviderSmsTwilioResponseContent +
client.guardian.factors.phone.setTemplates({ ...params }) -> Management.SetGuardianFactorPhoneTemplatesResponseContent
@@ -17078,10 +15377,7 @@ await client.guardian.factors.sms.getTwilioProvider();
-This endpoint has been deprecated. To complete this action, use the Update Twilio phone configuration endpoint. - - Previous functionality: Update the Twilio SMS provider configuration. - +Customize the messages sent to complete phone enrollment and verification (subscription required).
@@ -17096,9 +15392,12 @@ This endpoint has been deprecated. To complete this action, use the
@@ -17112,26 +15411,28 @@ await client.guardian.factors.sms.setTwilioProvider();
-**request:** `Management.SetGuardianFactorsProviderSmsTwilioRequestContent` - +**request:** `Management.SetGuardianFactorPhoneTemplatesRequestContent` +
-**requestOptions:** `Sms.RequestOptions` - +**requestOptions:** `PhoneClient.RequestOptions` +
+
-
client.guardian.factors.sms.getSelectedProvider() -> Management.GetGuardianFactorsProviderSmsResponseContent +## Guardian Factors PushNotification +
client.guardian.factors.pushNotification.getApnsProvider() -> Management.GetGuardianFactorsProviderApnsResponseContent
@@ -17143,10 +15444,7 @@ await client.guardian.factors.sms.setTwilioProvider();
-This endpoint has been deprecated. To complete this action, use the Retrieve phone configuration endpoint instead. - - Previous functionality: Retrieve details for the multi-factor authentication SMS provider configured for your tenant. - +Retrieve configuration details for the multi-factor authentication APNS provider associated with your tenant.
@@ -17161,9 +15459,9 @@ This endpoint has been deprecated. To complete this action, use the setProvider({ ...params }) -> Management.SetGuardianFactorsProviderSmsResponseContent +
client.guardian.factors.pushNotification.setApnsProvider({ ...params }) -> Management.SetGuardianFactorsProviderPushNotificationApnsResponseContent
@@ -17200,10 +15499,7 @@ await client.guardian.factors.sms.getSelectedProvider();
-This endpoint has been deprecated. To complete this action, use the Update phone configuration endpoint instead. - - Previous functionality: Update the multi-factor authentication SMS provider configuration in your tenant. - +Modify configuration details of the multi-factor authentication APNS provider associated with your tenant.
@@ -17218,11 +15514,9 @@ This endpoint has been deprecated. To complete this action, use the
@@ -17236,26 +15530,27 @@ await client.guardian.factors.sms.setProvider({
-**request:** `Management.SetGuardianFactorsProviderSmsRequestContent` - +**request:** `Management.SetGuardianFactorsProviderPushNotificationApnsRequestContent` +
-**requestOptions:** `Sms.RequestOptions` - +**requestOptions:** `PushNotificationClient.RequestOptions` +
+
-
client.guardian.factors.sms.getTemplates() -> Management.GetGuardianFactorSmsTemplatesResponseContent +
client.guardian.factors.pushNotification.setFcmProvider({ ...params }) -> Management.SetGuardianFactorsProviderPushNotificationFcmResponseContent
@@ -17267,10 +15562,7 @@ await client.guardian.factors.sms.setProvider({
-This endpoint has been deprecated. To complete this action, use the Retrieve enrollment and verification phone templates endpoint instead. - - Previous function: Retrieve details of SMS enrollment and verification templates configured for your tenant. - +Modify configuration details of the multi-factor authentication FCM provider associated with your tenant.
@@ -17285,9 +15577,9 @@ This endpoint has been deprecated. To complete this action, use the setTemplates({ ...params }) -> Management.SetGuardianFactorSmsTemplatesResponseContent +
client.guardian.factors.pushNotification.setFcmv1Provider({ ...params }) -> Management.SetGuardianFactorsProviderPushNotificationFcmv1ResponseContent
@@ -17324,10 +15625,7 @@ await client.guardian.factors.sms.getTemplates();
-This endpoint has been deprecated. To complete this action, use the Update enrollment and verification phone templates endpoint instead. - - Previous functionality: Customize the messages sent to complete SMS enrollment and verification. - +Modify configuration details of the multi-factor authentication FCMV1 provider associated with your tenant.
@@ -17342,12 +15640,9 @@ This endpoint has been deprecated. To complete this action, use the
@@ -17361,28 +15656,27 @@ await client.guardian.factors.sms.setTemplates({
-**request:** `Management.SetGuardianFactorSmsTemplatesRequestContent` - +**request:** `Management.SetGuardianFactorsProviderPushNotificationFcmv1RequestContent` +
-**requestOptions:** `Sms.RequestOptions` - +**requestOptions:** `PushNotificationClient.RequestOptions` +
+
-## Guardian Factors Duo Settings - -
client.guardian.factors.duo.settings.get() -> Management.GetGuardianFactorDuoSettingsResponseContent +
client.guardian.factors.pushNotification.getSnsProvider() -> Management.GetGuardianFactorsProviderSnsResponseContent
@@ -17394,8 +15688,7 @@ await client.guardian.factors.sms.setTemplates({
-Retrieves the DUO account and factor configuration. - +Retrieve configuration details for an AWS SNS push notification provider that has been enabled for MFA. To learn more, review Configure Push Notifications for MFA.
@@ -17410,9 +15703,9 @@ Retrieves the DUO account and factor configuration.
```typescript -await client.guardian.factors.duo.settings.get(); -``` +await client.guardian.factors.pushNotification.getSnsProvider(); +```
@@ -17426,18 +15719,19 @@ await client.guardian.factors.duo.settings.get();
-**requestOptions:** `Settings.RequestOptions` - +**requestOptions:** `PushNotificationClient.RequestOptions` +
+
-
client.guardian.factors.duo.settings.set({ ...params }) -> Management.SetGuardianFactorDuoSettingsResponseContent +
client.guardian.factors.pushNotification.setSnsProvider({ ...params }) -> Management.SetGuardianFactorsProviderPushNotificationSnsResponseContent
@@ -17449,8 +15743,7 @@ await client.guardian.factors.duo.settings.get();
-Set the DUO account configuration and other properties specific to this factor. - +Configure the AWS SNS push notification provider configuration (subscription required).
@@ -17465,9 +15758,9 @@ Set the DUO account configuration and other properties specific to this factor.
```typescript -await client.guardian.factors.duo.settings.set(); -``` +await client.guardian.factors.pushNotification.setSnsProvider(); +```
@@ -17481,29 +15774,44 @@ await client.guardian.factors.duo.settings.set();
-**request:** `Management.SetGuardianFactorDuoSettingsRequestContent` - +**request:** `Management.SetGuardianFactorsProviderPushNotificationSnsRequestContent` +
-**requestOptions:** `Settings.RequestOptions` - +**requestOptions:** `PushNotificationClient.RequestOptions` +
+
-
client.guardian.factors.duo.settings.update({ ...params }) -> Management.UpdateGuardianFactorDuoSettingsResponseContent +
client.guardian.factors.pushNotification.updateSnsProvider({ ...params }) -> Management.UpdateGuardianFactorsProviderPushNotificationSnsResponseContent +
+
+ +#### 📝 Description + +
+
+
+Configure the AWS SNS push notification provider configuration (subscription required). +
+
+
+
+ #### 🔌 Usage
@@ -17513,9 +15821,9 @@ await client.guardian.factors.duo.settings.set();
```typescript -await client.guardian.factors.duo.settings.update(); -``` +await client.guardian.factors.pushNotification.updateSnsProvider(); +```
@@ -17529,28 +15837,27 @@ await client.guardian.factors.duo.settings.update();
-**request:** `Management.UpdateGuardianFactorDuoSettingsRequestContent` - +**request:** `Management.UpdateGuardianFactorsProviderPushNotificationSnsRequestContent` +
-**requestOptions:** `Settings.RequestOptions` - +**requestOptions:** `PushNotificationClient.RequestOptions` +
+
-## Hooks Secrets - -
client.hooks.secrets.get(id) -> Management.GetHookSecretResponseContent +
client.guardian.factors.pushNotification.getSelectedProvider() -> Management.GetGuardianFactorsProviderPushNotificationResponseContent
@@ -17562,8 +15869,7 @@ await client.guardian.factors.duo.settings.update();
-Retrieve a hook's secrets by the ID of the hook. - +Modify the push notification provider configured for your tenant. For more information, review Configure Push Notifications for MFA.
@@ -17578,9 +15884,9 @@ Retrieve a hook's secrets by the ID of the hook.
```typescript -await client.hooks.secrets.get("id"); -``` +await client.guardian.factors.pushNotification.getSelectedProvider(); +```
@@ -17594,26 +15900,19 @@ await client.hooks.secrets.get("id");
-**id:** `string` — ID of the hook to retrieve secrets from. - -
-
- -
-
- -**requestOptions:** `Secrets.RequestOptions` - +**requestOptions:** `PushNotificationClient.RequestOptions` +
+
-
client.hooks.secrets.create(id, { ...params }) -> void +
client.guardian.factors.pushNotification.setProvider({ ...params }) -> Management.SetGuardianFactorsProviderPushNotificationResponseContent
@@ -17625,8 +15924,7 @@ await client.hooks.secrets.get("id");
-Add one or more secrets to an existing hook. Accepts an object of key-value pairs, where the key is the name of the secret. A hook can have a maximum of 20 secrets. - +Modify the push notification provider configured for your tenant. For more information, review Configure Push Notifications for MFA.
@@ -17641,52 +15939,46 @@ Add one or more secrets to an existing hook. Accepts an object of key-value pair
```typescript -await client.hooks.secrets.create("id", { - key: "value", +await client.guardian.factors.pushNotification.setProvider({ + provider: "guardian" }); -``` - -
-
- - - -#### ⚙️ Parameters - -
-
- -
-
- -**id:** `string` — The id of the hook to retrieve +```
+
+
+ +#### ⚙️ Parameters
-**request:** `Management.CreateHookSecretRequestContent` +
+
+**request:** `Management.SetGuardianFactorsProviderPushNotificationRequestContent` +
-**requestOptions:** `Secrets.RequestOptions` - +**requestOptions:** `PushNotificationClient.RequestOptions` +
+
-
client.hooks.secrets.delete(id, { ...params }) -> void +## Guardian Factors Sms +
client.guardian.factors.sms.getTwilioProvider() -> Management.GetGuardianFactorsProviderSmsTwilioResponseContent
@@ -17698,8 +15990,9 @@ await client.hooks.secrets.create("id", {
-Delete one or more existing secrets for a given hook. Accepts an array of secret names to delete. +Retrieve the Twilio SMS provider configuration (subscription required). + A new endpoint is available to retrieve the Twilio configuration related to phone factors (phone Twilio configuration). It has the same payload as this one. Please use it instead.
@@ -17714,9 +16007,9 @@ Delete one or more existing secrets for a given hook. Accepts an array of secret
```typescript -await client.hooks.secrets.delete("id", ["string"]); -``` +await client.guardian.factors.sms.getTwilioProvider(); +```
@@ -17730,34 +16023,19 @@ await client.hooks.secrets.delete("id", ["string"]);
-**id:** `string` — ID of the hook whose secrets to delete. - +**requestOptions:** `SmsClient.RequestOptions` +
- -
-
- -**request:** `Management.DeleteHookSecretRequestContent` -
-
-
- -**requestOptions:** `Secrets.RequestOptions` - -
-
- -
-
client.hooks.secrets.update(id, { ...params }) -> void +
client.guardian.factors.sms.setTwilioProvider({ ...params }) -> Management.SetGuardianFactorsProviderSmsTwilioResponseContent
@@ -17769,8 +16047,9 @@ await client.hooks.secrets.delete("id", ["string"]);
-Update one or more existing secrets for an existing hook. Accepts an object of key-value pairs, where the key is the name of the existing secret. +This endpoint has been deprecated. To complete this action, use the Update Twilio phone configuration endpoint. + Previous functionality: Update the Twilio SMS provider configuration.
@@ -17785,11 +16064,9 @@ Update one or more existing secrets for an existing hook. Accepts an object of k
```typescript -await client.hooks.secrets.update("id", { - key: "value", -}); -``` +await client.guardian.factors.sms.setTwilioProvider(); +```
@@ -17803,36 +16080,27 @@ await client.hooks.secrets.update("id", {
-**id:** `string` — ID of the hook whose secrets to update. - -
-
- -
-
- -**request:** `Management.UpdateHookSecretRequestContent` - +**request:** `Management.SetGuardianFactorsProviderSmsTwilioRequestContent` +
-**requestOptions:** `Secrets.RequestOptions` - +**requestOptions:** `SmsClient.RequestOptions` +
+
-## Jobs UsersExports - -
client.jobs.usersExports.create({ ...params }) -> Management.CreateExportUsersResponseContent +
client.guardian.factors.sms.getSelectedProvider() -> Management.GetGuardianFactorsProviderSmsResponseContent
@@ -17844,8 +16112,9 @@ await client.hooks.secrets.update("id", {
-Export all users to a file via a long-running job. +This endpoint has been deprecated. To complete this action, use the Retrieve phone configuration endpoint instead. + Previous functionality: Retrieve details for the multi-factor authentication SMS provider configured for your tenant.
@@ -17860,9 +16129,9 @@ Export all users to a file via a long-running job.
```typescript -await client.jobs.usersExports.create(); -``` +await client.guardian.factors.sms.getSelectedProvider(); +```
@@ -17876,28 +16145,19 @@ await client.jobs.usersExports.create();
-**request:** `Management.CreateExportUsersRequestContent` - -
-
- -
-
- -**requestOptions:** `UsersExports.RequestOptions` - +**requestOptions:** `SmsClient.RequestOptions` +
+
-## Jobs UsersImports - -
client.jobs.usersImports.create({ ...params }) -> Management.CreateImportUsersResponseContent +
client.guardian.factors.sms.setProvider({ ...params }) -> Management.SetGuardianFactorsProviderSmsResponseContent
@@ -17909,8 +16169,9 @@ await client.jobs.usersExports.create();
-Import users from a formatted file into a connection via a long-running job. When importing users, with or without upsert, the `email_verified` is set to `false` when the email address is added or updated. Users must verify their email address. To avoid this behavior, set `email_verified` to `true` in the imported data. +This endpoint has been deprecated. To complete this action, use the Update phone configuration endpoint instead. + Previous functionality: Update the multi-factor authentication SMS provider configuration in your tenant.
@@ -17925,12 +16186,11 @@ Import users from a
@@ -17944,28 +16204,27 @@ await client.jobs.usersImports.create({
-**request:** `Management.CreateImportUsersRequestContent` - +**request:** `Management.SetGuardianFactorsProviderSmsRequestContent` +
-**requestOptions:** `UsersImports.RequestOptions` - +**requestOptions:** `SmsClient.RequestOptions` +
+
-## Jobs VerificationEmail - -
client.jobs.verificationEmail.create({ ...params }) -> Management.CreateVerificationEmailResponseContent +
client.guardian.factors.sms.getTemplates() -> Management.GetGuardianFactorSmsTemplatesResponseContent
@@ -17977,10 +16236,9 @@ await client.jobs.usersImports.create({
-Send an email to the specified user that asks them to click a link to verify their email address. - -Note: You must have the `Status` toggle enabled for the verification email template for the email to be sent. +This endpoint has been deprecated. To complete this action, use the Retrieve enrollment and verification phone templates endpoint instead. + Previous function: Retrieve details of SMS enrollment and verification templates configured for your tenant.
@@ -17995,11 +16253,9 @@ Note: You must have the `Status` toggle enabled for the verification email templ
```typescript -await client.jobs.verificationEmail.create({ - user_id: "user_id", -}); -``` +await client.guardian.factors.sms.getTemplates(); +```
@@ -18013,28 +16269,19 @@ await client.jobs.verificationEmail.create({
-**request:** `Management.CreateVerificationEmailRequestContent` - -
-
- -
-
- -**requestOptions:** `VerificationEmail.RequestOptions` - +**requestOptions:** `SmsClient.RequestOptions` +
+
-## Jobs Errors - -
client.jobs.errors.get(id) -> Management.ErrorsGetResponse +
client.guardian.factors.sms.setTemplates({ ...params }) -> Management.SetGuardianFactorSmsTemplatesResponseContent
@@ -18046,8 +16293,9 @@ await client.jobs.verificationEmail.create({
-Retrieve error details of a failed job. +This endpoint has been deprecated. To complete this action, use the Update enrollment and verification phone templates endpoint instead. + Previous functionality: Customize the messages sent to complete SMS enrollment and verification.
@@ -18062,9 +16310,12 @@ Retrieve error details of a failed job.
```typescript -await client.jobs.errors.get("id"); -``` +await client.guardian.factors.sms.setTemplates({ + enrollment_message: "enrollment_message", + verification_message: "verification_message" +}); +```
@@ -18078,28 +16329,28 @@ await client.jobs.errors.get("id");
-**id:** `string` — ID of the job. - +**request:** `Management.SetGuardianFactorSmsTemplatesRequestContent` +
-**requestOptions:** `Errors.RequestOptions` - +**requestOptions:** `SmsClient.RequestOptions` +
+
-## Keys CustomSigning - -
client.keys.customSigning.get() -> Management.GetCustomSigningKeysResponseContent +## Guardian Factors Duo Settings +
client.guardian.factors.duo.settings.get() -> Management.GetGuardianFactorDuoSettingsResponseContent
@@ -18111,8 +16362,7 @@ await client.jobs.errors.get("id");
-Get entire jwks representation of custom signing keys. - +Retrieves the DUO account and factor configuration.
@@ -18127,9 +16377,9 @@ Get entire jwks representation of custom signing keys.
```typescript -await client.keys.customSigning.get(); -``` +await client.guardian.factors.duo.settings.get(); +```
@@ -18143,18 +16393,19 @@ await client.keys.customSigning.get();
-**requestOptions:** `CustomSigning.RequestOptions` - +**requestOptions:** `SettingsClient.RequestOptions` +
+
-
client.keys.customSigning.set({ ...params }) -> Management.SetCustomSigningKeysResponseContent +
client.guardian.factors.duo.settings.set({ ...params }) -> Management.SetGuardianFactorDuoSettingsResponseContent
@@ -18166,8 +16417,7 @@ await client.keys.customSigning.get();
-Create or replace entire jwks representation of custom signing keys. - +Set the DUO account configuration and other properties specific to this factor.
@@ -18182,15 +16432,9 @@ Create or replace entire jwks representation of custom signing keys.
```typescript -await client.keys.customSigning.set({ - keys: [ - { - kty: "EC", - }, - ], -}); -``` +await client.guardian.factors.duo.settings.set(); +```
@@ -18204,30 +16448,31 @@ await client.keys.customSigning.set({
-**request:** `Management.SetCustomSigningKeysRequestContent` - +**request:** `Management.SetGuardianFactorDuoSettingsRequestContent` +
-**requestOptions:** `CustomSigning.RequestOptions` - +**requestOptions:** `SettingsClient.RequestOptions` +
+
-
client.keys.customSigning.delete() -> void +
client.guardian.factors.duo.settings.update({ ...params }) -> Management.UpdateGuardianFactorDuoSettingsResponseContent
-#### 📝 Description +#### 🔌 Usage
@@ -18235,14 +16480,16 @@ await client.keys.customSigning.set({
-Delete entire jwks representation of custom signing keys. +```typescript +await client.guardian.factors.duo.settings.update(); +```
-#### 🔌 Usage +#### ⚙️ Parameters
@@ -18250,37 +16497,28 @@ Delete entire jwks representation of custom signing keys.
-```typescript -await client.keys.customSigning.delete(); -``` - -
-
+**request:** `Management.UpdateGuardianFactorDuoSettingsRequestContent` +
-#### ⚙️ Parameters - -
-
-
-**requestOptions:** `CustomSigning.RequestOptions` - +**requestOptions:** `SettingsClient.RequestOptions` +
+
-## Keys Encryption - -
client.keys.encryption.list({ ...params }) -> core.Page +## Hooks Secrets +
client.hooks.secrets.get(id) -> Management.GetHookSecretResponseContent
@@ -18292,8 +16530,7 @@ await client.keys.customSigning.delete();
-Retrieve details of all the encryption keys associated with your tenant. - +Retrieve a hook's secrets by the ID of the hook.
@@ -18308,29 +16545,9 @@ Retrieve details of all the encryption keys associated with your tenant.
```typescript -const pageableResponse = await client.keys.encryption.list({ - page: 1, - per_page: 1, - include_totals: true, -}); -for await (const item of pageableResponse) { - console.log(item); -} - -// Or you can manually iterate page-by-page -let page = await client.keys.encryption.list({ - page: 1, - per_page: 1, - include_totals: true, -}); -while (page.hasNextPage()) { - page = page.getNextPage(); -} +await client.hooks.secrets.get("id"); -// You can also access the underlying response -const response = page.response; ``` -
@@ -18344,26 +16561,27 @@ const response = page.response;
-**request:** `Management.ListEncryptionKeysRequestParameters` - +**id:** `string` — ID of the hook to retrieve secrets from. +
-**requestOptions:** `Encryption.RequestOptions` - +**requestOptions:** `SecretsClient.RequestOptions` +
+
-
client.keys.encryption.create({ ...params }) -> Management.CreateEncryptionKeyResponseContent +
client.hooks.secrets.create(id, { ...params }) -> void
@@ -18375,8 +16593,7 @@ const response = page.response;
-Create the new, pre-activated encryption key, without the key material. - +Add one or more secrets to an existing hook. Accepts an object of key-value pairs, where the key is the name of the secret. A hook can have a maximum of 20 secrets.
@@ -18391,11 +16608,11 @@ Create the new, pre-activated encryption key, without the key material.
```typescript -await client.keys.encryption.create({ - type: "customer-provided-root-key", +await client.hooks.secrets.create("id", { + "key": "value" }); -``` +```
@@ -18409,26 +16626,35 @@ await client.keys.encryption.create({
-**request:** `Management.CreateEncryptionKeyRequestContent` - +**id:** `string` — The id of the hook to retrieve +
-**requestOptions:** `Encryption.RequestOptions` +**request:** `Management.CreateHookSecretRequestContent` + +
+
+ +
+
+**requestOptions:** `SecretsClient.RequestOptions` +
+
-
client.keys.encryption.rekey() -> void +
client.hooks.secrets.delete(id, { ...params }) -> void
@@ -18440,8 +16666,7 @@ await client.keys.encryption.create({
-Perform rekeying operation on the key hierarchy. - +Delete one or more existing secrets for a given hook. Accepts an array of secret names to delete.
@@ -18456,9 +16681,9 @@ Perform rekeying operation on the key hierarchy.
```typescript -await client.keys.encryption.rekey(); -``` +await client.hooks.secrets.delete("id", ["string"]); +```
@@ -18472,18 +16697,35 @@ await client.keys.encryption.rekey();
-**requestOptions:** `Encryption.RequestOptions` +**id:** `string` — ID of the hook whose secrets to delete. + +
+
+ +
+
+ +**request:** `Management.DeleteHookSecretRequestContent` + +
+
+ +
+
+**requestOptions:** `SecretsClient.RequestOptions` +
+
-
client.keys.encryption.get(kid) -> Management.GetEncryptionKeyResponseContent +
client.hooks.secrets.update(id, { ...params }) -> void
@@ -18495,8 +16737,7 @@ await client.keys.encryption.rekey();
-Retrieve details of the encryption key with the given ID. - +Update one or more existing secrets for an existing hook. Accepts an object of key-value pairs, where the key is the name of the existing secret.
@@ -18510,10 +16751,12 @@ Retrieve details of the encryption key with the given ID.
-```typescript -await client.keys.encryption.get("kid"); +```typescript +await client.hooks.secrets.update("id", { + "key": "value" +}); + ``` -
@@ -18527,26 +16770,36 @@ await client.keys.encryption.get("kid");
-**kid:** `string` — Encryption key ID - +**id:** `string` — ID of the hook whose secrets to update. +
-**requestOptions:** `Encryption.RequestOptions` +**request:** `Management.UpdateHookSecretRequestContent` + +
+
+ +
+
+**requestOptions:** `SecretsClient.RequestOptions` +
+
-
client.keys.encryption.import(kid, { ...params }) -> Management.ImportEncryptionKeyResponseContent +## Jobs UsersExports +
client.jobs.usersExports.create({ ...params }) -> Management.CreateExportUsersResponseContent
@@ -18558,8 +16811,7 @@ await client.keys.encryption.get("kid");
-Import wrapped key material and activate encryption key. - +Export all users to a file via a long-running job.
@@ -18574,11 +16826,9 @@ Import wrapped key material and activate encryption key.
```typescript -await client.keys.encryption.import("kid", { - wrapped_key: "wrapped_key", -}); -``` +await client.jobs.usersExports.create(); +```
@@ -18592,34 +16842,28 @@ await client.keys.encryption.import("kid", {
-**kid:** `string` — Encryption key ID - -
-
- -
-
- -**request:** `Management.ImportEncryptionKeyRequestContent` - +**request:** `Management.CreateExportUsersRequestContent` +
-**requestOptions:** `Encryption.RequestOptions` - +**requestOptions:** `UsersExportsClient.RequestOptions` +
+
-
client.keys.encryption.delete(kid) -> void +## Jobs UsersImports +
client.jobs.usersImports.create({ ...params }) -> Management.CreateImportUsersResponseContent
@@ -18631,8 +16875,7 @@ await client.keys.encryption.import("kid", {
-Delete the custom provided encryption key with the given ID and move back to using native encryption key. - +Import users from a formatted file into a connection via a long-running job. When importing users, with or without upsert, the `email_verified` is set to `false` when the email address is added or updated. Users must verify their email address. To avoid this behavior, set `email_verified` to `true` in the imported data.
@@ -18647,9 +16890,12 @@ Delete the custom provided encryption key with the given ID and move back to usi
```typescript -await client.keys.encryption.delete("kid"); -``` +await client.jobs.usersImports.create({ + users: fs.createReadStream("/path/to/your/file"), + connection_id: "connection_id" +}); +```
@@ -18663,26 +16909,28 @@ await client.keys.encryption.delete("kid");
-**kid:** `string` — Encryption key ID - +**request:** `Management.CreateImportUsersRequestContent` +
-**requestOptions:** `Encryption.RequestOptions` - +**requestOptions:** `UsersImportsClient.RequestOptions` +
+
-
client.keys.encryption.createPublicWrappingKey(kid) -> Management.CreateEncryptionKeyPublicWrappingResponseContent +## Jobs VerificationEmail +
client.jobs.verificationEmail.create({ ...params }) -> Management.CreateVerificationEmailResponseContent
@@ -18694,8 +16942,9 @@ await client.keys.encryption.delete("kid");
-Create the public wrapping key to wrap your own encryption key material. +Send an email to the specified user that asks them to click a link to verify their email address. +Note: You must have the `Status` toggle enabled for the verification email template for the email to be sent.
@@ -18710,9 +16959,11 @@ Create the public wrapping key to wrap your own encryption key material.
```typescript -await client.keys.encryption.createPublicWrappingKey("kid"); -``` +await client.jobs.verificationEmail.create({ + user_id: "user_id" +}); +```
@@ -18726,28 +16977,28 @@ await client.keys.encryption.createPublicWrappingKey("kid");
-**kid:** `string` — Encryption key ID - +**request:** `Management.CreateVerificationEmailRequestContent` +
-**requestOptions:** `Encryption.RequestOptions` - +**requestOptions:** `VerificationEmailClient.RequestOptions` +
+
-## Keys Signing - -
client.keys.signing.list() -> Management.SigningKeys[] +## Jobs Errors +
client.jobs.errors.get(id) -> Management.ErrorsGetResponse
@@ -18759,8 +17010,7 @@ await client.keys.encryption.createPublicWrappingKey("kid");
-Retrieve details of all the application signing keys associated with your tenant. - +Retrieve error details of a failed job.
@@ -18775,9 +17025,9 @@ Retrieve details of all the application signing keys associated with your tenant
```typescript -await client.keys.signing.list(); -``` +await client.jobs.errors.get("id"); +```
@@ -18791,18 +17041,28 @@ await client.keys.signing.list();
-**requestOptions:** `Signing.RequestOptions` +**id:** `string` — ID of the job. + +
+
+ +
+
+**requestOptions:** `ErrorsClient.RequestOptions` +
+
-
client.keys.signing.rotate() -> Management.RotateSigningKeysResponseContent +## Keys CustomSigning +
client.keys.customSigning.get() -> Management.GetCustomSigningKeysResponseContent
@@ -18814,8 +17074,7 @@ await client.keys.signing.list();
-Rotate the application signing key of your tenant. - +Get entire jwks representation of custom signing keys.
@@ -18830,9 +17089,9 @@ Rotate the application signing key of your tenant.
```typescript -await client.keys.signing.rotate(); -``` +await client.keys.customSigning.get(); +```
@@ -18846,18 +17105,19 @@ await client.keys.signing.rotate();
-**requestOptions:** `Signing.RequestOptions` - +**requestOptions:** `CustomSigningClient.RequestOptions` +
+
-
client.keys.signing.get(kid) -> Management.GetSigningKeysResponseContent +
client.keys.customSigning.set({ ...params }) -> Management.SetCustomSigningKeysResponseContent
@@ -18869,8 +17129,7 @@ await client.keys.signing.rotate();
-Retrieve details of the application signing key with the given ID. - +Create or replace entire jwks representation of custom signing keys.
@@ -18885,9 +17144,13 @@ Retrieve details of the application signing key with the given ID.
```typescript -await client.keys.signing.get("kid"); -``` +await client.keys.customSigning.set({ + keys: [{ + kty: "EC" + }] +}); +```
@@ -18901,26 +17164,27 @@ await client.keys.signing.get("kid");
-**kid:** `string` — Key id of the key to retrieve - +**request:** `Management.SetCustomSigningKeysRequestContent` +
-**requestOptions:** `Signing.RequestOptions` - +**requestOptions:** `CustomSigningClient.RequestOptions` +
+
-
client.keys.signing.revoke(kid) -> Management.RevokedSigningKeysResponseContent +
client.keys.customSigning.delete() -> void
@@ -18932,8 +17196,7 @@ await client.keys.signing.get("kid");
-Revoke the application signing key with the given ID. - +Delete entire jwks representation of custom signing keys.
@@ -18948,9 +17211,9 @@ Revoke the application signing key with the given ID.
```typescript -await client.keys.signing.revoke("kid"); -``` +await client.keys.customSigning.delete(); +```
@@ -18964,31 +17227,37 @@ await client.keys.signing.revoke("kid");
-**kid:** `string` — Key id of the key to revoke - -
-
- -
-
- -**requestOptions:** `Signing.RequestOptions` - +**requestOptions:** `CustomSigningClient.RequestOptions` +
+
-## Organizations ClientGrants +## Keys Encryption +
client.keys.encryption.list({ ...params }) -> core.Page +
+
+ +#### 📝 Description + +
+
-
client.organizations.clientGrants.list(id, { ...params }) -> core.Page
+Retrieve details of all the encryption keys associated with your tenant. +
+
+
+
+ #### 🔌 Usage
@@ -18998,24 +17267,20 @@ await client.keys.signing.revoke("kid");
```typescript -const pageableResponse = await client.organizations.clientGrants.list("id", { - audience: "audience", - client_id: "client_id", +const pageableResponse = await client.keys.encryption.list({ page: 1, per_page: 1, - include_totals: true, + include_totals: true }); for await (const item of pageableResponse) { console.log(item); } // Or you can manually iterate page-by-page -let page = await client.organizations.clientGrants.list("id", { - audience: "audience", - client_id: "client_id", +let page = await client.keys.encryption.list({ page: 1, per_page: 1, - include_totals: true, + include_totals: true }); while (page.hasNextPage()) { page = page.getNextPage(); @@ -19023,8 +17288,8 @@ while (page.hasNextPage()) { // You can also access the underlying response const response = page.response; -``` +```
@@ -19038,38 +17303,31 @@ const response = page.response;
-**id:** `string` — Organization identifier. - -
-
- -
-
- -**request:** `Management.ListOrganizationClientGrantsRequestParameters` - +**request:** `Management.ListEncryptionKeysRequestParameters` +
-**requestOptions:** `ClientGrants.RequestOptions` - +**requestOptions:** `EncryptionClient.RequestOptions` +
+
-
client.organizations.clientGrants.create(id, { ...params }) -> Management.AssociateOrganizationClientGrantResponseContent +
client.keys.encryption.create({ ...params }) -> Management.CreateEncryptionKeyResponseContent
-#### 🔌 Usage +#### 📝 Description
@@ -19077,18 +17335,13 @@ const response = page.response;
-```typescript -await client.organizations.clientGrants.create("id", { - grant_id: "grant_id", -}); -``` - +Create the new, pre-activated encryption key, without the key material.
-#### ⚙️ Parameters +#### 🔌 Usage
@@ -19096,38 +17349,50 @@ await client.organizations.clientGrants.create("id", {
-**id:** `string` — Organization identifier. +```typescript +await client.keys.encryption.create({ + type: "customer-provided-root-key" +}); +``` +
+
+#### ⚙️ Parameters +
-**request:** `Management.AssociateOrganizationClientGrantRequestContent` +
+
+**request:** `Management.CreateEncryptionKeyRequestContent` +
-**requestOptions:** `ClientGrants.RequestOptions` - +**requestOptions:** `EncryptionClient.RequestOptions` +
+
-
client.organizations.clientGrants.delete(id, grantId) -> void +
client.keys.encryption.rekey() -> void
-#### 🔌 Usage +#### 📝 Description
@@ -19135,16 +17400,13 @@ await client.organizations.clientGrants.create("id", {
-```typescript -await client.organizations.clientGrants.delete("id", "grant_id"); -``` - +Perform rekeying operation on the key hierarchy.
-#### ⚙️ Parameters +#### 🔌 Usage
@@ -19152,36 +17414,36 @@ await client.organizations.clientGrants.delete("id", "grant_id");
-**id:** `string` — Organization identifier. +```typescript +await client.keys.encryption.rekey(); +```
- -
-
- -**grantId:** `string` — The Client Grant ID to remove from the organization -
+#### ⚙️ Parameters +
-**requestOptions:** `ClientGrants.RequestOptions` +
+
+**requestOptions:** `EncryptionClient.RequestOptions` +
+
-## Organizations DiscoveryDomains - -
client.organizations.discoveryDomains.list(id, { ...params }) -> core.Page +
client.keys.encryption.get(kid) -> Management.GetEncryptionKeyResponseContent
@@ -19193,8 +17455,7 @@ await client.organizations.clientGrants.delete("id", "grant_id");
-Retrieve list of all organization discovery domains associated with the specified organization. - +Retrieve details of the encryption key with the given ID.
@@ -19208,69 +17469,44 @@ Retrieve list of all organization discovery domains associated with the specifie
-```typescript -const pageableResponse = await client.organizations.discoveryDomains.list("id", { - from: "from", - take: 1, -}); -for await (const item of pageableResponse) { - console.log(item); -} - -// Or you can manually iterate page-by-page -let page = await client.organizations.discoveryDomains.list("id", { - from: "from", - take: 1, -}); -while (page.hasNextPage()) { - page = page.getNextPage(); -} - -// You can also access the underlying response -const response = page.response; -``` - -
-
- -
- -#### ⚙️ Parameters - -
-
- -
-
- -**id:** `string` — ID of the organization. +```typescript +await client.keys.encryption.get("kid"); +``` +
+
+#### ⚙️ Parameters +
-**request:** `Management.ListOrganizationDiscoveryDomainsRequestParameters` +
+
+**kid:** `string` — Encryption key ID +
-**requestOptions:** `DiscoveryDomains.RequestOptions` - +**requestOptions:** `EncryptionClient.RequestOptions` +
+
-
client.organizations.discoveryDomains.create(id, { ...params }) -> Management.CreateOrganizationDiscoveryDomainResponseContent +
client.keys.encryption.import(kid, { ...params }) -> Management.ImportEncryptionKeyResponseContent
@@ -19282,8 +17518,7 @@ const response = page.response;
-Update the verification status for an organization discovery domain. The status field must be either pending or verified. - +Import wrapped key material and activate encryption key.
@@ -19298,11 +17533,11 @@ Update the verification status for an organization discovery domain. The s
```typescript -await client.organizations.discoveryDomains.create("id", { - domain: "domain", +await client.keys.encryption.import("kid", { + wrapped_key: "wrapped_key" }); -``` +```
@@ -19316,34 +17551,35 @@ await client.organizations.discoveryDomains.create("id", {
-**id:** `string` — ID of the organization. - +**kid:** `string` — Encryption key ID +
-**request:** `Management.CreateOrganizationDiscoveryDomainRequestContent` - +**request:** `Management.ImportEncryptionKeyRequestContent` +
-**requestOptions:** `DiscoveryDomains.RequestOptions` - +**requestOptions:** `EncryptionClient.RequestOptions` +
+
-
client.organizations.discoveryDomains.get(id, discoveryDomainId) -> Management.GetOrganizationDiscoveryDomainResponseContent +
client.keys.encryption.delete(kid) -> void
@@ -19355,8 +17591,7 @@ await client.organizations.discoveryDomains.create("id", {
-Retrieve details about a single organization discovery domain specified by ID. - +Delete the custom provided encryption key with the given ID and move back to using native encryption key.
@@ -19371,9 +17606,9 @@ Retrieve details about a single organization discovery domain specified by ID.
```typescript -await client.organizations.discoveryDomains.get("id", "discovery_domain_id"); -``` +await client.keys.encryption.delete("kid"); +```
@@ -19387,34 +17622,27 @@ await client.organizations.discoveryDomains.get("id", "discovery_domain_id");
-**id:** `string` — ID of the organization. - -
-
- -
-
- -**discoveryDomainId:** `string` — ID of the discovery domain. - +**kid:** `string` — Encryption key ID +
-**requestOptions:** `DiscoveryDomains.RequestOptions` - +**requestOptions:** `EncryptionClient.RequestOptions` +
+
-
client.organizations.discoveryDomains.delete(id, discoveryDomainId) -> void +
client.keys.encryption.createPublicWrappingKey(kid) -> Management.CreateEncryptionKeyPublicWrappingResponseContent
@@ -19426,8 +17654,7 @@ await client.organizations.discoveryDomains.get("id", "discovery_domain_id");
-Remove a discovery domain from an organization. This action cannot be undone. - +Create the public wrapping key to wrap your own encryption key material.
@@ -19442,9 +17669,9 @@ Remove a discovery domain from an organization. This action cannot be undone.
```typescript -await client.organizations.discoveryDomains.delete("id", "discovery_domain_id"); -``` +await client.keys.encryption.createPublicWrappingKey("kid"); +```
@@ -19458,34 +17685,28 @@ await client.organizations.discoveryDomains.delete("id", "discovery_domain_id");
-**id:** `string` — ID of the organization. - -
-
- -
-
- -**discoveryDomainId:** `string` — ID of the discovery domain. - +**kid:** `string` — Encryption key ID +
-**requestOptions:** `DiscoveryDomains.RequestOptions` - +**requestOptions:** `EncryptionClient.RequestOptions` +
+
-
client.organizations.discoveryDomains.update(id, discoveryDomainId, { ...params }) -> Management.UpdateOrganizationDiscoveryDomainResponseContent +## Keys Signing +
client.keys.signing.list() -> Management.SigningKeys[]
@@ -19497,8 +17718,7 @@ await client.organizations.discoveryDomains.delete("id", "discovery_domain_id");
-Update the verification status for an organization discovery domain. The status field must be either pending or verified. - +Retrieve details of all the application signing keys associated with your tenant.
@@ -19513,9 +17733,9 @@ Update the verification status for an organization discovery domain. The s
```typescript -await client.organizations.discoveryDomains.update("id", "discovery_domain_id"); -``` +await client.keys.signing.list(); +```
@@ -19529,44 +17749,74 @@ await client.organizations.discoveryDomains.update("id", "discovery_domain_id");
-**id:** `string` — ID of the organization. +**requestOptions:** `SigningClient.RequestOptions` + +
+
+ + + +
+ +
client.keys.signing.rotate() -> Management.RotateSigningKeysResponseContent +
+
+ +#### 📝 Description
-**discoveryDomainId:** `string` — ID of the discovery domain to update. +
+
+Rotate the application signing key of your tenant.
+
+
+ +#### 🔌 Usage
-**request:** `Management.UpdateOrganizationDiscoveryDomainRequestContent` +
+
+ +```typescript +await client.keys.signing.rotate(); +``` +
+
+#### ⚙️ Parameters +
-**requestOptions:** `DiscoveryDomains.RequestOptions` +
+
+**requestOptions:** `SigningClient.RequestOptions` +
+
-## Organizations EnabledConnections - -
client.organizations.enabledConnections.list(id, { ...params }) -> core.Page +
client.keys.signing.get(kid) -> Management.GetSigningKeysResponseContent
@@ -19578,8 +17828,7 @@ await client.organizations.discoveryDomains.update("id", "discovery_domain_id");
-Retrieve details about a specific connection currently enabled for an Organization. Information returned includes details such as connection ID, name, strategy, and whether the connection automatically grants membership upon login. - +Retrieve details of the application signing key with the given ID.
@@ -19594,29 +17843,9 @@ Retrieve details about a specific connection currently enabled for an Organizati
```typescript -const pageableResponse = await client.organizations.enabledConnections.list("id", { - page: 1, - per_page: 1, - include_totals: true, -}); -for await (const item of pageableResponse) { - console.log(item); -} - -// Or you can manually iterate page-by-page -let page = await client.organizations.enabledConnections.list("id", { - page: 1, - per_page: 1, - include_totals: true, -}); -while (page.hasNextPage()) { - page = page.getNextPage(); -} +await client.keys.signing.get("kid"); -// You can also access the underlying response -const response = page.response; ``` -
@@ -19630,34 +17859,27 @@ const response = page.response;
-**id:** `string` — Organization identifier. - -
-
- -
-
- -**request:** `Management.ListOrganizationConnectionsRequestParameters` - +**kid:** `string` — Key id of the key to retrieve +
-**requestOptions:** `EnabledConnections.RequestOptions` - +**requestOptions:** `SigningClient.RequestOptions` +
+
-
client.organizations.enabledConnections.add(id, { ...params }) -> Management.AddOrganizationConnectionResponseContent +
client.keys.signing.revoke(kid) -> Management.RevokedSigningKeysResponseContent
@@ -19669,10 +17891,7 @@ const response = page.response;
-Enable a specific connection for a given Organization. To enable a connection, it must already exist within your tenant; connections cannot be created through this action. - -Connections represent the relationship between Auth0 and a source of users. Available types of connections include database, enterprise, and social. - +Revoke the application signing key with the given ID.
@@ -19687,11 +17906,9 @@ Enable a specific connection for a given Organization. To enable a connection, i
```typescript -await client.organizations.enabledConnections.add("id", { - connection_id: "connection_id", -}); -``` +await client.keys.signing.revoke("kid"); +```
@@ -19705,38 +17922,32 @@ await client.organizations.enabledConnections.add("id", {
-**id:** `string` — Organization identifier. - -
-
- -
-
- -**request:** `Management.AddOrganizationConnectionRequestContent` - +**kid:** `string` — Key id of the key to revoke +
-**requestOptions:** `EnabledConnections.RequestOptions` - +**requestOptions:** `SigningClient.RequestOptions` +
+
-
client.organizations.enabledConnections.get(id, connectionId) -> Management.GetOrganizationConnectionResponseContent +## Organizations ClientGrants +
client.organizations.clientGrants.list(id, { ...params }) -> core.Page
-#### 📝 Description +#### 🔌 Usage
@@ -19744,25 +17955,34 @@ await client.organizations.enabledConnections.add("id", {
-Retrieve details about a specific connection currently enabled for an Organization. Information returned includes details such as connection ID, name, strategy, and whether the connection automatically grants membership upon login. - -
-
-
-
- -#### 🔌 Usage +```typescript +const pageableResponse = await client.organizations.clientGrants.list("id", { + audience: "audience", + client_id: "client_id", + page: 1, + per_page: 1, + include_totals: true +}); +for await (const item of pageableResponse) { + console.log(item); +} -
-
+// Or you can manually iterate page-by-page +let page = await client.organizations.clientGrants.list("id", { + audience: "audience", + client_id: "client_id", + page: 1, + per_page: 1, + include_totals: true +}); +while (page.hasNextPage()) { + page = page.getNextPage(); +} -
-
+// You can also access the underlying response +const response = page.response; -```typescript -await client.organizations.enabledConnections.get("id", "connectionId"); ``` -
@@ -19777,53 +17997,37 @@ await client.organizations.enabledConnections.get("id", "connectionId");
**id:** `string` — Organization identifier. - +
-**connectionId:** `string` — Connection identifier. - +**request:** `Management.ListOrganizationClientGrantsRequestParameters` +
-**requestOptions:** `EnabledConnections.RequestOptions` - +**requestOptions:** `ClientGrantsClient.RequestOptions` +
+
-
client.organizations.enabledConnections.delete(id, connectionId) -> void -
-
- -#### 📝 Description - -
-
- +
client.organizations.clientGrants.create(id, { ...params }) -> Management.AssociateOrganizationClientGrantResponseContent
-Disable a specific connection for an Organization. Once disabled, Organization members can no longer use that connection to authenticate. - -Note: This action does not remove the connection from your tenant. - -
-
-
-
- #### 🔌 Usage
@@ -19833,9 +18037,11 @@ Disable a specific connection for an Organization. Once disabled, Organization m
```typescript -await client.organizations.enabledConnections.delete("id", "connectionId"); -``` +await client.organizations.clientGrants.create("id", { + grant_id: "grant_id" +}); +```
@@ -19850,51 +18056,37 @@ await client.organizations.enabledConnections.delete("id", "connectionId");
**id:** `string` — Organization identifier. - +
-**connectionId:** `string` — Connection identifier. - +**request:** `Management.AssociateOrganizationClientGrantRequestContent` +
-**requestOptions:** `EnabledConnections.RequestOptions` - +**requestOptions:** `ClientGrantsClient.RequestOptions` +
+
-
client.organizations.enabledConnections.update(id, connectionId, { ...params }) -> Management.UpdateOrganizationConnectionResponseContent -
-
- -#### 📝 Description - -
-
- +
client.organizations.clientGrants.delete(id, grant_id) -> void
-Modify the details of a specific connection currently enabled for an Organization. - -
-
-
-
- #### 🔌 Usage
@@ -19904,9 +18096,9 @@ Modify the details of a specific connection currently enabled for an Organizatio
```typescript -await client.organizations.enabledConnections.update("id", "connectionId"); -``` +await client.organizations.clientGrants.delete("id", "grant_id"); +```
@@ -19921,43 +18113,35 @@ await client.organizations.enabledConnections.update("id", "connectionId");
**id:** `string` — Organization identifier. - -
-
- -
-
- -**connectionId:** `string` — Connection identifier. - +
-**request:** `Management.UpdateOrganizationConnectionRequestContent` - +**grant_id:** `string` — The Client Grant ID to remove from the organization +
-**requestOptions:** `EnabledConnections.RequestOptions` - +**requestOptions:** `ClientGrantsClient.RequestOptions` +
+
-## Organizations Invitations - -
client.organizations.invitations.list(id, { ...params }) -> core.Page +## Organizations EnabledConnections +
client.organizations.enabledConnections.list(id, { ...params }) -> core.Page
@@ -19969,8 +18153,7 @@ await client.organizations.enabledConnections.update("id", "connectionId");
-Retrieve a detailed list of invitations sent to users for a specific Organization. The list includes details such as inviter and invitee information, invitation URLs, and dates of creation and expiration. To learn more about Organization invitations, review Invite Organization Members. - +Retrieve details about a specific connection currently enabled for an Organization. Information returned includes details such as connection ID, name, strategy, and whether the connection automatically grants membership upon login.
@@ -19985,26 +18168,20 @@ Retrieve a detailed list of invitations sent to users for a specific Organizatio
```typescript -const pageableResponse = await client.organizations.invitations.list("id", { +const pageableResponse = await client.organizations.enabledConnections.list("id", { page: 1, per_page: 1, - include_totals: true, - fields: "fields", - include_fields: true, - sort: "sort", + include_totals: true }); for await (const item of pageableResponse) { console.log(item); } // Or you can manually iterate page-by-page -let page = await client.organizations.invitations.list("id", { +let page = await client.organizations.enabledConnections.list("id", { page: 1, per_page: 1, - include_totals: true, - fields: "fields", - include_fields: true, - sort: "sort", + include_totals: true }); while (page.hasNextPage()) { page = page.getNextPage(); @@ -20012,8 +18189,8 @@ while (page.hasNextPage()) { // You can also access the underlying response const response = page.response; -``` +```
@@ -20028,33 +18205,34 @@ const response = page.response;
**id:** `string` — Organization identifier. - +
-**request:** `Management.ListOrganizationInvitationsRequestParameters` - +**request:** `Management.ListOrganizationConnectionsRequestParameters` +
-**requestOptions:** `Invitations.RequestOptions` - +**requestOptions:** `EnabledConnectionsClient.RequestOptions` +
+
-
client.organizations.invitations.create(id, { ...params }) -> Management.CreateOrganizationInvitationResponseContent +
client.organizations.enabledConnections.add(id, { ...params }) -> Management.AddOrganizationConnectionResponseContent
@@ -20066,8 +18244,9 @@ const response = page.response;
-Create a user invitation for a specific Organization. Upon creation, the listed user receives an email inviting them to join the Organization. To learn more about Organization invitations, review Invite Organization Members. +Enable a specific connection for a given Organization. To enable a connection, it must already exist within your tenant; connections cannot be created through this action. +Connections represent the relationship between Auth0 and a source of users. Available types of connections include database, enterprise, and social.
@@ -20082,17 +18261,11 @@ Create a user invitation for a specific Organization. Upon creation, the listed
```typescript -await client.organizations.invitations.create("id", { - inviter: { - name: "name", - }, - invitee: { - email: "email", - }, - client_id: "client_id", +await client.organizations.enabledConnections.add("id", { + connection_id: "connection_id" }); -``` +```
@@ -20107,37 +18280,38 @@ await client.organizations.invitations.create("id", {
**id:** `string` — Organization identifier. - +
-**request:** `Management.CreateOrganizationInvitationRequestContent` - +**request:** `Management.AddOrganizationConnectionRequestContent` +
-**requestOptions:** `Invitations.RequestOptions` - +**requestOptions:** `EnabledConnectionsClient.RequestOptions` +
+
-
client.organizations.invitations.get(id, invitationId, { ...params }) -> Management.GetOrganizationInvitationResponseContent +
client.organizations.enabledConnections.get(id, connectionId) -> Management.GetOrganizationConnectionResponseContent
-#### 🔌 Usage +#### 📝 Description
@@ -20145,19 +18319,13 @@ await client.organizations.invitations.create("id", {
-```typescript -await client.organizations.invitations.get("id", "invitation_id", { - fields: "fields", - include_fields: true, -}); -``` - +Retrieve details about a specific connection currently enabled for an Organization. Information returned includes details such as connection ID, name, strategy, and whether the connection automatically grants membership upon login.
-#### ⚙️ Parameters +#### 🔌 Usage
@@ -20165,45 +18333,71 @@ await client.organizations.invitations.get("id", "invitation_id", {
-**id:** `string` — Organization identifier. +```typescript +await client.organizations.enabledConnections.get("id", "connectionId"); +```
+
+
+ +#### ⚙️ Parameters
-**invitationId:** `string` — The id of the user invitation. +
+
+**id:** `string` — Organization identifier. +
-**request:** `Management.GetOrganizationInvitationRequestParameters` - +**connectionId:** `string` — Connection identifier. +
-**requestOptions:** `Invitations.RequestOptions` - +**requestOptions:** `EnabledConnectionsClient.RequestOptions` +
+
-
client.organizations.invitations.delete(id, invitationId) -> void +
client.organizations.enabledConnections.delete(id, connectionId) -> void +
+
+ +#### 📝 Description + +
+
+
+Disable a specific connection for an Organization. Once disabled, Organization members can no longer use that connection to authenticate. + +Note: This action does not remove the connection from your tenant. +
+
+
+
+ #### 🔌 Usage
@@ -20213,9 +18407,9 @@ await client.organizations.invitations.get("id", "invitation_id", {
```typescript -await client.organizations.invitations.delete("id", "invitation_id"); -``` +await client.organizations.enabledConnections.delete("id", "connectionId"); +```
@@ -20230,35 +18424,34 @@ await client.organizations.invitations.delete("id", "invitation_id");
**id:** `string` — Organization identifier. - +
-**invitationId:** `string` — The id of the user invitation. - +**connectionId:** `string` — Connection identifier. +
-**requestOptions:** `Invitations.RequestOptions` - +**requestOptions:** `EnabledConnectionsClient.RequestOptions` +
+
-## Organizations Members - -
client.organizations.members.list(id, { ...params }) -> core.Page +
client.organizations.enabledConnections.update(id, connectionId, { ...params }) -> Management.UpdateOrganizationConnectionResponseContent
@@ -20270,29 +18463,7 @@ await client.organizations.invitations.delete("id", "invitation_id");
-List organization members. -This endpoint is subject to eventual consistency. New users may not be immediately included in the response and deleted users may not be immediately removed from it. - -
    -
  • - Use the fields parameter to optionally define the specific member details retrieved. If fields is left blank, all fields (except roles) are returned. -
  • -
  • - Member roles are not sent by default. Use fields=roles to retrieve the roles assigned to each listed member. To use this parameter, you must include the read:organization_member_roles scope in the token. -
  • -
- -This endpoint supports two types of pagination: - -- Offset pagination -- Checkpoint pagination - -Checkpoint pagination must be used if you need to retrieve more than 1000 organization members. - -

Checkpoint Pagination

- -To search by checkpoint, use the following parameters: - from: Optional id from which to start selection. - take: The total amount of entries to retrieve when using the from parameter. Defaults to 50. Note: The first time you call this endpoint using Checkpoint Pagination, you should omit the from parameter. If there are more results, a next value will be included in the response. You can use this for subsequent API calls. When next is no longer included in the response, this indicates there are no more pages remaining. - +Modify the details of a specific connection currently enabled for an Organization.
@@ -20307,31 +18478,9 @@ To search by checkpoint, use the following parameters: - from: Optional id from
```typescript -const pageableResponse = await client.organizations.members.list("id", { - from: "from", - take: 1, - fields: "fields", - include_fields: true, -}); -for await (const item of pageableResponse) { - console.log(item); -} - -// Or you can manually iterate page-by-page -let page = await client.organizations.members.list("id", { - from: "from", - take: 1, - fields: "fields", - include_fields: true, -}); -while (page.hasNextPage()) { - page = page.getNextPage(); -} +await client.organizations.enabledConnections.update("id", "connectionId"); -// You can also access the underlying response -const response = page.response; ``` -
@@ -20346,33 +18495,43 @@ const response = page.response;
**id:** `string` — Organization identifier. - +
-**request:** `Management.ListOrganizationMembersRequestParameters` - +**connectionId:** `string` — Connection identifier. +
-**requestOptions:** `Members.RequestOptions` +**request:** `Management.UpdateOrganizationConnectionRequestContent` + +
+
+ +
+
+**requestOptions:** `EnabledConnectionsClient.RequestOptions` +
+
-
client.organizations.members.create(id, { ...params }) -> void +## Organizations Invitations +
client.organizations.invitations.list(id, { ...params }) -> core.Page
@@ -20384,10 +18543,7 @@ const response = page.response;
-Set one or more existing users as members of a specific Organization. - -To add a user to an Organization through this action, the user must already exist in your tenant. If a user does not yet exist, you can invite them to create an account, manually create them through the Auth0 Dashboard, or use the Management API. - +Retrieve a detailed list of invitations sent to users for a specific Organization. The list includes details such as inviter and invitee information, invitation URLs, and dates of creation and expiration. To learn more about Organization invitations, review Invite Organization Members.
@@ -20402,11 +18558,35 @@ To add a user to an Organization through this action, the user must already exis
```typescript -await client.organizations.members.create("id", { - members: ["members"], +const pageableResponse = await client.organizations.invitations.list("id", { + page: 1, + per_page: 1, + include_totals: true, + fields: "fields", + include_fields: true, + sort: "sort" }); -``` +for await (const item of pageableResponse) { + console.log(item); +} + +// Or you can manually iterate page-by-page +let page = await client.organizations.invitations.list("id", { + page: 1, + per_page: 1, + include_totals: true, + fields: "fields", + include_fields: true, + sort: "sort" +}); +while (page.hasNextPage()) { + page = page.getNextPage(); +} + +// You can also access the underlying response +const response = page.response; +```
@@ -20421,37 +18601,38 @@ await client.organizations.members.create("id", {
**id:** `string` — Organization identifier. - +
-**request:** `Management.CreateOrganizationMemberRequestContent` - +**request:** `Management.ListOrganizationInvitationsRequestParameters` +
-**requestOptions:** `Members.RequestOptions` - +**requestOptions:** `InvitationsClient.RequestOptions` +
+
-
client.organizations.members.delete(id, { ...params }) -> void +
client.organizations.invitations.create(id, { ...params }) -> Management.CreateOrganizationInvitationResponseContent
-#### 🔌 Usage +#### 📝 Description
@@ -20459,74 +18640,76 @@ await client.organizations.members.create("id", {
-```typescript -await client.organizations.members.delete("id", { - members: ["members"], -}); -``` - +Create a user invitation for a specific Organization. Upon creation, the listed user receives an email inviting them to join the Organization. To learn more about Organization invitations, review Invite Organization Members.
-#### ⚙️ Parameters - -
-
- -
-
- -**id:** `string` — Organization identifier. - -
-
+#### 🔌 Usage
-**request:** `Management.DeleteOrganizationMembersRequestContent` - -
-
-
-**requestOptions:** `Members.RequestOptions` +```typescript +await client.organizations.invitations.create("id", { + inviter: { + name: "name" + }, + invitee: { + email: "email" + }, + client_id: "client_id" +}); +```
-
-
-
- -## Organizations Members Roles +#### ⚙️ Parameters -
client.organizations.members.roles.list(id, userId, { ...params }) -> core.Page
-#### 📝 Description -
+**id:** `string` — Organization identifier. + +
+
+
-Retrieve detailed list of roles assigned to a given user within the context of a specific Organization. +**request:** `Management.CreateOrganizationInvitationRequestContent` + +
+
-Users can be members of multiple Organizations with unique roles assigned for each membership. This action only returns the roles associated with the specified Organization; any roles assigned to the user within other Organizations are not included. +
+
+**requestOptions:** `InvitationsClient.RequestOptions` + +
+
+ + +
+ +
client.organizations.invitations.get(id, invitation_id, { ...params }) -> Management.GetOrganizationInvitationResponseContent +
+
#### 🔌 Usage @@ -20537,29 +18720,12 @@ Users can be members of multiple Organizations with unique roles assigned for ea
```typescript -const pageableResponse = await client.organizations.members.roles.list("id", "user_id", { - page: 1, - per_page: 1, - include_totals: true, -}); -for await (const item of pageableResponse) { - console.log(item); -} - -// Or you can manually iterate page-by-page -let page = await client.organizations.members.roles.list("id", "user_id", { - page: 1, - per_page: 1, - include_totals: true, +await client.organizations.invitations.get("id", "invitation_id", { + fields: "fields", + include_fields: true }); -while (page.hasNextPage()) { - page = page.getNextPage(); -} -// You can also access the underlying response -const response = page.response; ``` -
@@ -20574,61 +18740,45 @@ const response = page.response;
**id:** `string` — Organization identifier. - +
-**userId:** `string` — ID of the user to associate roles with. - +**invitation_id:** `string` — The id of the user invitation. +
-**request:** `Management.ListOrganizationMemberRolesRequestParameters` - +**request:** `Management.GetOrganizationInvitationRequestParameters` +
-**requestOptions:** `Roles.RequestOptions` - +**requestOptions:** `InvitationsClient.RequestOptions` +
+
-
client.organizations.members.roles.assign(id, userId, { ...params }) -> void -
-
- -#### 📝 Description - -
-
- +
client.organizations.invitations.delete(id, invitation_id) -> void
-Assign one or more roles to a user to determine their access for a specific Organization. - -Users can be members of multiple Organizations with unique roles assigned for each membership. This action assigns roles to a user only for the specified Organization. Roles cannot be assigned to a user across multiple Organizations in the same call. - -
-
-
-
- #### 🔌 Usage
@@ -20638,11 +18788,9 @@ Users can be members of multiple Organizations with unique roles assigned for ea
```typescript -await client.organizations.members.roles.assign("id", "user_id", { - roles: ["roles"], -}); -``` +await client.organizations.invitations.delete("id", "invitation_id"); +```
@@ -20657,41 +18805,35 @@ await client.organizations.members.roles.assign("id", "user_id", {
**id:** `string` — Organization identifier. - -
-
- -
-
- -**userId:** `string` — ID of the user to associate roles with. - +
-**request:** `Management.AssignOrganizationMemberRolesRequestContent` - +**invitation_id:** `string` — The id of the user invitation. +
-**requestOptions:** `Roles.RequestOptions` - +**requestOptions:** `InvitationsClient.RequestOptions` +
+
-
client.organizations.members.roles.delete(id, userId, { ...params }) -> void +## Organizations Members +
client.organizations.members.list(id, { ...params }) -> core.Page
@@ -20703,10 +18845,28 @@ await client.organizations.members.roles.assign("id", "user_id", {
-Remove one or more Organization-specific roles from a given user. +List organization members. +This endpoint is subject to eventual consistency. New users may not be immediately included in the response and deleted users may not be immediately removed from it. -Users can be members of multiple Organizations with unique roles assigned for each membership. This action removes roles from a user in relation to the specified Organization. Roles assigned to the user within a different Organization cannot be managed in the same call. +
    +
  • + Use the fields parameter to optionally define the specific member details retrieved. If fields is left blank, all fields (except roles) are returned. +
  • +
  • + Member roles are not sent by default. Use fields=roles to retrieve the roles assigned to each listed member. To use this parameter, you must include the read:organization_member_roles scope in the token. +
  • +
+ +This endpoint supports two types of pagination: + +- Offset pagination +- Checkpoint pagination + +Checkpoint pagination must be used if you need to retrieve more than 1000 organization members. + +

Checkpoint Pagination

+To search by checkpoint, use the following parameters: - from: Optional id from which to start selection. - take: The total amount of entries to retrieve when using the from parameter. Defaults to 50. Note: The first time you call this endpoint using Checkpoint Pagination, you should omit the from parameter. If there are more results, a next value will be included in the response. You can use this for subsequent API calls. When next is no longer included in the response, this indicates there are no more pages remaining.
@@ -20721,11 +18881,31 @@ Users can be members of multiple Organizations with unique roles assigned for ea
```typescript -await client.organizations.members.roles.delete("id", "user_id", { - roles: ["roles"], +const pageableResponse = await client.organizations.members.list("id", { + from: "from", + take: 1, + fields: "fields", + include_fields: true }); -``` +for await (const item of pageableResponse) { + console.log(item); +} + +// Or you can manually iterate page-by-page +let page = await client.organizations.members.list("id", { + from: "from", + take: 1, + fields: "fields", + include_fields: true +}); +while (page.hasNextPage()) { + page = page.getNextPage(); +} + +// You can also access the underlying response +const response = page.response; +```
@@ -20740,43 +18920,34 @@ await client.organizations.members.roles.delete("id", "user_id", {
**id:** `string` — Organization identifier. - -
- - -
-
- -**userId:** `string` — User ID of the organization member to remove roles from. - +
-**request:** `Management.DeleteOrganizationMemberRolesRequestContent` - +**request:** `Management.ListOrganizationMembersRequestParameters` +
-**requestOptions:** `Roles.RequestOptions` - +**requestOptions:** `MembersClient.RequestOptions` +
+
-## Prompts Rendering - -
client.prompts.rendering.list({ ...params }) -> core.Page +
client.organizations.members.create(id, { ...params }) -> void
@@ -20788,8 +18959,9 @@ await client.organizations.members.roles.delete("id", "user_id", {
-Get render setting configurations for all screens. +Set one or more existing users as members of a specific Organization. +To add a user to an Organization through this action, the user must already exist in your tenant. If a user does not yet exist, you can invite them to create an account, manually create them through the Auth0 Dashboard, or use the Management API.
@@ -20804,39 +18976,11 @@ Get render setting configurations for all screens.
```typescript -const pageableResponse = await client.prompts.rendering.list({ - fields: "fields", - include_fields: true, - page: 1, - per_page: 1, - include_totals: true, - prompt: "prompt", - screen: "screen", - rendering_mode: "advanced", -}); -for await (const item of pageableResponse) { - console.log(item); -} - -// Or you can manually iterate page-by-page -let page = await client.prompts.rendering.list({ - fields: "fields", - include_fields: true, - page: 1, - per_page: 1, - include_totals: true, - prompt: "prompt", - screen: "screen", - rendering_mode: "advanced", +await client.organizations.members.create("id", { + members: ["members"] }); -while (page.hasNextPage()) { - page = page.getNextPage(); -} -// You can also access the underlying response -const response = page.response; ``` -
@@ -20850,30 +18994,39 @@ const response = page.response;
-**request:** `Management.ListAculsRequestParameters` - +**id:** `string` — Organization identifier. +
-**requestOptions:** `Rendering.RequestOptions` +**request:** `Management.CreateOrganizationMemberRequestContent` + +
+
+ +
+
+**requestOptions:** `MembersClient.RequestOptions` +
+
-
client.prompts.rendering.bulkUpdate({ ...params }) -> Management.BulkUpdateAculResponseContent +
client.organizations.members.delete(id, { ...params }) -> void
-#### 📝 Description +#### 🔌 Usage
@@ -20881,40 +19034,18 @@ const response = page.response;
-Learn more about configuring render settings for advanced customization. +```typescript +await client.organizations.members.delete("id", { + members: ["members"] +}); -

- Example head_tags array. See our documentation on using Liquid variables within head tags. -

-
{
-  "head_tags": [
-    {
-      "tag": "script",
-      "attributes": {
-        "defer": true,
-        "src": "URL_TO_ASSET",
-        "async": true,
-        "integrity": [
-          "ASSET_SHA"
-        ]
-      }
-    },
-    {
-      "tag": "link",
-      "attributes": {
-        "href": "URL_TO_ASSET",
-        "rel": "stylesheet"
-      }
-    }
-  ]
-}
-
+```
-#### 🔌 Usage +#### ⚙️ Parameters
@@ -20922,52 +19053,36 @@ Learn more about configuring render settings for advanced customization. +Assign one or more roles to a user to determine their access for a specific Organization. -

- Example head_tags array. See our documentation on using Liquid variables within head tags. -

-
{
-  "head_tags": [
-    {
-      "tag": "script",
-      "attributes": {
-        "defer": true,
-        "src": "URL_TO_ASSET",
-        "async": true,
-        "integrity": [
-          "ASSET_SHA"
-        ]
-      }
-    },
-    {
-      "tag": "link",
-      "attributes": {
-        "href": "URL_TO_ASSET",
-        "rel": "stylesheet"
-      }
-    }
-  ]
-}
-
+Users can be members of multiple Organizations with unique roles assigned for each membership. This action assigns roles to a user only for the specified Organization. Roles cannot be assigned to a user across multiple Organizations in the same call.
@@ -21092,12 +19212,11 @@ Learn more about configuring render settings for advanced customization. +

+ Example head_tags array. See our documentation on using Liquid variables within head tags. +

+
{
+  "head_tags": [
+    {
+      "tag": "script",
+      "attributes": {
+        "defer": true,
+        "src": "URL_TO_ASSET",
+        "async": true,
+        "integrity": [
+          "ASSET_SHA"
+        ]
+      }
+    },
+    {
+      "tag": "link",
+      "attributes": {
+        "href": "URL_TO_ASSET",
+        "rel": "stylesheet"
+      }
+    }
+  ]
+}
+
@@ -21393,11 +19568,9 @@ Set template partials for a prompt
```typescript -await client.prompts.partials.set("login", { - key: "value", -}); -``` +await client.prompts.rendering.update("login", "login"); +```
@@ -21411,36 +19584,44 @@ await client.prompts.partials.set("login", {
-**prompt:** `Management.PartialGroupsEnum` — Name of the prompt. - +**prompt:** `Management.PromptGroupNameEnum` — Name of the prompt +
-**request:** `Management.SetPartialsRequestContent` - +**screen:** `Management.ScreenGroupNameEnum` — Name of the screen +
-**requestOptions:** `Partials.RequestOptions` +**request:** `Management.UpdateAculRequestContent` + +
+
+ +
+
+**requestOptions:** `RenderingClient.RequestOptions` +
+
-## RiskAssessments Settings - -
client.riskAssessments.settings.get() -> Management.GetRiskAssessmentsSettingsResponseContent +## Prompts CustomText +
client.prompts.customText.get(prompt, language) -> Management.GetCustomTextsByLanguageResponseContent
@@ -21452,8 +19633,7 @@ await client.prompts.partials.set("login", {
-Gets the tenant settings for risk assessments - +Retrieve custom text for a specific prompt and language.
@@ -21468,9 +19648,9 @@ Gets the tenant settings for risk assessments
```typescript -await client.riskAssessments.settings.get(); -``` +await client.prompts.customText.get("login", "am"); +```
@@ -21484,18 +19664,35 @@ await client.riskAssessments.settings.get();
-**requestOptions:** `Settings.RequestOptions` +**prompt:** `Management.PromptGroupNameEnum` — Name of the prompt. + +
+
+ +
+
+ +**language:** `Management.PromptLanguageEnum` — Language to update. + +
+
+ +
+
+**requestOptions:** `CustomTextClient.RequestOptions` +
+
-
client.riskAssessments.settings.update({ ...params }) -> Management.UpdateRiskAssessmentsSettingsResponseContent +
client.prompts.customText.set(prompt, language, { ...params }) -> void
@@ -21507,8 +19704,7 @@ await client.riskAssessments.settings.get();
-Updates the tenant settings for risk assessments - +Set custom text for a specific prompt. Existing texts will be overwritten.
@@ -21523,11 +19719,11 @@ Updates the tenant settings for risk assessments
```typescript -await client.riskAssessments.settings.update({ - enabled: true, +await client.prompts.customText.set("login", "am", { + "key": "value" }); -``` +```
@@ -21541,28 +19737,44 @@ await client.riskAssessments.settings.update({
-**request:** `Management.UpdateRiskAssessmentsSettingsRequestContent` +**prompt:** `Management.PromptGroupNameEnum` — Name of the prompt. + +
+
+ +
+
+**language:** `Management.PromptLanguageEnum` — Language to update. +
-**requestOptions:** `Settings.RequestOptions` +**request:** `Management.SetsCustomTextsByLanguageRequestContent` + +
+
+ +
+
+**requestOptions:** `CustomTextClient.RequestOptions` +
+
-## RiskAssessments Settings NewDevice - -
client.riskAssessments.settings.newDevice.get() -> Management.GetRiskAssessmentsSettingsNewDeviceResponseContent +## Prompts Partials +
client.prompts.partials.get(prompt) -> Management.GetPartialsResponseContent
@@ -21574,8 +19786,7 @@ await client.riskAssessments.settings.update({
-Gets the risk assessment settings for the new device assessor - +Get template partials for a prompt
@@ -21590,9 +19801,9 @@ Gets the risk assessment settings for the new device assessor
```typescript -await client.riskAssessments.settings.newDevice.get(); -``` +await client.prompts.partials.get("login"); +```
@@ -21606,18 +19817,27 @@ await client.riskAssessments.settings.newDevice.get();
-**requestOptions:** `NewDevice.RequestOptions` +**prompt:** `Management.PartialGroupsEnum` — Name of the prompt. + +
+
+ +
+
+**requestOptions:** `PartialsClient.RequestOptions` +
+
-
client.riskAssessments.settings.newDevice.update({ ...params }) -> Management.UpdateRiskAssessmentsSettingsNewDeviceResponseContent +
client.prompts.partials.set(prompt, { ...params }) -> void
@@ -21629,8 +19849,7 @@ await client.riskAssessments.settings.newDevice.get();
-Updates the risk assessment settings for the new device assessor - +Set template partials for a prompt
@@ -21645,11 +19864,11 @@ Updates the risk assessment settings for the new device assessor
```typescript -await client.riskAssessments.settings.newDevice.update({ - remember_for: 1, +await client.prompts.partials.set("login", { + "key": "value" }); -``` +```
@@ -21663,27 +19882,35 @@ await client.riskAssessments.settings.newDevice.update({
-**request:** `Management.UpdateRiskAssessmentsSettingsNewDeviceRequestContent` - +**prompt:** `Management.PartialGroupsEnum` — Name of the prompt. +
-**requestOptions:** `NewDevice.RequestOptions` +**request:** `Management.SetPartialsRequestContent` + +
+
+ +
+
+**requestOptions:** `PartialsClient.RequestOptions` +
+
## Roles Permissions -
client.roles.permissions.list(id, { ...params }) -> core.Page
@@ -21697,7 +19924,6 @@ await client.riskAssessments.settings.newDevice.update({
Retrieve detailed list (name, description, resource server) of permissions granted by a specified user role. -
@@ -21715,7 +19941,7 @@ Retrieve detailed list (name, description, resource server) of permissions grant const pageableResponse = await client.roles.permissions.list("id", { per_page: 1, page: 1, - include_totals: true, + include_totals: true }); for await (const item of pageableResponse) { console.log(item); @@ -21725,7 +19951,7 @@ for await (const item of pageableResponse) { let page = await client.roles.permissions.list("id", { per_page: 1, page: 1, - include_totals: true, + include_totals: true }); while (page.hasNextPage()) { page = page.getNextPage(); @@ -21733,8 +19959,8 @@ while (page.hasNextPage()) { // You can also access the underlying response const response = page.response; -``` +``` @@ -21749,28 +19975,29 @@ const response = page.response;
**id:** `string` — ID of the role to list granted permissions. - +
-**request:** `Management.ListRolePermissionsRequestParameters` - +**request:** `Management.ListRolePermissionsRequestParameters` +
-**requestOptions:** `Permissions.RequestOptions` - +**requestOptions:** `PermissionsClient.RequestOptions` +
+
@@ -21788,7 +20015,6 @@ const response = page.response;
Add one or more permissions to a specified user role. -
@@ -21804,15 +20030,13 @@ Add one or more @@ -21827,28 +20051,29 @@ await client.roles.permissions.add("id", {
**id:** `string` — ID of the role to add permissions to. - +
-**request:** `Management.AddRolePermissionsRequestContent` - +**request:** `Management.AddRolePermissionsRequestContent` +
-**requestOptions:** `Permissions.RequestOptions` - +**requestOptions:** `PermissionsClient.RequestOptions` +
+
@@ -21866,7 +20091,6 @@ await client.roles.permissions.add("id", {
Remove one or more permissions from a specified user role. -
@@ -21882,15 +20106,13 @@ Remove one or more @@ -21905,34 +20127,34 @@ await client.roles.permissions.delete("id", {
**id:** `string` — ID of the role to remove permissions from. - +
-**request:** `Management.DeleteRolePermissionsRequestContent` - +**request:** `Management.DeleteRolePermissionsRequestContent` +
-**requestOptions:** `Permissions.RequestOptions` - +**requestOptions:** `PermissionsClient.RequestOptions` +
+
## Roles Users -
client.roles.users.list(id, { ...params }) -> core.Page
@@ -21948,7 +20170,6 @@ await client.roles.permissions.delete("id", { Retrieve list of users associated with a specific role. For Dashboard instructions, review View Users Assigned to Roles. This endpoint supports two types of pagination: -
  • Offset pagination
  • Checkpoint pagination
  • @@ -21959,14 +20180,12 @@ Checkpoint pagination must be used if you need to retrieve more than 1000 organi

    Checkpoint Pagination

    To search by checkpoint, use the following parameters: -
    • from: Optional id from which to start selection.
    • take: The total amount of entries to retrieve when using the from parameter. Defaults to 50.
    Note: The first time you call this endpoint using checkpoint pagination, omit the from parameter. If there are more results, a next value is included in the response. You can use this for subsequent API calls. When next is no longer included in the response, no pages are remaining. -
@@ -21983,7 +20202,7 @@ To search by checkpoint, use the following parameters: ```typescript const pageableResponse = await client.roles.users.list("id", { from: "from", - take: 1, + take: 1 }); for await (const item of pageableResponse) { console.log(item); @@ -21992,7 +20211,7 @@ for await (const item of pageableResponse) { // Or you can manually iterate page-by-page let page = await client.roles.users.list("id", { from: "from", - take: 1, + take: 1 }); while (page.hasNextPage()) { page = page.getNextPage(); @@ -22000,8 +20219,8 @@ while (page.hasNextPage()) { // You can also access the underlying response const response = page.response; -``` +``` @@ -22016,28 +20235,29 @@ const response = page.response;
**id:** `string` — ID of the role to retrieve a list of users associated with. - +
-**request:** `Management.ListRoleUsersRequestParameters` - +**request:** `Management.ListRoleUsersRequestParameters` +
-**requestOptions:** `Users.RequestOptions` - +**requestOptions:** `UsersClient.RequestOptions` +
+
@@ -22057,7 +20277,6 @@ const response = page.response; Assign one or more users to an existing user role. To learn more, review Role-Based Access Control. Note: New roles cannot be created through this action. - @@ -22073,10 +20292,10 @@ Assign one or more users to an existing user role. To learn more, review @@ -22091,34 +20310,34 @@ await client.roles.users.assign("id", {
**id:** `string` — ID of the role to assign users to. - +
-**request:** `Management.AssignRoleUsersRequestContent` - +**request:** `Management.AssignRoleUsersRequestContent` +
-**requestOptions:** `Users.RequestOptions` - +**requestOptions:** `UsersClient.RequestOptions` +
+
## SelfServiceProfiles CustomText -
client.selfServiceProfiles.customText.list(id, language, page) -> Management.ListSelfServiceProfileCustomTextResponseContent
@@ -22132,7 +20351,6 @@ await client.roles.users.assign("id", {
Retrieves text customizations for a given self-service profile, language and Self Service SSO Flow page. -
@@ -22148,8 +20366,8 @@ Retrieves text customizations for a given self-service profile, language and Sel ```typescript await client.selfServiceProfiles.customText.list("id", "en", "get-started"); -``` +``` @@ -22164,7 +20382,7 @@ await client.selfServiceProfiles.customText.list("id", "en", "get-started");
**id:** `string` — The id of the self-service profile. - +
@@ -22172,7 +20390,7 @@ await client.selfServiceProfiles.customText.list("id", "en", "get-started");
**language:** `Management.SelfServiceProfileCustomTextLanguageEnum` — The language of the custom text. - +
@@ -22180,20 +20398,21 @@ await client.selfServiceProfiles.customText.list("id", "en", "get-started");
**page:** `Management.SelfServiceProfileCustomTextPageEnum` — The page where the custom text is shown. - +
-**requestOptions:** `CustomText.RequestOptions` - +**requestOptions:** `CustomTextClient.RequestOptions` +
+
@@ -22211,7 +20430,6 @@ await client.selfServiceProfiles.customText.list("id", "en", "get-started");
Updates text customizations for a given self-service profile, language and Self Service SSO Flow page. -
@@ -22227,10 +20445,10 @@ Updates text customizations for a given self-service profile, language and Self ```typescript await client.selfServiceProfiles.customText.set("id", "en", "get-started", { - key: "value", + "key": "value" }); -``` +``` @@ -22245,7 +20463,7 @@ await client.selfServiceProfiles.customText.set("id", "en", "get-started", {
**id:** `string` — The id of the self-service profile. - +
@@ -22253,7 +20471,7 @@ await client.selfServiceProfiles.customText.set("id", "en", "get-started", {
**language:** `Management.SelfServiceProfileCustomTextLanguageEnum` — The language of the custom text. - +
@@ -22261,34 +20479,34 @@ await client.selfServiceProfiles.customText.set("id", "en", "get-started", {
**page:** `Management.SelfServiceProfileCustomTextPageEnum` — The page where the custom text is shown. - +
-**request:** `Management.SetSelfServiceProfileCustomTextRequestContent` - +**request:** `Management.SetSelfServiceProfileCustomTextRequestContent` +
-**requestOptions:** `CustomText.RequestOptions` - +**requestOptions:** `CustomTextClient.RequestOptions` +
+
## SelfServiceProfiles SsoTicket -
client.selfServiceProfiles.ssoTicket.create(id, { ...params }) -> Management.CreateSelfServiceProfileSsoTicketResponseContent
@@ -22302,7 +20520,6 @@ await client.selfServiceProfiles.customText.set("id", "en", "get-started", {
Creates an SSO access ticket to initiate the Self Service SSO Flow using a self-service profile. -
@@ -22318,8 +20535,8 @@ Creates an SSO access ticket to initiate the Self Service SSO Flow using a self- ```typescript await client.selfServiceProfiles.ssoTicket.create("id"); -``` +``` @@ -22334,28 +20551,29 @@ await client.selfServiceProfiles.ssoTicket.create("id");
**id:** `string` — The id of the self-service profile to retrieve - +
-**request:** `Management.CreateSelfServiceProfileSsoTicketRequestContent` - +**request:** `Management.CreateSelfServiceProfileSsoTicketRequestContent` +
-**requestOptions:** `SsoTicket.RequestOptions` - +**requestOptions:** `SsoTicketClient.RequestOptions` +
+
@@ -22374,7 +20592,6 @@ await client.selfServiceProfiles.ssoTicket.create("id"); Revokes an SSO access ticket and invalidates associated sessions. The ticket will no longer be accepted to initiate a Self-Service SSO session. If any users have already started a session through this ticket, their session will be terminated. Clients should expect a `202 Accepted` response upon successful processing, indicating that the request has been acknowledged and that the revocation is underway but may not be fully completed at the time of response. If the specified ticket does not exist, a `202 Accepted` response is also returned, signaling that no further action is required. Clients should treat these `202` responses as an acknowledgment that the request has been accepted and is in progress, even if the ticket was not found. - @@ -22390,8 +20607,8 @@ Clients should treat these `202` responses as an acknowledgment that the request ```typescript await client.selfServiceProfiles.ssoTicket.revoke("profileId", "id"); -``` +``` @@ -22406,7 +20623,7 @@ await client.selfServiceProfiles.ssoTicket.revoke("profileId", "id");
**profileId:** `string` — The id of the self-service profile - +
@@ -22414,26 +20631,26 @@ await client.selfServiceProfiles.ssoTicket.revoke("profileId", "id");
**id:** `string` — The id of the ticket to revoke - +
-**requestOptions:** `SsoTicket.RequestOptions` - +**requestOptions:** `SsoTicketClient.RequestOptions` +
+
## Tenants Settings -
client.tenants.settings.get({ ...params }) -> Management.GetTenantSettingsResponseContent
@@ -22447,7 +20664,6 @@ await client.selfServiceProfiles.ssoTicket.revoke("profileId", "id");
Retrieve tenant settings. A list of fields to include or exclude may also be specified. -
@@ -22464,10 +20680,10 @@ Retrieve tenant settings. A list of fields to include or exclude may also be spe ```typescript await client.tenants.settings.get({ fields: "fields", - include_fields: true, + include_fields: true }); -``` +``` @@ -22481,21 +20697,22 @@ await client.tenants.settings.get({
-**request:** `Management.GetTenantSettingsRequestParameters` - +**request:** `Management.GetTenantSettingsRequestParameters` +
-**requestOptions:** `Settings.RequestOptions` - +**requestOptions:** `SettingsClient.RequestOptions` +
+
@@ -22513,7 +20730,6 @@ await client.tenants.settings.get({
Update settings for a tenant. -
@@ -22529,8 +20745,8 @@ Update settings for a tenant. ```typescript await client.tenants.settings.update(); -``` +``` @@ -22544,27 +20760,27 @@ await client.tenants.settings.update();
-**request:** `Management.UpdateTenantSettingsRequestContent` - +**request:** `Management.UpdateTenantSettingsRequestContent` +
-**requestOptions:** `Settings.RequestOptions` - +**requestOptions:** `SettingsClient.RequestOptions` +
+
## Users AuthenticationMethods -
client.users.authenticationMethods.list(id, { ...params }) -> core.Page
@@ -22578,7 +20794,6 @@ await client.tenants.settings.update();
Retrieve detailed list of authentication methods associated with a specified user. -
@@ -22596,7 +20811,7 @@ Retrieve detailed list of authentication methods associated with a specified use const pageableResponse = await client.users.authenticationMethods.list("id", { page: 1, per_page: 1, - include_totals: true, + include_totals: true }); for await (const item of pageableResponse) { console.log(item); @@ -22606,7 +20821,7 @@ for await (const item of pageableResponse) { let page = await client.users.authenticationMethods.list("id", { page: 1, per_page: 1, - include_totals: true, + include_totals: true }); while (page.hasNextPage()) { page = page.getNextPage(); @@ -22614,8 +20829,8 @@ while (page.hasNextPage()) { // You can also access the underlying response const response = page.response; -``` +``` @@ -22630,28 +20845,29 @@ const response = page.response;
**id:** `string` — The ID of the user in question. - +
-**request:** `Management.ListUserAuthenticationMethodsRequestParameters` - +**request:** `Management.ListUserAuthenticationMethodsRequestParameters` +
-**requestOptions:** `AuthenticationMethods.RequestOptions` - +**requestOptions:** `AuthenticationMethodsClient.RequestOptions` +
+
@@ -22669,7 +20885,6 @@ const response = page.response;
Create an authentication method. Authentication methods created via this endpoint will be auto confirmed and should already have verification completed. -
@@ -22685,10 +20900,10 @@ Create an authentication method. Authentication methods created via this endpoin ```typescript await client.users.authenticationMethods.create("id", { - type: "phone", + type: "phone" }); -``` +``` @@ -22703,28 +20918,29 @@ await client.users.authenticationMethods.create("id", {
**id:** `string` — The ID of the user to whom the new authentication method will be assigned. - +
-**request:** `Management.CreateUserAuthenticationMethodRequestContent` - +**request:** `Management.CreateUserAuthenticationMethodRequestContent` +
-**requestOptions:** `AuthenticationMethods.RequestOptions` - +**requestOptions:** `AuthenticationMethodsClient.RequestOptions` +
+
@@ -22744,7 +20960,6 @@ await client.users.authenticationMethods.create("id", { Replace the specified user authentication methods with supplied values. Note: Authentication methods supplied through this action do not iterate on existing methods. Instead, any methods passed will overwrite the user’s existing settings. - @@ -22759,13 +20974,11 @@ Replace the specified user @@ -22780,28 +20993,29 @@ await client.users.authenticationMethods.set("id", [
**id:** `string` — The ID of the user in question. - +
-**request:** `Management.SetUserAuthenticationMethodsRequestContent` - +**request:** `Management.SetUserAuthenticationMethodsRequestContent` +
-**requestOptions:** `AuthenticationMethods.RequestOptions` - +**requestOptions:** `AuthenticationMethodsClient.RequestOptions` +
+
@@ -22818,8 +21032,7 @@ await client.users.authenticationMethods.set("id", [
-Remove all authentication methods (i.e., enrolled MFA factors) from the specified user account. This action cannot be undone. - +Remove all authentication methods (i.e., enrolled MFA factors) from the specified user account. This action cannot be undone.
@@ -22835,8 +21048,8 @@ Remove all authentication methods (i.e., enrolled MFA factors) from the specifie ```typescript await client.users.authenticationMethods.deleteAll("id"); -``` +``` @@ -22851,25 +21064,26 @@ await client.users.authenticationMethods.deleteAll("id");
**id:** `string` — The ID of the user in question. - +
-**requestOptions:** `AuthenticationMethods.RequestOptions` - +**requestOptions:** `AuthenticationMethodsClient.RequestOptions` +
+
-
client.users.authenticationMethods.get(id, authenticationMethodId) -> Management.GetUserAuthenticationMethodResponseContent +
client.users.authenticationMethods.get(id, authentication_method_id) -> Management.GetUserAuthenticationMethodResponseContent
@@ -22883,8 +21097,8 @@ await client.users.authenticationMethods.deleteAll("id"); ```typescript await client.users.authenticationMethods.get("id", "authentication_method_id"); -``` +```
@@ -22899,33 +21113,34 @@ await client.users.authenticationMethods.get("id", "authentication_method_id");
**id:** `string` — The ID of the user in question. - +
-**authenticationMethodId:** `string` — The ID of the authentication methods in question. - +**authentication_method_id:** `string` — The ID of the authentication methods in question. +
-**requestOptions:** `AuthenticationMethods.RequestOptions` - +**requestOptions:** `AuthenticationMethodsClient.RequestOptions` +
+
-
client.users.authenticationMethods.delete(id, authenticationMethodId) -> void +
client.users.authenticationMethods.delete(id, authentication_method_id) -> void
@@ -22938,7 +21153,6 @@ await client.users.authenticationMethods.get("id", "authentication_method_id");
Remove the authentication method with the given ID from the specified user. For more information, review Manage Authentication Methods with Management API. -
@@ -22954,8 +21168,8 @@ Remove the authentication method with the given ID from the specified user. For ```typescript await client.users.authenticationMethods.delete("id", "authentication_method_id"); -``` +``` @@ -22970,33 +21184,34 @@ await client.users.authenticationMethods.delete("id", "authentication_method_id"
**id:** `string` — The ID of the user in question. - +
-**authenticationMethodId:** `string` — The ID of the authentication method to delete. - +**authentication_method_id:** `string` — The ID of the authentication method to delete. +
-**requestOptions:** `AuthenticationMethods.RequestOptions` - +**requestOptions:** `AuthenticationMethodsClient.RequestOptions` +
+
-
client.users.authenticationMethods.update(id, authenticationMethodId, { ...params }) -> Management.UpdateUserAuthenticationMethodResponseContent +
client.users.authenticationMethods.update(id, authentication_method_id, { ...params }) -> Management.UpdateUserAuthenticationMethodResponseContent
@@ -23009,7 +21224,6 @@ await client.users.authenticationMethods.delete("id", "authentication_method_id"
Modify the authentication method with the given ID from the specified user. For more information, review Manage Authentication Methods with Management API. -
@@ -23025,8 +21239,8 @@ Modify the authentication method with the given ID from the specified user. For ```typescript await client.users.authenticationMethods.update("id", "authentication_method_id"); -``` +``` @@ -23041,42 +21255,42 @@ await client.users.authenticationMethods.update("id", "authentication_method_id"
**id:** `string` — The ID of the user in question. - +
-**authenticationMethodId:** `string` — The ID of the authentication method to update. - +**authentication_method_id:** `string` — The ID of the authentication method to update. +
-**request:** `Management.UpdateUserAuthenticationMethodRequestContent` - +**request:** `Management.UpdateUserAuthenticationMethodRequestContent` +
-**requestOptions:** `AuthenticationMethods.RequestOptions` - +**requestOptions:** `AuthenticationMethodsClient.RequestOptions` +
+
## Users Authenticators -
client.users.authenticators.deleteAll(id) -> void
@@ -23090,7 +21304,6 @@ await client.users.authenticationMethods.update("id", "authentication_method_id"
Remove all authenticators registered to a given user ID, such as OTP, email, phone, and push-notification. This action cannot be undone. For more information, review Manage Authentication Methods with Management API. -
@@ -23106,91 +21319,8 @@ Remove all authenticators registered to a given user ID, such as OTP, email, pho ```typescript await client.users.authenticators.deleteAll("id"); -``` - - - - - - -#### ⚙️ Parameters - -
-
- -
-
- -**id:** `string` — ID of the user to delete. - -
-
- -
-
- -**requestOptions:** `Authenticators.RequestOptions` - -
-
-
-
- - - -
- -## Users ConnectedAccounts - -
client.users.connectedAccounts.list(id, { ...params }) -> core.Page -
-
- -#### 📝 Description - -
-
- -
-
- -Retrieve all connected accounts associated with the user. - -
-
-
-
- -#### 🔌 Usage -
-
- -
-
- -```typescript -const pageableResponse = await client.users.connectedAccounts.list("id", { - from: "from", - take: 1, -}); -for await (const item of pageableResponse) { - console.log(item); -} - -// Or you can manually iterate page-by-page -let page = await client.users.connectedAccounts.list("id", { - from: "from", - take: 1, -}); -while (page.hasNextPage()) { - page = page.getNextPage(); -} - -// You can also access the underlying response -const response = page.response; ``` -
@@ -23204,35 +21334,27 @@ const response = page.response;
-**id:** `string` — ID of the user to list connected accounts for. - -
-
- -
-
- -**request:** `Management.GetUserConnectedAccountsRequestParameters` - +**id:** `string` — ID of the user to delete. +
-**requestOptions:** `ConnectedAccounts.RequestOptions` - +**requestOptions:** `AuthenticatorsClient.RequestOptions` +
+
## Users Enrollments -
client.users.enrollments.get(id) -> Management.UsersEnrollment[]
@@ -23246,7 +21368,6 @@ const response = page.response;
Retrieve the first multi-factor authentication enrollment that a specific user has confirmed. -
@@ -23262,8 +21383,8 @@ Retrieve the first @@ -23278,26 +21399,26 @@ await client.users.enrollments.get("id");
**id:** `string` — ID of the user to list enrollments for. - +
-**requestOptions:** `Enrollments.RequestOptions` - +**requestOptions:** `EnrollmentsClient.RequestOptions` +
+
## Users FederatedConnectionsTokensets -
client.users.federatedConnectionsTokensets.list(id) -> Management.FederatedConnectionTokenSet[]
@@ -23311,7 +21432,6 @@ await client.users.enrollments.get("id");
List active federated connections tokensets for a provided user -
@@ -23327,8 +21447,8 @@ List active federated connections tokensets for a provided user ```typescript await client.users.federatedConnectionsTokensets.list("id"); -``` +``` @@ -23343,25 +21463,26 @@ await client.users.federatedConnectionsTokensets.list("id");
**id:** `string` — User identifier - +
-**requestOptions:** `FederatedConnectionsTokensets.RequestOptions` - +**requestOptions:** `FederatedConnectionsTokensetsClient.RequestOptions` +
+
-
client.users.federatedConnectionsTokensets.delete(id, tokensetId) -> void +
client.users.federatedConnectionsTokensets.delete(id, tokenset_id) -> void
@@ -23375,8 +21496,8 @@ await client.users.federatedConnectionsTokensets.list("id"); ```typescript await client.users.federatedConnectionsTokensets.delete("id", "tokenset_id"); -``` +```
@@ -23391,34 +21512,34 @@ await client.users.federatedConnectionsTokensets.delete("id", "tokenset_id");
**id:** `string` — Id of the user that owns the tokenset - +
-**tokensetId:** `string` — The tokenset id - +**tokenset_id:** `string` — The tokenset id +
-**requestOptions:** `FederatedConnectionsTokensets.RequestOptions` - +**requestOptions:** `FederatedConnectionsTokensetsClient.RequestOptions` +
+
## Users Identities -
client.users.identities.link(id, { ...params }) -> Management.UserIdentity[]
@@ -23474,8 +21595,8 @@ Note: There are two ways of invoking the endpoint: ```typescript await client.users.identities.link("id"); -``` +```
@@ -23490,33 +21611,34 @@ await client.users.identities.link("id");
**id:** `string` — ID of the primary user account to link a second user account to. - +
-**request:** `Management.LinkUserIdentityRequestContent` - +**request:** `Management.LinkUserIdentityRequestContent` +
-**requestOptions:** `Identities.RequestOptions` - +**requestOptions:** `IdentitiesClient.RequestOptions` +
+
-
client.users.identities.delete(id, provider, userId) -> Management.DeleteUserIdentityResponseContent +
client.users.identities.delete(id, provider, user_id) -> Management.DeleteUserIdentityResponseContent
@@ -23528,10 +21650,9 @@ await client.users.identities.link("id");
-Unlink a specific secondary account from a target user. This action requires the ID of both the target user and the secondary account. +Unlink a specific secondary account from a target user. This action requires the ID of both the target user and the secondary account. Unlinking the secondary account removes it from the identities array of the target user and creates a new standalone profile for the secondary account. To learn more, review Unlink User Accounts. -
@@ -23547,8 +21668,8 @@ Unlinking the secondary account removes it from the identities array of the targ ```typescript await client.users.identities.delete("id", "ad", "user_id"); -``` +```
@@ -23563,7 +21684,7 @@ await client.users.identities.delete("id", "ad", "user_id");
**id:** `string` — ID of the primary user account. - +
@@ -23571,34 +21692,34 @@ await client.users.identities.delete("id", "ad", "user_id");
**provider:** `Management.UserIdentityProviderEnum` — Identity provider name of the secondary linked account (e.g. `google-oauth2`). - +
-**userId:** `string` — ID of the secondary linked account (e.g. `123456789081523216417` part after the `|` in `google-oauth2|123456789081523216417`). - +**user_id:** `string` — ID of the secondary linked account (e.g. `123456789081523216417` part after the `|` in `google-oauth2|123456789081523216417`). +
-**requestOptions:** `Identities.RequestOptions` - +**requestOptions:** `IdentitiesClient.RequestOptions` +
+
## Users Logs -
client.users.logs.list(id, { ...params }) -> core.Page
@@ -23618,7 +21739,6 @@ Note: For more information on all possible event types, their respective acronym For more information on the list of fields that can be used in `sort`, see Searchable Fields. Auth0 limits the number of logs you can return by search criteria to 100 logs per request. Furthermore, you may only paginate through up to 1,000 search results. If you exceed this threshold, please redefine your search. -
@@ -23637,7 +21757,7 @@ const pageableResponse = await client.users.logs.list("id", { page: 1, per_page: 1, sort: "sort", - include_totals: true, + include_totals: true }); for await (const item of pageableResponse) { console.log(item); @@ -23648,7 +21768,7 @@ let page = await client.users.logs.list("id", { page: 1, per_page: 1, sort: "sort", - include_totals: true, + include_totals: true }); while (page.hasNextPage()) { page = page.getNextPage(); @@ -23656,8 +21776,8 @@ while (page.hasNextPage()) { // You can also access the underlying response const response = page.response; -``` +``` @@ -23672,34 +21792,34 @@ const response = page.response;
**id:** `string` — ID of the user of the logs to retrieve - +
-**request:** `Management.ListUserLogsRequestParameters` - +**request:** `Management.ListUserLogsRequestParameters` +
-**requestOptions:** `Logs.RequestOptions` - +**requestOptions:** `LogsClient.RequestOptions` +
+
## Users Multifactor -
client.users.multifactor.invalidateRememberBrowser(id) -> void
@@ -23713,7 +21833,6 @@ const response = page.response;
Invalidate all remembered browsers across all authentication factors for a user. -
@@ -23729,8 +21848,8 @@ Invalidate all remembered browsers across all @@ -23745,20 +21864,21 @@ await client.users.multifactor.invalidateRememberBrowser("id");
**id:** `string` — ID of the user to invalidate all remembered browsers and authentication factors for. - +
-**requestOptions:** `Multifactor.RequestOptions` - +**requestOptions:** `MultifactorClient.RequestOptions` +
+
@@ -23776,7 +21896,6 @@ await client.users.multifactor.invalidateRememberBrowser("id");
Remove a multifactor authentication configuration from a user's account. This forces the user to manually reconfigure the multi-factor provider. -
@@ -23792,8 +21911,8 @@ Remove a multifactor ```typescript await client.users.multifactor.deleteProvider("id", "duo"); -``` +``` @@ -23808,7 +21927,7 @@ await client.users.multifactor.deleteProvider("id", "duo");
**id:** `string` — ID of the user to remove a multifactor configuration from. - +
@@ -23816,26 +21935,26 @@ await client.users.multifactor.deleteProvider("id", "duo");
**provider:** `Management.UserMultifactorProviderEnum` — The multi-factor provider. Supported values 'duo' or 'google-authenticator' - +
-**requestOptions:** `Multifactor.RequestOptions` - +**requestOptions:** `MultifactorClient.RequestOptions` +
+
## Users Organizations -
client.users.organizations.list(id, { ...params }) -> core.Page
@@ -23849,7 +21968,6 @@ await client.users.multifactor.deleteProvider("id", "duo");
Retrieve list of the specified user's current Organization memberships. User must be specified by user ID. For more information, review Auth0 Organizations. -
@@ -23867,7 +21985,7 @@ Retrieve list of the specified user's current Organization memberships. User mus const pageableResponse = await client.users.organizations.list("id", { page: 1, per_page: 1, - include_totals: true, + include_totals: true }); for await (const item of pageableResponse) { console.log(item); @@ -23877,7 +21995,7 @@ for await (const item of pageableResponse) { let page = await client.users.organizations.list("id", { page: 1, per_page: 1, - include_totals: true, + include_totals: true }); while (page.hasNextPage()) { page = page.getNextPage(); @@ -23885,8 +22003,8 @@ while (page.hasNextPage()) { // You can also access the underlying response const response = page.response; -``` +``` @@ -23901,34 +22019,34 @@ const response = page.response;
**id:** `string` — ID of the user to retrieve the organizations for. - +
-**request:** `Management.ListUserOrganizationsRequestParameters` - +**request:** `Management.ListUserOrganizationsRequestParameters` +
-**requestOptions:** `Organizations.RequestOptions` - +**requestOptions:** `OrganizationsClient.RequestOptions` +
+
## Users Permissions -
client.users.permissions.list(id, { ...params }) -> core.Page
@@ -23942,7 +22060,6 @@ const response = page.response;
Retrieve all permissions associated with the user. -
@@ -23960,7 +22077,7 @@ Retrieve all permissions associated with the user. const pageableResponse = await client.users.permissions.list("id", { per_page: 1, page: 1, - include_totals: true, + include_totals: true }); for await (const item of pageableResponse) { console.log(item); @@ -23970,7 +22087,7 @@ for await (const item of pageableResponse) { let page = await client.users.permissions.list("id", { per_page: 1, page: 1, - include_totals: true, + include_totals: true }); while (page.hasNextPage()) { page = page.getNextPage(); @@ -23978,8 +22095,8 @@ while (page.hasNextPage()) { // You can also access the underlying response const response = page.response; -``` +``` @@ -23994,28 +22111,29 @@ const response = page.response;
**id:** `string` — ID of the user to retrieve the permissions for. - +
-**request:** `Management.ListUserPermissionsRequestParameters` - +**request:** `Management.ListUserPermissionsRequestParameters` +
-**requestOptions:** `Permissions.RequestOptions` - +**requestOptions:** `PermissionsClient.RequestOptions` +
+
@@ -24033,7 +22151,6 @@ const response = page.response;
Assign permissions to a user. -
@@ -24049,15 +22166,13 @@ Assign permissions to a user. ```typescript await client.users.permissions.create("id", { - permissions: [ - { + permissions: [{ resource_server_identifier: "resource_server_identifier", - permission_name: "permission_name", - }, - ], + permission_name: "permission_name" + }] }); -``` +``` @@ -24072,28 +22187,29 @@ await client.users.permissions.create("id", {
**id:** `string` — ID of the user to assign permissions to. - +
-**request:** `Management.CreateUserPermissionsRequestContent` - +**request:** `Management.CreateUserPermissionsRequestContent` +
-**requestOptions:** `Permissions.RequestOptions` - +**requestOptions:** `PermissionsClient.RequestOptions` +
+
@@ -24111,7 +22227,6 @@ await client.users.permissions.create("id", {
Remove permissions from a user. -
@@ -24127,15 +22242,13 @@ Remove permissions from a user. ```typescript await client.users.permissions.delete("id", { - permissions: [ - { + permissions: [{ resource_server_identifier: "resource_server_identifier", - permission_name: "permission_name", - }, - ], + permission_name: "permission_name" + }] }); -``` +``` @@ -24150,110 +22263,34 @@ await client.users.permissions.delete("id", {
**id:** `string` — ID of the user to remove permissions from. - -
- - -
-
- -**request:** `Management.DeleteUserPermissionsRequestContent` - -
-
- -
-
- -**requestOptions:** `Permissions.RequestOptions` - -
-
- - - - - -
- -## Users RiskAssessments - -
client.users.riskAssessments.clear(id, { ...params }) -> void -
-
- -#### 📝 Description - -
-
- -
-
- -Clear risk assessment assessors for a specific user - +
-
-
- -#### 🔌 Usage
-
-
- -```typescript -await client.users.riskAssessments.clear("id", { - connection: "connection", - assessors: ["new-device"], -}); -``` - +**request:** `Management.DeleteUserPermissionsRequestContent` +
-
-
- -#### ⚙️ Parameters
-
-
- -**id:** `string` — ID of the user to clear assessors for. - +**requestOptions:** `PermissionsClient.RequestOptions` +
- -
-
- -**request:** `Management.ClearAssessorsRequestContent` -
-
-
- -**requestOptions:** `RiskAssessments.RequestOptions` - -
-
-
-
## Users Roles -
client.users.roles.list(id, { ...params }) -> core.Page
@@ -24269,7 +22306,6 @@ await client.users.riskAssessments.clear("id", { Retrieve detailed list of all user roles currently assigned to a user. Note: This action retrieves all roles assigned to a user in the context of your whole tenant. To retrieve Organization-specific roles, use the following endpoint: Get user roles assigned to an Organization member. -
@@ -24287,7 +22323,7 @@ Retrieve detailed list of all user roles currently assigned to a user. const pageableResponse = await client.users.roles.list("id", { per_page: 1, page: 1, - include_totals: true, + include_totals: true }); for await (const item of pageableResponse) { console.log(item); @@ -24297,7 +22333,7 @@ for await (const item of pageableResponse) { let page = await client.users.roles.list("id", { per_page: 1, page: 1, - include_totals: true, + include_totals: true }); while (page.hasNextPage()) { page = page.getNextPage(); @@ -24305,8 +22341,8 @@ while (page.hasNextPage()) { // You can also access the underlying response const response = page.response; -``` +``` @@ -24321,28 +22357,29 @@ const response = page.response;
**id:** `string` — ID of the user to list roles for. - +
-**request:** `Management.ListUserRolesRequestParameters` - +**request:** `Management.ListUserRolesRequestParameters` +
-**requestOptions:** `Roles.RequestOptions` - +**requestOptions:** `RolesClient.RequestOptions` +
+
@@ -24362,7 +22399,6 @@ const response = page.response; Assign one or more existing user roles to a user. For more information, review Role-Based Access Control. Note: New roles cannot be created through this action. Additionally, this action is used to assign roles to a user in the context of your whole tenant. To assign roles in the context of a specific Organization, use the following endpoint: Assign user roles to an Organization member. - @@ -24378,10 +22414,10 @@ Assign one or more existing user roles to a user. For more information, review < ```typescript await client.users.roles.assign("id", { - roles: ["roles"], + roles: ["roles"] }); -``` +``` @@ -24396,28 +22432,29 @@ await client.users.roles.assign("id", {
**id:** `string` — ID of the user to associate roles with. - +
-**request:** `Management.AssignUserRolesRequestContent` - +**request:** `Management.AssignUserRolesRequestContent` +
-**requestOptions:** `Roles.RequestOptions` - +**requestOptions:** `RolesClient.RequestOptions` +
+
@@ -24437,7 +22474,6 @@ await client.users.roles.assign("id", { Remove one or more specified user roles assigned to a user. Note: This action removes a role from a user in the context of your whole tenant. If you want to unassign a role from a user in the context of a specific Organization, use the following endpoint: Delete user roles from an Organization member. - @@ -24453,10 +22489,10 @@ Remove one or more specified user roles assigned to a user. ```typescript await client.users.roles.delete("id", { - roles: ["roles"], + roles: ["roles"] }); -``` +``` @@ -24471,35 +22507,35 @@ await client.users.roles.delete("id", {
**id:** `string` — ID of the user to remove roles from. - +
-**request:** `Management.DeleteUserRolesRequestContent` - +**request:** `Management.DeleteUserRolesRequestContent` +
-**requestOptions:** `Roles.RequestOptions` - +**requestOptions:** `RolesClient.RequestOptions` +
+
## Users RefreshToken - -
client.users.refreshToken.list(userId, { ...params }) -> core.Page +
client.users.refreshToken.list(user_id, { ...params }) -> core.Page
@@ -24512,7 +22548,6 @@ await client.users.roles.delete("id", {
Retrieve details for a user's refresh tokens. -
@@ -24529,7 +22564,7 @@ Retrieve details for a user's refresh tokens. ```typescript const pageableResponse = await client.users.refreshToken.list("user_id", { from: "from", - take: 1, + take: 1 }); for await (const item of pageableResponse) { console.log(item); @@ -24538,7 +22573,7 @@ for await (const item of pageableResponse) { // Or you can manually iterate page-by-page let page = await client.users.refreshToken.list("user_id", { from: "from", - take: 1, + take: 1 }); while (page.hasNextPage()) { page = page.getNextPage(); @@ -24546,8 +22581,8 @@ while (page.hasNextPage()) { // You can also access the underlying response const response = page.response; -``` +``` @@ -24561,34 +22596,35 @@ const response = page.response;
-**userId:** `string` — ID of the user to get refresh tokens for - +**user_id:** `string` — ID of the user to get refresh tokens for +
-**request:** `Management.ListRefreshTokensRequestParameters` - +**request:** `Management.ListRefreshTokensRequestParameters` +
-**requestOptions:** `RefreshToken.RequestOptions` - +**requestOptions:** `RefreshTokenClient.RequestOptions` +
+
-
client.users.refreshToken.delete(userId) -> void +
client.users.refreshToken.delete(user_id) -> void
@@ -24601,7 +22637,6 @@ const response = page.response;
Delete all refresh tokens for a user. -
@@ -24617,8 +22652,8 @@ Delete all refresh tokens for a user. ```typescript await client.users.refreshToken.delete("user_id"); -``` +``` @@ -24632,28 +22667,28 @@ await client.users.refreshToken.delete("user_id");
-**userId:** `string` — ID of the user to get remove refresh tokens for - +**user_id:** `string` — ID of the user to get remove refresh tokens for +
-**requestOptions:** `RefreshToken.RequestOptions` - +**requestOptions:** `RefreshTokenClient.RequestOptions` +
+
## Users Sessions - -
client.users.sessions.list(userId, { ...params }) -> core.Page +
client.users.sessions.list(user_id, { ...params }) -> core.Page
@@ -24666,7 +22701,6 @@ await client.users.refreshToken.delete("user_id");
Retrieve details for a user's sessions. -
@@ -24683,7 +22717,7 @@ Retrieve details for a user's sessions. ```typescript const pageableResponse = await client.users.sessions.list("user_id", { from: "from", - take: 1, + take: 1 }); for await (const item of pageableResponse) { console.log(item); @@ -24692,7 +22726,7 @@ for await (const item of pageableResponse) { // Or you can manually iterate page-by-page let page = await client.users.sessions.list("user_id", { from: "from", - take: 1, + take: 1 }); while (page.hasNextPage()) { page = page.getNextPage(); @@ -24700,8 +22734,8 @@ while (page.hasNextPage()) { // You can also access the underlying response const response = page.response; -``` +``` @@ -24715,34 +22749,35 @@ const response = page.response;
-**userId:** `string` — ID of the user to get sessions for - +**user_id:** `string` — ID of the user to get sessions for +
-**request:** `Management.ListUserSessionsRequestParameters` - +**request:** `Management.ListUserSessionsRequestParameters` +
-**requestOptions:** `Sessions.RequestOptions` - +**requestOptions:** `SessionsClient.RequestOptions` +
+
-
client.users.sessions.delete(userId) -> void +
client.users.sessions.delete(user_id) -> void
@@ -24755,7 +22790,6 @@ const response = page.response;
Delete all sessions for a user. -
@@ -24771,8 +22805,8 @@ Delete all sessions for a user. ```typescript await client.users.sessions.delete("user_id"); -``` +``` @@ -24786,27 +22820,27 @@ await client.users.sessions.delete("user_id");
-**userId:** `string` — ID of the user to get sessions for - +**user_id:** `string` — ID of the user to get sessions for +
-**requestOptions:** `Sessions.RequestOptions` - +**requestOptions:** `SessionsClient.RequestOptions` +
+
## VerifiableCredentials Verification Templates -
client.verifiableCredentials.verification.templates.list({ ...params }) -> core.Page
@@ -24820,7 +22854,6 @@ await client.users.sessions.delete("user_id");
List a verifiable credential templates. -
@@ -24837,7 +22870,7 @@ List a verifiable credential templates. ```typescript const pageableResponse = await client.verifiableCredentials.verification.templates.list({ from: "from", - take: 1, + take: 1 }); for await (const item of pageableResponse) { console.log(item); @@ -24846,7 +22879,7 @@ for await (const item of pageableResponse) { // Or you can manually iterate page-by-page let page = await client.verifiableCredentials.verification.templates.list({ from: "from", - take: 1, + take: 1 }); while (page.hasNextPage()) { page = page.getNextPage(); @@ -24854,8 +22887,8 @@ while (page.hasNextPage()) { // You can also access the underlying response const response = page.response; -``` +``` @@ -24869,21 +22902,22 @@ const response = page.response;
-**request:** `Management.ListVerifiableCredentialTemplatesRequestParameters` - +**request:** `Management.ListVerifiableCredentialTemplatesRequestParameters` +
-**requestOptions:** `Templates.RequestOptions` - +**requestOptions:** `TemplatesClient.RequestOptions` +
+
@@ -24901,7 +22935,6 @@ const response = page.response;
Create a verifiable credential template. -
@@ -24922,13 +22955,13 @@ await client.verifiableCredentials.verification.templates.create({ dialect: "dialect", presentation: { "org.iso.18013.5.1.mDL": { - "org.iso.18013.5.1": {}, - }, + "org.iso.18013.5.1": {} + } }, - well_known_trusted_issuers: "well_known_trusted_issuers", + well_known_trusted_issuers: "well_known_trusted_issuers" }); -``` +``` @@ -24942,21 +22975,22 @@ await client.verifiableCredentials.verification.templates.create({
-**request:** `Management.CreateVerifiableCredentialTemplateRequestContent` - +**request:** `Management.CreateVerifiableCredentialTemplateRequestContent` +
-**requestOptions:** `Templates.RequestOptions` - +**requestOptions:** `TemplatesClient.RequestOptions` +
+
@@ -24974,7 +23008,6 @@ await client.verifiableCredentials.verification.templates.create({
Get a verifiable credential template. -
@@ -24990,8 +23023,8 @@ Get a verifiable credential template. ```typescript await client.verifiableCredentials.verification.templates.get("id"); -``` +``` @@ -25006,20 +23039,21 @@ await client.verifiableCredentials.verification.templates.get("id");
**id:** `string` — ID of the template to retrieve. - +
-**requestOptions:** `Templates.RequestOptions` - +**requestOptions:** `TemplatesClient.RequestOptions` +
+
@@ -25037,7 +23071,6 @@ await client.verifiableCredentials.verification.templates.get("id");
Delete a verifiable credential template. -
@@ -25053,8 +23086,8 @@ Delete a verifiable credential template. ```typescript await client.verifiableCredentials.verification.templates.delete("id"); -``` +``` @@ -25069,20 +23102,21 @@ await client.verifiableCredentials.verification.templates.delete("id");
**id:** `string` — ID of the template to retrieve. - +
-**requestOptions:** `Templates.RequestOptions` - +**requestOptions:** `TemplatesClient.RequestOptions` +
+
@@ -25100,7 +23134,6 @@ await client.verifiableCredentials.verification.templates.delete("id");
Update a verifiable credential template. -
@@ -25116,8 +23149,8 @@ Update a verifiable credential template. ```typescript await client.verifiableCredentials.verification.templates.update("id"); -``` +``` @@ -25132,28 +23165,29 @@ await client.verifiableCredentials.verification.templates.update("id");
**id:** `string` — ID of the template to retrieve. - +
-**request:** `Management.UpdateVerifiableCredentialTemplateRequestContent` - +**request:** `Management.UpdateVerifiableCredentialTemplateRequestContent` +
-**requestOptions:** `Templates.RequestOptions` - +**requestOptions:** `TemplatesClient.RequestOptions` +
+
diff --git a/src/management/BaseClient.ts b/src/management/BaseClient.ts index 036ee7c7e5..74c00fbe92 100644 --- a/src/management/BaseClient.ts +++ b/src/management/BaseClient.ts @@ -1,15 +1,16 @@ // This file was auto-generated by Fern from our API Definition. -import * as environments from "./environments.js"; +import { BearerAuthProvider } from "./auth/BearerAuthProvider.js"; import * as core from "./core/index.js"; +import type * as environments from "./environments.js"; export interface BaseClientOptions { environment?: core.Supplier; /** Specify a custom URL to connect the client to. */ baseUrl?: core.Supplier; - token: core.Supplier; + token: core.EndpointSupplier; /** Additional headers to include in requests. */ - headers?: Record | null | undefined>; + headers?: Record | null | undefined>; /** The default maximum time to wait for a response in seconds. */ timeoutInSeconds?: number; /** The default number of times to retry the request. Defaults to 2. */ @@ -17,6 +18,8 @@ export interface BaseClientOptions { /** Provide a custom fetch implementation. Useful for platforms that don't have a built-in fetch or need a custom implementation. */ fetch?: typeof fetch; fetcher?: core.FetchFunction; + /** Configure logging for the client. */ + logging?: core.logging.LogConfig | core.logging.Logger; } export interface BaseRequestOptions { @@ -29,5 +32,39 @@ export interface BaseRequestOptions { /** Additional query string parameters to include in the request. */ queryParams?: Record; /** Additional headers to include in the request. */ - headers?: Record | null | undefined>; + headers?: Record | null | undefined>; +} + +export type NormalizedClientOptions = T & { + logging: core.logging.Logger; + authProvider?: core.AuthProvider; +}; + +export type NormalizedClientOptionsWithAuth = NormalizedClientOptions & { + authProvider: core.AuthProvider; +}; + +export function normalizeClientOptions(options: T): NormalizedClientOptions { + return { + ...options, + logging: core.logging.createLogger(options?.logging), + } as NormalizedClientOptions; +} + +export function normalizeClientOptionsWithAuth( + options: T, +): NormalizedClientOptionsWithAuth { + const normalized = normalizeClientOptions(options) as NormalizedClientOptionsWithAuth; + const normalizedWithNoOpAuthProvider = withNoOpAuthProvider(normalized); + normalized.authProvider ??= new BearerAuthProvider(normalizedWithNoOpAuthProvider); + return normalized; +} + +function withNoOpAuthProvider( + options: NormalizedClientOptions, +): NormalizedClientOptionsWithAuth { + return { + ...options, + authProvider: new core.NoOpAuthProvider(), + }; } diff --git a/src/management/Client.ts b/src/management/Client.ts index 27d27c180d..a59e07612c 100644 --- a/src/management/Client.ts +++ b/src/management/Client.ts @@ -1,49 +1,46 @@ // This file was auto-generated by Fern from our API Definition. +import { ActionsClient } from "./api/resources/actions/client/Client.js"; +import { AnomalyClient } from "./api/resources/anomaly/client/Client.js"; +import { AttackProtectionClient } from "./api/resources/attackProtection/client/Client.js"; +import { BrandingClient } from "./api/resources/branding/client/Client.js"; +import { ClientGrantsClient } from "./api/resources/clientGrants/client/Client.js"; +import { ClientsClient } from "./api/resources/clients/client/Client.js"; +import { ConnectionsClient } from "./api/resources/connections/client/Client.js"; +import { CustomDomainsClient } from "./api/resources/customDomains/client/Client.js"; +import { DeviceCredentialsClient } from "./api/resources/deviceCredentials/client/Client.js"; +import { EmailsClient } from "./api/resources/emails/client/Client.js"; +import { EmailTemplatesClient } from "./api/resources/emailTemplates/client/Client.js"; +import { EventStreamsClient } from "./api/resources/eventStreams/client/Client.js"; +import { FlowsClient } from "./api/resources/flows/client/Client.js"; +import { FormsClient } from "./api/resources/forms/client/Client.js"; +import { GuardianClient } from "./api/resources/guardian/client/Client.js"; +import { HooksClient } from "./api/resources/hooks/client/Client.js"; +import { JobsClient } from "./api/resources/jobs/client/Client.js"; +import { KeysClient } from "./api/resources/keys/client/Client.js"; +import { LogStreamsClient } from "./api/resources/logStreams/client/Client.js"; +import { LogsClient } from "./api/resources/logs/client/Client.js"; +import { NetworkAclsClient } from "./api/resources/networkAcls/client/Client.js"; +import { OrganizationsClient } from "./api/resources/organizations/client/Client.js"; +import { PromptsClient } from "./api/resources/prompts/client/Client.js"; +import { RefreshTokensClient } from "./api/resources/refreshTokens/client/Client.js"; +import { ResourceServersClient } from "./api/resources/resourceServers/client/Client.js"; +import { RolesClient } from "./api/resources/roles/client/Client.js"; +import { RulesClient } from "./api/resources/rules/client/Client.js"; +import { RulesConfigsClient } from "./api/resources/rulesConfigs/client/Client.js"; +import { SelfServiceProfilesClient } from "./api/resources/selfServiceProfiles/client/Client.js"; +import { SessionsClient } from "./api/resources/sessions/client/Client.js"; +import { StatsClient } from "./api/resources/stats/client/Client.js"; +import { SupplementalSignalsClient } from "./api/resources/supplementalSignals/client/Client.js"; +import { TenantsClient } from "./api/resources/tenants/client/Client.js"; +import { TicketsClient } from "./api/resources/tickets/client/Client.js"; +import { TokenExchangeProfilesClient } from "./api/resources/tokenExchangeProfiles/client/Client.js"; +import { UserBlocksClient } from "./api/resources/userBlocks/client/Client.js"; +import { UserGrantsClient } from "./api/resources/userGrants/client/Client.js"; +import { UsersClient } from "./api/resources/users/client/Client.js"; +import { VerifiableCredentialsClient } from "./api/resources/verifiableCredentials/client/Client.js"; import type { BaseClientOptions, BaseRequestOptions } from "./BaseClient.js"; -import * as environments from "./environments.js"; -import * as core from "./core/index.js"; -import { Actions } from "./api/resources/actions/client/Client.js"; -import { Branding } from "./api/resources/branding/client/Client.js"; -import { ClientGrants } from "./api/resources/clientGrants/client/Client.js"; -import { Clients } from "./api/resources/clients/client/Client.js"; -import { Connections } from "./api/resources/connections/client/Client.js"; -import { CustomDomains } from "./api/resources/customDomains/client/Client.js"; -import { DeviceCredentials } from "./api/resources/deviceCredentials/client/Client.js"; -import { EmailTemplates } from "./api/resources/emailTemplates/client/Client.js"; -import { EventStreams } from "./api/resources/eventStreams/client/Client.js"; -import { Flows } from "./api/resources/flows/client/Client.js"; -import { Forms } from "./api/resources/forms/client/Client.js"; -import { UserGrants } from "./api/resources/userGrants/client/Client.js"; -import { Hooks } from "./api/resources/hooks/client/Client.js"; -import { Jobs } from "./api/resources/jobs/client/Client.js"; -import { LogStreams } from "./api/resources/logStreams/client/Client.js"; -import { Logs } from "./api/resources/logs/client/Client.js"; -import { NetworkAcls } from "./api/resources/networkAcls/client/Client.js"; -import { Organizations } from "./api/resources/organizations/client/Client.js"; -import { Prompts } from "./api/resources/prompts/client/Client.js"; -import { RefreshTokens } from "./api/resources/refreshTokens/client/Client.js"; -import { ResourceServers } from "./api/resources/resourceServers/client/Client.js"; -import { Roles } from "./api/resources/roles/client/Client.js"; -import { Rules } from "./api/resources/rules/client/Client.js"; -import { RulesConfigs } from "./api/resources/rulesConfigs/client/Client.js"; -import { SelfServiceProfiles } from "./api/resources/selfServiceProfiles/client/Client.js"; -import { Sessions } from "./api/resources/sessions/client/Client.js"; -import { Stats } from "./api/resources/stats/client/Client.js"; -import { SupplementalSignals } from "./api/resources/supplementalSignals/client/Client.js"; -import { Tickets } from "./api/resources/tickets/client/Client.js"; -import { TokenExchangeProfiles } from "./api/resources/tokenExchangeProfiles/client/Client.js"; -import { UserAttributeProfiles } from "./api/resources/userAttributeProfiles/client/Client.js"; -import { UserBlocks } from "./api/resources/userBlocks/client/Client.js"; -import { Users } from "./api/resources/users/client/Client.js"; -import { Anomaly } from "./api/resources/anomaly/client/Client.js"; -import { AttackProtection } from "./api/resources/attackProtection/client/Client.js"; -import { Emails } from "./api/resources/emails/client/Client.js"; -import { Guardian } from "./api/resources/guardian/client/Client.js"; -import { Keys } from "./api/resources/keys/client/Client.js"; -import { RiskAssessments } from "./api/resources/riskAssessments/client/Client.js"; -import { Tenants } from "./api/resources/tenants/client/Client.js"; -import { VerifiableCredentials } from "./api/resources/verifiableCredentials/client/Client.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "./BaseClient.js"; export declare namespace ManagementClient { export interface Options extends BaseClientOptions {} @@ -52,214 +49,204 @@ export declare namespace ManagementClient { } export class ManagementClient { - protected readonly _options: ManagementClient.Options; - protected _actions: Actions | undefined; - protected _branding: Branding | undefined; - protected _clientGrants: ClientGrants | undefined; - protected _clients: Clients | undefined; - protected _connections: Connections | undefined; - protected _customDomains: CustomDomains | undefined; - protected _deviceCredentials: DeviceCredentials | undefined; - protected _emailTemplates: EmailTemplates | undefined; - protected _eventStreams: EventStreams | undefined; - protected _flows: Flows | undefined; - protected _forms: Forms | undefined; - protected _userGrants: UserGrants | undefined; - protected _hooks: Hooks | undefined; - protected _jobs: Jobs | undefined; - protected _logStreams: LogStreams | undefined; - protected _logs: Logs | undefined; - protected _networkAcls: NetworkAcls | undefined; - protected _organizations: Organizations | undefined; - protected _prompts: Prompts | undefined; - protected _refreshTokens: RefreshTokens | undefined; - protected _resourceServers: ResourceServers | undefined; - protected _roles: Roles | undefined; - protected _rules: Rules | undefined; - protected _rulesConfigs: RulesConfigs | undefined; - protected _selfServiceProfiles: SelfServiceProfiles | undefined; - protected _sessions: Sessions | undefined; - protected _stats: Stats | undefined; - protected _supplementalSignals: SupplementalSignals | undefined; - protected _tickets: Tickets | undefined; - protected _tokenExchangeProfiles: TokenExchangeProfiles | undefined; - protected _userAttributeProfiles: UserAttributeProfiles | undefined; - protected _userBlocks: UserBlocks | undefined; - protected _users: Users | undefined; - protected _anomaly: Anomaly | undefined; - protected _attackProtection: AttackProtection | undefined; - protected _emails: Emails | undefined; - protected _guardian: Guardian | undefined; - protected _keys: Keys | undefined; - protected _riskAssessments: RiskAssessments | undefined; - protected _tenants: Tenants | undefined; - protected _verifiableCredentials: VerifiableCredentials | undefined; + protected readonly _options: NormalizedClientOptionsWithAuth; + protected _actions: ActionsClient | undefined; + protected _branding: BrandingClient | undefined; + protected _clientGrants: ClientGrantsClient | undefined; + protected _clients: ClientsClient | undefined; + protected _connections: ConnectionsClient | undefined; + protected _customDomains: CustomDomainsClient | undefined; + protected _deviceCredentials: DeviceCredentialsClient | undefined; + protected _emailTemplates: EmailTemplatesClient | undefined; + protected _eventStreams: EventStreamsClient | undefined; + protected _flows: FlowsClient | undefined; + protected _forms: FormsClient | undefined; + protected _userGrants: UserGrantsClient | undefined; + protected _hooks: HooksClient | undefined; + protected _jobs: JobsClient | undefined; + protected _logStreams: LogStreamsClient | undefined; + protected _logs: LogsClient | undefined; + protected _networkAcls: NetworkAclsClient | undefined; + protected _organizations: OrganizationsClient | undefined; + protected _prompts: PromptsClient | undefined; + protected _refreshTokens: RefreshTokensClient | undefined; + protected _resourceServers: ResourceServersClient | undefined; + protected _roles: RolesClient | undefined; + protected _rules: RulesClient | undefined; + protected _rulesConfigs: RulesConfigsClient | undefined; + protected _selfServiceProfiles: SelfServiceProfilesClient | undefined; + protected _sessions: SessionsClient | undefined; + protected _stats: StatsClient | undefined; + protected _supplementalSignals: SupplementalSignalsClient | undefined; + protected _tickets: TicketsClient | undefined; + protected _tokenExchangeProfiles: TokenExchangeProfilesClient | undefined; + protected _userBlocks: UserBlocksClient | undefined; + protected _users: UsersClient | undefined; + protected _anomaly: AnomalyClient | undefined; + protected _attackProtection: AttackProtectionClient | undefined; + protected _emails: EmailsClient | undefined; + protected _guardian: GuardianClient | undefined; + protected _keys: KeysClient | undefined; + protected _tenants: TenantsClient | undefined; + protected _verifiableCredentials: VerifiableCredentialsClient | undefined; - constructor(_options: ManagementClient.Options) { - this._options = _options; + constructor(options: ManagementClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } - public get actions(): Actions { - return (this._actions ??= new Actions(this._options)); + public get actions(): ActionsClient { + return (this._actions ??= new ActionsClient(this._options)); } - public get branding(): Branding { - return (this._branding ??= new Branding(this._options)); + public get branding(): BrandingClient { + return (this._branding ??= new BrandingClient(this._options)); } - public get clientGrants(): ClientGrants { - return (this._clientGrants ??= new ClientGrants(this._options)); + public get clientGrants(): ClientGrantsClient { + return (this._clientGrants ??= new ClientGrantsClient(this._options)); } - public get clients(): Clients { - return (this._clients ??= new Clients(this._options)); + public get clients(): ClientsClient { + return (this._clients ??= new ClientsClient(this._options)); } - public get connections(): Connections { - return (this._connections ??= new Connections(this._options)); + public get connections(): ConnectionsClient { + return (this._connections ??= new ConnectionsClient(this._options)); } - public get customDomains(): CustomDomains { - return (this._customDomains ??= new CustomDomains(this._options)); + public get customDomains(): CustomDomainsClient { + return (this._customDomains ??= new CustomDomainsClient(this._options)); } - public get deviceCredentials(): DeviceCredentials { - return (this._deviceCredentials ??= new DeviceCredentials(this._options)); + public get deviceCredentials(): DeviceCredentialsClient { + return (this._deviceCredentials ??= new DeviceCredentialsClient(this._options)); } - public get emailTemplates(): EmailTemplates { - return (this._emailTemplates ??= new EmailTemplates(this._options)); + public get emailTemplates(): EmailTemplatesClient { + return (this._emailTemplates ??= new EmailTemplatesClient(this._options)); } - public get eventStreams(): EventStreams { - return (this._eventStreams ??= new EventStreams(this._options)); + public get eventStreams(): EventStreamsClient { + return (this._eventStreams ??= new EventStreamsClient(this._options)); } - public get flows(): Flows { - return (this._flows ??= new Flows(this._options)); + public get flows(): FlowsClient { + return (this._flows ??= new FlowsClient(this._options)); } - public get forms(): Forms { - return (this._forms ??= new Forms(this._options)); + public get forms(): FormsClient { + return (this._forms ??= new FormsClient(this._options)); } - public get userGrants(): UserGrants { - return (this._userGrants ??= new UserGrants(this._options)); + public get userGrants(): UserGrantsClient { + return (this._userGrants ??= new UserGrantsClient(this._options)); } - public get hooks(): Hooks { - return (this._hooks ??= new Hooks(this._options)); + public get hooks(): HooksClient { + return (this._hooks ??= new HooksClient(this._options)); } - public get jobs(): Jobs { - return (this._jobs ??= new Jobs(this._options)); + public get jobs(): JobsClient { + return (this._jobs ??= new JobsClient(this._options)); } - public get logStreams(): LogStreams { - return (this._logStreams ??= new LogStreams(this._options)); + public get logStreams(): LogStreamsClient { + return (this._logStreams ??= new LogStreamsClient(this._options)); } - public get logs(): Logs { - return (this._logs ??= new Logs(this._options)); + public get logs(): LogsClient { + return (this._logs ??= new LogsClient(this._options)); } - public get networkAcls(): NetworkAcls { - return (this._networkAcls ??= new NetworkAcls(this._options)); + public get networkAcls(): NetworkAclsClient { + return (this._networkAcls ??= new NetworkAclsClient(this._options)); } - public get organizations(): Organizations { - return (this._organizations ??= new Organizations(this._options)); + public get organizations(): OrganizationsClient { + return (this._organizations ??= new OrganizationsClient(this._options)); } - public get prompts(): Prompts { - return (this._prompts ??= new Prompts(this._options)); + public get prompts(): PromptsClient { + return (this._prompts ??= new PromptsClient(this._options)); } - public get refreshTokens(): RefreshTokens { - return (this._refreshTokens ??= new RefreshTokens(this._options)); + public get refreshTokens(): RefreshTokensClient { + return (this._refreshTokens ??= new RefreshTokensClient(this._options)); } - public get resourceServers(): ResourceServers { - return (this._resourceServers ??= new ResourceServers(this._options)); + public get resourceServers(): ResourceServersClient { + return (this._resourceServers ??= new ResourceServersClient(this._options)); } - public get roles(): Roles { - return (this._roles ??= new Roles(this._options)); + public get roles(): RolesClient { + return (this._roles ??= new RolesClient(this._options)); } - public get rules(): Rules { - return (this._rules ??= new Rules(this._options)); + public get rules(): RulesClient { + return (this._rules ??= new RulesClient(this._options)); } - public get rulesConfigs(): RulesConfigs { - return (this._rulesConfigs ??= new RulesConfigs(this._options)); + public get rulesConfigs(): RulesConfigsClient { + return (this._rulesConfigs ??= new RulesConfigsClient(this._options)); } - public get selfServiceProfiles(): SelfServiceProfiles { - return (this._selfServiceProfiles ??= new SelfServiceProfiles(this._options)); + public get selfServiceProfiles(): SelfServiceProfilesClient { + return (this._selfServiceProfiles ??= new SelfServiceProfilesClient(this._options)); } - public get sessions(): Sessions { - return (this._sessions ??= new Sessions(this._options)); + public get sessions(): SessionsClient { + return (this._sessions ??= new SessionsClient(this._options)); } - public get stats(): Stats { - return (this._stats ??= new Stats(this._options)); + public get stats(): StatsClient { + return (this._stats ??= new StatsClient(this._options)); } - public get supplementalSignals(): SupplementalSignals { - return (this._supplementalSignals ??= new SupplementalSignals(this._options)); + public get supplementalSignals(): SupplementalSignalsClient { + return (this._supplementalSignals ??= new SupplementalSignalsClient(this._options)); } - public get tickets(): Tickets { - return (this._tickets ??= new Tickets(this._options)); + public get tickets(): TicketsClient { + return (this._tickets ??= new TicketsClient(this._options)); } - public get tokenExchangeProfiles(): TokenExchangeProfiles { - return (this._tokenExchangeProfiles ??= new TokenExchangeProfiles(this._options)); + public get tokenExchangeProfiles(): TokenExchangeProfilesClient { + return (this._tokenExchangeProfiles ??= new TokenExchangeProfilesClient(this._options)); } - public get userAttributeProfiles(): UserAttributeProfiles { - return (this._userAttributeProfiles ??= new UserAttributeProfiles(this._options)); + public get userBlocks(): UserBlocksClient { + return (this._userBlocks ??= new UserBlocksClient(this._options)); } - public get userBlocks(): UserBlocks { - return (this._userBlocks ??= new UserBlocks(this._options)); + public get users(): UsersClient { + return (this._users ??= new UsersClient(this._options)); } - public get users(): Users { - return (this._users ??= new Users(this._options)); + public get anomaly(): AnomalyClient { + return (this._anomaly ??= new AnomalyClient(this._options)); } - public get anomaly(): Anomaly { - return (this._anomaly ??= new Anomaly(this._options)); + public get attackProtection(): AttackProtectionClient { + return (this._attackProtection ??= new AttackProtectionClient(this._options)); } - public get attackProtection(): AttackProtection { - return (this._attackProtection ??= new AttackProtection(this._options)); + public get emails(): EmailsClient { + return (this._emails ??= new EmailsClient(this._options)); } - public get emails(): Emails { - return (this._emails ??= new Emails(this._options)); + public get guardian(): GuardianClient { + return (this._guardian ??= new GuardianClient(this._options)); } - public get guardian(): Guardian { - return (this._guardian ??= new Guardian(this._options)); + public get keys(): KeysClient { + return (this._keys ??= new KeysClient(this._options)); } - public get keys(): Keys { - return (this._keys ??= new Keys(this._options)); + public get tenants(): TenantsClient { + return (this._tenants ??= new TenantsClient(this._options)); } - public get riskAssessments(): RiskAssessments { - return (this._riskAssessments ??= new RiskAssessments(this._options)); - } - - public get tenants(): Tenants { - return (this._tenants ??= new Tenants(this._options)); - } - - public get verifiableCredentials(): VerifiableCredentials { - return (this._verifiableCredentials ??= new VerifiableCredentials(this._options)); + public get verifiableCredentials(): VerifiableCredentialsClient { + return (this._verifiableCredentials ??= new VerifiableCredentialsClient(this._options)); } } diff --git a/src/management/api/errors/BadRequestError.ts b/src/management/api/errors/BadRequestError.ts index 79fe19853b..c17b468f3a 100644 --- a/src/management/api/errors/BadRequestError.ts +++ b/src/management/api/errors/BadRequestError.ts @@ -1,7 +1,7 @@ // This file was auto-generated by Fern from our API Definition. +import type * as core from "../../core/index.js"; import * as errors from "../../errors/index.js"; -import * as core from "../../core/index.js"; export class BadRequestError extends errors.ManagementError { constructor(body?: unknown, rawResponse?: core.RawResponse) { diff --git a/src/management/api/errors/ConflictError.ts b/src/management/api/errors/ConflictError.ts index 92267320d9..fdd97f3c8f 100644 --- a/src/management/api/errors/ConflictError.ts +++ b/src/management/api/errors/ConflictError.ts @@ -1,7 +1,7 @@ // This file was auto-generated by Fern from our API Definition. +import type * as core from "../../core/index.js"; import * as errors from "../../errors/index.js"; -import * as core from "../../core/index.js"; export class ConflictError extends errors.ManagementError { constructor(body?: unknown, rawResponse?: core.RawResponse) { diff --git a/src/management/api/errors/ContentTooLargeError.ts b/src/management/api/errors/ContentTooLargeError.ts index d93249c9c9..e27f88181a 100644 --- a/src/management/api/errors/ContentTooLargeError.ts +++ b/src/management/api/errors/ContentTooLargeError.ts @@ -1,7 +1,7 @@ // This file was auto-generated by Fern from our API Definition. +import type * as core from "../../core/index.js"; import * as errors from "../../errors/index.js"; -import * as core from "../../core/index.js"; export class ContentTooLargeError extends errors.ManagementError { constructor(body?: unknown, rawResponse?: core.RawResponse) { diff --git a/src/management/api/errors/ForbiddenError.ts b/src/management/api/errors/ForbiddenError.ts index 79c69a14d7..3dfafa41f3 100644 --- a/src/management/api/errors/ForbiddenError.ts +++ b/src/management/api/errors/ForbiddenError.ts @@ -1,7 +1,7 @@ // This file was auto-generated by Fern from our API Definition. +import type * as core from "../../core/index.js"; import * as errors from "../../errors/index.js"; -import * as core from "../../core/index.js"; export class ForbiddenError extends errors.ManagementError { constructor(body?: unknown, rawResponse?: core.RawResponse) { diff --git a/src/management/api/errors/InternalServerError.ts b/src/management/api/errors/InternalServerError.ts index cba6978e3c..ebf6bb26f0 100644 --- a/src/management/api/errors/InternalServerError.ts +++ b/src/management/api/errors/InternalServerError.ts @@ -1,7 +1,7 @@ // This file was auto-generated by Fern from our API Definition. +import type * as core from "../../core/index.js"; import * as errors from "../../errors/index.js"; -import * as core from "../../core/index.js"; export class InternalServerError extends errors.ManagementError { constructor(body?: unknown, rawResponse?: core.RawResponse) { diff --git a/src/management/api/errors/NotFoundError.ts b/src/management/api/errors/NotFoundError.ts index 0eeb7776b3..dfe8022791 100644 --- a/src/management/api/errors/NotFoundError.ts +++ b/src/management/api/errors/NotFoundError.ts @@ -1,7 +1,7 @@ // This file was auto-generated by Fern from our API Definition. +import type * as core from "../../core/index.js"; import * as errors from "../../errors/index.js"; -import * as core from "../../core/index.js"; export class NotFoundError extends errors.ManagementError { constructor(body?: unknown, rawResponse?: core.RawResponse) { diff --git a/src/management/api/errors/PaymentRequiredError.ts b/src/management/api/errors/PaymentRequiredError.ts index 66a8906795..64a9d8f177 100644 --- a/src/management/api/errors/PaymentRequiredError.ts +++ b/src/management/api/errors/PaymentRequiredError.ts @@ -1,7 +1,7 @@ // This file was auto-generated by Fern from our API Definition. +import type * as core from "../../core/index.js"; import * as errors from "../../errors/index.js"; -import * as core from "../../core/index.js"; export class PaymentRequiredError extends errors.ManagementError { constructor(body?: unknown, rawResponse?: core.RawResponse) { diff --git a/src/management/api/errors/ServiceUnavailableError.ts b/src/management/api/errors/ServiceUnavailableError.ts index 899fcc9aa4..a804c26a16 100644 --- a/src/management/api/errors/ServiceUnavailableError.ts +++ b/src/management/api/errors/ServiceUnavailableError.ts @@ -1,7 +1,7 @@ // This file was auto-generated by Fern from our API Definition. +import type * as core from "../../core/index.js"; import * as errors from "../../errors/index.js"; -import * as core from "../../core/index.js"; export class ServiceUnavailableError extends errors.ManagementError { constructor(body?: unknown, rawResponse?: core.RawResponse) { diff --git a/src/management/api/errors/TooManyRequestsError.ts b/src/management/api/errors/TooManyRequestsError.ts index 2eae718162..61ca8c364b 100644 --- a/src/management/api/errors/TooManyRequestsError.ts +++ b/src/management/api/errors/TooManyRequestsError.ts @@ -1,7 +1,7 @@ // This file was auto-generated by Fern from our API Definition. +import type * as core from "../../core/index.js"; import * as errors from "../../errors/index.js"; -import * as core from "../../core/index.js"; export class TooManyRequestsError extends errors.ManagementError { constructor(body?: unknown, rawResponse?: core.RawResponse) { diff --git a/src/management/api/errors/UnauthorizedError.ts b/src/management/api/errors/UnauthorizedError.ts index 9b0b1ae0cc..519baef0d6 100644 --- a/src/management/api/errors/UnauthorizedError.ts +++ b/src/management/api/errors/UnauthorizedError.ts @@ -1,7 +1,7 @@ // This file was auto-generated by Fern from our API Definition. +import type * as core from "../../core/index.js"; import * as errors from "../../errors/index.js"; -import * as core from "../../core/index.js"; export class UnauthorizedError extends errors.ManagementError { constructor(body?: unknown, rawResponse?: core.RawResponse) { diff --git a/src/management/api/errors/index.ts b/src/management/api/errors/index.ts index 6c7a4be59a..c9361996f1 100644 --- a/src/management/api/errors/index.ts +++ b/src/management/api/errors/index.ts @@ -1,10 +1,10 @@ export * from "./BadRequestError.js"; -export * from "./UnauthorizedError.js"; -export * from "./ForbiddenError.js"; -export * from "./TooManyRequestsError.js"; -export * from "./NotFoundError.js"; export * from "./ConflictError.js"; -export * from "./PaymentRequiredError.js"; export * from "./ContentTooLargeError.js"; +export * from "./ForbiddenError.js"; export * from "./InternalServerError.js"; +export * from "./NotFoundError.js"; +export * from "./PaymentRequiredError.js"; export * from "./ServiceUnavailableError.js"; +export * from "./TooManyRequestsError.js"; +export * from "./UnauthorizedError.js"; diff --git a/src/management/api/index.ts b/src/management/api/index.ts index f779e48e8d..7bfb9e8541 100644 --- a/src/management/api/index.ts +++ b/src/management/api/index.ts @@ -1,4 +1,4 @@ -export * from "./resources/index.js"; -export * from "./types/index.js"; export * from "./errors/index.js"; export * from "./requests/index.js"; +export * from "./resources/index.js"; +export * from "./types/index.js"; diff --git a/src/management/api/requests/requests.ts b/src/management/api/requests/requests.ts index 0a5ad8bfef..928a71667d 100644 --- a/src/management/api/requests/requests.ts +++ b/src/management/api/requests/requests.ts @@ -1,8 +1,7 @@ // This file was auto-generated by Fern from our API Definition. -import * as Management from "../index.js"; -import * as fs from "fs"; -import * as core from "../../core/index.js"; +import type * as core from "../../core/index.js"; +import type * as Management from "../index.js"; /** * @example @@ -48,7 +47,7 @@ export interface CreateActionRequestContent { code?: string; /** The list of third party npm modules, and their versions, that this action depends on. */ dependencies?: Management.ActionVersionDependency[]; - /** The Node runtime. For example: `node22`, defaults to `node22` */ + /** The Node runtime. For example: `node12`, defaults to `node12` */ runtime?: string; /** The list of secrets that are included in an action or a version of an action. */ secrets?: Management.ActionSecretRequest[]; @@ -80,7 +79,7 @@ export interface UpdateActionRequestContent { code?: string; /** The list of third party npm modules, and their versions, that this action depends on. */ dependencies?: Management.ActionVersionDependency[]; - /** The Node runtime. For example: `node22`, defaults to `node22` */ + /** The Node runtime. For example: `node12`, defaults to `node12` */ runtime?: string; /** The list of secrets that are included in an action or a version of an action. */ secrets?: Management.ActionSecretRequest[]; @@ -118,8 +117,7 @@ export interface UpdateBrandingRequestContent { * take: 1, * audience: "audience", * client_id: "client_id", - * allow_any_organization: true, - * subject_type: "client" + * allow_any_organization: true * } */ export interface ListClientGrantsRequestParameters { @@ -133,15 +131,14 @@ export interface ListClientGrantsRequestParameters { client_id?: string | null; /** Optional filter on allow_any_organization. */ allow_any_organization?: Management.ClientGrantAllowAnyOrganizationEnum | null; - /** The type of application access the client grant allows. Use of this field is subject to the applicable Free Trial terms in Okta’s Master Subscription Agreement. */ - subject_type?: Management.ClientGrantSubjectTypeEnum | null; } /** * @example * { * client_id: "client_id", - * audience: "audience" + * audience: "audience", + * scope: ["scope"] * } */ export interface CreateClientGrantRequestContent { @@ -153,10 +150,7 @@ export interface CreateClientGrantRequestContent { /** If enabled, any organization can be used with this grant. If disabled (default), the grant must be explicitly assigned to the desired organizations. */ allow_any_organization?: boolean; /** Scopes allowed for this client grant. */ - scope?: string[]; - subject_type?: Management.ClientGrantSubjectTypeEnum; - /** Types of authorization_details allowed for this client grant. Use of this field is subject to the applicable Free Trial terms in Okta’s Master Subscription Agreement. */ - authorization_details_types?: string[]; + scope: string[]; } /** @@ -169,8 +163,6 @@ export interface UpdateClientGrantRequestContent { organization_usage?: Management.ClientGrantOrganizationNullableUsageEnum | null; /** Controls allowing any organization to be used with this grant */ allow_any_organization?: boolean | null; - /** Types of authorization_details allowed for this client grant. Use of this field is subject to the applicable Free Trial terms in Okta’s Master Subscription Agreement. */ - authorization_details_types?: string[]; } /** @@ -236,11 +228,9 @@ export interface CreateClientRequestContent { allowed_clients?: string[]; /** Comma-separated list of URLs that are valid to redirect to after logout from Auth0. Wildcards are allowed for subdomains. */ allowed_logout_urls?: string[]; - /** List of grant types supported for this application. Can include `authorization_code`, `implicit`, `refresh_token`, `client_credentials`, `password`, `http://auth0.com/oauth/grant-type/password-realm`, `http://auth0.com/oauth/grant-type/mfa-oob`, `http://auth0.com/oauth/grant-type/mfa-otp`, `http://auth0.com/oauth/grant-type/mfa-recovery-code`, `urn:openid:params:grant-type:ciba`, `urn:ietf:params:oauth:grant-type:device_code`, and `urn:auth0:params:oauth:grant-type:token-exchange:federated-connection-access-token`. */ + /** List of grant types supported for this application. Can include `authorization_code`, `implicit`, `refresh_token`, `client_credentials`, `password`, `http://auth0.com/oauth/grant-type/password-realm`, `http://auth0.com/oauth/grant-type/mfa-oob`, `http://auth0.com/oauth/grant-type/mfa-otp`, `http://auth0.com/oauth/grant-type/mfa-recovery-code`, `urn:openid:params:grant-type:ciba`, and `urn:ietf:params:oauth:grant-type:device_code`. */ grant_types?: string[]; token_endpoint_auth_method?: Management.ClientTokenEndpointAuthMethodEnum; - /** If true, trust that the IP specified in the `auth0-forwarded-for` header is the end-user's IP for brute-force-protection on token endpoint. */ - is_token_endpoint_ip_header_trusted?: boolean; app_type?: Management.ClientAppTypeEnum; /** Whether this client a first party client or not */ is_first_party?: boolean; @@ -274,8 +264,6 @@ export interface CreateClientRequestContent { default_organization?: Management.ClientDefaultOrganization | null; organization_usage?: Management.ClientOrganizationUsageEnum; organization_require_behavior?: Management.ClientOrganizationRequireBehaviorEnum; - /** Defines the available methods for organization discovery during the `pre_login_prompt`. Users can discover their organization either by `email`, `organization_name` or both. */ - organization_discovery_methods?: Management.ClientOrganizationDiscoveryEnum[]; client_authentication_methods?: Management.ClientCreateAuthenticationMethod; /** Makes the use of Pushed Authorization Requests mandatory for this client */ require_pushed_authorization_requests?: boolean; @@ -283,18 +271,11 @@ export interface CreateClientRequestContent { require_proof_of_possession?: boolean; signed_request_object?: Management.ClientSignedRequestObjectWithPublicKey; compliance_level?: Management.ClientComplianceLevelEnum | null; - /** - * Controls whether a confirmation prompt is shown during login flows when the redirect URI uses non-verifiable callback URIs (for example, a custom URI schema such as `myapp://`, or `localhost`). - * If set to true, a confirmation prompt will not be shown. We recommend that this is set to false for improved protection from malicious apps. - * See https://auth0.com/docs/secure/security-guidance/measures-against-app-impersonation for more information. - */ - skip_non_verifiable_callback_uri_confirmation_prompt?: boolean; /** Specifies how long, in seconds, a Pushed Authorization Request URI remains valid */ par_request_expiry?: number | null; token_quota?: Management.CreateTokenQuota; /** The identifier of the resource server that this client is linked to. */ resource_server_identifier?: string; - async_approval_notification_channels?: Management.ClientAsyncApprovalNotificationsChannelsApiPostConfiguration; } /** @@ -333,7 +314,7 @@ export interface UpdateClientRequestContent { allowed_origins?: string[]; /** A set of URLs that represents valid web origins for use with web message response mode */ web_origins?: string[]; - /** A set of grant types that the client is authorized to use. Can include `authorization_code`, `implicit`, `refresh_token`, `client_credentials`, `password`, `http://auth0.com/oauth/grant-type/password-realm`, `http://auth0.com/oauth/grant-type/mfa-oob`, `http://auth0.com/oauth/grant-type/mfa-otp`, `http://auth0.com/oauth/grant-type/mfa-recovery-code`, `urn:openid:params:grant-type:ciba`, `urn:ietf:params:oauth:grant-type:device_code`, and `urn:auth0:params:oauth:grant-type:token-exchange:federated-connection-access-token`. */ + /** A set of grant types that the client is authorized to use. Can include `authorization_code`, `implicit`, `refresh_token`, `client_credentials`, `password`, `http://auth0.com/oauth/grant-type/password-realm`, `http://auth0.com/oauth/grant-type/mfa-oob`, `http://auth0.com/oauth/grant-type/mfa-otp`, `http://auth0.com/oauth/grant-type/mfa-recovery-code`, `urn:openid:params:grant-type:ciba`, and `urn:ietf:params:oauth:grant-type:device_code`. */ grant_types?: string[]; /** List of audiences for SAML protocol */ client_aliases?: string[]; @@ -354,8 +335,6 @@ export interface UpdateClientRequestContent { /** true if the custom login page is to be used, false otherwise. */ custom_login_page_on?: boolean; token_endpoint_auth_method?: Management.ClientTokenEndpointAuthMethodOrNullEnum | null; - /** If true, trust that the IP specified in the `auth0-forwarded-for` header is the end-user's IP for brute-force-protection on token endpoint. */ - is_token_endpoint_ip_header_trusted?: boolean; app_type?: Management.ClientAppTypeEnum; /** Whether this client a first party client or not */ is_first_party?: boolean; @@ -377,8 +356,6 @@ export interface UpdateClientRequestContent { default_organization?: Management.ClientDefaultOrganization | null; organization_usage?: Management.ClientOrganizationUsagePatchEnum | null; organization_require_behavior?: Management.ClientOrganizationRequireBehaviorPatchEnum | null; - /** Defines the available methods for organization discovery during the `pre_login_prompt`. Users can discover their organization either by `email`, `organization_name` or both. */ - organization_discovery_methods?: Management.ClientOrganizationDiscoveryEnum[]; client_authentication_methods?: Management.ClientAuthenticationMethod | null; /** Makes the use of Pushed Authorization Requests mandatory for this client */ require_pushed_authorization_requests?: boolean; @@ -386,15 +363,8 @@ export interface UpdateClientRequestContent { require_proof_of_possession?: boolean; signed_request_object?: Management.ClientSignedRequestObjectWithCredentialId; compliance_level?: Management.ClientComplianceLevelEnum | null; - /** - * Controls whether a confirmation prompt is shown during login flows when the redirect URI uses non-verifiable callback URIs (for example, a custom URI schema such as `myapp://`, or `localhost`). - * If set to true, a confirmation prompt will not be shown. We recommend that this is set to false for improved protection from malicious apps. - * See https://auth0.com/docs/secure/security-guidance/measures-against-app-impersonation for more information. - */ - skip_non_verifiable_callback_uri_confirmation_prompt?: boolean | null; /** Specifies how long, in seconds, a Pushed Authorization Request URI remains valid */ par_request_expiry?: number | null; - async_approval_notification_channels?: Management.ClientAsyncApprovalNotificationsChannelsApiPatchConfiguration; } /** @@ -445,8 +415,6 @@ export interface CreateConnectionRequestContent { /** Defines the realms for which the connection will be used (ie: email domains). If the array is empty or the property is not specified, the connection name will be added as realm. */ realms?: string[]; metadata?: Management.ConnectionsMetadata; - authentication?: Management.ConnectionAuthenticationPurpose; - connected_accounts?: Management.ConnectionConnectedAccountsPurpose; } /** @@ -480,8 +448,6 @@ export interface UpdateConnectionRequestContent { /** Defines the realms for which the connection will be used (ie: email domains). If the array is empty or the property is not specified, the connection name will be added as realm. */ realms?: string[]; metadata?: Management.ConnectionsMetadata; - authentication?: Management.ConnectionAuthenticationPurpose; - connected_accounts?: Management.ConnectionConnectedAccountsPurpose; } /** @@ -663,6 +629,20 @@ export interface UpdateEventStreamRequestContent { status?: Management.EventStreamStatusEnum; } +/** + * @example + * { + * date_from: "date_from", + * date_to: "date_to" + * } + */ +export interface EventStreamsGetStatsRequest { + /** The RFC3339 start date for the stats query. */ + date_from?: string | null; + /** The RFC3339 end date for the stats query. */ + date_to?: string | null; +} + /** * @example * { @@ -923,7 +903,7 @@ export interface UpdateLogStreamRequestContent { * fields: "fields", * include_fields: true, * include_totals: true, - * search: "search" + * q: "q" * } */ export interface ListLogsRequestParameters { @@ -939,12 +919,8 @@ export interface ListLogsRequestParameters { include_fields?: boolean | null; /** Return results as an array when false (default). Return results inside an object that also contains a total result count when true. */ include_totals?: boolean | null; - /** - * Retrieves logs that match the specified search criteria. This parameter can be combined with all the others in the /api/logs endpoint but is specified separately for clarity. - * If no fields are provided a case insensitive 'starts with' search is performed on all of the following fields: client_name, connection, user_name. Otherwise, you can specify multiple fields and specify the search using the %field%:%search%, for example: application:node user:"John@contoso.com". - * Values specified without quotes are matched using a case insensitive 'starts with' search. If quotes are used a case insensitve exact search is used. If multiple fields are used, the AND operator is used to join the clauses. - */ - search?: string | null; + /** Query in Lucene query string syntax. */ + q?: string | null; } /** @@ -1131,7 +1107,6 @@ export interface CreateResourceServerRequestContent { consent_policy?: (Management.ResourceServerConsentPolicyEnum | undefined) | null; authorization_details?: unknown[]; proof_of_possession?: Management.ResourceServerProofOfPossession | null; - subject_type_authorization?: Management.ResourceServerSubjectTypeAuthorization; } /** @@ -1170,7 +1145,6 @@ export interface UpdateResourceServerRequestContent { consent_policy?: (Management.ResourceServerConsentPolicyEnum | undefined) | null; authorization_details?: unknown[]; proof_of_possession?: Management.ResourceServerProofOfPossession | null; - subject_type_authorization?: Management.ResourceServerSubjectTypeAuthorization; } /** @@ -1334,8 +1308,6 @@ export interface CreateSelfServiceProfileRequestContent { allowed_strategies?: Management.SelfServiceProfileAllowedStrategyEnum[]; /** List of attributes to be mapped that will be shown to the user during the SS-SSO flow. */ user_attributes?: Management.SelfServiceProfileUserAttribute[]; - /** ID of the user-attribute-profile to associate with this self-service profile. */ - user_attribute_profile_id?: string; } /** @@ -1350,16 +1322,6 @@ export interface UpdateSelfServiceProfileRequestContent { /** List of IdP strategies that will be shown to users during the Self-Service SSO flow. Possible values: [`oidc`, `samlp`, `waad`, `google-apps`, `adfs`, `okta`, `keycloak-samlp`, `pingfederate`] */ allowed_strategies?: Management.SelfServiceProfileAllowedStrategyEnum[]; user_attributes?: (Management.SelfServiceProfileUserAttributes | undefined) | null; - /** ID of the user-attribute-profile to associate with this self-service profile. */ - user_attribute_profile_id?: string | null; -} - -/** - * @example - * {} - */ -export interface UpdateSessionRequestContent { - session_metadata?: (Management.SessionMetadata | undefined) | null; } /** @@ -1476,50 +1438,6 @@ export interface UpdateTokenExchangeProfileRequestContent { subject_token_type?: string; } -/** - * @example - * { - * from: "from", - * take: 1 - * } - */ -export interface ListUserAttributeProfileRequestParameters { - /** Optional Id from which to start selection. */ - from?: string | null; - /** Number of results per page. Defaults to 5. */ - take?: number | null; -} - -/** - * @example - * { - * name: "name", - * user_attributes: { - * "key": { - * description: "description", - * label: "label", - * profile_required: true, - * auth0_mapping: "auth0_mapping" - * } - * } - * } - */ -export interface CreateUserAttributeProfileRequestContent { - name: Management.UserAttributeProfileName; - user_id?: Management.UserAttributeProfileUserId; - user_attributes: Management.UserAttributeProfileUserAttributes; -} - -/** - * @example - * {} - */ -export interface UpdateUserAttributeProfileRequestContent { - name?: Management.UserAttributeProfileName; - user_id?: Management.UserAttributeProfilePatchUserId | undefined; - user_attributes?: Management.UserAttributeProfileUserAttributes; -} - /** * @example * { @@ -1763,19 +1681,6 @@ export interface UpdateActionBindingsRequestContent { bindings?: Management.ActionBindingWithRef[]; } -/** - * @example - * {} - */ -export interface UpdateBotDetectionSettingsRequestContent { - bot_detection_level?: Management.BotDetectionLevelEnum; - challenge_password_policy?: Management.BotDetectionChallengePolicyPasswordFlowEnum; - challenge_passwordless_policy?: Management.BotDetectionChallengePolicyPasswordlessFlowEnum; - challenge_password_reset_policy?: Management.BotDetectionChallengePolicyPasswordResetFlowEnum; - allowlist?: Management.BotDetectionAllowlist; - monitoring_mode_enabled?: Management.BotDetectionMonitoringModeEnabled; -} - /** * @example * {} @@ -1842,21 +1747,6 @@ export namespace UpdateBruteForceSettingsRequestContent { export type Mode = (typeof Mode)[keyof typeof Mode]; } -/** - * @example - * {} - */ -export interface UpdateAttackProtectionCaptchaRequestContent { - active_provider_id?: Management.AttackProtectionCaptchaProviderId; - arkose?: Management.AttackProtectionUpdateCaptchaArkose; - auth_challenge?: Management.AttackProtectionCaptchaAuthChallengeRequest; - hcaptcha?: Management.AttackProtectionUpdateCaptchaHcaptcha; - friendly_captcha?: Management.AttackProtectionUpdateCaptchaFriendlyCaptcha; - recaptcha_enterprise?: Management.AttackProtectionUpdateCaptchaRecaptchaEnterprise; - recaptcha_v2?: Management.AttackProtectionUpdateCaptchaRecaptchaV2; - simple_captcha?: Management.AttackProtectionCaptchaSimpleCaptchaResponseContent; -} - /** * @example * {} @@ -2366,33 +2256,6 @@ export interface ExecutionsGetRequest { hydrate?: ("debug" | null) | ("debug" | null)[]; } -/** - * @example - * { - * page: 1, - * per_page: 1, - * include_totals: true - * } - */ -export interface ListFlowsVaultConnectionsRequestParameters { - /** Page index of the results to return. First page is 0. */ - page?: number | null; - /** Number of results per page. Defaults to 50. */ - per_page?: number | null; - /** Return results inside an object that contains the total result count (true) or as a direct array of results (false, default). */ - include_totals?: boolean | null; -} - -/** - * @example - * {} - */ -export interface UpdateFlowsVaultConnectionRequestContent { - /** Flows Vault Connection name. */ - name?: string; - setup?: Management.UpdateFlowsVaultConnectionSetup; -} - /** * @example * { @@ -2703,40 +2566,6 @@ export interface AssociateOrganizationClientGrantRequestContent { grant_id: string; } -/** - * @example - * { - * from: "from", - * take: 1 - * } - */ -export interface ListOrganizationDiscoveryDomainsRequestParameters { - /** Optional Id from which to start selection. */ - from?: string | null; - /** Number of results per page. Defaults to 50. */ - take?: number | null; -} - -/** - * @example - * { - * domain: "domain" - * } - */ -export interface CreateOrganizationDiscoveryDomainRequestContent { - /** The domain name to associate with the organization e.g. acme.com. */ - domain: string; - status?: Management.OrganizationDiscoveryDomainStatus; -} - -/** - * @example - * {} - */ -export interface UpdateOrganizationDiscoveryDomainRequestContent { - status?: Management.OrganizationDiscoveryDomainStatus; -} - /** * @example * { @@ -2968,61 +2797,21 @@ export interface ListAculsRequestParameters { /** * @example - * { - * configs: [{ - * prompt: "login", - * screen: "login", - * rendering_mode: "advanced", - * head_tags: [{}] - * }] - * } - */ -export interface BulkUpdateAculRequestContent { - configs: Management.AculConfigs; -} - -/** - * @example - * { - * rendering_mode: "advanced", - * head_tags: [{}] - * } + * {} */ export interface UpdateAculRequestContent { - rendering_mode: Management.AculRenderingModeEnum; + rendering_mode?: Management.AculRenderingModeEnum; /** Context values to make available */ context_configuration?: string[]; /** Override Universal Login default head tags */ default_head_tags_disabled?: boolean | null; /** An array of head tags */ - head_tags: Management.AculHeadTag[]; + head_tags?: Management.AculHeadTag[]; filters?: Management.AculFilters | null; /** Use page template with ACUL */ use_page_template?: boolean | null; } -/** - * @example - * { - * enabled: true - * } - */ -export interface UpdateRiskAssessmentsSettingsRequestContent { - /** Whether or not risk assessment is enabled. */ - enabled: boolean; -} - -/** - * @example - * { - * remember_for: 1 - * } - */ -export interface UpdateRiskAssessmentsSettingsNewDeviceRequestContent { - /** Length of time to remember devices for, in days. */ - remember_for: number; -} - /** * @example * { @@ -3180,12 +2969,6 @@ export interface UpdateTenantSettingsRequestContent { pushed_authorization_requests_supported?: boolean | null; /** Supports iss parameter in authorization responses */ authorization_response_iss_parameter_supported?: boolean | null; - /** - * Controls whether a confirmation prompt is shown during login flows when the redirect URI uses non-verifiable callback URIs (for example, a custom URI schema such as `myapp://`, or `localhost`). - * If set to true, a confirmation prompt will not be shown. We recommend that this is set to false for improved protection from malicious apps. - * See https://auth0.com/docs/secure/security-guidance/measures-against-app-impersonation for more information. - */ - skip_non_verifiable_callback_uri_confirmation_prompt?: boolean | null; } export namespace UpdateTenantSettingsRequestContent { @@ -3315,7 +3098,7 @@ export interface CreateUserAuthenticationMethodRequestContent { preferred_authentication_method?: Management.PreferredAuthenticationMethodEnum; /** Applies to webauthn authentication methods only. The id of the credential. */ key_id?: string; - /** Applies to webauthn authentication methods only. The public key, which is encoded as base64. */ + /** Applies to webauthn authentication methods only. The public key. */ public_key?: string; /** Applies to webauthn authentication methods only. The relying party identifier. */ relying_party_identifier?: string; @@ -3331,20 +3114,6 @@ export interface UpdateUserAuthenticationMethodRequestContent { preferred_authentication_method?: Management.PreferredAuthenticationMethodEnum; } -/** - * @example - * { - * from: "from", - * take: 1 - * } - */ -export interface GetUserConnectedAccountsRequestParameters { - /** Optional Id from which to start selection. */ - from?: string | null; - /** Number of results to return. Defaults to 10 with a maximum of 20 */ - take?: number | null; -} - /** * @example * {} @@ -3353,7 +3122,7 @@ export interface LinkUserIdentityRequestContent { provider?: Management.UserIdentityProviderEnum; /** connection_id of the secondary user account being linked when more than one `auth0` database provider exists. */ connection_id?: string; - user_id?: Management.UserId; + user_id?: Management.UserIdEnum; /** JWT for the secondary account being linked. If sending this parameter, `provider`, `user_id`, and `connection_id` must not be sent. */ link_with?: string; } @@ -3440,20 +3209,6 @@ export interface DeleteUserPermissionsRequestContent { permissions: Management.PermissionRequestPayload[]; } -/** - * @example - * { - * connection: "connection", - * assessors: ["new-device"] - * } - */ -export interface ClearAssessorsRequestContent { - /** The name of the connection containing the user whose assessors should be cleared. */ - connection: string; - /** List of assessors to clear. */ - assessors: Management.AssessorsTypeEnum[]; -} - /** * @example * { diff --git a/src/management/api/resources/actions/client/Client.ts b/src/management/api/resources/actions/client/Client.ts index f4c582ddc3..7e77f61a8c 100644 --- a/src/management/api/resources/actions/client/Client.ts +++ b/src/management/api/resources/actions/client/Client.ts @@ -1,48 +1,50 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../BaseClient.js"; -import * as environments from "../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../core/headers.js"; import * as core from "../../../../core/index.js"; -import * as Management from "../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../core/headers.js"; +import * as environments from "../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../errors/index.js"; -import { Versions } from "../resources/versions/client/Client.js"; -import { Executions } from "../resources/executions/client/Client.js"; -import { Triggers } from "../resources/triggers/client/Client.js"; +import * as Management from "../../../index.js"; +import { ExecutionsClient } from "../resources/executions/client/Client.js"; +import { TriggersClient } from "../resources/triggers/client/Client.js"; +import { VersionsClient } from "../resources/versions/client/Client.js"; -export declare namespace Actions { +export declare namespace ActionsClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Actions { - protected readonly _options: Actions.Options; - protected _versions: Versions | undefined; - protected _executions: Executions | undefined; - protected _triggers: Triggers | undefined; +export class ActionsClient { + protected readonly _options: NormalizedClientOptionsWithAuth; + protected _versions: VersionsClient | undefined; + protected _executions: ExecutionsClient | undefined; + protected _triggers: TriggersClient | undefined; - constructor(_options: Actions.Options) { - this._options = _options; + constructor(options: ActionsClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } - public get versions(): Versions { - return (this._versions ??= new Versions(this._options)); + public get versions(): VersionsClient { + return (this._versions ??= new VersionsClient(this._options)); } - public get executions(): Executions { - return (this._executions ??= new Executions(this._options)); + public get executions(): ExecutionsClient { + return (this._executions ??= new ExecutionsClient(this._options)); } - public get triggers(): Triggers { - return (this._triggers ??= new Triggers(this._options)); + public get triggers(): TriggersClient { + return (this._triggers ??= new TriggersClient(this._options)); } /** * Retrieve all actions. * * @param {Management.ListActionsRequestParameters} request - * @param {Actions.RequestOptions} requestOptions - Request-specific configuration. + * @param {ActionsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -61,35 +63,41 @@ export class Actions { */ public async list( request: Management.ListActionsRequestParameters = {}, - requestOptions?: Actions.RequestOptions, + requestOptions?: ActionsClient.RequestOptions, ): Promise> { const list = core.HttpResponsePromise.interceptFunction( async ( request: Management.ListActionsRequestParameters, ): Promise> => { - const { triggerId, actionName, deployed, page = 0, per_page: perPage = 50, installed } = request; + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:actions"] }], + }; + const { triggerId, actionName, deployed, page, per_page: perPage = 50, installed } = request; const _queryParams: Record = {}; if (triggerId !== undefined) { - _queryParams["triggerId"] = triggerId; + _queryParams.triggerId = triggerId; } if (actionName !== undefined) { - _queryParams["actionName"] = actionName; + _queryParams.actionName = actionName; } if (deployed !== undefined) { - _queryParams["deployed"] = deployed?.toString() ?? null; + _queryParams.deployed = deployed?.toString() ?? null; } if (page !== undefined) { - _queryParams["page"] = page?.toString() ?? null; + _queryParams.page = page?.toString() ?? null; } if (perPage !== undefined) { - _queryParams["per_page"] = perPage?.toString() ?? null; + _queryParams.per_page = perPage?.toString() ?? null; } if (installed !== undefined) { - _queryParams["installed"] = installed?.toString() ?? null; + _queryParams.installed = installed?.toString() ?? null; } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -105,7 +113,9 @@ export class Actions { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -140,32 +150,18 @@ export class Actions { }); } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /actions/actions."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/actions/actions"); }, ); - let _offset = request?.page != null ? request?.page : 0; + let _offset = request?.page != null ? request?.page : 1; const dataWithRawResponse = await list(request).withRawResponse(); return new core.Page({ response: dataWithRawResponse.data, rawResponse: dataWithRawResponse.rawResponse, - hasNextPage: (response) => (response?.actions ?? []).length >= (request?.per_page ?? 1), + hasNextPage: (response) => (response?.actions ?? []).length > 0, getItems: (response) => response?.actions ?? [], - loadPage: (response) => { - _offset += response?.actions != null ? response.actions.length : 1; + loadPage: (_response) => { + _offset += 1; return list(core.setObjectProperty(request, "page", _offset)); }, }); @@ -175,7 +171,7 @@ export class Actions { * Create an action. Once an action is created, it must be deployed, and then bound to a trigger before it will be executed as part of a flow. * * @param {Management.CreateActionRequestContent} request - * @param {Actions.RequestOptions} requestOptions - Request-specific configuration. + * @param {ActionsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -192,18 +188,24 @@ export class Actions { */ public create( request: Management.CreateActionRequestContent, - requestOptions?: Actions.RequestOptions, + requestOptions?: ActionsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__create(request, requestOptions)); } private async __create( request: Management.CreateActionRequestContent, - requestOptions?: Actions.RequestOptions, + requestOptions?: ActionsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["create:actions"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -222,7 +224,9 @@ export class Actions { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -250,28 +254,14 @@ export class Actions { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling POST /actions/actions."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/actions/actions"); } /** * Retrieve an action by its ID. * * @param {string} id - The ID of the action to retrieve. - * @param {Actions.RequestOptions} requestOptions - Request-specific configuration. + * @param {ActionsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -284,18 +274,24 @@ export class Actions { */ public get( id: string, - requestOptions?: Actions.RequestOptions, + requestOptions?: ActionsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__get(id, requestOptions)); } private async __get( id: string, - requestOptions?: Actions.RequestOptions, + requestOptions?: ActionsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:actions"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -311,7 +307,9 @@ export class Actions { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: _response.body as Management.GetActionResponseContent, rawResponse: _response.rawResponse }; @@ -338,21 +336,7 @@ export class Actions { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /actions/actions/{id}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/actions/actions/{id}"); } /** @@ -360,7 +344,7 @@ export class Actions { * * @param {string} id - The ID of the action to delete. * @param {Management.DeleteActionRequestParameters} request - * @param {Actions.RequestOptions} requestOptions - Request-specific configuration. + * @param {ActionsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -376,7 +360,7 @@ export class Actions { public delete( id: string, request: Management.DeleteActionRequestParameters = {}, - requestOptions?: Actions.RequestOptions, + requestOptions?: ActionsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__delete(id, request, requestOptions)); } @@ -384,17 +368,23 @@ export class Actions { private async __delete( id: string, request: Management.DeleteActionRequestParameters = {}, - requestOptions?: Actions.RequestOptions, + requestOptions?: ActionsClient.RequestOptions, ): Promise> { + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["delete:actions"] }], + }; const { force } = request; const _queryParams: Record = {}; if (force !== undefined) { - _queryParams["force"] = force?.toString() ?? null; + _queryParams.force = force?.toString() ?? null; } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -410,7 +400,9 @@ export class Actions { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -437,21 +429,7 @@ export class Actions { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling DELETE /actions/actions/{id}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "DELETE", "/actions/actions/{id}"); } /** @@ -459,7 +437,7 @@ export class Actions { * * @param {string} id - The id of the action to update. * @param {Management.UpdateActionRequestContent} request - * @param {Actions.RequestOptions} requestOptions - Request-specific configuration. + * @param {ActionsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -473,7 +451,7 @@ export class Actions { public update( id: string, request: Management.UpdateActionRequestContent = {}, - requestOptions?: Actions.RequestOptions, + requestOptions?: ActionsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__update(id, request, requestOptions)); } @@ -481,11 +459,17 @@ export class Actions { private async __update( id: string, request: Management.UpdateActionRequestContent = {}, - requestOptions?: Actions.RequestOptions, + requestOptions?: ActionsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:actions"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -504,7 +488,9 @@ export class Actions { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -534,28 +520,14 @@ export class Actions { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling PATCH /actions/actions/{id}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "PATCH", "/actions/actions/{id}"); } /** * Deploy an action. Deploying an action will create a new immutable version of the action. If the action is currently bound to a trigger, then the system will begin executing the newly deployed version of the action immediately. Otherwise, the action will only be executed as a part of a flow once it is bound to that flow. * * @param {string} id - The ID of an action. - * @param {Actions.RequestOptions} requestOptions - Request-specific configuration. + * @param {ActionsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -567,18 +539,24 @@ export class Actions { */ public deploy( id: string, - requestOptions?: Actions.RequestOptions, + requestOptions?: ActionsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__deploy(id, requestOptions)); } private async __deploy( id: string, - requestOptions?: Actions.RequestOptions, + requestOptions?: ActionsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["create:actions"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -594,7 +572,9 @@ export class Actions { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -622,23 +602,7 @@ export class Actions { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling POST /actions/actions/{id}/deploy.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/actions/actions/{id}/deploy"); } /** @@ -646,7 +610,7 @@ export class Actions { * * @param {string} id - The id of the action to test. * @param {Management.TestActionRequestContent} request - * @param {Actions.RequestOptions} requestOptions - Request-specific configuration. + * @param {ActionsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -663,7 +627,7 @@ export class Actions { public test( id: string, request: Management.TestActionRequestContent, - requestOptions?: Actions.RequestOptions, + requestOptions?: ActionsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__test(id, request, requestOptions)); } @@ -671,11 +635,17 @@ export class Actions { private async __test( id: string, request: Management.TestActionRequestContent, - requestOptions?: Actions.RequestOptions, + requestOptions?: ActionsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["create:actions"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -694,7 +664,9 @@ export class Actions { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: _response.body as Management.TestActionResponseContent, rawResponse: _response.rawResponse }; @@ -719,26 +691,6 @@ export class Actions { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling POST /actions/actions/{id}/test.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/actions/actions/{id}/test"); } } diff --git a/src/management/api/resources/actions/resources/executions/client/Client.ts b/src/management/api/resources/actions/resources/executions/client/Client.ts index c534f0e428..c207232caf 100644 --- a/src/management/api/resources/actions/resources/executions/client/Client.ts +++ b/src/management/api/resources/actions/resources/executions/client/Client.ts @@ -1,30 +1,32 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../core/headers.js"; import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; +import * as environments from "../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../errors/index.js"; +import * as Management from "../../../../../index.js"; -export declare namespace Executions { +export declare namespace ExecutionsClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Executions { - protected readonly _options: Executions.Options; +export class ExecutionsClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: Executions.Options) { - this._options = _options; + constructor(options: ExecutionsClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** * Retrieve information about a specific execution of a trigger. Relevant execution IDs will be included in tenant logs generated as part of that authentication flow. Executions will only be stored for 10 days after their creation. * * @param {string} id - The ID of the execution to retrieve. - * @param {Executions.RequestOptions} requestOptions - Request-specific configuration. + * @param {ExecutionsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -37,18 +39,24 @@ export class Executions { */ public get( id: string, - requestOptions?: Executions.RequestOptions, + requestOptions?: ExecutionsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__get(id, requestOptions)); } private async __get( id: string, - requestOptions?: Executions.RequestOptions, + requestOptions?: ExecutionsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:actions"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -64,7 +72,9 @@ export class Executions { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -94,24 +104,6 @@ export class Executions { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /actions/executions/{id}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/actions/executions/{id}"); } } diff --git a/src/management/api/resources/actions/resources/index.ts b/src/management/api/resources/actions/resources/index.ts index 68bafa983f..60054fdef7 100644 --- a/src/management/api/resources/actions/resources/index.ts +++ b/src/management/api/resources/actions/resources/index.ts @@ -1,3 +1,3 @@ -export * as versions from "./versions/index.js"; export * as executions from "./executions/index.js"; export * as triggers from "./triggers/index.js"; +export * as versions from "./versions/index.js"; diff --git a/src/management/api/resources/actions/resources/triggers/client/Client.ts b/src/management/api/resources/actions/resources/triggers/client/Client.ts index 18213fcb59..0cb65df190 100644 --- a/src/management/api/resources/actions/resources/triggers/client/Client.ts +++ b/src/management/api/resources/actions/resources/triggers/client/Client.ts @@ -1,35 +1,37 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../core/headers.js"; import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; +import * as environments from "../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../errors/index.js"; -import { Bindings } from "../resources/bindings/client/Client.js"; +import * as Management from "../../../../../index.js"; +import { BindingsClient } from "../resources/bindings/client/Client.js"; -export declare namespace Triggers { +export declare namespace TriggersClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Triggers { - protected readonly _options: Triggers.Options; - protected _bindings: Bindings | undefined; +export class TriggersClient { + protected readonly _options: NormalizedClientOptionsWithAuth; + protected _bindings: BindingsClient | undefined; - constructor(_options: Triggers.Options) { - this._options = _options; + constructor(options: TriggersClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } - public get bindings(): Bindings { - return (this._bindings ??= new Bindings(this._options)); + public get bindings(): BindingsClient { + return (this._bindings ??= new BindingsClient(this._options)); } /** * Retrieve the set of triggers currently available within actions. A trigger is an extensibility point to which actions can be bound. * - * @param {Triggers.RequestOptions} requestOptions - Request-specific configuration. + * @param {TriggersClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -40,17 +42,23 @@ export class Triggers { * await client.actions.triggers.list() */ public list( - requestOptions?: Triggers.RequestOptions, + requestOptions?: TriggersClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__list(requestOptions)); } private async __list( - requestOptions?: Triggers.RequestOptions, + requestOptions?: TriggersClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:actions"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -66,7 +74,9 @@ export class Triggers { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -94,24 +104,6 @@ export class Triggers { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /actions/triggers."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/actions/triggers"); } } diff --git a/src/management/api/resources/actions/resources/triggers/resources/bindings/client/Client.ts b/src/management/api/resources/actions/resources/triggers/resources/bindings/client/Client.ts index a3d94c44c4..e7a0616b7c 100644 --- a/src/management/api/resources/actions/resources/triggers/resources/bindings/client/Client.ts +++ b/src/management/api/resources/actions/resources/triggers/resources/bindings/client/Client.ts @@ -1,23 +1,28 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../../../BaseClient.js"; -import * as environments from "../../../../../../../../environments.js"; +import { + type NormalizedClientOptionsWithAuth, + normalizeClientOptionsWithAuth, +} from "../../../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../../../core/headers.js"; import * as core from "../../../../../../../../core/index.js"; -import * as Management from "../../../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../../../core/headers.js"; +import * as environments from "../../../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../../../errors/index.js"; +import * as Management from "../../../../../../../index.js"; -export declare namespace Bindings { +export declare namespace BindingsClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Bindings { - protected readonly _options: Bindings.Options; +export class BindingsClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: Bindings.Options) { - this._options = _options; + constructor(options: BindingsClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** @@ -25,7 +30,7 @@ export class Bindings { * * @param {Management.ActionTriggerTypeEnum} triggerId - An actions extensibility point. * @param {Management.ListActionTriggerBindingsRequestParameters} request - * @param {Bindings.RequestOptions} requestOptions - Request-specific configuration. + * @param {BindingsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -41,23 +46,29 @@ export class Bindings { public async list( triggerId: Management.ActionTriggerTypeEnum, request: Management.ListActionTriggerBindingsRequestParameters = {}, - requestOptions?: Bindings.RequestOptions, + requestOptions?: BindingsClient.RequestOptions, ): Promise> { const list = core.HttpResponsePromise.interceptFunction( async ( request: Management.ListActionTriggerBindingsRequestParameters, ): Promise> => { - const { page = 0, per_page: perPage = 50 } = request; + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:actions"] }], + }; + const { page, per_page: perPage = 50 } = request; const _queryParams: Record = {}; if (page !== undefined) { - _queryParams["page"] = page?.toString() ?? null; + _queryParams.page = page?.toString() ?? null; } if (perPage !== undefined) { - _queryParams["per_page"] = perPage?.toString() ?? null; + _queryParams.per_page = perPage?.toString() ?? null; } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -73,7 +84,9 @@ export class Bindings { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -108,34 +121,23 @@ export class Bindings { }); } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /actions/triggers/{triggerId}/bindings.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "GET", + "/actions/triggers/{triggerId}/bindings", + ); }, ); - let _offset = request?.page != null ? request?.page : 0; + let _offset = request?.page != null ? request?.page : 1; const dataWithRawResponse = await list(request).withRawResponse(); return new core.Page({ response: dataWithRawResponse.data, rawResponse: dataWithRawResponse.rawResponse, - hasNextPage: (response) => (response?.bindings ?? []).length >= (request?.per_page ?? 1), + hasNextPage: (response) => (response?.bindings ?? []).length > 0, getItems: (response) => response?.bindings ?? [], - loadPage: (response) => { - _offset += response?.bindings != null ? response.bindings.length : 1; + loadPage: (_response) => { + _offset += 1; return list(core.setObjectProperty(request, "page", _offset)); }, }); @@ -146,7 +148,7 @@ export class Bindings { * * @param {Management.ActionTriggerTypeEnum} triggerId - An actions extensibility point. * @param {Management.UpdateActionBindingsRequestContent} request - * @param {Bindings.RequestOptions} requestOptions - Request-specific configuration. + * @param {BindingsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -159,7 +161,7 @@ export class Bindings { public updateMany( triggerId: Management.ActionTriggerTypeEnum, request: Management.UpdateActionBindingsRequestContent = {}, - requestOptions?: Bindings.RequestOptions, + requestOptions?: BindingsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__updateMany(triggerId, request, requestOptions)); } @@ -167,11 +169,17 @@ export class Bindings { private async __updateMany( triggerId: Management.ActionTriggerTypeEnum, request: Management.UpdateActionBindingsRequestContent = {}, - requestOptions?: Bindings.RequestOptions, + requestOptions?: BindingsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:actions"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -190,7 +198,9 @@ export class Bindings { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -218,26 +228,11 @@ export class Bindings { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling PATCH /actions/triggers/{triggerId}/bindings.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "PATCH", + "/actions/triggers/{triggerId}/bindings", + ); } } diff --git a/src/management/api/resources/actions/resources/versions/client/Client.ts b/src/management/api/resources/actions/resources/versions/client/Client.ts index 285df46ea7..bd2ea9d6a2 100644 --- a/src/management/api/resources/actions/resources/versions/client/Client.ts +++ b/src/management/api/resources/actions/resources/versions/client/Client.ts @@ -1,23 +1,25 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../core/headers.js"; import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; +import * as environments from "../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../errors/index.js"; +import * as Management from "../../../../../index.js"; -export declare namespace Versions { +export declare namespace VersionsClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Versions { - protected readonly _options: Versions.Options; +export class VersionsClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: Versions.Options) { - this._options = _options; + constructor(options: VersionsClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** @@ -25,7 +27,7 @@ export class Versions { * * @param {string} actionId - The ID of the action. * @param {Management.ListActionVersionsRequestParameters} request - * @param {Versions.RequestOptions} requestOptions - Request-specific configuration. + * @param {VersionsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -41,23 +43,29 @@ export class Versions { public async list( actionId: string, request: Management.ListActionVersionsRequestParameters = {}, - requestOptions?: Versions.RequestOptions, + requestOptions?: VersionsClient.RequestOptions, ): Promise> { const list = core.HttpResponsePromise.interceptFunction( async ( request: Management.ListActionVersionsRequestParameters, ): Promise> => { - const { page = 0, per_page: perPage = 50 } = request; + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:actions"] }], + }; + const { page, per_page: perPage = 50 } = request; const _queryParams: Record = {}; if (page !== undefined) { - _queryParams["page"] = page?.toString() ?? null; + _queryParams.page = page?.toString() ?? null; } if (perPage !== undefined) { - _queryParams["per_page"] = perPage?.toString() ?? null; + _queryParams.per_page = perPage?.toString() ?? null; } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -73,7 +81,9 @@ export class Versions { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -108,34 +118,23 @@ export class Versions { }); } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /actions/actions/{actionId}/versions.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "GET", + "/actions/actions/{actionId}/versions", + ); }, ); - let _offset = request?.page != null ? request?.page : 0; + let _offset = request?.page != null ? request?.page : 1; const dataWithRawResponse = await list(request).withRawResponse(); return new core.Page({ response: dataWithRawResponse.data, rawResponse: dataWithRawResponse.rawResponse, - hasNextPage: (response) => (response?.versions ?? []).length >= (request?.per_page ?? 1), + hasNextPage: (response) => (response?.versions ?? []).length > 0, getItems: (response) => response?.versions ?? [], - loadPage: (response) => { - _offset += response?.versions != null ? response.versions.length : 1; + loadPage: (_response) => { + _offset += 1; return list(core.setObjectProperty(request, "page", _offset)); }, }); @@ -146,7 +145,7 @@ export class Versions { * * @param {string} actionId - The ID of the action. * @param {string} id - The ID of the action version. - * @param {Versions.RequestOptions} requestOptions - Request-specific configuration. + * @param {VersionsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -160,7 +159,7 @@ export class Versions { public get( actionId: string, id: string, - requestOptions?: Versions.RequestOptions, + requestOptions?: VersionsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__get(actionId, id, requestOptions)); } @@ -168,11 +167,17 @@ export class Versions { private async __get( actionId: string, id: string, - requestOptions?: Versions.RequestOptions, + requestOptions?: VersionsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:actions"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -188,7 +193,9 @@ export class Versions { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -218,23 +225,12 @@ export class Versions { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /actions/actions/{actionId}/versions/{id}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "GET", + "/actions/actions/{actionId}/versions/{id}", + ); } /** @@ -243,7 +239,7 @@ export class Versions { * @param {string} actionId - The ID of an action. * @param {string} id - The ID of an action version. * @param {Management.DeployActionVersionRequestContent | undefined} request - * @param {Versions.RequestOptions} requestOptions - Request-specific configuration. + * @param {VersionsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -257,7 +253,7 @@ export class Versions { actionId: string, id: string, request?: Management.DeployActionVersionRequestContent | undefined, - requestOptions?: Versions.RequestOptions, + requestOptions?: VersionsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__deploy(actionId, id, request, requestOptions)); } @@ -266,11 +262,17 @@ export class Versions { actionId: string, id: string, request?: Management.DeployActionVersionRequestContent | undefined, - requestOptions?: Versions.RequestOptions, + requestOptions?: VersionsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["create:actions"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -289,7 +291,9 @@ export class Versions { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -317,26 +321,11 @@ export class Versions { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling POST /actions/actions/{actionId}/versions/{id}/deploy.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "POST", + "/actions/actions/{actionId}/versions/{id}/deploy", + ); } } diff --git a/src/management/api/resources/anomaly/client/Client.ts b/src/management/api/resources/anomaly/client/Client.ts index 0e7c7fe3b8..fe638dd8dd 100644 --- a/src/management/api/resources/anomaly/client/Client.ts +++ b/src/management/api/resources/anomaly/client/Client.ts @@ -1,23 +1,22 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions } from "../../../../BaseClient.js"; -import * as environments from "../../../../environments.js"; -import * as core from "../../../../core/index.js"; -import { Blocks } from "../resources/blocks/client/Client.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../BaseClient.js"; +import { BlocksClient } from "../resources/blocks/client/Client.js"; -export declare namespace Anomaly { +export declare namespace AnomalyClient { export interface Options extends BaseClientOptions {} } -export class Anomaly { - protected readonly _options: Anomaly.Options; - protected _blocks: Blocks | undefined; +export class AnomalyClient { + protected readonly _options: NormalizedClientOptionsWithAuth; + protected _blocks: BlocksClient | undefined; - constructor(_options: Anomaly.Options) { - this._options = _options; + constructor(options: AnomalyClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } - public get blocks(): Blocks { - return (this._blocks ??= new Blocks(this._options)); + public get blocks(): BlocksClient { + return (this._blocks ??= new BlocksClient(this._options)); } } diff --git a/src/management/api/resources/anomaly/resources/blocks/client/Client.ts b/src/management/api/resources/anomaly/resources/blocks/client/Client.ts index 586ea3c7d2..751e2e845f 100644 --- a/src/management/api/resources/anomaly/resources/blocks/client/Client.ts +++ b/src/management/api/resources/anomaly/resources/blocks/client/Client.ts @@ -1,30 +1,32 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../core/headers.js"; import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; +import * as environments from "../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../errors/index.js"; +import * as Management from "../../../../../index.js"; -export declare namespace Blocks { +export declare namespace BlocksClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Blocks { - protected readonly _options: Blocks.Options; +export class BlocksClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: Blocks.Options) { - this._options = _options; + constructor(options: BlocksClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** * Check if the given IP address is blocked via the Suspicious IP Throttling due to multiple suspicious attempts. * * @param {Management.AnomalyIpFormat} id - IP address to check. - * @param {Blocks.RequestOptions} requestOptions - Request-specific configuration. + * @param {BlocksClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -37,18 +39,24 @@ export class Blocks { */ public checkIp( id: Management.AnomalyIpFormat, - requestOptions?: Blocks.RequestOptions, + requestOptions?: BlocksClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__checkIp(id, requestOptions)); } private async __checkIp( id: Management.AnomalyIpFormat, - requestOptions?: Blocks.RequestOptions, + requestOptions?: BlocksClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:anomaly_blocks"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -64,7 +72,9 @@ export class Blocks { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -91,28 +101,14 @@ export class Blocks { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /anomaly/blocks/ips/{id}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/anomaly/blocks/ips/{id}"); } /** * Remove a block imposed by Suspicious IP Throttling for the given IP address. * * @param {Management.AnomalyIpFormat} id - IP address to unblock. - * @param {Blocks.RequestOptions} requestOptions - Request-specific configuration. + * @param {BlocksClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -124,18 +120,24 @@ export class Blocks { */ public unblockIp( id: Management.AnomalyIpFormat, - requestOptions?: Blocks.RequestOptions, + requestOptions?: BlocksClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__unblockIp(id, requestOptions)); } private async __unblockIp( id: Management.AnomalyIpFormat, - requestOptions?: Blocks.RequestOptions, + requestOptions?: BlocksClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["delete:anomaly_blocks"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -151,7 +153,9 @@ export class Blocks { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -176,26 +180,6 @@ export class Blocks { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling DELETE /anomaly/blocks/ips/{id}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError(_response.error, _response.rawResponse, "DELETE", "/anomaly/blocks/ips/{id}"); } } diff --git a/src/management/api/resources/attackProtection/client/Client.ts b/src/management/api/resources/attackProtection/client/Client.ts index faa7f9ab1e..8db0de011c 100644 --- a/src/management/api/resources/attackProtection/client/Client.ts +++ b/src/management/api/resources/attackProtection/client/Client.ts @@ -1,47 +1,34 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions } from "../../../../BaseClient.js"; -import * as environments from "../../../../environments.js"; -import * as core from "../../../../core/index.js"; -import { BotDetection } from "../resources/botDetection/client/Client.js"; -import { BreachedPasswordDetection } from "../resources/breachedPasswordDetection/client/Client.js"; -import { BruteForceProtection } from "../resources/bruteForceProtection/client/Client.js"; -import { Captcha } from "../resources/captcha/client/Client.js"; -import { SuspiciousIpThrottling } from "../resources/suspiciousIpThrottling/client/Client.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../BaseClient.js"; +import { BreachedPasswordDetectionClient } from "../resources/breachedPasswordDetection/client/Client.js"; +import { BruteForceProtectionClient } from "../resources/bruteForceProtection/client/Client.js"; +import { SuspiciousIpThrottlingClient } from "../resources/suspiciousIpThrottling/client/Client.js"; -export declare namespace AttackProtection { +export declare namespace AttackProtectionClient { export interface Options extends BaseClientOptions {} } -export class AttackProtection { - protected readonly _options: AttackProtection.Options; - protected _botDetection: BotDetection | undefined; - protected _breachedPasswordDetection: BreachedPasswordDetection | undefined; - protected _bruteForceProtection: BruteForceProtection | undefined; - protected _captcha: Captcha | undefined; - protected _suspiciousIpThrottling: SuspiciousIpThrottling | undefined; +export class AttackProtectionClient { + protected readonly _options: NormalizedClientOptionsWithAuth; + protected _breachedPasswordDetection: BreachedPasswordDetectionClient | undefined; + protected _bruteForceProtection: BruteForceProtectionClient | undefined; + protected _suspiciousIpThrottling: SuspiciousIpThrottlingClient | undefined; - constructor(_options: AttackProtection.Options) { - this._options = _options; + constructor(options: AttackProtectionClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } - public get botDetection(): BotDetection { - return (this._botDetection ??= new BotDetection(this._options)); + public get breachedPasswordDetection(): BreachedPasswordDetectionClient { + return (this._breachedPasswordDetection ??= new BreachedPasswordDetectionClient(this._options)); } - public get breachedPasswordDetection(): BreachedPasswordDetection { - return (this._breachedPasswordDetection ??= new BreachedPasswordDetection(this._options)); + public get bruteForceProtection(): BruteForceProtectionClient { + return (this._bruteForceProtection ??= new BruteForceProtectionClient(this._options)); } - public get bruteForceProtection(): BruteForceProtection { - return (this._bruteForceProtection ??= new BruteForceProtection(this._options)); - } - - public get captcha(): Captcha { - return (this._captcha ??= new Captcha(this._options)); - } - - public get suspiciousIpThrottling(): SuspiciousIpThrottling { - return (this._suspiciousIpThrottling ??= new SuspiciousIpThrottling(this._options)); + public get suspiciousIpThrottling(): SuspiciousIpThrottlingClient { + return (this._suspiciousIpThrottling ??= new SuspiciousIpThrottlingClient(this._options)); } } diff --git a/src/management/api/resources/attackProtection/resources/botDetection/client/Client.ts b/src/management/api/resources/attackProtection/resources/botDetection/client/Client.ts deleted file mode 100644 index e192f77da5..0000000000 --- a/src/management/api/resources/attackProtection/resources/botDetection/client/Client.ts +++ /dev/null @@ -1,209 +0,0 @@ -// This file was auto-generated by Fern from our API Definition. - -import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; -import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; -import * as errors from "../../../../../../errors/index.js"; - -export declare namespace BotDetection { - export interface Options extends BaseClientOptions {} - - export interface RequestOptions extends BaseRequestOptions {} -} - -export class BotDetection { - protected readonly _options: BotDetection.Options; - - constructor(_options: BotDetection.Options) { - this._options = _options; - } - - /** - * Get the Bot Detection configuration of your tenant. - * - * @param {BotDetection.RequestOptions} requestOptions - Request-specific configuration. - * - * @throws {@link Management.UnauthorizedError} - * @throws {@link Management.ForbiddenError} - * @throws {@link Management.NotFoundError} - * @throws {@link Management.TooManyRequestsError} - * - * @example - * await client.attackProtection.botDetection.get() - */ - public get( - requestOptions?: BotDetection.RequestOptions, - ): core.HttpResponsePromise { - return core.HttpResponsePromise.fromPromise(this.__get(requestOptions)); - } - - private async __get( - requestOptions?: BotDetection.RequestOptions, - ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( - this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), - requestOptions?.headers, - ); - const _response = await (this._options.fetcher ?? core.fetcher)({ - url: core.url.join( - (await core.Supplier.get(this._options.baseUrl)) ?? - (await core.Supplier.get(this._options.environment)) ?? - environments.ManagementEnvironment.Default, - "attack-protection/bot-detection", - ), - method: "GET", - headers: _headers, - queryParameters: requestOptions?.queryParams, - timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, - maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, - abortSignal: requestOptions?.abortSignal, - fetchFn: this._options?.fetch, - }); - if (_response.ok) { - return { - data: _response.body as Management.GetBotDetectionSettingsResponseContent, - rawResponse: _response.rawResponse, - }; - } - - if (_response.error.reason === "status-code") { - switch (_response.error.statusCode) { - case 401: - throw new Management.UnauthorizedError(_response.error.body as unknown, _response.rawResponse); - case 403: - throw new Management.ForbiddenError(_response.error.body as unknown, _response.rawResponse); - case 404: - throw new Management.NotFoundError(_response.error.body as unknown, _response.rawResponse); - case 429: - throw new Management.TooManyRequestsError(_response.error.body as unknown, _response.rawResponse); - default: - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.body, - rawResponse: _response.rawResponse, - }); - } - } - - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /attack-protection/bot-detection.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - /** - * Update the Bot Detection configuration of your tenant. - * - * @param {Management.UpdateBotDetectionSettingsRequestContent} request - * @param {BotDetection.RequestOptions} requestOptions - Request-specific configuration. - * - * @throws {@link Management.BadRequestError} - * @throws {@link Management.UnauthorizedError} - * @throws {@link Management.ForbiddenError} - * @throws {@link Management.NotFoundError} - * @throws {@link Management.TooManyRequestsError} - * - * @example - * await client.attackProtection.botDetection.update() - */ - public update( - request: Management.UpdateBotDetectionSettingsRequestContent = {}, - requestOptions?: BotDetection.RequestOptions, - ): core.HttpResponsePromise { - return core.HttpResponsePromise.fromPromise(this.__update(request, requestOptions)); - } - - private async __update( - request: Management.UpdateBotDetectionSettingsRequestContent = {}, - requestOptions?: BotDetection.RequestOptions, - ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( - this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), - requestOptions?.headers, - ); - const _response = await (this._options.fetcher ?? core.fetcher)({ - url: core.url.join( - (await core.Supplier.get(this._options.baseUrl)) ?? - (await core.Supplier.get(this._options.environment)) ?? - environments.ManagementEnvironment.Default, - "attack-protection/bot-detection", - ), - method: "PATCH", - headers: _headers, - contentType: "application/json", - queryParameters: requestOptions?.queryParams, - requestType: "json", - body: request, - timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, - maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, - abortSignal: requestOptions?.abortSignal, - fetchFn: this._options?.fetch, - }); - if (_response.ok) { - return { - data: _response.body as Management.UpdateBotDetectionSettingsResponseContent, - rawResponse: _response.rawResponse, - }; - } - - if (_response.error.reason === "status-code") { - switch (_response.error.statusCode) { - case 400: - throw new Management.BadRequestError(_response.error.body as unknown, _response.rawResponse); - case 401: - throw new Management.UnauthorizedError(_response.error.body as unknown, _response.rawResponse); - case 403: - throw new Management.ForbiddenError(_response.error.body as unknown, _response.rawResponse); - case 404: - throw new Management.NotFoundError(_response.error.body as unknown, _response.rawResponse); - case 429: - throw new Management.TooManyRequestsError(_response.error.body as unknown, _response.rawResponse); - default: - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.body, - rawResponse: _response.rawResponse, - }); - } - } - - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling PATCH /attack-protection/bot-detection.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; - } -} diff --git a/src/management/api/resources/attackProtection/resources/botDetection/client/index.ts b/src/management/api/resources/attackProtection/resources/botDetection/client/index.ts deleted file mode 100644 index cb0ff5c3b5..0000000000 --- a/src/management/api/resources/attackProtection/resources/botDetection/client/index.ts +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/src/management/api/resources/attackProtection/resources/botDetection/index.ts b/src/management/api/resources/attackProtection/resources/botDetection/index.ts deleted file mode 100644 index 914b8c3c72..0000000000 --- a/src/management/api/resources/attackProtection/resources/botDetection/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./client/index.js"; diff --git a/src/management/api/resources/attackProtection/resources/breachedPasswordDetection/client/Client.ts b/src/management/api/resources/attackProtection/resources/breachedPasswordDetection/client/Client.ts index b5f0c5b963..956a864fd5 100644 --- a/src/management/api/resources/attackProtection/resources/breachedPasswordDetection/client/Client.ts +++ b/src/management/api/resources/attackProtection/resources/breachedPasswordDetection/client/Client.ts @@ -1,29 +1,31 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../core/headers.js"; import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; +import * as environments from "../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../errors/index.js"; +import * as Management from "../../../../../index.js"; -export declare namespace BreachedPasswordDetection { +export declare namespace BreachedPasswordDetectionClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class BreachedPasswordDetection { - protected readonly _options: BreachedPasswordDetection.Options; +export class BreachedPasswordDetectionClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: BreachedPasswordDetection.Options) { - this._options = _options; + constructor(options: BreachedPasswordDetectionClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** * Retrieve details of the Breached Password Detection configuration of your tenant. * - * @param {BreachedPasswordDetection.RequestOptions} requestOptions - Request-specific configuration. + * @param {BreachedPasswordDetectionClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.UnauthorizedError} * @throws {@link Management.ForbiddenError} @@ -33,17 +35,23 @@ export class BreachedPasswordDetection { * await client.attackProtection.breachedPasswordDetection.get() */ public get( - requestOptions?: BreachedPasswordDetection.RequestOptions, + requestOptions?: BreachedPasswordDetectionClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__get(requestOptions)); } private async __get( - requestOptions?: BreachedPasswordDetection.RequestOptions, + requestOptions?: BreachedPasswordDetectionClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:attack_protection"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -59,7 +67,9 @@ export class BreachedPasswordDetection { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -85,30 +95,19 @@ export class BreachedPasswordDetection { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /attack-protection/breached-password-detection.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "GET", + "/attack-protection/breached-password-detection", + ); } /** * Update details of the Breached Password Detection configuration of your tenant. * * @param {Management.UpdateBreachedPasswordDetectionSettingsRequestContent} request - * @param {BreachedPasswordDetection.RequestOptions} requestOptions - Request-specific configuration. + * @param {BreachedPasswordDetectionClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -120,18 +119,24 @@ export class BreachedPasswordDetection { */ public update( request: Management.UpdateBreachedPasswordDetectionSettingsRequestContent = {}, - requestOptions?: BreachedPasswordDetection.RequestOptions, + requestOptions?: BreachedPasswordDetectionClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__update(request, requestOptions)); } private async __update( request: Management.UpdateBreachedPasswordDetectionSettingsRequestContent = {}, - requestOptions?: BreachedPasswordDetection.RequestOptions, + requestOptions?: BreachedPasswordDetectionClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:attack_protection"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -150,7 +155,9 @@ export class BreachedPasswordDetection { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -178,26 +185,11 @@ export class BreachedPasswordDetection { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling PATCH /attack-protection/breached-password-detection.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "PATCH", + "/attack-protection/breached-password-detection", + ); } } diff --git a/src/management/api/resources/attackProtection/resources/bruteForceProtection/client/Client.ts b/src/management/api/resources/attackProtection/resources/bruteForceProtection/client/Client.ts index 6dccb82a2c..0b43034301 100644 --- a/src/management/api/resources/attackProtection/resources/bruteForceProtection/client/Client.ts +++ b/src/management/api/resources/attackProtection/resources/bruteForceProtection/client/Client.ts @@ -1,29 +1,31 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../core/headers.js"; import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; +import * as environments from "../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../errors/index.js"; +import * as Management from "../../../../../index.js"; -export declare namespace BruteForceProtection { +export declare namespace BruteForceProtectionClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class BruteForceProtection { - protected readonly _options: BruteForceProtection.Options; +export class BruteForceProtectionClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: BruteForceProtection.Options) { - this._options = _options; + constructor(options: BruteForceProtectionClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** * Retrieve details of the Brute-force Protection configuration of your tenant. * - * @param {BruteForceProtection.RequestOptions} requestOptions - Request-specific configuration. + * @param {BruteForceProtectionClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.UnauthorizedError} * @throws {@link Management.ForbiddenError} @@ -33,17 +35,23 @@ export class BruteForceProtection { * await client.attackProtection.bruteForceProtection.get() */ public get( - requestOptions?: BruteForceProtection.RequestOptions, + requestOptions?: BruteForceProtectionClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__get(requestOptions)); } private async __get( - requestOptions?: BruteForceProtection.RequestOptions, + requestOptions?: BruteForceProtectionClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:attack_protection"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -59,7 +67,9 @@ export class BruteForceProtection { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -85,30 +95,19 @@ export class BruteForceProtection { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /attack-protection/brute-force-protection.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "GET", + "/attack-protection/brute-force-protection", + ); } /** * Update the Brute-force Protection configuration of your tenant. * * @param {Management.UpdateBruteForceSettingsRequestContent} request - * @param {BruteForceProtection.RequestOptions} requestOptions - Request-specific configuration. + * @param {BruteForceProtectionClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -120,18 +119,24 @@ export class BruteForceProtection { */ public update( request: Management.UpdateBruteForceSettingsRequestContent = {}, - requestOptions?: BruteForceProtection.RequestOptions, + requestOptions?: BruteForceProtectionClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__update(request, requestOptions)); } private async __update( request: Management.UpdateBruteForceSettingsRequestContent = {}, - requestOptions?: BruteForceProtection.RequestOptions, + requestOptions?: BruteForceProtectionClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:attack_protection"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -150,7 +155,9 @@ export class BruteForceProtection { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -178,26 +185,11 @@ export class BruteForceProtection { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling PATCH /attack-protection/brute-force-protection.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "PATCH", + "/attack-protection/brute-force-protection", + ); } } diff --git a/src/management/api/resources/attackProtection/resources/captcha/client/Client.ts b/src/management/api/resources/attackProtection/resources/captcha/client/Client.ts deleted file mode 100644 index 3896913121..0000000000 --- a/src/management/api/resources/attackProtection/resources/captcha/client/Client.ts +++ /dev/null @@ -1,206 +0,0 @@ -// This file was auto-generated by Fern from our API Definition. - -import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; -import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; -import * as errors from "../../../../../../errors/index.js"; - -export declare namespace Captcha { - export interface Options extends BaseClientOptions {} - - export interface RequestOptions extends BaseRequestOptions {} -} - -export class Captcha { - protected readonly _options: Captcha.Options; - - constructor(_options: Captcha.Options) { - this._options = _options; - } - - /** - * Get the CAPTCHA configuration for your client. - * - * @param {Captcha.RequestOptions} requestOptions - Request-specific configuration. - * - * @throws {@link Management.UnauthorizedError} - * @throws {@link Management.ForbiddenError} - * @throws {@link Management.NotFoundError} - * @throws {@link Management.TooManyRequestsError} - * - * @example - * await client.attackProtection.captcha.get() - */ - public get( - requestOptions?: Captcha.RequestOptions, - ): core.HttpResponsePromise { - return core.HttpResponsePromise.fromPromise(this.__get(requestOptions)); - } - - private async __get( - requestOptions?: Captcha.RequestOptions, - ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( - this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), - requestOptions?.headers, - ); - const _response = await (this._options.fetcher ?? core.fetcher)({ - url: core.url.join( - (await core.Supplier.get(this._options.baseUrl)) ?? - (await core.Supplier.get(this._options.environment)) ?? - environments.ManagementEnvironment.Default, - "attack-protection/captcha", - ), - method: "GET", - headers: _headers, - queryParameters: requestOptions?.queryParams, - timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, - maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, - abortSignal: requestOptions?.abortSignal, - fetchFn: this._options?.fetch, - }); - if (_response.ok) { - return { - data: _response.body as Management.GetAttackProtectionCaptchaResponseContent, - rawResponse: _response.rawResponse, - }; - } - - if (_response.error.reason === "status-code") { - switch (_response.error.statusCode) { - case 401: - throw new Management.UnauthorizedError(_response.error.body as unknown, _response.rawResponse); - case 403: - throw new Management.ForbiddenError(_response.error.body as unknown, _response.rawResponse); - case 404: - throw new Management.NotFoundError(_response.error.body as unknown, _response.rawResponse); - case 429: - throw new Management.TooManyRequestsError(_response.error.body as unknown, _response.rawResponse); - default: - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.body, - rawResponse: _response.rawResponse, - }); - } - } - - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /attack-protection/captcha.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - /** - * Update existing CAPTCHA configuration for your client. - * - * @param {Management.UpdateAttackProtectionCaptchaRequestContent} request - * @param {Captcha.RequestOptions} requestOptions - Request-specific configuration. - * - * @throws {@link Management.UnauthorizedError} - * @throws {@link Management.ForbiddenError} - * @throws {@link Management.NotFoundError} - * @throws {@link Management.TooManyRequestsError} - * - * @example - * await client.attackProtection.captcha.update() - */ - public update( - request: Management.UpdateAttackProtectionCaptchaRequestContent = {}, - requestOptions?: Captcha.RequestOptions, - ): core.HttpResponsePromise { - return core.HttpResponsePromise.fromPromise(this.__update(request, requestOptions)); - } - - private async __update( - request: Management.UpdateAttackProtectionCaptchaRequestContent = {}, - requestOptions?: Captcha.RequestOptions, - ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( - this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), - requestOptions?.headers, - ); - const _response = await (this._options.fetcher ?? core.fetcher)({ - url: core.url.join( - (await core.Supplier.get(this._options.baseUrl)) ?? - (await core.Supplier.get(this._options.environment)) ?? - environments.ManagementEnvironment.Default, - "attack-protection/captcha", - ), - method: "PATCH", - headers: _headers, - contentType: "application/json", - queryParameters: requestOptions?.queryParams, - requestType: "json", - body: request, - timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, - maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, - abortSignal: requestOptions?.abortSignal, - fetchFn: this._options?.fetch, - }); - if (_response.ok) { - return { - data: _response.body as Management.UpdateAttackProtectionCaptchaResponseContent, - rawResponse: _response.rawResponse, - }; - } - - if (_response.error.reason === "status-code") { - switch (_response.error.statusCode) { - case 401: - throw new Management.UnauthorizedError(_response.error.body as unknown, _response.rawResponse); - case 403: - throw new Management.ForbiddenError(_response.error.body as unknown, _response.rawResponse); - case 404: - throw new Management.NotFoundError(_response.error.body as unknown, _response.rawResponse); - case 429: - throw new Management.TooManyRequestsError(_response.error.body as unknown, _response.rawResponse); - default: - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.body, - rawResponse: _response.rawResponse, - }); - } - } - - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling PATCH /attack-protection/captcha.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; - } -} diff --git a/src/management/api/resources/attackProtection/resources/captcha/client/index.ts b/src/management/api/resources/attackProtection/resources/captcha/client/index.ts deleted file mode 100644 index cb0ff5c3b5..0000000000 --- a/src/management/api/resources/attackProtection/resources/captcha/client/index.ts +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/src/management/api/resources/attackProtection/resources/captcha/index.ts b/src/management/api/resources/attackProtection/resources/captcha/index.ts deleted file mode 100644 index 914b8c3c72..0000000000 --- a/src/management/api/resources/attackProtection/resources/captcha/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./client/index.js"; diff --git a/src/management/api/resources/attackProtection/resources/index.ts b/src/management/api/resources/attackProtection/resources/index.ts index 22cff326c9..5948aa78d3 100644 --- a/src/management/api/resources/attackProtection/resources/index.ts +++ b/src/management/api/resources/attackProtection/resources/index.ts @@ -1,5 +1,3 @@ -export * as botDetection from "./botDetection/index.js"; export * as breachedPasswordDetection from "./breachedPasswordDetection/index.js"; export * as bruteForceProtection from "./bruteForceProtection/index.js"; -export * as captcha from "./captcha/index.js"; export * as suspiciousIpThrottling from "./suspiciousIpThrottling/index.js"; diff --git a/src/management/api/resources/attackProtection/resources/suspiciousIpThrottling/client/Client.ts b/src/management/api/resources/attackProtection/resources/suspiciousIpThrottling/client/Client.ts index 71d79cfee7..7187dbc724 100644 --- a/src/management/api/resources/attackProtection/resources/suspiciousIpThrottling/client/Client.ts +++ b/src/management/api/resources/attackProtection/resources/suspiciousIpThrottling/client/Client.ts @@ -1,29 +1,31 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../core/headers.js"; import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; +import * as environments from "../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../errors/index.js"; +import * as Management from "../../../../../index.js"; -export declare namespace SuspiciousIpThrottling { +export declare namespace SuspiciousIpThrottlingClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class SuspiciousIpThrottling { - protected readonly _options: SuspiciousIpThrottling.Options; +export class SuspiciousIpThrottlingClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: SuspiciousIpThrottling.Options) { - this._options = _options; + constructor(options: SuspiciousIpThrottlingClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** * Retrieve details of the Suspicious IP Throttling configuration of your tenant. * - * @param {SuspiciousIpThrottling.RequestOptions} requestOptions - Request-specific configuration. + * @param {SuspiciousIpThrottlingClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.UnauthorizedError} * @throws {@link Management.ForbiddenError} @@ -33,17 +35,23 @@ export class SuspiciousIpThrottling { * await client.attackProtection.suspiciousIpThrottling.get() */ public get( - requestOptions?: SuspiciousIpThrottling.RequestOptions, + requestOptions?: SuspiciousIpThrottlingClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__get(requestOptions)); } private async __get( - requestOptions?: SuspiciousIpThrottling.RequestOptions, + requestOptions?: SuspiciousIpThrottlingClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:attack_protection"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -59,7 +67,9 @@ export class SuspiciousIpThrottling { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -85,30 +95,19 @@ export class SuspiciousIpThrottling { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /attack-protection/suspicious-ip-throttling.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "GET", + "/attack-protection/suspicious-ip-throttling", + ); } /** * Update the details of the Suspicious IP Throttling configuration of your tenant. * * @param {Management.UpdateSuspiciousIpThrottlingSettingsRequestContent} request - * @param {SuspiciousIpThrottling.RequestOptions} requestOptions - Request-specific configuration. + * @param {SuspiciousIpThrottlingClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -120,18 +119,24 @@ export class SuspiciousIpThrottling { */ public update( request: Management.UpdateSuspiciousIpThrottlingSettingsRequestContent = {}, - requestOptions?: SuspiciousIpThrottling.RequestOptions, + requestOptions?: SuspiciousIpThrottlingClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__update(request, requestOptions)); } private async __update( request: Management.UpdateSuspiciousIpThrottlingSettingsRequestContent = {}, - requestOptions?: SuspiciousIpThrottling.RequestOptions, + requestOptions?: SuspiciousIpThrottlingClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:attack_protection"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -150,7 +155,9 @@ export class SuspiciousIpThrottling { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -178,26 +185,11 @@ export class SuspiciousIpThrottling { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling PATCH /attack-protection/suspicious-ip-throttling.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "PATCH", + "/attack-protection/suspicious-ip-throttling", + ); } } diff --git a/src/management/api/resources/branding/client/Client.ts b/src/management/api/resources/branding/client/Client.ts index 26f970c179..502c08e603 100644 --- a/src/management/api/resources/branding/client/Client.ts +++ b/src/management/api/resources/branding/client/Client.ts @@ -1,47 +1,49 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../BaseClient.js"; -import * as environments from "../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../core/headers.js"; import * as core from "../../../../core/index.js"; -import * as Management from "../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../core/headers.js"; +import * as environments from "../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../errors/index.js"; -import { Templates } from "../resources/templates/client/Client.js"; -import { Themes } from "../resources/themes/client/Client.js"; -import { Phone } from "../resources/phone/client/Client.js"; +import * as Management from "../../../index.js"; +import { PhoneClient } from "../resources/phone/client/Client.js"; +import { TemplatesClient } from "../resources/templates/client/Client.js"; +import { ThemesClient } from "../resources/themes/client/Client.js"; -export declare namespace Branding { +export declare namespace BrandingClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Branding { - protected readonly _options: Branding.Options; - protected _templates: Templates | undefined; - protected _themes: Themes | undefined; - protected _phone: Phone | undefined; +export class BrandingClient { + protected readonly _options: NormalizedClientOptionsWithAuth; + protected _templates: TemplatesClient | undefined; + protected _themes: ThemesClient | undefined; + protected _phone: PhoneClient | undefined; - constructor(_options: Branding.Options) { - this._options = _options; + constructor(options: BrandingClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } - public get templates(): Templates { - return (this._templates ??= new Templates(this._options)); + public get templates(): TemplatesClient { + return (this._templates ??= new TemplatesClient(this._options)); } - public get themes(): Themes { - return (this._themes ??= new Themes(this._options)); + public get themes(): ThemesClient { + return (this._themes ??= new ThemesClient(this._options)); } - public get phone(): Phone { - return (this._phone ??= new Phone(this._options)); + public get phone(): PhoneClient { + return (this._phone ??= new PhoneClient(this._options)); } /** * Retrieve branding settings. * - * @param {Branding.RequestOptions} requestOptions - Request-specific configuration. + * @param {BrandingClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.UnauthorizedError} * @throws {@link Management.ForbiddenError} @@ -51,17 +53,23 @@ export class Branding { * await client.branding.get() */ public get( - requestOptions?: Branding.RequestOptions, + requestOptions?: BrandingClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__get(requestOptions)); } private async __get( - requestOptions?: Branding.RequestOptions, + requestOptions?: BrandingClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:branding"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -77,7 +85,9 @@ export class Branding { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -103,28 +113,14 @@ export class Branding { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /branding."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/branding"); } /** * Update branding settings. * * @param {Management.UpdateBrandingRequestContent} request - * @param {Branding.RequestOptions} requestOptions - Request-specific configuration. + * @param {BrandingClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -136,18 +132,24 @@ export class Branding { */ public update( request: Management.UpdateBrandingRequestContent = {}, - requestOptions?: Branding.RequestOptions, + requestOptions?: BrandingClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__update(request, requestOptions)); } private async __update( request: Management.UpdateBrandingRequestContent = {}, - requestOptions?: Branding.RequestOptions, + requestOptions?: BrandingClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:branding"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -166,7 +168,9 @@ export class Branding { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -194,24 +198,6 @@ export class Branding { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling PATCH /branding."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError(_response.error, _response.rawResponse, "PATCH", "/branding"); } } diff --git a/src/management/api/resources/branding/resources/index.ts b/src/management/api/resources/branding/resources/index.ts index 119ab270ef..d54418d584 100644 --- a/src/management/api/resources/branding/resources/index.ts +++ b/src/management/api/resources/branding/resources/index.ts @@ -1,3 +1,3 @@ +export * as phone from "./phone/index.js"; export * as templates from "./templates/index.js"; export * as themes from "./themes/index.js"; -export * as phone from "./phone/index.js"; diff --git a/src/management/api/resources/branding/resources/phone/client/Client.ts b/src/management/api/resources/branding/resources/phone/client/Client.ts index 2945c66e79..277395a703 100644 --- a/src/management/api/resources/branding/resources/phone/client/Client.ts +++ b/src/management/api/resources/branding/resources/phone/client/Client.ts @@ -1,29 +1,28 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; -import * as core from "../../../../../../core/index.js"; -import { Providers } from "../resources/providers/client/Client.js"; -import { Templates } from "../resources/templates/client/Client.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../../../BaseClient.js"; +import { ProvidersClient } from "../resources/providers/client/Client.js"; +import { TemplatesClient } from "../resources/templates/client/Client.js"; -export declare namespace Phone { +export declare namespace PhoneClient { export interface Options extends BaseClientOptions {} } -export class Phone { - protected readonly _options: Phone.Options; - protected _providers: Providers | undefined; - protected _templates: Templates | undefined; +export class PhoneClient { + protected readonly _options: NormalizedClientOptionsWithAuth; + protected _providers: ProvidersClient | undefined; + protected _templates: TemplatesClient | undefined; - constructor(_options: Phone.Options) { - this._options = _options; + constructor(options: PhoneClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } - public get providers(): Providers { - return (this._providers ??= new Providers(this._options)); + public get providers(): ProvidersClient { + return (this._providers ??= new ProvidersClient(this._options)); } - public get templates(): Templates { - return (this._templates ??= new Templates(this._options)); + public get templates(): TemplatesClient { + return (this._templates ??= new TemplatesClient(this._options)); } } diff --git a/src/management/api/resources/branding/resources/phone/resources/providers/client/Client.ts b/src/management/api/resources/branding/resources/phone/resources/providers/client/Client.ts index cb78f8e024..ad6059e9f0 100644 --- a/src/management/api/resources/branding/resources/phone/resources/providers/client/Client.ts +++ b/src/management/api/resources/branding/resources/phone/resources/providers/client/Client.ts @@ -1,30 +1,35 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../../../BaseClient.js"; -import * as environments from "../../../../../../../../environments.js"; +import { + type NormalizedClientOptionsWithAuth, + normalizeClientOptionsWithAuth, +} from "../../../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../../../core/headers.js"; import * as core from "../../../../../../../../core/index.js"; -import * as Management from "../../../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../../../core/headers.js"; +import * as environments from "../../../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../../../errors/index.js"; +import * as Management from "../../../../../../../index.js"; -export declare namespace Providers { +export declare namespace ProvidersClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Providers { - protected readonly _options: Providers.Options; +export class ProvidersClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: Providers.Options) { - this._options = _options; + constructor(options: ProvidersClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** * Retrieve a list of phone providers details set for a Tenant. A list of fields to include or exclude may also be specified. * * @param {Management.ListBrandingPhoneProvidersRequestParameters} request - * @param {Providers.RequestOptions} requestOptions - Request-specific configuration. + * @param {ProvidersClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -38,24 +43,30 @@ export class Providers { */ public list( request: Management.ListBrandingPhoneProvidersRequestParameters = {}, - requestOptions?: Providers.RequestOptions, + requestOptions?: ProvidersClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__list(request, requestOptions)); } private async __list( request: Management.ListBrandingPhoneProvidersRequestParameters = {}, - requestOptions?: Providers.RequestOptions, + requestOptions?: ProvidersClient.RequestOptions, ): Promise> { + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:phone_providers"] }], + }; const { disabled } = request; const _queryParams: Record = {}; if (disabled !== undefined) { - _queryParams["disabled"] = disabled?.toString() ?? null; + _queryParams.disabled = disabled?.toString() ?? null; } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -71,7 +82,9 @@ export class Providers { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -99,21 +112,7 @@ export class Providers { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /branding/phone/providers."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/branding/phone/providers"); } /** @@ -121,7 +120,7 @@ export class Providers { * The credentials object requires different properties depending on the phone provider (which is specified using the name property). * * @param {Management.CreateBrandingPhoneProviderRequestContent} request - * @param {Providers.RequestOptions} requestOptions - Request-specific configuration. + * @param {ProvidersClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -139,18 +138,24 @@ export class Providers { */ public create( request: Management.CreateBrandingPhoneProviderRequestContent, - requestOptions?: Providers.RequestOptions, + requestOptions?: ProvidersClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__create(request, requestOptions)); } private async __create( request: Management.CreateBrandingPhoneProviderRequestContent, - requestOptions?: Providers.RequestOptions, + requestOptions?: ProvidersClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["create:phone_providers"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -169,7 +174,9 @@ export class Providers { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -199,30 +206,14 @@ export class Providers { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling POST /branding/phone/providers.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/branding/phone/providers"); } /** * Retrieve phone provider details. A list of fields to include or exclude may also be specified. * * @param {string} id - * @param {Providers.RequestOptions} requestOptions - Request-specific configuration. + * @param {ProvidersClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -235,18 +226,24 @@ export class Providers { */ public get( id: string, - requestOptions?: Providers.RequestOptions, + requestOptions?: ProvidersClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__get(id, requestOptions)); } private async __get( id: string, - requestOptions?: Providers.RequestOptions, + requestOptions?: ProvidersClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:phone_providers"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -262,7 +259,9 @@ export class Providers { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -292,30 +291,19 @@ export class Providers { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /branding/phone/providers/{id}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "GET", + "/branding/phone/providers/{id}", + ); } /** * Delete the configured phone provider. * * @param {string} id - * @param {Providers.RequestOptions} requestOptions - Request-specific configuration. + * @param {ProvidersClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.UnauthorizedError} * @throws {@link Management.ForbiddenError} @@ -325,14 +313,23 @@ export class Providers { * @example * await client.branding.phone.providers.delete("id") */ - public delete(id: string, requestOptions?: Providers.RequestOptions): core.HttpResponsePromise { + public delete(id: string, requestOptions?: ProvidersClient.RequestOptions): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__delete(id, requestOptions)); } - private async __delete(id: string, requestOptions?: Providers.RequestOptions): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + private async __delete( + id: string, + requestOptions?: ProvidersClient.RequestOptions, + ): Promise> { + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["delete:phone_providers"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -348,7 +345,9 @@ export class Providers { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -373,23 +372,12 @@ export class Providers { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling DELETE /branding/phone/providers/{id}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "DELETE", + "/branding/phone/providers/{id}", + ); } /** @@ -398,7 +386,7 @@ export class Providers { * * @param {string} id * @param {Management.UpdateBrandingPhoneProviderRequestContent} request - * @param {Providers.RequestOptions} requestOptions - Request-specific configuration. + * @param {ProvidersClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -413,7 +401,7 @@ export class Providers { public update( id: string, request: Management.UpdateBrandingPhoneProviderRequestContent = {}, - requestOptions?: Providers.RequestOptions, + requestOptions?: ProvidersClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__update(id, request, requestOptions)); } @@ -421,11 +409,17 @@ export class Providers { private async __update( id: string, request: Management.UpdateBrandingPhoneProviderRequestContent = {}, - requestOptions?: Providers.RequestOptions, + requestOptions?: ProvidersClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:phone_providers"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -444,7 +438,9 @@ export class Providers { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -476,29 +472,18 @@ export class Providers { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling PATCH /branding/phone/providers/{id}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "PATCH", + "/branding/phone/providers/{id}", + ); } /** * @param {string} id * @param {Management.CreatePhoneProviderSendTestRequestContent} request - * @param {Providers.RequestOptions} requestOptions - Request-specific configuration. + * @param {ProvidersClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -515,7 +500,7 @@ export class Providers { public test( id: string, request: Management.CreatePhoneProviderSendTestRequestContent, - requestOptions?: Providers.RequestOptions, + requestOptions?: ProvidersClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__test(id, request, requestOptions)); } @@ -523,11 +508,17 @@ export class Providers { private async __test( id: string, request: Management.CreatePhoneProviderSendTestRequestContent, - requestOptions?: Providers.RequestOptions, + requestOptions?: ProvidersClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["create:phone_providers"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -546,7 +537,9 @@ export class Providers { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -578,26 +571,11 @@ export class Providers { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling POST /branding/phone/providers/{id}/try.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "POST", + "/branding/phone/providers/{id}/try", + ); } } diff --git a/src/management/api/resources/branding/resources/phone/resources/templates/client/Client.ts b/src/management/api/resources/branding/resources/phone/resources/templates/client/Client.ts index 5812dfa2f2..5d605d4c13 100644 --- a/src/management/api/resources/branding/resources/phone/resources/templates/client/Client.ts +++ b/src/management/api/resources/branding/resources/phone/resources/templates/client/Client.ts @@ -1,28 +1,33 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../../../BaseClient.js"; -import * as environments from "../../../../../../../../environments.js"; +import { + type NormalizedClientOptionsWithAuth, + normalizeClientOptionsWithAuth, +} from "../../../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../../../core/headers.js"; import * as core from "../../../../../../../../core/index.js"; -import * as Management from "../../../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../../../core/headers.js"; +import * as environments from "../../../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../../../errors/index.js"; +import * as Management from "../../../../../../../index.js"; -export declare namespace Templates { +export declare namespace TemplatesClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Templates { - protected readonly _options: Templates.Options; +export class TemplatesClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: Templates.Options) { - this._options = _options; + constructor(options: TemplatesClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** * @param {Management.ListPhoneTemplatesRequestParameters} request - * @param {Templates.RequestOptions} requestOptions - Request-specific configuration. + * @param {TemplatesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -36,24 +41,30 @@ export class Templates { */ public list( request: Management.ListPhoneTemplatesRequestParameters = {}, - requestOptions?: Templates.RequestOptions, + requestOptions?: TemplatesClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__list(request, requestOptions)); } private async __list( request: Management.ListPhoneTemplatesRequestParameters = {}, - requestOptions?: Templates.RequestOptions, + requestOptions?: TemplatesClient.RequestOptions, ): Promise> { + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:phone_templates"] }], + }; const { disabled } = request; const _queryParams: Record = {}; if (disabled !== undefined) { - _queryParams["disabled"] = disabled?.toString() ?? null; + _queryParams.disabled = disabled?.toString() ?? null; } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -69,7 +80,9 @@ export class Templates { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -97,26 +110,12 @@ export class Templates { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /branding/phone/templates."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/branding/phone/templates"); } /** * @param {Management.CreatePhoneTemplateRequestContent} request - * @param {Templates.RequestOptions} requestOptions - Request-specific configuration. + * @param {TemplatesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -129,18 +128,24 @@ export class Templates { */ public create( request: Management.CreatePhoneTemplateRequestContent = {}, - requestOptions?: Templates.RequestOptions, + requestOptions?: TemplatesClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__create(request, requestOptions)); } private async __create( request: Management.CreatePhoneTemplateRequestContent = {}, - requestOptions?: Templates.RequestOptions, + requestOptions?: TemplatesClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["create:phone_templates"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -159,7 +164,9 @@ export class Templates { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -189,28 +196,12 @@ export class Templates { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling POST /branding/phone/templates.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/branding/phone/templates"); } /** * @param {string} id - * @param {Templates.RequestOptions} requestOptions - Request-specific configuration. + * @param {TemplatesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -223,18 +214,24 @@ export class Templates { */ public get( id: string, - requestOptions?: Templates.RequestOptions, + requestOptions?: TemplatesClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__get(id, requestOptions)); } private async __get( id: string, - requestOptions?: Templates.RequestOptions, + requestOptions?: TemplatesClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:phone_templates"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -250,7 +247,9 @@ export class Templates { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -280,28 +279,17 @@ export class Templates { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /branding/phone/templates/{id}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "GET", + "/branding/phone/templates/{id}", + ); } /** * @param {string} id - * @param {Templates.RequestOptions} requestOptions - Request-specific configuration. + * @param {TemplatesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -312,14 +300,23 @@ export class Templates { * @example * await client.branding.phone.templates.delete("id") */ - public delete(id: string, requestOptions?: Templates.RequestOptions): core.HttpResponsePromise { + public delete(id: string, requestOptions?: TemplatesClient.RequestOptions): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__delete(id, requestOptions)); } - private async __delete(id: string, requestOptions?: Templates.RequestOptions): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + private async __delete( + id: string, + requestOptions?: TemplatesClient.RequestOptions, + ): Promise> { + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["delete:phone_templates"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -335,7 +332,9 @@ export class Templates { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -362,29 +361,18 @@ export class Templates { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling DELETE /branding/phone/templates/{id}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "DELETE", + "/branding/phone/templates/{id}", + ); } /** * @param {string} id * @param {Management.UpdatePhoneTemplateRequestContent} request - * @param {Templates.RequestOptions} requestOptions - Request-specific configuration. + * @param {TemplatesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -398,7 +386,7 @@ export class Templates { public update( id: string, request: Management.UpdatePhoneTemplateRequestContent = {}, - requestOptions?: Templates.RequestOptions, + requestOptions?: TemplatesClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__update(id, request, requestOptions)); } @@ -406,11 +394,17 @@ export class Templates { private async __update( id: string, request: Management.UpdatePhoneTemplateRequestContent = {}, - requestOptions?: Templates.RequestOptions, + requestOptions?: TemplatesClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:phone_templates"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -429,7 +423,9 @@ export class Templates { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -459,29 +455,18 @@ export class Templates { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling PATCH /branding/phone/templates/{id}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "PATCH", + "/branding/phone/templates/{id}", + ); } /** * @param {string} id * @param {Management.ResetPhoneTemplateRequestContent} request - * @param {Templates.RequestOptions} requestOptions - Request-specific configuration. + * @param {TemplatesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -496,7 +481,7 @@ export class Templates { public reset( id: string, request?: Management.ResetPhoneTemplateRequestContent, - requestOptions?: Templates.RequestOptions, + requestOptions?: TemplatesClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__reset(id, request, requestOptions)); } @@ -504,11 +489,17 @@ export class Templates { private async __reset( id: string, request?: Management.ResetPhoneTemplateRequestContent, - requestOptions?: Templates.RequestOptions, + requestOptions?: TemplatesClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:phone_templates"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -527,7 +518,9 @@ export class Templates { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -555,29 +548,18 @@ export class Templates { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling PATCH /branding/phone/templates/{id}/reset.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "PATCH", + "/branding/phone/templates/{id}/reset", + ); } /** * @param {string} id * @param {Management.CreatePhoneTemplateTestNotificationRequestContent} request - * @param {Templates.RequestOptions} requestOptions - Request-specific configuration. + * @param {TemplatesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -593,7 +575,7 @@ export class Templates { public test( id: string, request: Management.CreatePhoneTemplateTestNotificationRequestContent, - requestOptions?: Templates.RequestOptions, + requestOptions?: TemplatesClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__test(id, request, requestOptions)); } @@ -601,11 +583,17 @@ export class Templates { private async __test( id: string, request: Management.CreatePhoneTemplateTestNotificationRequestContent, - requestOptions?: Templates.RequestOptions, + requestOptions?: TemplatesClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["create:phone_templates"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -624,7 +612,9 @@ export class Templates { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -654,26 +644,11 @@ export class Templates { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling POST /branding/phone/templates/{id}/try.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "POST", + "/branding/phone/templates/{id}/try", + ); } } diff --git a/src/management/api/resources/branding/resources/templates/client/Client.ts b/src/management/api/resources/branding/resources/templates/client/Client.ts index 0b95f228eb..81737006ea 100644 --- a/src/management/api/resources/branding/resources/templates/client/Client.ts +++ b/src/management/api/resources/branding/resources/templates/client/Client.ts @@ -1,27 +1,29 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../core/headers.js"; import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; +import * as environments from "../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../errors/index.js"; +import * as Management from "../../../../../index.js"; -export declare namespace Templates { +export declare namespace TemplatesClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Templates { - protected readonly _options: Templates.Options; +export class TemplatesClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: Templates.Options) { - this._options = _options; + constructor(options: TemplatesClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** - * @param {Templates.RequestOptions} requestOptions - Request-specific configuration. + * @param {TemplatesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.UnauthorizedError} * @throws {@link Management.PaymentRequiredError} @@ -33,17 +35,23 @@ export class Templates { * await client.branding.templates.getUniversalLogin() */ public getUniversalLogin( - requestOptions?: Templates.RequestOptions, + requestOptions?: TemplatesClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__getUniversalLogin(requestOptions)); } private async __getUniversalLogin( - requestOptions?: Templates.RequestOptions, + requestOptions?: TemplatesClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:branding"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -59,7 +67,9 @@ export class Templates { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -89,53 +99,43 @@ export class Templates { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /branding/templates/universal-login.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "GET", + "/branding/templates/universal-login", + ); } /** * Update the Universal Login branding template. * - *

When content-type header is set to application/json:

+ *

When content-type header is set to application/json, the expected body must be JSON:

*
      * {
-     *   "template": "<!DOCTYPE html>{% assign resolved_dir = dir | default: "auto" %}<html lang="{{locale}}" dir="{{resolved_dir}}"><head>{%- auth0:head -%}</head><body class="_widget-auto-layout">{%- auth0:widget -%}</body></html>"
+     *   "template": "<!DOCTYPE html><html><head>{%- auth0:head -%}</head><body>{%- auth0:widget -%}</body></html>"
      * }
      * 
* *

- * When content-type header is set to text/html: + * When content-type header is set to text/html, the expected body must be the HTML template: *

*
      * <!DOCTYPE html>
-     * {% assign resolved_dir = dir | default: "auto" %}
-     * <html lang="{{locale}}" dir="{{resolved_dir}}">
-     *   <head>
-     *     {%- auth0:head -%}
-     *   </head>
-     *   <body class="_widget-auto-layout">
-     *     {%- auth0:widget -%}
-     *   </body>
-     * </html>
+     * <code>
+     *   <html>
+     *     <head>
+     *      {%- auth0:head -%}
+     *     </head>
+     *     <body>
+     *       {%- auth0:widget -%}
+     *     </body>
+     *   </html>
+     * </code>
      * 
* * @param {Management.UpdateUniversalLoginTemplateRequestContent} request - * @param {Templates.RequestOptions} requestOptions - Request-specific configuration. + * @param {TemplatesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -149,18 +149,24 @@ export class Templates { */ public updateUniversalLogin( request: Management.UpdateUniversalLoginTemplateRequestContent, - requestOptions?: Templates.RequestOptions, + requestOptions?: TemplatesClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__updateUniversalLogin(request, requestOptions)); } private async __updateUniversalLogin( request: Management.UpdateUniversalLoginTemplateRequestContent, - requestOptions?: Templates.RequestOptions, + requestOptions?: TemplatesClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:branding"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -179,7 +185,9 @@ export class Templates { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -208,27 +216,16 @@ export class Templates { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling PUT /branding/templates/universal-login.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "PUT", + "/branding/templates/universal-login", + ); } /** - * @param {Templates.RequestOptions} requestOptions - Request-specific configuration. + * @param {TemplatesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.UnauthorizedError} * @throws {@link Management.PaymentRequiredError} @@ -238,16 +235,22 @@ export class Templates { * @example * await client.branding.templates.deleteUniversalLogin() */ - public deleteUniversalLogin(requestOptions?: Templates.RequestOptions): core.HttpResponsePromise { + public deleteUniversalLogin(requestOptions?: TemplatesClient.RequestOptions): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__deleteUniversalLogin(requestOptions)); } private async __deleteUniversalLogin( - requestOptions?: Templates.RequestOptions, + requestOptions?: TemplatesClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["delete:branding"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -263,7 +266,9 @@ export class Templates { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -288,26 +293,11 @@ export class Templates { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling DELETE /branding/templates/universal-login.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "DELETE", + "/branding/templates/universal-login", + ); } } diff --git a/src/management/api/resources/branding/resources/themes/client/Client.ts b/src/management/api/resources/branding/resources/themes/client/Client.ts index e878249fa3..2978d75054 100644 --- a/src/management/api/resources/branding/resources/themes/client/Client.ts +++ b/src/management/api/resources/branding/resources/themes/client/Client.ts @@ -1,30 +1,32 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../core/headers.js"; import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; +import * as environments from "../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../errors/index.js"; +import * as Management from "../../../../../index.js"; -export declare namespace Themes { +export declare namespace ThemesClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Themes { - protected readonly _options: Themes.Options; +export class ThemesClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: Themes.Options) { - this._options = _options; + constructor(options: ThemesClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** * Create branding theme. * * @param {Management.CreateBrandingThemeRequestContent} request - * @param {Themes.RequestOptions} requestOptions - Request-specific configuration. + * @param {ThemesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -108,18 +110,24 @@ export class Themes { */ public create( request: Management.CreateBrandingThemeRequestContent, - requestOptions?: Themes.RequestOptions, + requestOptions?: ThemesClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__create(request, requestOptions)); } private async __create( request: Management.CreateBrandingThemeRequestContent, - requestOptions?: Themes.RequestOptions, + requestOptions?: ThemesClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:branding"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -138,7 +146,9 @@ export class Themes { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -168,27 +178,13 @@ export class Themes { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling POST /branding/themes."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/branding/themes"); } /** * Retrieve default branding theme. * - * @param {Themes.RequestOptions} requestOptions - Request-specific configuration. + * @param {ThemesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.UnauthorizedError} * @throws {@link Management.ForbiddenError} @@ -199,17 +195,23 @@ export class Themes { * await client.branding.themes.getDefault() */ public getDefault( - requestOptions?: Themes.RequestOptions, + requestOptions?: ThemesClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__getDefault(requestOptions)); } private async __getDefault( - requestOptions?: Themes.RequestOptions, + requestOptions?: ThemesClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:branding"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -225,7 +227,9 @@ export class Themes { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -253,28 +257,14 @@ export class Themes { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /branding/themes/default."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/branding/themes/default"); } /** * Retrieve branding theme. * * @param {string} themeId - The ID of the theme - * @param {Themes.RequestOptions} requestOptions - Request-specific configuration. + * @param {ThemesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.UnauthorizedError} * @throws {@link Management.ForbiddenError} @@ -286,18 +276,24 @@ export class Themes { */ public get( themeId: string, - requestOptions?: Themes.RequestOptions, + requestOptions?: ThemesClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__get(themeId, requestOptions)); } private async __get( themeId: string, - requestOptions?: Themes.RequestOptions, + requestOptions?: ThemesClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:branding"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -313,7 +309,9 @@ export class Themes { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -341,30 +339,14 @@ export class Themes { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /branding/themes/{themeId}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/branding/themes/{themeId}"); } /** * Delete branding theme. * * @param {string} themeId - The ID of the theme - * @param {Themes.RequestOptions} requestOptions - Request-specific configuration. + * @param {ThemesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.UnauthorizedError} * @throws {@link Management.ForbiddenError} @@ -374,17 +356,23 @@ export class Themes { * @example * await client.branding.themes.delete("themeId") */ - public delete(themeId: string, requestOptions?: Themes.RequestOptions): core.HttpResponsePromise { + public delete(themeId: string, requestOptions?: ThemesClient.RequestOptions): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__delete(themeId, requestOptions)); } private async __delete( themeId: string, - requestOptions?: Themes.RequestOptions, + requestOptions?: ThemesClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["delete:branding"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -400,7 +388,9 @@ export class Themes { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -425,23 +415,7 @@ export class Themes { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling DELETE /branding/themes/{themeId}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "DELETE", "/branding/themes/{themeId}"); } /** @@ -449,7 +423,7 @@ export class Themes { * * @param {string} themeId - The ID of the theme * @param {Management.UpdateBrandingThemeRequestContent} request - * @param {Themes.RequestOptions} requestOptions - Request-specific configuration. + * @param {ThemesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -534,7 +508,7 @@ export class Themes { public update( themeId: string, request: Management.UpdateBrandingThemeRequestContent, - requestOptions?: Themes.RequestOptions, + requestOptions?: ThemesClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__update(themeId, request, requestOptions)); } @@ -542,11 +516,17 @@ export class Themes { private async __update( themeId: string, request: Management.UpdateBrandingThemeRequestContent, - requestOptions?: Themes.RequestOptions, + requestOptions?: ThemesClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:branding"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -565,7 +545,9 @@ export class Themes { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -595,26 +577,6 @@ export class Themes { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling PATCH /branding/themes/{themeId}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError(_response.error, _response.rawResponse, "PATCH", "/branding/themes/{themeId}"); } } diff --git a/src/management/api/resources/clientGrants/client/Client.ts b/src/management/api/resources/clientGrants/client/Client.ts index 91a26b3d25..5b26eacc35 100644 --- a/src/management/api/resources/clientGrants/client/Client.ts +++ b/src/management/api/resources/clientGrants/client/Client.ts @@ -1,36 +1,38 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../BaseClient.js"; -import * as environments from "../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../core/headers.js"; import * as core from "../../../../core/index.js"; -import * as Management from "../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../core/headers.js"; +import * as environments from "../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../errors/index.js"; -import { Organizations } from "../resources/organizations/client/Client.js"; +import * as Management from "../../../index.js"; +import { OrganizationsClient } from "../resources/organizations/client/Client.js"; -export declare namespace ClientGrants { +export declare namespace ClientGrantsClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class ClientGrants { - protected readonly _options: ClientGrants.Options; - protected _organizations: Organizations | undefined; +export class ClientGrantsClient { + protected readonly _options: NormalizedClientOptionsWithAuth; + protected _organizations: OrganizationsClient | undefined; - constructor(_options: ClientGrants.Options) { - this._options = _options; + constructor(options: ClientGrantsClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } - public get organizations(): Organizations { - return (this._organizations ??= new Organizations(this._options)); + public get organizations(): OrganizationsClient { + return (this._organizations ??= new OrganizationsClient(this._options)); } /** - * Retrieve a list of client grants, including the scopes associated with the application/API pair. + * Retrieve a list of client grants, including the scopes associated with the application/API pair. * * @param {Management.ListClientGrantsRequestParameters} request - * @param {ClientGrants.RequestOptions} requestOptions - Request-specific configuration. + * @param {ClientGrantsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.UnauthorizedError} * @throws {@link Management.ForbiddenError} @@ -42,48 +44,49 @@ export class ClientGrants { * take: 1, * audience: "audience", * client_id: "client_id", - * allow_any_organization: true, - * subject_type: "client" + * allow_any_organization: true * }) */ public async list( request: Management.ListClientGrantsRequestParameters = {}, - requestOptions?: ClientGrants.RequestOptions, + requestOptions?: ClientGrantsClient.RequestOptions, ): Promise> { const list = core.HttpResponsePromise.interceptFunction( async ( request: Management.ListClientGrantsRequestParameters, ): Promise> => { + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:client_grants"] }], + }; const { from: from_, take = 50, audience, client_id: clientId, allow_any_organization: allowAnyOrganization, - subject_type: subjectType, } = request; const _queryParams: Record = {}; if (from_ !== undefined) { - _queryParams["from"] = from_; + _queryParams.from = from_; } if (take !== undefined) { - _queryParams["take"] = take?.toString() ?? null; + _queryParams.take = take?.toString() ?? null; } if (audience !== undefined) { - _queryParams["audience"] = audience; + _queryParams.audience = audience; } if (clientId !== undefined) { - _queryParams["client_id"] = clientId; + _queryParams.client_id = clientId; } if (allowAnyOrganization !== undefined) { - _queryParams["allow_any_organization"] = allowAnyOrganization?.toString() ?? null; - } - if (subjectType !== undefined) { - _queryParams["subject_type"] = subjectType; + _queryParams.allow_any_organization = allowAnyOrganization?.toString() ?? null; } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -99,7 +102,9 @@ export class ClientGrants { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -129,21 +134,7 @@ export class ClientGrants { }); } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /client-grants."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/client-grants"); }, ); const dataWithRawResponse = await list(request).withRawResponse(); @@ -165,7 +156,7 @@ export class ClientGrants { * Create a client grant for a machine-to-machine login flow. To learn more, read Client Credential Flow. * * @param {Management.CreateClientGrantRequestContent} request - * @param {ClientGrants.RequestOptions} requestOptions - Request-specific configuration. + * @param {ClientGrantsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -177,23 +168,30 @@ export class ClientGrants { * @example * await client.clientGrants.create({ * client_id: "client_id", - * audience: "audience" + * audience: "audience", + * scope: ["scope"] * }) */ public create( request: Management.CreateClientGrantRequestContent, - requestOptions?: ClientGrants.RequestOptions, + requestOptions?: ClientGrantsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__create(request, requestOptions)); } private async __create( request: Management.CreateClientGrantRequestContent, - requestOptions?: ClientGrants.RequestOptions, + requestOptions?: ClientGrantsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["create:client_grants"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -212,7 +210,9 @@ export class ClientGrants { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -244,28 +244,14 @@ export class ClientGrants { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling POST /client-grants."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/client-grants"); } /** * Delete the Client Credential Flow from your machine-to-machine application. * * @param {string} id - ID of the client grant to delete. - * @param {ClientGrants.RequestOptions} requestOptions - Request-specific configuration. + * @param {ClientGrantsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -275,17 +261,23 @@ export class ClientGrants { * @example * await client.clientGrants.delete("id") */ - public delete(id: string, requestOptions?: ClientGrants.RequestOptions): core.HttpResponsePromise { + public delete(id: string, requestOptions?: ClientGrantsClient.RequestOptions): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__delete(id, requestOptions)); } private async __delete( id: string, - requestOptions?: ClientGrants.RequestOptions, + requestOptions?: ClientGrantsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["delete:client_grants"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -301,7 +293,9 @@ export class ClientGrants { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -326,21 +320,7 @@ export class ClientGrants { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling DELETE /client-grants/{id}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "DELETE", "/client-grants/{id}"); } /** @@ -348,7 +328,7 @@ export class ClientGrants { * * @param {string} id - ID of the client grant to update. * @param {Management.UpdateClientGrantRequestContent} request - * @param {ClientGrants.RequestOptions} requestOptions - Request-specific configuration. + * @param {ClientGrantsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -362,7 +342,7 @@ export class ClientGrants { public update( id: string, request: Management.UpdateClientGrantRequestContent = {}, - requestOptions?: ClientGrants.RequestOptions, + requestOptions?: ClientGrantsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__update(id, request, requestOptions)); } @@ -370,11 +350,17 @@ export class ClientGrants { private async __update( id: string, request: Management.UpdateClientGrantRequestContent = {}, - requestOptions?: ClientGrants.RequestOptions, + requestOptions?: ClientGrantsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:client_grants"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -393,7 +379,9 @@ export class ClientGrants { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -423,24 +411,6 @@ export class ClientGrants { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling PATCH /client-grants/{id}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError(_response.error, _response.rawResponse, "PATCH", "/client-grants/{id}"); } } diff --git a/src/management/api/resources/clientGrants/resources/organizations/client/Client.ts b/src/management/api/resources/clientGrants/resources/organizations/client/Client.ts index f5734f8063..f62cda84bf 100644 --- a/src/management/api/resources/clientGrants/resources/organizations/client/Client.ts +++ b/src/management/api/resources/clientGrants/resources/organizations/client/Client.ts @@ -1,29 +1,31 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../core/headers.js"; import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; +import * as environments from "../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../errors/index.js"; +import * as Management from "../../../../../index.js"; -export declare namespace Organizations { +export declare namespace OrganizationsClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Organizations { - protected readonly _options: Organizations.Options; +export class OrganizationsClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: Organizations.Options) { - this._options = _options; + constructor(options: OrganizationsClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** * @param {string} id - ID of the client grant * @param {Management.ListClientGrantOrganizationsRequestParameters} request - * @param {Organizations.RequestOptions} requestOptions - Request-specific configuration. + * @param {OrganizationsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -39,23 +41,29 @@ export class Organizations { public async list( id: string, request: Management.ListClientGrantOrganizationsRequestParameters = {}, - requestOptions?: Organizations.RequestOptions, + requestOptions?: OrganizationsClient.RequestOptions, ): Promise> { const list = core.HttpResponsePromise.interceptFunction( async ( request: Management.ListClientGrantOrganizationsRequestParameters, ): Promise> => { + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:organization_client_grants"] }], + }; const { from: from_, take = 50 } = request; const _queryParams: Record = {}; if (from_ !== undefined) { - _queryParams["from"] = from_; + _queryParams.from = from_; } if (take !== undefined) { - _queryParams["take"] = take?.toString() ?? null; + _queryParams.take = take?.toString() ?? null; } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -71,7 +79,9 @@ export class Organizations { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -106,23 +116,12 @@ export class Organizations { }); } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /client-grants/{id}/organizations.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "GET", + "/client-grants/{id}/organizations", + ); }, ); const dataWithRawResponse = await list(request).withRawResponse(); @@ -137,8 +136,4 @@ export class Organizations { }, }); } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; - } } diff --git a/src/management/api/resources/clients/client/Client.ts b/src/management/api/resources/clients/client/Client.ts index cc28de579b..32c17eb615 100644 --- a/src/management/api/resources/clients/client/Client.ts +++ b/src/management/api/resources/clients/client/Client.ts @@ -1,35 +1,37 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../BaseClient.js"; -import * as environments from "../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../core/headers.js"; import * as core from "../../../../core/index.js"; -import * as Management from "../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../core/headers.js"; +import * as environments from "../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../errors/index.js"; -import { Credentials } from "../resources/credentials/client/Client.js"; -import { Connections } from "../resources/connections/client/Client.js"; +import * as Management from "../../../index.js"; +import { ConnectionsClient } from "../resources/connections/client/Client.js"; +import { CredentialsClient } from "../resources/credentials/client/Client.js"; -export declare namespace Clients { +export declare namespace ClientsClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Clients { - protected readonly _options: Clients.Options; - protected _credentials: Credentials | undefined; - protected _connections: Connections | undefined; +export class ClientsClient { + protected readonly _options: NormalizedClientOptionsWithAuth; + protected _credentials: CredentialsClient | undefined; + protected _connections: ConnectionsClient | undefined; - constructor(_options: Clients.Options) { - this._options = _options; + constructor(options: ClientsClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } - public get credentials(): Credentials { - return (this._credentials ??= new Credentials(this._options)); + public get credentials(): CredentialsClient { + return (this._credentials ??= new CredentialsClient(this._options)); } - public get connections(): Connections { - return (this._connections ??= new Connections(this._options)); + public get connections(): ConnectionsClient { + return (this._connections ??= new ConnectionsClient(this._options)); } /** @@ -68,7 +70,7 @@ export class Clients { * * * @param {Management.ListClientsRequestParameters} request - * @param {Clients.RequestOptions} requestOptions - Request-specific configuration. + * @param {ClientsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -90,16 +92,29 @@ export class Clients { */ public async list( request: Management.ListClientsRequestParameters = {}, - requestOptions?: Clients.RequestOptions, + requestOptions?: ClientsClient.RequestOptions, ): Promise> { const list = core.HttpResponsePromise.interceptFunction( async ( request: Management.ListClientsRequestParameters, ): Promise> => { + const _metadata: core.EndpointMetadata = { + security: [ + { bearerAuth: [] }, + { + oAuth2ClientCredentials: [ + "read:clients", + "read:client_keys", + "read:client_credentials", + "read:client_summary", + ], + }, + ], + }; const { fields, include_fields: includeFields, - page = 0, + page, per_page: perPage = 50, include_totals: includeTotals = true, is_global: isGlobal, @@ -109,35 +124,38 @@ export class Clients { } = request; const _queryParams: Record = {}; if (fields !== undefined) { - _queryParams["fields"] = fields; + _queryParams.fields = fields; } if (includeFields !== undefined) { - _queryParams["include_fields"] = includeFields?.toString() ?? null; + _queryParams.include_fields = includeFields?.toString() ?? null; } if (page !== undefined) { - _queryParams["page"] = page?.toString() ?? null; + _queryParams.page = page?.toString() ?? null; } if (perPage !== undefined) { - _queryParams["per_page"] = perPage?.toString() ?? null; + _queryParams.per_page = perPage?.toString() ?? null; } if (includeTotals !== undefined) { - _queryParams["include_totals"] = includeTotals?.toString() ?? null; + _queryParams.include_totals = includeTotals?.toString() ?? null; } if (isGlobal !== undefined) { - _queryParams["is_global"] = isGlobal?.toString() ?? null; + _queryParams.is_global = isGlobal?.toString() ?? null; } if (isFirstParty !== undefined) { - _queryParams["is_first_party"] = isFirstParty?.toString() ?? null; + _queryParams.is_first_party = isFirstParty?.toString() ?? null; } if (appType !== undefined) { - _queryParams["app_type"] = appType; + _queryParams.app_type = appType; } if (q !== undefined) { - _queryParams["q"] = q; + _queryParams.q = q; } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -153,7 +171,9 @@ export class Clients { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -188,32 +208,18 @@ export class Clients { }); } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /clients."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/clients"); }, ); - let _offset = request?.page != null ? request?.page : 0; + let _offset = request?.page != null ? request?.page : 1; const dataWithRawResponse = await list(request).withRawResponse(); return new core.Page({ response: dataWithRawResponse.data, rawResponse: dataWithRawResponse.rawResponse, - hasNextPage: (response) => (response?.clients ?? []).length >= (request?.per_page ?? 1), + hasNextPage: (response) => (response?.clients ?? []).length > 0, getItems: (response) => response?.clients ?? [], - loadPage: (response) => { - _offset += response?.clients != null ? response.clients.length : 1; + loadPage: (_response) => { + _offset += 1; return list(core.setObjectProperty(request, "page", _offset)); }, }); @@ -236,7 +242,7 @@ export class Clients { *
SSO Integrations created via this endpoint will accept login requests and share user profile information.
* * @param {Management.CreateClientRequestContent} request - * @param {Clients.RequestOptions} requestOptions - Request-specific configuration. + * @param {ClientsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -251,18 +257,24 @@ export class Clients { */ public create( request: Management.CreateClientRequestContent, - requestOptions?: Clients.RequestOptions, + requestOptions?: ClientsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__create(request, requestOptions)); } private async __create( request: Management.CreateClientRequestContent, - requestOptions?: Clients.RequestOptions, + requestOptions?: ClientsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["create:clients"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -281,7 +293,9 @@ export class Clients { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -311,21 +325,7 @@ export class Clients { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling POST /clients."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/clients"); } /** @@ -363,7 +363,7 @@ export class Clients { * * @param {string} id - ID of the client to retrieve. * @param {Management.GetClientRequestParameters} request - * @param {Clients.RequestOptions} requestOptions - Request-specific configuration. + * @param {ClientsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -380,7 +380,7 @@ export class Clients { public get( id: string, request: Management.GetClientRequestParameters = {}, - requestOptions?: Clients.RequestOptions, + requestOptions?: ClientsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__get(id, request, requestOptions)); } @@ -388,21 +388,37 @@ export class Clients { private async __get( id: string, request: Management.GetClientRequestParameters = {}, - requestOptions?: Clients.RequestOptions, + requestOptions?: ClientsClient.RequestOptions, ): Promise> { + const _metadata: core.EndpointMetadata = { + security: [ + { bearerAuth: [] }, + { + oAuth2ClientCredentials: [ + "read:clients", + "read:client_keys", + "read:client_credentials", + "read:client_summary", + ], + }, + ], + }; const { fields, include_fields: includeFields } = request; const _queryParams: Record = {}; if (fields !== undefined) { - _queryParams["fields"] = fields; + _queryParams.fields = fields; } if (includeFields !== undefined) { - _queryParams["include_fields"] = includeFields?.toString() ?? null; + _queryParams.include_fields = includeFields?.toString() ?? null; } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -418,7 +434,9 @@ export class Clients { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: _response.body as Management.GetClientResponseContent, rawResponse: _response.rawResponse }; @@ -445,28 +463,14 @@ export class Clients { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /clients/{id}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/clients/{id}"); } /** * Delete a client and related configuration (rules, connections, etc). * * @param {string} id - ID of the client to delete. - * @param {Clients.RequestOptions} requestOptions - Request-specific configuration. + * @param {ClientsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -476,14 +480,23 @@ export class Clients { * @example * await client.clients.delete("id") */ - public delete(id: string, requestOptions?: Clients.RequestOptions): core.HttpResponsePromise { + public delete(id: string, requestOptions?: ClientsClient.RequestOptions): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__delete(id, requestOptions)); } - private async __delete(id: string, requestOptions?: Clients.RequestOptions): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + private async __delete( + id: string, + requestOptions?: ClientsClient.RequestOptions, + ): Promise> { + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["delete:clients"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -499,7 +512,9 @@ export class Clients { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -524,21 +539,7 @@ export class Clients { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling DELETE /clients/{id}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "DELETE", "/clients/{id}"); } /** @@ -554,7 +555,7 @@ export class Clients { * * @param {string} id - ID of the client to update. * @param {Management.UpdateClientRequestContent} request - * @param {Clients.RequestOptions} requestOptions - Request-specific configuration. + * @param {ClientsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -568,7 +569,7 @@ export class Clients { public update( id: string, request: Management.UpdateClientRequestContent = {}, - requestOptions?: Clients.RequestOptions, + requestOptions?: ClientsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__update(id, request, requestOptions)); } @@ -576,11 +577,20 @@ export class Clients { private async __update( id: string, request: Management.UpdateClientRequestContent = {}, - requestOptions?: Clients.RequestOptions, + requestOptions?: ClientsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [ + { bearerAuth: [] }, + { oAuth2ClientCredentials: ["update:clients", "update:client_keys", "update:client_credentials"] }, + ], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -599,7 +609,9 @@ export class Clients { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -629,21 +641,7 @@ export class Clients { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling PATCH /clients/{id}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "PATCH", "/clients/{id}"); } /** @@ -654,7 +652,7 @@ export class Clients { * For more information, read Rotate Client Secrets. * * @param {string} id - ID of the client that will rotate secrets. - * @param {Clients.RequestOptions} requestOptions - Request-specific configuration. + * @param {ClientsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -667,18 +665,24 @@ export class Clients { */ public rotateSecret( id: string, - requestOptions?: Clients.RequestOptions, + requestOptions?: ClientsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__rotateSecret(id, requestOptions)); } private async __rotateSecret( id: string, - requestOptions?: Clients.RequestOptions, + requestOptions?: ClientsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:client_keys"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -694,7 +698,9 @@ export class Clients { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -724,26 +730,6 @@ export class Clients { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling POST /clients/{id}/rotate-secret.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/clients/{id}/rotate-secret"); } } diff --git a/src/management/api/resources/clients/resources/connections/client/Client.ts b/src/management/api/resources/clients/resources/connections/client/Client.ts index 2a32aeb069..616cc508ba 100644 --- a/src/management/api/resources/clients/resources/connections/client/Client.ts +++ b/src/management/api/resources/clients/resources/connections/client/Client.ts @@ -1,23 +1,25 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../core/headers.js"; import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; +import * as environments from "../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../errors/index.js"; +import * as Management from "../../../../../index.js"; -export declare namespace Connections { +export declare namespace ConnectionsClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Connections { - protected readonly _options: Connections.Options; +export class ConnectionsClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: Connections.Options) { - this._options = _options; + constructor(options: ConnectionsClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** @@ -33,7 +35,7 @@ export class Connections { * * @param {string} id - ID of the client for which to retrieve enabled connections. * @param {Management.ConnectionsGetRequest} request - * @param {Connections.RequestOptions} requestOptions - Request-specific configuration. + * @param {ConnectionsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -52,36 +54,45 @@ export class Connections { public async get( id: string, request: Management.ConnectionsGetRequest = {}, - requestOptions?: Connections.RequestOptions, + requestOptions?: ConnectionsClient.RequestOptions, ): Promise> { const list = core.HttpResponsePromise.interceptFunction( async ( request: Management.ConnectionsGetRequest, ): Promise> => { + const _metadata: core.EndpointMetadata = { + security: [ + { bearerAuth: [] }, + { oAuth2ClientCredentials: ["read:connections", "read:clients", "read:client_summary"] }, + ], + }; const { strategy, from: from_, take = 50, fields, include_fields: includeFields } = request; const _queryParams: Record = {}; if (strategy !== undefined) { if (Array.isArray(strategy)) { - _queryParams["strategy"] = strategy.map((item) => item); + _queryParams.strategy = strategy.map((item) => item); } else { - _queryParams["strategy"] = strategy; + _queryParams.strategy = strategy; } } if (from_ !== undefined) { - _queryParams["from"] = from_; + _queryParams.from = from_; } if (take !== undefined) { - _queryParams["take"] = take?.toString() ?? null; + _queryParams.take = take?.toString() ?? null; } if (fields !== undefined) { - _queryParams["fields"] = fields; + _queryParams.fields = fields; } if (includeFields !== undefined) { - _queryParams["include_fields"] = includeFields?.toString() ?? null; + _queryParams.include_fields = includeFields?.toString() ?? null; } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -97,7 +108,9 @@ export class Connections { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -134,23 +147,12 @@ export class Connections { }); } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /clients/{id}/connections.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "GET", + "/clients/{id}/connections", + ); }, ); const dataWithRawResponse = await list(request).withRawResponse(); @@ -165,8 +167,4 @@ export class Connections { }, }); } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; - } } diff --git a/src/management/api/resources/clients/resources/credentials/client/Client.ts b/src/management/api/resources/clients/resources/credentials/client/Client.ts index aa8e33b1fe..8db360f1fc 100644 --- a/src/management/api/resources/clients/resources/credentials/client/Client.ts +++ b/src/management/api/resources/clients/resources/credentials/client/Client.ts @@ -1,23 +1,25 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../core/headers.js"; import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; +import * as environments from "../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../errors/index.js"; +import * as Management from "../../../../../index.js"; -export declare namespace Credentials { +export declare namespace CredentialsClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Credentials { - protected readonly _options: Credentials.Options; +export class CredentialsClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: Credentials.Options) { - this._options = _options; + constructor(options: CredentialsClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** @@ -25,8 +27,8 @@ export class Credentials { * * Important: To enable credentials to be used for a client authentication method, set the client_authentication_methods property on the client. To enable credentials to be used for JWT-Secured Authorization requests set the signed_request_object property on the client. * - * @param {string} clientId - ID of the client. - * @param {Credentials.RequestOptions} requestOptions - Request-specific configuration. + * @param {string} client_id - ID of the client. + * @param {CredentialsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.UnauthorizedError} * @throws {@link Management.ForbiddenError} @@ -37,19 +39,25 @@ export class Credentials { * await client.clients.credentials.list("client_id") */ public list( - clientId: string, - requestOptions?: Credentials.RequestOptions, + client_id: string, + requestOptions?: CredentialsClient.RequestOptions, ): core.HttpResponsePromise { - return core.HttpResponsePromise.fromPromise(this.__list(clientId, requestOptions)); + return core.HttpResponsePromise.fromPromise(this.__list(client_id, requestOptions)); } private async __list( - clientId: string, - requestOptions?: Credentials.RequestOptions, + client_id: string, + requestOptions?: CredentialsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:client_credentials"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -57,7 +65,7 @@ export class Credentials { (await core.Supplier.get(this._options.baseUrl)) ?? (await core.Supplier.get(this._options.environment)) ?? environments.ManagementEnvironment.Default, - `clients/${core.url.encodePathParam(clientId)}/credentials`, + `clients/${core.url.encodePathParam(client_id)}/credentials`, ), method: "GET", headers: _headers, @@ -65,7 +73,9 @@ export class Credentials { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: _response.body as Management.ClientCredential[], rawResponse: _response.rawResponse }; @@ -90,23 +100,12 @@ export class Credentials { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /clients/{client_id}/credentials.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "GET", + "/clients/{client_id}/credentials", + ); } /** @@ -144,9 +143,9 @@ export class Credentials { *
  • To enable the credential for JWT-secured Authorization requests, set the signed_request_objectproperty on the client. For more information, read Configure JWT-secured Authorization Requests (JAR)
  • * * - * @param {string} clientId - ID of the client. + * @param {string} client_id - ID of the client. * @param {Management.PostClientCredentialRequestContent} request - * @param {Credentials.RequestOptions} requestOptions - Request-specific configuration. + * @param {CredentialsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -160,21 +159,27 @@ export class Credentials { * }) */ public create( - clientId: string, + client_id: string, request: Management.PostClientCredentialRequestContent, - requestOptions?: Credentials.RequestOptions, + requestOptions?: CredentialsClient.RequestOptions, ): core.HttpResponsePromise { - return core.HttpResponsePromise.fromPromise(this.__create(clientId, request, requestOptions)); + return core.HttpResponsePromise.fromPromise(this.__create(client_id, request, requestOptions)); } private async __create( - clientId: string, + client_id: string, request: Management.PostClientCredentialRequestContent, - requestOptions?: Credentials.RequestOptions, + requestOptions?: CredentialsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["create:client_credentials"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -182,7 +187,7 @@ export class Credentials { (await core.Supplier.get(this._options.baseUrl)) ?? (await core.Supplier.get(this._options.environment)) ?? environments.ManagementEnvironment.Default, - `clients/${core.url.encodePathParam(clientId)}/credentials`, + `clients/${core.url.encodePathParam(client_id)}/credentials`, ), method: "POST", headers: _headers, @@ -193,7 +198,9 @@ export class Credentials { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -223,23 +230,12 @@ export class Credentials { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling POST /clients/{client_id}/credentials.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "POST", + "/clients/{client_id}/credentials", + ); } /** @@ -247,9 +243,9 @@ export class Credentials { * * Important: To enable credentials to be used for a client authentication method, set the client_authentication_methods property on the client. To enable credentials to be used for JWT-Secured Authorization requests set the signed_request_object property on the client. * - * @param {string} clientId - ID of the client. - * @param {string} credentialId - ID of the credential. - * @param {Credentials.RequestOptions} requestOptions - Request-specific configuration. + * @param {string} client_id - ID of the client. + * @param {string} credential_id - ID of the credential. + * @param {CredentialsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.UnauthorizedError} * @throws {@link Management.ForbiddenError} @@ -260,21 +256,27 @@ export class Credentials { * await client.clients.credentials.get("client_id", "credential_id") */ public get( - clientId: string, - credentialId: string, - requestOptions?: Credentials.RequestOptions, + client_id: string, + credential_id: string, + requestOptions?: CredentialsClient.RequestOptions, ): core.HttpResponsePromise { - return core.HttpResponsePromise.fromPromise(this.__get(clientId, credentialId, requestOptions)); + return core.HttpResponsePromise.fromPromise(this.__get(client_id, credential_id, requestOptions)); } private async __get( - clientId: string, - credentialId: string, - requestOptions?: Credentials.RequestOptions, + client_id: string, + credential_id: string, + requestOptions?: CredentialsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:client_credentials"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -282,7 +284,7 @@ export class Credentials { (await core.Supplier.get(this._options.baseUrl)) ?? (await core.Supplier.get(this._options.environment)) ?? environments.ManagementEnvironment.Default, - `clients/${core.url.encodePathParam(clientId)}/credentials/${core.url.encodePathParam(credentialId)}`, + `clients/${core.url.encodePathParam(client_id)}/credentials/${core.url.encodePathParam(credential_id)}`, ), method: "GET", headers: _headers, @@ -290,7 +292,9 @@ export class Credentials { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -318,31 +322,20 @@ export class Credentials { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /clients/{client_id}/credentials/{credential_id}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "GET", + "/clients/{client_id}/credentials/{credential_id}", + ); } /** * Delete a client credential you previously created. May be enabled or disabled. For more information, read Client Credential Flow. * - * @param {string} clientId - ID of the client. - * @param {string} credentialId - ID of the credential to delete. - * @param {Credentials.RequestOptions} requestOptions - Request-specific configuration. + * @param {string} client_id - ID of the client. + * @param {string} credential_id - ID of the credential to delete. + * @param {CredentialsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -353,21 +346,27 @@ export class Credentials { * await client.clients.credentials.delete("client_id", "credential_id") */ public delete( - clientId: string, - credentialId: string, - requestOptions?: Credentials.RequestOptions, + client_id: string, + credential_id: string, + requestOptions?: CredentialsClient.RequestOptions, ): core.HttpResponsePromise { - return core.HttpResponsePromise.fromPromise(this.__delete(clientId, credentialId, requestOptions)); + return core.HttpResponsePromise.fromPromise(this.__delete(client_id, credential_id, requestOptions)); } private async __delete( - clientId: string, - credentialId: string, - requestOptions?: Credentials.RequestOptions, + client_id: string, + credential_id: string, + requestOptions?: CredentialsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["delete:client_credentials"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -375,7 +374,7 @@ export class Credentials { (await core.Supplier.get(this._options.baseUrl)) ?? (await core.Supplier.get(this._options.environment)) ?? environments.ManagementEnvironment.Default, - `clients/${core.url.encodePathParam(clientId)}/credentials/${core.url.encodePathParam(credentialId)}`, + `clients/${core.url.encodePathParam(client_id)}/credentials/${core.url.encodePathParam(credential_id)}`, ), method: "DELETE", headers: _headers, @@ -383,7 +382,9 @@ export class Credentials { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -408,32 +409,21 @@ export class Credentials { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling DELETE /clients/{client_id}/credentials/{credential_id}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "DELETE", + "/clients/{client_id}/credentials/{credential_id}", + ); } /** * Change a client credential you previously created. May be enabled or disabled. For more information, read Client Credential Flow. * - * @param {string} clientId - ID of the client. - * @param {string} credentialId - ID of the credential. + * @param {string} client_id - ID of the client. + * @param {string} credential_id - ID of the credential. * @param {Management.PatchClientCredentialRequestContent} request - * @param {Credentials.RequestOptions} requestOptions - Request-specific configuration. + * @param {CredentialsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -445,23 +435,29 @@ export class Credentials { * await client.clients.credentials.update("client_id", "credential_id") */ public update( - clientId: string, - credentialId: string, + client_id: string, + credential_id: string, request: Management.PatchClientCredentialRequestContent = {}, - requestOptions?: Credentials.RequestOptions, + requestOptions?: CredentialsClient.RequestOptions, ): core.HttpResponsePromise { - return core.HttpResponsePromise.fromPromise(this.__update(clientId, credentialId, request, requestOptions)); + return core.HttpResponsePromise.fromPromise(this.__update(client_id, credential_id, request, requestOptions)); } private async __update( - clientId: string, - credentialId: string, + client_id: string, + credential_id: string, request: Management.PatchClientCredentialRequestContent = {}, - requestOptions?: Credentials.RequestOptions, + requestOptions?: CredentialsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:client_credentials"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -469,7 +465,7 @@ export class Credentials { (await core.Supplier.get(this._options.baseUrl)) ?? (await core.Supplier.get(this._options.environment)) ?? environments.ManagementEnvironment.Default, - `clients/${core.url.encodePathParam(clientId)}/credentials/${core.url.encodePathParam(credentialId)}`, + `clients/${core.url.encodePathParam(client_id)}/credentials/${core.url.encodePathParam(credential_id)}`, ), method: "PATCH", headers: _headers, @@ -480,7 +476,9 @@ export class Credentials { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -510,26 +508,11 @@ export class Credentials { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling PATCH /clients/{client_id}/credentials/{credential_id}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "PATCH", + "/clients/{client_id}/credentials/{credential_id}", + ); } } diff --git a/src/management/api/resources/clients/resources/index.ts b/src/management/api/resources/clients/resources/index.ts index 2bb5f853f3..14883db664 100644 --- a/src/management/api/resources/clients/resources/index.ts +++ b/src/management/api/resources/clients/resources/index.ts @@ -1,2 +1,2 @@ -export * as credentials from "./credentials/index.js"; export * as connections from "./connections/index.js"; +export * as credentials from "./credentials/index.js"; diff --git a/src/management/api/resources/connections/client/Client.ts b/src/management/api/resources/connections/client/Client.ts index 5891d0c2cf..9add08e77a 100644 --- a/src/management/api/resources/connections/client/Client.ts +++ b/src/management/api/resources/connections/client/Client.ts @@ -1,47 +1,49 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../BaseClient.js"; -import * as environments from "../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../core/headers.js"; import * as core from "../../../../core/index.js"; -import * as Management from "../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../core/headers.js"; +import * as environments from "../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../errors/index.js"; -import { Clients } from "../resources/clients/client/Client.js"; -import { Keys } from "../resources/keys/client/Client.js"; -import { ScimConfiguration } from "../resources/scimConfiguration/client/Client.js"; -import { Users } from "../resources/users/client/Client.js"; +import * as Management from "../../../index.js"; +import { ClientsClient } from "../resources/clients/client/Client.js"; +import { KeysClient } from "../resources/keys/client/Client.js"; +import { ScimConfigurationClient } from "../resources/scimConfiguration/client/Client.js"; +import { UsersClient } from "../resources/users/client/Client.js"; -export declare namespace Connections { +export declare namespace ConnectionsClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Connections { - protected readonly _options: Connections.Options; - protected _clients: Clients | undefined; - protected _keys: Keys | undefined; - protected _scimConfiguration: ScimConfiguration | undefined; - protected _users: Users | undefined; +export class ConnectionsClient { + protected readonly _options: NormalizedClientOptionsWithAuth; + protected _clients: ClientsClient | undefined; + protected _keys: KeysClient | undefined; + protected _scimConfiguration: ScimConfigurationClient | undefined; + protected _users: UsersClient | undefined; - constructor(_options: Connections.Options) { - this._options = _options; + constructor(options: ConnectionsClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } - public get clients(): Clients { - return (this._clients ??= new Clients(this._options)); + public get clients(): ClientsClient { + return (this._clients ??= new ClientsClient(this._options)); } - public get keys(): Keys { - return (this._keys ??= new Keys(this._options)); + public get keys(): KeysClient { + return (this._keys ??= new KeysClient(this._options)); } - public get scimConfiguration(): ScimConfiguration { - return (this._scimConfiguration ??= new ScimConfiguration(this._options)); + public get scimConfiguration(): ScimConfigurationClient { + return (this._scimConfiguration ??= new ScimConfigurationClient(this._options)); } - public get users(): Users { - return (this._users ??= new Users(this._options)); + public get users(): UsersClient { + return (this._users ??= new UsersClient(this._options)); } /** @@ -66,7 +68,7 @@ export class Connections { * Note: The first time you call this endpoint using checkpoint pagination, omit the from parameter. If there are more results, a next value is included in the response. You can use this for subsequent API calls. When next is no longer included in the response, no pages are remaining. * * @param {Management.ListConnectionsQueryParameters} request - * @param {Connections.RequestOptions} requestOptions - Request-specific configuration. + * @param {ConnectionsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -84,39 +86,45 @@ export class Connections { */ public async list( request: Management.ListConnectionsQueryParameters = {}, - requestOptions?: Connections.RequestOptions, + requestOptions?: ConnectionsClient.RequestOptions, ): Promise> { const list = core.HttpResponsePromise.interceptFunction( async ( request: Management.ListConnectionsQueryParameters, ): Promise> => { + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:connections"] }], + }; const { from: from_, take = 50, strategy, name, fields, include_fields: includeFields } = request; const _queryParams: Record = {}; if (from_ !== undefined) { - _queryParams["from"] = from_; + _queryParams.from = from_; } if (take !== undefined) { - _queryParams["take"] = take?.toString() ?? null; + _queryParams.take = take?.toString() ?? null; } if (strategy !== undefined) { if (Array.isArray(strategy)) { - _queryParams["strategy"] = strategy.map((item) => item); + _queryParams.strategy = strategy.map((item) => item); } else { - _queryParams["strategy"] = strategy; + _queryParams.strategy = strategy; } } if (name !== undefined) { - _queryParams["name"] = name; + _queryParams.name = name; } if (fields !== undefined) { - _queryParams["fields"] = fields; + _queryParams.fields = fields; } if (includeFields !== undefined) { - _queryParams["include_fields"] = includeFields?.toString() ?? null; + _queryParams.include_fields = includeFields?.toString() ?? null; } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -132,7 +140,9 @@ export class Connections { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -167,21 +177,7 @@ export class Connections { }); } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /connections."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/connections"); }, ); const dataWithRawResponse = await list(request).withRawResponse(); @@ -204,7 +200,7 @@ export class Connections { * Creates a new connection according to the JSON object received in body.
    * * @param {Management.CreateConnectionRequestContent} request - * @param {Connections.RequestOptions} requestOptions - Request-specific configuration. + * @param {ConnectionsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -220,18 +216,24 @@ export class Connections { */ public create( request: Management.CreateConnectionRequestContent, - requestOptions?: Connections.RequestOptions, + requestOptions?: ConnectionsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__create(request, requestOptions)); } private async __create( request: Management.CreateConnectionRequestContent, - requestOptions?: Connections.RequestOptions, + requestOptions?: ConnectionsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["create:connections"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -250,7 +252,9 @@ export class Connections { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -280,21 +284,7 @@ export class Connections { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling POST /connections."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/connections"); } /** @@ -302,7 +292,7 @@ export class Connections { * * @param {string} id - The id of the connection to retrieve * @param {Management.GetConnectionRequestParameters} request - * @param {Connections.RequestOptions} requestOptions - Request-specific configuration. + * @param {ConnectionsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -319,7 +309,7 @@ export class Connections { public get( id: string, request: Management.GetConnectionRequestParameters = {}, - requestOptions?: Connections.RequestOptions, + requestOptions?: ConnectionsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__get(id, request, requestOptions)); } @@ -327,21 +317,27 @@ export class Connections { private async __get( id: string, request: Management.GetConnectionRequestParameters = {}, - requestOptions?: Connections.RequestOptions, + requestOptions?: ConnectionsClient.RequestOptions, ): Promise> { + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:connections"] }], + }; const { fields, include_fields: includeFields } = request; const _queryParams: Record = {}; if (fields !== undefined) { - _queryParams["fields"] = fields; + _queryParams.fields = fields; } if (includeFields !== undefined) { - _queryParams["include_fields"] = includeFields?.toString() ?? null; + _queryParams.include_fields = includeFields?.toString() ?? null; } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -357,7 +353,9 @@ export class Connections { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -387,28 +385,14 @@ export class Connections { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /connections/{id}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/connections/{id}"); } /** * Removes a specific connection from your tenant. This action cannot be undone. Once removed, users can no longer use this connection to authenticate. * * @param {string} id - The id of the connection to delete - * @param {Connections.RequestOptions} requestOptions - Request-specific configuration. + * @param {ConnectionsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -418,17 +402,23 @@ export class Connections { * @example * await client.connections.delete("id") */ - public delete(id: string, requestOptions?: Connections.RequestOptions): core.HttpResponsePromise { + public delete(id: string, requestOptions?: ConnectionsClient.RequestOptions): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__delete(id, requestOptions)); } private async __delete( id: string, - requestOptions?: Connections.RequestOptions, + requestOptions?: ConnectionsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["delete:connections"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -444,7 +434,9 @@ export class Connections { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -469,21 +461,7 @@ export class Connections { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling DELETE /connections/{id}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "DELETE", "/connections/{id}"); } /** @@ -493,7 +471,7 @@ export class Connections { * * @param {string} id - The id of the connection to update * @param {Management.UpdateConnectionRequestContent} request - * @param {Connections.RequestOptions} requestOptions - Request-specific configuration. + * @param {ConnectionsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -508,7 +486,7 @@ export class Connections { public update( id: string, request: Management.UpdateConnectionRequestContent = {}, - requestOptions?: Connections.RequestOptions, + requestOptions?: ConnectionsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__update(id, request, requestOptions)); } @@ -516,11 +494,17 @@ export class Connections { private async __update( id: string, request: Management.UpdateConnectionRequestContent = {}, - requestOptions?: Connections.RequestOptions, + requestOptions?: ConnectionsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:connections"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -539,7 +523,9 @@ export class Connections { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -571,28 +557,14 @@ export class Connections { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling PATCH /connections/{id}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "PATCH", "/connections/{id}"); } /** * Retrieves the status of an ad/ldap connection referenced by its ID. 200 OK http status code response is returned when the connection is online, otherwise a 404 status code is returned along with an error message * * @param {string} id - ID of the connection to check - * @param {Connections.RequestOptions} requestOptions - Request-specific configuration. + * @param {ConnectionsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -603,17 +575,23 @@ export class Connections { * @example * await client.connections.checkStatus("id") */ - public checkStatus(id: string, requestOptions?: Connections.RequestOptions): core.HttpResponsePromise { + public checkStatus(id: string, requestOptions?: ConnectionsClient.RequestOptions): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__checkStatus(id, requestOptions)); } private async __checkStatus( id: string, - requestOptions?: Connections.RequestOptions, + requestOptions?: ConnectionsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:connections"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -629,7 +607,9 @@ export class Connections { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -656,24 +636,6 @@ export class Connections { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /connections/{id}/status."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/connections/{id}/status"); } } diff --git a/src/management/api/resources/connections/resources/clients/client/Client.ts b/src/management/api/resources/connections/resources/clients/client/Client.ts index 60923d7169..1b26772a8d 100644 --- a/src/management/api/resources/connections/resources/clients/client/Client.ts +++ b/src/management/api/resources/connections/resources/clients/client/Client.ts @@ -1,23 +1,25 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../core/headers.js"; import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; +import * as environments from "../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../errors/index.js"; +import * as Management from "../../../../../index.js"; -export declare namespace Clients { +export declare namespace ClientsClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Clients { - protected readonly _options: Clients.Options; +export class ClientsClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: Clients.Options) { - this._options = _options; + constructor(options: ClientsClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** @@ -27,7 +29,7 @@ export class Clients { * * @param {string} id - The id of the connection for which enabled clients are to be retrieved * @param {Management.GetConnectionEnabledClientsRequestParameters} request - * @param {Clients.RequestOptions} requestOptions - Request-specific configuration. + * @param {ClientsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -44,23 +46,29 @@ export class Clients { public async get( id: string, request: Management.GetConnectionEnabledClientsRequestParameters = {}, - requestOptions?: Clients.RequestOptions, + requestOptions?: ClientsClient.RequestOptions, ): Promise> { const list = core.HttpResponsePromise.interceptFunction( async ( request: Management.GetConnectionEnabledClientsRequestParameters, ): Promise> => { + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:connections"] }], + }; const { take = 50, from: from_ } = request; const _queryParams: Record = {}; if (take !== undefined) { - _queryParams["take"] = take?.toString() ?? null; + _queryParams.take = take?.toString() ?? null; } if (from_ !== undefined) { - _queryParams["from"] = from_; + _queryParams.from = from_; } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -76,7 +84,9 @@ export class Clients { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -113,23 +123,12 @@ export class Clients { }); } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /connections/{id}/clients.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "GET", + "/connections/{id}/clients", + ); }, ); const dataWithRawResponse = await list(request).withRawResponse(); @@ -150,7 +149,7 @@ export class Clients { /** * @param {string} id - The id of the connection to modify * @param {Management.UpdateEnabledClientConnectionsRequestContent} request - * @param {Clients.RequestOptions} requestOptions - Request-specific configuration. + * @param {ClientsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -167,7 +166,7 @@ export class Clients { public update( id: string, request: Management.UpdateEnabledClientConnectionsRequestContent, - requestOptions?: Clients.RequestOptions, + requestOptions?: ClientsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__update(id, request, requestOptions)); } @@ -175,11 +174,17 @@ export class Clients { private async __update( id: string, request: Management.UpdateEnabledClientConnectionsRequestContent, - requestOptions?: Clients.RequestOptions, + requestOptions?: ClientsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:connections"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -198,7 +203,9 @@ export class Clients { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -225,26 +232,6 @@ export class Clients { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling PATCH /connections/{id}/clients.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError(_response.error, _response.rawResponse, "PATCH", "/connections/{id}/clients"); } } diff --git a/src/management/api/resources/connections/resources/keys/client/Client.ts b/src/management/api/resources/connections/resources/keys/client/Client.ts index 8a9df9dde6..605b808055 100644 --- a/src/management/api/resources/connections/resources/keys/client/Client.ts +++ b/src/management/api/resources/connections/resources/keys/client/Client.ts @@ -1,30 +1,32 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../core/headers.js"; import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; +import * as environments from "../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../errors/index.js"; +import * as Management from "../../../../../index.js"; -export declare namespace Keys { +export declare namespace KeysClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Keys { - protected readonly _options: Keys.Options; +export class KeysClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: Keys.Options) { - this._options = _options; + constructor(options: KeysClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** * Gets the connection keys for the Okta or OIDC connection strategy. * * @param {string} id - ID of the connection - * @param {Keys.RequestOptions} requestOptions - Request-specific configuration. + * @param {KeysClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -35,17 +37,26 @@ export class Keys { * @example * await client.connections.keys.get("id") */ - public get(id: string, requestOptions?: Keys.RequestOptions): core.HttpResponsePromise { + public get( + id: string, + requestOptions?: KeysClient.RequestOptions, + ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__get(id, requestOptions)); } private async __get( id: string, - requestOptions?: Keys.RequestOptions, + requestOptions?: KeysClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:connections_keys"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -61,7 +72,9 @@ export class Keys { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: _response.body as Management.ConnectionKey[], rawResponse: _response.rawResponse }; @@ -88,21 +101,7 @@ export class Keys { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /connections/{id}/keys."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/connections/{id}/keys"); } /** @@ -110,7 +109,7 @@ export class Keys { * * @param {string} id - ID of the connection * @param {Management.RotateConnectionKeysRequestContent | null} request - * @param {Keys.RequestOptions} requestOptions - Request-specific configuration. + * @param {KeysClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -124,7 +123,7 @@ export class Keys { public rotate( id: string, request?: Management.RotateConnectionKeysRequestContent | null, - requestOptions?: Keys.RequestOptions, + requestOptions?: KeysClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__rotate(id, request, requestOptions)); } @@ -132,11 +131,20 @@ export class Keys { private async __rotate( id: string, request?: Management.RotateConnectionKeysRequestContent | null, - requestOptions?: Keys.RequestOptions, + requestOptions?: KeysClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [ + { bearerAuth: [] }, + { oAuth2ClientCredentials: ["create:connections_keys", "update:connections_keys"] }, + ], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -155,7 +163,9 @@ export class Keys { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -185,26 +195,11 @@ export class Keys { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling POST /connections/{id}/keys/rotate.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "POST", + "/connections/{id}/keys/rotate", + ); } } diff --git a/src/management/api/resources/connections/resources/scimConfiguration/client/Client.ts b/src/management/api/resources/connections/resources/scimConfiguration/client/Client.ts index aba5d908c1..da0f65d9d4 100644 --- a/src/management/api/resources/connections/resources/scimConfiguration/client/Client.ts +++ b/src/management/api/resources/connections/resources/scimConfiguration/client/Client.ts @@ -1,36 +1,38 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../core/headers.js"; import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; +import * as environments from "../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../errors/index.js"; -import { Tokens } from "../resources/tokens/client/Client.js"; +import * as Management from "../../../../../index.js"; +import { TokensClient } from "../resources/tokens/client/Client.js"; -export declare namespace ScimConfiguration { +export declare namespace ScimConfigurationClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class ScimConfiguration { - protected readonly _options: ScimConfiguration.Options; - protected _tokens: Tokens | undefined; +export class ScimConfigurationClient { + protected readonly _options: NormalizedClientOptionsWithAuth; + protected _tokens: TokensClient | undefined; - constructor(_options: ScimConfiguration.Options) { - this._options = _options; + constructor(options: ScimConfigurationClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } - public get tokens(): Tokens { - return (this._tokens ??= new Tokens(this._options)); + public get tokens(): TokensClient { + return (this._tokens ??= new TokensClient(this._options)); } /** * Retrieves a scim configuration by its connectionId. * * @param {string} id - The id of the connection to retrieve its SCIM configuration - * @param {ScimConfiguration.RequestOptions} requestOptions - Request-specific configuration. + * @param {ScimConfigurationClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.NotFoundError} @@ -40,18 +42,24 @@ export class ScimConfiguration { */ public get( id: string, - requestOptions?: ScimConfiguration.RequestOptions, + requestOptions?: ScimConfigurationClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__get(id, requestOptions)); } private async __get( id: string, - requestOptions?: ScimConfiguration.RequestOptions, + requestOptions?: ScimConfigurationClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:scim_config"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -67,7 +75,9 @@ export class ScimConfiguration { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -91,23 +101,12 @@ export class ScimConfiguration { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /connections/{id}/scim-configuration.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "GET", + "/connections/{id}/scim-configuration", + ); } /** @@ -115,7 +114,7 @@ export class ScimConfiguration { * * @param {string} id - The id of the connection to create its SCIM configuration * @param {Management.CreateScimConfigurationRequestContent | null} request - * @param {ScimConfiguration.RequestOptions} requestOptions - Request-specific configuration. + * @param {ScimConfigurationClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.NotFoundError} @@ -126,7 +125,7 @@ export class ScimConfiguration { public create( id: string, request?: Management.CreateScimConfigurationRequestContent | null, - requestOptions?: ScimConfiguration.RequestOptions, + requestOptions?: ScimConfigurationClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__create(id, request, requestOptions)); } @@ -134,11 +133,17 @@ export class ScimConfiguration { private async __create( id: string, request?: Management.CreateScimConfigurationRequestContent | null, - requestOptions?: ScimConfiguration.RequestOptions, + requestOptions?: ScimConfigurationClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["create:scim_config"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -157,7 +162,9 @@ export class ScimConfiguration { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -181,30 +188,19 @@ export class ScimConfiguration { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling POST /connections/{id}/scim-configuration.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "POST", + "/connections/{id}/scim-configuration", + ); } /** * Deletes a scim configuration by its connectionId. * * @param {string} id - The id of the connection to delete its SCIM configuration - * @param {ScimConfiguration.RequestOptions} requestOptions - Request-specific configuration. + * @param {ScimConfigurationClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.NotFoundError} @@ -212,17 +208,23 @@ export class ScimConfiguration { * @example * await client.connections.scimConfiguration.delete("id") */ - public delete(id: string, requestOptions?: ScimConfiguration.RequestOptions): core.HttpResponsePromise { + public delete(id: string, requestOptions?: ScimConfigurationClient.RequestOptions): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__delete(id, requestOptions)); } private async __delete( id: string, - requestOptions?: ScimConfiguration.RequestOptions, + requestOptions?: ScimConfigurationClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["delete:scim_config"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -238,7 +240,9 @@ export class ScimConfiguration { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -259,23 +263,12 @@ export class ScimConfiguration { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling DELETE /connections/{id}/scim-configuration.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "DELETE", + "/connections/{id}/scim-configuration", + ); } /** @@ -283,7 +276,7 @@ export class ScimConfiguration { * * @param {string} id - The id of the connection to update its SCIM configuration * @param {Management.UpdateScimConfigurationRequestContent} request - * @param {ScimConfiguration.RequestOptions} requestOptions - Request-specific configuration. + * @param {ScimConfigurationClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.NotFoundError} @@ -297,7 +290,7 @@ export class ScimConfiguration { public update( id: string, request: Management.UpdateScimConfigurationRequestContent, - requestOptions?: ScimConfiguration.RequestOptions, + requestOptions?: ScimConfigurationClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__update(id, request, requestOptions)); } @@ -305,11 +298,17 @@ export class ScimConfiguration { private async __update( id: string, request: Management.UpdateScimConfigurationRequestContent, - requestOptions?: ScimConfiguration.RequestOptions, + requestOptions?: ScimConfigurationClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:scim_config"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -328,7 +327,9 @@ export class ScimConfiguration { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -352,30 +353,19 @@ export class ScimConfiguration { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling PATCH /connections/{id}/scim-configuration.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "PATCH", + "/connections/{id}/scim-configuration", + ); } /** * Retrieves a scim configuration's default mapping by its connectionId. * * @param {string} id - The id of the connection to retrieve its default SCIM mapping - * @param {ScimConfiguration.RequestOptions} requestOptions - Request-specific configuration. + * @param {ScimConfigurationClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.NotFoundError} @@ -385,18 +375,24 @@ export class ScimConfiguration { */ public getDefaultMapping( id: string, - requestOptions?: ScimConfiguration.RequestOptions, + requestOptions?: ScimConfigurationClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__getDefaultMapping(id, requestOptions)); } private async __getDefaultMapping( id: string, - requestOptions?: ScimConfiguration.RequestOptions, + requestOptions?: ScimConfigurationClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:scim_config"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -412,7 +408,9 @@ export class ScimConfiguration { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -436,26 +434,11 @@ export class ScimConfiguration { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /connections/{id}/scim-configuration/default-mapping.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "GET", + "/connections/{id}/scim-configuration/default-mapping", + ); } } diff --git a/src/management/api/resources/connections/resources/scimConfiguration/resources/tokens/client/Client.ts b/src/management/api/resources/connections/resources/scimConfiguration/resources/tokens/client/Client.ts index 1a8877044e..9da3d4d16d 100644 --- a/src/management/api/resources/connections/resources/scimConfiguration/resources/tokens/client/Client.ts +++ b/src/management/api/resources/connections/resources/scimConfiguration/resources/tokens/client/Client.ts @@ -1,30 +1,35 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../../../BaseClient.js"; -import * as environments from "../../../../../../../../environments.js"; +import { + type NormalizedClientOptionsWithAuth, + normalizeClientOptionsWithAuth, +} from "../../../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../../../core/headers.js"; import * as core from "../../../../../../../../core/index.js"; -import * as Management from "../../../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../../../core/headers.js"; +import * as environments from "../../../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../../../errors/index.js"; +import * as Management from "../../../../../../../index.js"; -export declare namespace Tokens { +export declare namespace TokensClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Tokens { - protected readonly _options: Tokens.Options; +export class TokensClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: Tokens.Options) { - this._options = _options; + constructor(options: TokensClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** * Retrieves all scim tokens by its connection id. * * @param {string} id - The id of the connection to retrieve its SCIM configuration - * @param {Tokens.RequestOptions} requestOptions - Request-specific configuration. + * @param {TokensClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.NotFoundError} @@ -34,18 +39,24 @@ export class Tokens { */ public get( id: string, - requestOptions?: Tokens.RequestOptions, + requestOptions?: TokensClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__get(id, requestOptions)); } private async __get( id: string, - requestOptions?: Tokens.RequestOptions, + requestOptions?: TokensClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:scim_token"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -61,7 +72,9 @@ export class Tokens { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -85,23 +98,12 @@ export class Tokens { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /connections/{id}/scim-configuration/tokens.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "GET", + "/connections/{id}/scim-configuration/tokens", + ); } /** @@ -109,7 +111,7 @@ export class Tokens { * * @param {string} id - The id of the connection to create its SCIM token * @param {Management.CreateScimTokenRequestContent} request - * @param {Tokens.RequestOptions} requestOptions - Request-specific configuration. + * @param {TokensClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.NotFoundError} @@ -121,7 +123,7 @@ export class Tokens { public create( id: string, request: Management.CreateScimTokenRequestContent = {}, - requestOptions?: Tokens.RequestOptions, + requestOptions?: TokensClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__create(id, request, requestOptions)); } @@ -129,11 +131,17 @@ export class Tokens { private async __create( id: string, request: Management.CreateScimTokenRequestContent = {}, - requestOptions?: Tokens.RequestOptions, + requestOptions?: TokensClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["create:scim_token"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -152,7 +160,9 @@ export class Tokens { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -178,23 +188,12 @@ export class Tokens { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling POST /connections/{id}/scim-configuration/tokens.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "POST", + "/connections/{id}/scim-configuration/tokens", + ); } /** @@ -202,7 +201,7 @@ export class Tokens { * * @param {string} id - The connection id that owns the SCIM token to delete * @param {string} tokenId - The id of the scim token to delete - * @param {Tokens.RequestOptions} requestOptions - Request-specific configuration. + * @param {TokensClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.NotFoundError} @@ -210,18 +209,28 @@ export class Tokens { * @example * await client.connections.scimConfiguration.tokens.delete("id", "tokenId") */ - public delete(id: string, tokenId: string, requestOptions?: Tokens.RequestOptions): core.HttpResponsePromise { + public delete( + id: string, + tokenId: string, + requestOptions?: TokensClient.RequestOptions, + ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__delete(id, tokenId, requestOptions)); } private async __delete( id: string, tokenId: string, - requestOptions?: Tokens.RequestOptions, + requestOptions?: TokensClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["delete:scim_token"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -237,7 +246,9 @@ export class Tokens { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -258,26 +269,11 @@ export class Tokens { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling DELETE /connections/{id}/scim-configuration/tokens/{tokenId}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "DELETE", + "/connections/{id}/scim-configuration/tokens/{tokenId}", + ); } } diff --git a/src/management/api/resources/connections/resources/users/client/Client.ts b/src/management/api/resources/connections/resources/users/client/Client.ts index 1525c94aa6..50da68a740 100644 --- a/src/management/api/resources/connections/resources/users/client/Client.ts +++ b/src/management/api/resources/connections/resources/users/client/Client.ts @@ -1,23 +1,25 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../core/headers.js"; import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; +import * as environments from "../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../errors/index.js"; +import * as Management from "../../../../../index.js"; -export declare namespace Users { +export declare namespace UsersClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Users { - protected readonly _options: Users.Options; +export class UsersClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: Users.Options) { - this._options = _options; + constructor(options: UsersClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** @@ -25,7 +27,7 @@ export class Users { * * @param {string} id - The id of the connection (currently only database connections are supported) * @param {Management.DeleteConnectionUsersByEmailQueryParameters} request - * @param {Users.RequestOptions} requestOptions - Request-specific configuration. + * @param {UsersClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -40,7 +42,7 @@ export class Users { public deleteByEmail( id: string, request: Management.DeleteConnectionUsersByEmailQueryParameters, - requestOptions?: Users.RequestOptions, + requestOptions?: UsersClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__deleteByEmail(id, request, requestOptions)); } @@ -48,14 +50,20 @@ export class Users { private async __deleteByEmail( id: string, request: Management.DeleteConnectionUsersByEmailQueryParameters, - requestOptions?: Users.RequestOptions, + requestOptions?: UsersClient.RequestOptions, ): Promise> { + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["delete:users"] }], + }; const { email } = request; const _queryParams: Record = {}; - _queryParams["email"] = email; - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _queryParams.email = email; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -71,7 +79,9 @@ export class Users { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -96,26 +106,6 @@ export class Users { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling DELETE /connections/{id}/users.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError(_response.error, _response.rawResponse, "DELETE", "/connections/{id}/users"); } } diff --git a/src/management/api/resources/customDomains/client/Client.ts b/src/management/api/resources/customDomains/client/Client.ts index b37af7bdb9..22c4f49df1 100644 --- a/src/management/api/resources/customDomains/client/Client.ts +++ b/src/management/api/resources/customDomains/client/Client.ts @@ -1,29 +1,31 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../BaseClient.js"; -import * as environments from "../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../core/headers.js"; import * as core from "../../../../core/index.js"; -import * as Management from "../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../core/headers.js"; +import * as environments from "../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../errors/index.js"; +import * as Management from "../../../index.js"; -export declare namespace CustomDomains { +export declare namespace CustomDomainsClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class CustomDomains { - protected readonly _options: CustomDomains.Options; +export class CustomDomainsClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: CustomDomains.Options) { - this._options = _options; + constructor(options: CustomDomainsClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** * Retrieve details on custom domains. * - * @param {CustomDomains.RequestOptions} requestOptions - Request-specific configuration. + * @param {CustomDomainsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.UnauthorizedError} * @throws {@link Management.ForbiddenError} @@ -33,17 +35,23 @@ export class CustomDomains { * await client.customDomains.list() */ public list( - requestOptions?: CustomDomains.RequestOptions, + requestOptions?: CustomDomainsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__list(requestOptions)); } private async __list( - requestOptions?: CustomDomains.RequestOptions, + requestOptions?: CustomDomainsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:custom_domains"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -59,7 +67,9 @@ export class CustomDomains { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -85,21 +95,7 @@ export class CustomDomains { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /custom-domains."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/custom-domains"); } /** @@ -119,7 +115,7 @@ export class CustomDomains { * - recommended - for modern usage this includes TLS 1.2 only * * @param {Management.CreateCustomDomainRequestContent} request - * @param {CustomDomains.RequestOptions} requestOptions - Request-specific configuration. + * @param {CustomDomainsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -135,18 +131,24 @@ export class CustomDomains { */ public create( request: Management.CreateCustomDomainRequestContent, - requestOptions?: CustomDomains.RequestOptions, + requestOptions?: CustomDomainsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__create(request, requestOptions)); } private async __create( request: Management.CreateCustomDomainRequestContent, - requestOptions?: CustomDomains.RequestOptions, + requestOptions?: CustomDomainsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["create:custom_domains"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -165,7 +167,9 @@ export class CustomDomains { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -195,28 +199,14 @@ export class CustomDomains { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling POST /custom-domains."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/custom-domains"); } /** * Retrieve a custom domain configuration and status. * * @param {string} id - ID of the custom domain to retrieve. - * @param {CustomDomains.RequestOptions} requestOptions - Request-specific configuration. + * @param {CustomDomainsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -229,18 +219,24 @@ export class CustomDomains { */ public get( id: string, - requestOptions?: CustomDomains.RequestOptions, + requestOptions?: CustomDomainsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__get(id, requestOptions)); } private async __get( id: string, - requestOptions?: CustomDomains.RequestOptions, + requestOptions?: CustomDomainsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:custom_domains"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -256,7 +252,9 @@ export class CustomDomains { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -286,28 +284,14 @@ export class CustomDomains { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /custom-domains/{id}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/custom-domains/{id}"); } /** * Delete a custom domain and stop serving requests for it. * * @param {string} id - ID of the custom domain to delete. - * @param {CustomDomains.RequestOptions} requestOptions - Request-specific configuration. + * @param {CustomDomainsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -317,17 +301,23 @@ export class CustomDomains { * @example * await client.customDomains.delete("id") */ - public delete(id: string, requestOptions?: CustomDomains.RequestOptions): core.HttpResponsePromise { + public delete(id: string, requestOptions?: CustomDomainsClient.RequestOptions): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__delete(id, requestOptions)); } private async __delete( id: string, - requestOptions?: CustomDomains.RequestOptions, + requestOptions?: CustomDomainsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["delete:custom_domains"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -343,7 +333,9 @@ export class CustomDomains { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -368,21 +360,7 @@ export class CustomDomains { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling DELETE /custom-domains/{id}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "DELETE", "/custom-domains/{id}"); } /** @@ -413,7 +391,7 @@ export class CustomDomains { * * @param {string} id - The id of the custom domain to update * @param {Management.UpdateCustomDomainRequestContent} request - * @param {CustomDomains.RequestOptions} requestOptions - Request-specific configuration. + * @param {CustomDomainsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -426,7 +404,7 @@ export class CustomDomains { public update( id: string, request: Management.UpdateCustomDomainRequestContent = {}, - requestOptions?: CustomDomains.RequestOptions, + requestOptions?: CustomDomainsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__update(id, request, requestOptions)); } @@ -434,11 +412,17 @@ export class CustomDomains { private async __update( id: string, request: Management.UpdateCustomDomainRequestContent = {}, - requestOptions?: CustomDomains.RequestOptions, + requestOptions?: CustomDomainsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:custom_domains"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -457,7 +441,9 @@ export class CustomDomains { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -485,28 +471,14 @@ export class CustomDomains { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling PATCH /custom-domains/{id}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "PATCH", "/custom-domains/{id}"); } /** * Run the test process on a custom domain. * * @param {string} id - ID of the custom domain to test. - * @param {CustomDomains.RequestOptions} requestOptions - Request-specific configuration. + * @param {CustomDomainsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -519,18 +491,24 @@ export class CustomDomains { */ public test( id: string, - requestOptions?: CustomDomains.RequestOptions, + requestOptions?: CustomDomainsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__test(id, requestOptions)); } private async __test( id: string, - requestOptions?: CustomDomains.RequestOptions, + requestOptions?: CustomDomainsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:custom_domains"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -546,7 +524,9 @@ export class CustomDomains { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -576,23 +556,7 @@ export class CustomDomains { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling POST /custom-domains/{id}/test.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/custom-domains/{id}/test"); } /** @@ -606,7 +570,7 @@ export class CustomDomains { * Learn more about verifying custom domains that use Self Managed certificates. * * @param {string} id - ID of the custom domain to verify. - * @param {CustomDomains.RequestOptions} requestOptions - Request-specific configuration. + * @param {CustomDomainsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -619,18 +583,24 @@ export class CustomDomains { */ public verify( id: string, - requestOptions?: CustomDomains.RequestOptions, + requestOptions?: CustomDomainsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__verify(id, requestOptions)); } private async __verify( id: string, - requestOptions?: CustomDomains.RequestOptions, + requestOptions?: CustomDomainsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["create:custom_domains"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -646,7 +616,9 @@ export class CustomDomains { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -676,26 +648,6 @@ export class CustomDomains { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling POST /custom-domains/{id}/verify.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/custom-domains/{id}/verify"); } } diff --git a/src/management/api/resources/deviceCredentials/client/Client.ts b/src/management/api/resources/deviceCredentials/client/Client.ts index 772dd81bf2..f4b5987804 100644 --- a/src/management/api/resources/deviceCredentials/client/Client.ts +++ b/src/management/api/resources/deviceCredentials/client/Client.ts @@ -1,30 +1,32 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../BaseClient.js"; -import * as environments from "../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../core/headers.js"; import * as core from "../../../../core/index.js"; -import * as Management from "../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../core/headers.js"; +import * as environments from "../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../errors/index.js"; +import * as Management from "../../../index.js"; -export declare namespace DeviceCredentials { +export declare namespace DeviceCredentialsClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class DeviceCredentials { - protected readonly _options: DeviceCredentials.Options; +export class DeviceCredentialsClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: DeviceCredentials.Options) { - this._options = _options; + constructor(options: DeviceCredentialsClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** * Retrieve device credential information (public_key, refresh_token, or rotating_refresh_token) associated with a specific user. * * @param {Management.ListDeviceCredentialsRequestParameters} request - * @param {DeviceCredentials.RequestOptions} requestOptions - Request-specific configuration. + * @param {DeviceCredentialsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -45,14 +47,17 @@ export class DeviceCredentials { */ public async list( request: Management.ListDeviceCredentialsRequestParameters = {}, - requestOptions?: DeviceCredentials.RequestOptions, + requestOptions?: DeviceCredentialsClient.RequestOptions, ): Promise> { const list = core.HttpResponsePromise.interceptFunction( async ( request: Management.ListDeviceCredentialsRequestParameters, ): Promise> => { + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:device_credentials"] }], + }; const { - page = 0, + page, per_page: perPage = 50, include_totals: includeTotals = true, fields, @@ -63,32 +68,35 @@ export class DeviceCredentials { } = request; const _queryParams: Record = {}; if (page !== undefined) { - _queryParams["page"] = page?.toString() ?? null; + _queryParams.page = page?.toString() ?? null; } if (perPage !== undefined) { - _queryParams["per_page"] = perPage?.toString() ?? null; + _queryParams.per_page = perPage?.toString() ?? null; } if (includeTotals !== undefined) { - _queryParams["include_totals"] = includeTotals?.toString() ?? null; + _queryParams.include_totals = includeTotals?.toString() ?? null; } if (fields !== undefined) { - _queryParams["fields"] = fields; + _queryParams.fields = fields; } if (includeFields !== undefined) { - _queryParams["include_fields"] = includeFields?.toString() ?? null; + _queryParams.include_fields = includeFields?.toString() ?? null; } if (userId !== undefined) { - _queryParams["user_id"] = userId; + _queryParams.user_id = userId; } if (clientId !== undefined) { - _queryParams["client_id"] = clientId; + _queryParams.client_id = clientId; } if (type_ !== undefined) { - _queryParams["type"] = type_; + _queryParams.type = type_; } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -104,7 +112,9 @@ export class DeviceCredentials { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -139,26 +149,10 @@ export class DeviceCredentials { }); } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /device-credentials.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/device-credentials"); }, ); - let _offset = request?.page != null ? request?.page : 0; + let _offset = request?.page != null ? request?.page : 1; const dataWithRawResponse = await list(request).withRawResponse(); return new core.Page< Management.DeviceCredential, @@ -166,10 +160,10 @@ export class DeviceCredentials { >({ response: dataWithRawResponse.data, rawResponse: dataWithRawResponse.rawResponse, - hasNextPage: (response) => (response?.device_credentials ?? []).length >= (request?.per_page ?? 1), + hasNextPage: (response) => (response?.device_credentials ?? []).length > 0, getItems: (response) => response?.device_credentials ?? [], - loadPage: (response) => { - _offset += response?.device_credentials != null ? response.device_credentials.length : 1; + loadPage: (_response) => { + _offset += 1; return list(core.setObjectProperty(request, "page", _offset)); }, }); @@ -181,7 +175,7 @@ export class DeviceCredentials { * When refresh token rotation is enabled, the endpoint becomes consistent. For more information, read Signing Keys. * * @param {Management.CreatePublicKeyDeviceCredentialRequestContent} request - * @param {DeviceCredentials.RequestOptions} requestOptions - Request-specific configuration. + * @param {DeviceCredentialsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -198,18 +192,24 @@ export class DeviceCredentials { */ public createPublicKey( request: Management.CreatePublicKeyDeviceCredentialRequestContent, - requestOptions?: DeviceCredentials.RequestOptions, + requestOptions?: DeviceCredentialsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__createPublicKey(request, requestOptions)); } private async __createPublicKey( request: Management.CreatePublicKeyDeviceCredentialRequestContent, - requestOptions?: DeviceCredentials.RequestOptions, + requestOptions?: DeviceCredentialsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["create:current_user_device_credentials"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -228,7 +228,9 @@ export class DeviceCredentials { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -258,28 +260,14 @@ export class DeviceCredentials { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling POST /device-credentials."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/device-credentials"); } /** * Permanently delete a device credential (such as a refresh token or public key) with the given ID. * * @param {string} id - ID of the credential to delete. - * @param {DeviceCredentials.RequestOptions} requestOptions - Request-specific configuration. + * @param {DeviceCredentialsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -289,17 +277,26 @@ export class DeviceCredentials { * @example * await client.deviceCredentials.delete("id") */ - public delete(id: string, requestOptions?: DeviceCredentials.RequestOptions): core.HttpResponsePromise { + public delete(id: string, requestOptions?: DeviceCredentialsClient.RequestOptions): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__delete(id, requestOptions)); } private async __delete( id: string, - requestOptions?: DeviceCredentials.RequestOptions, + requestOptions?: DeviceCredentialsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [ + { bearerAuth: [] }, + { oAuth2ClientCredentials: ["delete:device_credentials", "delete:current_user_device_credentials"] }, + ], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -315,7 +312,9 @@ export class DeviceCredentials { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -340,26 +339,6 @@ export class DeviceCredentials { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling DELETE /device-credentials/{id}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError(_response.error, _response.rawResponse, "DELETE", "/device-credentials/{id}"); } } diff --git a/src/management/api/resources/emailTemplates/client/Client.ts b/src/management/api/resources/emailTemplates/client/Client.ts index 826888071a..127dd73008 100644 --- a/src/management/api/resources/emailTemplates/client/Client.ts +++ b/src/management/api/resources/emailTemplates/client/Client.ts @@ -1,30 +1,32 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../BaseClient.js"; -import * as environments from "../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../core/headers.js"; import * as core from "../../../../core/index.js"; -import * as Management from "../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../core/headers.js"; +import * as environments from "../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../errors/index.js"; +import * as Management from "../../../index.js"; -export declare namespace EmailTemplates { +export declare namespace EmailTemplatesClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class EmailTemplates { - protected readonly _options: EmailTemplates.Options; +export class EmailTemplatesClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: EmailTemplates.Options) { - this._options = _options; + constructor(options: EmailTemplatesClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** * Create an email template. * * @param {Management.CreateEmailTemplateRequestContent} request - * @param {EmailTemplates.RequestOptions} requestOptions - Request-specific configuration. + * @param {EmailTemplatesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -39,18 +41,24 @@ export class EmailTemplates { */ public create( request: Management.CreateEmailTemplateRequestContent, - requestOptions?: EmailTemplates.RequestOptions, + requestOptions?: EmailTemplatesClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__create(request, requestOptions)); } private async __create( request: Management.CreateEmailTemplateRequestContent, - requestOptions?: EmailTemplates.RequestOptions, + requestOptions?: EmailTemplatesClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["create:email_templates"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -69,7 +77,9 @@ export class EmailTemplates { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -99,28 +109,14 @@ export class EmailTemplates { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling POST /email-templates."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/email-templates"); } /** * Retrieve an email template by pre-defined name. These names are `verify_email`, `verify_email_by_code`, `reset_email`, `reset_email_by_code`, `welcome_email`, `blocked_account`, `stolen_credentials`, `enrollment_email`, `mfa_oob_code`, `user_invitation`, and `async_approval`. The names `change_password`, and `password_reset` are also supported for legacy scenarios. * * @param {Management.EmailTemplateNameEnum} templateName - Template name. Can be `verify_email`, `verify_email_by_code`, `reset_email`, `reset_email_by_code`, `welcome_email`, `blocked_account`, `stolen_credentials`, `enrollment_email`, `mfa_oob_code`, `user_invitation`, `async_approval`, `change_password` (legacy), or `password_reset` (legacy). - * @param {EmailTemplates.RequestOptions} requestOptions - Request-specific configuration. + * @param {EmailTemplatesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -132,18 +128,24 @@ export class EmailTemplates { */ public get( templateName: Management.EmailTemplateNameEnum, - requestOptions?: EmailTemplates.RequestOptions, + requestOptions?: EmailTemplatesClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__get(templateName, requestOptions)); } private async __get( templateName: Management.EmailTemplateNameEnum, - requestOptions?: EmailTemplates.RequestOptions, + requestOptions?: EmailTemplatesClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:email_templates"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -159,7 +161,9 @@ export class EmailTemplates { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -187,23 +191,12 @@ export class EmailTemplates { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /email-templates/{templateName}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "GET", + "/email-templates/{templateName}", + ); } /** @@ -211,7 +204,7 @@ export class EmailTemplates { * * @param {Management.EmailTemplateNameEnum} templateName - Template name. Can be `verify_email`, `verify_email_by_code`, `reset_email`, `reset_email_by_code`, `welcome_email`, `blocked_account`, `stolen_credentials`, `enrollment_email`, `mfa_oob_code`, `user_invitation`, `async_approval`, `change_password` (legacy), or `password_reset` (legacy). * @param {Management.SetEmailTemplateRequestContent} request - * @param {EmailTemplates.RequestOptions} requestOptions - Request-specific configuration. + * @param {EmailTemplatesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -227,7 +220,7 @@ export class EmailTemplates { public set( templateName: Management.EmailTemplateNameEnum, request: Management.SetEmailTemplateRequestContent, - requestOptions?: EmailTemplates.RequestOptions, + requestOptions?: EmailTemplatesClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__set(templateName, request, requestOptions)); } @@ -235,11 +228,17 @@ export class EmailTemplates { private async __set( templateName: Management.EmailTemplateNameEnum, request: Management.SetEmailTemplateRequestContent, - requestOptions?: EmailTemplates.RequestOptions, + requestOptions?: EmailTemplatesClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:email_templates"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -258,7 +257,9 @@ export class EmailTemplates { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -288,23 +289,12 @@ export class EmailTemplates { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling PUT /email-templates/{templateName}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "PUT", + "/email-templates/{templateName}", + ); } /** @@ -312,7 +302,7 @@ export class EmailTemplates { * * @param {Management.EmailTemplateNameEnum} templateName - Template name. Can be `verify_email`, `verify_email_by_code`, `reset_email`, `reset_email_by_code`, `welcome_email`, `blocked_account`, `stolen_credentials`, `enrollment_email`, `mfa_oob_code`, `user_invitation`, `async_approval`, `change_password` (legacy), or `password_reset` (legacy). * @param {Management.UpdateEmailTemplateRequestContent} request - * @param {EmailTemplates.RequestOptions} requestOptions - Request-specific configuration. + * @param {EmailTemplatesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -326,7 +316,7 @@ export class EmailTemplates { public update( templateName: Management.EmailTemplateNameEnum, request: Management.UpdateEmailTemplateRequestContent = {}, - requestOptions?: EmailTemplates.RequestOptions, + requestOptions?: EmailTemplatesClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__update(templateName, request, requestOptions)); } @@ -334,11 +324,17 @@ export class EmailTemplates { private async __update( templateName: Management.EmailTemplateNameEnum, request: Management.UpdateEmailTemplateRequestContent = {}, - requestOptions?: EmailTemplates.RequestOptions, + requestOptions?: EmailTemplatesClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:email_templates"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -357,7 +353,9 @@ export class EmailTemplates { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -387,26 +385,11 @@ export class EmailTemplates { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling PATCH /email-templates/{templateName}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "PATCH", + "/email-templates/{templateName}", + ); } } diff --git a/src/management/api/resources/emails/client/Client.ts b/src/management/api/resources/emails/client/Client.ts index 7d152d1e1c..14fa866dcc 100644 --- a/src/management/api/resources/emails/client/Client.ts +++ b/src/management/api/resources/emails/client/Client.ts @@ -1,23 +1,22 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions } from "../../../../BaseClient.js"; -import * as environments from "../../../../environments.js"; -import * as core from "../../../../core/index.js"; -import { Provider } from "../resources/provider/client/Client.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../BaseClient.js"; +import { ProviderClient } from "../resources/provider/client/Client.js"; -export declare namespace Emails { +export declare namespace EmailsClient { export interface Options extends BaseClientOptions {} } -export class Emails { - protected readonly _options: Emails.Options; - protected _provider: Provider | undefined; +export class EmailsClient { + protected readonly _options: NormalizedClientOptionsWithAuth; + protected _provider: ProviderClient | undefined; - constructor(_options: Emails.Options) { - this._options = _options; + constructor(options: EmailsClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } - public get provider(): Provider { - return (this._provider ??= new Provider(this._options)); + public get provider(): ProviderClient { + return (this._provider ??= new ProviderClient(this._options)); } } diff --git a/src/management/api/resources/emails/resources/provider/client/Client.ts b/src/management/api/resources/emails/resources/provider/client/Client.ts index 59030f9853..b249611f60 100644 --- a/src/management/api/resources/emails/resources/provider/client/Client.ts +++ b/src/management/api/resources/emails/resources/provider/client/Client.ts @@ -1,30 +1,32 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../core/headers.js"; import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; +import * as environments from "../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../errors/index.js"; +import * as Management from "../../../../../index.js"; -export declare namespace Provider { +export declare namespace ProviderClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Provider { - protected readonly _options: Provider.Options; +export class ProviderClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: Provider.Options) { - this._options = _options; + constructor(options: ProviderClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** * Retrieve details of the email provider configuration in your tenant. A list of fields to include or exclude may also be specified. * * @param {Management.GetEmailProviderRequestParameters} request - * @param {Provider.RequestOptions} requestOptions - Request-specific configuration. + * @param {ProviderClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -40,28 +42,34 @@ export class Provider { */ public get( request: Management.GetEmailProviderRequestParameters = {}, - requestOptions?: Provider.RequestOptions, + requestOptions?: ProviderClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__get(request, requestOptions)); } private async __get( request: Management.GetEmailProviderRequestParameters = {}, - requestOptions?: Provider.RequestOptions, + requestOptions?: ProviderClient.RequestOptions, ): Promise> { + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:email_provider"] }], + }; const { fields, include_fields: includeFields } = request; const _queryParams: Record = {}; if (fields !== undefined) { - _queryParams["fields"] = fields; + _queryParams.fields = fields; } if (includeFields !== undefined) { - _queryParams["include_fields"] = includeFields?.toString() ?? null; + _queryParams.include_fields = includeFields?.toString() ?? null; } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -77,7 +85,9 @@ export class Provider { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -107,21 +117,7 @@ export class Provider { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /emails/provider."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/emails/provider"); } /** @@ -169,7 +165,7 @@ export class Provider { * * * @param {Management.CreateEmailProviderRequestContent} request - * @param {Provider.RequestOptions} requestOptions - Request-specific configuration. + * @param {ProviderClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -187,18 +183,24 @@ export class Provider { */ public create( request: Management.CreateEmailProviderRequestContent, - requestOptions?: Provider.RequestOptions, + requestOptions?: ProviderClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__create(request, requestOptions)); } private async __create( request: Management.CreateEmailProviderRequestContent, - requestOptions?: Provider.RequestOptions, + requestOptions?: ProviderClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["create:email_provider"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -217,7 +219,9 @@ export class Provider { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -247,27 +251,13 @@ export class Provider { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling POST /emails/provider."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/emails/provider"); } /** * Delete the email provider. * - * @param {Provider.RequestOptions} requestOptions - Request-specific configuration. + * @param {ProviderClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -278,14 +268,20 @@ export class Provider { * @example * await client.emails.provider.delete() */ - public delete(requestOptions?: Provider.RequestOptions): core.HttpResponsePromise { + public delete(requestOptions?: ProviderClient.RequestOptions): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__delete(requestOptions)); } - private async __delete(requestOptions?: Provider.RequestOptions): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + private async __delete(requestOptions?: ProviderClient.RequestOptions): Promise> { + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["delete:email_provider"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -301,7 +297,9 @@ export class Provider { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -328,21 +326,7 @@ export class Provider { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling DELETE /emails/provider."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "DELETE", "/emails/provider"); } /** @@ -388,7 +372,7 @@ export class Provider { * * * @param {Management.UpdateEmailProviderRequestContent} request - * @param {Provider.RequestOptions} requestOptions - Request-specific configuration. + * @param {ProviderClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -402,18 +386,24 @@ export class Provider { */ public update( request: Management.UpdateEmailProviderRequestContent = {}, - requestOptions?: Provider.RequestOptions, + requestOptions?: ProviderClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__update(request, requestOptions)); } private async __update( request: Management.UpdateEmailProviderRequestContent = {}, - requestOptions?: Provider.RequestOptions, + requestOptions?: ProviderClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:email_provider"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -432,7 +422,9 @@ export class Provider { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -464,24 +456,6 @@ export class Provider { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling PATCH /emails/provider."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError(_response.error, _response.rawResponse, "PATCH", "/emails/provider"); } } diff --git a/src/management/api/resources/eventStreams/client/Client.ts b/src/management/api/resources/eventStreams/client/Client.ts index 83efc627d9..9bbae18e27 100644 --- a/src/management/api/resources/eventStreams/client/Client.ts +++ b/src/management/api/resources/eventStreams/client/Client.ts @@ -1,40 +1,42 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../BaseClient.js"; -import * as environments from "../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../core/headers.js"; import * as core from "../../../../core/index.js"; -import * as Management from "../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../core/headers.js"; +import * as environments from "../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../errors/index.js"; -import { Deliveries } from "../resources/deliveries/client/Client.js"; -import { Redeliveries } from "../resources/redeliveries/client/Client.js"; +import * as Management from "../../../index.js"; +import { DeliveriesClient } from "../resources/deliveries/client/Client.js"; +import { RedeliveriesClient } from "../resources/redeliveries/client/Client.js"; -export declare namespace EventStreams { +export declare namespace EventStreamsClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class EventStreams { - protected readonly _options: EventStreams.Options; - protected _deliveries: Deliveries | undefined; - protected _redeliveries: Redeliveries | undefined; +export class EventStreamsClient { + protected readonly _options: NormalizedClientOptionsWithAuth; + protected _deliveries: DeliveriesClient | undefined; + protected _redeliveries: RedeliveriesClient | undefined; - constructor(_options: EventStreams.Options) { - this._options = _options; + constructor(options: EventStreamsClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } - public get deliveries(): Deliveries { - return (this._deliveries ??= new Deliveries(this._options)); + public get deliveries(): DeliveriesClient { + return (this._deliveries ??= new DeliveriesClient(this._options)); } - public get redeliveries(): Redeliveries { - return (this._redeliveries ??= new Redeliveries(this._options)); + public get redeliveries(): RedeliveriesClient { + return (this._redeliveries ??= new RedeliveriesClient(this._options)); } /** * @param {Management.ListEventStreamsRequestParameters} request - * @param {EventStreams.RequestOptions} requestOptions - Request-specific configuration. + * @param {EventStreamsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -49,28 +51,34 @@ export class EventStreams { */ public list( request: Management.ListEventStreamsRequestParameters = {}, - requestOptions?: EventStreams.RequestOptions, + requestOptions?: EventStreamsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__list(request, requestOptions)); } private async __list( request: Management.ListEventStreamsRequestParameters = {}, - requestOptions?: EventStreams.RequestOptions, + requestOptions?: EventStreamsClient.RequestOptions, ): Promise> { + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:event_streams"] }], + }; const { from: from_, take = 50 } = request; const _queryParams: Record = {}; if (from_ !== undefined) { - _queryParams["from"] = from_; + _queryParams.from = from_; } if (take !== undefined) { - _queryParams["take"] = take?.toString() ?? null; + _queryParams.take = take?.toString() ?? null; } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -86,7 +94,9 @@ export class EventStreams { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -114,26 +124,12 @@ export class EventStreams { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /event-streams."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/event-streams"); } /** * @param {Management.EventStreamsCreateRequest} request - * @param {EventStreams.RequestOptions} requestOptions - Request-specific configuration. + * @param {EventStreamsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -157,18 +153,24 @@ export class EventStreams { */ public create( request: Management.EventStreamsCreateRequest, - requestOptions?: EventStreams.RequestOptions, + requestOptions?: EventStreamsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__create(request, requestOptions)); } private async __create( request: Management.EventStreamsCreateRequest, - requestOptions?: EventStreams.RequestOptions, + requestOptions?: EventStreamsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["create:event_streams"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -187,7 +189,9 @@ export class EventStreams { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -217,26 +221,12 @@ export class EventStreams { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling POST /event-streams."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/event-streams"); } /** * @param {string} id - Unique identifier for the event stream. - * @param {EventStreams.RequestOptions} requestOptions - Request-specific configuration. + * @param {EventStreamsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.UnauthorizedError} * @throws {@link Management.ForbiddenError} @@ -248,18 +238,24 @@ export class EventStreams { */ public get( id: string, - requestOptions?: EventStreams.RequestOptions, + requestOptions?: EventStreamsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__get(id, requestOptions)); } private async __get( id: string, - requestOptions?: EventStreams.RequestOptions, + requestOptions?: EventStreamsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:event_streams"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -275,7 +271,9 @@ export class EventStreams { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -303,26 +301,12 @@ export class EventStreams { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /event-streams/{id}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/event-streams/{id}"); } /** * @param {string} id - Unique identifier for the event stream. - * @param {EventStreams.RequestOptions} requestOptions - Request-specific configuration. + * @param {EventStreamsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -332,17 +316,23 @@ export class EventStreams { * @example * await client.eventStreams.delete("id") */ - public delete(id: string, requestOptions?: EventStreams.RequestOptions): core.HttpResponsePromise { + public delete(id: string, requestOptions?: EventStreamsClient.RequestOptions): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__delete(id, requestOptions)); } private async __delete( id: string, - requestOptions?: EventStreams.RequestOptions, + requestOptions?: EventStreamsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["delete:event_streams"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -358,7 +348,9 @@ export class EventStreams { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -383,27 +375,13 @@ export class EventStreams { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling DELETE /event-streams/{id}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "DELETE", "/event-streams/{id}"); } /** * @param {string} id - Unique identifier for the event stream. * @param {Management.UpdateEventStreamRequestContent} request - * @param {EventStreams.RequestOptions} requestOptions - Request-specific configuration. + * @param {EventStreamsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -416,7 +394,7 @@ export class EventStreams { public update( id: string, request: Management.UpdateEventStreamRequestContent = {}, - requestOptions?: EventStreams.RequestOptions, + requestOptions?: EventStreamsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__update(id, request, requestOptions)); } @@ -424,11 +402,17 @@ export class EventStreams { private async __update( id: string, request: Management.UpdateEventStreamRequestContent = {}, - requestOptions?: EventStreams.RequestOptions, + requestOptions?: EventStreamsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:event_streams"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -447,7 +431,9 @@ export class EventStreams { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -475,27 +461,112 @@ export class EventStreams { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling PATCH /event-streams/{id}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); + return handleNonStatusCodeError(_response.error, _response.rawResponse, "PATCH", "/event-streams/{id}"); + } + + /** + * @param {string} id - Unique identifier for the event stream. + * @param {Management.EventStreamsGetStatsRequest} request + * @param {EventStreamsClient.RequestOptions} requestOptions - Request-specific configuration. + * + * @throws {@link Management.BadRequestError} + * @throws {@link Management.UnauthorizedError} + * @throws {@link Management.ForbiddenError} + * @throws {@link Management.NotFoundError} + * @throws {@link Management.TooManyRequestsError} + * + * @example + * await client.eventStreams.getStats("id", { + * date_from: "date_from", + * date_to: "date_to" + * }) + */ + public getStats( + id: string, + request: Management.EventStreamsGetStatsRequest = {}, + requestOptions?: EventStreamsClient.RequestOptions, + ): core.HttpResponsePromise { + return core.HttpResponsePromise.fromPromise(this.__getStats(id, request, requestOptions)); + } + + private async __getStats( + id: string, + request: Management.EventStreamsGetStatsRequest = {}, + requestOptions?: EventStreamsClient.RequestOptions, + ): Promise> { + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:event_deliveries"] }], + }; + const { date_from: dateFrom, date_to: dateTo } = request; + const _queryParams: Record = {}; + if (dateFrom !== undefined) { + _queryParams.date_from = dateFrom; + } + + if (dateTo !== undefined) { + _queryParams.date_to = dateTo; + } + + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, + this._options?.headers, + requestOptions?.headers, + ); + const _response = await (this._options.fetcher ?? core.fetcher)({ + url: core.url.join( + (await core.Supplier.get(this._options.baseUrl)) ?? + (await core.Supplier.get(this._options.environment)) ?? + environments.ManagementEnvironment.Default, + `event-streams/${core.url.encodePathParam(id)}/stats`, + ), + method: "GET", + headers: _headers, + queryParameters: { ..._queryParams, ...requestOptions?.queryParams }, + timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, + maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, + abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, + fetchFn: this._options?.fetch, + logging: this._options.logging, + }); + if (_response.ok) { + return { + data: _response.body as Management.GetEventStreamStatsResponseContent, + rawResponse: _response.rawResponse, + }; + } + + if (_response.error.reason === "status-code") { + switch (_response.error.statusCode) { + case 400: + throw new Management.BadRequestError(_response.error.body as unknown, _response.rawResponse); + case 401: + throw new Management.UnauthorizedError(_response.error.body as unknown, _response.rawResponse); + case 403: + throw new Management.ForbiddenError(_response.error.body as unknown, _response.rawResponse); + case 404: + throw new Management.NotFoundError(_response.error.body as unknown, _response.rawResponse); + case 429: + throw new Management.TooManyRequestsError(_response.error.body as unknown, _response.rawResponse); + default: + throw new errors.ManagementError({ + statusCode: _response.error.statusCode, + body: _response.error.body, + rawResponse: _response.rawResponse, + }); + } } + + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/event-streams/{id}/stats"); } /** * @param {string} id - Unique identifier for the event stream. * @param {Management.CreateEventStreamTestEventRequestContent} request - * @param {EventStreams.RequestOptions} requestOptions - Request-specific configuration. + * @param {EventStreamsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.UnauthorizedError} * @throws {@link Management.ForbiddenError} @@ -509,7 +580,7 @@ export class EventStreams { public test( id: string, request: Management.CreateEventStreamTestEventRequestContent, - requestOptions?: EventStreams.RequestOptions, + requestOptions?: EventStreamsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__test(id, request, requestOptions)); } @@ -517,11 +588,17 @@ export class EventStreams { private async __test( id: string, request: Management.CreateEventStreamTestEventRequestContent, - requestOptions?: EventStreams.RequestOptions, + requestOptions?: EventStreamsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:event_streams"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -540,7 +617,9 @@ export class EventStreams { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -566,24 +645,6 @@ export class EventStreams { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling POST /event-streams/{id}/test."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/event-streams/{id}/test"); } } diff --git a/src/management/api/resources/eventStreams/index.ts b/src/management/api/resources/eventStreams/index.ts index 31ac50ad57..0ef16e7632 100644 --- a/src/management/api/resources/eventStreams/index.ts +++ b/src/management/api/resources/eventStreams/index.ts @@ -1,3 +1,3 @@ -export * from "./types/index.js"; export * from "./client/index.js"; export * from "./resources/index.js"; +export * from "./types/index.js"; diff --git a/src/management/api/resources/eventStreams/resources/deliveries/client/Client.ts b/src/management/api/resources/eventStreams/resources/deliveries/client/Client.ts index 8ab8d1d9d7..fc8f8e355b 100644 --- a/src/management/api/resources/eventStreams/resources/deliveries/client/Client.ts +++ b/src/management/api/resources/eventStreams/resources/deliveries/client/Client.ts @@ -1,29 +1,31 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../core/headers.js"; import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; +import * as environments from "../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../errors/index.js"; +import * as Management from "../../../../../index.js"; -export declare namespace Deliveries { +export declare namespace DeliveriesClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Deliveries { - protected readonly _options: Deliveries.Options; +export class DeliveriesClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: Deliveries.Options) { - this._options = _options; + constructor(options: DeliveriesClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** * @param {string} id - Unique identifier for the event stream. * @param {Management.ListEventStreamDeliveriesRequestParameters} request - * @param {Deliveries.RequestOptions} requestOptions - Request-specific configuration. + * @param {DeliveriesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -44,7 +46,7 @@ export class Deliveries { public list( id: string, request: Management.ListEventStreamDeliveriesRequestParameters = {}, - requestOptions?: Deliveries.RequestOptions, + requestOptions?: DeliveriesClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__list(id, request, requestOptions)); } @@ -52,8 +54,14 @@ export class Deliveries { private async __list( id: string, request: Management.ListEventStreamDeliveriesRequestParameters = {}, - requestOptions?: Deliveries.RequestOptions, + requestOptions?: DeliveriesClient.RequestOptions, ): Promise> { + const _metadata: core.EndpointMetadata = { + security: [ + { bearerAuth: [] }, + { oAuth2ClientCredentials: ["read:event_streams", "read:event_deliveries"] }, + ], + }; const { statuses, event_types: eventTypes, @@ -64,32 +72,35 @@ export class Deliveries { } = request; const _queryParams: Record = {}; if (statuses !== undefined) { - _queryParams["statuses"] = statuses; + _queryParams.statuses = statuses; } if (eventTypes !== undefined) { - _queryParams["event_types"] = eventTypes; + _queryParams.event_types = eventTypes; } if (dateFrom !== undefined) { - _queryParams["date_from"] = dateFrom; + _queryParams.date_from = dateFrom; } if (dateTo !== undefined) { - _queryParams["date_to"] = dateTo; + _queryParams.date_to = dateTo; } if (from_ !== undefined) { - _queryParams["from"] = from_; + _queryParams.from = from_; } if (take !== undefined) { - _queryParams["take"] = take?.toString() ?? null; + _queryParams.take = take?.toString() ?? null; } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -105,7 +116,9 @@ export class Deliveries { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: _response.body as Management.EventStreamDelivery[], rawResponse: _response.rawResponse }; @@ -132,29 +145,18 @@ export class Deliveries { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /event-streams/{id}/deliveries.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "GET", + "/event-streams/{id}/deliveries", + ); } /** * @param {string} id - Unique identifier for the event stream. - * @param {string} eventId - Unique identifier for the event - * @param {Deliveries.RequestOptions} requestOptions - Request-specific configuration. + * @param {string} event_id - Unique identifier for the event + * @param {DeliveriesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.UnauthorizedError} * @throws {@link Management.ForbiddenError} @@ -166,20 +168,26 @@ export class Deliveries { */ public getHistory( id: string, - eventId: string, - requestOptions?: Deliveries.RequestOptions, + event_id: string, + requestOptions?: DeliveriesClient.RequestOptions, ): core.HttpResponsePromise { - return core.HttpResponsePromise.fromPromise(this.__getHistory(id, eventId, requestOptions)); + return core.HttpResponsePromise.fromPromise(this.__getHistory(id, event_id, requestOptions)); } private async __getHistory( id: string, - eventId: string, - requestOptions?: Deliveries.RequestOptions, + event_id: string, + requestOptions?: DeliveriesClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:event_deliveries"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -187,7 +195,7 @@ export class Deliveries { (await core.Supplier.get(this._options.baseUrl)) ?? (await core.Supplier.get(this._options.environment)) ?? environments.ManagementEnvironment.Default, - `event-streams/${core.url.encodePathParam(id)}/deliveries/${core.url.encodePathParam(eventId)}`, + `event-streams/${core.url.encodePathParam(id)}/deliveries/${core.url.encodePathParam(event_id)}`, ), method: "GET", headers: _headers, @@ -195,7 +203,9 @@ export class Deliveries { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -223,26 +233,11 @@ export class Deliveries { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /event-streams/{id}/deliveries/{event_id}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "GET", + "/event-streams/{id}/deliveries/{event_id}", + ); } } diff --git a/src/management/api/resources/eventStreams/resources/redeliveries/client/Client.ts b/src/management/api/resources/eventStreams/resources/redeliveries/client/Client.ts index ec58bf5b25..9115ba9d5b 100644 --- a/src/management/api/resources/eventStreams/resources/redeliveries/client/Client.ts +++ b/src/management/api/resources/eventStreams/resources/redeliveries/client/Client.ts @@ -1,29 +1,31 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../core/headers.js"; import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; +import * as environments from "../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../errors/index.js"; +import * as Management from "../../../../../index.js"; -export declare namespace Redeliveries { +export declare namespace RedeliveriesClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Redeliveries { - protected readonly _options: Redeliveries.Options; +export class RedeliveriesClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: Redeliveries.Options) { - this._options = _options; + constructor(options: RedeliveriesClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** * @param {string} id - Unique identifier for the event stream. * @param {Management.CreateEventStreamRedeliveryRequestContent} request - * @param {Redeliveries.RequestOptions} requestOptions - Request-specific configuration. + * @param {RedeliveriesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.UnauthorizedError} * @throws {@link Management.ForbiddenError} @@ -37,7 +39,7 @@ export class Redeliveries { public create( id: string, request: Management.CreateEventStreamRedeliveryRequestContent = {}, - requestOptions?: Redeliveries.RequestOptions, + requestOptions?: RedeliveriesClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__create(id, request, requestOptions)); } @@ -45,11 +47,17 @@ export class Redeliveries { private async __create( id: string, request: Management.CreateEventStreamRedeliveryRequestContent = {}, - requestOptions?: Redeliveries.RequestOptions, + requestOptions?: RedeliveriesClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:event_deliveries"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -68,7 +76,9 @@ export class Redeliveries { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -98,29 +108,18 @@ export class Redeliveries { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling POST /event-streams/{id}/redeliver.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "POST", + "/event-streams/{id}/redeliver", + ); } /** * @param {string} id - Unique identifier for the event stream. - * @param {string} eventId - Unique identifier for the event - * @param {Redeliveries.RequestOptions} requestOptions - Request-specific configuration. + * @param {string} event_id - Unique identifier for the event + * @param {RedeliveriesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.UnauthorizedError} * @throws {@link Management.ForbiddenError} @@ -133,20 +132,26 @@ export class Redeliveries { */ public createById( id: string, - eventId: string, - requestOptions?: Redeliveries.RequestOptions, + event_id: string, + requestOptions?: RedeliveriesClient.RequestOptions, ): core.HttpResponsePromise { - return core.HttpResponsePromise.fromPromise(this.__createById(id, eventId, requestOptions)); + return core.HttpResponsePromise.fromPromise(this.__createById(id, event_id, requestOptions)); } private async __createById( id: string, - eventId: string, - requestOptions?: Redeliveries.RequestOptions, + event_id: string, + requestOptions?: RedeliveriesClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:event_deliveries"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -154,7 +159,7 @@ export class Redeliveries { (await core.Supplier.get(this._options.baseUrl)) ?? (await core.Supplier.get(this._options.environment)) ?? environments.ManagementEnvironment.Default, - `event-streams/${core.url.encodePathParam(id)}/redeliver/${core.url.encodePathParam(eventId)}`, + `event-streams/${core.url.encodePathParam(id)}/redeliver/${core.url.encodePathParam(event_id)}`, ), method: "POST", headers: _headers, @@ -162,7 +167,9 @@ export class Redeliveries { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -189,26 +196,11 @@ export class Redeliveries { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling POST /event-streams/{id}/redeliver/{event_id}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "POST", + "/event-streams/{id}/redeliver/{event_id}", + ); } } diff --git a/src/management/api/resources/eventStreams/types/types.ts b/src/management/api/resources/eventStreams/types/types.ts index bbd8d22d7c..5bef665c20 100644 --- a/src/management/api/resources/eventStreams/types/types.ts +++ b/src/management/api/resources/eventStreams/types/types.ts @@ -1,6 +1,6 @@ // This file was auto-generated by Fern from our API Definition. -import * as Management from "../../../index.js"; +import type * as Management from "../../../index.js"; export type EventStreamsCreateRequest = | Management.CreateEventStreamWebHookRequestContent diff --git a/src/management/api/resources/flows/client/Client.ts b/src/management/api/resources/flows/client/Client.ts index a6b827e510..11a7c9cfe4 100644 --- a/src/management/api/resources/flows/client/Client.ts +++ b/src/management/api/resources/flows/client/Client.ts @@ -1,40 +1,36 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../BaseClient.js"; -import * as environments from "../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../core/headers.js"; import * as core from "../../../../core/index.js"; -import * as Management from "../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../core/headers.js"; +import * as environments from "../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../errors/index.js"; -import { Executions } from "../resources/executions/client/Client.js"; -import { Vault } from "../resources/vault/client/Client.js"; +import * as Management from "../../../index.js"; +import { ExecutionsClient } from "../resources/executions/client/Client.js"; -export declare namespace Flows { +export declare namespace FlowsClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Flows { - protected readonly _options: Flows.Options; - protected _executions: Executions | undefined; - protected _vault: Vault | undefined; +export class FlowsClient { + protected readonly _options: NormalizedClientOptionsWithAuth; + protected _executions: ExecutionsClient | undefined; - constructor(_options: Flows.Options) { - this._options = _options; + constructor(options: FlowsClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } - public get executions(): Executions { - return (this._executions ??= new Executions(this._options)); - } - - public get vault(): Vault { - return (this._vault ??= new Vault(this._options)); + public get executions(): ExecutionsClient { + return (this._executions ??= new ExecutionsClient(this._options)); } /** * @param {Management.FlowsListRequest} request - * @param {Flows.RequestOptions} requestOptions - Request-specific configuration. + * @param {FlowsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -51,14 +47,17 @@ export class Flows { */ public async list( request: Management.FlowsListRequest = {}, - requestOptions?: Flows.RequestOptions, + requestOptions?: FlowsClient.RequestOptions, ): Promise> { const list = core.HttpResponsePromise.interceptFunction( async ( request: Management.FlowsListRequest, ): Promise> => { + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:flows"] }], + }; const { - page = 0, + page, per_page: perPage = 50, include_totals: includeTotals = true, hydrate, @@ -66,27 +65,30 @@ export class Flows { } = request; const _queryParams: Record = {}; if (page !== undefined) { - _queryParams["page"] = page?.toString() ?? null; + _queryParams.page = page?.toString() ?? null; } if (perPage !== undefined) { - _queryParams["per_page"] = perPage?.toString() ?? null; + _queryParams.per_page = perPage?.toString() ?? null; } if (includeTotals !== undefined) { - _queryParams["include_totals"] = includeTotals?.toString() ?? null; + _queryParams.include_totals = includeTotals?.toString() ?? null; } if (hydrate !== undefined) { if (Array.isArray(hydrate)) { - _queryParams["hydrate"] = hydrate.map((item) => item); + _queryParams.hydrate = hydrate.map((item) => item); } else { - _queryParams["hydrate"] = hydrate; + _queryParams.hydrate = hydrate; } } if (synchronous !== undefined) { - _queryParams["synchronous"] = synchronous?.toString() ?? null; + _queryParams.synchronous = synchronous?.toString() ?? null; } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -102,7 +104,9 @@ export class Flows { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -137,32 +141,18 @@ export class Flows { }); } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /flows."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/flows"); }, ); - let _offset = request?.page != null ? request?.page : 0; + let _offset = request?.page != null ? request?.page : 1; const dataWithRawResponse = await list(request).withRawResponse(); return new core.Page({ response: dataWithRawResponse.data, rawResponse: dataWithRawResponse.rawResponse, - hasNextPage: (response) => (response?.flows ?? []).length >= (request?.per_page ?? 1), + hasNextPage: (response) => (response?.flows ?? []).length > 0, getItems: (response) => response?.flows ?? [], - loadPage: (response) => { - _offset += response?.flows != null ? response.flows.length : 1; + loadPage: (_response) => { + _offset += 1; return list(core.setObjectProperty(request, "page", _offset)); }, }); @@ -170,7 +160,7 @@ export class Flows { /** * @param {Management.CreateFlowRequestContent} request - * @param {Flows.RequestOptions} requestOptions - Request-specific configuration. + * @param {FlowsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -184,18 +174,24 @@ export class Flows { */ public create( request: Management.CreateFlowRequestContent, - requestOptions?: Flows.RequestOptions, + requestOptions?: FlowsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__create(request, requestOptions)); } private async __create( request: Management.CreateFlowRequestContent, - requestOptions?: Flows.RequestOptions, + requestOptions?: FlowsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["create:flows"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -214,7 +210,9 @@ export class Flows { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: _response.body as Management.CreateFlowResponseContent, rawResponse: _response.rawResponse }; @@ -239,27 +237,13 @@ export class Flows { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling POST /flows."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/flows"); } /** * @param {string} id - Flow identifier * @param {Management.GetFlowRequestParameters} request - * @param {Flows.RequestOptions} requestOptions - Request-specific configuration. + * @param {FlowsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -273,7 +257,7 @@ export class Flows { public get( id: string, request: Management.GetFlowRequestParameters = {}, - requestOptions?: Flows.RequestOptions, + requestOptions?: FlowsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__get(id, request, requestOptions)); } @@ -281,21 +265,27 @@ export class Flows { private async __get( id: string, request: Management.GetFlowRequestParameters = {}, - requestOptions?: Flows.RequestOptions, + requestOptions?: FlowsClient.RequestOptions, ): Promise> { + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:flows"] }], + }; const { hydrate } = request; const _queryParams: Record = {}; if (hydrate !== undefined) { if (Array.isArray(hydrate)) { - _queryParams["hydrate"] = hydrate.map((item) => item); + _queryParams.hydrate = hydrate.map((item) => item); } else { - _queryParams["hydrate"] = hydrate; + _queryParams.hydrate = hydrate; } } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -311,7 +301,9 @@ export class Flows { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: _response.body as Management.GetFlowResponseContent, rawResponse: _response.rawResponse }; @@ -338,26 +330,12 @@ export class Flows { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /flows/{id}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/flows/{id}"); } /** * @param {string} id - Flow id - * @param {Flows.RequestOptions} requestOptions - Request-specific configuration. + * @param {FlowsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -368,14 +346,23 @@ export class Flows { * @example * await client.flows.delete("id") */ - public delete(id: string, requestOptions?: Flows.RequestOptions): core.HttpResponsePromise { + public delete(id: string, requestOptions?: FlowsClient.RequestOptions): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__delete(id, requestOptions)); } - private async __delete(id: string, requestOptions?: Flows.RequestOptions): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + private async __delete( + id: string, + requestOptions?: FlowsClient.RequestOptions, + ): Promise> { + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["delete:flows"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -391,7 +378,9 @@ export class Flows { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -418,27 +407,13 @@ export class Flows { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling DELETE /flows/{id}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "DELETE", "/flows/{id}"); } /** * @param {string} id - Flow identifier * @param {Management.UpdateFlowRequestContent} request - * @param {Flows.RequestOptions} requestOptions - Request-specific configuration. + * @param {FlowsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.UnauthorizedError} * @throws {@link Management.ForbiddenError} @@ -451,7 +426,7 @@ export class Flows { public update( id: string, request: Management.UpdateFlowRequestContent = {}, - requestOptions?: Flows.RequestOptions, + requestOptions?: FlowsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__update(id, request, requestOptions)); } @@ -459,11 +434,17 @@ export class Flows { private async __update( id: string, request: Management.UpdateFlowRequestContent = {}, - requestOptions?: Flows.RequestOptions, + requestOptions?: FlowsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:flows"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -482,7 +463,9 @@ export class Flows { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: _response.body as Management.UpdateFlowResponseContent, rawResponse: _response.rawResponse }; @@ -507,24 +490,6 @@ export class Flows { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling PATCH /flows/{id}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError(_response.error, _response.rawResponse, "PATCH", "/flows/{id}"); } } diff --git a/src/management/api/resources/flows/resources/executions/client/Client.ts b/src/management/api/resources/flows/resources/executions/client/Client.ts index de8e77095b..08d43fcd34 100644 --- a/src/management/api/resources/flows/resources/executions/client/Client.ts +++ b/src/management/api/resources/flows/resources/executions/client/Client.ts @@ -1,29 +1,31 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../core/headers.js"; import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; +import * as environments from "../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../errors/index.js"; +import * as Management from "../../../../../index.js"; -export declare namespace Executions { +export declare namespace ExecutionsClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Executions { - protected readonly _options: Executions.Options; +export class ExecutionsClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: Executions.Options) { - this._options = _options; + constructor(options: ExecutionsClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** - * @param {string} flowId - Flow id + * @param {string} flow_id - Flow id * @param {Management.ExecutionsListRequest} request - * @param {Executions.RequestOptions} requestOptions - Request-specific configuration. + * @param {ExecutionsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -37,25 +39,31 @@ export class Executions { * }) */ public async list( - flowId: string, + flow_id: string, request: Management.ExecutionsListRequest = {}, - requestOptions?: Executions.RequestOptions, + requestOptions?: ExecutionsClient.RequestOptions, ): Promise> { const list = core.HttpResponsePromise.interceptFunction( async ( request: Management.ExecutionsListRequest, ): Promise> => { + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:flows_executions"] }], + }; const { from: from_, take = 50 } = request; const _queryParams: Record = {}; if (from_ !== undefined) { - _queryParams["from"] = from_; + _queryParams.from = from_; } if (take !== undefined) { - _queryParams["take"] = take?.toString() ?? null; + _queryParams.take = take?.toString() ?? null; } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -63,7 +71,7 @@ export class Executions { (await core.Supplier.get(this._options.baseUrl)) ?? (await core.Supplier.get(this._options.environment)) ?? environments.ManagementEnvironment.Default, - `flows/${core.url.encodePathParam(flowId)}/executions`, + `flows/${core.url.encodePathParam(flow_id)}/executions`, ), method: "GET", headers: _headers, @@ -71,7 +79,9 @@ export class Executions { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -106,23 +116,12 @@ export class Executions { }); } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /flows/{flow_id}/executions.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "GET", + "/flows/{flow_id}/executions", + ); }, ); const dataWithRawResponse = await list(request).withRawResponse(); @@ -139,10 +138,10 @@ export class Executions { } /** - * @param {string} flowId - Flow id - * @param {string} executionId - Flow execution id + * @param {string} flow_id - Flow id + * @param {string} execution_id - Flow execution id * @param {Management.ExecutionsGetRequest} request - * @param {Executions.RequestOptions} requestOptions - Request-specific configuration. + * @param {ExecutionsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -153,33 +152,39 @@ export class Executions { * await client.flows.executions.get("flow_id", "execution_id") */ public get( - flowId: string, - executionId: string, + flow_id: string, + execution_id: string, request: Management.ExecutionsGetRequest = {}, - requestOptions?: Executions.RequestOptions, + requestOptions?: ExecutionsClient.RequestOptions, ): core.HttpResponsePromise { - return core.HttpResponsePromise.fromPromise(this.__get(flowId, executionId, request, requestOptions)); + return core.HttpResponsePromise.fromPromise(this.__get(flow_id, execution_id, request, requestOptions)); } private async __get( - flowId: string, - executionId: string, + flow_id: string, + execution_id: string, request: Management.ExecutionsGetRequest = {}, - requestOptions?: Executions.RequestOptions, + requestOptions?: ExecutionsClient.RequestOptions, ): Promise> { + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:flows_executions"] }], + }; const { hydrate } = request; const _queryParams: Record = {}; if (hydrate !== undefined) { if (Array.isArray(hydrate)) { - _queryParams["hydrate"] = hydrate.map((item) => item); + _queryParams.hydrate = hydrate.map((item) => item); } else { - _queryParams["hydrate"] = hydrate; + _queryParams.hydrate = hydrate; } } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -187,7 +192,7 @@ export class Executions { (await core.Supplier.get(this._options.baseUrl)) ?? (await core.Supplier.get(this._options.environment)) ?? environments.ManagementEnvironment.Default, - `flows/${core.url.encodePathParam(flowId)}/executions/${core.url.encodePathParam(executionId)}`, + `flows/${core.url.encodePathParam(flow_id)}/executions/${core.url.encodePathParam(execution_id)}`, ), method: "GET", headers: _headers, @@ -195,7 +200,9 @@ export class Executions { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -223,29 +230,18 @@ export class Executions { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /flows/{flow_id}/executions/{execution_id}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "GET", + "/flows/{flow_id}/executions/{execution_id}", + ); } /** - * @param {string} flowId - Flows id - * @param {string} executionId - Flow execution identifier - * @param {Executions.RequestOptions} requestOptions - Request-specific configuration. + * @param {string} flow_id - Flows id + * @param {string} execution_id - Flow execution identifier + * @param {ExecutionsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -256,21 +252,27 @@ export class Executions { * await client.flows.executions.delete("flow_id", "execution_id") */ public delete( - flowId: string, - executionId: string, - requestOptions?: Executions.RequestOptions, + flow_id: string, + execution_id: string, + requestOptions?: ExecutionsClient.RequestOptions, ): core.HttpResponsePromise { - return core.HttpResponsePromise.fromPromise(this.__delete(flowId, executionId, requestOptions)); + return core.HttpResponsePromise.fromPromise(this.__delete(flow_id, execution_id, requestOptions)); } private async __delete( - flowId: string, - executionId: string, - requestOptions?: Executions.RequestOptions, + flow_id: string, + execution_id: string, + requestOptions?: ExecutionsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["delete:flows_executions"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -278,7 +280,7 @@ export class Executions { (await core.Supplier.get(this._options.baseUrl)) ?? (await core.Supplier.get(this._options.environment)) ?? environments.ManagementEnvironment.Default, - `flows/${core.url.encodePathParam(flowId)}/executions/${core.url.encodePathParam(executionId)}`, + `flows/${core.url.encodePathParam(flow_id)}/executions/${core.url.encodePathParam(execution_id)}`, ), method: "DELETE", headers: _headers, @@ -286,7 +288,9 @@ export class Executions { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -311,26 +315,11 @@ export class Executions { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling DELETE /flows/{flow_id}/executions/{execution_id}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "DELETE", + "/flows/{flow_id}/executions/{execution_id}", + ); } } diff --git a/src/management/api/resources/flows/resources/index.ts b/src/management/api/resources/flows/resources/index.ts index be9a7f2919..201b3eec27 100644 --- a/src/management/api/resources/flows/resources/index.ts +++ b/src/management/api/resources/flows/resources/index.ts @@ -1,2 +1 @@ export * as executions from "./executions/index.js"; -export * as vault from "./vault/index.js"; diff --git a/src/management/api/resources/flows/resources/vault/client/Client.ts b/src/management/api/resources/flows/resources/vault/client/Client.ts deleted file mode 100644 index 1ed872a336..0000000000 --- a/src/management/api/resources/flows/resources/vault/client/Client.ts +++ /dev/null @@ -1,23 +0,0 @@ -// This file was auto-generated by Fern from our API Definition. - -import type { BaseClientOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; -import * as core from "../../../../../../core/index.js"; -import { Connections } from "../resources/connections/client/Client.js"; - -export declare namespace Vault { - export interface Options extends BaseClientOptions {} -} - -export class Vault { - protected readonly _options: Vault.Options; - protected _connections: Connections | undefined; - - constructor(_options: Vault.Options) { - this._options = _options; - } - - public get connections(): Connections { - return (this._connections ??= new Connections(this._options)); - } -} diff --git a/src/management/api/resources/flows/resources/vault/client/index.ts b/src/management/api/resources/flows/resources/vault/client/index.ts deleted file mode 100644 index cb0ff5c3b5..0000000000 --- a/src/management/api/resources/flows/resources/vault/client/index.ts +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/src/management/api/resources/flows/resources/vault/index.ts b/src/management/api/resources/flows/resources/vault/index.ts deleted file mode 100644 index 9eb1192dcc..0000000000 --- a/src/management/api/resources/flows/resources/vault/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./client/index.js"; -export * from "./resources/index.js"; diff --git a/src/management/api/resources/flows/resources/vault/resources/connections/client/Client.ts b/src/management/api/resources/flows/resources/vault/resources/connections/client/Client.ts deleted file mode 100644 index 27561686d6..0000000000 --- a/src/management/api/resources/flows/resources/vault/resources/connections/client/Client.ts +++ /dev/null @@ -1,522 +0,0 @@ -// This file was auto-generated by Fern from our API Definition. - -import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../../../BaseClient.js"; -import * as environments from "../../../../../../../../environments.js"; -import * as core from "../../../../../../../../core/index.js"; -import * as Management from "../../../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../../../core/headers.js"; -import * as errors from "../../../../../../../../errors/index.js"; - -export declare namespace Connections { - export interface Options extends BaseClientOptions {} - - export interface RequestOptions extends BaseRequestOptions {} -} - -export class Connections { - protected readonly _options: Connections.Options; - - constructor(_options: Connections.Options) { - this._options = _options; - } - - /** - * @param {Management.ListFlowsVaultConnectionsRequestParameters} request - * @param {Connections.RequestOptions} requestOptions - Request-specific configuration. - * - * @throws {@link Management.BadRequestError} - * @throws {@link Management.UnauthorizedError} - * @throws {@link Management.ForbiddenError} - * @throws {@link Management.TooManyRequestsError} - * - * @example - * await client.flows.vault.connections.list({ - * page: 1, - * per_page: 1, - * include_totals: true - * }) - */ - public async list( - request: Management.ListFlowsVaultConnectionsRequestParameters = {}, - requestOptions?: Connections.RequestOptions, - ): Promise< - core.Page< - Management.FlowsVaultConnectionSummary, - Management.ListFlowsVaultConnectionsOffsetPaginatedResponseContent - > - > { - const list = core.HttpResponsePromise.interceptFunction( - async ( - request: Management.ListFlowsVaultConnectionsRequestParameters, - ): Promise> => { - const { page = 0, per_page: perPage = 50, include_totals: includeTotals = true } = request; - const _queryParams: Record = {}; - if (page !== undefined) { - _queryParams["page"] = page?.toString() ?? null; - } - if (perPage !== undefined) { - _queryParams["per_page"] = perPage?.toString() ?? null; - } - if (includeTotals !== undefined) { - _queryParams["include_totals"] = includeTotals?.toString() ?? null; - } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( - this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), - requestOptions?.headers, - ); - const _response = await (this._options.fetcher ?? core.fetcher)({ - url: core.url.join( - (await core.Supplier.get(this._options.baseUrl)) ?? - (await core.Supplier.get(this._options.environment)) ?? - environments.ManagementEnvironment.Default, - "flows/vault/connections", - ), - method: "GET", - headers: _headers, - queryParameters: { ..._queryParams, ...requestOptions?.queryParams }, - timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, - maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, - abortSignal: requestOptions?.abortSignal, - fetchFn: this._options?.fetch, - }); - if (_response.ok) { - return { - data: _response.body as Management.ListFlowsVaultConnectionsOffsetPaginatedResponseContent, - rawResponse: _response.rawResponse, - }; - } - if (_response.error.reason === "status-code") { - switch (_response.error.statusCode) { - case 400: - throw new Management.BadRequestError( - _response.error.body as unknown, - _response.rawResponse, - ); - case 401: - throw new Management.UnauthorizedError( - _response.error.body as unknown, - _response.rawResponse, - ); - case 403: - throw new Management.ForbiddenError(_response.error.body as unknown, _response.rawResponse); - case 429: - throw new Management.TooManyRequestsError( - _response.error.body as unknown, - _response.rawResponse, - ); - default: - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.body, - rawResponse: _response.rawResponse, - }); - } - } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /flows/vault/connections.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - }, - ); - let _offset = request?.page != null ? request?.page : 0; - const dataWithRawResponse = await list(request).withRawResponse(); - return new core.Page< - Management.FlowsVaultConnectionSummary, - Management.ListFlowsVaultConnectionsOffsetPaginatedResponseContent - >({ - response: dataWithRawResponse.data, - rawResponse: dataWithRawResponse.rawResponse, - hasNextPage: (response) => (response?.connections ?? []).length >= (request?.per_page ?? 1), - getItems: (response) => response?.connections ?? [], - loadPage: (response) => { - _offset += response?.connections != null ? response.connections.length : 1; - return list(core.setObjectProperty(request, "page", _offset)); - }, - }); - } - - /** - * @param {Management.CreateFlowsVaultConnectionRequestContent} request - * @param {Connections.RequestOptions} requestOptions - Request-specific configuration. - * - * @throws {@link Management.BadRequestError} - * @throws {@link Management.UnauthorizedError} - * @throws {@link Management.ForbiddenError} - * @throws {@link Management.TooManyRequestsError} - * - * @example - * await client.flows.vault.connections.create({ - * name: "name", - * app_id: "ACTIVECAMPAIGN", - * setup: { - * type: "API_KEY", - * api_key: "api_key", - * base_url: "base_url" - * } - * }) - */ - public create( - request: Management.CreateFlowsVaultConnectionRequestContent, - requestOptions?: Connections.RequestOptions, - ): core.HttpResponsePromise { - return core.HttpResponsePromise.fromPromise(this.__create(request, requestOptions)); - } - - private async __create( - request: Management.CreateFlowsVaultConnectionRequestContent, - requestOptions?: Connections.RequestOptions, - ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( - this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), - requestOptions?.headers, - ); - const _response = await (this._options.fetcher ?? core.fetcher)({ - url: core.url.join( - (await core.Supplier.get(this._options.baseUrl)) ?? - (await core.Supplier.get(this._options.environment)) ?? - environments.ManagementEnvironment.Default, - "flows/vault/connections", - ), - method: "POST", - headers: _headers, - contentType: "application/json", - queryParameters: requestOptions?.queryParams, - requestType: "json", - body: request, - timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, - maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, - abortSignal: requestOptions?.abortSignal, - fetchFn: this._options?.fetch, - }); - if (_response.ok) { - return { - data: _response.body as Management.CreateFlowsVaultConnectionResponseContent, - rawResponse: _response.rawResponse, - }; - } - - if (_response.error.reason === "status-code") { - switch (_response.error.statusCode) { - case 400: - throw new Management.BadRequestError(_response.error.body as unknown, _response.rawResponse); - case 401: - throw new Management.UnauthorizedError(_response.error.body as unknown, _response.rawResponse); - case 403: - throw new Management.ForbiddenError(_response.error.body as unknown, _response.rawResponse); - case 429: - throw new Management.TooManyRequestsError(_response.error.body as unknown, _response.rawResponse); - default: - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.body, - rawResponse: _response.rawResponse, - }); - } - } - - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling POST /flows/vault/connections."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - /** - * @param {string} id - Flows Vault connection ID - * @param {Connections.RequestOptions} requestOptions - Request-specific configuration. - * - * @throws {@link Management.BadRequestError} - * @throws {@link Management.UnauthorizedError} - * @throws {@link Management.ForbiddenError} - * @throws {@link Management.NotFoundError} - * @throws {@link Management.TooManyRequestsError} - * - * @example - * await client.flows.vault.connections.get("id") - */ - public get( - id: string, - requestOptions?: Connections.RequestOptions, - ): core.HttpResponsePromise { - return core.HttpResponsePromise.fromPromise(this.__get(id, requestOptions)); - } - - private async __get( - id: string, - requestOptions?: Connections.RequestOptions, - ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( - this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), - requestOptions?.headers, - ); - const _response = await (this._options.fetcher ?? core.fetcher)({ - url: core.url.join( - (await core.Supplier.get(this._options.baseUrl)) ?? - (await core.Supplier.get(this._options.environment)) ?? - environments.ManagementEnvironment.Default, - `flows/vault/connections/${core.url.encodePathParam(id)}`, - ), - method: "GET", - headers: _headers, - queryParameters: requestOptions?.queryParams, - timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, - maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, - abortSignal: requestOptions?.abortSignal, - fetchFn: this._options?.fetch, - }); - if (_response.ok) { - return { - data: _response.body as Management.GetFlowsVaultConnectionResponseContent, - rawResponse: _response.rawResponse, - }; - } - - if (_response.error.reason === "status-code") { - switch (_response.error.statusCode) { - case 400: - throw new Management.BadRequestError(_response.error.body as unknown, _response.rawResponse); - case 401: - throw new Management.UnauthorizedError(_response.error.body as unknown, _response.rawResponse); - case 403: - throw new Management.ForbiddenError(_response.error.body as unknown, _response.rawResponse); - case 404: - throw new Management.NotFoundError(_response.error.body as unknown, _response.rawResponse); - case 429: - throw new Management.TooManyRequestsError(_response.error.body as unknown, _response.rawResponse); - default: - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.body, - rawResponse: _response.rawResponse, - }); - } - } - - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /flows/vault/connections/{id}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - /** - * @param {string} id - Vault connection id - * @param {Connections.RequestOptions} requestOptions - Request-specific configuration. - * - * @throws {@link Management.BadRequestError} - * @throws {@link Management.UnauthorizedError} - * @throws {@link Management.ForbiddenError} - * @throws {@link Management.TooManyRequestsError} - * - * @example - * await client.flows.vault.connections.delete("id") - */ - public delete(id: string, requestOptions?: Connections.RequestOptions): core.HttpResponsePromise { - return core.HttpResponsePromise.fromPromise(this.__delete(id, requestOptions)); - } - - private async __delete( - id: string, - requestOptions?: Connections.RequestOptions, - ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( - this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), - requestOptions?.headers, - ); - const _response = await (this._options.fetcher ?? core.fetcher)({ - url: core.url.join( - (await core.Supplier.get(this._options.baseUrl)) ?? - (await core.Supplier.get(this._options.environment)) ?? - environments.ManagementEnvironment.Default, - `flows/vault/connections/${core.url.encodePathParam(id)}`, - ), - method: "DELETE", - headers: _headers, - queryParameters: requestOptions?.queryParams, - timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, - maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, - abortSignal: requestOptions?.abortSignal, - fetchFn: this._options?.fetch, - }); - if (_response.ok) { - return { data: undefined, rawResponse: _response.rawResponse }; - } - - if (_response.error.reason === "status-code") { - switch (_response.error.statusCode) { - case 400: - throw new Management.BadRequestError(_response.error.body as unknown, _response.rawResponse); - case 401: - throw new Management.UnauthorizedError(_response.error.body as unknown, _response.rawResponse); - case 403: - throw new Management.ForbiddenError(_response.error.body as unknown, _response.rawResponse); - case 429: - throw new Management.TooManyRequestsError(_response.error.body as unknown, _response.rawResponse); - default: - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.body, - rawResponse: _response.rawResponse, - }); - } - } - - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling DELETE /flows/vault/connections/{id}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - /** - * @param {string} id - Flows Vault connection ID - * @param {Management.UpdateFlowsVaultConnectionRequestContent} request - * @param {Connections.RequestOptions} requestOptions - Request-specific configuration. - * - * @throws {@link Management.BadRequestError} - * @throws {@link Management.UnauthorizedError} - * @throws {@link Management.ForbiddenError} - * @throws {@link Management.NotFoundError} - * @throws {@link Management.TooManyRequestsError} - * - * @example - * await client.flows.vault.connections.update("id") - */ - public update( - id: string, - request: Management.UpdateFlowsVaultConnectionRequestContent = {}, - requestOptions?: Connections.RequestOptions, - ): core.HttpResponsePromise { - return core.HttpResponsePromise.fromPromise(this.__update(id, request, requestOptions)); - } - - private async __update( - id: string, - request: Management.UpdateFlowsVaultConnectionRequestContent = {}, - requestOptions?: Connections.RequestOptions, - ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( - this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), - requestOptions?.headers, - ); - const _response = await (this._options.fetcher ?? core.fetcher)({ - url: core.url.join( - (await core.Supplier.get(this._options.baseUrl)) ?? - (await core.Supplier.get(this._options.environment)) ?? - environments.ManagementEnvironment.Default, - `flows/vault/connections/${core.url.encodePathParam(id)}`, - ), - method: "PATCH", - headers: _headers, - contentType: "application/json", - queryParameters: requestOptions?.queryParams, - requestType: "json", - body: request, - timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, - maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, - abortSignal: requestOptions?.abortSignal, - fetchFn: this._options?.fetch, - }); - if (_response.ok) { - return { - data: _response.body as Management.UpdateFlowsVaultConnectionResponseContent, - rawResponse: _response.rawResponse, - }; - } - - if (_response.error.reason === "status-code") { - switch (_response.error.statusCode) { - case 400: - throw new Management.BadRequestError(_response.error.body as unknown, _response.rawResponse); - case 401: - throw new Management.UnauthorizedError(_response.error.body as unknown, _response.rawResponse); - case 403: - throw new Management.ForbiddenError(_response.error.body as unknown, _response.rawResponse); - case 404: - throw new Management.NotFoundError(_response.error.body as unknown, _response.rawResponse); - case 429: - throw new Management.TooManyRequestsError(_response.error.body as unknown, _response.rawResponse); - default: - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.body, - rawResponse: _response.rawResponse, - }); - } - } - - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling PATCH /flows/vault/connections/{id}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; - } -} diff --git a/src/management/api/resources/flows/resources/vault/resources/connections/client/index.ts b/src/management/api/resources/flows/resources/vault/resources/connections/client/index.ts deleted file mode 100644 index cb0ff5c3b5..0000000000 --- a/src/management/api/resources/flows/resources/vault/resources/connections/client/index.ts +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/src/management/api/resources/flows/resources/vault/resources/connections/index.ts b/src/management/api/resources/flows/resources/vault/resources/connections/index.ts deleted file mode 100644 index 914b8c3c72..0000000000 --- a/src/management/api/resources/flows/resources/vault/resources/connections/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./client/index.js"; diff --git a/src/management/api/resources/flows/resources/vault/resources/index.ts b/src/management/api/resources/flows/resources/vault/resources/index.ts deleted file mode 100644 index bc3ce213c8..0000000000 --- a/src/management/api/resources/flows/resources/vault/resources/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * as connections from "./connections/index.js"; diff --git a/src/management/api/resources/forms/client/Client.ts b/src/management/api/resources/forms/client/Client.ts index ee2820a126..7d36b01499 100644 --- a/src/management/api/resources/forms/client/Client.ts +++ b/src/management/api/resources/forms/client/Client.ts @@ -1,28 +1,30 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../BaseClient.js"; -import * as environments from "../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../core/headers.js"; import * as core from "../../../../core/index.js"; -import * as Management from "../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../core/headers.js"; +import * as environments from "../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../errors/index.js"; +import * as Management from "../../../index.js"; -export declare namespace Forms { +export declare namespace FormsClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Forms { - protected readonly _options: Forms.Options; +export class FormsClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: Forms.Options) { - this._options = _options; + constructor(options: FormsClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** * @param {Management.ListFormsRequestParameters} request - * @param {Forms.RequestOptions} requestOptions - Request-specific configuration. + * @param {FormsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -38,33 +40,39 @@ export class Forms { */ public async list( request: Management.ListFormsRequestParameters = {}, - requestOptions?: Forms.RequestOptions, + requestOptions?: FormsClient.RequestOptions, ): Promise> { const list = core.HttpResponsePromise.interceptFunction( async ( request: Management.ListFormsRequestParameters, ): Promise> => { - const { page = 0, per_page: perPage = 50, include_totals: includeTotals = true, hydrate } = request; + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:forms"] }], + }; + const { page, per_page: perPage = 50, include_totals: includeTotals = true, hydrate } = request; const _queryParams: Record = {}; if (page !== undefined) { - _queryParams["page"] = page?.toString() ?? null; + _queryParams.page = page?.toString() ?? null; } if (perPage !== undefined) { - _queryParams["per_page"] = perPage?.toString() ?? null; + _queryParams.per_page = perPage?.toString() ?? null; } if (includeTotals !== undefined) { - _queryParams["include_totals"] = includeTotals?.toString() ?? null; + _queryParams.include_totals = includeTotals?.toString() ?? null; } if (hydrate !== undefined) { if (Array.isArray(hydrate)) { - _queryParams["hydrate"] = hydrate.map((item) => item); + _queryParams.hydrate = hydrate.map((item) => item); } else { - _queryParams["hydrate"] = hydrate; + _queryParams.hydrate = hydrate; } } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -80,7 +88,9 @@ export class Forms { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -115,32 +125,18 @@ export class Forms { }); } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /forms."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/forms"); }, ); - let _offset = request?.page != null ? request?.page : 0; + let _offset = request?.page != null ? request?.page : 1; const dataWithRawResponse = await list(request).withRawResponse(); return new core.Page({ response: dataWithRawResponse.data, rawResponse: dataWithRawResponse.rawResponse, - hasNextPage: (response) => (response?.forms ?? []).length >= (request?.per_page ?? 1), + hasNextPage: (response) => (response?.forms ?? []).length > 0, getItems: (response) => response?.forms ?? [], - loadPage: (response) => { - _offset += response?.forms != null ? response.forms.length : 1; + loadPage: (_response) => { + _offset += 1; return list(core.setObjectProperty(request, "page", _offset)); }, }); @@ -148,7 +144,7 @@ export class Forms { /** * @param {Management.CreateFormRequestContent} request - * @param {Forms.RequestOptions} requestOptions - Request-specific configuration. + * @param {FormsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -162,18 +158,24 @@ export class Forms { */ public create( request: Management.CreateFormRequestContent, - requestOptions?: Forms.RequestOptions, + requestOptions?: FormsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__create(request, requestOptions)); } private async __create( request: Management.CreateFormRequestContent, - requestOptions?: Forms.RequestOptions, + requestOptions?: FormsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["create:forms"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -192,7 +194,9 @@ export class Forms { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: _response.body as Management.CreateFormResponseContent, rawResponse: _response.rawResponse }; @@ -217,27 +221,13 @@ export class Forms { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling POST /forms."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/forms"); } /** * @param {string} id - The ID of the form to retrieve. * @param {Management.GetFormRequestParameters} request - * @param {Forms.RequestOptions} requestOptions - Request-specific configuration. + * @param {FormsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -251,7 +241,7 @@ export class Forms { public get( id: string, request: Management.GetFormRequestParameters = {}, - requestOptions?: Forms.RequestOptions, + requestOptions?: FormsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__get(id, request, requestOptions)); } @@ -259,21 +249,27 @@ export class Forms { private async __get( id: string, request: Management.GetFormRequestParameters = {}, - requestOptions?: Forms.RequestOptions, + requestOptions?: FormsClient.RequestOptions, ): Promise> { + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:forms"] }], + }; const { hydrate } = request; const _queryParams: Record = {}; if (hydrate !== undefined) { if (Array.isArray(hydrate)) { - _queryParams["hydrate"] = hydrate.map((item) => item); + _queryParams.hydrate = hydrate.map((item) => item); } else { - _queryParams["hydrate"] = hydrate; + _queryParams.hydrate = hydrate; } } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -289,7 +285,9 @@ export class Forms { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: _response.body as Management.GetFormResponseContent, rawResponse: _response.rawResponse }; @@ -316,26 +314,12 @@ export class Forms { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /forms/{id}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/forms/{id}"); } /** * @param {string} id - The ID of the form to delete. - * @param {Forms.RequestOptions} requestOptions - Request-specific configuration. + * @param {FormsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -345,14 +329,23 @@ export class Forms { * @example * await client.forms.delete("id") */ - public delete(id: string, requestOptions?: Forms.RequestOptions): core.HttpResponsePromise { + public delete(id: string, requestOptions?: FormsClient.RequestOptions): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__delete(id, requestOptions)); } - private async __delete(id: string, requestOptions?: Forms.RequestOptions): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + private async __delete( + id: string, + requestOptions?: FormsClient.RequestOptions, + ): Promise> { + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["delete:forms"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -368,7 +361,9 @@ export class Forms { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -393,27 +388,13 @@ export class Forms { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling DELETE /forms/{id}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "DELETE", "/forms/{id}"); } /** * @param {string} id - The ID of the form to update. * @param {Management.UpdateFormRequestContent} request - * @param {Forms.RequestOptions} requestOptions - Request-specific configuration. + * @param {FormsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.UnauthorizedError} * @throws {@link Management.ForbiddenError} @@ -425,7 +406,7 @@ export class Forms { public update( id: string, request: Management.UpdateFormRequestContent = {}, - requestOptions?: Forms.RequestOptions, + requestOptions?: FormsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__update(id, request, requestOptions)); } @@ -433,11 +414,17 @@ export class Forms { private async __update( id: string, request: Management.UpdateFormRequestContent = {}, - requestOptions?: Forms.RequestOptions, + requestOptions?: FormsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:forms"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -456,7 +443,9 @@ export class Forms { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: _response.body as Management.UpdateFormResponseContent, rawResponse: _response.rawResponse }; @@ -479,24 +468,6 @@ export class Forms { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling PATCH /forms/{id}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError(_response.error, _response.rawResponse, "PATCH", "/forms/{id}"); } } diff --git a/src/management/api/resources/guardian/client/Client.ts b/src/management/api/resources/guardian/client/Client.ts index e274f4255b..122ac81c0d 100644 --- a/src/management/api/resources/guardian/client/Client.ts +++ b/src/management/api/resources/guardian/client/Client.ts @@ -1,35 +1,34 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions } from "../../../../BaseClient.js"; -import * as environments from "../../../../environments.js"; -import * as core from "../../../../core/index.js"; -import { Enrollments } from "../resources/enrollments/client/Client.js"; -import { Factors } from "../resources/factors/client/Client.js"; -import { Policies } from "../resources/policies/client/Client.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../BaseClient.js"; +import { EnrollmentsClient } from "../resources/enrollments/client/Client.js"; +import { FactorsClient } from "../resources/factors/client/Client.js"; +import { PoliciesClient } from "../resources/policies/client/Client.js"; -export declare namespace Guardian { +export declare namespace GuardianClient { export interface Options extends BaseClientOptions {} } -export class Guardian { - protected readonly _options: Guardian.Options; - protected _enrollments: Enrollments | undefined; - protected _factors: Factors | undefined; - protected _policies: Policies | undefined; +export class GuardianClient { + protected readonly _options: NormalizedClientOptionsWithAuth; + protected _enrollments: EnrollmentsClient | undefined; + protected _factors: FactorsClient | undefined; + protected _policies: PoliciesClient | undefined; - constructor(_options: Guardian.Options) { - this._options = _options; + constructor(options: GuardianClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } - public get enrollments(): Enrollments { - return (this._enrollments ??= new Enrollments(this._options)); + public get enrollments(): EnrollmentsClient { + return (this._enrollments ??= new EnrollmentsClient(this._options)); } - public get factors(): Factors { - return (this._factors ??= new Factors(this._options)); + public get factors(): FactorsClient { + return (this._factors ??= new FactorsClient(this._options)); } - public get policies(): Policies { - return (this._policies ??= new Policies(this._options)); + public get policies(): PoliciesClient { + return (this._policies ??= new PoliciesClient(this._options)); } } diff --git a/src/management/api/resources/guardian/resources/enrollments/client/Client.ts b/src/management/api/resources/guardian/resources/enrollments/client/Client.ts index 4caf146844..5d3b3a3942 100644 --- a/src/management/api/resources/guardian/resources/enrollments/client/Client.ts +++ b/src/management/api/resources/guardian/resources/enrollments/client/Client.ts @@ -1,23 +1,25 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../core/headers.js"; import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; +import * as environments from "../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../errors/index.js"; +import * as Management from "../../../../../index.js"; -export declare namespace Enrollments { +export declare namespace EnrollmentsClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Enrollments { - protected readonly _options: Enrollments.Options; +export class EnrollmentsClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: Enrollments.Options) { - this._options = _options; + constructor(options: EnrollmentsClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** @@ -27,7 +29,7 @@ export class Enrollments { * Note: Users cannot enroll in Email as a factor through custom enrollment tickets. * * @param {Management.CreateGuardianEnrollmentTicketRequestContent} request - * @param {Enrollments.RequestOptions} requestOptions - Request-specific configuration. + * @param {EnrollmentsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -41,18 +43,24 @@ export class Enrollments { */ public createTicket( request: Management.CreateGuardianEnrollmentTicketRequestContent, - requestOptions?: Enrollments.RequestOptions, + requestOptions?: EnrollmentsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__createTicket(request, requestOptions)); } private async __createTicket( request: Management.CreateGuardianEnrollmentTicketRequestContent, - requestOptions?: Enrollments.RequestOptions, + requestOptions?: EnrollmentsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["create:guardian_enrollment_tickets"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -71,7 +79,9 @@ export class Enrollments { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -99,30 +109,14 @@ export class Enrollments { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling POST /guardian/enrollments/ticket.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/guardian/enrollments/ticket"); } /** * Retrieve details, such as status and type, for a specific multi-factor authentication enrollment registered to a user account. * * @param {string} id - ID of the enrollment to be retrieve. - * @param {Enrollments.RequestOptions} requestOptions - Request-specific configuration. + * @param {EnrollmentsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -133,18 +127,24 @@ export class Enrollments { */ public get( id: string, - requestOptions?: Enrollments.RequestOptions, + requestOptions?: EnrollmentsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__get(id, requestOptions)); } private async __get( id: string, - requestOptions?: Enrollments.RequestOptions, + requestOptions?: EnrollmentsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:guardian_enrollments"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -160,7 +160,9 @@ export class Enrollments { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -186,30 +188,14 @@ export class Enrollments { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /guardian/enrollments/{id}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/guardian/enrollments/{id}"); } /** * Remove a specific multi-factor authentication (MFA) enrollment from a user's account. This allows the user to re-enroll with MFA. For more information, review Reset User Multi-Factor Authentication and Recovery Codes. * * @param {string} id - ID of the enrollment to be deleted. - * @param {Enrollments.RequestOptions} requestOptions - Request-specific configuration. + * @param {EnrollmentsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -218,17 +204,23 @@ export class Enrollments { * @example * await client.guardian.enrollments.delete("id") */ - public delete(id: string, requestOptions?: Enrollments.RequestOptions): core.HttpResponsePromise { + public delete(id: string, requestOptions?: EnrollmentsClient.RequestOptions): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__delete(id, requestOptions)); } private async __delete( id: string, - requestOptions?: Enrollments.RequestOptions, + requestOptions?: EnrollmentsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["delete:guardian_enrollments"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -244,7 +236,9 @@ export class Enrollments { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -267,26 +261,6 @@ export class Enrollments { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling DELETE /guardian/enrollments/{id}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError(_response.error, _response.rawResponse, "DELETE", "/guardian/enrollments/{id}"); } } diff --git a/src/management/api/resources/guardian/resources/factors/client/Client.ts b/src/management/api/resources/guardian/resources/factors/client/Client.ts index 842552463f..04dfb75c0b 100644 --- a/src/management/api/resources/guardian/resources/factors/client/Client.ts +++ b/src/management/api/resources/guardian/resources/factors/client/Client.ts @@ -1,53 +1,55 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../core/headers.js"; import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; +import * as environments from "../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../errors/index.js"; -import { Phone } from "../resources/phone/client/Client.js"; -import { PushNotification } from "../resources/pushNotification/client/Client.js"; -import { Sms } from "../resources/sms/client/Client.js"; -import { Duo } from "../resources/duo/client/Client.js"; +import * as Management from "../../../../../index.js"; +import { DuoClient } from "../resources/duo/client/Client.js"; +import { PhoneClient } from "../resources/phone/client/Client.js"; +import { PushNotificationClient } from "../resources/pushNotification/client/Client.js"; +import { SmsClient } from "../resources/sms/client/Client.js"; -export declare namespace Factors { +export declare namespace FactorsClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Factors { - protected readonly _options: Factors.Options; - protected _phone: Phone | undefined; - protected _pushNotification: PushNotification | undefined; - protected _sms: Sms | undefined; - protected _duo: Duo | undefined; +export class FactorsClient { + protected readonly _options: NormalizedClientOptionsWithAuth; + protected _phone: PhoneClient | undefined; + protected _pushNotification: PushNotificationClient | undefined; + protected _sms: SmsClient | undefined; + protected _duo: DuoClient | undefined; - constructor(_options: Factors.Options) { - this._options = _options; + constructor(options: FactorsClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } - public get phone(): Phone { - return (this._phone ??= new Phone(this._options)); + public get phone(): PhoneClient { + return (this._phone ??= new PhoneClient(this._options)); } - public get pushNotification(): PushNotification { - return (this._pushNotification ??= new PushNotification(this._options)); + public get pushNotification(): PushNotificationClient { + return (this._pushNotification ??= new PushNotificationClient(this._options)); } - public get sms(): Sms { - return (this._sms ??= new Sms(this._options)); + public get sms(): SmsClient { + return (this._sms ??= new SmsClient(this._options)); } - public get duo(): Duo { - return (this._duo ??= new Duo(this._options)); + public get duo(): DuoClient { + return (this._duo ??= new DuoClient(this._options)); } /** * Retrieve details of all multi-factor authentication factors associated with your tenant. * - * @param {Factors.RequestOptions} requestOptions - Request-specific configuration. + * @param {FactorsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -56,16 +58,22 @@ export class Factors { * @example * await client.guardian.factors.list() */ - public list(requestOptions?: Factors.RequestOptions): core.HttpResponsePromise { + public list(requestOptions?: FactorsClient.RequestOptions): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__list(requestOptions)); } private async __list( - requestOptions?: Factors.RequestOptions, + requestOptions?: FactorsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:guardian_factors"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -81,7 +89,9 @@ export class Factors { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: _response.body as Management.GuardianFactor[], rawResponse: _response.rawResponse }; @@ -104,21 +114,7 @@ export class Factors { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /guardian/factors."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/guardian/factors"); } /** @@ -126,7 +122,7 @@ export class Factors { * * @param {Management.GuardianFactorNameEnum} name - Factor name. Can be `sms`, `push-notification`, `email`, `duo` `otp` `webauthn-roaming`, `webauthn-platform`, or `recovery-code`. * @param {Management.SetGuardianFactorRequestContent} request - * @param {Factors.RequestOptions} requestOptions - Request-specific configuration. + * @param {FactorsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -140,7 +136,7 @@ export class Factors { public set( name: Management.GuardianFactorNameEnum, request: Management.SetGuardianFactorRequestContent, - requestOptions?: Factors.RequestOptions, + requestOptions?: FactorsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__set(name, request, requestOptions)); } @@ -148,11 +144,17 @@ export class Factors { private async __set( name: Management.GuardianFactorNameEnum, request: Management.SetGuardianFactorRequestContent, - requestOptions?: Factors.RequestOptions, + requestOptions?: FactorsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:guardian_factors"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -171,7 +173,9 @@ export class Factors { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -197,24 +201,6 @@ export class Factors { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling PUT /guardian/factors/{name}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError(_response.error, _response.rawResponse, "PUT", "/guardian/factors/{name}"); } } diff --git a/src/management/api/resources/guardian/resources/factors/resources/duo/client/Client.ts b/src/management/api/resources/guardian/resources/factors/resources/duo/client/Client.ts index 374f9e8d23..901e9c1a6b 100644 --- a/src/management/api/resources/guardian/resources/factors/resources/duo/client/Client.ts +++ b/src/management/api/resources/guardian/resources/factors/resources/duo/client/Client.ts @@ -1,23 +1,25 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions } from "../../../../../../../../BaseClient.js"; -import * as environments from "../../../../../../../../environments.js"; -import * as core from "../../../../../../../../core/index.js"; -import { Settings } from "../resources/settings/client/Client.js"; +import { + type NormalizedClientOptionsWithAuth, + normalizeClientOptionsWithAuth, +} from "../../../../../../../../BaseClient.js"; +import { SettingsClient } from "../resources/settings/client/Client.js"; -export declare namespace Duo { +export declare namespace DuoClient { export interface Options extends BaseClientOptions {} } -export class Duo { - protected readonly _options: Duo.Options; - protected _settings: Settings | undefined; +export class DuoClient { + protected readonly _options: NormalizedClientOptionsWithAuth; + protected _settings: SettingsClient | undefined; - constructor(_options: Duo.Options) { - this._options = _options; + constructor(options: DuoClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } - public get settings(): Settings { - return (this._settings ??= new Settings(this._options)); + public get settings(): SettingsClient { + return (this._settings ??= new SettingsClient(this._options)); } } diff --git a/src/management/api/resources/guardian/resources/factors/resources/duo/resources/settings/client/Client.ts b/src/management/api/resources/guardian/resources/factors/resources/duo/resources/settings/client/Client.ts index f3d7a4825a..47a907df1d 100644 --- a/src/management/api/resources/guardian/resources/factors/resources/duo/resources/settings/client/Client.ts +++ b/src/management/api/resources/guardian/resources/factors/resources/duo/resources/settings/client/Client.ts @@ -1,29 +1,34 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../../../../../BaseClient.js"; -import * as environments from "../../../../../../../../../../environments.js"; +import { + type NormalizedClientOptionsWithAuth, + normalizeClientOptionsWithAuth, +} from "../../../../../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../../../../../core/headers.js"; import * as core from "../../../../../../../../../../core/index.js"; -import * as Management from "../../../../../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../../../../../core/headers.js"; +import * as environments from "../../../../../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../../../../../errors/index.js"; +import * as Management from "../../../../../../../../../index.js"; -export declare namespace Settings { +export declare namespace SettingsClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Settings { - protected readonly _options: Settings.Options; +export class SettingsClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: Settings.Options) { - this._options = _options; + constructor(options: SettingsClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** * Retrieves the DUO account and factor configuration. * - * @param {Settings.RequestOptions} requestOptions - Request-specific configuration. + * @param {SettingsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -33,17 +38,23 @@ export class Settings { * await client.guardian.factors.duo.settings.get() */ public get( - requestOptions?: Settings.RequestOptions, + requestOptions?: SettingsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__get(requestOptions)); } private async __get( - requestOptions?: Settings.RequestOptions, + requestOptions?: SettingsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:guardian_factors"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -59,7 +70,9 @@ export class Settings { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -85,30 +98,19 @@ export class Settings { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /guardian/factors/duo/settings.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "GET", + "/guardian/factors/duo/settings", + ); } /** * Set the DUO account configuration and other properties specific to this factor. * * @param {Management.SetGuardianFactorDuoSettingsRequestContent} request - * @param {Settings.RequestOptions} requestOptions - Request-specific configuration. + * @param {SettingsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -119,18 +121,24 @@ export class Settings { */ public set( request: Management.SetGuardianFactorDuoSettingsRequestContent = {}, - requestOptions?: Settings.RequestOptions, + requestOptions?: SettingsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__set(request, requestOptions)); } private async __set( request: Management.SetGuardianFactorDuoSettingsRequestContent = {}, - requestOptions?: Settings.RequestOptions, + requestOptions?: SettingsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:guardian_factors"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -149,7 +157,9 @@ export class Settings { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -175,28 +185,17 @@ export class Settings { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling PUT /guardian/factors/duo/settings.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "PUT", + "/guardian/factors/duo/settings", + ); } /** * @param {Management.UpdateGuardianFactorDuoSettingsRequestContent} request - * @param {Settings.RequestOptions} requestOptions - Request-specific configuration. + * @param {SettingsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -207,18 +206,24 @@ export class Settings { */ public update( request: Management.UpdateGuardianFactorDuoSettingsRequestContent = {}, - requestOptions?: Settings.RequestOptions, + requestOptions?: SettingsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__update(request, requestOptions)); } private async __update( request: Management.UpdateGuardianFactorDuoSettingsRequestContent = {}, - requestOptions?: Settings.RequestOptions, + requestOptions?: SettingsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:guardian_factors"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -237,7 +242,9 @@ export class Settings { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -263,26 +270,11 @@ export class Settings { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling PATCH /guardian/factors/duo/settings.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "PATCH", + "/guardian/factors/duo/settings", + ); } } diff --git a/src/management/api/resources/guardian/resources/factors/resources/index.ts b/src/management/api/resources/guardian/resources/factors/resources/index.ts index a903082c42..5bfcca3bec 100644 --- a/src/management/api/resources/guardian/resources/factors/resources/index.ts +++ b/src/management/api/resources/guardian/resources/factors/resources/index.ts @@ -1,4 +1,4 @@ +export * as duo from "./duo/index.js"; export * as phone from "./phone/index.js"; export * as pushNotification from "./pushNotification/index.js"; export * as sms from "./sms/index.js"; -export * as duo from "./duo/index.js"; diff --git a/src/management/api/resources/guardian/resources/factors/resources/phone/client/Client.ts b/src/management/api/resources/guardian/resources/factors/resources/phone/client/Client.ts index 17f07c89c6..5f701635bb 100644 --- a/src/management/api/resources/guardian/resources/factors/resources/phone/client/Client.ts +++ b/src/management/api/resources/guardian/resources/factors/resources/phone/client/Client.ts @@ -1,29 +1,34 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../../../BaseClient.js"; -import * as environments from "../../../../../../../../environments.js"; +import { + type NormalizedClientOptionsWithAuth, + normalizeClientOptionsWithAuth, +} from "../../../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../../../core/headers.js"; import * as core from "../../../../../../../../core/index.js"; -import * as Management from "../../../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../../../core/headers.js"; +import * as environments from "../../../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../../../errors/index.js"; +import * as Management from "../../../../../../../index.js"; -export declare namespace Phone { +export declare namespace PhoneClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Phone { - protected readonly _options: Phone.Options; +export class PhoneClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: Phone.Options) { - this._options = _options; + constructor(options: PhoneClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** * Retrieve list of phone-type MFA factors (i.e., sms and voice) that are enabled for your tenant. * - * @param {Phone.RequestOptions} requestOptions - Request-specific configuration. + * @param {PhoneClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -33,17 +38,23 @@ export class Phone { * await client.guardian.factors.phone.getMessageTypes() */ public getMessageTypes( - requestOptions?: Phone.RequestOptions, + requestOptions?: PhoneClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__getMessageTypes(requestOptions)); } private async __getMessageTypes( - requestOptions?: Phone.RequestOptions, + requestOptions?: PhoneClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:guardian_factors"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -59,7 +70,9 @@ export class Phone { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -85,30 +98,19 @@ export class Phone { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /guardian/factors/phone/message-types.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "GET", + "/guardian/factors/phone/message-types", + ); } /** * Replace the list of phone-type MFA factors (i.e., sms and voice) that are enabled for your tenant. * * @param {Management.SetGuardianFactorPhoneMessageTypesRequestContent} request - * @param {Phone.RequestOptions} requestOptions - Request-specific configuration. + * @param {PhoneClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -122,18 +124,24 @@ export class Phone { */ public setMessageTypes( request: Management.SetGuardianFactorPhoneMessageTypesRequestContent, - requestOptions?: Phone.RequestOptions, + requestOptions?: PhoneClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__setMessageTypes(request, requestOptions)); } private async __setMessageTypes( request: Management.SetGuardianFactorPhoneMessageTypesRequestContent, - requestOptions?: Phone.RequestOptions, + requestOptions?: PhoneClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:guardian_factors"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -152,7 +160,9 @@ export class Phone { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -180,29 +190,18 @@ export class Phone { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling PUT /guardian/factors/phone/message-types.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "PUT", + "/guardian/factors/phone/message-types", + ); } /** * Retrieve configuration details for a Twilio phone provider that has been set up in your tenant. To learn more, review Configure SMS and Voice Notifications for MFA. * - * @param {Phone.RequestOptions} requestOptions - Request-specific configuration. + * @param {PhoneClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -212,17 +211,23 @@ export class Phone { * await client.guardian.factors.phone.getTwilioProvider() */ public getTwilioProvider( - requestOptions?: Phone.RequestOptions, + requestOptions?: PhoneClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__getTwilioProvider(requestOptions)); } private async __getTwilioProvider( - requestOptions?: Phone.RequestOptions, + requestOptions?: PhoneClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:guardian_factors"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -238,7 +243,9 @@ export class Phone { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -264,30 +271,19 @@ export class Phone { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /guardian/factors/phone/providers/twilio.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "GET", + "/guardian/factors/phone/providers/twilio", + ); } /** * Update the configuration of a Twilio phone provider that has been set up in your tenant. To learn more, review Configure SMS and Voice Notifications for MFA. * * @param {Management.SetGuardianFactorsProviderPhoneTwilioRequestContent} request - * @param {Phone.RequestOptions} requestOptions - Request-specific configuration. + * @param {PhoneClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -298,18 +294,24 @@ export class Phone { */ public setTwilioProvider( request: Management.SetGuardianFactorsProviderPhoneTwilioRequestContent = {}, - requestOptions?: Phone.RequestOptions, + requestOptions?: PhoneClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__setTwilioProvider(request, requestOptions)); } private async __setTwilioProvider( request: Management.SetGuardianFactorsProviderPhoneTwilioRequestContent = {}, - requestOptions?: Phone.RequestOptions, + requestOptions?: PhoneClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:guardian_factors"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -328,7 +330,9 @@ export class Phone { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -354,29 +358,18 @@ export class Phone { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling PUT /guardian/factors/phone/providers/twilio.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "PUT", + "/guardian/factors/phone/providers/twilio", + ); } /** * Retrieve details of the multi-factor authentication phone provider configured for your tenant. * - * @param {Phone.RequestOptions} requestOptions - Request-specific configuration. + * @param {PhoneClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -386,17 +379,23 @@ export class Phone { * await client.guardian.factors.phone.getSelectedProvider() */ public getSelectedProvider( - requestOptions?: Phone.RequestOptions, + requestOptions?: PhoneClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__getSelectedProvider(requestOptions)); } private async __getSelectedProvider( - requestOptions?: Phone.RequestOptions, + requestOptions?: PhoneClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:guardian_factors"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -412,7 +411,9 @@ export class Phone { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -438,28 +439,17 @@ export class Phone { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /guardian/factors/phone/selected-provider.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "GET", + "/guardian/factors/phone/selected-provider", + ); } /** * @param {Management.SetGuardianFactorsProviderPhoneRequestContent} request - * @param {Phone.RequestOptions} requestOptions - Request-specific configuration. + * @param {PhoneClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -472,18 +462,24 @@ export class Phone { */ public setProvider( request: Management.SetGuardianFactorsProviderPhoneRequestContent, - requestOptions?: Phone.RequestOptions, + requestOptions?: PhoneClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__setProvider(request, requestOptions)); } private async __setProvider( request: Management.SetGuardianFactorsProviderPhoneRequestContent, - requestOptions?: Phone.RequestOptions, + requestOptions?: PhoneClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:guardian_factors"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -502,7 +498,9 @@ export class Phone { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -528,29 +526,18 @@ export class Phone { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling PUT /guardian/factors/phone/selected-provider.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "PUT", + "/guardian/factors/phone/selected-provider", + ); } /** * Retrieve details of the multi-factor authentication enrollment and verification templates for phone-type factors available in your tenant. * - * @param {Phone.RequestOptions} requestOptions - Request-specific configuration. + * @param {PhoneClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -560,17 +547,23 @@ export class Phone { * await client.guardian.factors.phone.getTemplates() */ public getTemplates( - requestOptions?: Phone.RequestOptions, + requestOptions?: PhoneClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__getTemplates(requestOptions)); } private async __getTemplates( - requestOptions?: Phone.RequestOptions, + requestOptions?: PhoneClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:guardian_factors"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -586,7 +579,9 @@ export class Phone { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -612,30 +607,19 @@ export class Phone { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /guardian/factors/phone/templates.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "GET", + "/guardian/factors/phone/templates", + ); } /** * Customize the messages sent to complete phone enrollment and verification (subscription required). * * @param {Management.SetGuardianFactorPhoneTemplatesRequestContent} request - * @param {Phone.RequestOptions} requestOptions - Request-specific configuration. + * @param {PhoneClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -649,18 +633,24 @@ export class Phone { */ public setTemplates( request: Management.SetGuardianFactorPhoneTemplatesRequestContent, - requestOptions?: Phone.RequestOptions, + requestOptions?: PhoneClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__setTemplates(request, requestOptions)); } private async __setTemplates( request: Management.SetGuardianFactorPhoneTemplatesRequestContent, - requestOptions?: Phone.RequestOptions, + requestOptions?: PhoneClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:guardian_factors"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -679,7 +669,9 @@ export class Phone { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -705,26 +697,11 @@ export class Phone { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling PUT /guardian/factors/phone/templates.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "PUT", + "/guardian/factors/phone/templates", + ); } } diff --git a/src/management/api/resources/guardian/resources/factors/resources/pushNotification/client/Client.ts b/src/management/api/resources/guardian/resources/factors/resources/pushNotification/client/Client.ts index edb52e64aa..61edd0807c 100644 --- a/src/management/api/resources/guardian/resources/factors/resources/pushNotification/client/Client.ts +++ b/src/management/api/resources/guardian/resources/factors/resources/pushNotification/client/Client.ts @@ -1,29 +1,34 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../../../BaseClient.js"; -import * as environments from "../../../../../../../../environments.js"; +import { + type NormalizedClientOptionsWithAuth, + normalizeClientOptionsWithAuth, +} from "../../../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../../../core/headers.js"; import * as core from "../../../../../../../../core/index.js"; -import * as Management from "../../../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../../../core/headers.js"; +import * as environments from "../../../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../../../errors/index.js"; +import * as Management from "../../../../../../../index.js"; -export declare namespace PushNotification { +export declare namespace PushNotificationClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class PushNotification { - protected readonly _options: PushNotification.Options; +export class PushNotificationClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: PushNotification.Options) { - this._options = _options; + constructor(options: PushNotificationClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** * Retrieve configuration details for the multi-factor authentication APNS provider associated with your tenant. * - * @param {PushNotification.RequestOptions} requestOptions - Request-specific configuration. + * @param {PushNotificationClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -33,17 +38,23 @@ export class PushNotification { * await client.guardian.factors.pushNotification.getApnsProvider() */ public getApnsProvider( - requestOptions?: PushNotification.RequestOptions, + requestOptions?: PushNotificationClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__getApnsProvider(requestOptions)); } private async __getApnsProvider( - requestOptions?: PushNotification.RequestOptions, + requestOptions?: PushNotificationClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:guardian_factors"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -59,7 +70,9 @@ export class PushNotification { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -85,30 +98,19 @@ export class PushNotification { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /guardian/factors/push-notification/providers/apns.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "GET", + "/guardian/factors/push-notification/providers/apns", + ); } /** * Modify configuration details of the multi-factor authentication APNS provider associated with your tenant. * * @param {Management.SetGuardianFactorsProviderPushNotificationApnsRequestContent} request - * @param {PushNotification.RequestOptions} requestOptions - Request-specific configuration. + * @param {PushNotificationClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -119,18 +121,24 @@ export class PushNotification { */ public setApnsProvider( request: Management.SetGuardianFactorsProviderPushNotificationApnsRequestContent, - requestOptions?: PushNotification.RequestOptions, + requestOptions?: PushNotificationClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__setApnsProvider(request, requestOptions)); } private async __setApnsProvider( request: Management.SetGuardianFactorsProviderPushNotificationApnsRequestContent, - requestOptions?: PushNotification.RequestOptions, + requestOptions?: PushNotificationClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:guardian_factors"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -149,7 +157,9 @@ export class PushNotification { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -175,30 +185,19 @@ export class PushNotification { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling PATCH /guardian/factors/push-notification/providers/apns.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "PATCH", + "/guardian/factors/push-notification/providers/apns", + ); } /** * Modify configuration details of the multi-factor authentication FCM provider associated with your tenant. * * @param {Management.SetGuardianFactorsProviderPushNotificationFcmRequestContent} request - * @param {PushNotification.RequestOptions} requestOptions - Request-specific configuration. + * @param {PushNotificationClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -209,18 +208,24 @@ export class PushNotification { */ public setFcmProvider( request: Management.SetGuardianFactorsProviderPushNotificationFcmRequestContent, - requestOptions?: PushNotification.RequestOptions, + requestOptions?: PushNotificationClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__setFcmProvider(request, requestOptions)); } private async __setFcmProvider( request: Management.SetGuardianFactorsProviderPushNotificationFcmRequestContent, - requestOptions?: PushNotification.RequestOptions, + requestOptions?: PushNotificationClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:guardian_factors"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -239,7 +244,9 @@ export class PushNotification { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -265,30 +272,19 @@ export class PushNotification { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling PATCH /guardian/factors/push-notification/providers/fcm.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "PATCH", + "/guardian/factors/push-notification/providers/fcm", + ); } /** * Modify configuration details of the multi-factor authentication FCMV1 provider associated with your tenant. * * @param {Management.SetGuardianFactorsProviderPushNotificationFcmv1RequestContent} request - * @param {PushNotification.RequestOptions} requestOptions - Request-specific configuration. + * @param {PushNotificationClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -299,18 +295,24 @@ export class PushNotification { */ public setFcmv1Provider( request: Management.SetGuardianFactorsProviderPushNotificationFcmv1RequestContent, - requestOptions?: PushNotification.RequestOptions, + requestOptions?: PushNotificationClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__setFcmv1Provider(request, requestOptions)); } private async __setFcmv1Provider( request: Management.SetGuardianFactorsProviderPushNotificationFcmv1RequestContent, - requestOptions?: PushNotification.RequestOptions, + requestOptions?: PushNotificationClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:guardian_factors"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -329,7 +331,9 @@ export class PushNotification { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -355,29 +359,18 @@ export class PushNotification { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling PATCH /guardian/factors/push-notification/providers/fcmv1.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "PATCH", + "/guardian/factors/push-notification/providers/fcmv1", + ); } /** * Retrieve configuration details for an AWS SNS push notification provider that has been enabled for MFA. To learn more, review Configure Push Notifications for MFA. * - * @param {PushNotification.RequestOptions} requestOptions - Request-specific configuration. + * @param {PushNotificationClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -387,17 +380,23 @@ export class PushNotification { * await client.guardian.factors.pushNotification.getSnsProvider() */ public getSnsProvider( - requestOptions?: PushNotification.RequestOptions, + requestOptions?: PushNotificationClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__getSnsProvider(requestOptions)); } private async __getSnsProvider( - requestOptions?: PushNotification.RequestOptions, + requestOptions?: PushNotificationClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:guardian_factors"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -413,7 +412,9 @@ export class PushNotification { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -439,30 +440,19 @@ export class PushNotification { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /guardian/factors/push-notification/providers/sns.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "GET", + "/guardian/factors/push-notification/providers/sns", + ); } /** * Configure the AWS SNS push notification provider configuration (subscription required). * * @param {Management.SetGuardianFactorsProviderPushNotificationSnsRequestContent} request - * @param {PushNotification.RequestOptions} requestOptions - Request-specific configuration. + * @param {PushNotificationClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -473,18 +463,24 @@ export class PushNotification { */ public setSnsProvider( request: Management.SetGuardianFactorsProviderPushNotificationSnsRequestContent = {}, - requestOptions?: PushNotification.RequestOptions, + requestOptions?: PushNotificationClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__setSnsProvider(request, requestOptions)); } private async __setSnsProvider( request: Management.SetGuardianFactorsProviderPushNotificationSnsRequestContent = {}, - requestOptions?: PushNotification.RequestOptions, + requestOptions?: PushNotificationClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:guardian_factors"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -503,7 +499,9 @@ export class PushNotification { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -529,30 +527,19 @@ export class PushNotification { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling PUT /guardian/factors/push-notification/providers/sns.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "PUT", + "/guardian/factors/push-notification/providers/sns", + ); } /** * Configure the AWS SNS push notification provider configuration (subscription required). * * @param {Management.UpdateGuardianFactorsProviderPushNotificationSnsRequestContent} request - * @param {PushNotification.RequestOptions} requestOptions - Request-specific configuration. + * @param {PushNotificationClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -563,18 +550,24 @@ export class PushNotification { */ public updateSnsProvider( request: Management.UpdateGuardianFactorsProviderPushNotificationSnsRequestContent = {}, - requestOptions?: PushNotification.RequestOptions, + requestOptions?: PushNotificationClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__updateSnsProvider(request, requestOptions)); } private async __updateSnsProvider( request: Management.UpdateGuardianFactorsProviderPushNotificationSnsRequestContent = {}, - requestOptions?: PushNotification.RequestOptions, + requestOptions?: PushNotificationClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:guardian_factors"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -593,7 +586,9 @@ export class PushNotification { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -619,29 +614,18 @@ export class PushNotification { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling PATCH /guardian/factors/push-notification/providers/sns.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "PATCH", + "/guardian/factors/push-notification/providers/sns", + ); } /** * Modify the push notification provider configured for your tenant. For more information, review Configure Push Notifications for MFA. * - * @param {PushNotification.RequestOptions} requestOptions - Request-specific configuration. + * @param {PushNotificationClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -651,17 +635,23 @@ export class PushNotification { * await client.guardian.factors.pushNotification.getSelectedProvider() */ public getSelectedProvider( - requestOptions?: PushNotification.RequestOptions, + requestOptions?: PushNotificationClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__getSelectedProvider(requestOptions)); } private async __getSelectedProvider( - requestOptions?: PushNotification.RequestOptions, + requestOptions?: PushNotificationClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:guardian_factors"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -677,7 +667,9 @@ export class PushNotification { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -703,30 +695,19 @@ export class PushNotification { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /guardian/factors/push-notification/selected-provider.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "GET", + "/guardian/factors/push-notification/selected-provider", + ); } /** * Modify the push notification provider configured for your tenant. For more information, review Configure Push Notifications for MFA. * * @param {Management.SetGuardianFactorsProviderPushNotificationRequestContent} request - * @param {PushNotification.RequestOptions} requestOptions - Request-specific configuration. + * @param {PushNotificationClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -739,18 +720,24 @@ export class PushNotification { */ public setProvider( request: Management.SetGuardianFactorsProviderPushNotificationRequestContent, - requestOptions?: PushNotification.RequestOptions, + requestOptions?: PushNotificationClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__setProvider(request, requestOptions)); } private async __setProvider( request: Management.SetGuardianFactorsProviderPushNotificationRequestContent, - requestOptions?: PushNotification.RequestOptions, + requestOptions?: PushNotificationClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:guardian_factors"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -769,7 +756,9 @@ export class PushNotification { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -795,26 +784,11 @@ export class PushNotification { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling PUT /guardian/factors/push-notification/selected-provider.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "PUT", + "/guardian/factors/push-notification/selected-provider", + ); } } diff --git a/src/management/api/resources/guardian/resources/factors/resources/sms/client/Client.ts b/src/management/api/resources/guardian/resources/factors/resources/sms/client/Client.ts index 1fc79cc7bb..7d18fcb6d0 100644 --- a/src/management/api/resources/guardian/resources/factors/resources/sms/client/Client.ts +++ b/src/management/api/resources/guardian/resources/factors/resources/sms/client/Client.ts @@ -1,23 +1,28 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../../../BaseClient.js"; -import * as environments from "../../../../../../../../environments.js"; +import { + type NormalizedClientOptionsWithAuth, + normalizeClientOptionsWithAuth, +} from "../../../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../../../core/headers.js"; import * as core from "../../../../../../../../core/index.js"; -import * as Management from "../../../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../../../core/headers.js"; +import * as environments from "../../../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../../../errors/index.js"; +import * as Management from "../../../../../../../index.js"; -export declare namespace Sms { +export declare namespace SmsClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Sms { - protected readonly _options: Sms.Options; +export class SmsClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: Sms.Options) { - this._options = _options; + constructor(options: SmsClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** @@ -25,7 +30,7 @@ export class Sms { * * A new endpoint is available to retrieve the Twilio configuration related to phone factors (phone Twilio configuration). It has the same payload as this one. Please use it instead. * - * @param {Sms.RequestOptions} requestOptions - Request-specific configuration. + * @param {SmsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -35,17 +40,23 @@ export class Sms { * await client.guardian.factors.sms.getTwilioProvider() */ public getTwilioProvider( - requestOptions?: Sms.RequestOptions, + requestOptions?: SmsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__getTwilioProvider(requestOptions)); } private async __getTwilioProvider( - requestOptions?: Sms.RequestOptions, + requestOptions?: SmsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:guardian_factors"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -61,7 +72,9 @@ export class Sms { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -87,23 +100,12 @@ export class Sms { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /guardian/factors/sms/providers/twilio.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "GET", + "/guardian/factors/sms/providers/twilio", + ); } /** @@ -112,7 +114,7 @@ export class Sms { * Previous functionality: Update the Twilio SMS provider configuration. * * @param {Management.SetGuardianFactorsProviderSmsTwilioRequestContent} request - * @param {Sms.RequestOptions} requestOptions - Request-specific configuration. + * @param {SmsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -123,18 +125,24 @@ export class Sms { */ public setTwilioProvider( request: Management.SetGuardianFactorsProviderSmsTwilioRequestContent = {}, - requestOptions?: Sms.RequestOptions, + requestOptions?: SmsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__setTwilioProvider(request, requestOptions)); } private async __setTwilioProvider( request: Management.SetGuardianFactorsProviderSmsTwilioRequestContent = {}, - requestOptions?: Sms.RequestOptions, + requestOptions?: SmsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:guardian_factors"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -153,7 +161,9 @@ export class Sms { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -179,23 +189,12 @@ export class Sms { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling PUT /guardian/factors/sms/providers/twilio.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "PUT", + "/guardian/factors/sms/providers/twilio", + ); } /** @@ -203,7 +202,7 @@ export class Sms { * * Previous functionality: Retrieve details for the multi-factor authentication SMS provider configured for your tenant. * - * @param {Sms.RequestOptions} requestOptions - Request-specific configuration. + * @param {SmsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -213,17 +212,23 @@ export class Sms { * await client.guardian.factors.sms.getSelectedProvider() */ public getSelectedProvider( - requestOptions?: Sms.RequestOptions, + requestOptions?: SmsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__getSelectedProvider(requestOptions)); } private async __getSelectedProvider( - requestOptions?: Sms.RequestOptions, + requestOptions?: SmsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:guardian_factors"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -239,7 +244,9 @@ export class Sms { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -265,23 +272,12 @@ export class Sms { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /guardian/factors/sms/selected-provider.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "GET", + "/guardian/factors/sms/selected-provider", + ); } /** @@ -290,7 +286,7 @@ export class Sms { * Previous functionality: Update the multi-factor authentication SMS provider configuration in your tenant. * * @param {Management.SetGuardianFactorsProviderSmsRequestContent} request - * @param {Sms.RequestOptions} requestOptions - Request-specific configuration. + * @param {SmsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -303,18 +299,24 @@ export class Sms { */ public setProvider( request: Management.SetGuardianFactorsProviderSmsRequestContent, - requestOptions?: Sms.RequestOptions, + requestOptions?: SmsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__setProvider(request, requestOptions)); } private async __setProvider( request: Management.SetGuardianFactorsProviderSmsRequestContent, - requestOptions?: Sms.RequestOptions, + requestOptions?: SmsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:guardian_factors"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -333,7 +335,9 @@ export class Sms { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -359,23 +363,12 @@ export class Sms { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling PUT /guardian/factors/sms/selected-provider.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "PUT", + "/guardian/factors/sms/selected-provider", + ); } /** @@ -383,7 +376,7 @@ export class Sms { * * Previous function: Retrieve details of SMS enrollment and verification templates configured for your tenant. * - * @param {Sms.RequestOptions} requestOptions - Request-specific configuration. + * @param {SmsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -393,17 +386,23 @@ export class Sms { * await client.guardian.factors.sms.getTemplates() */ public getTemplates( - requestOptions?: Sms.RequestOptions, + requestOptions?: SmsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__getTemplates(requestOptions)); } private async __getTemplates( - requestOptions?: Sms.RequestOptions, + requestOptions?: SmsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:guardian_factors"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -419,7 +418,9 @@ export class Sms { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -445,23 +446,12 @@ export class Sms { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /guardian/factors/sms/templates.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "GET", + "/guardian/factors/sms/templates", + ); } /** @@ -470,7 +460,7 @@ export class Sms { * Previous functionality: Customize the messages sent to complete SMS enrollment and verification. * * @param {Management.SetGuardianFactorSmsTemplatesRequestContent} request - * @param {Sms.RequestOptions} requestOptions - Request-specific configuration. + * @param {SmsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -484,18 +474,24 @@ export class Sms { */ public setTemplates( request: Management.SetGuardianFactorSmsTemplatesRequestContent, - requestOptions?: Sms.RequestOptions, + requestOptions?: SmsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__setTemplates(request, requestOptions)); } private async __setTemplates( request: Management.SetGuardianFactorSmsTemplatesRequestContent, - requestOptions?: Sms.RequestOptions, + requestOptions?: SmsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:guardian_factors"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -514,7 +510,9 @@ export class Sms { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -540,26 +538,11 @@ export class Sms { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling PUT /guardian/factors/sms/templates.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "PUT", + "/guardian/factors/sms/templates", + ); } } diff --git a/src/management/api/resources/guardian/resources/policies/client/Client.ts b/src/management/api/resources/guardian/resources/policies/client/Client.ts index c19d03e995..038f441fff 100644 --- a/src/management/api/resources/guardian/resources/policies/client/Client.ts +++ b/src/management/api/resources/guardian/resources/policies/client/Client.ts @@ -1,23 +1,25 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../core/headers.js"; import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; +import * as environments from "../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../errors/index.js"; +import * as Management from "../../../../../index.js"; -export declare namespace Policies { +export declare namespace PoliciesClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Policies { - protected readonly _options: Policies.Options; +export class PoliciesClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: Policies.Options) { - this._options = _options; + constructor(options: PoliciesClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** @@ -31,7 +33,7 @@ export class Policies { * * Note: The confidence-score policy is part of the Adaptive MFA feature. Adaptive MFA requires an add-on for the Enterprise plan; review Auth0 Pricing for more details. * - * @param {Policies.RequestOptions} requestOptions - Request-specific configuration. + * @param {PoliciesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -41,17 +43,23 @@ export class Policies { * await client.guardian.policies.list() */ public list( - requestOptions?: Policies.RequestOptions, + requestOptions?: PoliciesClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__list(requestOptions)); } private async __list( - requestOptions?: Policies.RequestOptions, + requestOptions?: PoliciesClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:mfa_policies"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -67,7 +75,9 @@ export class Policies { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -93,21 +103,7 @@ export class Policies { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /guardian/policies."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/guardian/policies"); } /** @@ -122,7 +118,7 @@ export class Policies { * Note: The confidence-score policy is part of the Adaptive MFA feature. Adaptive MFA requires an add-on for the Enterprise plan; review Auth0 Pricing for more details. * * @param {Management.SetGuardianPoliciesRequestContent} request - * @param {Policies.RequestOptions} requestOptions - Request-specific configuration. + * @param {PoliciesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -133,18 +129,24 @@ export class Policies { */ public set( request: Management.SetGuardianPoliciesRequestContent, - requestOptions?: Policies.RequestOptions, + requestOptions?: PoliciesClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__set(request, requestOptions)); } private async __set( request: Management.SetGuardianPoliciesRequestContent, - requestOptions?: Policies.RequestOptions, + requestOptions?: PoliciesClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:mfa_policies"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -163,7 +165,9 @@ export class Policies { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -189,24 +193,6 @@ export class Policies { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling PUT /guardian/policies."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError(_response.error, _response.rawResponse, "PUT", "/guardian/policies"); } } diff --git a/src/management/api/resources/hooks/client/Client.ts b/src/management/api/resources/hooks/client/Client.ts index bd5a91f2bb..61f7674cd1 100644 --- a/src/management/api/resources/hooks/client/Client.ts +++ b/src/management/api/resources/hooks/client/Client.ts @@ -1,36 +1,38 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../BaseClient.js"; -import * as environments from "../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../core/headers.js"; import * as core from "../../../../core/index.js"; -import * as Management from "../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../core/headers.js"; +import * as environments from "../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../errors/index.js"; -import { Secrets } from "../resources/secrets/client/Client.js"; +import * as Management from "../../../index.js"; +import { SecretsClient } from "../resources/secrets/client/Client.js"; -export declare namespace Hooks { +export declare namespace HooksClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Hooks { - protected readonly _options: Hooks.Options; - protected _secrets: Secrets | undefined; +export class HooksClient { + protected readonly _options: NormalizedClientOptionsWithAuth; + protected _secrets: SecretsClient | undefined; - constructor(_options: Hooks.Options) { - this._options = _options; + constructor(options: HooksClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } - public get secrets(): Secrets { - return (this._secrets ??= new Secrets(this._options)); + public get secrets(): SecretsClient { + return (this._secrets ??= new SecretsClient(this._options)); } /** * Retrieve all hooks. Accepts a list of fields to include or exclude in the result. * * @param {Management.ListHooksRequestParameters} request - * @param {Hooks.RequestOptions} requestOptions - Request-specific configuration. + * @param {HooksClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -50,14 +52,17 @@ export class Hooks { */ public async list( request: Management.ListHooksRequestParameters = {}, - requestOptions?: Hooks.RequestOptions, + requestOptions?: HooksClient.RequestOptions, ): Promise> { const list = core.HttpResponsePromise.interceptFunction( async ( request: Management.ListHooksRequestParameters, ): Promise> => { + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:hooks"] }], + }; const { - page = 0, + page, per_page: perPage = 50, include_totals: includeTotals = true, enabled, @@ -66,26 +71,29 @@ export class Hooks { } = request; const _queryParams: Record = {}; if (page !== undefined) { - _queryParams["page"] = page?.toString() ?? null; + _queryParams.page = page?.toString() ?? null; } if (perPage !== undefined) { - _queryParams["per_page"] = perPage?.toString() ?? null; + _queryParams.per_page = perPage?.toString() ?? null; } if (includeTotals !== undefined) { - _queryParams["include_totals"] = includeTotals?.toString() ?? null; + _queryParams.include_totals = includeTotals?.toString() ?? null; } if (enabled !== undefined) { - _queryParams["enabled"] = enabled?.toString() ?? null; + _queryParams.enabled = enabled?.toString() ?? null; } if (fields !== undefined) { - _queryParams["fields"] = fields; + _queryParams.fields = fields; } if (triggerId !== undefined) { - _queryParams["triggerId"] = triggerId; + _queryParams.triggerId = triggerId; } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -101,7 +109,9 @@ export class Hooks { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -138,32 +148,18 @@ export class Hooks { }); } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /hooks."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/hooks"); }, ); - let _offset = request?.page != null ? request?.page : 0; + let _offset = request?.page != null ? request?.page : 1; const dataWithRawResponse = await list(request).withRawResponse(); return new core.Page({ response: dataWithRawResponse.data, rawResponse: dataWithRawResponse.rawResponse, - hasNextPage: (response) => (response?.hooks ?? []).length >= (request?.per_page ?? 1), + hasNextPage: (response) => (response?.hooks ?? []).length > 0, getItems: (response) => response?.hooks ?? [], - loadPage: (response) => { - _offset += response?.hooks != null ? response.hooks.length : 1; + loadPage: (_response) => { + _offset += 1; return list(core.setObjectProperty(request, "page", _offset)); }, }); @@ -173,7 +169,7 @@ export class Hooks { * Create a new hook. * * @param {Management.CreateHookRequestContent} request - * @param {Hooks.RequestOptions} requestOptions - Request-specific configuration. + * @param {HooksClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -190,18 +186,24 @@ export class Hooks { */ public create( request: Management.CreateHookRequestContent, - requestOptions?: Hooks.RequestOptions, + requestOptions?: HooksClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__create(request, requestOptions)); } private async __create( request: Management.CreateHookRequestContent, - requestOptions?: Hooks.RequestOptions, + requestOptions?: HooksClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["create:hooks"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -220,7 +222,9 @@ export class Hooks { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: _response.body as Management.CreateHookResponseContent, rawResponse: _response.rawResponse }; @@ -247,21 +251,7 @@ export class Hooks { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling POST /hooks."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/hooks"); } /** @@ -269,7 +259,7 @@ export class Hooks { * * @param {string} id - ID of the hook to retrieve. * @param {Management.GetHookRequestParameters} request - * @param {Hooks.RequestOptions} requestOptions - Request-specific configuration. + * @param {HooksClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -285,7 +275,7 @@ export class Hooks { public get( id: string, request: Management.GetHookRequestParameters = {}, - requestOptions?: Hooks.RequestOptions, + requestOptions?: HooksClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__get(id, request, requestOptions)); } @@ -293,17 +283,23 @@ export class Hooks { private async __get( id: string, request: Management.GetHookRequestParameters = {}, - requestOptions?: Hooks.RequestOptions, + requestOptions?: HooksClient.RequestOptions, ): Promise> { + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:hooks"] }], + }; const { fields } = request; const _queryParams: Record = {}; if (fields !== undefined) { - _queryParams["fields"] = fields; + _queryParams.fields = fields; } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -319,7 +315,9 @@ export class Hooks { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: _response.body as Management.GetHookResponseContent, rawResponse: _response.rawResponse }; @@ -346,28 +344,14 @@ export class Hooks { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /hooks/{id}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/hooks/{id}"); } /** * Delete a hook. * * @param {string} id - ID of the hook to delete. - * @param {Hooks.RequestOptions} requestOptions - Request-specific configuration. + * @param {HooksClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -377,14 +361,23 @@ export class Hooks { * @example * await client.hooks.delete("id") */ - public delete(id: string, requestOptions?: Hooks.RequestOptions): core.HttpResponsePromise { + public delete(id: string, requestOptions?: HooksClient.RequestOptions): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__delete(id, requestOptions)); } - private async __delete(id: string, requestOptions?: Hooks.RequestOptions): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + private async __delete( + id: string, + requestOptions?: HooksClient.RequestOptions, + ): Promise> { + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["delete:hooks"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -400,7 +393,9 @@ export class Hooks { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -425,21 +420,7 @@ export class Hooks { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling DELETE /hooks/{id}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "DELETE", "/hooks/{id}"); } /** @@ -447,7 +428,7 @@ export class Hooks { * * @param {string} id - ID of the hook to update. * @param {Management.UpdateHookRequestContent} request - * @param {Hooks.RequestOptions} requestOptions - Request-specific configuration. + * @param {HooksClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -462,7 +443,7 @@ export class Hooks { public update( id: string, request: Management.UpdateHookRequestContent = {}, - requestOptions?: Hooks.RequestOptions, + requestOptions?: HooksClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__update(id, request, requestOptions)); } @@ -470,11 +451,17 @@ export class Hooks { private async __update( id: string, request: Management.UpdateHookRequestContent = {}, - requestOptions?: Hooks.RequestOptions, + requestOptions?: HooksClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:hooks"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -493,7 +480,9 @@ export class Hooks { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: _response.body as Management.UpdateHookResponseContent, rawResponse: _response.rawResponse }; @@ -522,24 +511,6 @@ export class Hooks { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling PATCH /hooks/{id}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError(_response.error, _response.rawResponse, "PATCH", "/hooks/{id}"); } } diff --git a/src/management/api/resources/hooks/resources/secrets/client/Client.ts b/src/management/api/resources/hooks/resources/secrets/client/Client.ts index 6d00c82986..25334378c7 100644 --- a/src/management/api/resources/hooks/resources/secrets/client/Client.ts +++ b/src/management/api/resources/hooks/resources/secrets/client/Client.ts @@ -1,30 +1,32 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../core/headers.js"; import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; +import * as environments from "../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../errors/index.js"; +import * as Management from "../../../../../index.js"; -export declare namespace Secrets { +export declare namespace SecretsClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Secrets { - protected readonly _options: Secrets.Options; +export class SecretsClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: Secrets.Options) { - this._options = _options; + constructor(options: SecretsClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** * Retrieve a hook's secrets by the ID of the hook. * * @param {string} id - ID of the hook to retrieve secrets from. - * @param {Secrets.RequestOptions} requestOptions - Request-specific configuration. + * @param {SecretsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -37,18 +39,24 @@ export class Secrets { */ public get( id: string, - requestOptions?: Secrets.RequestOptions, + requestOptions?: SecretsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__get(id, requestOptions)); } private async __get( id: string, - requestOptions?: Secrets.RequestOptions, + requestOptions?: SecretsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:hooks"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -64,7 +72,9 @@ export class Secrets { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -94,21 +104,7 @@ export class Secrets { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /hooks/{id}/secrets."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/hooks/{id}/secrets"); } /** @@ -116,7 +112,7 @@ export class Secrets { * * @param {string} id - The id of the hook to retrieve * @param {Management.CreateHookSecretRequestContent} request - * @param {Secrets.RequestOptions} requestOptions - Request-specific configuration. + * @param {SecretsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -132,7 +128,7 @@ export class Secrets { public create( id: string, request: Management.CreateHookSecretRequestContent, - requestOptions?: Secrets.RequestOptions, + requestOptions?: SecretsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__create(id, request, requestOptions)); } @@ -140,11 +136,17 @@ export class Secrets { private async __create( id: string, request: Management.CreateHookSecretRequestContent, - requestOptions?: Secrets.RequestOptions, + requestOptions?: SecretsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:hooks"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -163,7 +165,9 @@ export class Secrets { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -190,21 +194,7 @@ export class Secrets { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling POST /hooks/{id}/secrets."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/hooks/{id}/secrets"); } /** @@ -212,7 +202,7 @@ export class Secrets { * * @param {string} id - ID of the hook whose secrets to delete. * @param {Management.DeleteHookSecretRequestContent} request - * @param {Secrets.RequestOptions} requestOptions - Request-specific configuration. + * @param {SecretsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -225,7 +215,7 @@ export class Secrets { public delete( id: string, request: Management.DeleteHookSecretRequestContent, - requestOptions?: Secrets.RequestOptions, + requestOptions?: SecretsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__delete(id, request, requestOptions)); } @@ -233,11 +223,17 @@ export class Secrets { private async __delete( id: string, request: Management.DeleteHookSecretRequestContent, - requestOptions?: Secrets.RequestOptions, + requestOptions?: SecretsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["delete:hooks"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -256,7 +252,9 @@ export class Secrets { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -281,21 +279,7 @@ export class Secrets { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling DELETE /hooks/{id}/secrets."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "DELETE", "/hooks/{id}/secrets"); } /** @@ -303,7 +287,7 @@ export class Secrets { * * @param {string} id - ID of the hook whose secrets to update. * @param {Management.UpdateHookSecretRequestContent} request - * @param {Secrets.RequestOptions} requestOptions - Request-specific configuration. + * @param {SecretsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -320,7 +304,7 @@ export class Secrets { public update( id: string, request: Management.UpdateHookSecretRequestContent, - requestOptions?: Secrets.RequestOptions, + requestOptions?: SecretsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__update(id, request, requestOptions)); } @@ -328,11 +312,17 @@ export class Secrets { private async __update( id: string, request: Management.UpdateHookSecretRequestContent, - requestOptions?: Secrets.RequestOptions, + requestOptions?: SecretsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:hooks"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -351,7 +341,9 @@ export class Secrets { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -380,24 +372,6 @@ export class Secrets { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling PATCH /hooks/{id}/secrets."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError(_response.error, _response.rawResponse, "PATCH", "/hooks/{id}/secrets"); } } diff --git a/src/management/api/resources/index.ts b/src/management/api/resources/index.ts index cd8026cb9f..79e22c1c99 100644 --- a/src/management/api/resources/index.ts +++ b/src/management/api/resources/index.ts @@ -1,18 +1,22 @@ -export * as eventStreams from "./eventStreams/index.js"; -export * from "./eventStreams/types/index.js"; -export * as jobs from "./jobs/index.js"; export * as actions from "./actions/index.js"; +export * as anomaly from "./anomaly/index.js"; +export * as attackProtection from "./attackProtection/index.js"; export * as branding from "./branding/index.js"; export * as clientGrants from "./clientGrants/index.js"; export * as clients from "./clients/index.js"; export * as connections from "./connections/index.js"; export * as customDomains from "./customDomains/index.js"; export * as deviceCredentials from "./deviceCredentials/index.js"; +export * as emails from "./emails/index.js"; export * as emailTemplates from "./emailTemplates/index.js"; +export * as eventStreams from "./eventStreams/index.js"; +export * from "./eventStreams/types/index.js"; export * as flows from "./flows/index.js"; export * as forms from "./forms/index.js"; -export * as userGrants from "./userGrants/index.js"; +export * as guardian from "./guardian/index.js"; export * as hooks from "./hooks/index.js"; +export * as jobs from "./jobs/index.js"; +export * as keys from "./keys/index.js"; export * as logStreams from "./logStreams/index.js"; export * as logs from "./logs/index.js"; export * as networkAcls from "./networkAcls/index.js"; @@ -27,16 +31,10 @@ export * as selfServiceProfiles from "./selfServiceProfiles/index.js"; export * as sessions from "./sessions/index.js"; export * as stats from "./stats/index.js"; export * as supplementalSignals from "./supplementalSignals/index.js"; +export * as tenants from "./tenants/index.js"; export * as tickets from "./tickets/index.js"; export * as tokenExchangeProfiles from "./tokenExchangeProfiles/index.js"; -export * as userAttributeProfiles from "./userAttributeProfiles/index.js"; export * as userBlocks from "./userBlocks/index.js"; +export * as userGrants from "./userGrants/index.js"; export * as users from "./users/index.js"; -export * as anomaly from "./anomaly/index.js"; -export * as attackProtection from "./attackProtection/index.js"; -export * as emails from "./emails/index.js"; -export * as guardian from "./guardian/index.js"; -export * as keys from "./keys/index.js"; -export * as riskAssessments from "./riskAssessments/index.js"; -export * as tenants from "./tenants/index.js"; export * as verifiableCredentials from "./verifiableCredentials/index.js"; diff --git a/src/management/api/resources/jobs/client/Client.ts b/src/management/api/resources/jobs/client/Client.ts index 9d0ef33724..de8db0aa19 100644 --- a/src/management/api/resources/jobs/client/Client.ts +++ b/src/management/api/resources/jobs/client/Client.ts @@ -1,54 +1,56 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../BaseClient.js"; -import * as environments from "../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../core/headers.js"; import * as core from "../../../../core/index.js"; -import * as Management from "../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../core/headers.js"; +import * as environments from "../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../errors/index.js"; -import { UsersExports } from "../resources/usersExports/client/Client.js"; -import { UsersImports } from "../resources/usersImports/client/Client.js"; -import { VerificationEmail } from "../resources/verificationEmail/client/Client.js"; -import { Errors } from "../resources/errors/client/Client.js"; +import * as Management from "../../../index.js"; +import { ErrorsClient } from "../resources/errors/client/Client.js"; +import { UsersExportsClient } from "../resources/usersExports/client/Client.js"; +import { UsersImportsClient } from "../resources/usersImports/client/Client.js"; +import { VerificationEmailClient } from "../resources/verificationEmail/client/Client.js"; -export declare namespace Jobs { +export declare namespace JobsClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Jobs { - protected readonly _options: Jobs.Options; - protected _usersExports: UsersExports | undefined; - protected _usersImports: UsersImports | undefined; - protected _verificationEmail: VerificationEmail | undefined; - protected _errors: Errors | undefined; +export class JobsClient { + protected readonly _options: NormalizedClientOptionsWithAuth; + protected _usersExports: UsersExportsClient | undefined; + protected _usersImports: UsersImportsClient | undefined; + protected _verificationEmail: VerificationEmailClient | undefined; + protected _errors: ErrorsClient | undefined; - constructor(_options: Jobs.Options) { - this._options = _options; + constructor(options: JobsClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } - public get usersExports(): UsersExports { - return (this._usersExports ??= new UsersExports(this._options)); + public get usersExports(): UsersExportsClient { + return (this._usersExports ??= new UsersExportsClient(this._options)); } - public get usersImports(): UsersImports { - return (this._usersImports ??= new UsersImports(this._options)); + public get usersImports(): UsersImportsClient { + return (this._usersImports ??= new UsersImportsClient(this._options)); } - public get verificationEmail(): VerificationEmail { - return (this._verificationEmail ??= new VerificationEmail(this._options)); + public get verificationEmail(): VerificationEmailClient { + return (this._verificationEmail ??= new VerificationEmailClient(this._options)); } - public get errors(): Errors { - return (this._errors ??= new Errors(this._options)); + public get errors(): ErrorsClient { + return (this._errors ??= new ErrorsClient(this._options)); } /** * Retrieves a job. Useful to check its status. * * @param {string} id - ID of the job. - * @param {Jobs.RequestOptions} requestOptions - Request-specific configuration. + * @param {JobsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -61,18 +63,24 @@ export class Jobs { */ public get( id: string, - requestOptions?: Jobs.RequestOptions, + requestOptions?: JobsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__get(id, requestOptions)); } private async __get( id: string, - requestOptions?: Jobs.RequestOptions, + requestOptions?: JobsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["create:users", "read:users"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -88,7 +96,9 @@ export class Jobs { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: _response.body as Management.GetJobResponseContent, rawResponse: _response.rawResponse }; @@ -115,24 +125,6 @@ export class Jobs { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /jobs/{id}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/jobs/{id}"); } } diff --git a/src/management/api/resources/jobs/index.ts b/src/management/api/resources/jobs/index.ts index 02bb706544..9eb1192dcc 100644 --- a/src/management/api/resources/jobs/index.ts +++ b/src/management/api/resources/jobs/index.ts @@ -1,2 +1,2 @@ -export * from "./resources/index.js"; export * from "./client/index.js"; +export * from "./resources/index.js"; diff --git a/src/management/api/resources/jobs/resources/errors/client/Client.ts b/src/management/api/resources/jobs/resources/errors/client/Client.ts index 09befb3d23..631f6091ff 100644 --- a/src/management/api/resources/jobs/resources/errors/client/Client.ts +++ b/src/management/api/resources/jobs/resources/errors/client/Client.ts @@ -1,30 +1,32 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../core/headers.js"; import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; +import * as environments from "../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../errors/index.js"; +import * as Management from "../../../../../index.js"; -export declare namespace Errors { +export declare namespace ErrorsClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Errors { - protected readonly _options: Errors.Options; +export class ErrorsClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: Errors.Options) { - this._options = _options; + constructor(options: ErrorsClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** * Retrieve error details of a failed job. * * @param {string} id - ID of the job. - * @param {Errors.RequestOptions} requestOptions - Request-specific configuration. + * @param {ErrorsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -37,18 +39,24 @@ export class Errors { */ public get( id: string, - requestOptions?: Errors.RequestOptions, + requestOptions?: ErrorsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__get(id, requestOptions)); } private async __get( id: string, - requestOptions?: Errors.RequestOptions, + requestOptions?: ErrorsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["create:users", "read:users"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -64,7 +72,9 @@ export class Errors { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: _response.body as Management.jobs.ErrorsGetResponse, rawResponse: _response.rawResponse }; @@ -91,24 +101,6 @@ export class Errors { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /jobs/{id}/errors."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/jobs/{id}/errors"); } } diff --git a/src/management/api/resources/jobs/resources/errors/index.ts b/src/management/api/resources/jobs/resources/errors/index.ts index f095e1478e..d9adb1af9a 100644 --- a/src/management/api/resources/jobs/resources/errors/index.ts +++ b/src/management/api/resources/jobs/resources/errors/index.ts @@ -1,2 +1,2 @@ -export * from "./types/index.js"; export * from "./client/index.js"; +export * from "./types/index.js"; diff --git a/src/management/api/resources/jobs/resources/errors/types/types.ts b/src/management/api/resources/jobs/resources/errors/types/types.ts index e0650419a2..148959ad5b 100644 --- a/src/management/api/resources/jobs/resources/errors/types/types.ts +++ b/src/management/api/resources/jobs/resources/errors/types/types.ts @@ -1,5 +1,5 @@ // This file was auto-generated by Fern from our API Definition. -import * as Management from "../../../../../index.js"; +import type * as Management from "../../../../../index.js"; export type ErrorsGetResponse = Management.GetJobErrorResponseContent[] | Management.GetJobGenericErrorResponseContent; diff --git a/src/management/api/resources/jobs/resources/usersExports/client/Client.ts b/src/management/api/resources/jobs/resources/usersExports/client/Client.ts index 63b515a5d6..089eefb56f 100644 --- a/src/management/api/resources/jobs/resources/usersExports/client/Client.ts +++ b/src/management/api/resources/jobs/resources/usersExports/client/Client.ts @@ -1,30 +1,32 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../core/headers.js"; import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; +import * as environments from "../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../errors/index.js"; +import * as Management from "../../../../../index.js"; -export declare namespace UsersExports { +export declare namespace UsersExportsClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class UsersExports { - protected readonly _options: UsersExports.Options; +export class UsersExportsClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: UsersExports.Options) { - this._options = _options; + constructor(options: UsersExportsClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** * Export all users to a file via a long-running job. * * @param {Management.CreateExportUsersRequestContent} request - * @param {UsersExports.RequestOptions} requestOptions - Request-specific configuration. + * @param {UsersExportsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -36,18 +38,24 @@ export class UsersExports { */ public create( request: Management.CreateExportUsersRequestContent = {}, - requestOptions?: UsersExports.RequestOptions, + requestOptions?: UsersExportsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__create(request, requestOptions)); } private async __create( request: Management.CreateExportUsersRequestContent = {}, - requestOptions?: UsersExports.RequestOptions, + requestOptions?: UsersExportsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:users"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -66,7 +74,9 @@ export class UsersExports { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -94,24 +104,6 @@ export class UsersExports { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling POST /jobs/users-exports."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/jobs/users-exports"); } } diff --git a/src/management/api/resources/jobs/resources/usersImports/client/Client.ts b/src/management/api/resources/jobs/resources/usersImports/client/Client.ts index 997ccc2e51..9eb8ffbe18 100644 --- a/src/management/api/resources/jobs/resources/usersImports/client/Client.ts +++ b/src/management/api/resources/jobs/resources/usersImports/client/Client.ts @@ -1,31 +1,32 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; -import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import * as fs from "fs"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../../../BaseClient.js"; import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; +import * as core from "../../../../../../core/index.js"; +import * as environments from "../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../errors/index.js"; +import * as Management from "../../../../../index.js"; -export declare namespace UsersImports { +export declare namespace UsersImportsClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class UsersImports { - protected readonly _options: UsersImports.Options; +export class UsersImportsClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: UsersImports.Options) { - this._options = _options; + constructor(options: UsersImportsClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** * Import users from a formatted file into a connection via a long-running job. When importing users, with or without upsert, the `email_verified` is set to `false` when the email address is added or updated. Users must verify their email address. To avoid this behavior, set `email_verified` to `true` in the imported data. * * @param {Management.CreateImportUsersRequestContent} request - * @param {UsersImports.RequestOptions} requestOptions - Request-specific configuration. + * @param {UsersImportsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -43,15 +44,18 @@ export class UsersImports { */ public create( request: Management.CreateImportUsersRequestContent, - requestOptions?: UsersImports.RequestOptions, + requestOptions?: UsersImportsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__create(request, requestOptions)); } private async __create( request: Management.CreateImportUsersRequestContent, - requestOptions?: UsersImports.RequestOptions, + requestOptions?: UsersImportsClient.RequestOptions, ): Promise> { + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["create:users"] }], + }; const _request = await core.newFormData(); await _request.appendFile("users", request.users); _request.append("connection_id", request.connection_id); @@ -68,12 +72,13 @@ export class UsersImports { } const _maybeEncodedRequest = await _request.getRequest(); - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ - Authorization: await this._getAuthorizationHeader(), - ..._maybeEncodedRequest.headers, - }), + mergeOnlyDefinedHeaders({ ..._maybeEncodedRequest.headers }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -92,7 +97,9 @@ export class UsersImports { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -124,24 +131,6 @@ export class UsersImports { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling POST /jobs/users-imports."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/jobs/users-imports"); } } diff --git a/src/management/api/resources/jobs/resources/verificationEmail/client/Client.ts b/src/management/api/resources/jobs/resources/verificationEmail/client/Client.ts index 0036c6c32b..9c0f6759c7 100644 --- a/src/management/api/resources/jobs/resources/verificationEmail/client/Client.ts +++ b/src/management/api/resources/jobs/resources/verificationEmail/client/Client.ts @@ -1,23 +1,25 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../core/headers.js"; import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; +import * as environments from "../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../errors/index.js"; +import * as Management from "../../../../../index.js"; -export declare namespace VerificationEmail { +export declare namespace VerificationEmailClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class VerificationEmail { - protected readonly _options: VerificationEmail.Options; +export class VerificationEmailClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: VerificationEmail.Options) { - this._options = _options; + constructor(options: VerificationEmailClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** @@ -26,7 +28,7 @@ export class VerificationEmail { * Note: You must have the `Status` toggle enabled for the verification email template for the email to be sent. * * @param {Management.CreateVerificationEmailRequestContent} request - * @param {VerificationEmail.RequestOptions} requestOptions - Request-specific configuration. + * @param {VerificationEmailClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -40,18 +42,24 @@ export class VerificationEmail { */ public create( request: Management.CreateVerificationEmailRequestContent, - requestOptions?: VerificationEmail.RequestOptions, + requestOptions?: VerificationEmailClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__create(request, requestOptions)); } private async __create( request: Management.CreateVerificationEmailRequestContent, - requestOptions?: VerificationEmail.RequestOptions, + requestOptions?: VerificationEmailClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:users"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -70,7 +78,9 @@ export class VerificationEmail { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -98,24 +108,6 @@ export class VerificationEmail { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling POST /jobs/verification-email."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/jobs/verification-email"); } } diff --git a/src/management/api/resources/keys/client/Client.ts b/src/management/api/resources/keys/client/Client.ts index ffb0233042..153bded3c2 100644 --- a/src/management/api/resources/keys/client/Client.ts +++ b/src/management/api/resources/keys/client/Client.ts @@ -1,35 +1,34 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions } from "../../../../BaseClient.js"; -import * as environments from "../../../../environments.js"; -import * as core from "../../../../core/index.js"; -import { CustomSigning } from "../resources/customSigning/client/Client.js"; -import { Encryption } from "../resources/encryption/client/Client.js"; -import { Signing } from "../resources/signing/client/Client.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../BaseClient.js"; +import { CustomSigningClient } from "../resources/customSigning/client/Client.js"; +import { EncryptionClient } from "../resources/encryption/client/Client.js"; +import { SigningClient } from "../resources/signing/client/Client.js"; -export declare namespace Keys { +export declare namespace KeysClient { export interface Options extends BaseClientOptions {} } -export class Keys { - protected readonly _options: Keys.Options; - protected _customSigning: CustomSigning | undefined; - protected _encryption: Encryption | undefined; - protected _signing: Signing | undefined; +export class KeysClient { + protected readonly _options: NormalizedClientOptionsWithAuth; + protected _customSigning: CustomSigningClient | undefined; + protected _encryption: EncryptionClient | undefined; + protected _signing: SigningClient | undefined; - constructor(_options: Keys.Options) { - this._options = _options; + constructor(options: KeysClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } - public get customSigning(): CustomSigning { - return (this._customSigning ??= new CustomSigning(this._options)); + public get customSigning(): CustomSigningClient { + return (this._customSigning ??= new CustomSigningClient(this._options)); } - public get encryption(): Encryption { - return (this._encryption ??= new Encryption(this._options)); + public get encryption(): EncryptionClient { + return (this._encryption ??= new EncryptionClient(this._options)); } - public get signing(): Signing { - return (this._signing ??= new Signing(this._options)); + public get signing(): SigningClient { + return (this._signing ??= new SigningClient(this._options)); } } diff --git a/src/management/api/resources/keys/resources/customSigning/client/Client.ts b/src/management/api/resources/keys/resources/customSigning/client/Client.ts index 5e9cb52551..05ce699a3d 100644 --- a/src/management/api/resources/keys/resources/customSigning/client/Client.ts +++ b/src/management/api/resources/keys/resources/customSigning/client/Client.ts @@ -1,29 +1,31 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../core/headers.js"; import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; +import * as environments from "../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../errors/index.js"; +import * as Management from "../../../../../index.js"; -export declare namespace CustomSigning { +export declare namespace CustomSigningClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class CustomSigning { - protected readonly _options: CustomSigning.Options; +export class CustomSigningClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: CustomSigning.Options) { - this._options = _options; + constructor(options: CustomSigningClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** * Get entire jwks representation of custom signing keys. * - * @param {CustomSigning.RequestOptions} requestOptions - Request-specific configuration. + * @param {CustomSigningClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.UnauthorizedError} * @throws {@link Management.ForbiddenError} @@ -34,17 +36,23 @@ export class CustomSigning { * await client.keys.customSigning.get() */ public get( - requestOptions?: CustomSigning.RequestOptions, + requestOptions?: CustomSigningClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__get(requestOptions)); } private async __get( - requestOptions?: CustomSigning.RequestOptions, + requestOptions?: CustomSigningClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:custom_signing_keys"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -60,7 +68,9 @@ export class CustomSigning { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -88,28 +98,14 @@ export class CustomSigning { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /keys/custom-signing."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/keys/custom-signing"); } /** * Create or replace entire jwks representation of custom signing keys. * * @param {Management.SetCustomSigningKeysRequestContent} request - * @param {CustomSigning.RequestOptions} requestOptions - Request-specific configuration. + * @param {CustomSigningClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -125,18 +121,27 @@ export class CustomSigning { */ public set( request: Management.SetCustomSigningKeysRequestContent, - requestOptions?: CustomSigning.RequestOptions, + requestOptions?: CustomSigningClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__set(request, requestOptions)); } private async __set( request: Management.SetCustomSigningKeysRequestContent, - requestOptions?: CustomSigning.RequestOptions, + requestOptions?: CustomSigningClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [ + { bearerAuth: [] }, + { oAuth2ClientCredentials: ["create:custom_signing_keys", "update:custom_signing_keys"] }, + ], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -155,7 +160,9 @@ export class CustomSigning { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -183,27 +190,13 @@ export class CustomSigning { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling PUT /keys/custom-signing."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "PUT", "/keys/custom-signing"); } /** * Delete entire jwks representation of custom signing keys. * - * @param {CustomSigning.RequestOptions} requestOptions - Request-specific configuration. + * @param {CustomSigningClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.UnauthorizedError} * @throws {@link Management.ForbiddenError} @@ -212,14 +205,20 @@ export class CustomSigning { * @example * await client.keys.customSigning.delete() */ - public delete(requestOptions?: CustomSigning.RequestOptions): core.HttpResponsePromise { + public delete(requestOptions?: CustomSigningClient.RequestOptions): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__delete(requestOptions)); } - private async __delete(requestOptions?: CustomSigning.RequestOptions): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + private async __delete(requestOptions?: CustomSigningClient.RequestOptions): Promise> { + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["delete:custom_signing_keys"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -235,7 +234,9 @@ export class CustomSigning { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -258,24 +259,6 @@ export class CustomSigning { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling DELETE /keys/custom-signing."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError(_response.error, _response.rawResponse, "DELETE", "/keys/custom-signing"); } } diff --git a/src/management/api/resources/keys/resources/encryption/client/Client.ts b/src/management/api/resources/keys/resources/encryption/client/Client.ts index 2e995aa84c..ca80e87868 100644 --- a/src/management/api/resources/keys/resources/encryption/client/Client.ts +++ b/src/management/api/resources/keys/resources/encryption/client/Client.ts @@ -1,30 +1,32 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../core/headers.js"; import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; +import * as environments from "../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../errors/index.js"; +import * as Management from "../../../../../index.js"; -export declare namespace Encryption { +export declare namespace EncryptionClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Encryption { - protected readonly _options: Encryption.Options; +export class EncryptionClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: Encryption.Options) { - this._options = _options; + constructor(options: EncryptionClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** * Retrieve details of all the encryption keys associated with your tenant. * * @param {Management.ListEncryptionKeysRequestParameters} request - * @param {Encryption.RequestOptions} requestOptions - Request-specific configuration. + * @param {EncryptionClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -40,26 +42,32 @@ export class Encryption { */ public async list( request: Management.ListEncryptionKeysRequestParameters = {}, - requestOptions?: Encryption.RequestOptions, + requestOptions?: EncryptionClient.RequestOptions, ): Promise> { const list = core.HttpResponsePromise.interceptFunction( async ( request: Management.ListEncryptionKeysRequestParameters, ): Promise> => { - const { page = 0, per_page: perPage = 50, include_totals: includeTotals = true } = request; + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:encryption_keys"] }], + }; + const { page, per_page: perPage = 50, include_totals: includeTotals = true } = request; const _queryParams: Record = {}; if (page !== undefined) { - _queryParams["page"] = page?.toString() ?? null; + _queryParams.page = page?.toString() ?? null; } if (perPage !== undefined) { - _queryParams["per_page"] = perPage?.toString() ?? null; + _queryParams.per_page = perPage?.toString() ?? null; } if (includeTotals !== undefined) { - _queryParams["include_totals"] = includeTotals?.toString() ?? null; + _queryParams.include_totals = includeTotals?.toString() ?? null; } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -75,7 +83,9 @@ export class Encryption { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -110,32 +120,18 @@ export class Encryption { }); } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /keys/encryption."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/keys/encryption"); }, ); - let _offset = request?.page != null ? request?.page : 0; + let _offset = request?.page != null ? request?.page : 1; const dataWithRawResponse = await list(request).withRawResponse(); return new core.Page({ response: dataWithRawResponse.data, rawResponse: dataWithRawResponse.rawResponse, - hasNextPage: (response) => (response?.keys ?? []).length >= (request?.per_page ?? 1), + hasNextPage: (response) => (response?.keys ?? []).length > 0, getItems: (response) => response?.keys ?? [], - loadPage: (response) => { - _offset += response?.keys != null ? response.keys.length : 1; + loadPage: (_response) => { + _offset += 1; return list(core.setObjectProperty(request, "page", _offset)); }, }); @@ -145,7 +141,7 @@ export class Encryption { * Create the new, pre-activated encryption key, without the key material. * * @param {Management.CreateEncryptionKeyRequestContent} request - * @param {Encryption.RequestOptions} requestOptions - Request-specific configuration. + * @param {EncryptionClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -160,18 +156,24 @@ export class Encryption { */ public create( request: Management.CreateEncryptionKeyRequestContent, - requestOptions?: Encryption.RequestOptions, + requestOptions?: EncryptionClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__create(request, requestOptions)); } private async __create( request: Management.CreateEncryptionKeyRequestContent, - requestOptions?: Encryption.RequestOptions, + requestOptions?: EncryptionClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["create:encryption_keys"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -190,7 +192,9 @@ export class Encryption { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -220,27 +224,13 @@ export class Encryption { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling POST /keys/encryption."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/keys/encryption"); } /** * Perform rekeying operation on the key hierarchy. * - * @param {Encryption.RequestOptions} requestOptions - Request-specific configuration. + * @param {EncryptionClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.UnauthorizedError} * @throws {@link Management.ForbiddenError} @@ -249,14 +239,23 @@ export class Encryption { * @example * await client.keys.encryption.rekey() */ - public rekey(requestOptions?: Encryption.RequestOptions): core.HttpResponsePromise { + public rekey(requestOptions?: EncryptionClient.RequestOptions): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__rekey(requestOptions)); } - private async __rekey(requestOptions?: Encryption.RequestOptions): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + private async __rekey(requestOptions?: EncryptionClient.RequestOptions): Promise> { + const _metadata: core.EndpointMetadata = { + security: [ + { bearerAuth: [] }, + { oAuth2ClientCredentials: ["create:encryption_keys", "update:encryption_keys"] }, + ], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -272,7 +271,9 @@ export class Encryption { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -295,28 +296,14 @@ export class Encryption { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling POST /keys/encryption/rekey."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/keys/encryption/rekey"); } /** * Retrieve details of the encryption key with the given ID. * * @param {string} kid - Encryption key ID - * @param {Encryption.RequestOptions} requestOptions - Request-specific configuration. + * @param {EncryptionClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -329,18 +316,24 @@ export class Encryption { */ public get( kid: string, - requestOptions?: Encryption.RequestOptions, + requestOptions?: EncryptionClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__get(kid, requestOptions)); } private async __get( kid: string, - requestOptions?: Encryption.RequestOptions, + requestOptions?: EncryptionClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:encryption_keys"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -356,7 +349,9 @@ export class Encryption { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -386,21 +381,7 @@ export class Encryption { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /keys/encryption/{kid}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/keys/encryption/{kid}"); } /** @@ -408,7 +389,7 @@ export class Encryption { * * @param {string} kid - Encryption key ID * @param {Management.ImportEncryptionKeyRequestContent} request - * @param {Encryption.RequestOptions} requestOptions - Request-specific configuration. + * @param {EncryptionClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -424,7 +405,7 @@ export class Encryption { public import( kid: string, request: Management.ImportEncryptionKeyRequestContent, - requestOptions?: Encryption.RequestOptions, + requestOptions?: EncryptionClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__import(kid, request, requestOptions)); } @@ -432,11 +413,17 @@ export class Encryption { private async __import( kid: string, request: Management.ImportEncryptionKeyRequestContent, - requestOptions?: Encryption.RequestOptions, + requestOptions?: EncryptionClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:encryption_keys"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -455,7 +442,9 @@ export class Encryption { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -485,28 +474,14 @@ export class Encryption { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling POST /keys/encryption/{kid}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/keys/encryption/{kid}"); } /** * Delete the custom provided encryption key with the given ID and move back to using native encryption key. * * @param {string} kid - Encryption key ID - * @param {Encryption.RequestOptions} requestOptions - Request-specific configuration. + * @param {EncryptionClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -516,17 +491,23 @@ export class Encryption { * @example * await client.keys.encryption.delete("kid") */ - public delete(kid: string, requestOptions?: Encryption.RequestOptions): core.HttpResponsePromise { + public delete(kid: string, requestOptions?: EncryptionClient.RequestOptions): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__delete(kid, requestOptions)); } private async __delete( kid: string, - requestOptions?: Encryption.RequestOptions, + requestOptions?: EncryptionClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["delete:encryption_keys"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -542,7 +523,9 @@ export class Encryption { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -567,28 +550,14 @@ export class Encryption { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling DELETE /keys/encryption/{kid}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "DELETE", "/keys/encryption/{kid}"); } /** * Create the public wrapping key to wrap your own encryption key material. * * @param {string} kid - Encryption key ID - * @param {Encryption.RequestOptions} requestOptions - Request-specific configuration. + * @param {EncryptionClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -601,18 +570,24 @@ export class Encryption { */ public createPublicWrappingKey( kid: string, - requestOptions?: Encryption.RequestOptions, + requestOptions?: EncryptionClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__createPublicWrappingKey(kid, requestOptions)); } private async __createPublicWrappingKey( kid: string, - requestOptions?: Encryption.RequestOptions, + requestOptions?: EncryptionClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["create:encryption_keys"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -628,7 +603,9 @@ export class Encryption { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -658,26 +635,11 @@ export class Encryption { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling POST /keys/encryption/{kid}/wrapping-key.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "POST", + "/keys/encryption/{kid}/wrapping-key", + ); } } diff --git a/src/management/api/resources/keys/resources/signing/client/Client.ts b/src/management/api/resources/keys/resources/signing/client/Client.ts index 41466129e1..18f19320fd 100644 --- a/src/management/api/resources/keys/resources/signing/client/Client.ts +++ b/src/management/api/resources/keys/resources/signing/client/Client.ts @@ -1,29 +1,31 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../core/headers.js"; import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; +import * as environments from "../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../errors/index.js"; +import * as Management from "../../../../../index.js"; -export declare namespace Signing { +export declare namespace SigningClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Signing { - protected readonly _options: Signing.Options; +export class SigningClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: Signing.Options) { - this._options = _options; + constructor(options: SigningClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** * Retrieve details of all the application signing keys associated with your tenant. * - * @param {Signing.RequestOptions} requestOptions - Request-specific configuration. + * @param {SigningClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -33,16 +35,22 @@ export class Signing { * @example * await client.keys.signing.list() */ - public list(requestOptions?: Signing.RequestOptions): core.HttpResponsePromise { + public list(requestOptions?: SigningClient.RequestOptions): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__list(requestOptions)); } private async __list( - requestOptions?: Signing.RequestOptions, + requestOptions?: SigningClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:signing_keys"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -58,7 +66,9 @@ export class Signing { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: _response.body as Management.SigningKeys[], rawResponse: _response.rawResponse }; @@ -83,27 +93,13 @@ export class Signing { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /keys/signing."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/keys/signing"); } /** * Rotate the application signing key of your tenant. * - * @param {Signing.RequestOptions} requestOptions - Request-specific configuration. + * @param {SigningClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.UnauthorizedError} * @throws {@link Management.ForbiddenError} @@ -113,17 +109,23 @@ export class Signing { * await client.keys.signing.rotate() */ public rotate( - requestOptions?: Signing.RequestOptions, + requestOptions?: SigningClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__rotate(requestOptions)); } private async __rotate( - requestOptions?: Signing.RequestOptions, + requestOptions?: SigningClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["create:signing_keys", "update:signing_keys"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -139,7 +141,9 @@ export class Signing { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -165,28 +169,14 @@ export class Signing { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling POST /keys/signing/rotate."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/keys/signing/rotate"); } /** * Retrieve details of the application signing key with the given ID. * * @param {string} kid - Key id of the key to retrieve - * @param {Signing.RequestOptions} requestOptions - Request-specific configuration. + * @param {SigningClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -198,18 +188,24 @@ export class Signing { */ public get( kid: string, - requestOptions?: Signing.RequestOptions, + requestOptions?: SigningClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__get(kid, requestOptions)); } private async __get( kid: string, - requestOptions?: Signing.RequestOptions, + requestOptions?: SigningClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:signing_keys"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -225,7 +221,9 @@ export class Signing { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -253,28 +251,14 @@ export class Signing { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /keys/signing/{kid}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/keys/signing/{kid}"); } /** * Revoke the application signing key with the given ID. * * @param {string} kid - Key id of the key to revoke - * @param {Signing.RequestOptions} requestOptions - Request-specific configuration. + * @param {SigningClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.UnauthorizedError} * @throws {@link Management.ForbiddenError} @@ -286,18 +270,24 @@ export class Signing { */ public revoke( kid: string, - requestOptions?: Signing.RequestOptions, + requestOptions?: SigningClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__revoke(kid, requestOptions)); } private async __revoke( kid: string, - requestOptions?: Signing.RequestOptions, + requestOptions?: SigningClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:signing_keys"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -313,7 +303,9 @@ export class Signing { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -341,26 +333,6 @@ export class Signing { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling PUT /keys/signing/{kid}/revoke.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError(_response.error, _response.rawResponse, "PUT", "/keys/signing/{kid}/revoke"); } } diff --git a/src/management/api/resources/logStreams/client/Client.ts b/src/management/api/resources/logStreams/client/Client.ts index 8271cffff9..b0abd45787 100644 --- a/src/management/api/resources/logStreams/client/Client.ts +++ b/src/management/api/resources/logStreams/client/Client.ts @@ -1,23 +1,25 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../BaseClient.js"; -import * as environments from "../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../core/headers.js"; import * as core from "../../../../core/index.js"; -import * as Management from "../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../core/headers.js"; +import * as environments from "../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../errors/index.js"; +import * as Management from "../../../index.js"; -export declare namespace LogStreams { +export declare namespace LogStreamsClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class LogStreams { - protected readonly _options: LogStreams.Options; +export class LogStreamsClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: LogStreams.Options) { - this._options = _options; + constructor(options: LogStreamsClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** @@ -88,7 +90,7 @@ export class LogStreams { * } * }] * - * @param {LogStreams.RequestOptions} requestOptions - Request-specific configuration. + * @param {LogStreamsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.UnauthorizedError} * @throws {@link Management.ForbiddenError} @@ -99,17 +101,23 @@ export class LogStreams { * await client.logStreams.list() */ public list( - requestOptions?: LogStreams.RequestOptions, + requestOptions?: LogStreamsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__list(requestOptions)); } private async __list( - requestOptions?: LogStreams.RequestOptions, + requestOptions?: LogStreamsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:log_streams"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -125,7 +133,9 @@ export class LogStreams { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: _response.body as Management.LogStreamResponseSchema[], rawResponse: _response.rawResponse }; @@ -150,21 +160,7 @@ export class LogStreams { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /log-streams."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/log-streams"); } /** @@ -296,7 +292,7 @@ export class LogStreams { * }
    * * @param {Management.CreateLogStreamRequestContent} request - * @param {LogStreams.RequestOptions} requestOptions - Request-specific configuration. + * @param {LogStreamsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -314,18 +310,24 @@ export class LogStreams { */ public create( request: Management.CreateLogStreamRequestContent, - requestOptions?: LogStreams.RequestOptions, + requestOptions?: LogStreamsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__create(request, requestOptions)); } private async __create( request: Management.CreateLogStreamRequestContent, - requestOptions?: LogStreams.RequestOptions, + requestOptions?: LogStreamsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["create:log_streams"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -344,7 +346,9 @@ export class LogStreams { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -374,21 +378,7 @@ export class LogStreams { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling POST /log-streams."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/log-streams"); } /** @@ -496,7 +486,7 @@ export class LogStreams { * 3. suspended - Stream is currently disabled because of errors and will not attempt log delivery. * * @param {string} id - The id of the log stream to get - * @param {LogStreams.RequestOptions} requestOptions - Request-specific configuration. + * @param {LogStreamsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.UnauthorizedError} * @throws {@link Management.ForbiddenError} @@ -508,18 +498,24 @@ export class LogStreams { */ public get( id: string, - requestOptions?: LogStreams.RequestOptions, + requestOptions?: LogStreamsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__get(id, requestOptions)); } private async __get( id: string, - requestOptions?: LogStreams.RequestOptions, + requestOptions?: LogStreamsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:log_streams"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -535,7 +531,9 @@ export class LogStreams { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -563,28 +561,14 @@ export class LogStreams { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /log-streams/{id}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/log-streams/{id}"); } /** * Delete a log stream. * * @param {string} id - The id of the log stream to delete - * @param {LogStreams.RequestOptions} requestOptions - Request-specific configuration. + * @param {LogStreamsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -595,17 +579,23 @@ export class LogStreams { * @example * await client.logStreams.delete("id") */ - public delete(id: string, requestOptions?: LogStreams.RequestOptions): core.HttpResponsePromise { + public delete(id: string, requestOptions?: LogStreamsClient.RequestOptions): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__delete(id, requestOptions)); } private async __delete( id: string, - requestOptions?: LogStreams.RequestOptions, + requestOptions?: LogStreamsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["delete:log_streams"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -621,7 +611,9 @@ export class LogStreams { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -648,21 +640,7 @@ export class LogStreams { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling DELETE /log-streams/{id}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "DELETE", "/log-streams/{id}"); } /** @@ -704,7 +682,7 @@ export class LogStreams { * * @param {string} id - The id of the log stream to get * @param {Management.UpdateLogStreamRequestContent} request - * @param {LogStreams.RequestOptions} requestOptions - Request-specific configuration. + * @param {LogStreamsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -717,7 +695,7 @@ export class LogStreams { public update( id: string, request: Management.UpdateLogStreamRequestContent = {}, - requestOptions?: LogStreams.RequestOptions, + requestOptions?: LogStreamsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__update(id, request, requestOptions)); } @@ -725,11 +703,17 @@ export class LogStreams { private async __update( id: string, request: Management.UpdateLogStreamRequestContent = {}, - requestOptions?: LogStreams.RequestOptions, + requestOptions?: LogStreamsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:log_streams"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -748,7 +732,9 @@ export class LogStreams { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -776,24 +762,6 @@ export class LogStreams { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling PATCH /log-streams/{id}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError(_response.error, _response.rawResponse, "PATCH", "/log-streams/{id}"); } } diff --git a/src/management/api/resources/logs/client/Client.ts b/src/management/api/resources/logs/client/Client.ts index ce4731f23a..bfd1d1455c 100644 --- a/src/management/api/resources/logs/client/Client.ts +++ b/src/management/api/resources/logs/client/Client.ts @@ -1,23 +1,25 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../BaseClient.js"; -import * as environments from "../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../core/headers.js"; import * as core from "../../../../core/index.js"; -import * as Management from "../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../core/headers.js"; +import * as environments from "../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../errors/index.js"; +import * as Management from "../../../index.js"; -export declare namespace Logs { +export declare namespace LogsClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Logs { - protected readonly _options: Logs.Options; +export class LogsClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: Logs.Options) { - this._options = _options; + constructor(options: LogsClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** @@ -52,7 +54,7 @@ export class Logs { * Important: When fetching logs from a checkpoint log ID, any parameter other than from and take will be ignored, and date ordering is not guaranteed. * * @param {Management.ListLogsRequestParameters} request - * @param {Logs.RequestOptions} requestOptions - Request-specific configuration. + * @param {LogsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -67,51 +69,57 @@ export class Logs { * fields: "fields", * include_fields: true, * include_totals: true, - * search: "search" + * q: "q" * }) */ public async list( request: Management.ListLogsRequestParameters = {}, - requestOptions?: Logs.RequestOptions, + requestOptions?: LogsClient.RequestOptions, ): Promise> { const list = core.HttpResponsePromise.interceptFunction( async ( request: Management.ListLogsRequestParameters, ): Promise> => { + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:logs", "read:logs_users"] }], + }; const { - page = 0, + page, per_page: perPage = 50, sort, fields, include_fields: includeFields, include_totals: includeTotals = true, - search, + q, } = request; const _queryParams: Record = {}; if (page !== undefined) { - _queryParams["page"] = page?.toString() ?? null; + _queryParams.page = page?.toString() ?? null; } if (perPage !== undefined) { - _queryParams["per_page"] = perPage?.toString() ?? null; + _queryParams.per_page = perPage?.toString() ?? null; } if (sort !== undefined) { - _queryParams["sort"] = sort; + _queryParams.sort = sort; } if (fields !== undefined) { - _queryParams["fields"] = fields; + _queryParams.fields = fields; } if (includeFields !== undefined) { - _queryParams["include_fields"] = includeFields?.toString() ?? null; + _queryParams.include_fields = includeFields?.toString() ?? null; } if (includeTotals !== undefined) { - _queryParams["include_totals"] = includeTotals?.toString() ?? null; + _queryParams.include_totals = includeTotals?.toString() ?? null; } - if (search !== undefined) { - _queryParams["search"] = search; + if (q !== undefined) { + _queryParams.q = q; } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -127,7 +135,9 @@ export class Logs { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -162,32 +172,18 @@ export class Logs { }); } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /logs."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/logs"); }, ); - let _offset = request?.page != null ? request?.page : 0; + let _offset = request?.page != null ? request?.page : 1; const dataWithRawResponse = await list(request).withRawResponse(); return new core.Page({ response: dataWithRawResponse.data, rawResponse: dataWithRawResponse.rawResponse, - hasNextPage: (response) => (response?.logs ?? []).length >= (request?.per_page ?? 1), + hasNextPage: (response) => (response?.logs ?? []).length > 0, getItems: (response) => response?.logs ?? [], - loadPage: (response) => { - _offset += response?.logs != null ? response.logs.length : 1; + loadPage: (_response) => { + _offset += 1; return list(core.setObjectProperty(request, "page", _offset)); }, }); @@ -197,7 +193,7 @@ export class Logs { * Retrieve an individual log event. * * @param {string} id - log_id of the log to retrieve. - * @param {Logs.RequestOptions} requestOptions - Request-specific configuration. + * @param {LogsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -210,18 +206,24 @@ export class Logs { */ public get( id: string, - requestOptions?: Logs.RequestOptions, + requestOptions?: LogsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__get(id, requestOptions)); } private async __get( id: string, - requestOptions?: Logs.RequestOptions, + requestOptions?: LogsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:logs", "read:logs_users"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -237,7 +239,9 @@ export class Logs { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: _response.body as Management.GetLogResponseContent, rawResponse: _response.rawResponse }; @@ -264,24 +268,6 @@ export class Logs { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /logs/{id}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/logs/{id}"); } } diff --git a/src/management/api/resources/networkAcls/client/Client.ts b/src/management/api/resources/networkAcls/client/Client.ts index e31cededf4..1619f21d9f 100644 --- a/src/management/api/resources/networkAcls/client/Client.ts +++ b/src/management/api/resources/networkAcls/client/Client.ts @@ -1,30 +1,32 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../BaseClient.js"; -import * as environments from "../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../core/headers.js"; import * as core from "../../../../core/index.js"; -import * as Management from "../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../core/headers.js"; +import * as environments from "../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../errors/index.js"; +import * as Management from "../../../index.js"; -export declare namespace NetworkAcls { +export declare namespace NetworkAclsClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class NetworkAcls { - protected readonly _options: NetworkAcls.Options; +export class NetworkAclsClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: NetworkAcls.Options) { - this._options = _options; + constructor(options: NetworkAclsClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** * Get all access control list entries for your client. * * @param {Management.ListNetworkAclsRequestParameters} request - * @param {NetworkAcls.RequestOptions} requestOptions - Request-specific configuration. + * @param {NetworkAclsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.UnauthorizedError} * @throws {@link Management.ForbiddenError} @@ -40,7 +42,7 @@ export class NetworkAcls { */ public async list( request: Management.ListNetworkAclsRequestParameters = {}, - requestOptions?: NetworkAcls.RequestOptions, + requestOptions?: NetworkAclsClient.RequestOptions, ): Promise< core.Page > { @@ -48,20 +50,26 @@ export class NetworkAcls { async ( request: Management.ListNetworkAclsRequestParameters, ): Promise> => { - const { page = 0, per_page: perPage = 50, include_totals: includeTotals = true } = request; + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:network_acls"] }], + }; + const { page, per_page: perPage = 50, include_totals: includeTotals = true } = request; const _queryParams: Record = {}; if (page !== undefined) { - _queryParams["page"] = page?.toString() ?? null; + _queryParams.page = page?.toString() ?? null; } if (perPage !== undefined) { - _queryParams["per_page"] = perPage?.toString() ?? null; + _queryParams.per_page = perPage?.toString() ?? null; } if (includeTotals !== undefined) { - _queryParams["include_totals"] = includeTotals?.toString() ?? null; + _queryParams.include_totals = includeTotals?.toString() ?? null; } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -77,7 +85,9 @@ export class NetworkAcls { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -109,24 +119,10 @@ export class NetworkAcls { }); } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /network-acls."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/network-acls"); }, ); - let _offset = request?.page != null ? request?.page : 0; + let _offset = request?.page != null ? request?.page : 1; const dataWithRawResponse = await list(request).withRawResponse(); return new core.Page< Management.NetworkAclsResponseContent, @@ -134,10 +130,10 @@ export class NetworkAcls { >({ response: dataWithRawResponse.data, rawResponse: dataWithRawResponse.rawResponse, - hasNextPage: (response) => (response?.network_acls ?? []).length >= (request?.per_page ?? 1), + hasNextPage: (response) => (response?.network_acls ?? []).length > 0, getItems: (response) => response?.network_acls ?? [], - loadPage: (response) => { - _offset += response?.network_acls != null ? response.network_acls.length : 1; + loadPage: (_response) => { + _offset += 1; return list(core.setObjectProperty(request, "page", _offset)); }, }); @@ -147,7 +143,7 @@ export class NetworkAcls { * Create a new access control list for your client. * * @param {Management.CreateNetworkAclRequestContent} request - * @param {NetworkAcls.RequestOptions} requestOptions - Request-specific configuration. + * @param {NetworkAclsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -169,18 +165,24 @@ export class NetworkAcls { */ public create( request: Management.CreateNetworkAclRequestContent, - requestOptions?: NetworkAcls.RequestOptions, + requestOptions?: NetworkAclsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__create(request, requestOptions)); } private async __create( request: Management.CreateNetworkAclRequestContent, - requestOptions?: NetworkAcls.RequestOptions, + requestOptions?: NetworkAclsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["create:network_acls"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -199,7 +201,9 @@ export class NetworkAcls { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -228,28 +232,14 @@ export class NetworkAcls { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling POST /network-acls."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/network-acls"); } /** * Get a specific access control list entry for your client. * * @param {string} id - The id of the access control list to retrieve. - * @param {NetworkAcls.RequestOptions} requestOptions - Request-specific configuration. + * @param {NetworkAclsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.UnauthorizedError} * @throws {@link Management.ForbiddenError} @@ -261,18 +251,24 @@ export class NetworkAcls { */ public get( id: string, - requestOptions?: NetworkAcls.RequestOptions, + requestOptions?: NetworkAclsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__get(id, requestOptions)); } private async __get( id: string, - requestOptions?: NetworkAcls.RequestOptions, + requestOptions?: NetworkAclsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:network_acls"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -288,7 +284,9 @@ export class NetworkAcls { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -316,21 +314,7 @@ export class NetworkAcls { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /network-acls/{id}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/network-acls/{id}"); } /** @@ -338,7 +322,7 @@ export class NetworkAcls { * * @param {string} id - The id of the ACL to update. * @param {Management.SetNetworkAclRequestContent} request - * @param {NetworkAcls.RequestOptions} requestOptions - Request-specific configuration. + * @param {NetworkAclsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -360,7 +344,7 @@ export class NetworkAcls { public set( id: string, request: Management.SetNetworkAclRequestContent, - requestOptions?: NetworkAcls.RequestOptions, + requestOptions?: NetworkAclsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__set(id, request, requestOptions)); } @@ -368,11 +352,17 @@ export class NetworkAcls { private async __set( id: string, request: Management.SetNetworkAclRequestContent, - requestOptions?: NetworkAcls.RequestOptions, + requestOptions?: NetworkAclsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:network_acls"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -391,7 +381,9 @@ export class NetworkAcls { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -421,28 +413,14 @@ export class NetworkAcls { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling PUT /network-acls/{id}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "PUT", "/network-acls/{id}"); } /** * Delete existing access control list for your client. * * @param {string} id - The id of the ACL to delete - * @param {NetworkAcls.RequestOptions} requestOptions - Request-specific configuration. + * @param {NetworkAclsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -453,17 +431,23 @@ export class NetworkAcls { * @example * await client.networkAcls.delete("id") */ - public delete(id: string, requestOptions?: NetworkAcls.RequestOptions): core.HttpResponsePromise { + public delete(id: string, requestOptions?: NetworkAclsClient.RequestOptions): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__delete(id, requestOptions)); } private async __delete( id: string, - requestOptions?: NetworkAcls.RequestOptions, + requestOptions?: NetworkAclsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["delete:network_acls"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -479,7 +463,9 @@ export class NetworkAcls { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -506,21 +492,7 @@ export class NetworkAcls { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling DELETE /network-acls/{id}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "DELETE", "/network-acls/{id}"); } /** @@ -528,7 +500,7 @@ export class NetworkAcls { * * @param {string} id - The id of the ACL to update. * @param {Management.UpdateNetworkAclRequestContent} request - * @param {NetworkAcls.RequestOptions} requestOptions - Request-specific configuration. + * @param {NetworkAclsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -542,7 +514,7 @@ export class NetworkAcls { public update( id: string, request: Management.UpdateNetworkAclRequestContent = {}, - requestOptions?: NetworkAcls.RequestOptions, + requestOptions?: NetworkAclsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__update(id, request, requestOptions)); } @@ -550,11 +522,17 @@ export class NetworkAcls { private async __update( id: string, request: Management.UpdateNetworkAclRequestContent = {}, - requestOptions?: NetworkAcls.RequestOptions, + requestOptions?: NetworkAclsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:network_acls"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -573,7 +551,9 @@ export class NetworkAcls { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -603,24 +583,6 @@ export class NetworkAcls { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling PATCH /network-acls/{id}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError(_response.error, _response.rawResponse, "PATCH", "/network-acls/{id}"); } } diff --git a/src/management/api/resources/organizations/client/Client.ts b/src/management/api/resources/organizations/client/Client.ts index d14c63b877..4743e71fd5 100644 --- a/src/management/api/resources/organizations/client/Client.ts +++ b/src/management/api/resources/organizations/client/Client.ts @@ -1,53 +1,49 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../BaseClient.js"; -import * as environments from "../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../core/headers.js"; import * as core from "../../../../core/index.js"; -import * as Management from "../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../core/headers.js"; +import * as environments from "../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../errors/index.js"; -import { ClientGrants } from "../resources/clientGrants/client/Client.js"; -import { DiscoveryDomains } from "../resources/discoveryDomains/client/Client.js"; -import { EnabledConnections } from "../resources/enabledConnections/client/Client.js"; -import { Invitations } from "../resources/invitations/client/Client.js"; -import { Members } from "../resources/members/client/Client.js"; +import * as Management from "../../../index.js"; +import { ClientGrantsClient } from "../resources/clientGrants/client/Client.js"; +import { EnabledConnectionsClient } from "../resources/enabledConnections/client/Client.js"; +import { InvitationsClient } from "../resources/invitations/client/Client.js"; +import { MembersClient } from "../resources/members/client/Client.js"; -export declare namespace Organizations { +export declare namespace OrganizationsClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Organizations { - protected readonly _options: Organizations.Options; - protected _clientGrants: ClientGrants | undefined; - protected _discoveryDomains: DiscoveryDomains | undefined; - protected _enabledConnections: EnabledConnections | undefined; - protected _invitations: Invitations | undefined; - protected _members: Members | undefined; +export class OrganizationsClient { + protected readonly _options: NormalizedClientOptionsWithAuth; + protected _clientGrants: ClientGrantsClient | undefined; + protected _enabledConnections: EnabledConnectionsClient | undefined; + protected _invitations: InvitationsClient | undefined; + protected _members: MembersClient | undefined; - constructor(_options: Organizations.Options) { - this._options = _options; + constructor(options: OrganizationsClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } - public get clientGrants(): ClientGrants { - return (this._clientGrants ??= new ClientGrants(this._options)); + public get clientGrants(): ClientGrantsClient { + return (this._clientGrants ??= new ClientGrantsClient(this._options)); } - public get discoveryDomains(): DiscoveryDomains { - return (this._discoveryDomains ??= new DiscoveryDomains(this._options)); + public get enabledConnections(): EnabledConnectionsClient { + return (this._enabledConnections ??= new EnabledConnectionsClient(this._options)); } - public get enabledConnections(): EnabledConnections { - return (this._enabledConnections ??= new EnabledConnections(this._options)); + public get invitations(): InvitationsClient { + return (this._invitations ??= new InvitationsClient(this._options)); } - public get invitations(): Invitations { - return (this._invitations ??= new Invitations(this._options)); - } - - public get members(): Members { - return (this._members ??= new Members(this._options)); + public get members(): MembersClient { + return (this._members ??= new MembersClient(this._options)); } /** @@ -72,7 +68,7 @@ export class Organizations { * Note: The first time you call this endpoint using checkpoint pagination, omit the from parameter. If there are more results, a next value is included in the response. You can use this for subsequent API calls. When next is no longer included in the response, no pages are remaining. * * @param {Management.ListOrganizationsRequestParameters} request - * @param {Organizations.RequestOptions} requestOptions - Request-specific configuration. + * @param {OrganizationsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -88,26 +84,35 @@ export class Organizations { */ public async list( request: Management.ListOrganizationsRequestParameters = {}, - requestOptions?: Organizations.RequestOptions, + requestOptions?: OrganizationsClient.RequestOptions, ): Promise> { const list = core.HttpResponsePromise.interceptFunction( async ( request: Management.ListOrganizationsRequestParameters, ): Promise> => { + const _metadata: core.EndpointMetadata = { + security: [ + { bearerAuth: [] }, + { oAuth2ClientCredentials: ["read:organizations", "read:organizations_summary"] }, + ], + }; const { from: from_, take = 50, sort } = request; const _queryParams: Record = {}; if (from_ !== undefined) { - _queryParams["from"] = from_; + _queryParams.from = from_; } if (take !== undefined) { - _queryParams["take"] = take?.toString() ?? null; + _queryParams.take = take?.toString() ?? null; } if (sort !== undefined) { - _queryParams["sort"] = sort; + _queryParams.sort = sort; } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -123,7 +128,9 @@ export class Organizations { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -158,21 +165,7 @@ export class Organizations { }); } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /organizations."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/organizations"); }, ); const dataWithRawResponse = await list(request).withRawResponse(); @@ -192,7 +185,7 @@ export class Organizations { * Create a new Organization within your tenant. To learn more about Organization settings, behavior, and configuration options, review Create Your First Organization. * * @param {Management.CreateOrganizationRequestContent} request - * @param {Organizations.RequestOptions} requestOptions - Request-specific configuration. + * @param {OrganizationsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -207,18 +200,27 @@ export class Organizations { */ public create( request: Management.CreateOrganizationRequestContent, - requestOptions?: Organizations.RequestOptions, + requestOptions?: OrganizationsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__create(request, requestOptions)); } private async __create( request: Management.CreateOrganizationRequestContent, - requestOptions?: Organizations.RequestOptions, + requestOptions?: OrganizationsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [ + { bearerAuth: [] }, + { oAuth2ClientCredentials: ["create:organizations", "create:organization_connections"] }, + ], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -237,7 +239,9 @@ export class Organizations { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -267,28 +271,14 @@ export class Organizations { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling POST /organizations."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/organizations"); } /** * Retrieve details about a single Organization specified by name. * * @param {string} name - name of the organization to retrieve. - * @param {Organizations.RequestOptions} requestOptions - Request-specific configuration. + * @param {OrganizationsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -300,18 +290,24 @@ export class Organizations { */ public getByName( name: string, - requestOptions?: Organizations.RequestOptions, + requestOptions?: OrganizationsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__getByName(name, requestOptions)); } private async __getByName( name: string, - requestOptions?: Organizations.RequestOptions, + requestOptions?: OrganizationsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:organizations"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -327,7 +323,9 @@ export class Organizations { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -355,30 +353,14 @@ export class Organizations { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /organizations/name/{name}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/organizations/name/{name}"); } /** * Retrieve details about a single Organization specified by ID. * * @param {string} id - ID of the organization to retrieve. - * @param {Organizations.RequestOptions} requestOptions - Request-specific configuration. + * @param {OrganizationsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -390,18 +372,27 @@ export class Organizations { */ public get( id: string, - requestOptions?: Organizations.RequestOptions, + requestOptions?: OrganizationsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__get(id, requestOptions)); } private async __get( id: string, - requestOptions?: Organizations.RequestOptions, + requestOptions?: OrganizationsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [ + { bearerAuth: [] }, + { oAuth2ClientCredentials: ["read:organizations", "read:organizations_summary"] }, + ], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -417,7 +408,9 @@ export class Organizations { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -445,21 +438,7 @@ export class Organizations { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /organizations/{id}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/organizations/{id}"); } /** @@ -468,7 +447,7 @@ export class Organizations { * Note: Members are automatically disassociated from an Organization when it is deleted. However, this action does not delete these users from your tenant. * * @param {string} id - Organization identifier. - * @param {Organizations.RequestOptions} requestOptions - Request-specific configuration. + * @param {OrganizationsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -479,17 +458,23 @@ export class Organizations { * @example * await client.organizations.delete("id") */ - public delete(id: string, requestOptions?: Organizations.RequestOptions): core.HttpResponsePromise { + public delete(id: string, requestOptions?: OrganizationsClient.RequestOptions): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__delete(id, requestOptions)); } private async __delete( id: string, - requestOptions?: Organizations.RequestOptions, + requestOptions?: OrganizationsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["delete:organizations"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -505,7 +490,9 @@ export class Organizations { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -532,21 +519,7 @@ export class Organizations { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling DELETE /organizations/{id}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "DELETE", "/organizations/{id}"); } /** @@ -554,7 +527,7 @@ export class Organizations { * * @param {string} id - ID of the organization to update. * @param {Management.UpdateOrganizationRequestContent} request - * @param {Organizations.RequestOptions} requestOptions - Request-specific configuration. + * @param {OrganizationsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -567,7 +540,7 @@ export class Organizations { public update( id: string, request: Management.UpdateOrganizationRequestContent = {}, - requestOptions?: Organizations.RequestOptions, + requestOptions?: OrganizationsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__update(id, request, requestOptions)); } @@ -575,11 +548,17 @@ export class Organizations { private async __update( id: string, request: Management.UpdateOrganizationRequestContent = {}, - requestOptions?: Organizations.RequestOptions, + requestOptions?: OrganizationsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:organizations"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -598,7 +577,9 @@ export class Organizations { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -626,24 +607,6 @@ export class Organizations { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling PATCH /organizations/{id}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError(_response.error, _response.rawResponse, "PATCH", "/organizations/{id}"); } } diff --git a/src/management/api/resources/organizations/resources/clientGrants/client/Client.ts b/src/management/api/resources/organizations/resources/clientGrants/client/Client.ts index 714b65826e..4402d48ee7 100644 --- a/src/management/api/resources/organizations/resources/clientGrants/client/Client.ts +++ b/src/management/api/resources/organizations/resources/clientGrants/client/Client.ts @@ -1,29 +1,31 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../core/headers.js"; import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; +import * as environments from "../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../errors/index.js"; +import * as Management from "../../../../../index.js"; -export declare namespace ClientGrants { +export declare namespace ClientGrantsClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class ClientGrants { - protected readonly _options: ClientGrants.Options; +export class ClientGrantsClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: ClientGrants.Options) { - this._options = _options; + constructor(options: ClientGrantsClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** * @param {string} id - Organization identifier. * @param {Management.ListOrganizationClientGrantsRequestParameters} request - * @param {ClientGrants.RequestOptions} requestOptions - Request-specific configuration. + * @param {ClientGrantsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -42,7 +44,7 @@ export class ClientGrants { public async list( id: string, request: Management.ListOrganizationClientGrantsRequestParameters = {}, - requestOptions?: ClientGrants.RequestOptions, + requestOptions?: ClientGrantsClient.RequestOptions, ): Promise< core.Page< Management.OrganizationClientGrant, @@ -53,40 +55,46 @@ export class ClientGrants { async ( request: Management.ListOrganizationClientGrantsRequestParameters, ): Promise> => { + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:organization_client_grants"] }], + }; const { audience, client_id: clientId, grant_ids: grantIds, - page = 0, + page, per_page: perPage = 50, include_totals: includeTotals = true, } = request; const _queryParams: Record = {}; if (audience !== undefined) { - _queryParams["audience"] = audience; + _queryParams.audience = audience; } if (clientId !== undefined) { - _queryParams["client_id"] = clientId; + _queryParams.client_id = clientId; } if (grantIds !== undefined) { if (Array.isArray(grantIds)) { - _queryParams["grant_ids"] = grantIds.map((item) => item); + _queryParams.grant_ids = grantIds.map((item) => item); } else { - _queryParams["grant_ids"] = grantIds; + _queryParams.grant_ids = grantIds; } } if (page !== undefined) { - _queryParams["page"] = page?.toString() ?? null; + _queryParams.page = page?.toString() ?? null; } if (perPage !== undefined) { - _queryParams["per_page"] = perPage?.toString() ?? null; + _queryParams.per_page = perPage?.toString() ?? null; } if (includeTotals !== undefined) { - _queryParams["include_totals"] = includeTotals?.toString() ?? null; + _queryParams.include_totals = includeTotals?.toString() ?? null; } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -102,7 +110,9 @@ export class ClientGrants { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -137,26 +147,15 @@ export class ClientGrants { }); } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /organizations/{id}/client-grants.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "GET", + "/organizations/{id}/client-grants", + ); }, ); - let _offset = request?.page != null ? request?.page : 0; + let _offset = request?.page != null ? request?.page : 1; const dataWithRawResponse = await list(request).withRawResponse(); return new core.Page< Management.OrganizationClientGrant, @@ -164,10 +163,10 @@ export class ClientGrants { >({ response: dataWithRawResponse.data, rawResponse: dataWithRawResponse.rawResponse, - hasNextPage: (response) => (response?.client_grants ?? []).length >= (request?.per_page ?? 1), + hasNextPage: (response) => (response?.client_grants ?? []).length > 0, getItems: (response) => response?.client_grants ?? [], - loadPage: (response) => { - _offset += response?.client_grants != null ? response.client_grants.length : 1; + loadPage: (_response) => { + _offset += 1; return list(core.setObjectProperty(request, "page", _offset)); }, }); @@ -176,7 +175,7 @@ export class ClientGrants { /** * @param {string} id - Organization identifier. * @param {Management.AssociateOrganizationClientGrantRequestContent} request - * @param {ClientGrants.RequestOptions} requestOptions - Request-specific configuration. + * @param {ClientGrantsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -193,7 +192,7 @@ export class ClientGrants { public create( id: string, request: Management.AssociateOrganizationClientGrantRequestContent, - requestOptions?: ClientGrants.RequestOptions, + requestOptions?: ClientGrantsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__create(id, request, requestOptions)); } @@ -201,11 +200,17 @@ export class ClientGrants { private async __create( id: string, request: Management.AssociateOrganizationClientGrantRequestContent, - requestOptions?: ClientGrants.RequestOptions, + requestOptions?: ClientGrantsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["create:organization_client_grants"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -224,7 +229,9 @@ export class ClientGrants { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -256,29 +263,18 @@ export class ClientGrants { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling POST /organizations/{id}/client-grants.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "POST", + "/organizations/{id}/client-grants", + ); } /** * @param {string} id - Organization identifier. - * @param {string} grantId - The Client Grant ID to remove from the organization - * @param {ClientGrants.RequestOptions} requestOptions - Request-specific configuration. + * @param {string} grant_id - The Client Grant ID to remove from the organization + * @param {ClientGrantsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -291,20 +287,26 @@ export class ClientGrants { */ public delete( id: string, - grantId: string, - requestOptions?: ClientGrants.RequestOptions, + grant_id: string, + requestOptions?: ClientGrantsClient.RequestOptions, ): core.HttpResponsePromise { - return core.HttpResponsePromise.fromPromise(this.__delete(id, grantId, requestOptions)); + return core.HttpResponsePromise.fromPromise(this.__delete(id, grant_id, requestOptions)); } private async __delete( id: string, - grantId: string, - requestOptions?: ClientGrants.RequestOptions, + grant_id: string, + requestOptions?: ClientGrantsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["delete:organization_client_grants"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -312,7 +314,7 @@ export class ClientGrants { (await core.Supplier.get(this._options.baseUrl)) ?? (await core.Supplier.get(this._options.environment)) ?? environments.ManagementEnvironment.Default, - `organizations/${core.url.encodePathParam(id)}/client-grants/${core.url.encodePathParam(grantId)}`, + `organizations/${core.url.encodePathParam(id)}/client-grants/${core.url.encodePathParam(grant_id)}`, ), method: "DELETE", headers: _headers, @@ -320,7 +322,9 @@ export class ClientGrants { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -347,26 +351,11 @@ export class ClientGrants { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling DELETE /organizations/{id}/client-grants/{grant_id}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "DELETE", + "/organizations/{id}/client-grants/{grant_id}", + ); } } diff --git a/src/management/api/resources/organizations/resources/discoveryDomains/client/Client.ts b/src/management/api/resources/organizations/resources/discoveryDomains/client/Client.ts deleted file mode 100644 index ea71194376..0000000000 --- a/src/management/api/resources/organizations/resources/discoveryDomains/client/Client.ts +++ /dev/null @@ -1,537 +0,0 @@ -// This file was auto-generated by Fern from our API Definition. - -import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; -import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; -import * as errors from "../../../../../../errors/index.js"; - -export declare namespace DiscoveryDomains { - export interface Options extends BaseClientOptions {} - - export interface RequestOptions extends BaseRequestOptions {} -} - -export class DiscoveryDomains { - protected readonly _options: DiscoveryDomains.Options; - - constructor(_options: DiscoveryDomains.Options) { - this._options = _options; - } - - /** - * Retrieve list of all organization discovery domains associated with the specified organization. - * - * @param {string} id - ID of the organization. - * @param {Management.ListOrganizationDiscoveryDomainsRequestParameters} request - * @param {DiscoveryDomains.RequestOptions} requestOptions - Request-specific configuration. - * - * @throws {@link Management.BadRequestError} - * @throws {@link Management.UnauthorizedError} - * @throws {@link Management.ForbiddenError} - * @throws {@link Management.NotFoundError} - * @throws {@link Management.TooManyRequestsError} - * - * @example - * await client.organizations.discoveryDomains.list("id", { - * from: "from", - * take: 1 - * }) - */ - public async list( - id: string, - request: Management.ListOrganizationDiscoveryDomainsRequestParameters = {}, - requestOptions?: DiscoveryDomains.RequestOptions, - ): Promise< - core.Page - > { - const list = core.HttpResponsePromise.interceptFunction( - async ( - request: Management.ListOrganizationDiscoveryDomainsRequestParameters, - ): Promise> => { - const { from: from_, take = 50 } = request; - const _queryParams: Record = {}; - if (from_ !== undefined) { - _queryParams["from"] = from_; - } - if (take !== undefined) { - _queryParams["take"] = take?.toString() ?? null; - } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( - this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), - requestOptions?.headers, - ); - const _response = await (this._options.fetcher ?? core.fetcher)({ - url: core.url.join( - (await core.Supplier.get(this._options.baseUrl)) ?? - (await core.Supplier.get(this._options.environment)) ?? - environments.ManagementEnvironment.Default, - `organizations/${core.url.encodePathParam(id)}/discovery-domains`, - ), - method: "GET", - headers: _headers, - queryParameters: { ..._queryParams, ...requestOptions?.queryParams }, - timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, - maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, - abortSignal: requestOptions?.abortSignal, - fetchFn: this._options?.fetch, - }); - if (_response.ok) { - return { - data: _response.body as Management.ListOrganizationDiscoveryDomainsResponseContent, - rawResponse: _response.rawResponse, - }; - } - if (_response.error.reason === "status-code") { - switch (_response.error.statusCode) { - case 400: - throw new Management.BadRequestError( - _response.error.body as unknown, - _response.rawResponse, - ); - case 401: - throw new Management.UnauthorizedError( - _response.error.body as unknown, - _response.rawResponse, - ); - case 403: - throw new Management.ForbiddenError(_response.error.body as unknown, _response.rawResponse); - case 404: - throw new Management.NotFoundError(_response.error.body as unknown, _response.rawResponse); - case 429: - throw new Management.TooManyRequestsError( - _response.error.body as unknown, - _response.rawResponse, - ); - default: - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.body, - rawResponse: _response.rawResponse, - }); - } - } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /organizations/{id}/discovery-domains.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - }, - ); - const dataWithRawResponse = await list(request).withRawResponse(); - return new core.Page< - Management.OrganizationDiscoveryDomain, - Management.ListOrganizationDiscoveryDomainsResponseContent - >({ - response: dataWithRawResponse.data, - rawResponse: dataWithRawResponse.rawResponse, - hasNextPage: (response) => - response?.next != null && !(typeof response?.next === "string" && response?.next === ""), - getItems: (response) => response?.domains ?? [], - loadPage: (response) => { - return list(core.setObjectProperty(request, "from", response?.next)); - }, - }); - } - - /** - * Update the verification status for an organization discovery domain. The status field must be either pending or verified. - * - * @param {string} id - ID of the organization. - * @param {Management.CreateOrganizationDiscoveryDomainRequestContent} request - * @param {DiscoveryDomains.RequestOptions} requestOptions - Request-specific configuration. - * - * @throws {@link Management.BadRequestError} - * @throws {@link Management.UnauthorizedError} - * @throws {@link Management.ForbiddenError} - * @throws {@link Management.NotFoundError} - * @throws {@link Management.ConflictError} - * @throws {@link Management.TooManyRequestsError} - * - * @example - * await client.organizations.discoveryDomains.create("id", { - * domain: "domain" - * }) - */ - public create( - id: string, - request: Management.CreateOrganizationDiscoveryDomainRequestContent, - requestOptions?: DiscoveryDomains.RequestOptions, - ): core.HttpResponsePromise { - return core.HttpResponsePromise.fromPromise(this.__create(id, request, requestOptions)); - } - - private async __create( - id: string, - request: Management.CreateOrganizationDiscoveryDomainRequestContent, - requestOptions?: DiscoveryDomains.RequestOptions, - ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( - this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), - requestOptions?.headers, - ); - const _response = await (this._options.fetcher ?? core.fetcher)({ - url: core.url.join( - (await core.Supplier.get(this._options.baseUrl)) ?? - (await core.Supplier.get(this._options.environment)) ?? - environments.ManagementEnvironment.Default, - `organizations/${core.url.encodePathParam(id)}/discovery-domains`, - ), - method: "POST", - headers: _headers, - contentType: "application/json", - queryParameters: requestOptions?.queryParams, - requestType: "json", - body: request, - timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, - maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, - abortSignal: requestOptions?.abortSignal, - fetchFn: this._options?.fetch, - }); - if (_response.ok) { - return { - data: _response.body as Management.CreateOrganizationDiscoveryDomainResponseContent, - rawResponse: _response.rawResponse, - }; - } - - if (_response.error.reason === "status-code") { - switch (_response.error.statusCode) { - case 400: - throw new Management.BadRequestError(_response.error.body as unknown, _response.rawResponse); - case 401: - throw new Management.UnauthorizedError(_response.error.body as unknown, _response.rawResponse); - case 403: - throw new Management.ForbiddenError(_response.error.body as unknown, _response.rawResponse); - case 404: - throw new Management.NotFoundError(_response.error.body as unknown, _response.rawResponse); - case 409: - throw new Management.ConflictError(_response.error.body as unknown, _response.rawResponse); - case 429: - throw new Management.TooManyRequestsError(_response.error.body as unknown, _response.rawResponse); - default: - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.body, - rawResponse: _response.rawResponse, - }); - } - } - - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling POST /organizations/{id}/discovery-domains.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - /** - * Retrieve details about a single organization discovery domain specified by ID. - * - * @param {string} id - ID of the organization. - * @param {string} discoveryDomainId - ID of the discovery domain. - * @param {DiscoveryDomains.RequestOptions} requestOptions - Request-specific configuration. - * - * @throws {@link Management.BadRequestError} - * @throws {@link Management.UnauthorizedError} - * @throws {@link Management.ForbiddenError} - * @throws {@link Management.NotFoundError} - * @throws {@link Management.TooManyRequestsError} - * - * @example - * await client.organizations.discoveryDomains.get("id", "discovery_domain_id") - */ - public get( - id: string, - discoveryDomainId: string, - requestOptions?: DiscoveryDomains.RequestOptions, - ): core.HttpResponsePromise { - return core.HttpResponsePromise.fromPromise(this.__get(id, discoveryDomainId, requestOptions)); - } - - private async __get( - id: string, - discoveryDomainId: string, - requestOptions?: DiscoveryDomains.RequestOptions, - ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( - this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), - requestOptions?.headers, - ); - const _response = await (this._options.fetcher ?? core.fetcher)({ - url: core.url.join( - (await core.Supplier.get(this._options.baseUrl)) ?? - (await core.Supplier.get(this._options.environment)) ?? - environments.ManagementEnvironment.Default, - `organizations/${core.url.encodePathParam(id)}/discovery-domains/${core.url.encodePathParam(discoveryDomainId)}`, - ), - method: "GET", - headers: _headers, - queryParameters: requestOptions?.queryParams, - timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, - maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, - abortSignal: requestOptions?.abortSignal, - fetchFn: this._options?.fetch, - }); - if (_response.ok) { - return { - data: _response.body as Management.GetOrganizationDiscoveryDomainResponseContent, - rawResponse: _response.rawResponse, - }; - } - - if (_response.error.reason === "status-code") { - switch (_response.error.statusCode) { - case 400: - throw new Management.BadRequestError(_response.error.body as unknown, _response.rawResponse); - case 401: - throw new Management.UnauthorizedError(_response.error.body as unknown, _response.rawResponse); - case 403: - throw new Management.ForbiddenError(_response.error.body as unknown, _response.rawResponse); - case 404: - throw new Management.NotFoundError(_response.error.body as unknown, _response.rawResponse); - case 429: - throw new Management.TooManyRequestsError(_response.error.body as unknown, _response.rawResponse); - default: - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.body, - rawResponse: _response.rawResponse, - }); - } - } - - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /organizations/{id}/discovery-domains/{discovery_domain_id}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - /** - * Remove a discovery domain from an organization. This action cannot be undone. - * - * @param {string} id - ID of the organization. - * @param {string} discoveryDomainId - ID of the discovery domain. - * @param {DiscoveryDomains.RequestOptions} requestOptions - Request-specific configuration. - * - * @throws {@link Management.UnauthorizedError} - * @throws {@link Management.ForbiddenError} - * @throws {@link Management.NotFoundError} - * @throws {@link Management.TooManyRequestsError} - * - * @example - * await client.organizations.discoveryDomains.delete("id", "discovery_domain_id") - */ - public delete( - id: string, - discoveryDomainId: string, - requestOptions?: DiscoveryDomains.RequestOptions, - ): core.HttpResponsePromise { - return core.HttpResponsePromise.fromPromise(this.__delete(id, discoveryDomainId, requestOptions)); - } - - private async __delete( - id: string, - discoveryDomainId: string, - requestOptions?: DiscoveryDomains.RequestOptions, - ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( - this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), - requestOptions?.headers, - ); - const _response = await (this._options.fetcher ?? core.fetcher)({ - url: core.url.join( - (await core.Supplier.get(this._options.baseUrl)) ?? - (await core.Supplier.get(this._options.environment)) ?? - environments.ManagementEnvironment.Default, - `organizations/${core.url.encodePathParam(id)}/discovery-domains/${core.url.encodePathParam(discoveryDomainId)}`, - ), - method: "DELETE", - headers: _headers, - queryParameters: requestOptions?.queryParams, - timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, - maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, - abortSignal: requestOptions?.abortSignal, - fetchFn: this._options?.fetch, - }); - if (_response.ok) { - return { data: undefined, rawResponse: _response.rawResponse }; - } - - if (_response.error.reason === "status-code") { - switch (_response.error.statusCode) { - case 401: - throw new Management.UnauthorizedError(_response.error.body as unknown, _response.rawResponse); - case 403: - throw new Management.ForbiddenError(_response.error.body as unknown, _response.rawResponse); - case 404: - throw new Management.NotFoundError(_response.error.body as unknown, _response.rawResponse); - case 429: - throw new Management.TooManyRequestsError(_response.error.body as unknown, _response.rawResponse); - default: - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.body, - rawResponse: _response.rawResponse, - }); - } - } - - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling DELETE /organizations/{id}/discovery-domains/{discovery_domain_id}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - /** - * Update the verification status for an organization discovery domain. The status field must be either pending or verified. - * - * @param {string} id - ID of the organization. - * @param {string} discoveryDomainId - ID of the discovery domain to update. - * @param {Management.UpdateOrganizationDiscoveryDomainRequestContent} request - * @param {DiscoveryDomains.RequestOptions} requestOptions - Request-specific configuration. - * - * @throws {@link Management.BadRequestError} - * @throws {@link Management.NotFoundError} - * - * @example - * await client.organizations.discoveryDomains.update("id", "discovery_domain_id") - */ - public update( - id: string, - discoveryDomainId: string, - request: Management.UpdateOrganizationDiscoveryDomainRequestContent = {}, - requestOptions?: DiscoveryDomains.RequestOptions, - ): core.HttpResponsePromise { - return core.HttpResponsePromise.fromPromise(this.__update(id, discoveryDomainId, request, requestOptions)); - } - - private async __update( - id: string, - discoveryDomainId: string, - request: Management.UpdateOrganizationDiscoveryDomainRequestContent = {}, - requestOptions?: DiscoveryDomains.RequestOptions, - ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( - this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), - requestOptions?.headers, - ); - const _response = await (this._options.fetcher ?? core.fetcher)({ - url: core.url.join( - (await core.Supplier.get(this._options.baseUrl)) ?? - (await core.Supplier.get(this._options.environment)) ?? - environments.ManagementEnvironment.Default, - `organizations/${core.url.encodePathParam(id)}/discovery-domains/${core.url.encodePathParam(discoveryDomainId)}`, - ), - method: "PATCH", - headers: _headers, - contentType: "application/json", - queryParameters: requestOptions?.queryParams, - requestType: "json", - body: request, - timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, - maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, - abortSignal: requestOptions?.abortSignal, - fetchFn: this._options?.fetch, - }); - if (_response.ok) { - return { - data: _response.body as Management.UpdateOrganizationDiscoveryDomainResponseContent, - rawResponse: _response.rawResponse, - }; - } - - if (_response.error.reason === "status-code") { - switch (_response.error.statusCode) { - case 400: - throw new Management.BadRequestError(_response.error.body as unknown, _response.rawResponse); - case 404: - throw new Management.NotFoundError(_response.error.body as unknown, _response.rawResponse); - default: - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.body, - rawResponse: _response.rawResponse, - }); - } - } - - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling PATCH /organizations/{id}/discovery-domains/{discovery_domain_id}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; - } -} diff --git a/src/management/api/resources/organizations/resources/discoveryDomains/client/index.ts b/src/management/api/resources/organizations/resources/discoveryDomains/client/index.ts deleted file mode 100644 index cb0ff5c3b5..0000000000 --- a/src/management/api/resources/organizations/resources/discoveryDomains/client/index.ts +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/src/management/api/resources/organizations/resources/discoveryDomains/index.ts b/src/management/api/resources/organizations/resources/discoveryDomains/index.ts deleted file mode 100644 index 914b8c3c72..0000000000 --- a/src/management/api/resources/organizations/resources/discoveryDomains/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./client/index.js"; diff --git a/src/management/api/resources/organizations/resources/enabledConnections/client/Client.ts b/src/management/api/resources/organizations/resources/enabledConnections/client/Client.ts index 732ea5bf15..d9f0e0ac6c 100644 --- a/src/management/api/resources/organizations/resources/enabledConnections/client/Client.ts +++ b/src/management/api/resources/organizations/resources/enabledConnections/client/Client.ts @@ -1,23 +1,25 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../core/headers.js"; import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; +import * as environments from "../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../errors/index.js"; +import * as Management from "../../../../../index.js"; -export declare namespace EnabledConnections { +export declare namespace EnabledConnectionsClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class EnabledConnections { - protected readonly _options: EnabledConnections.Options; +export class EnabledConnectionsClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: EnabledConnections.Options) { - this._options = _options; + constructor(options: EnabledConnectionsClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** @@ -25,7 +27,7 @@ export class EnabledConnections { * * @param {string} id - Organization identifier. * @param {Management.ListOrganizationConnectionsRequestParameters} request - * @param {EnabledConnections.RequestOptions} requestOptions - Request-specific configuration. + * @param {EnabledConnectionsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -42,7 +44,7 @@ export class EnabledConnections { public async list( id: string, request: Management.ListOrganizationConnectionsRequestParameters = {}, - requestOptions?: EnabledConnections.RequestOptions, + requestOptions?: EnabledConnectionsClient.RequestOptions, ): Promise< core.Page< Management.OrganizationConnection, @@ -53,20 +55,26 @@ export class EnabledConnections { async ( request: Management.ListOrganizationConnectionsRequestParameters, ): Promise> => { - const { page = 0, per_page: perPage = 50, include_totals: includeTotals = true } = request; + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:organization_connections"] }], + }; + const { page, per_page: perPage = 50, include_totals: includeTotals = true } = request; const _queryParams: Record = {}; if (page !== undefined) { - _queryParams["page"] = page?.toString() ?? null; + _queryParams.page = page?.toString() ?? null; } if (perPage !== undefined) { - _queryParams["per_page"] = perPage?.toString() ?? null; + _queryParams.per_page = perPage?.toString() ?? null; } if (includeTotals !== undefined) { - _queryParams["include_totals"] = includeTotals?.toString() ?? null; + _queryParams.include_totals = includeTotals?.toString() ?? null; } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -82,7 +90,9 @@ export class EnabledConnections { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -117,26 +127,15 @@ export class EnabledConnections { }); } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /organizations/{id}/enabled_connections.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "GET", + "/organizations/{id}/enabled_connections", + ); }, ); - let _offset = request?.page != null ? request?.page : 0; + let _offset = request?.page != null ? request?.page : 1; const dataWithRawResponse = await list(request).withRawResponse(); return new core.Page< Management.OrganizationConnection, @@ -144,10 +143,10 @@ export class EnabledConnections { >({ response: dataWithRawResponse.data, rawResponse: dataWithRawResponse.rawResponse, - hasNextPage: (response) => (response?.enabled_connections ?? []).length >= (request?.per_page ?? 1), + hasNextPage: (response) => (response?.enabled_connections ?? []).length > 0, getItems: (response) => response?.enabled_connections ?? [], - loadPage: (response) => { - _offset += response?.enabled_connections != null ? response.enabled_connections.length : 1; + loadPage: (_response) => { + _offset += 1; return list(core.setObjectProperty(request, "page", _offset)); }, }); @@ -160,7 +159,7 @@ export class EnabledConnections { * * @param {string} id - Organization identifier. * @param {Management.AddOrganizationConnectionRequestContent} request - * @param {EnabledConnections.RequestOptions} requestOptions - Request-specific configuration. + * @param {EnabledConnectionsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -175,7 +174,7 @@ export class EnabledConnections { public add( id: string, request: Management.AddOrganizationConnectionRequestContent, - requestOptions?: EnabledConnections.RequestOptions, + requestOptions?: EnabledConnectionsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__add(id, request, requestOptions)); } @@ -183,11 +182,17 @@ export class EnabledConnections { private async __add( id: string, request: Management.AddOrganizationConnectionRequestContent, - requestOptions?: EnabledConnections.RequestOptions, + requestOptions?: EnabledConnectionsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["create:organization_connections"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -206,7 +211,9 @@ export class EnabledConnections { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -234,23 +241,12 @@ export class EnabledConnections { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling POST /organizations/{id}/enabled_connections.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "POST", + "/organizations/{id}/enabled_connections", + ); } /** @@ -258,7 +254,7 @@ export class EnabledConnections { * * @param {string} id - Organization identifier. * @param {string} connectionId - Connection identifier. - * @param {EnabledConnections.RequestOptions} requestOptions - Request-specific configuration. + * @param {EnabledConnectionsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.UnauthorizedError} * @throws {@link Management.ForbiddenError} @@ -270,7 +266,7 @@ export class EnabledConnections { public get( id: string, connectionId: string, - requestOptions?: EnabledConnections.RequestOptions, + requestOptions?: EnabledConnectionsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__get(id, connectionId, requestOptions)); } @@ -278,11 +274,17 @@ export class EnabledConnections { private async __get( id: string, connectionId: string, - requestOptions?: EnabledConnections.RequestOptions, + requestOptions?: EnabledConnectionsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:organization_connections"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -298,7 +300,9 @@ export class EnabledConnections { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -324,23 +328,12 @@ export class EnabledConnections { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /organizations/{id}/enabled_connections/{connectionId}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "GET", + "/organizations/{id}/enabled_connections/{connectionId}", + ); } /** @@ -350,7 +343,7 @@ export class EnabledConnections { * * @param {string} id - Organization identifier. * @param {string} connectionId - Connection identifier. - * @param {EnabledConnections.RequestOptions} requestOptions - Request-specific configuration. + * @param {EnabledConnectionsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -363,7 +356,7 @@ export class EnabledConnections { public delete( id: string, connectionId: string, - requestOptions?: EnabledConnections.RequestOptions, + requestOptions?: EnabledConnectionsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__delete(id, connectionId, requestOptions)); } @@ -371,11 +364,17 @@ export class EnabledConnections { private async __delete( id: string, connectionId: string, - requestOptions?: EnabledConnections.RequestOptions, + requestOptions?: EnabledConnectionsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["delete:organization_connections"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -391,7 +390,9 @@ export class EnabledConnections { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -416,23 +417,12 @@ export class EnabledConnections { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling DELETE /organizations/{id}/enabled_connections/{connectionId}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "DELETE", + "/organizations/{id}/enabled_connections/{connectionId}", + ); } /** @@ -441,7 +431,7 @@ export class EnabledConnections { * @param {string} id - Organization identifier. * @param {string} connectionId - Connection identifier. * @param {Management.UpdateOrganizationConnectionRequestContent} request - * @param {EnabledConnections.RequestOptions} requestOptions - Request-specific configuration. + * @param {EnabledConnectionsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -455,7 +445,7 @@ export class EnabledConnections { id: string, connectionId: string, request: Management.UpdateOrganizationConnectionRequestContent = {}, - requestOptions?: EnabledConnections.RequestOptions, + requestOptions?: EnabledConnectionsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__update(id, connectionId, request, requestOptions)); } @@ -464,11 +454,17 @@ export class EnabledConnections { id: string, connectionId: string, request: Management.UpdateOrganizationConnectionRequestContent = {}, - requestOptions?: EnabledConnections.RequestOptions, + requestOptions?: EnabledConnectionsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:organization_connections"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -487,7 +483,9 @@ export class EnabledConnections { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -515,26 +513,11 @@ export class EnabledConnections { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling PATCH /organizations/{id}/enabled_connections/{connectionId}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "PATCH", + "/organizations/{id}/enabled_connections/{connectionId}", + ); } } diff --git a/src/management/api/resources/organizations/resources/index.ts b/src/management/api/resources/organizations/resources/index.ts index 1e597bf04c..a82cbb312a 100644 --- a/src/management/api/resources/organizations/resources/index.ts +++ b/src/management/api/resources/organizations/resources/index.ts @@ -1,5 +1,4 @@ export * as clientGrants from "./clientGrants/index.js"; -export * as discoveryDomains from "./discoveryDomains/index.js"; export * as enabledConnections from "./enabledConnections/index.js"; export * as invitations from "./invitations/index.js"; export * as members from "./members/index.js"; diff --git a/src/management/api/resources/organizations/resources/invitations/client/Client.ts b/src/management/api/resources/organizations/resources/invitations/client/Client.ts index 9533c07ce6..ad1762c622 100644 --- a/src/management/api/resources/organizations/resources/invitations/client/Client.ts +++ b/src/management/api/resources/organizations/resources/invitations/client/Client.ts @@ -1,23 +1,25 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../core/headers.js"; import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; +import * as environments from "../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../errors/index.js"; +import * as Management from "../../../../../index.js"; -export declare namespace Invitations { +export declare namespace InvitationsClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Invitations { - protected readonly _options: Invitations.Options; +export class InvitationsClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: Invitations.Options) { - this._options = _options; + constructor(options: InvitationsClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** @@ -25,7 +27,7 @@ export class Invitations { * * @param {string} id - Organization identifier. * @param {Management.ListOrganizationInvitationsRequestParameters} request - * @param {Invitations.RequestOptions} requestOptions - Request-specific configuration. + * @param {InvitationsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -46,7 +48,7 @@ export class Invitations { public async list( id: string, request: Management.ListOrganizationInvitationsRequestParameters = {}, - requestOptions?: Invitations.RequestOptions, + requestOptions?: InvitationsClient.RequestOptions, ): Promise< core.Page< Management.OrganizationInvitation, @@ -57,8 +59,11 @@ export class Invitations { async ( request: Management.ListOrganizationInvitationsRequestParameters, ): Promise> => { + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:organization_invitations"] }], + }; const { - page = 0, + page, per_page: perPage = 50, include_totals: includeTotals = true, fields, @@ -67,26 +72,29 @@ export class Invitations { } = request; const _queryParams: Record = {}; if (page !== undefined) { - _queryParams["page"] = page?.toString() ?? null; + _queryParams.page = page?.toString() ?? null; } if (perPage !== undefined) { - _queryParams["per_page"] = perPage?.toString() ?? null; + _queryParams.per_page = perPage?.toString() ?? null; } if (includeTotals !== undefined) { - _queryParams["include_totals"] = includeTotals?.toString() ?? null; + _queryParams.include_totals = includeTotals?.toString() ?? null; } if (fields !== undefined) { - _queryParams["fields"] = fields; + _queryParams.fields = fields; } if (includeFields !== undefined) { - _queryParams["include_fields"] = includeFields?.toString() ?? null; + _queryParams.include_fields = includeFields?.toString() ?? null; } if (sort !== undefined) { - _queryParams["sort"] = sort; + _queryParams.sort = sort; } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -102,7 +110,9 @@ export class Invitations { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -139,26 +149,15 @@ export class Invitations { }); } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /organizations/{id}/invitations.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "GET", + "/organizations/{id}/invitations", + ); }, ); - let _offset = request?.page != null ? request?.page : 0; + let _offset = request?.page != null ? request?.page : 1; const dataWithRawResponse = await list(request).withRawResponse(); return new core.Page< Management.OrganizationInvitation, @@ -166,10 +165,10 @@ export class Invitations { >({ response: dataWithRawResponse.data, rawResponse: dataWithRawResponse.rawResponse, - hasNextPage: (response) => (response?.invitations ?? []).length >= (request?.per_page ?? 1), + hasNextPage: (response) => (response?.invitations ?? []).length > 0, getItems: (response) => response?.invitations ?? [], - loadPage: (response) => { - _offset += response?.invitations != null ? response.invitations.length : 1; + loadPage: (_response) => { + _offset += 1; return list(core.setObjectProperty(request, "page", _offset)); }, }); @@ -180,7 +179,7 @@ export class Invitations { * * @param {string} id - Organization identifier. * @param {Management.CreateOrganizationInvitationRequestContent} request - * @param {Invitations.RequestOptions} requestOptions - Request-specific configuration. + * @param {InvitationsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -202,7 +201,7 @@ export class Invitations { public create( id: string, request: Management.CreateOrganizationInvitationRequestContent, - requestOptions?: Invitations.RequestOptions, + requestOptions?: InvitationsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__create(id, request, requestOptions)); } @@ -210,11 +209,17 @@ export class Invitations { private async __create( id: string, request: Management.CreateOrganizationInvitationRequestContent, - requestOptions?: Invitations.RequestOptions, + requestOptions?: InvitationsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["create:organization_invitations"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -233,7 +238,9 @@ export class Invitations { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -263,30 +270,19 @@ export class Invitations { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling POST /organizations/{id}/invitations.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "POST", + "/organizations/{id}/invitations", + ); } /** * @param {string} id - Organization identifier. - * @param {string} invitationId - The id of the user invitation. + * @param {string} invitation_id - The id of the user invitation. * @param {Management.GetOrganizationInvitationRequestParameters} request - * @param {Invitations.RequestOptions} requestOptions - Request-specific configuration. + * @param {InvitationsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -302,32 +298,38 @@ export class Invitations { */ public get( id: string, - invitationId: string, + invitation_id: string, request: Management.GetOrganizationInvitationRequestParameters = {}, - requestOptions?: Invitations.RequestOptions, + requestOptions?: InvitationsClient.RequestOptions, ): core.HttpResponsePromise { - return core.HttpResponsePromise.fromPromise(this.__get(id, invitationId, request, requestOptions)); + return core.HttpResponsePromise.fromPromise(this.__get(id, invitation_id, request, requestOptions)); } private async __get( id: string, - invitationId: string, + invitation_id: string, request: Management.GetOrganizationInvitationRequestParameters = {}, - requestOptions?: Invitations.RequestOptions, + requestOptions?: InvitationsClient.RequestOptions, ): Promise> { + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:organization_invitations"] }], + }; const { fields, include_fields: includeFields } = request; const _queryParams: Record = {}; if (fields !== undefined) { - _queryParams["fields"] = fields; + _queryParams.fields = fields; } if (includeFields !== undefined) { - _queryParams["include_fields"] = includeFields?.toString() ?? null; + _queryParams.include_fields = includeFields?.toString() ?? null; } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -335,7 +337,7 @@ export class Invitations { (await core.Supplier.get(this._options.baseUrl)) ?? (await core.Supplier.get(this._options.environment)) ?? environments.ManagementEnvironment.Default, - `organizations/${core.url.encodePathParam(id)}/invitations/${core.url.encodePathParam(invitationId)}`, + `organizations/${core.url.encodePathParam(id)}/invitations/${core.url.encodePathParam(invitation_id)}`, ), method: "GET", headers: _headers, @@ -343,7 +345,9 @@ export class Invitations { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -373,29 +377,18 @@ export class Invitations { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /organizations/{id}/invitations/{invitation_id}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "GET", + "/organizations/{id}/invitations/{invitation_id}", + ); } /** * @param {string} id - Organization identifier. - * @param {string} invitationId - The id of the user invitation. - * @param {Invitations.RequestOptions} requestOptions - Request-specific configuration. + * @param {string} invitation_id - The id of the user invitation. + * @param {InvitationsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.UnauthorizedError} * @throws {@link Management.ForbiddenError} @@ -407,20 +400,26 @@ export class Invitations { */ public delete( id: string, - invitationId: string, - requestOptions?: Invitations.RequestOptions, + invitation_id: string, + requestOptions?: InvitationsClient.RequestOptions, ): core.HttpResponsePromise { - return core.HttpResponsePromise.fromPromise(this.__delete(id, invitationId, requestOptions)); + return core.HttpResponsePromise.fromPromise(this.__delete(id, invitation_id, requestOptions)); } private async __delete( id: string, - invitationId: string, - requestOptions?: Invitations.RequestOptions, + invitation_id: string, + requestOptions?: InvitationsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["delete:organization_invitations"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -428,7 +427,7 @@ export class Invitations { (await core.Supplier.get(this._options.baseUrl)) ?? (await core.Supplier.get(this._options.environment)) ?? environments.ManagementEnvironment.Default, - `organizations/${core.url.encodePathParam(id)}/invitations/${core.url.encodePathParam(invitationId)}`, + `organizations/${core.url.encodePathParam(id)}/invitations/${core.url.encodePathParam(invitation_id)}`, ), method: "DELETE", headers: _headers, @@ -436,7 +435,9 @@ export class Invitations { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -461,26 +462,11 @@ export class Invitations { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling DELETE /organizations/{id}/invitations/{invitation_id}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "DELETE", + "/organizations/{id}/invitations/{invitation_id}", + ); } } diff --git a/src/management/api/resources/organizations/resources/members/client/Client.ts b/src/management/api/resources/organizations/resources/members/client/Client.ts index 4b791c3493..d4ceef2163 100644 --- a/src/management/api/resources/organizations/resources/members/client/Client.ts +++ b/src/management/api/resources/organizations/resources/members/client/Client.ts @@ -1,29 +1,31 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../core/headers.js"; import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; +import * as environments from "../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../errors/index.js"; -import { Roles } from "../resources/roles/client/Client.js"; +import * as Management from "../../../../../index.js"; +import { RolesClient } from "../resources/roles/client/Client.js"; -export declare namespace Members { +export declare namespace MembersClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Members { - protected readonly _options: Members.Options; - protected _roles: Roles | undefined; +export class MembersClient { + protected readonly _options: NormalizedClientOptionsWithAuth; + protected _roles: RolesClient | undefined; - constructor(_options: Members.Options) { - this._options = _options; + constructor(options: MembersClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } - public get roles(): Roles { - return (this._roles ??= new Roles(this._options)); + public get roles(): RolesClient { + return (this._roles ??= new RolesClient(this._options)); } /** @@ -52,7 +54,7 @@ export class Members { * * @param {string} id - Organization identifier. * @param {Management.ListOrganizationMembersRequestParameters} request - * @param {Members.RequestOptions} requestOptions - Request-specific configuration. + * @param {MembersClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -70,29 +72,35 @@ export class Members { public async list( id: string, request: Management.ListOrganizationMembersRequestParameters = {}, - requestOptions?: Members.RequestOptions, + requestOptions?: MembersClient.RequestOptions, ): Promise> { const list = core.HttpResponsePromise.interceptFunction( async ( request: Management.ListOrganizationMembersRequestParameters, ): Promise> => { + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:organization_members"] }], + }; const { from: from_, take = 50, fields, include_fields: includeFields } = request; const _queryParams: Record = {}; if (from_ !== undefined) { - _queryParams["from"] = from_; + _queryParams.from = from_; } if (take !== undefined) { - _queryParams["take"] = take?.toString() ?? null; + _queryParams.take = take?.toString() ?? null; } if (fields !== undefined) { - _queryParams["fields"] = fields; + _queryParams.fields = fields; } if (includeFields !== undefined) { - _queryParams["include_fields"] = includeFields?.toString() ?? null; + _queryParams.include_fields = includeFields?.toString() ?? null; } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -108,7 +116,9 @@ export class Members { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -143,23 +153,12 @@ export class Members { }); } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /organizations/{id}/members.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "GET", + "/organizations/{id}/members", + ); }, ); const dataWithRawResponse = await list(request).withRawResponse(); @@ -184,7 +183,7 @@ export class Members { * * @param {string} id - Organization identifier. * @param {Management.CreateOrganizationMemberRequestContent} request - * @param {Members.RequestOptions} requestOptions - Request-specific configuration. + * @param {MembersClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -199,7 +198,7 @@ export class Members { public create( id: string, request: Management.CreateOrganizationMemberRequestContent, - requestOptions?: Members.RequestOptions, + requestOptions?: MembersClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__create(id, request, requestOptions)); } @@ -207,11 +206,17 @@ export class Members { private async __create( id: string, request: Management.CreateOrganizationMemberRequestContent, - requestOptions?: Members.RequestOptions, + requestOptions?: MembersClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["create:organization_members"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -230,7 +235,9 @@ export class Members { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -255,29 +262,13 @@ export class Members { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling POST /organizations/{id}/members.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/organizations/{id}/members"); } /** * @param {string} id - Organization identifier. * @param {Management.DeleteOrganizationMembersRequestContent} request - * @param {Members.RequestOptions} requestOptions - Request-specific configuration. + * @param {MembersClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -292,7 +283,7 @@ export class Members { public delete( id: string, request: Management.DeleteOrganizationMembersRequestContent, - requestOptions?: Members.RequestOptions, + requestOptions?: MembersClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__delete(id, request, requestOptions)); } @@ -300,11 +291,17 @@ export class Members { private async __delete( id: string, request: Management.DeleteOrganizationMembersRequestContent, - requestOptions?: Members.RequestOptions, + requestOptions?: MembersClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["delete:organization_members"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -323,7 +320,9 @@ export class Members { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -348,26 +347,11 @@ export class Members { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling DELETE /organizations/{id}/members.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "DELETE", + "/organizations/{id}/members", + ); } } diff --git a/src/management/api/resources/organizations/resources/members/resources/roles/client/Client.ts b/src/management/api/resources/organizations/resources/members/resources/roles/client/Client.ts index c7e1c7c4dd..78a42dccd3 100644 --- a/src/management/api/resources/organizations/resources/members/resources/roles/client/Client.ts +++ b/src/management/api/resources/organizations/resources/members/resources/roles/client/Client.ts @@ -1,23 +1,28 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../../../BaseClient.js"; -import * as environments from "../../../../../../../../environments.js"; +import { + type NormalizedClientOptionsWithAuth, + normalizeClientOptionsWithAuth, +} from "../../../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../../../core/headers.js"; import * as core from "../../../../../../../../core/index.js"; -import * as Management from "../../../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../../../core/headers.js"; +import * as environments from "../../../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../../../errors/index.js"; +import * as Management from "../../../../../../../index.js"; -export declare namespace Roles { +export declare namespace RolesClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Roles { - protected readonly _options: Roles.Options; +export class RolesClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: Roles.Options) { - this._options = _options; + constructor(options: RolesClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** @@ -26,9 +31,9 @@ export class Roles { * Users can be members of multiple Organizations with unique roles assigned for each membership. This action only returns the roles associated with the specified Organization; any roles assigned to the user within other Organizations are not included. * * @param {string} id - Organization identifier. - * @param {string} userId - ID of the user to associate roles with. + * @param {string} user_id - ID of the user to associate roles with. * @param {Management.ListOrganizationMemberRolesRequestParameters} request - * @param {Roles.RequestOptions} requestOptions - Request-specific configuration. + * @param {RolesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -44,28 +49,34 @@ export class Roles { */ public async list( id: string, - userId: string, + user_id: string, request: Management.ListOrganizationMemberRolesRequestParameters = {}, - requestOptions?: Roles.RequestOptions, + requestOptions?: RolesClient.RequestOptions, ): Promise> { const list = core.HttpResponsePromise.interceptFunction( async ( request: Management.ListOrganizationMemberRolesRequestParameters, ): Promise> => { - const { page = 0, per_page: perPage = 50, include_totals: includeTotals = true } = request; + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:organization_member_roles"] }], + }; + const { page, per_page: perPage = 50, include_totals: includeTotals = true } = request; const _queryParams: Record = {}; if (page !== undefined) { - _queryParams["page"] = page?.toString() ?? null; + _queryParams.page = page?.toString() ?? null; } if (perPage !== undefined) { - _queryParams["per_page"] = perPage?.toString() ?? null; + _queryParams.per_page = perPage?.toString() ?? null; } if (includeTotals !== undefined) { - _queryParams["include_totals"] = includeTotals?.toString() ?? null; + _queryParams.include_totals = includeTotals?.toString() ?? null; } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -73,7 +84,7 @@ export class Roles { (await core.Supplier.get(this._options.baseUrl)) ?? (await core.Supplier.get(this._options.environment)) ?? environments.ManagementEnvironment.Default, - `organizations/${core.url.encodePathParam(id)}/members/${core.url.encodePathParam(userId)}/roles`, + `organizations/${core.url.encodePathParam(id)}/members/${core.url.encodePathParam(user_id)}/roles`, ), method: "GET", headers: _headers, @@ -81,7 +92,9 @@ export class Roles { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -116,34 +129,23 @@ export class Roles { }); } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /organizations/{id}/members/{user_id}/roles.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "GET", + "/organizations/{id}/members/{user_id}/roles", + ); }, ); - let _offset = request?.page != null ? request?.page : 0; + let _offset = request?.page != null ? request?.page : 1; const dataWithRawResponse = await list(request).withRawResponse(); return new core.Page({ response: dataWithRawResponse.data, rawResponse: dataWithRawResponse.rawResponse, - hasNextPage: (response) => (response?.roles ?? []).length >= (request?.per_page ?? 1), + hasNextPage: (response) => (response?.roles ?? []).length > 0, getItems: (response) => response?.roles ?? [], - loadPage: (response) => { - _offset += response?.roles != null ? response.roles.length : 1; + loadPage: (_response) => { + _offset += 1; return list(core.setObjectProperty(request, "page", _offset)); }, }); @@ -155,9 +157,9 @@ export class Roles { * Users can be members of multiple Organizations with unique roles assigned for each membership. This action assigns roles to a user only for the specified Organization. Roles cannot be assigned to a user across multiple Organizations in the same call. * * @param {string} id - Organization identifier. - * @param {string} userId - ID of the user to associate roles with. + * @param {string} user_id - ID of the user to associate roles with. * @param {Management.AssignOrganizationMemberRolesRequestContent} request - * @param {Roles.RequestOptions} requestOptions - Request-specific configuration. + * @param {RolesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -172,22 +174,28 @@ export class Roles { */ public assign( id: string, - userId: string, + user_id: string, request: Management.AssignOrganizationMemberRolesRequestContent, - requestOptions?: Roles.RequestOptions, + requestOptions?: RolesClient.RequestOptions, ): core.HttpResponsePromise { - return core.HttpResponsePromise.fromPromise(this.__assign(id, userId, request, requestOptions)); + return core.HttpResponsePromise.fromPromise(this.__assign(id, user_id, request, requestOptions)); } private async __assign( id: string, - userId: string, + user_id: string, request: Management.AssignOrganizationMemberRolesRequestContent, - requestOptions?: Roles.RequestOptions, + requestOptions?: RolesClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["create:organization_member_roles"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -195,7 +203,7 @@ export class Roles { (await core.Supplier.get(this._options.baseUrl)) ?? (await core.Supplier.get(this._options.environment)) ?? environments.ManagementEnvironment.Default, - `organizations/${core.url.encodePathParam(id)}/members/${core.url.encodePathParam(userId)}/roles`, + `organizations/${core.url.encodePathParam(id)}/members/${core.url.encodePathParam(user_id)}/roles`, ), method: "POST", headers: _headers, @@ -206,7 +214,9 @@ export class Roles { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -233,23 +243,12 @@ export class Roles { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling POST /organizations/{id}/members/{user_id}/roles.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "POST", + "/organizations/{id}/members/{user_id}/roles", + ); } /** @@ -258,9 +257,9 @@ export class Roles { * Users can be members of multiple Organizations with unique roles assigned for each membership. This action removes roles from a user in relation to the specified Organization. Roles assigned to the user within a different Organization cannot be managed in the same call. * * @param {string} id - Organization identifier. - * @param {string} userId - User ID of the organization member to remove roles from. + * @param {string} user_id - User ID of the organization member to remove roles from. * @param {Management.DeleteOrganizationMemberRolesRequestContent} request - * @param {Roles.RequestOptions} requestOptions - Request-specific configuration. + * @param {RolesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -274,22 +273,28 @@ export class Roles { */ public delete( id: string, - userId: string, + user_id: string, request: Management.DeleteOrganizationMemberRolesRequestContent, - requestOptions?: Roles.RequestOptions, + requestOptions?: RolesClient.RequestOptions, ): core.HttpResponsePromise { - return core.HttpResponsePromise.fromPromise(this.__delete(id, userId, request, requestOptions)); + return core.HttpResponsePromise.fromPromise(this.__delete(id, user_id, request, requestOptions)); } private async __delete( id: string, - userId: string, + user_id: string, request: Management.DeleteOrganizationMemberRolesRequestContent, - requestOptions?: Roles.RequestOptions, + requestOptions?: RolesClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["delete:organization_member_roles"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -297,7 +302,7 @@ export class Roles { (await core.Supplier.get(this._options.baseUrl)) ?? (await core.Supplier.get(this._options.environment)) ?? environments.ManagementEnvironment.Default, - `organizations/${core.url.encodePathParam(id)}/members/${core.url.encodePathParam(userId)}/roles`, + `organizations/${core.url.encodePathParam(id)}/members/${core.url.encodePathParam(user_id)}/roles`, ), method: "DELETE", headers: _headers, @@ -308,7 +313,9 @@ export class Roles { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -333,26 +340,11 @@ export class Roles { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling DELETE /organizations/{id}/members/{user_id}/roles.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "DELETE", + "/organizations/{id}/members/{user_id}/roles", + ); } } diff --git a/src/management/api/resources/prompts/client/Client.ts b/src/management/api/resources/prompts/client/Client.ts index 22b51a1d40..3d59e5707b 100644 --- a/src/management/api/resources/prompts/client/Client.ts +++ b/src/management/api/resources/prompts/client/Client.ts @@ -1,47 +1,49 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../BaseClient.js"; -import * as environments from "../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../core/headers.js"; import * as core from "../../../../core/index.js"; -import * as Management from "../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../core/headers.js"; +import * as environments from "../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../errors/index.js"; -import { Rendering } from "../resources/rendering/client/Client.js"; -import { CustomText } from "../resources/customText/client/Client.js"; -import { Partials } from "../resources/partials/client/Client.js"; +import * as Management from "../../../index.js"; +import { CustomTextClient } from "../resources/customText/client/Client.js"; +import { PartialsClient } from "../resources/partials/client/Client.js"; +import { RenderingClient } from "../resources/rendering/client/Client.js"; -export declare namespace Prompts { +export declare namespace PromptsClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Prompts { - protected readonly _options: Prompts.Options; - protected _rendering: Rendering | undefined; - protected _customText: CustomText | undefined; - protected _partials: Partials | undefined; +export class PromptsClient { + protected readonly _options: NormalizedClientOptionsWithAuth; + protected _rendering: RenderingClient | undefined; + protected _customText: CustomTextClient | undefined; + protected _partials: PartialsClient | undefined; - constructor(_options: Prompts.Options) { - this._options = _options; + constructor(options: PromptsClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } - public get rendering(): Rendering { - return (this._rendering ??= new Rendering(this._options)); + public get rendering(): RenderingClient { + return (this._rendering ??= new RenderingClient(this._options)); } - public get customText(): CustomText { - return (this._customText ??= new CustomText(this._options)); + public get customText(): CustomTextClient { + return (this._customText ??= new CustomTextClient(this._options)); } - public get partials(): Partials { - return (this._partials ??= new Partials(this._options)); + public get partials(): PartialsClient { + return (this._partials ??= new PartialsClient(this._options)); } /** * Retrieve details of the Universal Login configuration of your tenant. This includes the Identifier First Authentication and WebAuthn with Device Biometrics for MFA features. * - * @param {Prompts.RequestOptions} requestOptions - Request-specific configuration. + * @param {PromptsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.UnauthorizedError} * @throws {@link Management.ForbiddenError} @@ -51,17 +53,23 @@ export class Prompts { * await client.prompts.getSettings() */ public getSettings( - requestOptions?: Prompts.RequestOptions, + requestOptions?: PromptsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__getSettings(requestOptions)); } private async __getSettings( - requestOptions?: Prompts.RequestOptions, + requestOptions?: PromptsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:prompts"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -77,7 +85,9 @@ export class Prompts { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -103,28 +113,14 @@ export class Prompts { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /prompts."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/prompts"); } /** * Update the Universal Login configuration of your tenant. This includes the Identifier First Authentication and WebAuthn with Device Biometrics for MFA features. * * @param {Management.UpdateSettingsRequestContent} request - * @param {Prompts.RequestOptions} requestOptions - Request-specific configuration. + * @param {PromptsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -136,18 +132,24 @@ export class Prompts { */ public updateSettings( request: Management.UpdateSettingsRequestContent = {}, - requestOptions?: Prompts.RequestOptions, + requestOptions?: PromptsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__updateSettings(request, requestOptions)); } private async __updateSettings( request: Management.UpdateSettingsRequestContent = {}, - requestOptions?: Prompts.RequestOptions, + requestOptions?: PromptsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:prompts"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -166,7 +168,9 @@ export class Prompts { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -194,24 +198,6 @@ export class Prompts { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling PATCH /prompts."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError(_response.error, _response.rawResponse, "PATCH", "/prompts"); } } diff --git a/src/management/api/resources/prompts/resources/customText/client/Client.ts b/src/management/api/resources/prompts/resources/customText/client/Client.ts index ac17d70cbb..c223a3fdef 100644 --- a/src/management/api/resources/prompts/resources/customText/client/Client.ts +++ b/src/management/api/resources/prompts/resources/customText/client/Client.ts @@ -1,23 +1,25 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../core/headers.js"; import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; +import * as environments from "../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../errors/index.js"; +import * as Management from "../../../../../index.js"; -export declare namespace CustomText { +export declare namespace CustomTextClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class CustomText { - protected readonly _options: CustomText.Options; +export class CustomTextClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: CustomText.Options) { - this._options = _options; + constructor(options: CustomTextClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** @@ -25,7 +27,7 @@ export class CustomText { * * @param {Management.PromptGroupNameEnum} prompt - Name of the prompt. * @param {Management.PromptLanguageEnum} language - Language to update. - * @param {CustomText.RequestOptions} requestOptions - Request-specific configuration. + * @param {CustomTextClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -39,7 +41,7 @@ export class CustomText { public get( prompt: Management.PromptGroupNameEnum, language: Management.PromptLanguageEnum, - requestOptions?: CustomText.RequestOptions, + requestOptions?: CustomTextClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__get(prompt, language, requestOptions)); } @@ -47,11 +49,17 @@ export class CustomText { private async __get( prompt: Management.PromptGroupNameEnum, language: Management.PromptLanguageEnum, - requestOptions?: CustomText.RequestOptions, + requestOptions?: CustomTextClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:prompts"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -67,7 +75,9 @@ export class CustomText { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -97,23 +107,12 @@ export class CustomText { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /prompts/{prompt}/custom-text/{language}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "GET", + "/prompts/{prompt}/custom-text/{language}", + ); } /** @@ -122,7 +121,7 @@ export class CustomText { * @param {Management.PromptGroupNameEnum} prompt - Name of the prompt. * @param {Management.PromptLanguageEnum} language - Language to update. * @param {Management.SetsCustomTextsByLanguageRequestContent} request - * @param {CustomText.RequestOptions} requestOptions - Request-specific configuration. + * @param {CustomTextClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -138,7 +137,7 @@ export class CustomText { prompt: Management.PromptGroupNameEnum, language: Management.PromptLanguageEnum, request: Management.SetsCustomTextsByLanguageRequestContent, - requestOptions?: CustomText.RequestOptions, + requestOptions?: CustomTextClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__set(prompt, language, request, requestOptions)); } @@ -147,11 +146,17 @@ export class CustomText { prompt: Management.PromptGroupNameEnum, language: Management.PromptLanguageEnum, request: Management.SetsCustomTextsByLanguageRequestContent, - requestOptions?: CustomText.RequestOptions, + requestOptions?: CustomTextClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:prompts"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -170,7 +175,9 @@ export class CustomText { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -195,26 +202,11 @@ export class CustomText { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling PUT /prompts/{prompt}/custom-text/{language}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "PUT", + "/prompts/{prompt}/custom-text/{language}", + ); } } diff --git a/src/management/api/resources/prompts/resources/index.ts b/src/management/api/resources/prompts/resources/index.ts index 835350d858..076e53040c 100644 --- a/src/management/api/resources/prompts/resources/index.ts +++ b/src/management/api/resources/prompts/resources/index.ts @@ -1,3 +1,3 @@ -export * as rendering from "./rendering/index.js"; export * as customText from "./customText/index.js"; export * as partials from "./partials/index.js"; +export * as rendering from "./rendering/index.js"; diff --git a/src/management/api/resources/prompts/resources/partials/client/Client.ts b/src/management/api/resources/prompts/resources/partials/client/Client.ts index 51d614d63c..c13b8ba8a6 100644 --- a/src/management/api/resources/prompts/resources/partials/client/Client.ts +++ b/src/management/api/resources/prompts/resources/partials/client/Client.ts @@ -1,30 +1,32 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../core/headers.js"; import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; +import * as environments from "../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../errors/index.js"; +import * as Management from "../../../../../index.js"; -export declare namespace Partials { +export declare namespace PartialsClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Partials { - protected readonly _options: Partials.Options; +export class PartialsClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: Partials.Options) { - this._options = _options; + constructor(options: PartialsClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** * Get template partials for a prompt * * @param {Management.PartialGroupsEnum} prompt - Name of the prompt. - * @param {Partials.RequestOptions} requestOptions - Request-specific configuration. + * @param {PartialsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -37,18 +39,24 @@ export class Partials { */ public get( prompt: Management.PartialGroupsEnum, - requestOptions?: Partials.RequestOptions, + requestOptions?: PartialsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__get(prompt, requestOptions)); } private async __get( prompt: Management.PartialGroupsEnum, - requestOptions?: Partials.RequestOptions, + requestOptions?: PartialsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:prompts"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -64,7 +72,9 @@ export class Partials { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -94,23 +104,7 @@ export class Partials { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /prompts/{prompt}/partials.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/prompts/{prompt}/partials"); } /** @@ -118,7 +112,7 @@ export class Partials { * * @param {Management.PartialGroupsEnum} prompt - Name of the prompt. * @param {Management.SetPartialsRequestContent} request - * @param {Partials.RequestOptions} requestOptions - Request-specific configuration. + * @param {PartialsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -133,7 +127,7 @@ export class Partials { public set( prompt: Management.PartialGroupsEnum, request: Management.SetPartialsRequestContent, - requestOptions?: Partials.RequestOptions, + requestOptions?: PartialsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__set(prompt, request, requestOptions)); } @@ -141,11 +135,17 @@ export class Partials { private async __set( prompt: Management.PartialGroupsEnum, request: Management.SetPartialsRequestContent, - requestOptions?: Partials.RequestOptions, + requestOptions?: PartialsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:prompts"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -164,7 +164,9 @@ export class Partials { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -189,26 +191,6 @@ export class Partials { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling PUT /prompts/{prompt}/partials.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError(_response.error, _response.rawResponse, "PUT", "/prompts/{prompt}/partials"); } } diff --git a/src/management/api/resources/prompts/resources/rendering/client/Client.ts b/src/management/api/resources/prompts/resources/rendering/client/Client.ts index c49809ce78..5bd0d2aa7d 100644 --- a/src/management/api/resources/prompts/resources/rendering/client/Client.ts +++ b/src/management/api/resources/prompts/resources/rendering/client/Client.ts @@ -1,30 +1,32 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../core/headers.js"; import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; +import * as environments from "../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../errors/index.js"; +import * as Management from "../../../../../index.js"; -export declare namespace Rendering { +export declare namespace RenderingClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Rendering { - protected readonly _options: Rendering.Options; +export class RenderingClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: Rendering.Options) { - this._options = _options; + constructor(options: RenderingClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** * Get render setting configurations for all screens. * * @param {Management.ListAculsRequestParameters} request - * @param {Rendering.RequestOptions} requestOptions - Request-specific configuration. + * @param {RenderingClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -46,16 +48,19 @@ export class Rendering { */ public async list( request: Management.ListAculsRequestParameters = {}, - requestOptions?: Rendering.RequestOptions, + requestOptions?: RenderingClient.RequestOptions, ): Promise> { const list = core.HttpResponsePromise.interceptFunction( async ( request: Management.ListAculsRequestParameters, ): Promise> => { + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:prompts"] }], + }; const { fields, include_fields: includeFields, - page = 0, + page, per_page: perPage = 50, include_totals: includeTotals = true, prompt, @@ -64,32 +69,35 @@ export class Rendering { } = request; const _queryParams: Record = {}; if (fields !== undefined) { - _queryParams["fields"] = fields; + _queryParams.fields = fields; } if (includeFields !== undefined) { - _queryParams["include_fields"] = includeFields?.toString() ?? null; + _queryParams.include_fields = includeFields?.toString() ?? null; } if (page !== undefined) { - _queryParams["page"] = page?.toString() ?? null; + _queryParams.page = page?.toString() ?? null; } if (perPage !== undefined) { - _queryParams["per_page"] = perPage?.toString() ?? null; + _queryParams.per_page = perPage?.toString() ?? null; } if (includeTotals !== undefined) { - _queryParams["include_totals"] = includeTotals?.toString() ?? null; + _queryParams.include_totals = includeTotals?.toString() ?? null; } if (prompt !== undefined) { - _queryParams["prompt"] = prompt; + _queryParams.prompt = prompt; } if (screen !== undefined) { - _queryParams["screen"] = screen; + _queryParams.screen = screen; } if (renderingMode !== undefined) { - _queryParams["rendering_mode"] = renderingMode; + _queryParams.rendering_mode = renderingMode; } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -105,7 +113,9 @@ export class Rendering { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -145,173 +155,29 @@ export class Rendering { }); } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /prompts/rendering.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/prompts/rendering"); }, ); - let _offset = request?.page != null ? request?.page : 0; + let _offset = request?.page != null ? request?.page : 1; const dataWithRawResponse = await list(request).withRawResponse(); return new core.Page({ response: dataWithRawResponse.data, rawResponse: dataWithRawResponse.rawResponse, - hasNextPage: (response) => (response?.configs ?? []).length >= (request?.per_page ?? 1), + hasNextPage: (response) => (response?.configs ?? []).length > 0, getItems: (response) => response?.configs ?? [], - loadPage: (response) => { - _offset += response?.configs != null ? response.configs.length : 1; + loadPage: (_response) => { + _offset += 1; return list(core.setObjectProperty(request, "page", _offset)); }, }); } - /** - * Learn more about configuring render settings for advanced customization. - * - *

    - * Example head_tags array. See our documentation on using Liquid variables within head tags. - *

    - *
    {
    -     *   "head_tags": [
    -     *     {
    -     *       "tag": "script",
    -     *       "attributes": {
    -     *         "defer": true,
    -     *         "src": "URL_TO_ASSET",
    -     *         "async": true,
    -     *         "integrity": [
    -     *           "ASSET_SHA"
    -     *         ]
    -     *       }
    -     *     },
    -     *     {
    -     *       "tag": "link",
    -     *       "attributes": {
    -     *         "href": "URL_TO_ASSET",
    -     *         "rel": "stylesheet"
    -     *       }
    -     *     }
    -     *   ]
    -     * }
    -     * 
    - * - * @param {Management.BulkUpdateAculRequestContent} request - * @param {Rendering.RequestOptions} requestOptions - Request-specific configuration. - * - * @throws {@link Management.BadRequestError} - * @throws {@link Management.UnauthorizedError} - * @throws {@link Management.PaymentRequiredError} - * @throws {@link Management.ForbiddenError} - * @throws {@link Management.TooManyRequestsError} - * - * @example - * await client.prompts.rendering.bulkUpdate({ - * configs: [{ - * prompt: "login", - * screen: "login", - * rendering_mode: "advanced", - * head_tags: [{}] - * }] - * }) - */ - public bulkUpdate( - request: Management.BulkUpdateAculRequestContent, - requestOptions?: Rendering.RequestOptions, - ): core.HttpResponsePromise { - return core.HttpResponsePromise.fromPromise(this.__bulkUpdate(request, requestOptions)); - } - - private async __bulkUpdate( - request: Management.BulkUpdateAculRequestContent, - requestOptions?: Rendering.RequestOptions, - ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( - this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), - requestOptions?.headers, - ); - const _response = await (this._options.fetcher ?? core.fetcher)({ - url: core.url.join( - (await core.Supplier.get(this._options.baseUrl)) ?? - (await core.Supplier.get(this._options.environment)) ?? - environments.ManagementEnvironment.Default, - "prompts/rendering", - ), - method: "PATCH", - headers: _headers, - contentType: "application/json", - queryParameters: requestOptions?.queryParams, - requestType: "json", - body: request, - timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, - maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, - abortSignal: requestOptions?.abortSignal, - fetchFn: this._options?.fetch, - }); - if (_response.ok) { - return { - data: _response.body as Management.BulkUpdateAculResponseContent, - rawResponse: _response.rawResponse, - }; - } - - if (_response.error.reason === "status-code") { - switch (_response.error.statusCode) { - case 400: - throw new Management.BadRequestError(_response.error.body as unknown, _response.rawResponse); - case 401: - throw new Management.UnauthorizedError(_response.error.body as unknown, _response.rawResponse); - case 402: - throw new Management.PaymentRequiredError(_response.error.body as unknown, _response.rawResponse); - case 403: - throw new Management.ForbiddenError(_response.error.body as unknown, _response.rawResponse); - case 429: - throw new Management.TooManyRequestsError(_response.error.body as unknown, _response.rawResponse); - default: - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.body, - rawResponse: _response.rawResponse, - }); - } - } - - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling PATCH /prompts/rendering."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - /** * Get render settings for a screen. * * @param {Management.PromptGroupNameEnum} prompt - Name of the prompt * @param {Management.ScreenGroupNameEnum} screen - Name of the screen - * @param {Rendering.RequestOptions} requestOptions - Request-specific configuration. + * @param {RenderingClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -326,7 +192,7 @@ export class Rendering { public get( prompt: Management.PromptGroupNameEnum, screen: Management.ScreenGroupNameEnum, - requestOptions?: Rendering.RequestOptions, + requestOptions?: RenderingClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__get(prompt, screen, requestOptions)); } @@ -334,11 +200,17 @@ export class Rendering { private async __get( prompt: Management.PromptGroupNameEnum, screen: Management.ScreenGroupNameEnum, - requestOptions?: Rendering.RequestOptions, + requestOptions?: RenderingClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:prompts"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -354,7 +226,9 @@ export class Rendering { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: _response.body as Management.GetAculResponseContent, rawResponse: _response.rawResponse }; @@ -383,23 +257,12 @@ export class Rendering { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /prompts/{prompt}/screen/{screen}/rendering.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "GET", + "/prompts/{prompt}/screen/{screen}/rendering", + ); } /** @@ -435,7 +298,7 @@ export class Rendering { * @param {Management.PromptGroupNameEnum} prompt - Name of the prompt * @param {Management.ScreenGroupNameEnum} screen - Name of the screen * @param {Management.UpdateAculRequestContent} request - * @param {Rendering.RequestOptions} requestOptions - Request-specific configuration. + * @param {RenderingClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -444,16 +307,13 @@ export class Rendering { * @throws {@link Management.TooManyRequestsError} * * @example - * await client.prompts.rendering.update("login", "login", { - * rendering_mode: "advanced", - * head_tags: [{}] - * }) + * await client.prompts.rendering.update("login", "login") */ public update( prompt: Management.PromptGroupNameEnum, screen: Management.ScreenGroupNameEnum, - request: Management.UpdateAculRequestContent, - requestOptions?: Rendering.RequestOptions, + request: Management.UpdateAculRequestContent = {}, + requestOptions?: RenderingClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__update(prompt, screen, request, requestOptions)); } @@ -461,12 +321,18 @@ export class Rendering { private async __update( prompt: Management.PromptGroupNameEnum, screen: Management.ScreenGroupNameEnum, - request: Management.UpdateAculRequestContent, - requestOptions?: Rendering.RequestOptions, + request: Management.UpdateAculRequestContent = {}, + requestOptions?: RenderingClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:prompts"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -485,7 +351,9 @@ export class Rendering { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: _response.body as Management.UpdateAculResponseContent, rawResponse: _response.rawResponse }; @@ -512,26 +380,11 @@ export class Rendering { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling PATCH /prompts/{prompt}/screen/{screen}/rendering.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "PATCH", + "/prompts/{prompt}/screen/{screen}/rendering", + ); } } diff --git a/src/management/api/resources/refreshTokens/client/Client.ts b/src/management/api/resources/refreshTokens/client/Client.ts index 2a4bf9430b..4a7ccafa92 100644 --- a/src/management/api/resources/refreshTokens/client/Client.ts +++ b/src/management/api/resources/refreshTokens/client/Client.ts @@ -1,30 +1,32 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../BaseClient.js"; -import * as environments from "../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../core/headers.js"; import * as core from "../../../../core/index.js"; -import * as Management from "../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../core/headers.js"; +import * as environments from "../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../errors/index.js"; +import * as Management from "../../../index.js"; -export declare namespace RefreshTokens { +export declare namespace RefreshTokensClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class RefreshTokens { - protected readonly _options: RefreshTokens.Options; +export class RefreshTokensClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: RefreshTokens.Options) { - this._options = _options; + constructor(options: RefreshTokensClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** * Retrieve refresh token information. * * @param {string} id - ID refresh token to retrieve - * @param {RefreshTokens.RequestOptions} requestOptions - Request-specific configuration. + * @param {RefreshTokensClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.UnauthorizedError} * @throws {@link Management.ForbiddenError} @@ -36,18 +38,24 @@ export class RefreshTokens { */ public get( id: string, - requestOptions?: RefreshTokens.RequestOptions, + requestOptions?: RefreshTokensClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__get(id, requestOptions)); } private async __get( id: string, - requestOptions?: RefreshTokens.RequestOptions, + requestOptions?: RefreshTokensClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:refresh_tokens"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -63,7 +71,9 @@ export class RefreshTokens { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -91,28 +101,14 @@ export class RefreshTokens { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /refresh-tokens/{id}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/refresh-tokens/{id}"); } /** * Delete a refresh token by its ID. * * @param {string} id - ID of the refresh token to delete. - * @param {RefreshTokens.RequestOptions} requestOptions - Request-specific configuration. + * @param {RefreshTokensClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -122,17 +118,23 @@ export class RefreshTokens { * @example * await client.refreshTokens.delete("id") */ - public delete(id: string, requestOptions?: RefreshTokens.RequestOptions): core.HttpResponsePromise { + public delete(id: string, requestOptions?: RefreshTokensClient.RequestOptions): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__delete(id, requestOptions)); } private async __delete( id: string, - requestOptions?: RefreshTokens.RequestOptions, + requestOptions?: RefreshTokensClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["delete:refresh_tokens"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -148,7 +150,9 @@ export class RefreshTokens { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -173,24 +177,6 @@ export class RefreshTokens { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling DELETE /refresh-tokens/{id}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError(_response.error, _response.rawResponse, "DELETE", "/refresh-tokens/{id}"); } } diff --git a/src/management/api/resources/resourceServers/client/Client.ts b/src/management/api/resources/resourceServers/client/Client.ts index 5ef63de3ee..93c07a2ca3 100644 --- a/src/management/api/resources/resourceServers/client/Client.ts +++ b/src/management/api/resources/resourceServers/client/Client.ts @@ -1,30 +1,32 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../BaseClient.js"; -import * as environments from "../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../core/headers.js"; import * as core from "../../../../core/index.js"; -import * as Management from "../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../core/headers.js"; +import * as environments from "../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../errors/index.js"; +import * as Management from "../../../index.js"; -export declare namespace ResourceServers { +export declare namespace ResourceServersClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class ResourceServers { - protected readonly _options: ResourceServers.Options; +export class ResourceServersClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: ResourceServers.Options) { - this._options = _options; + constructor(options: ResourceServersClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** * Retrieve details of all APIs associated with your tenant. * * @param {Management.ListResourceServerRequestParameters} request - * @param {ResourceServers.RequestOptions} requestOptions - Request-specific configuration. + * @param {ResourceServersClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -41,15 +43,18 @@ export class ResourceServers { */ public async list( request: Management.ListResourceServerRequestParameters = {}, - requestOptions?: ResourceServers.RequestOptions, + requestOptions?: ResourceServersClient.RequestOptions, ): Promise> { const list = core.HttpResponsePromise.interceptFunction( async ( request: Management.ListResourceServerRequestParameters, ): Promise> => { + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:resource_servers"] }], + }; const { identifiers, - page = 0, + page, per_page: perPage = 50, include_totals: includeTotals = true, include_fields: includeFields, @@ -57,26 +62,29 @@ export class ResourceServers { const _queryParams: Record = {}; if (identifiers !== undefined) { if (Array.isArray(identifiers)) { - _queryParams["identifiers"] = identifiers.map((item) => item); + _queryParams.identifiers = identifiers.map((item) => item); } else { - _queryParams["identifiers"] = identifiers; + _queryParams.identifiers = identifiers; } } if (page !== undefined) { - _queryParams["page"] = page?.toString() ?? null; + _queryParams.page = page?.toString() ?? null; } if (perPage !== undefined) { - _queryParams["per_page"] = perPage?.toString() ?? null; + _queryParams.per_page = perPage?.toString() ?? null; } if (includeTotals !== undefined) { - _queryParams["include_totals"] = includeTotals?.toString() ?? null; + _queryParams.include_totals = includeTotals?.toString() ?? null; } if (includeFields !== undefined) { - _queryParams["include_fields"] = includeFields?.toString() ?? null; + _queryParams.include_fields = includeFields?.toString() ?? null; } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -92,7 +100,9 @@ export class ResourceServers { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -127,32 +137,18 @@ export class ResourceServers { }); } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /resource-servers."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/resource-servers"); }, ); - let _offset = request?.page != null ? request?.page : 0; + let _offset = request?.page != null ? request?.page : 1; const dataWithRawResponse = await list(request).withRawResponse(); return new core.Page({ response: dataWithRawResponse.data, rawResponse: dataWithRawResponse.rawResponse, - hasNextPage: (response) => (response?.resource_servers ?? []).length >= (request?.per_page ?? 1), + hasNextPage: (response) => (response?.resource_servers ?? []).length > 0, getItems: (response) => response?.resource_servers ?? [], - loadPage: (response) => { - _offset += response?.resource_servers != null ? response.resource_servers.length : 1; + loadPage: (_response) => { + _offset += 1; return list(core.setObjectProperty(request, "page", _offset)); }, }); @@ -162,7 +158,7 @@ export class ResourceServers { * Create a new API associated with your tenant. Note that all new APIs must be registered with Auth0. For more information, read APIs. * * @param {Management.CreateResourceServerRequestContent} request - * @param {ResourceServers.RequestOptions} requestOptions - Request-specific configuration. + * @param {ResourceServersClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -177,18 +173,24 @@ export class ResourceServers { */ public create( request: Management.CreateResourceServerRequestContent, - requestOptions?: ResourceServers.RequestOptions, + requestOptions?: ResourceServersClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__create(request, requestOptions)); } private async __create( request: Management.CreateResourceServerRequestContent, - requestOptions?: ResourceServers.RequestOptions, + requestOptions?: ResourceServersClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["create:resource_servers"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -207,7 +209,9 @@ export class ResourceServers { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -237,21 +241,7 @@ export class ResourceServers { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling POST /resource-servers."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/resource-servers"); } /** @@ -259,7 +249,7 @@ export class ResourceServers { * * @param {string} id - ID or audience of the resource server to retrieve. * @param {Management.GetResourceServerRequestParameters} request - * @param {ResourceServers.RequestOptions} requestOptions - Request-specific configuration. + * @param {ResourceServersClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -275,7 +265,7 @@ export class ResourceServers { public get( id: string, request: Management.GetResourceServerRequestParameters = {}, - requestOptions?: ResourceServers.RequestOptions, + requestOptions?: ResourceServersClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__get(id, request, requestOptions)); } @@ -283,17 +273,23 @@ export class ResourceServers { private async __get( id: string, request: Management.GetResourceServerRequestParameters = {}, - requestOptions?: ResourceServers.RequestOptions, + requestOptions?: ResourceServersClient.RequestOptions, ): Promise> { + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:resource_servers"] }], + }; const { include_fields: includeFields } = request; const _queryParams: Record = {}; if (includeFields !== undefined) { - _queryParams["include_fields"] = includeFields?.toString() ?? null; + _queryParams.include_fields = includeFields?.toString() ?? null; } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -309,7 +305,9 @@ export class ResourceServers { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -339,28 +337,14 @@ export class ResourceServers { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /resource-servers/{id}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/resource-servers/{id}"); } /** * Delete an existing API by ID. For more information, read API Settings. * * @param {string} id - ID or the audience of the resource server to delete. - * @param {ResourceServers.RequestOptions} requestOptions - Request-specific configuration. + * @param {ResourceServersClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -370,17 +354,23 @@ export class ResourceServers { * @example * await client.resourceServers.delete("id") */ - public delete(id: string, requestOptions?: ResourceServers.RequestOptions): core.HttpResponsePromise { + public delete(id: string, requestOptions?: ResourceServersClient.RequestOptions): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__delete(id, requestOptions)); } private async __delete( id: string, - requestOptions?: ResourceServers.RequestOptions, + requestOptions?: ResourceServersClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["delete:resource_servers"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -396,7 +386,9 @@ export class ResourceServers { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -421,21 +413,7 @@ export class ResourceServers { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling DELETE /resource-servers/{id}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "DELETE", "/resource-servers/{id}"); } /** @@ -443,7 +421,7 @@ export class ResourceServers { * * @param {string} id - ID or audience of the resource server to update. * @param {Management.UpdateResourceServerRequestContent} request - * @param {ResourceServers.RequestOptions} requestOptions - Request-specific configuration. + * @param {ResourceServersClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -457,7 +435,7 @@ export class ResourceServers { public update( id: string, request: Management.UpdateResourceServerRequestContent = {}, - requestOptions?: ResourceServers.RequestOptions, + requestOptions?: ResourceServersClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__update(id, request, requestOptions)); } @@ -465,11 +443,17 @@ export class ResourceServers { private async __update( id: string, request: Management.UpdateResourceServerRequestContent = {}, - requestOptions?: ResourceServers.RequestOptions, + requestOptions?: ResourceServersClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:resource_servers"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -488,7 +472,9 @@ export class ResourceServers { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -518,24 +504,6 @@ export class ResourceServers { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling PATCH /resource-servers/{id}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError(_response.error, _response.rawResponse, "PATCH", "/resource-servers/{id}"); } } diff --git a/src/management/api/resources/riskAssessments/client/Client.ts b/src/management/api/resources/riskAssessments/client/Client.ts deleted file mode 100644 index ce970cb28b..0000000000 --- a/src/management/api/resources/riskAssessments/client/Client.ts +++ /dev/null @@ -1,23 +0,0 @@ -// This file was auto-generated by Fern from our API Definition. - -import type { BaseClientOptions } from "../../../../BaseClient.js"; -import * as environments from "../../../../environments.js"; -import * as core from "../../../../core/index.js"; -import { Settings } from "../resources/settings/client/Client.js"; - -export declare namespace RiskAssessments { - export interface Options extends BaseClientOptions {} -} - -export class RiskAssessments { - protected readonly _options: RiskAssessments.Options; - protected _settings: Settings | undefined; - - constructor(_options: RiskAssessments.Options) { - this._options = _options; - } - - public get settings(): Settings { - return (this._settings ??= new Settings(this._options)); - } -} diff --git a/src/management/api/resources/riskAssessments/client/index.ts b/src/management/api/resources/riskAssessments/client/index.ts deleted file mode 100644 index cb0ff5c3b5..0000000000 --- a/src/management/api/resources/riskAssessments/client/index.ts +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/src/management/api/resources/riskAssessments/index.ts b/src/management/api/resources/riskAssessments/index.ts deleted file mode 100644 index 9eb1192dcc..0000000000 --- a/src/management/api/resources/riskAssessments/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./client/index.js"; -export * from "./resources/index.js"; diff --git a/src/management/api/resources/riskAssessments/resources/index.ts b/src/management/api/resources/riskAssessments/resources/index.ts deleted file mode 100644 index 5d08c46378..0000000000 --- a/src/management/api/resources/riskAssessments/resources/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * as settings from "./settings/index.js"; diff --git a/src/management/api/resources/riskAssessments/resources/settings/client/Client.ts b/src/management/api/resources/riskAssessments/resources/settings/client/Client.ts deleted file mode 100644 index 44aa72b612..0000000000 --- a/src/management/api/resources/riskAssessments/resources/settings/client/Client.ts +++ /dev/null @@ -1,217 +0,0 @@ -// This file was auto-generated by Fern from our API Definition. - -import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; -import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; -import * as errors from "../../../../../../errors/index.js"; -import { NewDevice } from "../resources/newDevice/client/Client.js"; - -export declare namespace Settings { - export interface Options extends BaseClientOptions {} - - export interface RequestOptions extends BaseRequestOptions {} -} - -export class Settings { - protected readonly _options: Settings.Options; - protected _newDevice: NewDevice | undefined; - - constructor(_options: Settings.Options) { - this._options = _options; - } - - public get newDevice(): NewDevice { - return (this._newDevice ??= new NewDevice(this._options)); - } - - /** - * Gets the tenant settings for risk assessments - * - * @param {Settings.RequestOptions} requestOptions - Request-specific configuration. - * - * @throws {@link Management.UnauthorizedError} - * @throws {@link Management.ForbiddenError} - * @throws {@link Management.NotFoundError} - * @throws {@link Management.TooManyRequestsError} - * - * @example - * await client.riskAssessments.settings.get() - */ - public get( - requestOptions?: Settings.RequestOptions, - ): core.HttpResponsePromise { - return core.HttpResponsePromise.fromPromise(this.__get(requestOptions)); - } - - private async __get( - requestOptions?: Settings.RequestOptions, - ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( - this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), - requestOptions?.headers, - ); - const _response = await (this._options.fetcher ?? core.fetcher)({ - url: core.url.join( - (await core.Supplier.get(this._options.baseUrl)) ?? - (await core.Supplier.get(this._options.environment)) ?? - environments.ManagementEnvironment.Default, - "risk-assessments/settings", - ), - method: "GET", - headers: _headers, - queryParameters: requestOptions?.queryParams, - timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, - maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, - abortSignal: requestOptions?.abortSignal, - fetchFn: this._options?.fetch, - }); - if (_response.ok) { - return { - data: _response.body as Management.GetRiskAssessmentsSettingsResponseContent, - rawResponse: _response.rawResponse, - }; - } - - if (_response.error.reason === "status-code") { - switch (_response.error.statusCode) { - case 401: - throw new Management.UnauthorizedError(_response.error.body as unknown, _response.rawResponse); - case 403: - throw new Management.ForbiddenError(_response.error.body as unknown, _response.rawResponse); - case 404: - throw new Management.NotFoundError(_response.error.body as unknown, _response.rawResponse); - case 429: - throw new Management.TooManyRequestsError(_response.error.body as unknown, _response.rawResponse); - default: - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.body, - rawResponse: _response.rawResponse, - }); - } - } - - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /risk-assessments/settings.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - /** - * Updates the tenant settings for risk assessments - * - * @param {Management.UpdateRiskAssessmentsSettingsRequestContent} request - * @param {Settings.RequestOptions} requestOptions - Request-specific configuration. - * - * @throws {@link Management.BadRequestError} - * @throws {@link Management.UnauthorizedError} - * @throws {@link Management.ForbiddenError} - * @throws {@link Management.NotFoundError} - * @throws {@link Management.TooManyRequestsError} - * - * @example - * await client.riskAssessments.settings.update({ - * enabled: true - * }) - */ - public update( - request: Management.UpdateRiskAssessmentsSettingsRequestContent, - requestOptions?: Settings.RequestOptions, - ): core.HttpResponsePromise { - return core.HttpResponsePromise.fromPromise(this.__update(request, requestOptions)); - } - - private async __update( - request: Management.UpdateRiskAssessmentsSettingsRequestContent, - requestOptions?: Settings.RequestOptions, - ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( - this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), - requestOptions?.headers, - ); - const _response = await (this._options.fetcher ?? core.fetcher)({ - url: core.url.join( - (await core.Supplier.get(this._options.baseUrl)) ?? - (await core.Supplier.get(this._options.environment)) ?? - environments.ManagementEnvironment.Default, - "risk-assessments/settings", - ), - method: "PATCH", - headers: _headers, - contentType: "application/json", - queryParameters: requestOptions?.queryParams, - requestType: "json", - body: request, - timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, - maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, - abortSignal: requestOptions?.abortSignal, - fetchFn: this._options?.fetch, - }); - if (_response.ok) { - return { - data: _response.body as Management.UpdateRiskAssessmentsSettingsResponseContent, - rawResponse: _response.rawResponse, - }; - } - - if (_response.error.reason === "status-code") { - switch (_response.error.statusCode) { - case 400: - throw new Management.BadRequestError(_response.error.body as unknown, _response.rawResponse); - case 401: - throw new Management.UnauthorizedError(_response.error.body as unknown, _response.rawResponse); - case 403: - throw new Management.ForbiddenError(_response.error.body as unknown, _response.rawResponse); - case 404: - throw new Management.NotFoundError(_response.error.body as unknown, _response.rawResponse); - case 429: - throw new Management.TooManyRequestsError(_response.error.body as unknown, _response.rawResponse); - default: - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.body, - rawResponse: _response.rawResponse, - }); - } - } - - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling PATCH /risk-assessments/settings.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; - } -} diff --git a/src/management/api/resources/riskAssessments/resources/settings/client/index.ts b/src/management/api/resources/riskAssessments/resources/settings/client/index.ts deleted file mode 100644 index cb0ff5c3b5..0000000000 --- a/src/management/api/resources/riskAssessments/resources/settings/client/index.ts +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/src/management/api/resources/riskAssessments/resources/settings/index.ts b/src/management/api/resources/riskAssessments/resources/settings/index.ts deleted file mode 100644 index 9eb1192dcc..0000000000 --- a/src/management/api/resources/riskAssessments/resources/settings/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./client/index.js"; -export * from "./resources/index.js"; diff --git a/src/management/api/resources/riskAssessments/resources/settings/resources/index.ts b/src/management/api/resources/riskAssessments/resources/settings/resources/index.ts deleted file mode 100644 index 498387fab5..0000000000 --- a/src/management/api/resources/riskAssessments/resources/settings/resources/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * as newDevice from "./newDevice/index.js"; diff --git a/src/management/api/resources/riskAssessments/resources/settings/resources/newDevice/client/Client.ts b/src/management/api/resources/riskAssessments/resources/settings/resources/newDevice/client/Client.ts deleted file mode 100644 index ab245f7513..0000000000 --- a/src/management/api/resources/riskAssessments/resources/settings/resources/newDevice/client/Client.ts +++ /dev/null @@ -1,211 +0,0 @@ -// This file was auto-generated by Fern from our API Definition. - -import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../../../BaseClient.js"; -import * as environments from "../../../../../../../../environments.js"; -import * as core from "../../../../../../../../core/index.js"; -import * as Management from "../../../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../../../core/headers.js"; -import * as errors from "../../../../../../../../errors/index.js"; - -export declare namespace NewDevice { - export interface Options extends BaseClientOptions {} - - export interface RequestOptions extends BaseRequestOptions {} -} - -export class NewDevice { - protected readonly _options: NewDevice.Options; - - constructor(_options: NewDevice.Options) { - this._options = _options; - } - - /** - * Gets the risk assessment settings for the new device assessor - * - * @param {NewDevice.RequestOptions} requestOptions - Request-specific configuration. - * - * @throws {@link Management.UnauthorizedError} - * @throws {@link Management.ForbiddenError} - * @throws {@link Management.NotFoundError} - * @throws {@link Management.TooManyRequestsError} - * - * @example - * await client.riskAssessments.settings.newDevice.get() - */ - public get( - requestOptions?: NewDevice.RequestOptions, - ): core.HttpResponsePromise { - return core.HttpResponsePromise.fromPromise(this.__get(requestOptions)); - } - - private async __get( - requestOptions?: NewDevice.RequestOptions, - ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( - this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), - requestOptions?.headers, - ); - const _response = await (this._options.fetcher ?? core.fetcher)({ - url: core.url.join( - (await core.Supplier.get(this._options.baseUrl)) ?? - (await core.Supplier.get(this._options.environment)) ?? - environments.ManagementEnvironment.Default, - "risk-assessments/settings/new-device", - ), - method: "GET", - headers: _headers, - queryParameters: requestOptions?.queryParams, - timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, - maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, - abortSignal: requestOptions?.abortSignal, - fetchFn: this._options?.fetch, - }); - if (_response.ok) { - return { - data: _response.body as Management.GetRiskAssessmentsSettingsNewDeviceResponseContent, - rawResponse: _response.rawResponse, - }; - } - - if (_response.error.reason === "status-code") { - switch (_response.error.statusCode) { - case 401: - throw new Management.UnauthorizedError(_response.error.body as unknown, _response.rawResponse); - case 403: - throw new Management.ForbiddenError(_response.error.body as unknown, _response.rawResponse); - case 404: - throw new Management.NotFoundError(_response.error.body as unknown, _response.rawResponse); - case 429: - throw new Management.TooManyRequestsError(_response.error.body as unknown, _response.rawResponse); - default: - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.body, - rawResponse: _response.rawResponse, - }); - } - } - - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /risk-assessments/settings/new-device.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - /** - * Updates the risk assessment settings for the new device assessor - * - * @param {Management.UpdateRiskAssessmentsSettingsNewDeviceRequestContent} request - * @param {NewDevice.RequestOptions} requestOptions - Request-specific configuration. - * - * @throws {@link Management.BadRequestError} - * @throws {@link Management.UnauthorizedError} - * @throws {@link Management.ForbiddenError} - * @throws {@link Management.NotFoundError} - * @throws {@link Management.TooManyRequestsError} - * - * @example - * await client.riskAssessments.settings.newDevice.update({ - * remember_for: 1 - * }) - */ - public update( - request: Management.UpdateRiskAssessmentsSettingsNewDeviceRequestContent, - requestOptions?: NewDevice.RequestOptions, - ): core.HttpResponsePromise { - return core.HttpResponsePromise.fromPromise(this.__update(request, requestOptions)); - } - - private async __update( - request: Management.UpdateRiskAssessmentsSettingsNewDeviceRequestContent, - requestOptions?: NewDevice.RequestOptions, - ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( - this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), - requestOptions?.headers, - ); - const _response = await (this._options.fetcher ?? core.fetcher)({ - url: core.url.join( - (await core.Supplier.get(this._options.baseUrl)) ?? - (await core.Supplier.get(this._options.environment)) ?? - environments.ManagementEnvironment.Default, - "risk-assessments/settings/new-device", - ), - method: "PATCH", - headers: _headers, - contentType: "application/json", - queryParameters: requestOptions?.queryParams, - requestType: "json", - body: request, - timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, - maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, - abortSignal: requestOptions?.abortSignal, - fetchFn: this._options?.fetch, - }); - if (_response.ok) { - return { - data: _response.body as Management.UpdateRiskAssessmentsSettingsNewDeviceResponseContent, - rawResponse: _response.rawResponse, - }; - } - - if (_response.error.reason === "status-code") { - switch (_response.error.statusCode) { - case 400: - throw new Management.BadRequestError(_response.error.body as unknown, _response.rawResponse); - case 401: - throw new Management.UnauthorizedError(_response.error.body as unknown, _response.rawResponse); - case 403: - throw new Management.ForbiddenError(_response.error.body as unknown, _response.rawResponse); - case 404: - throw new Management.NotFoundError(_response.error.body as unknown, _response.rawResponse); - case 429: - throw new Management.TooManyRequestsError(_response.error.body as unknown, _response.rawResponse); - default: - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.body, - rawResponse: _response.rawResponse, - }); - } - } - - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling PATCH /risk-assessments/settings/new-device.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; - } -} diff --git a/src/management/api/resources/riskAssessments/resources/settings/resources/newDevice/client/index.ts b/src/management/api/resources/riskAssessments/resources/settings/resources/newDevice/client/index.ts deleted file mode 100644 index cb0ff5c3b5..0000000000 --- a/src/management/api/resources/riskAssessments/resources/settings/resources/newDevice/client/index.ts +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/src/management/api/resources/riskAssessments/resources/settings/resources/newDevice/index.ts b/src/management/api/resources/riskAssessments/resources/settings/resources/newDevice/index.ts deleted file mode 100644 index 914b8c3c72..0000000000 --- a/src/management/api/resources/riskAssessments/resources/settings/resources/newDevice/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./client/index.js"; diff --git a/src/management/api/resources/roles/client/Client.ts b/src/management/api/resources/roles/client/Client.ts index 1896ced357..8b246b5d7f 100644 --- a/src/management/api/resources/roles/client/Client.ts +++ b/src/management/api/resources/roles/client/Client.ts @@ -1,35 +1,37 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../BaseClient.js"; -import * as environments from "../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../core/headers.js"; import * as core from "../../../../core/index.js"; -import * as Management from "../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../core/headers.js"; +import * as environments from "../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../errors/index.js"; -import { Permissions } from "../resources/permissions/client/Client.js"; -import { Users } from "../resources/users/client/Client.js"; +import * as Management from "../../../index.js"; +import { PermissionsClient } from "../resources/permissions/client/Client.js"; +import { UsersClient } from "../resources/users/client/Client.js"; -export declare namespace Roles { +export declare namespace RolesClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Roles { - protected readonly _options: Roles.Options; - protected _permissions: Permissions | undefined; - protected _users: Users | undefined; +export class RolesClient { + protected readonly _options: NormalizedClientOptionsWithAuth; + protected _permissions: PermissionsClient | undefined; + protected _users: UsersClient | undefined; - constructor(_options: Roles.Options) { - this._options = _options; + constructor(options: RolesClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } - public get permissions(): Permissions { - return (this._permissions ??= new Permissions(this._options)); + public get permissions(): PermissionsClient { + return (this._permissions ??= new PermissionsClient(this._options)); } - public get users(): Users { - return (this._users ??= new Users(this._options)); + public get users(): UsersClient { + return (this._users ??= new UsersClient(this._options)); } /** @@ -38,7 +40,7 @@ export class Roles { * Note: The returned list does not include standard roles available for tenant members, such as Admin or Support Access. * * @param {Management.ListRolesRequestParameters} request - * @param {Roles.RequestOptions} requestOptions - Request-specific configuration. + * @param {RolesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -55,34 +57,40 @@ export class Roles { */ public async list( request: Management.ListRolesRequestParameters = {}, - requestOptions?: Roles.RequestOptions, + requestOptions?: RolesClient.RequestOptions, ): Promise> { const list = core.HttpResponsePromise.interceptFunction( async ( request: Management.ListRolesRequestParameters, ): Promise> => { + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:roles"] }], + }; const { per_page: perPage = 50, - page = 0, + page, include_totals: includeTotals = true, name_filter: nameFilter, } = request; const _queryParams: Record = {}; if (perPage !== undefined) { - _queryParams["per_page"] = perPage?.toString() ?? null; + _queryParams.per_page = perPage?.toString() ?? null; } if (page !== undefined) { - _queryParams["page"] = page?.toString() ?? null; + _queryParams.page = page?.toString() ?? null; } if (includeTotals !== undefined) { - _queryParams["include_totals"] = includeTotals?.toString() ?? null; + _queryParams.include_totals = includeTotals?.toString() ?? null; } if (nameFilter !== undefined) { - _queryParams["name_filter"] = nameFilter; + _queryParams.name_filter = nameFilter; } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -98,7 +106,9 @@ export class Roles { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -133,32 +143,18 @@ export class Roles { }); } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /roles."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/roles"); }, ); - let _offset = request?.page != null ? request?.page : 0; + let _offset = request?.page != null ? request?.page : 1; const dataWithRawResponse = await list(request).withRawResponse(); return new core.Page({ response: dataWithRawResponse.data, rawResponse: dataWithRawResponse.rawResponse, - hasNextPage: (response) => (response?.roles ?? []).length >= (request?.per_page ?? 1), + hasNextPage: (response) => (response?.roles ?? []).length > 0, getItems: (response) => response?.roles ?? [], - loadPage: (response) => { - _offset += response?.roles != null ? response.roles.length : 1; + loadPage: (_response) => { + _offset += 1; return list(core.setObjectProperty(request, "page", _offset)); }, }); @@ -170,7 +166,7 @@ export class Roles { * Note: New roles are not associated with any permissions by default. To assign existing permissions to your role, review Associate Permissions with a Role. To create new permissions, review Add API Permissions. * * @param {Management.CreateRoleRequestContent} request - * @param {Roles.RequestOptions} requestOptions - Request-specific configuration. + * @param {RolesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -184,18 +180,24 @@ export class Roles { */ public create( request: Management.CreateRoleRequestContent, - requestOptions?: Roles.RequestOptions, + requestOptions?: RolesClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__create(request, requestOptions)); } private async __create( request: Management.CreateRoleRequestContent, - requestOptions?: Roles.RequestOptions, + requestOptions?: RolesClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["create:roles"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -214,7 +216,9 @@ export class Roles { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: _response.body as Management.CreateRoleResponseContent, rawResponse: _response.rawResponse }; @@ -239,28 +243,14 @@ export class Roles { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling POST /roles."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/roles"); } /** * Retrieve details about a specific user role specified by ID. * * @param {string} id - ID of the role to retrieve. - * @param {Roles.RequestOptions} requestOptions - Request-specific configuration. + * @param {RolesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -273,18 +263,24 @@ export class Roles { */ public get( id: string, - requestOptions?: Roles.RequestOptions, + requestOptions?: RolesClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__get(id, requestOptions)); } private async __get( id: string, - requestOptions?: Roles.RequestOptions, + requestOptions?: RolesClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:roles"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -300,7 +296,9 @@ export class Roles { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: _response.body as Management.GetRoleResponseContent, rawResponse: _response.rawResponse }; @@ -327,28 +325,14 @@ export class Roles { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /roles/{id}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/roles/{id}"); } /** * Delete a specific user role from your tenant. Once deleted, it is removed from any user who was previously assigned that role. This action cannot be undone. * * @param {string} id - ID of the role to delete. - * @param {Roles.RequestOptions} requestOptions - Request-specific configuration. + * @param {RolesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -359,14 +343,23 @@ export class Roles { * @example * await client.roles.delete("id") */ - public delete(id: string, requestOptions?: Roles.RequestOptions): core.HttpResponsePromise { + public delete(id: string, requestOptions?: RolesClient.RequestOptions): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__delete(id, requestOptions)); } - private async __delete(id: string, requestOptions?: Roles.RequestOptions): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + private async __delete( + id: string, + requestOptions?: RolesClient.RequestOptions, + ): Promise> { + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["delete:roles"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -382,7 +375,9 @@ export class Roles { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -409,21 +404,7 @@ export class Roles { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling DELETE /roles/{id}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "DELETE", "/roles/{id}"); } /** @@ -431,7 +412,7 @@ export class Roles { * * @param {string} id - ID of the role to update. * @param {Management.UpdateRoleRequestContent} request - * @param {Roles.RequestOptions} requestOptions - Request-specific configuration. + * @param {RolesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -444,7 +425,7 @@ export class Roles { public update( id: string, request: Management.UpdateRoleRequestContent = {}, - requestOptions?: Roles.RequestOptions, + requestOptions?: RolesClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__update(id, request, requestOptions)); } @@ -452,11 +433,17 @@ export class Roles { private async __update( id: string, request: Management.UpdateRoleRequestContent = {}, - requestOptions?: Roles.RequestOptions, + requestOptions?: RolesClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:roles"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -475,7 +462,9 @@ export class Roles { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: _response.body as Management.UpdateRoleResponseContent, rawResponse: _response.rawResponse }; @@ -500,24 +489,6 @@ export class Roles { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling PATCH /roles/{id}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError(_response.error, _response.rawResponse, "PATCH", "/roles/{id}"); } } diff --git a/src/management/api/resources/roles/resources/permissions/client/Client.ts b/src/management/api/resources/roles/resources/permissions/client/Client.ts index 8bafa8176c..64d4a93d25 100644 --- a/src/management/api/resources/roles/resources/permissions/client/Client.ts +++ b/src/management/api/resources/roles/resources/permissions/client/Client.ts @@ -1,23 +1,25 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../core/headers.js"; import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; +import * as environments from "../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../errors/index.js"; +import * as Management from "../../../../../index.js"; -export declare namespace Permissions { +export declare namespace PermissionsClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Permissions { - protected readonly _options: Permissions.Options; +export class PermissionsClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: Permissions.Options) { - this._options = _options; + constructor(options: PermissionsClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** @@ -25,7 +27,7 @@ export class Permissions { * * @param {string} id - ID of the role to list granted permissions. * @param {Management.ListRolePermissionsRequestParameters} request - * @param {Permissions.RequestOptions} requestOptions - Request-specific configuration. + * @param {PermissionsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -43,7 +45,7 @@ export class Permissions { public async list( id: string, request: Management.ListRolePermissionsRequestParameters = {}, - requestOptions?: Permissions.RequestOptions, + requestOptions?: PermissionsClient.RequestOptions, ): Promise< core.Page > { @@ -51,20 +53,26 @@ export class Permissions { async ( request: Management.ListRolePermissionsRequestParameters, ): Promise> => { - const { per_page: perPage = 50, page = 0, include_totals: includeTotals = true } = request; + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:roles"] }], + }; + const { per_page: perPage = 50, page, include_totals: includeTotals = true } = request; const _queryParams: Record = {}; if (perPage !== undefined) { - _queryParams["per_page"] = perPage?.toString() ?? null; + _queryParams.per_page = perPage?.toString() ?? null; } if (page !== undefined) { - _queryParams["page"] = page?.toString() ?? null; + _queryParams.page = page?.toString() ?? null; } if (includeTotals !== undefined) { - _queryParams["include_totals"] = includeTotals?.toString() ?? null; + _queryParams.include_totals = includeTotals?.toString() ?? null; } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -80,7 +88,9 @@ export class Permissions { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -117,26 +127,15 @@ export class Permissions { }); } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /roles/{id}/permissions.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "GET", + "/roles/{id}/permissions", + ); }, ); - let _offset = request?.page != null ? request?.page : 0; + let _offset = request?.page != null ? request?.page : 1; const dataWithRawResponse = await list(request).withRawResponse(); return new core.Page< Management.PermissionsResponsePayload, @@ -144,10 +143,10 @@ export class Permissions { >({ response: dataWithRawResponse.data, rawResponse: dataWithRawResponse.rawResponse, - hasNextPage: (response) => (response?.permissions ?? []).length >= (request?.per_page ?? 1), + hasNextPage: (response) => (response?.permissions ?? []).length > 0, getItems: (response) => response?.permissions ?? [], - loadPage: (response) => { - _offset += response?.permissions != null ? response.permissions.length : 1; + loadPage: (_response) => { + _offset += 1; return list(core.setObjectProperty(request, "page", _offset)); }, }); @@ -158,7 +157,7 @@ export class Permissions { * * @param {string} id - ID of the role to add permissions to. * @param {Management.AddRolePermissionsRequestContent} request - * @param {Permissions.RequestOptions} requestOptions - Request-specific configuration. + * @param {PermissionsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -176,7 +175,7 @@ export class Permissions { public add( id: string, request: Management.AddRolePermissionsRequestContent, - requestOptions?: Permissions.RequestOptions, + requestOptions?: PermissionsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__add(id, request, requestOptions)); } @@ -184,11 +183,17 @@ export class Permissions { private async __add( id: string, request: Management.AddRolePermissionsRequestContent, - requestOptions?: Permissions.RequestOptions, + requestOptions?: PermissionsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:roles"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -207,7 +212,9 @@ export class Permissions { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -232,21 +239,7 @@ export class Permissions { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling POST /roles/{id}/permissions."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/roles/{id}/permissions"); } /** @@ -254,7 +247,7 @@ export class Permissions { * * @param {string} id - ID of the role to remove permissions from. * @param {Management.DeleteRolePermissionsRequestContent} request - * @param {Permissions.RequestOptions} requestOptions - Request-specific configuration. + * @param {PermissionsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -272,7 +265,7 @@ export class Permissions { public delete( id: string, request: Management.DeleteRolePermissionsRequestContent, - requestOptions?: Permissions.RequestOptions, + requestOptions?: PermissionsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__delete(id, request, requestOptions)); } @@ -280,11 +273,17 @@ export class Permissions { private async __delete( id: string, request: Management.DeleteRolePermissionsRequestContent, - requestOptions?: Permissions.RequestOptions, + requestOptions?: PermissionsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:roles"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -303,7 +302,9 @@ export class Permissions { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -328,26 +329,6 @@ export class Permissions { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling DELETE /roles/{id}/permissions.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError(_response.error, _response.rawResponse, "DELETE", "/roles/{id}/permissions"); } } diff --git a/src/management/api/resources/roles/resources/users/client/Client.ts b/src/management/api/resources/roles/resources/users/client/Client.ts index 9200395657..e951a5666b 100644 --- a/src/management/api/resources/roles/resources/users/client/Client.ts +++ b/src/management/api/resources/roles/resources/users/client/Client.ts @@ -1,23 +1,25 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../core/headers.js"; import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; +import * as environments from "../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../errors/index.js"; +import * as Management from "../../../../../index.js"; -export declare namespace Users { +export declare namespace UsersClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Users { - protected readonly _options: Users.Options; +export class UsersClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: Users.Options) { - this._options = _options; + constructor(options: UsersClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** @@ -43,7 +45,7 @@ export class Users { * * @param {string} id - ID of the role to retrieve a list of users associated with. * @param {Management.ListRoleUsersRequestParameters} request - * @param {Users.RequestOptions} requestOptions - Request-specific configuration. + * @param {UsersClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -60,23 +62,32 @@ export class Users { public async list( id: string, request: Management.ListRoleUsersRequestParameters = {}, - requestOptions?: Users.RequestOptions, + requestOptions?: UsersClient.RequestOptions, ): Promise> { const list = core.HttpResponsePromise.interceptFunction( async ( request: Management.ListRoleUsersRequestParameters, ): Promise> => { + const _metadata: core.EndpointMetadata = { + security: [ + { bearerAuth: [] }, + { oAuth2ClientCredentials: ["read:users", "read:roles", "read:role_members"] }, + ], + }; const { from: from_, take = 50 } = request; const _queryParams: Record = {}; if (from_ !== undefined) { - _queryParams["from"] = from_; + _queryParams.from = from_; } if (take !== undefined) { - _queryParams["take"] = take?.toString() ?? null; + _queryParams.take = take?.toString() ?? null; } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -92,7 +103,9 @@ export class Users { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -129,21 +142,7 @@ export class Users { }); } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /roles/{id}/users."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/roles/{id}/users"); }, ); const dataWithRawResponse = await list(request).withRawResponse(); @@ -166,7 +165,7 @@ export class Users { * * @param {string} id - ID of the role to assign users to. * @param {Management.AssignRoleUsersRequestContent} request - * @param {Users.RequestOptions} requestOptions - Request-specific configuration. + * @param {UsersClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -182,7 +181,7 @@ export class Users { public assign( id: string, request: Management.AssignRoleUsersRequestContent, - requestOptions?: Users.RequestOptions, + requestOptions?: UsersClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__assign(id, request, requestOptions)); } @@ -190,11 +189,17 @@ export class Users { private async __assign( id: string, request: Management.AssignRoleUsersRequestContent, - requestOptions?: Users.RequestOptions, + requestOptions?: UsersClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:roles", "create:role_members"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -213,7 +218,9 @@ export class Users { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -240,24 +247,6 @@ export class Users { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling POST /roles/{id}/users."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/roles/{id}/users"); } } diff --git a/src/management/api/resources/rules/client/Client.ts b/src/management/api/resources/rules/client/Client.ts index 0550a34ef3..6f3177da42 100644 --- a/src/management/api/resources/rules/client/Client.ts +++ b/src/management/api/resources/rules/client/Client.ts @@ -1,30 +1,32 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../BaseClient.js"; -import * as environments from "../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../core/headers.js"; import * as core from "../../../../core/index.js"; -import * as Management from "../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../core/headers.js"; +import * as environments from "../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../errors/index.js"; +import * as Management from "../../../index.js"; -export declare namespace Rules { +export declare namespace RulesClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Rules { - protected readonly _options: Rules.Options; +export class RulesClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: Rules.Options) { - this._options = _options; + constructor(options: RulesClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** * Retrieve a filtered list of rules. Accepts a list of fields to include or exclude. * * @param {Management.ListRulesRequestParameters} request - * @param {Rules.RequestOptions} requestOptions - Request-specific configuration. + * @param {RulesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -44,14 +46,17 @@ export class Rules { */ public async list( request: Management.ListRulesRequestParameters = {}, - requestOptions?: Rules.RequestOptions, + requestOptions?: RulesClient.RequestOptions, ): Promise> { const list = core.HttpResponsePromise.interceptFunction( async ( request: Management.ListRulesRequestParameters, ): Promise> => { + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:rules"] }], + }; const { - page = 0, + page, per_page: perPage = 50, include_totals: includeTotals = true, enabled, @@ -60,26 +65,29 @@ export class Rules { } = request; const _queryParams: Record = {}; if (page !== undefined) { - _queryParams["page"] = page?.toString() ?? null; + _queryParams.page = page?.toString() ?? null; } if (perPage !== undefined) { - _queryParams["per_page"] = perPage?.toString() ?? null; + _queryParams.per_page = perPage?.toString() ?? null; } if (includeTotals !== undefined) { - _queryParams["include_totals"] = includeTotals?.toString() ?? null; + _queryParams.include_totals = includeTotals?.toString() ?? null; } if (enabled !== undefined) { - _queryParams["enabled"] = enabled?.toString() ?? null; + _queryParams.enabled = enabled?.toString() ?? null; } if (fields !== undefined) { - _queryParams["fields"] = fields; + _queryParams.fields = fields; } if (includeFields !== undefined) { - _queryParams["include_fields"] = includeFields?.toString() ?? null; + _queryParams.include_fields = includeFields?.toString() ?? null; } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -95,7 +103,9 @@ export class Rules { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -132,32 +142,18 @@ export class Rules { }); } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /rules."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/rules"); }, ); - let _offset = request?.page != null ? request?.page : 0; + let _offset = request?.page != null ? request?.page : 1; const dataWithRawResponse = await list(request).withRawResponse(); return new core.Page({ response: dataWithRawResponse.data, rawResponse: dataWithRawResponse.rawResponse, - hasNextPage: (response) => (response?.rules ?? []).length >= (request?.per_page ?? 1), + hasNextPage: (response) => (response?.rules ?? []).length > 0, getItems: (response) => response?.rules ?? [], - loadPage: (response) => { - _offset += response?.rules != null ? response.rules.length : 1; + loadPage: (_response) => { + _offset += 1; return list(core.setObjectProperty(request, "page", _offset)); }, }); @@ -169,7 +165,7 @@ export class Rules { * Note: Changing a rule's stage of execution from the default login_success can change the rule's function signature to have user omitted. * * @param {Management.CreateRuleRequestContent} request - * @param {Rules.RequestOptions} requestOptions - Request-specific configuration. + * @param {RulesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -185,18 +181,24 @@ export class Rules { */ public create( request: Management.CreateRuleRequestContent, - requestOptions?: Rules.RequestOptions, + requestOptions?: RulesClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__create(request, requestOptions)); } private async __create( request: Management.CreateRuleRequestContent, - requestOptions?: Rules.RequestOptions, + requestOptions?: RulesClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["create:rules"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -215,7 +217,9 @@ export class Rules { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: _response.body as Management.CreateRuleResponseContent, rawResponse: _response.rawResponse }; @@ -242,21 +246,7 @@ export class Rules { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling POST /rules."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/rules"); } /** @@ -264,7 +254,7 @@ export class Rules { * * @param {string} id - ID of the rule to retrieve. * @param {Management.GetRuleRequestParameters} request - * @param {Rules.RequestOptions} requestOptions - Request-specific configuration. + * @param {RulesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -281,7 +271,7 @@ export class Rules { public get( id: string, request: Management.GetRuleRequestParameters = {}, - requestOptions?: Rules.RequestOptions, + requestOptions?: RulesClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__get(id, request, requestOptions)); } @@ -289,21 +279,27 @@ export class Rules { private async __get( id: string, request: Management.GetRuleRequestParameters = {}, - requestOptions?: Rules.RequestOptions, + requestOptions?: RulesClient.RequestOptions, ): Promise> { + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:rules"] }], + }; const { fields, include_fields: includeFields } = request; const _queryParams: Record = {}; if (fields !== undefined) { - _queryParams["fields"] = fields; + _queryParams.fields = fields; } if (includeFields !== undefined) { - _queryParams["include_fields"] = includeFields?.toString() ?? null; + _queryParams.include_fields = includeFields?.toString() ?? null; } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -319,7 +315,9 @@ export class Rules { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: _response.body as Management.GetRuleResponseContent, rawResponse: _response.rawResponse }; @@ -346,28 +344,14 @@ export class Rules { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /rules/{id}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/rules/{id}"); } /** * Delete a rule. * * @param {string} id - ID of the rule to delete. - * @param {Rules.RequestOptions} requestOptions - Request-specific configuration. + * @param {RulesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -377,14 +361,23 @@ export class Rules { * @example * await client.rules.delete("id") */ - public delete(id: string, requestOptions?: Rules.RequestOptions): core.HttpResponsePromise { + public delete(id: string, requestOptions?: RulesClient.RequestOptions): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__delete(id, requestOptions)); } - private async __delete(id: string, requestOptions?: Rules.RequestOptions): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + private async __delete( + id: string, + requestOptions?: RulesClient.RequestOptions, + ): Promise> { + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["delete:rules"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -400,7 +393,9 @@ export class Rules { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -425,21 +420,7 @@ export class Rules { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling DELETE /rules/{id}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "DELETE", "/rules/{id}"); } /** @@ -447,7 +428,7 @@ export class Rules { * * @param {string} id - ID of the rule to retrieve. * @param {Management.UpdateRuleRequestContent} request - * @param {Rules.RequestOptions} requestOptions - Request-specific configuration. + * @param {RulesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -462,7 +443,7 @@ export class Rules { public update( id: string, request: Management.UpdateRuleRequestContent = {}, - requestOptions?: Rules.RequestOptions, + requestOptions?: RulesClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__update(id, request, requestOptions)); } @@ -470,11 +451,17 @@ export class Rules { private async __update( id: string, request: Management.UpdateRuleRequestContent = {}, - requestOptions?: Rules.RequestOptions, + requestOptions?: RulesClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:rules"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -493,7 +480,9 @@ export class Rules { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: _response.body as Management.UpdateRuleResponseContent, rawResponse: _response.rawResponse }; @@ -522,24 +511,6 @@ export class Rules { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling PATCH /rules/{id}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError(_response.error, _response.rawResponse, "PATCH", "/rules/{id}"); } } diff --git a/src/management/api/resources/rulesConfigs/client/Client.ts b/src/management/api/resources/rulesConfigs/client/Client.ts index 89f5938f81..6113e76a7f 100644 --- a/src/management/api/resources/rulesConfigs/client/Client.ts +++ b/src/management/api/resources/rulesConfigs/client/Client.ts @@ -1,23 +1,25 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../BaseClient.js"; -import * as environments from "../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../core/headers.js"; import * as core from "../../../../core/index.js"; -import * as Management from "../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../core/headers.js"; +import * as environments from "../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../errors/index.js"; +import * as Management from "../../../index.js"; -export declare namespace RulesConfigs { +export declare namespace RulesConfigsClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class RulesConfigs { - protected readonly _options: RulesConfigs.Options; +export class RulesConfigsClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: RulesConfigs.Options) { - this._options = _options; + constructor(options: RulesConfigsClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** @@ -25,7 +27,7 @@ export class RulesConfigs { * * Note: For security, config variable values cannot be retrieved outside rule execution. * - * @param {RulesConfigs.RequestOptions} requestOptions - Request-specific configuration. + * @param {RulesConfigsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.UnauthorizedError} * @throws {@link Management.ForbiddenError} @@ -34,16 +36,24 @@ export class RulesConfigs { * @example * await client.rulesConfigs.list() */ - public list(requestOptions?: RulesConfigs.RequestOptions): core.HttpResponsePromise { + public list( + requestOptions?: RulesConfigsClient.RequestOptions, + ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__list(requestOptions)); } private async __list( - requestOptions?: RulesConfigs.RequestOptions, + requestOptions?: RulesConfigsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:rules_configs"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -59,7 +69,9 @@ export class RulesConfigs { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: _response.body as Management.RulesConfig[], rawResponse: _response.rawResponse }; @@ -82,21 +94,7 @@ export class RulesConfigs { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /rules-configs."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/rules-configs"); } /** @@ -104,7 +102,7 @@ export class RulesConfigs { * * @param {string} key - Key of the rules config variable to set (max length: 127 characters). * @param {Management.SetRulesConfigRequestContent} request - * @param {RulesConfigs.RequestOptions} requestOptions - Request-specific configuration. + * @param {RulesConfigsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.UnauthorizedError} * @throws {@link Management.ForbiddenError} @@ -118,7 +116,7 @@ export class RulesConfigs { public set( key: string, request: Management.SetRulesConfigRequestContent, - requestOptions?: RulesConfigs.RequestOptions, + requestOptions?: RulesConfigsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__set(key, request, requestOptions)); } @@ -126,11 +124,17 @@ export class RulesConfigs { private async __set( key: string, request: Management.SetRulesConfigRequestContent, - requestOptions?: RulesConfigs.RequestOptions, + requestOptions?: RulesConfigsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:rules_configs"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -149,7 +153,9 @@ export class RulesConfigs { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -175,28 +181,14 @@ export class RulesConfigs { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling PUT /rules-configs/{key}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "PUT", "/rules-configs/{key}"); } /** * Delete a rules config variable identified by its key. * * @param {string} key - Key of the rules config variable to delete. - * @param {RulesConfigs.RequestOptions} requestOptions - Request-specific configuration. + * @param {RulesConfigsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.UnauthorizedError} * @throws {@link Management.ForbiddenError} @@ -205,17 +197,23 @@ export class RulesConfigs { * @example * await client.rulesConfigs.delete("key") */ - public delete(key: string, requestOptions?: RulesConfigs.RequestOptions): core.HttpResponsePromise { + public delete(key: string, requestOptions?: RulesConfigsClient.RequestOptions): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__delete(key, requestOptions)); } private async __delete( key: string, - requestOptions?: RulesConfigs.RequestOptions, + requestOptions?: RulesConfigsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["delete:rules_configs"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -231,7 +229,9 @@ export class RulesConfigs { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -254,24 +254,6 @@ export class RulesConfigs { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling DELETE /rules-configs/{key}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError(_response.error, _response.rawResponse, "DELETE", "/rules-configs/{key}"); } } diff --git a/src/management/api/resources/selfServiceProfiles/client/Client.ts b/src/management/api/resources/selfServiceProfiles/client/Client.ts index 69dea0ae38..df3e56e7ac 100644 --- a/src/management/api/resources/selfServiceProfiles/client/Client.ts +++ b/src/management/api/resources/selfServiceProfiles/client/Client.ts @@ -1,42 +1,44 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../BaseClient.js"; -import * as environments from "../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../core/headers.js"; import * as core from "../../../../core/index.js"; -import * as Management from "../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../core/headers.js"; +import * as environments from "../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../errors/index.js"; -import { CustomText } from "../resources/customText/client/Client.js"; -import { SsoTicket } from "../resources/ssoTicket/client/Client.js"; +import * as Management from "../../../index.js"; +import { CustomTextClient } from "../resources/customText/client/Client.js"; +import { SsoTicketClient } from "../resources/ssoTicket/client/Client.js"; -export declare namespace SelfServiceProfiles { +export declare namespace SelfServiceProfilesClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class SelfServiceProfiles { - protected readonly _options: SelfServiceProfiles.Options; - protected _customText: CustomText | undefined; - protected _ssoTicket: SsoTicket | undefined; +export class SelfServiceProfilesClient { + protected readonly _options: NormalizedClientOptionsWithAuth; + protected _customText: CustomTextClient | undefined; + protected _ssoTicket: SsoTicketClient | undefined; - constructor(_options: SelfServiceProfiles.Options) { - this._options = _options; + constructor(options: SelfServiceProfilesClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } - public get customText(): CustomText { - return (this._customText ??= new CustomText(this._options)); + public get customText(): CustomTextClient { + return (this._customText ??= new CustomTextClient(this._options)); } - public get ssoTicket(): SsoTicket { - return (this._ssoTicket ??= new SsoTicket(this._options)); + public get ssoTicket(): SsoTicketClient { + return (this._ssoTicket ??= new SsoTicketClient(this._options)); } /** * Retrieves self-service profiles. * * @param {Management.ListSelfServiceProfilesRequestParameters} request - * @param {SelfServiceProfiles.RequestOptions} requestOptions - Request-specific configuration. + * @param {SelfServiceProfilesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.UnauthorizedError} * @throws {@link Management.ForbiddenError} @@ -52,26 +54,32 @@ export class SelfServiceProfiles { */ public async list( request: Management.ListSelfServiceProfilesRequestParameters = {}, - requestOptions?: SelfServiceProfiles.RequestOptions, + requestOptions?: SelfServiceProfilesClient.RequestOptions, ): Promise> { const list = core.HttpResponsePromise.interceptFunction( async ( request: Management.ListSelfServiceProfilesRequestParameters, ): Promise> => { - const { page = 0, per_page: perPage = 50, include_totals: includeTotals = true } = request; + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:self_service_profiles"] }], + }; + const { page, per_page: perPage = 50, include_totals: includeTotals = true } = request; const _queryParams: Record = {}; if (page !== undefined) { - _queryParams["page"] = page?.toString() ?? null; + _queryParams.page = page?.toString() ?? null; } if (perPage !== undefined) { - _queryParams["per_page"] = perPage?.toString() ?? null; + _queryParams.per_page = perPage?.toString() ?? null; } if (includeTotals !== undefined) { - _queryParams["include_totals"] = includeTotals?.toString() ?? null; + _queryParams.include_totals = includeTotals?.toString() ?? null; } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -87,7 +95,9 @@ export class SelfServiceProfiles { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -122,35 +132,24 @@ export class SelfServiceProfiles { }); } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /self-service-profiles.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "GET", + "/self-service-profiles", + ); }, ); - let _offset = request?.page != null ? request?.page : 0; + let _offset = request?.page != null ? request?.page : 1; const dataWithRawResponse = await list(request).withRawResponse(); return new core.Page( { response: dataWithRawResponse.data, rawResponse: dataWithRawResponse.rawResponse, - hasNextPage: (response) => (response?.self_service_profiles ?? []).length >= (request?.per_page ?? 1), + hasNextPage: (response) => (response?.self_service_profiles ?? []).length > 0, getItems: (response) => response?.self_service_profiles ?? [], - loadPage: (response) => { - _offset += response?.self_service_profiles != null ? response.self_service_profiles.length : 1; + loadPage: (_response) => { + _offset += 1; return list(core.setObjectProperty(request, "page", _offset)); }, }, @@ -161,7 +160,7 @@ export class SelfServiceProfiles { * Creates a self-service profile. * * @param {Management.CreateSelfServiceProfileRequestContent} request - * @param {SelfServiceProfiles.RequestOptions} requestOptions - Request-specific configuration. + * @param {SelfServiceProfilesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -177,18 +176,24 @@ export class SelfServiceProfiles { */ public create( request: Management.CreateSelfServiceProfileRequestContent, - requestOptions?: SelfServiceProfiles.RequestOptions, + requestOptions?: SelfServiceProfilesClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__create(request, requestOptions)); } private async __create( request: Management.CreateSelfServiceProfileRequestContent, - requestOptions?: SelfServiceProfiles.RequestOptions, + requestOptions?: SelfServiceProfilesClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["create:self_service_profiles"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -207,7 +212,9 @@ export class SelfServiceProfiles { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -239,28 +246,14 @@ export class SelfServiceProfiles { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling POST /self-service-profiles."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/self-service-profiles"); } /** * Retrieves a self-service profile by Id. * * @param {string} id - The id of the self-service profile to retrieve - * @param {SelfServiceProfiles.RequestOptions} requestOptions - Request-specific configuration. + * @param {SelfServiceProfilesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -274,18 +267,24 @@ export class SelfServiceProfiles { */ public get( id: string, - requestOptions?: SelfServiceProfiles.RequestOptions, + requestOptions?: SelfServiceProfilesClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__get(id, requestOptions)); } private async __get( id: string, - requestOptions?: SelfServiceProfiles.RequestOptions, + requestOptions?: SelfServiceProfilesClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:self_service_profiles"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -301,7 +300,9 @@ export class SelfServiceProfiles { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -333,30 +334,14 @@ export class SelfServiceProfiles { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /self-service-profiles/{id}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/self-service-profiles/{id}"); } /** * Deletes a self-service profile by Id. * * @param {string} id - The id of the self-service profile to delete - * @param {SelfServiceProfiles.RequestOptions} requestOptions - Request-specific configuration. + * @param {SelfServiceProfilesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -367,17 +352,26 @@ export class SelfServiceProfiles { * @example * await client.selfServiceProfiles.delete("id") */ - public delete(id: string, requestOptions?: SelfServiceProfiles.RequestOptions): core.HttpResponsePromise { + public delete( + id: string, + requestOptions?: SelfServiceProfilesClient.RequestOptions, + ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__delete(id, requestOptions)); } private async __delete( id: string, - requestOptions?: SelfServiceProfiles.RequestOptions, + requestOptions?: SelfServiceProfilesClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["delete:self_service_profiles"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -393,7 +387,9 @@ export class SelfServiceProfiles { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -420,23 +416,12 @@ export class SelfServiceProfiles { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling DELETE /self-service-profiles/{id}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "DELETE", + "/self-service-profiles/{id}", + ); } /** @@ -444,7 +429,7 @@ export class SelfServiceProfiles { * * @param {string} id - The id of the self-service profile to update * @param {Management.UpdateSelfServiceProfileRequestContent} request - * @param {SelfServiceProfiles.RequestOptions} requestOptions - Request-specific configuration. + * @param {SelfServiceProfilesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -459,7 +444,7 @@ export class SelfServiceProfiles { public update( id: string, request: Management.UpdateSelfServiceProfileRequestContent = {}, - requestOptions?: SelfServiceProfiles.RequestOptions, + requestOptions?: SelfServiceProfilesClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__update(id, request, requestOptions)); } @@ -467,11 +452,17 @@ export class SelfServiceProfiles { private async __update( id: string, request: Management.UpdateSelfServiceProfileRequestContent = {}, - requestOptions?: SelfServiceProfiles.RequestOptions, + requestOptions?: SelfServiceProfilesClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:self_service_profiles"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -490,7 +481,9 @@ export class SelfServiceProfiles { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -522,26 +515,6 @@ export class SelfServiceProfiles { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling PATCH /self-service-profiles/{id}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError(_response.error, _response.rawResponse, "PATCH", "/self-service-profiles/{id}"); } } diff --git a/src/management/api/resources/selfServiceProfiles/resources/customText/client/Client.ts b/src/management/api/resources/selfServiceProfiles/resources/customText/client/Client.ts index 890f93fdf3..c1720f9435 100644 --- a/src/management/api/resources/selfServiceProfiles/resources/customText/client/Client.ts +++ b/src/management/api/resources/selfServiceProfiles/resources/customText/client/Client.ts @@ -1,23 +1,25 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../core/headers.js"; import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; +import * as environments from "../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../errors/index.js"; +import * as Management from "../../../../../index.js"; -export declare namespace CustomText { +export declare namespace CustomTextClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class CustomText { - protected readonly _options: CustomText.Options; +export class CustomTextClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: CustomText.Options) { - this._options = _options; + constructor(options: CustomTextClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** @@ -26,7 +28,7 @@ export class CustomText { * @param {string} id - The id of the self-service profile. * @param {Management.SelfServiceProfileCustomTextLanguageEnum} language - The language of the custom text. * @param {Management.SelfServiceProfileCustomTextPageEnum} page - The page where the custom text is shown. - * @param {CustomText.RequestOptions} requestOptions - Request-specific configuration. + * @param {CustomTextClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.UnauthorizedError} * @throws {@link Management.ForbiddenError} @@ -40,7 +42,7 @@ export class CustomText { id: string, language: Management.SelfServiceProfileCustomTextLanguageEnum, page: Management.SelfServiceProfileCustomTextPageEnum, - requestOptions?: CustomText.RequestOptions, + requestOptions?: CustomTextClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__list(id, language, page, requestOptions)); } @@ -49,11 +51,17 @@ export class CustomText { id: string, language: Management.SelfServiceProfileCustomTextLanguageEnum, page: Management.SelfServiceProfileCustomTextPageEnum, - requestOptions?: CustomText.RequestOptions, + requestOptions?: CustomTextClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:self_service_profile_custom_texts"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -69,7 +77,9 @@ export class CustomText { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -97,23 +107,12 @@ export class CustomText { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /self-service-profiles/{id}/custom-text/{language}/{page}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "GET", + "/self-service-profiles/{id}/custom-text/{language}/{page}", + ); } /** @@ -123,7 +122,7 @@ export class CustomText { * @param {Management.SelfServiceProfileCustomTextLanguageEnum} language - The language of the custom text. * @param {Management.SelfServiceProfileCustomTextPageEnum} page - The page where the custom text is shown. * @param {Management.SetSelfServiceProfileCustomTextRequestContent} request - * @param {CustomText.RequestOptions} requestOptions - Request-specific configuration. + * @param {CustomTextClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.UnauthorizedError} * @throws {@link Management.ForbiddenError} @@ -140,7 +139,7 @@ export class CustomText { language: Management.SelfServiceProfileCustomTextLanguageEnum, page: Management.SelfServiceProfileCustomTextPageEnum, request: Management.SetSelfServiceProfileCustomTextRequestContent, - requestOptions?: CustomText.RequestOptions, + requestOptions?: CustomTextClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__set(id, language, page, request, requestOptions)); } @@ -150,11 +149,17 @@ export class CustomText { language: Management.SelfServiceProfileCustomTextLanguageEnum, page: Management.SelfServiceProfileCustomTextPageEnum, request: Management.SetSelfServiceProfileCustomTextRequestContent, - requestOptions?: CustomText.RequestOptions, + requestOptions?: CustomTextClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:self_service_profile_custom_texts"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -173,7 +178,9 @@ export class CustomText { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -201,26 +208,11 @@ export class CustomText { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling PUT /self-service-profiles/{id}/custom-text/{language}/{page}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "PUT", + "/self-service-profiles/{id}/custom-text/{language}/{page}", + ); } } diff --git a/src/management/api/resources/selfServiceProfiles/resources/ssoTicket/client/Client.ts b/src/management/api/resources/selfServiceProfiles/resources/ssoTicket/client/Client.ts index dc194c06a9..f313c54b92 100644 --- a/src/management/api/resources/selfServiceProfiles/resources/ssoTicket/client/Client.ts +++ b/src/management/api/resources/selfServiceProfiles/resources/ssoTicket/client/Client.ts @@ -1,23 +1,25 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../core/headers.js"; import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; +import * as environments from "../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../errors/index.js"; +import * as Management from "../../../../../index.js"; -export declare namespace SsoTicket { +export declare namespace SsoTicketClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class SsoTicket { - protected readonly _options: SsoTicket.Options; +export class SsoTicketClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: SsoTicket.Options) { - this._options = _options; + constructor(options: SsoTicketClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** @@ -25,7 +27,7 @@ export class SsoTicket { * * @param {string} id - The id of the self-service profile to retrieve * @param {Management.CreateSelfServiceProfileSsoTicketRequestContent} request - * @param {SsoTicket.RequestOptions} requestOptions - Request-specific configuration. + * @param {SsoTicketClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -38,7 +40,7 @@ export class SsoTicket { public create( id: string, request: Management.CreateSelfServiceProfileSsoTicketRequestContent = {}, - requestOptions?: SsoTicket.RequestOptions, + requestOptions?: SsoTicketClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__create(id, request, requestOptions)); } @@ -46,11 +48,17 @@ export class SsoTicket { private async __create( id: string, request: Management.CreateSelfServiceProfileSsoTicketRequestContent = {}, - requestOptions?: SsoTicket.RequestOptions, + requestOptions?: SsoTicketClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["create:sso_access_tickets"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -69,7 +77,9 @@ export class SsoTicket { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -97,23 +107,12 @@ export class SsoTicket { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling POST /self-service-profiles/{id}/sso-ticket.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "POST", + "/self-service-profiles/{id}/sso-ticket", + ); } /** @@ -122,7 +121,7 @@ export class SsoTicket { * * @param {string} profileId - The id of the self-service profile * @param {string} id - The id of the ticket to revoke - * @param {SsoTicket.RequestOptions} requestOptions - Request-specific configuration. + * @param {SsoTicketClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.UnauthorizedError} * @throws {@link Management.ForbiddenError} @@ -134,7 +133,7 @@ export class SsoTicket { public revoke( profileId: string, id: string, - requestOptions?: SsoTicket.RequestOptions, + requestOptions?: SsoTicketClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__revoke(profileId, id, requestOptions)); } @@ -142,11 +141,17 @@ export class SsoTicket { private async __revoke( profileId: string, id: string, - requestOptions?: SsoTicket.RequestOptions, + requestOptions?: SsoTicketClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["delete:sso_access_tickets"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -162,7 +167,9 @@ export class SsoTicket { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -185,26 +192,11 @@ export class SsoTicket { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling POST /self-service-profiles/{profileId}/sso-ticket/{id}/revoke.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "POST", + "/self-service-profiles/{profileId}/sso-ticket/{id}/revoke", + ); } } diff --git a/src/management/api/resources/sessions/client/Client.ts b/src/management/api/resources/sessions/client/Client.ts index 9d2a7d6fc3..725066ddb3 100644 --- a/src/management/api/resources/sessions/client/Client.ts +++ b/src/management/api/resources/sessions/client/Client.ts @@ -1,30 +1,32 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../BaseClient.js"; -import * as environments from "../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../core/headers.js"; import * as core from "../../../../core/index.js"; -import * as Management from "../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../core/headers.js"; +import * as environments from "../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../errors/index.js"; +import * as Management from "../../../index.js"; -export declare namespace Sessions { +export declare namespace SessionsClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Sessions { - protected readonly _options: Sessions.Options; +export class SessionsClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: Sessions.Options) { - this._options = _options; + constructor(options: SessionsClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** * Retrieve session information. * * @param {string} id - ID of session to retrieve - * @param {Sessions.RequestOptions} requestOptions - Request-specific configuration. + * @param {SessionsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.UnauthorizedError} * @throws {@link Management.ForbiddenError} @@ -36,18 +38,24 @@ export class Sessions { */ public get( id: string, - requestOptions?: Sessions.RequestOptions, + requestOptions?: SessionsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__get(id, requestOptions)); } private async __get( id: string, - requestOptions?: Sessions.RequestOptions, + requestOptions?: SessionsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:sessions"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -63,7 +71,9 @@ export class Sessions { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: _response.body as Management.GetSessionResponseContent, rawResponse: _response.rawResponse }; @@ -88,28 +98,14 @@ export class Sessions { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /sessions/{id}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/sessions/{id}"); } /** * Delete a session by ID. * * @param {string} id - ID of the session to delete. - * @param {Sessions.RequestOptions} requestOptions - Request-specific configuration. + * @param {SessionsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -119,14 +115,23 @@ export class Sessions { * @example * await client.sessions.delete("id") */ - public delete(id: string, requestOptions?: Sessions.RequestOptions): core.HttpResponsePromise { + public delete(id: string, requestOptions?: SessionsClient.RequestOptions): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__delete(id, requestOptions)); } - private async __delete(id: string, requestOptions?: Sessions.RequestOptions): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + private async __delete( + id: string, + requestOptions?: SessionsClient.RequestOptions, + ): Promise> { + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["delete:sessions"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -142,7 +147,9 @@ export class Sessions { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -167,125 +174,14 @@ export class Sessions { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling DELETE /sessions/{id}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - /** - * Update session information. - * - * @param {string} id - ID of the session to update. - * @param {Management.UpdateSessionRequestContent} request - * @param {Sessions.RequestOptions} requestOptions - Request-specific configuration. - * - * @throws {@link Management.BadRequestError} - * @throws {@link Management.UnauthorizedError} - * @throws {@link Management.ForbiddenError} - * @throws {@link Management.NotFoundError} - * @throws {@link Management.TooManyRequestsError} - * - * @example - * await client.sessions.update("id") - */ - public update( - id: string, - request: Management.UpdateSessionRequestContent = {}, - requestOptions?: Sessions.RequestOptions, - ): core.HttpResponsePromise { - return core.HttpResponsePromise.fromPromise(this.__update(id, request, requestOptions)); - } - - private async __update( - id: string, - request: Management.UpdateSessionRequestContent = {}, - requestOptions?: Sessions.RequestOptions, - ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( - this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), - requestOptions?.headers, - ); - const _response = await (this._options.fetcher ?? core.fetcher)({ - url: core.url.join( - (await core.Supplier.get(this._options.baseUrl)) ?? - (await core.Supplier.get(this._options.environment)) ?? - environments.ManagementEnvironment.Default, - `sessions/${core.url.encodePathParam(id)}`, - ), - method: "PATCH", - headers: _headers, - contentType: "application/json", - queryParameters: requestOptions?.queryParams, - requestType: "json", - body: request, - timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, - maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, - abortSignal: requestOptions?.abortSignal, - fetchFn: this._options?.fetch, - }); - if (_response.ok) { - return { - data: _response.body as Management.UpdateSessionResponseContent, - rawResponse: _response.rawResponse, - }; - } - - if (_response.error.reason === "status-code") { - switch (_response.error.statusCode) { - case 400: - throw new Management.BadRequestError(_response.error.body as unknown, _response.rawResponse); - case 401: - throw new Management.UnauthorizedError(_response.error.body as unknown, _response.rawResponse); - case 403: - throw new Management.ForbiddenError(_response.error.body as unknown, _response.rawResponse); - case 404: - throw new Management.NotFoundError(_response.error.body as unknown, _response.rawResponse); - case 429: - throw new Management.TooManyRequestsError(_response.error.body as unknown, _response.rawResponse); - default: - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.body, - rawResponse: _response.rawResponse, - }); - } - } - - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling PATCH /sessions/{id}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "DELETE", "/sessions/{id}"); } /** * Revokes a session by ID and all associated refresh tokens. * * @param {string} id - ID of the session to revoke. - * @param {Sessions.RequestOptions} requestOptions - Request-specific configuration. + * @param {SessionsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -296,14 +192,23 @@ export class Sessions { * @example * await client.sessions.revoke("id") */ - public revoke(id: string, requestOptions?: Sessions.RequestOptions): core.HttpResponsePromise { + public revoke(id: string, requestOptions?: SessionsClient.RequestOptions): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__revoke(id, requestOptions)); } - private async __revoke(id: string, requestOptions?: Sessions.RequestOptions): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + private async __revoke( + id: string, + requestOptions?: SessionsClient.RequestOptions, + ): Promise> { + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["delete:sessions", "delete:refresh_tokens"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -319,7 +224,9 @@ export class Sessions { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -346,24 +253,6 @@ export class Sessions { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling POST /sessions/{id}/revoke."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/sessions/{id}/revoke"); } } diff --git a/src/management/api/resources/stats/client/Client.ts b/src/management/api/resources/stats/client/Client.ts index ce97562763..3419d9feda 100644 --- a/src/management/api/resources/stats/client/Client.ts +++ b/src/management/api/resources/stats/client/Client.ts @@ -1,29 +1,31 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../BaseClient.js"; -import * as environments from "../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../core/headers.js"; import * as core from "../../../../core/index.js"; -import * as Management from "../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../core/headers.js"; +import * as environments from "../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../errors/index.js"; +import * as Management from "../../../index.js"; -export declare namespace Stats { +export declare namespace StatsClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Stats { - protected readonly _options: Stats.Options; +export class StatsClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: Stats.Options) { - this._options = _options; + constructor(options: StatsClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** * Retrieve the number of active users that logged in during the last 30 days. * - * @param {Stats.RequestOptions} requestOptions - Request-specific configuration. + * @param {StatsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.UnauthorizedError} * @throws {@link Management.ForbiddenError} @@ -33,17 +35,23 @@ export class Stats { * await client.stats.getActiveUsersCount() */ public getActiveUsersCount( - requestOptions?: Stats.RequestOptions, + requestOptions?: StatsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__getActiveUsersCount(requestOptions)); } private async __getActiveUsersCount( - requestOptions?: Stats.RequestOptions, + requestOptions?: StatsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:stats"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -59,7 +67,9 @@ export class Stats { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -85,28 +95,14 @@ export class Stats { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /stats/active-users."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/stats/active-users"); } /** * Retrieve the number of logins, signups and breached-password detections (subscription required) that occurred each day within a specified date range. * * @param {Management.GetDailyStatsRequestParameters} request - * @param {Stats.RequestOptions} requestOptions - Request-specific configuration. + * @param {StatsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -121,28 +117,34 @@ export class Stats { */ public getDaily( request: Management.GetDailyStatsRequestParameters = {}, - requestOptions?: Stats.RequestOptions, + requestOptions?: StatsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__getDaily(request, requestOptions)); } private async __getDaily( request: Management.GetDailyStatsRequestParameters = {}, - requestOptions?: Stats.RequestOptions, + requestOptions?: StatsClient.RequestOptions, ): Promise> { + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:stats"] }], + }; const { from: from_, to } = request; const _queryParams: Record = {}; if (from_ !== undefined) { - _queryParams["from"] = from_; + _queryParams.from = from_; } if (to !== undefined) { - _queryParams["to"] = to; + _queryParams.to = to; } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -158,7 +160,9 @@ export class Stats { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: _response.body as Management.DailyStats[], rawResponse: _response.rawResponse }; @@ -183,24 +187,6 @@ export class Stats { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /stats/daily."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/stats/daily"); } } diff --git a/src/management/api/resources/supplementalSignals/client/Client.ts b/src/management/api/resources/supplementalSignals/client/Client.ts index 7b9b28592e..fa9bcdff26 100644 --- a/src/management/api/resources/supplementalSignals/client/Client.ts +++ b/src/management/api/resources/supplementalSignals/client/Client.ts @@ -1,29 +1,31 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../BaseClient.js"; -import * as environments from "../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../core/headers.js"; import * as core from "../../../../core/index.js"; -import * as Management from "../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../core/headers.js"; +import * as environments from "../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../errors/index.js"; +import * as Management from "../../../index.js"; -export declare namespace SupplementalSignals { +export declare namespace SupplementalSignalsClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class SupplementalSignals { - protected readonly _options: SupplementalSignals.Options; +export class SupplementalSignalsClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: SupplementalSignals.Options) { - this._options = _options; + constructor(options: SupplementalSignalsClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** * Get the supplemental signals configuration for a tenant. * - * @param {SupplementalSignals.RequestOptions} requestOptions - Request-specific configuration. + * @param {SupplementalSignalsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.UnauthorizedError} * @throws {@link Management.ForbiddenError} @@ -34,17 +36,23 @@ export class SupplementalSignals { * await client.supplementalSignals.get() */ public get( - requestOptions?: SupplementalSignals.RequestOptions, + requestOptions?: SupplementalSignalsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__get(requestOptions)); } private async __get( - requestOptions?: SupplementalSignals.RequestOptions, + requestOptions?: SupplementalSignalsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:attack_protection"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -60,7 +68,9 @@ export class SupplementalSignals { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -88,28 +98,14 @@ export class SupplementalSignals { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /supplemental-signals."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/supplemental-signals"); } /** * Update the supplemental signals configuration for a tenant. * * @param {Management.UpdateSupplementalSignalsRequestContent} request - * @param {SupplementalSignals.RequestOptions} requestOptions - Request-specific configuration. + * @param {SupplementalSignalsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.UnauthorizedError} * @throws {@link Management.ForbiddenError} @@ -123,18 +119,24 @@ export class SupplementalSignals { */ public patch( request: Management.UpdateSupplementalSignalsRequestContent, - requestOptions?: SupplementalSignals.RequestOptions, + requestOptions?: SupplementalSignalsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__patch(request, requestOptions)); } private async __patch( request: Management.UpdateSupplementalSignalsRequestContent, - requestOptions?: SupplementalSignals.RequestOptions, + requestOptions?: SupplementalSignalsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:attack_protection"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -153,7 +155,9 @@ export class SupplementalSignals { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -181,24 +185,6 @@ export class SupplementalSignals { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling PATCH /supplemental-signals."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError(_response.error, _response.rawResponse, "PATCH", "/supplemental-signals"); } } diff --git a/src/management/api/resources/tenants/client/Client.ts b/src/management/api/resources/tenants/client/Client.ts index c1b4123a95..5adbd1c7f7 100644 --- a/src/management/api/resources/tenants/client/Client.ts +++ b/src/management/api/resources/tenants/client/Client.ts @@ -1,23 +1,22 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions } from "../../../../BaseClient.js"; -import * as environments from "../../../../environments.js"; -import * as core from "../../../../core/index.js"; -import { Settings } from "../resources/settings/client/Client.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../BaseClient.js"; +import { SettingsClient } from "../resources/settings/client/Client.js"; -export declare namespace Tenants { +export declare namespace TenantsClient { export interface Options extends BaseClientOptions {} } -export class Tenants { - protected readonly _options: Tenants.Options; - protected _settings: Settings | undefined; +export class TenantsClient { + protected readonly _options: NormalizedClientOptionsWithAuth; + protected _settings: SettingsClient | undefined; - constructor(_options: Tenants.Options) { - this._options = _options; + constructor(options: TenantsClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } - public get settings(): Settings { - return (this._settings ??= new Settings(this._options)); + public get settings(): SettingsClient { + return (this._settings ??= new SettingsClient(this._options)); } } diff --git a/src/management/api/resources/tenants/resources/settings/client/Client.ts b/src/management/api/resources/tenants/resources/settings/client/Client.ts index 1d3cbff8e9..9127fd5329 100644 --- a/src/management/api/resources/tenants/resources/settings/client/Client.ts +++ b/src/management/api/resources/tenants/resources/settings/client/Client.ts @@ -1,30 +1,32 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../core/headers.js"; import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; +import * as environments from "../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../errors/index.js"; +import * as Management from "../../../../../index.js"; -export declare namespace Settings { +export declare namespace SettingsClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Settings { - protected readonly _options: Settings.Options; +export class SettingsClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: Settings.Options) { - this._options = _options; + constructor(options: SettingsClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** * Retrieve tenant settings. A list of fields to include or exclude may also be specified. * * @param {Management.GetTenantSettingsRequestParameters} request - * @param {Settings.RequestOptions} requestOptions - Request-specific configuration. + * @param {SettingsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -39,28 +41,34 @@ export class Settings { */ public get( request: Management.GetTenantSettingsRequestParameters = {}, - requestOptions?: Settings.RequestOptions, + requestOptions?: SettingsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__get(request, requestOptions)); } private async __get( request: Management.GetTenantSettingsRequestParameters = {}, - requestOptions?: Settings.RequestOptions, + requestOptions?: SettingsClient.RequestOptions, ): Promise> { + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:tenant_settings"] }], + }; const { fields, include_fields: includeFields } = request; const _queryParams: Record = {}; if (fields !== undefined) { - _queryParams["fields"] = fields; + _queryParams.fields = fields; } if (includeFields !== undefined) { - _queryParams["include_fields"] = includeFields?.toString() ?? null; + _queryParams.include_fields = includeFields?.toString() ?? null; } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -76,7 +84,9 @@ export class Settings { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -104,28 +114,14 @@ export class Settings { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /tenants/settings."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/tenants/settings"); } /** * Update settings for a tenant. * * @param {Management.UpdateTenantSettingsRequestContent} request - * @param {Settings.RequestOptions} requestOptions - Request-specific configuration. + * @param {SettingsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -137,18 +133,24 @@ export class Settings { */ public update( request: Management.UpdateTenantSettingsRequestContent = {}, - requestOptions?: Settings.RequestOptions, + requestOptions?: SettingsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__update(request, requestOptions)); } private async __update( request: Management.UpdateTenantSettingsRequestContent = {}, - requestOptions?: Settings.RequestOptions, + requestOptions?: SettingsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:tenant_settings"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -167,7 +169,9 @@ export class Settings { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -195,24 +199,6 @@ export class Settings { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling PATCH /tenants/settings."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError(_response.error, _response.rawResponse, "PATCH", "/tenants/settings"); } } diff --git a/src/management/api/resources/tickets/client/Client.ts b/src/management/api/resources/tickets/client/Client.ts index f7e2e9a40c..9f5517f9f5 100644 --- a/src/management/api/resources/tickets/client/Client.ts +++ b/src/management/api/resources/tickets/client/Client.ts @@ -1,30 +1,32 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../BaseClient.js"; -import * as environments from "../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../core/headers.js"; import * as core from "../../../../core/index.js"; -import * as Management from "../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../core/headers.js"; +import * as environments from "../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../errors/index.js"; +import * as Management from "../../../index.js"; -export declare namespace Tickets { +export declare namespace TicketsClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Tickets { - protected readonly _options: Tickets.Options; +export class TicketsClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: Tickets.Options) { - this._options = _options; + constructor(options: TicketsClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** * Create an email verification ticket for a given user. An email verification ticket is a generated URL that the user can consume to verify their email address. * * @param {Management.VerifyEmailTicketRequestContent} request - * @param {Tickets.RequestOptions} requestOptions - Request-specific configuration. + * @param {TicketsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -39,18 +41,24 @@ export class Tickets { */ public verifyEmail( request: Management.VerifyEmailTicketRequestContent, - requestOptions?: Tickets.RequestOptions, + requestOptions?: TicketsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__verifyEmail(request, requestOptions)); } private async __verifyEmail( request: Management.VerifyEmailTicketRequestContent, - requestOptions?: Tickets.RequestOptions, + requestOptions?: TicketsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["create:user_tickets"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -69,7 +77,9 @@ export class Tickets { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -99,23 +109,7 @@ export class Tickets { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling POST /tickets/email-verification.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/tickets/email-verification"); } /** @@ -124,7 +118,7 @@ export class Tickets { * Note: This endpoint does not verify the given user’s identity. If you call this endpoint within your application, you must design your application to verify the user’s identity. * * @param {Management.ChangePasswordTicketRequestContent} request - * @param {Tickets.RequestOptions} requestOptions - Request-specific configuration. + * @param {TicketsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -137,18 +131,24 @@ export class Tickets { */ public changePassword( request: Management.ChangePasswordTicketRequestContent = {}, - requestOptions?: Tickets.RequestOptions, + requestOptions?: TicketsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__changePassword(request, requestOptions)); } private async __changePassword( request: Management.ChangePasswordTicketRequestContent = {}, - requestOptions?: Tickets.RequestOptions, + requestOptions?: TicketsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["create:user_tickets"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -167,7 +167,9 @@ export class Tickets { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -197,24 +199,6 @@ export class Tickets { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling POST /tickets/password-change."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/tickets/password-change"); } } diff --git a/src/management/api/resources/tokenExchangeProfiles/client/Client.ts b/src/management/api/resources/tokenExchangeProfiles/client/Client.ts index 78392f6e59..4f076abfd8 100644 --- a/src/management/api/resources/tokenExchangeProfiles/client/Client.ts +++ b/src/management/api/resources/tokenExchangeProfiles/client/Client.ts @@ -1,23 +1,25 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../BaseClient.js"; -import * as environments from "../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../core/headers.js"; import * as core from "../../../../core/index.js"; -import * as Management from "../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../core/headers.js"; +import * as environments from "../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../errors/index.js"; +import * as Management from "../../../index.js"; -export declare namespace TokenExchangeProfiles { +export declare namespace TokenExchangeProfilesClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class TokenExchangeProfiles { - protected readonly _options: TokenExchangeProfiles.Options; +export class TokenExchangeProfilesClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: TokenExchangeProfiles.Options) { - this._options = _options; + constructor(options: TokenExchangeProfilesClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** @@ -32,7 +34,7 @@ export class TokenExchangeProfiles { * Note: The first time you call this endpoint using checkpoint pagination, omit the from parameter. If there are more results, a next value is included in the response. You can use this for subsequent API calls. When next is no longer included in the response, no pages are remaining. * * @param {Management.TokenExchangeProfilesListRequest} request - * @param {TokenExchangeProfiles.RequestOptions} requestOptions - Request-specific configuration. + * @param {TokenExchangeProfilesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -47,7 +49,7 @@ export class TokenExchangeProfiles { */ public async list( request: Management.TokenExchangeProfilesListRequest = {}, - requestOptions?: TokenExchangeProfiles.RequestOptions, + requestOptions?: TokenExchangeProfilesClient.RequestOptions, ): Promise< core.Page > { @@ -55,17 +57,23 @@ export class TokenExchangeProfiles { async ( request: Management.TokenExchangeProfilesListRequest, ): Promise> => { + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:token_exchange_profiles"] }], + }; const { from: from_, take = 50 } = request; const _queryParams: Record = {}; if (from_ !== undefined) { - _queryParams["from"] = from_; + _queryParams.from = from_; } if (take !== undefined) { - _queryParams["take"] = take?.toString() ?? null; + _queryParams.take = take?.toString() ?? null; } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -81,7 +89,9 @@ export class TokenExchangeProfiles { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -116,23 +126,12 @@ export class TokenExchangeProfiles { }); } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /token-exchange-profiles.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "GET", + "/token-exchange-profiles", + ); }, ); const dataWithRawResponse = await list(request).withRawResponse(); @@ -155,7 +154,7 @@ export class TokenExchangeProfiles { * Create a new Token Exchange Profile within your tenant. * * @param {Management.CreateTokenExchangeProfileRequestContent} request - * @param {TokenExchangeProfiles.RequestOptions} requestOptions - Request-specific configuration. + * @param {TokenExchangeProfilesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -172,18 +171,24 @@ export class TokenExchangeProfiles { */ public create( request: Management.CreateTokenExchangeProfileRequestContent, - requestOptions?: TokenExchangeProfiles.RequestOptions, + requestOptions?: TokenExchangeProfilesClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__create(request, requestOptions)); } private async __create( request: Management.CreateTokenExchangeProfileRequestContent, - requestOptions?: TokenExchangeProfiles.RequestOptions, + requestOptions?: TokenExchangeProfilesClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["create:token_exchange_profiles"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -202,7 +207,9 @@ export class TokenExchangeProfiles { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -232,28 +239,14 @@ export class TokenExchangeProfiles { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling POST /token-exchange-profiles."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/token-exchange-profiles"); } /** * Retrieve details about a single Token Exchange Profile specified by ID. * * @param {string} id - ID of the Token Exchange Profile to retrieve. - * @param {TokenExchangeProfiles.RequestOptions} requestOptions - Request-specific configuration. + * @param {TokenExchangeProfilesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -266,18 +259,24 @@ export class TokenExchangeProfiles { */ public get( id: string, - requestOptions?: TokenExchangeProfiles.RequestOptions, + requestOptions?: TokenExchangeProfilesClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__get(id, requestOptions)); } private async __get( id: string, - requestOptions?: TokenExchangeProfiles.RequestOptions, + requestOptions?: TokenExchangeProfilesClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:token_exchange_profiles"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -293,7 +292,9 @@ export class TokenExchangeProfiles { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -323,30 +324,14 @@ export class TokenExchangeProfiles { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /token-exchange-profiles/{id}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/token-exchange-profiles/{id}"); } /** * Delete a Token Exchange Profile within your tenant. * * @param {string} id - ID of the Token Exchange Profile to delete. - * @param {TokenExchangeProfiles.RequestOptions} requestOptions - Request-specific configuration. + * @param {TokenExchangeProfilesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.UnauthorizedError} * @throws {@link Management.ForbiddenError} @@ -355,17 +340,26 @@ export class TokenExchangeProfiles { * @example * await client.tokenExchangeProfiles.delete("id") */ - public delete(id: string, requestOptions?: TokenExchangeProfiles.RequestOptions): core.HttpResponsePromise { + public delete( + id: string, + requestOptions?: TokenExchangeProfilesClient.RequestOptions, + ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__delete(id, requestOptions)); } private async __delete( id: string, - requestOptions?: TokenExchangeProfiles.RequestOptions, + requestOptions?: TokenExchangeProfilesClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["delete:token_exchange_profiles"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -381,7 +375,9 @@ export class TokenExchangeProfiles { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -404,23 +400,12 @@ export class TokenExchangeProfiles { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling DELETE /token-exchange-profiles/{id}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "DELETE", + "/token-exchange-profiles/{id}", + ); } /** @@ -428,7 +413,7 @@ export class TokenExchangeProfiles { * * @param {string} id - ID of the Token Exchange Profile to update. * @param {Management.UpdateTokenExchangeProfileRequestContent} request - * @param {TokenExchangeProfiles.RequestOptions} requestOptions - Request-specific configuration. + * @param {TokenExchangeProfilesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -442,7 +427,7 @@ export class TokenExchangeProfiles { public update( id: string, request: Management.UpdateTokenExchangeProfileRequestContent = {}, - requestOptions?: TokenExchangeProfiles.RequestOptions, + requestOptions?: TokenExchangeProfilesClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__update(id, request, requestOptions)); } @@ -450,11 +435,17 @@ export class TokenExchangeProfiles { private async __update( id: string, request: Management.UpdateTokenExchangeProfileRequestContent = {}, - requestOptions?: TokenExchangeProfiles.RequestOptions, + requestOptions?: TokenExchangeProfilesClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:token_exchange_profiles"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -473,7 +464,9 @@ export class TokenExchangeProfiles { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -500,26 +493,11 @@ export class TokenExchangeProfiles { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling PATCH /token-exchange-profiles/{id}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "PATCH", + "/token-exchange-profiles/{id}", + ); } } diff --git a/src/management/api/resources/userAttributeProfiles/client/Client.ts b/src/management/api/resources/userAttributeProfiles/client/Client.ts deleted file mode 100644 index 253d3d2bd1..0000000000 --- a/src/management/api/resources/userAttributeProfiles/client/Client.ts +++ /dev/null @@ -1,694 +0,0 @@ -// This file was auto-generated by Fern from our API Definition. - -import type { BaseClientOptions, BaseRequestOptions } from "../../../../BaseClient.js"; -import * as environments from "../../../../environments.js"; -import * as core from "../../../../core/index.js"; -import * as Management from "../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../core/headers.js"; -import * as errors from "../../../../errors/index.js"; - -export declare namespace UserAttributeProfiles { - export interface Options extends BaseClientOptions {} - - export interface RequestOptions extends BaseRequestOptions {} -} - -export class UserAttributeProfiles { - protected readonly _options: UserAttributeProfiles.Options; - - constructor(_options: UserAttributeProfiles.Options) { - this._options = _options; - } - - /** - * Retrieve a list of User Attribute Profiles. This endpoint supports Checkpoint pagination. - * - * @param {Management.ListUserAttributeProfileRequestParameters} request - * @param {UserAttributeProfiles.RequestOptions} requestOptions - Request-specific configuration. - * - * @throws {@link Management.BadRequestError} - * @throws {@link Management.UnauthorizedError} - * @throws {@link Management.ForbiddenError} - * @throws {@link Management.TooManyRequestsError} - * - * @example - * await client.userAttributeProfiles.list({ - * from: "from", - * take: 1 - * }) - */ - public async list( - request: Management.ListUserAttributeProfileRequestParameters = {}, - requestOptions?: UserAttributeProfiles.RequestOptions, - ): Promise< - core.Page - > { - const list = core.HttpResponsePromise.interceptFunction( - async ( - request: Management.ListUserAttributeProfileRequestParameters, - ): Promise> => { - const { from: from_, take = 50 } = request; - const _queryParams: Record = {}; - if (from_ !== undefined) { - _queryParams["from"] = from_; - } - if (take !== undefined) { - _queryParams["take"] = take?.toString() ?? null; - } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( - this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), - requestOptions?.headers, - ); - const _response = await (this._options.fetcher ?? core.fetcher)({ - url: core.url.join( - (await core.Supplier.get(this._options.baseUrl)) ?? - (await core.Supplier.get(this._options.environment)) ?? - environments.ManagementEnvironment.Default, - "user-attribute-profiles", - ), - method: "GET", - headers: _headers, - queryParameters: { ..._queryParams, ...requestOptions?.queryParams }, - timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, - maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, - abortSignal: requestOptions?.abortSignal, - fetchFn: this._options?.fetch, - }); - if (_response.ok) { - return { - data: _response.body as Management.ListUserAttributeProfilesPaginatedResponseContent, - rawResponse: _response.rawResponse, - }; - } - if (_response.error.reason === "status-code") { - switch (_response.error.statusCode) { - case 400: - throw new Management.BadRequestError( - _response.error.body as unknown, - _response.rawResponse, - ); - case 401: - throw new Management.UnauthorizedError( - _response.error.body as unknown, - _response.rawResponse, - ); - case 403: - throw new Management.ForbiddenError(_response.error.body as unknown, _response.rawResponse); - case 429: - throw new Management.TooManyRequestsError( - _response.error.body as unknown, - _response.rawResponse, - ); - default: - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.body, - rawResponse: _response.rawResponse, - }); - } - } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /user-attribute-profiles.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - }, - ); - const dataWithRawResponse = await list(request).withRawResponse(); - return new core.Page< - Management.UserAttributeProfile, - Management.ListUserAttributeProfilesPaginatedResponseContent - >({ - response: dataWithRawResponse.data, - rawResponse: dataWithRawResponse.rawResponse, - hasNextPage: (response) => - response?.next != null && !(typeof response?.next === "string" && response?.next === ""), - getItems: (response) => response?.user_attribute_profiles ?? [], - loadPage: (response) => { - return list(core.setObjectProperty(request, "from", response?.next)); - }, - }); - } - - /** - * Retrieve details about a single User Attribute Profile specified by ID. - * - * @param {Management.CreateUserAttributeProfileRequestContent} request - * @param {UserAttributeProfiles.RequestOptions} requestOptions - Request-specific configuration. - * - * @throws {@link Management.BadRequestError} - * @throws {@link Management.UnauthorizedError} - * @throws {@link Management.ForbiddenError} - * @throws {@link Management.ConflictError} - * @throws {@link Management.TooManyRequestsError} - * - * @example - * await client.userAttributeProfiles.create({ - * name: "name", - * user_attributes: { - * "key": { - * description: "description", - * label: "label", - * profile_required: true, - * auth0_mapping: "auth0_mapping" - * } - * } - * }) - */ - public create( - request: Management.CreateUserAttributeProfileRequestContent, - requestOptions?: UserAttributeProfiles.RequestOptions, - ): core.HttpResponsePromise { - return core.HttpResponsePromise.fromPromise(this.__create(request, requestOptions)); - } - - private async __create( - request: Management.CreateUserAttributeProfileRequestContent, - requestOptions?: UserAttributeProfiles.RequestOptions, - ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( - this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), - requestOptions?.headers, - ); - const _response = await (this._options.fetcher ?? core.fetcher)({ - url: core.url.join( - (await core.Supplier.get(this._options.baseUrl)) ?? - (await core.Supplier.get(this._options.environment)) ?? - environments.ManagementEnvironment.Default, - "user-attribute-profiles", - ), - method: "POST", - headers: _headers, - contentType: "application/json", - queryParameters: requestOptions?.queryParams, - requestType: "json", - body: request, - timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, - maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, - abortSignal: requestOptions?.abortSignal, - fetchFn: this._options?.fetch, - }); - if (_response.ok) { - return { - data: _response.body as Management.CreateUserAttributeProfileResponseContent, - rawResponse: _response.rawResponse, - }; - } - - if (_response.error.reason === "status-code") { - switch (_response.error.statusCode) { - case 400: - throw new Management.BadRequestError(_response.error.body as unknown, _response.rawResponse); - case 401: - throw new Management.UnauthorizedError(_response.error.body as unknown, _response.rawResponse); - case 403: - throw new Management.ForbiddenError(_response.error.body as unknown, _response.rawResponse); - case 409: - throw new Management.ConflictError(_response.error.body as unknown, _response.rawResponse); - case 429: - throw new Management.TooManyRequestsError(_response.error.body as unknown, _response.rawResponse); - default: - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.body, - rawResponse: _response.rawResponse, - }); - } - } - - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling POST /user-attribute-profiles."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - /** - * Retrieve a list of User Attribute Profile Templates. - * - * @param {UserAttributeProfiles.RequestOptions} requestOptions - Request-specific configuration. - * - * @throws {@link Management.UnauthorizedError} - * @throws {@link Management.ForbiddenError} - * @throws {@link Management.TooManyRequestsError} - * - * @example - * await client.userAttributeProfiles.listTemplates() - */ - public listTemplates( - requestOptions?: UserAttributeProfiles.RequestOptions, - ): core.HttpResponsePromise { - return core.HttpResponsePromise.fromPromise(this.__listTemplates(requestOptions)); - } - - private async __listTemplates( - requestOptions?: UserAttributeProfiles.RequestOptions, - ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( - this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), - requestOptions?.headers, - ); - const _response = await (this._options.fetcher ?? core.fetcher)({ - url: core.url.join( - (await core.Supplier.get(this._options.baseUrl)) ?? - (await core.Supplier.get(this._options.environment)) ?? - environments.ManagementEnvironment.Default, - "user-attribute-profiles/templates", - ), - method: "GET", - headers: _headers, - queryParameters: requestOptions?.queryParams, - timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, - maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, - abortSignal: requestOptions?.abortSignal, - fetchFn: this._options?.fetch, - }); - if (_response.ok) { - return { - data: _response.body as Management.ListUserAttributeProfileTemplateResponseContent, - rawResponse: _response.rawResponse, - }; - } - - if (_response.error.reason === "status-code") { - switch (_response.error.statusCode) { - case 401: - throw new Management.UnauthorizedError(_response.error.body as unknown, _response.rawResponse); - case 403: - throw new Management.ForbiddenError(_response.error.body as unknown, _response.rawResponse); - case 429: - throw new Management.TooManyRequestsError(_response.error.body as unknown, _response.rawResponse); - default: - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.body, - rawResponse: _response.rawResponse, - }); - } - } - - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /user-attribute-profiles/templates.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - /** - * Retrieve a User Attribute Profile Template. - * - * @param {string} id - ID of the user-attribute-profile-template to retrieve. - * @param {UserAttributeProfiles.RequestOptions} requestOptions - Request-specific configuration. - * - * @throws {@link Management.UnauthorizedError} - * @throws {@link Management.ForbiddenError} - * @throws {@link Management.NotFoundError} - * @throws {@link Management.TooManyRequestsError} - * - * @example - * await client.userAttributeProfiles.getTemplate("id") - */ - public getTemplate( - id: string, - requestOptions?: UserAttributeProfiles.RequestOptions, - ): core.HttpResponsePromise { - return core.HttpResponsePromise.fromPromise(this.__getTemplate(id, requestOptions)); - } - - private async __getTemplate( - id: string, - requestOptions?: UserAttributeProfiles.RequestOptions, - ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( - this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), - requestOptions?.headers, - ); - const _response = await (this._options.fetcher ?? core.fetcher)({ - url: core.url.join( - (await core.Supplier.get(this._options.baseUrl)) ?? - (await core.Supplier.get(this._options.environment)) ?? - environments.ManagementEnvironment.Default, - `user-attribute-profiles/templates/${core.url.encodePathParam(id)}`, - ), - method: "GET", - headers: _headers, - queryParameters: requestOptions?.queryParams, - timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, - maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, - abortSignal: requestOptions?.abortSignal, - fetchFn: this._options?.fetch, - }); - if (_response.ok) { - return { - data: _response.body as Management.GetUserAttributeProfileTemplateResponseContent, - rawResponse: _response.rawResponse, - }; - } - - if (_response.error.reason === "status-code") { - switch (_response.error.statusCode) { - case 401: - throw new Management.UnauthorizedError(_response.error.body as unknown, _response.rawResponse); - case 403: - throw new Management.ForbiddenError(_response.error.body as unknown, _response.rawResponse); - case 404: - throw new Management.NotFoundError(_response.error.body as unknown, _response.rawResponse); - case 429: - throw new Management.TooManyRequestsError(_response.error.body as unknown, _response.rawResponse); - default: - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.body, - rawResponse: _response.rawResponse, - }); - } - } - - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /user-attribute-profiles/templates/{id}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - /** - * Retrieve details about a single User Attribute Profile specified by ID. - * - * @param {string} id - ID of the user-attribute-profile to retrieve. - * @param {UserAttributeProfiles.RequestOptions} requestOptions - Request-specific configuration. - * - * @throws {@link Management.UnauthorizedError} - * @throws {@link Management.ForbiddenError} - * @throws {@link Management.NotFoundError} - * @throws {@link Management.TooManyRequestsError} - * - * @example - * await client.userAttributeProfiles.get("id") - */ - public get( - id: string, - requestOptions?: UserAttributeProfiles.RequestOptions, - ): core.HttpResponsePromise { - return core.HttpResponsePromise.fromPromise(this.__get(id, requestOptions)); - } - - private async __get( - id: string, - requestOptions?: UserAttributeProfiles.RequestOptions, - ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( - this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), - requestOptions?.headers, - ); - const _response = await (this._options.fetcher ?? core.fetcher)({ - url: core.url.join( - (await core.Supplier.get(this._options.baseUrl)) ?? - (await core.Supplier.get(this._options.environment)) ?? - environments.ManagementEnvironment.Default, - `user-attribute-profiles/${core.url.encodePathParam(id)}`, - ), - method: "GET", - headers: _headers, - queryParameters: requestOptions?.queryParams, - timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, - maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, - abortSignal: requestOptions?.abortSignal, - fetchFn: this._options?.fetch, - }); - if (_response.ok) { - return { - data: _response.body as Management.GetUserAttributeProfileResponseContent, - rawResponse: _response.rawResponse, - }; - } - - if (_response.error.reason === "status-code") { - switch (_response.error.statusCode) { - case 401: - throw new Management.UnauthorizedError(_response.error.body as unknown, _response.rawResponse); - case 403: - throw new Management.ForbiddenError(_response.error.body as unknown, _response.rawResponse); - case 404: - throw new Management.NotFoundError(_response.error.body as unknown, _response.rawResponse); - case 429: - throw new Management.TooManyRequestsError(_response.error.body as unknown, _response.rawResponse); - default: - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.body, - rawResponse: _response.rawResponse, - }); - } - } - - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /user-attribute-profiles/{id}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - /** - * Delete a single User Attribute Profile specified by ID. - * - * @param {string} id - ID of the user-attribute-profile to delete. - * @param {UserAttributeProfiles.RequestOptions} requestOptions - Request-specific configuration. - * - * @throws {@link Management.UnauthorizedError} - * @throws {@link Management.ForbiddenError} - * @throws {@link Management.TooManyRequestsError} - * - * @example - * await client.userAttributeProfiles.delete("id") - */ - public delete(id: string, requestOptions?: UserAttributeProfiles.RequestOptions): core.HttpResponsePromise { - return core.HttpResponsePromise.fromPromise(this.__delete(id, requestOptions)); - } - - private async __delete( - id: string, - requestOptions?: UserAttributeProfiles.RequestOptions, - ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( - this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), - requestOptions?.headers, - ); - const _response = await (this._options.fetcher ?? core.fetcher)({ - url: core.url.join( - (await core.Supplier.get(this._options.baseUrl)) ?? - (await core.Supplier.get(this._options.environment)) ?? - environments.ManagementEnvironment.Default, - `user-attribute-profiles/${core.url.encodePathParam(id)}`, - ), - method: "DELETE", - headers: _headers, - queryParameters: requestOptions?.queryParams, - timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, - maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, - abortSignal: requestOptions?.abortSignal, - fetchFn: this._options?.fetch, - }); - if (_response.ok) { - return { data: undefined, rawResponse: _response.rawResponse }; - } - - if (_response.error.reason === "status-code") { - switch (_response.error.statusCode) { - case 401: - throw new Management.UnauthorizedError(_response.error.body as unknown, _response.rawResponse); - case 403: - throw new Management.ForbiddenError(_response.error.body as unknown, _response.rawResponse); - case 429: - throw new Management.TooManyRequestsError(_response.error.body as unknown, _response.rawResponse); - default: - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.body, - rawResponse: _response.rawResponse, - }); - } - } - - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling DELETE /user-attribute-profiles/{id}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - /** - * Update the details of a specific User attribute profile, such as name, user_id and user_attributes. - * - * @param {string} id - ID of the user attribute profile to update. - * @param {Management.UpdateUserAttributeProfileRequestContent} request - * @param {UserAttributeProfiles.RequestOptions} requestOptions - Request-specific configuration. - * - * @throws {@link Management.BadRequestError} - * @throws {@link Management.UnauthorizedError} - * @throws {@link Management.ForbiddenError} - * @throws {@link Management.TooManyRequestsError} - * - * @example - * await client.userAttributeProfiles.update("id") - */ - public update( - id: string, - request: Management.UpdateUserAttributeProfileRequestContent = {}, - requestOptions?: UserAttributeProfiles.RequestOptions, - ): core.HttpResponsePromise { - return core.HttpResponsePromise.fromPromise(this.__update(id, request, requestOptions)); - } - - private async __update( - id: string, - request: Management.UpdateUserAttributeProfileRequestContent = {}, - requestOptions?: UserAttributeProfiles.RequestOptions, - ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( - this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), - requestOptions?.headers, - ); - const _response = await (this._options.fetcher ?? core.fetcher)({ - url: core.url.join( - (await core.Supplier.get(this._options.baseUrl)) ?? - (await core.Supplier.get(this._options.environment)) ?? - environments.ManagementEnvironment.Default, - `user-attribute-profiles/${core.url.encodePathParam(id)}`, - ), - method: "PATCH", - headers: _headers, - contentType: "application/json", - queryParameters: requestOptions?.queryParams, - requestType: "json", - body: request, - timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, - maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, - abortSignal: requestOptions?.abortSignal, - fetchFn: this._options?.fetch, - }); - if (_response.ok) { - return { - data: _response.body as Management.UpdateUserAttributeProfileResponseContent, - rawResponse: _response.rawResponse, - }; - } - - if (_response.error.reason === "status-code") { - switch (_response.error.statusCode) { - case 400: - throw new Management.BadRequestError(_response.error.body as unknown, _response.rawResponse); - case 401: - throw new Management.UnauthorizedError(_response.error.body as unknown, _response.rawResponse); - case 403: - throw new Management.ForbiddenError(_response.error.body as unknown, _response.rawResponse); - case 429: - throw new Management.TooManyRequestsError(_response.error.body as unknown, _response.rawResponse); - default: - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.body, - rawResponse: _response.rawResponse, - }); - } - } - - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling PATCH /user-attribute-profiles/{id}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; - } -} diff --git a/src/management/api/resources/userAttributeProfiles/client/index.ts b/src/management/api/resources/userAttributeProfiles/client/index.ts deleted file mode 100644 index cb0ff5c3b5..0000000000 --- a/src/management/api/resources/userAttributeProfiles/client/index.ts +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/src/management/api/resources/userAttributeProfiles/index.ts b/src/management/api/resources/userAttributeProfiles/index.ts deleted file mode 100644 index 914b8c3c72..0000000000 --- a/src/management/api/resources/userAttributeProfiles/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./client/index.js"; diff --git a/src/management/api/resources/userBlocks/client/Client.ts b/src/management/api/resources/userBlocks/client/Client.ts index c340b7741d..e0e5e8593f 100644 --- a/src/management/api/resources/userBlocks/client/Client.ts +++ b/src/management/api/resources/userBlocks/client/Client.ts @@ -1,30 +1,32 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../BaseClient.js"; -import * as environments from "../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../core/headers.js"; import * as core from "../../../../core/index.js"; -import * as Management from "../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../core/headers.js"; +import * as environments from "../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../errors/index.js"; +import * as Management from "../../../index.js"; -export declare namespace UserBlocks { +export declare namespace UserBlocksClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class UserBlocks { - protected readonly _options: UserBlocks.Options; +export class UserBlocksClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: UserBlocks.Options) { - this._options = _options; + constructor(options: UserBlocksClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** * Retrieve details of all Brute-force Protection blocks for a user with the given identifier (username, phone number, or email). * * @param {Management.ListUserBlocksByIdentifierRequestParameters} request - * @param {UserBlocks.RequestOptions} requestOptions - Request-specific configuration. + * @param {UserBlocksClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -39,25 +41,31 @@ export class UserBlocks { */ public listByIdentifier( request: Management.ListUserBlocksByIdentifierRequestParameters, - requestOptions?: UserBlocks.RequestOptions, + requestOptions?: UserBlocksClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__listByIdentifier(request, requestOptions)); } private async __listByIdentifier( request: Management.ListUserBlocksByIdentifierRequestParameters, - requestOptions?: UserBlocks.RequestOptions, + requestOptions?: UserBlocksClient.RequestOptions, ): Promise> { + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:users"] }], + }; const { identifier, consider_brute_force_enablement: considerBruteForceEnablement } = request; const _queryParams: Record = {}; - _queryParams["identifier"] = identifier; + _queryParams.identifier = identifier; if (considerBruteForceEnablement !== undefined) { - _queryParams["consider_brute_force_enablement"] = considerBruteForceEnablement?.toString() ?? null; + _queryParams.consider_brute_force_enablement = considerBruteForceEnablement?.toString() ?? null; } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -73,7 +81,9 @@ export class UserBlocks { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -101,21 +111,7 @@ export class UserBlocks { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /user-blocks."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/user-blocks"); } /** @@ -124,7 +120,7 @@ export class UserBlocks { * Note: This endpoint does not unblock users that were blocked by a tenant administrator. * * @param {Management.DeleteUserBlocksByIdentifierRequestParameters} request - * @param {UserBlocks.RequestOptions} requestOptions - Request-specific configuration. + * @param {UserBlocksClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -138,21 +134,27 @@ export class UserBlocks { */ public deleteByIdentifier( request: Management.DeleteUserBlocksByIdentifierRequestParameters, - requestOptions?: UserBlocks.RequestOptions, + requestOptions?: UserBlocksClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__deleteByIdentifier(request, requestOptions)); } private async __deleteByIdentifier( request: Management.DeleteUserBlocksByIdentifierRequestParameters, - requestOptions?: UserBlocks.RequestOptions, + requestOptions?: UserBlocksClient.RequestOptions, ): Promise> { + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:users"] }], + }; const { identifier } = request; const _queryParams: Record = {}; - _queryParams["identifier"] = identifier; - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _queryParams.identifier = identifier; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -168,7 +170,9 @@ export class UserBlocks { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -193,21 +197,7 @@ export class UserBlocks { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling DELETE /user-blocks."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "DELETE", "/user-blocks"); } /** @@ -215,7 +205,7 @@ export class UserBlocks { * * @param {string} id - user_id of the user blocks to retrieve. * @param {Management.ListUserBlocksRequestParameters} request - * @param {UserBlocks.RequestOptions} requestOptions - Request-specific configuration. + * @param {UserBlocksClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -231,7 +221,7 @@ export class UserBlocks { public list( id: string, request: Management.ListUserBlocksRequestParameters = {}, - requestOptions?: UserBlocks.RequestOptions, + requestOptions?: UserBlocksClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__list(id, request, requestOptions)); } @@ -239,17 +229,23 @@ export class UserBlocks { private async __list( id: string, request: Management.ListUserBlocksRequestParameters = {}, - requestOptions?: UserBlocks.RequestOptions, + requestOptions?: UserBlocksClient.RequestOptions, ): Promise> { + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:users"] }], + }; const { consider_brute_force_enablement: considerBruteForceEnablement } = request; const _queryParams: Record = {}; if (considerBruteForceEnablement !== undefined) { - _queryParams["consider_brute_force_enablement"] = considerBruteForceEnablement?.toString() ?? null; + _queryParams.consider_brute_force_enablement = considerBruteForceEnablement?.toString() ?? null; } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -265,7 +261,9 @@ export class UserBlocks { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -295,21 +293,7 @@ export class UserBlocks { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /user-blocks/{id}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/user-blocks/{id}"); } /** @@ -318,7 +302,7 @@ export class UserBlocks { * Note: This endpoint does not unblock users that were blocked by a tenant administrator. * * @param {string} id - The user_id of the user to update. - * @param {UserBlocks.RequestOptions} requestOptions - Request-specific configuration. + * @param {UserBlocksClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -329,17 +313,23 @@ export class UserBlocks { * @example * await client.userBlocks.delete("id") */ - public delete(id: string, requestOptions?: UserBlocks.RequestOptions): core.HttpResponsePromise { + public delete(id: string, requestOptions?: UserBlocksClient.RequestOptions): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__delete(id, requestOptions)); } private async __delete( id: string, - requestOptions?: UserBlocks.RequestOptions, + requestOptions?: UserBlocksClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:users"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -355,7 +345,9 @@ export class UserBlocks { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -382,24 +374,6 @@ export class UserBlocks { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling DELETE /user-blocks/{id}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError(_response.error, _response.rawResponse, "DELETE", "/user-blocks/{id}"); } } diff --git a/src/management/api/resources/userGrants/client/Client.ts b/src/management/api/resources/userGrants/client/Client.ts index a2211effd7..a5fea97624 100644 --- a/src/management/api/resources/userGrants/client/Client.ts +++ b/src/management/api/resources/userGrants/client/Client.ts @@ -1,30 +1,32 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../BaseClient.js"; -import * as environments from "../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../core/headers.js"; import * as core from "../../../../core/index.js"; -import * as Management from "../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../core/headers.js"; +import * as environments from "../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../errors/index.js"; +import * as Management from "../../../index.js"; -export declare namespace UserGrants { +export declare namespace UserGrantsClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class UserGrants { - protected readonly _options: UserGrants.Options; +export class UserGrantsClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: UserGrants.Options) { - this._options = _options; + constructor(options: UserGrantsClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** * Retrieve the grants associated with your account. * * @param {Management.ListUserGrantsRequestParameters} request - * @param {UserGrants.RequestOptions} requestOptions - Request-specific configuration. + * @param {UserGrantsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.UnauthorizedError} * @throws {@link Management.ForbiddenError} @@ -42,15 +44,18 @@ export class UserGrants { */ public async list( request: Management.ListUserGrantsRequestParameters = {}, - requestOptions?: UserGrants.RequestOptions, + requestOptions?: UserGrantsClient.RequestOptions, ): Promise> { const list = core.HttpResponsePromise.interceptFunction( async ( request: Management.ListUserGrantsRequestParameters, ): Promise> => { + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:grants"] }], + }; const { per_page: perPage = 50, - page = 0, + page, include_totals: includeTotals = true, user_id: userId, client_id: clientId, @@ -58,26 +63,29 @@ export class UserGrants { } = request; const _queryParams: Record = {}; if (perPage !== undefined) { - _queryParams["per_page"] = perPage?.toString() ?? null; + _queryParams.per_page = perPage?.toString() ?? null; } if (page !== undefined) { - _queryParams["page"] = page?.toString() ?? null; + _queryParams.page = page?.toString() ?? null; } if (includeTotals !== undefined) { - _queryParams["include_totals"] = includeTotals?.toString() ?? null; + _queryParams.include_totals = includeTotals?.toString() ?? null; } if (userId !== undefined) { - _queryParams["user_id"] = userId; + _queryParams.user_id = userId; } if (clientId !== undefined) { - _queryParams["client_id"] = clientId; + _queryParams.client_id = clientId; } if (audience !== undefined) { - _queryParams["audience"] = audience; + _queryParams.audience = audience; } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -93,7 +101,9 @@ export class UserGrants { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -123,32 +133,18 @@ export class UserGrants { }); } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /grants."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/grants"); }, ); - let _offset = request?.page != null ? request?.page : 0; + let _offset = request?.page != null ? request?.page : 1; const dataWithRawResponse = await list(request).withRawResponse(); return new core.Page({ response: dataWithRawResponse.data, rawResponse: dataWithRawResponse.rawResponse, - hasNextPage: (response) => (response?.grants ?? []).length >= (request?.per_page ?? 1), + hasNextPage: (response) => (response?.grants ?? []).length > 0, getItems: (response) => response?.grants ?? [], - loadPage: (response) => { - _offset += response?.grants != null ? response.grants.length : 1; + loadPage: (_response) => { + _offset += 1; return list(core.setObjectProperty(request, "page", _offset)); }, }); @@ -158,7 +154,7 @@ export class UserGrants { * Delete a grant associated with your account. * * @param {Management.DeleteUserGrantByUserIdRequestParameters} request - * @param {UserGrants.RequestOptions} requestOptions - Request-specific configuration. + * @param {UserGrantsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.UnauthorizedError} * @throws {@link Management.ForbiddenError} @@ -171,21 +167,27 @@ export class UserGrants { */ public deleteByUserId( request: Management.DeleteUserGrantByUserIdRequestParameters, - requestOptions?: UserGrants.RequestOptions, + requestOptions?: UserGrantsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__deleteByUserId(request, requestOptions)); } private async __deleteByUserId( request: Management.DeleteUserGrantByUserIdRequestParameters, - requestOptions?: UserGrants.RequestOptions, + requestOptions?: UserGrantsClient.RequestOptions, ): Promise> { + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["delete:grants"] }], + }; const { user_id: userId } = request; const _queryParams: Record = {}; - _queryParams["user_id"] = userId; - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _queryParams.user_id = userId; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -201,7 +203,9 @@ export class UserGrants { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -224,28 +228,14 @@ export class UserGrants { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling DELETE /grants."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "DELETE", "/grants"); } /** * Delete a grant associated with your account. * * @param {string} id - ID of the grant to delete. - * @param {UserGrants.RequestOptions} requestOptions - Request-specific configuration. + * @param {UserGrantsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.UnauthorizedError} * @throws {@link Management.ForbiddenError} @@ -254,17 +244,23 @@ export class UserGrants { * @example * await client.userGrants.delete("id") */ - public delete(id: string, requestOptions?: UserGrants.RequestOptions): core.HttpResponsePromise { + public delete(id: string, requestOptions?: UserGrantsClient.RequestOptions): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__delete(id, requestOptions)); } private async __delete( id: string, - requestOptions?: UserGrants.RequestOptions, + requestOptions?: UserGrantsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["delete:grants"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -280,7 +276,9 @@ export class UserGrants { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -303,24 +301,6 @@ export class UserGrants { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling DELETE /grants/{id}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError(_response.error, _response.rawResponse, "DELETE", "/grants/{id}"); } } diff --git a/src/management/api/resources/users/client/Client.ts b/src/management/api/resources/users/client/Client.ts index 52cbdebe51..b176c57be6 100644 --- a/src/management/api/resources/users/client/Client.ts +++ b/src/management/api/resources/users/client/Client.ts @@ -1,107 +1,97 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../BaseClient.js"; -import * as environments from "../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../core/headers.js"; import * as core from "../../../../core/index.js"; -import * as Management from "../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../core/headers.js"; +import * as environments from "../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../errors/index.js"; -import { AuthenticationMethods } from "../resources/authenticationMethods/client/Client.js"; -import { Authenticators } from "../resources/authenticators/client/Client.js"; -import { ConnectedAccounts } from "../resources/connectedAccounts/client/Client.js"; -import { Enrollments } from "../resources/enrollments/client/Client.js"; -import { FederatedConnectionsTokensets } from "../resources/federatedConnectionsTokensets/client/Client.js"; -import { Identities } from "../resources/identities/client/Client.js"; -import { Logs } from "../resources/logs/client/Client.js"; -import { Multifactor } from "../resources/multifactor/client/Client.js"; -import { Organizations } from "../resources/organizations/client/Client.js"; -import { Permissions } from "../resources/permissions/client/Client.js"; -import { RiskAssessments } from "../resources/riskAssessments/client/Client.js"; -import { Roles } from "../resources/roles/client/Client.js"; -import { RefreshToken } from "../resources/refreshToken/client/Client.js"; -import { Sessions } from "../resources/sessions/client/Client.js"; - -export declare namespace Users { +import * as Management from "../../../index.js"; +import { AuthenticationMethodsClient } from "../resources/authenticationMethods/client/Client.js"; +import { AuthenticatorsClient } from "../resources/authenticators/client/Client.js"; +import { EnrollmentsClient } from "../resources/enrollments/client/Client.js"; +import { FederatedConnectionsTokensetsClient } from "../resources/federatedConnectionsTokensets/client/Client.js"; +import { IdentitiesClient } from "../resources/identities/client/Client.js"; +import { LogsClient } from "../resources/logs/client/Client.js"; +import { MultifactorClient } from "../resources/multifactor/client/Client.js"; +import { OrganizationsClient } from "../resources/organizations/client/Client.js"; +import { PermissionsClient } from "../resources/permissions/client/Client.js"; +import { RefreshTokenClient } from "../resources/refreshToken/client/Client.js"; +import { RolesClient } from "../resources/roles/client/Client.js"; +import { SessionsClient } from "../resources/sessions/client/Client.js"; + +export declare namespace UsersClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Users { - protected readonly _options: Users.Options; - protected _authenticationMethods: AuthenticationMethods | undefined; - protected _authenticators: Authenticators | undefined; - protected _connectedAccounts: ConnectedAccounts | undefined; - protected _enrollments: Enrollments | undefined; - protected _federatedConnectionsTokensets: FederatedConnectionsTokensets | undefined; - protected _identities: Identities | undefined; - protected _logs: Logs | undefined; - protected _multifactor: Multifactor | undefined; - protected _organizations: Organizations | undefined; - protected _permissions: Permissions | undefined; - protected _riskAssessments: RiskAssessments | undefined; - protected _roles: Roles | undefined; - protected _refreshToken: RefreshToken | undefined; - protected _sessions: Sessions | undefined; - - constructor(_options: Users.Options) { - this._options = _options; - } - - public get authenticationMethods(): AuthenticationMethods { - return (this._authenticationMethods ??= new AuthenticationMethods(this._options)); +export class UsersClient { + protected readonly _options: NormalizedClientOptionsWithAuth; + protected _authenticationMethods: AuthenticationMethodsClient | undefined; + protected _authenticators: AuthenticatorsClient | undefined; + protected _enrollments: EnrollmentsClient | undefined; + protected _federatedConnectionsTokensets: FederatedConnectionsTokensetsClient | undefined; + protected _identities: IdentitiesClient | undefined; + protected _logs: LogsClient | undefined; + protected _multifactor: MultifactorClient | undefined; + protected _organizations: OrganizationsClient | undefined; + protected _permissions: PermissionsClient | undefined; + protected _roles: RolesClient | undefined; + protected _refreshToken: RefreshTokenClient | undefined; + protected _sessions: SessionsClient | undefined; + + constructor(options: UsersClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } - public get authenticators(): Authenticators { - return (this._authenticators ??= new Authenticators(this._options)); + public get authenticationMethods(): AuthenticationMethodsClient { + return (this._authenticationMethods ??= new AuthenticationMethodsClient(this._options)); } - public get connectedAccounts(): ConnectedAccounts { - return (this._connectedAccounts ??= new ConnectedAccounts(this._options)); + public get authenticators(): AuthenticatorsClient { + return (this._authenticators ??= new AuthenticatorsClient(this._options)); } - public get enrollments(): Enrollments { - return (this._enrollments ??= new Enrollments(this._options)); + public get enrollments(): EnrollmentsClient { + return (this._enrollments ??= new EnrollmentsClient(this._options)); } - public get federatedConnectionsTokensets(): FederatedConnectionsTokensets { - return (this._federatedConnectionsTokensets ??= new FederatedConnectionsTokensets(this._options)); + public get federatedConnectionsTokensets(): FederatedConnectionsTokensetsClient { + return (this._federatedConnectionsTokensets ??= new FederatedConnectionsTokensetsClient(this._options)); } - public get identities(): Identities { - return (this._identities ??= new Identities(this._options)); + public get identities(): IdentitiesClient { + return (this._identities ??= new IdentitiesClient(this._options)); } - public get logs(): Logs { - return (this._logs ??= new Logs(this._options)); + public get logs(): LogsClient { + return (this._logs ??= new LogsClient(this._options)); } - public get multifactor(): Multifactor { - return (this._multifactor ??= new Multifactor(this._options)); + public get multifactor(): MultifactorClient { + return (this._multifactor ??= new MultifactorClient(this._options)); } - public get organizations(): Organizations { - return (this._organizations ??= new Organizations(this._options)); + public get organizations(): OrganizationsClient { + return (this._organizations ??= new OrganizationsClient(this._options)); } - public get permissions(): Permissions { - return (this._permissions ??= new Permissions(this._options)); + public get permissions(): PermissionsClient { + return (this._permissions ??= new PermissionsClient(this._options)); } - public get riskAssessments(): RiskAssessments { - return (this._riskAssessments ??= new RiskAssessments(this._options)); + public get roles(): RolesClient { + return (this._roles ??= new RolesClient(this._options)); } - public get roles(): Roles { - return (this._roles ??= new Roles(this._options)); + public get refreshToken(): RefreshTokenClient { + return (this._refreshToken ??= new RefreshTokenClient(this._options)); } - public get refreshToken(): RefreshToken { - return (this._refreshToken ??= new RefreshToken(this._options)); - } - - public get sessions(): Sessions { - return (this._sessions ??= new Sessions(this._options)); + public get sessions(): SessionsClient { + return (this._sessions ??= new SessionsClient(this._options)); } /** @@ -121,7 +111,7 @@ export class Users { * Auth0 limits the number of users you can return. If you exceed this threshold, please redefine your search, use the export job, or the User Import / Export extension. * * @param {Management.ListUsersRequestParameters} request - * @param {Users.RequestOptions} requestOptions - Request-specific configuration. + * @param {UsersClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -145,14 +135,17 @@ export class Users { */ public async list( request: Management.ListUsersRequestParameters = {}, - requestOptions?: Users.RequestOptions, + requestOptions?: UsersClient.RequestOptions, ): Promise> { const list = core.HttpResponsePromise.interceptFunction( async ( request: Management.ListUsersRequestParameters, ): Promise> => { + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:users", "read:user_idp_tokens"] }], + }; const { - page = 0, + page, per_page: perPage = 50, include_totals: includeTotals = true, sort, @@ -165,38 +158,41 @@ export class Users { } = request; const _queryParams: Record = {}; if (page !== undefined) { - _queryParams["page"] = page?.toString() ?? null; + _queryParams.page = page?.toString() ?? null; } if (perPage !== undefined) { - _queryParams["per_page"] = perPage?.toString() ?? null; + _queryParams.per_page = perPage?.toString() ?? null; } if (includeTotals !== undefined) { - _queryParams["include_totals"] = includeTotals?.toString() ?? null; + _queryParams.include_totals = includeTotals?.toString() ?? null; } if (sort !== undefined) { - _queryParams["sort"] = sort; + _queryParams.sort = sort; } if (connection !== undefined) { - _queryParams["connection"] = connection; + _queryParams.connection = connection; } if (fields !== undefined) { - _queryParams["fields"] = fields; + _queryParams.fields = fields; } if (includeFields !== undefined) { - _queryParams["include_fields"] = includeFields?.toString() ?? null; + _queryParams.include_fields = includeFields?.toString() ?? null; } if (q !== undefined) { - _queryParams["q"] = q; + _queryParams.q = q; } if (searchEngine !== undefined) { - _queryParams["search_engine"] = searchEngine; + _queryParams.search_engine = searchEngine; } if (primaryOrder !== undefined) { - _queryParams["primary_order"] = primaryOrder?.toString() ?? null; + _queryParams.primary_order = primaryOrder?.toString() ?? null; } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -212,7 +208,9 @@ export class Users { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -252,32 +250,18 @@ export class Users { }); } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /users."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/users"); }, ); - let _offset = request?.page != null ? request?.page : 0; + let _offset = request?.page != null ? request?.page : 1; const dataWithRawResponse = await list(request).withRawResponse(); return new core.Page({ response: dataWithRawResponse.data, rawResponse: dataWithRawResponse.rawResponse, - hasNextPage: (response) => (response?.users ?? []).length >= (request?.per_page ?? 1), + hasNextPage: (response) => (response?.users ?? []).length > 0, getItems: (response) => response?.users ?? [], - loadPage: (response) => { - _offset += response?.users != null ? response.users.length : 1; + loadPage: (_response) => { + _offset += 1; return list(core.setObjectProperty(request, "page", _offset)); }, }); @@ -289,7 +273,7 @@ export class Users { * Note: connection is required but other parameters such as email and password are dependent upon the type of connection. * * @param {Management.CreateUserRequestContent} request - * @param {Users.RequestOptions} requestOptions - Request-specific configuration. + * @param {UsersClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -304,18 +288,24 @@ export class Users { */ public create( request: Management.CreateUserRequestContent, - requestOptions?: Users.RequestOptions, + requestOptions?: UsersClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__create(request, requestOptions)); } private async __create( request: Management.CreateUserRequestContent, - requestOptions?: Users.RequestOptions, + requestOptions?: UsersClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["create:users"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -334,7 +324,9 @@ export class Users { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: _response.body as Management.CreateUserResponseContent, rawResponse: _response.rawResponse }; @@ -361,21 +353,7 @@ export class Users { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling POST /users."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/users"); } /** @@ -386,7 +364,7 @@ export class Users { * Therefore, when using this endpoint, make sure that you are searching for users via email addresses using the correct case. * * @param {Management.ListUsersByEmailRequestParameters} request - * @param {Users.RequestOptions} requestOptions - Request-specific configuration. + * @param {UsersClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -402,29 +380,35 @@ export class Users { */ public listUsersByEmail( request: Management.ListUsersByEmailRequestParameters, - requestOptions?: Users.RequestOptions, + requestOptions?: UsersClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__listUsersByEmail(request, requestOptions)); } private async __listUsersByEmail( request: Management.ListUsersByEmailRequestParameters, - requestOptions?: Users.RequestOptions, + requestOptions?: UsersClient.RequestOptions, ): Promise> { + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:users"] }], + }; const { fields, include_fields: includeFields, email } = request; const _queryParams: Record = {}; if (fields !== undefined) { - _queryParams["fields"] = fields; + _queryParams.fields = fields; } if (includeFields !== undefined) { - _queryParams["include_fields"] = includeFields?.toString() ?? null; + _queryParams.include_fields = includeFields?.toString() ?? null; } - _queryParams["email"] = email; - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _queryParams.email = email; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -440,7 +424,9 @@ export class Users { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: _response.body as Management.UserResponseSchema[], rawResponse: _response.rawResponse }; @@ -465,21 +451,7 @@ export class Users { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /users-by-email."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/users-by-email"); } /** @@ -487,7 +459,7 @@ export class Users { * * @param {string} id - ID of the user to retrieve. * @param {Management.GetUserRequestParameters} request - * @param {Users.RequestOptions} requestOptions - Request-specific configuration. + * @param {UsersClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -504,7 +476,7 @@ export class Users { public get( id: string, request: Management.GetUserRequestParameters = {}, - requestOptions?: Users.RequestOptions, + requestOptions?: UsersClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__get(id, request, requestOptions)); } @@ -512,21 +484,30 @@ export class Users { private async __get( id: string, request: Management.GetUserRequestParameters = {}, - requestOptions?: Users.RequestOptions, + requestOptions?: UsersClient.RequestOptions, ): Promise> { + const _metadata: core.EndpointMetadata = { + security: [ + { bearerAuth: [] }, + { oAuth2ClientCredentials: ["read:users", "read:current_user", "read:user_idp_tokens"] }, + ], + }; const { fields, include_fields: includeFields } = request; const _queryParams: Record = {}; if (fields !== undefined) { - _queryParams["fields"] = fields; + _queryParams.fields = fields; } if (includeFields !== undefined) { - _queryParams["include_fields"] = includeFields?.toString() ?? null; + _queryParams.include_fields = includeFields?.toString() ?? null; } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -542,7 +523,9 @@ export class Users { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: _response.body as Management.GetUserResponseContent, rawResponse: _response.rawResponse }; @@ -569,28 +552,14 @@ export class Users { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /users/{id}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/users/{id}"); } /** * Delete a user by user ID. This action cannot be undone. For Auth0 Dashboard instructions, see Delete Users. * * @param {string} id - ID of the user to delete. - * @param {Users.RequestOptions} requestOptions - Request-specific configuration. + * @param {UsersClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -600,14 +569,23 @@ export class Users { * @example * await client.users.delete("id") */ - public delete(id: string, requestOptions?: Users.RequestOptions): core.HttpResponsePromise { + public delete(id: string, requestOptions?: UsersClient.RequestOptions): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__delete(id, requestOptions)); } - private async __delete(id: string, requestOptions?: Users.RequestOptions): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + private async __delete( + id: string, + requestOptions?: UsersClient.RequestOptions, + ): Promise> { + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["delete:users", "delete:current_user"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -623,7 +601,9 @@ export class Users { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -648,21 +628,7 @@ export class Users { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling DELETE /users/{id}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "DELETE", "/users/{id}"); } /** @@ -739,7 +705,7 @@ export class Users { * * @param {string} id - ID of the user to update. * @param {Management.UpdateUserRequestContent} request - * @param {Users.RequestOptions} requestOptions - Request-specific configuration. + * @param {UsersClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -753,7 +719,7 @@ export class Users { public update( id: string, request: Management.UpdateUserRequestContent = {}, - requestOptions?: Users.RequestOptions, + requestOptions?: UsersClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__update(id, request, requestOptions)); } @@ -761,11 +727,26 @@ export class Users { private async __update( id: string, request: Management.UpdateUserRequestContent = {}, - requestOptions?: Users.RequestOptions, + requestOptions?: UsersClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [ + { bearerAuth: [] }, + { + oAuth2ClientCredentials: [ + "update:users", + "update:users_app_metadata", + "update:current_user_metadata", + ], + }, + ], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -784,7 +765,9 @@ export class Users { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: _response.body as Management.UpdateUserResponseContent, rawResponse: _response.rawResponse }; @@ -811,28 +794,14 @@ export class Users { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling PATCH /users/{id}."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "PATCH", "/users/{id}"); } /** * Remove an existing multi-factor authentication (MFA) recovery code and generate a new one. If a user cannot access the original device or account used for MFA enrollment, they can use a recovery code to authenticate. * * @param {string} id - ID of the user to regenerate a multi-factor authentication recovery code for. - * @param {Users.RequestOptions} requestOptions - Request-specific configuration. + * @param {UsersClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -844,18 +813,24 @@ export class Users { */ public regenerateRecoveryCode( id: string, - requestOptions?: Users.RequestOptions, + requestOptions?: UsersClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__regenerateRecoveryCode(id, requestOptions)); } private async __regenerateRecoveryCode( id: string, - requestOptions?: Users.RequestOptions, + requestOptions?: UsersClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:users"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -871,7 +846,9 @@ export class Users { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -899,23 +876,12 @@ export class Users { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling POST /users/{id}/recovery-code-regeneration.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "POST", + "/users/{id}/recovery-code-regeneration", + ); } /** @@ -923,7 +889,7 @@ export class Users { * * @param {string} id - ID of the user. * @param {Management.RevokeUserAccessRequestContent} request - * @param {Users.RequestOptions} requestOptions - Request-specific configuration. + * @param {UsersClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -936,7 +902,7 @@ export class Users { public revokeAccess( id: string, request: Management.RevokeUserAccessRequestContent = {}, - requestOptions?: Users.RequestOptions, + requestOptions?: UsersClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__revokeAccess(id, request, requestOptions)); } @@ -944,11 +910,17 @@ export class Users { private async __revokeAccess( id: string, request: Management.RevokeUserAccessRequestContent = {}, - requestOptions?: Users.RequestOptions, + requestOptions?: UsersClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["delete:sessions", "delete:refresh_tokens"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -967,7 +939,9 @@ export class Users { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -992,26 +966,6 @@ export class Users { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling POST /users/{id}/revoke-access.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/users/{id}/revoke-access"); } } diff --git a/src/management/api/resources/users/resources/authenticationMethods/client/Client.ts b/src/management/api/resources/users/resources/authenticationMethods/client/Client.ts index 150c635b8e..b98e4930ff 100644 --- a/src/management/api/resources/users/resources/authenticationMethods/client/Client.ts +++ b/src/management/api/resources/users/resources/authenticationMethods/client/Client.ts @@ -1,23 +1,25 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../core/headers.js"; import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; +import * as environments from "../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../errors/index.js"; +import * as Management from "../../../../../index.js"; -export declare namespace AuthenticationMethods { +export declare namespace AuthenticationMethodsClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class AuthenticationMethods { - protected readonly _options: AuthenticationMethods.Options; +export class AuthenticationMethodsClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: AuthenticationMethods.Options) { - this._options = _options; + constructor(options: AuthenticationMethodsClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** @@ -25,7 +27,7 @@ export class AuthenticationMethods { * * @param {string} id - The ID of the user in question. * @param {Management.ListUserAuthenticationMethodsRequestParameters} request - * @param {AuthenticationMethods.RequestOptions} requestOptions - Request-specific configuration. + * @param {AuthenticationMethodsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -43,7 +45,7 @@ export class AuthenticationMethods { public async list( id: string, request: Management.ListUserAuthenticationMethodsRequestParameters = {}, - requestOptions?: AuthenticationMethods.RequestOptions, + requestOptions?: AuthenticationMethodsClient.RequestOptions, ): Promise< core.Page< Management.UserAuthenticationMethod, @@ -56,20 +58,26 @@ export class AuthenticationMethods { ): Promise< core.WithRawResponse > => { - const { page = 0, per_page: perPage = 50, include_totals: includeTotals = true } = request; + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:authentication_methods"] }], + }; + const { page, per_page: perPage = 50, include_totals: includeTotals = true } = request; const _queryParams: Record = {}; if (page !== undefined) { - _queryParams["page"] = page?.toString() ?? null; + _queryParams.page = page?.toString() ?? null; } if (perPage !== undefined) { - _queryParams["per_page"] = perPage?.toString() ?? null; + _queryParams.per_page = perPage?.toString() ?? null; } if (includeTotals !== undefined) { - _queryParams["include_totals"] = includeTotals?.toString() ?? null; + _queryParams.include_totals = includeTotals?.toString() ?? null; } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -85,7 +93,9 @@ export class AuthenticationMethods { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -122,26 +132,15 @@ export class AuthenticationMethods { }); } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /users/{id}/authentication-methods.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "GET", + "/users/{id}/authentication-methods", + ); }, ); - let _offset = request?.page != null ? request?.page : 0; + let _offset = request?.page != null ? request?.page : 1; const dataWithRawResponse = await list(request).withRawResponse(); return new core.Page< Management.UserAuthenticationMethod, @@ -149,10 +148,10 @@ export class AuthenticationMethods { >({ response: dataWithRawResponse.data, rawResponse: dataWithRawResponse.rawResponse, - hasNextPage: (response) => (response?.authenticators ?? []).length >= (request?.per_page ?? 1), + hasNextPage: (response) => (response?.authenticators ?? []).length > 0, getItems: (response) => response?.authenticators ?? [], - loadPage: (response) => { - _offset += response?.authenticators != null ? response.authenticators.length : 1; + loadPage: (_response) => { + _offset += 1; return list(core.setObjectProperty(request, "page", _offset)); }, }); @@ -163,7 +162,7 @@ export class AuthenticationMethods { * * @param {string} id - The ID of the user to whom the new authentication method will be assigned. * @param {Management.CreateUserAuthenticationMethodRequestContent} request - * @param {AuthenticationMethods.RequestOptions} requestOptions - Request-specific configuration. + * @param {AuthenticationMethodsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -180,7 +179,7 @@ export class AuthenticationMethods { public create( id: string, request: Management.CreateUserAuthenticationMethodRequestContent, - requestOptions?: AuthenticationMethods.RequestOptions, + requestOptions?: AuthenticationMethodsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__create(id, request, requestOptions)); } @@ -188,11 +187,17 @@ export class AuthenticationMethods { private async __create( id: string, request: Management.CreateUserAuthenticationMethodRequestContent, - requestOptions?: AuthenticationMethods.RequestOptions, + requestOptions?: AuthenticationMethodsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["create:authentication_methods"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -211,7 +216,9 @@ export class AuthenticationMethods { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -243,23 +250,12 @@ export class AuthenticationMethods { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling POST /users/{id}/authentication-methods.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "POST", + "/users/{id}/authentication-methods", + ); } /** @@ -269,7 +265,7 @@ export class AuthenticationMethods { * * @param {string} id - The ID of the user in question. * @param {Management.SetUserAuthenticationMethodsRequestContent} request - * @param {AuthenticationMethods.RequestOptions} requestOptions - Request-specific configuration. + * @param {AuthenticationMethodsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -285,7 +281,7 @@ export class AuthenticationMethods { public set( id: string, request: Management.SetUserAuthenticationMethodsRequestContent, - requestOptions?: AuthenticationMethods.RequestOptions, + requestOptions?: AuthenticationMethodsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__set(id, request, requestOptions)); } @@ -293,11 +289,17 @@ export class AuthenticationMethods { private async __set( id: string, request: Management.SetUserAuthenticationMethodsRequestContent, - requestOptions?: AuthenticationMethods.RequestOptions, + requestOptions?: AuthenticationMethodsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:authentication_methods"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -316,7 +318,9 @@ export class AuthenticationMethods { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -346,30 +350,19 @@ export class AuthenticationMethods { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling PUT /users/{id}/authentication-methods.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "PUT", + "/users/{id}/authentication-methods", + ); } /** * Remove all authentication methods (i.e., enrolled MFA factors) from the specified user account. This action cannot be undone. * * @param {string} id - The ID of the user in question. - * @param {AuthenticationMethods.RequestOptions} requestOptions - Request-specific configuration. + * @param {AuthenticationMethodsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -381,18 +374,24 @@ export class AuthenticationMethods { */ public deleteAll( id: string, - requestOptions?: AuthenticationMethods.RequestOptions, + requestOptions?: AuthenticationMethodsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__deleteAll(id, requestOptions)); } private async __deleteAll( id: string, - requestOptions?: AuthenticationMethods.RequestOptions, + requestOptions?: AuthenticationMethodsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["delete:authentication_methods"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -408,7 +407,9 @@ export class AuthenticationMethods { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -433,29 +434,18 @@ export class AuthenticationMethods { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling DELETE /users/{id}/authentication-methods.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "DELETE", + "/users/{id}/authentication-methods", + ); } /** * @param {string} id - The ID of the user in question. - * @param {string} authenticationMethodId - The ID of the authentication methods in question. - * @param {AuthenticationMethods.RequestOptions} requestOptions - Request-specific configuration. + * @param {string} authentication_method_id - The ID of the authentication methods in question. + * @param {AuthenticationMethodsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -468,20 +458,26 @@ export class AuthenticationMethods { */ public get( id: string, - authenticationMethodId: string, - requestOptions?: AuthenticationMethods.RequestOptions, + authentication_method_id: string, + requestOptions?: AuthenticationMethodsClient.RequestOptions, ): core.HttpResponsePromise { - return core.HttpResponsePromise.fromPromise(this.__get(id, authenticationMethodId, requestOptions)); + return core.HttpResponsePromise.fromPromise(this.__get(id, authentication_method_id, requestOptions)); } private async __get( id: string, - authenticationMethodId: string, - requestOptions?: AuthenticationMethods.RequestOptions, + authentication_method_id: string, + requestOptions?: AuthenticationMethodsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:authentication_methods"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -489,7 +485,7 @@ export class AuthenticationMethods { (await core.Supplier.get(this._options.baseUrl)) ?? (await core.Supplier.get(this._options.environment)) ?? environments.ManagementEnvironment.Default, - `users/${core.url.encodePathParam(id)}/authentication-methods/${core.url.encodePathParam(authenticationMethodId)}`, + `users/${core.url.encodePathParam(id)}/authentication-methods/${core.url.encodePathParam(authentication_method_id)}`, ), method: "GET", headers: _headers, @@ -497,7 +493,9 @@ export class AuthenticationMethods { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -527,31 +525,20 @@ export class AuthenticationMethods { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /users/{id}/authentication-methods/{authentication_method_id}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "GET", + "/users/{id}/authentication-methods/{authentication_method_id}", + ); } /** * Remove the authentication method with the given ID from the specified user. For more information, review Manage Authentication Methods with Management API. * * @param {string} id - The ID of the user in question. - * @param {string} authenticationMethodId - The ID of the authentication method to delete. - * @param {AuthenticationMethods.RequestOptions} requestOptions - Request-specific configuration. + * @param {string} authentication_method_id - The ID of the authentication method to delete. + * @param {AuthenticationMethodsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -564,20 +551,26 @@ export class AuthenticationMethods { */ public delete( id: string, - authenticationMethodId: string, - requestOptions?: AuthenticationMethods.RequestOptions, + authentication_method_id: string, + requestOptions?: AuthenticationMethodsClient.RequestOptions, ): core.HttpResponsePromise { - return core.HttpResponsePromise.fromPromise(this.__delete(id, authenticationMethodId, requestOptions)); + return core.HttpResponsePromise.fromPromise(this.__delete(id, authentication_method_id, requestOptions)); } private async __delete( id: string, - authenticationMethodId: string, - requestOptions?: AuthenticationMethods.RequestOptions, + authentication_method_id: string, + requestOptions?: AuthenticationMethodsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["delete:authentication_methods"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -585,7 +578,7 @@ export class AuthenticationMethods { (await core.Supplier.get(this._options.baseUrl)) ?? (await core.Supplier.get(this._options.environment)) ?? environments.ManagementEnvironment.Default, - `users/${core.url.encodePathParam(id)}/authentication-methods/${core.url.encodePathParam(authenticationMethodId)}`, + `users/${core.url.encodePathParam(id)}/authentication-methods/${core.url.encodePathParam(authentication_method_id)}`, ), method: "DELETE", headers: _headers, @@ -593,7 +586,9 @@ export class AuthenticationMethods { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -620,32 +615,21 @@ export class AuthenticationMethods { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling DELETE /users/{id}/authentication-methods/{authentication_method_id}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "DELETE", + "/users/{id}/authentication-methods/{authentication_method_id}", + ); } /** * Modify the authentication method with the given ID from the specified user. For more information, review Manage Authentication Methods with Management API. * * @param {string} id - The ID of the user in question. - * @param {string} authenticationMethodId - The ID of the authentication method to update. + * @param {string} authentication_method_id - The ID of the authentication method to update. * @param {Management.UpdateUserAuthenticationMethodRequestContent} request - * @param {AuthenticationMethods.RequestOptions} requestOptions - Request-specific configuration. + * @param {AuthenticationMethodsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -658,22 +642,30 @@ export class AuthenticationMethods { */ public update( id: string, - authenticationMethodId: string, + authentication_method_id: string, request: Management.UpdateUserAuthenticationMethodRequestContent = {}, - requestOptions?: AuthenticationMethods.RequestOptions, + requestOptions?: AuthenticationMethodsClient.RequestOptions, ): core.HttpResponsePromise { - return core.HttpResponsePromise.fromPromise(this.__update(id, authenticationMethodId, request, requestOptions)); + return core.HttpResponsePromise.fromPromise( + this.__update(id, authentication_method_id, request, requestOptions), + ); } private async __update( id: string, - authenticationMethodId: string, + authentication_method_id: string, request: Management.UpdateUserAuthenticationMethodRequestContent = {}, - requestOptions?: AuthenticationMethods.RequestOptions, + requestOptions?: AuthenticationMethodsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:authentication_methods"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -681,7 +673,7 @@ export class AuthenticationMethods { (await core.Supplier.get(this._options.baseUrl)) ?? (await core.Supplier.get(this._options.environment)) ?? environments.ManagementEnvironment.Default, - `users/${core.url.encodePathParam(id)}/authentication-methods/${core.url.encodePathParam(authenticationMethodId)}`, + `users/${core.url.encodePathParam(id)}/authentication-methods/${core.url.encodePathParam(authentication_method_id)}`, ), method: "PATCH", headers: _headers, @@ -692,7 +684,9 @@ export class AuthenticationMethods { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -722,26 +716,11 @@ export class AuthenticationMethods { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling PATCH /users/{id}/authentication-methods/{authentication_method_id}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "PATCH", + "/users/{id}/authentication-methods/{authentication_method_id}", + ); } } diff --git a/src/management/api/resources/users/resources/authenticators/client/Client.ts b/src/management/api/resources/users/resources/authenticators/client/Client.ts index a37730e3e3..a95b543ef3 100644 --- a/src/management/api/resources/users/resources/authenticators/client/Client.ts +++ b/src/management/api/resources/users/resources/authenticators/client/Client.ts @@ -1,30 +1,32 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../core/headers.js"; import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; +import * as environments from "../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../errors/index.js"; +import * as Management from "../../../../../index.js"; -export declare namespace Authenticators { +export declare namespace AuthenticatorsClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Authenticators { - protected readonly _options: Authenticators.Options; +export class AuthenticatorsClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: Authenticators.Options) { - this._options = _options; + constructor(options: AuthenticatorsClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** * Remove all authenticators registered to a given user ID, such as OTP, email, phone, and push-notification. This action cannot be undone. For more information, review Manage Authentication Methods with Management API. * * @param {string} id - ID of the user to delete. - * @param {Authenticators.RequestOptions} requestOptions - Request-specific configuration. + * @param {AuthenticatorsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -34,17 +36,23 @@ export class Authenticators { * @example * await client.users.authenticators.deleteAll("id") */ - public deleteAll(id: string, requestOptions?: Authenticators.RequestOptions): core.HttpResponsePromise { + public deleteAll(id: string, requestOptions?: AuthenticatorsClient.RequestOptions): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__deleteAll(id, requestOptions)); } private async __deleteAll( id: string, - requestOptions?: Authenticators.RequestOptions, + requestOptions?: AuthenticatorsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["delete:guardian_enrollments"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -60,7 +68,9 @@ export class Authenticators { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -85,26 +95,6 @@ export class Authenticators { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling DELETE /users/{id}/authenticators.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError(_response.error, _response.rawResponse, "DELETE", "/users/{id}/authenticators"); } } diff --git a/src/management/api/resources/users/resources/connectedAccounts/client/Client.ts b/src/management/api/resources/users/resources/connectedAccounts/client/Client.ts deleted file mode 100644 index 14bcef1b0d..0000000000 --- a/src/management/api/resources/users/resources/connectedAccounts/client/Client.ts +++ /dev/null @@ -1,146 +0,0 @@ -// This file was auto-generated by Fern from our API Definition. - -import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; -import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; -import * as errors from "../../../../../../errors/index.js"; - -export declare namespace ConnectedAccounts { - export interface Options extends BaseClientOptions {} - - export interface RequestOptions extends BaseRequestOptions {} -} - -export class ConnectedAccounts { - protected readonly _options: ConnectedAccounts.Options; - - constructor(_options: ConnectedAccounts.Options) { - this._options = _options; - } - - /** - * Retrieve all connected accounts associated with the user. - * - * @param {string} id - ID of the user to list connected accounts for. - * @param {Management.GetUserConnectedAccountsRequestParameters} request - * @param {ConnectedAccounts.RequestOptions} requestOptions - Request-specific configuration. - * - * @throws {@link Management.BadRequestError} - * @throws {@link Management.UnauthorizedError} - * @throws {@link Management.ForbiddenError} - * @throws {@link Management.TooManyRequestsError} - * - * @example - * await client.users.connectedAccounts.list("id", { - * from: "from", - * take: 1 - * }) - */ - public async list( - id: string, - request: Management.GetUserConnectedAccountsRequestParameters = {}, - requestOptions?: ConnectedAccounts.RequestOptions, - ): Promise> { - const list = core.HttpResponsePromise.interceptFunction( - async ( - request: Management.GetUserConnectedAccountsRequestParameters, - ): Promise> => { - const { from: from_, take = 50 } = request; - const _queryParams: Record = {}; - if (from_ !== undefined) { - _queryParams["from"] = from_; - } - if (take !== undefined) { - _queryParams["take"] = take?.toString() ?? null; - } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( - this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), - requestOptions?.headers, - ); - const _response = await (this._options.fetcher ?? core.fetcher)({ - url: core.url.join( - (await core.Supplier.get(this._options.baseUrl)) ?? - (await core.Supplier.get(this._options.environment)) ?? - environments.ManagementEnvironment.Default, - `users/${core.url.encodePathParam(id)}/connected-accounts`, - ), - method: "GET", - headers: _headers, - queryParameters: { ..._queryParams, ...requestOptions?.queryParams }, - timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, - maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, - abortSignal: requestOptions?.abortSignal, - fetchFn: this._options?.fetch, - }); - if (_response.ok) { - return { - data: _response.body as Management.ListUserConnectedAccountsResponseContent, - rawResponse: _response.rawResponse, - }; - } - if (_response.error.reason === "status-code") { - switch (_response.error.statusCode) { - case 400: - throw new Management.BadRequestError( - _response.error.body as unknown, - _response.rawResponse, - ); - case 401: - throw new Management.UnauthorizedError( - _response.error.body as unknown, - _response.rawResponse, - ); - case 403: - throw new Management.ForbiddenError(_response.error.body as unknown, _response.rawResponse); - case 429: - throw new Management.TooManyRequestsError( - _response.error.body as unknown, - _response.rawResponse, - ); - default: - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.body, - rawResponse: _response.rawResponse, - }); - } - } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /users/{id}/connected-accounts.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - }, - ); - const dataWithRawResponse = await list(request).withRawResponse(); - return new core.Page({ - response: dataWithRawResponse.data, - rawResponse: dataWithRawResponse.rawResponse, - hasNextPage: (response) => - response?.next != null && !(typeof response?.next === "string" && response?.next === ""), - getItems: (response) => response?.connected_accounts ?? [], - loadPage: (response) => { - return list(core.setObjectProperty(request, "from", response?.next)); - }, - }); - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; - } -} diff --git a/src/management/api/resources/users/resources/connectedAccounts/client/index.ts b/src/management/api/resources/users/resources/connectedAccounts/client/index.ts deleted file mode 100644 index cb0ff5c3b5..0000000000 --- a/src/management/api/resources/users/resources/connectedAccounts/client/index.ts +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/src/management/api/resources/users/resources/connectedAccounts/index.ts b/src/management/api/resources/users/resources/connectedAccounts/index.ts deleted file mode 100644 index 914b8c3c72..0000000000 --- a/src/management/api/resources/users/resources/connectedAccounts/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./client/index.js"; diff --git a/src/management/api/resources/users/resources/enrollments/client/Client.ts b/src/management/api/resources/users/resources/enrollments/client/Client.ts index 8781617f4b..31ad71192b 100644 --- a/src/management/api/resources/users/resources/enrollments/client/Client.ts +++ b/src/management/api/resources/users/resources/enrollments/client/Client.ts @@ -1,30 +1,32 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../core/headers.js"; import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; +import * as environments from "../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../errors/index.js"; +import * as Management from "../../../../../index.js"; -export declare namespace Enrollments { +export declare namespace EnrollmentsClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Enrollments { - protected readonly _options: Enrollments.Options; +export class EnrollmentsClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: Enrollments.Options) { - this._options = _options; + constructor(options: EnrollmentsClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** * Retrieve the first multi-factor authentication enrollment that a specific user has confirmed. * * @param {string} id - ID of the user to list enrollments for. - * @param {Enrollments.RequestOptions} requestOptions - Request-specific configuration. + * @param {EnrollmentsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -37,18 +39,24 @@ export class Enrollments { */ public get( id: string, - requestOptions?: Enrollments.RequestOptions, + requestOptions?: EnrollmentsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__get(id, requestOptions)); } private async __get( id: string, - requestOptions?: Enrollments.RequestOptions, + requestOptions?: EnrollmentsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:users", "read:current_user"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -64,7 +72,9 @@ export class Enrollments { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: _response.body as Management.UsersEnrollment[], rawResponse: _response.rawResponse }; @@ -91,24 +101,6 @@ export class Enrollments { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /users/{id}/enrollments."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/users/{id}/enrollments"); } } diff --git a/src/management/api/resources/users/resources/federatedConnectionsTokensets/client/Client.ts b/src/management/api/resources/users/resources/federatedConnectionsTokensets/client/Client.ts index 846c6b62d1..75c87eba23 100644 --- a/src/management/api/resources/users/resources/federatedConnectionsTokensets/client/Client.ts +++ b/src/management/api/resources/users/resources/federatedConnectionsTokensets/client/Client.ts @@ -1,30 +1,32 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../core/headers.js"; import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; +import * as environments from "../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../errors/index.js"; +import * as Management from "../../../../../index.js"; -export declare namespace FederatedConnectionsTokensets { +export declare namespace FederatedConnectionsTokensetsClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class FederatedConnectionsTokensets { - protected readonly _options: FederatedConnectionsTokensets.Options; +export class FederatedConnectionsTokensetsClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: FederatedConnectionsTokensets.Options) { - this._options = _options; + constructor(options: FederatedConnectionsTokensetsClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** * List active federated connections tokensets for a provided user * * @param {string} id - User identifier - * @param {FederatedConnectionsTokensets.RequestOptions} requestOptions - Request-specific configuration. + * @param {FederatedConnectionsTokensetsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.UnauthorizedError} * @throws {@link Management.ForbiddenError} @@ -36,18 +38,24 @@ export class FederatedConnectionsTokensets { */ public list( id: string, - requestOptions?: FederatedConnectionsTokensets.RequestOptions, + requestOptions?: FederatedConnectionsTokensetsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__list(id, requestOptions)); } private async __list( id: string, - requestOptions?: FederatedConnectionsTokensets.RequestOptions, + requestOptions?: FederatedConnectionsTokensetsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:federated_connections_tokens"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -63,7 +71,9 @@ export class FederatedConnectionsTokensets { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -91,29 +101,18 @@ export class FederatedConnectionsTokensets { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /users/{id}/federated-connections-tokensets.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "GET", + "/users/{id}/federated-connections-tokensets", + ); } /** * @param {string} id - Id of the user that owns the tokenset - * @param {string} tokensetId - The tokenset id - * @param {FederatedConnectionsTokensets.RequestOptions} requestOptions - Request-specific configuration. + * @param {string} tokenset_id - The tokenset id + * @param {FederatedConnectionsTokensetsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -125,20 +124,26 @@ export class FederatedConnectionsTokensets { */ public delete( id: string, - tokensetId: string, - requestOptions?: FederatedConnectionsTokensets.RequestOptions, + tokenset_id: string, + requestOptions?: FederatedConnectionsTokensetsClient.RequestOptions, ): core.HttpResponsePromise { - return core.HttpResponsePromise.fromPromise(this.__delete(id, tokensetId, requestOptions)); + return core.HttpResponsePromise.fromPromise(this.__delete(id, tokenset_id, requestOptions)); } private async __delete( id: string, - tokensetId: string, - requestOptions?: FederatedConnectionsTokensets.RequestOptions, + tokenset_id: string, + requestOptions?: FederatedConnectionsTokensetsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["delete:federated_connections_tokens"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -146,7 +151,7 @@ export class FederatedConnectionsTokensets { (await core.Supplier.get(this._options.baseUrl)) ?? (await core.Supplier.get(this._options.environment)) ?? environments.ManagementEnvironment.Default, - `users/${core.url.encodePathParam(id)}/federated-connections-tokensets/${core.url.encodePathParam(tokensetId)}`, + `users/${core.url.encodePathParam(id)}/federated-connections-tokensets/${core.url.encodePathParam(tokenset_id)}`, ), method: "DELETE", headers: _headers, @@ -154,7 +159,9 @@ export class FederatedConnectionsTokensets { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -179,26 +186,11 @@ export class FederatedConnectionsTokensets { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling DELETE /users/{id}/federated-connections-tokensets/{tokenset_id}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "DELETE", + "/users/{id}/federated-connections-tokensets/{tokenset_id}", + ); } } diff --git a/src/management/api/resources/users/resources/identities/client/Client.ts b/src/management/api/resources/users/resources/identities/client/Client.ts index ff2331e4c8..be4e898b14 100644 --- a/src/management/api/resources/users/resources/identities/client/Client.ts +++ b/src/management/api/resources/users/resources/identities/client/Client.ts @@ -1,23 +1,25 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../core/headers.js"; import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; +import * as environments from "../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../errors/index.js"; +import * as Management from "../../../../../index.js"; -export declare namespace Identities { +export declare namespace IdentitiesClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Identities { - protected readonly _options: Identities.Options; +export class IdentitiesClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: Identities.Options) { - this._options = _options; + constructor(options: IdentitiesClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** @@ -52,7 +54,7 @@ export class Identities { * * @param {string} id - ID of the primary user account to link a second user account to. * @param {Management.LinkUserIdentityRequestContent} request - * @param {Identities.RequestOptions} requestOptions - Request-specific configuration. + * @param {IdentitiesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -66,7 +68,7 @@ export class Identities { public link( id: string, request: Management.LinkUserIdentityRequestContent = {}, - requestOptions?: Identities.RequestOptions, + requestOptions?: IdentitiesClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__link(id, request, requestOptions)); } @@ -74,11 +76,20 @@ export class Identities { private async __link( id: string, request: Management.LinkUserIdentityRequestContent = {}, - requestOptions?: Identities.RequestOptions, + requestOptions?: IdentitiesClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [ + { bearerAuth: [] }, + { oAuth2ClientCredentials: ["update:users", "update:current_user_identities"] }, + ], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -97,7 +108,9 @@ export class Identities { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: _response.body as Management.UserIdentity[], rawResponse: _response.rawResponse }; @@ -124,21 +137,7 @@ export class Identities { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling POST /users/{id}/identities."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/users/{id}/identities"); } /** @@ -148,8 +147,8 @@ export class Identities { * * @param {string} id - ID of the primary user account. * @param {Management.UserIdentityProviderEnum} provider - Identity provider name of the secondary linked account (e.g. `google-oauth2`). - * @param {string} userId - ID of the secondary linked account (e.g. `123456789081523216417` part after the `|` in `google-oauth2|123456789081523216417`). - * @param {Identities.RequestOptions} requestOptions - Request-specific configuration. + * @param {string} user_id - ID of the secondary linked account (e.g. `123456789081523216417` part after the `|` in `google-oauth2|123456789081523216417`). + * @param {IdentitiesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -162,21 +161,30 @@ export class Identities { public delete( id: string, provider: Management.UserIdentityProviderEnum, - userId: string, - requestOptions?: Identities.RequestOptions, + user_id: string, + requestOptions?: IdentitiesClient.RequestOptions, ): core.HttpResponsePromise { - return core.HttpResponsePromise.fromPromise(this.__delete(id, provider, userId, requestOptions)); + return core.HttpResponsePromise.fromPromise(this.__delete(id, provider, user_id, requestOptions)); } private async __delete( id: string, provider: Management.UserIdentityProviderEnum, - userId: string, - requestOptions?: Identities.RequestOptions, + user_id: string, + requestOptions?: IdentitiesClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [ + { bearerAuth: [] }, + { oAuth2ClientCredentials: ["update:users", "update:current_user_identities"] }, + ], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -184,7 +192,7 @@ export class Identities { (await core.Supplier.get(this._options.baseUrl)) ?? (await core.Supplier.get(this._options.environment)) ?? environments.ManagementEnvironment.Default, - `users/${core.url.encodePathParam(id)}/identities/${core.url.encodePathParam(provider)}/${core.url.encodePathParam(userId)}`, + `users/${core.url.encodePathParam(id)}/identities/${core.url.encodePathParam(provider)}/${core.url.encodePathParam(user_id)}`, ), method: "DELETE", headers: _headers, @@ -192,7 +200,9 @@ export class Identities { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -220,26 +230,11 @@ export class Identities { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling DELETE /users/{id}/identities/{provider}/{user_id}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "DELETE", + "/users/{id}/identities/{provider}/{user_id}", + ); } } diff --git a/src/management/api/resources/users/resources/index.ts b/src/management/api/resources/users/resources/index.ts index 6c625e352d..c8f9279b2b 100644 --- a/src/management/api/resources/users/resources/index.ts +++ b/src/management/api/resources/users/resources/index.ts @@ -1,6 +1,5 @@ export * as authenticationMethods from "./authenticationMethods/index.js"; export * as authenticators from "./authenticators/index.js"; -export * as connectedAccounts from "./connectedAccounts/index.js"; export * as enrollments from "./enrollments/index.js"; export * as federatedConnectionsTokensets from "./federatedConnectionsTokensets/index.js"; export * as identities from "./identities/index.js"; @@ -8,7 +7,6 @@ export * as logs from "./logs/index.js"; export * as multifactor from "./multifactor/index.js"; export * as organizations from "./organizations/index.js"; export * as permissions from "./permissions/index.js"; -export * as riskAssessments from "./riskAssessments/index.js"; -export * as roles from "./roles/index.js"; export * as refreshToken from "./refreshToken/index.js"; +export * as roles from "./roles/index.js"; export * as sessions from "./sessions/index.js"; diff --git a/src/management/api/resources/users/resources/logs/client/Client.ts b/src/management/api/resources/users/resources/logs/client/Client.ts index 3ee0641ebc..d924f79438 100644 --- a/src/management/api/resources/users/resources/logs/client/Client.ts +++ b/src/management/api/resources/users/resources/logs/client/Client.ts @@ -1,23 +1,25 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../core/headers.js"; import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; +import * as environments from "../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../errors/index.js"; +import * as Management from "../../../../../index.js"; -export declare namespace Logs { +export declare namespace LogsClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Logs { - protected readonly _options: Logs.Options; +export class LogsClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: Logs.Options) { - this._options = _options; + constructor(options: LogsClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** @@ -31,7 +33,7 @@ export class Logs { * * @param {string} id - ID of the user of the logs to retrieve * @param {Management.ListUserLogsRequestParameters} request - * @param {Logs.RequestOptions} requestOptions - Request-specific configuration. + * @param {LogsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -49,29 +51,35 @@ export class Logs { public async list( id: string, request: Management.ListUserLogsRequestParameters = {}, - requestOptions?: Logs.RequestOptions, + requestOptions?: LogsClient.RequestOptions, ): Promise> { const list = core.HttpResponsePromise.interceptFunction( async ( request: Management.ListUserLogsRequestParameters, ): Promise> => { - const { page = 0, per_page: perPage = 50, sort, include_totals: includeTotals = true } = request; + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:logs", "read:logs_users"] }], + }; + const { page, per_page: perPage = 50, sort, include_totals: includeTotals = true } = request; const _queryParams: Record = {}; if (page !== undefined) { - _queryParams["page"] = page?.toString() ?? null; + _queryParams.page = page?.toString() ?? null; } if (perPage !== undefined) { - _queryParams["per_page"] = perPage?.toString() ?? null; + _queryParams.per_page = perPage?.toString() ?? null; } if (sort !== undefined) { - _queryParams["sort"] = sort; + _queryParams.sort = sort; } if (includeTotals !== undefined) { - _queryParams["include_totals"] = includeTotals?.toString() ?? null; + _queryParams.include_totals = includeTotals?.toString() ?? null; } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -87,7 +95,9 @@ export class Logs { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -122,38 +132,20 @@ export class Logs { }); } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /users/{id}/logs."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/users/{id}/logs"); }, ); - let _offset = request?.page != null ? request?.page : 0; + let _offset = request?.page != null ? request?.page : 1; const dataWithRawResponse = await list(request).withRawResponse(); return new core.Page({ response: dataWithRawResponse.data, rawResponse: dataWithRawResponse.rawResponse, - hasNextPage: (response) => (response?.logs ?? []).length >= (request?.per_page ?? 1), + hasNextPage: (response) => (response?.logs ?? []).length > 0, getItems: (response) => response?.logs ?? [], - loadPage: (response) => { - _offset += response?.logs != null ? response.logs.length : 1; + loadPage: (_response) => { + _offset += 1; return list(core.setObjectProperty(request, "page", _offset)); }, }); } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; - } } diff --git a/src/management/api/resources/users/resources/multifactor/client/Client.ts b/src/management/api/resources/users/resources/multifactor/client/Client.ts index 11257dfd20..027d4fbdc8 100644 --- a/src/management/api/resources/users/resources/multifactor/client/Client.ts +++ b/src/management/api/resources/users/resources/multifactor/client/Client.ts @@ -1,30 +1,32 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../core/headers.js"; import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; +import * as environments from "../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../errors/index.js"; +import * as Management from "../../../../../index.js"; -export declare namespace Multifactor { +export declare namespace MultifactorClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Multifactor { - protected readonly _options: Multifactor.Options; +export class MultifactorClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: Multifactor.Options) { - this._options = _options; + constructor(options: MultifactorClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** * Invalidate all remembered browsers across all authentication factors for a user. * * @param {string} id - ID of the user to invalidate all remembered browsers and authentication factors for. - * @param {Multifactor.RequestOptions} requestOptions - Request-specific configuration. + * @param {MultifactorClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -35,18 +37,24 @@ export class Multifactor { */ public invalidateRememberBrowser( id: string, - requestOptions?: Multifactor.RequestOptions, + requestOptions?: MultifactorClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__invalidateRememberBrowser(id, requestOptions)); } private async __invalidateRememberBrowser( id: string, - requestOptions?: Multifactor.RequestOptions, + requestOptions?: MultifactorClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:users"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -62,7 +70,9 @@ export class Multifactor { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -85,23 +95,12 @@ export class Multifactor { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling POST /users/{id}/multifactor/actions/invalidate-remember-browser.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "POST", + "/users/{id}/multifactor/actions/invalidate-remember-browser", + ); } /** @@ -109,7 +108,7 @@ export class Multifactor { * * @param {string} id - ID of the user to remove a multifactor configuration from. * @param {Management.UserMultifactorProviderEnum} provider - The multi-factor provider. Supported values 'duo' or 'google-authenticator' - * @param {Multifactor.RequestOptions} requestOptions - Request-specific configuration. + * @param {MultifactorClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -123,7 +122,7 @@ export class Multifactor { public deleteProvider( id: string, provider: Management.UserMultifactorProviderEnum, - requestOptions?: Multifactor.RequestOptions, + requestOptions?: MultifactorClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__deleteProvider(id, provider, requestOptions)); } @@ -131,11 +130,17 @@ export class Multifactor { private async __deleteProvider( id: string, provider: Management.UserMultifactorProviderEnum, - requestOptions?: Multifactor.RequestOptions, + requestOptions?: MultifactorClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:users"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -151,7 +156,9 @@ export class Multifactor { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -178,26 +185,11 @@ export class Multifactor { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling DELETE /users/{id}/multifactor/{provider}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "DELETE", + "/users/{id}/multifactor/{provider}", + ); } } diff --git a/src/management/api/resources/users/resources/organizations/client/Client.ts b/src/management/api/resources/users/resources/organizations/client/Client.ts index bf370edad5..5660271743 100644 --- a/src/management/api/resources/users/resources/organizations/client/Client.ts +++ b/src/management/api/resources/users/resources/organizations/client/Client.ts @@ -1,23 +1,25 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../core/headers.js"; import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; +import * as environments from "../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../errors/index.js"; +import * as Management from "../../../../../index.js"; -export declare namespace Organizations { +export declare namespace OrganizationsClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Organizations { - protected readonly _options: Organizations.Options; +export class OrganizationsClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: Organizations.Options) { - this._options = _options; + constructor(options: OrganizationsClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** @@ -25,7 +27,7 @@ export class Organizations { * * @param {string} id - ID of the user to retrieve the organizations for. * @param {Management.ListUserOrganizationsRequestParameters} request - * @param {Organizations.RequestOptions} requestOptions - Request-specific configuration. + * @param {OrganizationsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.UnauthorizedError} * @throws {@link Management.ForbiddenError} @@ -41,26 +43,32 @@ export class Organizations { public async list( id: string, request: Management.ListUserOrganizationsRequestParameters = {}, - requestOptions?: Organizations.RequestOptions, + requestOptions?: OrganizationsClient.RequestOptions, ): Promise> { const list = core.HttpResponsePromise.interceptFunction( async ( request: Management.ListUserOrganizationsRequestParameters, ): Promise> => { - const { page = 0, per_page: perPage = 50, include_totals: includeTotals = true } = request; + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:organizations"] }], + }; + const { page, per_page: perPage = 50, include_totals: includeTotals = true } = request; const _queryParams: Record = {}; if (page !== undefined) { - _queryParams["page"] = page?.toString() ?? null; + _queryParams.page = page?.toString() ?? null; } if (perPage !== undefined) { - _queryParams["per_page"] = perPage?.toString() ?? null; + _queryParams.per_page = perPage?.toString() ?? null; } if (includeTotals !== undefined) { - _queryParams["include_totals"] = includeTotals?.toString() ?? null; + _queryParams.include_totals = includeTotals?.toString() ?? null; } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -76,7 +84,9 @@ export class Organizations { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -106,40 +116,25 @@ export class Organizations { }); } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /users/{id}/organizations.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "GET", + "/users/{id}/organizations", + ); }, ); - let _offset = request?.page != null ? request?.page : 0; + let _offset = request?.page != null ? request?.page : 1; const dataWithRawResponse = await list(request).withRawResponse(); return new core.Page({ response: dataWithRawResponse.data, rawResponse: dataWithRawResponse.rawResponse, - hasNextPage: (response) => (response?.organizations ?? []).length >= (request?.per_page ?? 1), + hasNextPage: (response) => (response?.organizations ?? []).length > 0, getItems: (response) => response?.organizations ?? [], - loadPage: (response) => { - _offset += response?.organizations != null ? response.organizations.length : 1; + loadPage: (_response) => { + _offset += 1; return list(core.setObjectProperty(request, "page", _offset)); }, }); } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; - } } diff --git a/src/management/api/resources/users/resources/permissions/client/Client.ts b/src/management/api/resources/users/resources/permissions/client/Client.ts index b6c2d350c6..279a944db1 100644 --- a/src/management/api/resources/users/resources/permissions/client/Client.ts +++ b/src/management/api/resources/users/resources/permissions/client/Client.ts @@ -1,23 +1,25 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../core/headers.js"; import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; +import * as environments from "../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../errors/index.js"; +import * as Management from "../../../../../index.js"; -export declare namespace Permissions { +export declare namespace PermissionsClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Permissions { - protected readonly _options: Permissions.Options; +export class PermissionsClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: Permissions.Options) { - this._options = _options; + constructor(options: PermissionsClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** @@ -25,7 +27,7 @@ export class Permissions { * * @param {string} id - ID of the user to retrieve the permissions for. * @param {Management.ListUserPermissionsRequestParameters} request - * @param {Permissions.RequestOptions} requestOptions - Request-specific configuration. + * @param {PermissionsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -43,7 +45,7 @@ export class Permissions { public async list( id: string, request: Management.ListUserPermissionsRequestParameters = {}, - requestOptions?: Permissions.RequestOptions, + requestOptions?: PermissionsClient.RequestOptions, ): Promise< core.Page > { @@ -51,20 +53,26 @@ export class Permissions { async ( request: Management.ListUserPermissionsRequestParameters, ): Promise> => { - const { per_page: perPage = 50, page = 0, include_totals: includeTotals = true } = request; + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:users"] }], + }; + const { per_page: perPage = 50, page, include_totals: includeTotals = true } = request; const _queryParams: Record = {}; if (perPage !== undefined) { - _queryParams["per_page"] = perPage?.toString() ?? null; + _queryParams.per_page = perPage?.toString() ?? null; } if (page !== undefined) { - _queryParams["page"] = page?.toString() ?? null; + _queryParams.page = page?.toString() ?? null; } if (includeTotals !== undefined) { - _queryParams["include_totals"] = includeTotals?.toString() ?? null; + _queryParams.include_totals = includeTotals?.toString() ?? null; } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -80,7 +88,9 @@ export class Permissions { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -117,26 +127,15 @@ export class Permissions { }); } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /users/{id}/permissions.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "GET", + "/users/{id}/permissions", + ); }, ); - let _offset = request?.page != null ? request?.page : 0; + let _offset = request?.page != null ? request?.page : 1; const dataWithRawResponse = await list(request).withRawResponse(); return new core.Page< Management.UserPermissionSchema, @@ -144,10 +143,10 @@ export class Permissions { >({ response: dataWithRawResponse.data, rawResponse: dataWithRawResponse.rawResponse, - hasNextPage: (response) => (response?.permissions ?? []).length >= (request?.per_page ?? 1), + hasNextPage: (response) => (response?.permissions ?? []).length > 0, getItems: (response) => response?.permissions ?? [], - loadPage: (response) => { - _offset += response?.permissions != null ? response.permissions.length : 1; + loadPage: (_response) => { + _offset += 1; return list(core.setObjectProperty(request, "page", _offset)); }, }); @@ -158,7 +157,7 @@ export class Permissions { * * @param {string} id - ID of the user to assign permissions to. * @param {Management.CreateUserPermissionsRequestContent} request - * @param {Permissions.RequestOptions} requestOptions - Request-specific configuration. + * @param {PermissionsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -176,7 +175,7 @@ export class Permissions { public create( id: string, request: Management.CreateUserPermissionsRequestContent, - requestOptions?: Permissions.RequestOptions, + requestOptions?: PermissionsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__create(id, request, requestOptions)); } @@ -184,11 +183,17 @@ export class Permissions { private async __create( id: string, request: Management.CreateUserPermissionsRequestContent, - requestOptions?: Permissions.RequestOptions, + requestOptions?: PermissionsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:users"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -207,7 +212,9 @@ export class Permissions { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -232,21 +239,7 @@ export class Permissions { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling POST /users/{id}/permissions."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/users/{id}/permissions"); } /** @@ -254,7 +247,7 @@ export class Permissions { * * @param {string} id - ID of the user to remove permissions from. * @param {Management.DeleteUserPermissionsRequestContent} request - * @param {Permissions.RequestOptions} requestOptions - Request-specific configuration. + * @param {PermissionsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -272,7 +265,7 @@ export class Permissions { public delete( id: string, request: Management.DeleteUserPermissionsRequestContent, - requestOptions?: Permissions.RequestOptions, + requestOptions?: PermissionsClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__delete(id, request, requestOptions)); } @@ -280,11 +273,17 @@ export class Permissions { private async __delete( id: string, request: Management.DeleteUserPermissionsRequestContent, - requestOptions?: Permissions.RequestOptions, + requestOptions?: PermissionsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:users"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -303,7 +302,9 @@ export class Permissions { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -328,26 +329,6 @@ export class Permissions { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling DELETE /users/{id}/permissions.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError(_response.error, _response.rawResponse, "DELETE", "/users/{id}/permissions"); } } diff --git a/src/management/api/resources/users/resources/refreshToken/client/Client.ts b/src/management/api/resources/users/resources/refreshToken/client/Client.ts index 8bd4a257d5..4c24394db0 100644 --- a/src/management/api/resources/users/resources/refreshToken/client/Client.ts +++ b/src/management/api/resources/users/resources/refreshToken/client/Client.ts @@ -1,31 +1,33 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../core/headers.js"; import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; +import * as environments from "../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../errors/index.js"; +import * as Management from "../../../../../index.js"; -export declare namespace RefreshToken { +export declare namespace RefreshTokenClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class RefreshToken { - protected readonly _options: RefreshToken.Options; +export class RefreshTokenClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: RefreshToken.Options) { - this._options = _options; + constructor(options: RefreshTokenClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** * Retrieve details for a user's refresh tokens. * - * @param {string} userId - ID of the user to get refresh tokens for + * @param {string} user_id - ID of the user to get refresh tokens for * @param {Management.ListRefreshTokensRequestParameters} request - * @param {RefreshToken.RequestOptions} requestOptions - Request-specific configuration. + * @param {RefreshTokenClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.UnauthorizedError} * @throws {@link Management.ForbiddenError} @@ -39,9 +41,9 @@ export class RefreshToken { * }) */ public async list( - userId: string, + user_id: string, request: Management.ListRefreshTokensRequestParameters = {}, - requestOptions?: RefreshToken.RequestOptions, + requestOptions?: RefreshTokenClient.RequestOptions, ): Promise< core.Page > { @@ -49,17 +51,23 @@ export class RefreshToken { async ( request: Management.ListRefreshTokensRequestParameters, ): Promise> => { + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:refresh_tokens"] }], + }; const { from: from_, take = 50 } = request; const _queryParams: Record = {}; if (from_ !== undefined) { - _queryParams["from"] = from_; + _queryParams.from = from_; } if (take !== undefined) { - _queryParams["take"] = take?.toString() ?? null; + _queryParams.take = take?.toString() ?? null; } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -67,7 +75,7 @@ export class RefreshToken { (await core.Supplier.get(this._options.baseUrl)) ?? (await core.Supplier.get(this._options.environment)) ?? environments.ManagementEnvironment.Default, - `users/${core.url.encodePathParam(userId)}/refresh-tokens`, + `users/${core.url.encodePathParam(user_id)}/refresh-tokens`, ), method: "GET", headers: _headers, @@ -75,7 +83,9 @@ export class RefreshToken { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -107,23 +117,12 @@ export class RefreshToken { }); } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /users/{user_id}/refresh-tokens.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "GET", + "/users/{user_id}/refresh-tokens", + ); }, ); const dataWithRawResponse = await list(request).withRawResponse(); @@ -145,8 +144,8 @@ export class RefreshToken { /** * Delete all refresh tokens for a user. * - * @param {string} userId - ID of the user to get remove refresh tokens for - * @param {RefreshToken.RequestOptions} requestOptions - Request-specific configuration. + * @param {string} user_id - ID of the user to get remove refresh tokens for + * @param {RefreshTokenClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -157,17 +156,23 @@ export class RefreshToken { * @example * await client.users.refreshToken.delete("user_id") */ - public delete(userId: string, requestOptions?: RefreshToken.RequestOptions): core.HttpResponsePromise { - return core.HttpResponsePromise.fromPromise(this.__delete(userId, requestOptions)); + public delete(user_id: string, requestOptions?: RefreshTokenClient.RequestOptions): core.HttpResponsePromise { + return core.HttpResponsePromise.fromPromise(this.__delete(user_id, requestOptions)); } private async __delete( - userId: string, - requestOptions?: RefreshToken.RequestOptions, + user_id: string, + requestOptions?: RefreshTokenClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["delete:refresh_tokens"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -175,7 +180,7 @@ export class RefreshToken { (await core.Supplier.get(this._options.baseUrl)) ?? (await core.Supplier.get(this._options.environment)) ?? environments.ManagementEnvironment.Default, - `users/${core.url.encodePathParam(userId)}/refresh-tokens`, + `users/${core.url.encodePathParam(user_id)}/refresh-tokens`, ), method: "DELETE", headers: _headers, @@ -183,7 +188,9 @@ export class RefreshToken { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -210,26 +217,11 @@ export class RefreshToken { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling DELETE /users/{user_id}/refresh-tokens.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "DELETE", + "/users/{user_id}/refresh-tokens", + ); } } diff --git a/src/management/api/resources/users/resources/riskAssessments/client/Client.ts b/src/management/api/resources/users/resources/riskAssessments/client/Client.ts deleted file mode 100644 index 643a053acd..0000000000 --- a/src/management/api/resources/users/resources/riskAssessments/client/Client.ts +++ /dev/null @@ -1,122 +0,0 @@ -// This file was auto-generated by Fern from our API Definition. - -import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; -import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; -import * as errors from "../../../../../../errors/index.js"; - -export declare namespace RiskAssessments { - export interface Options extends BaseClientOptions {} - - export interface RequestOptions extends BaseRequestOptions {} -} - -export class RiskAssessments { - protected readonly _options: RiskAssessments.Options; - - constructor(_options: RiskAssessments.Options) { - this._options = _options; - } - - /** - * Clear risk assessment assessors for a specific user - * - * @param {string} id - ID of the user to clear assessors for. - * @param {Management.ClearAssessorsRequestContent} request - * @param {RiskAssessments.RequestOptions} requestOptions - Request-specific configuration. - * - * @throws {@link Management.BadRequestError} - * @throws {@link Management.UnauthorizedError} - * @throws {@link Management.ForbiddenError} - * @throws {@link Management.TooManyRequestsError} - * - * @example - * await client.users.riskAssessments.clear("id", { - * connection: "connection", - * assessors: ["new-device"] - * }) - */ - public clear( - id: string, - request: Management.ClearAssessorsRequestContent, - requestOptions?: RiskAssessments.RequestOptions, - ): core.HttpResponsePromise { - return core.HttpResponsePromise.fromPromise(this.__clear(id, request, requestOptions)); - } - - private async __clear( - id: string, - request: Management.ClearAssessorsRequestContent, - requestOptions?: RiskAssessments.RequestOptions, - ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( - this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), - requestOptions?.headers, - ); - const _response = await (this._options.fetcher ?? core.fetcher)({ - url: core.url.join( - (await core.Supplier.get(this._options.baseUrl)) ?? - (await core.Supplier.get(this._options.environment)) ?? - environments.ManagementEnvironment.Default, - `users/${core.url.encodePathParam(id)}/risk-assessments/clear`, - ), - method: "POST", - headers: _headers, - contentType: "application/json", - queryParameters: requestOptions?.queryParams, - requestType: "json", - body: request, - timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, - maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, - abortSignal: requestOptions?.abortSignal, - fetchFn: this._options?.fetch, - }); - if (_response.ok) { - return { data: undefined, rawResponse: _response.rawResponse }; - } - - if (_response.error.reason === "status-code") { - switch (_response.error.statusCode) { - case 400: - throw new Management.BadRequestError(_response.error.body as unknown, _response.rawResponse); - case 401: - throw new Management.UnauthorizedError(_response.error.body as unknown, _response.rawResponse); - case 403: - throw new Management.ForbiddenError(_response.error.body as unknown, _response.rawResponse); - case 429: - throw new Management.TooManyRequestsError(_response.error.body as unknown, _response.rawResponse); - default: - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.body, - rawResponse: _response.rawResponse, - }); - } - } - - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling POST /users/{id}/risk-assessments/clear.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; - } -} diff --git a/src/management/api/resources/users/resources/riskAssessments/client/index.ts b/src/management/api/resources/users/resources/riskAssessments/client/index.ts deleted file mode 100644 index cb0ff5c3b5..0000000000 --- a/src/management/api/resources/users/resources/riskAssessments/client/index.ts +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/src/management/api/resources/users/resources/riskAssessments/index.ts b/src/management/api/resources/users/resources/riskAssessments/index.ts deleted file mode 100644 index 914b8c3c72..0000000000 --- a/src/management/api/resources/users/resources/riskAssessments/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./client/index.js"; diff --git a/src/management/api/resources/users/resources/roles/client/Client.ts b/src/management/api/resources/users/resources/roles/client/Client.ts index f03b5c733d..0ee385ac88 100644 --- a/src/management/api/resources/users/resources/roles/client/Client.ts +++ b/src/management/api/resources/users/resources/roles/client/Client.ts @@ -1,23 +1,25 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../core/headers.js"; import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; +import * as environments from "../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../errors/index.js"; +import * as Management from "../../../../../index.js"; -export declare namespace Roles { +export declare namespace RolesClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Roles { - protected readonly _options: Roles.Options; +export class RolesClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: Roles.Options) { - this._options = _options; + constructor(options: RolesClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** @@ -27,7 +29,7 @@ export class Roles { * * @param {string} id - ID of the user to list roles for. * @param {Management.ListUserRolesRequestParameters} request - * @param {Roles.RequestOptions} requestOptions - Request-specific configuration. + * @param {RolesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.UnauthorizedError} * @throws {@link Management.ForbiddenError} @@ -43,26 +45,35 @@ export class Roles { public async list( id: string, request: Management.ListUserRolesRequestParameters = {}, - requestOptions?: Roles.RequestOptions, + requestOptions?: RolesClient.RequestOptions, ): Promise> { const list = core.HttpResponsePromise.interceptFunction( async ( request: Management.ListUserRolesRequestParameters, ): Promise> => { - const { per_page: perPage = 50, page = 0, include_totals: includeTotals = true } = request; + const _metadata: core.EndpointMetadata = { + security: [ + { bearerAuth: [] }, + { oAuth2ClientCredentials: ["read:users", "read:roles", "read:role_members"] }, + ], + }; + const { per_page: perPage = 50, page, include_totals: includeTotals = true } = request; const _queryParams: Record = {}; if (perPage !== undefined) { - _queryParams["per_page"] = perPage?.toString() ?? null; + _queryParams.per_page = perPage?.toString() ?? null; } if (page !== undefined) { - _queryParams["page"] = page?.toString() ?? null; + _queryParams.page = page?.toString() ?? null; } if (includeTotals !== undefined) { - _queryParams["include_totals"] = includeTotals?.toString() ?? null; + _queryParams.include_totals = includeTotals?.toString() ?? null; } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -78,7 +89,9 @@ export class Roles { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -108,32 +121,18 @@ export class Roles { }); } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling GET /users/{id}/roles."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/users/{id}/roles"); }, ); - let _offset = request?.page != null ? request?.page : 0; + let _offset = request?.page != null ? request?.page : 1; const dataWithRawResponse = await list(request).withRawResponse(); return new core.Page({ response: dataWithRawResponse.data, rawResponse: dataWithRawResponse.rawResponse, - hasNextPage: (response) => (response?.roles ?? []).length >= (request?.per_page ?? 1), + hasNextPage: (response) => (response?.roles ?? []).length > 0, getItems: (response) => response?.roles ?? [], - loadPage: (response) => { - _offset += response?.roles != null ? response.roles.length : 1; + loadPage: (_response) => { + _offset += 1; return list(core.setObjectProperty(request, "page", _offset)); }, }); @@ -146,7 +145,7 @@ export class Roles { * * @param {string} id - ID of the user to associate roles with. * @param {Management.AssignUserRolesRequestContent} request - * @param {Roles.RequestOptions} requestOptions - Request-specific configuration. + * @param {RolesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -161,7 +160,7 @@ export class Roles { public assign( id: string, request: Management.AssignUserRolesRequestContent, - requestOptions?: Roles.RequestOptions, + requestOptions?: RolesClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__assign(id, request, requestOptions)); } @@ -169,11 +168,17 @@ export class Roles { private async __assign( id: string, request: Management.AssignUserRolesRequestContent, - requestOptions?: Roles.RequestOptions, + requestOptions?: RolesClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:users", "create:role_members"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -192,7 +197,9 @@ export class Roles { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -217,21 +224,7 @@ export class Roles { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling POST /users/{id}/roles."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError(_response.error, _response.rawResponse, "POST", "/users/{id}/roles"); } /** @@ -241,7 +234,7 @@ export class Roles { * * @param {string} id - ID of the user to remove roles from. * @param {Management.DeleteUserRolesRequestContent} request - * @param {Roles.RequestOptions} requestOptions - Request-specific configuration. + * @param {RolesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.UnauthorizedError} * @throws {@link Management.ForbiddenError} @@ -255,7 +248,7 @@ export class Roles { public delete( id: string, request: Management.DeleteUserRolesRequestContent, - requestOptions?: Roles.RequestOptions, + requestOptions?: RolesClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__delete(id, request, requestOptions)); } @@ -263,11 +256,17 @@ export class Roles { private async __delete( id: string, request: Management.DeleteUserRolesRequestContent, - requestOptions?: Roles.RequestOptions, + requestOptions?: RolesClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:users", "delete:role_members"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -286,7 +285,9 @@ export class Roles { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -309,24 +310,6 @@ export class Roles { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError("Timeout exceeded when calling DELETE /users/{id}/roles."); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError(_response.error, _response.rawResponse, "DELETE", "/users/{id}/roles"); } } diff --git a/src/management/api/resources/users/resources/sessions/client/Client.ts b/src/management/api/resources/users/resources/sessions/client/Client.ts index 141a626c6d..ccebf47b37 100644 --- a/src/management/api/resources/users/resources/sessions/client/Client.ts +++ b/src/management/api/resources/users/resources/sessions/client/Client.ts @@ -1,31 +1,33 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../core/headers.js"; import * as core from "../../../../../../core/index.js"; -import * as Management from "../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../core/headers.js"; +import * as environments from "../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../errors/index.js"; +import * as Management from "../../../../../index.js"; -export declare namespace Sessions { +export declare namespace SessionsClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Sessions { - protected readonly _options: Sessions.Options; +export class SessionsClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: Sessions.Options) { - this._options = _options; + constructor(options: SessionsClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** * Retrieve details for a user's sessions. * - * @param {string} userId - ID of the user to get sessions for + * @param {string} user_id - ID of the user to get sessions for * @param {Management.ListUserSessionsRequestParameters} request - * @param {Sessions.RequestOptions} requestOptions - Request-specific configuration. + * @param {SessionsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.UnauthorizedError} * @throws {@link Management.ForbiddenError} @@ -39,25 +41,31 @@ export class Sessions { * }) */ public async list( - userId: string, + user_id: string, request: Management.ListUserSessionsRequestParameters = {}, - requestOptions?: Sessions.RequestOptions, + requestOptions?: SessionsClient.RequestOptions, ): Promise> { const list = core.HttpResponsePromise.interceptFunction( async ( request: Management.ListUserSessionsRequestParameters, ): Promise> => { + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:sessions"] }], + }; const { from: from_, take = 50 } = request; const _queryParams: Record = {}; if (from_ !== undefined) { - _queryParams["from"] = from_; + _queryParams.from = from_; } if (take !== undefined) { - _queryParams["take"] = take?.toString() ?? null; + _queryParams.take = take?.toString() ?? null; } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -65,7 +73,7 @@ export class Sessions { (await core.Supplier.get(this._options.baseUrl)) ?? (await core.Supplier.get(this._options.environment)) ?? environments.ManagementEnvironment.Default, - `users/${core.url.encodePathParam(userId)}/sessions`, + `users/${core.url.encodePathParam(user_id)}/sessions`, ), method: "GET", headers: _headers, @@ -73,7 +81,9 @@ export class Sessions { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -105,23 +115,12 @@ export class Sessions { }); } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /users/{user_id}/sessions.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "GET", + "/users/{user_id}/sessions", + ); }, ); const dataWithRawResponse = await list(request).withRawResponse(); @@ -140,8 +139,8 @@ export class Sessions { /** * Delete all sessions for a user. * - * @param {string} userId - ID of the user to get sessions for - * @param {Sessions.RequestOptions} requestOptions - Request-specific configuration. + * @param {string} user_id - ID of the user to get sessions for + * @param {SessionsClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -152,17 +151,23 @@ export class Sessions { * @example * await client.users.sessions.delete("user_id") */ - public delete(userId: string, requestOptions?: Sessions.RequestOptions): core.HttpResponsePromise { - return core.HttpResponsePromise.fromPromise(this.__delete(userId, requestOptions)); + public delete(user_id: string, requestOptions?: SessionsClient.RequestOptions): core.HttpResponsePromise { + return core.HttpResponsePromise.fromPromise(this.__delete(user_id, requestOptions)); } private async __delete( - userId: string, - requestOptions?: Sessions.RequestOptions, + user_id: string, + requestOptions?: SessionsClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["delete:sessions"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -170,7 +175,7 @@ export class Sessions { (await core.Supplier.get(this._options.baseUrl)) ?? (await core.Supplier.get(this._options.environment)) ?? environments.ManagementEnvironment.Default, - `users/${core.url.encodePathParam(userId)}/sessions`, + `users/${core.url.encodePathParam(user_id)}/sessions`, ), method: "DELETE", headers: _headers, @@ -178,7 +183,9 @@ export class Sessions { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -205,26 +212,6 @@ export class Sessions { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling DELETE /users/{user_id}/sessions.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError(_response.error, _response.rawResponse, "DELETE", "/users/{user_id}/sessions"); } } diff --git a/src/management/api/resources/verifiableCredentials/client/Client.ts b/src/management/api/resources/verifiableCredentials/client/Client.ts index 5ef516ef46..15876d2a93 100644 --- a/src/management/api/resources/verifiableCredentials/client/Client.ts +++ b/src/management/api/resources/verifiableCredentials/client/Client.ts @@ -1,23 +1,22 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions } from "../../../../BaseClient.js"; -import * as environments from "../../../../environments.js"; -import * as core from "../../../../core/index.js"; -import { Verification } from "../resources/verification/client/Client.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../BaseClient.js"; +import { VerificationClient } from "../resources/verification/client/Client.js"; -export declare namespace VerifiableCredentials { +export declare namespace VerifiableCredentialsClient { export interface Options extends BaseClientOptions {} } -export class VerifiableCredentials { - protected readonly _options: VerifiableCredentials.Options; - protected _verification: Verification | undefined; +export class VerifiableCredentialsClient { + protected readonly _options: NormalizedClientOptionsWithAuth; + protected _verification: VerificationClient | undefined; - constructor(_options: VerifiableCredentials.Options) { - this._options = _options; + constructor(options: VerifiableCredentialsClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } - public get verification(): Verification { - return (this._verification ??= new Verification(this._options)); + public get verification(): VerificationClient { + return (this._verification ??= new VerificationClient(this._options)); } } diff --git a/src/management/api/resources/verifiableCredentials/resources/verification/client/Client.ts b/src/management/api/resources/verifiableCredentials/resources/verification/client/Client.ts index 295cb570ce..32be6c960d 100644 --- a/src/management/api/resources/verifiableCredentials/resources/verification/client/Client.ts +++ b/src/management/api/resources/verifiableCredentials/resources/verification/client/Client.ts @@ -1,23 +1,22 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions } from "../../../../../../BaseClient.js"; -import * as environments from "../../../../../../environments.js"; -import * as core from "../../../../../../core/index.js"; -import { Templates } from "../resources/templates/client/Client.js"; +import { type NormalizedClientOptionsWithAuth, normalizeClientOptionsWithAuth } from "../../../../../../BaseClient.js"; +import { TemplatesClient } from "../resources/templates/client/Client.js"; -export declare namespace Verification { +export declare namespace VerificationClient { export interface Options extends BaseClientOptions {} } -export class Verification { - protected readonly _options: Verification.Options; - protected _templates: Templates | undefined; +export class VerificationClient { + protected readonly _options: NormalizedClientOptionsWithAuth; + protected _templates: TemplatesClient | undefined; - constructor(_options: Verification.Options) { - this._options = _options; + constructor(options: VerificationClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } - public get templates(): Templates { - return (this._templates ??= new Templates(this._options)); + public get templates(): TemplatesClient { + return (this._templates ??= new TemplatesClient(this._options)); } } diff --git a/src/management/api/resources/verifiableCredentials/resources/verification/resources/templates/client/Client.ts b/src/management/api/resources/verifiableCredentials/resources/verification/resources/templates/client/Client.ts index 5e71b7a289..62c4e244b2 100644 --- a/src/management/api/resources/verifiableCredentials/resources/verification/resources/templates/client/Client.ts +++ b/src/management/api/resources/verifiableCredentials/resources/verification/resources/templates/client/Client.ts @@ -1,30 +1,35 @@ // This file was auto-generated by Fern from our API Definition. import type { BaseClientOptions, BaseRequestOptions } from "../../../../../../../../BaseClient.js"; -import * as environments from "../../../../../../../../environments.js"; +import { + type NormalizedClientOptionsWithAuth, + normalizeClientOptionsWithAuth, +} from "../../../../../../../../BaseClient.js"; +import { mergeHeaders } from "../../../../../../../../core/headers.js"; import * as core from "../../../../../../../../core/index.js"; -import * as Management from "../../../../../../../index.js"; -import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../../../../../core/headers.js"; +import * as environments from "../../../../../../../../environments.js"; +import { handleNonStatusCodeError } from "../../../../../../../../errors/handleNonStatusCodeError.js"; import * as errors from "../../../../../../../../errors/index.js"; +import * as Management from "../../../../../../../index.js"; -export declare namespace Templates { +export declare namespace TemplatesClient { export interface Options extends BaseClientOptions {} export interface RequestOptions extends BaseRequestOptions {} } -export class Templates { - protected readonly _options: Templates.Options; +export class TemplatesClient { + protected readonly _options: NormalizedClientOptionsWithAuth; - constructor(_options: Templates.Options) { - this._options = _options; + constructor(options: TemplatesClient.Options) { + this._options = normalizeClientOptionsWithAuth(options); } /** * List a verifiable credential templates. * * @param {Management.ListVerifiableCredentialTemplatesRequestParameters} request - * @param {Templates.RequestOptions} requestOptions - Request-specific configuration. + * @param {TemplatesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -39,7 +44,7 @@ export class Templates { */ public async list( request: Management.ListVerifiableCredentialTemplatesRequestParameters = {}, - requestOptions?: Templates.RequestOptions, + requestOptions?: TemplatesClient.RequestOptions, ): Promise< core.Page< Management.VerifiableCredentialTemplateResponse, @@ -50,17 +55,23 @@ export class Templates { async ( request: Management.ListVerifiableCredentialTemplatesRequestParameters, ): Promise> => { + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:vdcs_templates"] }], + }; const { from: from_, take = 50 } = request; const _queryParams: Record = {}; if (from_ !== undefined) { - _queryParams["from"] = from_; + _queryParams.from = from_; } if (take !== undefined) { - _queryParams["take"] = take?.toString() ?? null; + _queryParams.take = take?.toString() ?? null; } - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -76,7 +87,9 @@ export class Templates { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -111,23 +124,12 @@ export class Templates { }); } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /verifiable-credentials/verification/templates.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "GET", + "/verifiable-credentials/verification/templates", + ); }, ); const dataWithRawResponse = await list(request).withRawResponse(); @@ -150,7 +152,7 @@ export class Templates { * Create a verifiable credential template. * * @param {Management.CreateVerifiableCredentialTemplateRequestContent} request - * @param {Templates.RequestOptions} requestOptions - Request-specific configuration. + * @param {TemplatesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -173,18 +175,24 @@ export class Templates { */ public create( request: Management.CreateVerifiableCredentialTemplateRequestContent, - requestOptions?: Templates.RequestOptions, + requestOptions?: TemplatesClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__create(request, requestOptions)); } private async __create( request: Management.CreateVerifiableCredentialTemplateRequestContent, - requestOptions?: Templates.RequestOptions, + requestOptions?: TemplatesClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["create:vdcs_templates"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -203,7 +211,9 @@ export class Templates { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -233,30 +243,19 @@ export class Templates { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling POST /verifiable-credentials/verification/templates.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "POST", + "/verifiable-credentials/verification/templates", + ); } /** * Get a verifiable credential template. * * @param {string} id - ID of the template to retrieve. - * @param {Templates.RequestOptions} requestOptions - Request-specific configuration. + * @param {TemplatesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -269,18 +268,24 @@ export class Templates { */ public get( id: string, - requestOptions?: Templates.RequestOptions, + requestOptions?: TemplatesClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__get(id, requestOptions)); } private async __get( id: string, - requestOptions?: Templates.RequestOptions, + requestOptions?: TemplatesClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["read:vdcs_templates"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -296,7 +301,9 @@ export class Templates { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -326,30 +333,19 @@ export class Templates { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling GET /verifiable-credentials/verification/templates/{id}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "GET", + "/verifiable-credentials/verification/templates/{id}", + ); } /** * Delete a verifiable credential template. * * @param {string} id - ID of the template to retrieve. - * @param {Templates.RequestOptions} requestOptions - Request-specific configuration. + * @param {TemplatesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -359,14 +355,23 @@ export class Templates { * @example * await client.verifiableCredentials.verification.templates.delete("id") */ - public delete(id: string, requestOptions?: Templates.RequestOptions): core.HttpResponsePromise { + public delete(id: string, requestOptions?: TemplatesClient.RequestOptions): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__delete(id, requestOptions)); } - private async __delete(id: string, requestOptions?: Templates.RequestOptions): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + private async __delete( + id: string, + requestOptions?: TemplatesClient.RequestOptions, + ): Promise> { + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["delete:vdcs_templates"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -382,7 +387,9 @@ export class Templates { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { data: undefined, rawResponse: _response.rawResponse }; @@ -407,23 +414,12 @@ export class Templates { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling DELETE /verifiable-credentials/verification/templates/{id}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "DELETE", + "/verifiable-credentials/verification/templates/{id}", + ); } /** @@ -431,7 +427,7 @@ export class Templates { * * @param {string} id - ID of the template to retrieve. * @param {Management.UpdateVerifiableCredentialTemplateRequestContent} request - * @param {Templates.RequestOptions} requestOptions - Request-specific configuration. + * @param {TemplatesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Management.BadRequestError} * @throws {@link Management.UnauthorizedError} @@ -445,7 +441,7 @@ export class Templates { public update( id: string, request: Management.UpdateVerifiableCredentialTemplateRequestContent = {}, - requestOptions?: Templates.RequestOptions, + requestOptions?: TemplatesClient.RequestOptions, ): core.HttpResponsePromise { return core.HttpResponsePromise.fromPromise(this.__update(id, request, requestOptions)); } @@ -453,11 +449,17 @@ export class Templates { private async __update( id: string, request: Management.UpdateVerifiableCredentialTemplateRequestContent = {}, - requestOptions?: Templates.RequestOptions, + requestOptions?: TemplatesClient.RequestOptions, ): Promise> { - let _headers: core.Fetcher.Args["headers"] = mergeHeaders( + const _metadata: core.EndpointMetadata = { + security: [{ bearerAuth: [] }, { oAuth2ClientCredentials: ["update:vdcs_templates"] }], + }; + const _authRequest: core.AuthRequest = await this._options.authProvider.getAuthRequest({ + endpointMetadata: _metadata, + }); + const _headers: core.Fetcher.Args["headers"] = mergeHeaders( + _authRequest.headers, this._options?.headers, - mergeOnlyDefinedHeaders({ Authorization: await this._getAuthorizationHeader() }), requestOptions?.headers, ); const _response = await (this._options.fetcher ?? core.fetcher)({ @@ -476,7 +478,9 @@ export class Templates { timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, abortSignal: requestOptions?.abortSignal, + endpointMetadata: _metadata, fetchFn: this._options?.fetch, + logging: this._options.logging, }); if (_response.ok) { return { @@ -506,26 +510,11 @@ export class Templates { } } - switch (_response.error.reason) { - case "non-json": - throw new errors.ManagementError({ - statusCode: _response.error.statusCode, - body: _response.error.rawBody, - rawResponse: _response.rawResponse, - }); - case "timeout": - throw new errors.ManagementTimeoutError( - "Timeout exceeded when calling PATCH /verifiable-credentials/verification/templates/{id}.", - ); - case "unknown": - throw new errors.ManagementError({ - message: _response.error.errorMessage, - rawResponse: _response.rawResponse, - }); - } - } - - protected async _getAuthorizationHeader(): Promise { - return `Bearer ${await core.Supplier.get(this._options.token)}`; + return handleNonStatusCodeError( + _response.error, + _response.rawResponse, + "PATCH", + "/verifiable-credentials/verification/templates/{id}", + ); } } diff --git a/src/management/api/types/types.ts b/src/management/api/types/types.ts index 9dc219b393..0d4489062e 100644 --- a/src/management/api/types/types.ts +++ b/src/management/api/types/types.ts @@ -1,6 +1,6 @@ // This file was auto-generated by Fern from our API Definition. -import * as Management from "../index.js"; +import type * as Management from "../index.js"; export const OauthScope = { /** @@ -114,9 +114,6 @@ export const OauthScope = { /** * Update Client Keys */ UpdateClientKeys: "update:client_keys", - /** - * Update Client Token Vault Privileged Access */ - UpdateClientTokenVaultPrivilegedAccess: "update:client_token_vault_privileged_access", /** * Delete Clients */ DeleteClients: "delete:clients", @@ -144,18 +141,6 @@ export const OauthScope = { /** * Delete Connections */ DeleteConnections: "delete:connections", - /** - * Read Directory Provisionings */ - ReadDirectoryProvisionings: "read:directory_provisionings", - /** - * Create Directory Provisionings */ - CreateDirectoryProvisionings: "create:directory_provisionings", - /** - * Update Directory Provisionings */ - UpdateDirectoryProvisionings: "update:directory_provisionings", - /** - * Delete Directory Provisionings */ - DeleteDirectoryProvisionings: "delete:directory_provisionings", /** * Read Users */ ReadUsers: "read:users", @@ -318,12 +303,6 @@ export const OauthScope = { /** * Delete Grants */ DeleteGrants: "delete:grants", - /** - * Read Groups */ - ReadGroups: "read:groups", - /** - * Read Group Members */ - ReadGroupMembers: "read:group_members", /** * Create Guardian Enrollment Tickets */ CreateGuardianEnrollmentTickets: "create:guardian_enrollment_tickets", @@ -477,15 +456,6 @@ export const OauthScope = { /** * Read Organization Connections */ ReadOrganizationConnections: "read:organization_connections", - /** - * Update Organization Connections */ - UpdateOrganizationConnections: "update:organization_connections", - /** - * Delete Organization Connections */ - DeleteOrganizationConnections: "delete:organization_connections", - /** - * Read Organization Discovery Domains */ - ReadOrganizationDiscoveryDomains: "read:organization_discovery_domains", /** * Create Organization Discovery Domains */ CreateOrganizationDiscoveryDomains: "create:organization_discovery_domains", @@ -493,8 +463,11 @@ export const OauthScope = { * Update Organization Discovery Domains */ UpdateOrganizationDiscoveryDomains: "update:organization_discovery_domains", /** - * Delete Organization Discovery Domains */ - DeleteOrganizationDiscoveryDomains: "delete:organization_discovery_domains", + * Update Organization Connections */ + UpdateOrganizationConnections: "update:organization_connections", + /** + * Delete Organization Connections */ + DeleteOrganizationConnections: "delete:organization_connections", /** * Read Organization Invitations */ ReadOrganizationInvitations: "read:organization_invitations", @@ -615,9 +588,6 @@ export const OauthScope = { /** * Read Sessions */ ReadSessions: "read:sessions", - /** - * Update Sessions */ - UpdateSessions: "update:sessions", /** * Delete Sessions */ DeleteSessions: "delete:sessions", @@ -770,7 +740,7 @@ export interface Action { code?: string; /** The list of third party npm modules, and their versions, that this action depends on. */ dependencies?: Management.ActionVersionDependency[]; - /** The Node runtime. For example: `node22`, defaults to `node22` */ + /** The Node runtime. For example: `node12`, defaults to `node12` */ runtime?: string; /** The list of secrets that are included in an action or a version of an action. */ secrets?: Management.ActionSecretResponse[]; @@ -876,9 +846,9 @@ export interface ActionDeployedVersion { code?: string; /** The list of third party npm modules, and their versions, that this specific version depends on. */ dependencies?: Management.ActionVersionDependency[]; - /** Indicates if this specific version is the currently one deployed. */ + /** Indicates if this speciic version is the currently one deployed. */ deployed?: boolean; - /** The Node runtime. For example: `node22` */ + /** The Node runtime. For example: `node12` */ runtime?: string; /** The list of secrets that are included in an action or a version of an action. */ secrets?: Management.ActionSecretResponse[]; @@ -972,9 +942,6 @@ export interface ActionTriggerCompatibleTrigger { [key: string]: any; } -/** - * An actions extensibility point. - */ export type ActionTriggerTypeEnum = string; export interface ActionVersion { @@ -986,9 +953,9 @@ export interface ActionVersion { code?: string; /** The list of third party npm modules, and their versions, that this specific version depends on. */ dependencies?: Management.ActionVersionDependency[]; - /** Indicates if this specific version is the currently one deployed. */ + /** Indicates if this speciic version is the currently one deployed. */ deployed?: boolean; - /** The Node runtime. For example: `node22` */ + /** The Node runtime. For example: `node12` */ runtime?: string; /** The list of secrets that are included in an action or a version of an action. */ secrets?: Management.ActionSecretResponse[]; @@ -1035,15 +1002,10 @@ export interface ActionVersionDependency { /** * Client array filter items */ -export type AculClientFilter = Management.AculClientFilterById | Management.AculClientFilterByMetadata; - -export interface AculClientFilterById { +export interface AculClientFilter { /** Client ID */ - id: string; -} - -export interface AculClientFilterByMetadata { - metadata: Management.AculClientMetadata; + id?: string; + metadata?: Management.AculClientMetadata; } /** @@ -1051,50 +1013,17 @@ export interface AculClientFilterByMetadata { */ export type AculClientMetadata = Record; -export interface AculConfigsItem { - prompt: Management.PromptGroupNameEnum; - screen: Management.ScreenGroupNameEnum; - rendering_mode: Management.AculRenderingModeEnum; - context_configuration?: Management.AculContextConfiguration; - default_head_tags_disabled?: (Management.AculDefaultHeadTagsDisabled | undefined) | null; - head_tags: Management.AculHeadTags; - filters?: Management.AculFilters | null; - use_page_template?: (Management.AculUsePageTemplate | undefined) | null; -} - -/** - * Array of screen configurations to update - */ -export type AculConfigs = Management.AculConfigsItem[]; - -/** - * Context values to make available - */ -export type AculContextConfiguration = Management.AculContextConfigurationItem[]; - -export type AculContextConfigurationItem = string; - -/** - * Override Universal Login default head tags - */ -export type AculDefaultHeadTagsDisabled = (boolean | null) | undefined; - /** * Domains array filter items */ -export type AculDomainFilter = Management.AculDomainFilterById | Management.AculDomainFilterByMetadata; - -export interface AculDomainFilterById { +export interface AculDomainFilter { /** Domain ID */ - id: string; -} - -export interface AculDomainFilterByMetadata { - metadata: Management.AculDomainMetadata; + id?: string; + metadata?: Management.AculDomainMetadata; } /** - * Domain metadata key/value pairs + * Client metadata key/value pairs */ export type AculDomainMetadata = Record; @@ -1133,11 +1062,6 @@ export interface AculHeadTagAttributes { [key: string]: any; } -/** - * An array of head tags - */ -export type AculHeadTags = Management.AculHeadTag[]; - /** Type of match to apply */ export const AculMatchTypeEnum = { IncludesAny: "includes_any", @@ -1148,25 +1072,17 @@ export type AculMatchTypeEnum = (typeof AculMatchTypeEnum)[keyof typeof AculMatc /** * Organizations array filter items */ -export type AculOrganizationFilter = - | Management.AculOrganizationFilterById - | Management.AculOrganizationFilterByMetadata; - -export interface AculOrganizationFilterById { +export interface AculOrganizationFilter { /** Organization ID */ - id: string; -} - -export interface AculOrganizationFilterByMetadata { - metadata: Management.AculOrganizationMetadata; + id?: string; + metadata?: Management.AculOrganizationMetadata; } /** - * Organization metadata key/value pairs + * Client metadata key/value pairs */ export type AculOrganizationMetadata = Record; -/** Rendering mode to filter by */ export const AculRenderingModeEnum = { Advanced: "advanced", Standard: "standard", @@ -1188,11 +1104,6 @@ export interface AculResponseContent { [key: string]: any; } -/** - * Use page template with ACUL - */ -export type AculUsePageTemplate = (boolean | null) | undefined; - export interface AddOrganizationConnectionResponseContent { /** ID of the connection. */ connection_id?: string; @@ -1205,9 +1116,6 @@ export interface AddOrganizationConnectionResponseContent { connection?: Management.OrganizationConnectionInformation; } -/** - * IP address to check. - */ export type AnomalyIpFormat = string; /** @@ -1215,8 +1123,6 @@ export type AnomalyIpFormat = string; */ export type AppMetadata = Record; -export type AssessorsTypeEnum = "new-device"; - export interface AssociateOrganizationClientGrantResponseContent { /** ID of the client grant. */ id?: string; @@ -1231,126 +1137,6 @@ export interface AssociateOrganizationClientGrantResponseContent { allow_any_organization?: boolean; } -export const AsyncApprovalNotificationsChannelsEnum = { - GuardianPush: "guardian-push", - Email: "email", -} as const; -export type AsyncApprovalNotificationsChannelsEnum = - (typeof AsyncApprovalNotificationsChannelsEnum)[keyof typeof AsyncApprovalNotificationsChannelsEnum]; - -export interface AttackProtectionCaptchaArkoseResponseContent { - /** The site key for the Arkose captcha provider. */ - site_key?: string; - /** Whether the captcha should fail open. */ - fail_open?: boolean; - /** The subdomain used for client requests to the Arkose captcha provider. */ - client_subdomain?: string; - /** The subdomain used for server-side verification requests to the Arkose captcha provider. */ - verify_subdomain?: string; - /** Accepts any additional properties */ - [key: string]: any; -} - -export interface AttackProtectionCaptchaAuthChallengeRequest { - /** Whether the auth challenge should fail open. */ - fail_open: boolean; -} - -export interface AttackProtectionCaptchaAuthChallengeResponseContent { - /** Whether the auth challenge should fail open. */ - fail_open?: boolean; - /** Accepts any additional properties */ - [key: string]: any; -} - -export interface AttackProtectionCaptchaFriendlyCaptchaResponseContent { - /** The site key for the Friendly Captcha provider. */ - site_key?: string; - /** Accepts any additional properties */ - [key: string]: any; -} - -export interface AttackProtectionCaptchaHcaptchaResponseContent { - /** The site key for the hCaptcha provider. */ - site_key?: string; - /** Accepts any additional properties */ - [key: string]: any; -} - -/** The id of the active provider for the CAPTCHA. */ -export const AttackProtectionCaptchaProviderId = { - Arkose: "arkose", - AuthChallenge: "auth_challenge", - FriendlyCaptcha: "friendly_captcha", - Hcaptcha: "hcaptcha", - RecaptchaV2: "recaptcha_v2", - RecaptchaEnterprise: "recaptcha_enterprise", - SimpleCaptcha: "simple_captcha", -} as const; -export type AttackProtectionCaptchaProviderId = - (typeof AttackProtectionCaptchaProviderId)[keyof typeof AttackProtectionCaptchaProviderId]; - -export interface AttackProtectionCaptchaRecaptchaEnterpriseResponseContent { - /** The site key for the reCAPTCHA Enterprise provider. */ - site_key?: string; - /** The project ID for the reCAPTCHA Enterprise provider. */ - project_id?: string; - /** Accepts any additional properties */ - [key: string]: any; -} - -export interface AttackProtectionCaptchaRecaptchaV2ResponseContent { - /** The site key for the reCAPTCHA v2 provider. */ - site_key?: string; - /** Accepts any additional properties */ - [key: string]: any; -} - -export type AttackProtectionCaptchaSimpleCaptchaResponseContent = Record; - -export interface AttackProtectionUpdateCaptchaArkose { - /** The site key for the Arkose captcha provider. */ - site_key: string; - /** The secret key for the Arkose captcha provider. */ - secret: string; - /** The subdomain used for client requests to the Arkose captcha provider. */ - client_subdomain?: string; - /** The subdomain used for server-side verification requests to the Arkose captcha provider. */ - verify_subdomain?: string; - /** Whether the captcha should fail open. */ - fail_open?: boolean; -} - -export interface AttackProtectionUpdateCaptchaFriendlyCaptcha { - /** The site key for the Friendly Captcha provider. */ - site_key: string; - /** The secret key for the Friendly Captcha provider. */ - secret: string; -} - -export interface AttackProtectionUpdateCaptchaHcaptcha { - /** The site key for the hCaptcha provider. */ - site_key: string; - /** The secret key for the hCaptcha provider. */ - secret: string; -} - -export interface AttackProtectionUpdateCaptchaRecaptchaEnterprise { - /** The site key for the reCAPTCHA Enterprise provider. */ - site_key: string; - /** The API key for the reCAPTCHA Enterprise provider. */ - api_key: string; - /** The project ID for the reCAPTCHA Enterprise provider. */ - project_id: string; -} - -export interface AttackProtectionUpdateCaptchaRecaptchaV2 { - /** The site key for the reCAPTCHA v2 provider. */ - site_key: string; - /** The secret key for the reCAPTCHA v2 provider. */ - secret: string; -} - export const AuthenticationMethodTypeEnum = { RecoveryCode: "recovery-code", Totp: "totp", @@ -1374,66 +1160,6 @@ export const AuthenticationTypeEnum = { } as const; export type AuthenticationTypeEnum = (typeof AuthenticationTypeEnum)[keyof typeof AuthenticationTypeEnum]; -/** - * List of IP addresses or CIDR blocks to allowlist - */ -export type BotDetectionAllowlist = Management.BotDetectionIpAddressOrCidrBlock[]; - -/** The policy that defines how often to show CAPTCHA */ -export const BotDetectionChallengePolicyPasswordFlowEnum = { - Never: "never", - WhenRisky: "when_risky", - Always: "always", -} as const; -export type BotDetectionChallengePolicyPasswordFlowEnum = - (typeof BotDetectionChallengePolicyPasswordFlowEnum)[keyof typeof BotDetectionChallengePolicyPasswordFlowEnum]; - -/** The policy that defines how often to show CAPTCHA */ -export const BotDetectionChallengePolicyPasswordResetFlowEnum = { - Never: "never", - WhenRisky: "when_risky", - Always: "always", -} as const; -export type BotDetectionChallengePolicyPasswordResetFlowEnum = - (typeof BotDetectionChallengePolicyPasswordResetFlowEnum)[keyof typeof BotDetectionChallengePolicyPasswordResetFlowEnum]; - -/** The policy that defines how often to show CAPTCHA */ -export const BotDetectionChallengePolicyPasswordlessFlowEnum = { - Never: "never", - WhenRisky: "when_risky", - Always: "always", -} as const; -export type BotDetectionChallengePolicyPasswordlessFlowEnum = - (typeof BotDetectionChallengePolicyPasswordlessFlowEnum)[keyof typeof BotDetectionChallengePolicyPasswordlessFlowEnum]; - -/** - * IPv4 address or CIDR block - */ -export type BotDetectionIPv4OrCidrBlock = string; - -/** - * IPv6 address or CIDR block - */ -export type BotDetectionIPv6OrCidrBlock = string; - -/** - * IP address (IPv4 or IPv6) or CIDR block - */ -export type BotDetectionIpAddressOrCidrBlock = string; - -/** The level of bot detection sensitivity */ -export const BotDetectionLevelEnum = { - Low: "low", - Medium: "medium", - High: "high", -} as const; -export type BotDetectionLevelEnum = (typeof BotDetectionLevelEnum)[keyof typeof BotDetectionLevelEnum]; - -/** - * Whether monitoring mode is enabled (logs but does not block) - */ -export type BotDetectionMonitoringModeEnabled = boolean; - /** * Custom color settings. */ @@ -1753,12 +1479,6 @@ export interface BreachedPasswordDetectionStage { "pre-change-password"?: Management.BreachedPasswordDetectionPreChangePasswordStage; } -export interface BulkUpdateAculResponseContent { - configs: Management.AculConfigs; - /** Accepts any additional properties */ - [key: string]: any; -} - export interface ChangePasswordTicketResponseContent { /** URL representing the ticket. */ ticket: string; @@ -1779,7 +1499,8 @@ export interface Client { global?: boolean; /** Client secret (which you must not make public). */ client_secret?: string; - app_type?: Management.ClientAppTypeEnum; + /** Type of client used to determine which settings are applicable. Can be `spa`, `native`, `non_interactive`, or `regular_web`. */ + app_type?: string; /** URL of the logo to display for this client. Recommended size is 150x150 pixels. */ logo_uri?: string; /** Whether this client a first party client (true) or not (false). */ @@ -1800,7 +1521,7 @@ export interface Client { allowed_logout_urls?: string[]; session_transfer?: Management.ClientSessionTransferConfiguration | null; oidc_logout?: Management.ClientOidcBackchannelLogoutSettings; - /** List of grant types supported for this application. Can include `authorization_code`, `implicit`, `refresh_token`, `client_credentials`, `password`, `http://auth0.com/oauth/grant-type/password-realm`, `http://auth0.com/oauth/grant-type/mfa-oob`, `http://auth0.com/oauth/grant-type/mfa-otp`, `http://auth0.com/oauth/grant-type/mfa-recovery-code`, `urn:openid:params:grant-type:ciba`, `urn:ietf:params:oauth:grant-type:device_code`, and `urn:auth0:params:oauth:grant-type:token-exchange:federated-connection-access-token`. */ + /** List of grant types supported for this application. Can include `authorization_code`, `implicit`, `refresh_token`, `client_credentials`, `password`, `http://auth0.com/oauth/grant-type/password-realm`, `http://auth0.com/oauth/grant-type/mfa-oob`, `http://auth0.com/oauth/grant-type/mfa-otp`, `http://auth0.com/oauth/grant-type/mfa-recovery-code`, `urn:openid:params:grant-type:ciba`, and `urn:ietf:params:oauth:grant-type:device_code`. */ grant_types?: string[]; jwt_configuration?: Management.ClientJwtConfiguration; signing_keys?: Management.ClientSigningKeys; @@ -1823,8 +1544,6 @@ export interface Client { form_template?: string; addons?: Management.ClientAddons; token_endpoint_auth_method?: Management.ClientTokenEndpointAuthMethodEnum; - /** If true, trust that the IP specified in the `auth0-forwarded-for` header is the end-user's IP for brute-force-protection on token endpoint. */ - is_token_endpoint_ip_header_trusted?: boolean; client_metadata?: Management.ClientMetadata; mobile?: Management.ClientMobile; /** Initiate login uri, must be https */ @@ -1833,8 +1552,6 @@ export interface Client { default_organization?: Management.ClientDefaultOrganization | null; organization_usage?: Management.ClientOrganizationUsageEnum; organization_require_behavior?: Management.ClientOrganizationRequireBehaviorEnum; - /** Defines the available methods for organization discovery during the `pre_login_prompt`. Users can discover their organization either by `email`, `organization_name` or both. */ - organization_discovery_methods?: Management.ClientOrganizationDiscoveryEnum[]; client_authentication_methods?: Management.ClientAuthenticationMethod | null; /** Makes the use of Pushed Authorization Requests mandatory for this client */ require_pushed_authorization_requests?: boolean; @@ -1842,18 +1559,9 @@ export interface Client { require_proof_of_possession?: boolean; signed_request_object?: Management.ClientSignedRequestObjectWithCredentialId; compliance_level?: Management.ClientComplianceLevelEnum | null; - /** - * Controls whether a confirmation prompt is shown during login flows when the redirect URI uses non-verifiable callback URIs (for example, a custom URI schema such as `myapp://`, or `localhost`). - * If set to true, a confirmation prompt will not be shown. We recommend that this is set to false for improved protection from malicious apps. - * See https://auth0.com/docs/secure/security-guidance/measures-against-app-impersonation for more information. - */ - skip_non_verifiable_callback_uri_confirmation_prompt?: boolean; /** Specifies how long, in seconds, a Pushed Authorization Request URI remains valid */ par_request_expiry?: number | null; token_quota?: Management.TokenQuota; - /** The identifier of the resource server that this client is linked to. */ - resource_server_identifier?: string; - async_approval_notification_channels?: Management.ClientAsyncApprovalNotificationsChannelsApiPostConfiguration; /** Accepts any additional properties */ [key: string]: any; } @@ -2023,7 +1731,7 @@ export interface ClientAddonNewRelic { /** * Okta Access Gateway SSO configuration */ -export interface ClientAddonOag {} +export type ClientAddonOag = {}; /** * Microsoft Office 365 SSO configuration. @@ -2263,7 +1971,7 @@ export interface ClientAddons { oag?: Management.ClientAddonOag | null; } -/** The type of application this client represents */ +/** Type of client used to determine which settings are applicable. Can be `spa`, `native`, `non_interactive`, `regular_web` or `resource_server`. */ export const ClientAppTypeEnum = { Native: "native", Spa: "spa", @@ -2293,18 +2001,6 @@ export const ClientAppTypeEnum = { } as const; export type ClientAppTypeEnum = (typeof ClientAppTypeEnum)[keyof typeof ClientAppTypeEnum]; -/** - * Array of notification channels for contacting the user when their approval is required. Valid values are `guardian-push`, `email`. - */ -export type ClientAsyncApprovalNotificationsChannelsApiPatchConfiguration = - Management.AsyncApprovalNotificationsChannelsEnum[]; - -/** - * Array of notification channels for contacting the user when their approval is required. Valid values are `guardian-push`, `email`. - */ -export type ClientAsyncApprovalNotificationsChannelsApiPostConfiguration = - Management.AsyncApprovalNotificationsChannelsEnum[]; - /** * Defines client authentication methods. */ @@ -2415,9 +2111,6 @@ export interface ClientEncryptionKey { [key: string]: any; } -/** - * Optional filter on allow_any_organization. - */ export type ClientGrantAllowAnyOrganizationEnum = boolean; /** Controls how organizations may be used with this grant */ @@ -2452,18 +2145,8 @@ export interface ClientGrantResponseContent { allow_any_organization?: boolean; /** If enabled, this grant is a special grant created by Auth0. It cannot be modified or deleted directly. */ is_system?: boolean; - subject_type?: Management.ClientGrantSubjectTypeEnum; - /** Types of authorization_details allowed for this client grant. Use of this field is subject to the applicable Free Trial terms in Okta’s Master Subscription Agreement. */ - authorization_details_types?: string[]; } -/** The type of application access the client grant allows. Use of this field is subject to the applicable Free Trial terms in Okta’s Master Subscription Agreement. */ -export const ClientGrantSubjectTypeEnum = { - Client: "client", - User: "user", -} as const; -export type ClientGrantSubjectTypeEnum = (typeof ClientGrantSubjectTypeEnum)[keyof typeof ClientGrantSubjectTypeEnum]; - /** * Configuration related to JWTs for the client. */ @@ -2555,16 +2238,6 @@ export const ClientOidcBackchannelLogoutInitiatorsModeEnum = { export type ClientOidcBackchannelLogoutInitiatorsModeEnum = (typeof ClientOidcBackchannelLogoutInitiatorsModeEnum)[keyof typeof ClientOidcBackchannelLogoutInitiatorsModeEnum]; -/** - * Controls whether session metadata is included in the logout token. Default value is null. - */ -export interface ClientOidcBackchannelLogoutSessionMetadata { - /** The `include` property determines whether session metadata is included in the logout token. */ - include?: boolean; - /** Accepts any additional properties */ - [key: string]: any; -} - /** * Configuration for OIDC backchannel logout */ @@ -2572,19 +2245,10 @@ export interface ClientOidcBackchannelLogoutSettings { /** Comma-separated list of URLs that are valid to call back from Auth0 for OIDC backchannel logout. Currently only one URL is allowed. */ backchannel_logout_urls?: string[]; backchannel_logout_initiators?: Management.ClientOidcBackchannelLogoutInitiators; - backchannel_logout_session_metadata?: Management.ClientOidcBackchannelLogoutSessionMetadata | null; /** Accepts any additional properties */ [key: string]: any; } -/** Method for discovering organizations during the `pre_login_prompt`. `email` allows users to find their organization by entering their email address and performing domain matching, while `organization_name` requires users to enter the organization name directly. These methods can be combined. */ -export const ClientOrganizationDiscoveryEnum = { - Email: "email", - OrganizationName: "organization_name", -} as const; -export type ClientOrganizationDiscoveryEnum = - (typeof ClientOrganizationDiscoveryEnum)[keyof typeof ClientOrganizationDiscoveryEnum]; - /** Defines how to proceed during an authentication transaction when `client.organization_usage: 'require'`. Can be `no_prompt` (default), `pre_login_prompt` or `post_login_prompt`. `post_login_prompt` requires `oidc_conformant: true`. */ export const ClientOrganizationRequireBehaviorEnum = { NoPrompt: "no_prompt", @@ -2650,20 +2314,20 @@ export type ClientSessionTransferAllowedAuthenticationMethodsEnum = * Native to Web SSO Configuration */ export interface ClientSessionTransferConfiguration { - /** Indicates whether an app can issue a Session Transfer Token through Token Exchange. If set to 'false', the app will not be able to issue a Session Transfer Token. Usually configured in the native application. */ + /** Indicates whether an app can issue a session_token through Token Exchange. If set to 'false', the app will not be able to issue a session_token. */ can_create_session_transfer_token?: boolean; - /** Indicates whether revoking the parent Refresh Token that initiated a Native to Web flow and was used to issue a Session Transfer Token should trigger a cascade revocation affecting its dependent child entities. Usually configured in the native application. */ - enforce_cascade_revocation?: boolean; - /** Indicates whether an app can create a session from a Session Transfer Token received via indicated methods. Can include `cookie` and/or `query`. Usually configured in the web application. */ + /** Indicates whether an app can create a session from a session_token received via indicated methods. */ allowed_authentication_methods?: Management.ClientSessionTransferAllowedAuthenticationMethodsEnum[]; enforce_device_binding?: Management.ClientSessionTransferDeviceBindingEnum; - /** Indicates whether Refresh Tokens are allowed to be issued when authenticating with a Session Transfer Token. Usually configured in the web application. */ + /** Indicates whether Refresh Tokens are allowed to be issued when authenticating with a session_transfer_token. */ allow_refresh_token?: boolean; - /** Indicates whether Refresh Tokens created during a native-to-web session are tied to that session's lifetime. This determines if such refresh tokens should be automatically revoked when their corresponding sessions are. Usually configured in the web application. */ + /** Indicates whether Refresh Tokens created during a native-to-web session are tied to that session's lifetime. This determines if such refresh tokens should be automatically revoked when their corresponding sessions are. */ enforce_online_refresh_tokens?: boolean; + /** Indicates whether revoking the parent Refresh Token that initiated a Native to Web flow and was used to issue a Session Transfer Token should trigger a cascade revocation affecting its dependent child entities. */ + enforce_cascade_revocation?: boolean; } -/** Indicates whether device binding security should be enforced for the app. If set to 'ip', the app will enforce device binding by IP, meaning that consumption of Session Transfer Token must be done from the same IP of the issuer. Likewise, if set to 'asn', device binding is enforced by ASN, meaning consumption of Session Transfer Token must be done from the same ASN as the issuer. If set to 'null', device binding is not enforced. Usually configured in the web application. */ +/** Indicates whether device binding security should be enforced for the app. If set to 'ip', the app will enforce device binding by IP, meaning that consumption of session_token must be done from the same IP of the issuer. Likewise, if set to 'asn', device binding is enforced by ASN, meaning consumption of session_token must be done from the same ASN as the issuer. If set to 'null', device binding is not enforced. */ export const ClientSessionTransferDeviceBindingEnum = { Ip: "ip", Asn: "asn", @@ -2724,29 +2388,6 @@ export const ClientTokenEndpointAuthMethodOrNullEnum = { export type ClientTokenEndpointAuthMethodOrNullEnum = (typeof ClientTokenEndpointAuthMethodOrNullEnum)[keyof typeof ClientTokenEndpointAuthMethodOrNullEnum]; -export interface ConnectedAccount { - /** The unique identifier for the connected account. */ - id: string; - /** The name of the connection associated with the account. */ - connection: string; - /** The unique identifier of the connection associated with the account. */ - connection_id: string; - /** The authentication strategy used by the connection. */ - strategy: string; - access_type: Management.ConnectedAccountAccessTypeEnum; - /** The scopes granted for this connected account. */ - scopes?: string[]; - /** ISO 8601 timestamp when the connected account was created. */ - created_at: string; - /** ISO 8601 timestamp when the connected account expires. */ - expires_at?: string; -} - -/** - * The access type for the connected account. - */ -export type ConnectedAccountAccessTypeEnum = "offline"; - export interface ConnectionAttributeIdentifier { /** Determines if the attribute is used for identification */ active?: boolean; @@ -2769,21 +2410,6 @@ export interface ConnectionAuthenticationMethods { passkey?: Management.ConnectionPasskeyAuthenticationMethod; } -/** - * Configure the purpose of a connection to be used for authentication during login. - */ -export interface ConnectionAuthenticationPurpose { - active: boolean; -} - -/** - * Configure the purpose of a connection to be used for connected accounts and Token Vault. - */ -export interface ConnectionConnectedAccountsPurpose { - active: boolean; - cross_app_access?: boolean; -} - /** * A map of scripts used to integrate with a custom database. */ @@ -2801,11 +2427,6 @@ export interface ConnectionCustomScripts { [key: string]: any; } -/** - * Connection name used in the new universal login experience - */ -export type ConnectionDisplayName = string; - export interface ConnectionEnabledClient { /** The client id */ client_id: string; @@ -2813,19 +2434,6 @@ export interface ConnectionEnabledClient { [key: string]: any; } -/** - * DEPRECATED property. Use the PATCH /v2/connections/{id}/clients endpoint to enable the connection for a set of clients. - */ -export type ConnectionEnabledClients = string[]; - -/** - * Federated Connections Access Tokens - */ -export interface ConnectionFederatedConnectionsAccessTokens { - /** Enables refresh tokens and access tokens collection for federated connections */ - active?: boolean; -} - export interface ConnectionForList { /** The name of the connection */ name?: string; @@ -2843,8 +2451,6 @@ export interface ConnectionForList { /** Enables showing a button for the connection in the login page (new experience only). If false, it will be usable only by HRD. */ show_as_button?: boolean; metadata?: Management.ConnectionsMetadata; - authentication?: Management.ConnectionAuthenticationPurpose; - connected_accounts?: Management.ConnectionConnectedAccountsPurpose; } /** @@ -2879,11 +2485,6 @@ export interface ConnectionGatewayAuthentication { [key: string]: any; } -/** - * The connection's identifier - */ -export type ConnectionId = string; - /** Order of precedence for attribute types */ export const ConnectionIdentifierPrecedenceEnum = { Email: "email", @@ -2961,11 +2562,6 @@ export const ConnectionIdentityProviderEnum = { export type ConnectionIdentityProviderEnum = (typeof ConnectionIdentityProviderEnum)[keyof typeof ConnectionIdentityProviderEnum]; -/** - * true promotes to a domain-level connection so that third-party applications can use it. false does not promote the connection, so only first-party applications with the connection enabled can use it. (Defaults to false.) - */ -export type ConnectionIsDomainConnection = boolean; - export interface ConnectionKey { /** The key id of the signing key */ kid: string; @@ -3000,290 +2596,74 @@ export const ConnectionKeyUseEnum = { } as const; export type ConnectionKeyUseEnum = (typeof ConnectionKeyUseEnum)[keyof typeof ConnectionKeyUseEnum]; -/** - * The name of the connection. Must start and end with an alphanumeric character and can only contain alphanumeric characters and '-'. Max length 128 - */ -export type ConnectionName = string; - /** * In order to return options in the response, the `read:connections_options` scope must be present */ export type ConnectionOptions = Record; /** - * options for the 'ad' connection + * Passkey authentication enablement */ -export type ConnectionOptionsAd = Record; +export interface ConnectionPasskeyAuthenticationMethod { + /** Determines whether passkeys are enabled */ + enabled?: boolean; +} + +/** Controls the UI used to challenge the user for their passkey. */ +export const ConnectionPasskeyChallengeUiEnum = { + Both: "both", + Autofill: "autofill", + Button: "button", +} as const; +export type ConnectionPasskeyChallengeUiEnum = + (typeof ConnectionPasskeyChallengeUiEnum)[keyof typeof ConnectionPasskeyChallengeUiEnum]; /** - * options for the 'adfs' connection + * Options for the passkey authentication method */ -export type ConnectionOptionsAdfs = Record; - -export type ConnectionOptionsAol = Management.ConnectionOptionsOAuth2Common; - -export type ConnectionOptionsAmazon = Management.ConnectionOptionsOAuth2Common; +export interface ConnectionPasskeyOptions { + challenge_ui?: Management.ConnectionPasskeyChallengeUiEnum; + /** Enables or disables progressive enrollment of passkeys for the connection. */ + progressive_enrollment_enabled?: boolean; + /** Enables or disables enrollment prompt for local passkey when user authenticates using a cross-device passkey for the connection. */ + local_enrollment_enabled?: boolean; +} /** - * options for the 'apple' connection + * Password authentication enablement */ -export type ConnectionOptionsApple = Record; +export interface ConnectionPasswordAuthenticationMethod { + /** Determines whether passwords are enabled */ + enabled?: boolean; +} /** - * options for the 'auth0' connection + * Password complexity options */ -export type ConnectionOptionsAuth0 = Record; +export interface ConnectionPasswordComplexityOptions { + /** Minimum password length */ + min_length?: number; +} /** - * options for the 'auth0-oidc' connection + * Options for password dictionary policy */ -export type ConnectionOptionsAuth0Oidc = Record; +export interface ConnectionPasswordDictionaryOptions { + enable: boolean; + /** Custom Password Dictionary. An array of up to 200 entries. */ + dictionary?: string[]; +} /** - * options for the 'waad' connection + * Options for password history policy */ -export type ConnectionOptionsAzureAd = Record; - -export type ConnectionOptionsBaidu = Management.ConnectionOptionsOAuth2Common; - -export type ConnectionOptionsBitbucket = Management.ConnectionOptionsOAuth2Common; - -export type ConnectionOptionsBitly = Management.ConnectionOptionsOAuth2Common; - -export type ConnectionOptionsBox = Management.ConnectionOptionsOAuth2Common; +export interface ConnectionPasswordHistoryOptions { + enable: boolean; + size?: number; +} /** - * options for the 'custom' connection - */ -export type ConnectionOptionsCustom = Record; - -export type ConnectionOptionsDaccount = Management.ConnectionOptionsOAuth2Common; - -export type ConnectionOptionsDropbox = Management.ConnectionOptionsOAuth2Common; - -export type ConnectionOptionsDwolla = Management.ConnectionOptionsOAuth2Common; - -/** - * options for the 'email' connection - */ -export type ConnectionOptionsEmail = Record; - -export type ConnectionOptionsEvernote = Management.ConnectionOptionsEvernoteCommon; - -export type ConnectionOptionsEvernoteCommon = Record; - -export type ConnectionOptionsEvernoteSandbox = Management.ConnectionOptionsEvernoteCommon; - -export type ConnectionOptionsExact = Management.ConnectionOptionsOAuth2Common; - -/** - * options for the 'facebook' connection - */ -export type ConnectionOptionsFacebook = Record; - -/** - * options for the 'fitbit' connection - */ -export type ConnectionOptionsFitbit = Record; - -/** - * options for the 'flickr' connection - */ -export type ConnectionOptionsFlickr = Record; - -/** - * options for the 'github' connection - */ -export type ConnectionOptionsGitHub = Record; - -/** - * options for the 'google-apps' connection - */ -export type ConnectionOptionsGoogleApps = Record; - -/** - * options for the 'google-oauth2' connection - */ -export type ConnectionOptionsGoogleOAuth2 = Record; - -/** - * options for the 'ip' connection - */ -export type ConnectionOptionsIp = Record; - -export type ConnectionOptionsInstagram = Management.ConnectionOptionsOAuth2Common; - -export type ConnectionOptionsLine = Management.ConnectionOptionsOAuth2Common; - -/** - * options for the 'linkedin' connection - */ -export type ConnectionOptionsLinkedin = Record; - -export type ConnectionOptionsMiicard = Management.ConnectionOptionsOAuth2Common; - -/** - * options for the 'oauth1' connection - */ -export type ConnectionOptionsOAuth1 = Record; - -export type ConnectionOptionsOAuth2 = Management.ConnectionOptionsOAuth2Common; - -export type ConnectionOptionsOAuth2Common = Record; - -/** - * options for the 'oidc' connection - */ -export type ConnectionOptionsOidc = Record; - -/** - * options for the 'office365' connection - */ -export type ConnectionOptionsOffice365 = Record; - -/** - * options for the 'okta' connection - */ -export type ConnectionOptionsOkta = Record; - -export type ConnectionOptionsPaypal = Management.ConnectionOptionsOAuth2Common; - -export type ConnectionOptionsPaypalSandbox = Management.ConnectionOptionsOAuth2Common; - -/** - * options for the 'pingfederate' connection - */ -export type ConnectionOptionsPingFederate = Record; - -/** - * options for the 'planningcenter' connection - */ -export type ConnectionOptionsPlanningCenter = Record; - -export type ConnectionOptionsRenren = Management.ConnectionOptionsOAuth2Common; - -/** - * options for the 'samlp' connection - */ -export type ConnectionOptionsSaml = Record; - -/** - * options for the 'sms' connection - */ -export type ConnectionOptionsSms = Record; - -export type ConnectionOptionsSalesforce = Management.ConnectionOptionsSalesforceCommon; - -export type ConnectionOptionsSalesforceCommon = Record; - -export type ConnectionOptionsSalesforceCommunity = Management.ConnectionOptionsSalesforceCommon; - -export type ConnectionOptionsSalesforceSandbox = Management.ConnectionOptionsSalesforceCommon; - -export type ConnectionOptionsSharepoint = Management.ConnectionOptionsOAuth2Common; - -/** - * options for the 'shop' connection - */ -export type ConnectionOptionsShop = Record; - -export type ConnectionOptionsShopify = Management.ConnectionOptionsOAuth2Common; - -export type ConnectionOptionsSoundcloud = Management.ConnectionOptionsOAuth2Common; - -export type ConnectionOptionsTheCity = Management.ConnectionOptionsOAuth2Common; - -export type ConnectionOptionsTheCitySandbox = Management.ConnectionOptionsOAuth2Common; - -export type ConnectionOptionsThirtySevenSignals = Management.ConnectionOptionsOAuth2Common; - -/** - * options for the 'twitter' connection - */ -export type ConnectionOptionsTwitter = Record; - -export type ConnectionOptionsUntappd = Management.ConnectionOptionsOAuth2Common; - -export type ConnectionOptionsVkontakte = Management.ConnectionOptionsOAuth2Common; - -export type ConnectionOptionsWeibo = Management.ConnectionOptionsOAuth2Common; - -/** - * options for the 'windowslive' connection - */ -export type ConnectionOptionsWindowsLive = Record; - -export type ConnectionOptionsWordpress = Management.ConnectionOptionsOAuth2Common; - -export type ConnectionOptionsYahoo = Management.ConnectionOptionsOAuth2Common; - -export type ConnectionOptionsYammer = Management.ConnectionOptionsOAuth2Common; - -export type ConnectionOptionsYandex = Management.ConnectionOptionsOAuth2Common; - -/** - * Passkey authentication enablement - */ -export interface ConnectionPasskeyAuthenticationMethod { - /** Determines whether passkeys are enabled */ - enabled?: boolean; -} - -/** Controls the UI used to challenge the user for their passkey. */ -export const ConnectionPasskeyChallengeUiEnum = { - Both: "both", - Autofill: "autofill", - Button: "button", -} as const; -export type ConnectionPasskeyChallengeUiEnum = - (typeof ConnectionPasskeyChallengeUiEnum)[keyof typeof ConnectionPasskeyChallengeUiEnum]; - -/** - * Options for the passkey authentication method - */ -export interface ConnectionPasskeyOptions { - challenge_ui?: Management.ConnectionPasskeyChallengeUiEnum; - /** Enables or disables progressive enrollment of passkeys for the connection. */ - progressive_enrollment_enabled?: boolean; - /** Enables or disables enrollment prompt for local passkey when user authenticates using a cross-device passkey for the connection. */ - local_enrollment_enabled?: boolean; -} - -/** - * Password authentication enablement - */ -export interface ConnectionPasswordAuthenticationMethod { - /** Determines whether passwords are enabled */ - enabled?: boolean; -} - -/** - * Password complexity options - */ -export interface ConnectionPasswordComplexityOptions { - /** Minimum password length */ - min_length?: number; -} - -/** - * Options for password dictionary policy - */ -export interface ConnectionPasswordDictionaryOptions { - enable: boolean; - /** Custom Password Dictionary. An array of up to 200 entries. */ - dictionary?: string[]; -} - -/** - * Options for password history policy - */ -export interface ConnectionPasswordHistoryOptions { - enable: boolean; - size?: number; -} - -/** - * Options for personal info in passwords policy + * Options for personal info in passwords policy */ export interface ConnectionPasswordNoPersonalInfoOptions { enable: boolean; @@ -3310,7 +2690,6 @@ export interface ConnectionPropertiesOptions { /** Order of precedence for attribute types. If the property is not specified, the default precedence of attributes will be used. */ precedence?: Management.ConnectionIdentifierPrecedenceEnum[]; attributes?: Management.ConnectionAttributes; - /** Set to true to inject context into custom DB scripts (warning: cannot be disabled once enabled) */ enable_script_context?: boolean; /** Set to true to use a legacy user store */ enabledDatabaseCustomization?: boolean; @@ -3336,1454 +2715,264 @@ export interface ConnectionPropertiesOptions { upstream_params?: (Management.ConnectionUpstreamParams | undefined) | null; set_user_root_attributes?: Management.ConnectionSetUserRootAttributesEnum; gateway_authentication?: Management.ConnectionGatewayAuthentication | null; - federated_connections_access_tokens?: Management.ConnectionFederatedConnectionsAccessTokens | null; /** Accepts any additional properties */ [key: string]: any; } -/** - * Defines the realms for which the connection will be used (ie: email domains). If the array is empty or the property is not specified, the connection name will be added as realm. - */ -export type ConnectionRealms = string[]; - -export interface ConnectionRequestCommon { - display_name?: Management.ConnectionDisplayName; - enabled_clients?: Management.ConnectionEnabledClients; - is_domain_connection?: Management.ConnectionIsDomainConnection; - show_as_button?: Management.ConnectionShowAsButton; - realms?: Management.ConnectionRealms; - metadata?: Management.ConnectionsMetadata; - authentication?: Management.ConnectionAuthenticationPurpose; - connected_accounts?: Management.ConnectionConnectedAccountsPurpose; -} - -export interface ConnectionResponseCommon extends Management.ConnectionRequestCommon { - id?: Management.ConnectionId; - strategy?: Management.ConnectionIdentityProviderEnum; - name?: Management.ConnectionName; -} - -/** - * Response for connections with strategy=ad - */ -export interface ConnectionResponseContentAd extends Management.ConnectionRequestCommon { - strategy: "ad"; - options?: Management.ConnectionOptionsAd; - id?: Management.ConnectionId; - name?: Management.ConnectionName; -} +/** When using an external IdP, this flag determines whether 'name', 'given_name', 'family_name', 'nickname', and 'picture' attributes are updated. In addition, it also determines whether the user is created when user doesnt exist previously. Possible values are 'on_each_login' (default value, it configures the connection to automatically create the user if necessary and update the root attributes from the external IdP with each user login. When this setting is used, root attributes cannot be independently updated), 'on_first_login' (configures the connection to create the user and set the root attributes on first login only, allowing them to be independently updated thereafter), and 'never_on_login' (configures the connection not to create the user and not to set the root attributes from the external IdP, allowing them to be independently updated). */ +export const ConnectionSetUserRootAttributesEnum = { + OnEachLogin: "on_each_login", + OnFirstLogin: "on_first_login", + NeverOnLogin: "never_on_login", +} as const; +export type ConnectionSetUserRootAttributesEnum = + (typeof ConnectionSetUserRootAttributesEnum)[keyof typeof ConnectionSetUserRootAttributesEnum]; -/** - * Response for connections with strategy=adfs - */ -export interface ConnectionResponseContentAdfs extends Management.ConnectionRequestCommon { - strategy: "adfs"; - options?: Management.ConnectionOptionsAdfs; - id?: Management.ConnectionId; - name?: Management.ConnectionName; -} +export const ConnectionStrategyEnum = { + Ad: "ad", + Adfs: "adfs", + Amazon: "amazon", + Apple: "apple", + Dropbox: "dropbox", + Bitbucket: "bitbucket", + Aol: "aol", + Auth0Oidc: "auth0-oidc", + Auth0: "auth0", + Baidu: "baidu", + Bitly: "bitly", + Box: "box", + Custom: "custom", + Daccount: "daccount", + Dwolla: "dwolla", + Email: "email", + EvernoteSandbox: "evernote-sandbox", + Evernote: "evernote", + Exact: "exact", + Facebook: "facebook", + Fitbit: "fitbit", + Flickr: "flickr", + Github: "github", + GoogleApps: "google-apps", + GoogleOauth2: "google-oauth2", + Instagram: "instagram", + Ip: "ip", + Line: "line", + Linkedin: "linkedin", + Miicard: "miicard", + Oauth1: "oauth1", + Oauth2: "oauth2", + Office365: "office365", + Oidc: "oidc", + Okta: "okta", + Paypal: "paypal", + PaypalSandbox: "paypal-sandbox", + Pingfederate: "pingfederate", + Planningcenter: "planningcenter", + Renren: "renren", + SalesforceCommunity: "salesforce-community", + SalesforceSandbox: "salesforce-sandbox", + Salesforce: "salesforce", + Samlp: "samlp", + Sharepoint: "sharepoint", + Shopify: "shopify", + Shop: "shop", + Sms: "sms", + Soundcloud: "soundcloud", + ThecitySandbox: "thecity-sandbox", + Thecity: "thecity", + Thirtysevensignals: "thirtysevensignals", + Twitter: "twitter", + Untappd: "untappd", + Vkontakte: "vkontakte", + Waad: "waad", + Weibo: "weibo", + Windowslive: "windowslive", + Wordpress: "wordpress", + Yahoo: "yahoo", + Yammer: "yammer", + Yandex: "yandex", + Auth0Adldap: "auth0-adldap", +} as const; +export type ConnectionStrategyEnum = (typeof ConnectionStrategyEnum)[keyof typeof ConnectionStrategyEnum]; /** - * Response for connections with strategy=aol + * Options for adding parameters in the request to the upstream IdP */ -export interface ConnectionResponseContentAol extends Management.ConnectionRequestCommon { - strategy: "aol"; - options?: Management.ConnectionOptionsAol; - id?: Management.ConnectionId; - name?: Management.ConnectionName; -} +export type ConnectionUpstreamParams = (Record | null) | undefined; -/** - * Response for connections with strategy=amazon - */ -export interface ConnectionResponseContentAmazon extends Management.ConnectionRequestCommon { - strategy: "amazon"; - options?: Management.ConnectionOptionsAmazon; - id?: Management.ConnectionId; - name?: Management.ConnectionName; +export interface ConnectionUsernameValidationOptions { + min: number; + max: number; } /** - * Response for connections with strategy=apple + * Options for validation */ -export interface ConnectionResponseContentApple extends Management.ConnectionRequestCommon { - strategy: "apple"; - options?: Management.ConnectionOptionsApple; - id?: Management.ConnectionId; - name?: Management.ConnectionName; +export interface ConnectionValidationOptions { + username?: Management.ConnectionUsernameValidationOptions | null; } /** - * Response for connections with strategy=auth0 + * Metadata associated with the connection in the form of an object with string values (max 255 chars). Maximum of 10 metadata properties allowed. */ -export interface ConnectionResponseContentAuth0 extends Management.ConnectionRequestCommon { - strategy: "auth0"; - options?: Management.ConnectionOptionsAuth0; - id?: Management.ConnectionId; - name?: Management.ConnectionName; -} +export type ConnectionsMetadata = Record; -/** - * Response for connections with strategy=auth0-oidc - */ -export interface ConnectionResponseContentAuth0Oidc extends Management.ConnectionRequestCommon { - strategy: "auth0-oidc"; - options?: Management.ConnectionOptionsAuth0Oidc; - id?: Management.ConnectionId; - name?: Management.ConnectionName; -} - -/** - * Response for connections with strategy=waad - */ -export interface ConnectionResponseContentAzureAd extends Management.ConnectionRequestCommon { - strategy: "waad"; - options?: Management.ConnectionOptionsAzureAd; - id?: Management.ConnectionId; - name?: Management.ConnectionName; -} - -/** - * Response for connections with strategy=baidu - */ -export interface ConnectionResponseContentBaidu extends Management.ConnectionRequestCommon { - strategy: "baidu"; - options?: Management.ConnectionOptionsBaidu; - id?: Management.ConnectionId; - name?: Management.ConnectionName; -} - -/** - * Response for connections with strategy=bitbucket - */ -export interface ConnectionResponseContentBitbucket extends Management.ConnectionRequestCommon { - strategy: "bitbucket"; - options?: Management.ConnectionOptionsBitbucket; - id?: Management.ConnectionId; - name?: Management.ConnectionName; -} - -/** - * Response for connections with strategy=bitly - */ -export interface ConnectionResponseContentBitly extends Management.ConnectionRequestCommon { - strategy: "bitly"; - options?: Management.ConnectionOptionsBitly; - id?: Management.ConnectionId; - name?: Management.ConnectionName; -} - -/** - * Response for connections with strategy=box - */ -export interface ConnectionResponseContentBox extends Management.ConnectionRequestCommon { - strategy: "box"; - options?: Management.ConnectionOptionsBox; - id?: Management.ConnectionId; - name?: Management.ConnectionName; -} - -/** - * Response for connections with strategy=custom - */ -export interface ConnectionResponseContentCustom extends Management.ConnectionRequestCommon { - strategy: "custom"; - options?: Management.ConnectionOptionsCustom; - id?: Management.ConnectionId; - name?: Management.ConnectionName; -} - -/** - * Response for connections with strategy=daccount - */ -export interface ConnectionResponseContentDaccount extends Management.ConnectionRequestCommon { - strategy: "daccount"; - options?: Management.ConnectionOptionsDaccount; - id?: Management.ConnectionId; - name?: Management.ConnectionName; -} - -/** - * Response for connections with strategy=dropbox - */ -export interface ConnectionResponseContentDropbox extends Management.ConnectionRequestCommon { - strategy: "dropbox"; - options?: Management.ConnectionOptionsDropbox; - id?: Management.ConnectionId; - name?: Management.ConnectionName; -} - -/** - * Response for connections with strategy=dwolla - */ -export interface ConnectionResponseContentDwolla extends Management.ConnectionRequestCommon { - strategy: "dwolla"; - options?: Management.ConnectionOptionsDwolla; - id?: Management.ConnectionId; - name?: Management.ConnectionName; -} - -/** - * Response for connections with strategy=email - */ -export interface ConnectionResponseContentEmail extends Management.ConnectionRequestCommon { - strategy: "email"; - options?: Management.ConnectionOptionsEmail; - id?: Management.ConnectionId; - name?: Management.ConnectionName; -} - -/** - * Response for connections with strategy=evernote - */ -export interface ConnectionResponseContentEvernote extends Management.ConnectionRequestCommon { - strategy: "evernote"; - options?: Management.ConnectionOptionsEvernote; - id?: Management.ConnectionId; - name?: Management.ConnectionName; -} - -/** - * Response for connections with strategy=evernote-sandbox - */ -export interface ConnectionResponseContentEvernoteSandbox extends Management.ConnectionRequestCommon { - strategy: "evernote-sandbox"; - options?: Management.ConnectionOptionsEvernoteSandbox; - id?: Management.ConnectionId; - name?: Management.ConnectionName; -} - -/** - * Response for connections with strategy=exact - */ -export interface ConnectionResponseContentExact extends Management.ConnectionRequestCommon { - strategy: "exact"; - options?: Management.ConnectionOptionsExact; - id?: Management.ConnectionId; - name?: Management.ConnectionName; -} - -/** - * Response for connections with strategy=facebook - */ -export interface ConnectionResponseContentFacebook extends Management.ConnectionRequestCommon { - strategy: "facebook"; - options?: Management.ConnectionOptionsFacebook; - id?: Management.ConnectionId; - name?: Management.ConnectionName; -} - -/** - * Response for connections with strategy=fitbit - */ -export interface ConnectionResponseContentFitbit extends Management.ConnectionRequestCommon { - strategy: "fitbit"; - options?: Management.ConnectionOptionsFitbit; - id?: Management.ConnectionId; - name?: Management.ConnectionName; -} - -/** - * Response for connections with strategy=flickr - */ -export interface ConnectionResponseContentFlickr extends Management.ConnectionRequestCommon { - strategy: "flickr"; - options?: Management.ConnectionOptionsFlickr; - id?: Management.ConnectionId; - name?: Management.ConnectionName; -} - -/** - * Response for connections with strategy=github - */ -export interface ConnectionResponseContentGitHub extends Management.ConnectionRequestCommon { - strategy: "github"; - options?: Management.ConnectionOptionsGitHub; - id?: Management.ConnectionId; - name?: Management.ConnectionName; -} - -/** - * Response for connections with strategy=google-apps - */ -export interface ConnectionResponseContentGoogleApps extends Management.ConnectionRequestCommon { - strategy: "google-apps"; - options?: Management.ConnectionOptionsGoogleApps; - id?: Management.ConnectionId; - name?: Management.ConnectionName; -} - -/** - * Response for connections with strategy=google-oauth2 - */ -export interface ConnectionResponseContentGoogleOAuth2 extends Management.ConnectionRequestCommon { - strategy: "google-oauth2"; - options?: Management.ConnectionOptionsGoogleOAuth2; - id?: Management.ConnectionId; - name?: Management.ConnectionName; -} - -/** - * Response for connections with strategy=ip - */ -export interface ConnectionResponseContentIp extends Management.ConnectionRequestCommon { - strategy: "ip"; - options?: Management.ConnectionOptionsIp; - id?: Management.ConnectionId; - name?: Management.ConnectionName; -} - -/** - * Response for connections with strategy=instagram - */ -export interface ConnectionResponseContentInstagram extends Management.ConnectionRequestCommon { - strategy: "instagram"; - options?: Management.ConnectionOptionsInstagram; - id?: Management.ConnectionId; - name?: Management.ConnectionName; -} - -/** - * Response for connections with strategy=line - */ -export interface ConnectionResponseContentLine extends Management.ConnectionRequestCommon { - strategy: "line"; - options?: Management.ConnectionOptionsLine; - id?: Management.ConnectionId; - name?: Management.ConnectionName; -} - -/** - * Response for connections with strategy=linkedin - */ -export interface ConnectionResponseContentLinkedin extends Management.ConnectionRequestCommon { - strategy: "linkedin"; - options?: Management.ConnectionOptionsLinkedin; - id?: Management.ConnectionId; - name?: Management.ConnectionName; -} - -/** - * Response for connections with strategy=miicard - */ -export interface ConnectionResponseContentMiicard extends Management.ConnectionRequestCommon { - strategy: "miicard"; - options?: Management.ConnectionOptionsMiicard; - id?: Management.ConnectionId; - name?: Management.ConnectionName; -} - -/** - * Response for connections with strategy=oauth1 - */ -export interface ConnectionResponseContentOAuth1 extends Management.ConnectionRequestCommon { - strategy: "oauth1"; - options?: Management.ConnectionOptionsOAuth1; - id?: Management.ConnectionId; - name?: Management.ConnectionName; -} - -/** - * Response for connections with strategy=oauth2 - */ -export interface ConnectionResponseContentOAuth2 extends Management.ConnectionRequestCommon { - strategy: "oauth2"; - options?: Management.ConnectionOptionsOAuth2; - id?: Management.ConnectionId; - name?: Management.ConnectionName; -} - -/** - * Response for connections with strategy=oidc - */ -export interface ConnectionResponseContentOidc extends Management.ConnectionRequestCommon { - strategy: "oidc"; - options?: Management.ConnectionOptionsOidc; - id?: Management.ConnectionId; - name?: Management.ConnectionName; -} - -/** - * Response for connections with strategy=office365 - */ -export interface ConnectionResponseContentOffice365 extends Management.ConnectionRequestCommon { - strategy: "office365"; - options?: Management.ConnectionOptionsOffice365; - id?: Management.ConnectionId; - name?: Management.ConnectionName; -} - -/** - * Response for connections with strategy=okta - */ -export interface ConnectionResponseContentOkta extends Management.ConnectionRequestCommon { - strategy: "okta"; - options?: Management.ConnectionOptionsOkta; - id?: Management.ConnectionId; - name?: Management.ConnectionName; -} - -/** - * Response for connections with strategy=paypal - */ -export interface ConnectionResponseContentPaypal extends Management.ConnectionRequestCommon { - strategy: "paypal"; - options?: Management.ConnectionOptionsPaypal; - id?: Management.ConnectionId; - name?: Management.ConnectionName; -} - -/** - * Response for connections with strategy=paypal-sandbox - */ -export interface ConnectionResponseContentPaypalSandbox extends Management.ConnectionRequestCommon { - strategy: "paypal-sandbox"; - options?: Management.ConnectionOptionsPaypalSandbox; - id?: Management.ConnectionId; - name?: Management.ConnectionName; -} - -/** - * Response for connections with strategy=pingfederate - */ -export interface ConnectionResponseContentPingFederate extends Management.ConnectionRequestCommon { - strategy: "pingfederate"; - options?: Management.ConnectionOptionsPingFederate; - id?: Management.ConnectionId; - name?: Management.ConnectionName; -} - -/** - * Response for connections with strategy=planningcenter - */ -export interface ConnectionResponseContentPlanningCenter extends Management.ConnectionRequestCommon { - strategy: "planningcenter"; - options?: Management.ConnectionOptionsPlanningCenter; - id?: Management.ConnectionId; - name?: Management.ConnectionName; -} - -/** - * Response for connections with strategy=renren - */ -export interface ConnectionResponseContentRenren extends Management.ConnectionRequestCommon { - strategy: "renren"; - options?: Management.ConnectionOptionsRenren; - id?: Management.ConnectionId; - name?: Management.ConnectionName; -} - -/** - * Response for connections with strategy=samlp - */ -export interface ConnectionResponseContentSaml extends Management.ConnectionRequestCommon { - strategy: "samlp"; - options?: Management.ConnectionOptionsSaml; - id?: Management.ConnectionId; - name?: Management.ConnectionName; -} - -/** - * Response for connections with strategy=sms - */ -export interface ConnectionResponseContentSms extends Management.ConnectionRequestCommon { - strategy: "sms"; - options?: Management.ConnectionOptionsSms; - id?: Management.ConnectionId; - name?: Management.ConnectionName; -} - -/** - * Response for connections with strategy=salesforce - */ -export interface ConnectionResponseContentSalesforce extends Management.ConnectionRequestCommon { - strategy: "salesforce"; - options?: Management.ConnectionOptionsSalesforce; - id?: Management.ConnectionId; - name?: Management.ConnectionName; -} - -/** - * Response for connections with strategy=salesforce-community - */ -export interface ConnectionResponseContentSalesforceCommunity extends Management.ConnectionRequestCommon { - strategy: "salesforce-community"; - options?: Management.ConnectionOptionsSalesforceCommunity; - id?: Management.ConnectionId; - name?: Management.ConnectionName; -} - -/** - * Response for connections with strategy=salesforce-sandbox - */ -export interface ConnectionResponseContentSalesforceSandbox extends Management.ConnectionRequestCommon { - strategy: "salesforce-sandbox"; - options?: Management.ConnectionOptionsSalesforceSandbox; - id?: Management.ConnectionId; - name?: Management.ConnectionName; -} - -/** - * Response for connections with strategy=sharepoint - */ -export interface ConnectionResponseContentSharepoint extends Management.ConnectionRequestCommon { - strategy: "sharepoint"; - options?: Management.ConnectionOptionsSharepoint; - id?: Management.ConnectionId; - name?: Management.ConnectionName; -} - -/** - * Response for connections with strategy=shop - */ -export interface ConnectionResponseContentShop extends Management.ConnectionRequestCommon { - strategy: "shop"; - options?: Management.ConnectionOptionsShop; - id?: Management.ConnectionId; - name?: Management.ConnectionName; -} - -/** - * Response for connections with strategy=shopify - */ -export interface ConnectionResponseContentShopify extends Management.ConnectionRequestCommon { - strategy: "shopify"; - options?: Management.ConnectionOptionsShopify; - id?: Management.ConnectionId; - name?: Management.ConnectionName; -} - -/** - * Response for connections with strategy=soundcloud - */ -export interface ConnectionResponseContentSoundcloud extends Management.ConnectionRequestCommon { - strategy: "soundcloud"; - options?: Management.ConnectionOptionsSoundcloud; - id?: Management.ConnectionId; - name?: Management.ConnectionName; -} - -/** - * Response for connections with strategy=thecity - */ -export interface ConnectionResponseContentTheCity extends Management.ConnectionRequestCommon { - strategy: "thecity"; - options?: Management.ConnectionOptionsTheCity; - id?: Management.ConnectionId; - name?: Management.ConnectionName; -} - -/** - * Response for connections with strategy=thecity-sandbox - */ -export interface ConnectionResponseContentTheCitySandbox extends Management.ConnectionRequestCommon { - strategy: "thecity-sandbox"; - options?: Management.ConnectionOptionsTheCitySandbox; - id?: Management.ConnectionId; - name?: Management.ConnectionName; -} - -/** - * Response for connections with strategy=thirtysevensignals - */ -export interface ConnectionResponseContentThirtySevenSignals extends Management.ConnectionRequestCommon { - strategy: "thirtysevensignals"; - options?: Management.ConnectionOptionsThirtySevenSignals; - id?: Management.ConnectionId; - name?: Management.ConnectionName; -} - -/** - * Response for connections with strategy=twitter - */ -export interface ConnectionResponseContentTwitter extends Management.ConnectionRequestCommon { - strategy: "twitter"; - options?: Management.ConnectionOptionsTwitter; - id?: Management.ConnectionId; - name?: Management.ConnectionName; -} - -/** - * Response for connections with strategy=untappd - */ -export interface ConnectionResponseContentUntappd extends Management.ConnectionRequestCommon { - strategy: "untappd"; - options?: Management.ConnectionOptionsUntappd; - id?: Management.ConnectionId; - name?: Management.ConnectionName; -} - -/** - * Response for connections with strategy=vkontakte - */ -export interface ConnectionResponseContentVkontakte extends Management.ConnectionRequestCommon { - strategy: "vkontakte"; - options?: Management.ConnectionOptionsVkontakte; - id?: Management.ConnectionId; - name?: Management.ConnectionName; -} - -/** - * Response for connections with strategy=weibo - */ -export interface ConnectionResponseContentWeibo extends Management.ConnectionRequestCommon { - strategy: "weibo"; - options?: Management.ConnectionOptionsWeibo; - id?: Management.ConnectionId; - name?: Management.ConnectionName; -} - -/** - * Response for connections with strategy=windowslive - */ -export interface ConnectionResponseContentWindowsLive extends Management.ConnectionRequestCommon { - strategy: "windowslive"; - options?: Management.ConnectionOptionsWindowsLive; - id?: Management.ConnectionId; - name?: Management.ConnectionName; -} - -/** - * Response for connections with strategy=wordpress - */ -export interface ConnectionResponseContentWordpress extends Management.ConnectionRequestCommon { - strategy: "wordpress"; - options?: Management.ConnectionOptionsWordpress; - id?: Management.ConnectionId; - name?: Management.ConnectionName; -} - -/** - * Response for connections with strategy=yahoo - */ -export interface ConnectionResponseContentYahoo extends Management.ConnectionRequestCommon { - strategy: "yahoo"; - options?: Management.ConnectionOptionsYahoo; - id?: Management.ConnectionId; - name?: Management.ConnectionName; -} - -/** - * Response for connections with strategy=yammer - */ -export interface ConnectionResponseContentYammer extends Management.ConnectionRequestCommon { - strategy: "yammer"; - options?: Management.ConnectionOptionsYammer; - id?: Management.ConnectionId; - name?: Management.ConnectionName; -} - -/** - * Response for connections with strategy=yandex - */ -export interface ConnectionResponseContentYandex extends Management.ConnectionRequestCommon { - strategy: "yandex"; - options?: Management.ConnectionOptionsYandex; - id?: Management.ConnectionId; - name?: Management.ConnectionName; -} - -/** When using an external IdP, this flag determines whether 'name', 'given_name', 'family_name', 'nickname', and 'picture' attributes are updated. In addition, it also determines whether the user is created when user doesnt exist previously. Possible values are 'on_each_login' (default value, it configures the connection to automatically create the user if necessary and update the root attributes from the external IdP with each user login. When this setting is used, root attributes cannot be independently updated), 'on_first_login' (configures the connection to create the user and set the root attributes on first login only, allowing them to be independently updated thereafter), and 'never_on_login' (configures the connection not to create the user and not to set the root attributes from the external IdP, allowing them to be independently updated). */ -export const ConnectionSetUserRootAttributesEnum = { - OnEachLogin: "on_each_login", - OnFirstLogin: "on_first_login", - NeverOnLogin: "never_on_login", -} as const; -export type ConnectionSetUserRootAttributesEnum = - (typeof ConnectionSetUserRootAttributesEnum)[keyof typeof ConnectionSetUserRootAttributesEnum]; - -/** - * Enables showing a button for the connection in the login page (new experience only). If false, it will be usable only by HRD. (Defaults to false.) - */ -export type ConnectionShowAsButton = boolean; - -export const ConnectionStrategyEnum = { - Ad: "ad", - Adfs: "adfs", - Amazon: "amazon", - Apple: "apple", - Dropbox: "dropbox", - Bitbucket: "bitbucket", - Aol: "aol", - Auth0Oidc: "auth0-oidc", - Auth0: "auth0", - Baidu: "baidu", - Bitly: "bitly", - Box: "box", - Custom: "custom", - Daccount: "daccount", - Dwolla: "dwolla", - Email: "email", - EvernoteSandbox: "evernote-sandbox", - Evernote: "evernote", - Exact: "exact", - Facebook: "facebook", - Fitbit: "fitbit", - Flickr: "flickr", - Github: "github", - GoogleApps: "google-apps", - GoogleOauth2: "google-oauth2", - Instagram: "instagram", - Ip: "ip", - Line: "line", - Linkedin: "linkedin", - Miicard: "miicard", - Oauth1: "oauth1", - Oauth2: "oauth2", - Office365: "office365", - Oidc: "oidc", - Okta: "okta", - Paypal: "paypal", - PaypalSandbox: "paypal-sandbox", - Pingfederate: "pingfederate", - Planningcenter: "planningcenter", - Renren: "renren", - SalesforceCommunity: "salesforce-community", - SalesforceSandbox: "salesforce-sandbox", - Salesforce: "salesforce", - Samlp: "samlp", - Sharepoint: "sharepoint", - Shopify: "shopify", - Shop: "shop", - Sms: "sms", - Soundcloud: "soundcloud", - ThecitySandbox: "thecity-sandbox", - Thecity: "thecity", - Thirtysevensignals: "thirtysevensignals", - Twitter: "twitter", - Untappd: "untappd", - Vkontakte: "vkontakte", - Waad: "waad", - Weibo: "weibo", - Windowslive: "windowslive", - Wordpress: "wordpress", - Yahoo: "yahoo", - Yammer: "yammer", - Yandex: "yandex", - Auth0Adldap: "auth0-adldap", -} as const; -export type ConnectionStrategyEnum = (typeof ConnectionStrategyEnum)[keyof typeof ConnectionStrategyEnum]; - -export type ConnectionUpstreamAdditionalProperties = - | Management.ConnectionUpstreamAlias - | Management.ConnectionUpstreamValue; - -export interface ConnectionUpstreamAlias { - alias?: Management.ConnectionUpstreamAliasEnum; -} - -export const ConnectionUpstreamAliasEnum = { - AcrValues: "acr_values", - Audience: "audience", - ClientId: "client_id", - Display: "display", - IdTokenHint: "id_token_hint", - LoginHint: "login_hint", - MaxAge: "max_age", - Prompt: "prompt", - Resource: "resource", - ResponseMode: "response_mode", - ResponseType: "response_type", - UiLocales: "ui_locales", -} as const; -export type ConnectionUpstreamAliasEnum = - (typeof ConnectionUpstreamAliasEnum)[keyof typeof ConnectionUpstreamAliasEnum]; - -/** - * Options for adding parameters in the request to the upstream IdP - */ -export type ConnectionUpstreamParams = - | (Record | null) - | undefined; - -export interface ConnectionUpstreamValue { - value?: string; -} - -export interface ConnectionUsernameValidationOptions { - min: number; - max: number; -} - -/** - * Options for validation - */ -export interface ConnectionValidationOptions { - username?: Management.ConnectionUsernameValidationOptions | null; -} - -/** - * Metadata associated with the connection in the form of an object with string values (max 255 chars). Maximum of 10 metadata properties allowed. - */ -export type ConnectionsMetadata = Record; - -export interface CreateActionResponseContent { - /** The unique ID of the action. */ - id?: string; - /** The name of an action. */ - name?: string; - /** The list of triggers that this action supports. At this time, an action can only target a single trigger at a time. */ - supported_triggers?: Management.ActionTrigger[]; - /** True if all of an Action's contents have been deployed. */ - all_changes_deployed?: boolean; - /** The time when this action was created. */ - created_at?: string; - /** The time when this action was updated. */ - updated_at?: string; - /** The source code of the action. */ - code?: string; - /** The list of third party npm modules, and their versions, that this action depends on. */ - dependencies?: Management.ActionVersionDependency[]; - /** The Node runtime. For example: `node22`, defaults to `node22` */ - runtime?: string; - /** The list of secrets that are included in an action or a version of an action. */ - secrets?: Management.ActionSecretResponse[]; - deployed_version?: Management.ActionDeployedVersion; - /** installed_integration_id is the fk reference to the InstalledIntegration entity. */ - installed_integration_id?: string; - integration?: Management.Integration; - status?: Management.ActionBuildStatusEnum; - /** The time when this action was built successfully. */ - built_at?: string; - /** True if the action should be deployed after creation. */ - deploy?: boolean; -} - -/** - * Phone provider configuration schema - */ -export interface CreateBrandingPhoneProviderResponseContent { - id?: string; - /** The name of the tenant */ - tenant?: string; - name: Management.PhoneProviderNameEnum; - channel?: Management.PhoneProviderChannelEnum; - /** Whether the provider is enabled (false) or disabled (true). */ - disabled?: boolean; - configuration?: Management.PhoneProviderConfiguration; - /** The provider's creation date and time in ISO 8601 format */ - created_at?: string; - /** The date and time of the last update to the provider in ISO 8601 format */ - updated_at?: string; -} - -export interface CreateBrandingThemeResponseContent { - borders: Management.BrandingThemeBorders; - colors: Management.BrandingThemeColors; - /** Display Name */ - displayName: string; - fonts: Management.BrandingThemeFonts; - page_background: Management.BrandingThemePageBackground; - /** Theme Id */ - themeId: string; - widget: Management.BrandingThemeWidget; -} - -export interface CreateClientGrantResponseContent { - /** ID of the client grant. */ - id?: string; - /** ID of the client. */ - client_id?: string; - /** The audience (API identifier) of this client grant. */ - audience?: string; - /** Scopes allowed for this client grant. */ - scope?: string[]; - organization_usage?: Management.ClientGrantOrganizationUsageEnum; - /** If enabled, any organization can be used with this grant. If disabled (default), the grant must be explicitly assigned to the desired organizations. */ - allow_any_organization?: boolean; - /** If enabled, this grant is a special grant created by Auth0. It cannot be modified or deleted directly. */ - is_system?: boolean; - subject_type?: Management.ClientGrantSubjectTypeEnum; - /** Types of authorization_details allowed for this client grant. Use of this field is subject to the applicable Free Trial terms in Okta’s Master Subscription Agreement. */ - authorization_details_types?: string[]; -} - -export interface CreateClientResponseContent { - /** ID of this client. */ - client_id?: string; - /** Name of the tenant this client belongs to. */ - tenant?: string; - /** Name of this client (min length: 1 character, does not allow `<` or `>`). */ - name?: string; - /** Free text description of this client (max length: 140 characters). */ - description?: string; - /** Whether this is your global 'All Applications' client representing legacy tenant settings (true) or a regular client (false). */ - global?: boolean; - /** Client secret (which you must not make public). */ - client_secret?: string; - app_type?: Management.ClientAppTypeEnum; - /** URL of the logo to display for this client. Recommended size is 150x150 pixels. */ - logo_uri?: string; - /** Whether this client a first party client (true) or not (false). */ - is_first_party?: boolean; - /** Whether this client conforms to strict OIDC specifications (true) or uses legacy features (false). */ - oidc_conformant?: boolean; - /** Comma-separated list of URLs whitelisted for Auth0 to use as a callback to the client after authentication. */ - callbacks?: string[]; - /** Comma-separated list of URLs allowed to make requests from JavaScript to Auth0 API (typically used with CORS). By default, all your callback URLs will be allowed. This field allows you to enter other origins if necessary. You can also use wildcards at the subdomain level (e.g., https://*.contoso.com). Query strings and hash information are not taken into account when validating these URLs. */ - allowed_origins?: string[]; - /** Comma-separated list of allowed origins for use with Cross-Origin Authentication, Device Flow, and web message response mode. */ - web_origins?: string[]; - /** List of audiences/realms for SAML protocol. Used by the wsfed addon. */ - client_aliases?: string[]; - /** List of allow clients and API ids that are allowed to make delegation requests. Empty means all all your clients are allowed. */ - allowed_clients?: string[]; - /** Comma-separated list of URLs that are valid to redirect to after logout from Auth0. Wildcards are allowed for subdomains. */ - allowed_logout_urls?: string[]; - session_transfer?: Management.ClientSessionTransferConfiguration | null; - oidc_logout?: Management.ClientOidcBackchannelLogoutSettings; - /** List of grant types supported for this application. Can include `authorization_code`, `implicit`, `refresh_token`, `client_credentials`, `password`, `http://auth0.com/oauth/grant-type/password-realm`, `http://auth0.com/oauth/grant-type/mfa-oob`, `http://auth0.com/oauth/grant-type/mfa-otp`, `http://auth0.com/oauth/grant-type/mfa-recovery-code`, `urn:openid:params:grant-type:ciba`, `urn:ietf:params:oauth:grant-type:device_code`, and `urn:auth0:params:oauth:grant-type:token-exchange:federated-connection-access-token`. */ - grant_types?: string[]; - jwt_configuration?: Management.ClientJwtConfiguration; - signing_keys?: Management.ClientSigningKeys; - encryption_key?: Management.ClientEncryptionKey | null; - /** Applies only to SSO clients and determines whether Auth0 will handle Single Sign On (true) or whether the Identity Provider will (false). */ - sso?: boolean; - /** Whether Single Sign On is disabled (true) or enabled (true). Defaults to true. */ - sso_disabled?: boolean; - /** Whether this client can be used to make cross-origin authentication requests (true) or it is not allowed to make such requests (false). */ - cross_origin_authentication?: boolean; - /** URL of the location in your site where the cross origin verification takes place for the cross-origin auth flow when performing Auth in your own domain instead of Auth0 hosted login page. */ - cross_origin_loc?: string; - /** Whether a custom login page is to be used (true) or the default provided login page (false). */ - custom_login_page_on?: boolean; - /** The content (HTML, CSS, JS) of the custom login page. */ - custom_login_page?: string; - /** The content (HTML, CSS, JS) of the custom login page. (Used on Previews) */ - custom_login_page_preview?: string; - /** HTML form template to be used for WS-Federation. */ - form_template?: string; - addons?: Management.ClientAddons; - token_endpoint_auth_method?: Management.ClientTokenEndpointAuthMethodEnum; - /** If true, trust that the IP specified in the `auth0-forwarded-for` header is the end-user's IP for brute-force-protection on token endpoint. */ - is_token_endpoint_ip_header_trusted?: boolean; - client_metadata?: Management.ClientMetadata; - mobile?: Management.ClientMobile; - /** Initiate login uri, must be https */ - initiate_login_uri?: string; - refresh_token?: Management.ClientRefreshTokenConfiguration | null; - default_organization?: Management.ClientDefaultOrganization | null; - organization_usage?: Management.ClientOrganizationUsageEnum; - organization_require_behavior?: Management.ClientOrganizationRequireBehaviorEnum; - /** Defines the available methods for organization discovery during the `pre_login_prompt`. Users can discover their organization either by `email`, `organization_name` or both. */ - organization_discovery_methods?: Management.ClientOrganizationDiscoveryEnum[]; - client_authentication_methods?: Management.ClientAuthenticationMethod | null; - /** Makes the use of Pushed Authorization Requests mandatory for this client */ - require_pushed_authorization_requests?: boolean; - /** Makes the use of Proof-of-Possession mandatory for this client */ - require_proof_of_possession?: boolean; - signed_request_object?: Management.ClientSignedRequestObjectWithCredentialId; - compliance_level?: Management.ClientComplianceLevelEnum | null; - /** - * Controls whether a confirmation prompt is shown during login flows when the redirect URI uses non-verifiable callback URIs (for example, a custom URI schema such as `myapp://`, or `localhost`). - * If set to true, a confirmation prompt will not be shown. We recommend that this is set to false for improved protection from malicious apps. - * See https://auth0.com/docs/secure/security-guidance/measures-against-app-impersonation for more information. - */ - skip_non_verifiable_callback_uri_confirmation_prompt?: boolean; - /** Specifies how long, in seconds, a Pushed Authorization Request URI remains valid */ - par_request_expiry?: number | null; - token_quota?: Management.TokenQuota; - /** The identifier of the resource server that this client is linked to. */ - resource_server_identifier?: string; - async_approval_notification_channels?: Management.ClientAsyncApprovalNotificationsChannelsApiPostConfiguration; - /** Accepts any additional properties */ - [key: string]: any; -} - -/** - * Create a connection with strategy=ad - */ -export interface CreateConnectionRequestContentAd extends Management.ConnectionRequestCommon { - strategy: "ad"; - options?: Management.ConnectionOptionsAd; -} - -/** - * Create a connection with strategy=adfs - */ -export interface CreateConnectionRequestContentAdfs extends Management.ConnectionRequestCommon { - strategy: "adfs"; - options?: Management.ConnectionOptionsAdfs; -} - -/** - * Create a connection with strategy=aol - */ -export interface CreateConnectionRequestContentAol extends Management.ConnectionRequestCommon { - strategy: "aol"; - options?: Management.ConnectionOptionsAol; -} - -/** - * Create a connection with strategy=amazon - */ -export interface CreateConnectionRequestContentAmazon extends Management.ConnectionRequestCommon { - strategy: "amazon"; - options?: Management.ConnectionOptionsAmazon; -} - -/** - * Create a connection with strategy=apple - */ -export interface CreateConnectionRequestContentApple extends Management.ConnectionRequestCommon { - strategy: "apple"; - options?: Management.ConnectionOptionsApple; -} - -/** - * Create a connection with strategy=auth0 - */ -export interface CreateConnectionRequestContentAuth0 extends Management.ConnectionRequestCommon { - strategy: "auth0"; - options?: Management.ConnectionOptionsAuth0; -} - -/** - * Create a connection with strategy=auth0-oidc - */ -export interface CreateConnectionRequestContentAuth0Oidc extends Management.ConnectionRequestCommon { - strategy: "auth0-oidc"; - options?: Management.ConnectionOptionsAuth0Oidc; -} - -/** - * Create a connection with strategy=waad - */ -export interface CreateConnectionRequestContentAzureAd extends Management.ConnectionRequestCommon { - strategy: "waad"; - options?: Management.ConnectionOptionsAzureAd; -} - -/** - * Create a connection with strategy=baidu - */ -export interface CreateConnectionRequestContentBaidu extends Management.ConnectionRequestCommon { - strategy: "baidu"; - options?: Management.ConnectionOptionsBaidu; -} - -/** - * Create a connection with strategy=bitbucket - */ -export interface CreateConnectionRequestContentBitbucket extends Management.ConnectionRequestCommon { - strategy: "bitbucket"; - options?: Management.ConnectionOptionsBitbucket; -} - -/** - * Create a connection with strategy=bitly - */ -export interface CreateConnectionRequestContentBitly extends Management.ConnectionRequestCommon { - strategy: "bitly"; - options?: Management.ConnectionOptionsBitly; -} - -/** - * Create a connection with strategy=box - */ -export interface CreateConnectionRequestContentBox extends Management.ConnectionRequestCommon { - strategy: "box"; - options?: Management.ConnectionOptionsBox; -} - -/** - * Create a connection with strategy=custom - */ -export interface CreateConnectionRequestContentCustom extends Management.ConnectionRequestCommon { - strategy: "custom"; - options?: Management.ConnectionOptionsCustom; -} - -/** - * Create a connection with strategy=daccount - */ -export interface CreateConnectionRequestContentDaccount extends Management.ConnectionRequestCommon { - strategy: "daccount"; - options?: Management.ConnectionOptionsDaccount; -} - -/** - * Create a connection with strategy=dropbox - */ -export interface CreateConnectionRequestContentDropbox extends Management.ConnectionRequestCommon { - strategy: "dropbox"; - options?: Management.ConnectionOptionsDropbox; -} - -/** - * Create a connection with strategy=dwolla - */ -export interface CreateConnectionRequestContentDwolla extends Management.ConnectionRequestCommon { - strategy: "dwolla"; - options?: Management.ConnectionOptionsDwolla; -} - -/** - * Create a connection with strategy=email - */ -export interface CreateConnectionRequestContentEmail extends Management.ConnectionRequestCommon { - strategy: "email"; - options?: Management.ConnectionOptionsEmail; -} - -/** - * Create a connection with strategy=evernote - */ -export interface CreateConnectionRequestContentEvernote extends Management.ConnectionRequestCommon { - strategy: "evernote"; - options?: Management.ConnectionOptionsEvernote; -} - -/** - * Create a connection with strategy=evernote-sandbox - */ -export interface CreateConnectionRequestContentEvernoteSandbox extends Management.ConnectionRequestCommon { - strategy: "evernote-sandbox"; - options?: Management.ConnectionOptionsEvernoteSandbox; -} - -/** - * Create a connection with strategy=exact - */ -export interface CreateConnectionRequestContentExact extends Management.ConnectionRequestCommon { - strategy: "exact"; - options?: Management.ConnectionOptionsExact; -} - -/** - * Create a connection with strategy=facebook - */ -export interface CreateConnectionRequestContentFacebook extends Management.ConnectionRequestCommon { - strategy: "facebook"; - options?: Management.ConnectionOptionsFacebook; -} - -/** - * Create a connection with strategy=fitbit - */ -export interface CreateConnectionRequestContentFitbit extends Management.ConnectionRequestCommon { - strategy: "fitbit"; - options?: Management.ConnectionOptionsFitbit; -} - -/** - * Create a connection with strategy=flickr - */ -export interface CreateConnectionRequestContentFlickr extends Management.ConnectionRequestCommon { - strategy: "flickr"; - options?: Management.ConnectionOptionsFlickr; -} - -/** - * Create a connection with strategy=github - */ -export interface CreateConnectionRequestContentGitHub extends Management.ConnectionRequestCommon { - strategy: "github"; - options?: Management.ConnectionOptionsGitHub; -} - -/** - * Create a connection with strategy=google-apps - */ -export interface CreateConnectionRequestContentGoogleApps extends Management.ConnectionRequestCommon { - strategy: "google-apps"; - options?: Management.ConnectionOptionsGoogleApps; -} - -/** - * Create a connection with strategy=google-oauth2 - */ -export interface CreateConnectionRequestContentGoogleOAuth2 extends Management.ConnectionRequestCommon { - strategy: "google-oauth2"; - options?: Management.ConnectionOptionsGoogleOAuth2; -} - -/** - * Create a connection with strategy=ip - */ -export interface CreateConnectionRequestContentIp extends Management.ConnectionRequestCommon { - strategy: "ip"; - options?: Management.ConnectionOptionsIp; -} - -/** - * Create a connection with strategy=instagram - */ -export interface CreateConnectionRequestContentInstagram extends Management.ConnectionRequestCommon { - strategy: "instagram"; - options?: Management.ConnectionOptionsInstagram; -} - -/** - * Create a connection with strategy=line - */ -export interface CreateConnectionRequestContentLine extends Management.ConnectionRequestCommon { - strategy: "line"; - options?: Management.ConnectionOptionsLine; -} - -/** - * Create a connection with strategy=linkedin - */ -export interface CreateConnectionRequestContentLinkedin extends Management.ConnectionRequestCommon { - strategy: "linkedin"; - options?: Management.ConnectionOptionsLinkedin; -} - -/** - * Create a connection with strategy=miicard - */ -export interface CreateConnectionRequestContentMiicard extends Management.ConnectionRequestCommon { - strategy: "miicard"; - options?: Management.ConnectionOptionsMiicard; -} - -/** - * Create a connection with strategy=oauth1 - */ -export interface CreateConnectionRequestContentOAuth1 extends Management.ConnectionRequestCommon { - strategy: "oauth1"; - options?: Management.ConnectionOptionsOAuth1; -} - -/** - * Create a connection with strategy=oauth2 - */ -export interface CreateConnectionRequestContentOAuth2 extends Management.ConnectionRequestCommon { - strategy: "oauth2"; - options?: Management.ConnectionOptionsOAuth2; -} - -/** - * Create a connection with strategy=oidc - */ -export interface CreateConnectionRequestContentOidc extends Management.ConnectionRequestCommon { - strategy: "oidc"; - options?: Management.ConnectionOptionsOidc; -} - -/** - * Create a connection with strategy=office365 - */ -export interface CreateConnectionRequestContentOffice365 extends Management.ConnectionRequestCommon { - strategy: "office365"; - options?: Management.ConnectionOptionsOffice365; -} - -/** - * Create a connection with strategy=okta - */ -export interface CreateConnectionRequestContentOkta extends Management.ConnectionRequestCommon { - strategy: "okta"; - options?: Management.ConnectionOptionsOkta; -} - -/** - * Create a connection with strategy=paypal - */ -export interface CreateConnectionRequestContentPaypal extends Management.ConnectionRequestCommon { - strategy: "paypal"; - options?: Management.ConnectionOptionsPaypal; -} - -/** - * Create a connection with strategy=paypal-sandbox - */ -export interface CreateConnectionRequestContentPaypalSandbox extends Management.ConnectionRequestCommon { - strategy: "paypal-sandbox"; - options?: Management.ConnectionOptionsPaypalSandbox; -} - -/** - * Create a connection with strategy=pingfederate - */ -export interface CreateConnectionRequestContentPingFederate extends Management.ConnectionRequestCommon { - strategy: "pingfederate"; - options?: Management.ConnectionOptionsPingFederate; -} - -/** - * Create a connection with strategy=planningcenter - */ -export interface CreateConnectionRequestContentPlanningCenter extends Management.ConnectionRequestCommon { - strategy: "planningcenter"; - options?: Management.ConnectionOptionsPlanningCenter; -} - -/** - * Create a connection with strategy=renren - */ -export interface CreateConnectionRequestContentRenren extends Management.ConnectionRequestCommon { - strategy: "renren"; - options?: Management.ConnectionOptionsRenren; -} - -/** - * Create a connection with strategy=samlp - */ -export interface CreateConnectionRequestContentSaml extends Management.ConnectionRequestCommon { - strategy: "samlp"; - options?: Management.ConnectionOptionsSaml; -} - -/** - * Create a connection with strategy=sms - */ -export interface CreateConnectionRequestContentSms extends Management.ConnectionRequestCommon { - strategy: "sms"; - options?: Management.ConnectionOptionsSms; -} - -/** - * Create a connection with strategy=salesforce - */ -export interface CreateConnectionRequestContentSalesforce extends Management.ConnectionRequestCommon { - strategy: "salesforce"; - options?: Management.ConnectionOptionsSalesforce; -} - -/** - * Create a connection with strategy=salesforce-community - */ -export interface CreateConnectionRequestContentSalesforceCommunity extends Management.ConnectionRequestCommon { - strategy: "salesforce-community"; - options?: Management.ConnectionOptionsSalesforceCommunity; -} - -/** - * Create a connection with strategy=salesforce-sandbox - */ -export interface CreateConnectionRequestContentSalesforceSandbox extends Management.ConnectionRequestCommon { - strategy: "salesforce-sandbox"; - options?: Management.ConnectionOptionsSalesforceSandbox; -} - -/** - * Create a connection with strategy=sharepoint - */ -export interface CreateConnectionRequestContentSharepoint extends Management.ConnectionRequestCommon { - strategy: "sharepoint"; - options?: Management.ConnectionOptionsSharepoint; -} - -/** - * Create a connection with strategy=shop - */ -export interface CreateConnectionRequestContentShop extends Management.ConnectionRequestCommon { - strategy: "shop"; - options?: Management.ConnectionOptionsShop; -} - -/** - * Create a connection with strategy=shopify - */ -export interface CreateConnectionRequestContentShopify extends Management.ConnectionRequestCommon { - strategy: "shopify"; - options?: Management.ConnectionOptionsShopify; -} - -/** - * Create a connection with strategy=soundcloud - */ -export interface CreateConnectionRequestContentSoundcloud extends Management.ConnectionRequestCommon { - strategy: "soundcloud"; - options?: Management.ConnectionOptionsSoundcloud; -} - -/** - * Create a connection with strategy=thecity - */ -export interface CreateConnectionRequestContentTheCity extends Management.ConnectionRequestCommon { - strategy: "thecity"; - options?: Management.ConnectionOptionsTheCity; -} - -/** - * Create a connection with strategy=thecity-sandbox - */ -export interface CreateConnectionRequestContentTheCitySandbox extends Management.ConnectionRequestCommon { - strategy: "thecity-sandbox"; - options?: Management.ConnectionOptionsTheCitySandbox; -} - -/** - * Create a connection with strategy=thirtysevensignals - */ -export interface CreateConnectionRequestContentThirtySevenSignals extends Management.ConnectionRequestCommon { - strategy: "thirtysevensignals"; - options?: Management.ConnectionOptionsThirtySevenSignals; -} - -/** - * Create a connection with strategy=twitter - */ -export interface CreateConnectionRequestContentTwitter extends Management.ConnectionRequestCommon { - strategy: "twitter"; - options?: Management.ConnectionOptionsTwitter; -} - -/** - * Create a connection with strategy=untappd - */ -export interface CreateConnectionRequestContentUntappd extends Management.ConnectionRequestCommon { - strategy: "untappd"; - options?: Management.ConnectionOptionsUntappd; -} - -/** - * Create a connection with strategy=vkontakte - */ -export interface CreateConnectionRequestContentVkontakte extends Management.ConnectionRequestCommon { - strategy: "vkontakte"; - options?: Management.ConnectionOptionsVkontakte; -} - -/** - * Create a connection with strategy=weibo - */ -export interface CreateConnectionRequestContentWeibo extends Management.ConnectionRequestCommon { - strategy: "weibo"; - options?: Management.ConnectionOptionsWeibo; -} - -/** - * Create a connection with strategy=windowslive - */ -export interface CreateConnectionRequestContentWindowsLive extends Management.ConnectionRequestCommon { - strategy: "windowslive"; - options?: Management.ConnectionOptionsWindowsLive; +export interface CreateActionResponseContent { + /** The unique ID of the action. */ + id?: string; + /** The name of an action. */ + name?: string; + /** The list of triggers that this action supports. At this time, an action can only target a single trigger at a time. */ + supported_triggers?: Management.ActionTrigger[]; + /** True if all of an Action's contents have been deployed. */ + all_changes_deployed?: boolean; + /** The time when this action was created. */ + created_at?: string; + /** The time when this action was updated. */ + updated_at?: string; + /** The source code of the action. */ + code?: string; + /** The list of third party npm modules, and their versions, that this action depends on. */ + dependencies?: Management.ActionVersionDependency[]; + /** The Node runtime. For example: `node12`, defaults to `node12` */ + runtime?: string; + /** The list of secrets that are included in an action or a version of an action. */ + secrets?: Management.ActionSecretResponse[]; + deployed_version?: Management.ActionDeployedVersion; + /** installed_integration_id is the fk reference to the InstalledIntegration entity. */ + installed_integration_id?: string; + integration?: Management.Integration; + status?: Management.ActionBuildStatusEnum; + /** The time when this action was built successfully. */ + built_at?: string; + /** True if the action should be deployed after creation. */ + deploy?: boolean; } /** - * Create a connection with strategy=wordpress + * Phone provider configuration schema */ -export interface CreateConnectionRequestContentWordpress extends Management.ConnectionRequestCommon { - strategy: "wordpress"; - options?: Management.ConnectionOptionsWordpress; +export interface CreateBrandingPhoneProviderResponseContent { + id?: string; + /** The name of the tenant */ + tenant?: string; + name: Management.PhoneProviderNameEnum; + channel?: Management.PhoneProviderChannelEnum; + /** Whether the provider is enabled (false) or disabled (true). */ + disabled?: boolean; + configuration?: Management.PhoneProviderConfiguration; + /** The provider's creation date and time in ISO 8601 format */ + created_at?: string; + /** The date and time of the last update to the provider in ISO 8601 format */ + updated_at?: string; } -/** - * Create a connection with strategy=yahoo - */ -export interface CreateConnectionRequestContentYahoo extends Management.ConnectionRequestCommon { - strategy: "yahoo"; - options?: Management.ConnectionOptionsYahoo; +export interface CreateBrandingThemeResponseContent { + borders: Management.BrandingThemeBorders; + colors: Management.BrandingThemeColors; + /** Display Name */ + displayName: string; + fonts: Management.BrandingThemeFonts; + page_background: Management.BrandingThemePageBackground; + /** Theme Id */ + themeId: string; + widget: Management.BrandingThemeWidget; } -/** - * Create a connection with strategy=yammer - */ -export interface CreateConnectionRequestContentYammer extends Management.ConnectionRequestCommon { - strategy: "yammer"; - options?: Management.ConnectionOptionsYammer; +export interface CreateClientGrantResponseContent { + /** ID of the client grant. */ + id?: string; + /** ID of the client. */ + client_id?: string; + /** The audience (API identifier) of this client grant. */ + audience?: string; + /** Scopes allowed for this client grant. */ + scope?: string[]; + organization_usage?: Management.ClientGrantOrganizationUsageEnum; + /** If enabled, any organization can be used with this grant. If disabled (default), the grant must be explicitly assigned to the desired organizations. */ + allow_any_organization?: boolean; + /** If enabled, this grant is a special grant created by Auth0. It cannot be modified or deleted directly. */ + is_system?: boolean; } -/** - * Create a connection with strategy=yandex - */ -export interface CreateConnectionRequestContentYandex extends Management.ConnectionRequestCommon { - strategy: "yandex"; - options?: Management.ConnectionOptionsYandex; +export interface CreateClientResponseContent { + /** ID of this client. */ + client_id?: string; + /** Name of the tenant this client belongs to. */ + tenant?: string; + /** Name of this client (min length: 1 character, does not allow `<` or `>`). */ + name?: string; + /** Free text description of this client (max length: 140 characters). */ + description?: string; + /** Whether this is your global 'All Applications' client representing legacy tenant settings (true) or a regular client (false). */ + global?: boolean; + /** Client secret (which you must not make public). */ + client_secret?: string; + /** Type of client used to determine which settings are applicable. Can be `spa`, `native`, `non_interactive`, or `regular_web`. */ + app_type?: string; + /** URL of the logo to display for this client. Recommended size is 150x150 pixels. */ + logo_uri?: string; + /** Whether this client a first party client (true) or not (false). */ + is_first_party?: boolean; + /** Whether this client conforms to strict OIDC specifications (true) or uses legacy features (false). */ + oidc_conformant?: boolean; + /** Comma-separated list of URLs whitelisted for Auth0 to use as a callback to the client after authentication. */ + callbacks?: string[]; + /** Comma-separated list of URLs allowed to make requests from JavaScript to Auth0 API (typically used with CORS). By default, all your callback URLs will be allowed. This field allows you to enter other origins if necessary. You can also use wildcards at the subdomain level (e.g., https://*.contoso.com). Query strings and hash information are not taken into account when validating these URLs. */ + allowed_origins?: string[]; + /** Comma-separated list of allowed origins for use with Cross-Origin Authentication, Device Flow, and web message response mode. */ + web_origins?: string[]; + /** List of audiences/realms for SAML protocol. Used by the wsfed addon. */ + client_aliases?: string[]; + /** List of allow clients and API ids that are allowed to make delegation requests. Empty means all all your clients are allowed. */ + allowed_clients?: string[]; + /** Comma-separated list of URLs that are valid to redirect to after logout from Auth0. Wildcards are allowed for subdomains. */ + allowed_logout_urls?: string[]; + session_transfer?: Management.ClientSessionTransferConfiguration | null; + oidc_logout?: Management.ClientOidcBackchannelLogoutSettings; + /** List of grant types supported for this application. Can include `authorization_code`, `implicit`, `refresh_token`, `client_credentials`, `password`, `http://auth0.com/oauth/grant-type/password-realm`, `http://auth0.com/oauth/grant-type/mfa-oob`, `http://auth0.com/oauth/grant-type/mfa-otp`, `http://auth0.com/oauth/grant-type/mfa-recovery-code`, `urn:openid:params:grant-type:ciba`, and `urn:ietf:params:oauth:grant-type:device_code`. */ + grant_types?: string[]; + jwt_configuration?: Management.ClientJwtConfiguration; + signing_keys?: Management.ClientSigningKeys; + encryption_key?: Management.ClientEncryptionKey | null; + /** Applies only to SSO clients and determines whether Auth0 will handle Single Sign On (true) or whether the Identity Provider will (false). */ + sso?: boolean; + /** Whether Single Sign On is disabled (true) or enabled (true). Defaults to true. */ + sso_disabled?: boolean; + /** Whether this client can be used to make cross-origin authentication requests (true) or it is not allowed to make such requests (false). */ + cross_origin_authentication?: boolean; + /** URL of the location in your site where the cross origin verification takes place for the cross-origin auth flow when performing Auth in your own domain instead of Auth0 hosted login page. */ + cross_origin_loc?: string; + /** Whether a custom login page is to be used (true) or the default provided login page (false). */ + custom_login_page_on?: boolean; + /** The content (HTML, CSS, JS) of the custom login page. */ + custom_login_page?: string; + /** The content (HTML, CSS, JS) of the custom login page. (Used on Previews) */ + custom_login_page_preview?: string; + /** HTML form template to be used for WS-Federation. */ + form_template?: string; + addons?: Management.ClientAddons; + token_endpoint_auth_method?: Management.ClientTokenEndpointAuthMethodEnum; + client_metadata?: Management.ClientMetadata; + mobile?: Management.ClientMobile; + /** Initiate login uri, must be https */ + initiate_login_uri?: string; + refresh_token?: Management.ClientRefreshTokenConfiguration | null; + default_organization?: Management.ClientDefaultOrganization | null; + organization_usage?: Management.ClientOrganizationUsageEnum; + organization_require_behavior?: Management.ClientOrganizationRequireBehaviorEnum; + client_authentication_methods?: Management.ClientAuthenticationMethod | null; + /** Makes the use of Pushed Authorization Requests mandatory for this client */ + require_pushed_authorization_requests?: boolean; + /** Makes the use of Proof-of-Possession mandatory for this client */ + require_proof_of_possession?: boolean; + signed_request_object?: Management.ClientSignedRequestObjectWithCredentialId; + compliance_level?: Management.ClientComplianceLevelEnum | null; + /** Specifies how long, in seconds, a Pushed Authorization Request URI remains valid */ + par_request_expiry?: number | null; + token_quota?: Management.TokenQuota; + /** Accepts any additional properties */ + [key: string]: any; } export interface CreateConnectionResponseContent { @@ -4805,8 +2994,6 @@ export interface CreateConnectionResponseContent { /** Enables showing a button for the connection in the login page (new experience only). If false, it will be usable only by HRD. */ show_as_button?: boolean; metadata?: Management.ConnectionsMetadata; - authentication?: Management.ConnectionAuthenticationPurpose; - connected_accounts?: Management.ConnectionConnectedAccountsPurpose; } export interface CreateCustomDomainResponseContent { @@ -4816,14 +3003,12 @@ export interface CreateCustomDomainResponseContent { domain: string; /** Whether this is a primary domain (true) or not (false). */ primary: boolean; - status: Management.CustomDomainStatusFilterEnum; type: Management.CustomDomainTypeEnum; verification: Management.DomainVerification; /** The HTTP header to fetch the client's IP address */ custom_client_ip_header?: string | null; /** The TLS version policy */ tls_policy?: string; - certificate?: Management.DomainCertificate; } export interface CreateEmailProviderResponseContent { @@ -4915,515 +3100,73 @@ export interface CreateEventStreamRedeliveryResponseContent { date_to?: string; /** Filter by status */ statuses?: Management.EventStreamDeliveryStatusEnum[]; - /** Filter by event type */ - event_types?: Management.EventStreamEventTypeEnum[]; -} - -export type CreateEventStreamResponseContent = - | Management.EventStreamWebhookResponseContent - | Management.EventStreamEventBridgeResponseContent - | Management.EventStreamActionResponseContent; - -/** - * Metadata about a specific attempt to deliver an event - */ -export interface CreateEventStreamTestEventResponseContent { - /** Unique identifier for the delivery */ - id: string; - /** Unique identifier for the event stream. */ - event_stream_id: string; - status: Management.EventStreamDeliveryStatusEnum; - event_type: Management.EventStreamDeliveryEventTypeEnum; - /** Results of delivery attempts */ - attempts: Management.EventStreamDeliveryAttempt[]; - event?: Management.EventStreamCloudEvent; -} - -export interface CreateEventStreamWebHookRequestContent { - /** Name of the event stream. */ - name?: string; - /** List of event types subscribed to in this stream. */ - subscriptions?: Management.EventStreamSubscription[]; - destination: Management.EventStreamWebhookDestination; - status?: Management.EventStreamStatusEnum; -} - -export interface CreateExportUsersFields { - /** Name of the field in the profile. */ - name: string; - /** Title of the column in the exported CSV. */ - export_as?: string; -} - -export interface CreateExportUsersResponseContent { - /** Status of this job. */ - status: string; - /** Type of job this is. */ - type: string; - /** When this job was created. */ - created_at?: string; - /** ID of this job. */ - id: string; - /** connection_id of the connection from which users will be exported. */ - connection_id?: string; - format?: Management.JobFileFormatEnum; - /** Limit the number of records. */ - limit?: number; - /** List of fields to be included in the CSV. Defaults to a predefined set of fields. */ - fields?: Management.CreateExportUsersFields[]; - /** Accepts any additional properties */ - [key: string]: any; -} - -export interface CreateFlowResponseContent { - id: string; - name: string; - actions?: Management.FlowAction[]; - created_at: string; - updated_at: string; - executed_at?: string; -} - -export type CreateFlowsVaultConnectionActivecampaign = - | Management.CreateFlowsVaultConnectionActivecampaignApiKey - | Management.CreateFlowsVaultConnectionActivecampaignUninitialized; - -export interface CreateFlowsVaultConnectionActivecampaignApiKey { - /** Flows Vault Connection name. */ - name: string; - app_id: Management.FlowsVaultConnectionAppIdActivecampaignEnum; - setup: Management.FlowsVaultConnectioSetupApiKeyWithBaseUrl; -} - -export interface CreateFlowsVaultConnectionActivecampaignUninitialized { - /** Flows Vault Connection name. */ - name: string; - app_id: Management.FlowsVaultConnectionAppIdActivecampaignEnum; -} - -export type CreateFlowsVaultConnectionAirtable = - | Management.CreateFlowsVaultConnectionAirtableApiKey - | Management.CreateFlowsVaultConnectionAirtableUninitialized; - -export interface CreateFlowsVaultConnectionAirtableApiKey { - /** Flows Vault Connection name. */ - name: string; - app_id: Management.FlowsVaultConnectionAppIdAirtableEnum; - setup: Management.FlowsVaultConnectioSetupApiKey; -} - -export interface CreateFlowsVaultConnectionAirtableUninitialized { - /** Flows Vault Connection name. */ - name: string; - app_id: Management.FlowsVaultConnectionAppIdAirtableEnum; -} - -export type CreateFlowsVaultConnectionAuth0 = - | Management.CreateFlowsVaultConnectionAuth0OauthApp - | Management.CreateFlowsVaultConnectionAuth0Uninitialized; - -export interface CreateFlowsVaultConnectionAuth0OauthApp { - /** Flows Vault Connection name. */ - name: string; - app_id: Management.FlowsVaultConnectionAppIdAuth0Enum; - setup: Management.FlowsVaultConnectioSetupOauthApp; -} - -export interface CreateFlowsVaultConnectionAuth0Uninitialized { - /** Flows Vault Connection name. */ - name: string; - app_id: Management.FlowsVaultConnectionAppIdAuth0Enum; -} - -export type CreateFlowsVaultConnectionBigquery = - | Management.CreateFlowsVaultConnectionBigqueryJwt - | Management.CreateFlowsVaultConnectionBigqueryUninitialized; - -export interface CreateFlowsVaultConnectionBigqueryJwt { - /** Flows Vault Connection name. */ - name: string; - app_id: Management.FlowsVaultConnectionAppIdBigqueryEnum; - setup: Management.FlowsVaultConnectioSetupBigqueryOauthJwt; -} - -export interface CreateFlowsVaultConnectionBigqueryUninitialized { - /** Flows Vault Connection name. */ - name: string; - app_id: Management.FlowsVaultConnectionAppIdBigqueryEnum; -} - -export type CreateFlowsVaultConnectionClearbit = - | Management.CreateFlowsVaultConnectionClearbitApiKey - | Management.CreateFlowsVaultConnectionClearbitUninitialized; - -export interface CreateFlowsVaultConnectionClearbitApiKey { - /** Flows Vault Connection name. */ - name: string; - app_id: Management.FlowsVaultConnectionAppIdClearbitEnum; - setup: Management.FlowsVaultConnectioSetupSecretApiKey; -} - -export interface CreateFlowsVaultConnectionClearbitUninitialized { - /** Flows Vault Connection name. */ - name: string; - app_id: Management.FlowsVaultConnectionAppIdClearbitEnum; -} - -export type CreateFlowsVaultConnectionDocusign = - | Management.CreateFlowsVaultConnectionDocusignOauthCode - | Management.CreateFlowsVaultConnectionDocusignUninitialized; - -export interface CreateFlowsVaultConnectionDocusignOauthCode { - /** Flows Vault Connection name. */ - name: string; - app_id: Management.FlowsVaultConnectionAppIdDocusignEnum; - setup: Management.FlowsVaultConnectioSetupOauthCode; -} - -export interface CreateFlowsVaultConnectionDocusignUninitialized { - /** Flows Vault Connection name. */ - name: string; - app_id: Management.FlowsVaultConnectionAppIdDocusignEnum; -} - -export type CreateFlowsVaultConnectionGoogleSheets = - | Management.CreateFlowsVaultConnectionGoogleSheetsOauthCode - | Management.CreateFlowsVaultConnectionGoogleSheetsUninitialized; - -export interface CreateFlowsVaultConnectionGoogleSheetsOauthCode { - /** Flows Vault Connection name. */ - name: string; - app_id: Management.FlowsVaultConnectionAppIdGoogleSheetsEnum; - setup: Management.FlowsVaultConnectioSetupOauthCode; -} - -export interface CreateFlowsVaultConnectionGoogleSheetsUninitialized { - /** Flows Vault Connection name. */ - name: string; - app_id: Management.FlowsVaultConnectionAppIdGoogleSheetsEnum; -} - -export type CreateFlowsVaultConnectionHttp = - | Management.CreateFlowsVaultConnectionHttpBearer - | Management.CreateFlowsVaultConnectionHttpUninitialized; - -export interface CreateFlowsVaultConnectionHttpBearer { - /** Flows Vault Connection name. */ - name: string; - app_id: Management.FlowsVaultConnectionAppIdHttpEnum; - setup: Management.FlowsVaultConnectioSetupHttpBearer; -} - -export interface CreateFlowsVaultConnectionHttpUninitialized { - /** Flows Vault Connection name. */ - name: string; - app_id: Management.FlowsVaultConnectionAppIdHttpEnum; -} - -export type CreateFlowsVaultConnectionHubspot = - | Management.CreateFlowsVaultConnectionHubspotApiKey - | Management.CreateFlowsVaultConnectionHubspotOauthCode - | Management.CreateFlowsVaultConnectionHubspotUninitialized; - -export interface CreateFlowsVaultConnectionHubspotApiKey { - /** Flows Vault Connection name. */ - name: string; - app_id: Management.FlowsVaultConnectionAppIdHubspotEnum; - setup: Management.FlowsVaultConnectioSetupApiKey; -} - -export interface CreateFlowsVaultConnectionHubspotOauthCode { - /** Flows Vault Connection name. */ - name: string; - app_id: Management.FlowsVaultConnectionAppIdHubspotEnum; - setup: Management.FlowsVaultConnectioSetupOauthCode; -} - -export interface CreateFlowsVaultConnectionHubspotUninitialized { - /** Flows Vault Connection name. */ - name: string; - app_id: Management.FlowsVaultConnectionAppIdHubspotEnum; -} - -export type CreateFlowsVaultConnectionJwt = - | Management.CreateFlowsVaultConnectionJwtJwt - | Management.CreateFlowsVaultConnectionJwtUninitialized; - -export interface CreateFlowsVaultConnectionJwtJwt { - /** Flows Vault Connection name. */ - name: string; - app_id: Management.FlowsVaultConnectionAppIdJwtEnum; - setup: Management.FlowsVaultConnectioSetupJwt; -} - -export interface CreateFlowsVaultConnectionJwtUninitialized { - /** Flows Vault Connection name. */ - name: string; - app_id: Management.FlowsVaultConnectionAppIdJwtEnum; -} - -export type CreateFlowsVaultConnectionMailchimp = - | Management.CreateFlowsVaultConnectionMailchimpApiKey - | Management.CreateFlowsVaultConnectionMailchimpOauthCode - | Management.CreateFlowsVaultConnectionMailchimpUninitialized; - -export interface CreateFlowsVaultConnectionMailchimpApiKey { - /** Flows Vault Connection name. */ - name: string; - app_id: Management.FlowsVaultConnectionAppIdMailchimpEnum; - setup: Management.FlowsVaultConnectioSetupSecretApiKey; -} - -export interface CreateFlowsVaultConnectionMailchimpOauthCode { - /** Flows Vault Connection name. */ - name: string; - app_id: Management.FlowsVaultConnectionAppIdMailchimpEnum; - setup: Management.FlowsVaultConnectioSetupOauthCode; -} - -export interface CreateFlowsVaultConnectionMailchimpUninitialized { - /** Flows Vault Connection name. */ - name: string; - app_id: Management.FlowsVaultConnectionAppIdMailchimpEnum; -} - -export type CreateFlowsVaultConnectionMailjet = - | Management.CreateFlowsVaultConnectionMailjetApiKey - | Management.CreateFlowsVaultConnectionMailjetUninitialized; - -export interface CreateFlowsVaultConnectionMailjetApiKey { - /** Flows Vault Connection name. */ - name: string; - app_id: Management.FlowsVaultConnectionAppIdMailjetEnum; - setup: Management.FlowsVaultConnectioSetupMailjetApiKey; -} - -export interface CreateFlowsVaultConnectionMailjetUninitialized { - /** Flows Vault Connection name. */ - name: string; - app_id: Management.FlowsVaultConnectionAppIdMailjetEnum; -} - -export type CreateFlowsVaultConnectionPipedrive = - | Management.CreateFlowsVaultConnectionPipedriveToken - | Management.CreateFlowsVaultConnectionPipedriveOauthCode - | Management.CreateFlowsVaultConnectionPipedriveUninitialized; - -export interface CreateFlowsVaultConnectionPipedriveOauthCode { - /** Flows Vault Connection name. */ - name: string; - app_id: Management.FlowsVaultConnectionAppIdPipedriveEnum; - setup: Management.FlowsVaultConnectioSetupOauthCode; -} - -export interface CreateFlowsVaultConnectionPipedriveToken { - /** Flows Vault Connection name. */ - name: string; - app_id: Management.FlowsVaultConnectionAppIdPipedriveEnum; - setup: Management.FlowsVaultConnectioSetupToken; -} - -export interface CreateFlowsVaultConnectionPipedriveUninitialized { - /** Flows Vault Connection name. */ - name: string; - app_id: Management.FlowsVaultConnectionAppIdPipedriveEnum; -} - -export type CreateFlowsVaultConnectionRequestContent = - | Management.CreateFlowsVaultConnectionActivecampaign - | Management.CreateFlowsVaultConnectionAirtable - | Management.CreateFlowsVaultConnectionAuth0 - | Management.CreateFlowsVaultConnectionBigquery - | Management.CreateFlowsVaultConnectionClearbit - | Management.CreateFlowsVaultConnectionDocusign - | Management.CreateFlowsVaultConnectionGoogleSheets - | Management.CreateFlowsVaultConnectionHttp - | Management.CreateFlowsVaultConnectionHubspot - | Management.CreateFlowsVaultConnectionJwt - | Management.CreateFlowsVaultConnectionMailchimp - | Management.CreateFlowsVaultConnectionMailjet - | Management.CreateFlowsVaultConnectionPipedrive - | Management.CreateFlowsVaultConnectionSalesforce - | Management.CreateFlowsVaultConnectionSendgrid - | Management.CreateFlowsVaultConnectionSlack - | Management.CreateFlowsVaultConnectionStripe - | Management.CreateFlowsVaultConnectionTelegram - | Management.CreateFlowsVaultConnectionTwilio - | Management.CreateFlowsVaultConnectionWhatsapp - | Management.CreateFlowsVaultConnectionZapier; - -export interface CreateFlowsVaultConnectionResponseContent { - /** Flows Vault Connection identifier. */ - id: string; - /** Flows Vault Connection app identifier. */ - app_id: string; - /** Flows Vault Connection environment. */ - environment?: string; - /** Flows Vault Connection name. */ - name: string; - /** Flows Vault Connection custom account name. */ - account_name?: string; - /** Whether the Flows Vault Connection is configured. */ - ready: boolean; - /** The ISO 8601 formatted date when this Flows Vault Connection was created. */ - created_at: string; - /** The ISO 8601 formatted date when this Flows Vault Connection was updated. */ - updated_at: string; - /** The ISO 8601 formatted date when this Flows Vault Connection was refreshed. */ - refreshed_at?: string; - fingerprint: string; -} - -export type CreateFlowsVaultConnectionSalesforce = - | Management.CreateFlowsVaultConnectionSalesforceOauthCode - | Management.CreateFlowsVaultConnectionSalesforceUninitialized; - -export interface CreateFlowsVaultConnectionSalesforceOauthCode { - /** Flows Vault Connection name. */ - name: string; - app_id: Management.FlowsVaultConnectionAppIdSalesforceEnum; - setup: Management.FlowsVaultConnectioSetupOauthCode; -} - -export interface CreateFlowsVaultConnectionSalesforceUninitialized { - /** Flows Vault Connection name. */ - name: string; - app_id: Management.FlowsVaultConnectionAppIdSalesforceEnum; -} - -export type CreateFlowsVaultConnectionSendgrid = - | Management.CreateFlowsVaultConnectionSendgridApiKey - | Management.CreateFlowsVaultConnectionSendgridUninitialized; - -export interface CreateFlowsVaultConnectionSendgridApiKey { - /** Flows Vault Connection name. */ - name: string; - app_id: Management.FlowsVaultConnectionAppIdSendgridEnum; - setup: Management.FlowsVaultConnectioSetupApiKey; -} - -export interface CreateFlowsVaultConnectionSendgridUninitialized { - /** Flows Vault Connection name. */ - name: string; - app_id: Management.FlowsVaultConnectionAppIdSendgridEnum; -} - -export type CreateFlowsVaultConnectionSlack = - | Management.CreateFlowsVaultConnectionSlackWebhook - | Management.CreateFlowsVaultConnectionSlackOauthCode - | Management.CreateFlowsVaultConnectionSlackUninitialized; - -export interface CreateFlowsVaultConnectionSlackOauthCode { - /** Flows Vault Connection name. */ - name: string; - app_id: Management.FlowsVaultConnectionAppIdSlackEnum; - setup: Management.FlowsVaultConnectioSetupOauthCode; -} - -export interface CreateFlowsVaultConnectionSlackUninitialized { - /** Flows Vault Connection name. */ - name: string; - app_id: Management.FlowsVaultConnectionAppIdSlackEnum; -} - -export interface CreateFlowsVaultConnectionSlackWebhook { - /** Flows Vault Connection name. */ - name: string; - app_id: Management.FlowsVaultConnectionAppIdSlackEnum; - setup: Management.FlowsVaultConnectioSetupWebhook; -} - -export type CreateFlowsVaultConnectionStripe = - | Management.CreateFlowsVaultConnectionStripeKeyPair - | Management.CreateFlowsVaultConnectionStripeOauthCode - | Management.CreateFlowsVaultConnectionStripeUninitialized; - -export interface CreateFlowsVaultConnectionStripeKeyPair { - /** Flows Vault Connection name. */ - name: string; - app_id: Management.FlowsVaultConnectionAppIdStripeEnum; - setup: Management.FlowsVaultConnectioSetupStripeKeyPair; -} - -export interface CreateFlowsVaultConnectionStripeOauthCode { - /** Flows Vault Connection name. */ - name: string; - app_id: Management.FlowsVaultConnectionAppIdStripeEnum; - setup: Management.FlowsVaultConnectioSetupOauthCode; -} - -export interface CreateFlowsVaultConnectionStripeUninitialized { - /** Flows Vault Connection name. */ - name: string; - app_id: Management.FlowsVaultConnectionAppIdStripeEnum; -} - -export type CreateFlowsVaultConnectionTelegram = - | Management.CreateFlowsVaultConnectionTelegramToken - | Management.CreateFlowsVaultConnectionTelegramUninitialized; - -export interface CreateFlowsVaultConnectionTelegramToken { - /** Flows Vault Connection name. */ - name: string; - app_id: Management.FlowsVaultConnectionAppIdTelegramEnum; - setup: Management.FlowsVaultConnectioSetupToken; -} - -export interface CreateFlowsVaultConnectionTelegramUninitialized { - /** Flows Vault Connection name. */ - name: string; - app_id: Management.FlowsVaultConnectionAppIdTelegramEnum; + /** Filter by event type */ + event_types?: Management.EventStreamEventTypeEnum[]; } -export type CreateFlowsVaultConnectionTwilio = - | Management.CreateFlowsVaultConnectionTwilioApiKey - | Management.CreateFlowsVaultConnectionTwilioUninitialized; - -export interface CreateFlowsVaultConnectionTwilioApiKey { - /** Flows Vault Connection name. */ - name: string; - app_id: Management.FlowsVaultConnectionAppIdTwilioEnum; - setup: Management.FlowsVaultConnectioSetupTwilioApiKey; -} +export type CreateEventStreamResponseContent = + | Management.EventStreamWebhookResponseContent + | Management.EventStreamEventBridgeResponseContent + | Management.EventStreamActionResponseContent; -export interface CreateFlowsVaultConnectionTwilioUninitialized { - /** Flows Vault Connection name. */ - name: string; - app_id: Management.FlowsVaultConnectionAppIdTwilioEnum; +/** + * Metadata about a specific attempt to deliver an event + */ +export interface CreateEventStreamTestEventResponseContent { + /** Unique identifier for the delivery */ + id: string; + /** Unique identifier for the event stream. */ + event_stream_id: string; + status: Management.EventStreamDeliveryStatusEnum; + event_type: Management.EventStreamDeliveryEventTypeEnum; + /** Results of delivery attempts */ + attempts: Management.EventStreamDeliveryAttempt[]; + event?: Management.EventStreamCloudEvent; } -export type CreateFlowsVaultConnectionWhatsapp = - | Management.CreateFlowsVaultConnectionWhatsappToken - | Management.CreateFlowsVaultConnectionWhatsappUninitialized; - -export interface CreateFlowsVaultConnectionWhatsappToken { - /** Flows Vault Connection name. */ - name: string; - app_id: Management.FlowsVaultConnectionAppIdWhatsappEnum; - setup: Management.FlowsVaultConnectioSetupToken; +export interface CreateEventStreamWebHookRequestContent { + /** Name of the event stream. */ + name?: string; + /** List of event types subscribed to in this stream. */ + subscriptions?: Management.EventStreamSubscription[]; + destination: Management.EventStreamWebhookDestination; + status?: Management.EventStreamStatusEnum; } -export interface CreateFlowsVaultConnectionWhatsappUninitialized { - /** Flows Vault Connection name. */ +export interface CreateExportUsersFields { + /** Name of the field in the profile. */ name: string; - app_id: Management.FlowsVaultConnectionAppIdWhatsappEnum; + /** Title of the column in the exported CSV. */ + export_as?: string; } -export type CreateFlowsVaultConnectionZapier = - | Management.CreateFlowsVaultConnectionZapierWebhook - | Management.CreateFlowsVaultConnectionZapierUninitialized; - -export interface CreateFlowsVaultConnectionZapierUninitialized { - /** Flows Vault Connection name. */ - name: string; - app_id: Management.FlowsVaultConnectionAppIdZapierEnum; +export interface CreateExportUsersResponseContent { + /** Status of this job. */ + status: string; + /** Type of job this is. */ + type: string; + /** When this job was created. */ + created_at?: string; + /** ID of this job. */ + id: string; + /** connection_id of the connection from which users will be exported. */ + connection_id?: string; + format?: Management.JobFileFormatEnum; + /** Limit the number of records. */ + limit?: number; + /** List of fields to be included in the CSV. Defaults to a predefined set of fields. */ + fields?: Management.CreateExportUsersFields[]; + /** Accepts any additional properties */ + [key: string]: any; } -export interface CreateFlowsVaultConnectionZapierWebhook { - /** Flows Vault Connection name. */ +export interface CreateFlowResponseContent { + id: string; name: string; - app_id: Management.FlowsVaultConnectionAppIdZapierEnum; - setup: Management.FlowsVaultConnectioSetupWebhook; + actions?: Management.FlowAction[]; + created_at: string; + updated_at: string; + executed_at?: string; } export interface CreateFormResponseContent { @@ -5468,7 +3211,7 @@ export interface CreateHookResponseContent { /** * Hashmap of key-value pairs where the value must be a string. */ -export type CreateHookSecretRequestContent = Record; +export type CreateHookSecretRequestContent = Record; export interface CreateImportUsersResponseContent { /** Status of this job. */ @@ -5619,18 +3362,6 @@ export interface CreateLogStreamSumoRequestBody { startFrom?: string; } -export interface CreateOrganizationDiscoveryDomainResponseContent { - /** Organization discovery domain identifier. */ - id: string; - /** The domain name to associate with the organization e.g. acme.com. */ - domain: string; - status: Management.OrganizationDiscoveryDomainStatus; - /** A unique token generated for the discovery domain. This must be placed in a DNS TXT record at the location specified by the verification_host field to prove domain ownership. */ - verification_txt: string; - /** The full domain where the TXT record should be added. */ - verification_host: string; -} - export interface CreateOrganizationInvitationResponseContent { /** The id of the user invitation. */ id?: string; @@ -5731,9 +3462,6 @@ export interface CreateResourceServerResponseContent { consent_policy?: (Management.ResourceServerConsentPolicyEnum | undefined) | null; authorization_details?: unknown[]; proof_of_possession?: Management.ResourceServerProofOfPossession | null; - subject_type_authorization?: Management.ResourceServerSubjectTypeAuthorization; - /** The client ID of the client that this resource server is linked to */ - client_id?: string; } export interface CreateRoleResponseContent { @@ -5815,8 +3543,6 @@ export interface CreateSelfServiceProfileResponseContent { branding?: Management.SelfServiceProfileBrandingProperties; /** List of IdP strategies that will be shown to users during the Self-Service SSO flow. Possible values: [`oidc`, `samlp`, `waad`, `google-apps`, `adfs`, `okta`, `keycloak-samlp`, `pingfederate`] */ allowed_strategies?: Management.SelfServiceProfileAllowedStrategyEnum[]; - /** ID of the user-attribute-profile to associate with this self-service profile. */ - user_attribute_profile_id?: string; } export interface CreateSelfServiceProfileSsoTicketResponseContent { @@ -5846,13 +3572,6 @@ export interface CreateTokenQuota { client_credentials: Management.TokenQuotaClientCredentials; } -export interface CreateUserAttributeProfileResponseContent { - id?: Management.UserAttributeProfileId; - name?: Management.UserAttributeProfileName; - user_id?: Management.UserAttributeProfileUserId; - user_attributes?: Management.UserAttributeProfileUserAttributes; -} - /** * The successfully created authentication method. */ @@ -5874,8 +3593,6 @@ export interface CreateUserAuthenticationMethodResponseContent { key_id?: string; /** Applies to webauthn authenticators only. The public key. */ public_key?: string; - /** Applies to passkeys only. Authenticator Attestation Globally Unique Identifier. */ - aaguid?: string; /** Applies to webauthn authenticators only. The relying party identifier. */ relying_party_identifier?: string; /** Authentication method creation date */ @@ -5990,7 +3707,6 @@ export interface CustomDomain { domain: string; /** Whether this is a primary domain (true) or not (false). */ primary: boolean; - status: Management.CustomDomainStatusFilterEnum; type: Management.CustomDomainTypeEnum; /** Intermediate address. */ origin_domain_name?: string; @@ -5999,7 +3715,6 @@ export interface CustomDomain { custom_client_ip_header?: string | null; /** The TLS version policy */ tls_policy?: string; - certificate?: Management.DomainCertificate; } export type CustomDomainCustomClientIpHeader = (Management.CustomDomainCustomClientIpHeaderEnum | null) | undefined; @@ -6023,15 +3738,6 @@ export const CustomDomainProvisioningTypeEnum = { export type CustomDomainProvisioningTypeEnum = (typeof CustomDomainProvisioningTypeEnum)[keyof typeof CustomDomainProvisioningTypeEnum]; -/** Custom domain configuration status. Can be `failed`, `pending_verification`, or `ready`. */ -export const CustomDomainStatusFilterEnum = { - PendingVerification: "pending_verification", - Ready: "ready", - Failed: "failed", -} as const; -export type CustomDomainStatusFilterEnum = - (typeof CustomDomainStatusFilterEnum)[keyof typeof CustomDomainStatusFilterEnum]; - /** * Custom domain TLS policy. Must be `recommended`, includes TLS 1.2. */ @@ -6053,7 +3759,7 @@ export interface CustomProviderConfiguration { delivery_methods: Management.CustomProviderDeliveryMethodEnum[]; } -export interface CustomProviderCredentials {} +export type CustomProviderCredentials = {}; export const CustomProviderDeliveryMethodEnum = { Text: "text", @@ -6191,9 +3897,9 @@ export interface DeployActionResponseContent { code?: string; /** The list of third party npm modules, and their versions, that this specific version depends on. */ dependencies?: Management.ActionVersionDependency[]; - /** Indicates if this specific version is the currently one deployed. */ + /** Indicates if this speciic version is the currently one deployed. */ deployed?: boolean; - /** The Node runtime. For example: `node22` */ + /** The Node runtime. For example: `node12` */ runtime?: string; /** The list of secrets that are included in an action or a version of an action. */ secrets?: Management.ActionSecretResponse[]; @@ -6229,9 +3935,9 @@ export interface DeployActionVersionResponseContent { code?: string; /** The list of third party npm modules, and their versions, that this specific version depends on. */ dependencies?: Management.ActionVersionDependency[]; - /** Indicates if this specific version is the currently one deployed. */ + /** Indicates if this speciic version is the currently one deployed. */ deployed?: boolean; - /** The Node runtime. For example: `node22` */ + /** The Node runtime. For example: `node12` */ runtime?: string; /** The list of secrets that are included in an action or a version of an action. */ secrets?: Management.ActionSecretResponse[]; @@ -6270,7 +3976,6 @@ export interface DeviceCredential { */ export type DeviceCredentialPublicKeyTypeEnum = "public_key"; -/** Type of credentials to retrieve. Must be `public_key`, `refresh_token` or `rotating_refresh_token`. The property will default to `refresh_token` when paging is requested */ export const DeviceCredentialTypeEnum = { PublicKey: "public_key", RefreshToken: "refresh_token", @@ -6278,47 +3983,12 @@ export const DeviceCredentialTypeEnum = { } as const; export type DeviceCredentialTypeEnum = (typeof DeviceCredentialTypeEnum)[keyof typeof DeviceCredentialTypeEnum]; -/** - * Certificate information. This object is relevant only for Custom Domains with Auth0-Managed Certificates. - */ -export interface DomainCertificate { - status?: Management.DomainCertificateStatusEnum; - /** A user-friendly error message will be presented if the certificate status is provisioning_failed or renewing_failed. */ - error_msg?: string; - certificate_authority?: Management.DomainCertificateAuthorityEnum; - /** The certificate will be renewed prior to this date. */ - renews_before?: string; -} - -/** The Certificate Authority issued the certificate. */ -export const DomainCertificateAuthorityEnum = { - Letsencrypt: "letsencrypt", - Googletrust: "googletrust", -} as const; -export type DomainCertificateAuthorityEnum = - (typeof DomainCertificateAuthorityEnum)[keyof typeof DomainCertificateAuthorityEnum]; - -/** The provisioning status of the certificate. */ -export const DomainCertificateStatusEnum = { - Provisioning: "provisioning", - ProvisioningFailed: "provisioning_failed", - Provisioned: "provisioned", - RenewingFailed: "renewing_failed", -} as const; -export type DomainCertificateStatusEnum = - (typeof DomainCertificateStatusEnum)[keyof typeof DomainCertificateStatusEnum]; - /** * Domain verification settings. */ export interface DomainVerification { /** Domain verification methods. */ methods?: Management.DomainVerificationMethod[]; - status?: Management.DomainVerificationStatusEnum; - /** The user0-friendly error message in case of failed verification. This field is relevant only for Custom Domains with Auth0-Managed Certificates. */ - error_msg?: string; - /** The date and time when the custom domain was last verified. This field is relevant only for Custom Domains with Auth0-Managed Certificates. */ - last_verified_at?: string; } export interface DomainVerificationMethod { @@ -6337,15 +4007,6 @@ export const DomainVerificationMethodNameEnum = { export type DomainVerificationMethodNameEnum = (typeof DomainVerificationMethodNameEnum)[keyof typeof DomainVerificationMethodNameEnum]; -/** The DNS record verification status. This field is relevant only for Custom Domains with Auth0-Managed Certificates. */ -export const DomainVerificationStatusEnum = { - Verified: "verified", - Pending: "pending", - Failed: "failed", -} as const; -export type DomainVerificationStatusEnum = - (typeof DomainVerificationStatusEnum)[keyof typeof DomainVerificationStatusEnum]; - /** * Configuration for the email attribute for users. */ @@ -6538,6 +4199,11 @@ export interface EventStreamActionResponseContent { updated_at?: string; } +export interface EventStreamBucketInterval { + /** Time interval in seconds for each bucket. */ + scale_factor: number; +} + /** * Event content. This will only be set if delivery failed. */ @@ -6594,11 +4260,6 @@ export const EventStreamDeliveryEventTypeEnum = { OrganizationConnectionAdded: "organization.connection.added", OrganizationConnectionUpdated: "organization.connection.updated", OrganizationConnectionRemoved: "organization.connection.removed", - GroupCreated: "group.created", - GroupUpdated: "group.updated", - GroupDeleted: "group.deleted", - GroupMemberAdded: "group.member.added", - GroupMemberDeleted: "group.member.deleted", } as const; export type EventStreamDeliveryEventTypeEnum = (typeof EventStreamDeliveryEventTypeEnum)[keyof typeof EventStreamDeliveryEventTypeEnum]; @@ -6614,35 +4275,22 @@ export type EventStreamDestinationPatch = /** AWS Region for EventBridge destination. */ export const EventStreamEventBridgeAwsRegionEnum = { - AfSouth1: "af-south-1", ApEast1: "ap-east-1", - ApEast2: "ap-east-2", ApNortheast1: "ap-northeast-1", ApNortheast2: "ap-northeast-2", ApNortheast3: "ap-northeast-3", ApSouth1: "ap-south-1", - ApSouth2: "ap-south-2", ApSoutheast1: "ap-southeast-1", ApSoutheast2: "ap-southeast-2", - ApSoutheast3: "ap-southeast-3", - ApSoutheast4: "ap-southeast-4", - ApSoutheast5: "ap-southeast-5", - ApSoutheast6: "ap-southeast-6", - ApSoutheast7: "ap-southeast-7", CaCentral1: "ca-central-1", - CaWest1: "ca-west-1", + CnNorth1: "cn-north-1", + CnNorthwest1: "cn-northwest-1", EuCentral1: "eu-central-1", - EuCentral2: "eu-central-2", EuNorth1: "eu-north-1", - EuSouth1: "eu-south-1", - EuSouth2: "eu-south-2", EuWest1: "eu-west-1", EuWest2: "eu-west-2", EuWest3: "eu-west-3", - IlCentral1: "il-central-1", - MeCentral1: "me-central-1", MeSouth1: "me-south-1", - MxCentral1: "mx-central-1", SaEast1: "sa-east-1", UsGovEast1: "us-gov-east-1", UsGovWest1: "us-gov-west-1", @@ -6701,14 +4349,20 @@ export const EventStreamEventTypeEnum = { OrganizationConnectionAdded: "organization.connection.added", OrganizationConnectionUpdated: "organization.connection.updated", OrganizationConnectionRemoved: "organization.connection.removed", - GroupCreated: "group.created", - GroupUpdated: "group.updated", - GroupDeleted: "group.deleted", - GroupMemberAdded: "group.member.added", - GroupMemberDeleted: "group.member.deleted", } as const; export type EventStreamEventTypeEnum = (typeof EventStreamEventTypeEnum)[keyof typeof EventStreamEventTypeEnum]; +export interface EventStreamMetric { + /** Name of the metric. */ + name: string; + /** Total count for the entire window. */ + window_total: number; + /** Type of metric. */ + type: string; + /** Array of metric values for each bucket. */ + data: number[]; +} + export type EventStreamResponseContent = | Management.EventStreamWebhookResponseContent | Management.EventStreamEventBridgeResponseContent @@ -6743,11 +4397,6 @@ export const EventStreamTestEventTypeEnum = { OrganizationConnectionAdded: "organization.connection.added", OrganizationConnectionUpdated: "organization.connection.updated", OrganizationConnectionRemoved: "organization.connection.removed", - GroupCreated: "group.created", - GroupUpdated: "group.updated", - GroupDeleted: "group.deleted", - GroupMemberAdded: "group.member.added", - GroupMemberDeleted: "group.member.deleted", } as const; export type EventStreamTestEventTypeEnum = (typeof EventStreamTestEventTypeEnum)[keyof typeof EventStreamTestEventTypeEnum]; @@ -6813,7 +4462,15 @@ export interface EventStreamWebhookResponseContent { updated_at?: string; } -export interface ExtensibilityEmailProviderCredentials {} +export interface EventStreamWindow { + /** Start date of the time window. */ + date_from: string; + /** End date of the time window. */ + date_to: string; + bucket_interval: Management.EventStreamBucketInterval; +} + +export type ExtensibilityEmailProviderCredentials = {}; export interface FederatedConnectionTokenSet { id?: string; @@ -7032,14 +4689,7 @@ export type FlowActionAuth0SendRequestParamsPayload = export type FlowActionAuth0SendRequestParamsPayloadObject = Record; -export type FlowActionAuth0SendRequestParamsQueryParams = Record< - string, - (FlowActionAuth0SendRequestParamsQueryParams.Value | null) | undefined ->; - -export namespace FlowActionAuth0SendRequestParamsQueryParams { - export type Value = number | string; -} +export type FlowActionAuth0SendRequestParamsQueryParams = Record; export interface FlowActionAuth0UpdateUser { id: string; @@ -7199,7 +4849,7 @@ export interface FlowActionFlowDoNothing { params?: Management.FlowActionFlowDoNothingParams; } -export interface FlowActionFlowDoNothingParams {} +export type FlowActionFlowDoNothingParams = {}; export interface FlowActionFlowErrorMessage { id: string; @@ -7354,14 +5004,7 @@ export type FlowActionHttpSendRequestParamsPayload = export type FlowActionHttpSendRequestParamsPayloadObject = Record; -export type FlowActionHttpSendRequestParamsQueryParams = Record< - string, - (FlowActionHttpSendRequestParamsQueryParams.Value | null) | undefined ->; - -export namespace FlowActionHttpSendRequestParamsQueryParams { - export type Value = number | string; -} +export type FlowActionHttpSendRequestParamsQueryParams = Record; export type FlowActionHubspot = | Management.FlowActionHubspotEnrollContact @@ -7971,7 +5614,7 @@ export interface FlowActionStripeGetCustomerParams { id: string; } -export type FlowActionStripeMetadata = Record; +export type FlowActionStripeMetadata = Record; export interface FlowActionStripeTaxId { type: string; @@ -8153,278 +5796,40 @@ export namespace FlowActionZapierTriggerWebhookParams { Get: "GET", Post: "POST", Put: "PUT", - } as const; - export type Method = (typeof Method)[keyof typeof Method]; -} - -/** - * Flow execution debug. - */ -export type FlowExecutionDebug = Record; - -export interface FlowExecutionSummary { - /** Flow execution identifier */ - id: string; - /** Trace id */ - trace_id: string; - /** Journey id */ - journey_id?: string; - /** Execution status */ - status: string; - /** The ISO 8601 formatted date when this flow execution was created. */ - created_at: string; - /** The ISO 8601 formatted date when this flow execution was updated. */ - updated_at: string; - /** The ISO 8601 formatted date when this flow execution started. */ - started_at?: string; - /** The ISO 8601 formatted date when this flow execution ended. */ - ended_at?: string; -} - -export interface FlowSummary { - id: string; - name: string; - created_at: string; - updated_at: string; - executed_at?: string; -} - -export interface FlowsVaultConnectioSetupApiKey { - type: Management.FlowsVaultConnectioSetupTypeApiKeyEnum; - api_key: string; -} - -export interface FlowsVaultConnectioSetupApiKeyWithBaseUrl { - type: Management.FlowsVaultConnectioSetupTypeApiKeyEnum; - api_key: string; - base_url: string; -} - -export interface FlowsVaultConnectioSetupBigqueryOauthJwt { - type?: Management.FlowsVaultConnectioSetupTypeOauthJwtEnum; - project_id?: string; - private_key?: string; - client_email?: string; -} - -export interface FlowsVaultConnectioSetupHttpBearer { - type: Management.FlowsVaultConnectioSetupTypeBearerEnum; - token: string; -} - -export interface FlowsVaultConnectioSetupJwt { - type: Management.FlowsVaultConnectioSetupTypeJwtEnum; - algorithm: Management.FlowsVaultConnectioSetupJwtAlgorithmEnum; - /** Accepts any additional properties */ - [key: string]: any; -} - -export const FlowsVaultConnectioSetupJwtAlgorithmEnum = { - Hs256: "HS256", - Hs384: "HS384", - Hs512: "HS512", - Rs256: "RS256", - Rs384: "RS384", - Rs512: "RS512", - Es256: "ES256", - Es384: "ES384", - Es512: "ES512", - Ps256: "PS256", - Ps384: "PS384", - Ps512: "PS512", -} as const; -export type FlowsVaultConnectioSetupJwtAlgorithmEnum = - (typeof FlowsVaultConnectioSetupJwtAlgorithmEnum)[keyof typeof FlowsVaultConnectioSetupJwtAlgorithmEnum]; - -export interface FlowsVaultConnectioSetupMailjetApiKey { - type: Management.FlowsVaultConnectioSetupTypeApiKeyEnum; - api_key: string; - secret_key: string; -} - -export interface FlowsVaultConnectioSetupOauthApp { - type: Management.FlowsVaultConnectioSetupTypeOauthAppEnum; - client_id: string; - client_secret: string; - domain: string; - audience?: string; -} - -export interface FlowsVaultConnectioSetupOauthCode { - type?: Management.FlowsVaultConnectioSetupTypeOauthCodeEnum; - code?: string; - /** Accepts any additional properties */ - [key: string]: any; -} - -export interface FlowsVaultConnectioSetupSecretApiKey { - type: Management.FlowsVaultConnectioSetupTypeApiKeyEnum; - secret_key: string; -} - -export interface FlowsVaultConnectioSetupStripeKeyPair { - type: Management.FlowsVaultConnectioSetupTypeKeyPairEnum; - private_key: string; - public_key: string; -} - -export interface FlowsVaultConnectioSetupToken { - type: Management.FlowsVaultConnectioSetupTypeTokenEnum; - token: string; -} - -export interface FlowsVaultConnectioSetupTwilioApiKey { - type: Management.FlowsVaultConnectioSetupTypeApiKeyEnum; - account_id: string; - api_key: string; -} - -export type FlowsVaultConnectioSetupTypeApiKeyEnum = "API_KEY"; - -export type FlowsVaultConnectioSetupTypeBearerEnum = "BEARER"; - -export type FlowsVaultConnectioSetupTypeJwtEnum = "JWT"; - -export type FlowsVaultConnectioSetupTypeKeyPairEnum = "KEY_PAIR"; - -export type FlowsVaultConnectioSetupTypeOauthAppEnum = "OAUTH_APP"; - -export type FlowsVaultConnectioSetupTypeOauthCodeEnum = "OAUTH_CODE"; - -export type FlowsVaultConnectioSetupTypeOauthJwtEnum = "OAUTH_JWT"; - -export type FlowsVaultConnectioSetupTypeTokenEnum = "TOKEN"; - -export type FlowsVaultConnectioSetupTypeWebhookEnum = "WEBHOOK"; - -export interface FlowsVaultConnectioSetupWebhook { - type: Management.FlowsVaultConnectioSetupTypeWebhookEnum; - url: string; -} - -/** - * Flows Vault Connection app identifier. - */ -export type FlowsVaultConnectionAppIdActivecampaignEnum = "ACTIVECAMPAIGN"; - -/** - * Flows Vault Connection app identifier. - */ -export type FlowsVaultConnectionAppIdAirtableEnum = "AIRTABLE"; - -/** - * Flows Vault Connection app identifier. - */ -export type FlowsVaultConnectionAppIdAuth0Enum = "AUTH0"; - -/** - * Flows Vault Connection app identifier. - */ -export type FlowsVaultConnectionAppIdBigqueryEnum = "BIGQUERY"; - -/** - * Flows Vault Connection app identifier. - */ -export type FlowsVaultConnectionAppIdClearbitEnum = "CLEARBIT"; - -/** - * Flows Vault Connection app identifier. - */ -export type FlowsVaultConnectionAppIdDocusignEnum = "DOCUSIGN"; - -/** - * Flows Vault Connection app identifier. - */ -export type FlowsVaultConnectionAppIdGoogleSheetsEnum = "GOOGLE_SHEETS"; - -/** - * Flows Vault Connection app identifier. - */ -export type FlowsVaultConnectionAppIdHttpEnum = "HTTP"; - -/** - * Flows Vault Connection app identifier. - */ -export type FlowsVaultConnectionAppIdHubspotEnum = "HUBSPOT"; - -/** - * Flows Vault Connection app identifier. - */ -export type FlowsVaultConnectionAppIdJwtEnum = "JWT"; - -/** - * Flows Vault Connection app identifier. - */ -export type FlowsVaultConnectionAppIdMailchimpEnum = "MAILCHIMP"; - -/** - * Flows Vault Connection app identifier. - */ -export type FlowsVaultConnectionAppIdMailjetEnum = "MAILJET"; - -/** - * Flows Vault Connection app identifier. - */ -export type FlowsVaultConnectionAppIdPipedriveEnum = "PIPEDRIVE"; - -/** - * Flows Vault Connection app identifier. - */ -export type FlowsVaultConnectionAppIdSalesforceEnum = "SALESFORCE"; - -/** - * Flows Vault Connection app identifier. - */ -export type FlowsVaultConnectionAppIdSendgridEnum = "SENDGRID"; - -/** - * Flows Vault Connection app identifier. - */ -export type FlowsVaultConnectionAppIdSlackEnum = "SLACK"; - -/** - * Flows Vault Connection app identifier. - */ -export type FlowsVaultConnectionAppIdStripeEnum = "STRIPE"; - -/** - * Flows Vault Connection app identifier. - */ -export type FlowsVaultConnectionAppIdTelegramEnum = "TELEGRAM"; - -/** - * Flows Vault Connection app identifier. - */ -export type FlowsVaultConnectionAppIdTwilioEnum = "TWILIO"; + } as const; + export type Method = (typeof Method)[keyof typeof Method]; +} /** - * Flows Vault Connection app identifier. + * Flow execution debug. */ -export type FlowsVaultConnectionAppIdWhatsappEnum = "WHATSAPP"; +export type FlowExecutionDebug = Record; -/** - * Flows Vault Connection app identifier. - */ -export type FlowsVaultConnectionAppIdZapierEnum = "ZAPIER"; +export interface FlowExecutionSummary { + /** Flow execution identifier */ + id: string; + /** Trace id */ + trace_id: string; + /** Journey id */ + journey_id?: string; + /** Execution status */ + status: string; + /** The ISO 8601 formatted date when this flow execution was created. */ + created_at: string; + /** The ISO 8601 formatted date when this flow execution was updated. */ + updated_at: string; + /** The ISO 8601 formatted date when this flow execution started. */ + started_at?: string; + /** The ISO 8601 formatted date when this flow execution ended. */ + ended_at?: string; +} -export interface FlowsVaultConnectionSummary { - /** Flows Vault Connection identifier. */ +export interface FlowSummary { id: string; - /** Flows Vault Connection app identifier. */ - app_id: string; - /** Flows Vault Connection name. */ name: string; - /** Flows Vault Connection custom account name. */ - account_name?: string; - /** Whether the Flows Vault Connection is configured. */ - ready: boolean; - /** The ISO 8601 formatted date when this Flows Vault Connection was created. */ created_at: string; - /** The ISO 8601 formatted date when this Flows Vault Connection was updated. */ updated_at: string; - /** The ISO 8601 formatted date when this Flows Vault Connection was refreshed. */ - refreshed_at?: string; - fingerprint: string; + executed_at?: string; } export type FormBlock = @@ -8711,7 +6116,7 @@ export interface FormFieldCustomConfig { params?: Management.FormFieldCustomConfigParams; } -export type FormFieldCustomConfigParams = Record; +export type FormFieldCustomConfigParams = Record; export type FormFieldCustomConfigSchema = Record; @@ -8975,7 +6380,7 @@ export interface FormFieldSocial { sensitive?: boolean; } -export interface FormFieldSocialConfig {} +export type FormFieldSocialConfig = {}; export interface FormFieldTel { id: string; @@ -9098,9 +6503,9 @@ export interface FormMessages { custom?: Management.FormMessagesCustom; } -export type FormMessagesCustom = Record; +export type FormMessagesCustom = Record; -export type FormMessagesError = Record; +export type FormMessagesError = Record; export type FormMessagesNullable = (Management.FormMessages | null) | undefined; @@ -9180,7 +6585,7 @@ export interface FormSummary { submitted_at?: string; } -export type FormTranslations = Record>; +export type FormTranslations = Record; export type FormTranslationsNullable = (Management.FormTranslations | null) | undefined; @@ -9285,7 +6690,7 @@ export interface GetActionResponseContent { code?: string; /** The list of third party npm modules, and their versions, that this action depends on. */ dependencies?: Management.ActionVersionDependency[]; - /** The Node runtime. For example: `node22`, defaults to `node22` */ + /** The Node runtime. For example: `node12`, defaults to `node12` */ runtime?: string; /** The list of secrets that are included in an action or a version of an action. */ secrets?: Management.ActionSecretResponse[]; @@ -9309,9 +6714,9 @@ export interface GetActionVersionResponseContent { code?: string; /** The list of third party npm modules, and their versions, that this specific version depends on. */ dependencies?: Management.ActionVersionDependency[]; - /** Indicates if this specific version is the currently one deployed. */ + /** Indicates if this speciic version is the currently one deployed. */ deployed?: boolean; - /** The Node runtime. For example: `node22` */ + /** The Node runtime. For example: `node12` */ runtime?: string; /** The list of secrets that are included in an action or a version of an action. */ secrets?: Management.ActionSecretResponse[]; @@ -9357,28 +6762,6 @@ export interface GetAculResponseContent { [key: string]: any; } -export interface GetAttackProtectionCaptchaResponseContent { - active_provider_id?: string; - arkose?: Management.AttackProtectionCaptchaArkoseResponseContent; - auth_challenge?: Management.AttackProtectionCaptchaAuthChallengeResponseContent; - hcaptcha?: Management.AttackProtectionCaptchaHcaptchaResponseContent; - friendly_captcha?: Management.AttackProtectionCaptchaFriendlyCaptchaResponseContent; - recaptcha_enterprise?: Management.AttackProtectionCaptchaRecaptchaEnterpriseResponseContent; - recaptcha_v2?: Management.AttackProtectionCaptchaRecaptchaV2ResponseContent; - simple_captcha?: Management.AttackProtectionCaptchaSimpleCaptchaResponseContent; - /** Accepts any additional properties */ - [key: string]: any; -} - -export interface GetBotDetectionSettingsResponseContent { - bot_detection_level: Management.BotDetectionLevelEnum; - challenge_password_policy: Management.BotDetectionChallengePolicyPasswordFlowEnum; - challenge_passwordless_policy: Management.BotDetectionChallengePolicyPasswordlessFlowEnum; - challenge_password_reset_policy: Management.BotDetectionChallengePolicyPasswordResetFlowEnum; - allowlist: Management.BotDetectionAllowlist; - monitoring_mode_enabled: Management.BotDetectionMonitoringModeEnabled; -} - export interface GetBrandingDefaultThemeResponseContent { borders: Management.BrandingThemeBorders; colors: Management.BrandingThemeColors; @@ -9526,7 +6909,8 @@ export interface GetClientResponseContent { global?: boolean; /** Client secret (which you must not make public). */ client_secret?: string; - app_type?: Management.ClientAppTypeEnum; + /** Type of client used to determine which settings are applicable. Can be `spa`, `native`, `non_interactive`, or `regular_web`. */ + app_type?: string; /** URL of the logo to display for this client. Recommended size is 150x150 pixels. */ logo_uri?: string; /** Whether this client a first party client (true) or not (false). */ @@ -9547,7 +6931,7 @@ export interface GetClientResponseContent { allowed_logout_urls?: string[]; session_transfer?: Management.ClientSessionTransferConfiguration | null; oidc_logout?: Management.ClientOidcBackchannelLogoutSettings; - /** List of grant types supported for this application. Can include `authorization_code`, `implicit`, `refresh_token`, `client_credentials`, `password`, `http://auth0.com/oauth/grant-type/password-realm`, `http://auth0.com/oauth/grant-type/mfa-oob`, `http://auth0.com/oauth/grant-type/mfa-otp`, `http://auth0.com/oauth/grant-type/mfa-recovery-code`, `urn:openid:params:grant-type:ciba`, `urn:ietf:params:oauth:grant-type:device_code`, and `urn:auth0:params:oauth:grant-type:token-exchange:federated-connection-access-token`. */ + /** List of grant types supported for this application. Can include `authorization_code`, `implicit`, `refresh_token`, `client_credentials`, `password`, `http://auth0.com/oauth/grant-type/password-realm`, `http://auth0.com/oauth/grant-type/mfa-oob`, `http://auth0.com/oauth/grant-type/mfa-otp`, `http://auth0.com/oauth/grant-type/mfa-recovery-code`, `urn:openid:params:grant-type:ciba`, and `urn:ietf:params:oauth:grant-type:device_code`. */ grant_types?: string[]; jwt_configuration?: Management.ClientJwtConfiguration; signing_keys?: Management.ClientSigningKeys; @@ -9570,8 +6954,6 @@ export interface GetClientResponseContent { form_template?: string; addons?: Management.ClientAddons; token_endpoint_auth_method?: Management.ClientTokenEndpointAuthMethodEnum; - /** If true, trust that the IP specified in the `auth0-forwarded-for` header is the end-user's IP for brute-force-protection on token endpoint. */ - is_token_endpoint_ip_header_trusted?: boolean; client_metadata?: Management.ClientMetadata; mobile?: Management.ClientMobile; /** Initiate login uri, must be https */ @@ -9580,8 +6962,6 @@ export interface GetClientResponseContent { default_organization?: Management.ClientDefaultOrganization | null; organization_usage?: Management.ClientOrganizationUsageEnum; organization_require_behavior?: Management.ClientOrganizationRequireBehaviorEnum; - /** Defines the available methods for organization discovery during the `pre_login_prompt`. Users can discover their organization either by `email`, `organization_name` or both. */ - organization_discovery_methods?: Management.ClientOrganizationDiscoveryEnum[]; client_authentication_methods?: Management.ClientAuthenticationMethod | null; /** Makes the use of Pushed Authorization Requests mandatory for this client */ require_pushed_authorization_requests?: boolean; @@ -9589,18 +6969,9 @@ export interface GetClientResponseContent { require_proof_of_possession?: boolean; signed_request_object?: Management.ClientSignedRequestObjectWithCredentialId; compliance_level?: Management.ClientComplianceLevelEnum | null; - /** - * Controls whether a confirmation prompt is shown during login flows when the redirect URI uses non-verifiable callback URIs (for example, a custom URI schema such as `myapp://`, or `localhost`). - * If set to true, a confirmation prompt will not be shown. We recommend that this is set to false for improved protection from malicious apps. - * See https://auth0.com/docs/secure/security-guidance/measures-against-app-impersonation for more information. - */ - skip_non_verifiable_callback_uri_confirmation_prompt?: boolean; /** Specifies how long, in seconds, a Pushed Authorization Request URI remains valid */ par_request_expiry?: number | null; token_quota?: Management.TokenQuota; - /** The identifier of the resource server that this client is linked to. */ - resource_server_identifier?: string; - async_approval_notification_channels?: Management.ClientAsyncApprovalNotificationsChannelsApiPostConfiguration; /** Accepts any additional properties */ [key: string]: any; } @@ -9633,8 +7004,6 @@ export interface GetConnectionResponseContent { /** Enables showing a button for the connection in the login page (new experience only). If false, it will be usable only by HRD. */ show_as_button?: boolean; metadata?: Management.ConnectionsMetadata; - authentication?: Management.ConnectionAuthenticationPurpose; - connected_accounts?: Management.ConnectionConnectedAccountsPurpose; } export interface GetCustomDomainResponseContent { @@ -9644,7 +7013,6 @@ export interface GetCustomDomainResponseContent { domain: string; /** Whether this is a primary domain (true) or not (false). */ primary: boolean; - status: Management.CustomDomainStatusFilterEnum; type: Management.CustomDomainTypeEnum; /** Intermediate address. */ origin_domain_name?: string; @@ -9653,7 +7021,6 @@ export interface GetCustomDomainResponseContent { custom_client_ip_header?: string | null; /** The TLS version policy */ tls_policy?: string; - certificate?: Management.DomainCertificate; } /** @@ -9738,6 +7105,18 @@ export type GetEventStreamResponseContent = | Management.EventStreamEventBridgeResponseContent | Management.EventStreamActionResponseContent; +export interface GetEventStreamStatsResponseContent { + /** Unique identifier for the event stream. */ + id: string; + /** Name of the event stream. */ + name: string; + window: Management.EventStreamWindow; + /** Array of timestamp strings representing bucket boundaries. */ + buckets: string[]; + /** Array of metrics for the event stream. */ + metrics: Management.EventStreamMetric[]; +} + export interface GetFlowExecutionResponseContent { /** Flow execution identifier */ id: string; @@ -9774,28 +7153,6 @@ export interface GetFlowResponseContent { executed_at?: string; } -export interface GetFlowsVaultConnectionResponseContent { - /** Flows Vault Connection identifier. */ - id: string; - /** Flows Vault Connection app identifier. */ - app_id: string; - /** Flows Vault Connection environment. */ - environment?: string; - /** Flows Vault Connection name. */ - name: string; - /** Flows Vault Connection custom account name. */ - account_name?: string; - /** Whether the Flows Vault Connection is configured. */ - ready: boolean; - /** The ISO 8601 formatted date when this Flows Vault Connection was created. */ - created_at: string; - /** The ISO 8601 formatted date when this Flows Vault Connection was updated. */ - updated_at: string; - /** The ISO 8601 formatted date when this Flows Vault Connection was refreshed. */ - refreshed_at?: string; - fingerprint: string; -} - export interface GetFormResponseContent { id: string; name: string; @@ -9916,7 +7273,7 @@ export interface GetHookResponseContent { /** * Hashmap of key-value pairs where the value must be a string. */ -export type GetHookSecretResponseContent = Record; +export type GetHookSecretResponseContent = Record; export interface GetJobErrorResponseContent { user?: Management.GetJobUserError; @@ -10074,18 +7431,6 @@ export interface GetOrganizationConnectionResponseContent { connection?: Management.OrganizationConnectionInformation; } -export interface GetOrganizationDiscoveryDomainResponseContent { - /** Organization discovery domain identifier. */ - id: string; - /** The domain name to associate with the organization e.g. acme.com. */ - domain: string; - status: Management.OrganizationDiscoveryDomainStatus; - /** A unique token generated for the discovery domain. This must be placed in a DNS TXT record at the location specified by the verification_host field to prove domain ownership. */ - verification_txt: string; - /** The full domain where the TXT record should be added. */ - verification_host: string; -} - export interface GetOrganizationInvitationResponseContent { /** The id of the user invitation. */ id?: string; @@ -10191,19 +7536,6 @@ export interface GetResourceServerResponseContent { consent_policy?: (Management.ResourceServerConsentPolicyEnum | undefined) | null; authorization_details?: unknown[]; proof_of_possession?: Management.ResourceServerProofOfPossession | null; - subject_type_authorization?: Management.ResourceServerSubjectTypeAuthorization; - /** The client ID of the client that this resource server is linked to */ - client_id?: string; -} - -export interface GetRiskAssessmentsSettingsNewDeviceResponseContent { - /** Length of time to remember devices for, in days. */ - remember_for: number; -} - -export interface GetRiskAssessmentsSettingsResponseContent { - /** Whether or not risk assessment is enabled. */ - enabled: boolean; } export interface GetRoleResponseContent { @@ -10275,8 +7607,6 @@ export interface GetSelfServiceProfileResponseContent { branding?: Management.SelfServiceProfileBrandingProperties; /** List of IdP strategies that will be shown to users during the Self-Service SSO flow. Possible values: [`oidc`, `samlp`, `waad`, `google-apps`, `adfs`, `okta`, `keycloak-samlp`, `pingfederate`] */ allowed_strategies?: Management.SelfServiceProfileAllowedStrategyEnum[]; - /** ID of the user-attribute-profile to associate with this self-service profile. */ - user_attribute_profile_id?: string; } export interface GetSessionResponseContent { @@ -10295,7 +7625,6 @@ export interface GetSessionResponseContent { clients?: Management.SessionClientMetadata[]; authentication?: Management.SessionAuthenticationSignals; cookie?: Management.SessionCookieMetadata; - session_metadata?: (Management.SessionMetadata | undefined) | null; /** Accepts any additional properties */ [key: string]: any; } @@ -10406,12 +7735,6 @@ export interface GetTenantSettingsResponseContent { pushed_authorization_requests_supported?: boolean; /** Supports iss parameter in authorization responses */ authorization_response_iss_parameter_supported?: boolean | null; - /** - * Controls whether a confirmation prompt is shown during login flows when the redirect URI uses non-verifiable callback URIs (for example, a custom URI schema such as `myapp://`, or `localhost`). - * If set to true, a confirmation prompt will not be shown. We recommend that this is set to false for improved protection from malicious apps. - * See https://auth0.com/docs/secure/security-guidance/measures-against-app-impersonation for more information. - */ - skip_non_verifiable_callback_uri_confirmation_prompt?: boolean | null; } export interface GetTokenExchangeProfileResponseContent { @@ -10443,21 +7766,6 @@ export type GetUniversalLoginTemplateResponseContent = * The custom page template for the New Universal Login Experience */ | string; -export interface GetUserAttributeProfileResponseContent { - id?: Management.UserAttributeProfileId; - name?: Management.UserAttributeProfileName; - user_id?: Management.UserAttributeProfileUserId; - user_attributes?: Management.UserAttributeProfileUserAttributes; -} - -export interface GetUserAttributeProfileTemplateResponseContent { - /** The id of the template. */ - id?: string; - /** The user-friendly name of the template displayed in the UI. */ - display_name?: string; - template?: Management.UserAttributeProfileTemplate; -} - export interface GetUserAuthenticationMethodResponseContent { /** The ID of the authentication method (auto generated) */ id: string; @@ -10492,10 +7800,6 @@ export interface GetUserAuthenticationMethodResponseContent { identity_user_id?: string; /** Applies to passkeys only. The user-agent of the browser used to create the passkey. */ user_agent?: string; - /** Applies to passkey authentication methods only. Authenticator Attestation Globally Unique Identifier. */ - aaguid?: string; - /** Applies to webauthn/passkey authentication methods only. The credential's relying party identifier. */ - relying_party_identifier?: string; } export interface GetUserResponseContent { @@ -10562,31 +7866,6 @@ export interface GetVerifiableCredentialTemplateResponseContent { [key: string]: any; } -/** - * Represents the metadata of a group. Member lists are retrieved via a separate endpoint. - */ -export interface Group { - /** Unique identifier for the group (service-generated). */ - id?: string; - /** Name of the group. Must be unique within its scope (connection, organization, or tenant). Must contain between 1 and 128 printable ASCII characters. */ - name?: string; - /** External identifier for the group, often used for SCIM synchronization. Max length of 256 characters. */ - external_id?: string; - /** Identifier for the connection this group belongs to (if a connection group). */ - connection_id?: string; - /** Identifier for the organization this group belongs to (if an organization group). */ - organization_id?: string | null; - /** Identifier for the tenant this group belongs to. */ - tenant_name?: string; - description?: string | null; - /** Timestamp of when the group was created. */ - created_at?: string; - /** Timestamp of when the group was last updated. */ - updated_at?: string; - /** Accepts any additional properties */ - [key: string]: any; -} - /** * Enrollment date and time. */ @@ -10672,9 +7951,8 @@ export interface Hook { /** * Dependencies of this hook used by webtask server. */ -export type HookDependencies = Record; +export type HookDependencies = Record; -/** Retrieves hooks that match the trigger */ export const HookTriggerIdEnum = { CredentialsExchange: "credentials-exchange", PreUserRegistration: "pre-user-registration", @@ -10700,8 +7978,6 @@ export interface Identity { /** user_id of the identity to be verified. */ user_id: string; provider: Management.IdentityProviderEnum; - /** connection_id of the identity. */ - connection_id?: string; } /** Identity provider name of the identity (e.g. `google-oauth2`). */ @@ -11035,13 +8311,6 @@ export interface ListFlowsOffsetPaginatedResponseContent { flows?: Management.FlowSummary[]; } -export interface ListFlowsVaultConnectionsOffsetPaginatedResponseContent { - start?: number; - limit?: number; - total?: number; - connections?: Management.FlowsVaultConnectionSummary[]; -} - export interface ListFormsOffsetPaginatedResponseContent { start?: number; limit?: number; @@ -11087,11 +8356,6 @@ export interface ListOrganizationConnectionsOffsetPaginatedResponseContent { enabled_connections?: Management.OrganizationConnection[]; } -export interface ListOrganizationDiscoveryDomainsResponseContent { - next?: string; - domains: Management.OrganizationDiscoveryDomain[]; -} - export interface ListOrganizationInvitationsOffsetPaginatedResponseContent { start?: number; limit?: number; @@ -11165,7 +8429,7 @@ export interface ListRulesOffsetPaginatedResponseContent { /** * The list of custom text keys and values. */ -export type ListSelfServiceProfileCustomTextResponseContent = Record; +export type ListSelfServiceProfileCustomTextResponseContent = Record; export interface ListSelfServiceProfilesPaginatedResponseContent { start?: number; @@ -11180,16 +8444,6 @@ export interface ListTokenExchangeProfileResponseContent { token_exchange_profiles?: Management.TokenExchangeProfileResponseContent[]; } -export interface ListUserAttributeProfileTemplateResponseContent { - user_attribute_profile_templates?: Management.UserAttributeProfileTemplateItem[]; -} - -export interface ListUserAttributeProfilesPaginatedResponseContent { - /** A cursor to be used as the "from" query parameter for the next page of results. */ - next?: string; - user_attribute_profiles?: Management.UserAttributeProfile[]; -} - export interface ListUserAuthenticationMethodsOffsetPaginatedResponseContent { /** Index of the starting record. Derived from the page and per_page parameters. */ start?: number; @@ -11211,12 +8465,6 @@ export interface ListUserBlocksResponseContent { blocked_for?: Management.UserBlockIdentifier[]; } -export interface ListUserConnectedAccountsResponseContent { - connected_accounts: Management.ConnectedAccount[]; - /** The token to retrieve the next page of connected accounts (if there is one) */ - next?: string; -} - export interface ListUserGrantsOffsetPaginatedResponseContent { start?: number; limit?: number; @@ -11424,35 +8672,20 @@ export interface LogStreamEventBridgeSink { /** The region in which the EventBridge event source will be created */ export const LogStreamEventBridgeSinkRegionEnum = { - AfSouth1: "af-south-1", ApEast1: "ap-east-1", - ApEast2: "ap-east-2", ApNortheast1: "ap-northeast-1", ApNortheast2: "ap-northeast-2", ApNortheast3: "ap-northeast-3", ApSouth1: "ap-south-1", - ApSouth2: "ap-south-2", ApSoutheast1: "ap-southeast-1", ApSoutheast2: "ap-southeast-2", - ApSoutheast3: "ap-southeast-3", - ApSoutheast4: "ap-southeast-4", - ApSoutheast5: "ap-southeast-5", - ApSoutheast6: "ap-southeast-6", - ApSoutheast7: "ap-southeast-7", CaCentral1: "ca-central-1", - CaWest1: "ca-west-1", EuCentral1: "eu-central-1", - EuCentral2: "eu-central-2", EuNorth1: "eu-north-1", - EuSouth1: "eu-south-1", - EuSouth2: "eu-south-2", EuWest1: "eu-west-1", EuWest2: "eu-west-2", EuWest3: "eu-west-3", - IlCentral1: "il-central-1", - MeCentral1: "me-central-1", MeSouth1: "me-south-1", - MxCentral1: "mx-central-1", SaEast1: "sa-east-1", UsGovEast1: "us-gov-east-1", UsGovWest1: "us-gov-west-1", @@ -11976,6 +9209,16 @@ export interface Organization { [key: string]: any; } +/** Access level for the organization (e.g., "none", "full"). */ +export const OrganizationAccessLevelEnum = { + None: "none", + Readonly: "readonly", + Limited: "limited", + Full: "full", +} as const; +export type OrganizationAccessLevelEnum = + (typeof OrganizationAccessLevelEnum)[keyof typeof OrganizationAccessLevelEnum]; + /** * Theme defines how to style the login pages. */ @@ -12012,6 +9255,8 @@ export interface OrganizationClientGrant { export interface OrganizationConnection { /** ID of the connection. */ connection_id?: string; + /** Name of the connection in the scope of this organization. */ + organization_connection_name?: string; /** When true, all users that log in with this connection will be automatically granted membership in the organization. When false, users must be granted membership in the organization before logging in with this connection. */ assign_membership_on_login?: boolean; /** Determines whether a connection should be displayed on this organization’s login prompt. Only applicable for enterprise connections. Default: true. */ @@ -12019,6 +9264,9 @@ export interface OrganizationConnection { /** Determines whether organization signup should be enabled for this organization connection. Only applicable for database connections. Default: false. */ is_signup_enabled?: boolean; connection?: Management.OrganizationConnectionInformation; + organization_access_level?: Management.OrganizationAccessLevelEnum; + /** Whether the connection is enabled for the organization. */ + is_enabled?: boolean; } export interface OrganizationConnectionInformation { @@ -12030,26 +9278,6 @@ export interface OrganizationConnectionInformation { [key: string]: any; } -export interface OrganizationDiscoveryDomain { - /** Organization discovery domain identifier. */ - id: string; - /** The domain name to associate with the organization e.g. acme.com. */ - domain: string; - status: Management.OrganizationDiscoveryDomainStatus; - /** A unique token generated for the discovery domain. This must be placed in a DNS TXT record at the location specified by the verification_host field to prove domain ownership. */ - verification_txt: string; - /** The full domain where the TXT record should be added. */ - verification_host: string; -} - -/** The verification status of the discovery domain. */ -export const OrganizationDiscoveryDomainStatus = { - Pending: "pending", - Verified: "verified", -} as const; -export type OrganizationDiscoveryDomainStatus = - (typeof OrganizationDiscoveryDomainStatus)[keyof typeof OrganizationDiscoveryDomainStatus]; - export interface OrganizationEnabledConnection { /** ID of the connection. */ connection_id?: string; @@ -12121,7 +9349,7 @@ export interface OrganizationMemberRole { /** * Metadata associated with the organization, in the form of an object with string values (max 255 chars). Maximum of 25 metadata properties allowed. */ -export type OrganizationMetadata = Record; +export type OrganizationMetadata = Record; /** Defines whether organizations can be used with client credentials exchanges for this grant. */ export const OrganizationUsageEnum = { @@ -12131,7 +9359,6 @@ export const OrganizationUsageEnum = { } as const; export type OrganizationUsageEnum = (typeof OrganizationUsageEnum)[keyof typeof OrganizationUsageEnum]; -/** Name of the prompt. */ export const PartialGroupsEnum = { Login: "login", LoginId: "login-id", @@ -12333,7 +9560,6 @@ export interface PrivateKeyJwt { */ export type PrivateKeyJwtCredentials = Management.CredentialId[]; -/** Name of the prompt */ export const PromptGroupNameEnum = { Login: "login", LoginId: "login-id", @@ -12370,11 +9596,9 @@ export const PromptGroupNameEnum = { Passkeys: "passkeys", Captcha: "captcha", BruteForceProtection: "brute-force-protection", - AsyncApprovalFlow: "async-approval-flow", } as const; export type PromptGroupNameEnum = (typeof PromptGroupNameEnum)[keyof typeof PromptGroupNameEnum]; -/** Language to update. */ export const PromptLanguageEnum = { Am: "am", Ar: "ar", @@ -12617,9 +9841,6 @@ export interface ResourceServer { consent_policy?: (Management.ResourceServerConsentPolicyEnum | undefined) | null; authorization_details?: unknown[]; proof_of_possession?: Management.ResourceServerProofOfPossession | null; - subject_type_authorization?: Management.ResourceServerSubjectTypeAuthorization; - /** The client ID of the client that this resource server is linked to */ - client_id?: string; } export type ResourceServerConsentPolicyEnum = ("transactional-authorization-with-mfa" | null) | undefined; @@ -12648,49 +9869,6 @@ export interface ResourceServerScope { description?: string; } -/** - * Defines application access permission for a resource server. Use of this field is subject to the applicable Free Trial terms in Okta’s Master Subscription Agreement. - */ -export interface ResourceServerSubjectTypeAuthorization { - user?: Management.ResourceServerSubjectTypeAuthorizationUser; - client?: Management.ResourceServerSubjectTypeAuthorizationClient; -} - -/** - * Access Permissions for client flows - */ -export interface ResourceServerSubjectTypeAuthorizationClient { - policy?: Management.ResourceServerSubjectTypeAuthorizationClientPolicyEnum; - /** Accepts any additional properties */ - [key: string]: any; -} - -/** Defines the client flows policy for the resource server */ -export const ResourceServerSubjectTypeAuthorizationClientPolicyEnum = { - DenyAll: "deny_all", - RequireClientGrant: "require_client_grant", -} as const; -export type ResourceServerSubjectTypeAuthorizationClientPolicyEnum = - (typeof ResourceServerSubjectTypeAuthorizationClientPolicyEnum)[keyof typeof ResourceServerSubjectTypeAuthorizationClientPolicyEnum]; - -/** - * Access Permissions for user flows - */ -export interface ResourceServerSubjectTypeAuthorizationUser { - policy?: Management.ResourceServerSubjectTypeAuthorizationUserPolicyEnum; - /** Accepts any additional properties */ - [key: string]: any; -} - -/** Defines the user flows policy for the resource server */ -export const ResourceServerSubjectTypeAuthorizationUserPolicyEnum = { - AllowAll: "allow_all", - DenyAll: "deny_all", - RequireClientGrant: "require_client_grant", -} as const; -export type ResourceServerSubjectTypeAuthorizationUserPolicyEnum = - (typeof ResourceServerSubjectTypeAuthorizationUserPolicyEnum)[keyof typeof ResourceServerSubjectTypeAuthorizationUserPolicyEnum]; - /** Dialect of access tokens that should be issued. `access_token` is a JWT containing standard Auth0 claims; `rfc9068_profile` is a JWT conforming to the IETF JWT Access Token Profile. `access_token_authz` and `rfc9068_profile_authz` additionally include RBAC permissions claims. */ export const ResourceServerTokenDialectResponseEnum = { AccessToken: "access_token", @@ -12787,7 +9965,8 @@ export interface RotateClientSecretResponseContent { global?: boolean; /** Client secret (which you must not make public). */ client_secret?: string; - app_type?: Management.ClientAppTypeEnum; + /** Type of client used to determine which settings are applicable. Can be `spa`, `native`, `non_interactive`, or `regular_web`. */ + app_type?: string; /** URL of the logo to display for this client. Recommended size is 150x150 pixels. */ logo_uri?: string; /** Whether this client a first party client (true) or not (false). */ @@ -12808,7 +9987,7 @@ export interface RotateClientSecretResponseContent { allowed_logout_urls?: string[]; session_transfer?: Management.ClientSessionTransferConfiguration | null; oidc_logout?: Management.ClientOidcBackchannelLogoutSettings; - /** List of grant types supported for this application. Can include `authorization_code`, `implicit`, `refresh_token`, `client_credentials`, `password`, `http://auth0.com/oauth/grant-type/password-realm`, `http://auth0.com/oauth/grant-type/mfa-oob`, `http://auth0.com/oauth/grant-type/mfa-otp`, `http://auth0.com/oauth/grant-type/mfa-recovery-code`, `urn:openid:params:grant-type:ciba`, `urn:ietf:params:oauth:grant-type:device_code`, and `urn:auth0:params:oauth:grant-type:token-exchange:federated-connection-access-token`. */ + /** List of grant types supported for this application. Can include `authorization_code`, `implicit`, `refresh_token`, `client_credentials`, `password`, `http://auth0.com/oauth/grant-type/password-realm`, `http://auth0.com/oauth/grant-type/mfa-oob`, `http://auth0.com/oauth/grant-type/mfa-otp`, `http://auth0.com/oauth/grant-type/mfa-recovery-code`, `urn:openid:params:grant-type:ciba`, and `urn:ietf:params:oauth:grant-type:device_code`. */ grant_types?: string[]; jwt_configuration?: Management.ClientJwtConfiguration; signing_keys?: Management.ClientSigningKeys; @@ -12831,8 +10010,6 @@ export interface RotateClientSecretResponseContent { form_template?: string; addons?: Management.ClientAddons; token_endpoint_auth_method?: Management.ClientTokenEndpointAuthMethodEnum; - /** If true, trust that the IP specified in the `auth0-forwarded-for` header is the end-user's IP for brute-force-protection on token endpoint. */ - is_token_endpoint_ip_header_trusted?: boolean; client_metadata?: Management.ClientMetadata; mobile?: Management.ClientMobile; /** Initiate login uri, must be https */ @@ -12841,8 +10018,6 @@ export interface RotateClientSecretResponseContent { default_organization?: Management.ClientDefaultOrganization | null; organization_usage?: Management.ClientOrganizationUsageEnum; organization_require_behavior?: Management.ClientOrganizationRequireBehaviorEnum; - /** Defines the available methods for organization discovery during the `pre_login_prompt`. Users can discover their organization either by `email`, `organization_name` or both. */ - organization_discovery_methods?: Management.ClientOrganizationDiscoveryEnum[]; client_authentication_methods?: Management.ClientAuthenticationMethod | null; /** Makes the use of Pushed Authorization Requests mandatory for this client */ require_pushed_authorization_requests?: boolean; @@ -12850,18 +10025,9 @@ export interface RotateClientSecretResponseContent { require_proof_of_possession?: boolean; signed_request_object?: Management.ClientSignedRequestObjectWithCredentialId; compliance_level?: Management.ClientComplianceLevelEnum | null; - /** - * Controls whether a confirmation prompt is shown during login flows when the redirect URI uses non-verifiable callback URIs (for example, a custom URI schema such as `myapp://`, or `localhost`). - * If set to true, a confirmation prompt will not be shown. We recommend that this is set to false for improved protection from malicious apps. - * See https://auth0.com/docs/secure/security-guidance/measures-against-app-impersonation for more information. - */ - skip_non_verifiable_callback_uri_confirmation_prompt?: boolean; /** Specifies how long, in seconds, a Pushed Authorization Request URI remains valid */ par_request_expiry?: number | null; token_quota?: Management.TokenQuota; - /** The identifier of the resource server that this client is linked to. */ - resource_server_identifier?: string; - async_approval_notification_channels?: Management.ClientAsyncApprovalNotificationsChannelsApiPostConfiguration; /** Accepts any additional properties */ [key: string]: any; } @@ -12956,7 +10122,6 @@ export interface ScimTokenItem { [key: string]: any; } -/** Name of the screen */ export const ScreenGroupNameEnum = { Login: "login", LoginId: "login-id", @@ -13034,7 +10199,6 @@ export const ScreenGroupNameEnum = { EmailOtpChallenge: "email-otp-challenge", OrganizationSelection: "organization-selection", OrganizationPicker: "organization-picker", - PreLoginOrganizationPicker: "pre-login-organization-picker", AcceptInvitation: "accept-invitation", RedeemTicket: "redeem-ticket", PasskeyEnrollment: "passkey-enrollment", @@ -13043,14 +10207,9 @@ export const ScreenGroupNameEnum = { BruteForceProtectionUnblock: "brute-force-protection-unblock", BruteForceProtectionUnblockSuccess: "brute-force-protection-unblock-success", BruteForceProtectionUnblockFailure: "brute-force-protection-unblock-failure", - AsyncApprovalError: "async-approval-error", - AsyncApprovalWrongUser: "async-approval-wrong-user", - AsyncApprovalAccepted: "async-approval-accepted", - AsyncApprovalDenied: "async-approval-denied", } as const; export type ScreenGroupNameEnum = (typeof ScreenGroupNameEnum)[keyof typeof ScreenGroupNameEnum]; -/** The version of the search engine */ export const SearchEngineVersionsEnum = { V1: "v1", V2: "v2", @@ -13074,8 +10233,6 @@ export interface SelfServiceProfile { branding?: Management.SelfServiceProfileBrandingProperties; /** List of IdP strategies that will be shown to users during the Self-Service SSO flow. Possible values: [`oidc`, `samlp`, `waad`, `google-apps`, `adfs`, `okta`, `keycloak-samlp`, `pingfederate`] */ allowed_strategies?: Management.SelfServiceProfileAllowedStrategyEnum[]; - /** ID of the user-attribute-profile to associate with this self-service profile. */ - user_attribute_profile_id?: string; } export const SelfServiceProfileAllowedStrategyEnum = { @@ -13106,14 +10263,8 @@ export interface SelfServiceProfileBrandingProperties { [key: string]: any; } -/** - * The language of the custom text. - */ export type SelfServiceProfileCustomTextLanguageEnum = "en"; -/** - * The page where the custom text is shown. - */ export type SelfServiceProfileCustomTextPageEnum = "get-started"; /** @@ -13324,11 +10475,6 @@ export interface SessionDeviceMetadata { */ export type SessionIp = (string | null) | undefined; -/** - * Metadata associated with the session, in the form of an object with string values (max 255 chars). Maximum of 25 metadata properties allowed. - */ -export type SessionMetadata = (Record | null) | undefined; - export interface SessionResponseContent { /** The ID of the session */ id?: string; @@ -13345,7 +10491,6 @@ export interface SessionResponseContent { clients?: Management.SessionClientMetadata[]; authentication?: Management.SessionAuthenticationSignals; cookie?: Management.SessionCookieMetadata; - session_metadata?: (Management.SessionMetadata | undefined) | null; /** Accepts any additional properties */ [key: string]: any; } @@ -13508,12 +10653,12 @@ export interface SetRulesConfigResponseContent { /** * The list of text keys and values to customize the self-service SSO page. Values can be plain text or rich HTML content limited to basic styling tags and hyperlinks. */ -export type SetSelfServiceProfileCustomTextRequestContent = Record; +export type SetSelfServiceProfileCustomTextRequestContent = Record; /** * The resulting list of custom text keys and values. */ -export type SetSelfServiceProfileCustomTextResponseContent = Record; +export type SetSelfServiceProfileCustomTextResponseContent = Record; /** * The successfully created authentication method. @@ -13536,8 +10681,6 @@ export interface SetUserAuthenticationMethodResponseContent { key_id?: string; /** Applies to webauthn authenticators only. The public key. */ public_key?: string; - /** Applies to passkeys only. Authenticator Attestation Globally Unique Identifier. */ - aaguid?: string; /** Applies to webauthn authenticators only. The relying party identifier. */ relying_party_identifier?: string; /** Authentication method creation date */ @@ -14007,7 +11150,7 @@ export interface UpdateActionResponseContent { code?: string; /** The list of third party npm modules, and their versions, that this action depends on. */ dependencies?: Management.ActionVersionDependency[]; - /** The Node runtime. For example: `node22`, defaults to `node22` */ + /** The Node runtime. For example: `node12`, defaults to `node12` */ runtime?: string; /** The list of secrets that are included in an action or a version of an action. */ secrets?: Management.ActionSecretResponse[]; @@ -14037,28 +11180,6 @@ export interface UpdateAculResponseContent { [key: string]: any; } -export interface UpdateAttackProtectionCaptchaResponseContent { - active_provider_id?: string; - arkose?: Management.AttackProtectionCaptchaArkoseResponseContent; - auth_challenge?: Management.AttackProtectionCaptchaAuthChallengeResponseContent; - hcaptcha?: Management.AttackProtectionCaptchaHcaptchaResponseContent; - friendly_captcha?: Management.AttackProtectionCaptchaFriendlyCaptchaResponseContent; - recaptcha_enterprise?: Management.AttackProtectionCaptchaRecaptchaEnterpriseResponseContent; - recaptcha_v2?: Management.AttackProtectionCaptchaRecaptchaV2ResponseContent; - simple_captcha?: Management.AttackProtectionCaptchaSimpleCaptchaResponseContent; - /** Accepts any additional properties */ - [key: string]: any; -} - -export interface UpdateBotDetectionSettingsResponseContent { - bot_detection_level?: Management.BotDetectionLevelEnum; - challenge_password_policy?: Management.BotDetectionChallengePolicyPasswordFlowEnum; - challenge_passwordless_policy?: Management.BotDetectionChallengePolicyPasswordlessFlowEnum; - challenge_password_reset_policy?: Management.BotDetectionChallengePolicyPasswordResetFlowEnum; - allowlist?: Management.BotDetectionAllowlist; - monitoring_mode_enabled?: Management.BotDetectionMonitoringModeEnabled; -} - /** * Custom color settings. */ @@ -14204,9 +11325,6 @@ export interface UpdateClientGrantResponseContent { allow_any_organization?: boolean; /** If enabled, this grant is a special grant created by Auth0. It cannot be modified or deleted directly. */ is_system?: boolean; - subject_type?: Management.ClientGrantSubjectTypeEnum; - /** Types of authorization_details allowed for this client grant. Use of this field is subject to the applicable Free Trial terms in Okta’s Master Subscription Agreement. */ - authorization_details_types?: string[]; } export interface UpdateClientResponseContent { @@ -14222,7 +11340,8 @@ export interface UpdateClientResponseContent { global?: boolean; /** Client secret (which you must not make public). */ client_secret?: string; - app_type?: Management.ClientAppTypeEnum; + /** Type of client used to determine which settings are applicable. Can be `spa`, `native`, `non_interactive`, or `regular_web`. */ + app_type?: string; /** URL of the logo to display for this client. Recommended size is 150x150 pixels. */ logo_uri?: string; /** Whether this client a first party client (true) or not (false). */ @@ -14243,7 +11362,7 @@ export interface UpdateClientResponseContent { allowed_logout_urls?: string[]; session_transfer?: Management.ClientSessionTransferConfiguration | null; oidc_logout?: Management.ClientOidcBackchannelLogoutSettings; - /** List of grant types supported for this application. Can include `authorization_code`, `implicit`, `refresh_token`, `client_credentials`, `password`, `http://auth0.com/oauth/grant-type/password-realm`, `http://auth0.com/oauth/grant-type/mfa-oob`, `http://auth0.com/oauth/grant-type/mfa-otp`, `http://auth0.com/oauth/grant-type/mfa-recovery-code`, `urn:openid:params:grant-type:ciba`, `urn:ietf:params:oauth:grant-type:device_code`, and `urn:auth0:params:oauth:grant-type:token-exchange:federated-connection-access-token`. */ + /** List of grant types supported for this application. Can include `authorization_code`, `implicit`, `refresh_token`, `client_credentials`, `password`, `http://auth0.com/oauth/grant-type/password-realm`, `http://auth0.com/oauth/grant-type/mfa-oob`, `http://auth0.com/oauth/grant-type/mfa-otp`, `http://auth0.com/oauth/grant-type/mfa-recovery-code`, `urn:openid:params:grant-type:ciba`, and `urn:ietf:params:oauth:grant-type:device_code`. */ grant_types?: string[]; jwt_configuration?: Management.ClientJwtConfiguration; signing_keys?: Management.ClientSigningKeys; @@ -14266,8 +11385,6 @@ export interface UpdateClientResponseContent { form_template?: string; addons?: Management.ClientAddons; token_endpoint_auth_method?: Management.ClientTokenEndpointAuthMethodEnum; - /** If true, trust that the IP specified in the `auth0-forwarded-for` header is the end-user's IP for brute-force-protection on token endpoint. */ - is_token_endpoint_ip_header_trusted?: boolean; client_metadata?: Management.ClientMetadata; mobile?: Management.ClientMobile; /** Initiate login uri, must be https */ @@ -14276,8 +11393,6 @@ export interface UpdateClientResponseContent { default_organization?: Management.ClientDefaultOrganization | null; organization_usage?: Management.ClientOrganizationUsageEnum; organization_require_behavior?: Management.ClientOrganizationRequireBehaviorEnum; - /** Defines the available methods for organization discovery during the `pre_login_prompt`. Users can discover their organization either by `email`, `organization_name` or both. */ - organization_discovery_methods?: Management.ClientOrganizationDiscoveryEnum[]; client_authentication_methods?: Management.ClientAuthenticationMethod | null; /** Makes the use of Pushed Authorization Requests mandatory for this client */ require_pushed_authorization_requests?: boolean; @@ -14285,18 +11400,9 @@ export interface UpdateClientResponseContent { require_proof_of_possession?: boolean; signed_request_object?: Management.ClientSignedRequestObjectWithCredentialId; compliance_level?: Management.ClientComplianceLevelEnum | null; - /** - * Controls whether a confirmation prompt is shown during login flows when the redirect URI uses non-verifiable callback URIs (for example, a custom URI schema such as `myapp://`, or `localhost`). - * If set to true, a confirmation prompt will not be shown. We recommend that this is set to false for improved protection from malicious apps. - * See https://auth0.com/docs/secure/security-guidance/measures-against-app-impersonation for more information. - */ - skip_non_verifiable_callback_uri_confirmation_prompt?: boolean; /** Specifies how long, in seconds, a Pushed Authorization Request URI remains valid */ par_request_expiry?: number | null; token_quota?: Management.TokenQuota; - /** The identifier of the resource server that this client is linked to. */ - resource_server_identifier?: string; - async_approval_notification_channels?: Management.ClientAsyncApprovalNotificationsChannelsApiPostConfiguration; /** Accepts any additional properties */ [key: string]: any; } @@ -14311,7 +11417,6 @@ export interface UpdateConnectionOptions { /** Order of precedence for attribute types. If the property is not specified, the default precedence of attributes will be used. */ precedence?: Management.ConnectionIdentifierPrecedenceEnum[]; attributes?: Management.ConnectionAttributes; - /** Set to true to inject context into custom DB scripts (warning: cannot be disabled once enabled) */ enable_script_context?: boolean; /** Set to true to use a legacy user store */ enabledDatabaseCustomization?: boolean; @@ -14337,7 +11442,6 @@ export interface UpdateConnectionOptions { upstream_params?: (Management.ConnectionUpstreamParams | undefined) | null; set_user_root_attributes?: Management.ConnectionSetUserRootAttributesEnum; gateway_authentication?: Management.ConnectionGatewayAuthentication | null; - federated_connections_access_tokens?: Management.ConnectionFederatedConnectionsAccessTokens | null; /** Accepts any additional properties */ [key: string]: any; } @@ -14361,8 +11465,6 @@ export interface UpdateConnectionResponseContent { /** Enables showing a button for the connection in the login page (new experience only). If false, it will be usable only by HRD. */ show_as_button?: boolean; metadata?: Management.ConnectionsMetadata; - authentication?: Management.ConnectionAuthenticationPurpose; - connected_accounts?: Management.ConnectionConnectedAccountsPurpose; } export interface UpdateCustomDomainResponseContent { @@ -14372,14 +11474,12 @@ export interface UpdateCustomDomainResponseContent { domain: string; /** Whether this is a primary domain (true) or not (false). */ primary: boolean; - status: Management.CustomDomainStatusFilterEnum; type: Management.CustomDomainTypeEnum; verification: Management.DomainVerification; /** The HTTP header to fetch the client's IP address */ custom_client_ip_header?: string | null; /** The TLS version policy */ tls_policy?: string; - certificate?: Management.DomainCertificate; } export interface UpdateEmailProviderResponseContent { @@ -14437,46 +11537,6 @@ export interface UpdateFlowResponseContent { executed_at?: string; } -export interface UpdateFlowsVaultConnectionResponseContent { - /** Flows Vault Connection identifier. */ - id: string; - /** Flows Vault Connection app identifier. */ - app_id: string; - /** Flows Vault Connection environment. */ - environment?: string; - /** Flows Vault Connection name. */ - name: string; - /** Flows Vault Connection custom account name. */ - account_name?: string; - /** Whether the Flows Vault Connection is configured. */ - ready: boolean; - /** The ISO 8601 formatted date when this Flows Vault Connection was created. */ - created_at: string; - /** The ISO 8601 formatted date when this Flows Vault Connection was updated. */ - updated_at: string; - /** The ISO 8601 formatted date when this Flows Vault Connection was refreshed. */ - refreshed_at?: string; - fingerprint: string; -} - -/** - * Flows Vault Connection configuration. - */ -export type UpdateFlowsVaultConnectionSetup = - | Management.FlowsVaultConnectioSetupApiKeyWithBaseUrl - | Management.FlowsVaultConnectioSetupApiKey - | Management.FlowsVaultConnectioSetupOauthApp - | Management.FlowsVaultConnectioSetupBigqueryOauthJwt - | Management.FlowsVaultConnectioSetupSecretApiKey - | Management.FlowsVaultConnectioSetupHttpBearer - | Management.FlowsVaultConnectioSetupJwt - | Management.FlowsVaultConnectioSetupMailjetApiKey - | Management.FlowsVaultConnectioSetupToken - | Management.FlowsVaultConnectioSetupWebhook - | Management.FlowsVaultConnectioSetupStripeKeyPair - | Management.FlowsVaultConnectioSetupOauthCode - | Management.FlowsVaultConnectioSetupTwilioApiKey; - export interface UpdateFormResponseContent { id: string; name: string; @@ -14524,7 +11584,7 @@ export interface UpdateHookResponseContent { /** * Hashmap of key-value pairs where the value must be a string. */ -export type UpdateHookSecretRequestContent = Record; +export type UpdateHookSecretRequestContent = Record; export type UpdateLogStreamResponseContent = | Management.LogStreamHttpResponseSchema @@ -14562,18 +11622,6 @@ export interface UpdateOrganizationConnectionResponseContent { connection?: Management.OrganizationConnectionInformation; } -export interface UpdateOrganizationDiscoveryDomainResponseContent { - /** Organization discovery domain identifier. */ - id: string; - /** The domain name to associate with the organization e.g. acme.com. */ - domain: string; - status: Management.OrganizationDiscoveryDomainStatus; - /** A unique token generated for the discovery domain. This must be placed in a DNS TXT record at the location specified by the verification_host field to prove domain ownership. */ - verification_txt: string; - /** The full domain where the TXT record should be added. */ - verification_host: string; -} - export interface UpdateOrganizationResponseContent { /** Organization identifier. */ id?: string; @@ -14628,19 +11676,6 @@ export interface UpdateResourceServerResponseContent { consent_policy?: (Management.ResourceServerConsentPolicyEnum | undefined) | null; authorization_details?: unknown[]; proof_of_possession?: Management.ResourceServerProofOfPossession | null; - subject_type_authorization?: Management.ResourceServerSubjectTypeAuthorization; - /** The client ID of the client that this resource server is linked to */ - client_id?: string; -} - -export interface UpdateRiskAssessmentsSettingsNewDeviceResponseContent { - /** Length of time to remember devices for, in days. */ - remember_for: number; -} - -export interface UpdateRiskAssessmentsSettingsResponseContent { - /** Whether or not risk assessment is enabled. */ - enabled: boolean; } export interface UpdateRoleResponseContent { @@ -14702,29 +11737,6 @@ export interface UpdateSelfServiceProfileResponseContent { branding?: Management.SelfServiceProfileBrandingProperties; /** List of IdP strategies that will be shown to users during the Self-Service SSO flow. Possible values: [`oidc`, `samlp`, `waad`, `google-apps`, `adfs`, `okta`, `keycloak-samlp`, `pingfederate`] */ allowed_strategies?: Management.SelfServiceProfileAllowedStrategyEnum[]; - /** ID of the user-attribute-profile to associate with this self-service profile. */ - user_attribute_profile_id?: string; -} - -export interface UpdateSessionResponseContent { - /** The ID of the session */ - id?: string; - /** ID of the user which can be used when interacting with other APIs. */ - user_id?: string; - created_at?: Management.SessionDate; - updated_at?: Management.SessionDate; - authenticated_at?: Management.SessionDate; - idle_expires_at?: Management.SessionDate; - expires_at?: Management.SessionDate; - last_interacted_at?: Management.SessionDate; - device?: Management.SessionDeviceMetadata; - /** List of client details for the session */ - clients?: Management.SessionClientMetadata[]; - authentication?: Management.SessionAuthenticationSignals; - cookie?: Management.SessionCookieMetadata; - session_metadata?: (Management.SessionMetadata | undefined) | null; - /** Accepts any additional properties */ - [key: string]: any; } export interface UpdateSettingsResponseContent { @@ -14802,12 +11814,6 @@ export interface UpdateTenantSettingsResponseContent { pushed_authorization_requests_supported?: boolean; /** Supports iss parameter in authorization responses */ authorization_response_iss_parameter_supported?: boolean | null; - /** - * Controls whether a confirmation prompt is shown during login flows when the redirect URI uses non-verifiable callback URIs (for example, a custom URI schema such as `myapp://`, or `localhost`). - * If set to true, a confirmation prompt will not be shown. We recommend that this is set to false for improved protection from malicious apps. - * See https://auth0.com/docs/secure/security-guidance/measures-against-app-impersonation for more information. - */ - skip_non_verifiable_callback_uri_confirmation_prompt?: boolean | null; } export interface UpdateTokenQuota { @@ -14820,13 +11826,6 @@ export type UpdateUniversalLoginTemplateRequestContent = template: string; }; -export interface UpdateUserAttributeProfileResponseContent { - id?: Management.UserAttributeProfileId; - name?: Management.UserAttributeProfileName; - user_id?: Management.UserAttributeProfileUserId; - user_attributes?: Management.UserAttributeProfileUserAttributes; -} - /** * The successfully created authentication method. */ @@ -14848,8 +11847,6 @@ export interface UpdateUserAuthenticationMethodResponseContent { key_id?: string; /** Applies to webauthn authentication methods only. The public key. */ public_key?: string; - /** Applies to passkey authentication methods only. Authenticator Attestation Globally Unique Identifier. */ - aaguid?: string; /** Applies to webauthn authentication methods only. The relying party identifier. */ relying_party_identifier?: string; /** Authentication method creation date */ @@ -14925,153 +11922,6 @@ export interface UpdateVerifiableCredentialTemplateResponseContent { */ export type UserAppMetadataSchema = Record; -export interface UserAttributeProfile { - id?: Management.UserAttributeProfileId; - name?: Management.UserAttributeProfileName; - user_id?: Management.UserAttributeProfileUserId; - user_attributes?: Management.UserAttributeProfileUserAttributes; -} - -/** - * User Attribute Profile identifier. - */ -export type UserAttributeProfileId = string; - -/** - * The name of the user attribute profile. - */ -export type UserAttributeProfileName = string; - -/** - * OIDC mapping for this attribute - */ -export interface UserAttributeProfileOidcMapping { - /** OIDC mapping field */ - mapping: string; - /** Display name for the OIDC mapping */ - display_name?: string; -} - -export type UserAttributeProfilePatchUserId = (Management.UserAttributeProfileUserId | null) | undefined; - -/** - * SAML mapping override for this strategy - */ -export type UserAttributeProfileSamlMapping = string[]; - -/** - * Strategy-specific overrides for this attribute - */ -export interface UserAttributeProfileStrategyOverrides { - pingfederate?: Management.UserAttributeProfileStrategyOverridesMapping; - ad?: Management.UserAttributeProfileStrategyOverridesMapping; - adfs?: Management.UserAttributeProfileStrategyOverridesMapping; - waad?: Management.UserAttributeProfileStrategyOverridesMapping; - "google-apps"?: Management.UserAttributeProfileStrategyOverridesMapping; - okta?: Management.UserAttributeProfileStrategyOverridesMapping; - oidc?: Management.UserAttributeProfileStrategyOverridesMapping; - samlp?: Management.UserAttributeProfileStrategyOverridesMapping; -} - -export interface UserAttributeProfileStrategyOverridesMapping { - oidc_mapping?: Management.UserAttributeProfileOidcMapping; - saml_mapping?: Management.UserAttributeProfileSamlMapping; - /** SCIM mapping override for this strategy */ - scim_mapping?: string; -} - -/** - * Strategy-specific overrides for user ID - */ -export interface UserAttributeProfileStrategyOverridesUserId { - pingfederate?: Management.UserAttributeProfileStrategyOverridesUserIdMapping; - ad?: Management.UserAttributeProfileStrategyOverridesUserIdMapping; - adfs?: Management.UserAttributeProfileStrategyOverridesUserIdMapping; - waad?: Management.UserAttributeProfileStrategyOverridesUserIdMapping; - "google-apps"?: Management.UserAttributeProfileStrategyOverridesUserIdMapping; - okta?: Management.UserAttributeProfileStrategyOverridesUserIdMapping; - oidc?: Management.UserAttributeProfileStrategyOverridesUserIdMapping; - samlp?: Management.UserAttributeProfileStrategyOverridesUserIdMapping; -} - -export interface UserAttributeProfileStrategyOverridesUserIdMapping { - oidc_mapping?: Management.UserAttributeProfileUserIdOidcStrategyOverrideMapping; - saml_mapping?: Management.UserAttributeProfileSamlMapping; - /** SCIM mapping override for this strategy */ - scim_mapping?: string; -} - -/** - * The structure of the template, which can be used as the payload for creating or updating a User Attribute Profile. - */ -export interface UserAttributeProfileTemplate { - name?: Management.UserAttributeProfileName; - user_id?: Management.UserAttributeProfileUserId; - user_attributes?: Management.UserAttributeProfileUserAttributes; -} - -export interface UserAttributeProfileTemplateItem { - /** The id of the template. */ - id?: string; - /** The user-friendly name of the template displayed in the UI. */ - display_name?: string; - template?: Management.UserAttributeProfileTemplate; -} - -export interface UserAttributeProfileUserAttributeAdditionalProperties { - /** Description of this attribute */ - description: string; - /** Display label for this attribute */ - label: string; - /** Whether this attribute is required in the profile */ - profile_required: boolean; - /** Auth0 mapping for this attribute */ - auth0_mapping: string; - oidc_mapping?: Management.UserAttributeProfileOidcMapping; - saml_mapping?: Management.UserAttributeProfileSamlMapping; - /** SCIM mapping for this attribute */ - scim_mapping?: string; - strategy_overrides?: Management.UserAttributeProfileStrategyOverrides; -} - -/** - * User attributes configuration map. Keys are attribute names, values are the mapping configuration for each attribute. - */ -export type UserAttributeProfileUserAttributes = Record< - string, - Management.UserAttributeProfileUserAttributeAdditionalProperties ->; - -/** - * User ID mapping configuration - */ -export interface UserAttributeProfileUserId { - oidc_mapping?: Management.UserAttributeProfileUserIdOidcMappingEnum; - saml_mapping?: Management.UserAttributeProfileUserIdSamlMapping; - /** SCIM mapping for user ID */ - scim_mapping?: string; - strategy_overrides?: Management.UserAttributeProfileStrategyOverridesUserId; -} - -/** - * OIDC mapping for user ID - */ -export type UserAttributeProfileUserIdOidcMappingEnum = "sub"; - -/** OIDC mapping override for this strategy */ -export const UserAttributeProfileUserIdOidcStrategyOverrideMapping = { - Sub: "sub", - Oid: "oid", - Email: "email", -} as const; -export type UserAttributeProfileUserIdOidcStrategyOverrideMapping = - (typeof UserAttributeProfileUserIdOidcStrategyOverrideMapping)[keyof typeof UserAttributeProfileUserIdOidcStrategyOverrideMapping]; - -/** - * SAML mapping for user ID - */ -export type UserAttributeProfileUserIdSamlMapping = string[]; - export interface UserAuthenticationMethod { /** The ID of the authentication method (auto generated) */ id: string; @@ -15106,10 +11956,6 @@ export interface UserAuthenticationMethod { identity_user_id?: string; /** Applies to passkeys only. The user-agent of the browser used to create the passkey. */ user_agent?: string; - /** Applies to passkey authentication methods only. Authenticator Attestation Globally Unique Identifier. */ - aaguid?: string; - /** Applies to webauthn/passkey authentication methods only. The credential's relying party identifier. */ - relying_party_identifier?: string; } export interface UserAuthenticationMethodProperties { @@ -15178,20 +12024,15 @@ export interface UserGrant { scope?: string[]; } -export interface UserGroupsResponseSchema extends Management.Group { - /** Timestamp of when the group membership was added. */ - membership_created_at?: string; -} - /** * user_id of the secondary user account being linked. */ -export type UserId = string | number; +export type UserIdEnum = string | number; export interface UserIdentity { /** Connection name of this identity. */ connection: string; - user_id: Management.UserId; + user_id: Management.UserIdEnum; /** Type of identity provider. */ provider: string; profileData?: Management.UserProfileData; @@ -15307,7 +12148,6 @@ export type UserMetadata = Record; */ export type UserMetadataSchema = Record; -/** The multi-factor provider. Supported values 'duo' or 'google-authenticator' */ export const UserMultifactorProviderEnum = { Duo: "duo", GoogleAuthenticator: "google-authenticator", @@ -15469,7 +12309,6 @@ export interface VerifyCustomDomainResponseContent { domain: string; /** Whether this is a primary domain (true) or not (false). */ primary: boolean; - status: Management.CustomDomainStatusFilterEnum; type: Management.CustomDomainTypeEnum; /** CNAME API key header. */ cname_api_key?: string; @@ -15480,7 +12319,6 @@ export interface VerifyCustomDomainResponseContent { custom_client_ip_header?: string | null; /** The TLS version policy */ tls_policy?: string; - certificate?: Management.DomainCertificate; } export interface VerifyEmailTicketResponseContent { diff --git a/src/management/auth/BearerAuthProvider.ts b/src/management/auth/BearerAuthProvider.ts new file mode 100644 index 0000000000..d51e3563d1 --- /dev/null +++ b/src/management/auth/BearerAuthProvider.ts @@ -0,0 +1,35 @@ +// This file was auto-generated by Fern from our API Definition. + +import * as core from "../core/index.js"; +import * as errors from "../errors/index.js"; + +export namespace BearerAuthProvider { + export interface Options { + token: core.EndpointSupplier; + } +} + +export class BearerAuthProvider implements core.AuthProvider { + private readonly token: core.EndpointSupplier; + + constructor(options: BearerAuthProvider.Options) { + this.token = options.token; + } + + public static canCreate(options: BearerAuthProvider.Options): boolean { + return options.token != null; + } + + public async getAuthRequest(arg?: { endpointMetadata?: core.EndpointMetadata }): Promise { + const token = await core.EndpointSupplier.get(this.token, { endpointMetadata: arg?.endpointMetadata ?? {} }); + if (token == null) { + throw new errors.ManagementError({ + message: "Please specify a token by passing it in to the constructor", + }); + } + + return { + headers: { Authorization: `Bearer ${token}` }, + }; + } +} diff --git a/src/management/auth/index.ts b/src/management/auth/index.ts new file mode 100644 index 0000000000..0ecb12b79b --- /dev/null +++ b/src/management/auth/index.ts @@ -0,0 +1 @@ +export { BearerAuthProvider } from "./BearerAuthProvider.js"; diff --git a/src/management/core/auth/AuthProvider.ts b/src/management/core/auth/AuthProvider.ts index 86f670a857..895a50ff30 100644 --- a/src/management/core/auth/AuthProvider.ts +++ b/src/management/core/auth/AuthProvider.ts @@ -1,5 +1,6 @@ +import type { EndpointMetadata } from "../fetcher/EndpointMetadata.js"; import type { AuthRequest } from "./AuthRequest.js"; export interface AuthProvider { - getAuthRequest(): Promise; + getAuthRequest(arg?: { endpointMetadata?: EndpointMetadata }): Promise; } diff --git a/src/management/core/auth/BearerToken.ts b/src/management/core/auth/BearerToken.ts index fe987fc9c4..c44a06c38f 100644 --- a/src/management/core/auth/BearerToken.ts +++ b/src/management/core/auth/BearerToken.ts @@ -2,13 +2,18 @@ export type BearerToken = string; const BEARER_AUTH_HEADER_PREFIX = /^Bearer /i; -export const BearerToken = { - toAuthorizationHeader: (token: BearerToken | undefined): string | undefined => { - if (token == null) { - return undefined; - } - return `Bearer ${token}`; - }, +function toAuthorizationHeader(token: string | undefined): string | undefined { + if (token == null) { + return undefined; + } + return `Bearer ${token}`; +} + +export const BearerToken: { + toAuthorizationHeader: typeof toAuthorizationHeader; + fromAuthorizationHeader: (header: string) => BearerToken; +} = { + toAuthorizationHeader: toAuthorizationHeader, fromAuthorizationHeader: (header: string): BearerToken => { return header.replace(BEARER_AUTH_HEADER_PREFIX, "").trim() as BearerToken; }, diff --git a/src/management/core/auth/NoOpAuthProvider.ts b/src/management/core/auth/NoOpAuthProvider.ts new file mode 100644 index 0000000000..5b7acfd2bd --- /dev/null +++ b/src/management/core/auth/NoOpAuthProvider.ts @@ -0,0 +1,8 @@ +import type { AuthProvider } from "./AuthProvider.js"; +import type { AuthRequest } from "./AuthRequest.js"; + +export class NoOpAuthProvider implements AuthProvider { + public getAuthRequest(): Promise { + return Promise.resolve({ headers: {} }); + } +} diff --git a/src/management/core/auth/index.ts b/src/management/core/auth/index.ts index 23d31b07bd..2215b22770 100644 --- a/src/management/core/auth/index.ts +++ b/src/management/core/auth/index.ts @@ -2,3 +2,4 @@ export type { AuthProvider } from "./AuthProvider.js"; export type { AuthRequest } from "./AuthRequest.js"; export { BasicAuth } from "./BasicAuth.js"; export { BearerToken } from "./BearerToken.js"; +export { NoOpAuthProvider } from "./NoOpAuthProvider.js"; diff --git a/src/management/core/exports.ts b/src/management/core/exports.ts index d6a3f3bc75..c21f05694e 100644 --- a/src/management/core/exports.ts +++ b/src/management/core/exports.ts @@ -1,2 +1,3 @@ -export * from "./pagination/exports.js"; export * from "./file/exports.js"; +export * from "./logging/exports.js"; +export * from "./pagination/exports.js"; diff --git a/src/management/core/fetcher/BinaryResponse.ts b/src/management/core/fetcher/BinaryResponse.ts index 4b4d0e891b..bca7f4c779 100644 --- a/src/management/core/fetcher/BinaryResponse.ts +++ b/src/management/core/fetcher/BinaryResponse.ts @@ -1,25 +1,23 @@ -import type { ResponseWithBody } from "./ResponseWithBody.js"; - export type BinaryResponse = { /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/bodyUsed) */ - bodyUsed: boolean; + bodyUsed: Response["bodyUsed"]; /** * Returns a ReadableStream of the response body. * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/body) */ - stream: () => ReadableStream; + stream: () => Response["body"]; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/arrayBuffer) */ - arrayBuffer: () => Promise; + arrayBuffer: () => ReturnType; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/blob) */ - blob: () => Promise; + blob: () => ReturnType; /** * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/bytes) * Some versions of the Fetch API may not support this method. */ - bytes?(): Promise; + bytes?(): ReturnType; }; -export function getBinaryResponse(response: ResponseWithBody): BinaryResponse { +export function getBinaryResponse(response: Response): BinaryResponse { const binaryResponse: BinaryResponse = { get bodyUsed() { return response.bodyUsed; diff --git a/src/management/core/fetcher/EndpointSupplier.ts b/src/management/core/fetcher/EndpointSupplier.ts index 13fe87518a..8079841c40 100644 --- a/src/management/core/fetcher/EndpointSupplier.ts +++ b/src/management/core/fetcher/EndpointSupplier.ts @@ -1,5 +1,5 @@ import type { EndpointMetadata } from "./EndpointMetadata.js"; -import { Supplier } from "./Supplier.js"; +import type { Supplier } from "./Supplier.js"; type EndpointSupplierFn = (arg: { endpointMetadata: EndpointMetadata }) => T | Promise; export type EndpointSupplier = Supplier | EndpointSupplierFn; diff --git a/src/management/core/fetcher/Fetcher.ts b/src/management/core/fetcher/Fetcher.ts index b9dc3715e5..58bb0e3ef7 100644 --- a/src/management/core/fetcher/Fetcher.ts +++ b/src/management/core/fetcher/Fetcher.ts @@ -1,4 +1,5 @@ import { toJson } from "../json.js"; +import { createLogger, type LogConfig, type Logger } from "../logging/logger.js"; import type { APIResponse } from "./APIResponse.js"; import { createRequestUrl } from "./createRequestUrl.js"; import type { EndpointMetadata } from "./EndpointMetadata.js"; @@ -7,6 +8,7 @@ import { getErrorResponseBody } from "./getErrorResponseBody.js"; import { getFetchFn } from "./getFetchFn.js"; import { getRequestBody } from "./getRequestBody.js"; import { getResponseBody } from "./getResponseBody.js"; +import { Headers } from "./Headers.js"; import { makeRequest } from "./makeRequest.js"; import { abortRawResponse, toRawResponse, unknownRawResponse } from "./RawResponse.js"; import { requestWithRetries } from "./requestWithRetries.js"; @@ -30,9 +32,10 @@ export declare namespace Fetcher { duplex?: "half"; endpointMetadata?: EndpointMetadata; fetchFn?: typeof fetch; + logging?: LogConfig | Logger; } - export type Error = FailedStatusCodeError | NonJsonError | TimeoutError | UnknownError; + export type Error = FailedStatusCodeError | NonJsonError | BodyIsNullError | TimeoutError | UnknownError; export interface FailedStatusCodeError { reason: "status-code"; @@ -46,6 +49,11 @@ export declare namespace Fetcher { rawBody: string; } + export interface BodyIsNullError { + reason: "body-is-null"; + statusCode: number; + } + export interface TimeoutError { reason: "timeout"; } @@ -56,10 +64,164 @@ export declare namespace Fetcher { } } -async function getHeaders(args: Fetcher.Args): Promise> { - const newHeaders: Record = {}; +const SENSITIVE_HEADERS = new Set([ + "authorization", + "www-authenticate", + "x-api-key", + "api-key", + "apikey", + "x-api-token", + "x-auth-token", + "auth-token", + "cookie", + "set-cookie", + "proxy-authorization", + "proxy-authenticate", + "x-csrf-token", + "x-xsrf-token", + "x-session-token", + "x-access-token", +]); + +function redactHeaders(headers: Headers | Record): Record { + const filtered: Record = {}; + for (const [key, value] of headers instanceof Headers ? headers.entries() : Object.entries(headers)) { + if (SENSITIVE_HEADERS.has(key.toLowerCase())) { + filtered[key] = "[REDACTED]"; + } else { + filtered[key] = value; + } + } + return filtered; +} + +const SENSITIVE_QUERY_PARAMS = new Set([ + "api_key", + "api-key", + "apikey", + "token", + "access_token", + "access-token", + "auth_token", + "auth-token", + "password", + "passwd", + "secret", + "api_secret", + "api-secret", + "apisecret", + "key", + "session", + "session_id", + "session-id", +]); + +function redactQueryParameters(queryParameters?: Record): Record | undefined { + if (queryParameters == null) { + return queryParameters; + } + const redacted: Record = {}; + for (const [key, value] of Object.entries(queryParameters)) { + if (SENSITIVE_QUERY_PARAMS.has(key.toLowerCase())) { + redacted[key] = "[REDACTED]"; + } else { + redacted[key] = value; + } + } + return redacted; +} + +function redactUrl(url: string): string { + const protocolIndex = url.indexOf("://"); + if (protocolIndex === -1) return url; + + const afterProtocol = protocolIndex + 3; + + // Find the first delimiter that marks the end of the authority section + const pathStart = url.indexOf("/", afterProtocol); + let queryStart = url.indexOf("?", afterProtocol); + let fragmentStart = url.indexOf("#", afterProtocol); + + const firstDelimiter = Math.min( + pathStart === -1 ? url.length : pathStart, + queryStart === -1 ? url.length : queryStart, + fragmentStart === -1 ? url.length : fragmentStart, + ); + + // Find the LAST @ before the delimiter (handles multiple @ in credentials) + let atIndex = -1; + for (let i = afterProtocol; i < firstDelimiter; i++) { + if (url[i] === "@") { + atIndex = i; + } + } + + if (atIndex !== -1) { + url = `${url.slice(0, afterProtocol)}[REDACTED]@${url.slice(atIndex + 1)}`; + } + + // Recalculate queryStart since url might have changed + queryStart = url.indexOf("?"); + if (queryStart === -1) return url; + + fragmentStart = url.indexOf("#", queryStart); + const queryEnd = fragmentStart !== -1 ? fragmentStart : url.length; + const queryString = url.slice(queryStart + 1, queryEnd); + + if (queryString.length === 0) return url; + + // FAST PATH: Quick check if any sensitive keywords present + // Using indexOf is faster than regex for simple substring matching + const lower = queryString.toLowerCase(); + const hasSensitive = + lower.includes("token") || + lower.includes("key") || + lower.includes("password") || + lower.includes("passwd") || + lower.includes("secret") || + lower.includes("session") || + lower.includes("auth"); + + if (!hasSensitive) { + return url; + } + + // SLOW PATH: Parse and redact + const redactedParams: string[] = []; + const params = queryString.split("&"); + + for (const param of params) { + const equalIndex = param.indexOf("="); + if (equalIndex === -1) { + redactedParams.push(param); + continue; + } + + const key = param.slice(0, equalIndex); + let shouldRedact = SENSITIVE_QUERY_PARAMS.has(key.toLowerCase()); + + if (!shouldRedact && key.includes("%")) { + try { + const decodedKey = decodeURIComponent(key); + shouldRedact = SENSITIVE_QUERY_PARAMS.has(decodedKey.toLowerCase()); + } catch {} + } + + redactedParams.push(shouldRedact ? `${key}=[REDACTED]` : param); + } + + return url.slice(0, queryStart + 1) + redactedParams.join("&") + url.slice(queryEnd); +} + +async function getHeaders(args: Fetcher.Args): Promise { + const newHeaders: Headers = new Headers(); + + newHeaders.set( + "Accept", + args.responseType === "json" ? "application/json" : args.responseType === "text" ? "text/plain" : "*/*", + ); if (args.body !== undefined && args.contentType != null) { - newHeaders["Content-Type"] = args.contentType; + newHeaders.set("Content-Type", args.contentType); } if (args.headers == null) { @@ -69,13 +231,13 @@ async function getHeaders(args: Fetcher.Args): Promise> { for (const [key, value] of Object.entries(args.headers)) { const result = await EndpointSupplier.get(value, { endpointMetadata: args.endpointMetadata ?? {} }); if (typeof result === "string") { - newHeaders[key] = result; + newHeaders.set(key, result); continue; } if (result == null) { continue; } - newHeaders[key] = `${result}`; + newHeaders.set(key, `${result}`); } return newHeaders; } @@ -87,6 +249,19 @@ export async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise= 200 && response.status < 400) { + if (logger.isDebug()) { + const metadata = { + method: args.method, + url: redactUrl(url), + statusCode: response.status, + responseHeaders: redactHeaders(response.headers), + }; + logger.debug("HTTP request succeeded", metadata); + } + const body = await getResponseBody(response, args.responseType); return { ok: true, - body: (await getResponseBody(response, args.responseType)) as R, + body: body as R, headers: response.headers, rawResponse: toRawResponse(response), }; } else { + if (logger.isError()) { + const metadata = { + method: args.method, + url: redactUrl(url), + statusCode: response.status, + responseHeaders: redactHeaders(Object.fromEntries(response.headers.entries())), + }; + logger.error("HTTP request failed with error status", metadata); + } return { ok: false, error: { @@ -124,7 +318,14 @@ export async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise; -}; - -export function isResponseWithBody(response: Response): response is ResponseWithBody { - return (response as ResponseWithBody).body != null; -} diff --git a/src/management/core/fetcher/getErrorResponseBody.ts b/src/management/core/fetcher/getErrorResponseBody.ts index 450424bd64..7cf4e623c2 100644 --- a/src/management/core/fetcher/getErrorResponseBody.ts +++ b/src/management/core/fetcher/getErrorResponseBody.ts @@ -16,9 +16,10 @@ export async function getErrorResponseBody(response: Response): Promise case "application/ld+json": case "application/problem+json": case "application/vnd.api+json": - case "text/json": + case "text/json": { const text = await response.text(); return text.length > 0 ? fromJson(text) : undefined; + } default: if (contentType.startsWith("application/vnd.") && contentType.endsWith("+json")) { const text = await response.text(); diff --git a/src/management/core/fetcher/getResponseBody.ts b/src/management/core/fetcher/getResponseBody.ts index 7ca8b3d2da..708d55728f 100644 --- a/src/management/core/fetcher/getResponseBody.ts +++ b/src/management/core/fetcher/getResponseBody.ts @@ -1,11 +1,7 @@ -import { getBinaryResponse } from "./BinaryResponse.js"; -import { isResponseWithBody } from "./ResponseWithBody.js"; import { fromJson } from "../json.js"; +import { getBinaryResponse } from "./BinaryResponse.js"; export async function getResponseBody(response: Response, responseType?: string): Promise { - if (!isResponseWithBody(response)) { - return undefined; - } switch (responseType) { case "binary-response": return getBinaryResponse(response); @@ -14,8 +10,27 @@ export async function getResponseBody(response: Response, responseType?: string) case "arrayBuffer": return await response.arrayBuffer(); case "sse": + if (response.body == null) { + return { + ok: false, + error: { + reason: "body-is-null", + statusCode: response.status, + }, + }; + } return response.body; case "streaming": + if (response.body == null) { + return { + ok: false, + error: { + reason: "body-is-null", + statusCode: response.status, + }, + }; + } + return response.body; case "text": @@ -26,9 +41,9 @@ export async function getResponseBody(response: Response, responseType?: string) const text = await response.text(); if (text.length > 0) { try { - let responseBody = fromJson(text); + const responseBody = fromJson(text); return responseBody; - } catch (err) { + } catch (_err) { return { ok: false, error: { diff --git a/src/management/core/fetcher/makeRequest.ts b/src/management/core/fetcher/makeRequest.ts index 1a5ffd3c00..921565eb00 100644 --- a/src/management/core/fetcher/makeRequest.ts +++ b/src/management/core/fetcher/makeRequest.ts @@ -4,7 +4,7 @@ export const makeRequest = async ( fetchFn: (url: string, init: RequestInit) => Promise, url: string, method: string, - headers: Record, + headers: Headers | Record, requestBody: BodyInit | undefined, timeoutMs?: number, abortSignal?: AbortSignal, @@ -13,19 +13,17 @@ export const makeRequest = async ( ): Promise => { const signals: AbortSignal[] = []; - // Add timeout signal - let timeoutAbortId: NodeJS.Timeout | undefined = undefined; + let timeoutAbortId: ReturnType | undefined; if (timeoutMs != null) { const { signal, abortId } = getTimeoutSignal(timeoutMs); timeoutAbortId = abortId; signals.push(signal); } - // Add arbitrary signal if (abortSignal != null) { signals.push(abortSignal); } - let newSignals = anySignal(signals); + const newSignals = anySignal(signals); const response = await fetchFn(url, { method: method, headers, diff --git a/src/management/core/fetcher/requestWithRetries.ts b/src/management/core/fetcher/requestWithRetries.ts index 560432ef2f..1f689688c4 100644 --- a/src/management/core/fetcher/requestWithRetries.ts +++ b/src/management/core/fetcher/requestWithRetries.ts @@ -4,30 +4,25 @@ const DEFAULT_MAX_RETRIES = 2; const JITTER_FACTOR = 0.2; // 20% random jitter function addPositiveJitter(delay: number): number { - // Generate a random value between 0 and +JITTER_FACTOR const jitterMultiplier = 1 + Math.random() * JITTER_FACTOR; return delay * jitterMultiplier; } function addSymmetricJitter(delay: number): number { - // Generate a random value in a JITTER_FACTOR-sized percentage range around delay const jitterMultiplier = 1 + (Math.random() - 0.5) * JITTER_FACTOR; return delay * jitterMultiplier; } function getRetryDelayFromHeaders(response: Response, retryAttempt: number): number { - // Check for Retry-After header first (RFC 7231), with no jitter const retryAfter = response.headers.get("Retry-After"); if (retryAfter) { - // Parse as number of seconds... const retryAfterSeconds = parseInt(retryAfter, 10); - if (!isNaN(retryAfterSeconds) && retryAfterSeconds > 0) { + if (!Number.isNaN(retryAfterSeconds) && retryAfterSeconds > 0) { return Math.min(retryAfterSeconds * 1000, MAX_RETRY_DELAY); } - // ...or as an HTTP date; both are valid const retryAfterDate = new Date(retryAfter); - if (!isNaN(retryAfterDate.getTime())) { + if (!Number.isNaN(retryAfterDate.getTime())) { const delay = retryAfterDate.getTime() - Date.now(); if (delay > 0) { return Math.min(Math.max(delay, 0), MAX_RETRY_DELAY); @@ -35,12 +30,10 @@ function getRetryDelayFromHeaders(response: Response, retryAttempt: number): num } } - // Then check for industry-standard X-RateLimit-Reset header, with positive jitter const rateLimitReset = response.headers.get("X-RateLimit-Reset"); if (rateLimitReset) { const resetTime = parseInt(rateLimitReset, 10); - if (!isNaN(resetTime)) { - // Assume Unix timestamp in epoch seconds + if (!Number.isNaN(resetTime)) { const delay = resetTime * 1000 - Date.now(); if (delay > 0) { return addPositiveJitter(Math.min(delay, MAX_RETRY_DELAY)); @@ -48,8 +41,7 @@ function getRetryDelayFromHeaders(response: Response, retryAttempt: number): num } } - // Fall back to exponential backoff, with symmetric jitter - return addSymmetricJitter(Math.min(INITIAL_RETRY_DELAY * Math.pow(2, retryAttempt), MAX_RETRY_DELAY)); + return addSymmetricJitter(Math.min(INITIAL_RETRY_DELAY * 2 ** retryAttempt, MAX_RETRY_DELAY)); } export async function requestWithRetries( @@ -60,7 +52,6 @@ export async function requestWithRetries( for (let i = 0; i < maxRetries; ++i) { if ([408, 429].includes(response.status) || response.status >= 500) { - // Get delay with appropriate jitter applied const delay = getRetryDelayFromHeaders(response, i); await new Promise((resolve) => setTimeout(resolve, delay)); diff --git a/src/management/core/fetcher/signals.ts b/src/management/core/fetcher/signals.ts index a8d32a2e85..7bd3757ec3 100644 --- a/src/management/core/fetcher/signals.ts +++ b/src/management/core/fetcher/signals.ts @@ -1,34 +1,22 @@ const TIMEOUT = "timeout"; -export function getTimeoutSignal(timeoutMs: number): { signal: AbortSignal; abortId: NodeJS.Timeout } { +export function getTimeoutSignal(timeoutMs: number): { signal: AbortSignal; abortId: ReturnType } { const controller = new AbortController(); const abortId = setTimeout(() => controller.abort(TIMEOUT), timeoutMs); return { signal: controller.signal, abortId }; } -/** - * Returns an abort signal that is getting aborted when - * at least one of the specified abort signals is aborted. - * - * Requires at least node.js 18. - */ export function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal { - // Allowing signals to be passed either as array - // of signals or as multiple arguments. const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args) as AbortSignal[]; const controller = new AbortController(); for (const signal of signals) { if (signal.aborted) { - // Exiting early if one of the signals - // is already aborted. controller.abort((signal as any)?.reason); break; } - // Listening for signals and removing the listeners - // when at least one symbol is aborted. signal.addEventListener("abort", () => controller.abort((signal as any)?.reason), { signal: controller.signal, }); diff --git a/src/management/core/file/file.ts b/src/management/core/file/file.ts index 9d02c4aa59..0bacc48410 100644 --- a/src/management/core/file/file.ts +++ b/src/management/core/file/file.ts @@ -102,7 +102,7 @@ async function tryGetFileSizeFromPath(path: string): Promise } const fileStat = await fs.promises.stat(path); return fileStat.size; - } catch (fallbackError) { + } catch (_fallbackError) { return undefined; } } diff --git a/src/management/core/form-data-utils/FormDataWrapper.ts b/src/management/core/form-data-utils/FormDataWrapper.ts index 4309f7a346..bea0cf82b9 100644 --- a/src/management/core/form-data-utils/FormDataWrapper.ts +++ b/src/management/core/form-data-utils/FormDataWrapper.ts @@ -1,6 +1,6 @@ +import { toMultipartDataPart, type Uploadable } from "../../core/file/index.js"; import { toJson } from "../../core/json.js"; import { RUNTIME } from "../runtime/index.js"; -import { toMultipartDataPart, type Uploadable } from "../../core/file/index.js"; interface FormDataRequest { body: Body; @@ -102,7 +102,7 @@ async function streamToBuffer(stream: unknown): Promise { } throw new Error( - "Unsupported stream type: " + typeof stream + ". Expected Node.js Readable stream or Web ReadableStream.", + `Unsupported stream type: ${typeof stream}. Expected Node.js Readable stream or Web ReadableStream.`, ); } diff --git a/src/management/core/index.ts b/src/management/core/index.ts index 6cf9ad3bf9..7b3d0dd97e 100644 --- a/src/management/core/index.ts +++ b/src/management/core/index.ts @@ -1,9 +1,10 @@ +export * from "./auth/index.js"; +export * from "./base64.js"; export * from "./fetcher/index.js"; +export * as file from "./file/index.js"; +export * from "./form-data-utils/index.js"; +export * as logging from "./logging/index.js"; +export * from "./pagination/index.js"; export * from "./runtime/index.js"; export * as url from "./url/index.js"; -export * from "./auth/index.js"; -export * from "./base64.js"; export * from "./utils/index.js"; -export * from "./pagination/index.js"; -export * from "./form-data-utils/index.js"; -export * as file from "./file/index.js"; diff --git a/src/management/core/logging/exports.ts b/src/management/core/logging/exports.ts new file mode 100644 index 0000000000..88f6c00db0 --- /dev/null +++ b/src/management/core/logging/exports.ts @@ -0,0 +1,19 @@ +import * as logger from "./logger.js"; + +export namespace logging { + /** + * Configuration for logger instances. + */ + export type LogConfig = logger.LogConfig; + export type LogLevel = logger.LogLevel; + export const LogLevel: typeof logger.LogLevel = logger.LogLevel; + export type ILogger = logger.ILogger; + /** + * Console logger implementation that outputs to the console. + */ + export type ConsoleLogger = logger.ConsoleLogger; + /** + * Console logger implementation that outputs to the console. + */ + export const ConsoleLogger: typeof logger.ConsoleLogger = logger.ConsoleLogger; +} diff --git a/src/management/core/logging/index.ts b/src/management/core/logging/index.ts new file mode 100644 index 0000000000..d81cc32c40 --- /dev/null +++ b/src/management/core/logging/index.ts @@ -0,0 +1 @@ +export * from "./logger.js"; diff --git a/src/management/core/logging/logger.ts b/src/management/core/logging/logger.ts new file mode 100644 index 0000000000..a3f3673cda --- /dev/null +++ b/src/management/core/logging/logger.ts @@ -0,0 +1,203 @@ +export const LogLevel = { + Debug: "debug", + Info: "info", + Warn: "warn", + Error: "error", +} as const; +export type LogLevel = (typeof LogLevel)[keyof typeof LogLevel]; +const logLevelMap: Record = { + [LogLevel.Debug]: 1, + [LogLevel.Info]: 2, + [LogLevel.Warn]: 3, + [LogLevel.Error]: 4, +}; + +export interface ILogger { + /** + * Logs a debug message. + * @param message - The message to log + * @param args - Additional arguments to log + */ + debug(message: string, ...args: unknown[]): void; + /** + * Logs an info message. + * @param message - The message to log + * @param args - Additional arguments to log + */ + info(message: string, ...args: unknown[]): void; + /** + * Logs a warning message. + * @param message - The message to log + * @param args - Additional arguments to log + */ + warn(message: string, ...args: unknown[]): void; + /** + * Logs an error message. + * @param message - The message to log + * @param args - Additional arguments to log + */ + error(message: string, ...args: unknown[]): void; +} + +/** + * Configuration for logger initialization. + */ +export interface LogConfig { + /** + * Minimum log level to output. + * @default LogLevel.Info + */ + level?: LogLevel; + /** + * Logger implementation to use. + * @default new ConsoleLogger() + */ + logger?: ILogger; + /** + * Whether logging should be silenced. + * @default true + */ + silent?: boolean; +} + +/** + * Default console-based logger implementation. + */ +export class ConsoleLogger implements ILogger { + debug(message: string, ...args: unknown[]): void { + console.debug(message, ...args); + } + info(message: string, ...args: unknown[]): void { + console.info(message, ...args); + } + warn(message: string, ...args: unknown[]): void { + console.warn(message, ...args); + } + error(message: string, ...args: unknown[]): void { + console.error(message, ...args); + } +} + +/** + * Logger class that provides level-based logging functionality. + */ +export class Logger { + private readonly level: number; + private readonly logger: ILogger; + private readonly silent: boolean; + + /** + * Creates a new logger instance. + * @param config - Logger configuration + */ + constructor(config: Required) { + this.level = logLevelMap[config.level]; + this.logger = config.logger; + this.silent = config.silent; + } + + /** + * Checks if a log level should be output based on configuration. + * @param level - The log level to check + * @returns True if the level should be logged + */ + public shouldLog(level: LogLevel): boolean { + return !this.silent && this.level <= logLevelMap[level]; + } + + /** + * Checks if debug logging is enabled. + * @returns True if debug logs should be output + */ + public isDebug(): boolean { + return this.shouldLog(LogLevel.Debug); + } + + /** + * Logs a debug message if debug logging is enabled. + * @param message - The message to log + * @param args - Additional arguments to log + */ + public debug(message: string, ...args: unknown[]): void { + if (this.isDebug()) { + this.logger.debug(message, ...args); + } + } + + /** + * Checks if info logging is enabled. + * @returns True if info logs should be output + */ + public isInfo(): boolean { + return this.shouldLog(LogLevel.Info); + } + + /** + * Logs an info message if info logging is enabled. + * @param message - The message to log + * @param args - Additional arguments to log + */ + public info(message: string, ...args: unknown[]): void { + if (this.isInfo()) { + this.logger.info(message, ...args); + } + } + + /** + * Checks if warning logging is enabled. + * @returns True if warning logs should be output + */ + public isWarn(): boolean { + return this.shouldLog(LogLevel.Warn); + } + + /** + * Logs a warning message if warning logging is enabled. + * @param message - The message to log + * @param args - Additional arguments to log + */ + public warn(message: string, ...args: unknown[]): void { + if (this.isWarn()) { + this.logger.warn(message, ...args); + } + } + + /** + * Checks if error logging is enabled. + * @returns True if error logs should be output + */ + public isError(): boolean { + return this.shouldLog(LogLevel.Error); + } + + /** + * Logs an error message if error logging is enabled. + * @param message - The message to log + * @param args - Additional arguments to log + */ + public error(message: string, ...args: unknown[]): void { + if (this.isError()) { + this.logger.error(message, ...args); + } + } +} + +export function createLogger(config?: LogConfig | Logger): Logger { + if (config == null) { + return defaultLogger; + } + if (config instanceof Logger) { + return config; + } + config = config ?? {}; + config.level ??= LogLevel.Info; + config.logger ??= new ConsoleLogger(); + config.silent ??= true; + return new Logger(config as Required); +} + +const defaultLogger: Logger = new Logger({ + level: LogLevel.Info, + logger: new ConsoleLogger(), + silent: true, +}); diff --git a/src/management/core/pagination/Page.ts b/src/management/core/pagination/Page.ts index d5e0a771e1..6621a6f11f 100644 --- a/src/management/core/pagination/Page.ts +++ b/src/management/core/pagination/Page.ts @@ -1,4 +1,4 @@ -import { HttpResponsePromise, type RawResponse } from "../fetcher/index.js"; +import type { HttpResponsePromise, RawResponse } from "../fetcher/index.js"; /** * A page of results from a paginated API. diff --git a/src/management/core/runtime/runtime.ts b/src/management/core/runtime/runtime.ts index 08fd2563f9..56ebbb87c4 100644 --- a/src/management/core/runtime/runtime.ts +++ b/src/management/core/runtime/runtime.ts @@ -99,6 +99,18 @@ function evaluateRuntime(): Runtime { }; } + /** + * A constant that indicates whether the environment the code is running is in React-Native. + * This check should come before Node.js detection since React Native may have a process polyfill. + * https://github.com/facebook/react-native/blob/main/packages/react-native/Libraries/Core/setUpNavigator.js + */ + const isReactNative = typeof navigator !== "undefined" && navigator?.product === "ReactNative"; + if (isReactNative) { + return { + type: "react-native", + }; + } + /** * A constant that indicates whether the environment the code is running is Node.JS. */ @@ -116,17 +128,6 @@ function evaluateRuntime(): Runtime { }; } - /** - * A constant that indicates whether the environment the code is running is in React-Native. - * https://github.com/facebook/react-native/blob/main/packages/react-native/Libraries/Core/setUpNavigator.js - */ - const isReactNative = typeof navigator !== "undefined" && navigator?.product === "ReactNative"; - if (isReactNative) { - return { - type: "react-native", - }; - } - return { type: "unknown", }; diff --git a/src/management/core/url/join.ts b/src/management/core/url/join.ts index 200426be8c..7ca7daef09 100644 --- a/src/management/core/url/join.ts +++ b/src/management/core/url/join.ts @@ -12,12 +12,11 @@ export function join(base: string, ...segments: string[]): string { try { url = new URL(base); } catch { - // Fallback to path joining if URL is malformed return joinPath(base, ...segments); } const lastSegment = segments[segments.length - 1]; - const shouldPreserveTrailingSlash = lastSegment && lastSegment.endsWith("/"); + const shouldPreserveTrailingSlash = lastSegment?.endsWith("/"); for (const segment of segments) { const cleanSegment = trimSlashes(segment); @@ -44,7 +43,7 @@ function joinPath(base: string, ...segments: string[]): string { let result = base; const lastSegment = segments[segments.length - 1]; - const shouldPreserveTrailingSlash = lastSegment && lastSegment.endsWith("/"); + const shouldPreserveTrailingSlash = lastSegment?.endsWith("/"); for (const segment of segments) { const cleanSegment = trimSlashes(segment); @@ -64,7 +63,7 @@ function joinPathSegments(left: string, right: string): string { if (left.endsWith("/")) { return left + right; } - return left + "/" + right; + return `${left}/${right}`; } function trimSlashes(str: string): string { diff --git a/src/management/errors/ManagementError.ts b/src/management/errors/ManagementError.ts index 05fd573da4..80434b3284 100644 --- a/src/management/errors/ManagementError.ts +++ b/src/management/errors/ManagementError.ts @@ -1,6 +1,6 @@ // This file was auto-generated by Fern from our API Definition. -import * as core from "../core/index.js"; +import type * as core from "../core/index.js"; import { toJson } from "../core/json.js"; export class ManagementError extends Error { @@ -36,7 +36,7 @@ function buildMessage({ statusCode: number | undefined; body: unknown | undefined; }): string { - let lines: string[] = []; + const lines: string[] = []; if (message != null) { lines.push(message); } diff --git a/src/management/errors/handleNonStatusCodeError.ts b/src/management/errors/handleNonStatusCodeError.ts new file mode 100644 index 0000000000..8c2c580621 --- /dev/null +++ b/src/management/errors/handleNonStatusCodeError.ts @@ -0,0 +1,37 @@ +// This file was auto-generated by Fern from our API Definition. + +import type * as core from "../core/index.js"; +import * as errors from "./index.js"; + +export function handleNonStatusCodeError( + error: core.Fetcher.Error, + rawResponse: core.RawResponse, + method: string, + path: string, +): never { + switch (error.reason) { + case "non-json": + throw new errors.ManagementError({ + statusCode: error.statusCode, + body: error.rawBody, + rawResponse: rawResponse, + }); + case "body-is-null": + throw new errors.ManagementError({ + statusCode: error.statusCode, + rawResponse: rawResponse, + }); + case "timeout": + throw new errors.ManagementTimeoutError(`Timeout exceeded when calling ${method} ${path}.`); + case "unknown": + throw new errors.ManagementError({ + message: error.errorMessage, + rawResponse: rawResponse, + }); + default: + throw new errors.ManagementError({ + message: "Unknown error", + rawResponse: rawResponse, + }); + } +} diff --git a/src/management/tests/mock-server/MockServer.ts b/src/management/tests/mock-server/MockServer.ts index 6e258f1724..954872157d 100644 --- a/src/management/tests/mock-server/MockServer.ts +++ b/src/management/tests/mock-server/MockServer.ts @@ -1,4 +1,4 @@ -import { RequestHandlerOptions } from "msw"; +import type { RequestHandlerOptions } from "msw"; import type { SetupServer } from "msw/node"; import { mockEndpointBuilder } from "./mockEndpointBuilder"; @@ -19,7 +19,7 @@ export class MockServer { public mockEndpoint(options?: RequestHandlerOptions): ReturnType { const builder = mockEndpointBuilder({ - once: options?.once, + once: options?.once ?? true, onBuild: (handler) => { this.server.use(handler); }, diff --git a/src/management/tests/mock-server/MockServerPool.ts b/src/management/tests/mock-server/MockServerPool.ts index 22e26c6d71..33b57f0c91 100644 --- a/src/management/tests/mock-server/MockServerPool.ts +++ b/src/management/tests/mock-server/MockServerPool.ts @@ -22,7 +22,7 @@ async function formatHttpRequest(request: Request, id?: string): Promise } else if (clone.body) { body = await clone.text(); } - } catch (e) { + } catch (_e) { body = "(unable to parse body)"; } @@ -48,7 +48,7 @@ async function formatHttpResponse(response: Response, id?: string): Promise { const formattedRequest = await formatHttpRequest(request, requestId); - console.debug("request:start\n" + formattedRequest); + console.debug(`request:start\n${formattedRequest}`); }); mswServer.events.on("request:unhandled", async ({ request, requestId }) => { const formattedRequest = await formatHttpRequest(request, requestId); - console.debug("request:unhandled\n" + formattedRequest); + console.debug(`request:unhandled\n${formattedRequest}`); }); mswServer.events.on("response:mocked", async ({ request, response, requestId }) => { const formattedResponse = await formatHttpResponse(response, requestId); - console.debug("response:mocked\n" + formattedResponse); + console.debug(`response:mocked\n${formattedResponse}`); }); } } diff --git a/src/management/tests/mock-server/mockEndpointBuilder.ts b/src/management/tests/mock-server/mockEndpointBuilder.ts index f3ec9ccdea..fb8389a226 100644 --- a/src/management/tests/mock-server/mockEndpointBuilder.ts +++ b/src/management/tests/mock-server/mockEndpointBuilder.ts @@ -1,4 +1,4 @@ -import { DefaultBodyType, HttpHandler, HttpResponse, HttpResponseResolver, http } from "msw"; +import { type DefaultBodyType, type HttpHandler, HttpResponse, type HttpResponseResolver, http } from "msw"; import { url } from "../../core"; import { toJson } from "../../core/json"; diff --git a/src/management/tests/mock-server/withFormUrlEncoded.ts b/src/management/tests/mock-server/withFormUrlEncoded.ts index 75f4bf6f1d..a5467577c2 100644 --- a/src/management/tests/mock-server/withFormUrlEncoded.ts +++ b/src/management/tests/mock-server/withFormUrlEncoded.ts @@ -1,4 +1,4 @@ -import { HttpResponseResolver, passthrough } from "msw"; +import { type HttpResponseResolver, passthrough } from "msw"; import { toJson } from "../../core/json"; diff --git a/src/management/tests/mock-server/withHeaders.ts b/src/management/tests/mock-server/withHeaders.ts index e77c837d9b..6599d2b4a9 100644 --- a/src/management/tests/mock-server/withHeaders.ts +++ b/src/management/tests/mock-server/withHeaders.ts @@ -1,4 +1,4 @@ -import { HttpResponseResolver, passthrough } from "msw"; +import { type HttpResponseResolver, passthrough } from "msw"; /** * Creates a request matcher that validates if request headers match specified criteria diff --git a/src/management/tests/mock-server/withJson.ts b/src/management/tests/mock-server/withJson.ts index d687b23645..e8b30a0224 100644 --- a/src/management/tests/mock-server/withJson.ts +++ b/src/management/tests/mock-server/withJson.ts @@ -1,4 +1,4 @@ -import { HttpResponseResolver, passthrough } from "msw"; +import { type HttpResponseResolver, passthrough } from "msw"; import { fromJson, toJson } from "../../core/json"; @@ -67,7 +67,7 @@ function findMismatches(actual: any, expected: any): Record 0) { for (const [mismatchKey, mismatchValue] of Object.entries(itemMismatches)) { - arrayMismatches[`[${i}]${mismatchKey === "value" ? "" : "." + mismatchKey}`] = mismatchValue; + arrayMismatches[`[${i}]${mismatchKey === "value" ? "" : `.${mismatchKey}`}`] = mismatchValue; } } } @@ -99,7 +99,7 @@ function findMismatches(actual: any, expected: any): Record 0) { for (const [nestedKey, nestedValue] of Object.entries(nestedMismatches)) { - mismatches[`${key}${nestedKey === "value" ? "" : "." + nestedKey}`] = nestedValue; + mismatches[`${key}${nestedKey === "value" ? "" : `.${nestedKey}`}`] = nestedValue; } } } else if (actual[key] !== expected[key]) { diff --git a/src/management/tests/setup.ts b/src/management/tests/setup.ts new file mode 100644 index 0000000000..ef8d53f4cd --- /dev/null +++ b/src/management/tests/setup.ts @@ -0,0 +1,87 @@ +expect.extend({ + toContainHeaders(this: jest.MatcherContext, actual: unknown, expectedHeaders: Record) { + const isHeaders = actual instanceof Headers; + const isPlainObject = typeof actual === "object" && actual !== null && !Array.isArray(actual); + + if (!isHeaders && !isPlainObject) { + throw new TypeError("Received value must be an instance of Headers or a plain object!"); + } + + if (typeof expectedHeaders !== "object" || expectedHeaders === null || Array.isArray(expectedHeaders)) { + throw new TypeError("Expected headers must be a plain object!"); + } + + const missingHeaders: string[] = []; + const mismatchedHeaders: Array<{ key: string; expected: string; actual: string | null }> = []; + + // Create a map of lowercase header keys to actual values for case-insensitive lookup + const actualHeadersMap = new Map(); + + if (isHeaders) { + for (const [key, value] of (actual as Headers).entries()) { + actualHeadersMap.set(key.toLowerCase(), value); + } + } else { + for (const [key, value] of Object.entries(actual as Record)) { + actualHeadersMap.set(key.toLowerCase(), value); + } + } + + for (const [key, value] of Object.entries(expectedHeaders)) { + const lowerKey = key.toLowerCase(); + const actualValue = actualHeadersMap.get(lowerKey) ?? null; + + if (actualValue === null || actualValue === undefined) { + missingHeaders.push(key); + } else if (actualValue !== value) { + mismatchedHeaders.push({ key, expected: value, actual: actualValue }); + } + } + + const pass = missingHeaders.length === 0 && mismatchedHeaders.length === 0; + const actualType = isHeaders ? "Headers" : "object"; + + if (pass) { + return { + message: () => `expected ${actualType} not to contain ${this.utils.printExpected(expectedHeaders)}`, + pass: true, + }; + } else { + const messages: string[] = []; + + if (missingHeaders.length > 0) { + messages.push(`Missing headers: ${this.utils.printExpected(missingHeaders.join(", "))}`); + } + + if (mismatchedHeaders.length > 0) { + const mismatches = mismatchedHeaders.map( + ({ key, expected, actual }) => + `${key}: expected ${this.utils.printExpected(expected)} but got ${this.utils.printReceived(actual)}`, + ); + messages.push(mismatches.join("\n")); + } + + return { + message: () => + `expected ${actualType} to contain ${this.utils.printExpected(expectedHeaders)}\n\n${messages.join("\n")}`, + pass: false, + }; + } + }, +}); + +declare global { + namespace jest { + interface Matchers { + toContainHeaders(expectedHeaders: Record): R; + } + interface Expect { + toContainHeaders(expectedHeaders: Record): any; + } + interface InverseAsymmetricMatchers { + toContainHeaders(expectedHeaders: Record): any; + } + } +} + +export {}; diff --git a/src/management/tests/unit/auth/BasicAuth.test.ts b/src/management/tests/unit/auth/BasicAuth.test.ts index 0539f0d9cc..c048dbfa62 100644 --- a/src/management/tests/unit/auth/BasicAuth.test.ts +++ b/src/management/tests/unit/auth/BasicAuth.test.ts @@ -1,58 +1,92 @@ import { BasicAuth } from "../../../../../src/management/core/auth/BasicAuth"; describe("BasicAuth", () => { - describe("toAuthorizationHeader", () => { - it("correctly converts to header", () => { - expect( - BasicAuth.toAuthorizationHeader({ - username: "username", - password: "password", - }), - ).toBe("Basic dXNlcm5hbWU6cGFzc3dvcmQ="); - }); - }); - describe("fromAuthorizationHeader", () => { - it("correctly parses header", () => { - expect(BasicAuth.fromAuthorizationHeader("Basic dXNlcm5hbWU6cGFzc3dvcmQ=")).toEqual({ - username: "username", - password: "password", - }); - }); + interface ToHeaderTestCase { + description: string; + input: { username: string; password: string }; + expected: string; + } - it("handles password with colons", () => { - expect(BasicAuth.fromAuthorizationHeader("Basic dXNlcjpwYXNzOndvcmQ=")).toEqual({ - username: "user", - password: "pass:word", - }); - }); + interface FromHeaderTestCase { + description: string; + input: string; + expected: { username: string; password: string }; + } - it("handles empty username and password (just colon)", () => { - expect(BasicAuth.fromAuthorizationHeader("Basic Og==")).toEqual({ - username: "", - password: "", - }); - }); + interface ErrorTestCase { + description: string; + input: string; + expectedError: string; + } + + describe("toAuthorizationHeader", () => { + const toHeaderTests: ToHeaderTestCase[] = [ + { + description: "correctly converts to header", + input: { username: "username", password: "password" }, + expected: "Basic dXNlcm5hbWU6cGFzc3dvcmQ=", + }, + ]; - it("handles empty username", () => { - expect(BasicAuth.fromAuthorizationHeader("Basic OnBhc3N3b3Jk")).toEqual({ - username: "", - password: "password", + toHeaderTests.forEach(({ description, input, expected }) => { + it(description, () => { + expect(BasicAuth.toAuthorizationHeader(input)).toBe(expected); }); }); + }); - it("handles empty password", () => { - expect(BasicAuth.fromAuthorizationHeader("Basic dXNlcm5hbWU6")).toEqual({ - username: "username", - password: "", + describe("fromAuthorizationHeader", () => { + const fromHeaderTests: FromHeaderTestCase[] = [ + { + description: "correctly parses header", + input: "Basic dXNlcm5hbWU6cGFzc3dvcmQ=", + expected: { username: "username", password: "password" }, + }, + { + description: "handles password with colons", + input: "Basic dXNlcjpwYXNzOndvcmQ=", + expected: { username: "user", password: "pass:word" }, + }, + { + description: "handles empty username and password (just colon)", + input: "Basic Og==", + expected: { username: "", password: "" }, + }, + { + description: "handles empty username", + input: "Basic OnBhc3N3b3Jk", + expected: { username: "", password: "password" }, + }, + { + description: "handles empty password", + input: "Basic dXNlcm5hbWU6", + expected: { username: "username", password: "" }, + }, + ]; + + fromHeaderTests.forEach(({ description, input, expected }) => { + it(description, () => { + expect(BasicAuth.fromAuthorizationHeader(input)).toEqual(expected); }); }); - it("throws error for completely empty credentials", () => { - expect(() => BasicAuth.fromAuthorizationHeader("Basic ")).toThrow("Invalid basic auth"); - }); + const errorTests: ErrorTestCase[] = [ + { + description: "throws error for completely empty credentials", + input: "Basic ", + expectedError: "Invalid basic auth", + }, + { + description: "throws error for credentials without colon", + input: "Basic dXNlcm5hbWU=", + expectedError: "Invalid basic auth", + }, + ]; - it("throws error for credentials without colon", () => { - expect(() => BasicAuth.fromAuthorizationHeader("Basic dXNlcm5hbWU=")).toThrow("Invalid basic auth"); + errorTests.forEach(({ description, input, expectedError }) => { + it(description, () => { + expect(() => BasicAuth.fromAuthorizationHeader(input)).toThrow(expectedError); + }); }); }); }); diff --git a/src/management/tests/unit/fetcher/Fetcher.test.ts b/src/management/tests/unit/fetcher/Fetcher.test.ts index c0d9c62fc9..451bcce3a2 100644 --- a/src/management/tests/unit/fetcher/Fetcher.test.ts +++ b/src/management/tests/unit/fetcher/Fetcher.test.ts @@ -1,9 +1,8 @@ import fs from "fs"; -import stream from "stream"; import { join } from "path"; - -import { Fetcher, fetcherImpl } from "../../../../../src/management/core/fetcher/Fetcher"; +import stream from "stream"; import type { BinaryResponse } from "../../../../../src/management/core"; +import { type Fetcher, fetcherImpl } from "../../../../../src/management/core/fetcher/Fetcher"; describe("Test fetcherImpl", () => { it("should handle successful request", async () => { @@ -14,6 +13,7 @@ describe("Test fetcherImpl", () => { body: { data: "test" }, contentType: "application/json", requestType: "json", + maxRetries: 0, responseType: "json", }; @@ -34,7 +34,7 @@ describe("Test fetcherImpl", () => { "https://httpbin.org/post", expect.objectContaining({ method: "POST", - headers: expect.objectContaining({ "X-Test": "x-test-header" }), + headers: expect.toContainHeaders({ "X-Test": "x-test-header" }), body: JSON.stringify({ data: "test" }), }), ); @@ -48,6 +48,7 @@ describe("Test fetcherImpl", () => { headers: { "X-Test": "x-test-header" }, contentType: "application/octet-stream", requestType: "bytes", + maxRetries: 0, responseType: "json", body: fs.createReadStream(join(__dirname, "test-file.txt")), }; @@ -65,7 +66,7 @@ describe("Test fetcherImpl", () => { url, expect.objectContaining({ method: "POST", - headers: expect.objectContaining({ "X-Test": "x-test-header" }), + headers: expect.toContainHeaders({ "X-Test": "x-test-header" }), body: expect.any(fs.ReadStream), }), ); @@ -81,6 +82,7 @@ describe("Test fetcherImpl", () => { url, method: "GET", headers: { "X-Test": "x-test-header" }, + maxRetries: 0, responseType: "binary-response", }; @@ -100,7 +102,7 @@ describe("Test fetcherImpl", () => { url, expect.objectContaining({ method: "GET", - headers: expect.objectContaining({ "X-Test": "x-test-header" }), + headers: expect.toContainHeaders({ "X-Test": "x-test-header" }), }), ); expect(result.ok).toBe(true); @@ -126,6 +128,7 @@ describe("Test fetcherImpl", () => { url, method: "GET", headers: { "X-Test": "x-test-header" }, + maxRetries: 0, responseType: "binary-response", }; @@ -145,7 +148,7 @@ describe("Test fetcherImpl", () => { url, expect.objectContaining({ method: "GET", - headers: expect.objectContaining({ "X-Test": "x-test-header" }), + headers: expect.toContainHeaders({ "X-Test": "x-test-header" }), }), ); expect(result.ok).toBe(true); @@ -171,6 +174,7 @@ describe("Test fetcherImpl", () => { url, method: "GET", headers: { "X-Test": "x-test-header" }, + maxRetries: 0, responseType: "binary-response", }; @@ -190,7 +194,7 @@ describe("Test fetcherImpl", () => { url, expect.objectContaining({ method: "GET", - headers: expect.objectContaining({ "X-Test": "x-test-header" }), + headers: expect.toContainHeaders({ "X-Test": "x-test-header" }), }), ); expect(result.ok).toBe(true); @@ -214,6 +218,7 @@ describe("Test fetcherImpl", () => { url, method: "GET", headers: { "X-Test": "x-test-header" }, + maxRetries: 0, responseType: "binary-response", }; @@ -233,7 +238,7 @@ describe("Test fetcherImpl", () => { url, expect.objectContaining({ method: "GET", - headers: expect.objectContaining({ "X-Test": "x-test-header" }), + headers: expect.toContainHeaders({ "X-Test": "x-test-header" }), }), ); expect(result.ok).toBe(true); diff --git a/src/management/tests/unit/fetcher/HttpResponsePromise.test.ts b/src/management/tests/unit/fetcher/HttpResponsePromise.test.ts index 9730ea3550..48fe1a273c 100644 --- a/src/management/tests/unit/fetcher/HttpResponsePromise.test.ts +++ b/src/management/tests/unit/fetcher/HttpResponsePromise.test.ts @@ -1,7 +1,7 @@ import { beforeEach, describe, expect, it, jest } from "@jest/globals"; import { HttpResponsePromise } from "../../../../../src/management/core/fetcher/HttpResponsePromise"; -import { RawResponse, WithRawResponse } from "../../../../../src/management/core/fetcher/RawResponse"; +import type { RawResponse, WithRawResponse } from "../../../../../src/management/core/fetcher/RawResponse"; describe("HttpResponsePromise", () => { const mockRawResponse: RawResponse = { diff --git a/src/management/tests/unit/fetcher/createRequestUrl.test.ts b/src/management/tests/unit/fetcher/createRequestUrl.test.ts index defbb8c77d..a4fa804914 100644 --- a/src/management/tests/unit/fetcher/createRequestUrl.test.ts +++ b/src/management/tests/unit/fetcher/createRequestUrl.test.ts @@ -1,160 +1,163 @@ import { createRequestUrl } from "../../../../../src/management/core/fetcher/createRequestUrl"; describe("Test createRequestUrl", () => { - it("should return the base URL when no query parameters are provided", () => { - const baseUrl = "https://api.example.com"; - expect(createRequestUrl(baseUrl)).toBe(baseUrl); - }); - - it("should append simple query parameters", () => { - const baseUrl = "https://api.example.com"; - const queryParams = { key: "value", another: "param" }; - expect(createRequestUrl(baseUrl, queryParams)).toBe("https://api.example.com?key=value&another=param"); - }); - - it("should handle array query parameters", () => { - const baseUrl = "https://api.example.com"; - const queryParams = { items: ["a", "b", "c"] }; - expect(createRequestUrl(baseUrl, queryParams)).toBe("https://api.example.com?items=a&items=b&items=c"); - }); - - it("should handle object query parameters", () => { - const baseUrl = "https://api.example.com"; - const queryParams = { filter: { name: "John", age: 30 } }; - expect(createRequestUrl(baseUrl, queryParams)).toBe( - "https://api.example.com?filter%5Bname%5D=John&filter%5Bage%5D=30", - ); - }); - - it("should handle mixed types of query parameters", () => { - const baseUrl = "https://api.example.com"; - const queryParams = { - simple: "value", - array: ["x", "y"], - object: { key: "value" }, - }; - expect(createRequestUrl(baseUrl, queryParams)).toBe( - "https://api.example.com?simple=value&array=x&array=y&object%5Bkey%5D=value", - ); - }); - - it("should handle empty query parameters object", () => { - const baseUrl = "https://api.example.com"; - expect(createRequestUrl(baseUrl, {})).toBe(baseUrl); - }); - - it("should encode special characters in query parameters", () => { - const baseUrl = "https://api.example.com"; - const queryParams = { special: "a&b=c d" }; - expect(createRequestUrl(baseUrl, queryParams)).toBe("https://api.example.com?special=a%26b%3Dc%20d"); - }); - - // Additional src/management/tests for edge cases and different value types - it("should handle numeric values", () => { - const baseUrl = "https://api.example.com"; - const queryParams = { count: 42, price: 19.99, active: 1, inactive: 0 }; - expect(createRequestUrl(baseUrl, queryParams)).toBe( - "https://api.example.com?count=42&price=19.99&active=1&inactive=0", - ); - }); - - it("should handle boolean values", () => { - const baseUrl = "https://api.example.com"; - const queryParams = { enabled: true, disabled: false }; - expect(createRequestUrl(baseUrl, queryParams)).toBe("https://api.example.com?enabled=true&disabled=false"); - }); - - it("should handle null and undefined values", () => { - const baseUrl = "https://api.example.com"; - const queryParams = { - valid: "value", - nullValue: null, - undefinedValue: undefined, - emptyString: "", - }; - expect(createRequestUrl(baseUrl, queryParams)).toBe( - "https://api.example.com?valid=value&nullValue=&emptyString=", - ); - }); - - it("should handle deeply nested objects", () => { - const baseUrl = "https://api.example.com"; - const queryParams = { - user: { - profile: { - name: "John", - settings: { theme: "dark" }, + const BASE_URL = "https://api.example.com"; + + interface TestCase { + description: string; + baseUrl: string; + queryParams?: Record; + expected: string; + } + + const testCases: TestCase[] = [ + { + description: "should return the base URL when no query parameters are provided", + baseUrl: BASE_URL, + expected: BASE_URL, + }, + { + description: "should append simple query parameters", + baseUrl: BASE_URL, + queryParams: { key: "value", another: "param" }, + expected: "https://api.example.com?key=value&another=param", + }, + { + description: "should handle array query parameters", + baseUrl: BASE_URL, + queryParams: { items: ["a", "b", "c"] }, + expected: "https://api.example.com?items=a&items=b&items=c", + }, + { + description: "should handle object query parameters", + baseUrl: BASE_URL, + queryParams: { filter: { name: "John", age: 30 } }, + expected: "https://api.example.com?filter%5Bname%5D=John&filter%5Bage%5D=30", + }, + { + description: "should handle mixed types of query parameters", + baseUrl: BASE_URL, + queryParams: { + simple: "value", + array: ["x", "y"], + object: { key: "value" }, + }, + expected: "https://api.example.com?simple=value&array=x&array=y&object%5Bkey%5D=value", + }, + { + description: "should handle empty query parameters object", + baseUrl: BASE_URL, + queryParams: {}, + expected: BASE_URL, + }, + { + description: "should encode special characters in query parameters", + baseUrl: BASE_URL, + queryParams: { special: "a&b=c d" }, + expected: "https://api.example.com?special=a%26b%3Dc%20d", + }, + { + description: "should handle numeric values", + baseUrl: BASE_URL, + queryParams: { count: 42, price: 19.99, active: 1, inactive: 0 }, + expected: "https://api.example.com?count=42&price=19.99&active=1&inactive=0", + }, + { + description: "should handle boolean values", + baseUrl: BASE_URL, + queryParams: { enabled: true, disabled: false }, + expected: "https://api.example.com?enabled=true&disabled=false", + }, + { + description: "should handle null and undefined values", + baseUrl: BASE_URL, + queryParams: { + valid: "value", + nullValue: null, + undefinedValue: undefined, + emptyString: "", + }, + expected: "https://api.example.com?valid=value&nullValue=&emptyString=", + }, + { + description: "should handle deeply nested objects", + baseUrl: BASE_URL, + queryParams: { + user: { + profile: { + name: "John", + settings: { theme: "dark" }, + }, }, }, - }; - expect(createRequestUrl(baseUrl, queryParams)).toBe( - "https://api.example.com?user%5Bprofile%5D%5Bname%5D=John&user%5Bprofile%5D%5Bsettings%5D%5Btheme%5D=dark", - ); - }); - - it("should handle arrays of objects", () => { - const baseUrl = "https://api.example.com"; - const queryParams = { - users: [ - { name: "John", age: 30 }, - { name: "Jane", age: 25 }, - ], - }; - expect(createRequestUrl(baseUrl, queryParams)).toBe( - "https://api.example.com?users%5Bname%5D=John&users%5Bage%5D=30&users%5Bname%5D=Jane&users%5Bage%5D=25", - ); - }); - - it("should handle mixed arrays", () => { - const baseUrl = "https://api.example.com"; - const queryParams = { - mixed: ["string", 42, true, { key: "value" }], - }; - expect(createRequestUrl(baseUrl, queryParams)).toBe( - "https://api.example.com?mixed=string&mixed=42&mixed=true&mixed%5Bkey%5D=value", - ); - }); - - it("should handle empty arrays", () => { - const baseUrl = "https://api.example.com"; - const queryParams = { emptyArray: [] }; - expect(createRequestUrl(baseUrl, queryParams)).toBe(baseUrl); - }); - - it("should handle empty objects", () => { - const baseUrl = "https://api.example.com"; - const queryParams = { emptyObject: {} }; - expect(createRequestUrl(baseUrl, queryParams)).toBe(baseUrl); - }); - - it("should handle special characters in keys", () => { - const baseUrl = "https://api.example.com"; - const queryParams = { "key with spaces": "value", "key[with]brackets": "value" }; - expect(createRequestUrl(baseUrl, queryParams)).toBe( - "https://api.example.com?key%20with%20spaces=value&key%5Bwith%5Dbrackets=value", - ); - }); - - it("should handle URL with existing query parameters", () => { - const baseUrl = "https://api.example.com?existing=param"; - const queryParams = { new: "value" }; - expect(createRequestUrl(baseUrl, queryParams)).toBe("https://api.example.com?existing=param?new=value"); - }); - - it("should handle complex nested structures", () => { - const baseUrl = "https://api.example.com"; - const queryParams = { - filters: { - status: ["active", "pending"], - category: { - type: "electronics", - subcategories: ["phones", "laptops"], + expected: + "https://api.example.com?user%5Bprofile%5D%5Bname%5D=John&user%5Bprofile%5D%5Bsettings%5D%5Btheme%5D=dark", + }, + { + description: "should handle arrays of objects", + baseUrl: BASE_URL, + queryParams: { + users: [ + { name: "John", age: 30 }, + { name: "Jane", age: 25 }, + ], + }, + expected: + "https://api.example.com?users%5Bname%5D=John&users%5Bage%5D=30&users%5Bname%5D=Jane&users%5Bage%5D=25", + }, + { + description: "should handle mixed arrays", + baseUrl: BASE_URL, + queryParams: { + mixed: ["string", 42, true, { key: "value" }], + }, + expected: "https://api.example.com?mixed=string&mixed=42&mixed=true&mixed%5Bkey%5D=value", + }, + { + description: "should handle empty arrays", + baseUrl: BASE_URL, + queryParams: { emptyArray: [] }, + expected: BASE_URL, + }, + { + description: "should handle empty objects", + baseUrl: BASE_URL, + queryParams: { emptyObject: {} }, + expected: BASE_URL, + }, + { + description: "should handle special characters in keys", + baseUrl: BASE_URL, + queryParams: { "key with spaces": "value", "key[with]brackets": "value" }, + expected: "https://api.example.com?key%20with%20spaces=value&key%5Bwith%5Dbrackets=value", + }, + { + description: "should handle URL with existing query parameters", + baseUrl: "https://api.example.com?existing=param", + queryParams: { new: "value" }, + expected: "https://api.example.com?existing=param?new=value", + }, + { + description: "should handle complex nested structures", + baseUrl: BASE_URL, + queryParams: { + filters: { + status: ["active", "pending"], + category: { + type: "electronics", + subcategories: ["phones", "laptops"], + }, }, + sort: { field: "name", direction: "asc" }, }, - sort: { field: "name", direction: "asc" }, - }; - expect(createRequestUrl(baseUrl, queryParams)).toBe( - "https://api.example.com?filters%5Bstatus%5D=active&filters%5Bstatus%5D=pending&filters%5Bcategory%5D%5Btype%5D=electronics&filters%5Bcategory%5D%5Bsubcategories%5D=phones&filters%5Bcategory%5D%5Bsubcategories%5D=laptops&sort%5Bfield%5D=name&sort%5Bdirection%5D=asc", - ); + expected: + "https://api.example.com?filters%5Bstatus%5D=active&filters%5Bstatus%5D=pending&filters%5Bcategory%5D%5Btype%5D=electronics&filters%5Bcategory%5D%5Bsubcategories%5D=phones&filters%5Bcategory%5D%5Bsubcategories%5D=laptops&sort%5Bfield%5D=name&sort%5Bdirection%5D=asc", + }, + ]; + + testCases.forEach(({ description, baseUrl, queryParams, expected }) => { + it(description, () => { + expect(createRequestUrl(baseUrl, queryParams)).toBe(expected); + }); }); }); diff --git a/src/management/tests/unit/fetcher/getRequestBody.test.ts b/src/management/tests/unit/fetcher/getRequestBody.test.ts index 7348c147b5..ceed7fea04 100644 --- a/src/management/tests/unit/fetcher/getRequestBody.test.ts +++ b/src/management/tests/unit/fetcher/getRequestBody.test.ts @@ -2,89 +2,70 @@ import { getRequestBody } from "../../../../../src/management/core/fetcher/getRe import { RUNTIME } from "../../../../../src/management/core/runtime"; describe("Test getRequestBody", () => { - it("should stringify body if not FormData in Node environment", async () => { - if (RUNTIME.type === "node") { - const body = { key: "value" }; - const result = await getRequestBody({ - body, - type: "json", - }); - expect(result).toBe('{"key":"value"}'); - } - }); + interface TestCase { + description: string; + input: any; + type: "json" | "form" | "file" | "bytes" | "other"; + expected: any; + skipCondition?: () => boolean; + } - it("should return FormData in browser environment", async () => { - if (RUNTIME.type === "browser") { - const formData = new FormData(); - formData.append("key", "value"); - const result = await getRequestBody({ - body: formData, - type: "file", - }); - expect(result).toBe(formData); - } - }); - - it("should stringify body if not FormData in browser environment", async () => { - if (RUNTIME.type === "browser") { - const body = { key: "value" }; - const result = await getRequestBody({ - body, - type: "json", - }); - expect(result).toBe('{"key":"value"}'); - } - }); - - it("should return the Uint8Array", async () => { - const input = new Uint8Array([1, 2, 3]); - const result = await getRequestBody({ - body: input, + const testCases: TestCase[] = [ + { + description: "should stringify body if not FormData in Node environment", + input: { key: "value" }, + type: "json", + expected: '{"key":"value"}', + skipCondition: () => RUNTIME.type !== "node", + }, + { + description: "should stringify body if not FormData in browser environment", + input: { key: "value" }, + type: "json", + expected: '{"key":"value"}', + skipCondition: () => RUNTIME.type !== "browser", + }, + { + description: "should return the Uint8Array", + input: new Uint8Array([1, 2, 3]), type: "bytes", - }); - expect(result).toBe(input); - }); - - it("should serialize objects for form-urlencoded content type", async () => { - const input = { username: "johndoe", email: "john@example.com" }; - const result = await getRequestBody({ - body: input, + expected: new Uint8Array([1, 2, 3]), + }, + { + description: "should serialize objects for form-urlencoded content type", + input: { username: "johndoe", email: "john@example.com" }, type: "form", - }); - expect(result).toBe("username=johndoe&email=john%40example.com"); - }); - - it("should serialize complex nested objects and arrays for form-urlencoded content type", async () => { - const input = { - user: { - profile: { - name: "John Doe", - settings: { - theme: "dark", - notifications: true, + expected: "username=johndoe&email=john%40example.com", + }, + { + description: "should serialize complex nested objects and arrays for form-urlencoded content type", + input: { + user: { + profile: { + name: "John Doe", + settings: { + theme: "dark", + notifications: true, + }, }, + tags: ["admin", "user"], + contacts: [ + { type: "email", value: "john@example.com" }, + { type: "phone", value: "+1234567890" }, + ], }, - tags: ["admin", "user"], - contacts: [ - { type: "email", value: "john@example.com" }, - { type: "phone", value: "+1234567890" }, - ], - }, - filters: { - status: ["active", "pending"], - metadata: { - created: "2024-01-01", - categories: ["electronics", "books"], + filters: { + status: ["active", "pending"], + metadata: { + created: "2024-01-01", + categories: ["electronics", "books"], + }, }, + preferences: ["notifications", "updates"], }, - preferences: ["notifications", "updates"], - }; - const result = await getRequestBody({ - body: input, type: "form", - }); - expect(result).toBe( - "user%5Bprofile%5D%5Bname%5D=John%20Doe&" + + expected: + "user%5Bprofile%5D%5Bname%5D=John%20Doe&" + "user%5Bprofile%5D%5Bsettings%5D%5Btheme%5D=dark&" + "user%5Bprofile%5D%5Bsettings%5D%5Bnotifications%5D=true&" + "user%5Btags%5D=admin&" + @@ -100,24 +81,49 @@ describe("Test getRequestBody", () => { "filters%5Bmetadata%5D%5Bcategories%5D=books&" + "preferences=notifications&" + "preferences=updates", - ); - }); - - it("should return the input for pre-serialized form-urlencoded strings", async () => { - const input = "key=value&another=param"; - const result = await getRequestBody({ - body: input, + }, + { + description: "should return the input for pre-serialized form-urlencoded strings", + input: "key=value&another=param", type: "other", + expected: "key=value&another=param", + }, + { + description: "should JSON stringify objects", + input: { key: "value" }, + type: "json", + expected: '{"key":"value"}', + }, + ]; + + testCases.forEach(({ description, input, type, expected, skipCondition }) => { + it(description, async () => { + if (skipCondition?.()) { + return; + } + + const result = await getRequestBody({ + body: input, + type, + }); + + if (input instanceof Uint8Array) { + expect(result).toBe(input); + } else { + expect(result).toBe(expected); + } }); - expect(result).toBe(input); }); - it("should JSON stringify objects", async () => { - const input = { key: "value" }; - const result = await getRequestBody({ - body: input, - type: "json", - }); - expect(result).toBe('{"key":"value"}'); + it("should return FormData in browser environment", async () => { + if (RUNTIME.type === "browser") { + const formData = new FormData(); + formData.append("key", "value"); + const result = await getRequestBody({ + body: formData, + type: "file", + }); + expect(result).toBe(formData); + } }); }); diff --git a/src/management/tests/unit/fetcher/getResponseBody.test.ts b/src/management/tests/unit/fetcher/getResponseBody.test.ts index 5dfe6cb6d8..967c6c0332 100644 --- a/src/management/tests/unit/fetcher/getResponseBody.test.ts +++ b/src/management/tests/unit/fetcher/getResponseBody.test.ts @@ -1,7 +1,61 @@ -import { RUNTIME } from "../../../../../src/management/core/runtime"; import { getResponseBody } from "../../../../../src/management/core/fetcher/getResponseBody"; +import { RUNTIME } from "../../../../../src/management/core/runtime"; + describe("Test getResponseBody", () => { + interface SimpleTestCase { + description: string; + responseData: string | Record; + responseType?: "blob" | "sse" | "streaming" | "text"; + expected: any; + skipCondition?: () => boolean; + } + + const simpleTestCases: SimpleTestCase[] = [ + { + description: "should handle text response type", + responseData: "test text", + responseType: "text", + expected: "test text", + }, + { + description: "should handle JSON response", + responseData: { key: "value" }, + expected: { key: "value" }, + }, + { + description: "should handle empty response", + responseData: "", + expected: undefined, + }, + { + description: "should handle non-JSON response", + responseData: "invalid json", + expected: { + ok: false, + error: { + reason: "non-json", + statusCode: 200, + rawBody: "invalid json", + }, + }, + }, + ]; + + simpleTestCases.forEach(({ description, responseData, responseType, expected, skipCondition }) => { + it(description, async () => { + if (skipCondition?.()) { + return; + } + + const mockResponse = new Response( + typeof responseData === "string" ? responseData : JSON.stringify(responseData), + ); + const result = await getResponseBody(mockResponse, responseType); + expect(result).toEqual(expected); + }); + }); + it("should handle blob response type", async () => { const mockBlob = new Blob(["test"], { type: "text/plain" }); const mockResponse = new Response(mockBlob); @@ -20,7 +74,6 @@ describe("Test getResponseBody", () => { }); it("should handle streaming response type", async () => { - // Create a ReadableStream with some test data const encoder = new TextEncoder(); const testData = "test stream data"; const mockStream = new ReadableStream({ @@ -35,43 +88,10 @@ describe("Test getResponseBody", () => { expect(result).toBeInstanceOf(ReadableStream); - // Read and verify the stream content const reader = result.getReader(); const decoder = new TextDecoder(); const { value } = await reader.read(); const streamContent = decoder.decode(value); expect(streamContent).toBe(testData); }); - - it("should handle text response type", async () => { - const mockResponse = new Response("test text"); - const result = await getResponseBody(mockResponse, "text"); - expect(result).toBe("test text"); - }); - - it("should handle JSON response", async () => { - const mockJson = { key: "value" }; - const mockResponse = new Response(JSON.stringify(mockJson)); - const result = await getResponseBody(mockResponse); - expect(result).toEqual(mockJson); - }); - - it("should handle empty response", async () => { - const mockResponse = new Response(""); - const result = await getResponseBody(mockResponse); - expect(result).toBeUndefined(); - }); - - it("should handle non-JSON response", async () => { - const mockResponse = new Response("invalid json"); - const result = await getResponseBody(mockResponse); - expect(result).toEqual({ - ok: false, - error: { - reason: "non-json", - statusCode: 200, - rawBody: "invalid json", - }, - }); - }); }); diff --git a/src/management/tests/unit/fetcher/logging.test.ts b/src/management/tests/unit/fetcher/logging.test.ts new file mode 100644 index 0000000000..d51a081529 --- /dev/null +++ b/src/management/tests/unit/fetcher/logging.test.ts @@ -0,0 +1,517 @@ +import { fetcherImpl } from "../../../../../src/management/core/fetcher/Fetcher"; + +function createMockLogger() { + return { + debug: jest.fn(), + info: jest.fn(), + warn: jest.fn(), + error: jest.fn(), + }; +} + +function mockSuccessResponse(data: unknown = { data: "test" }, status = 200, statusText = "OK") { + global.fetch = jest.fn().mockResolvedValue( + new Response(JSON.stringify(data), { + status, + statusText, + }), + ); +} + +function mockErrorResponse(data: unknown = { error: "Error" }, status = 404, statusText = "Not Found") { + global.fetch = jest.fn().mockResolvedValue( + new Response(JSON.stringify(data), { + status, + statusText, + }), + ); +} + +describe("Fetcher Logging Integration", () => { + describe("Request Logging", () => { + it("should log successful request at debug level", async () => { + const mockLogger = createMockLogger(); + mockSuccessResponse(); + + await fetcherImpl({ + url: "https://example.com/api", + method: "POST", + headers: { "Content-Type": "application/json" }, + body: { test: "data" }, + contentType: "application/json", + requestType: "json", + responseType: "json", + maxRetries: 0, + logging: { + level: "debug", + logger: mockLogger, + silent: false, + }, + }); + + expect(mockLogger.debug).toHaveBeenCalledWith( + "Making HTTP request", + expect.objectContaining({ + method: "POST", + url: "https://example.com/api", + headers: expect.toContainHeaders({ + "Content-Type": "application/json", + }), + hasBody: true, + }), + ); + + expect(mockLogger.debug).toHaveBeenCalledWith( + "HTTP request succeeded", + expect.objectContaining({ + method: "POST", + url: "https://example.com/api", + statusCode: 200, + }), + ); + }); + + it("should not log debug messages at info level for successful requests", async () => { + const mockLogger = createMockLogger(); + mockSuccessResponse(); + + await fetcherImpl({ + url: "https://example.com/api", + method: "GET", + responseType: "json", + maxRetries: 0, + logging: { + level: "info", + logger: mockLogger, + silent: false, + }, + }); + + expect(mockLogger.debug).not.toHaveBeenCalled(); + expect(mockLogger.info).not.toHaveBeenCalled(); + }); + + it("should log request with body flag", async () => { + const mockLogger = createMockLogger(); + mockSuccessResponse(); + + await fetcherImpl({ + url: "https://example.com/api", + method: "POST", + body: { data: "test" }, + contentType: "application/json", + requestType: "json", + responseType: "json", + maxRetries: 0, + logging: { + level: "debug", + logger: mockLogger, + silent: false, + }, + }); + + expect(mockLogger.debug).toHaveBeenCalledWith( + "Making HTTP request", + expect.objectContaining({ + hasBody: true, + }), + ); + }); + + it("should log request without body flag", async () => { + const mockLogger = createMockLogger(); + mockSuccessResponse(); + + await fetcherImpl({ + url: "https://example.com/api", + method: "GET", + responseType: "json", + maxRetries: 0, + logging: { + level: "debug", + logger: mockLogger, + silent: false, + }, + }); + + expect(mockLogger.debug).toHaveBeenCalledWith( + "Making HTTP request", + expect.objectContaining({ + hasBody: false, + }), + ); + }); + + it("should not log when silent mode is enabled", async () => { + const mockLogger = createMockLogger(); + mockSuccessResponse(); + + await fetcherImpl({ + url: "https://example.com/api", + method: "GET", + responseType: "json", + maxRetries: 0, + logging: { + level: "debug", + logger: mockLogger, + silent: true, + }, + }); + + expect(mockLogger.debug).not.toHaveBeenCalled(); + expect(mockLogger.info).not.toHaveBeenCalled(); + expect(mockLogger.warn).not.toHaveBeenCalled(); + expect(mockLogger.error).not.toHaveBeenCalled(); + }); + + it("should not log when no logging config is provided", async () => { + const mockLogger = createMockLogger(); + mockSuccessResponse(); + + await fetcherImpl({ + url: "https://example.com/api", + method: "GET", + responseType: "json", + maxRetries: 0, + }); + + expect(mockLogger.debug).not.toHaveBeenCalled(); + }); + }); + + describe("Error Logging", () => { + it("should log 4xx errors at error level", async () => { + const mockLogger = createMockLogger(); + mockErrorResponse({ error: "Not found" }, 404, "Not Found"); + + const result = await fetcherImpl({ + url: "https://example.com/api", + method: "GET", + responseType: "json", + maxRetries: 0, + logging: { + level: "error", + logger: mockLogger, + silent: false, + }, + }); + + expect(result.ok).toBe(false); + expect(mockLogger.error).toHaveBeenCalledWith( + "HTTP request failed with error status", + expect.objectContaining({ + method: "GET", + url: "https://example.com/api", + statusCode: 404, + }), + ); + }); + + it("should log 5xx errors at error level", async () => { + const mockLogger = createMockLogger(); + mockErrorResponse({ error: "Internal error" }, 500, "Internal Server Error"); + + const result = await fetcherImpl({ + url: "https://example.com/api", + method: "GET", + responseType: "json", + maxRetries: 0, + logging: { + level: "error", + logger: mockLogger, + silent: false, + }, + }); + + expect(result.ok).toBe(false); + expect(mockLogger.error).toHaveBeenCalledWith( + "HTTP request failed with error status", + expect.objectContaining({ + method: "GET", + url: "https://example.com/api", + statusCode: 500, + }), + ); + }); + + it("should log aborted request errors", async () => { + const mockLogger = createMockLogger(); + + const abortController = new AbortController(); + abortController.abort(); + + global.fetch = jest.fn().mockRejectedValue(new Error("Aborted")); + + const result = await fetcherImpl({ + url: "https://example.com/api", + method: "GET", + responseType: "json", + abortSignal: abortController.signal, + maxRetries: 0, + logging: { + level: "error", + logger: mockLogger, + silent: false, + }, + }); + + expect(result.ok).toBe(false); + expect(mockLogger.error).toHaveBeenCalledWith( + "HTTP request was aborted", + expect.objectContaining({ + method: "GET", + url: "https://example.com/api", + }), + ); + }); + + it("should log timeout errors", async () => { + const mockLogger = createMockLogger(); + + const timeoutError = new Error("Request timeout"); + timeoutError.name = "AbortError"; + + global.fetch = jest.fn().mockRejectedValue(timeoutError); + + const result = await fetcherImpl({ + url: "https://example.com/api", + method: "GET", + responseType: "json", + maxRetries: 0, + logging: { + level: "error", + logger: mockLogger, + silent: false, + }, + }); + + expect(result.ok).toBe(false); + expect(mockLogger.error).toHaveBeenCalledWith( + "HTTP request timed out", + expect.objectContaining({ + method: "GET", + url: "https://example.com/api", + timeoutMs: undefined, + }), + ); + }); + + it("should log unknown errors", async () => { + const mockLogger = createMockLogger(); + + const unknownError = new Error("Unknown error"); + + global.fetch = jest.fn().mockRejectedValue(unknownError); + + const result = await fetcherImpl({ + url: "https://example.com/api", + method: "GET", + responseType: "json", + maxRetries: 0, + logging: { + level: "error", + logger: mockLogger, + silent: false, + }, + }); + + expect(result.ok).toBe(false); + expect(mockLogger.error).toHaveBeenCalledWith( + "HTTP request failed with error", + expect.objectContaining({ + method: "GET", + url: "https://example.com/api", + errorMessage: "Unknown error", + }), + ); + }); + }); + + describe("Logging with Redaction", () => { + it("should redact sensitive data in error logs", async () => { + const mockLogger = createMockLogger(); + mockErrorResponse({ error: "Unauthorized" }, 401, "Unauthorized"); + + await fetcherImpl({ + url: "https://example.com/api?api_key=secret", + method: "GET", + responseType: "json", + maxRetries: 0, + logging: { + level: "error", + logger: mockLogger, + silent: false, + }, + }); + + expect(mockLogger.error).toHaveBeenCalledWith( + "HTTP request failed with error status", + expect.objectContaining({ + url: "https://example.com/api?api_key=[REDACTED]", + }), + ); + }); + }); + + describe("Different HTTP Methods", () => { + it("should log GET requests", async () => { + const mockLogger = createMockLogger(); + mockSuccessResponse(); + + await fetcherImpl({ + url: "https://example.com/api", + method: "GET", + responseType: "json", + maxRetries: 0, + logging: { + level: "debug", + logger: mockLogger, + silent: false, + }, + }); + + expect(mockLogger.debug).toHaveBeenCalledWith( + "Making HTTP request", + expect.objectContaining({ + method: "GET", + }), + ); + }); + + it("should log POST requests", async () => { + const mockLogger = createMockLogger(); + mockSuccessResponse({ data: "test" }, 201, "Created"); + + await fetcherImpl({ + url: "https://example.com/api", + method: "POST", + body: { data: "test" }, + contentType: "application/json", + requestType: "json", + responseType: "json", + maxRetries: 0, + logging: { + level: "debug", + logger: mockLogger, + silent: false, + }, + }); + + expect(mockLogger.debug).toHaveBeenCalledWith( + "Making HTTP request", + expect.objectContaining({ + method: "POST", + }), + ); + }); + + it("should log PUT requests", async () => { + const mockLogger = createMockLogger(); + mockSuccessResponse(); + + await fetcherImpl({ + url: "https://example.com/api", + method: "PUT", + body: { data: "test" }, + contentType: "application/json", + requestType: "json", + responseType: "json", + maxRetries: 0, + logging: { + level: "debug", + logger: mockLogger, + silent: false, + }, + }); + + expect(mockLogger.debug).toHaveBeenCalledWith( + "Making HTTP request", + expect.objectContaining({ + method: "PUT", + }), + ); + }); + + it("should log DELETE requests", async () => { + const mockLogger = createMockLogger(); + global.fetch = jest.fn().mockResolvedValue( + new Response(null, { + status: 200, + statusText: "OK", + }), + ); + + await fetcherImpl({ + url: "https://example.com/api", + method: "DELETE", + responseType: "json", + maxRetries: 0, + logging: { + level: "debug", + logger: mockLogger, + silent: false, + }, + }); + + expect(mockLogger.debug).toHaveBeenCalledWith( + "Making HTTP request", + expect.objectContaining({ + method: "DELETE", + }), + ); + }); + }); + + describe("Status Code Logging", () => { + it("should log 2xx success status codes", async () => { + const mockLogger = createMockLogger(); + mockSuccessResponse({ data: "test" }, 201, "Created"); + + await fetcherImpl({ + url: "https://example.com/api", + method: "POST", + body: { data: "test" }, + contentType: "application/json", + requestType: "json", + responseType: "json", + maxRetries: 0, + logging: { + level: "debug", + logger: mockLogger, + silent: false, + }, + }); + + expect(mockLogger.debug).toHaveBeenCalledWith( + "HTTP request succeeded", + expect.objectContaining({ + statusCode: 201, + }), + ); + }); + + it("should log 3xx redirect status codes as success", async () => { + const mockLogger = createMockLogger(); + mockSuccessResponse({ data: "test" }, 301, "Moved Permanently"); + + await fetcherImpl({ + url: "https://example.com/api", + method: "GET", + responseType: "json", + maxRetries: 0, + logging: { + level: "debug", + logger: mockLogger, + silent: false, + }, + }); + + expect(mockLogger.debug).toHaveBeenCalledWith( + "HTTP request succeeded", + expect.objectContaining({ + statusCode: 301, + }), + ); + }); + }); +}); diff --git a/src/management/tests/unit/fetcher/redacting.test.ts b/src/management/tests/unit/fetcher/redacting.test.ts new file mode 100644 index 0000000000..4d9d18d228 --- /dev/null +++ b/src/management/tests/unit/fetcher/redacting.test.ts @@ -0,0 +1,1115 @@ +import { fetcherImpl } from "../../../../../src/management/core/fetcher/Fetcher"; + +function createMockLogger() { + return { + debug: jest.fn(), + info: jest.fn(), + warn: jest.fn(), + error: jest.fn(), + }; +} + +function mockSuccessResponse(data: unknown = { data: "test" }, status = 200, statusText = "OK") { + global.fetch = jest.fn().mockResolvedValue( + new Response(JSON.stringify(data), { + status, + statusText, + }), + ); +} + +describe("Redacting Logic", () => { + describe("Header Redaction", () => { + it("should redact authorization header", async () => { + const mockLogger = createMockLogger(); + mockSuccessResponse(); + + await fetcherImpl({ + url: "https://example.com/api", + method: "GET", + headers: { Authorization: "Bearer secret-token-12345" }, + responseType: "json", + maxRetries: 0, + logging: { + level: "debug", + logger: mockLogger, + silent: false, + }, + }); + + expect(mockLogger.debug).toHaveBeenCalledWith( + "Making HTTP request", + expect.objectContaining({ + headers: expect.toContainHeaders({ + Authorization: "[REDACTED]", + }), + }), + ); + }); + + it("should redact api-key header (case-insensitive)", async () => { + const mockLogger = createMockLogger(); + mockSuccessResponse(); + + await fetcherImpl({ + url: "https://example.com/api", + method: "GET", + headers: { "X-API-KEY": "secret-api-key" }, + responseType: "json", + maxRetries: 0, + logging: { + level: "debug", + logger: mockLogger, + silent: false, + }, + }); + + expect(mockLogger.debug).toHaveBeenCalledWith( + "Making HTTP request", + expect.objectContaining({ + headers: expect.toContainHeaders({ + "X-API-KEY": "[REDACTED]", + }), + }), + ); + }); + + it("should redact cookie header", async () => { + const mockLogger = createMockLogger(); + mockSuccessResponse(); + + await fetcherImpl({ + url: "https://example.com/api", + method: "GET", + headers: { Cookie: "session=abc123; token=xyz789" }, + responseType: "json", + maxRetries: 0, + logging: { + level: "debug", + logger: mockLogger, + silent: false, + }, + }); + + expect(mockLogger.debug).toHaveBeenCalledWith( + "Making HTTP request", + expect.objectContaining({ + headers: expect.toContainHeaders({ + Cookie: "[REDACTED]", + }), + }), + ); + }); + + it("should redact x-auth-token header", async () => { + const mockLogger = createMockLogger(); + mockSuccessResponse(); + + await fetcherImpl({ + url: "https://example.com/api", + method: "GET", + headers: { "x-auth-token": "auth-token-12345" }, + responseType: "json", + maxRetries: 0, + logging: { + level: "debug", + logger: mockLogger, + silent: false, + }, + }); + + expect(mockLogger.debug).toHaveBeenCalledWith( + "Making HTTP request", + expect.objectContaining({ + headers: expect.toContainHeaders({ + "x-auth-token": "[REDACTED]", + }), + }), + ); + }); + + it("should redact proxy-authorization header", async () => { + const mockLogger = createMockLogger(); + mockSuccessResponse(); + + await fetcherImpl({ + url: "https://example.com/api", + method: "GET", + headers: { "Proxy-Authorization": "Basic credentials" }, + responseType: "json", + maxRetries: 0, + logging: { + level: "debug", + logger: mockLogger, + silent: false, + }, + }); + + expect(mockLogger.debug).toHaveBeenCalledWith( + "Making HTTP request", + expect.objectContaining({ + headers: expect.toContainHeaders({ + "Proxy-Authorization": "[REDACTED]", + }), + }), + ); + }); + + it("should redact x-csrf-token header", async () => { + const mockLogger = createMockLogger(); + mockSuccessResponse(); + + await fetcherImpl({ + url: "https://example.com/api", + method: "GET", + headers: { "X-CSRF-Token": "csrf-token-abc" }, + responseType: "json", + maxRetries: 0, + logging: { + level: "debug", + logger: mockLogger, + silent: false, + }, + }); + + expect(mockLogger.debug).toHaveBeenCalledWith( + "Making HTTP request", + expect.objectContaining({ + headers: expect.toContainHeaders({ + "X-CSRF-Token": "[REDACTED]", + }), + }), + ); + }); + + it("should redact www-authenticate header", async () => { + const mockLogger = createMockLogger(); + mockSuccessResponse(); + + await fetcherImpl({ + url: "https://example.com/api", + method: "GET", + headers: { "WWW-Authenticate": "Bearer realm=example" }, + responseType: "json", + maxRetries: 0, + logging: { + level: "debug", + logger: mockLogger, + silent: false, + }, + }); + + expect(mockLogger.debug).toHaveBeenCalledWith( + "Making HTTP request", + expect.objectContaining({ + headers: expect.toContainHeaders({ + "WWW-Authenticate": "[REDACTED]", + }), + }), + ); + }); + + it("should redact x-session-token header", async () => { + const mockLogger = createMockLogger(); + mockSuccessResponse(); + + await fetcherImpl({ + url: "https://example.com/api", + method: "GET", + headers: { "X-Session-Token": "session-token-xyz" }, + responseType: "json", + maxRetries: 0, + logging: { + level: "debug", + logger: mockLogger, + silent: false, + }, + }); + + expect(mockLogger.debug).toHaveBeenCalledWith( + "Making HTTP request", + expect.objectContaining({ + headers: expect.toContainHeaders({ + "X-Session-Token": "[REDACTED]", + }), + }), + ); + }); + + it("should not redact non-sensitive headers", async () => { + const mockLogger = createMockLogger(); + mockSuccessResponse(); + + await fetcherImpl({ + url: "https://example.com/api", + method: "GET", + headers: { + "Content-Type": "application/json", + "User-Agent": "Test/1.0", + Accept: "application/json", + }, + responseType: "json", + maxRetries: 0, + logging: { + level: "debug", + logger: mockLogger, + silent: false, + }, + }); + + expect(mockLogger.debug).toHaveBeenCalledWith( + "Making HTTP request", + expect.objectContaining({ + headers: expect.toContainHeaders({ + "Content-Type": "application/json", + "User-Agent": "Test/1.0", + Accept: "application/json", + }), + }), + ); + }); + + it("should redact multiple sensitive headers at once", async () => { + const mockLogger = createMockLogger(); + mockSuccessResponse(); + + await fetcherImpl({ + url: "https://example.com/api", + method: "GET", + headers: { + Authorization: "Bearer token", + "X-API-Key": "api-key", + Cookie: "session=123", + "Content-Type": "application/json", + }, + responseType: "json", + maxRetries: 0, + logging: { + level: "debug", + logger: mockLogger, + silent: false, + }, + }); + + expect(mockLogger.debug).toHaveBeenCalledWith( + "Making HTTP request", + expect.objectContaining({ + headers: expect.toContainHeaders({ + Authorization: "[REDACTED]", + "X-API-Key": "[REDACTED]", + Cookie: "[REDACTED]", + "Content-Type": "application/json", + }), + }), + ); + }); + }); + + describe("Response Header Redaction", () => { + it("should redact Set-Cookie in response headers", async () => { + const mockLogger = createMockLogger(); + + const mockHeaders = new Headers(); + mockHeaders.set("Set-Cookie", "session=abc123; HttpOnly; Secure"); + mockHeaders.set("Content-Type", "application/json"); + + global.fetch = jest.fn().mockResolvedValue( + new Response(JSON.stringify({ data: "test" }), { + status: 200, + statusText: "OK", + headers: mockHeaders, + }), + ); + + await fetcherImpl({ + url: "https://example.com/api", + method: "GET", + responseType: "json", + maxRetries: 0, + logging: { + level: "debug", + logger: mockLogger, + silent: false, + }, + }); + + expect(mockLogger.debug).toHaveBeenCalledWith( + "HTTP request succeeded", + expect.objectContaining({ + responseHeaders: expect.toContainHeaders({ + "set-cookie": "[REDACTED]", + "content-type": "application/json", + }), + }), + ); + }); + + it("should redact authorization in response headers", async () => { + const mockLogger = createMockLogger(); + + const mockHeaders = new Headers(); + mockHeaders.set("Authorization", "Bearer token-123"); + mockHeaders.set("Content-Type", "application/json"); + + global.fetch = jest.fn().mockResolvedValue( + new Response(JSON.stringify({ data: "test" }), { + status: 200, + statusText: "OK", + headers: mockHeaders, + }), + ); + + await fetcherImpl({ + url: "https://example.com/api", + method: "GET", + responseType: "json", + maxRetries: 0, + logging: { + level: "debug", + logger: mockLogger, + silent: false, + }, + }); + + expect(mockLogger.debug).toHaveBeenCalledWith( + "HTTP request succeeded", + expect.objectContaining({ + responseHeaders: expect.toContainHeaders({ + authorization: "[REDACTED]", + "content-type": "application/json", + }), + }), + ); + }); + + it("should redact response headers in error responses", async () => { + const mockLogger = createMockLogger(); + + const mockHeaders = new Headers(); + mockHeaders.set("WWW-Authenticate", "Bearer realm=example"); + mockHeaders.set("Content-Type", "application/json"); + + global.fetch = jest.fn().mockResolvedValue( + new Response(JSON.stringify({ error: "Unauthorized" }), { + status: 401, + statusText: "Unauthorized", + headers: mockHeaders, + }), + ); + + await fetcherImpl({ + url: "https://example.com/api", + method: "GET", + responseType: "json", + maxRetries: 0, + logging: { + level: "error", + logger: mockLogger, + silent: false, + }, + }); + + expect(mockLogger.error).toHaveBeenCalledWith( + "HTTP request failed with error status", + expect.objectContaining({ + responseHeaders: expect.toContainHeaders({ + "www-authenticate": "[REDACTED]", + "content-type": "application/json", + }), + }), + ); + }); + }); + + describe("Query Parameter Redaction", () => { + it("should redact api_key query parameter", async () => { + const mockLogger = createMockLogger(); + mockSuccessResponse(); + + await fetcherImpl({ + url: "https://example.com/api", + method: "GET", + queryParameters: { api_key: "secret-key" }, + responseType: "json", + maxRetries: 0, + logging: { + level: "debug", + logger: mockLogger, + silent: false, + }, + }); + + expect(mockLogger.debug).toHaveBeenCalledWith( + "Making HTTP request", + expect.objectContaining({ + queryParameters: expect.objectContaining({ + api_key: "[REDACTED]", + }), + }), + ); + }); + + it("should redact token query parameter", async () => { + const mockLogger = createMockLogger(); + mockSuccessResponse(); + + await fetcherImpl({ + url: "https://example.com/api", + method: "GET", + queryParameters: { token: "secret-token" }, + responseType: "json", + maxRetries: 0, + logging: { + level: "debug", + logger: mockLogger, + silent: false, + }, + }); + + expect(mockLogger.debug).toHaveBeenCalledWith( + "Making HTTP request", + expect.objectContaining({ + queryParameters: expect.objectContaining({ + token: "[REDACTED]", + }), + }), + ); + }); + + it("should redact access_token query parameter", async () => { + const mockLogger = createMockLogger(); + mockSuccessResponse(); + + await fetcherImpl({ + url: "https://example.com/api", + method: "GET", + queryParameters: { access_token: "secret-access-token" }, + responseType: "json", + maxRetries: 0, + logging: { + level: "debug", + logger: mockLogger, + silent: false, + }, + }); + + expect(mockLogger.debug).toHaveBeenCalledWith( + "Making HTTP request", + expect.objectContaining({ + queryParameters: expect.objectContaining({ + access_token: "[REDACTED]", + }), + }), + ); + }); + + it("should redact password query parameter", async () => { + const mockLogger = createMockLogger(); + mockSuccessResponse(); + + await fetcherImpl({ + url: "https://example.com/api", + method: "GET", + queryParameters: { password: "secret-password" }, + responseType: "json", + maxRetries: 0, + logging: { + level: "debug", + logger: mockLogger, + silent: false, + }, + }); + + expect(mockLogger.debug).toHaveBeenCalledWith( + "Making HTTP request", + expect.objectContaining({ + queryParameters: expect.objectContaining({ + password: "[REDACTED]", + }), + }), + ); + }); + + it("should redact secret query parameter", async () => { + const mockLogger = createMockLogger(); + mockSuccessResponse(); + + await fetcherImpl({ + url: "https://example.com/api", + method: "GET", + queryParameters: { secret: "secret-value" }, + responseType: "json", + maxRetries: 0, + logging: { + level: "debug", + logger: mockLogger, + silent: false, + }, + }); + + expect(mockLogger.debug).toHaveBeenCalledWith( + "Making HTTP request", + expect.objectContaining({ + queryParameters: expect.objectContaining({ + secret: "[REDACTED]", + }), + }), + ); + }); + + it("should redact session_id query parameter", async () => { + const mockLogger = createMockLogger(); + mockSuccessResponse(); + + await fetcherImpl({ + url: "https://example.com/api", + method: "GET", + queryParameters: { session_id: "session-123" }, + responseType: "json", + maxRetries: 0, + logging: { + level: "debug", + logger: mockLogger, + silent: false, + }, + }); + + expect(mockLogger.debug).toHaveBeenCalledWith( + "Making HTTP request", + expect.objectContaining({ + queryParameters: expect.objectContaining({ + session_id: "[REDACTED]", + }), + }), + ); + }); + + it("should not redact non-sensitive query parameters", async () => { + const mockLogger = createMockLogger(); + mockSuccessResponse(); + + await fetcherImpl({ + url: "https://example.com/api", + method: "GET", + queryParameters: { + page: "1", + limit: "10", + sort: "name", + }, + responseType: "json", + maxRetries: 0, + logging: { + level: "debug", + logger: mockLogger, + silent: false, + }, + }); + + expect(mockLogger.debug).toHaveBeenCalledWith( + "Making HTTP request", + expect.objectContaining({ + queryParameters: expect.objectContaining({ + page: "1", + limit: "10", + sort: "name", + }), + }), + ); + }); + + it("should not redact parameters containing 'auth' substring like 'author'", async () => { + const mockLogger = createMockLogger(); + mockSuccessResponse(); + + await fetcherImpl({ + url: "https://example.com/api", + method: "GET", + queryParameters: { + author: "john", + authenticate: "false", + authorization_level: "user", + }, + responseType: "json", + maxRetries: 0, + logging: { + level: "debug", + logger: mockLogger, + silent: false, + }, + }); + + expect(mockLogger.debug).toHaveBeenCalledWith( + "Making HTTP request", + expect.objectContaining({ + queryParameters: expect.objectContaining({ + author: "john", + authenticate: "false", + authorization_level: "user", + }), + }), + ); + }); + + it("should handle undefined query parameters", async () => { + const mockLogger = createMockLogger(); + mockSuccessResponse(); + + await fetcherImpl({ + url: "https://example.com/api", + method: "GET", + responseType: "json", + maxRetries: 0, + logging: { + level: "debug", + logger: mockLogger, + silent: false, + }, + }); + + expect(mockLogger.debug).toHaveBeenCalledWith( + "Making HTTP request", + expect.objectContaining({ + queryParameters: undefined, + }), + ); + }); + + it("should redact case-insensitive query parameters", async () => { + const mockLogger = createMockLogger(); + mockSuccessResponse(); + + await fetcherImpl({ + url: "https://example.com/api", + method: "GET", + queryParameters: { API_KEY: "secret-key", Token: "secret-token" }, + responseType: "json", + maxRetries: 0, + logging: { + level: "debug", + logger: mockLogger, + silent: false, + }, + }); + + expect(mockLogger.debug).toHaveBeenCalledWith( + "Making HTTP request", + expect.objectContaining({ + queryParameters: expect.objectContaining({ + API_KEY: "[REDACTED]", + Token: "[REDACTED]", + }), + }), + ); + }); + }); + + describe("URL Redaction", () => { + it("should redact credentials in URL", async () => { + const mockLogger = createMockLogger(); + mockSuccessResponse(); + + await fetcherImpl({ + url: "https://user:password@example.com/api", + method: "GET", + responseType: "json", + maxRetries: 0, + logging: { + level: "debug", + logger: mockLogger, + silent: false, + }, + }); + + expect(mockLogger.debug).toHaveBeenCalledWith( + "Making HTTP request", + expect.objectContaining({ + url: "https://[REDACTED]@example.com/api", + }), + ); + }); + + it("should redact api_key in query string", async () => { + const mockLogger = createMockLogger(); + mockSuccessResponse(); + + await fetcherImpl({ + url: "https://example.com/api?api_key=secret-key&page=1", + method: "GET", + responseType: "json", + maxRetries: 0, + logging: { + level: "debug", + logger: mockLogger, + silent: false, + }, + }); + + expect(mockLogger.debug).toHaveBeenCalledWith( + "Making HTTP request", + expect.objectContaining({ + url: "https://example.com/api?api_key=[REDACTED]&page=1", + }), + ); + }); + + it("should redact token in query string", async () => { + const mockLogger = createMockLogger(); + mockSuccessResponse(); + + await fetcherImpl({ + url: "https://example.com/api?token=secret-token", + method: "GET", + responseType: "json", + maxRetries: 0, + logging: { + level: "debug", + logger: mockLogger, + silent: false, + }, + }); + + expect(mockLogger.debug).toHaveBeenCalledWith( + "Making HTTP request", + expect.objectContaining({ + url: "https://example.com/api?token=[REDACTED]", + }), + ); + }); + + it("should redact password in query string", async () => { + const mockLogger = createMockLogger(); + mockSuccessResponse(); + + await fetcherImpl({ + url: "https://example.com/api?username=user&password=secret", + method: "GET", + responseType: "json", + maxRetries: 0, + logging: { + level: "debug", + logger: mockLogger, + silent: false, + }, + }); + + expect(mockLogger.debug).toHaveBeenCalledWith( + "Making HTTP request", + expect.objectContaining({ + url: "https://example.com/api?username=user&password=[REDACTED]", + }), + ); + }); + + it("should not redact non-sensitive query strings", async () => { + const mockLogger = createMockLogger(); + mockSuccessResponse(); + + await fetcherImpl({ + url: "https://example.com/api?page=1&limit=10&sort=name", + method: "GET", + responseType: "json", + maxRetries: 0, + logging: { + level: "debug", + logger: mockLogger, + silent: false, + }, + }); + + expect(mockLogger.debug).toHaveBeenCalledWith( + "Making HTTP request", + expect.objectContaining({ + url: "https://example.com/api?page=1&limit=10&sort=name", + }), + ); + }); + + it("should not redact URL parameters containing 'auth' substring like 'author'", async () => { + const mockLogger = createMockLogger(); + mockSuccessResponse(); + + await fetcherImpl({ + url: "https://example.com/api?author=john&authenticate=false&page=1", + method: "GET", + responseType: "json", + maxRetries: 0, + logging: { + level: "debug", + logger: mockLogger, + silent: false, + }, + }); + + expect(mockLogger.debug).toHaveBeenCalledWith( + "Making HTTP request", + expect.objectContaining({ + url: "https://example.com/api?author=john&authenticate=false&page=1", + }), + ); + }); + + it("should handle URL with fragment", async () => { + const mockLogger = createMockLogger(); + mockSuccessResponse(); + + await fetcherImpl({ + url: "https://example.com/api?token=secret#section", + method: "GET", + responseType: "json", + maxRetries: 0, + logging: { + level: "debug", + logger: mockLogger, + silent: false, + }, + }); + + expect(mockLogger.debug).toHaveBeenCalledWith( + "Making HTTP request", + expect.objectContaining({ + url: "https://example.com/api?token=[REDACTED]#section", + }), + ); + }); + + it("should redact URL-encoded query parameters", async () => { + const mockLogger = createMockLogger(); + mockSuccessResponse(); + + await fetcherImpl({ + url: "https://example.com/api?api%5Fkey=secret", + method: "GET", + responseType: "json", + maxRetries: 0, + logging: { + level: "debug", + logger: mockLogger, + silent: false, + }, + }); + + expect(mockLogger.debug).toHaveBeenCalledWith( + "Making HTTP request", + expect.objectContaining({ + url: "https://example.com/api?api%5Fkey=[REDACTED]", + }), + ); + }); + + it("should handle URL without query string", async () => { + const mockLogger = createMockLogger(); + mockSuccessResponse(); + + await fetcherImpl({ + url: "https://example.com/api", + method: "GET", + responseType: "json", + maxRetries: 0, + logging: { + level: "debug", + logger: mockLogger, + silent: false, + }, + }); + + expect(mockLogger.debug).toHaveBeenCalledWith( + "Making HTTP request", + expect.objectContaining({ + url: "https://example.com/api", + }), + ); + }); + + it("should handle empty query string", async () => { + const mockLogger = createMockLogger(); + mockSuccessResponse(); + + await fetcherImpl({ + url: "https://example.com/api?", + method: "GET", + responseType: "json", + maxRetries: 0, + logging: { + level: "debug", + logger: mockLogger, + silent: false, + }, + }); + + expect(mockLogger.debug).toHaveBeenCalledWith( + "Making HTTP request", + expect.objectContaining({ + url: "https://example.com/api?", + }), + ); + }); + + it("should redact multiple sensitive parameters in URL", async () => { + const mockLogger = createMockLogger(); + mockSuccessResponse(); + + await fetcherImpl({ + url: "https://example.com/api?api_key=secret1&token=secret2&page=1", + method: "GET", + responseType: "json", + maxRetries: 0, + logging: { + level: "debug", + logger: mockLogger, + silent: false, + }, + }); + + expect(mockLogger.debug).toHaveBeenCalledWith( + "Making HTTP request", + expect.objectContaining({ + url: "https://example.com/api?api_key=[REDACTED]&token=[REDACTED]&page=1", + }), + ); + }); + + it("should redact both credentials and query parameters", async () => { + const mockLogger = createMockLogger(); + mockSuccessResponse(); + + await fetcherImpl({ + url: "https://user:pass@example.com/api?token=secret", + method: "GET", + responseType: "json", + maxRetries: 0, + logging: { + level: "debug", + logger: mockLogger, + silent: false, + }, + }); + + expect(mockLogger.debug).toHaveBeenCalledWith( + "Making HTTP request", + expect.objectContaining({ + url: "https://[REDACTED]@example.com/api?token=[REDACTED]", + }), + ); + }); + + it("should use fast path for URLs without sensitive keywords", async () => { + const mockLogger = createMockLogger(); + mockSuccessResponse(); + + await fetcherImpl({ + url: "https://example.com/api?page=1&limit=10&sort=name&filter=value", + method: "GET", + responseType: "json", + maxRetries: 0, + logging: { + level: "debug", + logger: mockLogger, + silent: false, + }, + }); + + expect(mockLogger.debug).toHaveBeenCalledWith( + "Making HTTP request", + expect.objectContaining({ + url: "https://example.com/api?page=1&limit=10&sort=name&filter=value", + }), + ); + }); + + it("should handle query parameter without value", async () => { + const mockLogger = createMockLogger(); + mockSuccessResponse(); + + await fetcherImpl({ + url: "https://example.com/api?flag&token=secret", + method: "GET", + responseType: "json", + maxRetries: 0, + logging: { + level: "debug", + logger: mockLogger, + silent: false, + }, + }); + + expect(mockLogger.debug).toHaveBeenCalledWith( + "Making HTTP request", + expect.objectContaining({ + url: "https://example.com/api?flag&token=[REDACTED]", + }), + ); + }); + + it("should handle URL with multiple @ symbols in credentials", async () => { + const mockLogger = createMockLogger(); + mockSuccessResponse(); + + await fetcherImpl({ + url: "https://user@example.com:pass@host.com/api", + method: "GET", + responseType: "json", + maxRetries: 0, + logging: { + level: "debug", + logger: mockLogger, + silent: false, + }, + }); + + expect(mockLogger.debug).toHaveBeenCalledWith( + "Making HTTP request", + expect.objectContaining({ + url: "https://[REDACTED]@host.com/api", + }), + ); + }); + + it("should handle URL with @ in query parameter but not in credentials", async () => { + const mockLogger = createMockLogger(); + mockSuccessResponse(); + + await fetcherImpl({ + url: "https://example.com/api?email=user@example.com", + method: "GET", + responseType: "json", + maxRetries: 0, + logging: { + level: "debug", + logger: mockLogger, + silent: false, + }, + }); + + expect(mockLogger.debug).toHaveBeenCalledWith( + "Making HTTP request", + expect.objectContaining({ + url: "https://example.com/api?email=user@example.com", + }), + ); + }); + + it("should handle URL with both credentials and @ in path", async () => { + const mockLogger = createMockLogger(); + mockSuccessResponse(); + + await fetcherImpl({ + url: "https://user:pass@example.com/users/@username", + method: "GET", + responseType: "json", + maxRetries: 0, + logging: { + level: "debug", + logger: mockLogger, + silent: false, + }, + }); + + expect(mockLogger.debug).toHaveBeenCalledWith( + "Making HTTP request", + expect.objectContaining({ + url: "https://[REDACTED]@example.com/users/@username", + }), + ); + }); + }); +}); diff --git a/src/management/tests/unit/fetcher/requestWithRetries.test.ts b/src/management/tests/unit/fetcher/requestWithRetries.test.ts index 695e5c1929..333b6c8e5d 100644 --- a/src/management/tests/unit/fetcher/requestWithRetries.test.ts +++ b/src/management/tests/unit/fetcher/requestWithRetries.test.ts @@ -9,7 +9,6 @@ describe("requestWithRetries", () => { mockFetch = jest.fn(); originalMathRandom = Math.random; - // Mock Math.random for consistent jitter Math.random = jest.fn(() => 0.5); jest.useFakeTimers({ doNotFake: ["nextTick"] }); @@ -84,6 +83,67 @@ describe("requestWithRetries", () => { } }); + interface RetryHeaderTestCase { + description: string; + headerName: string; + headerValue: string | (() => string); + expectedDelayMin: number; + expectedDelayMax: number; + } + + const retryHeaderTests: RetryHeaderTestCase[] = [ + { + description: "should respect retry-after header with seconds value", + headerName: "retry-after", + headerValue: "5", + expectedDelayMin: 4000, + expectedDelayMax: 6000, + }, + { + description: "should respect retry-after header with HTTP date value", + headerName: "retry-after", + headerValue: () => new Date(Date.now() + 3000).toUTCString(), + expectedDelayMin: 2000, + expectedDelayMax: 4000, + }, + { + description: "should respect x-ratelimit-reset header", + headerName: "x-ratelimit-reset", + headerValue: () => Math.floor((Date.now() + 4000) / 1000).toString(), + expectedDelayMin: 3000, + expectedDelayMax: 6000, + }, + ]; + + retryHeaderTests.forEach(({ description, headerName, headerValue, expectedDelayMin, expectedDelayMax }) => { + it(description, async () => { + setTimeoutSpy = jest.spyOn(global, "setTimeout").mockImplementation((callback: (args: void) => void) => { + process.nextTick(callback); + return null as any; + }); + + const value = typeof headerValue === "function" ? headerValue() : headerValue; + mockFetch + .mockResolvedValueOnce( + new Response("", { + status: 429, + headers: new Headers({ [headerName]: value }), + }), + ) + .mockResolvedValueOnce(new Response("", { status: 200 })); + + const responsePromise = requestWithRetries(() => mockFetch(), 1); + await jest.runAllTimersAsync(); + const response = await responsePromise; + + expect(setTimeoutSpy).toHaveBeenCalledWith(expect.any(Function), expect.any(Number)); + const actualDelay = setTimeoutSpy.mock.calls[0][1]; + expect(actualDelay).toBeGreaterThan(expectedDelayMin); + expect(actualDelay).toBeLessThan(expectedDelayMax); + expect(response.status).toBe(200); + }); + }); + it("should apply correct exponential backoff with jitter", async () => { setTimeoutSpy = jest.spyOn(global, "setTimeout").mockImplementation((callback: (args: void) => void) => { process.nextTick(callback); @@ -98,7 +158,6 @@ describe("requestWithRetries", () => { await jest.runAllTimersAsync(); await responsePromise; - // Verify setTimeout calls expect(setTimeoutSpy).toHaveBeenCalledTimes(expectedDelays.length); expectedDelays.forEach((delay, index) => { @@ -130,85 +189,6 @@ describe("requestWithRetries", () => { expect(response2.status).toBe(200); }); - it("should respect retry-after header with seconds value", async () => { - setTimeoutSpy = jest.spyOn(global, "setTimeout").mockImplementation((callback: (args: void) => void) => { - process.nextTick(callback); - return null as any; - }); - - mockFetch - .mockResolvedValueOnce( - new Response("", { - status: 429, - headers: new Headers({ "retry-after": "5" }), - }), - ) - .mockResolvedValueOnce(new Response("", { status: 200 })); - - const responsePromise = requestWithRetries(() => mockFetch(), 1); - await jest.runAllTimersAsync(); - const response = await responsePromise; - - expect(setTimeoutSpy).toHaveBeenCalledWith(expect.any(Function), 5000); // 5 seconds = 5000ms - expect(response.status).toBe(200); - }); - - it("should respect retry-after header with HTTP date value", async () => { - setTimeoutSpy = jest.spyOn(global, "setTimeout").mockImplementation((callback: (args: void) => void) => { - process.nextTick(callback); - return null as any; - }); - - const futureDate = new Date(Date.now() + 3000); // 3 seconds from now - mockFetch - .mockResolvedValueOnce( - new Response("", { - status: 429, - headers: new Headers({ "retry-after": futureDate.toUTCString() }), - }), - ) - .mockResolvedValueOnce(new Response("", { status: 200 })); - - const responsePromise = requestWithRetries(() => mockFetch(), 1); - await jest.runAllTimersAsync(); - const response = await responsePromise; - - // Should use the date-based delay (approximately 3000ms, but with jitter) - expect(setTimeoutSpy).toHaveBeenCalledWith(expect.any(Function), expect.any(Number)); - const actualDelay = setTimeoutSpy.mock.calls[0][1]; - expect(actualDelay).toBeGreaterThan(2000); - expect(actualDelay).toBeLessThan(4000); - expect(response.status).toBe(200); - }); - - it("should respect x-ratelimit-reset header", async () => { - setTimeoutSpy = jest.spyOn(global, "setTimeout").mockImplementation((callback: (args: void) => void) => { - process.nextTick(callback); - return null as any; - }); - - const resetTime = Math.floor((Date.now() + 4000) / 1000); // 4 seconds from now in Unix timestamp - mockFetch - .mockResolvedValueOnce( - new Response("", { - status: 429, - headers: new Headers({ "x-ratelimit-reset": resetTime.toString() }), - }), - ) - .mockResolvedValueOnce(new Response("", { status: 200 })); - - const responsePromise = requestWithRetries(() => mockFetch(), 1); - await jest.runAllTimersAsync(); - const response = await responsePromise; - - // Should use the x-ratelimit-reset delay (approximately 4000ms, but with positive jitter) - expect(setTimeoutSpy).toHaveBeenCalledWith(expect.any(Function), expect.any(Number)); - const actualDelay = setTimeoutSpy.mock.calls[0][1]; - expect(actualDelay).toBeGreaterThan(3000); - expect(actualDelay).toBeLessThan(6000); - expect(response.status).toBe(200); - }); - it("should cap delay at MAX_RETRY_DELAY for large header values", async () => { setTimeoutSpy = jest.spyOn(global, "setTimeout").mockImplementation((callback: (args: void) => void) => { process.nextTick(callback); @@ -228,8 +208,7 @@ describe("requestWithRetries", () => { await jest.runAllTimersAsync(); const response = await responsePromise; - // Should be capped at MAX_RETRY_DELAY (60000ms) with jitter applied - expect(setTimeoutSpy).toHaveBeenCalledWith(expect.any(Function), 60000); // Exactly MAX_RETRY_DELAY since jitter with 0.5 random keeps it at 60000 + expect(setTimeoutSpy).toHaveBeenCalledWith(expect.any(Function), 60000); expect(response.status).toBe(200); }); }); diff --git a/src/management/tests/unit/file/file.test.ts b/src/management/tests/unit/file/file.test.ts index 7bd4f373c6..0f742c51c0 100644 --- a/src/management/tests/unit/file/file.test.ts +++ b/src/management/tests/unit/file/file.test.ts @@ -1,7 +1,7 @@ import fs from "fs"; import { join } from "path"; import { Readable } from "stream"; -import { toBinaryUploadRequest, Uploadable } from "../../../../../src/management/core/file/index"; +import { toBinaryUploadRequest, type Uploadable } from "../../../../../src/management/core/file/index"; describe("toBinaryUploadRequest", () => { const TEST_FILE_PATH = join(__dirname, "..", "test-file.txt"); diff --git a/src/management/tests/unit/form-data-utils/formDataWrapper.test.ts b/src/management/tests/unit/form-data-utils/formDataWrapper.test.ts index af822ceba0..d57ab8f7eb 100644 --- a/src/management/tests/unit/form-data-utils/formDataWrapper.test.ts +++ b/src/management/tests/unit/form-data-utils/formDataWrapper.test.ts @@ -1,7 +1,7 @@ +import { Blob, File } from "buffer"; +import { join } from "path"; /* eslint-disable @typescript-eslint/ban-ts-comment */ import { Readable } from "stream"; -import { join } from "path"; -import { File, Blob } from "buffer"; import { FormDataWrapper, newFormData } from "../../../../../src/management/core/form-data-utils/FormDataWrapper"; // Helper function to serialize FormData to string for inspection diff --git a/src/management/tests/unit/logging/logger.test.ts b/src/management/tests/unit/logging/logger.test.ts new file mode 100644 index 0000000000..fc7836427b --- /dev/null +++ b/src/management/tests/unit/logging/logger.test.ts @@ -0,0 +1,454 @@ +import { ConsoleLogger, createLogger, Logger, LogLevel } from "../../../../../src/management/core/logging/logger"; + +function createMockLogger() { + return { + debug: jest.fn(), + info: jest.fn(), + warn: jest.fn(), + error: jest.fn(), + }; +} + +describe("Logger", () => { + describe("LogLevel", () => { + it("should have correct log levels", () => { + expect(LogLevel.Debug).toBe("debug"); + expect(LogLevel.Info).toBe("info"); + expect(LogLevel.Warn).toBe("warn"); + expect(LogLevel.Error).toBe("error"); + }); + }); + + describe("ConsoleLogger", () => { + let consoleLogger: ConsoleLogger; + let consoleSpy: { + debug: ReturnType; + info: ReturnType; + warn: ReturnType; + error: ReturnType; + }; + + beforeEach(() => { + consoleLogger = new ConsoleLogger(); + consoleSpy = { + debug: jest.spyOn(console, "debug").mockImplementation(() => {}), + info: jest.spyOn(console, "info").mockImplementation(() => {}), + warn: jest.spyOn(console, "warn").mockImplementation(() => {}), + error: jest.spyOn(console, "error").mockImplementation(() => {}), + }; + }); + + afterEach(() => { + consoleSpy.debug.mockRestore(); + consoleSpy.info.mockRestore(); + consoleSpy.warn.mockRestore(); + consoleSpy.error.mockRestore(); + }); + + it("should log debug messages", () => { + consoleLogger.debug("debug message", { data: "test" }); + expect(consoleSpy.debug).toHaveBeenCalledWith("debug message", { data: "test" }); + }); + + it("should log info messages", () => { + consoleLogger.info("info message", { data: "test" }); + expect(consoleSpy.info).toHaveBeenCalledWith("info message", { data: "test" }); + }); + + it("should log warn messages", () => { + consoleLogger.warn("warn message", { data: "test" }); + expect(consoleSpy.warn).toHaveBeenCalledWith("warn message", { data: "test" }); + }); + + it("should log error messages", () => { + consoleLogger.error("error message", { data: "test" }); + expect(consoleSpy.error).toHaveBeenCalledWith("error message", { data: "test" }); + }); + + it("should handle multiple arguments", () => { + consoleLogger.debug("message", "arg1", "arg2", { key: "value" }); + expect(consoleSpy.debug).toHaveBeenCalledWith("message", "arg1", "arg2", { key: "value" }); + }); + }); + + describe("Logger with level filtering", () => { + let mockLogger: { + debug: ReturnType; + info: ReturnType; + warn: ReturnType; + error: ReturnType; + }; + + beforeEach(() => { + mockLogger = createMockLogger(); + }); + + describe("Debug level", () => { + it("should log all levels when set to debug", () => { + const logger = new Logger({ + level: LogLevel.Debug, + logger: mockLogger, + silent: false, + }); + + logger.debug("debug"); + logger.info("info"); + logger.warn("warn"); + logger.error("error"); + + expect(mockLogger.debug).toHaveBeenCalledWith("debug"); + expect(mockLogger.info).toHaveBeenCalledWith("info"); + expect(mockLogger.warn).toHaveBeenCalledWith("warn"); + expect(mockLogger.error).toHaveBeenCalledWith("error"); + }); + + it("should report correct level checks", () => { + const logger = new Logger({ + level: LogLevel.Debug, + logger: mockLogger, + silent: false, + }); + + expect(logger.isDebug()).toBe(true); + expect(logger.isInfo()).toBe(true); + expect(logger.isWarn()).toBe(true); + expect(logger.isError()).toBe(true); + }); + }); + + describe("Info level", () => { + it("should log info, warn, and error when set to info", () => { + const logger = new Logger({ + level: LogLevel.Info, + logger: mockLogger, + silent: false, + }); + + logger.debug("debug"); + logger.info("info"); + logger.warn("warn"); + logger.error("error"); + + expect(mockLogger.debug).not.toHaveBeenCalled(); + expect(mockLogger.info).toHaveBeenCalledWith("info"); + expect(mockLogger.warn).toHaveBeenCalledWith("warn"); + expect(mockLogger.error).toHaveBeenCalledWith("error"); + }); + + it("should report correct level checks", () => { + const logger = new Logger({ + level: LogLevel.Info, + logger: mockLogger, + silent: false, + }); + + expect(logger.isDebug()).toBe(false); + expect(logger.isInfo()).toBe(true); + expect(logger.isWarn()).toBe(true); + expect(logger.isError()).toBe(true); + }); + }); + + describe("Warn level", () => { + it("should log warn and error when set to warn", () => { + const logger = new Logger({ + level: LogLevel.Warn, + logger: mockLogger, + silent: false, + }); + + logger.debug("debug"); + logger.info("info"); + logger.warn("warn"); + logger.error("error"); + + expect(mockLogger.debug).not.toHaveBeenCalled(); + expect(mockLogger.info).not.toHaveBeenCalled(); + expect(mockLogger.warn).toHaveBeenCalledWith("warn"); + expect(mockLogger.error).toHaveBeenCalledWith("error"); + }); + + it("should report correct level checks", () => { + const logger = new Logger({ + level: LogLevel.Warn, + logger: mockLogger, + silent: false, + }); + + expect(logger.isDebug()).toBe(false); + expect(logger.isInfo()).toBe(false); + expect(logger.isWarn()).toBe(true); + expect(logger.isError()).toBe(true); + }); + }); + + describe("Error level", () => { + it("should only log error when set to error", () => { + const logger = new Logger({ + level: LogLevel.Error, + logger: mockLogger, + silent: false, + }); + + logger.debug("debug"); + logger.info("info"); + logger.warn("warn"); + logger.error("error"); + + expect(mockLogger.debug).not.toHaveBeenCalled(); + expect(mockLogger.info).not.toHaveBeenCalled(); + expect(mockLogger.warn).not.toHaveBeenCalled(); + expect(mockLogger.error).toHaveBeenCalledWith("error"); + }); + + it("should report correct level checks", () => { + const logger = new Logger({ + level: LogLevel.Error, + logger: mockLogger, + silent: false, + }); + + expect(logger.isDebug()).toBe(false); + expect(logger.isInfo()).toBe(false); + expect(logger.isWarn()).toBe(false); + expect(logger.isError()).toBe(true); + }); + }); + + describe("Silent mode", () => { + it("should not log anything when silent is true", () => { + const logger = new Logger({ + level: LogLevel.Debug, + logger: mockLogger, + silent: true, + }); + + logger.debug("debug"); + logger.info("info"); + logger.warn("warn"); + logger.error("error"); + + expect(mockLogger.debug).not.toHaveBeenCalled(); + expect(mockLogger.info).not.toHaveBeenCalled(); + expect(mockLogger.warn).not.toHaveBeenCalled(); + expect(mockLogger.error).not.toHaveBeenCalled(); + }); + + it("should report all level checks as false when silent", () => { + const logger = new Logger({ + level: LogLevel.Debug, + logger: mockLogger, + silent: true, + }); + + expect(logger.isDebug()).toBe(false); + expect(logger.isInfo()).toBe(false); + expect(logger.isWarn()).toBe(false); + expect(logger.isError()).toBe(false); + }); + }); + + describe("shouldLog", () => { + it("should correctly determine if level should be logged", () => { + const logger = new Logger({ + level: LogLevel.Info, + logger: mockLogger, + silent: false, + }); + + expect(logger.shouldLog(LogLevel.Debug)).toBe(false); + expect(logger.shouldLog(LogLevel.Info)).toBe(true); + expect(logger.shouldLog(LogLevel.Warn)).toBe(true); + expect(logger.shouldLog(LogLevel.Error)).toBe(true); + }); + + it("should return false for all levels when silent", () => { + const logger = new Logger({ + level: LogLevel.Debug, + logger: mockLogger, + silent: true, + }); + + expect(logger.shouldLog(LogLevel.Debug)).toBe(false); + expect(logger.shouldLog(LogLevel.Info)).toBe(false); + expect(logger.shouldLog(LogLevel.Warn)).toBe(false); + expect(logger.shouldLog(LogLevel.Error)).toBe(false); + }); + }); + + describe("Multiple arguments", () => { + it("should pass multiple arguments to logger", () => { + const logger = new Logger({ + level: LogLevel.Debug, + logger: mockLogger, + silent: false, + }); + + logger.debug("message", "arg1", { key: "value" }, 123); + expect(mockLogger.debug).toHaveBeenCalledWith("message", "arg1", { key: "value" }, 123); + }); + }); + }); + + describe("createLogger", () => { + it("should return default logger when no config provided", () => { + const logger = createLogger(); + expect(logger).toBeInstanceOf(Logger); + }); + + it("should return same logger instance when Logger is passed", () => { + const customLogger = new Logger({ + level: LogLevel.Debug, + logger: new ConsoleLogger(), + silent: false, + }); + + const result = createLogger(customLogger); + expect(result).toBe(customLogger); + }); + + it("should create logger with custom config", () => { + const mockLogger = createMockLogger(); + + const logger = createLogger({ + level: LogLevel.Warn, + logger: mockLogger, + silent: false, + }); + + expect(logger).toBeInstanceOf(Logger); + logger.warn("test"); + expect(mockLogger.warn).toHaveBeenCalledWith("test"); + }); + + it("should use default values for missing config", () => { + const logger = createLogger({}); + expect(logger).toBeInstanceOf(Logger); + }); + + it("should override default level", () => { + const mockLogger = createMockLogger(); + + const logger = createLogger({ + level: LogLevel.Debug, + logger: mockLogger, + silent: false, + }); + + logger.debug("test"); + expect(mockLogger.debug).toHaveBeenCalledWith("test"); + }); + + it("should override default silent mode", () => { + const mockLogger = createMockLogger(); + + const logger = createLogger({ + logger: mockLogger, + silent: false, + }); + + logger.info("test"); + expect(mockLogger.info).toHaveBeenCalledWith("test"); + }); + + it("should use provided logger implementation", () => { + const customLogger = createMockLogger(); + + const logger = createLogger({ + logger: customLogger, + level: LogLevel.Debug, + silent: false, + }); + + logger.debug("test"); + expect(customLogger.debug).toHaveBeenCalledWith("test"); + }); + + it("should default to silent: true", () => { + const mockLogger = createMockLogger(); + + const logger = createLogger({ + logger: mockLogger, + level: LogLevel.Debug, + }); + + logger.debug("test"); + expect(mockLogger.debug).not.toHaveBeenCalled(); + }); + }); + + describe("Default logger", () => { + it("should have silent: true by default", () => { + const logger = createLogger(); + expect(logger.shouldLog(LogLevel.Info)).toBe(false); + }); + + it("should not log when using default logger", () => { + const logger = createLogger(); + + logger.info("test"); + expect(logger.isInfo()).toBe(false); + }); + }); + + describe("Edge cases", () => { + it("should handle empty message", () => { + const mockLogger = createMockLogger(); + + const logger = new Logger({ + level: LogLevel.Debug, + logger: mockLogger, + silent: false, + }); + + logger.debug(""); + expect(mockLogger.debug).toHaveBeenCalledWith(""); + }); + + it("should handle no arguments", () => { + const mockLogger = createMockLogger(); + + const logger = new Logger({ + level: LogLevel.Debug, + logger: mockLogger, + silent: false, + }); + + logger.debug("message"); + expect(mockLogger.debug).toHaveBeenCalledWith("message"); + }); + + it("should handle complex objects", () => { + const mockLogger = createMockLogger(); + + const logger = new Logger({ + level: LogLevel.Debug, + logger: mockLogger, + silent: false, + }); + + const complexObject = { + nested: { key: "value" }, + array: [1, 2, 3], + fn: () => "test", + }; + + logger.debug("message", complexObject); + expect(mockLogger.debug).toHaveBeenCalledWith("message", complexObject); + }); + + it("should handle errors as arguments", () => { + const mockLogger = createMockLogger(); + + const logger = new Logger({ + level: LogLevel.Error, + logger: mockLogger, + silent: false, + }); + + const error = new Error("Test error"); + logger.error("Error occurred", error); + expect(mockLogger.error).toHaveBeenCalledWith("Error occurred", error); + }); + }); +}); diff --git a/src/management/tests/unit/url/join.test.ts b/src/management/tests/unit/url/join.test.ts index 28e842a807..91a190509a 100644 --- a/src/management/tests/unit/url/join.test.ts +++ b/src/management/tests/unit/url/join.test.ts @@ -1,88 +1,223 @@ import { join } from "../../../../../src/management/core/url/index"; describe("join", () => { - describe("basic functionality", () => { - it("should return empty string for empty base", () => { - expect(join("")).toBe(""); - expect(join("", "path")).toBe(""); - }); + interface TestCase { + description: string; + base: string; + segments: string[]; + expected: string; + } - it("should handle single segment", () => { - expect(join("base", "segment")).toBe("base/segment"); - expect(join("base/", "segment")).toBe("base/segment"); - expect(join("base", "/segment")).toBe("base/segment"); - expect(join("base/", "/segment")).toBe("base/segment"); - }); + describe("basic functionality", () => { + const basicTests: TestCase[] = [ + { description: "should return empty string for empty base", base: "", segments: [], expected: "" }, + { + description: "should return empty string for empty base with path", + base: "", + segments: ["path"], + expected: "", + }, + { + description: "should handle single segment", + base: "base", + segments: ["segment"], + expected: "base/segment", + }, + { + description: "should handle single segment with trailing slash on base", + base: "base/", + segments: ["segment"], + expected: "base/segment", + }, + { + description: "should handle single segment with leading slash", + base: "base", + segments: ["/segment"], + expected: "base/segment", + }, + { + description: "should handle single segment with both slashes", + base: "base/", + segments: ["/segment"], + expected: "base/segment", + }, + { + description: "should handle multiple segments", + base: "base", + segments: ["path1", "path2", "path3"], + expected: "base/path1/path2/path3", + }, + { + description: "should handle multiple segments with slashes", + base: "base/", + segments: ["/path1/", "/path2/", "/path3/"], + expected: "base/path1/path2/path3/", + }, + ]; - it("should handle multiple segments", () => { - expect(join("base", "path1", "path2", "path3")).toBe("base/path1/path2/path3"); - expect(join("base/", "/path1/", "/path2/", "/path3/")).toBe("base/path1/path2/path3/"); + basicTests.forEach(({ description, base, segments, expected }) => { + it(description, () => { + expect(join(base, ...segments)).toBe(expected); + }); }); }); describe("URL handling", () => { - it("should handle absolute URLs", () => { - expect(join("https://example.com", "api", "v1")).toBe("https://example.com/api/v1"); - expect(join("https://example.com/", "/api/", "/v1/")).toBe("https://example.com/api/v1/"); - expect(join("https://example.com/base", "api", "v1")).toBe("https://example.com/base/api/v1"); - }); + const urlTests: TestCase[] = [ + { + description: "should handle absolute URLs", + base: "https://example.com", + segments: ["api", "v1"], + expected: "https://example.com/api/v1", + }, + { + description: "should handle absolute URLs with slashes", + base: "https://example.com/", + segments: ["/api/", "/v1/"], + expected: "https://example.com/api/v1/", + }, + { + description: "should handle absolute URLs with base path", + base: "https://example.com/base", + segments: ["api", "v1"], + expected: "https://example.com/base/api/v1", + }, + { + description: "should preserve URL query parameters", + base: "https://example.com?query=1", + segments: ["api"], + expected: "https://example.com/api?query=1", + }, + { + description: "should preserve URL fragments", + base: "https://example.com#fragment", + segments: ["api"], + expected: "https://example.com/api#fragment", + }, + { + description: "should preserve URL query and fragments", + base: "https://example.com?query=1#fragment", + segments: ["api"], + expected: "https://example.com/api?query=1#fragment", + }, + { + description: "should handle http protocol", + base: "http://example.com", + segments: ["api"], + expected: "http://example.com/api", + }, + { + description: "should handle ftp protocol", + base: "ftp://example.com", + segments: ["files"], + expected: "ftp://example.com/files", + }, + { + description: "should handle ws protocol", + base: "ws://example.com", + segments: ["socket"], + expected: "ws://example.com/socket", + }, + { + description: "should fallback to path joining for malformed URLs", + base: "not-a-url://", + segments: ["path"], + expected: "not-a-url:///path", + }, + ]; - it("should preserve URL query parameters and fragments", () => { - expect(join("https://example.com?query=1", "api")).toBe("https://example.com/api?query=1"); - expect(join("https://example.com#fragment", "api")).toBe("https://example.com/api#fragment"); - expect(join("https://example.com?query=1#fragment", "api")).toBe( - "https://example.com/api?query=1#fragment", - ); - }); - - it("should handle different protocols", () => { - expect(join("http://example.com", "api")).toBe("http://example.com/api"); - expect(join("ftp://example.com", "files")).toBe("ftp://example.com/files"); - expect(join("ws://example.com", "socket")).toBe("ws://example.com/socket"); - }); - - it("should fallback to path joining for malformed URLs", () => { - expect(join("not-a-url://", "path")).toBe("not-a-url:///path"); + urlTests.forEach(({ description, base, segments, expected }) => { + it(description, () => { + expect(join(base, ...segments)).toBe(expected); + }); }); }); describe("edge cases", () => { - it("should handle empty segments", () => { - expect(join("base", "", "path")).toBe("base/path"); - expect(join("base", null as any, "path")).toBe("base/path"); - expect(join("base", undefined as any, "path")).toBe("base/path"); - }); - - it("should handle segments with only slashes", () => { - expect(join("base", "/", "path")).toBe("base/path"); - expect(join("base", "//", "path")).toBe("base/path"); - }); - - it("should handle base paths with trailing slashes", () => { - expect(join("base/", "path")).toBe("base/path"); - }); + const edgeCaseTests: TestCase[] = [ + { + description: "should handle empty segments", + base: "base", + segments: ["", "path"], + expected: "base/path", + }, + { + description: "should handle null segments", + base: "base", + segments: [null as any, "path"], + expected: "base/path", + }, + { + description: "should handle undefined segments", + base: "base", + segments: [undefined as any, "path"], + expected: "base/path", + }, + { + description: "should handle segments with only single slash", + base: "base", + segments: ["/", "path"], + expected: "base/path", + }, + { + description: "should handle segments with only double slash", + base: "base", + segments: ["//", "path"], + expected: "base/path", + }, + { + description: "should handle base paths with trailing slashes", + base: "base/", + segments: ["path"], + expected: "base/path", + }, + { + description: "should handle complex nested paths", + base: "api/v1/", + segments: ["/users/", "/123/", "/profile"], + expected: "api/v1/users/123/profile", + }, + ]; - it("should handle complex nested paths", () => { - expect(join("api/v1/", "/users/", "/123/", "/profile")).toBe("api/v1/users/123/profile"); + edgeCaseTests.forEach(({ description, base, segments, expected }) => { + it(description, () => { + expect(join(base, ...segments)).toBe(expected); + }); }); }); describe("real-world scenarios", () => { - it("should handle API endpoint construction", () => { - const baseUrl = "https://api.example.com/v1"; - expect(join(baseUrl, "users", "123", "posts")).toBe("https://api.example.com/v1/users/123/posts"); - }); - - it("should handle file path construction", () => { - expect(join("/var/www", "html", "assets", "images")).toBe("/var/www/html/assets/images"); - }); + const realWorldTests: TestCase[] = [ + { + description: "should handle API endpoint construction", + base: "https://api.example.com/v1", + segments: ["users", "123", "posts"], + expected: "https://api.example.com/v1/users/123/posts", + }, + { + description: "should handle file path construction", + base: "/var/www", + segments: ["html", "assets", "images"], + expected: "/var/www/html/assets/images", + }, + { + description: "should handle relative path construction", + base: "../parent", + segments: ["child", "grandchild"], + expected: "../parent/child/grandchild", + }, + { + description: "should handle Windows-style paths", + base: "C:\\Users", + segments: ["Documents", "file.txt"], + expected: "C:\\Users/Documents/file.txt", + }, + ]; - it("should handle relative path construction", () => { - expect(join("../parent", "child", "grandchild")).toBe("../parent/child/grandchild"); - }); - - it("should handle Windows-style paths", () => { - expect(join("C:\\Users", "Documents", "file.txt")).toBe("C:\\Users/Documents/file.txt"); + realWorldTests.forEach(({ description, base, segments, expected }) => { + it(description, () => { + expect(join(base, ...segments)).toBe(expected); + }); }); }); @@ -90,7 +225,7 @@ describe("join", () => { it("should handle many segments efficiently", () => { const segments = Array(100).fill("segment"); const result = join("base", ...segments); - expect(result).toBe("base/" + segments.join("/")); + expect(result).toBe(`base/${segments.join("/")}`); }); it("should handle long URLs", () => { @@ -100,21 +235,50 @@ describe("join", () => { }); describe("trailing slash preservation", () => { - it("should preserve trailing slash on final result when base has trailing slash and no segments", () => { - expect(join("https://api.example.com/")).toBe("https://api.example.com/"); - expect(join("https://api.example.com/v1/")).toBe("https://api.example.com/v1/"); - }); - - it("should preserve trailing slash when last segment has trailing slash", () => { - expect(join("https://api.example.com", "users/")).toBe("https://api.example.com/users/"); - expect(join("api/v1", "users/")).toBe("api/v1/users/"); - }); + const trailingSlashTests: TestCase[] = [ + { + description: + "should preserve trailing slash on final result when base has trailing slash and no segments", + base: "https://api.example.com/", + segments: [], + expected: "https://api.example.com/", + }, + { + description: "should preserve trailing slash on v1 path", + base: "https://api.example.com/v1/", + segments: [], + expected: "https://api.example.com/v1/", + }, + { + description: "should preserve trailing slash when last segment has trailing slash", + base: "https://api.example.com", + segments: ["users/"], + expected: "https://api.example.com/users/", + }, + { + description: "should preserve trailing slash with relative path", + base: "api/v1", + segments: ["users/"], + expected: "api/v1/users/", + }, + { + description: "should preserve trailing slash with multiple segments", + base: "https://api.example.com", + segments: ["v1", "collections/"], + expected: "https://api.example.com/v1/collections/", + }, + { + description: "should preserve trailing slash with base path", + base: "base", + segments: ["path1", "path2/"], + expected: "base/path1/path2/", + }, + ]; - it("should preserve trailing slash with multiple segments where last has trailing slash", () => { - expect(join("https://api.example.com", "v1", "collections/")).toBe( - "https://api.example.com/v1/collections/", - ); - expect(join("base", "path1", "path2/")).toBe("base/path1/path2/"); + trailingSlashTests.forEach(({ description, base, segments, expected }) => { + it(description, () => { + expect(join(base, ...segments)).toBe(expected); + }); }); }); }); diff --git a/src/management/tests/unit/url/qs.test.ts b/src/management/tests/unit/url/qs.test.ts index 9390795fbf..66172c760c 100644 --- a/src/management/tests/unit/url/qs.test.ts +++ b/src/management/tests/unit/url/qs.test.ts @@ -1,187 +1,278 @@ import { toQueryString } from "../../../../../src/management/core/url/index"; describe("Test qs toQueryString", () => { - describe("Basic functionality", () => { - it("should return empty string for null/undefined", () => { - expect(toQueryString(null)).toBe(""); - expect(toQueryString(undefined)).toBe(""); - }); + interface BasicTestCase { + description: string; + input: any; + expected: string; + } - it("should return empty string for primitive values", () => { - expect(toQueryString("hello")).toBe(""); - expect(toQueryString(42)).toBe(""); - expect(toQueryString(true)).toBe(""); - expect(toQueryString(false)).toBe(""); - }); - - it("should handle empty objects", () => { - expect(toQueryString({})).toBe(""); - }); + describe("Basic functionality", () => { + const basicTests: BasicTestCase[] = [ + { description: "should return empty string for null", input: null, expected: "" }, + { description: "should return empty string for undefined", input: undefined, expected: "" }, + { description: "should return empty string for string primitive", input: "hello", expected: "" }, + { description: "should return empty string for number primitive", input: 42, expected: "" }, + { description: "should return empty string for true boolean", input: true, expected: "" }, + { description: "should return empty string for false boolean", input: false, expected: "" }, + { description: "should handle empty objects", input: {}, expected: "" }, + { + description: "should handle simple key-value pairs", + input: { name: "John", age: 30 }, + expected: "name=John&age=30", + }, + ]; - it("should handle simple key-value pairs", () => { - const obj = { name: "John", age: 30 }; - expect(toQueryString(obj)).toBe("name=John&age=30"); + basicTests.forEach(({ description, input, expected }) => { + it(description, () => { + expect(toQueryString(input)).toBe(expected); + }); }); }); describe("Array handling", () => { - it("should handle arrays with indices format (default)", () => { - const obj = { items: ["a", "b", "c"] }; - expect(toQueryString(obj)).toBe("items%5B0%5D=a&items%5B1%5D=b&items%5B2%5D=c"); - }); - - it("should handle arrays with repeat format", () => { - const obj = { items: ["a", "b", "c"] }; - expect(toQueryString(obj, { arrayFormat: "repeat" })).toBe("items=a&items=b&items=c"); - }); + interface ArrayTestCase { + description: string; + input: any; + options?: { arrayFormat?: "repeat" | "indices" }; + expected: string; + } - it("should handle empty arrays", () => { - const obj = { items: [] }; - expect(toQueryString(obj)).toBe(""); - }); - - it("should handle arrays with mixed types", () => { - const obj = { mixed: ["string", 42, true, false] }; - expect(toQueryString(obj)).toBe("mixed%5B0%5D=string&mixed%5B1%5D=42&mixed%5B2%5D=true&mixed%5B3%5D=false"); - }); - - it("should handle arrays with objects", () => { - const obj = { users: [{ name: "John" }, { name: "Jane" }] }; - expect(toQueryString(obj)).toBe("users%5B0%5D%5Bname%5D=John&users%5B1%5D%5Bname%5D=Jane"); - }); + const arrayTests: ArrayTestCase[] = [ + { + description: "should handle arrays with indices format (default)", + input: { items: ["a", "b", "c"] }, + expected: "items%5B0%5D=a&items%5B1%5D=b&items%5B2%5D=c", + }, + { + description: "should handle arrays with repeat format", + input: { items: ["a", "b", "c"] }, + options: { arrayFormat: "repeat" }, + expected: "items=a&items=b&items=c", + }, + { + description: "should handle empty arrays", + input: { items: [] }, + expected: "", + }, + { + description: "should handle arrays with mixed types", + input: { mixed: ["string", 42, true, false] }, + expected: "mixed%5B0%5D=string&mixed%5B1%5D=42&mixed%5B2%5D=true&mixed%5B3%5D=false", + }, + { + description: "should handle arrays with objects", + input: { users: [{ name: "John" }, { name: "Jane" }] }, + expected: "users%5B0%5D%5Bname%5D=John&users%5B1%5D%5Bname%5D=Jane", + }, + { + description: "should handle arrays with objects in repeat format", + input: { users: [{ name: "John" }, { name: "Jane" }] }, + options: { arrayFormat: "repeat" }, + expected: "users%5Bname%5D=John&users%5Bname%5D=Jane", + }, + ]; - it("should handle arrays with objects in repeat format", () => { - const obj = { users: [{ name: "John" }, { name: "Jane" }] }; - expect(toQueryString(obj, { arrayFormat: "repeat" })).toBe("users%5Bname%5D=John&users%5Bname%5D=Jane"); + arrayTests.forEach(({ description, input, options, expected }) => { + it(description, () => { + expect(toQueryString(input, options)).toBe(expected); + }); }); }); describe("Nested objects", () => { - it("should handle nested objects", () => { - const obj = { user: { name: "John", age: 30 } }; - expect(toQueryString(obj)).toBe("user%5Bname%5D=John&user%5Bage%5D=30"); - }); - - it("should handle deeply nested objects", () => { - const obj = { user: { profile: { name: "John", settings: { theme: "dark" } } } }; - expect(toQueryString(obj)).toBe( - "user%5Bprofile%5D%5Bname%5D=John&user%5Bprofile%5D%5Bsettings%5D%5Btheme%5D=dark", - ); - }); + const nestedTests: BasicTestCase[] = [ + { + description: "should handle nested objects", + input: { user: { name: "John", age: 30 } }, + expected: "user%5Bname%5D=John&user%5Bage%5D=30", + }, + { + description: "should handle deeply nested objects", + input: { user: { profile: { name: "John", settings: { theme: "dark" } } } }, + expected: "user%5Bprofile%5D%5Bname%5D=John&user%5Bprofile%5D%5Bsettings%5D%5Btheme%5D=dark", + }, + { + description: "should handle empty nested objects", + input: { user: {} }, + expected: "", + }, + ]; - it("should handle empty nested objects", () => { - const obj = { user: {} }; - expect(toQueryString(obj)).toBe(""); + nestedTests.forEach(({ description, input, expected }) => { + it(description, () => { + expect(toQueryString(input)).toBe(expected); + }); }); }); describe("Encoding", () => { - it("should encode by default", () => { - const obj = { name: "John Doe", email: "john@example.com" }; - expect(toQueryString(obj)).toBe("name=John%20Doe&email=john%40example.com"); - }); + interface EncodingTestCase { + description: string; + input: any; + options?: { encode?: boolean }; + expected: string; + } - it("should not encode when encode is false", () => { - const obj = { name: "John Doe", email: "john@example.com" }; - expect(toQueryString(obj, { encode: false })).toBe("name=John Doe&email=john@example.com"); - }); - - it("should encode special characters in keys", () => { - const obj = { "user name": "John", "email[primary]": "john@example.com" }; - expect(toQueryString(obj)).toBe("user%20name=John&email%5Bprimary%5D=john%40example.com"); - }); + const encodingTests: EncodingTestCase[] = [ + { + description: "should encode by default", + input: { name: "John Doe", email: "john@example.com" }, + expected: "name=John%20Doe&email=john%40example.com", + }, + { + description: "should not encode when encode is false", + input: { name: "John Doe", email: "john@example.com" }, + options: { encode: false }, + expected: "name=John Doe&email=john@example.com", + }, + { + description: "should encode special characters in keys", + input: { "user name": "John", "email[primary]": "john@example.com" }, + expected: "user%20name=John&email%5Bprimary%5D=john%40example.com", + }, + { + description: "should not encode special characters in keys when encode is false", + input: { "user name": "John", "email[primary]": "john@example.com" }, + options: { encode: false }, + expected: "user name=John&email[primary]=john@example.com", + }, + ]; - it("should not encode special characters in keys when encode is false", () => { - const obj = { "user name": "John", "email[primary]": "john@example.com" }; - expect(toQueryString(obj, { encode: false })).toBe("user name=John&email[primary]=john@example.com"); + encodingTests.forEach(({ description, input, options, expected }) => { + it(description, () => { + expect(toQueryString(input, options)).toBe(expected); + }); }); }); describe("Mixed scenarios", () => { - it("should handle complex nested structures", () => { - const obj = { - filters: { - status: ["active", "pending"], - category: { - type: "electronics", - subcategories: ["phones", "laptops"], + interface MixedTestCase { + description: string; + input: any; + options?: { arrayFormat?: "repeat" | "indices" }; + expected: string; + } + + const mixedTests: MixedTestCase[] = [ + { + description: "should handle complex nested structures", + input: { + filters: { + status: ["active", "pending"], + category: { + type: "electronics", + subcategories: ["phones", "laptops"], + }, }, + sort: { field: "name", direction: "asc" }, }, - sort: { field: "name", direction: "asc" }, - }; - expect(toQueryString(obj)).toBe( - "filters%5Bstatus%5D%5B0%5D=active&filters%5Bstatus%5D%5B1%5D=pending&filters%5Bcategory%5D%5Btype%5D=electronics&filters%5Bcategory%5D%5Bsubcategories%5D%5B0%5D=phones&filters%5Bcategory%5D%5Bsubcategories%5D%5B1%5D=laptops&sort%5Bfield%5D=name&sort%5Bdirection%5D=asc", - ); - }); - - it("should handle complex nested structures with repeat format", () => { - const obj = { - filters: { - status: ["active", "pending"], - category: { - type: "electronics", - subcategories: ["phones", "laptops"], + expected: + "filters%5Bstatus%5D%5B0%5D=active&filters%5Bstatus%5D%5B1%5D=pending&filters%5Bcategory%5D%5Btype%5D=electronics&filters%5Bcategory%5D%5Bsubcategories%5D%5B0%5D=phones&filters%5Bcategory%5D%5Bsubcategories%5D%5B1%5D=laptops&sort%5Bfield%5D=name&sort%5Bdirection%5D=asc", + }, + { + description: "should handle complex nested structures with repeat format", + input: { + filters: { + status: ["active", "pending"], + category: { + type: "electronics", + subcategories: ["phones", "laptops"], + }, }, + sort: { field: "name", direction: "asc" }, }, - sort: { field: "name", direction: "asc" }, - }; - expect(toQueryString(obj, { arrayFormat: "repeat" })).toBe( - "filters%5Bstatus%5D=active&filters%5Bstatus%5D=pending&filters%5Bcategory%5D%5Btype%5D=electronics&filters%5Bcategory%5D%5Bsubcategories%5D=phones&filters%5Bcategory%5D%5Bsubcategories%5D=laptops&sort%5Bfield%5D=name&sort%5Bdirection%5D=asc", - ); - }); - - it("should handle arrays with null/undefined values", () => { - const obj = { items: ["a", null, "c", undefined, "e"] }; - expect(toQueryString(obj)).toBe("items%5B0%5D=a&items%5B1%5D=&items%5B2%5D=c&items%5B4%5D=e"); - }); + options: { arrayFormat: "repeat" }, + expected: + "filters%5Bstatus%5D=active&filters%5Bstatus%5D=pending&filters%5Bcategory%5D%5Btype%5D=electronics&filters%5Bcategory%5D%5Bsubcategories%5D=phones&filters%5Bcategory%5D%5Bsubcategories%5D=laptops&sort%5Bfield%5D=name&sort%5Bdirection%5D=asc", + }, + { + description: "should handle arrays with null/undefined values", + input: { items: ["a", null, "c", undefined, "e"] }, + expected: "items%5B0%5D=a&items%5B1%5D=&items%5B2%5D=c&items%5B4%5D=e", + }, + { + description: "should handle objects with null/undefined values", + input: { name: "John", age: null, email: undefined, active: true }, + expected: "name=John&age=&active=true", + }, + ]; - it("should handle objects with null/undefined values", () => { - const obj = { name: "John", age: null, email: undefined, active: true }; - expect(toQueryString(obj)).toBe("name=John&age=&active=true"); + mixedTests.forEach(({ description, input, options, expected }) => { + it(description, () => { + expect(toQueryString(input, options)).toBe(expected); + }); }); }); describe("Edge cases", () => { - it("should handle numeric keys", () => { - const obj = { "0": "zero", "1": "one" }; - expect(toQueryString(obj)).toBe("0=zero&1=one"); - }); - - it("should handle boolean values in objects", () => { - const obj = { enabled: true, disabled: false }; - expect(toQueryString(obj)).toBe("enabled=true&disabled=false"); - }); - - it("should handle empty strings", () => { - const obj = { name: "", description: "test" }; - expect(toQueryString(obj)).toBe("name=&description=test"); - }); + const edgeCaseTests: BasicTestCase[] = [ + { + description: "should handle numeric keys", + input: { "0": "zero", "1": "one" }, + expected: "0=zero&1=one", + }, + { + description: "should handle boolean values in objects", + input: { enabled: true, disabled: false }, + expected: "enabled=true&disabled=false", + }, + { + description: "should handle empty strings", + input: { name: "", description: "test" }, + expected: "name=&description=test", + }, + { + description: "should handle zero values", + input: { count: 0, price: 0.0 }, + expected: "count=0&price=0", + }, + { + description: "should handle arrays with empty strings", + input: { items: ["a", "", "c"] }, + expected: "items%5B0%5D=a&items%5B1%5D=&items%5B2%5D=c", + }, + ]; - it("should handle zero values", () => { - const obj = { count: 0, price: 0.0 }; - expect(toQueryString(obj)).toBe("count=0&price=0"); - }); - - it("should handle arrays with empty strings", () => { - const obj = { items: ["a", "", "c"] }; - expect(toQueryString(obj)).toBe("items%5B0%5D=a&items%5B1%5D=&items%5B2%5D=c"); + edgeCaseTests.forEach(({ description, input, expected }) => { + it(description, () => { + expect(toQueryString(input)).toBe(expected); + }); }); }); describe("Options combinations", () => { - it("should respect both arrayFormat and encode options", () => { - const obj = { items: ["a & b", "c & d"] }; - expect(toQueryString(obj, { arrayFormat: "repeat", encode: false })).toBe("items=a & b&items=c & d"); - }); + interface OptionsTestCase { + description: string; + input: any; + options?: { arrayFormat?: "repeat" | "indices"; encode?: boolean }; + expected: string; + } - it("should use default options when none provided", () => { - const obj = { items: ["a", "b"] }; - expect(toQueryString(obj)).toBe("items%5B0%5D=a&items%5B1%5D=b"); - }); + const optionsTests: OptionsTestCase[] = [ + { + description: "should respect both arrayFormat and encode options", + input: { items: ["a & b", "c & d"] }, + options: { arrayFormat: "repeat", encode: false }, + expected: "items=a & b&items=c & d", + }, + { + description: "should use default options when none provided", + input: { items: ["a", "b"] }, + expected: "items%5B0%5D=a&items%5B1%5D=b", + }, + { + description: "should merge provided options with defaults", + input: { items: ["a", "b"], name: "John Doe" }, + options: { encode: false }, + expected: "items[0]=a&items[1]=b&name=John Doe", + }, + ]; - it("should merge provided options with defaults", () => { - const obj = { items: ["a", "b"], name: "John Doe" }; - expect(toQueryString(obj, { encode: false })).toBe("items[0]=a&items[1]=b&name=John Doe"); + optionsTests.forEach(({ description, input, options, expected }) => { + it(description, () => { + expect(toQueryString(input, options)).toBe(expected); + }); }); }); }); diff --git a/src/management/tests/wire/actions.test.ts b/src/management/tests/wire/actions.test.ts index 6fa1addaae..ee769e3527 100644 --- a/src/management/tests/wire/actions.test.ts +++ b/src/management/tests/wire/actions.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../mock-server/MockServerPool"; -import { ManagementClient } from "../../Client"; import * as Management from "../../api/index"; +import { ManagementClient } from "../../Client"; +import { mockServerPool } from "../mock-server/MockServerPool"; -describe("Actions", () => { +describe("ActionsClient", () => { test("list (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { total: 1.1, @@ -32,7 +32,13 @@ describe("Actions", () => { }, ], }; - server.mockEndpoint().get("/actions/actions").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/actions/actions") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); const expected = { total: 1.1, @@ -78,10 +84,16 @@ describe("Actions", () => { test("list (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/actions/actions").respondWith().statusCode(400).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/actions/actions") + .respondWith() + .statusCode(400) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.actions.list(); @@ -90,10 +102,16 @@ describe("Actions", () => { test("list (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/actions/actions").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/actions/actions") + .respondWith() + .statusCode(401) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.actions.list(); @@ -102,10 +120,16 @@ describe("Actions", () => { test("list (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/actions/actions").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/actions/actions") + .respondWith() + .statusCode(403) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.actions.list(); @@ -114,10 +138,16 @@ describe("Actions", () => { test("list (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/actions/actions").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/actions/actions") + .respondWith() + .statusCode(429) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.actions.list(); @@ -126,7 +156,7 @@ describe("Actions", () => { test("create (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "name", supported_triggers: [{ id: "id" }] }; const rawResponseBody = { id: "id", @@ -319,7 +349,7 @@ describe("Actions", () => { test("create (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "my-action", supported_triggers: [{ id: "id" }, { id: "id" }] }; const rawResponseBody = { key: "value" }; server @@ -348,7 +378,7 @@ describe("Actions", () => { test("create (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "my-action", supported_triggers: [{ id: "id" }, { id: "id" }] }; const rawResponseBody = { key: "value" }; server @@ -377,7 +407,7 @@ describe("Actions", () => { test("create (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "my-action", supported_triggers: [{ id: "id" }, { id: "id" }] }; const rawResponseBody = { key: "value" }; server @@ -406,7 +436,7 @@ describe("Actions", () => { test("create (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "my-action", supported_triggers: [{ id: "id" }, { id: "id" }] }; const rawResponseBody = { key: "value" }; server @@ -435,7 +465,7 @@ describe("Actions", () => { test("get (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { id: "id", @@ -620,7 +650,7 @@ describe("Actions", () => { test("get (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -638,7 +668,7 @@ describe("Actions", () => { test("get (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -656,7 +686,7 @@ describe("Actions", () => { test("get (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -674,7 +704,7 @@ describe("Actions", () => { test("get (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -692,7 +722,7 @@ describe("Actions", () => { test("get (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -710,7 +740,7 @@ describe("Actions", () => { test("delete (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); server.mockEndpoint().delete("/actions/actions/id").respondWith().statusCode(200).build(); @@ -722,7 +752,7 @@ describe("Actions", () => { test("delete (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -740,7 +770,7 @@ describe("Actions", () => { test("delete (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -758,7 +788,7 @@ describe("Actions", () => { test("delete (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -776,7 +806,7 @@ describe("Actions", () => { test("delete (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -794,7 +824,7 @@ describe("Actions", () => { test("delete (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -812,7 +842,7 @@ describe("Actions", () => { test("update (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { id: "id", @@ -998,7 +1028,7 @@ describe("Actions", () => { test("update (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -1017,7 +1047,7 @@ describe("Actions", () => { test("update (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -1036,7 +1066,7 @@ describe("Actions", () => { test("update (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -1055,7 +1085,7 @@ describe("Actions", () => { test("update (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -1074,7 +1104,7 @@ describe("Actions", () => { test("update (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -1093,7 +1123,7 @@ describe("Actions", () => { test("deploy (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { id: "id", @@ -1202,7 +1232,7 @@ describe("Actions", () => { test("deploy (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -1220,7 +1250,7 @@ describe("Actions", () => { test("deploy (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -1238,7 +1268,7 @@ describe("Actions", () => { test("deploy (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -1256,7 +1286,7 @@ describe("Actions", () => { test("deploy (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -1274,7 +1304,7 @@ describe("Actions", () => { test("test (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { payload: { key: "value" } }; const rawResponseBody = { payload: { key: "value" } }; server @@ -1300,7 +1330,7 @@ describe("Actions", () => { test("test (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { payload: { payload: { key: "value" } } }; const rawResponseBody = { key: "value" }; server @@ -1325,7 +1355,7 @@ describe("Actions", () => { test("test (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { payload: { payload: { key: "value" } } }; const rawResponseBody = { key: "value" }; server @@ -1350,7 +1380,7 @@ describe("Actions", () => { test("test (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { payload: { payload: { key: "value" } } }; const rawResponseBody = { key: "value" }; server @@ -1375,7 +1405,7 @@ describe("Actions", () => { test("test (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { payload: { payload: { key: "value" } } }; const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/actions/executions.test.ts b/src/management/tests/wire/actions/executions.test.ts index c391f60695..1823e694cc 100644 --- a/src/management/tests/wire/actions/executions.test.ts +++ b/src/management/tests/wire/actions/executions.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../Client"; import * as Management from "../../../api/index"; +import { ManagementClient } from "../../../Client"; +import { mockServerPool } from "../../mock-server/MockServerPool"; -describe("Executions", () => { +describe("ExecutionsClient", () => { test("get (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { id: "id", @@ -46,7 +46,7 @@ describe("Executions", () => { test("get (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -64,7 +64,7 @@ describe("Executions", () => { test("get (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -82,7 +82,7 @@ describe("Executions", () => { test("get (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -100,7 +100,7 @@ describe("Executions", () => { test("get (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -118,7 +118,7 @@ describe("Executions", () => { test("get (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/actions/triggers.test.ts b/src/management/tests/wire/actions/triggers.test.ts index 076927f065..24bc96baa4 100644 --- a/src/management/tests/wire/actions/triggers.test.ts +++ b/src/management/tests/wire/actions/triggers.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../Client"; import * as Management from "../../../api/index"; +import { ManagementClient } from "../../../Client"; +import { mockServerPool } from "../../mock-server/MockServerPool"; -describe("Triggers", () => { +describe("TriggersClient", () => { test("list (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { triggers: [ @@ -47,7 +47,7 @@ describe("Triggers", () => { test("list (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/actions/triggers").respondWith().statusCode(400).jsonBody(rawResponseBody).build(); @@ -59,7 +59,7 @@ describe("Triggers", () => { test("list (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/actions/triggers").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); @@ -71,7 +71,7 @@ describe("Triggers", () => { test("list (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/actions/triggers").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); @@ -83,7 +83,7 @@ describe("Triggers", () => { test("list (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/actions/triggers").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); diff --git a/src/management/tests/wire/actions/triggers/bindings.test.ts b/src/management/tests/wire/actions/triggers/bindings.test.ts index 61f64d3651..0e2dc05e2e 100644 --- a/src/management/tests/wire/actions/triggers/bindings.test.ts +++ b/src/management/tests/wire/actions/triggers/bindings.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../../Client"; import * as Management from "../../../../api/index"; +import { ManagementClient } from "../../../../Client"; +import { mockServerPool } from "../../../mock-server/MockServerPool"; -describe("Bindings", () => { +describe("BindingsClient", () => { test("list (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { total: 1.1, @@ -24,7 +24,7 @@ describe("Bindings", () => { ], }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/actions/triggers/triggerId/bindings") .respondWith() .statusCode(200) @@ -58,11 +58,11 @@ describe("Bindings", () => { test("list (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/actions/triggers/triggerId/bindings") .respondWith() .statusCode(400) @@ -76,11 +76,11 @@ describe("Bindings", () => { test("list (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/actions/triggers/triggerId/bindings") .respondWith() .statusCode(401) @@ -94,11 +94,11 @@ describe("Bindings", () => { test("list (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/actions/triggers/triggerId/bindings") .respondWith() .statusCode(403) @@ -112,11 +112,11 @@ describe("Bindings", () => { test("list (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/actions/triggers/triggerId/bindings") .respondWith() .statusCode(429) @@ -130,7 +130,7 @@ describe("Bindings", () => { test("updateMany (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { bindings: [ @@ -168,7 +168,7 @@ describe("Bindings", () => { test("updateMany (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -187,7 +187,7 @@ describe("Bindings", () => { test("updateMany (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -206,7 +206,7 @@ describe("Bindings", () => { test("updateMany (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -225,7 +225,7 @@ describe("Bindings", () => { test("updateMany (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/actions/versions.test.ts b/src/management/tests/wire/actions/versions.test.ts index d4719f02e3..56dcaafd40 100644 --- a/src/management/tests/wire/actions/versions.test.ts +++ b/src/management/tests/wire/actions/versions.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../Client"; import * as Management from "../../../api/index"; +import { ManagementClient } from "../../../Client"; +import { mockServerPool } from "../../mock-server/MockServerPool"; -describe("Versions", () => { +describe("VersionsClient", () => { test("list (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { total: 1.1, @@ -33,7 +33,7 @@ describe("Versions", () => { ], }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/actions/actions/actionId/versions") .respondWith() .statusCode(200) @@ -80,11 +80,11 @@ describe("Versions", () => { test("list (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/actions/actions/actionId/versions") .respondWith() .statusCode(400) @@ -98,11 +98,11 @@ describe("Versions", () => { test("list (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/actions/actions/actionId/versions") .respondWith() .statusCode(401) @@ -116,11 +116,11 @@ describe("Versions", () => { test("list (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/actions/actions/actionId/versions") .respondWith() .statusCode(403) @@ -134,11 +134,11 @@ describe("Versions", () => { test("list (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/actions/actions/actionId/versions") .respondWith() .statusCode(429) @@ -152,7 +152,7 @@ describe("Versions", () => { test("get (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { id: "id", @@ -261,7 +261,7 @@ describe("Versions", () => { test("get (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -279,7 +279,7 @@ describe("Versions", () => { test("get (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -297,7 +297,7 @@ describe("Versions", () => { test("get (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -315,7 +315,7 @@ describe("Versions", () => { test("get (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -333,7 +333,7 @@ describe("Versions", () => { test("get (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -351,7 +351,7 @@ describe("Versions", () => { test("deploy (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { id: "id", @@ -460,7 +460,7 @@ describe("Versions", () => { test("deploy (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -478,7 +478,7 @@ describe("Versions", () => { test("deploy (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -496,7 +496,7 @@ describe("Versions", () => { test("deploy (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -514,7 +514,7 @@ describe("Versions", () => { test("deploy (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/anomaly/blocks.test.ts b/src/management/tests/wire/anomaly/blocks.test.ts index 7e65467e99..289baa9bfe 100644 --- a/src/management/tests/wire/anomaly/blocks.test.ts +++ b/src/management/tests/wire/anomaly/blocks.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../Client"; import * as Management from "../../../api/index"; +import { ManagementClient } from "../../../Client"; +import { mockServerPool } from "../../mock-server/MockServerPool"; -describe("Blocks", () => { +describe("BlocksClient", () => { test("checkIp (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); server.mockEndpoint().get("/anomaly/blocks/ips/id").respondWith().statusCode(200).build(); @@ -17,7 +17,7 @@ describe("Blocks", () => { test("checkIp (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -35,7 +35,7 @@ describe("Blocks", () => { test("checkIp (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -53,7 +53,7 @@ describe("Blocks", () => { test("checkIp (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -71,7 +71,7 @@ describe("Blocks", () => { test("checkIp (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -89,7 +89,7 @@ describe("Blocks", () => { test("checkIp (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -107,7 +107,7 @@ describe("Blocks", () => { test("unblockIp (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); server.mockEndpoint().delete("/anomaly/blocks/ips/id").respondWith().statusCode(200).build(); @@ -117,7 +117,7 @@ describe("Blocks", () => { test("unblockIp (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -135,7 +135,7 @@ describe("Blocks", () => { test("unblockIp (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -153,7 +153,7 @@ describe("Blocks", () => { test("unblockIp (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -171,7 +171,7 @@ describe("Blocks", () => { test("unblockIp (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/attackProtection/botDetection.test.ts b/src/management/tests/wire/attackProtection/botDetection.test.ts deleted file mode 100644 index 83cb5943f3..0000000000 --- a/src/management/tests/wire/attackProtection/botDetection.test.ts +++ /dev/null @@ -1,237 +0,0 @@ -// This file was auto-generated by Fern from our API Definition. - -import { mockServerPool } from "../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../Client"; -import * as Management from "../../../api/index"; - -describe("BotDetection", () => { - test("get (1)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { - bot_detection_level: "low", - challenge_password_policy: "never", - challenge_passwordless_policy: "never", - challenge_password_reset_policy: "never", - allowlist: ["allowlist"], - monitoring_mode_enabled: true, - }; - server - .mockEndpoint() - .get("/attack-protection/bot-detection") - .respondWith() - .statusCode(200) - .jsonBody(rawResponseBody) - .build(); - - const response = await client.attackProtection.botDetection.get(); - expect(response).toEqual({ - bot_detection_level: "low", - challenge_password_policy: "never", - challenge_passwordless_policy: "never", - challenge_password_reset_policy: "never", - allowlist: ["allowlist"], - monitoring_mode_enabled: true, - }); - }); - - test("get (2)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .get("/attack-protection/bot-detection") - .respondWith() - .statusCode(401) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.attackProtection.botDetection.get(); - }).rejects.toThrow(Management.UnauthorizedError); - }); - - test("get (3)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .get("/attack-protection/bot-detection") - .respondWith() - .statusCode(403) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.attackProtection.botDetection.get(); - }).rejects.toThrow(Management.ForbiddenError); - }); - - test("get (4)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .get("/attack-protection/bot-detection") - .respondWith() - .statusCode(404) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.attackProtection.botDetection.get(); - }).rejects.toThrow(Management.NotFoundError); - }); - - test("get (5)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .get("/attack-protection/bot-detection") - .respondWith() - .statusCode(429) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.attackProtection.botDetection.get(); - }).rejects.toThrow(Management.TooManyRequestsError); - }); - - test("update (1)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = {}; - const rawResponseBody = { - bot_detection_level: "low", - challenge_password_policy: "never", - challenge_passwordless_policy: "never", - challenge_password_reset_policy: "never", - allowlist: ["allowlist"], - monitoring_mode_enabled: true, - }; - server - .mockEndpoint() - .patch("/attack-protection/bot-detection") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(200) - .jsonBody(rawResponseBody) - .build(); - - const response = await client.attackProtection.botDetection.update(); - expect(response).toEqual({ - bot_detection_level: "low", - challenge_password_policy: "never", - challenge_passwordless_policy: "never", - challenge_password_reset_policy: "never", - allowlist: ["allowlist"], - monitoring_mode_enabled: true, - }); - }); - - test("update (2)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = {}; - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .patch("/attack-protection/bot-detection") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(400) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.attackProtection.botDetection.update(); - }).rejects.toThrow(Management.BadRequestError); - }); - - test("update (3)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = {}; - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .patch("/attack-protection/bot-detection") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(401) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.attackProtection.botDetection.update(); - }).rejects.toThrow(Management.UnauthorizedError); - }); - - test("update (4)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = {}; - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .patch("/attack-protection/bot-detection") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(403) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.attackProtection.botDetection.update(); - }).rejects.toThrow(Management.ForbiddenError); - }); - - test("update (5)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = {}; - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .patch("/attack-protection/bot-detection") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(404) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.attackProtection.botDetection.update(); - }).rejects.toThrow(Management.NotFoundError); - }); - - test("update (6)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = {}; - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .patch("/attack-protection/bot-detection") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(429) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.attackProtection.botDetection.update(); - }).rejects.toThrow(Management.TooManyRequestsError); - }); -}); diff --git a/src/management/tests/wire/attackProtection/breachedPasswordDetection.test.ts b/src/management/tests/wire/attackProtection/breachedPasswordDetection.test.ts index d685223536..6151509ffc 100644 --- a/src/management/tests/wire/attackProtection/breachedPasswordDetection.test.ts +++ b/src/management/tests/wire/attackProtection/breachedPasswordDetection.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../Client"; import * as Management from "../../../api/index"; +import { ManagementClient } from "../../../Client"; +import { mockServerPool } from "../../mock-server/MockServerPool"; -describe("BreachedPasswordDetection", () => { +describe("BreachedPasswordDetectionClient", () => { test("get (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { enabled: true, @@ -43,7 +43,7 @@ describe("BreachedPasswordDetection", () => { test("get (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -61,7 +61,7 @@ describe("BreachedPasswordDetection", () => { test("get (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -79,7 +79,7 @@ describe("BreachedPasswordDetection", () => { test("get (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -97,7 +97,7 @@ describe("BreachedPasswordDetection", () => { test("update (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { enabled: true, @@ -134,7 +134,7 @@ describe("BreachedPasswordDetection", () => { test("update (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -153,7 +153,7 @@ describe("BreachedPasswordDetection", () => { test("update (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -172,7 +172,7 @@ describe("BreachedPasswordDetection", () => { test("update (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -191,7 +191,7 @@ describe("BreachedPasswordDetection", () => { test("update (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/attackProtection/bruteForceProtection.test.ts b/src/management/tests/wire/attackProtection/bruteForceProtection.test.ts index 5063b939dc..f4f0652996 100644 --- a/src/management/tests/wire/attackProtection/bruteForceProtection.test.ts +++ b/src/management/tests/wire/attackProtection/bruteForceProtection.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../Client"; import * as Management from "../../../api/index"; +import { ManagementClient } from "../../../Client"; +import { mockServerPool } from "../../mock-server/MockServerPool"; -describe("BruteForceProtection", () => { +describe("BruteForceProtectionClient", () => { test("get (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { enabled: true, @@ -36,7 +36,7 @@ describe("BruteForceProtection", () => { test("get (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -54,7 +54,7 @@ describe("BruteForceProtection", () => { test("get (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -72,7 +72,7 @@ describe("BruteForceProtection", () => { test("get (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -90,7 +90,7 @@ describe("BruteForceProtection", () => { test("update (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { enabled: true, @@ -120,7 +120,7 @@ describe("BruteForceProtection", () => { test("update (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -139,7 +139,7 @@ describe("BruteForceProtection", () => { test("update (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -158,7 +158,7 @@ describe("BruteForceProtection", () => { test("update (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -177,7 +177,7 @@ describe("BruteForceProtection", () => { test("update (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/attackProtection/captcha.test.ts b/src/management/tests/wire/attackProtection/captcha.test.ts deleted file mode 100644 index 300f059655..0000000000 --- a/src/management/tests/wire/attackProtection/captcha.test.ts +++ /dev/null @@ -1,272 +0,0 @@ -// This file was auto-generated by Fern from our API Definition. - -import { mockServerPool } from "../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../Client"; -import * as Management from "../../../api/index"; - -describe("Captcha", () => { - test("get (1)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { - active_provider_id: "active_provider_id", - arkose: { - site_key: "site_key", - fail_open: true, - client_subdomain: "client_subdomain", - verify_subdomain: "verify_subdomain", - }, - auth_challenge: { fail_open: true }, - hcaptcha: { site_key: "site_key" }, - friendly_captcha: { site_key: "site_key" }, - recaptcha_enterprise: { site_key: "site_key", project_id: "project_id" }, - recaptcha_v2: { site_key: "site_key" }, - simple_captcha: { key: "value" }, - }; - server - .mockEndpoint() - .get("/attack-protection/captcha") - .respondWith() - .statusCode(200) - .jsonBody(rawResponseBody) - .build(); - - const response = await client.attackProtection.captcha.get(); - expect(response).toEqual({ - active_provider_id: "active_provider_id", - arkose: { - site_key: "site_key", - fail_open: true, - client_subdomain: "client_subdomain", - verify_subdomain: "verify_subdomain", - }, - auth_challenge: { - fail_open: true, - }, - hcaptcha: { - site_key: "site_key", - }, - friendly_captcha: { - site_key: "site_key", - }, - recaptcha_enterprise: { - site_key: "site_key", - project_id: "project_id", - }, - recaptcha_v2: { - site_key: "site_key", - }, - simple_captcha: { - key: "value", - }, - }); - }); - - test("get (2)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .get("/attack-protection/captcha") - .respondWith() - .statusCode(401) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.attackProtection.captcha.get(); - }).rejects.toThrow(Management.UnauthorizedError); - }); - - test("get (3)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .get("/attack-protection/captcha") - .respondWith() - .statusCode(403) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.attackProtection.captcha.get(); - }).rejects.toThrow(Management.ForbiddenError); - }); - - test("get (4)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .get("/attack-protection/captcha") - .respondWith() - .statusCode(404) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.attackProtection.captcha.get(); - }).rejects.toThrow(Management.NotFoundError); - }); - - test("get (5)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .get("/attack-protection/captcha") - .respondWith() - .statusCode(429) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.attackProtection.captcha.get(); - }).rejects.toThrow(Management.TooManyRequestsError); - }); - - test("update (1)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = {}; - const rawResponseBody = { - active_provider_id: "active_provider_id", - arkose: { - site_key: "site_key", - fail_open: true, - client_subdomain: "client_subdomain", - verify_subdomain: "verify_subdomain", - }, - auth_challenge: { fail_open: true }, - hcaptcha: { site_key: "site_key" }, - friendly_captcha: { site_key: "site_key" }, - recaptcha_enterprise: { site_key: "site_key", project_id: "project_id" }, - recaptcha_v2: { site_key: "site_key" }, - simple_captcha: { key: "value" }, - }; - server - .mockEndpoint() - .patch("/attack-protection/captcha") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(200) - .jsonBody(rawResponseBody) - .build(); - - const response = await client.attackProtection.captcha.update(); - expect(response).toEqual({ - active_provider_id: "active_provider_id", - arkose: { - site_key: "site_key", - fail_open: true, - client_subdomain: "client_subdomain", - verify_subdomain: "verify_subdomain", - }, - auth_challenge: { - fail_open: true, - }, - hcaptcha: { - site_key: "site_key", - }, - friendly_captcha: { - site_key: "site_key", - }, - recaptcha_enterprise: { - site_key: "site_key", - project_id: "project_id", - }, - recaptcha_v2: { - site_key: "site_key", - }, - simple_captcha: { - key: "value", - }, - }); - }); - - test("update (2)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = {}; - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .patch("/attack-protection/captcha") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(401) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.attackProtection.captcha.update(); - }).rejects.toThrow(Management.UnauthorizedError); - }); - - test("update (3)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = {}; - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .patch("/attack-protection/captcha") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(403) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.attackProtection.captcha.update(); - }).rejects.toThrow(Management.ForbiddenError); - }); - - test("update (4)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = {}; - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .patch("/attack-protection/captcha") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(404) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.attackProtection.captcha.update(); - }).rejects.toThrow(Management.NotFoundError); - }); - - test("update (5)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = {}; - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .patch("/attack-protection/captcha") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(429) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.attackProtection.captcha.update(); - }).rejects.toThrow(Management.TooManyRequestsError); - }); -}); diff --git a/src/management/tests/wire/attackProtection/suspiciousIpThrottling.test.ts b/src/management/tests/wire/attackProtection/suspiciousIpThrottling.test.ts index 57305dd744..e5df84efbe 100644 --- a/src/management/tests/wire/attackProtection/suspiciousIpThrottling.test.ts +++ b/src/management/tests/wire/attackProtection/suspiciousIpThrottling.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../Client"; import * as Management from "../../../api/index"; +import { ManagementClient } from "../../../Client"; +import { mockServerPool } from "../../mock-server/MockServerPool"; -describe("SuspiciousIpThrottling", () => { +describe("SuspiciousIpThrottlingClient", () => { test("get (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { enabled: true, @@ -43,7 +43,7 @@ describe("SuspiciousIpThrottling", () => { test("get (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -61,7 +61,7 @@ describe("SuspiciousIpThrottling", () => { test("get (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -79,7 +79,7 @@ describe("SuspiciousIpThrottling", () => { test("get (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -97,7 +97,7 @@ describe("SuspiciousIpThrottling", () => { test("update (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { enabled: true, @@ -134,7 +134,7 @@ describe("SuspiciousIpThrottling", () => { test("update (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -153,7 +153,7 @@ describe("SuspiciousIpThrottling", () => { test("update (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -172,7 +172,7 @@ describe("SuspiciousIpThrottling", () => { test("update (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -191,7 +191,7 @@ describe("SuspiciousIpThrottling", () => { test("update (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/branding.test.ts b/src/management/tests/wire/branding.test.ts index 571bbc4aa7..a037d367a1 100644 --- a/src/management/tests/wire/branding.test.ts +++ b/src/management/tests/wire/branding.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../mock-server/MockServerPool"; -import { ManagementClient } from "../../Client"; import * as Management from "../../api/index"; +import { ManagementClient } from "../../Client"; +import { mockServerPool } from "../mock-server/MockServerPool"; -describe("Branding", () => { +describe("BrandingClient", () => { test("get (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { colors: { primary: "primary", page_background: "page_background" }, @@ -33,7 +33,7 @@ describe("Branding", () => { test("get (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/branding").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); @@ -45,7 +45,7 @@ describe("Branding", () => { test("get (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/branding").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); @@ -57,7 +57,7 @@ describe("Branding", () => { test("get (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/branding").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); @@ -69,7 +69,7 @@ describe("Branding", () => { test("update (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { colors: { primary: "primary", page_background: "page_background" }, @@ -102,7 +102,7 @@ describe("Branding", () => { test("update (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -121,7 +121,7 @@ describe("Branding", () => { test("update (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -140,7 +140,7 @@ describe("Branding", () => { test("update (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -159,7 +159,7 @@ describe("Branding", () => { test("update (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/branding/phone/providers.test.ts b/src/management/tests/wire/branding/phone/providers.test.ts index 1773507166..8d17ed08b2 100644 --- a/src/management/tests/wire/branding/phone/providers.test.ts +++ b/src/management/tests/wire/branding/phone/providers.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../../Client"; import * as Management from "../../../../api/index"; +import { ManagementClient } from "../../../../Client"; +import { mockServerPool } from "../../../mock-server/MockServerPool"; -describe("Providers", () => { +describe("ProvidersClient", () => { test("list (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { providers: [ @@ -55,7 +55,7 @@ describe("Providers", () => { test("list (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -73,7 +73,7 @@ describe("Providers", () => { test("list (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -91,7 +91,7 @@ describe("Providers", () => { test("list (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -109,7 +109,7 @@ describe("Providers", () => { test("list (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -127,7 +127,7 @@ describe("Providers", () => { test("create (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "twilio", credentials: { auth_token: "auth_token" } }; const rawResponseBody = { id: "id", @@ -173,7 +173,7 @@ describe("Providers", () => { test("create (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "twilio", credentials: { auth_token: "x" } }; const rawResponseBody = { key: "value" }; server @@ -197,7 +197,7 @@ describe("Providers", () => { test("create (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "twilio", credentials: { auth_token: "x" } }; const rawResponseBody = { key: "value" }; server @@ -221,7 +221,7 @@ describe("Providers", () => { test("create (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "twilio", credentials: { auth_token: "x" } }; const rawResponseBody = { key: "value" }; server @@ -245,7 +245,7 @@ describe("Providers", () => { test("create (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "twilio", credentials: { auth_token: "x" } }; const rawResponseBody = { key: "value" }; server @@ -269,7 +269,7 @@ describe("Providers", () => { test("create (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "twilio", credentials: { auth_token: "x" } }; const rawResponseBody = { key: "value" }; server @@ -293,7 +293,7 @@ describe("Providers", () => { test("get (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { id: "id", @@ -333,7 +333,7 @@ describe("Providers", () => { test("get (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -351,7 +351,7 @@ describe("Providers", () => { test("get (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -369,7 +369,7 @@ describe("Providers", () => { test("get (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -387,7 +387,7 @@ describe("Providers", () => { test("get (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -405,7 +405,7 @@ describe("Providers", () => { test("get (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -423,7 +423,7 @@ describe("Providers", () => { test("delete (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); server.mockEndpoint().delete("/branding/phone/providers/id").respondWith().statusCode(200).build(); @@ -433,7 +433,7 @@ describe("Providers", () => { test("delete (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -451,7 +451,7 @@ describe("Providers", () => { test("delete (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -469,7 +469,7 @@ describe("Providers", () => { test("delete (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -487,7 +487,7 @@ describe("Providers", () => { test("delete (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -505,7 +505,7 @@ describe("Providers", () => { test("update (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { id: "id", @@ -546,7 +546,7 @@ describe("Providers", () => { test("update (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -565,7 +565,7 @@ describe("Providers", () => { test("update (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -584,7 +584,7 @@ describe("Providers", () => { test("update (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -603,7 +603,7 @@ describe("Providers", () => { test("update (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -622,7 +622,7 @@ describe("Providers", () => { test("update (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -641,7 +641,7 @@ describe("Providers", () => { test("update (7)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -660,7 +660,7 @@ describe("Providers", () => { test("test (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { to: "to" }; const rawResponseBody = { code: 1.1, message: "message" }; server @@ -683,7 +683,7 @@ describe("Providers", () => { test("test (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { to: "x" }; const rawResponseBody = { key: "value" }; server @@ -704,7 +704,7 @@ describe("Providers", () => { test("test (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { to: "x" }; const rawResponseBody = { key: "value" }; server @@ -725,7 +725,7 @@ describe("Providers", () => { test("test (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { to: "x" }; const rawResponseBody = { key: "value" }; server @@ -746,7 +746,7 @@ describe("Providers", () => { test("test (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { to: "x" }; const rawResponseBody = { key: "value" }; server @@ -767,7 +767,7 @@ describe("Providers", () => { test("test (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { to: "x" }; const rawResponseBody = { key: "value" }; server @@ -788,7 +788,7 @@ describe("Providers", () => { test("test (7)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { to: "x" }; const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/branding/phone/templates.test.ts b/src/management/tests/wire/branding/phone/templates.test.ts index 7505c58ef2..20679f9393 100644 --- a/src/management/tests/wire/branding/phone/templates.test.ts +++ b/src/management/tests/wire/branding/phone/templates.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../../Client"; import * as Management from "../../../../api/index"; +import { ManagementClient } from "../../../../Client"; +import { mockServerPool } from "../../../mock-server/MockServerPool"; -describe("Templates", () => { +describe("TemplatesClient", () => { test("list (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { templates: [ @@ -50,7 +50,7 @@ describe("Templates", () => { test("list (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -68,7 +68,7 @@ describe("Templates", () => { test("list (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -86,7 +86,7 @@ describe("Templates", () => { test("list (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -104,7 +104,7 @@ describe("Templates", () => { test("list (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -122,7 +122,7 @@ describe("Templates", () => { test("create (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { id: "id", @@ -163,7 +163,7 @@ describe("Templates", () => { test("create (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -182,7 +182,7 @@ describe("Templates", () => { test("create (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -201,7 +201,7 @@ describe("Templates", () => { test("create (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -220,7 +220,7 @@ describe("Templates", () => { test("create (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -239,7 +239,7 @@ describe("Templates", () => { test("create (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -258,7 +258,7 @@ describe("Templates", () => { test("get (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { id: "id", @@ -298,7 +298,7 @@ describe("Templates", () => { test("get (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -316,7 +316,7 @@ describe("Templates", () => { test("get (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -334,7 +334,7 @@ describe("Templates", () => { test("get (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -352,7 +352,7 @@ describe("Templates", () => { test("get (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -370,7 +370,7 @@ describe("Templates", () => { test("get (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -388,7 +388,7 @@ describe("Templates", () => { test("delete (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); server.mockEndpoint().delete("/branding/phone/templates/id").respondWith().statusCode(200).build(); @@ -398,7 +398,7 @@ describe("Templates", () => { test("delete (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -416,7 +416,7 @@ describe("Templates", () => { test("delete (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -434,7 +434,7 @@ describe("Templates", () => { test("delete (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -452,7 +452,7 @@ describe("Templates", () => { test("delete (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -470,7 +470,7 @@ describe("Templates", () => { test("delete (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -488,7 +488,7 @@ describe("Templates", () => { test("update (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { id: "id", @@ -529,7 +529,7 @@ describe("Templates", () => { test("update (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -548,7 +548,7 @@ describe("Templates", () => { test("update (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -567,7 +567,7 @@ describe("Templates", () => { test("update (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -586,7 +586,7 @@ describe("Templates", () => { test("update (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -605,7 +605,7 @@ describe("Templates", () => { test("update (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -624,7 +624,7 @@ describe("Templates", () => { test("reset (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { key: "value" }; const rawResponseBody = { id: "x", @@ -667,7 +667,7 @@ describe("Templates", () => { test("reset (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { key: "value" }; const rawResponseBody = { key: "value" }; server @@ -688,7 +688,7 @@ describe("Templates", () => { test("reset (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { key: "value" }; const rawResponseBody = { key: "value" }; server @@ -709,7 +709,7 @@ describe("Templates", () => { test("reset (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { key: "value" }; const rawResponseBody = { key: "value" }; server @@ -730,7 +730,7 @@ describe("Templates", () => { test("reset (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { key: "value" }; const rawResponseBody = { key: "value" }; server @@ -751,7 +751,7 @@ describe("Templates", () => { test("test (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { to: "to" }; const rawResponseBody = { message: "message" }; server @@ -773,7 +773,7 @@ describe("Templates", () => { test("test (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { to: "x" }; const rawResponseBody = { key: "value" }; server @@ -794,7 +794,7 @@ describe("Templates", () => { test("test (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { to: "x" }; const rawResponseBody = { key: "value" }; server @@ -815,7 +815,7 @@ describe("Templates", () => { test("test (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { to: "x" }; const rawResponseBody = { key: "value" }; server @@ -836,7 +836,7 @@ describe("Templates", () => { test("test (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { to: "x" }; const rawResponseBody = { key: "value" }; server @@ -857,7 +857,7 @@ describe("Templates", () => { test("test (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { to: "x" }; const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/branding/templates.test.ts b/src/management/tests/wire/branding/templates.test.ts index e4dedd0b6a..0b756d1466 100644 --- a/src/management/tests/wire/branding/templates.test.ts +++ b/src/management/tests/wire/branding/templates.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../Client"; import * as Management from "../../../api/index"; +import { ManagementClient } from "../../../Client"; +import { mockServerPool } from "../../mock-server/MockServerPool"; -describe("Templates", () => { +describe("TemplatesClient", () => { test("getUniversalLogin (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { body: "body" }; server @@ -26,7 +26,7 @@ describe("Templates", () => { test("getUniversalLogin (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -44,7 +44,7 @@ describe("Templates", () => { test("getUniversalLogin (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -62,7 +62,7 @@ describe("Templates", () => { test("getUniversalLogin (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -80,7 +80,7 @@ describe("Templates", () => { test("getUniversalLogin (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -98,7 +98,7 @@ describe("Templates", () => { test("getUniversalLogin (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -116,7 +116,7 @@ describe("Templates", () => { test("updateUniversalLogin (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = "string"; server @@ -133,7 +133,7 @@ describe("Templates", () => { test("updateUniversalLogin (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = "string"; const rawResponseBody = { key: "value" }; server @@ -152,7 +152,7 @@ describe("Templates", () => { test("updateUniversalLogin (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = "string"; const rawResponseBody = { key: "value" }; server @@ -171,7 +171,7 @@ describe("Templates", () => { test("updateUniversalLogin (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = "string"; const rawResponseBody = { key: "value" }; server @@ -190,7 +190,7 @@ describe("Templates", () => { test("updateUniversalLogin (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = "string"; const rawResponseBody = { key: "value" }; server @@ -209,7 +209,7 @@ describe("Templates", () => { test("updateUniversalLogin (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = "string"; const rawResponseBody = { key: "value" }; server @@ -228,7 +228,7 @@ describe("Templates", () => { test("updateUniversalLogin (7)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = "string"; const rawResponseBody = { key: "value" }; server @@ -247,7 +247,7 @@ describe("Templates", () => { test("deleteUniversalLogin (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); server.mockEndpoint().delete("/branding/templates/universal-login").respondWith().statusCode(200).build(); @@ -257,7 +257,7 @@ describe("Templates", () => { test("deleteUniversalLogin (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -275,7 +275,7 @@ describe("Templates", () => { test("deleteUniversalLogin (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -293,7 +293,7 @@ describe("Templates", () => { test("deleteUniversalLogin (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -311,7 +311,7 @@ describe("Templates", () => { test("deleteUniversalLogin (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/branding/themes.test.ts b/src/management/tests/wire/branding/themes.test.ts index cf2dd3b840..2388e80aa8 100644 --- a/src/management/tests/wire/branding/themes.test.ts +++ b/src/management/tests/wire/branding/themes.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../Client"; import * as Management from "../../../api/index"; +import { ManagementClient } from "../../../Client"; +import { mockServerPool } from "../../mock-server/MockServerPool"; -describe("Themes", () => { +describe("ThemesClient", () => { test("create (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { borders: { button_border_radius: 1.1, @@ -285,7 +285,7 @@ describe("Themes", () => { test("create (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { borders: { button_border_radius: 1.1, @@ -428,7 +428,7 @@ describe("Themes", () => { test("create (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { borders: { button_border_radius: 1.1, @@ -571,7 +571,7 @@ describe("Themes", () => { test("create (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { borders: { button_border_radius: 1.1, @@ -714,7 +714,7 @@ describe("Themes", () => { test("create (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { borders: { button_border_radius: 1.1, @@ -857,7 +857,7 @@ describe("Themes", () => { test("create (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { borders: { button_border_radius: 1.1, @@ -1000,7 +1000,7 @@ describe("Themes", () => { test("getDefault (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { borders: { @@ -1153,7 +1153,7 @@ describe("Themes", () => { test("getDefault (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -1171,7 +1171,7 @@ describe("Themes", () => { test("getDefault (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -1189,7 +1189,7 @@ describe("Themes", () => { test("getDefault (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -1207,7 +1207,7 @@ describe("Themes", () => { test("getDefault (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -1225,7 +1225,7 @@ describe("Themes", () => { test("get (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { borders: { @@ -1378,7 +1378,7 @@ describe("Themes", () => { test("get (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -1396,7 +1396,7 @@ describe("Themes", () => { test("get (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -1414,7 +1414,7 @@ describe("Themes", () => { test("get (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -1432,7 +1432,7 @@ describe("Themes", () => { test("get (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -1450,7 +1450,7 @@ describe("Themes", () => { test("delete (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); server.mockEndpoint().delete("/branding/themes/themeId").respondWith().statusCode(200).build(); @@ -1460,7 +1460,7 @@ describe("Themes", () => { test("delete (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -1478,7 +1478,7 @@ describe("Themes", () => { test("delete (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -1496,7 +1496,7 @@ describe("Themes", () => { test("delete (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -1514,7 +1514,7 @@ describe("Themes", () => { test("delete (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -1532,7 +1532,7 @@ describe("Themes", () => { test("update (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { borders: { button_border_radius: 1.1, @@ -1810,7 +1810,7 @@ describe("Themes", () => { test("update (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { borders: { button_border_radius: 1.1, @@ -1953,7 +1953,7 @@ describe("Themes", () => { test("update (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { borders: { button_border_radius: 1.1, @@ -2096,7 +2096,7 @@ describe("Themes", () => { test("update (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { borders: { button_border_radius: 1.1, @@ -2239,7 +2239,7 @@ describe("Themes", () => { test("update (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { borders: { button_border_radius: 1.1, @@ -2382,7 +2382,7 @@ describe("Themes", () => { test("update (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { borders: { button_border_radius: 1.1, diff --git a/src/management/tests/wire/clientGrants.test.ts b/src/management/tests/wire/clientGrants.test.ts index 29b0e3e369..241c73e405 100644 --- a/src/management/tests/wire/clientGrants.test.ts +++ b/src/management/tests/wire/clientGrants.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../mock-server/MockServerPool"; -import { ManagementClient } from "../../Client"; import * as Management from "../../api/index"; +import { ManagementClient } from "../../Client"; +import { mockServerPool } from "../mock-server/MockServerPool"; -describe("ClientGrants", () => { +describe("ClientGrantsClient", () => { test("list (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { next: "next", @@ -20,12 +20,16 @@ describe("ClientGrants", () => { organization_usage: "deny", allow_any_organization: true, is_system: true, - subject_type: "client", - authorization_details_types: ["authorization_details_types"], }, ], }; - server.mockEndpoint().get("/client-grants").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/client-grants") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); const expected = { next: "next", @@ -38,8 +42,6 @@ describe("ClientGrants", () => { organization_usage: "deny", allow_any_organization: true, is_system: true, - subject_type: "client", - authorization_details_types: ["authorization_details_types"], }, ], }; @@ -49,7 +51,6 @@ describe("ClientGrants", () => { audience: "audience", client_id: "client_id", allow_any_organization: true, - subject_type: "client", }); expect(expected.client_grants).toEqual(page.data); @@ -60,10 +61,16 @@ describe("ClientGrants", () => { test("list (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/client-grants").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/client-grants") + .respondWith() + .statusCode(401) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.clientGrants.list(); @@ -72,10 +79,16 @@ describe("ClientGrants", () => { test("list (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/client-grants").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/client-grants") + .respondWith() + .statusCode(403) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.clientGrants.list(); @@ -84,10 +97,16 @@ describe("ClientGrants", () => { test("list (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/client-grants").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/client-grants") + .respondWith() + .statusCode(429) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.clientGrants.list(); @@ -96,8 +115,8 @@ describe("ClientGrants", () => { test("create (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { client_id: "client_id", audience: "audience" }; + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); + const rawRequestBody = { client_id: "client_id", audience: "audience", scope: ["scope"] }; const rawResponseBody = { id: "id", client_id: "client_id", @@ -106,8 +125,6 @@ describe("ClientGrants", () => { organization_usage: "deny", allow_any_organization: true, is_system: true, - subject_type: "client", - authorization_details_types: ["authorization_details_types"], }; server .mockEndpoint() @@ -121,6 +138,7 @@ describe("ClientGrants", () => { const response = await client.clientGrants.create({ client_id: "client_id", audience: "audience", + scope: ["scope"], }); expect(response).toEqual({ id: "id", @@ -130,15 +148,13 @@ describe("ClientGrants", () => { organization_usage: "deny", allow_any_organization: true, is_system: true, - subject_type: "client", - authorization_details_types: ["authorization_details_types"], }); }); test("create (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { client_id: "client_id", audience: "x" }; + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); + const rawRequestBody = { client_id: "client_id", audience: "x", scope: ["scope", "scope"] }; const rawResponseBody = { key: "value" }; server .mockEndpoint() @@ -153,14 +169,15 @@ describe("ClientGrants", () => { return await client.clientGrants.create({ client_id: "client_id", audience: "x", + scope: ["scope", "scope"], }); }).rejects.toThrow(Management.BadRequestError); }); test("create (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { client_id: "client_id", audience: "x" }; + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); + const rawRequestBody = { client_id: "client_id", audience: "x", scope: ["scope", "scope"] }; const rawResponseBody = { key: "value" }; server .mockEndpoint() @@ -175,14 +192,15 @@ describe("ClientGrants", () => { return await client.clientGrants.create({ client_id: "client_id", audience: "x", + scope: ["scope", "scope"], }); }).rejects.toThrow(Management.UnauthorizedError); }); test("create (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { client_id: "client_id", audience: "x" }; + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); + const rawRequestBody = { client_id: "client_id", audience: "x", scope: ["scope", "scope"] }; const rawResponseBody = { key: "value" }; server .mockEndpoint() @@ -197,14 +215,15 @@ describe("ClientGrants", () => { return await client.clientGrants.create({ client_id: "client_id", audience: "x", + scope: ["scope", "scope"], }); }).rejects.toThrow(Management.ForbiddenError); }); test("create (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { client_id: "client_id", audience: "x" }; + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); + const rawRequestBody = { client_id: "client_id", audience: "x", scope: ["scope", "scope"] }; const rawResponseBody = { key: "value" }; server .mockEndpoint() @@ -219,14 +238,15 @@ describe("ClientGrants", () => { return await client.clientGrants.create({ client_id: "client_id", audience: "x", + scope: ["scope", "scope"], }); }).rejects.toThrow(Management.NotFoundError); }); test("create (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { client_id: "client_id", audience: "x" }; + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); + const rawRequestBody = { client_id: "client_id", audience: "x", scope: ["scope", "scope"] }; const rawResponseBody = { key: "value" }; server .mockEndpoint() @@ -241,14 +261,15 @@ describe("ClientGrants", () => { return await client.clientGrants.create({ client_id: "client_id", audience: "x", + scope: ["scope", "scope"], }); }).rejects.toThrow(Management.ConflictError); }); test("create (7)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { client_id: "client_id", audience: "x" }; + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); + const rawRequestBody = { client_id: "client_id", audience: "x", scope: ["scope", "scope"] }; const rawResponseBody = { key: "value" }; server .mockEndpoint() @@ -263,13 +284,14 @@ describe("ClientGrants", () => { return await client.clientGrants.create({ client_id: "client_id", audience: "x", + scope: ["scope", "scope"], }); }).rejects.toThrow(Management.TooManyRequestsError); }); test("delete (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); server.mockEndpoint().delete("/client-grants/id").respondWith().statusCode(200).build(); @@ -279,7 +301,7 @@ describe("ClientGrants", () => { test("delete (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -297,7 +319,7 @@ describe("ClientGrants", () => { test("delete (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -315,7 +337,7 @@ describe("ClientGrants", () => { test("delete (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -333,7 +355,7 @@ describe("ClientGrants", () => { test("delete (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -351,7 +373,7 @@ describe("ClientGrants", () => { test("update (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { id: "id", @@ -361,8 +383,6 @@ describe("ClientGrants", () => { organization_usage: "deny", allow_any_organization: true, is_system: true, - subject_type: "client", - authorization_details_types: ["authorization_details_types"], }; server .mockEndpoint() @@ -382,14 +402,12 @@ describe("ClientGrants", () => { organization_usage: "deny", allow_any_organization: true, is_system: true, - subject_type: "client", - authorization_details_types: ["authorization_details_types"], }); }); test("update (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -408,7 +426,7 @@ describe("ClientGrants", () => { test("update (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -427,7 +445,7 @@ describe("ClientGrants", () => { test("update (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -446,7 +464,7 @@ describe("ClientGrants", () => { test("update (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -465,7 +483,7 @@ describe("ClientGrants", () => { test("update (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/clientGrants/organizations.test.ts b/src/management/tests/wire/clientGrants/organizations.test.ts index f628d832e7..34f8f7cd0e 100644 --- a/src/management/tests/wire/clientGrants/organizations.test.ts +++ b/src/management/tests/wire/clientGrants/organizations.test.ts @@ -1,22 +1,28 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../Client"; import * as Management from "../../../api/index"; +import { ManagementClient } from "../../../Client"; +import { mockServerPool } from "../../mock-server/MockServerPool"; -describe("Organizations", () => { +describe("OrganizationsClient", () => { test("list (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { next: "next", organizations: [ - { id: "id", name: "name", display_name: "display_name", token_quota: { client_credentials: {} } }, + { + id: "id", + name: "name", + display_name: "display_name", + metadata: { key: "value" }, + token_quota: { client_credentials: {} }, + }, ], }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/client-grants/id/organizations") .respondWith() .statusCode(200) @@ -30,6 +36,9 @@ describe("Organizations", () => { id: "id", name: "name", display_name: "display_name", + metadata: { + key: "value", + }, token_quota: { client_credentials: {}, }, @@ -49,11 +58,11 @@ describe("Organizations", () => { test("list (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/client-grants/id/organizations") .respondWith() .statusCode(400) @@ -67,11 +76,11 @@ describe("Organizations", () => { test("list (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/client-grants/id/organizations") .respondWith() .statusCode(401) @@ -85,11 +94,11 @@ describe("Organizations", () => { test("list (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/client-grants/id/organizations") .respondWith() .statusCode(403) @@ -103,11 +112,11 @@ describe("Organizations", () => { test("list (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/client-grants/id/organizations") .respondWith() .statusCode(429) diff --git a/src/management/tests/wire/clients.test.ts b/src/management/tests/wire/clients.test.ts index 83eaa9a15e..971ff41a62 100644 --- a/src/management/tests/wire/clients.test.ts +++ b/src/management/tests/wire/clients.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../mock-server/MockServerPool"; -import { ManagementClient } from "../../Client"; import * as Management from "../../api/index"; +import { ManagementClient } from "../../Client"; +import { mockServerPool } from "../mock-server/MockServerPool"; -describe("Clients", () => { +describe("ClientsClient", () => { test("list (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { start: 1.1, @@ -21,7 +21,7 @@ describe("Clients", () => { description: "description", global: true, client_secret: "client_secret", - app_type: "native", + app_type: "app_type", logo_uri: "logo_uri", is_first_party: true, oidc_conformant: true, @@ -42,26 +42,27 @@ describe("Clients", () => { custom_login_page_preview: "custom_login_page_preview", form_template: "form_template", token_endpoint_auth_method: "none", - is_token_endpoint_ip_header_trusted: true, client_metadata: { key: "value" }, initiate_login_uri: "initiate_login_uri", refresh_token: { rotation_type: "rotating", expiration_type: "expiring" }, default_organization: { organization_id: "organization_id", flows: ["client_credentials"] }, organization_usage: "deny", organization_require_behavior: "no_prompt", - organization_discovery_methods: ["email"], require_pushed_authorization_requests: true, require_proof_of_possession: true, compliance_level: "none", - skip_non_verifiable_callback_uri_confirmation_prompt: true, par_request_expiry: 1, token_quota: { client_credentials: {} }, - resource_server_identifier: "resource_server_identifier", - async_approval_notification_channels: ["guardian-push"], }, ], }; - server.mockEndpoint().get("/clients").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/clients") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); const expected = { start: 1.1, @@ -75,7 +76,7 @@ describe("Clients", () => { description: "description", global: true, client_secret: "client_secret", - app_type: "native", + app_type: "app_type", logo_uri: "logo_uri", is_first_party: true, oidc_conformant: true, @@ -96,7 +97,6 @@ describe("Clients", () => { custom_login_page_preview: "custom_login_page_preview", form_template: "form_template", token_endpoint_auth_method: "none", - is_token_endpoint_ip_header_trusted: true, client_metadata: { key: "value", }, @@ -111,17 +111,13 @@ describe("Clients", () => { }, organization_usage: "deny", organization_require_behavior: "no_prompt", - organization_discovery_methods: ["email"], require_pushed_authorization_requests: true, require_proof_of_possession: true, compliance_level: "none", - skip_non_verifiable_callback_uri_confirmation_prompt: true, par_request_expiry: 1, token_quota: { client_credentials: {}, }, - resource_server_identifier: "resource_server_identifier", - async_approval_notification_channels: ["guardian-push"], }, ], }; @@ -145,10 +141,16 @@ describe("Clients", () => { test("list (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/clients").respondWith().statusCode(400).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/clients") + .respondWith() + .statusCode(400) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.clients.list(); @@ -157,10 +159,16 @@ describe("Clients", () => { test("list (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/clients").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/clients") + .respondWith() + .statusCode(401) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.clients.list(); @@ -169,10 +177,16 @@ describe("Clients", () => { test("list (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/clients").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/clients") + .respondWith() + .statusCode(403) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.clients.list(); @@ -181,10 +195,16 @@ describe("Clients", () => { test("list (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/clients").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/clients") + .respondWith() + .statusCode(429) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.clients.list(); @@ -193,7 +213,7 @@ describe("Clients", () => { test("create (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "name" }; const rawResponseBody = { client_id: "client_id", @@ -202,7 +222,7 @@ describe("Clients", () => { description: "description", global: true, client_secret: "client_secret", - app_type: "native", + app_type: "app_type", logo_uri: "logo_uri", is_first_party: true, oidc_conformant: true, @@ -214,16 +234,15 @@ describe("Clients", () => { allowed_logout_urls: ["allowed_logout_urls"], session_transfer: { can_create_session_transfer_token: true, - enforce_cascade_revocation: true, allowed_authentication_methods: ["cookie"], enforce_device_binding: "ip", allow_refresh_token: true, enforce_online_refresh_tokens: true, + enforce_cascade_revocation: true, }, oidc_logout: { backchannel_logout_urls: ["backchannel_logout_urls"], backchannel_logout_initiators: { mode: "custom", selected_initiators: ["rp-logout"] }, - backchannel_logout_session_metadata: { include: true }, }, grant_types: ["grant_types"], jwt_configuration: { lifetime_in_seconds: 1, secret_encoded: true, scopes: { key: "value" }, alg: "HS256" }, @@ -335,7 +354,6 @@ describe("Clients", () => { sso_integration: { name: "name", version: "version" }, }, token_endpoint_auth_method: "none", - is_token_endpoint_ip_header_trusted: true, client_metadata: { key: "value" }, mobile: { android: { @@ -357,7 +375,6 @@ describe("Clients", () => { default_organization: { organization_id: "organization_id", flows: ["client_credentials"] }, organization_usage: "deny", organization_require_behavior: "no_prompt", - organization_discovery_methods: ["email"], client_authentication_methods: { private_key_jwt: { credentials: [{ id: "id" }] }, tls_client_auth: { credentials: [{ id: "id" }] }, @@ -367,11 +384,8 @@ describe("Clients", () => { require_proof_of_possession: true, signed_request_object: { required: true, credentials: [{ id: "id" }] }, compliance_level: "none", - skip_non_verifiable_callback_uri_confirmation_prompt: true, par_request_expiry: 1, token_quota: { client_credentials: { enforce: true, per_day: 1, per_hour: 1 } }, - resource_server_identifier: "resource_server_identifier", - async_approval_notification_channels: ["guardian-push"], }; server .mockEndpoint() @@ -392,7 +406,7 @@ describe("Clients", () => { description: "description", global: true, client_secret: "client_secret", - app_type: "native", + app_type: "app_type", logo_uri: "logo_uri", is_first_party: true, oidc_conformant: true, @@ -404,11 +418,11 @@ describe("Clients", () => { allowed_logout_urls: ["allowed_logout_urls"], session_transfer: { can_create_session_transfer_token: true, - enforce_cascade_revocation: true, allowed_authentication_methods: ["cookie"], enforce_device_binding: "ip", allow_refresh_token: true, enforce_online_refresh_tokens: true, + enforce_cascade_revocation: true, }, oidc_logout: { backchannel_logout_urls: ["backchannel_logout_urls"], @@ -416,9 +430,6 @@ describe("Clients", () => { mode: "custom", selected_initiators: ["rp-logout"], }, - backchannel_logout_session_metadata: { - include: true, - }, }, grant_types: ["grant_types"], jwt_configuration: { @@ -597,7 +608,6 @@ describe("Clients", () => { }, }, token_endpoint_auth_method: "none", - is_token_endpoint_ip_header_trusted: true, client_metadata: { key: "value", }, @@ -627,7 +637,6 @@ describe("Clients", () => { }, organization_usage: "deny", organization_require_behavior: "no_prompt", - organization_discovery_methods: ["email"], client_authentication_methods: { private_key_jwt: { credentials: [ @@ -662,7 +671,6 @@ describe("Clients", () => { ], }, compliance_level: "none", - skip_non_verifiable_callback_uri_confirmation_prompt: true, par_request_expiry: 1, token_quota: { client_credentials: { @@ -671,14 +679,12 @@ describe("Clients", () => { per_hour: 1, }, }, - resource_server_identifier: "resource_server_identifier", - async_approval_notification_channels: ["guardian-push"], }); }); test("create (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "name" }; const rawResponseBody = { key: "value" }; server @@ -699,7 +705,7 @@ describe("Clients", () => { test("create (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "name" }; const rawResponseBody = { key: "value" }; server @@ -720,7 +726,7 @@ describe("Clients", () => { test("create (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "name" }; const rawResponseBody = { key: "value" }; server @@ -741,7 +747,7 @@ describe("Clients", () => { test("create (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "name" }; const rawResponseBody = { key: "value" }; server @@ -762,7 +768,7 @@ describe("Clients", () => { test("create (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "name" }; const rawResponseBody = { key: "value" }; server @@ -783,7 +789,7 @@ describe("Clients", () => { test("get (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { client_id: "client_id", @@ -792,7 +798,7 @@ describe("Clients", () => { description: "description", global: true, client_secret: "client_secret", - app_type: "native", + app_type: "app_type", logo_uri: "logo_uri", is_first_party: true, oidc_conformant: true, @@ -804,16 +810,15 @@ describe("Clients", () => { allowed_logout_urls: ["allowed_logout_urls"], session_transfer: { can_create_session_transfer_token: true, - enforce_cascade_revocation: true, allowed_authentication_methods: ["cookie"], enforce_device_binding: "ip", allow_refresh_token: true, enforce_online_refresh_tokens: true, + enforce_cascade_revocation: true, }, oidc_logout: { backchannel_logout_urls: ["backchannel_logout_urls"], backchannel_logout_initiators: { mode: "custom", selected_initiators: ["rp-logout"] }, - backchannel_logout_session_metadata: { include: true }, }, grant_types: ["grant_types"], jwt_configuration: { lifetime_in_seconds: 1, secret_encoded: true, scopes: { key: "value" }, alg: "HS256" }, @@ -925,7 +930,6 @@ describe("Clients", () => { sso_integration: { name: "name", version: "version" }, }, token_endpoint_auth_method: "none", - is_token_endpoint_ip_header_trusted: true, client_metadata: { key: "value" }, mobile: { android: { @@ -947,7 +951,6 @@ describe("Clients", () => { default_organization: { organization_id: "organization_id", flows: ["client_credentials"] }, organization_usage: "deny", organization_require_behavior: "no_prompt", - organization_discovery_methods: ["email"], client_authentication_methods: { private_key_jwt: { credentials: [{ id: "id" }] }, tls_client_auth: { credentials: [{ id: "id" }] }, @@ -957,11 +960,8 @@ describe("Clients", () => { require_proof_of_possession: true, signed_request_object: { required: true, credentials: [{ id: "id" }] }, compliance_level: "none", - skip_non_verifiable_callback_uri_confirmation_prompt: true, par_request_expiry: 1, token_quota: { client_credentials: { enforce: true, per_day: 1, per_hour: 1 } }, - resource_server_identifier: "resource_server_identifier", - async_approval_notification_channels: ["guardian-push"], }; server.mockEndpoint().get("/clients/id").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); @@ -976,7 +976,7 @@ describe("Clients", () => { description: "description", global: true, client_secret: "client_secret", - app_type: "native", + app_type: "app_type", logo_uri: "logo_uri", is_first_party: true, oidc_conformant: true, @@ -988,11 +988,11 @@ describe("Clients", () => { allowed_logout_urls: ["allowed_logout_urls"], session_transfer: { can_create_session_transfer_token: true, - enforce_cascade_revocation: true, allowed_authentication_methods: ["cookie"], enforce_device_binding: "ip", allow_refresh_token: true, enforce_online_refresh_tokens: true, + enforce_cascade_revocation: true, }, oidc_logout: { backchannel_logout_urls: ["backchannel_logout_urls"], @@ -1000,9 +1000,6 @@ describe("Clients", () => { mode: "custom", selected_initiators: ["rp-logout"], }, - backchannel_logout_session_metadata: { - include: true, - }, }, grant_types: ["grant_types"], jwt_configuration: { @@ -1181,7 +1178,6 @@ describe("Clients", () => { }, }, token_endpoint_auth_method: "none", - is_token_endpoint_ip_header_trusted: true, client_metadata: { key: "value", }, @@ -1211,7 +1207,6 @@ describe("Clients", () => { }, organization_usage: "deny", organization_require_behavior: "no_prompt", - organization_discovery_methods: ["email"], client_authentication_methods: { private_key_jwt: { credentials: [ @@ -1246,7 +1241,6 @@ describe("Clients", () => { ], }, compliance_level: "none", - skip_non_verifiable_callback_uri_confirmation_prompt: true, par_request_expiry: 1, token_quota: { client_credentials: { @@ -1255,14 +1249,12 @@ describe("Clients", () => { per_hour: 1, }, }, - resource_server_identifier: "resource_server_identifier", - async_approval_notification_channels: ["guardian-push"], }); }); test("get (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/clients/id").respondWith().statusCode(400).jsonBody(rawResponseBody).build(); @@ -1274,7 +1266,7 @@ describe("Clients", () => { test("get (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/clients/id").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); @@ -1286,7 +1278,7 @@ describe("Clients", () => { test("get (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/clients/id").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); @@ -1298,7 +1290,7 @@ describe("Clients", () => { test("get (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/clients/id").respondWith().statusCode(404).jsonBody(rawResponseBody).build(); @@ -1310,7 +1302,7 @@ describe("Clients", () => { test("get (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/clients/id").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); @@ -1322,7 +1314,7 @@ describe("Clients", () => { test("delete (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); server.mockEndpoint().delete("/clients/id").respondWith().statusCode(200).build(); @@ -1332,7 +1324,7 @@ describe("Clients", () => { test("delete (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().delete("/clients/id").respondWith().statusCode(400).jsonBody(rawResponseBody).build(); @@ -1344,7 +1336,7 @@ describe("Clients", () => { test("delete (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().delete("/clients/id").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); @@ -1356,7 +1348,7 @@ describe("Clients", () => { test("delete (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().delete("/clients/id").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); @@ -1368,7 +1360,7 @@ describe("Clients", () => { test("delete (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().delete("/clients/id").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); @@ -1380,7 +1372,7 @@ describe("Clients", () => { test("update (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { client_id: "client_id", @@ -1389,7 +1381,7 @@ describe("Clients", () => { description: "description", global: true, client_secret: "client_secret", - app_type: "native", + app_type: "app_type", logo_uri: "logo_uri", is_first_party: true, oidc_conformant: true, @@ -1401,16 +1393,15 @@ describe("Clients", () => { allowed_logout_urls: ["allowed_logout_urls"], session_transfer: { can_create_session_transfer_token: true, - enforce_cascade_revocation: true, allowed_authentication_methods: ["cookie"], enforce_device_binding: "ip", allow_refresh_token: true, enforce_online_refresh_tokens: true, + enforce_cascade_revocation: true, }, oidc_logout: { backchannel_logout_urls: ["backchannel_logout_urls"], backchannel_logout_initiators: { mode: "custom", selected_initiators: ["rp-logout"] }, - backchannel_logout_session_metadata: { include: true }, }, grant_types: ["grant_types"], jwt_configuration: { lifetime_in_seconds: 1, secret_encoded: true, scopes: { key: "value" }, alg: "HS256" }, @@ -1522,7 +1513,6 @@ describe("Clients", () => { sso_integration: { name: "name", version: "version" }, }, token_endpoint_auth_method: "none", - is_token_endpoint_ip_header_trusted: true, client_metadata: { key: "value" }, mobile: { android: { @@ -1544,7 +1534,6 @@ describe("Clients", () => { default_organization: { organization_id: "organization_id", flows: ["client_credentials"] }, organization_usage: "deny", organization_require_behavior: "no_prompt", - organization_discovery_methods: ["email"], client_authentication_methods: { private_key_jwt: { credentials: [{ id: "id" }] }, tls_client_auth: { credentials: [{ id: "id" }] }, @@ -1554,11 +1543,8 @@ describe("Clients", () => { require_proof_of_possession: true, signed_request_object: { required: true, credentials: [{ id: "id" }] }, compliance_level: "none", - skip_non_verifiable_callback_uri_confirmation_prompt: true, par_request_expiry: 1, token_quota: { client_credentials: { enforce: true, per_day: 1, per_hour: 1 } }, - resource_server_identifier: "resource_server_identifier", - async_approval_notification_channels: ["guardian-push"], }; server .mockEndpoint() @@ -1577,7 +1563,7 @@ describe("Clients", () => { description: "description", global: true, client_secret: "client_secret", - app_type: "native", + app_type: "app_type", logo_uri: "logo_uri", is_first_party: true, oidc_conformant: true, @@ -1589,11 +1575,11 @@ describe("Clients", () => { allowed_logout_urls: ["allowed_logout_urls"], session_transfer: { can_create_session_transfer_token: true, - enforce_cascade_revocation: true, allowed_authentication_methods: ["cookie"], enforce_device_binding: "ip", allow_refresh_token: true, enforce_online_refresh_tokens: true, + enforce_cascade_revocation: true, }, oidc_logout: { backchannel_logout_urls: ["backchannel_logout_urls"], @@ -1601,9 +1587,6 @@ describe("Clients", () => { mode: "custom", selected_initiators: ["rp-logout"], }, - backchannel_logout_session_metadata: { - include: true, - }, }, grant_types: ["grant_types"], jwt_configuration: { @@ -1782,7 +1765,6 @@ describe("Clients", () => { }, }, token_endpoint_auth_method: "none", - is_token_endpoint_ip_header_trusted: true, client_metadata: { key: "value", }, @@ -1812,7 +1794,6 @@ describe("Clients", () => { }, organization_usage: "deny", organization_require_behavior: "no_prompt", - organization_discovery_methods: ["email"], client_authentication_methods: { private_key_jwt: { credentials: [ @@ -1847,7 +1828,6 @@ describe("Clients", () => { ], }, compliance_level: "none", - skip_non_verifiable_callback_uri_confirmation_prompt: true, par_request_expiry: 1, token_quota: { client_credentials: { @@ -1856,14 +1836,12 @@ describe("Clients", () => { per_hour: 1, }, }, - resource_server_identifier: "resource_server_identifier", - async_approval_notification_channels: ["guardian-push"], }); }); test("update (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -1882,7 +1860,7 @@ describe("Clients", () => { test("update (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -1901,7 +1879,7 @@ describe("Clients", () => { test("update (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -1920,7 +1898,7 @@ describe("Clients", () => { test("update (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -1939,7 +1917,7 @@ describe("Clients", () => { test("update (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -1958,7 +1936,7 @@ describe("Clients", () => { test("rotateSecret (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { client_id: "client_id", @@ -1967,7 +1945,7 @@ describe("Clients", () => { description: "description", global: true, client_secret: "client_secret", - app_type: "native", + app_type: "app_type", logo_uri: "logo_uri", is_first_party: true, oidc_conformant: true, @@ -1979,16 +1957,15 @@ describe("Clients", () => { allowed_logout_urls: ["allowed_logout_urls"], session_transfer: { can_create_session_transfer_token: true, - enforce_cascade_revocation: true, allowed_authentication_methods: ["cookie"], enforce_device_binding: "ip", allow_refresh_token: true, enforce_online_refresh_tokens: true, + enforce_cascade_revocation: true, }, oidc_logout: { backchannel_logout_urls: ["backchannel_logout_urls"], backchannel_logout_initiators: { mode: "custom", selected_initiators: ["rp-logout"] }, - backchannel_logout_session_metadata: { include: true }, }, grant_types: ["grant_types"], jwt_configuration: { lifetime_in_seconds: 1, secret_encoded: true, scopes: { key: "value" }, alg: "HS256" }, @@ -2100,7 +2077,6 @@ describe("Clients", () => { sso_integration: { name: "name", version: "version" }, }, token_endpoint_auth_method: "none", - is_token_endpoint_ip_header_trusted: true, client_metadata: { key: "value" }, mobile: { android: { @@ -2122,7 +2098,6 @@ describe("Clients", () => { default_organization: { organization_id: "organization_id", flows: ["client_credentials"] }, organization_usage: "deny", organization_require_behavior: "no_prompt", - organization_discovery_methods: ["email"], client_authentication_methods: { private_key_jwt: { credentials: [{ id: "id" }] }, tls_client_auth: { credentials: [{ id: "id" }] }, @@ -2132,11 +2107,8 @@ describe("Clients", () => { require_proof_of_possession: true, signed_request_object: { required: true, credentials: [{ id: "id" }] }, compliance_level: "none", - skip_non_verifiable_callback_uri_confirmation_prompt: true, par_request_expiry: 1, token_quota: { client_credentials: { enforce: true, per_day: 1, per_hour: 1 } }, - resource_server_identifier: "resource_server_identifier", - async_approval_notification_channels: ["guardian-push"], }; server .mockEndpoint() @@ -2154,7 +2126,7 @@ describe("Clients", () => { description: "description", global: true, client_secret: "client_secret", - app_type: "native", + app_type: "app_type", logo_uri: "logo_uri", is_first_party: true, oidc_conformant: true, @@ -2166,11 +2138,11 @@ describe("Clients", () => { allowed_logout_urls: ["allowed_logout_urls"], session_transfer: { can_create_session_transfer_token: true, - enforce_cascade_revocation: true, allowed_authentication_methods: ["cookie"], enforce_device_binding: "ip", allow_refresh_token: true, enforce_online_refresh_tokens: true, + enforce_cascade_revocation: true, }, oidc_logout: { backchannel_logout_urls: ["backchannel_logout_urls"], @@ -2178,9 +2150,6 @@ describe("Clients", () => { mode: "custom", selected_initiators: ["rp-logout"], }, - backchannel_logout_session_metadata: { - include: true, - }, }, grant_types: ["grant_types"], jwt_configuration: { @@ -2359,7 +2328,6 @@ describe("Clients", () => { }, }, token_endpoint_auth_method: "none", - is_token_endpoint_ip_header_trusted: true, client_metadata: { key: "value", }, @@ -2389,7 +2357,6 @@ describe("Clients", () => { }, organization_usage: "deny", organization_require_behavior: "no_prompt", - organization_discovery_methods: ["email"], client_authentication_methods: { private_key_jwt: { credentials: [ @@ -2424,7 +2391,6 @@ describe("Clients", () => { ], }, compliance_level: "none", - skip_non_verifiable_callback_uri_confirmation_prompt: true, par_request_expiry: 1, token_quota: { client_credentials: { @@ -2433,14 +2399,12 @@ describe("Clients", () => { per_hour: 1, }, }, - resource_server_identifier: "resource_server_identifier", - async_approval_notification_channels: ["guardian-push"], }); }); test("rotateSecret (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -2458,7 +2422,7 @@ describe("Clients", () => { test("rotateSecret (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -2476,7 +2440,7 @@ describe("Clients", () => { test("rotateSecret (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -2494,7 +2458,7 @@ describe("Clients", () => { test("rotateSecret (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -2512,7 +2476,7 @@ describe("Clients", () => { test("rotateSecret (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/clients/connections.test.ts b/src/management/tests/wire/clients/connections.test.ts index aea439a588..f67bdf4c2e 100644 --- a/src/management/tests/wire/clients/connections.test.ts +++ b/src/management/tests/wire/clients/connections.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../Client"; import * as Management from "../../../api/index"; +import { ManagementClient } from "../../../Client"; +import { mockServerPool } from "../../mock-server/MockServerPool"; -describe("Connections", () => { +describe("ConnectionsClient", () => { test("get (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { connections: [ @@ -20,14 +20,13 @@ describe("Connections", () => { realms: ["realms"], is_domain_connection: true, show_as_button: true, - authentication: { active: true }, - connected_accounts: { active: true }, + metadata: { key: "value" }, }, ], next: "next", }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/clients/id/connections") .respondWith() .statusCode(200) @@ -47,11 +46,8 @@ describe("Connections", () => { realms: ["realms"], is_domain_connection: true, show_as_button: true, - authentication: { - active: true, - }, - connected_accounts: { - active: true, + metadata: { + key: "value", }, }, ], @@ -72,11 +68,11 @@ describe("Connections", () => { test("get (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/clients/id/connections") .respondWith() .statusCode(400) @@ -90,11 +86,11 @@ describe("Connections", () => { test("get (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/clients/id/connections") .respondWith() .statusCode(401) @@ -108,11 +104,11 @@ describe("Connections", () => { test("get (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/clients/id/connections") .respondWith() .statusCode(403) @@ -126,11 +122,11 @@ describe("Connections", () => { test("get (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/clients/id/connections") .respondWith() .statusCode(404) @@ -144,11 +140,11 @@ describe("Connections", () => { test("get (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/clients/id/connections") .respondWith() .statusCode(429) diff --git a/src/management/tests/wire/clients/credentials.test.ts b/src/management/tests/wire/clients/credentials.test.ts index b05271dc2e..71d3cb899c 100644 --- a/src/management/tests/wire/clients/credentials.test.ts +++ b/src/management/tests/wire/clients/credentials.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../Client"; import * as Management from "../../../api/index"; +import { ManagementClient } from "../../../Client"; +import { mockServerPool } from "../../mock-server/MockServerPool"; -describe("Credentials", () => { +describe("CredentialsClient", () => { test("list (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = [ { @@ -50,7 +50,7 @@ describe("Credentials", () => { test("list (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -68,7 +68,7 @@ describe("Credentials", () => { test("list (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -86,7 +86,7 @@ describe("Credentials", () => { test("list (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -104,7 +104,7 @@ describe("Credentials", () => { test("list (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -122,7 +122,7 @@ describe("Credentials", () => { test("create (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { credential_type: "public_key" }; const rawResponseBody = { id: "id", @@ -164,7 +164,7 @@ describe("Credentials", () => { test("create (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { credential_type: "public_key" }; const rawResponseBody = { key: "value" }; server @@ -185,7 +185,7 @@ describe("Credentials", () => { test("create (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { credential_type: "public_key" }; const rawResponseBody = { key: "value" }; server @@ -206,7 +206,7 @@ describe("Credentials", () => { test("create (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { credential_type: "public_key" }; const rawResponseBody = { key: "value" }; server @@ -227,7 +227,7 @@ describe("Credentials", () => { test("create (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { credential_type: "public_key" }; const rawResponseBody = { key: "value" }; server @@ -248,7 +248,7 @@ describe("Credentials", () => { test("create (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { credential_type: "public_key" }; const rawResponseBody = { key: "value" }; server @@ -269,7 +269,7 @@ describe("Credentials", () => { test("get (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { id: "id", @@ -308,7 +308,7 @@ describe("Credentials", () => { test("get (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -326,7 +326,7 @@ describe("Credentials", () => { test("get (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -344,7 +344,7 @@ describe("Credentials", () => { test("get (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -362,7 +362,7 @@ describe("Credentials", () => { test("get (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -380,7 +380,7 @@ describe("Credentials", () => { test("delete (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); server .mockEndpoint() @@ -395,7 +395,7 @@ describe("Credentials", () => { test("delete (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -413,7 +413,7 @@ describe("Credentials", () => { test("delete (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -431,7 +431,7 @@ describe("Credentials", () => { test("delete (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -449,7 +449,7 @@ describe("Credentials", () => { test("delete (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -467,7 +467,7 @@ describe("Credentials", () => { test("update (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { id: "id", @@ -507,7 +507,7 @@ describe("Credentials", () => { test("update (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -526,7 +526,7 @@ describe("Credentials", () => { test("update (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -545,7 +545,7 @@ describe("Credentials", () => { test("update (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -564,7 +564,7 @@ describe("Credentials", () => { test("update (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -583,7 +583,7 @@ describe("Credentials", () => { test("update (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/connections.test.ts b/src/management/tests/wire/connections.test.ts index a07966929c..e3ab0af59c 100644 --- a/src/management/tests/wire/connections.test.ts +++ b/src/management/tests/wire/connections.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../mock-server/MockServerPool"; -import { ManagementClient } from "../../Client"; import * as Management from "../../api/index"; +import { ManagementClient } from "../../Client"; +import { mockServerPool } from "../mock-server/MockServerPool"; -describe("Connections", () => { +describe("ConnectionsClient", () => { test("list (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { next: "next", @@ -21,12 +21,17 @@ describe("Connections", () => { realms: ["realms"], is_domain_connection: true, show_as_button: true, - authentication: { active: true }, - connected_accounts: { active: true }, + metadata: { key: "value" }, }, ], }; - server.mockEndpoint().get("/connections").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/connections") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); const expected = { next: "next", @@ -42,11 +47,8 @@ describe("Connections", () => { realms: ["realms"], is_domain_connection: true, show_as_button: true, - authentication: { - active: true, - }, - connected_accounts: { - active: true, + metadata: { + key: "value", }, }, ], @@ -67,10 +69,16 @@ describe("Connections", () => { test("list (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/connections").respondWith().statusCode(400).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/connections") + .respondWith() + .statusCode(400) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.connections.list(); @@ -79,10 +87,16 @@ describe("Connections", () => { test("list (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/connections").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/connections") + .respondWith() + .statusCode(401) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.connections.list(); @@ -91,10 +105,16 @@ describe("Connections", () => { test("list (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/connections").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/connections") + .respondWith() + .statusCode(403) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.connections.list(); @@ -103,10 +123,16 @@ describe("Connections", () => { test("list (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/connections").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/connections") + .respondWith() + .statusCode(429) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.connections.list(); @@ -115,7 +141,7 @@ describe("Connections", () => { test("create (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "name", strategy: "ad" }; const rawResponseBody = { name: "name", @@ -128,8 +154,6 @@ describe("Connections", () => { is_domain_connection: true, show_as_button: true, metadata: { key: "value" }, - authentication: { active: true }, - connected_accounts: { active: true, cross_app_access: true }, }; server .mockEndpoint() @@ -159,19 +183,12 @@ describe("Connections", () => { metadata: { key: "value", }, - authentication: { - active: true, - }, - connected_accounts: { - active: true, - cross_app_access: true, - }, }); }); test("create (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "name", strategy: "ad" }; const rawResponseBody = { key: "value" }; server @@ -193,7 +210,7 @@ describe("Connections", () => { test("create (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "name", strategy: "ad" }; const rawResponseBody = { key: "value" }; server @@ -215,7 +232,7 @@ describe("Connections", () => { test("create (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "name", strategy: "ad" }; const rawResponseBody = { key: "value" }; server @@ -237,7 +254,7 @@ describe("Connections", () => { test("create (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "name", strategy: "ad" }; const rawResponseBody = { key: "value" }; server @@ -259,7 +276,7 @@ describe("Connections", () => { test("create (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "name", strategy: "ad" }; const rawResponseBody = { key: "value" }; server @@ -281,7 +298,7 @@ describe("Connections", () => { test("get (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { name: "name", @@ -294,8 +311,6 @@ describe("Connections", () => { is_domain_connection: true, show_as_button: true, metadata: { key: "value" }, - authentication: { active: true }, - connected_accounts: { active: true, cross_app_access: true }, }; server.mockEndpoint().get("/connections/id").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); @@ -318,19 +333,12 @@ describe("Connections", () => { metadata: { key: "value", }, - authentication: { - active: true, - }, - connected_accounts: { - active: true, - cross_app_access: true, - }, }); }); test("get (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/connections/id").respondWith().statusCode(400).jsonBody(rawResponseBody).build(); @@ -342,7 +350,7 @@ describe("Connections", () => { test("get (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/connections/id").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); @@ -354,7 +362,7 @@ describe("Connections", () => { test("get (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/connections/id").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); @@ -366,7 +374,7 @@ describe("Connections", () => { test("get (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/connections/id").respondWith().statusCode(404).jsonBody(rawResponseBody).build(); @@ -378,7 +386,7 @@ describe("Connections", () => { test("get (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/connections/id").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); @@ -390,7 +398,7 @@ describe("Connections", () => { test("delete (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); server.mockEndpoint().delete("/connections/id").respondWith().statusCode(200).build(); @@ -400,7 +408,7 @@ describe("Connections", () => { test("delete (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().delete("/connections/id").respondWith().statusCode(400).jsonBody(rawResponseBody).build(); @@ -412,7 +420,7 @@ describe("Connections", () => { test("delete (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().delete("/connections/id").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); @@ -424,7 +432,7 @@ describe("Connections", () => { test("delete (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().delete("/connections/id").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); @@ -436,7 +444,7 @@ describe("Connections", () => { test("delete (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().delete("/connections/id").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); @@ -448,7 +456,7 @@ describe("Connections", () => { test("update (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { name: "name", @@ -461,8 +469,6 @@ describe("Connections", () => { is_domain_connection: true, show_as_button: true, metadata: { key: "value" }, - authentication: { active: true }, - connected_accounts: { active: true, cross_app_access: true }, }; server .mockEndpoint() @@ -489,19 +495,12 @@ describe("Connections", () => { metadata: { key: "value", }, - authentication: { - active: true, - }, - connected_accounts: { - active: true, - cross_app_access: true, - }, }); }); test("update (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -520,7 +519,7 @@ describe("Connections", () => { test("update (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -539,7 +538,7 @@ describe("Connections", () => { test("update (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -558,7 +557,7 @@ describe("Connections", () => { test("update (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -577,7 +576,7 @@ describe("Connections", () => { test("update (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -596,7 +595,7 @@ describe("Connections", () => { test("update (7)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -615,7 +614,7 @@ describe("Connections", () => { test("checkStatus (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); server.mockEndpoint().get("/connections/id/status").respondWith().statusCode(200).build(); @@ -625,7 +624,7 @@ describe("Connections", () => { test("checkStatus (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -643,7 +642,7 @@ describe("Connections", () => { test("checkStatus (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -661,7 +660,7 @@ describe("Connections", () => { test("checkStatus (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -679,7 +678,7 @@ describe("Connections", () => { test("checkStatus (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -697,7 +696,7 @@ describe("Connections", () => { test("checkStatus (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/connections/clients.test.ts b/src/management/tests/wire/connections/clients.test.ts index a8ce46cf7a..103221caf2 100644 --- a/src/management/tests/wire/connections/clients.test.ts +++ b/src/management/tests/wire/connections/clients.test.ts @@ -1,17 +1,17 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../Client"; import * as Management from "../../../api/index"; +import { ManagementClient } from "../../../Client"; +import { mockServerPool } from "../../mock-server/MockServerPool"; -describe("Clients", () => { +describe("ClientsClient", () => { test("get (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { clients: [{ client_id: "client_id" }], next: "next" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/connections/id/clients") .respondWith() .statusCode(200) @@ -39,11 +39,11 @@ describe("Clients", () => { test("get (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/connections/id/clients") .respondWith() .statusCode(400) @@ -57,11 +57,11 @@ describe("Clients", () => { test("get (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/connections/id/clients") .respondWith() .statusCode(401) @@ -75,11 +75,11 @@ describe("Clients", () => { test("get (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/connections/id/clients") .respondWith() .statusCode(403) @@ -93,11 +93,11 @@ describe("Clients", () => { test("get (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/connections/id/clients") .respondWith() .statusCode(404) @@ -111,11 +111,11 @@ describe("Clients", () => { test("get (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/connections/id/clients") .respondWith() .statusCode(429) @@ -129,7 +129,7 @@ describe("Clients", () => { test("update (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = [{ client_id: "client_id", status: true }]; server @@ -151,7 +151,7 @@ describe("Clients", () => { test("update (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = [ { client_id: "client_id", status: true }, { client_id: "client_id", status: true }, @@ -182,7 +182,7 @@ describe("Clients", () => { test("update (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = [ { client_id: "client_id", status: true }, { client_id: "client_id", status: true }, @@ -213,7 +213,7 @@ describe("Clients", () => { test("update (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = [ { client_id: "client_id", status: true }, { client_id: "client_id", status: true }, @@ -244,7 +244,7 @@ describe("Clients", () => { test("update (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = [ { client_id: "client_id", status: true }, { client_id: "client_id", status: true }, @@ -275,7 +275,7 @@ describe("Clients", () => { test("update (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = [ { client_id: "client_id", status: true }, { client_id: "client_id", status: true }, diff --git a/src/management/tests/wire/connections/keys.test.ts b/src/management/tests/wire/connections/keys.test.ts index 97eb774ded..938b7d5516 100644 --- a/src/management/tests/wire/connections/keys.test.ts +++ b/src/management/tests/wire/connections/keys.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../Client"; import * as Management from "../../../api/index"; +import { ManagementClient } from "../../../Client"; +import { mockServerPool } from "../../mock-server/MockServerPool"; -describe("Keys", () => { +describe("KeysClient", () => { test("get (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = [ { @@ -54,7 +54,7 @@ describe("Keys", () => { test("get (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -72,7 +72,7 @@ describe("Keys", () => { test("get (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -90,7 +90,7 @@ describe("Keys", () => { test("get (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -108,7 +108,7 @@ describe("Keys", () => { test("get (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -126,7 +126,7 @@ describe("Keys", () => { test("get (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -144,7 +144,7 @@ describe("Keys", () => { test("rotate (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { kid: "kid", @@ -181,7 +181,7 @@ describe("Keys", () => { test("rotate (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -199,7 +199,7 @@ describe("Keys", () => { test("rotate (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -217,7 +217,7 @@ describe("Keys", () => { test("rotate (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -235,7 +235,7 @@ describe("Keys", () => { test("rotate (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -253,7 +253,7 @@ describe("Keys", () => { test("rotate (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/connections/scimConfiguration.test.ts b/src/management/tests/wire/connections/scimConfiguration.test.ts index 38538532d8..99a18e2ae0 100644 --- a/src/management/tests/wire/connections/scimConfiguration.test.ts +++ b/src/management/tests/wire/connections/scimConfiguration.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../Client"; import * as Management from "../../../api/index"; +import { ManagementClient } from "../../../Client"; +import { mockServerPool } from "../../mock-server/MockServerPool"; -describe("ScimConfiguration", () => { +describe("ScimConfigurationClient", () => { test("get (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { connection_id: "connection_id", @@ -47,7 +47,7 @@ describe("ScimConfiguration", () => { test("get (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -65,7 +65,7 @@ describe("ScimConfiguration", () => { test("get (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -83,7 +83,7 @@ describe("ScimConfiguration", () => { test("create (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { connection_id: "connection_id", @@ -123,7 +123,7 @@ describe("ScimConfiguration", () => { test("create (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -141,7 +141,7 @@ describe("ScimConfiguration", () => { test("create (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -159,7 +159,7 @@ describe("ScimConfiguration", () => { test("delete (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); server.mockEndpoint().delete("/connections/id/scim-configuration").respondWith().statusCode(200).build(); @@ -169,7 +169,7 @@ describe("ScimConfiguration", () => { test("delete (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -187,7 +187,7 @@ describe("ScimConfiguration", () => { test("delete (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -205,7 +205,7 @@ describe("ScimConfiguration", () => { test("update (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { user_id_attribute: "user_id_attribute", mapping: [{}] }; const rawResponseBody = { connection_id: "connection_id", @@ -249,7 +249,7 @@ describe("ScimConfiguration", () => { test("update (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { user_id_attribute: "user_id_attribute", mapping: [{}, {}] }; const rawResponseBody = { key: "value" }; server @@ -271,7 +271,7 @@ describe("ScimConfiguration", () => { test("update (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { user_id_attribute: "user_id_attribute", mapping: [{}, {}] }; const rawResponseBody = { key: "value" }; server @@ -293,7 +293,7 @@ describe("ScimConfiguration", () => { test("getDefaultMapping (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { mapping: [{ auth0: "auth0", scim: "scim" }] }; server @@ -317,7 +317,7 @@ describe("ScimConfiguration", () => { test("getDefaultMapping (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -335,7 +335,7 @@ describe("ScimConfiguration", () => { test("getDefaultMapping (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/connections/scimConfiguration/tokens.test.ts b/src/management/tests/wire/connections/scimConfiguration/tokens.test.ts index 81f5478487..07a592af11 100644 --- a/src/management/tests/wire/connections/scimConfiguration/tokens.test.ts +++ b/src/management/tests/wire/connections/scimConfiguration/tokens.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../../Client"; import * as Management from "../../../../api/index"; +import { ManagementClient } from "../../../../Client"; +import { mockServerPool } from "../../../mock-server/MockServerPool"; -describe("Tokens", () => { +describe("TokensClient", () => { test("get (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = [ { @@ -40,7 +40,7 @@ describe("Tokens", () => { test("get (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -58,7 +58,7 @@ describe("Tokens", () => { test("get (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -76,7 +76,7 @@ describe("Tokens", () => { test("create (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { token_id: "token_id", @@ -106,7 +106,7 @@ describe("Tokens", () => { test("create (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -125,7 +125,7 @@ describe("Tokens", () => { test("create (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -144,7 +144,7 @@ describe("Tokens", () => { test("create (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -163,7 +163,7 @@ describe("Tokens", () => { test("delete (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); server .mockEndpoint() @@ -178,7 +178,7 @@ describe("Tokens", () => { test("delete (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -196,7 +196,7 @@ describe("Tokens", () => { test("delete (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/connections/users.test.ts b/src/management/tests/wire/connections/users.test.ts index 88234cd7a7..d7fb9690c3 100644 --- a/src/management/tests/wire/connections/users.test.ts +++ b/src/management/tests/wire/connections/users.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../Client"; import * as Management from "../../../api/index"; +import { ManagementClient } from "../../../Client"; +import { mockServerPool } from "../../mock-server/MockServerPool"; -describe("Users", () => { +describe("UsersClient", () => { test("deleteByEmail (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); server.mockEndpoint().delete("/connections/id/users").respondWith().statusCode(200).build(); @@ -19,7 +19,7 @@ describe("Users", () => { test("deleteByEmail (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -39,7 +39,7 @@ describe("Users", () => { test("deleteByEmail (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -59,7 +59,7 @@ describe("Users", () => { test("deleteByEmail (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -79,7 +79,7 @@ describe("Users", () => { test("deleteByEmail (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/customDomains.test.ts b/src/management/tests/wire/customDomains.test.ts index 52421573f7..90a0c1f2bb 100644 --- a/src/management/tests/wire/customDomains.test.ts +++ b/src/management/tests/wire/customDomains.test.ts @@ -1,36 +1,24 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../mock-server/MockServerPool"; -import { ManagementClient } from "../../Client"; import * as Management from "../../api/index"; +import { ManagementClient } from "../../Client"; +import { mockServerPool } from "../mock-server/MockServerPool"; -describe("CustomDomains", () => { +describe("CustomDomainsClient", () => { test("list (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = [ { custom_domain_id: "custom_domain_id", domain: "domain", primary: true, - status: "pending_verification", type: "auth0_managed_certs", origin_domain_name: "origin_domain_name", - verification: { - methods: [{ name: "cname", record: "record" }], - status: "verified", - error_msg: "error_msg", - last_verified_at: "last_verified_at", - }, + verification: { methods: [{ name: "cname", record: "record" }] }, custom_client_ip_header: "custom_client_ip_header", tls_policy: "tls_policy", - certificate: { - status: "provisioning", - error_msg: "error_msg", - certificate_authority: "letsencrypt", - renews_before: "renews_before", - }, }, ]; server.mockEndpoint().get("/custom-domains").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); @@ -41,7 +29,6 @@ describe("CustomDomains", () => { custom_domain_id: "custom_domain_id", domain: "domain", primary: true, - status: "pending_verification", type: "auth0_managed_certs", origin_domain_name: "origin_domain_name", verification: { @@ -51,25 +38,16 @@ describe("CustomDomains", () => { record: "record", }, ], - status: "verified", - error_msg: "error_msg", - last_verified_at: "last_verified_at", }, custom_client_ip_header: "custom_client_ip_header", tls_policy: "tls_policy", - certificate: { - status: "provisioning", - error_msg: "error_msg", - certificate_authority: "letsencrypt", - renews_before: "renews_before", - }, }, ]); }); test("list (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/custom-domains").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); @@ -81,7 +59,7 @@ describe("CustomDomains", () => { test("list (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/custom-domains").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); @@ -93,7 +71,7 @@ describe("CustomDomains", () => { test("list (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/custom-domains").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); @@ -105,28 +83,16 @@ describe("CustomDomains", () => { test("create (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { domain: "domain", type: "auth0_managed_certs" }; const rawResponseBody = { custom_domain_id: "custom_domain_id", domain: "domain", primary: true, - status: "pending_verification", type: "auth0_managed_certs", - verification: { - methods: [{ name: "cname", record: "record" }], - status: "verified", - error_msg: "error_msg", - last_verified_at: "last_verified_at", - }, + verification: { methods: [{ name: "cname", record: "record" }] }, custom_client_ip_header: "custom_client_ip_header", tls_policy: "tls_policy", - certificate: { - status: "provisioning", - error_msg: "error_msg", - certificate_authority: "letsencrypt", - renews_before: "renews_before", - }, }; server .mockEndpoint() @@ -145,7 +111,6 @@ describe("CustomDomains", () => { custom_domain_id: "custom_domain_id", domain: "domain", primary: true, - status: "pending_verification", type: "auth0_managed_certs", verification: { methods: [ @@ -154,24 +119,15 @@ describe("CustomDomains", () => { record: "record", }, ], - status: "verified", - error_msg: "error_msg", - last_verified_at: "last_verified_at", }, custom_client_ip_header: "custom_client_ip_header", tls_policy: "tls_policy", - certificate: { - status: "provisioning", - error_msg: "error_msg", - certificate_authority: "letsencrypt", - renews_before: "renews_before", - }, }); }); test("create (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { domain: "domain", type: "auth0_managed_certs" }; const rawResponseBody = { key: "value" }; server @@ -193,7 +149,7 @@ describe("CustomDomains", () => { test("create (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { domain: "domain", type: "auth0_managed_certs" }; const rawResponseBody = { key: "value" }; server @@ -215,7 +171,7 @@ describe("CustomDomains", () => { test("create (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { domain: "domain", type: "auth0_managed_certs" }; const rawResponseBody = { key: "value" }; server @@ -237,7 +193,7 @@ describe("CustomDomains", () => { test("create (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { domain: "domain", type: "auth0_managed_certs" }; const rawResponseBody = { key: "value" }; server @@ -259,7 +215,7 @@ describe("CustomDomains", () => { test("create (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { domain: "domain", type: "auth0_managed_certs" }; const rawResponseBody = { key: "value" }; server @@ -281,29 +237,17 @@ describe("CustomDomains", () => { test("get (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { custom_domain_id: "custom_domain_id", domain: "domain", primary: true, - status: "pending_verification", type: "auth0_managed_certs", origin_domain_name: "origin_domain_name", - verification: { - methods: [{ name: "cname", record: "record" }], - status: "verified", - error_msg: "error_msg", - last_verified_at: "last_verified_at", - }, + verification: { methods: [{ name: "cname", record: "record" }] }, custom_client_ip_header: "custom_client_ip_header", tls_policy: "tls_policy", - certificate: { - status: "provisioning", - error_msg: "error_msg", - certificate_authority: "letsencrypt", - renews_before: "renews_before", - }, }; server.mockEndpoint().get("/custom-domains/id").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); @@ -312,7 +256,6 @@ describe("CustomDomains", () => { custom_domain_id: "custom_domain_id", domain: "domain", primary: true, - status: "pending_verification", type: "auth0_managed_certs", origin_domain_name: "origin_domain_name", verification: { @@ -322,24 +265,15 @@ describe("CustomDomains", () => { record: "record", }, ], - status: "verified", - error_msg: "error_msg", - last_verified_at: "last_verified_at", }, custom_client_ip_header: "custom_client_ip_header", tls_policy: "tls_policy", - certificate: { - status: "provisioning", - error_msg: "error_msg", - certificate_authority: "letsencrypt", - renews_before: "renews_before", - }, }); }); test("get (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/custom-domains/id").respondWith().statusCode(400).jsonBody(rawResponseBody).build(); @@ -351,7 +285,7 @@ describe("CustomDomains", () => { test("get (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/custom-domains/id").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); @@ -363,7 +297,7 @@ describe("CustomDomains", () => { test("get (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/custom-domains/id").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); @@ -375,7 +309,7 @@ describe("CustomDomains", () => { test("get (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/custom-domains/id").respondWith().statusCode(404).jsonBody(rawResponseBody).build(); @@ -387,7 +321,7 @@ describe("CustomDomains", () => { test("get (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/custom-domains/id").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); @@ -399,7 +333,7 @@ describe("CustomDomains", () => { test("delete (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); server.mockEndpoint().delete("/custom-domains/id").respondWith().statusCode(200).build(); @@ -409,7 +343,7 @@ describe("CustomDomains", () => { test("delete (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -427,7 +361,7 @@ describe("CustomDomains", () => { test("delete (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -445,7 +379,7 @@ describe("CustomDomains", () => { test("delete (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -463,7 +397,7 @@ describe("CustomDomains", () => { test("delete (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -481,28 +415,16 @@ describe("CustomDomains", () => { test("update (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { custom_domain_id: "custom_domain_id", domain: "domain", primary: true, - status: "pending_verification", type: "auth0_managed_certs", - verification: { - methods: [{ name: "cname", record: "record" }], - status: "verified", - error_msg: "error_msg", - last_verified_at: "last_verified_at", - }, + verification: { methods: [{ name: "cname", record: "record" }] }, custom_client_ip_header: "custom_client_ip_header", tls_policy: "tls_policy", - certificate: { - status: "provisioning", - error_msg: "error_msg", - certificate_authority: "letsencrypt", - renews_before: "renews_before", - }, }; server .mockEndpoint() @@ -518,7 +440,6 @@ describe("CustomDomains", () => { custom_domain_id: "custom_domain_id", domain: "domain", primary: true, - status: "pending_verification", type: "auth0_managed_certs", verification: { methods: [ @@ -527,24 +448,15 @@ describe("CustomDomains", () => { record: "record", }, ], - status: "verified", - error_msg: "error_msg", - last_verified_at: "last_verified_at", }, custom_client_ip_header: "custom_client_ip_header", tls_policy: "tls_policy", - certificate: { - status: "provisioning", - error_msg: "error_msg", - certificate_authority: "letsencrypt", - renews_before: "renews_before", - }, }); }); test("update (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -563,7 +475,7 @@ describe("CustomDomains", () => { test("update (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -582,7 +494,7 @@ describe("CustomDomains", () => { test("update (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -601,7 +513,7 @@ describe("CustomDomains", () => { test("update (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -620,7 +532,7 @@ describe("CustomDomains", () => { test("test (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { success: true, message: "message" }; server @@ -640,7 +552,7 @@ describe("CustomDomains", () => { test("test (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -658,7 +570,7 @@ describe("CustomDomains", () => { test("test (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -676,7 +588,7 @@ describe("CustomDomains", () => { test("test (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -694,7 +606,7 @@ describe("CustomDomains", () => { test("test (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -712,7 +624,7 @@ describe("CustomDomains", () => { test("test (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -730,30 +642,18 @@ describe("CustomDomains", () => { test("verify (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { custom_domain_id: "custom_domain_id", domain: "domain", primary: true, - status: "pending_verification", type: "auth0_managed_certs", cname_api_key: "cname_api_key", origin_domain_name: "origin_domain_name", - verification: { - methods: [{ name: "cname", record: "record" }], - status: "verified", - error_msg: "error_msg", - last_verified_at: "last_verified_at", - }, + verification: { methods: [{ name: "cname", record: "record" }] }, custom_client_ip_header: "custom_client_ip_header", tls_policy: "tls_policy", - certificate: { - status: "provisioning", - error_msg: "error_msg", - certificate_authority: "letsencrypt", - renews_before: "renews_before", - }, }; server .mockEndpoint() @@ -768,7 +668,6 @@ describe("CustomDomains", () => { custom_domain_id: "custom_domain_id", domain: "domain", primary: true, - status: "pending_verification", type: "auth0_managed_certs", cname_api_key: "cname_api_key", origin_domain_name: "origin_domain_name", @@ -779,24 +678,15 @@ describe("CustomDomains", () => { record: "record", }, ], - status: "verified", - error_msg: "error_msg", - last_verified_at: "last_verified_at", }, custom_client_ip_header: "custom_client_ip_header", tls_policy: "tls_policy", - certificate: { - status: "provisioning", - error_msg: "error_msg", - certificate_authority: "letsencrypt", - renews_before: "renews_before", - }, }); }); test("verify (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -814,7 +704,7 @@ describe("CustomDomains", () => { test("verify (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -832,7 +722,7 @@ describe("CustomDomains", () => { test("verify (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -850,7 +740,7 @@ describe("CustomDomains", () => { test("verify (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -868,7 +758,7 @@ describe("CustomDomains", () => { test("verify (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/deviceCredentials.test.ts b/src/management/tests/wire/deviceCredentials.test.ts index 1534454876..90b50eca2d 100644 --- a/src/management/tests/wire/deviceCredentials.test.ts +++ b/src/management/tests/wire/deviceCredentials.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../mock-server/MockServerPool"; -import { ManagementClient } from "../../Client"; import * as Management from "../../api/index"; +import { ManagementClient } from "../../Client"; +import { mockServerPool } from "../mock-server/MockServerPool"; -describe("DeviceCredentials", () => { +describe("DeviceCredentialsClient", () => { test("list (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { start: 1.1, @@ -25,7 +25,7 @@ describe("DeviceCredentials", () => { ], }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/device-credentials") .respondWith() .statusCode(200) @@ -66,11 +66,11 @@ describe("DeviceCredentials", () => { test("list (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/device-credentials") .respondWith() .statusCode(400) @@ -84,11 +84,11 @@ describe("DeviceCredentials", () => { test("list (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/device-credentials") .respondWith() .statusCode(401) @@ -102,11 +102,11 @@ describe("DeviceCredentials", () => { test("list (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/device-credentials") .respondWith() .statusCode(403) @@ -120,11 +120,11 @@ describe("DeviceCredentials", () => { test("list (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/device-credentials") .respondWith() .statusCode(429) @@ -138,7 +138,7 @@ describe("DeviceCredentials", () => { test("createPublicKey (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { device_name: "device_name", type: "public_key", @@ -167,7 +167,7 @@ describe("DeviceCredentials", () => { test("createPublicKey (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { device_name: "x", type: "public_key", value: "x", device_id: "device_id" }; const rawResponseBody = { key: "value" }; server @@ -190,7 +190,7 @@ describe("DeviceCredentials", () => { test("createPublicKey (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { device_name: "x", type: "public_key", value: "x", device_id: "device_id" }; const rawResponseBody = { key: "value" }; server @@ -213,7 +213,7 @@ describe("DeviceCredentials", () => { test("createPublicKey (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { device_name: "x", type: "public_key", value: "x", device_id: "device_id" }; const rawResponseBody = { key: "value" }; server @@ -236,7 +236,7 @@ describe("DeviceCredentials", () => { test("createPublicKey (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { device_name: "x", type: "public_key", value: "x", device_id: "device_id" }; const rawResponseBody = { key: "value" }; server @@ -259,7 +259,7 @@ describe("DeviceCredentials", () => { test("createPublicKey (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { device_name: "x", type: "public_key", value: "x", device_id: "device_id" }; const rawResponseBody = { key: "value" }; server @@ -282,7 +282,7 @@ describe("DeviceCredentials", () => { test("delete (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); server.mockEndpoint().delete("/device-credentials/id").respondWith().statusCode(200).build(); @@ -292,7 +292,7 @@ describe("DeviceCredentials", () => { test("delete (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -310,7 +310,7 @@ describe("DeviceCredentials", () => { test("delete (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -328,7 +328,7 @@ describe("DeviceCredentials", () => { test("delete (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -346,7 +346,7 @@ describe("DeviceCredentials", () => { test("delete (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/emailTemplates.test.ts b/src/management/tests/wire/emailTemplates.test.ts index 96c6b8ae7b..c93b6ec314 100644 --- a/src/management/tests/wire/emailTemplates.test.ts +++ b/src/management/tests/wire/emailTemplates.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../mock-server/MockServerPool"; -import { ManagementClient } from "../../Client"; import * as Management from "../../api/index"; +import { ManagementClient } from "../../Client"; +import { mockServerPool } from "../mock-server/MockServerPool"; -describe("EmailTemplates", () => { +describe("EmailTemplatesClient", () => { test("create (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { template: "verify_email" }; const rawResponseBody = { template: "verify_email", @@ -47,7 +47,7 @@ describe("EmailTemplates", () => { test("create (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { template: "verify_email" }; const rawResponseBody = { key: "value" }; server @@ -68,7 +68,7 @@ describe("EmailTemplates", () => { test("create (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { template: "verify_email" }; const rawResponseBody = { key: "value" }; server @@ -89,7 +89,7 @@ describe("EmailTemplates", () => { test("create (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { template: "verify_email" }; const rawResponseBody = { key: "value" }; server @@ -110,7 +110,7 @@ describe("EmailTemplates", () => { test("create (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { template: "verify_email" }; const rawResponseBody = { key: "value" }; server @@ -131,7 +131,7 @@ describe("EmailTemplates", () => { test("create (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { template: "verify_email" }; const rawResponseBody = { key: "value" }; server @@ -152,7 +152,7 @@ describe("EmailTemplates", () => { test("get (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { template: "verify_email", @@ -189,7 +189,7 @@ describe("EmailTemplates", () => { test("get (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -207,7 +207,7 @@ describe("EmailTemplates", () => { test("get (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -225,7 +225,7 @@ describe("EmailTemplates", () => { test("get (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -243,7 +243,7 @@ describe("EmailTemplates", () => { test("get (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -261,7 +261,7 @@ describe("EmailTemplates", () => { test("set (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { template: "verify_email" }; const rawResponseBody = { template: "verify_email", @@ -301,7 +301,7 @@ describe("EmailTemplates", () => { test("set (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { template: "verify_email" }; const rawResponseBody = { key: "value" }; server @@ -322,7 +322,7 @@ describe("EmailTemplates", () => { test("set (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { template: "verify_email" }; const rawResponseBody = { key: "value" }; server @@ -343,7 +343,7 @@ describe("EmailTemplates", () => { test("set (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { template: "verify_email" }; const rawResponseBody = { key: "value" }; server @@ -364,7 +364,7 @@ describe("EmailTemplates", () => { test("set (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { template: "verify_email" }; const rawResponseBody = { key: "value" }; server @@ -385,7 +385,7 @@ describe("EmailTemplates", () => { test("set (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { template: "verify_email" }; const rawResponseBody = { key: "value" }; server @@ -406,7 +406,7 @@ describe("EmailTemplates", () => { test("update (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { template: "verify_email", @@ -444,7 +444,7 @@ describe("EmailTemplates", () => { test("update (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -463,7 +463,7 @@ describe("EmailTemplates", () => { test("update (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -482,7 +482,7 @@ describe("EmailTemplates", () => { test("update (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -501,7 +501,7 @@ describe("EmailTemplates", () => { test("update (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -520,7 +520,7 @@ describe("EmailTemplates", () => { test("update (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/emails/provider.test.ts b/src/management/tests/wire/emails/provider.test.ts index 0421b59e9f..9e2a5d9c8d 100644 --- a/src/management/tests/wire/emails/provider.test.ts +++ b/src/management/tests/wire/emails/provider.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../Client"; import * as Management from "../../../api/index"; +import { ManagementClient } from "../../../Client"; +import { mockServerPool } from "../../mock-server/MockServerPool"; -describe("Provider", () => { +describe("ProviderClient", () => { test("get (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { name: "name", @@ -47,7 +47,7 @@ describe("Provider", () => { test("get (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/emails/provider").respondWith().statusCode(400).jsonBody(rawResponseBody).build(); @@ -59,7 +59,7 @@ describe("Provider", () => { test("get (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/emails/provider").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); @@ -71,7 +71,7 @@ describe("Provider", () => { test("get (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/emails/provider").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); @@ -83,7 +83,7 @@ describe("Provider", () => { test("get (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/emails/provider").respondWith().statusCode(404).jsonBody(rawResponseBody).build(); @@ -95,7 +95,7 @@ describe("Provider", () => { test("get (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/emails/provider").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); @@ -107,7 +107,7 @@ describe("Provider", () => { test("create (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "mailgun", credentials: { api_key: "api_key" } }; const rawResponseBody = { name: "name", @@ -156,7 +156,7 @@ describe("Provider", () => { test("create (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "mailgun", credentials: { api_key: "x" } }; const rawResponseBody = { key: "value" }; server @@ -180,7 +180,7 @@ describe("Provider", () => { test("create (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "mailgun", credentials: { api_key: "x" } }; const rawResponseBody = { key: "value" }; server @@ -204,7 +204,7 @@ describe("Provider", () => { test("create (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "mailgun", credentials: { api_key: "x" } }; const rawResponseBody = { key: "value" }; server @@ -228,7 +228,7 @@ describe("Provider", () => { test("create (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "mailgun", credentials: { api_key: "x" } }; const rawResponseBody = { key: "value" }; server @@ -252,7 +252,7 @@ describe("Provider", () => { test("create (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "mailgun", credentials: { api_key: "x" } }; const rawResponseBody = { key: "value" }; server @@ -276,7 +276,7 @@ describe("Provider", () => { test("delete (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); server.mockEndpoint().delete("/emails/provider").respondWith().statusCode(200).build(); @@ -286,7 +286,7 @@ describe("Provider", () => { test("delete (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -304,7 +304,7 @@ describe("Provider", () => { test("delete (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -322,7 +322,7 @@ describe("Provider", () => { test("delete (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -340,7 +340,7 @@ describe("Provider", () => { test("delete (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -358,7 +358,7 @@ describe("Provider", () => { test("delete (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -376,7 +376,7 @@ describe("Provider", () => { test("update (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { name: "name", @@ -420,7 +420,7 @@ describe("Provider", () => { test("update (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -439,7 +439,7 @@ describe("Provider", () => { test("update (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -458,7 +458,7 @@ describe("Provider", () => { test("update (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -477,7 +477,7 @@ describe("Provider", () => { test("update (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -496,7 +496,7 @@ describe("Provider", () => { test("update (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -515,7 +515,7 @@ describe("Provider", () => { test("update (7)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/eventStreams.test.ts b/src/management/tests/wire/eventStreams.test.ts index 1114f81e78..02a6bda1e2 100644 --- a/src/management/tests/wire/eventStreams.test.ts +++ b/src/management/tests/wire/eventStreams.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../mock-server/MockServerPool"; -import { ManagementClient } from "../../Client"; import * as Management from "../../api/index"; +import { ManagementClient } from "../../Client"; +import { mockServerPool } from "../mock-server/MockServerPool"; -describe("EventStreams", () => { +describe("EventStreamsClient", () => { test("list (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = [ { @@ -56,7 +56,7 @@ describe("EventStreams", () => { test("list (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/event-streams").respondWith().statusCode(400).jsonBody(rawResponseBody).build(); @@ -68,7 +68,7 @@ describe("EventStreams", () => { test("list (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/event-streams").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); @@ -80,7 +80,7 @@ describe("EventStreams", () => { test("list (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/event-streams").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); @@ -92,7 +92,7 @@ describe("EventStreams", () => { test("list (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/event-streams").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); @@ -104,7 +104,7 @@ describe("EventStreams", () => { test("create (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { destination: { type: "webhook", @@ -176,7 +176,7 @@ describe("EventStreams", () => { test("create (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { destination: { type: "webhook", @@ -214,7 +214,7 @@ describe("EventStreams", () => { test("create (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { destination: { type: "webhook", @@ -252,7 +252,7 @@ describe("EventStreams", () => { test("create (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { destination: { type: "webhook", @@ -290,7 +290,7 @@ describe("EventStreams", () => { test("create (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { destination: { type: "webhook", @@ -328,7 +328,7 @@ describe("EventStreams", () => { test("create (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { destination: { type: "webhook", @@ -366,7 +366,7 @@ describe("EventStreams", () => { test("get (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { id: "id", @@ -412,7 +412,7 @@ describe("EventStreams", () => { test("get (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/event-streams/id").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); @@ -424,7 +424,7 @@ describe("EventStreams", () => { test("get (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/event-streams/id").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); @@ -436,7 +436,7 @@ describe("EventStreams", () => { test("get (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/event-streams/id").respondWith().statusCode(404).jsonBody(rawResponseBody).build(); @@ -448,7 +448,7 @@ describe("EventStreams", () => { test("get (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/event-streams/id").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); @@ -460,7 +460,7 @@ describe("EventStreams", () => { test("delete (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); server.mockEndpoint().delete("/event-streams/id").respondWith().statusCode(200).build(); @@ -470,7 +470,7 @@ describe("EventStreams", () => { test("delete (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -488,7 +488,7 @@ describe("EventStreams", () => { test("delete (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -506,7 +506,7 @@ describe("EventStreams", () => { test("delete (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -524,7 +524,7 @@ describe("EventStreams", () => { test("delete (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -542,7 +542,7 @@ describe("EventStreams", () => { test("update (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { id: "id", @@ -595,7 +595,7 @@ describe("EventStreams", () => { test("update (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -614,7 +614,7 @@ describe("EventStreams", () => { test("update (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -633,7 +633,7 @@ describe("EventStreams", () => { test("update (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -652,7 +652,7 @@ describe("EventStreams", () => { test("update (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -669,9 +669,148 @@ describe("EventStreams", () => { }).rejects.toThrow(Management.TooManyRequestsError); }); + test("getStats (1)", async () => { + const server = mockServerPool.createServer(); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); + + const rawResponseBody = { + id: "id", + name: "name", + window: { + date_from: "2024-01-15T09:30:00Z", + date_to: "2024-01-15T09:30:00Z", + bucket_interval: { scale_factor: 1 }, + }, + buckets: ["2024-01-15T09:30:00Z"], + metrics: [{ name: "name", window_total: 1.1, type: "type", data: [1.1] }], + }; + server + .mockEndpoint() + .get("/event-streams/id/stats") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); + + const response = await client.eventStreams.getStats("id", { + date_from: "date_from", + date_to: "date_to", + }); + expect(response).toEqual({ + id: "id", + name: "name", + window: { + date_from: "2024-01-15T09:30:00Z", + date_to: "2024-01-15T09:30:00Z", + bucket_interval: { + scale_factor: 1, + }, + }, + buckets: ["2024-01-15T09:30:00Z"], + metrics: [ + { + name: "name", + window_total: 1.1, + type: "type", + data: [1.1], + }, + ], + }); + }); + + test("getStats (2)", async () => { + const server = mockServerPool.createServer(); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); + + const rawResponseBody = { key: "value" }; + server + .mockEndpoint() + .get("/event-streams/id/stats") + .respondWith() + .statusCode(400) + .jsonBody(rawResponseBody) + .build(); + + await expect(async () => { + return await client.eventStreams.getStats("id"); + }).rejects.toThrow(Management.BadRequestError); + }); + + test("getStats (3)", async () => { + const server = mockServerPool.createServer(); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); + + const rawResponseBody = { key: "value" }; + server + .mockEndpoint() + .get("/event-streams/id/stats") + .respondWith() + .statusCode(401) + .jsonBody(rawResponseBody) + .build(); + + await expect(async () => { + return await client.eventStreams.getStats("id"); + }).rejects.toThrow(Management.UnauthorizedError); + }); + + test("getStats (4)", async () => { + const server = mockServerPool.createServer(); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); + + const rawResponseBody = { key: "value" }; + server + .mockEndpoint() + .get("/event-streams/id/stats") + .respondWith() + .statusCode(403) + .jsonBody(rawResponseBody) + .build(); + + await expect(async () => { + return await client.eventStreams.getStats("id"); + }).rejects.toThrow(Management.ForbiddenError); + }); + + test("getStats (5)", async () => { + const server = mockServerPool.createServer(); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); + + const rawResponseBody = { key: "value" }; + server + .mockEndpoint() + .get("/event-streams/id/stats") + .respondWith() + .statusCode(404) + .jsonBody(rawResponseBody) + .build(); + + await expect(async () => { + return await client.eventStreams.getStats("id"); + }).rejects.toThrow(Management.NotFoundError); + }); + + test("getStats (6)", async () => { + const server = mockServerPool.createServer(); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); + + const rawResponseBody = { key: "value" }; + server + .mockEndpoint() + .get("/event-streams/id/stats") + .respondWith() + .statusCode(429) + .jsonBody(rawResponseBody) + .build(); + + await expect(async () => { + return await client.eventStreams.getStats("id"); + }).rejects.toThrow(Management.TooManyRequestsError); + }); + test("test (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { event_type: "user.created" }; const rawResponseBody = { id: "id", @@ -725,7 +864,7 @@ describe("EventStreams", () => { test("test (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { event_type: "user.created" }; const rawResponseBody = { key: "value" }; server @@ -746,7 +885,7 @@ describe("EventStreams", () => { test("test (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { event_type: "user.created" }; const rawResponseBody = { key: "value" }; server @@ -767,7 +906,7 @@ describe("EventStreams", () => { test("test (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { event_type: "user.created" }; const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/eventStreams/deliveries.test.ts b/src/management/tests/wire/eventStreams/deliveries.test.ts index 91822b9bef..03717b3ae0 100644 --- a/src/management/tests/wire/eventStreams/deliveries.test.ts +++ b/src/management/tests/wire/eventStreams/deliveries.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../Client"; import * as Management from "../../../api/index"; +import { ManagementClient } from "../../../Client"; +import { mockServerPool } from "../../mock-server/MockServerPool"; -describe("Deliveries", () => { +describe("DeliveriesClient", () => { test("list (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = [ { @@ -68,7 +68,7 @@ describe("Deliveries", () => { test("list (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -86,7 +86,7 @@ describe("Deliveries", () => { test("list (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -104,7 +104,7 @@ describe("Deliveries", () => { test("list (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -122,7 +122,7 @@ describe("Deliveries", () => { test("list (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -140,7 +140,7 @@ describe("Deliveries", () => { test("list (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -158,7 +158,7 @@ describe("Deliveries", () => { test("getHistory (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { id: "id", @@ -209,7 +209,7 @@ describe("Deliveries", () => { test("getHistory (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -227,7 +227,7 @@ describe("Deliveries", () => { test("getHistory (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -245,7 +245,7 @@ describe("Deliveries", () => { test("getHistory (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -263,7 +263,7 @@ describe("Deliveries", () => { test("getHistory (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/eventStreams/redeliveries.test.ts b/src/management/tests/wire/eventStreams/redeliveries.test.ts index efdc27057d..fe23f4fe70 100644 --- a/src/management/tests/wire/eventStreams/redeliveries.test.ts +++ b/src/management/tests/wire/eventStreams/redeliveries.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../Client"; import * as Management from "../../../api/index"; +import { ManagementClient } from "../../../Client"; +import { mockServerPool } from "../../mock-server/MockServerPool"; -describe("Redeliveries", () => { +describe("RedeliveriesClient", () => { test("create (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { date_from: "2024-01-15T09:30:00Z", @@ -35,7 +35,7 @@ describe("Redeliveries", () => { test("create (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -54,7 +54,7 @@ describe("Redeliveries", () => { test("create (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -73,7 +73,7 @@ describe("Redeliveries", () => { test("create (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -92,7 +92,7 @@ describe("Redeliveries", () => { test("create (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -111,7 +111,7 @@ describe("Redeliveries", () => { test("create (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -130,7 +130,7 @@ describe("Redeliveries", () => { test("createById (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); server.mockEndpoint().post("/event-streams/id/redeliver/event_id").respondWith().statusCode(200).build(); @@ -140,7 +140,7 @@ describe("Redeliveries", () => { test("createById (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -158,7 +158,7 @@ describe("Redeliveries", () => { test("createById (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -176,7 +176,7 @@ describe("Redeliveries", () => { test("createById (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -194,7 +194,7 @@ describe("Redeliveries", () => { test("createById (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -212,7 +212,7 @@ describe("Redeliveries", () => { test("createById (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/flows.test.ts b/src/management/tests/wire/flows.test.ts index 19ff376c88..04951226b7 100644 --- a/src/management/tests/wire/flows.test.ts +++ b/src/management/tests/wire/flows.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../mock-server/MockServerPool"; -import { ManagementClient } from "../../Client"; import * as Management from "../../api/index"; +import { ManagementClient } from "../../Client"; +import { mockServerPool } from "../mock-server/MockServerPool"; -describe("Flows", () => { +describe("FlowsClient", () => { test("list (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { start: 1.1, @@ -23,7 +23,13 @@ describe("Flows", () => { }, ], }; - server.mockEndpoint().get("/flows").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/flows") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); const expected = { start: 1.1, @@ -54,10 +60,16 @@ describe("Flows", () => { test("list (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/flows").respondWith().statusCode(400).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/flows") + .respondWith() + .statusCode(400) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.flows.list(); @@ -66,10 +78,16 @@ describe("Flows", () => { test("list (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/flows").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/flows") + .respondWith() + .statusCode(401) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.flows.list(); @@ -78,10 +96,16 @@ describe("Flows", () => { test("list (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/flows").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/flows") + .respondWith() + .statusCode(403) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.flows.list(); @@ -90,10 +114,16 @@ describe("Flows", () => { test("list (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/flows").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/flows") + .respondWith() + .statusCode(429) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.flows.list(); @@ -102,7 +132,7 @@ describe("Flows", () => { test("create (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "name" }; const rawResponseBody = { id: "id", @@ -159,7 +189,7 @@ describe("Flows", () => { test("create (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "x" }; const rawResponseBody = { key: "value" }; server @@ -180,7 +210,7 @@ describe("Flows", () => { test("create (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "x" }; const rawResponseBody = { key: "value" }; server @@ -201,7 +231,7 @@ describe("Flows", () => { test("create (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "x" }; const rawResponseBody = { key: "value" }; server @@ -222,7 +252,7 @@ describe("Flows", () => { test("create (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "x" }; const rawResponseBody = { key: "value" }; server @@ -243,7 +273,7 @@ describe("Flows", () => { test("get (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { id: "id", @@ -291,7 +321,7 @@ describe("Flows", () => { test("get (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/flows/id").respondWith().statusCode(400).jsonBody(rawResponseBody).build(); @@ -303,7 +333,7 @@ describe("Flows", () => { test("get (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/flows/id").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); @@ -315,7 +345,7 @@ describe("Flows", () => { test("get (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/flows/id").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); @@ -327,7 +357,7 @@ describe("Flows", () => { test("get (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/flows/id").respondWith().statusCode(404).jsonBody(rawResponseBody).build(); @@ -339,7 +369,7 @@ describe("Flows", () => { test("get (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/flows/id").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); @@ -351,7 +381,7 @@ describe("Flows", () => { test("delete (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); server.mockEndpoint().delete("/flows/id").respondWith().statusCode(200).build(); @@ -361,7 +391,7 @@ describe("Flows", () => { test("delete (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().delete("/flows/id").respondWith().statusCode(400).jsonBody(rawResponseBody).build(); @@ -373,7 +403,7 @@ describe("Flows", () => { test("delete (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().delete("/flows/id").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); @@ -385,7 +415,7 @@ describe("Flows", () => { test("delete (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().delete("/flows/id").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); @@ -397,7 +427,7 @@ describe("Flows", () => { test("delete (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().delete("/flows/id").respondWith().statusCode(404).jsonBody(rawResponseBody).build(); @@ -409,7 +439,7 @@ describe("Flows", () => { test("delete (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().delete("/flows/id").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); @@ -421,7 +451,7 @@ describe("Flows", () => { test("update (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { id: "id", @@ -476,7 +506,7 @@ describe("Flows", () => { test("update (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -495,7 +525,7 @@ describe("Flows", () => { test("update (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -514,7 +544,7 @@ describe("Flows", () => { test("update (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -533,7 +563,7 @@ describe("Flows", () => { test("update (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/flows/executions.test.ts b/src/management/tests/wire/flows/executions.test.ts index 53ee280a12..6920753155 100644 --- a/src/management/tests/wire/flows/executions.test.ts +++ b/src/management/tests/wire/flows/executions.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../Client"; import * as Management from "../../../api/index"; +import { ManagementClient } from "../../../Client"; +import { mockServerPool } from "../../mock-server/MockServerPool"; -describe("Executions", () => { +describe("ExecutionsClient", () => { test("list (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { next: "next", @@ -25,7 +25,7 @@ describe("Executions", () => { ], }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/flows/flow_id/executions") .respondWith() .statusCode(200) @@ -60,11 +60,11 @@ describe("Executions", () => { test("list (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/flows/flow_id/executions") .respondWith() .statusCode(400) @@ -78,11 +78,11 @@ describe("Executions", () => { test("list (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/flows/flow_id/executions") .respondWith() .statusCode(401) @@ -96,11 +96,11 @@ describe("Executions", () => { test("list (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/flows/flow_id/executions") .respondWith() .statusCode(403) @@ -114,11 +114,11 @@ describe("Executions", () => { test("list (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/flows/flow_id/executions") .respondWith() .statusCode(429) @@ -132,7 +132,7 @@ describe("Executions", () => { test("get (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { id: "id", @@ -171,7 +171,7 @@ describe("Executions", () => { test("get (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -189,7 +189,7 @@ describe("Executions", () => { test("get (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -207,7 +207,7 @@ describe("Executions", () => { test("get (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -225,7 +225,7 @@ describe("Executions", () => { test("get (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -243,7 +243,7 @@ describe("Executions", () => { test("delete (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); server.mockEndpoint().delete("/flows/flow_id/executions/execution_id").respondWith().statusCode(200).build(); @@ -253,7 +253,7 @@ describe("Executions", () => { test("delete (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -271,7 +271,7 @@ describe("Executions", () => { test("delete (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -289,7 +289,7 @@ describe("Executions", () => { test("delete (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -307,7 +307,7 @@ describe("Executions", () => { test("delete (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/flows/vault/connections.test.ts b/src/management/tests/wire/flows/vault/connections.test.ts deleted file mode 100644 index 12b34667b6..0000000000 --- a/src/management/tests/wire/flows/vault/connections.test.ts +++ /dev/null @@ -1,661 +0,0 @@ -// This file was auto-generated by Fern from our API Definition. - -import { mockServerPool } from "../../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../../Client"; -import * as Management from "../../../../api/index"; - -describe("Connections", () => { - test("list (1)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { - start: 1.1, - limit: 1.1, - total: 1.1, - connections: [ - { - id: "id", - app_id: "app_id", - name: "name", - account_name: "account_name", - ready: true, - created_at: "2024-01-15T09:30:00Z", - updated_at: "2024-01-15T09:30:00Z", - refreshed_at: "2024-01-15T09:30:00Z", - fingerprint: "fingerprint", - }, - ], - }; - server - .mockEndpoint() - .get("/flows/vault/connections") - .respondWith() - .statusCode(200) - .jsonBody(rawResponseBody) - .build(); - - const expected = { - start: 1.1, - limit: 1.1, - total: 1.1, - connections: [ - { - id: "id", - app_id: "app_id", - name: "name", - account_name: "account_name", - ready: true, - created_at: "2024-01-15T09:30:00Z", - updated_at: "2024-01-15T09:30:00Z", - refreshed_at: "2024-01-15T09:30:00Z", - fingerprint: "fingerprint", - }, - ], - }; - const page = await client.flows.vault.connections.list({ - page: 1, - per_page: 1, - include_totals: true, - }); - - expect(expected.connections).toEqual(page.data); - expect(page.hasNextPage()).toBe(true); - const nextPage = await page.getNextPage(); - expect(expected.connections).toEqual(nextPage.data); - }); - - test("list (2)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .get("/flows/vault/connections") - .respondWith() - .statusCode(400) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.flows.vault.connections.list(); - }).rejects.toThrow(Management.BadRequestError); - }); - - test("list (3)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .get("/flows/vault/connections") - .respondWith() - .statusCode(401) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.flows.vault.connections.list(); - }).rejects.toThrow(Management.UnauthorizedError); - }); - - test("list (4)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .get("/flows/vault/connections") - .respondWith() - .statusCode(403) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.flows.vault.connections.list(); - }).rejects.toThrow(Management.ForbiddenError); - }); - - test("list (5)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .get("/flows/vault/connections") - .respondWith() - .statusCode(429) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.flows.vault.connections.list(); - }).rejects.toThrow(Management.TooManyRequestsError); - }); - - test("create (1)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { - name: "name", - app_id: "ACTIVECAMPAIGN", - setup: { type: "API_KEY", api_key: "api_key", base_url: "base_url" }, - }; - const rawResponseBody = { - id: "id", - app_id: "app_id", - environment: "environment", - name: "name", - account_name: "account_name", - ready: true, - created_at: "2024-01-15T09:30:00Z", - updated_at: "2024-01-15T09:30:00Z", - refreshed_at: "2024-01-15T09:30:00Z", - fingerprint: "fingerprint", - }; - server - .mockEndpoint() - .post("/flows/vault/connections") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(200) - .jsonBody(rawResponseBody) - .build(); - - const response = await client.flows.vault.connections.create({ - name: "name", - app_id: "ACTIVECAMPAIGN", - setup: { - type: "API_KEY", - api_key: "api_key", - base_url: "base_url", - }, - }); - expect(response).toEqual({ - id: "id", - app_id: "app_id", - environment: "environment", - name: "name", - account_name: "account_name", - ready: true, - created_at: "2024-01-15T09:30:00Z", - updated_at: "2024-01-15T09:30:00Z", - refreshed_at: "2024-01-15T09:30:00Z", - fingerprint: "fingerprint", - }); - }); - - test("create (2)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { - name: "x", - app_id: "ACTIVECAMPAIGN", - setup: { type: "API_KEY", api_key: "api_key", base_url: "base_url" }, - }; - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .post("/flows/vault/connections") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(400) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.flows.vault.connections.create({ - name: "x", - app_id: "ACTIVECAMPAIGN", - setup: { - type: "API_KEY", - api_key: "api_key", - base_url: "base_url", - }, - }); - }).rejects.toThrow(Management.BadRequestError); - }); - - test("create (3)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { - name: "x", - app_id: "ACTIVECAMPAIGN", - setup: { type: "API_KEY", api_key: "api_key", base_url: "base_url" }, - }; - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .post("/flows/vault/connections") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(401) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.flows.vault.connections.create({ - name: "x", - app_id: "ACTIVECAMPAIGN", - setup: { - type: "API_KEY", - api_key: "api_key", - base_url: "base_url", - }, - }); - }).rejects.toThrow(Management.UnauthorizedError); - }); - - test("create (4)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { - name: "x", - app_id: "ACTIVECAMPAIGN", - setup: { type: "API_KEY", api_key: "api_key", base_url: "base_url" }, - }; - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .post("/flows/vault/connections") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(403) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.flows.vault.connections.create({ - name: "x", - app_id: "ACTIVECAMPAIGN", - setup: { - type: "API_KEY", - api_key: "api_key", - base_url: "base_url", - }, - }); - }).rejects.toThrow(Management.ForbiddenError); - }); - - test("create (5)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { - name: "x", - app_id: "ACTIVECAMPAIGN", - setup: { type: "API_KEY", api_key: "api_key", base_url: "base_url" }, - }; - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .post("/flows/vault/connections") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(429) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.flows.vault.connections.create({ - name: "x", - app_id: "ACTIVECAMPAIGN", - setup: { - type: "API_KEY", - api_key: "api_key", - base_url: "base_url", - }, - }); - }).rejects.toThrow(Management.TooManyRequestsError); - }); - - test("get (1)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { - id: "id", - app_id: "app_id", - environment: "environment", - name: "name", - account_name: "account_name", - ready: true, - created_at: "2024-01-15T09:30:00Z", - updated_at: "2024-01-15T09:30:00Z", - refreshed_at: "2024-01-15T09:30:00Z", - fingerprint: "fingerprint", - }; - server - .mockEndpoint() - .get("/flows/vault/connections/id") - .respondWith() - .statusCode(200) - .jsonBody(rawResponseBody) - .build(); - - const response = await client.flows.vault.connections.get("id"); - expect(response).toEqual({ - id: "id", - app_id: "app_id", - environment: "environment", - name: "name", - account_name: "account_name", - ready: true, - created_at: "2024-01-15T09:30:00Z", - updated_at: "2024-01-15T09:30:00Z", - refreshed_at: "2024-01-15T09:30:00Z", - fingerprint: "fingerprint", - }); - }); - - test("get (2)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .get("/flows/vault/connections/id") - .respondWith() - .statusCode(400) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.flows.vault.connections.get("id"); - }).rejects.toThrow(Management.BadRequestError); - }); - - test("get (3)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .get("/flows/vault/connections/id") - .respondWith() - .statusCode(401) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.flows.vault.connections.get("id"); - }).rejects.toThrow(Management.UnauthorizedError); - }); - - test("get (4)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .get("/flows/vault/connections/id") - .respondWith() - .statusCode(403) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.flows.vault.connections.get("id"); - }).rejects.toThrow(Management.ForbiddenError); - }); - - test("get (5)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .get("/flows/vault/connections/id") - .respondWith() - .statusCode(404) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.flows.vault.connections.get("id"); - }).rejects.toThrow(Management.NotFoundError); - }); - - test("get (6)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .get("/flows/vault/connections/id") - .respondWith() - .statusCode(429) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.flows.vault.connections.get("id"); - }).rejects.toThrow(Management.TooManyRequestsError); - }); - - test("delete (1)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - server.mockEndpoint().delete("/flows/vault/connections/id").respondWith().statusCode(200).build(); - - const response = await client.flows.vault.connections.delete("id"); - expect(response).toEqual(undefined); - }); - - test("delete (2)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .delete("/flows/vault/connections/id") - .respondWith() - .statusCode(400) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.flows.vault.connections.delete("id"); - }).rejects.toThrow(Management.BadRequestError); - }); - - test("delete (3)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .delete("/flows/vault/connections/id") - .respondWith() - .statusCode(401) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.flows.vault.connections.delete("id"); - }).rejects.toThrow(Management.UnauthorizedError); - }); - - test("delete (4)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .delete("/flows/vault/connections/id") - .respondWith() - .statusCode(403) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.flows.vault.connections.delete("id"); - }).rejects.toThrow(Management.ForbiddenError); - }); - - test("delete (5)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .delete("/flows/vault/connections/id") - .respondWith() - .statusCode(429) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.flows.vault.connections.delete("id"); - }).rejects.toThrow(Management.TooManyRequestsError); - }); - - test("update (1)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = {}; - const rawResponseBody = { - id: "id", - app_id: "app_id", - environment: "environment", - name: "name", - account_name: "account_name", - ready: true, - created_at: "2024-01-15T09:30:00Z", - updated_at: "2024-01-15T09:30:00Z", - refreshed_at: "2024-01-15T09:30:00Z", - fingerprint: "fingerprint", - }; - server - .mockEndpoint() - .patch("/flows/vault/connections/id") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(200) - .jsonBody(rawResponseBody) - .build(); - - const response = await client.flows.vault.connections.update("id"); - expect(response).toEqual({ - id: "id", - app_id: "app_id", - environment: "environment", - name: "name", - account_name: "account_name", - ready: true, - created_at: "2024-01-15T09:30:00Z", - updated_at: "2024-01-15T09:30:00Z", - refreshed_at: "2024-01-15T09:30:00Z", - fingerprint: "fingerprint", - }); - }); - - test("update (2)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = {}; - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .patch("/flows/vault/connections/id") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(400) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.flows.vault.connections.update("id"); - }).rejects.toThrow(Management.BadRequestError); - }); - - test("update (3)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = {}; - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .patch("/flows/vault/connections/id") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(401) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.flows.vault.connections.update("id"); - }).rejects.toThrow(Management.UnauthorizedError); - }); - - test("update (4)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = {}; - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .patch("/flows/vault/connections/id") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(403) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.flows.vault.connections.update("id"); - }).rejects.toThrow(Management.ForbiddenError); - }); - - test("update (5)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = {}; - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .patch("/flows/vault/connections/id") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(404) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.flows.vault.connections.update("id"); - }).rejects.toThrow(Management.NotFoundError); - }); - - test("update (6)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = {}; - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .patch("/flows/vault/connections/id") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(429) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.flows.vault.connections.update("id"); - }).rejects.toThrow(Management.TooManyRequestsError); - }); -}); diff --git a/src/management/tests/wire/forms.test.ts b/src/management/tests/wire/forms.test.ts index a3a08bd6ef..aa23afab11 100644 --- a/src/management/tests/wire/forms.test.ts +++ b/src/management/tests/wire/forms.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../mock-server/MockServerPool"; -import { ManagementClient } from "../../Client"; import * as Management from "../../api/index"; +import { ManagementClient } from "../../Client"; +import { mockServerPool } from "../mock-server/MockServerPool"; -describe("Forms", () => { +describe("FormsClient", () => { test("list (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { start: 1.1, @@ -24,7 +24,13 @@ describe("Forms", () => { }, ], }; - server.mockEndpoint().get("/forms").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/forms") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); const expected = { start: 1.1, @@ -55,10 +61,16 @@ describe("Forms", () => { test("list (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/forms").respondWith().statusCode(400).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/forms") + .respondWith() + .statusCode(400) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.forms.list(); @@ -67,10 +79,16 @@ describe("Forms", () => { test("list (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/forms").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/forms") + .respondWith() + .statusCode(401) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.forms.list(); @@ -79,10 +97,16 @@ describe("Forms", () => { test("list (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/forms").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/forms") + .respondWith() + .statusCode(403) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.forms.list(); @@ -91,10 +115,16 @@ describe("Forms", () => { test("list (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/forms").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/forms") + .respondWith() + .statusCode(429) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.forms.list(); @@ -103,14 +133,14 @@ describe("Forms", () => { test("create (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "name" }; const rawResponseBody = { id: "id", name: "name", messages: { errors: { key: "value" }, custom: { key: "value" } }, languages: { primary: "primary", default: "default" }, - translations: { key: { key: "value" } }, + translations: { key: "value" }, nodes: [ { id: "id", type: "FLOW", coordinates: { x: 1, y: 1 }, alias: "alias", config: { flow_id: "flow_id" } }, ], @@ -155,9 +185,7 @@ describe("Forms", () => { default: "default", }, translations: { - key: { - key: "value", - }, + key: "value", }, nodes: [ { @@ -211,7 +239,7 @@ describe("Forms", () => { test("create (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "x" }; const rawResponseBody = { key: "value" }; server @@ -232,7 +260,7 @@ describe("Forms", () => { test("create (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "x" }; const rawResponseBody = { key: "value" }; server @@ -253,7 +281,7 @@ describe("Forms", () => { test("create (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "x" }; const rawResponseBody = { key: "value" }; server @@ -274,7 +302,7 @@ describe("Forms", () => { test("create (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "x" }; const rawResponseBody = { key: "value" }; server @@ -295,14 +323,14 @@ describe("Forms", () => { test("get (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { id: "id", name: "name", messages: { errors: { key: "value" }, custom: { key: "value" } }, languages: { primary: "primary", default: "default" }, - translations: { key: { key: "value" } }, + translations: { key: "value" }, nodes: [ { id: "id", type: "FLOW", coordinates: { x: 1, y: 1 }, alias: "alias", config: { flow_id: "flow_id" } }, ], @@ -338,9 +366,7 @@ describe("Forms", () => { default: "default", }, translations: { - key: { - key: "value", - }, + key: "value", }, nodes: [ { @@ -394,7 +420,7 @@ describe("Forms", () => { test("get (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/forms/id").respondWith().statusCode(400).jsonBody(rawResponseBody).build(); @@ -406,7 +432,7 @@ describe("Forms", () => { test("get (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/forms/id").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); @@ -418,7 +444,7 @@ describe("Forms", () => { test("get (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/forms/id").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); @@ -430,7 +456,7 @@ describe("Forms", () => { test("get (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/forms/id").respondWith().statusCode(404).jsonBody(rawResponseBody).build(); @@ -442,7 +468,7 @@ describe("Forms", () => { test("get (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/forms/id").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); @@ -454,7 +480,7 @@ describe("Forms", () => { test("delete (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); server.mockEndpoint().delete("/forms/id").respondWith().statusCode(200).build(); @@ -464,7 +490,7 @@ describe("Forms", () => { test("delete (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().delete("/forms/id").respondWith().statusCode(400).jsonBody(rawResponseBody).build(); @@ -476,7 +502,7 @@ describe("Forms", () => { test("delete (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().delete("/forms/id").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); @@ -488,7 +514,7 @@ describe("Forms", () => { test("delete (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().delete("/forms/id").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); @@ -500,7 +526,7 @@ describe("Forms", () => { test("delete (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().delete("/forms/id").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); @@ -512,14 +538,14 @@ describe("Forms", () => { test("update (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { id: "id", name: "name", messages: { errors: { key: "value" }, custom: { key: "value" } }, languages: { primary: "primary", default: "default" }, - translations: { key: { key: "value" } }, + translations: { key: "value" }, nodes: [ { id: "id", type: "FLOW", coordinates: { x: 1, y: 1 }, alias: "alias", config: { flow_id: "flow_id" } }, ], @@ -562,9 +588,7 @@ describe("Forms", () => { default: "default", }, translations: { - key: { - key: "value", - }, + key: "value", }, nodes: [ { @@ -618,7 +642,7 @@ describe("Forms", () => { test("update (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -637,7 +661,7 @@ describe("Forms", () => { test("update (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -656,7 +680,7 @@ describe("Forms", () => { test("update (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/guardian/enrollments.test.ts b/src/management/tests/wire/guardian/enrollments.test.ts index b29cb7ed8c..6b7f079d02 100644 --- a/src/management/tests/wire/guardian/enrollments.test.ts +++ b/src/management/tests/wire/guardian/enrollments.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../Client"; import * as Management from "../../../api/index"; +import { ManagementClient } from "../../../Client"; +import { mockServerPool } from "../../mock-server/MockServerPool"; -describe("Enrollments", () => { +describe("EnrollmentsClient", () => { test("createTicket (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { user_id: "user_id" }; const rawResponseBody = { ticket_id: "ticket_id", ticket_url: "ticket_url" }; server @@ -30,7 +30,7 @@ describe("Enrollments", () => { test("createTicket (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { user_id: "user_id" }; const rawResponseBody = { key: "value" }; server @@ -51,7 +51,7 @@ describe("Enrollments", () => { test("createTicket (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { user_id: "user_id" }; const rawResponseBody = { key: "value" }; server @@ -72,7 +72,7 @@ describe("Enrollments", () => { test("createTicket (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { user_id: "user_id" }; const rawResponseBody = { key: "value" }; server @@ -93,7 +93,7 @@ describe("Enrollments", () => { test("createTicket (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { user_id: "user_id" }; const rawResponseBody = { key: "value" }; server @@ -114,7 +114,7 @@ describe("Enrollments", () => { test("get (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { id: "id", @@ -147,7 +147,7 @@ describe("Enrollments", () => { test("get (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -165,7 +165,7 @@ describe("Enrollments", () => { test("get (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -183,7 +183,7 @@ describe("Enrollments", () => { test("get (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -201,7 +201,7 @@ describe("Enrollments", () => { test("delete (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); server.mockEndpoint().delete("/guardian/enrollments/id").respondWith().statusCode(200).build(); @@ -211,7 +211,7 @@ describe("Enrollments", () => { test("delete (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -229,7 +229,7 @@ describe("Enrollments", () => { test("delete (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -247,7 +247,7 @@ describe("Enrollments", () => { test("delete (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/guardian/factors.test.ts b/src/management/tests/wire/guardian/factors.test.ts index 93f6dab88a..4358e51ffb 100644 --- a/src/management/tests/wire/guardian/factors.test.ts +++ b/src/management/tests/wire/guardian/factors.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../Client"; import * as Management from "../../../api/index"; +import { ManagementClient } from "../../../Client"; +import { mockServerPool } from "../../mock-server/MockServerPool"; -describe("Factors", () => { +describe("FactorsClient", () => { test("list (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = [{ enabled: true, trial_expired: true, name: "push-notification" }]; server.mockEndpoint().get("/guardian/factors").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); @@ -24,7 +24,7 @@ describe("Factors", () => { test("list (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/guardian/factors").respondWith().statusCode(400).jsonBody(rawResponseBody).build(); @@ -36,7 +36,7 @@ describe("Factors", () => { test("list (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/guardian/factors").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); @@ -48,7 +48,7 @@ describe("Factors", () => { test("list (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/guardian/factors").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); @@ -60,7 +60,7 @@ describe("Factors", () => { test("set (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { enabled: true }; const rawResponseBody = { enabled: true }; server @@ -82,7 +82,7 @@ describe("Factors", () => { test("set (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { enabled: true }; const rawResponseBody = { key: "value" }; server @@ -103,7 +103,7 @@ describe("Factors", () => { test("set (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { enabled: true }; const rawResponseBody = { key: "value" }; server @@ -124,7 +124,7 @@ describe("Factors", () => { test("set (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { enabled: true }; const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/guardian/factors/duo/settings.test.ts b/src/management/tests/wire/guardian/factors/duo/settings.test.ts index 8725ab38cb..f183ceb2f8 100644 --- a/src/management/tests/wire/guardian/factors/duo/settings.test.ts +++ b/src/management/tests/wire/guardian/factors/duo/settings.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../../../Client"; import * as Management from "../../../../../api/index"; +import { ManagementClient } from "../../../../../Client"; +import { mockServerPool } from "../../../../mock-server/MockServerPool"; -describe("Settings", () => { +describe("SettingsClient", () => { test("get (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { ikey: "ikey", skey: "skey", host: "host" }; server @@ -28,7 +28,7 @@ describe("Settings", () => { test("get (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -46,7 +46,7 @@ describe("Settings", () => { test("get (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -64,7 +64,7 @@ describe("Settings", () => { test("get (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -82,7 +82,7 @@ describe("Settings", () => { test("set (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { ikey: "ikey", skey: "skey", host: "host" }; server @@ -104,7 +104,7 @@ describe("Settings", () => { test("set (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -123,7 +123,7 @@ describe("Settings", () => { test("set (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -142,7 +142,7 @@ describe("Settings", () => { test("set (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -161,7 +161,7 @@ describe("Settings", () => { test("update (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { ikey: "ikey", skey: "skey", host: "host" }; server @@ -183,7 +183,7 @@ describe("Settings", () => { test("update (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -202,7 +202,7 @@ describe("Settings", () => { test("update (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -221,7 +221,7 @@ describe("Settings", () => { test("update (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/guardian/factors/phone.test.ts b/src/management/tests/wire/guardian/factors/phone.test.ts index 8565f291f1..48f6f25a28 100644 --- a/src/management/tests/wire/guardian/factors/phone.test.ts +++ b/src/management/tests/wire/guardian/factors/phone.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../../Client"; import * as Management from "../../../../api/index"; +import { ManagementClient } from "../../../../Client"; +import { mockServerPool } from "../../../mock-server/MockServerPool"; -describe("Phone", () => { +describe("PhoneClient", () => { test("getMessageTypes (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { message_types: ["sms"] }; server @@ -26,7 +26,7 @@ describe("Phone", () => { test("getMessageTypes (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -44,7 +44,7 @@ describe("Phone", () => { test("getMessageTypes (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -62,7 +62,7 @@ describe("Phone", () => { test("getMessageTypes (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -80,7 +80,7 @@ describe("Phone", () => { test("setMessageTypes (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { message_types: ["sms"] }; const rawResponseBody = { message_types: ["sms"] }; server @@ -102,7 +102,7 @@ describe("Phone", () => { test("setMessageTypes (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { message_types: ["sms", "sms"] }; const rawResponseBody = { key: "value" }; server @@ -123,7 +123,7 @@ describe("Phone", () => { test("setMessageTypes (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { message_types: ["sms", "sms"] }; const rawResponseBody = { key: "value" }; server @@ -144,7 +144,7 @@ describe("Phone", () => { test("setMessageTypes (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { message_types: ["sms", "sms"] }; const rawResponseBody = { key: "value" }; server @@ -165,7 +165,7 @@ describe("Phone", () => { test("setMessageTypes (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { message_types: ["sms", "sms"] }; const rawResponseBody = { key: "value" }; server @@ -186,7 +186,7 @@ describe("Phone", () => { test("getTwilioProvider (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { from: "from", @@ -213,7 +213,7 @@ describe("Phone", () => { test("getTwilioProvider (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -231,7 +231,7 @@ describe("Phone", () => { test("getTwilioProvider (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -249,7 +249,7 @@ describe("Phone", () => { test("getTwilioProvider (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -267,7 +267,7 @@ describe("Phone", () => { test("setTwilioProvider (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { from: "from", @@ -295,7 +295,7 @@ describe("Phone", () => { test("setTwilioProvider (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -314,7 +314,7 @@ describe("Phone", () => { test("setTwilioProvider (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -333,7 +333,7 @@ describe("Phone", () => { test("setTwilioProvider (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -352,7 +352,7 @@ describe("Phone", () => { test("getSelectedProvider (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { provider: "auth0" }; server @@ -371,7 +371,7 @@ describe("Phone", () => { test("getSelectedProvider (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -389,7 +389,7 @@ describe("Phone", () => { test("getSelectedProvider (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -407,7 +407,7 @@ describe("Phone", () => { test("getSelectedProvider (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -425,7 +425,7 @@ describe("Phone", () => { test("setProvider (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { provider: "auth0" }; const rawResponseBody = { provider: "auth0" }; server @@ -447,7 +447,7 @@ describe("Phone", () => { test("setProvider (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { provider: "auth0" }; const rawResponseBody = { key: "value" }; server @@ -468,7 +468,7 @@ describe("Phone", () => { test("setProvider (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { provider: "auth0" }; const rawResponseBody = { key: "value" }; server @@ -489,7 +489,7 @@ describe("Phone", () => { test("setProvider (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { provider: "auth0" }; const rawResponseBody = { key: "value" }; server @@ -510,7 +510,7 @@ describe("Phone", () => { test("getTemplates (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { enrollment_message: "enrollment_message", @@ -533,7 +533,7 @@ describe("Phone", () => { test("getTemplates (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -551,7 +551,7 @@ describe("Phone", () => { test("getTemplates (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -569,7 +569,7 @@ describe("Phone", () => { test("getTemplates (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -587,7 +587,7 @@ describe("Phone", () => { test("setTemplates (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { enrollment_message: "enrollment_message", verification_message: "verification_message", @@ -617,7 +617,7 @@ describe("Phone", () => { test("setTemplates (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { enrollment_message: "{{code}} is your verification code for {{tenant.friendly_name}}. Please enter this code to verify your enrollment.", @@ -644,7 +644,7 @@ describe("Phone", () => { test("setTemplates (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { enrollment_message: "{{code}} is your verification code for {{tenant.friendly_name}}. Please enter this code to verify your enrollment.", @@ -671,7 +671,7 @@ describe("Phone", () => { test("setTemplates (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { enrollment_message: "{{code}} is your verification code for {{tenant.friendly_name}}. Please enter this code to verify your enrollment.", diff --git a/src/management/tests/wire/guardian/factors/pushNotification.test.ts b/src/management/tests/wire/guardian/factors/pushNotification.test.ts index 8eabe56070..db64d5ff4b 100644 --- a/src/management/tests/wire/guardian/factors/pushNotification.test.ts +++ b/src/management/tests/wire/guardian/factors/pushNotification.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../../Client"; import * as Management from "../../../../api/index"; +import { ManagementClient } from "../../../../Client"; +import { mockServerPool } from "../../../mock-server/MockServerPool"; -describe("PushNotification", () => { +describe("PushNotificationClient", () => { test("getApnsProvider (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { bundle_id: "bundle_id", sandbox: true, enabled: true }; server @@ -28,7 +28,7 @@ describe("PushNotification", () => { test("getApnsProvider (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -46,7 +46,7 @@ describe("PushNotification", () => { test("getApnsProvider (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -64,7 +64,7 @@ describe("PushNotification", () => { test("getApnsProvider (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -82,7 +82,7 @@ describe("PushNotification", () => { test("setApnsProvider (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { sandbox: true, bundle_id: "bundle_id" }; server @@ -103,7 +103,7 @@ describe("PushNotification", () => { test("setApnsProvider (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -122,7 +122,7 @@ describe("PushNotification", () => { test("setApnsProvider (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -141,7 +141,7 @@ describe("PushNotification", () => { test("setApnsProvider (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -160,7 +160,7 @@ describe("PushNotification", () => { test("setFcmProvider (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -180,7 +180,7 @@ describe("PushNotification", () => { test("setFcmProvider (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -199,7 +199,7 @@ describe("PushNotification", () => { test("setFcmProvider (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -218,7 +218,7 @@ describe("PushNotification", () => { test("setFcmProvider (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -237,7 +237,7 @@ describe("PushNotification", () => { test("setFcmv1Provider (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -257,7 +257,7 @@ describe("PushNotification", () => { test("setFcmv1Provider (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -276,7 +276,7 @@ describe("PushNotification", () => { test("setFcmv1Provider (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -295,7 +295,7 @@ describe("PushNotification", () => { test("setFcmv1Provider (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -314,7 +314,7 @@ describe("PushNotification", () => { test("getSnsProvider (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { aws_access_key_id: "aws_access_key_id", @@ -343,7 +343,7 @@ describe("PushNotification", () => { test("getSnsProvider (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -361,7 +361,7 @@ describe("PushNotification", () => { test("getSnsProvider (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -379,7 +379,7 @@ describe("PushNotification", () => { test("getSnsProvider (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -397,7 +397,7 @@ describe("PushNotification", () => { test("setSnsProvider (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { aws_access_key_id: "aws_access_key_id", @@ -427,7 +427,7 @@ describe("PushNotification", () => { test("setSnsProvider (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -446,7 +446,7 @@ describe("PushNotification", () => { test("setSnsProvider (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -465,7 +465,7 @@ describe("PushNotification", () => { test("setSnsProvider (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -484,7 +484,7 @@ describe("PushNotification", () => { test("updateSnsProvider (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { aws_access_key_id: "aws_access_key_id", @@ -514,7 +514,7 @@ describe("PushNotification", () => { test("updateSnsProvider (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -533,7 +533,7 @@ describe("PushNotification", () => { test("updateSnsProvider (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -552,7 +552,7 @@ describe("PushNotification", () => { test("updateSnsProvider (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -571,7 +571,7 @@ describe("PushNotification", () => { test("getSelectedProvider (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { provider: "guardian" }; server @@ -590,7 +590,7 @@ describe("PushNotification", () => { test("getSelectedProvider (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -608,7 +608,7 @@ describe("PushNotification", () => { test("getSelectedProvider (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -626,7 +626,7 @@ describe("PushNotification", () => { test("getSelectedProvider (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -644,7 +644,7 @@ describe("PushNotification", () => { test("setProvider (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { provider: "guardian" }; const rawResponseBody = { provider: "guardian" }; server @@ -666,7 +666,7 @@ describe("PushNotification", () => { test("setProvider (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { provider: "guardian" }; const rawResponseBody = { key: "value" }; server @@ -687,7 +687,7 @@ describe("PushNotification", () => { test("setProvider (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { provider: "guardian" }; const rawResponseBody = { key: "value" }; server @@ -708,7 +708,7 @@ describe("PushNotification", () => { test("setProvider (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { provider: "guardian" }; const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/guardian/factors/sms.test.ts b/src/management/tests/wire/guardian/factors/sms.test.ts index 815530b891..7551e5ecb9 100644 --- a/src/management/tests/wire/guardian/factors/sms.test.ts +++ b/src/management/tests/wire/guardian/factors/sms.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../../Client"; import * as Management from "../../../../api/index"; +import { ManagementClient } from "../../../../Client"; +import { mockServerPool } from "../../../mock-server/MockServerPool"; -describe("Sms", () => { +describe("SmsClient", () => { test("getTwilioProvider (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { from: "from", @@ -34,7 +34,7 @@ describe("Sms", () => { test("getTwilioProvider (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -52,7 +52,7 @@ describe("Sms", () => { test("getTwilioProvider (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -70,7 +70,7 @@ describe("Sms", () => { test("getTwilioProvider (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -88,7 +88,7 @@ describe("Sms", () => { test("setTwilioProvider (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { from: "from", @@ -116,7 +116,7 @@ describe("Sms", () => { test("setTwilioProvider (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -135,7 +135,7 @@ describe("Sms", () => { test("setTwilioProvider (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -154,7 +154,7 @@ describe("Sms", () => { test("setTwilioProvider (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -173,7 +173,7 @@ describe("Sms", () => { test("getSelectedProvider (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { provider: "auth0" }; server @@ -192,7 +192,7 @@ describe("Sms", () => { test("getSelectedProvider (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -210,7 +210,7 @@ describe("Sms", () => { test("getSelectedProvider (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -228,7 +228,7 @@ describe("Sms", () => { test("getSelectedProvider (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -246,7 +246,7 @@ describe("Sms", () => { test("setProvider (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { provider: "auth0" }; const rawResponseBody = { provider: "auth0" }; server @@ -268,7 +268,7 @@ describe("Sms", () => { test("setProvider (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { provider: "auth0" }; const rawResponseBody = { key: "value" }; server @@ -289,7 +289,7 @@ describe("Sms", () => { test("setProvider (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { provider: "auth0" }; const rawResponseBody = { key: "value" }; server @@ -310,7 +310,7 @@ describe("Sms", () => { test("setProvider (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { provider: "auth0" }; const rawResponseBody = { key: "value" }; server @@ -331,7 +331,7 @@ describe("Sms", () => { test("getTemplates (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { enrollment_message: "enrollment_message", @@ -354,7 +354,7 @@ describe("Sms", () => { test("getTemplates (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -372,7 +372,7 @@ describe("Sms", () => { test("getTemplates (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -390,7 +390,7 @@ describe("Sms", () => { test("getTemplates (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -408,7 +408,7 @@ describe("Sms", () => { test("setTemplates (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { enrollment_message: "enrollment_message", verification_message: "verification_message", @@ -438,7 +438,7 @@ describe("Sms", () => { test("setTemplates (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { enrollment_message: "{{code}} is your verification code for {{tenant.friendly_name}}. Please enter this code to verify your enrollment.", @@ -465,7 +465,7 @@ describe("Sms", () => { test("setTemplates (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { enrollment_message: "{{code}} is your verification code for {{tenant.friendly_name}}. Please enter this code to verify your enrollment.", @@ -492,7 +492,7 @@ describe("Sms", () => { test("setTemplates (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { enrollment_message: "{{code}} is your verification code for {{tenant.friendly_name}}. Please enter this code to verify your enrollment.", diff --git a/src/management/tests/wire/guardian/policies.test.ts b/src/management/tests/wire/guardian/policies.test.ts index da7fd079c3..4763b62b42 100644 --- a/src/management/tests/wire/guardian/policies.test.ts +++ b/src/management/tests/wire/guardian/policies.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../Client"; import * as Management from "../../../api/index"; +import { ManagementClient } from "../../../Client"; +import { mockServerPool } from "../../mock-server/MockServerPool"; -describe("Policies", () => { +describe("PoliciesClient", () => { test("list (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = ["all-applications"]; server.mockEndpoint().get("/guardian/policies").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); @@ -18,7 +18,7 @@ describe("Policies", () => { test("list (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/guardian/policies").respondWith().statusCode(400).jsonBody(rawResponseBody).build(); @@ -30,7 +30,7 @@ describe("Policies", () => { test("list (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/guardian/policies").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); @@ -42,7 +42,7 @@ describe("Policies", () => { test("list (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/guardian/policies").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); @@ -54,7 +54,7 @@ describe("Policies", () => { test("set (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = ["all-applications"]; const rawResponseBody = ["all-applications"]; server @@ -72,7 +72,7 @@ describe("Policies", () => { test("set (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = ["all-applications", "all-applications"]; const rawResponseBody = { key: "value" }; server @@ -91,7 +91,7 @@ describe("Policies", () => { test("set (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = ["all-applications", "all-applications"]; const rawResponseBody = { key: "value" }; server @@ -110,7 +110,7 @@ describe("Policies", () => { test("set (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = ["all-applications", "all-applications"]; const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/hooks.test.ts b/src/management/tests/wire/hooks.test.ts index c95d4e7283..0125e105b8 100644 --- a/src/management/tests/wire/hooks.test.ts +++ b/src/management/tests/wire/hooks.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../mock-server/MockServerPool"; -import { ManagementClient } from "../../Client"; import * as Management from "../../api/index"; +import { ManagementClient } from "../../Client"; +import { mockServerPool } from "../mock-server/MockServerPool"; -describe("Hooks", () => { +describe("HooksClient", () => { test("list (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { start: 1.1, @@ -24,7 +24,13 @@ describe("Hooks", () => { }, ], }; - server.mockEndpoint().get("/hooks").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/hooks") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); const expected = { start: 1.1, @@ -60,10 +66,16 @@ describe("Hooks", () => { test("list (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/hooks").respondWith().statusCode(400).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/hooks") + .respondWith() + .statusCode(400) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.hooks.list(); @@ -72,10 +84,16 @@ describe("Hooks", () => { test("list (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/hooks").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/hooks") + .respondWith() + .statusCode(401) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.hooks.list(); @@ -84,10 +102,16 @@ describe("Hooks", () => { test("list (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/hooks").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/hooks") + .respondWith() + .statusCode(403) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.hooks.list(); @@ -96,10 +120,16 @@ describe("Hooks", () => { test("list (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/hooks").respondWith().statusCode(404).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/hooks") + .respondWith() + .statusCode(404) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.hooks.list(); @@ -108,10 +138,16 @@ describe("Hooks", () => { test("list (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/hooks").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/hooks") + .respondWith() + .statusCode(429) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.hooks.list(); @@ -120,7 +156,7 @@ describe("Hooks", () => { test("create (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "name", script: "script", triggerId: "credentials-exchange" }; const rawResponseBody = { triggerId: "triggerId", @@ -158,7 +194,7 @@ describe("Hooks", () => { test("create (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "my-hook", script: "module.exports = function(client, scope, audience, context, cb) cb(null, access_token); };", @@ -185,7 +221,7 @@ describe("Hooks", () => { test("create (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "my-hook", script: "module.exports = function(client, scope, audience, context, cb) cb(null, access_token); };", @@ -212,7 +248,7 @@ describe("Hooks", () => { test("create (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "my-hook", script: "module.exports = function(client, scope, audience, context, cb) cb(null, access_token); };", @@ -239,7 +275,7 @@ describe("Hooks", () => { test("create (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "my-hook", script: "module.exports = function(client, scope, audience, context, cb) cb(null, access_token); };", @@ -266,7 +302,7 @@ describe("Hooks", () => { test("create (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "my-hook", script: "module.exports = function(client, scope, audience, context, cb) cb(null, access_token); };", @@ -293,7 +329,7 @@ describe("Hooks", () => { test("get (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { triggerId: "triggerId", @@ -322,7 +358,7 @@ describe("Hooks", () => { test("get (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/hooks/id").respondWith().statusCode(400).jsonBody(rawResponseBody).build(); @@ -334,7 +370,7 @@ describe("Hooks", () => { test("get (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/hooks/id").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); @@ -346,7 +382,7 @@ describe("Hooks", () => { test("get (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/hooks/id").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); @@ -358,7 +394,7 @@ describe("Hooks", () => { test("get (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/hooks/id").respondWith().statusCode(404).jsonBody(rawResponseBody).build(); @@ -370,7 +406,7 @@ describe("Hooks", () => { test("get (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/hooks/id").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); @@ -382,7 +418,7 @@ describe("Hooks", () => { test("delete (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); server.mockEndpoint().delete("/hooks/id").respondWith().statusCode(200).build(); @@ -392,7 +428,7 @@ describe("Hooks", () => { test("delete (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().delete("/hooks/id").respondWith().statusCode(400).jsonBody(rawResponseBody).build(); @@ -404,7 +440,7 @@ describe("Hooks", () => { test("delete (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().delete("/hooks/id").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); @@ -416,7 +452,7 @@ describe("Hooks", () => { test("delete (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().delete("/hooks/id").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); @@ -428,7 +464,7 @@ describe("Hooks", () => { test("delete (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().delete("/hooks/id").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); @@ -440,7 +476,7 @@ describe("Hooks", () => { test("update (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { triggerId: "triggerId", @@ -474,7 +510,7 @@ describe("Hooks", () => { test("update (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -493,7 +529,7 @@ describe("Hooks", () => { test("update (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -512,7 +548,7 @@ describe("Hooks", () => { test("update (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -531,7 +567,7 @@ describe("Hooks", () => { test("update (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -550,7 +586,7 @@ describe("Hooks", () => { test("update (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -569,7 +605,7 @@ describe("Hooks", () => { test("update (7)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/hooks/secrets.test.ts b/src/management/tests/wire/hooks/secrets.test.ts index 3c1ae0b371..8e3f734cf1 100644 --- a/src/management/tests/wire/hooks/secrets.test.ts +++ b/src/management/tests/wire/hooks/secrets.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../Client"; import * as Management from "../../../api/index"; +import { ManagementClient } from "../../../Client"; +import { mockServerPool } from "../../mock-server/MockServerPool"; -describe("Secrets", () => { +describe("SecretsClient", () => { test("get (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/hooks/id/secrets").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); @@ -20,7 +20,7 @@ describe("Secrets", () => { test("get (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/hooks/id/secrets").respondWith().statusCode(400).jsonBody(rawResponseBody).build(); @@ -32,7 +32,7 @@ describe("Secrets", () => { test("get (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/hooks/id/secrets").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); @@ -44,7 +44,7 @@ describe("Secrets", () => { test("get (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/hooks/id/secrets").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); @@ -56,7 +56,7 @@ describe("Secrets", () => { test("get (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/hooks/id/secrets").respondWith().statusCode(404).jsonBody(rawResponseBody).build(); @@ -68,7 +68,7 @@ describe("Secrets", () => { test("get (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/hooks/id/secrets").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); @@ -80,7 +80,7 @@ describe("Secrets", () => { test("create (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { key: "value" }; server.mockEndpoint().post("/hooks/id/secrets").jsonBody(rawRequestBody).respondWith().statusCode(200).build(); @@ -93,8 +93,8 @@ describe("Secrets", () => { test("create (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { string: "string" }; + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); + const rawRequestBody = { string: { key: "value" } }; const rawResponseBody = { key: "value" }; server .mockEndpoint() @@ -107,15 +107,17 @@ describe("Secrets", () => { await expect(async () => { return await client.hooks.secrets.create("id", { - string: "string", + string: { + key: "value", + }, }); }).rejects.toThrow(Management.BadRequestError); }); test("create (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { string: "string" }; + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); + const rawRequestBody = { string: { key: "value" } }; const rawResponseBody = { key: "value" }; server .mockEndpoint() @@ -128,15 +130,17 @@ describe("Secrets", () => { await expect(async () => { return await client.hooks.secrets.create("id", { - string: "string", + string: { + key: "value", + }, }); }).rejects.toThrow(Management.UnauthorizedError); }); test("create (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { string: "string" }; + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); + const rawRequestBody = { string: { key: "value" } }; const rawResponseBody = { key: "value" }; server .mockEndpoint() @@ -149,15 +153,17 @@ describe("Secrets", () => { await expect(async () => { return await client.hooks.secrets.create("id", { - string: "string", + string: { + key: "value", + }, }); }).rejects.toThrow(Management.ForbiddenError); }); test("create (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { string: "string" }; + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); + const rawRequestBody = { string: { key: "value" } }; const rawResponseBody = { key: "value" }; server .mockEndpoint() @@ -170,15 +176,17 @@ describe("Secrets", () => { await expect(async () => { return await client.hooks.secrets.create("id", { - string: "string", + string: { + key: "value", + }, }); }).rejects.toThrow(Management.ConflictError); }); test("create (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { string: "string" }; + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); + const rawRequestBody = { string: { key: "value" } }; const rawResponseBody = { key: "value" }; server .mockEndpoint() @@ -191,14 +199,16 @@ describe("Secrets", () => { await expect(async () => { return await client.hooks.secrets.create("id", { - string: "string", + string: { + key: "value", + }, }); }).rejects.toThrow(Management.TooManyRequestsError); }); test("delete (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = ["string"]; server @@ -215,7 +225,7 @@ describe("Secrets", () => { test("delete (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = ["string", "string"]; const rawResponseBody = { key: "value" }; server @@ -234,7 +244,7 @@ describe("Secrets", () => { test("delete (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = ["string", "string"]; const rawResponseBody = { key: "value" }; server @@ -253,7 +263,7 @@ describe("Secrets", () => { test("delete (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = ["string", "string"]; const rawResponseBody = { key: "value" }; server @@ -272,7 +282,7 @@ describe("Secrets", () => { test("delete (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = ["string", "string"]; const rawResponseBody = { key: "value" }; server @@ -291,7 +301,7 @@ describe("Secrets", () => { test("update (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { key: "value" }; server.mockEndpoint().patch("/hooks/id/secrets").jsonBody(rawRequestBody).respondWith().statusCode(200).build(); @@ -304,8 +314,8 @@ describe("Secrets", () => { test("update (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { string: "string" }; + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); + const rawRequestBody = { string: { key: "value" } }; const rawResponseBody = { key: "value" }; server .mockEndpoint() @@ -318,15 +328,17 @@ describe("Secrets", () => { await expect(async () => { return await client.hooks.secrets.update("id", { - string: "string", + string: { + key: "value", + }, }); }).rejects.toThrow(Management.BadRequestError); }); test("update (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { string: "string" }; + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); + const rawRequestBody = { string: { key: "value" } }; const rawResponseBody = { key: "value" }; server .mockEndpoint() @@ -339,15 +351,17 @@ describe("Secrets", () => { await expect(async () => { return await client.hooks.secrets.update("id", { - string: "string", + string: { + key: "value", + }, }); }).rejects.toThrow(Management.UnauthorizedError); }); test("update (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { string: "string" }; + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); + const rawRequestBody = { string: { key: "value" } }; const rawResponseBody = { key: "value" }; server .mockEndpoint() @@ -360,15 +374,17 @@ describe("Secrets", () => { await expect(async () => { return await client.hooks.secrets.update("id", { - string: "string", + string: { + key: "value", + }, }); }).rejects.toThrow(Management.ForbiddenError); }); test("update (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { string: "string" }; + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); + const rawRequestBody = { string: { key: "value" } }; const rawResponseBody = { key: "value" }; server .mockEndpoint() @@ -381,15 +397,17 @@ describe("Secrets", () => { await expect(async () => { return await client.hooks.secrets.update("id", { - string: "string", + string: { + key: "value", + }, }); }).rejects.toThrow(Management.NotFoundError); }); test("update (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { string: "string" }; + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); + const rawRequestBody = { string: { key: "value" } }; const rawResponseBody = { key: "value" }; server .mockEndpoint() @@ -402,15 +420,17 @@ describe("Secrets", () => { await expect(async () => { return await client.hooks.secrets.update("id", { - string: "string", + string: { + key: "value", + }, }); }).rejects.toThrow(Management.ConflictError); }); test("update (7)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { string: "string" }; + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); + const rawRequestBody = { string: { key: "value" } }; const rawResponseBody = { key: "value" }; server .mockEndpoint() @@ -423,7 +443,9 @@ describe("Secrets", () => { await expect(async () => { return await client.hooks.secrets.update("id", { - string: "string", + string: { + key: "value", + }, }); }).rejects.toThrow(Management.TooManyRequestsError); }); diff --git a/src/management/tests/wire/jobs.test.ts b/src/management/tests/wire/jobs.test.ts index 7a18a50435..5f23de8514 100644 --- a/src/management/tests/wire/jobs.test.ts +++ b/src/management/tests/wire/jobs.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../mock-server/MockServerPool"; -import { ManagementClient } from "../../Client"; import * as Management from "../../api/index"; +import { ManagementClient } from "../../Client"; +import { mockServerPool } from "../mock-server/MockServerPool"; -describe("Jobs", () => { +describe("JobsClient", () => { test("get (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { status: "status", @@ -40,7 +40,7 @@ describe("Jobs", () => { test("get (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/jobs/id").respondWith().statusCode(400).jsonBody(rawResponseBody).build(); @@ -52,7 +52,7 @@ describe("Jobs", () => { test("get (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/jobs/id").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); @@ -64,7 +64,7 @@ describe("Jobs", () => { test("get (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/jobs/id").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); @@ -76,7 +76,7 @@ describe("Jobs", () => { test("get (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/jobs/id").respondWith().statusCode(404).jsonBody(rawResponseBody).build(); @@ -88,7 +88,7 @@ describe("Jobs", () => { test("get (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/jobs/id").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); diff --git a/src/management/tests/wire/jobs/errors.test.ts b/src/management/tests/wire/jobs/errors.test.ts index fab6150d61..2f67d2eac5 100644 --- a/src/management/tests/wire/jobs/errors.test.ts +++ b/src/management/tests/wire/jobs/errors.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../Client"; import * as Management from "../../../api/index"; +import { ManagementClient } from "../../../Client"; +import { mockServerPool } from "../../mock-server/MockServerPool"; -describe("Errors", () => { +describe("ErrorsClient", () => { test("get (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = [{ user: { key: "value" }, errors: [{}] }]; server.mockEndpoint().get("/jobs/id/errors").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); @@ -25,7 +25,7 @@ describe("Errors", () => { test("get (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/jobs/id/errors").respondWith().statusCode(400).jsonBody(rawResponseBody).build(); @@ -37,7 +37,7 @@ describe("Errors", () => { test("get (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/jobs/id/errors").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); @@ -49,7 +49,7 @@ describe("Errors", () => { test("get (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/jobs/id/errors").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); @@ -61,7 +61,7 @@ describe("Errors", () => { test("get (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/jobs/id/errors").respondWith().statusCode(404).jsonBody(rawResponseBody).build(); @@ -73,7 +73,7 @@ describe("Errors", () => { test("get (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/jobs/id/errors").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); diff --git a/src/management/tests/wire/jobs/usersExports.test.ts b/src/management/tests/wire/jobs/usersExports.test.ts index cceff26467..5b01398d77 100644 --- a/src/management/tests/wire/jobs/usersExports.test.ts +++ b/src/management/tests/wire/jobs/usersExports.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../Client"; import * as Management from "../../../api/index"; +import { ManagementClient } from "../../../Client"; +import { mockServerPool } from "../../mock-server/MockServerPool"; -describe("UsersExports", () => { +describe("UsersExportsClient", () => { test("create (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { status: "status", @@ -48,7 +48,7 @@ describe("UsersExports", () => { test("create (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -67,7 +67,7 @@ describe("UsersExports", () => { test("create (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -86,7 +86,7 @@ describe("UsersExports", () => { test("create (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -105,7 +105,7 @@ describe("UsersExports", () => { test("create (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/jobs/verificationEmail.test.ts b/src/management/tests/wire/jobs/verificationEmail.test.ts index 3d688808c6..0540793918 100644 --- a/src/management/tests/wire/jobs/verificationEmail.test.ts +++ b/src/management/tests/wire/jobs/verificationEmail.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../Client"; import * as Management from "../../../api/index"; +import { ManagementClient } from "../../../Client"; +import { mockServerPool } from "../../mock-server/MockServerPool"; -describe("VerificationEmail", () => { +describe("VerificationEmailClient", () => { test("create (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { user_id: "user_id" }; const rawResponseBody = { status: "status", type: "type", created_at: "created_at", id: "id" }; server @@ -32,7 +32,7 @@ describe("VerificationEmail", () => { test("create (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { user_id: "google-oauth2|1234" }; const rawResponseBody = { key: "value" }; server @@ -53,7 +53,7 @@ describe("VerificationEmail", () => { test("create (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { user_id: "google-oauth2|1234" }; const rawResponseBody = { key: "value" }; server @@ -74,7 +74,7 @@ describe("VerificationEmail", () => { test("create (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { user_id: "google-oauth2|1234" }; const rawResponseBody = { key: "value" }; server @@ -95,7 +95,7 @@ describe("VerificationEmail", () => { test("create (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { user_id: "google-oauth2|1234" }; const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/keys/customSigning.test.ts b/src/management/tests/wire/keys/customSigning.test.ts index ee43103a00..9d6d90ccd0 100644 --- a/src/management/tests/wire/keys/customSigning.test.ts +++ b/src/management/tests/wire/keys/customSigning.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../Client"; import * as Management from "../../../api/index"; +import { ManagementClient } from "../../../Client"; +import { mockServerPool } from "../../mock-server/MockServerPool"; -describe("CustomSigning", () => { +describe("CustomSigningClient", () => { test("get (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { keys: [ @@ -62,7 +62,7 @@ describe("CustomSigning", () => { test("get (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -80,7 +80,7 @@ describe("CustomSigning", () => { test("get (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -98,7 +98,7 @@ describe("CustomSigning", () => { test("get (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -116,7 +116,7 @@ describe("CustomSigning", () => { test("get (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -134,7 +134,7 @@ describe("CustomSigning", () => { test("set (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { keys: [{ kty: "EC" }] }; const rawResponseBody = { keys: [ @@ -196,7 +196,7 @@ describe("CustomSigning", () => { test("set (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { keys: [{ kty: "EC" }, { kty: "EC" }] }; const rawResponseBody = { key: "value" }; server @@ -224,7 +224,7 @@ describe("CustomSigning", () => { test("set (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { keys: [{ kty: "EC" }, { kty: "EC" }] }; const rawResponseBody = { key: "value" }; server @@ -252,7 +252,7 @@ describe("CustomSigning", () => { test("set (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { keys: [{ kty: "EC" }, { kty: "EC" }] }; const rawResponseBody = { key: "value" }; server @@ -280,7 +280,7 @@ describe("CustomSigning", () => { test("set (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { keys: [{ kty: "EC" }, { kty: "EC" }] }; const rawResponseBody = { key: "value" }; server @@ -308,7 +308,7 @@ describe("CustomSigning", () => { test("delete (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); server.mockEndpoint().delete("/keys/custom-signing").respondWith().statusCode(200).build(); @@ -318,7 +318,7 @@ describe("CustomSigning", () => { test("delete (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -336,7 +336,7 @@ describe("CustomSigning", () => { test("delete (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -354,7 +354,7 @@ describe("CustomSigning", () => { test("delete (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/keys/encryption.test.ts b/src/management/tests/wire/keys/encryption.test.ts index 9ec470c823..c0b6a0dd6c 100644 --- a/src/management/tests/wire/keys/encryption.test.ts +++ b/src/management/tests/wire/keys/encryption.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../Client"; import * as Management from "../../../api/index"; +import { ManagementClient } from "../../../Client"; +import { mockServerPool } from "../../mock-server/MockServerPool"; -describe("Encryption", () => { +describe("EncryptionClient", () => { test("list (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { start: 1, @@ -25,7 +25,13 @@ describe("Encryption", () => { }, ], }; - server.mockEndpoint().get("/keys/encryption").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/keys/encryption") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); const expected = { start: 1, @@ -57,10 +63,16 @@ describe("Encryption", () => { test("list (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/keys/encryption").respondWith().statusCode(400).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/keys/encryption") + .respondWith() + .statusCode(400) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.keys.encryption.list(); @@ -69,10 +81,16 @@ describe("Encryption", () => { test("list (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/keys/encryption").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/keys/encryption") + .respondWith() + .statusCode(401) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.keys.encryption.list(); @@ -81,10 +99,16 @@ describe("Encryption", () => { test("list (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/keys/encryption").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/keys/encryption") + .respondWith() + .statusCode(403) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.keys.encryption.list(); @@ -93,10 +117,16 @@ describe("Encryption", () => { test("list (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/keys/encryption").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/keys/encryption") + .respondWith() + .statusCode(429) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.keys.encryption.list(); @@ -105,7 +135,7 @@ describe("Encryption", () => { test("create (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { type: "customer-provided-root-key" }; const rawResponseBody = { kid: "kid", @@ -141,7 +171,7 @@ describe("Encryption", () => { test("create (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { type: "customer-provided-root-key" }; const rawResponseBody = { key: "value" }; server @@ -162,7 +192,7 @@ describe("Encryption", () => { test("create (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { type: "customer-provided-root-key" }; const rawResponseBody = { key: "value" }; server @@ -183,7 +213,7 @@ describe("Encryption", () => { test("create (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { type: "customer-provided-root-key" }; const rawResponseBody = { key: "value" }; server @@ -204,7 +234,7 @@ describe("Encryption", () => { test("create (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { type: "customer-provided-root-key" }; const rawResponseBody = { key: "value" }; server @@ -225,7 +255,7 @@ describe("Encryption", () => { test("create (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { type: "customer-provided-root-key" }; const rawResponseBody = { key: "value" }; server @@ -246,7 +276,7 @@ describe("Encryption", () => { test("rekey (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); server.mockEndpoint().post("/keys/encryption/rekey").respondWith().statusCode(200).build(); @@ -256,7 +286,7 @@ describe("Encryption", () => { test("rekey (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -274,7 +304,7 @@ describe("Encryption", () => { test("rekey (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -292,7 +322,7 @@ describe("Encryption", () => { test("rekey (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -310,7 +340,7 @@ describe("Encryption", () => { test("get (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { kid: "kid", @@ -343,7 +373,7 @@ describe("Encryption", () => { test("get (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -361,7 +391,7 @@ describe("Encryption", () => { test("get (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -379,7 +409,7 @@ describe("Encryption", () => { test("get (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -397,7 +427,7 @@ describe("Encryption", () => { test("get (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -415,7 +445,7 @@ describe("Encryption", () => { test("get (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -433,7 +463,7 @@ describe("Encryption", () => { test("import (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { wrapped_key: "wrapped_key" }; const rawResponseBody = { kid: "kid", @@ -469,7 +499,7 @@ describe("Encryption", () => { test("import (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { wrapped_key: "wrapped_key" }; const rawResponseBody = { key: "value" }; server @@ -490,7 +520,7 @@ describe("Encryption", () => { test("import (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { wrapped_key: "wrapped_key" }; const rawResponseBody = { key: "value" }; server @@ -511,7 +541,7 @@ describe("Encryption", () => { test("import (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { wrapped_key: "wrapped_key" }; const rawResponseBody = { key: "value" }; server @@ -532,7 +562,7 @@ describe("Encryption", () => { test("import (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { wrapped_key: "wrapped_key" }; const rawResponseBody = { key: "value" }; server @@ -553,7 +583,7 @@ describe("Encryption", () => { test("import (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { wrapped_key: "wrapped_key" }; const rawResponseBody = { key: "value" }; server @@ -574,7 +604,7 @@ describe("Encryption", () => { test("delete (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); server.mockEndpoint().delete("/keys/encryption/kid").respondWith().statusCode(200).build(); @@ -584,7 +614,7 @@ describe("Encryption", () => { test("delete (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -602,7 +632,7 @@ describe("Encryption", () => { test("delete (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -620,7 +650,7 @@ describe("Encryption", () => { test("delete (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -638,7 +668,7 @@ describe("Encryption", () => { test("delete (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -656,7 +686,7 @@ describe("Encryption", () => { test("createPublicWrappingKey (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { public_key: "public_key", algorithm: "CKM_RSA_AES_KEY_WRAP" }; server @@ -676,7 +706,7 @@ describe("Encryption", () => { test("createPublicWrappingKey (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -694,7 +724,7 @@ describe("Encryption", () => { test("createPublicWrappingKey (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -712,7 +742,7 @@ describe("Encryption", () => { test("createPublicWrappingKey (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -730,7 +760,7 @@ describe("Encryption", () => { test("createPublicWrappingKey (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -748,7 +778,7 @@ describe("Encryption", () => { test("createPublicWrappingKey (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/keys/signing.test.ts b/src/management/tests/wire/keys/signing.test.ts index 913d5720ca..e49f6ae07e 100644 --- a/src/management/tests/wire/keys/signing.test.ts +++ b/src/management/tests/wire/keys/signing.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../Client"; import * as Management from "../../../api/index"; +import { ManagementClient } from "../../../Client"; +import { mockServerPool } from "../../mock-server/MockServerPool"; -describe("Signing", () => { +describe("SigningClient", () => { test("list (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = [ { @@ -48,7 +48,7 @@ describe("Signing", () => { test("list (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/keys/signing").respondWith().statusCode(400).jsonBody(rawResponseBody).build(); @@ -60,7 +60,7 @@ describe("Signing", () => { test("list (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/keys/signing").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); @@ -72,7 +72,7 @@ describe("Signing", () => { test("list (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/keys/signing").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); @@ -84,7 +84,7 @@ describe("Signing", () => { test("list (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/keys/signing").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); @@ -96,7 +96,7 @@ describe("Signing", () => { test("rotate (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { cert: "cert", kid: "kid" }; server @@ -116,7 +116,7 @@ describe("Signing", () => { test("rotate (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -134,7 +134,7 @@ describe("Signing", () => { test("rotate (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -152,7 +152,7 @@ describe("Signing", () => { test("rotate (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -170,7 +170,7 @@ describe("Signing", () => { test("get (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { kid: "kid", @@ -207,7 +207,7 @@ describe("Signing", () => { test("get (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/keys/signing/kid").respondWith().statusCode(400).jsonBody(rawResponseBody).build(); @@ -219,7 +219,7 @@ describe("Signing", () => { test("get (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/keys/signing/kid").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); @@ -231,7 +231,7 @@ describe("Signing", () => { test("get (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/keys/signing/kid").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); @@ -243,7 +243,7 @@ describe("Signing", () => { test("get (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/keys/signing/kid").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); @@ -255,7 +255,7 @@ describe("Signing", () => { test("revoke (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { cert: "cert", kid: "kid" }; server @@ -275,7 +275,7 @@ describe("Signing", () => { test("revoke (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -293,7 +293,7 @@ describe("Signing", () => { test("revoke (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -311,7 +311,7 @@ describe("Signing", () => { test("revoke (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -329,7 +329,7 @@ describe("Signing", () => { test("revoke (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/logStreams.test.ts b/src/management/tests/wire/logStreams.test.ts index 12a1702e2c..3b8fa4cd61 100644 --- a/src/management/tests/wire/logStreams.test.ts +++ b/src/management/tests/wire/logStreams.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../mock-server/MockServerPool"; -import { ManagementClient } from "../../Client"; import * as Management from "../../api/index"; +import { ManagementClient } from "../../Client"; +import { mockServerPool } from "../mock-server/MockServerPool"; -describe("LogStreams", () => { +describe("LogStreamsClient", () => { test("list (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = [ { @@ -56,7 +56,7 @@ describe("LogStreams", () => { test("list (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/log-streams").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); @@ -68,7 +68,7 @@ describe("LogStreams", () => { test("list (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/log-streams").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); @@ -80,7 +80,7 @@ describe("LogStreams", () => { test("list (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/log-streams").respondWith().statusCode(404).jsonBody(rawResponseBody).build(); @@ -92,7 +92,7 @@ describe("LogStreams", () => { test("list (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/log-streams").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); @@ -104,7 +104,7 @@ describe("LogStreams", () => { test("create (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { type: "http", sink: { httpEndpoint: "httpEndpoint" } }; const rawResponseBody = { id: "id", @@ -166,7 +166,7 @@ describe("LogStreams", () => { test("create (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { type: "http", sink: { httpEndpoint: "httpEndpoint" } }; const rawResponseBody = { key: "value" }; server @@ -190,7 +190,7 @@ describe("LogStreams", () => { test("create (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { type: "http", sink: { httpEndpoint: "httpEndpoint" } }; const rawResponseBody = { key: "value" }; server @@ -214,7 +214,7 @@ describe("LogStreams", () => { test("create (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { type: "http", sink: { httpEndpoint: "httpEndpoint" } }; const rawResponseBody = { key: "value" }; server @@ -238,7 +238,7 @@ describe("LogStreams", () => { test("create (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { type: "http", sink: { httpEndpoint: "httpEndpoint" } }; const rawResponseBody = { key: "value" }; server @@ -262,7 +262,7 @@ describe("LogStreams", () => { test("create (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { type: "http", sink: { httpEndpoint: "httpEndpoint" } }; const rawResponseBody = { key: "value" }; server @@ -286,7 +286,7 @@ describe("LogStreams", () => { test("get (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { id: "id", @@ -336,7 +336,7 @@ describe("LogStreams", () => { test("get (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/log-streams/id").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); @@ -348,7 +348,7 @@ describe("LogStreams", () => { test("get (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/log-streams/id").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); @@ -360,7 +360,7 @@ describe("LogStreams", () => { test("get (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/log-streams/id").respondWith().statusCode(404).jsonBody(rawResponseBody).build(); @@ -372,7 +372,7 @@ describe("LogStreams", () => { test("get (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/log-streams/id").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); @@ -384,7 +384,7 @@ describe("LogStreams", () => { test("delete (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); server.mockEndpoint().delete("/log-streams/id").respondWith().statusCode(200).build(); @@ -394,7 +394,7 @@ describe("LogStreams", () => { test("delete (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().delete("/log-streams/id").respondWith().statusCode(400).jsonBody(rawResponseBody).build(); @@ -406,7 +406,7 @@ describe("LogStreams", () => { test("delete (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().delete("/log-streams/id").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); @@ -418,7 +418,7 @@ describe("LogStreams", () => { test("delete (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().delete("/log-streams/id").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); @@ -430,7 +430,7 @@ describe("LogStreams", () => { test("delete (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().delete("/log-streams/id").respondWith().statusCode(404).jsonBody(rawResponseBody).build(); @@ -442,7 +442,7 @@ describe("LogStreams", () => { test("delete (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().delete("/log-streams/id").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); @@ -454,7 +454,7 @@ describe("LogStreams", () => { test("update (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { id: "id", @@ -511,7 +511,7 @@ describe("LogStreams", () => { test("update (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -530,7 +530,7 @@ describe("LogStreams", () => { test("update (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -549,7 +549,7 @@ describe("LogStreams", () => { test("update (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -568,7 +568,7 @@ describe("LogStreams", () => { test("update (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/logs.test.ts b/src/management/tests/wire/logs.test.ts index f8ad12de2f..22865df275 100644 --- a/src/management/tests/wire/logs.test.ts +++ b/src/management/tests/wire/logs.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../mock-server/MockServerPool"; -import { ManagementClient } from "../../Client"; import * as Management from "../../api/index"; +import { ManagementClient } from "../../Client"; +import { mockServerPool } from "../mock-server/MockServerPool"; -describe("Logs", () => { +describe("LogsClient", () => { test("list (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { start: 1.1, @@ -38,7 +38,13 @@ describe("Logs", () => { }, ], }; - server.mockEndpoint().get("/logs").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/logs") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); const expected = { start: 1.1, @@ -78,7 +84,7 @@ describe("Logs", () => { fields: "fields", include_fields: true, include_totals: true, - search: "search", + q: "q", }); expect(expected.logs).toEqual(page.data); @@ -89,10 +95,16 @@ describe("Logs", () => { test("list (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/logs").respondWith().statusCode(400).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/logs") + .respondWith() + .statusCode(400) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.logs.list(); @@ -101,10 +113,16 @@ describe("Logs", () => { test("list (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/logs").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/logs") + .respondWith() + .statusCode(401) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.logs.list(); @@ -113,10 +131,16 @@ describe("Logs", () => { test("list (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/logs").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/logs") + .respondWith() + .statusCode(403) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.logs.list(); @@ -125,10 +149,16 @@ describe("Logs", () => { test("list (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/logs").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/logs") + .respondWith() + .statusCode(429) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.logs.list(); @@ -137,7 +167,7 @@ describe("Logs", () => { test("get (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { date: "date", @@ -215,7 +245,7 @@ describe("Logs", () => { test("get (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/logs/id").respondWith().statusCode(400).jsonBody(rawResponseBody).build(); @@ -227,7 +257,7 @@ describe("Logs", () => { test("get (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/logs/id").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); @@ -239,7 +269,7 @@ describe("Logs", () => { test("get (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/logs/id").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); @@ -251,7 +281,7 @@ describe("Logs", () => { test("get (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/logs/id").respondWith().statusCode(404).jsonBody(rawResponseBody).build(); @@ -263,7 +293,7 @@ describe("Logs", () => { test("get (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/logs/id").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); diff --git a/src/management/tests/wire/networkAcls.test.ts b/src/management/tests/wire/networkAcls.test.ts index d29a846e93..6686b41661 100644 --- a/src/management/tests/wire/networkAcls.test.ts +++ b/src/management/tests/wire/networkAcls.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../mock-server/MockServerPool"; -import { ManagementClient } from "../../Client"; import * as Management from "../../api/index"; +import { ManagementClient } from "../../Client"; +import { mockServerPool } from "../mock-server/MockServerPool"; -describe("NetworkAcls", () => { +describe("NetworkAclsClient", () => { test("list (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { network_acls: [ @@ -25,7 +25,13 @@ describe("NetworkAcls", () => { limit: 1.1, total: 1.1, }; - server.mockEndpoint().get("/network-acls").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/network-acls") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); const expected = { network_acls: [ @@ -60,10 +66,16 @@ describe("NetworkAcls", () => { test("list (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/network-acls").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/network-acls") + .respondWith() + .statusCode(401) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.networkAcls.list(); @@ -72,10 +84,16 @@ describe("NetworkAcls", () => { test("list (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/network-acls").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/network-acls") + .respondWith() + .statusCode(403) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.networkAcls.list(); @@ -84,10 +102,16 @@ describe("NetworkAcls", () => { test("list (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/network-acls").respondWith().statusCode(404).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/network-acls") + .respondWith() + .statusCode(404) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.networkAcls.list(); @@ -96,10 +120,16 @@ describe("NetworkAcls", () => { test("list (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/network-acls").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/network-acls") + .respondWith() + .statusCode(429) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.networkAcls.list(); @@ -108,7 +138,7 @@ describe("NetworkAcls", () => { test("create (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { description: "description", active: true, @@ -132,7 +162,7 @@ describe("NetworkAcls", () => { test("create (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { description: "description", active: true, @@ -164,7 +194,7 @@ describe("NetworkAcls", () => { test("create (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { description: "description", active: true, @@ -196,7 +226,7 @@ describe("NetworkAcls", () => { test("create (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { description: "description", active: true, @@ -228,7 +258,7 @@ describe("NetworkAcls", () => { test("create (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { description: "description", active: true, @@ -260,7 +290,7 @@ describe("NetworkAcls", () => { test("create (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { description: "description", active: true, @@ -292,7 +322,7 @@ describe("NetworkAcls", () => { test("create (7)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { description: "description", active: true, @@ -324,7 +354,7 @@ describe("NetworkAcls", () => { test("get (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { id: "id", @@ -403,7 +433,7 @@ describe("NetworkAcls", () => { test("get (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/network-acls/id").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); @@ -415,7 +445,7 @@ describe("NetworkAcls", () => { test("get (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/network-acls/id").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); @@ -427,7 +457,7 @@ describe("NetworkAcls", () => { test("get (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/network-acls/id").respondWith().statusCode(404).jsonBody(rawResponseBody).build(); @@ -439,7 +469,7 @@ describe("NetworkAcls", () => { test("get (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/network-acls/id").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); @@ -451,7 +481,7 @@ describe("NetworkAcls", () => { test("set (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { description: "description", active: true, @@ -550,7 +580,7 @@ describe("NetworkAcls", () => { test("set (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { description: "description", active: true, @@ -582,7 +612,7 @@ describe("NetworkAcls", () => { test("set (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { description: "description", active: true, @@ -614,7 +644,7 @@ describe("NetworkAcls", () => { test("set (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { description: "description", active: true, @@ -646,7 +676,7 @@ describe("NetworkAcls", () => { test("set (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { description: "description", active: true, @@ -678,7 +708,7 @@ describe("NetworkAcls", () => { test("set (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { description: "description", active: true, @@ -710,7 +740,7 @@ describe("NetworkAcls", () => { test("delete (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); server.mockEndpoint().delete("/network-acls/id").respondWith().statusCode(200).build(); @@ -720,7 +750,7 @@ describe("NetworkAcls", () => { test("delete (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -738,7 +768,7 @@ describe("NetworkAcls", () => { test("delete (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -756,7 +786,7 @@ describe("NetworkAcls", () => { test("delete (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -774,7 +804,7 @@ describe("NetworkAcls", () => { test("delete (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -792,7 +822,7 @@ describe("NetworkAcls", () => { test("delete (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -810,7 +840,7 @@ describe("NetworkAcls", () => { test("update (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { id: "id", @@ -896,7 +926,7 @@ describe("NetworkAcls", () => { test("update (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -915,7 +945,7 @@ describe("NetworkAcls", () => { test("update (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -934,7 +964,7 @@ describe("NetworkAcls", () => { test("update (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -953,7 +983,7 @@ describe("NetworkAcls", () => { test("update (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -972,7 +1002,7 @@ describe("NetworkAcls", () => { test("update (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/organizations.test.ts b/src/management/tests/wire/organizations.test.ts index 53ff8bd4f6..b549e24327 100644 --- a/src/management/tests/wire/organizations.test.ts +++ b/src/management/tests/wire/organizations.test.ts @@ -1,21 +1,33 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../mock-server/MockServerPool"; -import { ManagementClient } from "../../Client"; import * as Management from "../../api/index"; +import { ManagementClient } from "../../Client"; +import { mockServerPool } from "../mock-server/MockServerPool"; -describe("Organizations", () => { +describe("OrganizationsClient", () => { test("list (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { next: "next", organizations: [ - { id: "id", name: "name", display_name: "display_name", token_quota: { client_credentials: {} } }, + { + id: "id", + name: "name", + display_name: "display_name", + metadata: { key: "value" }, + token_quota: { client_credentials: {} }, + }, ], }; - server.mockEndpoint().get("/organizations").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/organizations") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); const expected = { next: "next", @@ -24,6 +36,9 @@ describe("Organizations", () => { id: "id", name: "name", display_name: "display_name", + metadata: { + key: "value", + }, token_quota: { client_credentials: {}, }, @@ -44,10 +59,16 @@ describe("Organizations", () => { test("list (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/organizations").respondWith().statusCode(400).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/organizations") + .respondWith() + .statusCode(400) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.organizations.list(); @@ -56,10 +77,16 @@ describe("Organizations", () => { test("list (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/organizations").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/organizations") + .respondWith() + .statusCode(401) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.organizations.list(); @@ -68,10 +95,16 @@ describe("Organizations", () => { test("list (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/organizations").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/organizations") + .respondWith() + .statusCode(403) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.organizations.list(); @@ -80,10 +113,16 @@ describe("Organizations", () => { test("list (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/organizations").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/organizations") + .respondWith() + .statusCode(429) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.organizations.list(); @@ -92,7 +131,7 @@ describe("Organizations", () => { test("create (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "name" }; const rawResponseBody = { id: "id", @@ -156,7 +195,7 @@ describe("Organizations", () => { test("create (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "organization-1" }; const rawResponseBody = { key: "value" }; server @@ -177,7 +216,7 @@ describe("Organizations", () => { test("create (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "organization-1" }; const rawResponseBody = { key: "value" }; server @@ -198,7 +237,7 @@ describe("Organizations", () => { test("create (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "organization-1" }; const rawResponseBody = { key: "value" }; server @@ -219,7 +258,7 @@ describe("Organizations", () => { test("create (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "organization-1" }; const rawResponseBody = { key: "value" }; server @@ -240,7 +279,7 @@ describe("Organizations", () => { test("create (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "organization-1" }; const rawResponseBody = { key: "value" }; server @@ -261,7 +300,7 @@ describe("Organizations", () => { test("getByName (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { id: "id", @@ -306,7 +345,7 @@ describe("Organizations", () => { test("getByName (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -324,7 +363,7 @@ describe("Organizations", () => { test("getByName (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -342,7 +381,7 @@ describe("Organizations", () => { test("getByName (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -360,7 +399,7 @@ describe("Organizations", () => { test("getByName (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -378,7 +417,7 @@ describe("Organizations", () => { test("get (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { id: "id", @@ -417,7 +456,7 @@ describe("Organizations", () => { test("get (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/organizations/id").respondWith().statusCode(400).jsonBody(rawResponseBody).build(); @@ -429,7 +468,7 @@ describe("Organizations", () => { test("get (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/organizations/id").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); @@ -441,7 +480,7 @@ describe("Organizations", () => { test("get (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/organizations/id").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); @@ -453,7 +492,7 @@ describe("Organizations", () => { test("get (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/organizations/id").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); @@ -465,7 +504,7 @@ describe("Organizations", () => { test("delete (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); server.mockEndpoint().delete("/organizations/id").respondWith().statusCode(200).build(); @@ -475,7 +514,7 @@ describe("Organizations", () => { test("delete (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -493,7 +532,7 @@ describe("Organizations", () => { test("delete (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -511,7 +550,7 @@ describe("Organizations", () => { test("delete (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -529,7 +568,7 @@ describe("Organizations", () => { test("delete (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -547,7 +586,7 @@ describe("Organizations", () => { test("delete (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -565,7 +604,7 @@ describe("Organizations", () => { test("update (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { id: "id", @@ -611,7 +650,7 @@ describe("Organizations", () => { test("update (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -630,7 +669,7 @@ describe("Organizations", () => { test("update (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -649,7 +688,7 @@ describe("Organizations", () => { test("update (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -668,7 +707,7 @@ describe("Organizations", () => { test("update (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/organizations/clientGrants.test.ts b/src/management/tests/wire/organizations/clientGrants.test.ts index 801de9acbb..5d44d0f335 100644 --- a/src/management/tests/wire/organizations/clientGrants.test.ts +++ b/src/management/tests/wire/organizations/clientGrants.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../Client"; import * as Management from "../../../api/index"; +import { ManagementClient } from "../../../Client"; +import { mockServerPool } from "../../mock-server/MockServerPool"; -describe("ClientGrants", () => { +describe("ClientGrantsClient", () => { test("list (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { start: 1.1, @@ -25,7 +25,7 @@ describe("ClientGrants", () => { ], }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/organizations/id/client-grants") .respondWith() .statusCode(200) @@ -63,11 +63,11 @@ describe("ClientGrants", () => { test("list (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/organizations/id/client-grants") .respondWith() .statusCode(400) @@ -81,11 +81,11 @@ describe("ClientGrants", () => { test("list (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/organizations/id/client-grants") .respondWith() .statusCode(401) @@ -99,11 +99,11 @@ describe("ClientGrants", () => { test("list (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/organizations/id/client-grants") .respondWith() .statusCode(403) @@ -117,11 +117,11 @@ describe("ClientGrants", () => { test("list (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/organizations/id/client-grants") .respondWith() .statusCode(429) @@ -135,7 +135,7 @@ describe("ClientGrants", () => { test("create (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { grant_id: "grant_id" }; const rawResponseBody = { id: "id", @@ -169,7 +169,7 @@ describe("ClientGrants", () => { test("create (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { grant_id: "grant_id" }; const rawResponseBody = { key: "value" }; server @@ -190,7 +190,7 @@ describe("ClientGrants", () => { test("create (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { grant_id: "grant_id" }; const rawResponseBody = { key: "value" }; server @@ -211,7 +211,7 @@ describe("ClientGrants", () => { test("create (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { grant_id: "grant_id" }; const rawResponseBody = { key: "value" }; server @@ -232,7 +232,7 @@ describe("ClientGrants", () => { test("create (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { grant_id: "grant_id" }; const rawResponseBody = { key: "value" }; server @@ -253,7 +253,7 @@ describe("ClientGrants", () => { test("create (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { grant_id: "grant_id" }; const rawResponseBody = { key: "value" }; server @@ -274,7 +274,7 @@ describe("ClientGrants", () => { test("create (7)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { grant_id: "grant_id" }; const rawResponseBody = { key: "value" }; server @@ -295,7 +295,7 @@ describe("ClientGrants", () => { test("delete (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); server.mockEndpoint().delete("/organizations/id/client-grants/grant_id").respondWith().statusCode(200).build(); @@ -305,7 +305,7 @@ describe("ClientGrants", () => { test("delete (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -323,7 +323,7 @@ describe("ClientGrants", () => { test("delete (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -341,7 +341,7 @@ describe("ClientGrants", () => { test("delete (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -359,7 +359,7 @@ describe("ClientGrants", () => { test("delete (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -377,7 +377,7 @@ describe("ClientGrants", () => { test("delete (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/organizations/discoveryDomains.test.ts b/src/management/tests/wire/organizations/discoveryDomains.test.ts deleted file mode 100644 index b00bf8e2d9..0000000000 --- a/src/management/tests/wire/organizations/discoveryDomains.test.ts +++ /dev/null @@ -1,576 +0,0 @@ -// This file was auto-generated by Fern from our API Definition. - -import { mockServerPool } from "../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../Client"; -import * as Management from "../../../api/index"; - -describe("DiscoveryDomains", () => { - test("list (1)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { - next: "next", - domains: [ - { - id: "id", - domain: "domain", - status: "pending", - verification_txt: "verification_txt", - verification_host: "verification_host", - }, - ], - }; - server - .mockEndpoint() - .get("/organizations/id/discovery-domains") - .respondWith() - .statusCode(200) - .jsonBody(rawResponseBody) - .build(); - - const expected = { - next: "next", - domains: [ - { - id: "id", - domain: "domain", - status: "pending", - verification_txt: "verification_txt", - verification_host: "verification_host", - }, - ], - }; - const page = await client.organizations.discoveryDomains.list("id", { - from: "from", - take: 1, - }); - - expect(expected.domains).toEqual(page.data); - expect(page.hasNextPage()).toBe(true); - const nextPage = await page.getNextPage(); - expect(expected.domains).toEqual(nextPage.data); - }); - - test("list (2)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .get("/organizations/id/discovery-domains") - .respondWith() - .statusCode(400) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.organizations.discoveryDomains.list("id"); - }).rejects.toThrow(Management.BadRequestError); - }); - - test("list (3)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .get("/organizations/id/discovery-domains") - .respondWith() - .statusCode(401) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.organizations.discoveryDomains.list("id"); - }).rejects.toThrow(Management.UnauthorizedError); - }); - - test("list (4)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .get("/organizations/id/discovery-domains") - .respondWith() - .statusCode(403) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.organizations.discoveryDomains.list("id"); - }).rejects.toThrow(Management.ForbiddenError); - }); - - test("list (5)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .get("/organizations/id/discovery-domains") - .respondWith() - .statusCode(404) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.organizations.discoveryDomains.list("id"); - }).rejects.toThrow(Management.NotFoundError); - }); - - test("list (6)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .get("/organizations/id/discovery-domains") - .respondWith() - .statusCode(429) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.organizations.discoveryDomains.list("id"); - }).rejects.toThrow(Management.TooManyRequestsError); - }); - - test("create (1)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { domain: "domain" }; - const rawResponseBody = { - id: "id", - domain: "domain", - status: "pending", - verification_txt: "verification_txt", - verification_host: "verification_host", - }; - server - .mockEndpoint() - .post("/organizations/id/discovery-domains") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(200) - .jsonBody(rawResponseBody) - .build(); - - const response = await client.organizations.discoveryDomains.create("id", { - domain: "domain", - }); - expect(response).toEqual({ - id: "id", - domain: "domain", - status: "pending", - verification_txt: "verification_txt", - verification_host: "verification_host", - }); - }); - - test("create (2)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { domain: "foo" }; - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .post("/organizations/id/discovery-domains") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(400) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.organizations.discoveryDomains.create("id", { - domain: "foo", - }); - }).rejects.toThrow(Management.BadRequestError); - }); - - test("create (3)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { domain: "foo" }; - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .post("/organizations/id/discovery-domains") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(401) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.organizations.discoveryDomains.create("id", { - domain: "foo", - }); - }).rejects.toThrow(Management.UnauthorizedError); - }); - - test("create (4)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { domain: "foo" }; - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .post("/organizations/id/discovery-domains") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(403) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.organizations.discoveryDomains.create("id", { - domain: "foo", - }); - }).rejects.toThrow(Management.ForbiddenError); - }); - - test("create (5)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { domain: "foo" }; - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .post("/organizations/id/discovery-domains") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(404) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.organizations.discoveryDomains.create("id", { - domain: "foo", - }); - }).rejects.toThrow(Management.NotFoundError); - }); - - test("create (6)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { domain: "foo" }; - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .post("/organizations/id/discovery-domains") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(409) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.organizations.discoveryDomains.create("id", { - domain: "foo", - }); - }).rejects.toThrow(Management.ConflictError); - }); - - test("create (7)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { domain: "foo" }; - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .post("/organizations/id/discovery-domains") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(429) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.organizations.discoveryDomains.create("id", { - domain: "foo", - }); - }).rejects.toThrow(Management.TooManyRequestsError); - }); - - test("get (1)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { - id: "id", - domain: "domain", - status: "pending", - verification_txt: "verification_txt", - verification_host: "verification_host", - }; - server - .mockEndpoint() - .get("/organizations/id/discovery-domains/discovery_domain_id") - .respondWith() - .statusCode(200) - .jsonBody(rawResponseBody) - .build(); - - const response = await client.organizations.discoveryDomains.get("id", "discovery_domain_id"); - expect(response).toEqual({ - id: "id", - domain: "domain", - status: "pending", - verification_txt: "verification_txt", - verification_host: "verification_host", - }); - }); - - test("get (2)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .get("/organizations/id/discovery-domains/discovery_domain_id") - .respondWith() - .statusCode(400) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.organizations.discoveryDomains.get("id", "discovery_domain_id"); - }).rejects.toThrow(Management.BadRequestError); - }); - - test("get (3)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .get("/organizations/id/discovery-domains/discovery_domain_id") - .respondWith() - .statusCode(401) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.organizations.discoveryDomains.get("id", "discovery_domain_id"); - }).rejects.toThrow(Management.UnauthorizedError); - }); - - test("get (4)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .get("/organizations/id/discovery-domains/discovery_domain_id") - .respondWith() - .statusCode(403) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.organizations.discoveryDomains.get("id", "discovery_domain_id"); - }).rejects.toThrow(Management.ForbiddenError); - }); - - test("get (5)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .get("/organizations/id/discovery-domains/discovery_domain_id") - .respondWith() - .statusCode(404) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.organizations.discoveryDomains.get("id", "discovery_domain_id"); - }).rejects.toThrow(Management.NotFoundError); - }); - - test("get (6)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .get("/organizations/id/discovery-domains/discovery_domain_id") - .respondWith() - .statusCode(429) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.organizations.discoveryDomains.get("id", "discovery_domain_id"); - }).rejects.toThrow(Management.TooManyRequestsError); - }); - - test("delete (1)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - server - .mockEndpoint() - .delete("/organizations/id/discovery-domains/discovery_domain_id") - .respondWith() - .statusCode(200) - .build(); - - const response = await client.organizations.discoveryDomains.delete("id", "discovery_domain_id"); - expect(response).toEqual(undefined); - }); - - test("delete (2)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .delete("/organizations/id/discovery-domains/discovery_domain_id") - .respondWith() - .statusCode(401) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.organizations.discoveryDomains.delete("id", "discovery_domain_id"); - }).rejects.toThrow(Management.UnauthorizedError); - }); - - test("delete (3)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .delete("/organizations/id/discovery-domains/discovery_domain_id") - .respondWith() - .statusCode(403) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.organizations.discoveryDomains.delete("id", "discovery_domain_id"); - }).rejects.toThrow(Management.ForbiddenError); - }); - - test("delete (4)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .delete("/organizations/id/discovery-domains/discovery_domain_id") - .respondWith() - .statusCode(404) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.organizations.discoveryDomains.delete("id", "discovery_domain_id"); - }).rejects.toThrow(Management.NotFoundError); - }); - - test("delete (5)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .delete("/organizations/id/discovery-domains/discovery_domain_id") - .respondWith() - .statusCode(429) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.organizations.discoveryDomains.delete("id", "discovery_domain_id"); - }).rejects.toThrow(Management.TooManyRequestsError); - }); - - test("update (1)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = {}; - const rawResponseBody = { - id: "id", - domain: "domain", - status: "pending", - verification_txt: "verification_txt", - verification_host: "verification_host", - }; - server - .mockEndpoint() - .patch("/organizations/id/discovery-domains/discovery_domain_id") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(200) - .jsonBody(rawResponseBody) - .build(); - - const response = await client.organizations.discoveryDomains.update("id", "discovery_domain_id"); - expect(response).toEqual({ - id: "id", - domain: "domain", - status: "pending", - verification_txt: "verification_txt", - verification_host: "verification_host", - }); - }); - - test("update (2)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = {}; - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .patch("/organizations/id/discovery-domains/discovery_domain_id") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(400) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.organizations.discoveryDomains.update("id", "discovery_domain_id"); - }).rejects.toThrow(Management.BadRequestError); - }); - - test("update (3)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = {}; - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .patch("/organizations/id/discovery-domains/discovery_domain_id") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(404) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.organizations.discoveryDomains.update("id", "discovery_domain_id"); - }).rejects.toThrow(Management.NotFoundError); - }); -}); diff --git a/src/management/tests/wire/organizations/enabledConnections.test.ts b/src/management/tests/wire/organizations/enabledConnections.test.ts index 3e999749fe..d362722d46 100644 --- a/src/management/tests/wire/organizations/enabledConnections.test.ts +++ b/src/management/tests/wire/organizations/enabledConnections.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../Client"; import * as Management from "../../../api/index"; +import { ManagementClient } from "../../../Client"; +import { mockServerPool } from "../../mock-server/MockServerPool"; -describe("EnabledConnections", () => { +describe("EnabledConnectionsClient", () => { test("list (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { start: 1.1, @@ -16,14 +16,17 @@ describe("EnabledConnections", () => { enabled_connections: [ { connection_id: "connection_id", + organization_connection_name: "organization_connection_name", assign_membership_on_login: true, show_as_button: true, is_signup_enabled: true, + organization_access_level: "none", + is_enabled: true, }, ], }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/organizations/id/enabled_connections") .respondWith() .statusCode(200) @@ -37,9 +40,12 @@ describe("EnabledConnections", () => { enabled_connections: [ { connection_id: "connection_id", + organization_connection_name: "organization_connection_name", assign_membership_on_login: true, show_as_button: true, is_signup_enabled: true, + organization_access_level: "none", + is_enabled: true, }, ], }; @@ -57,11 +63,11 @@ describe("EnabledConnections", () => { test("list (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/organizations/id/enabled_connections") .respondWith() .statusCode(400) @@ -75,11 +81,11 @@ describe("EnabledConnections", () => { test("list (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/organizations/id/enabled_connections") .respondWith() .statusCode(401) @@ -93,11 +99,11 @@ describe("EnabledConnections", () => { test("list (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/organizations/id/enabled_connections") .respondWith() .statusCode(403) @@ -111,11 +117,11 @@ describe("EnabledConnections", () => { test("list (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/organizations/id/enabled_connections") .respondWith() .statusCode(429) @@ -129,7 +135,7 @@ describe("EnabledConnections", () => { test("add (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { connection_id: "connection_id" }; const rawResponseBody = { connection_id: "connection_id", @@ -164,7 +170,7 @@ describe("EnabledConnections", () => { test("add (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { connection_id: "connection_id" }; const rawResponseBody = { key: "value" }; server @@ -185,7 +191,7 @@ describe("EnabledConnections", () => { test("add (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { connection_id: "connection_id" }; const rawResponseBody = { key: "value" }; server @@ -206,7 +212,7 @@ describe("EnabledConnections", () => { test("add (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { connection_id: "connection_id" }; const rawResponseBody = { key: "value" }; server @@ -227,7 +233,7 @@ describe("EnabledConnections", () => { test("add (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { connection_id: "connection_id" }; const rawResponseBody = { key: "value" }; server @@ -248,7 +254,7 @@ describe("EnabledConnections", () => { test("get (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { connection_id: "connection_id", @@ -280,7 +286,7 @@ describe("EnabledConnections", () => { test("get (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -298,7 +304,7 @@ describe("EnabledConnections", () => { test("get (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -316,7 +322,7 @@ describe("EnabledConnections", () => { test("get (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -334,7 +340,7 @@ describe("EnabledConnections", () => { test("delete (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); server .mockEndpoint() @@ -349,7 +355,7 @@ describe("EnabledConnections", () => { test("delete (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -367,7 +373,7 @@ describe("EnabledConnections", () => { test("delete (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -385,7 +391,7 @@ describe("EnabledConnections", () => { test("delete (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -403,7 +409,7 @@ describe("EnabledConnections", () => { test("delete (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -421,7 +427,7 @@ describe("EnabledConnections", () => { test("update (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { connection_id: "connection_id", @@ -454,7 +460,7 @@ describe("EnabledConnections", () => { test("update (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -473,7 +479,7 @@ describe("EnabledConnections", () => { test("update (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -492,7 +498,7 @@ describe("EnabledConnections", () => { test("update (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -511,7 +517,7 @@ describe("EnabledConnections", () => { test("update (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/organizations/invitations.test.ts b/src/management/tests/wire/organizations/invitations.test.ts index 171f6a2913..18ce40d0ea 100644 --- a/src/management/tests/wire/organizations/invitations.test.ts +++ b/src/management/tests/wire/organizations/invitations.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../Client"; import * as Management from "../../../api/index"; +import { ManagementClient } from "../../../Client"; +import { mockServerPool } from "../../mock-server/MockServerPool"; -describe("Invitations", () => { +describe("InvitationsClient", () => { test("list (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { start: 1.1, @@ -31,7 +31,7 @@ describe("Invitations", () => { ], }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/organizations/id/invitations") .respondWith() .statusCode(200) @@ -84,11 +84,11 @@ describe("Invitations", () => { test("list (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/organizations/id/invitations") .respondWith() .statusCode(400) @@ -102,11 +102,11 @@ describe("Invitations", () => { test("list (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/organizations/id/invitations") .respondWith() .statusCode(401) @@ -120,11 +120,11 @@ describe("Invitations", () => { test("list (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/organizations/id/invitations") .respondWith() .statusCode(403) @@ -138,11 +138,11 @@ describe("Invitations", () => { test("list (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/organizations/id/invitations") .respondWith() .statusCode(404) @@ -156,11 +156,11 @@ describe("Invitations", () => { test("list (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/organizations/id/invitations") .respondWith() .statusCode(429) @@ -174,7 +174,7 @@ describe("Invitations", () => { test("create (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { inviter: { name: "name" }, invitee: { email: "email" }, client_id: "client_id" }; const rawResponseBody = { id: "id", @@ -236,7 +236,7 @@ describe("Invitations", () => { test("create (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { inviter: { name: "Jane Doe" }, invitee: { email: "john.doe@gmail.com" }, @@ -267,7 +267,7 @@ describe("Invitations", () => { test("create (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { inviter: { name: "Jane Doe" }, invitee: { email: "john.doe@gmail.com" }, @@ -298,7 +298,7 @@ describe("Invitations", () => { test("create (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { inviter: { name: "Jane Doe" }, invitee: { email: "john.doe@gmail.com" }, @@ -329,7 +329,7 @@ describe("Invitations", () => { test("create (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { inviter: { name: "Jane Doe" }, invitee: { email: "john.doe@gmail.com" }, @@ -360,7 +360,7 @@ describe("Invitations", () => { test("create (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { inviter: { name: "Jane Doe" }, invitee: { email: "john.doe@gmail.com" }, @@ -391,7 +391,7 @@ describe("Invitations", () => { test("get (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { id: "id", @@ -447,7 +447,7 @@ describe("Invitations", () => { test("get (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -465,7 +465,7 @@ describe("Invitations", () => { test("get (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -483,7 +483,7 @@ describe("Invitations", () => { test("get (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -501,7 +501,7 @@ describe("Invitations", () => { test("get (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -519,7 +519,7 @@ describe("Invitations", () => { test("get (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -537,7 +537,7 @@ describe("Invitations", () => { test("delete (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); server .mockEndpoint() @@ -552,7 +552,7 @@ describe("Invitations", () => { test("delete (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -570,7 +570,7 @@ describe("Invitations", () => { test("delete (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -588,7 +588,7 @@ describe("Invitations", () => { test("delete (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -606,7 +606,7 @@ describe("Invitations", () => { test("delete (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/organizations/members.test.ts b/src/management/tests/wire/organizations/members.test.ts index 9cb95eb5b9..6cf8ea82cb 100644 --- a/src/management/tests/wire/organizations/members.test.ts +++ b/src/management/tests/wire/organizations/members.test.ts @@ -1,20 +1,20 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../Client"; import * as Management from "../../../api/index"; +import { ManagementClient } from "../../../Client"; +import { mockServerPool } from "../../mock-server/MockServerPool"; -describe("Members", () => { +describe("MembersClient", () => { test("list (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { next: "next", members: [{ user_id: "user_id", picture: "picture", name: "name", email: "email", roles: [{}] }], }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/organizations/id/members") .respondWith() .statusCode(200) @@ -48,11 +48,11 @@ describe("Members", () => { test("list (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/organizations/id/members") .respondWith() .statusCode(400) @@ -66,11 +66,11 @@ describe("Members", () => { test("list (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/organizations/id/members") .respondWith() .statusCode(401) @@ -84,11 +84,11 @@ describe("Members", () => { test("list (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/organizations/id/members") .respondWith() .statusCode(403) @@ -102,11 +102,11 @@ describe("Members", () => { test("list (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/organizations/id/members") .respondWith() .statusCode(429) @@ -120,7 +120,7 @@ describe("Members", () => { test("create (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { members: ["members"] }; server @@ -139,7 +139,7 @@ describe("Members", () => { test("create (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { members: ["members", "members"] }; const rawResponseBody = { key: "value" }; server @@ -160,7 +160,7 @@ describe("Members", () => { test("create (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { members: ["members", "members"] }; const rawResponseBody = { key: "value" }; server @@ -181,7 +181,7 @@ describe("Members", () => { test("create (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { members: ["members", "members"] }; const rawResponseBody = { key: "value" }; server @@ -202,7 +202,7 @@ describe("Members", () => { test("create (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { members: ["members", "members"] }; const rawResponseBody = { key: "value" }; server @@ -223,7 +223,7 @@ describe("Members", () => { test("delete (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { members: ["members"] }; server @@ -242,7 +242,7 @@ describe("Members", () => { test("delete (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { members: ["members", "members"] }; const rawResponseBody = { key: "value" }; server @@ -263,7 +263,7 @@ describe("Members", () => { test("delete (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { members: ["members", "members"] }; const rawResponseBody = { key: "value" }; server @@ -284,7 +284,7 @@ describe("Members", () => { test("delete (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { members: ["members", "members"] }; const rawResponseBody = { key: "value" }; server @@ -305,7 +305,7 @@ describe("Members", () => { test("delete (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { members: ["members", "members"] }; const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/organizations/members/roles.test.ts b/src/management/tests/wire/organizations/members/roles.test.ts index 4ccc27b05c..39e81ee225 100644 --- a/src/management/tests/wire/organizations/members/roles.test.ts +++ b/src/management/tests/wire/organizations/members/roles.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../../Client"; import * as Management from "../../../../api/index"; +import { ManagementClient } from "../../../../Client"; +import { mockServerPool } from "../../../mock-server/MockServerPool"; -describe("Roles", () => { +describe("RolesClient", () => { test("list (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { start: 1.1, @@ -16,7 +16,7 @@ describe("Roles", () => { roles: [{ id: "id", name: "name", description: "description" }], }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/organizations/id/members/user_id/roles") .respondWith() .statusCode(200) @@ -49,11 +49,11 @@ describe("Roles", () => { test("list (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/organizations/id/members/user_id/roles") .respondWith() .statusCode(400) @@ -67,11 +67,11 @@ describe("Roles", () => { test("list (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/organizations/id/members/user_id/roles") .respondWith() .statusCode(401) @@ -85,11 +85,11 @@ describe("Roles", () => { test("list (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/organizations/id/members/user_id/roles") .respondWith() .statusCode(403) @@ -103,11 +103,11 @@ describe("Roles", () => { test("list (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/organizations/id/members/user_id/roles") .respondWith() .statusCode(429) @@ -121,7 +121,7 @@ describe("Roles", () => { test("assign (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { roles: ["roles"] }; server @@ -140,7 +140,7 @@ describe("Roles", () => { test("assign (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { roles: ["roles", "roles"] }; const rawResponseBody = { key: "value" }; server @@ -161,7 +161,7 @@ describe("Roles", () => { test("assign (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { roles: ["roles", "roles"] }; const rawResponseBody = { key: "value" }; server @@ -182,7 +182,7 @@ describe("Roles", () => { test("assign (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { roles: ["roles", "roles"] }; const rawResponseBody = { key: "value" }; server @@ -203,7 +203,7 @@ describe("Roles", () => { test("assign (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { roles: ["roles", "roles"] }; const rawResponseBody = { key: "value" }; server @@ -224,7 +224,7 @@ describe("Roles", () => { test("assign (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { roles: ["roles", "roles"] }; const rawResponseBody = { key: "value" }; server @@ -245,7 +245,7 @@ describe("Roles", () => { test("delete (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { roles: ["roles"] }; server @@ -264,7 +264,7 @@ describe("Roles", () => { test("delete (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { roles: ["roles", "roles"] }; const rawResponseBody = { key: "value" }; server @@ -285,7 +285,7 @@ describe("Roles", () => { test("delete (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { roles: ["roles", "roles"] }; const rawResponseBody = { key: "value" }; server @@ -306,7 +306,7 @@ describe("Roles", () => { test("delete (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { roles: ["roles", "roles"] }; const rawResponseBody = { key: "value" }; server @@ -327,7 +327,7 @@ describe("Roles", () => { test("delete (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { roles: ["roles", "roles"] }; const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/prompts.test.ts b/src/management/tests/wire/prompts.test.ts index 130ef50a2a..e507373915 100644 --- a/src/management/tests/wire/prompts.test.ts +++ b/src/management/tests/wire/prompts.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../mock-server/MockServerPool"; -import { ManagementClient } from "../../Client"; import * as Management from "../../api/index"; +import { ManagementClient } from "../../Client"; +import { mockServerPool } from "../mock-server/MockServerPool"; -describe("Prompts", () => { +describe("PromptsClient", () => { test("getSettings (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { universal_login_experience: "new", @@ -26,7 +26,7 @@ describe("Prompts", () => { test("getSettings (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/prompts").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); @@ -38,7 +38,7 @@ describe("Prompts", () => { test("getSettings (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/prompts").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); @@ -50,7 +50,7 @@ describe("Prompts", () => { test("getSettings (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/prompts").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); @@ -62,7 +62,7 @@ describe("Prompts", () => { test("updateSettings (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { universal_login_experience: "new", @@ -88,7 +88,7 @@ describe("Prompts", () => { test("updateSettings (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -107,7 +107,7 @@ describe("Prompts", () => { test("updateSettings (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -126,7 +126,7 @@ describe("Prompts", () => { test("updateSettings (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -145,7 +145,7 @@ describe("Prompts", () => { test("updateSettings (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/prompts/customText.test.ts b/src/management/tests/wire/prompts/customText.test.ts index 8fed158813..d2699e483d 100644 --- a/src/management/tests/wire/prompts/customText.test.ts +++ b/src/management/tests/wire/prompts/customText.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../Client"; import * as Management from "../../../api/index"; +import { ManagementClient } from "../../../Client"; +import { mockServerPool } from "../../mock-server/MockServerPool"; -describe("CustomText", () => { +describe("CustomTextClient", () => { test("get (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -26,7 +26,7 @@ describe("CustomText", () => { test("get (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -44,7 +44,7 @@ describe("CustomText", () => { test("get (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -62,7 +62,7 @@ describe("CustomText", () => { test("get (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -80,7 +80,7 @@ describe("CustomText", () => { test("get (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -98,7 +98,7 @@ describe("CustomText", () => { test("get (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -116,7 +116,7 @@ describe("CustomText", () => { test("set (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { key: "value" }; server @@ -135,7 +135,7 @@ describe("CustomText", () => { test("set (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { string: { key: "value" } }; const rawResponseBody = { key: "value" }; server @@ -158,7 +158,7 @@ describe("CustomText", () => { test("set (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { string: { key: "value" } }; const rawResponseBody = { key: "value" }; server @@ -181,7 +181,7 @@ describe("CustomText", () => { test("set (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { string: { key: "value" } }; const rawResponseBody = { key: "value" }; server @@ -204,7 +204,7 @@ describe("CustomText", () => { test("set (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { string: { key: "value" } }; const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/prompts/partials.test.ts b/src/management/tests/wire/prompts/partials.test.ts index a424142fc9..abedaa440a 100644 --- a/src/management/tests/wire/prompts/partials.test.ts +++ b/src/management/tests/wire/prompts/partials.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../Client"; import * as Management from "../../../api/index"; +import { ManagementClient } from "../../../Client"; +import { mockServerPool } from "../../mock-server/MockServerPool"; -describe("Partials", () => { +describe("PartialsClient", () => { test("get (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -26,7 +26,7 @@ describe("Partials", () => { test("get (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -44,7 +44,7 @@ describe("Partials", () => { test("get (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -62,7 +62,7 @@ describe("Partials", () => { test("get (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -80,7 +80,7 @@ describe("Partials", () => { test("get (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -98,7 +98,7 @@ describe("Partials", () => { test("get (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -116,7 +116,7 @@ describe("Partials", () => { test("set (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { key: "value" }; server @@ -135,7 +135,7 @@ describe("Partials", () => { test("set (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { string: { key: "value" } }; const rawResponseBody = { key: "value" }; server @@ -158,7 +158,7 @@ describe("Partials", () => { test("set (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { string: { key: "value" } }; const rawResponseBody = { key: "value" }; server @@ -181,7 +181,7 @@ describe("Partials", () => { test("set (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { string: { key: "value" } }; const rawResponseBody = { key: "value" }; server @@ -204,7 +204,7 @@ describe("Partials", () => { test("set (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { string: { key: "value" } }; const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/prompts/rendering.test.ts b/src/management/tests/wire/prompts/rendering.test.ts index edd9d23224..1069904d6b 100644 --- a/src/management/tests/wire/prompts/rendering.test.ts +++ b/src/management/tests/wire/prompts/rendering.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../Client"; import * as Management from "../../../api/index"; +import { ManagementClient } from "../../../Client"; +import { mockServerPool } from "../../mock-server/MockServerPool"; -describe("Rendering", () => { +describe("RenderingClient", () => { test("list (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { configs: [ @@ -23,7 +23,13 @@ describe("Rendering", () => { limit: 1.1, total: 1.1, }; - server.mockEndpoint().get("/prompts/rendering").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/prompts/rendering") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); const expected = { configs: [ @@ -58,315 +64,97 @@ describe("Rendering", () => { test("list (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/prompts/rendering").respondWith().statusCode(400).jsonBody(rawResponseBody).build(); - - await expect(async () => { - return await client.prompts.rendering.list(); - }).rejects.toThrow(Management.BadRequestError); - }); - - test("list (3)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/prompts/rendering").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); - - await expect(async () => { - return await client.prompts.rendering.list(); - }).rejects.toThrow(Management.UnauthorizedError); - }); - - test("list (4)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/prompts/rendering").respondWith().statusCode(402).jsonBody(rawResponseBody).build(); - - await expect(async () => { - return await client.prompts.rendering.list(); - }).rejects.toThrow(Management.PaymentRequiredError); - }); - - test("list (5)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/prompts/rendering").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); - - await expect(async () => { - return await client.prompts.rendering.list(); - }).rejects.toThrow(Management.ForbiddenError); - }); - - test("list (6)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/prompts/rendering").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); - - await expect(async () => { - return await client.prompts.rendering.list(); - }).rejects.toThrow(Management.TooManyRequestsError); - }); - - test("bulkUpdate (1)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { - configs: [{ prompt: "login", screen: "login", rendering_mode: "advanced", head_tags: [{}] }], - }; - const rawResponseBody = { - configs: [ - { - prompt: "login", - screen: "login", - rendering_mode: "advanced", - context_configuration: ["context_configuration"], - default_head_tags_disabled: true, - head_tags: [{}], - use_page_template: true, - }, - ], - }; - server - .mockEndpoint() - .patch("/prompts/rendering") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(200) - .jsonBody(rawResponseBody) - .build(); - - const response = await client.prompts.rendering.bulkUpdate({ - configs: [ - { - prompt: "login", - screen: "login", - rendering_mode: "advanced", - head_tags: [{}], - }, - ], - }); - expect(response).toEqual({ - configs: [ - { - prompt: "login", - screen: "login", - rendering_mode: "advanced", - context_configuration: ["context_configuration"], - default_head_tags_disabled: true, - head_tags: [{}], - use_page_template: true, - }, - ], - }); - }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); - test("bulkUpdate (2)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { - configs: [ - { prompt: "login", screen: "login", rendering_mode: "advanced", head_tags: [{}, {}] }, - { prompt: "login", screen: "login", rendering_mode: "advanced", head_tags: [{}, {}] }, - ], - }; const rawResponseBody = { key: "value" }; server - .mockEndpoint() - .patch("/prompts/rendering") - .jsonBody(rawRequestBody) + .mockEndpoint({ once: false }) + .get("/prompts/rendering") .respondWith() .statusCode(400) .jsonBody(rawResponseBody) .build(); await expect(async () => { - return await client.prompts.rendering.bulkUpdate({ - configs: [ - { - prompt: "login", - screen: "login", - rendering_mode: "advanced", - head_tags: [{}, {}], - }, - { - prompt: "login", - screen: "login", - rendering_mode: "advanced", - head_tags: [{}, {}], - }, - ], - }); + return await client.prompts.rendering.list(); }).rejects.toThrow(Management.BadRequestError); }); - test("bulkUpdate (3)", async () => { + test("list (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { - configs: [ - { prompt: "login", screen: "login", rendering_mode: "advanced", head_tags: [{}, {}] }, - { prompt: "login", screen: "login", rendering_mode: "advanced", head_tags: [{}, {}] }, - ], - }; + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); + const rawResponseBody = { key: "value" }; server - .mockEndpoint() - .patch("/prompts/rendering") - .jsonBody(rawRequestBody) + .mockEndpoint({ once: false }) + .get("/prompts/rendering") .respondWith() .statusCode(401) .jsonBody(rawResponseBody) .build(); await expect(async () => { - return await client.prompts.rendering.bulkUpdate({ - configs: [ - { - prompt: "login", - screen: "login", - rendering_mode: "advanced", - head_tags: [{}, {}], - }, - { - prompt: "login", - screen: "login", - rendering_mode: "advanced", - head_tags: [{}, {}], - }, - ], - }); + return await client.prompts.rendering.list(); }).rejects.toThrow(Management.UnauthorizedError); }); - test("bulkUpdate (4)", async () => { + test("list (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { - configs: [ - { prompt: "login", screen: "login", rendering_mode: "advanced", head_tags: [{}, {}] }, - { prompt: "login", screen: "login", rendering_mode: "advanced", head_tags: [{}, {}] }, - ], - }; + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); + const rawResponseBody = { key: "value" }; server - .mockEndpoint() - .patch("/prompts/rendering") - .jsonBody(rawRequestBody) + .mockEndpoint({ once: false }) + .get("/prompts/rendering") .respondWith() .statusCode(402) .jsonBody(rawResponseBody) .build(); await expect(async () => { - return await client.prompts.rendering.bulkUpdate({ - configs: [ - { - prompt: "login", - screen: "login", - rendering_mode: "advanced", - head_tags: [{}, {}], - }, - { - prompt: "login", - screen: "login", - rendering_mode: "advanced", - head_tags: [{}, {}], - }, - ], - }); + return await client.prompts.rendering.list(); }).rejects.toThrow(Management.PaymentRequiredError); }); - test("bulkUpdate (5)", async () => { + test("list (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { - configs: [ - { prompt: "login", screen: "login", rendering_mode: "advanced", head_tags: [{}, {}] }, - { prompt: "login", screen: "login", rendering_mode: "advanced", head_tags: [{}, {}] }, - ], - }; + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); + const rawResponseBody = { key: "value" }; server - .mockEndpoint() - .patch("/prompts/rendering") - .jsonBody(rawRequestBody) + .mockEndpoint({ once: false }) + .get("/prompts/rendering") .respondWith() .statusCode(403) .jsonBody(rawResponseBody) .build(); await expect(async () => { - return await client.prompts.rendering.bulkUpdate({ - configs: [ - { - prompt: "login", - screen: "login", - rendering_mode: "advanced", - head_tags: [{}, {}], - }, - { - prompt: "login", - screen: "login", - rendering_mode: "advanced", - head_tags: [{}, {}], - }, - ], - }); + return await client.prompts.rendering.list(); }).rejects.toThrow(Management.ForbiddenError); }); - test("bulkUpdate (6)", async () => { + test("list (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { - configs: [ - { prompt: "login", screen: "login", rendering_mode: "advanced", head_tags: [{}, {}] }, - { prompt: "login", screen: "login", rendering_mode: "advanced", head_tags: [{}, {}] }, - ], - }; + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); + const rawResponseBody = { key: "value" }; server - .mockEndpoint() - .patch("/prompts/rendering") - .jsonBody(rawRequestBody) + .mockEndpoint({ once: false }) + .get("/prompts/rendering") .respondWith() .statusCode(429) .jsonBody(rawResponseBody) .build(); await expect(async () => { - return await client.prompts.rendering.bulkUpdate({ - configs: [ - { - prompt: "login", - screen: "login", - rendering_mode: "advanced", - head_tags: [{}, {}], - }, - { - prompt: "login", - screen: "login", - rendering_mode: "advanced", - head_tags: [{}, {}], - }, - ], - }); + return await client.prompts.rendering.list(); }).rejects.toThrow(Management.TooManyRequestsError); }); test("get (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { tenant: "tenant", @@ -376,12 +164,7 @@ describe("Rendering", () => { context_configuration: ["context_configuration"], default_head_tags_disabled: true, head_tags: [{ tag: "tag", content: "content" }], - filters: { - match_type: "includes_any", - clients: [{ id: "id" }], - organizations: [{ id: "id" }], - domains: [{ id: "id" }], - }, + filters: { match_type: "includes_any", clients: [{}], organizations: [{}], domains: [{}] }, use_page_template: true, }; server @@ -408,21 +191,9 @@ describe("Rendering", () => { ], filters: { match_type: "includes_any", - clients: [ - { - id: "id", - }, - ], - organizations: [ - { - id: "id", - }, - ], - domains: [ - { - id: "id", - }, - ], + clients: [{}], + organizations: [{}], + domains: [{}], }, use_page_template: true, }); @@ -430,7 +201,7 @@ describe("Rendering", () => { test("get (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -448,7 +219,7 @@ describe("Rendering", () => { test("get (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -466,7 +237,7 @@ describe("Rendering", () => { test("get (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -484,7 +255,7 @@ describe("Rendering", () => { test("get (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -502,7 +273,7 @@ describe("Rendering", () => { test("get (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -520,7 +291,7 @@ describe("Rendering", () => { test("get (7)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -538,19 +309,14 @@ describe("Rendering", () => { test("update (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { rendering_mode: "advanced", head_tags: [{}] }; + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); + const rawRequestBody = {}; const rawResponseBody = { rendering_mode: "advanced", context_configuration: ["context_configuration"], default_head_tags_disabled: true, head_tags: [{ tag: "tag", content: "content" }], - filters: { - match_type: "includes_any", - clients: [{ id: "id" }], - organizations: [{ id: "id" }], - domains: [{ id: "id" }], - }, + filters: { match_type: "includes_any", clients: [{}], organizations: [{}], domains: [{}] }, use_page_template: true, }; server @@ -562,10 +328,7 @@ describe("Rendering", () => { .jsonBody(rawResponseBody) .build(); - const response = await client.prompts.rendering.update("login", "login", { - rendering_mode: "advanced", - head_tags: [{}], - }); + const response = await client.prompts.rendering.update("login", "login"); expect(response).toEqual({ rendering_mode: "advanced", context_configuration: ["context_configuration"], @@ -578,21 +341,9 @@ describe("Rendering", () => { ], filters: { match_type: "includes_any", - clients: [ - { - id: "id", - }, - ], - organizations: [ - { - id: "id", - }, - ], - domains: [ - { - id: "id", - }, - ], + clients: [{}], + organizations: [{}], + domains: [{}], }, use_page_template: true, }); @@ -600,8 +351,8 @@ describe("Rendering", () => { test("update (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { rendering_mode: "advanced", head_tags: [{}, {}] }; + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); + const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server .mockEndpoint() @@ -613,17 +364,14 @@ describe("Rendering", () => { .build(); await expect(async () => { - return await client.prompts.rendering.update("login", "login", { - rendering_mode: "advanced", - head_tags: [{}, {}], - }); + return await client.prompts.rendering.update("login", "login"); }).rejects.toThrow(Management.BadRequestError); }); test("update (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { rendering_mode: "advanced", head_tags: [{}, {}] }; + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); + const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server .mockEndpoint() @@ -635,17 +383,14 @@ describe("Rendering", () => { .build(); await expect(async () => { - return await client.prompts.rendering.update("login", "login", { - rendering_mode: "advanced", - head_tags: [{}, {}], - }); + return await client.prompts.rendering.update("login", "login"); }).rejects.toThrow(Management.UnauthorizedError); }); test("update (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { rendering_mode: "advanced", head_tags: [{}, {}] }; + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); + const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server .mockEndpoint() @@ -657,17 +402,14 @@ describe("Rendering", () => { .build(); await expect(async () => { - return await client.prompts.rendering.update("login", "login", { - rendering_mode: "advanced", - head_tags: [{}, {}], - }); + return await client.prompts.rendering.update("login", "login"); }).rejects.toThrow(Management.PaymentRequiredError); }); test("update (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { rendering_mode: "advanced", head_tags: [{}, {}] }; + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); + const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server .mockEndpoint() @@ -679,17 +421,14 @@ describe("Rendering", () => { .build(); await expect(async () => { - return await client.prompts.rendering.update("login", "login", { - rendering_mode: "advanced", - head_tags: [{}, {}], - }); + return await client.prompts.rendering.update("login", "login"); }).rejects.toThrow(Management.ForbiddenError); }); test("update (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { rendering_mode: "advanced", head_tags: [{}, {}] }; + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); + const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server .mockEndpoint() @@ -701,10 +440,7 @@ describe("Rendering", () => { .build(); await expect(async () => { - return await client.prompts.rendering.update("login", "login", { - rendering_mode: "advanced", - head_tags: [{}, {}], - }); + return await client.prompts.rendering.update("login", "login"); }).rejects.toThrow(Management.TooManyRequestsError); }); }); diff --git a/src/management/tests/wire/refreshTokens.test.ts b/src/management/tests/wire/refreshTokens.test.ts index c350a15903..83e1ff5f58 100644 --- a/src/management/tests/wire/refreshTokens.test.ts +++ b/src/management/tests/wire/refreshTokens.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../mock-server/MockServerPool"; -import { ManagementClient } from "../../Client"; import * as Management from "../../api/index"; +import { ManagementClient } from "../../Client"; +import { mockServerPool } from "../mock-server/MockServerPool"; -describe("RefreshTokens", () => { +describe("RefreshTokensClient", () => { test("get (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { id: "id", @@ -61,7 +61,7 @@ describe("RefreshTokens", () => { test("get (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/refresh-tokens/id").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); @@ -73,7 +73,7 @@ describe("RefreshTokens", () => { test("get (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/refresh-tokens/id").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); @@ -85,7 +85,7 @@ describe("RefreshTokens", () => { test("get (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/refresh-tokens/id").respondWith().statusCode(404).jsonBody(rawResponseBody).build(); @@ -97,7 +97,7 @@ describe("RefreshTokens", () => { test("get (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/refresh-tokens/id").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); @@ -109,7 +109,7 @@ describe("RefreshTokens", () => { test("delete (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); server.mockEndpoint().delete("/refresh-tokens/id").respondWith().statusCode(200).build(); @@ -119,7 +119,7 @@ describe("RefreshTokens", () => { test("delete (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -137,7 +137,7 @@ describe("RefreshTokens", () => { test("delete (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -155,7 +155,7 @@ describe("RefreshTokens", () => { test("delete (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -173,7 +173,7 @@ describe("RefreshTokens", () => { test("delete (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/resourceServers.test.ts b/src/management/tests/wire/resourceServers.test.ts index f85f301b8b..cd2bbb79d5 100644 --- a/src/management/tests/wire/resourceServers.test.ts +++ b/src/management/tests/wire/resourceServers.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../mock-server/MockServerPool"; -import { ManagementClient } from "../../Client"; import * as Management from "../../api/index"; +import { ManagementClient } from "../../Client"; +import { mockServerPool } from "../mock-server/MockServerPool"; -describe("ResourceServers", () => { +describe("ResourceServersClient", () => { test("list (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { start: 1.1, @@ -34,11 +34,16 @@ describe("ResourceServers", () => { }, consent_policy: "transactional-authorization-with-mfa", proof_of_possession: { mechanism: "mtls", required: true }, - client_id: "client_id", }, ], }; - server.mockEndpoint().get("/resource-servers").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/resource-servers") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); const expected = { start: 1.1, @@ -75,7 +80,6 @@ describe("ResourceServers", () => { mechanism: "mtls", required: true, }, - client_id: "client_id", }, ], }; @@ -94,10 +98,16 @@ describe("ResourceServers", () => { test("list (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/resource-servers").respondWith().statusCode(400).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/resource-servers") + .respondWith() + .statusCode(400) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.resourceServers.list(); @@ -106,10 +116,16 @@ describe("ResourceServers", () => { test("list (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/resource-servers").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/resource-servers") + .respondWith() + .statusCode(401) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.resourceServers.list(); @@ -118,10 +134,16 @@ describe("ResourceServers", () => { test("list (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/resource-servers").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/resource-servers") + .respondWith() + .statusCode(403) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.resourceServers.list(); @@ -130,10 +152,16 @@ describe("ResourceServers", () => { test("list (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/resource-servers").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/resource-servers") + .respondWith() + .statusCode(429) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.resourceServers.list(); @@ -142,7 +170,7 @@ describe("ResourceServers", () => { test("create (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { identifier: "identifier" }; const rawResponseBody = { id: "id", @@ -165,8 +193,6 @@ describe("ResourceServers", () => { consent_policy: "transactional-authorization-with-mfa", authorization_details: [{ key: "value" }], proof_of_possession: { mechanism: "mtls", required: true }, - subject_type_authorization: { user: { policy: "allow_all" }, client: { policy: "deny_all" } }, - client_id: "client_id", }; server .mockEndpoint() @@ -218,21 +244,12 @@ describe("ResourceServers", () => { mechanism: "mtls", required: true, }, - subject_type_authorization: { - user: { - policy: "allow_all", - }, - client: { - policy: "deny_all", - }, - }, - client_id: "client_id", }); }); test("create (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { identifier: "x" }; const rawResponseBody = { key: "value" }; server @@ -253,7 +270,7 @@ describe("ResourceServers", () => { test("create (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { identifier: "x" }; const rawResponseBody = { key: "value" }; server @@ -274,7 +291,7 @@ describe("ResourceServers", () => { test("create (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { identifier: "x" }; const rawResponseBody = { key: "value" }; server @@ -295,7 +312,7 @@ describe("ResourceServers", () => { test("create (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { identifier: "x" }; const rawResponseBody = { key: "value" }; server @@ -316,7 +333,7 @@ describe("ResourceServers", () => { test("create (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { identifier: "x" }; const rawResponseBody = { key: "value" }; server @@ -337,7 +354,7 @@ describe("ResourceServers", () => { test("get (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { id: "id", @@ -360,8 +377,6 @@ describe("ResourceServers", () => { consent_policy: "transactional-authorization-with-mfa", authorization_details: [{ key: "value" }], proof_of_possession: { mechanism: "mtls", required: true }, - subject_type_authorization: { user: { policy: "allow_all" }, client: { policy: "deny_all" } }, - client_id: "client_id", }; server .mockEndpoint() @@ -412,21 +427,12 @@ describe("ResourceServers", () => { mechanism: "mtls", required: true, }, - subject_type_authorization: { - user: { - policy: "allow_all", - }, - client: { - policy: "deny_all", - }, - }, - client_id: "client_id", }); }); test("get (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -444,7 +450,7 @@ describe("ResourceServers", () => { test("get (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -462,7 +468,7 @@ describe("ResourceServers", () => { test("get (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -480,7 +486,7 @@ describe("ResourceServers", () => { test("get (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -498,7 +504,7 @@ describe("ResourceServers", () => { test("get (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -516,7 +522,7 @@ describe("ResourceServers", () => { test("delete (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); server.mockEndpoint().delete("/resource-servers/id").respondWith().statusCode(200).build(); @@ -526,7 +532,7 @@ describe("ResourceServers", () => { test("delete (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -544,7 +550,7 @@ describe("ResourceServers", () => { test("delete (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -562,7 +568,7 @@ describe("ResourceServers", () => { test("delete (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -580,7 +586,7 @@ describe("ResourceServers", () => { test("delete (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -598,7 +604,7 @@ describe("ResourceServers", () => { test("update (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { id: "id", @@ -621,8 +627,6 @@ describe("ResourceServers", () => { consent_policy: "transactional-authorization-with-mfa", authorization_details: [{ key: "value" }], proof_of_possession: { mechanism: "mtls", required: true }, - subject_type_authorization: { user: { policy: "allow_all" }, client: { policy: "deny_all" } }, - client_id: "client_id", }; server .mockEndpoint() @@ -672,21 +676,12 @@ describe("ResourceServers", () => { mechanism: "mtls", required: true, }, - subject_type_authorization: { - user: { - policy: "allow_all", - }, - client: { - policy: "deny_all", - }, - }, - client_id: "client_id", }); }); test("update (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -705,7 +700,7 @@ describe("ResourceServers", () => { test("update (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -724,7 +719,7 @@ describe("ResourceServers", () => { test("update (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -743,7 +738,7 @@ describe("ResourceServers", () => { test("update (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -762,7 +757,7 @@ describe("ResourceServers", () => { test("update (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/riskAssessments/settings.test.ts b/src/management/tests/wire/riskAssessments/settings.test.ts deleted file mode 100644 index 735d340d3f..0000000000 --- a/src/management/tests/wire/riskAssessments/settings.test.ts +++ /dev/null @@ -1,225 +0,0 @@ -// This file was auto-generated by Fern from our API Definition. - -import { mockServerPool } from "../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../Client"; -import * as Management from "../../../api/index"; - -describe("Settings", () => { - test("get (1)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { enabled: true }; - server - .mockEndpoint() - .get("/risk-assessments/settings") - .respondWith() - .statusCode(200) - .jsonBody(rawResponseBody) - .build(); - - const response = await client.riskAssessments.settings.get(); - expect(response).toEqual({ - enabled: true, - }); - }); - - test("get (2)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .get("/risk-assessments/settings") - .respondWith() - .statusCode(401) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.riskAssessments.settings.get(); - }).rejects.toThrow(Management.UnauthorizedError); - }); - - test("get (3)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .get("/risk-assessments/settings") - .respondWith() - .statusCode(403) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.riskAssessments.settings.get(); - }).rejects.toThrow(Management.ForbiddenError); - }); - - test("get (4)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .get("/risk-assessments/settings") - .respondWith() - .statusCode(404) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.riskAssessments.settings.get(); - }).rejects.toThrow(Management.NotFoundError); - }); - - test("get (5)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .get("/risk-assessments/settings") - .respondWith() - .statusCode(429) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.riskAssessments.settings.get(); - }).rejects.toThrow(Management.TooManyRequestsError); - }); - - test("update (1)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { enabled: true }; - const rawResponseBody = { enabled: true }; - server - .mockEndpoint() - .patch("/risk-assessments/settings") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(200) - .jsonBody(rawResponseBody) - .build(); - - const response = await client.riskAssessments.settings.update({ - enabled: true, - }); - expect(response).toEqual({ - enabled: true, - }); - }); - - test("update (2)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { enabled: true }; - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .patch("/risk-assessments/settings") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(400) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.riskAssessments.settings.update({ - enabled: true, - }); - }).rejects.toThrow(Management.BadRequestError); - }); - - test("update (3)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { enabled: true }; - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .patch("/risk-assessments/settings") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(401) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.riskAssessments.settings.update({ - enabled: true, - }); - }).rejects.toThrow(Management.UnauthorizedError); - }); - - test("update (4)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { enabled: true }; - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .patch("/risk-assessments/settings") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(403) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.riskAssessments.settings.update({ - enabled: true, - }); - }).rejects.toThrow(Management.ForbiddenError); - }); - - test("update (5)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { enabled: true }; - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .patch("/risk-assessments/settings") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(404) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.riskAssessments.settings.update({ - enabled: true, - }); - }).rejects.toThrow(Management.NotFoundError); - }); - - test("update (6)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { enabled: true }; - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .patch("/risk-assessments/settings") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(429) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.riskAssessments.settings.update({ - enabled: true, - }); - }).rejects.toThrow(Management.TooManyRequestsError); - }); -}); diff --git a/src/management/tests/wire/riskAssessments/settings/newDevice.test.ts b/src/management/tests/wire/riskAssessments/settings/newDevice.test.ts deleted file mode 100644 index 5e3906f1b0..0000000000 --- a/src/management/tests/wire/riskAssessments/settings/newDevice.test.ts +++ /dev/null @@ -1,225 +0,0 @@ -// This file was auto-generated by Fern from our API Definition. - -import { mockServerPool } from "../../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../../Client"; -import * as Management from "../../../../api/index"; - -describe("NewDevice", () => { - test("get (1)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { remember_for: 1 }; - server - .mockEndpoint() - .get("/risk-assessments/settings/new-device") - .respondWith() - .statusCode(200) - .jsonBody(rawResponseBody) - .build(); - - const response = await client.riskAssessments.settings.newDevice.get(); - expect(response).toEqual({ - remember_for: 1, - }); - }); - - test("get (2)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .get("/risk-assessments/settings/new-device") - .respondWith() - .statusCode(401) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.riskAssessments.settings.newDevice.get(); - }).rejects.toThrow(Management.UnauthorizedError); - }); - - test("get (3)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .get("/risk-assessments/settings/new-device") - .respondWith() - .statusCode(403) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.riskAssessments.settings.newDevice.get(); - }).rejects.toThrow(Management.ForbiddenError); - }); - - test("get (4)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .get("/risk-assessments/settings/new-device") - .respondWith() - .statusCode(404) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.riskAssessments.settings.newDevice.get(); - }).rejects.toThrow(Management.NotFoundError); - }); - - test("get (5)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .get("/risk-assessments/settings/new-device") - .respondWith() - .statusCode(429) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.riskAssessments.settings.newDevice.get(); - }).rejects.toThrow(Management.TooManyRequestsError); - }); - - test("update (1)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { remember_for: 1 }; - const rawResponseBody = { remember_for: 1 }; - server - .mockEndpoint() - .patch("/risk-assessments/settings/new-device") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(200) - .jsonBody(rawResponseBody) - .build(); - - const response = await client.riskAssessments.settings.newDevice.update({ - remember_for: 1, - }); - expect(response).toEqual({ - remember_for: 1, - }); - }); - - test("update (2)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { remember_for: 1 }; - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .patch("/risk-assessments/settings/new-device") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(400) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.riskAssessments.settings.newDevice.update({ - remember_for: 1, - }); - }).rejects.toThrow(Management.BadRequestError); - }); - - test("update (3)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { remember_for: 1 }; - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .patch("/risk-assessments/settings/new-device") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(401) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.riskAssessments.settings.newDevice.update({ - remember_for: 1, - }); - }).rejects.toThrow(Management.UnauthorizedError); - }); - - test("update (4)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { remember_for: 1 }; - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .patch("/risk-assessments/settings/new-device") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(403) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.riskAssessments.settings.newDevice.update({ - remember_for: 1, - }); - }).rejects.toThrow(Management.ForbiddenError); - }); - - test("update (5)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { remember_for: 1 }; - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .patch("/risk-assessments/settings/new-device") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(404) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.riskAssessments.settings.newDevice.update({ - remember_for: 1, - }); - }).rejects.toThrow(Management.NotFoundError); - }); - - test("update (6)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { remember_for: 1 }; - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .patch("/risk-assessments/settings/new-device") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(429) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.riskAssessments.settings.newDevice.update({ - remember_for: 1, - }); - }).rejects.toThrow(Management.TooManyRequestsError); - }); -}); diff --git a/src/management/tests/wire/roles.test.ts b/src/management/tests/wire/roles.test.ts index 405529f6bc..e2b0c157b9 100644 --- a/src/management/tests/wire/roles.test.ts +++ b/src/management/tests/wire/roles.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../mock-server/MockServerPool"; -import { ManagementClient } from "../../Client"; import * as Management from "../../api/index"; +import { ManagementClient } from "../../Client"; +import { mockServerPool } from "../mock-server/MockServerPool"; -describe("Roles", () => { +describe("RolesClient", () => { test("list (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { start: 1.1, @@ -15,7 +15,13 @@ describe("Roles", () => { total: 1.1, roles: [{ id: "id", name: "name", description: "description" }], }; - server.mockEndpoint().get("/roles").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/roles") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); const expected = { start: 1.1, @@ -44,10 +50,16 @@ describe("Roles", () => { test("list (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/roles").respondWith().statusCode(400).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/roles") + .respondWith() + .statusCode(400) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.roles.list(); @@ -56,10 +68,16 @@ describe("Roles", () => { test("list (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/roles").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/roles") + .respondWith() + .statusCode(401) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.roles.list(); @@ -68,10 +86,16 @@ describe("Roles", () => { test("list (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/roles").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/roles") + .respondWith() + .statusCode(403) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.roles.list(); @@ -80,10 +104,16 @@ describe("Roles", () => { test("list (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/roles").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/roles") + .respondWith() + .statusCode(429) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.roles.list(); @@ -92,7 +122,7 @@ describe("Roles", () => { test("create (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "name" }; const rawResponseBody = { id: "id", name: "name", description: "description" }; server @@ -116,7 +146,7 @@ describe("Roles", () => { test("create (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "name" }; const rawResponseBody = { key: "value" }; server @@ -137,7 +167,7 @@ describe("Roles", () => { test("create (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "name" }; const rawResponseBody = { key: "value" }; server @@ -158,7 +188,7 @@ describe("Roles", () => { test("create (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "name" }; const rawResponseBody = { key: "value" }; server @@ -179,7 +209,7 @@ describe("Roles", () => { test("create (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "name" }; const rawResponseBody = { key: "value" }; server @@ -200,7 +230,7 @@ describe("Roles", () => { test("get (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { id: "id", name: "name", description: "description" }; server.mockEndpoint().get("/roles/id").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); @@ -215,7 +245,7 @@ describe("Roles", () => { test("get (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/roles/id").respondWith().statusCode(400).jsonBody(rawResponseBody).build(); @@ -227,7 +257,7 @@ describe("Roles", () => { test("get (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/roles/id").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); @@ -239,7 +269,7 @@ describe("Roles", () => { test("get (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/roles/id").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); @@ -251,7 +281,7 @@ describe("Roles", () => { test("get (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/roles/id").respondWith().statusCode(404).jsonBody(rawResponseBody).build(); @@ -263,7 +293,7 @@ describe("Roles", () => { test("get (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/roles/id").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); @@ -275,7 +305,7 @@ describe("Roles", () => { test("delete (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); server.mockEndpoint().delete("/roles/id").respondWith().statusCode(200).build(); @@ -285,7 +315,7 @@ describe("Roles", () => { test("delete (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().delete("/roles/id").respondWith().statusCode(400).jsonBody(rawResponseBody).build(); @@ -297,7 +327,7 @@ describe("Roles", () => { test("delete (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().delete("/roles/id").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); @@ -309,7 +339,7 @@ describe("Roles", () => { test("delete (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().delete("/roles/id").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); @@ -321,7 +351,7 @@ describe("Roles", () => { test("delete (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().delete("/roles/id").respondWith().statusCode(404).jsonBody(rawResponseBody).build(); @@ -333,7 +363,7 @@ describe("Roles", () => { test("delete (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().delete("/roles/id").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); @@ -345,7 +375,7 @@ describe("Roles", () => { test("update (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { id: "id", name: "name", description: "description" }; server @@ -367,7 +397,7 @@ describe("Roles", () => { test("update (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -386,7 +416,7 @@ describe("Roles", () => { test("update (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -405,7 +435,7 @@ describe("Roles", () => { test("update (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -424,7 +454,7 @@ describe("Roles", () => { test("update (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/roles/permissions.test.ts b/src/management/tests/wire/roles/permissions.test.ts index c3d0882d4b..ec56f5cbc2 100644 --- a/src/management/tests/wire/roles/permissions.test.ts +++ b/src/management/tests/wire/roles/permissions.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../Client"; import * as Management from "../../../api/index"; +import { ManagementClient } from "../../../Client"; +import { mockServerPool } from "../../mock-server/MockServerPool"; -describe("Permissions", () => { +describe("PermissionsClient", () => { test("list (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { start: 1.1, @@ -23,7 +23,7 @@ describe("Permissions", () => { ], }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/roles/id/permissions") .respondWith() .statusCode(200) @@ -57,11 +57,11 @@ describe("Permissions", () => { test("list (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/roles/id/permissions") .respondWith() .statusCode(400) @@ -75,11 +75,11 @@ describe("Permissions", () => { test("list (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/roles/id/permissions") .respondWith() .statusCode(401) @@ -93,11 +93,11 @@ describe("Permissions", () => { test("list (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/roles/id/permissions") .respondWith() .statusCode(403) @@ -111,11 +111,11 @@ describe("Permissions", () => { test("list (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/roles/id/permissions") .respondWith() .statusCode(404) @@ -129,11 +129,11 @@ describe("Permissions", () => { test("list (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/roles/id/permissions") .respondWith() .statusCode(429) @@ -147,7 +147,7 @@ describe("Permissions", () => { test("add (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { permissions: [ { resource_server_identifier: "resource_server_identifier", permission_name: "permission_name" }, @@ -175,7 +175,7 @@ describe("Permissions", () => { test("add (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { permissions: [ { resource_server_identifier: "resource_server_identifier", permission_name: "permission_name" }, @@ -210,7 +210,7 @@ describe("Permissions", () => { test("add (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { permissions: [ { resource_server_identifier: "resource_server_identifier", permission_name: "permission_name" }, @@ -245,7 +245,7 @@ describe("Permissions", () => { test("add (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { permissions: [ { resource_server_identifier: "resource_server_identifier", permission_name: "permission_name" }, @@ -280,7 +280,7 @@ describe("Permissions", () => { test("add (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { permissions: [ { resource_server_identifier: "resource_server_identifier", permission_name: "permission_name" }, @@ -315,7 +315,7 @@ describe("Permissions", () => { test("delete (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { permissions: [ { resource_server_identifier: "resource_server_identifier", permission_name: "permission_name" }, @@ -343,7 +343,7 @@ describe("Permissions", () => { test("delete (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { permissions: [ { resource_server_identifier: "resource_server_identifier", permission_name: "permission_name" }, @@ -378,7 +378,7 @@ describe("Permissions", () => { test("delete (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { permissions: [ { resource_server_identifier: "resource_server_identifier", permission_name: "permission_name" }, @@ -413,7 +413,7 @@ describe("Permissions", () => { test("delete (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { permissions: [ { resource_server_identifier: "resource_server_identifier", permission_name: "permission_name" }, @@ -448,7 +448,7 @@ describe("Permissions", () => { test("delete (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { permissions: [ { resource_server_identifier: "resource_server_identifier", permission_name: "permission_name" }, diff --git a/src/management/tests/wire/roles/users.test.ts b/src/management/tests/wire/roles/users.test.ts index 9868446e91..1d4174db41 100644 --- a/src/management/tests/wire/roles/users.test.ts +++ b/src/management/tests/wire/roles/users.test.ts @@ -1,19 +1,25 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../Client"; import * as Management from "../../../api/index"; +import { ManagementClient } from "../../../Client"; +import { mockServerPool } from "../../mock-server/MockServerPool"; -describe("Users", () => { +describe("UsersClient", () => { test("list (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { next: "next", users: [{ user_id: "user_id", picture: "picture", name: "name", email: "email" }], }; - server.mockEndpoint().get("/roles/id/users").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/roles/id/users") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); const expected = { next: "next", @@ -39,10 +45,16 @@ describe("Users", () => { test("list (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/roles/id/users").respondWith().statusCode(400).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/roles/id/users") + .respondWith() + .statusCode(400) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.roles.users.list("id"); @@ -51,10 +63,16 @@ describe("Users", () => { test("list (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/roles/id/users").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/roles/id/users") + .respondWith() + .statusCode(401) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.roles.users.list("id"); @@ -63,10 +81,16 @@ describe("Users", () => { test("list (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/roles/id/users").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/roles/id/users") + .respondWith() + .statusCode(403) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.roles.users.list("id"); @@ -75,10 +99,16 @@ describe("Users", () => { test("list (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/roles/id/users").respondWith().statusCode(404).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/roles/id/users") + .respondWith() + .statusCode(404) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.roles.users.list("id"); @@ -87,10 +117,16 @@ describe("Users", () => { test("list (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/roles/id/users").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/roles/id/users") + .respondWith() + .statusCode(429) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.roles.users.list("id"); @@ -99,7 +135,7 @@ describe("Users", () => { test("assign (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { users: ["users"] }; server.mockEndpoint().post("/roles/id/users").jsonBody(rawRequestBody).respondWith().statusCode(200).build(); @@ -112,7 +148,7 @@ describe("Users", () => { test("assign (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { users: ["users", "users"] }; const rawResponseBody = { key: "value" }; server @@ -133,7 +169,7 @@ describe("Users", () => { test("assign (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { users: ["users", "users"] }; const rawResponseBody = { key: "value" }; server @@ -154,7 +190,7 @@ describe("Users", () => { test("assign (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { users: ["users", "users"] }; const rawResponseBody = { key: "value" }; server @@ -175,7 +211,7 @@ describe("Users", () => { test("assign (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { users: ["users", "users"] }; const rawResponseBody = { key: "value" }; server @@ -196,7 +232,7 @@ describe("Users", () => { test("assign (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { users: ["users", "users"] }; const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/rules.test.ts b/src/management/tests/wire/rules.test.ts index 0743695465..e88ab1893d 100644 --- a/src/management/tests/wire/rules.test.ts +++ b/src/management/tests/wire/rules.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../mock-server/MockServerPool"; -import { ManagementClient } from "../../Client"; import * as Management from "../../api/index"; +import { ManagementClient } from "../../Client"; +import { mockServerPool } from "../mock-server/MockServerPool"; -describe("Rules", () => { +describe("RulesClient", () => { test("list (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { start: 1.1, @@ -15,7 +15,13 @@ describe("Rules", () => { total: 1.1, rules: [{ name: "name", id: "id", enabled: true, script: "script", order: 1.1, stage: "stage" }], }; - server.mockEndpoint().get("/rules").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/rules") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); const expected = { start: 1.1, @@ -49,10 +55,16 @@ describe("Rules", () => { test("list (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/rules").respondWith().statusCode(400).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/rules") + .respondWith() + .statusCode(400) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.rules.list(); @@ -61,10 +73,16 @@ describe("Rules", () => { test("list (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/rules").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/rules") + .respondWith() + .statusCode(401) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.rules.list(); @@ -73,10 +91,16 @@ describe("Rules", () => { test("list (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/rules").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/rules") + .respondWith() + .statusCode(403) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.rules.list(); @@ -85,10 +109,16 @@ describe("Rules", () => { test("list (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/rules").respondWith().statusCode(404).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/rules") + .respondWith() + .statusCode(404) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.rules.list(); @@ -97,10 +127,16 @@ describe("Rules", () => { test("list (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/rules").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/rules") + .respondWith() + .statusCode(429) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.rules.list(); @@ -109,7 +145,7 @@ describe("Rules", () => { test("create (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "name", script: "script" }; const rawResponseBody = { name: "name", id: "id", enabled: true, script: "script", order: 1.1, stage: "stage" }; server @@ -137,7 +173,7 @@ describe("Rules", () => { test("create (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "my-rule", script: "function (user, context, callback) {\n callback(null, user, context);\n}", @@ -162,7 +198,7 @@ describe("Rules", () => { test("create (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "my-rule", script: "function (user, context, callback) {\n callback(null, user, context);\n}", @@ -187,7 +223,7 @@ describe("Rules", () => { test("create (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "my-rule", script: "function (user, context, callback) {\n callback(null, user, context);\n}", @@ -212,7 +248,7 @@ describe("Rules", () => { test("create (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "my-rule", script: "function (user, context, callback) {\n callback(null, user, context);\n}", @@ -237,7 +273,7 @@ describe("Rules", () => { test("create (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "my-rule", script: "function (user, context, callback) {\n callback(null, user, context);\n}", @@ -262,7 +298,7 @@ describe("Rules", () => { test("get (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { name: "name", id: "id", enabled: true, script: "script", order: 1.1, stage: "stage" }; server.mockEndpoint().get("/rules/id").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); @@ -283,7 +319,7 @@ describe("Rules", () => { test("get (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/rules/id").respondWith().statusCode(400).jsonBody(rawResponseBody).build(); @@ -295,7 +331,7 @@ describe("Rules", () => { test("get (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/rules/id").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); @@ -307,7 +343,7 @@ describe("Rules", () => { test("get (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/rules/id").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); @@ -319,7 +355,7 @@ describe("Rules", () => { test("get (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/rules/id").respondWith().statusCode(404).jsonBody(rawResponseBody).build(); @@ -331,7 +367,7 @@ describe("Rules", () => { test("get (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/rules/id").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); @@ -343,7 +379,7 @@ describe("Rules", () => { test("delete (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); server.mockEndpoint().delete("/rules/id").respondWith().statusCode(200).build(); @@ -353,7 +389,7 @@ describe("Rules", () => { test("delete (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().delete("/rules/id").respondWith().statusCode(400).jsonBody(rawResponseBody).build(); @@ -365,7 +401,7 @@ describe("Rules", () => { test("delete (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().delete("/rules/id").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); @@ -377,7 +413,7 @@ describe("Rules", () => { test("delete (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().delete("/rules/id").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); @@ -389,7 +425,7 @@ describe("Rules", () => { test("delete (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().delete("/rules/id").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); @@ -401,7 +437,7 @@ describe("Rules", () => { test("update (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { name: "name", id: "id", enabled: true, script: "script", order: 1.1, stage: "stage" }; server @@ -426,7 +462,7 @@ describe("Rules", () => { test("update (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -445,7 +481,7 @@ describe("Rules", () => { test("update (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -464,7 +500,7 @@ describe("Rules", () => { test("update (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -483,7 +519,7 @@ describe("Rules", () => { test("update (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -502,7 +538,7 @@ describe("Rules", () => { test("update (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -521,7 +557,7 @@ describe("Rules", () => { test("update (7)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/rulesConfigs.test.ts b/src/management/tests/wire/rulesConfigs.test.ts index 7e3354bb47..e458da646b 100644 --- a/src/management/tests/wire/rulesConfigs.test.ts +++ b/src/management/tests/wire/rulesConfigs.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../mock-server/MockServerPool"; -import { ManagementClient } from "../../Client"; import * as Management from "../../api/index"; +import { ManagementClient } from "../../Client"; +import { mockServerPool } from "../mock-server/MockServerPool"; -describe("RulesConfigs", () => { +describe("RulesConfigsClient", () => { test("list (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = [{ key: "key" }]; server.mockEndpoint().get("/rules-configs").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); @@ -22,7 +22,7 @@ describe("RulesConfigs", () => { test("list (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/rules-configs").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); @@ -34,7 +34,7 @@ describe("RulesConfigs", () => { test("list (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/rules-configs").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); @@ -46,7 +46,7 @@ describe("RulesConfigs", () => { test("list (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/rules-configs").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); @@ -58,7 +58,7 @@ describe("RulesConfigs", () => { test("set (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { value: "value" }; const rawResponseBody = { key: "key", value: "value" }; server @@ -81,7 +81,7 @@ describe("RulesConfigs", () => { test("set (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { value: "MY_RULES_CONFIG_VALUE" }; const rawResponseBody = { key: "value" }; server @@ -102,7 +102,7 @@ describe("RulesConfigs", () => { test("set (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { value: "MY_RULES_CONFIG_VALUE" }; const rawResponseBody = { key: "value" }; server @@ -123,7 +123,7 @@ describe("RulesConfigs", () => { test("set (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { value: "MY_RULES_CONFIG_VALUE" }; const rawResponseBody = { key: "value" }; server @@ -144,7 +144,7 @@ describe("RulesConfigs", () => { test("delete (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); server.mockEndpoint().delete("/rules-configs/key").respondWith().statusCode(200).build(); @@ -154,7 +154,7 @@ describe("RulesConfigs", () => { test("delete (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -172,7 +172,7 @@ describe("RulesConfigs", () => { test("delete (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -190,7 +190,7 @@ describe("RulesConfigs", () => { test("delete (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/selfServiceProfiles.test.ts b/src/management/tests/wire/selfServiceProfiles.test.ts index 5f812dd026..83a5ef4608 100644 --- a/src/management/tests/wire/selfServiceProfiles.test.ts +++ b/src/management/tests/wire/selfServiceProfiles.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../mock-server/MockServerPool"; -import { ManagementClient } from "../../Client"; import * as Management from "../../api/index"; +import { ManagementClient } from "../../Client"; +import { mockServerPool } from "../mock-server/MockServerPool"; -describe("SelfServiceProfiles", () => { +describe("SelfServiceProfilesClient", () => { test("list (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { start: 1.1, @@ -22,12 +22,11 @@ describe("SelfServiceProfiles", () => { created_at: "2024-01-15T09:30:00Z", updated_at: "2024-01-15T09:30:00Z", allowed_strategies: ["oidc"], - user_attribute_profile_id: "user_attribute_profile_id", }, ], }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/self-service-profiles") .respondWith() .statusCode(200) @@ -53,7 +52,6 @@ describe("SelfServiceProfiles", () => { created_at: "2024-01-15T09:30:00Z", updated_at: "2024-01-15T09:30:00Z", allowed_strategies: ["oidc"], - user_attribute_profile_id: "user_attribute_profile_id", }, ], }; @@ -71,11 +69,11 @@ describe("SelfServiceProfiles", () => { test("list (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/self-service-profiles") .respondWith() .statusCode(401) @@ -89,11 +87,11 @@ describe("SelfServiceProfiles", () => { test("list (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/self-service-profiles") .respondWith() .statusCode(403) @@ -107,11 +105,11 @@ describe("SelfServiceProfiles", () => { test("list (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/self-service-profiles") .respondWith() .statusCode(429) @@ -125,11 +123,11 @@ describe("SelfServiceProfiles", () => { test("list (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/self-service-profiles") .respondWith() .statusCode(500) @@ -143,7 +141,7 @@ describe("SelfServiceProfiles", () => { test("create (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "name" }; const rawResponseBody = { id: "id", @@ -154,7 +152,6 @@ describe("SelfServiceProfiles", () => { updated_at: "2024-01-15T09:30:00Z", branding: { logo_url: "logo_url", colors: { primary: "primary" } }, allowed_strategies: ["oidc"], - user_attribute_profile_id: "user_attribute_profile_id", }; server .mockEndpoint() @@ -188,13 +185,12 @@ describe("SelfServiceProfiles", () => { }, }, allowed_strategies: ["oidc"], - user_attribute_profile_id: "user_attribute_profile_id", }); }); test("create (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "x" }; const rawResponseBody = { key: "value" }; server @@ -215,7 +211,7 @@ describe("SelfServiceProfiles", () => { test("create (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "x" }; const rawResponseBody = { key: "value" }; server @@ -236,7 +232,7 @@ describe("SelfServiceProfiles", () => { test("create (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "x" }; const rawResponseBody = { key: "value" }; server @@ -257,7 +253,7 @@ describe("SelfServiceProfiles", () => { test("create (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "x" }; const rawResponseBody = { key: "value" }; server @@ -278,7 +274,7 @@ describe("SelfServiceProfiles", () => { test("create (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "x" }; const rawResponseBody = { key: "value" }; server @@ -299,7 +295,7 @@ describe("SelfServiceProfiles", () => { test("create (7)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "x" }; const rawResponseBody = { key: "value" }; server @@ -320,7 +316,7 @@ describe("SelfServiceProfiles", () => { test("get (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { id: "id", @@ -331,7 +327,6 @@ describe("SelfServiceProfiles", () => { updated_at: "2024-01-15T09:30:00Z", branding: { logo_url: "logo_url", colors: { primary: "primary" } }, allowed_strategies: ["oidc"], - user_attribute_profile_id: "user_attribute_profile_id", }; server .mockEndpoint() @@ -362,13 +357,12 @@ describe("SelfServiceProfiles", () => { }, }, allowed_strategies: ["oidc"], - user_attribute_profile_id: "user_attribute_profile_id", }); }); test("get (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -386,7 +380,7 @@ describe("SelfServiceProfiles", () => { test("get (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -404,7 +398,7 @@ describe("SelfServiceProfiles", () => { test("get (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -422,7 +416,7 @@ describe("SelfServiceProfiles", () => { test("get (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -440,7 +434,7 @@ describe("SelfServiceProfiles", () => { test("get (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -458,7 +452,7 @@ describe("SelfServiceProfiles", () => { test("get (7)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -476,7 +470,7 @@ describe("SelfServiceProfiles", () => { test("delete (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); server.mockEndpoint().delete("/self-service-profiles/id").respondWith().statusCode(200).build(); @@ -486,7 +480,7 @@ describe("SelfServiceProfiles", () => { test("delete (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -504,7 +498,7 @@ describe("SelfServiceProfiles", () => { test("delete (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -522,7 +516,7 @@ describe("SelfServiceProfiles", () => { test("delete (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -540,7 +534,7 @@ describe("SelfServiceProfiles", () => { test("delete (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -558,7 +552,7 @@ describe("SelfServiceProfiles", () => { test("delete (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -576,7 +570,7 @@ describe("SelfServiceProfiles", () => { test("update (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { id: "id", @@ -587,7 +581,6 @@ describe("SelfServiceProfiles", () => { updated_at: "2024-01-15T09:30:00Z", branding: { logo_url: "logo_url", colors: { primary: "primary" } }, allowed_strategies: ["oidc"], - user_attribute_profile_id: "user_attribute_profile_id", }; server .mockEndpoint() @@ -619,13 +612,12 @@ describe("SelfServiceProfiles", () => { }, }, allowed_strategies: ["oidc"], - user_attribute_profile_id: "user_attribute_profile_id", }); }); test("update (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -644,7 +636,7 @@ describe("SelfServiceProfiles", () => { test("update (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -663,7 +655,7 @@ describe("SelfServiceProfiles", () => { test("update (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -682,7 +674,7 @@ describe("SelfServiceProfiles", () => { test("update (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -701,7 +693,7 @@ describe("SelfServiceProfiles", () => { test("update (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -720,7 +712,7 @@ describe("SelfServiceProfiles", () => { test("update (7)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/selfServiceProfiles/customText.test.ts b/src/management/tests/wire/selfServiceProfiles/customText.test.ts index d02d07587f..f3473a7fe0 100644 --- a/src/management/tests/wire/selfServiceProfiles/customText.test.ts +++ b/src/management/tests/wire/selfServiceProfiles/customText.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../Client"; import * as Management from "../../../api/index"; +import { ManagementClient } from "../../../Client"; +import { mockServerPool } from "../../mock-server/MockServerPool"; -describe("CustomText", () => { +describe("CustomTextClient", () => { test("list (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -26,7 +26,7 @@ describe("CustomText", () => { test("list (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -44,7 +44,7 @@ describe("CustomText", () => { test("list (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -62,7 +62,7 @@ describe("CustomText", () => { test("list (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -80,7 +80,7 @@ describe("CustomText", () => { test("list (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -98,7 +98,7 @@ describe("CustomText", () => { test("set (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { key: "value" }; const rawResponseBody = { key: "value" }; server @@ -120,8 +120,8 @@ describe("CustomText", () => { test("set (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { string: "string" }; + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); + const rawRequestBody = { string: { key: "value" } }; const rawResponseBody = { key: "value" }; server .mockEndpoint() @@ -134,15 +134,17 @@ describe("CustomText", () => { await expect(async () => { return await client.selfServiceProfiles.customText.set("id", "en", "get-started", { - string: "string", + string: { + key: "value", + }, }); }).rejects.toThrow(Management.UnauthorizedError); }); test("set (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { string: "string" }; + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); + const rawRequestBody = { string: { key: "value" } }; const rawResponseBody = { key: "value" }; server .mockEndpoint() @@ -155,15 +157,17 @@ describe("CustomText", () => { await expect(async () => { return await client.selfServiceProfiles.customText.set("id", "en", "get-started", { - string: "string", + string: { + key: "value", + }, }); }).rejects.toThrow(Management.ForbiddenError); }); test("set (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { string: "string" }; + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); + const rawRequestBody = { string: { key: "value" } }; const rawResponseBody = { key: "value" }; server .mockEndpoint() @@ -176,15 +180,17 @@ describe("CustomText", () => { await expect(async () => { return await client.selfServiceProfiles.customText.set("id", "en", "get-started", { - string: "string", + string: { + key: "value", + }, }); }).rejects.toThrow(Management.NotFoundError); }); test("set (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { string: "string" }; + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); + const rawRequestBody = { string: { key: "value" } }; const rawResponseBody = { key: "value" }; server .mockEndpoint() @@ -197,7 +203,9 @@ describe("CustomText", () => { await expect(async () => { return await client.selfServiceProfiles.customText.set("id", "en", "get-started", { - string: "string", + string: { + key: "value", + }, }); }).rejects.toThrow(Management.TooManyRequestsError); }); diff --git a/src/management/tests/wire/selfServiceProfiles/ssoTicket.test.ts b/src/management/tests/wire/selfServiceProfiles/ssoTicket.test.ts index 8be7531488..dcdb912163 100644 --- a/src/management/tests/wire/selfServiceProfiles/ssoTicket.test.ts +++ b/src/management/tests/wire/selfServiceProfiles/ssoTicket.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../Client"; import * as Management from "../../../api/index"; +import { ManagementClient } from "../../../Client"; +import { mockServerPool } from "../../mock-server/MockServerPool"; -describe("SsoTicket", () => { +describe("SsoTicketClient", () => { test("create (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { ticket: "ticket" }; server @@ -27,7 +27,7 @@ describe("SsoTicket", () => { test("create (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -46,7 +46,7 @@ describe("SsoTicket", () => { test("create (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -65,7 +65,7 @@ describe("SsoTicket", () => { test("create (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -84,7 +84,7 @@ describe("SsoTicket", () => { test("create (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -103,7 +103,7 @@ describe("SsoTicket", () => { test("revoke (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); server .mockEndpoint() @@ -118,7 +118,7 @@ describe("SsoTicket", () => { test("revoke (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -136,7 +136,7 @@ describe("SsoTicket", () => { test("revoke (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -154,7 +154,7 @@ describe("SsoTicket", () => { test("revoke (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/sessions.test.ts b/src/management/tests/wire/sessions.test.ts index 5b96509b50..93de041a9e 100644 --- a/src/management/tests/wire/sessions.test.ts +++ b/src/management/tests/wire/sessions.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../mock-server/MockServerPool"; -import { ManagementClient } from "../../Client"; import * as Management from "../../api/index"; +import { ManagementClient } from "../../Client"; +import { mockServerPool } from "../mock-server/MockServerPool"; -describe("Sessions", () => { +describe("SessionsClient", () => { test("get (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { id: "id", @@ -29,7 +29,6 @@ describe("Sessions", () => { clients: [{ client_id: "client_id" }], authentication: { methods: [{}] }, cookie: { mode: "non-persistent" }, - session_metadata: { key: "value" }, }; server.mockEndpoint().get("/sessions/id").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); @@ -62,15 +61,12 @@ describe("Sessions", () => { cookie: { mode: "non-persistent", }, - session_metadata: { - key: "value", - }, }); }); test("get (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/sessions/id").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); @@ -82,7 +78,7 @@ describe("Sessions", () => { test("get (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/sessions/id").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); @@ -94,7 +90,7 @@ describe("Sessions", () => { test("get (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/sessions/id").respondWith().statusCode(404).jsonBody(rawResponseBody).build(); @@ -106,7 +102,7 @@ describe("Sessions", () => { test("get (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/sessions/id").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); @@ -118,7 +114,7 @@ describe("Sessions", () => { test("delete (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); server.mockEndpoint().delete("/sessions/id").respondWith().statusCode(200).build(); @@ -128,7 +124,7 @@ describe("Sessions", () => { test("delete (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().delete("/sessions/id").respondWith().statusCode(400).jsonBody(rawResponseBody).build(); @@ -140,7 +136,7 @@ describe("Sessions", () => { test("delete (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().delete("/sessions/id").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); @@ -152,7 +148,7 @@ describe("Sessions", () => { test("delete (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().delete("/sessions/id").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); @@ -164,7 +160,7 @@ describe("Sessions", () => { test("delete (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().delete("/sessions/id").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); @@ -174,174 +170,9 @@ describe("Sessions", () => { }).rejects.toThrow(Management.TooManyRequestsError); }); - test("update (1)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = {}; - const rawResponseBody = { - id: "id", - user_id: "user_id", - created_at: "2024-01-15T09:30:00Z", - updated_at: "2024-01-15T09:30:00Z", - authenticated_at: "2024-01-15T09:30:00Z", - idle_expires_at: "2024-01-15T09:30:00Z", - expires_at: "2024-01-15T09:30:00Z", - last_interacted_at: "2024-01-15T09:30:00Z", - device: { - initial_user_agent: "initial_user_agent", - initial_ip: "initial_ip", - initial_asn: "initial_asn", - last_user_agent: "last_user_agent", - last_ip: "last_ip", - last_asn: "last_asn", - }, - clients: [{ client_id: "client_id" }], - authentication: { methods: [{}] }, - cookie: { mode: "non-persistent" }, - session_metadata: { key: "value" }, - }; - server - .mockEndpoint() - .patch("/sessions/id") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(200) - .jsonBody(rawResponseBody) - .build(); - - const response = await client.sessions.update("id"); - expect(response).toEqual({ - id: "id", - user_id: "user_id", - created_at: "2024-01-15T09:30:00Z", - updated_at: "2024-01-15T09:30:00Z", - authenticated_at: "2024-01-15T09:30:00Z", - idle_expires_at: "2024-01-15T09:30:00Z", - expires_at: "2024-01-15T09:30:00Z", - last_interacted_at: "2024-01-15T09:30:00Z", - device: { - initial_user_agent: "initial_user_agent", - initial_ip: "initial_ip", - initial_asn: "initial_asn", - last_user_agent: "last_user_agent", - last_ip: "last_ip", - last_asn: "last_asn", - }, - clients: [ - { - client_id: "client_id", - }, - ], - authentication: { - methods: [{}], - }, - cookie: { - mode: "non-persistent", - }, - session_metadata: { - key: "value", - }, - }); - }); - - test("update (2)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = {}; - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .patch("/sessions/id") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(400) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.sessions.update("id"); - }).rejects.toThrow(Management.BadRequestError); - }); - - test("update (3)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = {}; - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .patch("/sessions/id") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(401) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.sessions.update("id"); - }).rejects.toThrow(Management.UnauthorizedError); - }); - - test("update (4)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = {}; - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .patch("/sessions/id") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(403) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.sessions.update("id"); - }).rejects.toThrow(Management.ForbiddenError); - }); - - test("update (5)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = {}; - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .patch("/sessions/id") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(404) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.sessions.update("id"); - }).rejects.toThrow(Management.NotFoundError); - }); - - test("update (6)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = {}; - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .patch("/sessions/id") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(429) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.sessions.update("id"); - }).rejects.toThrow(Management.TooManyRequestsError); - }); - test("revoke (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); server.mockEndpoint().post("/sessions/id/revoke").respondWith().statusCode(200).build(); @@ -351,7 +182,7 @@ describe("Sessions", () => { test("revoke (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -369,7 +200,7 @@ describe("Sessions", () => { test("revoke (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -387,7 +218,7 @@ describe("Sessions", () => { test("revoke (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -405,7 +236,7 @@ describe("Sessions", () => { test("revoke (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -423,7 +254,7 @@ describe("Sessions", () => { test("revoke (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/stats.test.ts b/src/management/tests/wire/stats.test.ts index bb2d20788a..aa85086410 100644 --- a/src/management/tests/wire/stats.test.ts +++ b/src/management/tests/wire/stats.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../mock-server/MockServerPool"; -import { ManagementClient } from "../../Client"; import * as Management from "../../api/index"; +import { ManagementClient } from "../../Client"; +import { mockServerPool } from "../mock-server/MockServerPool"; -describe("Stats", () => { +describe("StatsClient", () => { test("getActiveUsersCount (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = 1.1; server @@ -24,7 +24,7 @@ describe("Stats", () => { test("getActiveUsersCount (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -42,7 +42,7 @@ describe("Stats", () => { test("getActiveUsersCount (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -60,7 +60,7 @@ describe("Stats", () => { test("getActiveUsersCount (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -78,7 +78,7 @@ describe("Stats", () => { test("getDaily (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = [ { @@ -110,7 +110,7 @@ describe("Stats", () => { test("getDaily (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/stats/daily").respondWith().statusCode(400).jsonBody(rawResponseBody).build(); @@ -122,7 +122,7 @@ describe("Stats", () => { test("getDaily (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/stats/daily").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); @@ -134,7 +134,7 @@ describe("Stats", () => { test("getDaily (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/stats/daily").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); @@ -146,7 +146,7 @@ describe("Stats", () => { test("getDaily (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/stats/daily").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); diff --git a/src/management/tests/wire/supplementalSignals.test.ts b/src/management/tests/wire/supplementalSignals.test.ts index 6339f05e56..3c3ca1ec99 100644 --- a/src/management/tests/wire/supplementalSignals.test.ts +++ b/src/management/tests/wire/supplementalSignals.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../mock-server/MockServerPool"; -import { ManagementClient } from "../../Client"; import * as Management from "../../api/index"; +import { ManagementClient } from "../../Client"; +import { mockServerPool } from "../mock-server/MockServerPool"; -describe("SupplementalSignals", () => { +describe("SupplementalSignalsClient", () => { test("get (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { akamai_enabled: true }; server @@ -26,7 +26,7 @@ describe("SupplementalSignals", () => { test("get (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -44,7 +44,7 @@ describe("SupplementalSignals", () => { test("get (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -62,7 +62,7 @@ describe("SupplementalSignals", () => { test("get (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -80,7 +80,7 @@ describe("SupplementalSignals", () => { test("get (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -98,7 +98,7 @@ describe("SupplementalSignals", () => { test("patch (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { akamai_enabled: true }; const rawResponseBody = { akamai_enabled: true }; server @@ -120,7 +120,7 @@ describe("SupplementalSignals", () => { test("patch (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { akamai_enabled: true }; const rawResponseBody = { key: "value" }; server @@ -141,7 +141,7 @@ describe("SupplementalSignals", () => { test("patch (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { akamai_enabled: true }; const rawResponseBody = { key: "value" }; server @@ -162,7 +162,7 @@ describe("SupplementalSignals", () => { test("patch (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { akamai_enabled: true }; const rawResponseBody = { key: "value" }; server @@ -183,7 +183,7 @@ describe("SupplementalSignals", () => { test("patch (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { akamai_enabled: true }; const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/tenants/settings.test.ts b/src/management/tests/wire/tenants/settings.test.ts index efde20a842..d2e8c2d70f 100644 --- a/src/management/tests/wire/tenants/settings.test.ts +++ b/src/management/tests/wire/tenants/settings.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../Client"; import * as Management from "../../../api/index"; +import { ManagementClient } from "../../../Client"; +import { mockServerPool } from "../../mock-server/MockServerPool"; -describe("Settings", () => { +describe("SettingsClient", () => { test("get (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { change_password: { enabled: true, html: "html" }, @@ -71,7 +71,6 @@ describe("Settings", () => { mtls: { enable_endpoint_aliases: true }, pushed_authorization_requests_supported: true, authorization_response_iss_parameter_supported: true, - skip_non_verifiable_callback_uri_confirmation_prompt: true, }; server.mockEndpoint().get("/tenants/settings").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); @@ -169,13 +168,12 @@ describe("Settings", () => { }, pushed_authorization_requests_supported: true, authorization_response_iss_parameter_supported: true, - skip_non_verifiable_callback_uri_confirmation_prompt: true, }); }); test("get (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/tenants/settings").respondWith().statusCode(400).jsonBody(rawResponseBody).build(); @@ -187,7 +185,7 @@ describe("Settings", () => { test("get (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/tenants/settings").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); @@ -199,7 +197,7 @@ describe("Settings", () => { test("get (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/tenants/settings").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); @@ -211,7 +209,7 @@ describe("Settings", () => { test("get (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/tenants/settings").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); @@ -223,7 +221,7 @@ describe("Settings", () => { test("update (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { change_password: { enabled: true, html: "html" }, @@ -287,7 +285,6 @@ describe("Settings", () => { mtls: { enable_endpoint_aliases: true }, pushed_authorization_requests_supported: true, authorization_response_iss_parameter_supported: true, - skip_non_verifiable_callback_uri_confirmation_prompt: true, }; server .mockEndpoint() @@ -389,13 +386,12 @@ describe("Settings", () => { }, pushed_authorization_requests_supported: true, authorization_response_iss_parameter_supported: true, - skip_non_verifiable_callback_uri_confirmation_prompt: true, }); }); test("update (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -414,7 +410,7 @@ describe("Settings", () => { test("update (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -433,7 +429,7 @@ describe("Settings", () => { test("update (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -452,7 +448,7 @@ describe("Settings", () => { test("update (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/tickets.test.ts b/src/management/tests/wire/tickets.test.ts index 665d789d52..ae978bd9fa 100644 --- a/src/management/tests/wire/tickets.test.ts +++ b/src/management/tests/wire/tickets.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../mock-server/MockServerPool"; -import { ManagementClient } from "../../Client"; import * as Management from "../../api/index"; +import { ManagementClient } from "../../Client"; +import { mockServerPool } from "../mock-server/MockServerPool"; -describe("Tickets", () => { +describe("TicketsClient", () => { test("verifyEmail (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { user_id: "user_id" }; const rawResponseBody = { ticket: "ticket" }; server @@ -29,7 +29,7 @@ describe("Tickets", () => { test("verifyEmail (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { user_id: "user_id" }; const rawResponseBody = { key: "value" }; server @@ -50,7 +50,7 @@ describe("Tickets", () => { test("verifyEmail (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { user_id: "user_id" }; const rawResponseBody = { key: "value" }; server @@ -71,7 +71,7 @@ describe("Tickets", () => { test("verifyEmail (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { user_id: "user_id" }; const rawResponseBody = { key: "value" }; server @@ -92,7 +92,7 @@ describe("Tickets", () => { test("verifyEmail (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { user_id: "user_id" }; const rawResponseBody = { key: "value" }; server @@ -113,7 +113,7 @@ describe("Tickets", () => { test("verifyEmail (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { user_id: "user_id" }; const rawResponseBody = { key: "value" }; server @@ -134,7 +134,7 @@ describe("Tickets", () => { test("changePassword (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { ticket: "ticket" }; server @@ -154,7 +154,7 @@ describe("Tickets", () => { test("changePassword (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -173,7 +173,7 @@ describe("Tickets", () => { test("changePassword (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -192,7 +192,7 @@ describe("Tickets", () => { test("changePassword (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -211,7 +211,7 @@ describe("Tickets", () => { test("changePassword (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -230,7 +230,7 @@ describe("Tickets", () => { test("changePassword (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/tokenExchangeProfiles.test.ts b/src/management/tests/wire/tokenExchangeProfiles.test.ts index 014ff2eb4c..ad4952c6d9 100644 --- a/src/management/tests/wire/tokenExchangeProfiles.test.ts +++ b/src/management/tests/wire/tokenExchangeProfiles.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../mock-server/MockServerPool"; -import { ManagementClient } from "../../Client"; import * as Management from "../../api/index"; +import { ManagementClient } from "../../Client"; +import { mockServerPool } from "../mock-server/MockServerPool"; -describe("TokenExchangeProfiles", () => { +describe("TokenExchangeProfilesClient", () => { test("list (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { next: "next", @@ -24,7 +24,7 @@ describe("TokenExchangeProfiles", () => { ], }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/token-exchange-profiles") .respondWith() .statusCode(200) @@ -58,11 +58,11 @@ describe("TokenExchangeProfiles", () => { test("list (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/token-exchange-profiles") .respondWith() .statusCode(400) @@ -76,11 +76,11 @@ describe("TokenExchangeProfiles", () => { test("list (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/token-exchange-profiles") .respondWith() .statusCode(401) @@ -94,11 +94,11 @@ describe("TokenExchangeProfiles", () => { test("list (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/token-exchange-profiles") .respondWith() .statusCode(403) @@ -112,11 +112,11 @@ describe("TokenExchangeProfiles", () => { test("list (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/token-exchange-profiles") .respondWith() .statusCode(429) @@ -130,7 +130,7 @@ describe("TokenExchangeProfiles", () => { test("create (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "name", subject_token_type: "subject_token_type", @@ -173,7 +173,7 @@ describe("TokenExchangeProfiles", () => { test("create (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "Token Exchange Profile 1", subject_token_type: "mandarin", @@ -201,7 +201,7 @@ describe("TokenExchangeProfiles", () => { test("create (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "Token Exchange Profile 1", subject_token_type: "mandarin", @@ -229,7 +229,7 @@ describe("TokenExchangeProfiles", () => { test("create (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "Token Exchange Profile 1", subject_token_type: "mandarin", @@ -257,7 +257,7 @@ describe("TokenExchangeProfiles", () => { test("create (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "Token Exchange Profile 1", subject_token_type: "mandarin", @@ -285,7 +285,7 @@ describe("TokenExchangeProfiles", () => { test("create (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "Token Exchange Profile 1", subject_token_type: "mandarin", @@ -313,7 +313,7 @@ describe("TokenExchangeProfiles", () => { test("get (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { id: "id", @@ -346,7 +346,7 @@ describe("TokenExchangeProfiles", () => { test("get (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -364,7 +364,7 @@ describe("TokenExchangeProfiles", () => { test("get (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -382,7 +382,7 @@ describe("TokenExchangeProfiles", () => { test("get (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -400,7 +400,7 @@ describe("TokenExchangeProfiles", () => { test("get (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -418,7 +418,7 @@ describe("TokenExchangeProfiles", () => { test("get (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -436,7 +436,7 @@ describe("TokenExchangeProfiles", () => { test("delete (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); server.mockEndpoint().delete("/token-exchange-profiles/id").respondWith().statusCode(200).build(); @@ -446,7 +446,7 @@ describe("TokenExchangeProfiles", () => { test("delete (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -464,7 +464,7 @@ describe("TokenExchangeProfiles", () => { test("delete (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -482,7 +482,7 @@ describe("TokenExchangeProfiles", () => { test("delete (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -500,7 +500,7 @@ describe("TokenExchangeProfiles", () => { test("update (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; server @@ -517,7 +517,7 @@ describe("TokenExchangeProfiles", () => { test("update (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -536,7 +536,7 @@ describe("TokenExchangeProfiles", () => { test("update (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -555,7 +555,7 @@ describe("TokenExchangeProfiles", () => { test("update (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -574,7 +574,7 @@ describe("TokenExchangeProfiles", () => { test("update (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -593,7 +593,7 @@ describe("TokenExchangeProfiles", () => { test("update (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/userAttributeProfiles.test.ts b/src/management/tests/wire/userAttributeProfiles.test.ts deleted file mode 100644 index 79360a42b9..0000000000 --- a/src/management/tests/wire/userAttributeProfiles.test.ts +++ /dev/null @@ -1,900 +0,0 @@ -// This file was auto-generated by Fern from our API Definition. - -import { mockServerPool } from "../mock-server/MockServerPool"; -import { ManagementClient } from "../../Client"; -import * as Management from "../../api/index"; - -describe("UserAttributeProfiles", () => { - test("list (1)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { - next: "next", - user_attribute_profiles: [ - { - id: "id", - name: "name", - user_attributes: { - key: { - description: "description", - label: "label", - profile_required: true, - auth0_mapping: "auth0_mapping", - }, - }, - }, - ], - }; - server - .mockEndpoint() - .get("/user-attribute-profiles") - .respondWith() - .statusCode(200) - .jsonBody(rawResponseBody) - .build(); - - const expected = { - next: "next", - user_attribute_profiles: [ - { - id: "id", - name: "name", - user_attributes: { - key: { - description: "description", - label: "label", - profile_required: true, - auth0_mapping: "auth0_mapping", - }, - }, - }, - ], - }; - const page = await client.userAttributeProfiles.list({ - from: "from", - take: 1, - }); - - expect(expected.user_attribute_profiles).toEqual(page.data); - expect(page.hasNextPage()).toBe(true); - const nextPage = await page.getNextPage(); - expect(expected.user_attribute_profiles).toEqual(nextPage.data); - }); - - test("list (2)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .get("/user-attribute-profiles") - .respondWith() - .statusCode(400) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.userAttributeProfiles.list(); - }).rejects.toThrow(Management.BadRequestError); - }); - - test("list (3)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .get("/user-attribute-profiles") - .respondWith() - .statusCode(401) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.userAttributeProfiles.list(); - }).rejects.toThrow(Management.UnauthorizedError); - }); - - test("list (4)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .get("/user-attribute-profiles") - .respondWith() - .statusCode(403) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.userAttributeProfiles.list(); - }).rejects.toThrow(Management.ForbiddenError); - }); - - test("list (5)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .get("/user-attribute-profiles") - .respondWith() - .statusCode(429) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.userAttributeProfiles.list(); - }).rejects.toThrow(Management.TooManyRequestsError); - }); - - test("create (1)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { - name: "name", - user_attributes: { - key: { - description: "description", - label: "label", - profile_required: true, - auth0_mapping: "auth0_mapping", - }, - }, - }; - const rawResponseBody = { - id: "id", - name: "name", - user_id: { oidc_mapping: "sub", saml_mapping: ["saml_mapping"], scim_mapping: "scim_mapping" }, - user_attributes: { - key: { - description: "description", - label: "label", - profile_required: true, - auth0_mapping: "auth0_mapping", - oidc_mapping: { mapping: "mapping" }, - saml_mapping: ["saml_mapping"], - scim_mapping: "scim_mapping", - }, - }, - }; - server - .mockEndpoint() - .post("/user-attribute-profiles") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(200) - .jsonBody(rawResponseBody) - .build(); - - const response = await client.userAttributeProfiles.create({ - name: "name", - user_attributes: { - key: { - description: "description", - label: "label", - profile_required: true, - auth0_mapping: "auth0_mapping", - }, - }, - }); - expect(response).toEqual({ - id: "id", - name: "name", - user_id: { - oidc_mapping: "sub", - saml_mapping: ["saml_mapping"], - scim_mapping: "scim_mapping", - }, - user_attributes: { - key: { - description: "description", - label: "label", - profile_required: true, - auth0_mapping: "auth0_mapping", - oidc_mapping: { - mapping: "mapping", - }, - saml_mapping: ["saml_mapping"], - scim_mapping: "scim_mapping", - }, - }, - }); - }); - - test("create (2)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { - name: "x", - user_attributes: { - user_attributes: { description: "x", label: "x", profile_required: true, auth0_mapping: "x" }, - }, - }; - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .post("/user-attribute-profiles") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(400) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.userAttributeProfiles.create({ - name: "x", - user_attributes: { - user_attributes: { - description: "x", - label: "x", - profile_required: true, - auth0_mapping: "x", - }, - }, - }); - }).rejects.toThrow(Management.BadRequestError); - }); - - test("create (3)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { - name: "x", - user_attributes: { - user_attributes: { description: "x", label: "x", profile_required: true, auth0_mapping: "x" }, - }, - }; - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .post("/user-attribute-profiles") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(401) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.userAttributeProfiles.create({ - name: "x", - user_attributes: { - user_attributes: { - description: "x", - label: "x", - profile_required: true, - auth0_mapping: "x", - }, - }, - }); - }).rejects.toThrow(Management.UnauthorizedError); - }); - - test("create (4)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { - name: "x", - user_attributes: { - user_attributes: { description: "x", label: "x", profile_required: true, auth0_mapping: "x" }, - }, - }; - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .post("/user-attribute-profiles") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(403) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.userAttributeProfiles.create({ - name: "x", - user_attributes: { - user_attributes: { - description: "x", - label: "x", - profile_required: true, - auth0_mapping: "x", - }, - }, - }); - }).rejects.toThrow(Management.ForbiddenError); - }); - - test("create (5)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { - name: "x", - user_attributes: { - user_attributes: { description: "x", label: "x", profile_required: true, auth0_mapping: "x" }, - }, - }; - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .post("/user-attribute-profiles") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(409) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.userAttributeProfiles.create({ - name: "x", - user_attributes: { - user_attributes: { - description: "x", - label: "x", - profile_required: true, - auth0_mapping: "x", - }, - }, - }); - }).rejects.toThrow(Management.ConflictError); - }); - - test("create (6)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { - name: "x", - user_attributes: { - user_attributes: { description: "x", label: "x", profile_required: true, auth0_mapping: "x" }, - }, - }; - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .post("/user-attribute-profiles") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(429) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.userAttributeProfiles.create({ - name: "x", - user_attributes: { - user_attributes: { - description: "x", - label: "x", - profile_required: true, - auth0_mapping: "x", - }, - }, - }); - }).rejects.toThrow(Management.TooManyRequestsError); - }); - - test("listTemplates (1)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { user_attribute_profile_templates: [{ id: "id", display_name: "display_name" }] }; - server - .mockEndpoint() - .get("/user-attribute-profiles/templates") - .respondWith() - .statusCode(200) - .jsonBody(rawResponseBody) - .build(); - - const response = await client.userAttributeProfiles.listTemplates(); - expect(response).toEqual({ - user_attribute_profile_templates: [ - { - id: "id", - display_name: "display_name", - }, - ], - }); - }); - - test("listTemplates (2)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .get("/user-attribute-profiles/templates") - .respondWith() - .statusCode(401) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.userAttributeProfiles.listTemplates(); - }).rejects.toThrow(Management.UnauthorizedError); - }); - - test("listTemplates (3)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .get("/user-attribute-profiles/templates") - .respondWith() - .statusCode(403) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.userAttributeProfiles.listTemplates(); - }).rejects.toThrow(Management.ForbiddenError); - }); - - test("listTemplates (4)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .get("/user-attribute-profiles/templates") - .respondWith() - .statusCode(429) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.userAttributeProfiles.listTemplates(); - }).rejects.toThrow(Management.TooManyRequestsError); - }); - - test("getTemplate (1)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { - id: "id", - display_name: "display_name", - template: { - name: "name", - user_id: { oidc_mapping: "sub", saml_mapping: ["saml_mapping"], scim_mapping: "scim_mapping" }, - user_attributes: { - key: { - description: "description", - label: "label", - profile_required: true, - auth0_mapping: "auth0_mapping", - }, - }, - }, - }; - server - .mockEndpoint() - .get("/user-attribute-profiles/templates/id") - .respondWith() - .statusCode(200) - .jsonBody(rawResponseBody) - .build(); - - const response = await client.userAttributeProfiles.getTemplate("id"); - expect(response).toEqual({ - id: "id", - display_name: "display_name", - template: { - name: "name", - user_id: { - oidc_mapping: "sub", - saml_mapping: ["saml_mapping"], - scim_mapping: "scim_mapping", - }, - user_attributes: { - key: { - description: "description", - label: "label", - profile_required: true, - auth0_mapping: "auth0_mapping", - }, - }, - }, - }); - }); - - test("getTemplate (2)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .get("/user-attribute-profiles/templates/id") - .respondWith() - .statusCode(401) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.userAttributeProfiles.getTemplate("id"); - }).rejects.toThrow(Management.UnauthorizedError); - }); - - test("getTemplate (3)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .get("/user-attribute-profiles/templates/id") - .respondWith() - .statusCode(403) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.userAttributeProfiles.getTemplate("id"); - }).rejects.toThrow(Management.ForbiddenError); - }); - - test("getTemplate (4)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .get("/user-attribute-profiles/templates/id") - .respondWith() - .statusCode(404) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.userAttributeProfiles.getTemplate("id"); - }).rejects.toThrow(Management.NotFoundError); - }); - - test("getTemplate (5)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .get("/user-attribute-profiles/templates/id") - .respondWith() - .statusCode(429) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.userAttributeProfiles.getTemplate("id"); - }).rejects.toThrow(Management.TooManyRequestsError); - }); - - test("get (1)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { - id: "id", - name: "name", - user_id: { oidc_mapping: "sub", saml_mapping: ["saml_mapping"], scim_mapping: "scim_mapping" }, - user_attributes: { - key: { - description: "description", - label: "label", - profile_required: true, - auth0_mapping: "auth0_mapping", - oidc_mapping: { mapping: "mapping" }, - saml_mapping: ["saml_mapping"], - scim_mapping: "scim_mapping", - }, - }, - }; - server - .mockEndpoint() - .get("/user-attribute-profiles/id") - .respondWith() - .statusCode(200) - .jsonBody(rawResponseBody) - .build(); - - const response = await client.userAttributeProfiles.get("id"); - expect(response).toEqual({ - id: "id", - name: "name", - user_id: { - oidc_mapping: "sub", - saml_mapping: ["saml_mapping"], - scim_mapping: "scim_mapping", - }, - user_attributes: { - key: { - description: "description", - label: "label", - profile_required: true, - auth0_mapping: "auth0_mapping", - oidc_mapping: { - mapping: "mapping", - }, - saml_mapping: ["saml_mapping"], - scim_mapping: "scim_mapping", - }, - }, - }); - }); - - test("get (2)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .get("/user-attribute-profiles/id") - .respondWith() - .statusCode(401) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.userAttributeProfiles.get("id"); - }).rejects.toThrow(Management.UnauthorizedError); - }); - - test("get (3)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .get("/user-attribute-profiles/id") - .respondWith() - .statusCode(403) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.userAttributeProfiles.get("id"); - }).rejects.toThrow(Management.ForbiddenError); - }); - - test("get (4)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .get("/user-attribute-profiles/id") - .respondWith() - .statusCode(404) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.userAttributeProfiles.get("id"); - }).rejects.toThrow(Management.NotFoundError); - }); - - test("get (5)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .get("/user-attribute-profiles/id") - .respondWith() - .statusCode(429) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.userAttributeProfiles.get("id"); - }).rejects.toThrow(Management.TooManyRequestsError); - }); - - test("delete (1)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - server.mockEndpoint().delete("/user-attribute-profiles/id").respondWith().statusCode(200).build(); - - const response = await client.userAttributeProfiles.delete("id"); - expect(response).toEqual(undefined); - }); - - test("delete (2)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .delete("/user-attribute-profiles/id") - .respondWith() - .statusCode(401) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.userAttributeProfiles.delete("id"); - }).rejects.toThrow(Management.UnauthorizedError); - }); - - test("delete (3)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .delete("/user-attribute-profiles/id") - .respondWith() - .statusCode(403) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.userAttributeProfiles.delete("id"); - }).rejects.toThrow(Management.ForbiddenError); - }); - - test("delete (4)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .delete("/user-attribute-profiles/id") - .respondWith() - .statusCode(429) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.userAttributeProfiles.delete("id"); - }).rejects.toThrow(Management.TooManyRequestsError); - }); - - test("update (1)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = {}; - const rawResponseBody = { - id: "id", - name: "name", - user_id: { oidc_mapping: "sub", saml_mapping: ["saml_mapping"], scim_mapping: "scim_mapping" }, - user_attributes: { - key: { - description: "description", - label: "label", - profile_required: true, - auth0_mapping: "auth0_mapping", - oidc_mapping: { mapping: "mapping" }, - saml_mapping: ["saml_mapping"], - scim_mapping: "scim_mapping", - }, - }, - }; - server - .mockEndpoint() - .patch("/user-attribute-profiles/id") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(200) - .jsonBody(rawResponseBody) - .build(); - - const response = await client.userAttributeProfiles.update("id"); - expect(response).toEqual({ - id: "id", - name: "name", - user_id: { - oidc_mapping: "sub", - saml_mapping: ["saml_mapping"], - scim_mapping: "scim_mapping", - }, - user_attributes: { - key: { - description: "description", - label: "label", - profile_required: true, - auth0_mapping: "auth0_mapping", - oidc_mapping: { - mapping: "mapping", - }, - saml_mapping: ["saml_mapping"], - scim_mapping: "scim_mapping", - }, - }, - }); - }); - - test("update (2)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = {}; - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .patch("/user-attribute-profiles/id") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(400) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.userAttributeProfiles.update("id"); - }).rejects.toThrow(Management.BadRequestError); - }); - - test("update (3)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = {}; - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .patch("/user-attribute-profiles/id") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(401) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.userAttributeProfiles.update("id"); - }).rejects.toThrow(Management.UnauthorizedError); - }); - - test("update (4)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = {}; - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .patch("/user-attribute-profiles/id") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(403) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.userAttributeProfiles.update("id"); - }).rejects.toThrow(Management.ForbiddenError); - }); - - test("update (5)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = {}; - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .patch("/user-attribute-profiles/id") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(429) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.userAttributeProfiles.update("id"); - }).rejects.toThrow(Management.TooManyRequestsError); - }); -}); diff --git a/src/management/tests/wire/userBlocks.test.ts b/src/management/tests/wire/userBlocks.test.ts index 1ea9da4fff..957a5edf6a 100644 --- a/src/management/tests/wire/userBlocks.test.ts +++ b/src/management/tests/wire/userBlocks.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../mock-server/MockServerPool"; -import { ManagementClient } from "../../Client"; import * as Management from "../../api/index"; +import { ManagementClient } from "../../Client"; +import { mockServerPool } from "../mock-server/MockServerPool"; -describe("UserBlocks", () => { +describe("UserBlocksClient", () => { test("listByIdentifier (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { blocked_for: [{ identifier: "identifier", ip: "ip", connection: "connection" }] }; server.mockEndpoint().get("/user-blocks").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); @@ -29,7 +29,7 @@ describe("UserBlocks", () => { test("listByIdentifier (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/user-blocks").respondWith().statusCode(400).jsonBody(rawResponseBody).build(); @@ -43,7 +43,7 @@ describe("UserBlocks", () => { test("listByIdentifier (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/user-blocks").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); @@ -57,7 +57,7 @@ describe("UserBlocks", () => { test("listByIdentifier (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/user-blocks").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); @@ -71,7 +71,7 @@ describe("UserBlocks", () => { test("listByIdentifier (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/user-blocks").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); @@ -85,7 +85,7 @@ describe("UserBlocks", () => { test("deleteByIdentifier (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); server.mockEndpoint().delete("/user-blocks").respondWith().statusCode(200).build(); @@ -97,7 +97,7 @@ describe("UserBlocks", () => { test("deleteByIdentifier (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().delete("/user-blocks").respondWith().statusCode(400).jsonBody(rawResponseBody).build(); @@ -111,7 +111,7 @@ describe("UserBlocks", () => { test("deleteByIdentifier (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().delete("/user-blocks").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); @@ -125,7 +125,7 @@ describe("UserBlocks", () => { test("deleteByIdentifier (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().delete("/user-blocks").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); @@ -139,7 +139,7 @@ describe("UserBlocks", () => { test("deleteByIdentifier (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().delete("/user-blocks").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); @@ -153,7 +153,7 @@ describe("UserBlocks", () => { test("list (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { blocked_for: [{ identifier: "identifier", ip: "ip", connection: "connection" }] }; server.mockEndpoint().get("/user-blocks/id").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); @@ -174,7 +174,7 @@ describe("UserBlocks", () => { test("list (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/user-blocks/id").respondWith().statusCode(400).jsonBody(rawResponseBody).build(); @@ -186,7 +186,7 @@ describe("UserBlocks", () => { test("list (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/user-blocks/id").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); @@ -198,7 +198,7 @@ describe("UserBlocks", () => { test("list (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/user-blocks/id").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); @@ -210,7 +210,7 @@ describe("UserBlocks", () => { test("list (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/user-blocks/id").respondWith().statusCode(404).jsonBody(rawResponseBody).build(); @@ -222,7 +222,7 @@ describe("UserBlocks", () => { test("list (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/user-blocks/id").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); @@ -234,7 +234,7 @@ describe("UserBlocks", () => { test("delete (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); server.mockEndpoint().delete("/user-blocks/id").respondWith().statusCode(200).build(); @@ -244,7 +244,7 @@ describe("UserBlocks", () => { test("delete (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().delete("/user-blocks/id").respondWith().statusCode(400).jsonBody(rawResponseBody).build(); @@ -256,7 +256,7 @@ describe("UserBlocks", () => { test("delete (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().delete("/user-blocks/id").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); @@ -268,7 +268,7 @@ describe("UserBlocks", () => { test("delete (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().delete("/user-blocks/id").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); @@ -280,7 +280,7 @@ describe("UserBlocks", () => { test("delete (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().delete("/user-blocks/id").respondWith().statusCode(404).jsonBody(rawResponseBody).build(); @@ -292,7 +292,7 @@ describe("UserBlocks", () => { test("delete (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().delete("/user-blocks/id").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); diff --git a/src/management/tests/wire/userGrants.test.ts b/src/management/tests/wire/userGrants.test.ts index 1f36a87909..d46a88c85e 100644 --- a/src/management/tests/wire/userGrants.test.ts +++ b/src/management/tests/wire/userGrants.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../mock-server/MockServerPool"; -import { ManagementClient } from "../../Client"; import * as Management from "../../api/index"; +import { ManagementClient } from "../../Client"; +import { mockServerPool } from "../mock-server/MockServerPool"; -describe("UserGrants", () => { +describe("UserGrantsClient", () => { test("list (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { start: 1.1, @@ -15,7 +15,13 @@ describe("UserGrants", () => { total: 1.1, grants: [{ id: "id", clientID: "clientID", user_id: "user_id", audience: "audience", scope: ["scope"] }], }; - server.mockEndpoint().get("/grants").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/grants") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); const expected = { start: 1.1, @@ -48,10 +54,16 @@ describe("UserGrants", () => { test("list (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/grants").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/grants") + .respondWith() + .statusCode(401) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.userGrants.list(); @@ -60,10 +72,16 @@ describe("UserGrants", () => { test("list (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/grants").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/grants") + .respondWith() + .statusCode(403) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.userGrants.list(); @@ -72,10 +90,16 @@ describe("UserGrants", () => { test("list (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/grants").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/grants") + .respondWith() + .statusCode(429) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.userGrants.list(); @@ -84,7 +108,7 @@ describe("UserGrants", () => { test("deleteByUserId (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); server.mockEndpoint().delete("/grants").respondWith().statusCode(200).build(); @@ -96,7 +120,7 @@ describe("UserGrants", () => { test("deleteByUserId (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().delete("/grants").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); @@ -110,7 +134,7 @@ describe("UserGrants", () => { test("deleteByUserId (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().delete("/grants").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); @@ -124,7 +148,7 @@ describe("UserGrants", () => { test("deleteByUserId (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().delete("/grants").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); @@ -138,7 +162,7 @@ describe("UserGrants", () => { test("delete (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); server.mockEndpoint().delete("/grants/id").respondWith().statusCode(200).build(); @@ -148,7 +172,7 @@ describe("UserGrants", () => { test("delete (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().delete("/grants/id").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); @@ -160,7 +184,7 @@ describe("UserGrants", () => { test("delete (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().delete("/grants/id").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); @@ -172,7 +196,7 @@ describe("UserGrants", () => { test("delete (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().delete("/grants/id").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); diff --git a/src/management/tests/wire/users.test.ts b/src/management/tests/wire/users.test.ts index 98081e911e..a6281fccbd 100644 --- a/src/management/tests/wire/users.test.ts +++ b/src/management/tests/wire/users.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../mock-server/MockServerPool"; -import { ManagementClient } from "../../Client"; import * as Management from "../../api/index"; +import { ManagementClient } from "../../Client"; +import { mockServerPool } from "../mock-server/MockServerPool"; -describe("Users", () => { +describe("UsersClient", () => { test("list (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { start: 1.1, @@ -40,7 +40,13 @@ describe("Users", () => { }, ], }; - server.mockEndpoint().get("/users").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/users") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); const expected = { start: 1.1, @@ -98,10 +104,16 @@ describe("Users", () => { test("list (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/users").respondWith().statusCode(400).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/users") + .respondWith() + .statusCode(400) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.users.list(); @@ -110,10 +122,16 @@ describe("Users", () => { test("list (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/users").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/users") + .respondWith() + .statusCode(401) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.users.list(); @@ -122,10 +140,16 @@ describe("Users", () => { test("list (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/users").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/users") + .respondWith() + .statusCode(403) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.users.list(); @@ -134,10 +158,16 @@ describe("Users", () => { test("list (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/users").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/users") + .respondWith() + .statusCode(429) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.users.list(); @@ -146,10 +176,16 @@ describe("Users", () => { test("list (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/users").respondWith().statusCode(503).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/users") + .respondWith() + .statusCode(503) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.users.list(); @@ -158,7 +194,7 @@ describe("Users", () => { test("create (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { connection: "connection" }; const rawResponseBody = { user_id: "user_id", @@ -246,7 +282,7 @@ describe("Users", () => { test("create (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { connection: "Initial-Connection" }; const rawResponseBody = { key: "value" }; server @@ -267,7 +303,7 @@ describe("Users", () => { test("create (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { connection: "Initial-Connection" }; const rawResponseBody = { key: "value" }; server @@ -288,7 +324,7 @@ describe("Users", () => { test("create (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { connection: "Initial-Connection" }; const rawResponseBody = { key: "value" }; server @@ -309,7 +345,7 @@ describe("Users", () => { test("create (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { connection: "Initial-Connection" }; const rawResponseBody = { key: "value" }; server @@ -330,7 +366,7 @@ describe("Users", () => { test("create (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { connection: "Initial-Connection" }; const rawResponseBody = { key: "value" }; server @@ -351,7 +387,7 @@ describe("Users", () => { test("listUsersByEmail (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = [ { @@ -418,7 +454,7 @@ describe("Users", () => { test("listUsersByEmail (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/users-by-email").respondWith().statusCode(400).jsonBody(rawResponseBody).build(); @@ -432,7 +468,7 @@ describe("Users", () => { test("listUsersByEmail (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/users-by-email").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); @@ -446,7 +482,7 @@ describe("Users", () => { test("listUsersByEmail (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/users-by-email").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); @@ -460,7 +496,7 @@ describe("Users", () => { test("listUsersByEmail (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/users-by-email").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); @@ -474,7 +510,7 @@ describe("Users", () => { test("get (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { user_id: "user_id", @@ -556,7 +592,7 @@ describe("Users", () => { test("get (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/users/id").respondWith().statusCode(400).jsonBody(rawResponseBody).build(); @@ -568,7 +604,7 @@ describe("Users", () => { test("get (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/users/id").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); @@ -580,7 +616,7 @@ describe("Users", () => { test("get (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/users/id").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); @@ -592,7 +628,7 @@ describe("Users", () => { test("get (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/users/id").respondWith().statusCode(404).jsonBody(rawResponseBody).build(); @@ -604,7 +640,7 @@ describe("Users", () => { test("get (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().get("/users/id").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); @@ -616,7 +652,7 @@ describe("Users", () => { test("delete (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); server.mockEndpoint().delete("/users/id").respondWith().statusCode(200).build(); @@ -626,7 +662,7 @@ describe("Users", () => { test("delete (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().delete("/users/id").respondWith().statusCode(400).jsonBody(rawResponseBody).build(); @@ -638,7 +674,7 @@ describe("Users", () => { test("delete (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().delete("/users/id").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); @@ -650,7 +686,7 @@ describe("Users", () => { test("delete (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().delete("/users/id").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); @@ -662,7 +698,7 @@ describe("Users", () => { test("delete (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server.mockEndpoint().delete("/users/id").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); @@ -674,7 +710,7 @@ describe("Users", () => { test("update (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { user_id: "user_id", @@ -760,7 +796,7 @@ describe("Users", () => { test("update (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -779,7 +815,7 @@ describe("Users", () => { test("update (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -798,7 +834,7 @@ describe("Users", () => { test("update (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -817,7 +853,7 @@ describe("Users", () => { test("update (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -836,7 +872,7 @@ describe("Users", () => { test("update (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -855,7 +891,7 @@ describe("Users", () => { test("regenerateRecoveryCode (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { recovery_code: "recovery_code" }; server @@ -874,7 +910,7 @@ describe("Users", () => { test("regenerateRecoveryCode (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -892,7 +928,7 @@ describe("Users", () => { test("regenerateRecoveryCode (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -910,7 +946,7 @@ describe("Users", () => { test("regenerateRecoveryCode (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -928,7 +964,7 @@ describe("Users", () => { test("regenerateRecoveryCode (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -946,7 +982,7 @@ describe("Users", () => { test("revokeAccess (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; server @@ -963,7 +999,7 @@ describe("Users", () => { test("revokeAccess (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -982,7 +1018,7 @@ describe("Users", () => { test("revokeAccess (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -1001,7 +1037,7 @@ describe("Users", () => { test("revokeAccess (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -1020,7 +1056,7 @@ describe("Users", () => { test("revokeAccess (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/users/authenticationMethods.test.ts b/src/management/tests/wire/users/authenticationMethods.test.ts index 8f05f08ef1..347b6b2d0c 100644 --- a/src/management/tests/wire/users/authenticationMethods.test.ts +++ b/src/management/tests/wire/users/authenticationMethods.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../Client"; import * as Management from "../../../api/index"; +import { ManagementClient } from "../../../Client"; +import { mockServerPool } from "../../mock-server/MockServerPool"; -describe("AuthenticationMethods", () => { +describe("AuthenticationMethodsClient", () => { test("list (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { start: 1.1, @@ -33,13 +33,11 @@ describe("AuthenticationMethods", () => { credential_backed_up: true, identity_user_id: "identity_user_id", user_agent: "user_agent", - aaguid: "aaguid", - relying_party_identifier: "relying_party_identifier", }, ], }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/users/id/authentication-methods") .respondWith() .statusCode(200) @@ -70,8 +68,6 @@ describe("AuthenticationMethods", () => { credential_backed_up: true, identity_user_id: "identity_user_id", user_agent: "user_agent", - aaguid: "aaguid", - relying_party_identifier: "relying_party_identifier", }, ], }; @@ -89,11 +85,11 @@ describe("AuthenticationMethods", () => { test("list (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/users/id/authentication-methods") .respondWith() .statusCode(400) @@ -107,11 +103,11 @@ describe("AuthenticationMethods", () => { test("list (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/users/id/authentication-methods") .respondWith() .statusCode(401) @@ -125,11 +121,11 @@ describe("AuthenticationMethods", () => { test("list (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/users/id/authentication-methods") .respondWith() .statusCode(403) @@ -143,11 +139,11 @@ describe("AuthenticationMethods", () => { test("list (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/users/id/authentication-methods") .respondWith() .statusCode(404) @@ -161,11 +157,11 @@ describe("AuthenticationMethods", () => { test("list (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/users/id/authentication-methods") .respondWith() .statusCode(429) @@ -179,7 +175,7 @@ describe("AuthenticationMethods", () => { test("create (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { type: "phone" }; const rawResponseBody = { id: "id", @@ -192,7 +188,6 @@ describe("AuthenticationMethods", () => { preferred_authentication_method: "voice", key_id: "key_id", public_key: "public_key", - aaguid: "aaguid", relying_party_identifier: "relying_party_identifier", created_at: "2024-01-15T09:30:00Z", }; @@ -224,7 +219,6 @@ describe("AuthenticationMethods", () => { preferred_authentication_method: "voice", key_id: "key_id", public_key: "public_key", - aaguid: "aaguid", relying_party_identifier: "relying_party_identifier", created_at: "2024-01-15T09:30:00Z", }); @@ -232,7 +226,7 @@ describe("AuthenticationMethods", () => { test("create (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { type: "phone" }; const rawResponseBody = { key: "value" }; server @@ -253,7 +247,7 @@ describe("AuthenticationMethods", () => { test("create (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { type: "phone" }; const rawResponseBody = { key: "value" }; server @@ -274,7 +268,7 @@ describe("AuthenticationMethods", () => { test("create (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { type: "phone" }; const rawResponseBody = { key: "value" }; server @@ -295,7 +289,7 @@ describe("AuthenticationMethods", () => { test("create (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { type: "phone" }; const rawResponseBody = { key: "value" }; server @@ -316,7 +310,7 @@ describe("AuthenticationMethods", () => { test("create (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { type: "phone" }; const rawResponseBody = { key: "value" }; server @@ -337,7 +331,7 @@ describe("AuthenticationMethods", () => { test("create (7)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { type: "phone" }; const rawResponseBody = { key: "value" }; server @@ -358,7 +352,7 @@ describe("AuthenticationMethods", () => { test("set (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = [{ type: "phone" }]; const rawResponseBody = [ { @@ -372,7 +366,6 @@ describe("AuthenticationMethods", () => { preferred_authentication_method: "voice", key_id: "key_id", public_key: "public_key", - aaguid: "aaguid", relying_party_identifier: "relying_party_identifier", created_at: "2024-01-15T09:30:00Z", }, @@ -403,7 +396,6 @@ describe("AuthenticationMethods", () => { preferred_authentication_method: "voice", key_id: "key_id", public_key: "public_key", - aaguid: "aaguid", relying_party_identifier: "relying_party_identifier", created_at: "2024-01-15T09:30:00Z", }, @@ -412,7 +404,7 @@ describe("AuthenticationMethods", () => { test("set (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = [{ type: "phone" }, { type: "phone" }]; const rawResponseBody = { key: "value" }; server @@ -438,7 +430,7 @@ describe("AuthenticationMethods", () => { test("set (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = [{ type: "phone" }, { type: "phone" }]; const rawResponseBody = { key: "value" }; server @@ -464,7 +456,7 @@ describe("AuthenticationMethods", () => { test("set (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = [{ type: "phone" }, { type: "phone" }]; const rawResponseBody = { key: "value" }; server @@ -490,7 +482,7 @@ describe("AuthenticationMethods", () => { test("set (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = [{ type: "phone" }, { type: "phone" }]; const rawResponseBody = { key: "value" }; server @@ -516,7 +508,7 @@ describe("AuthenticationMethods", () => { test("set (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = [{ type: "phone" }, { type: "phone" }]; const rawResponseBody = { key: "value" }; server @@ -542,7 +534,7 @@ describe("AuthenticationMethods", () => { test("deleteAll (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); server.mockEndpoint().delete("/users/id/authentication-methods").respondWith().statusCode(200).build(); @@ -552,7 +544,7 @@ describe("AuthenticationMethods", () => { test("deleteAll (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -570,7 +562,7 @@ describe("AuthenticationMethods", () => { test("deleteAll (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -588,7 +580,7 @@ describe("AuthenticationMethods", () => { test("deleteAll (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -606,7 +598,7 @@ describe("AuthenticationMethods", () => { test("deleteAll (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -624,7 +616,7 @@ describe("AuthenticationMethods", () => { test("get (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { id: "id", @@ -645,8 +637,6 @@ describe("AuthenticationMethods", () => { credential_backed_up: true, identity_user_id: "identity_user_id", user_agent: "user_agent", - aaguid: "aaguid", - relying_party_identifier: "relying_party_identifier", }; server .mockEndpoint() @@ -681,14 +671,12 @@ describe("AuthenticationMethods", () => { credential_backed_up: true, identity_user_id: "identity_user_id", user_agent: "user_agent", - aaguid: "aaguid", - relying_party_identifier: "relying_party_identifier", }); }); test("get (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -706,7 +694,7 @@ describe("AuthenticationMethods", () => { test("get (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -724,7 +712,7 @@ describe("AuthenticationMethods", () => { test("get (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -742,7 +730,7 @@ describe("AuthenticationMethods", () => { test("get (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -760,7 +748,7 @@ describe("AuthenticationMethods", () => { test("get (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -778,7 +766,7 @@ describe("AuthenticationMethods", () => { test("delete (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); server .mockEndpoint() @@ -793,7 +781,7 @@ describe("AuthenticationMethods", () => { test("delete (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -811,7 +799,7 @@ describe("AuthenticationMethods", () => { test("delete (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -829,7 +817,7 @@ describe("AuthenticationMethods", () => { test("delete (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -847,7 +835,7 @@ describe("AuthenticationMethods", () => { test("delete (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -865,7 +853,7 @@ describe("AuthenticationMethods", () => { test("delete (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -883,7 +871,7 @@ describe("AuthenticationMethods", () => { test("update (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { id: "id", @@ -896,7 +884,6 @@ describe("AuthenticationMethods", () => { preferred_authentication_method: "voice", key_id: "key_id", public_key: "public_key", - aaguid: "aaguid", relying_party_identifier: "relying_party_identifier", created_at: "2024-01-15T09:30:00Z", }; @@ -926,7 +913,6 @@ describe("AuthenticationMethods", () => { preferred_authentication_method: "voice", key_id: "key_id", public_key: "public_key", - aaguid: "aaguid", relying_party_identifier: "relying_party_identifier", created_at: "2024-01-15T09:30:00Z", }); @@ -934,7 +920,7 @@ describe("AuthenticationMethods", () => { test("update (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -953,7 +939,7 @@ describe("AuthenticationMethods", () => { test("update (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -972,7 +958,7 @@ describe("AuthenticationMethods", () => { test("update (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -991,7 +977,7 @@ describe("AuthenticationMethods", () => { test("update (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -1010,7 +996,7 @@ describe("AuthenticationMethods", () => { test("update (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/users/authenticators.test.ts b/src/management/tests/wire/users/authenticators.test.ts index 89a1d3a07e..eed297e041 100644 --- a/src/management/tests/wire/users/authenticators.test.ts +++ b/src/management/tests/wire/users/authenticators.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../Client"; import * as Management from "../../../api/index"; +import { ManagementClient } from "../../../Client"; +import { mockServerPool } from "../../mock-server/MockServerPool"; -describe("Authenticators", () => { +describe("AuthenticatorsClient", () => { test("deleteAll (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); server.mockEndpoint().delete("/users/id/authenticators").respondWith().statusCode(200).build(); @@ -17,7 +17,7 @@ describe("Authenticators", () => { test("deleteAll (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -35,7 +35,7 @@ describe("Authenticators", () => { test("deleteAll (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -53,7 +53,7 @@ describe("Authenticators", () => { test("deleteAll (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -71,7 +71,7 @@ describe("Authenticators", () => { test("deleteAll (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/users/connectedAccounts.test.ts b/src/management/tests/wire/users/connectedAccounts.test.ts deleted file mode 100644 index d489efa536..0000000000 --- a/src/management/tests/wire/users/connectedAccounts.test.ts +++ /dev/null @@ -1,132 +0,0 @@ -// This file was auto-generated by Fern from our API Definition. - -import { mockServerPool } from "../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../Client"; -import * as Management from "../../../api/index"; - -describe("ConnectedAccounts", () => { - test("list (1)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { - connected_accounts: [ - { - id: "id", - connection: "connection", - connection_id: "connection_id", - strategy: "strategy", - access_type: "offline", - scopes: ["scopes"], - created_at: "2024-01-15T09:30:00Z", - expires_at: "2024-01-15T09:30:00Z", - }, - ], - next: "next", - }; - server - .mockEndpoint() - .get("/users/id/connected-accounts") - .respondWith() - .statusCode(200) - .jsonBody(rawResponseBody) - .build(); - - const expected = { - connected_accounts: [ - { - id: "id", - connection: "connection", - connection_id: "connection_id", - strategy: "strategy", - access_type: "offline", - scopes: ["scopes"], - created_at: "2024-01-15T09:30:00Z", - expires_at: "2024-01-15T09:30:00Z", - }, - ], - next: "next", - }; - const page = await client.users.connectedAccounts.list("id", { - from: "from", - take: 1, - }); - - expect(expected.connected_accounts).toEqual(page.data); - expect(page.hasNextPage()).toBe(true); - const nextPage = await page.getNextPage(); - expect(expected.connected_accounts).toEqual(nextPage.data); - }); - - test("list (2)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .get("/users/id/connected-accounts") - .respondWith() - .statusCode(400) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.users.connectedAccounts.list("id"); - }).rejects.toThrow(Management.BadRequestError); - }); - - test("list (3)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .get("/users/id/connected-accounts") - .respondWith() - .statusCode(401) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.users.connectedAccounts.list("id"); - }).rejects.toThrow(Management.UnauthorizedError); - }); - - test("list (4)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .get("/users/id/connected-accounts") - .respondWith() - .statusCode(403) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.users.connectedAccounts.list("id"); - }).rejects.toThrow(Management.ForbiddenError); - }); - - test("list (5)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .get("/users/id/connected-accounts") - .respondWith() - .statusCode(429) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.users.connectedAccounts.list("id"); - }).rejects.toThrow(Management.TooManyRequestsError); - }); -}); diff --git a/src/management/tests/wire/users/enrollments.test.ts b/src/management/tests/wire/users/enrollments.test.ts index 8ad22aceee..7ad73205de 100644 --- a/src/management/tests/wire/users/enrollments.test.ts +++ b/src/management/tests/wire/users/enrollments.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../Client"; import * as Management from "../../../api/index"; +import { ManagementClient } from "../../../Client"; +import { mockServerPool } from "../../mock-server/MockServerPool"; -describe("Enrollments", () => { +describe("EnrollmentsClient", () => { test("get (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = [ { @@ -48,7 +48,7 @@ describe("Enrollments", () => { test("get (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -66,7 +66,7 @@ describe("Enrollments", () => { test("get (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -84,7 +84,7 @@ describe("Enrollments", () => { test("get (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -102,7 +102,7 @@ describe("Enrollments", () => { test("get (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -120,7 +120,7 @@ describe("Enrollments", () => { test("get (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/users/federatedConnectionsTokensets.test.ts b/src/management/tests/wire/users/federatedConnectionsTokensets.test.ts index f02655917e..dddb7acfee 100644 --- a/src/management/tests/wire/users/federatedConnectionsTokensets.test.ts +++ b/src/management/tests/wire/users/federatedConnectionsTokensets.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../Client"; import * as Management from "../../../api/index"; +import { ManagementClient } from "../../../Client"; +import { mockServerPool } from "../../mock-server/MockServerPool"; -describe("FederatedConnectionsTokensets", () => { +describe("FederatedConnectionsTokensetsClient", () => { test("list (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = [ { @@ -42,7 +42,7 @@ describe("FederatedConnectionsTokensets", () => { test("list (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -60,7 +60,7 @@ describe("FederatedConnectionsTokensets", () => { test("list (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -78,7 +78,7 @@ describe("FederatedConnectionsTokensets", () => { test("list (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -96,7 +96,7 @@ describe("FederatedConnectionsTokensets", () => { test("list (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -114,7 +114,7 @@ describe("FederatedConnectionsTokensets", () => { test("delete (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); server .mockEndpoint() @@ -129,7 +129,7 @@ describe("FederatedConnectionsTokensets", () => { test("delete (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -147,7 +147,7 @@ describe("FederatedConnectionsTokensets", () => { test("delete (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -165,7 +165,7 @@ describe("FederatedConnectionsTokensets", () => { test("delete (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -183,7 +183,7 @@ describe("FederatedConnectionsTokensets", () => { test("delete (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/users/identities.test.ts b/src/management/tests/wire/users/identities.test.ts index 78e492a40b..f49d486d31 100644 --- a/src/management/tests/wire/users/identities.test.ts +++ b/src/management/tests/wire/users/identities.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../Client"; import * as Management from "../../../api/index"; +import { ManagementClient } from "../../../Client"; +import { mockServerPool } from "../../mock-server/MockServerPool"; -describe("Identities", () => { +describe("IdentitiesClient", () => { test("link (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = [ { @@ -65,7 +65,7 @@ describe("Identities", () => { test("link (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -84,7 +84,7 @@ describe("Identities", () => { test("link (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -103,7 +103,7 @@ describe("Identities", () => { test("link (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -122,7 +122,7 @@ describe("Identities", () => { test("link (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -141,7 +141,7 @@ describe("Identities", () => { test("link (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -160,7 +160,7 @@ describe("Identities", () => { test("delete (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = [ { @@ -217,7 +217,7 @@ describe("Identities", () => { test("delete (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -235,7 +235,7 @@ describe("Identities", () => { test("delete (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -253,7 +253,7 @@ describe("Identities", () => { test("delete (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -271,7 +271,7 @@ describe("Identities", () => { test("delete (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/users/logs.test.ts b/src/management/tests/wire/users/logs.test.ts index 830d2dfc93..efd827b1c6 100644 --- a/src/management/tests/wire/users/logs.test.ts +++ b/src/management/tests/wire/users/logs.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../Client"; import * as Management from "../../../api/index"; +import { ManagementClient } from "../../../Client"; +import { mockServerPool } from "../../mock-server/MockServerPool"; -describe("Logs", () => { +describe("LogsClient", () => { test("list (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { start: 1.1, @@ -38,7 +38,13 @@ describe("Logs", () => { }, ], }; - server.mockEndpoint().get("/users/id/logs").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/users/id/logs") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); const expected = { start: 1.1, @@ -86,10 +92,16 @@ describe("Logs", () => { test("list (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/users/id/logs").respondWith().statusCode(400).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/users/id/logs") + .respondWith() + .statusCode(400) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.users.logs.list("id"); @@ -98,10 +110,16 @@ describe("Logs", () => { test("list (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/users/id/logs").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/users/id/logs") + .respondWith() + .statusCode(401) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.users.logs.list("id"); @@ -110,10 +128,16 @@ describe("Logs", () => { test("list (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/users/id/logs").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/users/id/logs") + .respondWith() + .statusCode(403) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.users.logs.list("id"); @@ -122,10 +146,16 @@ describe("Logs", () => { test("list (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/users/id/logs").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/users/id/logs") + .respondWith() + .statusCode(429) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.users.logs.list("id"); diff --git a/src/management/tests/wire/users/multifactor.test.ts b/src/management/tests/wire/users/multifactor.test.ts index 4c764a46b1..db5439d01f 100644 --- a/src/management/tests/wire/users/multifactor.test.ts +++ b/src/management/tests/wire/users/multifactor.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../Client"; import * as Management from "../../../api/index"; +import { ManagementClient } from "../../../Client"; +import { mockServerPool } from "../../mock-server/MockServerPool"; -describe("Multifactor", () => { +describe("MultifactorClient", () => { test("invalidateRememberBrowser (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); server .mockEndpoint() @@ -22,7 +22,7 @@ describe("Multifactor", () => { test("invalidateRememberBrowser (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -40,7 +40,7 @@ describe("Multifactor", () => { test("invalidateRememberBrowser (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -58,7 +58,7 @@ describe("Multifactor", () => { test("invalidateRememberBrowser (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -76,7 +76,7 @@ describe("Multifactor", () => { test("deleteProvider (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); server.mockEndpoint().delete("/users/id/multifactor/duo").respondWith().statusCode(200).build(); @@ -86,7 +86,7 @@ describe("Multifactor", () => { test("deleteProvider (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -104,7 +104,7 @@ describe("Multifactor", () => { test("deleteProvider (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -122,7 +122,7 @@ describe("Multifactor", () => { test("deleteProvider (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -140,7 +140,7 @@ describe("Multifactor", () => { test("deleteProvider (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -158,7 +158,7 @@ describe("Multifactor", () => { test("deleteProvider (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/users/organizations.test.ts b/src/management/tests/wire/users/organizations.test.ts index 26e4a1f15a..3842455664 100644 --- a/src/management/tests/wire/users/organizations.test.ts +++ b/src/management/tests/wire/users/organizations.test.ts @@ -1,24 +1,30 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../Client"; import * as Management from "../../../api/index"; +import { ManagementClient } from "../../../Client"; +import { mockServerPool } from "../../mock-server/MockServerPool"; -describe("Organizations", () => { +describe("OrganizationsClient", () => { test("list (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { start: 1.1, limit: 1.1, total: 1.1, organizations: [ - { id: "id", name: "name", display_name: "display_name", token_quota: { client_credentials: {} } }, + { + id: "id", + name: "name", + display_name: "display_name", + metadata: { key: "value" }, + token_quota: { client_credentials: {} }, + }, ], }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/users/id/organizations") .respondWith() .statusCode(200) @@ -34,6 +40,9 @@ describe("Organizations", () => { id: "id", name: "name", display_name: "display_name", + metadata: { + key: "value", + }, token_quota: { client_credentials: {}, }, @@ -54,11 +63,11 @@ describe("Organizations", () => { test("list (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/users/id/organizations") .respondWith() .statusCode(401) @@ -72,11 +81,11 @@ describe("Organizations", () => { test("list (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/users/id/organizations") .respondWith() .statusCode(403) @@ -90,11 +99,11 @@ describe("Organizations", () => { test("list (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/users/id/organizations") .respondWith() .statusCode(429) diff --git a/src/management/tests/wire/users/permissions.test.ts b/src/management/tests/wire/users/permissions.test.ts index 26741c7a7a..0456d8d751 100644 --- a/src/management/tests/wire/users/permissions.test.ts +++ b/src/management/tests/wire/users/permissions.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../Client"; import * as Management from "../../../api/index"; +import { ManagementClient } from "../../../Client"; +import { mockServerPool } from "../../mock-server/MockServerPool"; -describe("Permissions", () => { +describe("PermissionsClient", () => { test("list (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { start: 1.1, @@ -23,7 +23,7 @@ describe("Permissions", () => { ], }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/users/id/permissions") .respondWith() .statusCode(200) @@ -57,11 +57,11 @@ describe("Permissions", () => { test("list (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/users/id/permissions") .respondWith() .statusCode(400) @@ -75,11 +75,11 @@ describe("Permissions", () => { test("list (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/users/id/permissions") .respondWith() .statusCode(401) @@ -93,11 +93,11 @@ describe("Permissions", () => { test("list (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/users/id/permissions") .respondWith() .statusCode(403) @@ -111,11 +111,11 @@ describe("Permissions", () => { test("list (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/users/id/permissions") .respondWith() .statusCode(404) @@ -129,11 +129,11 @@ describe("Permissions", () => { test("list (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/users/id/permissions") .respondWith() .statusCode(429) @@ -147,7 +147,7 @@ describe("Permissions", () => { test("create (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { permissions: [ { resource_server_identifier: "resource_server_identifier", permission_name: "permission_name" }, @@ -175,7 +175,7 @@ describe("Permissions", () => { test("create (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { permissions: [ { resource_server_identifier: "resource_server_identifier", permission_name: "permission_name" }, @@ -210,7 +210,7 @@ describe("Permissions", () => { test("create (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { permissions: [ { resource_server_identifier: "resource_server_identifier", permission_name: "permission_name" }, @@ -245,7 +245,7 @@ describe("Permissions", () => { test("create (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { permissions: [ { resource_server_identifier: "resource_server_identifier", permission_name: "permission_name" }, @@ -280,7 +280,7 @@ describe("Permissions", () => { test("create (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { permissions: [ { resource_server_identifier: "resource_server_identifier", permission_name: "permission_name" }, @@ -315,7 +315,7 @@ describe("Permissions", () => { test("delete (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { permissions: [ { resource_server_identifier: "resource_server_identifier", permission_name: "permission_name" }, @@ -343,7 +343,7 @@ describe("Permissions", () => { test("delete (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { permissions: [ { resource_server_identifier: "resource_server_identifier", permission_name: "permission_name" }, @@ -378,7 +378,7 @@ describe("Permissions", () => { test("delete (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { permissions: [ { resource_server_identifier: "resource_server_identifier", permission_name: "permission_name" }, @@ -413,7 +413,7 @@ describe("Permissions", () => { test("delete (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { permissions: [ { resource_server_identifier: "resource_server_identifier", permission_name: "permission_name" }, @@ -448,7 +448,7 @@ describe("Permissions", () => { test("delete (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { permissions: [ { resource_server_identifier: "resource_server_identifier", permission_name: "permission_name" }, diff --git a/src/management/tests/wire/users/refreshToken.test.ts b/src/management/tests/wire/users/refreshToken.test.ts index 665e288b71..2620d89214 100644 --- a/src/management/tests/wire/users/refreshToken.test.ts +++ b/src/management/tests/wire/users/refreshToken.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../Client"; import * as Management from "../../../api/index"; +import { ManagementClient } from "../../../Client"; +import { mockServerPool } from "../../mock-server/MockServerPool"; -describe("RefreshToken", () => { +describe("RefreshTokenClient", () => { test("list (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { tokens: [ @@ -27,7 +27,7 @@ describe("RefreshToken", () => { next: "next", }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/users/user_id/refresh-tokens") .respondWith() .statusCode(200) @@ -64,11 +64,11 @@ describe("RefreshToken", () => { test("list (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/users/user_id/refresh-tokens") .respondWith() .statusCode(401) @@ -82,11 +82,11 @@ describe("RefreshToken", () => { test("list (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/users/user_id/refresh-tokens") .respondWith() .statusCode(403) @@ -100,11 +100,11 @@ describe("RefreshToken", () => { test("list (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/users/user_id/refresh-tokens") .respondWith() .statusCode(404) @@ -118,11 +118,11 @@ describe("RefreshToken", () => { test("list (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/users/user_id/refresh-tokens") .respondWith() .statusCode(429) @@ -136,7 +136,7 @@ describe("RefreshToken", () => { test("delete (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); server.mockEndpoint().delete("/users/user_id/refresh-tokens").respondWith().statusCode(200).build(); @@ -146,7 +146,7 @@ describe("RefreshToken", () => { test("delete (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -164,7 +164,7 @@ describe("RefreshToken", () => { test("delete (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -182,7 +182,7 @@ describe("RefreshToken", () => { test("delete (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -200,7 +200,7 @@ describe("RefreshToken", () => { test("delete (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -218,7 +218,7 @@ describe("RefreshToken", () => { test("delete (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/users/riskAssessments.test.ts b/src/management/tests/wire/users/riskAssessments.test.ts deleted file mode 100644 index 247903e57a..0000000000 --- a/src/management/tests/wire/users/riskAssessments.test.ts +++ /dev/null @@ -1,115 +0,0 @@ -// This file was auto-generated by Fern from our API Definition. - -import { mockServerPool } from "../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../Client"; -import * as Management from "../../../api/index"; - -describe("RiskAssessments", () => { - test("clear (1)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { connection: "connection", assessors: ["new-device"] }; - - server - .mockEndpoint() - .post("/users/id/risk-assessments/clear") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(200) - .build(); - - const response = await client.users.riskAssessments.clear("id", { - connection: "connection", - assessors: ["new-device"], - }); - expect(response).toEqual(undefined); - }); - - test("clear (2)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { connection: "x", assessors: ["new-device", "new-device"] }; - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .post("/users/id/risk-assessments/clear") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(400) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.users.riskAssessments.clear("id", { - connection: "x", - assessors: ["new-device", "new-device"], - }); - }).rejects.toThrow(Management.BadRequestError); - }); - - test("clear (3)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { connection: "x", assessors: ["new-device", "new-device"] }; - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .post("/users/id/risk-assessments/clear") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(401) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.users.riskAssessments.clear("id", { - connection: "x", - assessors: ["new-device", "new-device"], - }); - }).rejects.toThrow(Management.UnauthorizedError); - }); - - test("clear (4)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { connection: "x", assessors: ["new-device", "new-device"] }; - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .post("/users/id/risk-assessments/clear") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(403) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.users.riskAssessments.clear("id", { - connection: "x", - assessors: ["new-device", "new-device"], - }); - }).rejects.toThrow(Management.ForbiddenError); - }); - - test("clear (5)", async () => { - const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); - const rawRequestBody = { connection: "x", assessors: ["new-device", "new-device"] }; - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() - .post("/users/id/risk-assessments/clear") - .jsonBody(rawRequestBody) - .respondWith() - .statusCode(429) - .jsonBody(rawResponseBody) - .build(); - - await expect(async () => { - return await client.users.riskAssessments.clear("id", { - connection: "x", - assessors: ["new-device", "new-device"], - }); - }).rejects.toThrow(Management.TooManyRequestsError); - }); -}); diff --git a/src/management/tests/wire/users/roles.test.ts b/src/management/tests/wire/users/roles.test.ts index 883647e2b7..9a12bd5698 100644 --- a/src/management/tests/wire/users/roles.test.ts +++ b/src/management/tests/wire/users/roles.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../Client"; import * as Management from "../../../api/index"; +import { ManagementClient } from "../../../Client"; +import { mockServerPool } from "../../mock-server/MockServerPool"; -describe("Roles", () => { +describe("RolesClient", () => { test("list (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { start: 1.1, @@ -15,7 +15,13 @@ describe("Roles", () => { total: 1.1, roles: [{ id: "id", name: "name", description: "description" }], }; - server.mockEndpoint().get("/users/id/roles").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/users/id/roles") + .respondWith() + .statusCode(200) + .jsonBody(rawResponseBody) + .build(); const expected = { start: 1.1, @@ -43,10 +49,16 @@ describe("Roles", () => { test("list (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/users/id/roles").respondWith().statusCode(401).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/users/id/roles") + .respondWith() + .statusCode(401) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.users.roles.list("id"); @@ -55,10 +67,16 @@ describe("Roles", () => { test("list (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/users/id/roles").respondWith().statusCode(403).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/users/id/roles") + .respondWith() + .statusCode(403) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.users.roles.list("id"); @@ -67,10 +85,16 @@ describe("Roles", () => { test("list (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; - server.mockEndpoint().get("/users/id/roles").respondWith().statusCode(429).jsonBody(rawResponseBody).build(); + server + .mockEndpoint({ once: false }) + .get("/users/id/roles") + .respondWith() + .statusCode(429) + .jsonBody(rawResponseBody) + .build(); await expect(async () => { return await client.users.roles.list("id"); @@ -79,7 +103,7 @@ describe("Roles", () => { test("assign (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { roles: ["roles"] }; server.mockEndpoint().post("/users/id/roles").jsonBody(rawRequestBody).respondWith().statusCode(200).build(); @@ -92,7 +116,7 @@ describe("Roles", () => { test("assign (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { roles: ["roles", "roles"] }; const rawResponseBody = { key: "value" }; server @@ -113,7 +137,7 @@ describe("Roles", () => { test("assign (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { roles: ["roles", "roles"] }; const rawResponseBody = { key: "value" }; server @@ -134,7 +158,7 @@ describe("Roles", () => { test("assign (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { roles: ["roles", "roles"] }; const rawResponseBody = { key: "value" }; server @@ -155,7 +179,7 @@ describe("Roles", () => { test("assign (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { roles: ["roles", "roles"] }; const rawResponseBody = { key: "value" }; server @@ -176,7 +200,7 @@ describe("Roles", () => { test("delete (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { roles: ["roles"] }; server.mockEndpoint().delete("/users/id/roles").jsonBody(rawRequestBody).respondWith().statusCode(200).build(); @@ -189,7 +213,7 @@ describe("Roles", () => { test("delete (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { roles: ["roles", "roles"] }; const rawResponseBody = { key: "value" }; server @@ -210,7 +234,7 @@ describe("Roles", () => { test("delete (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { roles: ["roles", "roles"] }; const rawResponseBody = { key: "value" }; server @@ -231,7 +255,7 @@ describe("Roles", () => { test("delete (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { roles: ["roles", "roles"] }; const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/users/sessions.test.ts b/src/management/tests/wire/users/sessions.test.ts index e24595d064..a5777ebf98 100644 --- a/src/management/tests/wire/users/sessions.test.ts +++ b/src/management/tests/wire/users/sessions.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../Client"; import * as Management from "../../../api/index"; +import { ManagementClient } from "../../../Client"; +import { mockServerPool } from "../../mock-server/MockServerPool"; -describe("Sessions", () => { +describe("SessionsClient", () => { test("list (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { sessions: [ @@ -21,13 +21,12 @@ describe("Sessions", () => { expires_at: "2024-01-15T09:30:00Z", last_interacted_at: "2024-01-15T09:30:00Z", clients: [{}], - session_metadata: { key: "value" }, }, ], next: "next", }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/users/user_id/sessions") .respondWith() .statusCode(200) @@ -46,9 +45,6 @@ describe("Sessions", () => { expires_at: "2024-01-15T09:30:00Z", last_interacted_at: "2024-01-15T09:30:00Z", clients: [{}], - session_metadata: { - key: "value", - }, }, ], next: "next", @@ -66,11 +62,11 @@ describe("Sessions", () => { test("list (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/users/user_id/sessions") .respondWith() .statusCode(401) @@ -84,11 +80,11 @@ describe("Sessions", () => { test("list (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/users/user_id/sessions") .respondWith() .statusCode(403) @@ -102,11 +98,11 @@ describe("Sessions", () => { test("list (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/users/user_id/sessions") .respondWith() .statusCode(404) @@ -120,11 +116,11 @@ describe("Sessions", () => { test("list (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/users/user_id/sessions") .respondWith() .statusCode(429) @@ -138,7 +134,7 @@ describe("Sessions", () => { test("delete (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); server.mockEndpoint().delete("/users/user_id/sessions").respondWith().statusCode(200).build(); @@ -148,7 +144,7 @@ describe("Sessions", () => { test("delete (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -166,7 +162,7 @@ describe("Sessions", () => { test("delete (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -184,7 +180,7 @@ describe("Sessions", () => { test("delete (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -202,7 +198,7 @@ describe("Sessions", () => { test("delete (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -220,7 +216,7 @@ describe("Sessions", () => { test("delete (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server diff --git a/src/management/tests/wire/verifiableCredentials/verification/templates.test.ts b/src/management/tests/wire/verifiableCredentials/verification/templates.test.ts index 3c9936eb01..89d625838a 100644 --- a/src/management/tests/wire/verifiableCredentials/verification/templates.test.ts +++ b/src/management/tests/wire/verifiableCredentials/verification/templates.test.ts @@ -1,13 +1,13 @@ // This file was auto-generated by Fern from our API Definition. -import { mockServerPool } from "../../../mock-server/MockServerPool"; -import { ManagementClient } from "../../../../Client"; import * as Management from "../../../../api/index"; +import { ManagementClient } from "../../../../Client"; +import { mockServerPool } from "../../../mock-server/MockServerPool"; -describe("Templates", () => { +describe("TemplatesClient", () => { test("list (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { next: "next", @@ -26,7 +26,7 @@ describe("Templates", () => { ], }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/verifiable-credentials/verification/templates") .respondWith() .statusCode(200) @@ -66,11 +66,11 @@ describe("Templates", () => { test("list (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/verifiable-credentials/verification/templates") .respondWith() .statusCode(400) @@ -84,11 +84,11 @@ describe("Templates", () => { test("list (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/verifiable-credentials/verification/templates") .respondWith() .statusCode(401) @@ -102,11 +102,11 @@ describe("Templates", () => { test("list (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/verifiable-credentials/verification/templates") .respondWith() .statusCode(403) @@ -120,11 +120,11 @@ describe("Templates", () => { test("list (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server - .mockEndpoint() + .mockEndpoint({ once: false }) .get("/verifiable-credentials/verification/templates") .respondWith() .statusCode(429) @@ -138,7 +138,7 @@ describe("Templates", () => { test("create (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "name", type: "type", @@ -196,7 +196,7 @@ describe("Templates", () => { test("create (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "x", type: "x", @@ -231,7 +231,7 @@ describe("Templates", () => { test("create (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "x", type: "x", @@ -266,7 +266,7 @@ describe("Templates", () => { test("create (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "x", type: "x", @@ -301,7 +301,7 @@ describe("Templates", () => { test("create (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "x", type: "x", @@ -336,7 +336,7 @@ describe("Templates", () => { test("create (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = { name: "x", type: "x", @@ -371,7 +371,7 @@ describe("Templates", () => { test("get (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { id: "id", @@ -412,7 +412,7 @@ describe("Templates", () => { test("get (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -430,7 +430,7 @@ describe("Templates", () => { test("get (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -448,7 +448,7 @@ describe("Templates", () => { test("get (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -466,7 +466,7 @@ describe("Templates", () => { test("get (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -484,7 +484,7 @@ describe("Templates", () => { test("get (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -502,7 +502,7 @@ describe("Templates", () => { test("delete (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); server .mockEndpoint() @@ -517,7 +517,7 @@ describe("Templates", () => { test("delete (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -535,7 +535,7 @@ describe("Templates", () => { test("delete (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -553,7 +553,7 @@ describe("Templates", () => { test("delete (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -571,7 +571,7 @@ describe("Templates", () => { test("delete (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawResponseBody = { key: "value" }; server @@ -589,7 +589,7 @@ describe("Templates", () => { test("update (1)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { id: "id", @@ -631,7 +631,7 @@ describe("Templates", () => { test("update (2)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -650,7 +650,7 @@ describe("Templates", () => { test("update (3)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -669,7 +669,7 @@ describe("Templates", () => { test("update (4)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -688,7 +688,7 @@ describe("Templates", () => { test("update (5)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server @@ -707,7 +707,7 @@ describe("Templates", () => { test("update (6)", async () => { const server = mockServerPool.createServer(); - const client = new ManagementClient({ token: "test", environment: server.baseUrl }); + const client = new ManagementClient({ maxRetries: 0, token: "test", environment: server.baseUrl }); const rawRequestBody = {}; const rawResponseBody = { key: "value" }; server diff --git a/src/management/version.ts b/src/management/version.ts index c0103fd82a..5f717ba2ad 100644 --- a/src/management/version.ts +++ b/src/management/version.ts @@ -1 +1 @@ -export const SDK_VERSION = "5.0.0"; +export const SDK_VERSION = "5.1.1"; diff --git a/yarn.lock b/yarn.lock deleted file mode 100644 index d6cfacbcda..0000000000 --- a/yarn.lock +++ /dev/null @@ -1,4228 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.27.1.tgz#200f715e66d52a23b221a9435534a91cc13ad5be" - integrity sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg== - dependencies: - "@babel/helper-validator-identifier" "^7.27.1" - js-tokens "^4.0.0" - picocolors "^1.1.1" - -"@babel/compat-data@^7.27.2": - version "7.28.5" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.28.5.tgz#a8a4962e1567121ac0b3b487f52107443b455c7f" - integrity sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA== - -"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.23.9": - version "7.28.5" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.28.5.tgz#4c81b35e51e1b734f510c99b07dfbc7bbbb48f7e" - integrity sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw== - dependencies: - "@babel/code-frame" "^7.27.1" - "@babel/generator" "^7.28.5" - "@babel/helper-compilation-targets" "^7.27.2" - "@babel/helper-module-transforms" "^7.28.3" - "@babel/helpers" "^7.28.4" - "@babel/parser" "^7.28.5" - "@babel/template" "^7.27.2" - "@babel/traverse" "^7.28.5" - "@babel/types" "^7.28.5" - "@jridgewell/remapping" "^2.3.5" - convert-source-map "^2.0.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.3" - semver "^6.3.1" - -"@babel/generator@^7.28.5", "@babel/generator@^7.7.2": - version "7.28.5" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.28.5.tgz#712722d5e50f44d07bc7ac9fe84438742dd61298" - integrity sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ== - dependencies: - "@babel/parser" "^7.28.5" - "@babel/types" "^7.28.5" - "@jridgewell/gen-mapping" "^0.3.12" - "@jridgewell/trace-mapping" "^0.3.28" - jsesc "^3.0.2" - -"@babel/helper-compilation-targets@^7.27.2": - version "7.27.2" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz#46a0f6efab808d51d29ce96858dd10ce8732733d" - integrity sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ== - dependencies: - "@babel/compat-data" "^7.27.2" - "@babel/helper-validator-option" "^7.27.1" - browserslist "^4.24.0" - lru-cache "^5.1.1" - semver "^6.3.1" - -"@babel/helper-globals@^7.28.0": - version "7.28.0" - resolved "https://registry.yarnpkg.com/@babel/helper-globals/-/helper-globals-7.28.0.tgz#b9430df2aa4e17bc28665eadeae8aa1d985e6674" - integrity sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw== - -"@babel/helper-module-imports@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz#7ef769a323e2655e126673bb6d2d6913bbead204" - integrity sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w== - dependencies: - "@babel/traverse" "^7.27.1" - "@babel/types" "^7.27.1" - -"@babel/helper-module-transforms@^7.28.3": - version "7.28.3" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz#a2b37d3da3b2344fe085dab234426f2b9a2fa5f6" - integrity sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw== - dependencies: - "@babel/helper-module-imports" "^7.27.1" - "@babel/helper-validator-identifier" "^7.27.1" - "@babel/traverse" "^7.28.3" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.27.1", "@babel/helper-plugin-utils@^7.8.0": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz#ddb2f876534ff8013e6c2b299bf4d39b3c51d44c" - integrity sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw== - -"@babel/helper-string-parser@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz#54da796097ab19ce67ed9f88b47bb2ec49367687" - integrity sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA== - -"@babel/helper-validator-identifier@^7.27.1", "@babel/helper-validator-identifier@^7.28.5": - version "7.28.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz#010b6938fab7cb7df74aa2bbc06aa503b8fe5fb4" - integrity sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q== - -"@babel/helper-validator-option@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz#fa52f5b1e7db1ab049445b421c4471303897702f" - integrity sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg== - -"@babel/helpers@^7.28.4": - version "7.28.4" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.28.4.tgz#fe07274742e95bdf7cf1443593eeb8926ab63827" - integrity sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w== - dependencies: - "@babel/template" "^7.27.2" - "@babel/types" "^7.28.4" - -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.27.2", "@babel/parser@^7.28.5": - version "7.28.5" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.28.5.tgz#0b0225ee90362f030efd644e8034c99468893b08" - integrity sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ== - dependencies: - "@babel/types" "^7.28.5" - -"@babel/plugin-syntax-async-generators@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" - integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-bigint@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" - integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-class-properties@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" - integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-syntax-class-static-block@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" - integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-import-attributes@^7.24.7": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz#34c017d54496f9b11b61474e7ea3dfd5563ffe07" - integrity sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-syntax-import-meta@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" - integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-json-strings@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" - integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-jsx@^7.7.2": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz#2f9beb5eff30fa507c5532d107daac7b888fa34c" - integrity sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" - integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" - integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-numeric-separator@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" - integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-object-rest-spread@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" - integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-catch-binding@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" - integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-chaining@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" - integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-private-property-in-object@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" - integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-top-level-await@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" - integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-typescript@^7.7.2": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz#5147d29066a793450f220c63fa3a9431b7e6dd18" - integrity sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/template@^7.27.2", "@babel/template@^7.3.3": - version "7.27.2" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.27.2.tgz#fa78ceed3c4e7b63ebf6cb39e5852fca45f6809d" - integrity sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw== - dependencies: - "@babel/code-frame" "^7.27.1" - "@babel/parser" "^7.27.2" - "@babel/types" "^7.27.1" - -"@babel/traverse@^7.27.1", "@babel/traverse@^7.28.3", "@babel/traverse@^7.28.5": - version "7.28.5" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.28.5.tgz#450cab9135d21a7a2ca9d2d35aa05c20e68c360b" - integrity sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ== - dependencies: - "@babel/code-frame" "^7.27.1" - "@babel/generator" "^7.28.5" - "@babel/helper-globals" "^7.28.0" - "@babel/parser" "^7.28.5" - "@babel/template" "^7.27.2" - "@babel/types" "^7.28.5" - debug "^4.3.1" - -"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.27.1", "@babel/types@^7.28.2", "@babel/types@^7.28.4", "@babel/types@^7.28.5", "@babel/types@^7.3.3": - version "7.28.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.28.5.tgz#10fc405f60897c35f07e85493c932c7b5ca0592b" - integrity sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA== - dependencies: - "@babel/helper-string-parser" "^7.27.1" - "@babel/helper-validator-identifier" "^7.28.5" - -"@bcoe/v8-coverage@^0.2.3": - version "0.2.3" - resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" - integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== - -"@bundled-es-modules/cookie@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@bundled-es-modules/cookie/-/cookie-2.0.1.tgz#b41376af6a06b3e32a15241d927b840a9b4de507" - integrity sha512-8o+5fRPLNbjbdGRRmJj3h6Hh1AQJf2dk3qQ/5ZFb+PXkRNiSoMGGUKlsgLfrxneb72axVJyIYji64E2+nNfYyw== - dependencies: - cookie "^0.7.2" - -"@bundled-es-modules/statuses@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@bundled-es-modules/statuses/-/statuses-1.0.1.tgz#761d10f44e51a94902c4da48675b71a76cc98872" - integrity sha512-yn7BklA5acgcBr+7w064fGV+SGIFySjCKpqjcWgBAIfrAkY+4GQTJJHQMeT3V/sgz23VTEVV8TtOmkvJAhFVfg== - dependencies: - statuses "^2.0.1" - -"@eslint-community/eslint-utils@^4.7.0", "@eslint-community/eslint-utils@^4.8.0": - version "4.9.0" - resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.9.0.tgz#7308df158e064f0dd8b8fdb58aa14fa2a7f913b3" - integrity sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g== - dependencies: - eslint-visitor-keys "^3.4.3" - -"@eslint-community/regexpp@^4.10.0", "@eslint-community/regexpp@^4.12.1": - version "4.12.2" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.2.tgz#bccdf615bcf7b6e8db830ec0b8d21c9a25de597b" - integrity sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew== - -"@eslint/config-array@^0.21.1": - version "0.21.1" - resolved "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.21.1.tgz#7d1b0060fea407f8301e932492ba8c18aff29713" - integrity sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA== - dependencies: - "@eslint/object-schema" "^2.1.7" - debug "^4.3.1" - minimatch "^3.1.2" - -"@eslint/config-helpers@^0.4.2": - version "0.4.2" - resolved "https://registry.yarnpkg.com/@eslint/config-helpers/-/config-helpers-0.4.2.tgz#1bd006ceeb7e2e55b2b773ab318d300e1a66aeda" - integrity sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw== - dependencies: - "@eslint/core" "^0.17.0" - -"@eslint/core@^0.17.0": - version "0.17.0" - resolved "https://registry.yarnpkg.com/@eslint/core/-/core-0.17.0.tgz#77225820413d9617509da9342190a2019e78761c" - integrity sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ== - dependencies: - "@types/json-schema" "^7.0.15" - -"@eslint/eslintrc@^3.3.1": - version "3.3.1" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.3.1.tgz#e55f7f1dd400600dd066dbba349c4c0bac916964" - integrity sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ== - dependencies: - ajv "^6.12.4" - debug "^4.3.2" - espree "^10.0.1" - globals "^14.0.0" - ignore "^5.2.0" - import-fresh "^3.2.1" - js-yaml "^4.1.0" - minimatch "^3.1.2" - strip-json-comments "^3.1.1" - -"@eslint/js@9.39.1", "@eslint/js@^9.32.0": - version "9.39.1" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.39.1.tgz#0dd59c3a9f40e3f1882975c321470969243e0164" - integrity sha512-S26Stp4zCy88tH94QbBv3XCuzRQiZ9yXofEILmglYTh/Ug/a9/umqvgFtYBAo3Lp0nsI/5/qH1CCrbdK3AP1Tw== - -"@eslint/object-schema@^2.1.7": - version "2.1.7" - resolved "https://registry.yarnpkg.com/@eslint/object-schema/-/object-schema-2.1.7.tgz#6e2126a1347e86a4dedf8706ec67ff8e107ebbad" - integrity sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA== - -"@eslint/plugin-kit@^0.4.1": - version "0.4.1" - resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz#9779e3fd9b7ee33571a57435cf4335a1794a6cb2" - integrity sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA== - dependencies: - "@eslint/core" "^0.17.0" - levn "^0.4.1" - -"@gerrit0/mini-shiki@^3.12.0": - version "3.14.0" - resolved "https://registry.yarnpkg.com/@gerrit0/mini-shiki/-/mini-shiki-3.14.0.tgz#ba66291e151b909cf96515e1cf6cba38748e4b62" - integrity sha512-c5X8fwPLOtUS8TVdqhynz9iV0GlOtFUT1ppXYzUUlEXe4kbZ/mvMT8wXoT8kCwUka+zsiloq7sD3pZ3+QVTuNQ== - dependencies: - "@shikijs/engine-oniguruma" "^3.14.0" - "@shikijs/langs" "^3.14.0" - "@shikijs/themes" "^3.14.0" - "@shikijs/types" "^3.14.0" - "@shikijs/vscode-textmate" "^10.0.2" - -"@humanfs/core@^0.19.1": - version "0.19.1" - resolved "https://registry.yarnpkg.com/@humanfs/core/-/core-0.19.1.tgz#17c55ca7d426733fe3c561906b8173c336b40a77" - integrity sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA== - -"@humanfs/node@^0.16.6": - version "0.16.7" - resolved "https://registry.yarnpkg.com/@humanfs/node/-/node-0.16.7.tgz#822cb7b3a12c5a240a24f621b5a2413e27a45f26" - integrity sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ== - dependencies: - "@humanfs/core" "^0.19.1" - "@humanwhocodes/retry" "^0.4.0" - -"@humanwhocodes/module-importer@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" - integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== - -"@humanwhocodes/retry@^0.4.0", "@humanwhocodes/retry@^0.4.2": - version "0.4.3" - resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.4.3.tgz#c2b9d2e374ee62c586d3adbea87199b1d7a7a6ba" - integrity sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ== - -"@inquirer/ansi@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@inquirer/ansi/-/ansi-1.0.1.tgz#994f7dd16a00c547a7b110e04bf4f4eca1857929" - integrity sha512-yqq0aJW/5XPhi5xOAL1xRCpe1eh8UFVgYFpFsjEqmIR8rKLyP+HINvFXwUaxYICflJrVlxnp7lLN6As735kVpw== - -"@inquirer/confirm@^5.0.0": - version "5.1.19" - resolved "https://registry.yarnpkg.com/@inquirer/confirm/-/confirm-5.1.19.tgz#bf28b420898999eb7479ab55623a3fbaf1453ff4" - integrity sha512-wQNz9cfcxrtEnUyG5PndC8g3gZ7lGDBzmWiXZkX8ot3vfZ+/BLjR8EvyGX4YzQLeVqtAlY/YScZpW7CW8qMoDQ== - dependencies: - "@inquirer/core" "^10.3.0" - "@inquirer/type" "^3.0.9" - -"@inquirer/core@^10.3.0": - version "10.3.0" - resolved "https://registry.yarnpkg.com/@inquirer/core/-/core-10.3.0.tgz#342e4fd62cbd33ea62089364274995dbec1f2ffe" - integrity sha512-Uv2aPPPSK5jeCplQmQ9xadnFx2Zhj9b5Dj7bU6ZeCdDNNY11nhYy4btcSdtDguHqCT2h5oNeQTcUNSGGLA7NTA== - dependencies: - "@inquirer/ansi" "^1.0.1" - "@inquirer/figures" "^1.0.14" - "@inquirer/type" "^3.0.9" - cli-width "^4.1.0" - mute-stream "^2.0.0" - signal-exit "^4.1.0" - wrap-ansi "^6.2.0" - yoctocolors-cjs "^2.1.2" - -"@inquirer/figures@^1.0.14": - version "1.0.14" - resolved "https://registry.yarnpkg.com/@inquirer/figures/-/figures-1.0.14.tgz#12a7bfd344a83ae6cc5d6004b389ed11f6db6be4" - integrity sha512-DbFgdt+9/OZYFM+19dbpXOSeAstPy884FPy1KjDu4anWwymZeOYhMY1mdFri172htv6mvc/uvIAAi7b7tvjJBQ== - -"@inquirer/type@^3.0.9": - version "3.0.9" - resolved "https://registry.yarnpkg.com/@inquirer/type/-/type-3.0.9.tgz#f7f9696e9276e4e1ae9332767afb9199992e31d9" - integrity sha512-QPaNt/nmE2bLGQa9b7wwyRJoLZ7pN6rcyXvzU0YCmivmJyq1BVo94G98tStRWkoD1RgDX5C+dPlhhHzNdu/W/w== - -"@istanbuljs/load-nyc-config@^1.0.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" - integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== - dependencies: - camelcase "^5.3.1" - find-up "^4.1.0" - get-package-type "^0.1.0" - js-yaml "^3.13.1" - resolve-from "^5.0.0" - -"@istanbuljs/schema@^0.1.2", "@istanbuljs/schema@^0.1.3": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" - integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== - -"@jest/console@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.7.0.tgz#cd4822dbdb84529265c5a2bdb529a3c9cc950ffc" - integrity sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg== - dependencies: - "@jest/types" "^29.6.3" - "@types/node" "*" - chalk "^4.0.0" - jest-message-util "^29.7.0" - jest-util "^29.7.0" - slash "^3.0.0" - -"@jest/core@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.7.0.tgz#b6cccc239f30ff36609658c5a5e2291757ce448f" - integrity sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg== - dependencies: - "@jest/console" "^29.7.0" - "@jest/reporters" "^29.7.0" - "@jest/test-result" "^29.7.0" - "@jest/transform" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - ci-info "^3.2.0" - exit "^0.1.2" - graceful-fs "^4.2.9" - jest-changed-files "^29.7.0" - jest-config "^29.7.0" - jest-haste-map "^29.7.0" - jest-message-util "^29.7.0" - jest-regex-util "^29.6.3" - jest-resolve "^29.7.0" - jest-resolve-dependencies "^29.7.0" - jest-runner "^29.7.0" - jest-runtime "^29.7.0" - jest-snapshot "^29.7.0" - jest-util "^29.7.0" - jest-validate "^29.7.0" - jest-watcher "^29.7.0" - micromatch "^4.0.4" - pretty-format "^29.7.0" - slash "^3.0.0" - strip-ansi "^6.0.0" - -"@jest/environment@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.7.0.tgz#24d61f54ff1f786f3cd4073b4b94416383baf2a7" - integrity sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw== - dependencies: - "@jest/fake-timers" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/node" "*" - jest-mock "^29.7.0" - -"@jest/expect-utils@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.7.0.tgz#023efe5d26a8a70f21677d0a1afc0f0a44e3a1c6" - integrity sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA== - dependencies: - jest-get-type "^29.6.3" - -"@jest/expect@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.7.0.tgz#76a3edb0cb753b70dfbfe23283510d3d45432bf2" - integrity sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ== - dependencies: - expect "^29.7.0" - jest-snapshot "^29.7.0" - -"@jest/fake-timers@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.7.0.tgz#fd91bf1fffb16d7d0d24a426ab1a47a49881a565" - integrity sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ== - dependencies: - "@jest/types" "^29.6.3" - "@sinonjs/fake-timers" "^10.0.2" - "@types/node" "*" - jest-message-util "^29.7.0" - jest-mock "^29.7.0" - jest-util "^29.7.0" - -"@jest/globals@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.7.0.tgz#8d9290f9ec47ff772607fa864ca1d5a2efae1d4d" - integrity sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ== - dependencies: - "@jest/environment" "^29.7.0" - "@jest/expect" "^29.7.0" - "@jest/types" "^29.6.3" - jest-mock "^29.7.0" - -"@jest/reporters@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.7.0.tgz#04b262ecb3b8faa83b0b3d321623972393e8f4c7" - integrity sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg== - dependencies: - "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^29.7.0" - "@jest/test-result" "^29.7.0" - "@jest/transform" "^29.7.0" - "@jest/types" "^29.6.3" - "@jridgewell/trace-mapping" "^0.3.18" - "@types/node" "*" - chalk "^4.0.0" - collect-v8-coverage "^1.0.0" - exit "^0.1.2" - glob "^7.1.3" - graceful-fs "^4.2.9" - istanbul-lib-coverage "^3.0.0" - istanbul-lib-instrument "^6.0.0" - istanbul-lib-report "^3.0.0" - istanbul-lib-source-maps "^4.0.0" - istanbul-reports "^3.1.3" - jest-message-util "^29.7.0" - jest-util "^29.7.0" - jest-worker "^29.7.0" - slash "^3.0.0" - string-length "^4.0.1" - strip-ansi "^6.0.0" - v8-to-istanbul "^9.0.1" - -"@jest/schemas@^29.6.3": - version "29.6.3" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03" - integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== - dependencies: - "@sinclair/typebox" "^0.27.8" - -"@jest/source-map@^29.6.3": - version "29.6.3" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.6.3.tgz#d90ba772095cf37a34a5eb9413f1b562a08554c4" - integrity sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw== - dependencies: - "@jridgewell/trace-mapping" "^0.3.18" - callsites "^3.0.0" - graceful-fs "^4.2.9" - -"@jest/test-result@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.7.0.tgz#8db9a80aa1a097bb2262572686734baed9b1657c" - integrity sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA== - dependencies: - "@jest/console" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/istanbul-lib-coverage" "^2.0.0" - collect-v8-coverage "^1.0.0" - -"@jest/test-sequencer@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz#6cef977ce1d39834a3aea887a1726628a6f072ce" - integrity sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw== - dependencies: - "@jest/test-result" "^29.7.0" - graceful-fs "^4.2.9" - jest-haste-map "^29.7.0" - slash "^3.0.0" - -"@jest/transform@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.7.0.tgz#df2dd9c346c7d7768b8a06639994640c642e284c" - integrity sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw== - dependencies: - "@babel/core" "^7.11.6" - "@jest/types" "^29.6.3" - "@jridgewell/trace-mapping" "^0.3.18" - babel-plugin-istanbul "^6.1.1" - chalk "^4.0.0" - convert-source-map "^2.0.0" - fast-json-stable-stringify "^2.1.0" - graceful-fs "^4.2.9" - jest-haste-map "^29.7.0" - jest-regex-util "^29.6.3" - jest-util "^29.7.0" - micromatch "^4.0.4" - pirates "^4.0.4" - slash "^3.0.0" - write-file-atomic "^4.0.2" - -"@jest/types@^29.6.3": - version "29.6.3" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.6.3.tgz#1131f8cf634e7e84c5e77bab12f052af585fba59" - integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw== - dependencies: - "@jest/schemas" "^29.6.3" - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^17.0.8" - chalk "^4.0.0" - -"@jridgewell/gen-mapping@^0.3.12", "@jridgewell/gen-mapping@^0.3.5": - version "0.3.13" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz#6342a19f44347518c93e43b1ac69deb3c4656a1f" - integrity sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA== - dependencies: - "@jridgewell/sourcemap-codec" "^1.5.0" - "@jridgewell/trace-mapping" "^0.3.24" - -"@jridgewell/remapping@^2.3.5": - version "2.3.5" - resolved "https://registry.yarnpkg.com/@jridgewell/remapping/-/remapping-2.3.5.tgz#375c476d1972947851ba1e15ae8f123047445aa1" - integrity sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ== - dependencies: - "@jridgewell/gen-mapping" "^0.3.5" - "@jridgewell/trace-mapping" "^0.3.24" - -"@jridgewell/resolve-uri@^3.1.0": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" - integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== - -"@jridgewell/source-map@^0.3.3": - version "0.3.11" - resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.11.tgz#b21835cbd36db656b857c2ad02ebd413cc13a9ba" - integrity sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA== - dependencies: - "@jridgewell/gen-mapping" "^0.3.5" - "@jridgewell/trace-mapping" "^0.3.25" - -"@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.5.0": - version "1.5.5" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz#6912b00d2c631c0d15ce1a7ab57cd657f2a8f8ba" - integrity sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og== - -"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25", "@jridgewell/trace-mapping@^0.3.28": - version "0.3.31" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz#db15d6781c931f3a251a3dac39501c98a6082fd0" - integrity sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw== - dependencies: - "@jridgewell/resolve-uri" "^3.1.0" - "@jridgewell/sourcemap-codec" "^1.4.14" - -"@mswjs/interceptors@^0.39.1", "@mswjs/interceptors@^0.39.5": - version "0.39.8" - resolved "https://registry.yarnpkg.com/@mswjs/interceptors/-/interceptors-0.39.8.tgz#0a2cf4cf26a731214ca4156273121f67dff7ebf8" - integrity sha512-2+BzZbjRO7Ct61k8fMNHEtoKjeWI9pIlHFTqBwZ5icHpqszIgEZbjb1MW5Z0+bITTCTl3gk4PDBxs9tA/csXvA== - dependencies: - "@open-draft/deferred-promise" "^2.2.0" - "@open-draft/logger" "^0.3.0" - "@open-draft/until" "^2.0.0" - is-node-process "^1.2.0" - outvariant "^1.4.3" - strict-event-emitter "^0.5.1" - -"@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== - dependencies: - "@nodelib/fs.stat" "2.0.5" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== - -"@nodelib/fs.walk@^1.2.3": - version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== - dependencies: - "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" - -"@open-draft/deferred-promise@^2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@open-draft/deferred-promise/-/deferred-promise-2.2.0.tgz#4a822d10f6f0e316be4d67b4d4f8c9a124b073bd" - integrity sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA== - -"@open-draft/logger@^0.3.0": - version "0.3.0" - resolved "https://registry.yarnpkg.com/@open-draft/logger/-/logger-0.3.0.tgz#2b3ab1242b360aa0adb28b85f5d7da1c133a0954" - integrity sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ== - dependencies: - is-node-process "^1.2.0" - outvariant "^1.4.0" - -"@open-draft/until@^2.0.0", "@open-draft/until@^2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@open-draft/until/-/until-2.1.0.tgz#0acf32f470af2ceaf47f095cdecd40d68666efda" - integrity sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg== - -"@pkgr/core@^0.2.9": - version "0.2.9" - resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.2.9.tgz#d229a7b7f9dac167a156992ef23c7f023653f53b" - integrity sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA== - -"@publint/pack@^0.1.2": - version "0.1.2" - resolved "https://registry.yarnpkg.com/@publint/pack/-/pack-0.1.2.tgz#1b9a9567423262093e4a73e77697b65bf622f8c9" - integrity sha512-S+9ANAvUmjutrshV4jZjaiG8XQyuJIZ8a4utWmN/vW1sgQ9IfBnPndwkmQYw53QmouOIytT874u65HEmu6H5jw== - -"@shikijs/engine-oniguruma@^3.14.0": - version "3.14.0" - resolved "https://registry.yarnpkg.com/@shikijs/engine-oniguruma/-/engine-oniguruma-3.14.0.tgz#562bcce2f69cc65c92bcf2ccb637b2a7021f3d7b" - integrity sha512-TNcYTYMbJyy+ZjzWtt0bG5y4YyMIWC2nyePz+CFMWqm+HnZZyy9SWMgo8Z6KBJVIZnx8XUXS8U2afO6Y0g1Oug== - dependencies: - "@shikijs/types" "3.14.0" - "@shikijs/vscode-textmate" "^10.0.2" - -"@shikijs/langs@^3.14.0": - version "3.14.0" - resolved "https://registry.yarnpkg.com/@shikijs/langs/-/langs-3.14.0.tgz#71e6ca44e661b405209eb63d4449b57b9de529d0" - integrity sha512-DIB2EQY7yPX1/ZH7lMcwrK5pl+ZkP/xoSpUzg9YC8R+evRCCiSQ7yyrvEyBsMnfZq4eBzLzBlugMyTAf13+pzg== - dependencies: - "@shikijs/types" "3.14.0" - -"@shikijs/themes@^3.14.0": - version "3.14.0" - resolved "https://registry.yarnpkg.com/@shikijs/themes/-/themes-3.14.0.tgz#2b516c19caf63f78f81f5df9c087800c3b2c7404" - integrity sha512-fAo/OnfWckNmv4uBoUu6dSlkcBc+SA1xzj5oUSaz5z3KqHtEbUypg/9xxgJARtM6+7RVm0Q6Xnty41xA1ma1IA== - dependencies: - "@shikijs/types" "3.14.0" - -"@shikijs/types@3.14.0", "@shikijs/types@^3.14.0": - version "3.14.0" - resolved "https://registry.yarnpkg.com/@shikijs/types/-/types-3.14.0.tgz#4e666f8d31e319494daf23efcc19a32a5fdaa341" - integrity sha512-bQGgC6vrY8U/9ObG1Z/vTro+uclbjjD/uG58RvfxKZVD5p9Yc1ka3tVyEFy7BNJLzxuWyHH5NWynP9zZZS59eQ== - dependencies: - "@shikijs/vscode-textmate" "^10.0.2" - "@types/hast" "^3.0.4" - -"@shikijs/vscode-textmate@^10.0.2": - version "10.0.2" - resolved "https://registry.yarnpkg.com/@shikijs/vscode-textmate/-/vscode-textmate-10.0.2.tgz#a90ab31d0cc1dfb54c66a69e515bf624fa7b2224" - integrity sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg== - -"@sinclair/typebox@^0.27.8": - version "0.27.8" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" - integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== - -"@sinonjs/commons@^3.0.0": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-3.0.1.tgz#1029357e44ca901a615585f6d27738dbc89084cd" - integrity sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ== - dependencies: - type-detect "4.0.8" - -"@sinonjs/fake-timers@^10.0.2": - version "10.3.0" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz#55fdff1ecab9f354019129daf4df0dd4d923ea66" - integrity sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA== - dependencies: - "@sinonjs/commons" "^3.0.0" - -"@tootallnate/once@2": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" - integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== - -"@types/babel__core@^7.1.14": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017" - integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== - dependencies: - "@babel/parser" "^7.20.7" - "@babel/types" "^7.20.7" - "@types/babel__generator" "*" - "@types/babel__template" "*" - "@types/babel__traverse" "*" - -"@types/babel__generator@*": - version "7.27.0" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.27.0.tgz#b5819294c51179957afaec341442f9341e4108a9" - integrity sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg== - dependencies: - "@babel/types" "^7.0.0" - -"@types/babel__template@*": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.4.tgz#5672513701c1b2199bc6dad636a9d7491586766f" - integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - -"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": - version "7.28.0" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.28.0.tgz#07d713d6cce0d265c9849db0cbe62d3f61f36f74" - integrity sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q== - dependencies: - "@babel/types" "^7.28.2" - -"@types/cookie@^0.6.0": - version "0.6.0" - resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.6.0.tgz#eac397f28bf1d6ae0ae081363eca2f425bedf0d5" - integrity sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA== - -"@types/eslint-scope@^3.7.7": - version "3.7.7" - resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.7.tgz#3108bd5f18b0cdb277c867b3dd449c9ed7079ac5" - integrity sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg== - dependencies: - "@types/eslint" "*" - "@types/estree" "*" - -"@types/eslint@*": - version "9.6.1" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-9.6.1.tgz#d5795ad732ce81715f27f75da913004a56751584" - integrity sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag== - dependencies: - "@types/estree" "*" - "@types/json-schema" "*" - -"@types/estree@*", "@types/estree@^1.0.6", "@types/estree@^1.0.8": - version "1.0.8" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.8.tgz#958b91c991b1867ced318bedea0e215ee050726e" - integrity sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w== - -"@types/graceful-fs@^4.1.3": - version "4.1.9" - resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz#2a06bc0f68a20ab37b3e36aa238be6abdf49e8b4" - integrity sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ== - dependencies: - "@types/node" "*" - -"@types/hast@^3.0.4": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@types/hast/-/hast-3.0.4.tgz#1d6b39993b82cea6ad783945b0508c25903e15aa" - integrity sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ== - dependencies: - "@types/unist" "*" - -"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": - version "2.0.6" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7" - integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== - -"@types/istanbul-lib-report@*": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz#53047614ae72e19fc0401d872de3ae2b4ce350bf" - integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA== - dependencies: - "@types/istanbul-lib-coverage" "*" - -"@types/istanbul-reports@^3.0.0": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz#0f03e3d2f670fbdac586e34b433783070cc16f54" - integrity sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ== - dependencies: - "@types/istanbul-lib-report" "*" - -"@types/jest@^29.5.14": - version "29.5.14" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.14.tgz#2b910912fa1d6856cadcd0c1f95af7df1d6049e5" - integrity sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ== - dependencies: - expect "^29.0.0" - pretty-format "^29.0.0" - -"@types/jsdom@^20.0.0": - version "20.0.1" - resolved "https://registry.yarnpkg.com/@types/jsdom/-/jsdom-20.0.1.tgz#07c14bc19bd2f918c1929541cdaacae894744808" - integrity sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ== - dependencies: - "@types/node" "*" - "@types/tough-cookie" "*" - parse5 "^7.0.0" - -"@types/json-schema@*", "@types/json-schema@^7.0.15", "@types/json-schema@^7.0.9": - version "7.0.15" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" - integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== - -"@types/node@*": - version "24.10.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-24.10.0.tgz#6b79086b0dfc54e775a34ba8114dcc4e0221f31f" - integrity sha512-qzQZRBqkFsYyaSWXuEHc2WR9c0a0CXwiE5FWUvn7ZM+vdy1uZLfCunD38UzhuB7YN/J11ndbDBcTmOdxJo9Q7A== - dependencies: - undici-types "~7.16.0" - -"@types/node@^18.19.70": - version "18.19.130" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.130.tgz#da4c6324793a79defb7a62cba3947ec5add00d59" - integrity sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg== - dependencies: - undici-types "~5.26.4" - -"@types/stack-utils@^2.0.0": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.3.tgz#6209321eb2c1712a7e7466422b8cb1fc0d9dd5d8" - integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw== - -"@types/statuses@^2.0.4": - version "2.0.6" - resolved "https://registry.yarnpkg.com/@types/statuses/-/statuses-2.0.6.tgz#66748315cc9a96d63403baa8671b2c124f8633aa" - integrity sha512-xMAgYwceFhRA2zY+XbEA7mxYbA093wdiW8Vu6gZPGWy9cmOyU9XesH1tNcEWsKFd5Vzrqx5T3D38PWx1FIIXkA== - -"@types/tough-cookie@*": - version "4.0.5" - resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.5.tgz#cb6e2a691b70cb177c6e3ae9c1d2e8b2ea8cd304" - integrity sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA== - -"@types/unist@*": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/unist/-/unist-3.0.3.tgz#acaab0f919ce69cce629c2d4ed2eb4adc1b6c20c" - integrity sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q== - -"@types/yargs-parser@*": - version "21.0.3" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz#815e30b786d2e8f0dcd85fd5bcf5e1a04d008f15" - integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== - -"@types/yargs@^17.0.8": - version "17.0.34" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.34.tgz#1c2f9635b71d5401827373a01ce2e8a7670ea839" - integrity sha512-KExbHVa92aJpw9WDQvzBaGVE2/Pz+pLZQloT2hjL8IqsZnV62rlPOYvNnLmf/L2dyllfVUOVBj64M0z/46eR2A== - dependencies: - "@types/yargs-parser" "*" - -"@typescript-eslint/eslint-plugin@^8.38.0": - version "8.46.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.46.3.tgz#6f7aeaf9f5c611425db9b8f983e8d3fe5deece3c" - integrity sha512-sbaQ27XBUopBkRiuY/P9sWGOWUW4rl8fDoHIUmLpZd8uldsTyB4/Zg6bWTegPoTLnKj9Hqgn3QD6cjPNB32Odw== - dependencies: - "@eslint-community/regexpp" "^4.10.0" - "@typescript-eslint/scope-manager" "8.46.3" - "@typescript-eslint/type-utils" "8.46.3" - "@typescript-eslint/utils" "8.46.3" - "@typescript-eslint/visitor-keys" "8.46.3" - graphemer "^1.4.0" - ignore "^7.0.0" - natural-compare "^1.4.0" - ts-api-utils "^2.1.0" - -"@typescript-eslint/parser@^8.38.0": - version "8.46.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.46.3.tgz#3badfb62d2e2dc733d02a038073e3f65f2cb833d" - integrity sha512-6m1I5RmHBGTnUGS113G04DMu3CpSdxCAU/UvtjNWL4Nuf3MW9tQhiJqRlHzChIkhy6kZSAQmc+I1bcGjE3yNKg== - dependencies: - "@typescript-eslint/scope-manager" "8.46.3" - "@typescript-eslint/types" "8.46.3" - "@typescript-eslint/typescript-estree" "8.46.3" - "@typescript-eslint/visitor-keys" "8.46.3" - debug "^4.3.4" - -"@typescript-eslint/project-service@8.46.3": - version "8.46.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/project-service/-/project-service-8.46.3.tgz#4555c685407ea829081218fa033d7b032607aaef" - integrity sha512-Fz8yFXsp2wDFeUElO88S9n4w1I4CWDTXDqDr9gYvZgUpwXQqmZBr9+NTTql5R3J7+hrJZPdpiWaB9VNhAKYLuQ== - dependencies: - "@typescript-eslint/tsconfig-utils" "^8.46.3" - "@typescript-eslint/types" "^8.46.3" - debug "^4.3.4" - -"@typescript-eslint/scope-manager@8.46.3": - version "8.46.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.46.3.tgz#2e330f566e135ccac13477b98dd88d8f176e4dff" - integrity sha512-FCi7Y1zgrmxp3DfWfr+3m9ansUUFoy8dkEdeQSgA9gbm8DaHYvZCdkFRQrtKiedFf3Ha6VmoqoAaP68+i+22kg== - dependencies: - "@typescript-eslint/types" "8.46.3" - "@typescript-eslint/visitor-keys" "8.46.3" - -"@typescript-eslint/tsconfig-utils@8.46.3", "@typescript-eslint/tsconfig-utils@^8.46.3": - version "8.46.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.46.3.tgz#cad33398c762c97fe56a8defda00c16505abefa3" - integrity sha512-GLupljMniHNIROP0zE7nCcybptolcH8QZfXOpCfhQDAdwJ/ZTlcaBOYebSOZotpti/3HrHSw7D3PZm75gYFsOA== - -"@typescript-eslint/type-utils@8.46.3": - version "8.46.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.46.3.tgz#71188df833d7697ecff256cd1d3889a20552d78c" - integrity sha512-ZPCADbr+qfz3aiTTYNNkCbUt+cjNwI/5McyANNrFBpVxPt7GqpEYz5ZfdwuFyGUnJ9FdDXbGODUu6iRCI6XRXw== - dependencies: - "@typescript-eslint/types" "8.46.3" - "@typescript-eslint/typescript-estree" "8.46.3" - "@typescript-eslint/utils" "8.46.3" - debug "^4.3.4" - ts-api-utils "^2.1.0" - -"@typescript-eslint/types@8.46.3", "@typescript-eslint/types@^8.46.3": - version "8.46.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.46.3.tgz#da05ea40e91359b4275dbb3a489f2f7907a02245" - integrity sha512-G7Ok9WN/ggW7e/tOf8TQYMaxgID3Iujn231hfi0Pc7ZheztIJVpO44ekY00b7akqc6nZcvregk0Jpah3kep6hA== - -"@typescript-eslint/typescript-estree@8.46.3": - version "8.46.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.46.3.tgz#c12406afba707f9779ce0c0151a08c33b3a96d41" - integrity sha512-f/NvtRjOm80BtNM5OQtlaBdM5BRFUv7gf381j9wygDNL+qOYSNOgtQ/DCndiYi80iIOv76QqaTmp4fa9hwI0OA== - dependencies: - "@typescript-eslint/project-service" "8.46.3" - "@typescript-eslint/tsconfig-utils" "8.46.3" - "@typescript-eslint/types" "8.46.3" - "@typescript-eslint/visitor-keys" "8.46.3" - debug "^4.3.4" - fast-glob "^3.3.2" - is-glob "^4.0.3" - minimatch "^9.0.4" - semver "^7.6.0" - ts-api-utils "^2.1.0" - -"@typescript-eslint/utils@8.46.3": - version "8.46.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.46.3.tgz#b6c7994b7c1ee2fe338ab32f7b3d4424856a73ce" - integrity sha512-VXw7qmdkucEx9WkmR3ld/u6VhRyKeiF1uxWwCy/iuNfokjJ7VhsgLSOTjsol8BunSw190zABzpwdNsze2Kpo4g== - dependencies: - "@eslint-community/eslint-utils" "^4.7.0" - "@typescript-eslint/scope-manager" "8.46.3" - "@typescript-eslint/types" "8.46.3" - "@typescript-eslint/typescript-estree" "8.46.3" - -"@typescript-eslint/visitor-keys@8.46.3": - version "8.46.3" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.46.3.tgz#6811b15053501981059c58e1c01b39242bd5c0f6" - integrity sha512-uk574k8IU0rOF/AjniX8qbLSGURJVUCeM5e4MIMKBFFi8weeiLrG1fyQejyLXQpRZbU/1BuQasleV/RfHC3hHg== - dependencies: - "@typescript-eslint/types" "8.46.3" - eslint-visitor-keys "^4.2.1" - -"@webassemblyjs/ast@1.14.1", "@webassemblyjs/ast@^1.14.1": - version "1.14.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.14.1.tgz#a9f6a07f2b03c95c8d38c4536a1fdfb521ff55b6" - integrity sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ== - dependencies: - "@webassemblyjs/helper-numbers" "1.13.2" - "@webassemblyjs/helper-wasm-bytecode" "1.13.2" - -"@webassemblyjs/floating-point-hex-parser@1.13.2": - version "1.13.2" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz#fcca1eeddb1cc4e7b6eed4fc7956d6813b21b9fb" - integrity sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA== - -"@webassemblyjs/helper-api-error@1.13.2": - version "1.13.2" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz#e0a16152248bc38daee76dd7e21f15c5ef3ab1e7" - integrity sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ== - -"@webassemblyjs/helper-buffer@1.14.1": - version "1.14.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz#822a9bc603166531f7d5df84e67b5bf99b72b96b" - integrity sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA== - -"@webassemblyjs/helper-numbers@1.13.2": - version "1.13.2" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz#dbd932548e7119f4b8a7877fd5a8d20e63490b2d" - integrity sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA== - dependencies: - "@webassemblyjs/floating-point-hex-parser" "1.13.2" - "@webassemblyjs/helper-api-error" "1.13.2" - "@xtuc/long" "4.2.2" - -"@webassemblyjs/helper-wasm-bytecode@1.13.2": - version "1.13.2" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz#e556108758f448aae84c850e593ce18a0eb31e0b" - integrity sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA== - -"@webassemblyjs/helper-wasm-section@1.14.1": - version "1.14.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz#9629dda9c4430eab54b591053d6dc6f3ba050348" - integrity sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw== - dependencies: - "@webassemblyjs/ast" "1.14.1" - "@webassemblyjs/helper-buffer" "1.14.1" - "@webassemblyjs/helper-wasm-bytecode" "1.13.2" - "@webassemblyjs/wasm-gen" "1.14.1" - -"@webassemblyjs/ieee754@1.13.2": - version "1.13.2" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz#1c5eaace1d606ada2c7fd7045ea9356c59ee0dba" - integrity sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw== - dependencies: - "@xtuc/ieee754" "^1.2.0" - -"@webassemblyjs/leb128@1.13.2": - version "1.13.2" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.13.2.tgz#57c5c3deb0105d02ce25fa3fd74f4ebc9fd0bbb0" - integrity sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw== - dependencies: - "@xtuc/long" "4.2.2" - -"@webassemblyjs/utf8@1.13.2": - version "1.13.2" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.13.2.tgz#917a20e93f71ad5602966c2d685ae0c6c21f60f1" - integrity sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ== - -"@webassemblyjs/wasm-edit@^1.14.1": - version "1.14.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz#ac6689f502219b59198ddec42dcd496b1004d597" - integrity sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ== - dependencies: - "@webassemblyjs/ast" "1.14.1" - "@webassemblyjs/helper-buffer" "1.14.1" - "@webassemblyjs/helper-wasm-bytecode" "1.13.2" - "@webassemblyjs/helper-wasm-section" "1.14.1" - "@webassemblyjs/wasm-gen" "1.14.1" - "@webassemblyjs/wasm-opt" "1.14.1" - "@webassemblyjs/wasm-parser" "1.14.1" - "@webassemblyjs/wast-printer" "1.14.1" - -"@webassemblyjs/wasm-gen@1.14.1": - version "1.14.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz#991e7f0c090cb0bb62bbac882076e3d219da9570" - integrity sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg== - dependencies: - "@webassemblyjs/ast" "1.14.1" - "@webassemblyjs/helper-wasm-bytecode" "1.13.2" - "@webassemblyjs/ieee754" "1.13.2" - "@webassemblyjs/leb128" "1.13.2" - "@webassemblyjs/utf8" "1.13.2" - -"@webassemblyjs/wasm-opt@1.14.1": - version "1.14.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz#e6f71ed7ccae46781c206017d3c14c50efa8106b" - integrity sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw== - dependencies: - "@webassemblyjs/ast" "1.14.1" - "@webassemblyjs/helper-buffer" "1.14.1" - "@webassemblyjs/wasm-gen" "1.14.1" - "@webassemblyjs/wasm-parser" "1.14.1" - -"@webassemblyjs/wasm-parser@1.14.1", "@webassemblyjs/wasm-parser@^1.14.1": - version "1.14.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz#b3e13f1893605ca78b52c68e54cf6a865f90b9fb" - integrity sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ== - dependencies: - "@webassemblyjs/ast" "1.14.1" - "@webassemblyjs/helper-api-error" "1.13.2" - "@webassemblyjs/helper-wasm-bytecode" "1.13.2" - "@webassemblyjs/ieee754" "1.13.2" - "@webassemblyjs/leb128" "1.13.2" - "@webassemblyjs/utf8" "1.13.2" - -"@webassemblyjs/wast-printer@1.14.1": - version "1.14.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz#3bb3e9638a8ae5fdaf9610e7a06b4d9f9aa6fe07" - integrity sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw== - dependencies: - "@webassemblyjs/ast" "1.14.1" - "@xtuc/long" "4.2.2" - -"@xtuc/ieee754@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" - integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== - -"@xtuc/long@4.2.2": - version "4.2.2" - resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" - integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== - -abab@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" - integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== - -acorn-globals@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-7.0.1.tgz#0dbf05c44fa7c94332914c02066d5beff62c40c3" - integrity sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q== - dependencies: - acorn "^8.1.0" - acorn-walk "^8.0.2" - -acorn-import-phases@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz#16eb850ba99a056cb7cbfe872ffb8972e18c8bd7" - integrity sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ== - -acorn-jsx@^5.3.2: - version "5.3.2" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" - integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== - -acorn-walk@^8.0.2: - version "8.3.4" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.4.tgz#794dd169c3977edf4ba4ea47583587c5866236b7" - integrity sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g== - dependencies: - acorn "^8.11.0" - -acorn@^8.1.0, acorn@^8.11.0, acorn@^8.15.0, acorn@^8.8.1: - version "8.15.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.15.0.tgz#a360898bc415edaac46c8241f6383975b930b816" - integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg== - -agent-base@6: - version "6.0.2" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" - integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== - dependencies: - debug "4" - -ajv-formats@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" - integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== - dependencies: - ajv "^8.0.0" - -ajv-keywords@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz#69d4d385a4733cdbeab44964a1170a88f87f0e16" - integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw== - dependencies: - fast-deep-equal "^3.1.3" - -ajv@^6.12.4: - version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ajv@^8.0.0, ajv@^8.9.0: - version "8.17.1" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.17.1.tgz#37d9a5c776af6bc92d7f4f9510eba4c0a60d11a6" - integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g== - dependencies: - fast-deep-equal "^3.1.3" - fast-uri "^3.0.1" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - -ansi-escapes@^4.2.1: - version "4.3.2" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" - integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== - dependencies: - type-fest "^0.21.3" - -ansi-escapes@^7.0.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-7.2.0.tgz#31b25afa3edd3efc09d98c2fee831d460ff06b49" - integrity sha512-g6LhBsl+GBPRWGWsBtutpzBYuIIdBkLEvad5C/va/74Db018+5TZiyA26cZJAr3Rft5lprVqOIPxf5Vid6tqAw== - dependencies: - environment "^1.0.0" - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-regex@^6.0.1: - version "6.2.2" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.2.2.tgz#60216eea464d864597ce2832000738a0589650c1" - integrity sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg== - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -ansi-styles@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" - integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== - -ansi-styles@^6.2.1: - version "6.2.3" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.3.tgz#c044d5dcc521a076413472597a1acb1f103c4041" - integrity sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg== - -anymatch@^3.0.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" - integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== - -"auth0-legacy@npm:auth0@^4.27.0": - version "4.35.0" - resolved "https://registry.yarnpkg.com/auth0/-/auth0-4.35.0.tgz#57fffad73edeacbb94dbda0aa4385eef3eea3591" - integrity sha512-sERgoXej8bj42quqyPh1IAGYUzoDEaILJW6ALJ+1ANUsAMotAxKsdeG6XVTj03b9nn6Pest1DgfM7T9pcYTQjQ== - dependencies: - jose "^4.13.2" - undici-types "^6.15.0" - uuid "^9.0.0" - -babel-jest@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.7.0.tgz#f4369919225b684c56085998ac63dbd05be020d5" - integrity sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg== - dependencies: - "@jest/transform" "^29.7.0" - "@types/babel__core" "^7.1.14" - babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^29.6.3" - chalk "^4.0.0" - graceful-fs "^4.2.9" - slash "^3.0.0" - -babel-plugin-istanbul@^6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" - integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@istanbuljs/load-nyc-config" "^1.0.0" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-instrument "^5.0.4" - test-exclude "^6.0.0" - -babel-plugin-jest-hoist@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz#aadbe943464182a8922c3c927c3067ff40d24626" - integrity sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg== - dependencies: - "@babel/template" "^7.3.3" - "@babel/types" "^7.3.3" - "@types/babel__core" "^7.1.14" - "@types/babel__traverse" "^7.0.6" - -babel-preset-current-node-syntax@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.2.0.tgz#20730d6cdc7dda5d89401cab10ac6a32067acde6" - integrity sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg== - dependencies: - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-bigint" "^7.8.3" - "@babel/plugin-syntax-class-properties" "^7.12.13" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - "@babel/plugin-syntax-import-attributes" "^7.24.7" - "@babel/plugin-syntax-import-meta" "^7.10.4" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - "@babel/plugin-syntax-top-level-await" "^7.14.5" - -babel-preset-jest@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz#fa05fa510e7d493896d7b0dd2033601c840f171c" - integrity sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA== - dependencies: - babel-plugin-jest-hoist "^29.6.3" - babel-preset-current-node-syntax "^1.0.0" - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -baseline-browser-mapping@^2.8.19: - version "2.8.23" - resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.8.23.tgz#cd43e17eff5cbfb67c92153e7fe856cf6d426421" - integrity sha512-616V5YX4bepJFzNyOfce5Fa8fDJMfoxzOIzDCZwaGL8MKVpFrXqfNUoIpRn9YMI5pXf/VKgzjB4htFMsFKKdiQ== - -brace-expansion@^1.1.7: - version "1.1.12" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.12.tgz#ab9b454466e5a8cc3a187beaad580412a9c5b843" - integrity sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -brace-expansion@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.2.tgz#54fc53237a613d854c7bd37463aad17df87214e7" - integrity sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ== - dependencies: - balanced-match "^1.0.0" - -braces@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" - integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== - dependencies: - fill-range "^7.1.1" - -browserslist@^4.24.0, browserslist@^4.26.3: - version "4.27.0" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.27.0.tgz#755654744feae978fbb123718b2f139bc0fa6697" - integrity sha512-AXVQwdhot1eqLihwasPElhX2tAZiBjWdJ9i/Zcj2S6QYIjkx62OKSfnobkriB81C3l4w0rVy3Nt4jaTBltYEpw== - dependencies: - baseline-browser-mapping "^2.8.19" - caniuse-lite "^1.0.30001751" - electron-to-chromium "^1.5.238" - node-releases "^2.0.26" - update-browserslist-db "^1.1.4" - -bs-logger@^0.2.6: - version "0.2.6" - resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" - integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== - dependencies: - fast-json-stable-stringify "2.x" - -bser@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" - integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== - dependencies: - node-int64 "^0.4.0" - -buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - -call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz#4b5428c222be985d79c3d82657479dbe0b59b2d6" - integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ== - dependencies: - es-errors "^1.3.0" - function-bind "^1.1.2" - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -camelcase@^6.2.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" - integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== - -caniuse-lite@^1.0.30001751: - version "1.0.30001753" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001753.tgz#419f8fc9bab6f1a1d10d9574d0b3374f823c5b00" - integrity sha512-Bj5H35MD/ebaOV4iDLqPEtiliTN29qkGtEHCwawWn4cYm+bPJM2NsaP30vtZcnERClMzp52J4+aw2UNbK4o+zw== - -chalk@^4.0.0, chalk@^4.1.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -char-regex@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" - integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== - -chrome-trace-event@^1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz#05bffd7ff928465093314708c93bdfa9bd1f0f5b" - integrity sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ== - -ci-info@^3.2.0: - version "3.9.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" - integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== - -cjs-module-lexer@^1.0.0: - version "1.4.3" - resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz#0f79731eb8cfe1ec72acd4066efac9d61991b00d" - integrity sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q== - -cli-cursor@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-5.0.0.tgz#24a4831ecf5a6b01ddeb32fb71a4b2088b0dce38" - integrity sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw== - dependencies: - restore-cursor "^5.0.0" - -cli-truncate@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-5.1.1.tgz#455476face9904d94b7d11e98d9adbca15292ea5" - integrity sha512-SroPvNHxUnk+vIW/dOSfNqdy1sPEFkrTk6TUtqLCnBlo3N7TNYYkzzN7uSD6+jVjrdO4+p8nH7JzH6cIvUem6A== - dependencies: - slice-ansi "^7.1.0" - string-width "^8.0.0" - -cli-width@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-4.1.0.tgz#42daac41d3c254ef38ad8ac037672130173691c5" - integrity sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ== - -cliui@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" - integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.1" - wrap-ansi "^7.0.0" - -co@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== - -collect-v8-coverage@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.3.tgz#cc1f01eb8d02298cbc9a437c74c70ab4e5210b80" - integrity sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw== - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -colorette@^2.0.20: - version "2.0.20" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" - integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== - -combined-stream@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -commander@^14.0.1: - version "14.0.2" - resolved "https://registry.yarnpkg.com/commander/-/commander-14.0.2.tgz#b71fd37fe4069e4c3c7c13925252ada4eba14e8e" - integrity sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ== - -commander@^2.20.0: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== - -convert-source-map@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" - integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== - -cookie@^0.7.2: - version "0.7.2" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.2.tgz#556369c472a2ba910f2979891b526b3436237ed7" - integrity sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w== - -create-jest@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/create-jest/-/create-jest-29.7.0.tgz#a355c5b3cb1e1af02ba177fe7afd7feee49a5320" - integrity sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q== - dependencies: - "@jest/types" "^29.6.3" - chalk "^4.0.0" - exit "^0.1.2" - graceful-fs "^4.2.9" - jest-config "^29.7.0" - jest-util "^29.7.0" - prompts "^2.0.1" - -cross-spawn@^7.0.3, cross-spawn@^7.0.6: - version "7.0.6" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" - integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -cssom@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.5.0.tgz#d254fa92cd8b6fbd83811b9fbaed34663cc17c36" - integrity sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw== - -cssom@~0.3.6: - version "0.3.8" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" - integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== - -cssstyle@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" - integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== - dependencies: - cssom "~0.3.6" - -data-urls@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-3.0.2.tgz#9cf24a477ae22bcef5cd5f6f0bfbc1d2d3be9143" - integrity sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ== - dependencies: - abab "^2.0.6" - whatwg-mimetype "^3.0.0" - whatwg-url "^11.0.0" - -debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: - version "4.4.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a" - integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== - dependencies: - ms "^2.1.3" - -decimal.js@^10.4.2: - version "10.6.0" - resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.6.0.tgz#e649a43e3ab953a72192ff5983865e509f37ed9a" - integrity sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg== - -dedent@^1.0.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.7.0.tgz#c1f9445335f0175a96587be245a282ff451446ca" - integrity sha512-HGFtf8yhuhGhqO07SV79tRp+br4MnbdjeVxotpn1QBl30pcLLCQjX5b2295ll0fv8RKDKsmWYrl05usHM9CewQ== - -deep-is@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" - integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== - -deepmerge@^4.2.2: - version "4.3.1" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" - integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== - -detect-newline@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" - integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== - -diff-sequences@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921" - integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q== - -domexception@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/domexception/-/domexception-4.0.0.tgz#4ad1be56ccadc86fc76d033353999a8037d03673" - integrity sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw== - dependencies: - webidl-conversions "^7.0.0" - -dunder-proto@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/dunder-proto/-/dunder-proto-1.0.1.tgz#d7ae667e1dc83482f8b70fd0f6eefc50da30f58a" - integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A== - dependencies: - call-bind-apply-helpers "^1.0.1" - es-errors "^1.3.0" - gopd "^1.2.0" - -electron-to-chromium@^1.5.238: - version "1.5.244" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.244.tgz#b9b61e3d24ef4203489951468614f2a360763820" - integrity sha512-OszpBN7xZX4vWMPJwB9illkN/znA8M36GQqQxi6MNy9axWxhOfJyZZJtSLQCpEFLHP2xK33BiWx9aIuIEXVCcw== - -emittery@^0.13.1: - version "0.13.1" - resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.13.1.tgz#c04b8c3457490e0847ae51fced3af52d338e3dad" - integrity sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ== - -emoji-regex@^10.3.0: - version "10.6.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.6.0.tgz#bf3d6e8f7f8fd22a65d9703475bc0147357a6b0d" - integrity sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A== - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -enhanced-resolve@^5.0.0, enhanced-resolve@^5.17.3: - version "5.18.3" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz#9b5f4c5c076b8787c78fe540392ce76a88855b44" - integrity sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww== - dependencies: - graceful-fs "^4.2.4" - tapable "^2.2.0" - -entities@^4.4.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" - integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== - -entities@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/entities/-/entities-6.0.1.tgz#c28c34a43379ca7f61d074130b2f5f7020a30694" - integrity sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g== - -environment@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/environment/-/environment-1.1.0.tgz#8e86c66b180f363c7ab311787e0259665f45a9f1" - integrity sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q== - -error-ex@^1.3.1: - version "1.3.4" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.4.tgz#b3a8d8bb6f92eecc1629e3e27d3c8607a8a32414" - integrity sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ== - dependencies: - is-arrayish "^0.2.1" - -es-define-property@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.1.tgz#983eb2f9a6724e9303f61addf011c72e09e0b0fa" - integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g== - -es-errors@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" - integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== - -es-module-lexer@^1.2.1: - version "1.7.0" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.7.0.tgz#9159601561880a85f2734560a9099b2c31e5372a" - integrity sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA== - -es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz#1c4f2c4837327597ce69d2ca190a7fdd172338c1" - integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA== - dependencies: - es-errors "^1.3.0" - -es-set-tostringtag@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz#f31dbbe0c183b00a6d26eb6325c810c0fd18bd4d" - integrity sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA== - dependencies: - es-errors "^1.3.0" - get-intrinsic "^1.2.6" - has-tostringtag "^1.0.2" - hasown "^2.0.2" - -escalade@^3.1.1, escalade@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" - integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== - -escape-string-regexp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" - integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== - -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -escodegen@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.1.0.tgz#ba93bbb7a43986d29d6041f99f5262da773e2e17" - integrity sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w== - dependencies: - esprima "^4.0.1" - estraverse "^5.2.0" - esutils "^2.0.2" - optionalDependencies: - source-map "~0.6.1" - -eslint-config-prettier@^10.1.8: - version "10.1.8" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-10.1.8.tgz#15734ce4af8c2778cc32f0b01b37b0b5cd1ecb97" - integrity sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w== - -eslint-plugin-prettier@^5.5.3: - version "5.5.4" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.4.tgz#9d61c4ea11de5af704d4edf108c82ccfa7f2e61c" - integrity sha512-swNtI95SToIz05YINMA6Ox5R057IMAmWZ26GqPxusAp1TZzj+IdY9tXNWWD3vkF/wEqydCONcwjTFpxybBqZsg== - dependencies: - prettier-linter-helpers "^1.0.0" - synckit "^0.11.7" - -eslint-scope@5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" - integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== - dependencies: - esrecurse "^4.3.0" - estraverse "^4.1.1" - -eslint-scope@^8.4.0: - version "8.4.0" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-8.4.0.tgz#88e646a207fad61436ffa39eb505147200655c82" - integrity sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg== - dependencies: - esrecurse "^4.3.0" - estraverse "^5.2.0" - -eslint-visitor-keys@^3.4.3: - version "3.4.3" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" - integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== - -eslint-visitor-keys@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz#4cfea60fe7dd0ad8e816e1ed026c1d5251b512c1" - integrity sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ== - -eslint@^9.32.0: - version "9.39.1" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.39.1.tgz#be8bf7c6de77dcc4252b5a8dcb31c2efff74a6e5" - integrity sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g== - dependencies: - "@eslint-community/eslint-utils" "^4.8.0" - "@eslint-community/regexpp" "^4.12.1" - "@eslint/config-array" "^0.21.1" - "@eslint/config-helpers" "^0.4.2" - "@eslint/core" "^0.17.0" - "@eslint/eslintrc" "^3.3.1" - "@eslint/js" "9.39.1" - "@eslint/plugin-kit" "^0.4.1" - "@humanfs/node" "^0.16.6" - "@humanwhocodes/module-importer" "^1.0.1" - "@humanwhocodes/retry" "^0.4.2" - "@types/estree" "^1.0.6" - ajv "^6.12.4" - chalk "^4.0.0" - cross-spawn "^7.0.6" - debug "^4.3.2" - escape-string-regexp "^4.0.0" - eslint-scope "^8.4.0" - eslint-visitor-keys "^4.2.1" - espree "^10.4.0" - esquery "^1.5.0" - esutils "^2.0.2" - fast-deep-equal "^3.1.3" - file-entry-cache "^8.0.0" - find-up "^5.0.0" - glob-parent "^6.0.2" - ignore "^5.2.0" - imurmurhash "^0.1.4" - is-glob "^4.0.0" - json-stable-stringify-without-jsonify "^1.0.1" - lodash.merge "^4.6.2" - minimatch "^3.1.2" - natural-compare "^1.4.0" - optionator "^0.9.3" - -espree@^10.0.1, espree@^10.4.0: - version "10.4.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-10.4.0.tgz#d54f4949d4629005a1fa168d937c3ff1f7e2a837" - integrity sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ== - dependencies: - acorn "^8.15.0" - acorn-jsx "^5.3.2" - eslint-visitor-keys "^4.2.1" - -esprima@^4.0.0, esprima@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -esquery@^1.5.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.6.0.tgz#91419234f804d852a82dceec3e16cdc22cf9dae7" - integrity sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg== - dependencies: - estraverse "^5.1.0" - -esrecurse@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - dependencies: - estraverse "^5.2.0" - -estraverse@^4.1.1: - version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - -estraverse@^5.1.0, estraverse@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" - integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -eventemitter3@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" - integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== - -events@^3.2.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" - integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== - -execa@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" - integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.0" - human-signals "^2.1.0" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.1" - onetime "^5.1.2" - signal-exit "^3.0.3" - strip-final-newline "^2.0.0" - -exit@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" - integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== - -expect@^29.0.0, expect@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.7.0.tgz#578874590dcb3214514084c08115d8aee61e11bc" - integrity sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw== - dependencies: - "@jest/expect-utils" "^29.7.0" - jest-get-type "^29.6.3" - jest-matcher-utils "^29.7.0" - jest-message-util "^29.7.0" - jest-util "^29.7.0" - -fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-diff@^1.1.2: - version "1.3.0" - resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" - integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== - -fast-glob@^3.3.2: - version "3.3.3" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.3.tgz#d06d585ce8dba90a16b0505c543c3ccfb3aeb818" - integrity sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.8" - -fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fast-levenshtein@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== - -fast-uri@^3.0.1: - version "3.1.0" - resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.1.0.tgz#66eecff6c764c0df9b762e62ca7edcfb53b4edfa" - integrity sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA== - -fastq@^1.6.0: - version "1.19.1" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.19.1.tgz#d50eaba803c8846a883c16492821ebcd2cda55f5" - integrity sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ== - dependencies: - reusify "^1.0.4" - -fb-watchman@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" - integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== - dependencies: - bser "2.1.1" - -file-entry-cache@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-8.0.0.tgz#7787bddcf1131bffb92636c69457bbc0edd6d81f" - integrity sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ== - dependencies: - flat-cache "^4.0.0" - -fill-range@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" - integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== - dependencies: - to-regex-range "^5.0.1" - -find-up@^4.0.0, find-up@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -flat-cache@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-4.0.1.tgz#0ece39fcb14ee012f4b0410bd33dd9c1f011127c" - integrity sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw== - dependencies: - flatted "^3.2.9" - keyv "^4.5.4" - -flatted@^3.2.9: - version "3.3.3" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.3.tgz#67c8fad95454a7c7abebf74bb78ee74a44023358" - integrity sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg== - -form-data@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.4.tgz#784cdcce0669a9d68e94d11ac4eea98088edd2c4" - integrity sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - es-set-tostringtag "^2.1.0" - hasown "^2.0.2" - mime-types "^2.1.12" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - -fsevents@^2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" - integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== - -function-bind@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" - integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== - -gensync@^1.0.0-beta.2: - version "1.0.0-beta.2" - resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" - integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== - -get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-east-asian-width@^1.0.0, get-east-asian-width@^1.3.0, get-east-asian-width@^1.3.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/get-east-asian-width/-/get-east-asian-width-1.4.0.tgz#9bc4caa131702b4b61729cb7e42735bc550c9ee6" - integrity sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q== - -get-intrinsic@^1.2.6: - version "1.3.0" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01" - integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ== - dependencies: - call-bind-apply-helpers "^1.0.2" - es-define-property "^1.0.1" - es-errors "^1.3.0" - es-object-atoms "^1.1.1" - function-bind "^1.1.2" - get-proto "^1.0.1" - gopd "^1.2.0" - has-symbols "^1.1.0" - hasown "^2.0.2" - math-intrinsics "^1.1.0" - -get-package-type@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" - integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== - -get-proto@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/get-proto/-/get-proto-1.0.1.tgz#150b3f2743869ef3e851ec0c49d15b1d14d00ee1" - integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g== - dependencies: - dunder-proto "^1.0.1" - es-object-atoms "^1.0.0" - -get-stream@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" - integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== - -glob-parent@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob-parent@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" - integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== - dependencies: - is-glob "^4.0.3" - -glob-to-regexp@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" - integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== - -glob@^7.1.3, glob@^7.1.4: - version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - -globals@^14.0.0: - version "14.0.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-14.0.0.tgz#898d7413c29babcf6bafe56fcadded858ada724e" - integrity sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ== - -gopd@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1" - integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== - -graceful-fs@^4.1.2, graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.9: - version "4.2.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" - integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== - -graphemer@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" - integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== - -graphql@^16.8.1: - version "16.12.0" - resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.12.0.tgz#28cc2462435b1ac3fdc6976d030cef83a0c13ac7" - integrity sha512-DKKrynuQRne0PNpEbzuEdHlYOMksHSUI8Zc9Unei5gTsMNA2/vMpoMz/yKba50pejK56qj98qM0SjYxAKi13gQ== - -handlebars@^4.7.8: - version "4.7.8" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.8.tgz#41c42c18b1be2365439188c77c6afae71c0cd9e9" - integrity sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ== - dependencies: - minimist "^1.2.5" - neo-async "^2.6.2" - source-map "^0.6.1" - wordwrap "^1.0.0" - optionalDependencies: - uglify-js "^3.1.4" - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-symbols@^1.0.3, has-symbols@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338" - integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ== - -has-tostringtag@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" - integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== - dependencies: - has-symbols "^1.0.3" - -hasown@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" - integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== - dependencies: - function-bind "^1.1.2" - -headers-polyfill@^4.0.2: - version "4.0.3" - resolved "https://registry.yarnpkg.com/headers-polyfill/-/headers-polyfill-4.0.3.tgz#922a0155de30ecc1f785bcf04be77844ca95ad07" - integrity sha512-IScLbePpkvO846sIwOtOTDjutRMWdXdJmXdMvk6gCBHxFO8d+QKOQedyZSxFTTFYRSmlgSTDtXqqq4pcenBXLQ== - -html-encoding-sniffer@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz#2cb1a8cf0db52414776e5b2a7a04d5dd98158de9" - integrity sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA== - dependencies: - whatwg-encoding "^2.0.0" - -html-escaper@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" - integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== - -http-proxy-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43" - integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w== - dependencies: - "@tootallnate/once" "2" - agent-base "6" - debug "4" - -https-proxy-agent@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" - integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== - dependencies: - agent-base "6" - debug "4" - -human-signals@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" - integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== - -husky@^9.1.7: - version "9.1.7" - resolved "https://registry.yarnpkg.com/husky/-/husky-9.1.7.tgz#d46a38035d101b46a70456a850ff4201344c0b2d" - integrity sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA== - -iconv-lite@0.6.3: - version "0.6.3" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" - integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== - dependencies: - safer-buffer ">= 2.1.2 < 3.0.0" - -ignore@^5.2.0: - version "5.3.2" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5" - integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== - -ignore@^7.0.0: - version "7.0.5" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-7.0.5.tgz#4cb5f6cd7d4c7ab0365738c7aea888baa6d7efd9" - integrity sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg== - -import-fresh@^3.2.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.1.tgz#9cecb56503c0ada1f2741dbbd6546e4b13b57ccf" - integrity sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -import-local@^3.0.2: - version "3.2.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.2.0.tgz#c3d5c745798c02a6f8b897726aba5100186ee260" - integrity sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA== - dependencies: - pkg-dir "^4.2.0" - resolve-cwd "^3.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== - -is-core-module@^2.16.1: - version "2.16.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.16.1.tgz#2a98801a849f43e2add644fbb6bc6229b19a4ef4" - integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w== - dependencies: - hasown "^2.0.2" - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-fullwidth-code-point@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-5.1.0.tgz#046b2a6d4f6b156b2233d3207d4b5a9783999b98" - integrity sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ== - dependencies: - get-east-asian-width "^1.3.1" - -is-generator-fn@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" - integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-node-process@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/is-node-process/-/is-node-process-1.2.0.tgz#ea02a1b90ddb3934a19aea414e88edef7e11d134" - integrity sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw== - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-potential-custom-element-name@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" - integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== - -is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" - integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz#2d166c4b0644d43a39f04bf6c2edd1e585f31756" - integrity sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg== - -istanbul-lib-instrument@^5.0.4: - version "5.2.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d" - integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg== - dependencies: - "@babel/core" "^7.12.3" - "@babel/parser" "^7.14.7" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.2.0" - semver "^6.3.0" - -istanbul-lib-instrument@^6.0.0: - version "6.0.3" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz#fa15401df6c15874bcb2105f773325d78c666765" - integrity sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q== - dependencies: - "@babel/core" "^7.23.9" - "@babel/parser" "^7.23.9" - "@istanbuljs/schema" "^0.1.3" - istanbul-lib-coverage "^3.2.0" - semver "^7.5.4" - -istanbul-lib-report@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz#908305bac9a5bd175ac6a74489eafd0fc2445a7d" - integrity sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw== - dependencies: - istanbul-lib-coverage "^3.0.0" - make-dir "^4.0.0" - supports-color "^7.1.0" - -istanbul-lib-source-maps@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551" - integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== - dependencies: - debug "^4.1.1" - istanbul-lib-coverage "^3.0.0" - source-map "^0.6.1" - -istanbul-reports@^3.1.3: - version "3.2.0" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.2.0.tgz#cb4535162b5784aa623cee21a7252cf2c807ac93" - integrity sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA== - dependencies: - html-escaper "^2.0.0" - istanbul-lib-report "^3.0.0" - -jest-changed-files@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.7.0.tgz#1c06d07e77c78e1585d020424dedc10d6e17ac3a" - integrity sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w== - dependencies: - execa "^5.0.0" - jest-util "^29.7.0" - p-limit "^3.1.0" - -jest-circus@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.7.0.tgz#b6817a45fcc835d8b16d5962d0c026473ee3668a" - integrity sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw== - dependencies: - "@jest/environment" "^29.7.0" - "@jest/expect" "^29.7.0" - "@jest/test-result" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/node" "*" - chalk "^4.0.0" - co "^4.6.0" - dedent "^1.0.0" - is-generator-fn "^2.0.0" - jest-each "^29.7.0" - jest-matcher-utils "^29.7.0" - jest-message-util "^29.7.0" - jest-runtime "^29.7.0" - jest-snapshot "^29.7.0" - jest-util "^29.7.0" - p-limit "^3.1.0" - pretty-format "^29.7.0" - pure-rand "^6.0.0" - slash "^3.0.0" - stack-utils "^2.0.3" - -jest-cli@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.7.0.tgz#5592c940798e0cae677eec169264f2d839a37995" - integrity sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg== - dependencies: - "@jest/core" "^29.7.0" - "@jest/test-result" "^29.7.0" - "@jest/types" "^29.6.3" - chalk "^4.0.0" - create-jest "^29.7.0" - exit "^0.1.2" - import-local "^3.0.2" - jest-config "^29.7.0" - jest-util "^29.7.0" - jest-validate "^29.7.0" - yargs "^17.3.1" - -jest-config@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.7.0.tgz#bcbda8806dbcc01b1e316a46bb74085a84b0245f" - integrity sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ== - dependencies: - "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^29.7.0" - "@jest/types" "^29.6.3" - babel-jest "^29.7.0" - chalk "^4.0.0" - ci-info "^3.2.0" - deepmerge "^4.2.2" - glob "^7.1.3" - graceful-fs "^4.2.9" - jest-circus "^29.7.0" - jest-environment-node "^29.7.0" - jest-get-type "^29.6.3" - jest-regex-util "^29.6.3" - jest-resolve "^29.7.0" - jest-runner "^29.7.0" - jest-util "^29.7.0" - jest-validate "^29.7.0" - micromatch "^4.0.4" - parse-json "^5.2.0" - pretty-format "^29.7.0" - slash "^3.0.0" - strip-json-comments "^3.1.1" - -jest-diff@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.7.0.tgz#017934a66ebb7ecf6f205e84699be10afd70458a" - integrity sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw== - dependencies: - chalk "^4.0.0" - diff-sequences "^29.6.3" - jest-get-type "^29.6.3" - pretty-format "^29.7.0" - -jest-docblock@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.7.0.tgz#8fddb6adc3cdc955c93e2a87f61cfd350d5d119a" - integrity sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g== - dependencies: - detect-newline "^3.0.0" - -jest-each@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.7.0.tgz#162a9b3f2328bdd991beaabffbb74745e56577d1" - integrity sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ== - dependencies: - "@jest/types" "^29.6.3" - chalk "^4.0.0" - jest-get-type "^29.6.3" - jest-util "^29.7.0" - pretty-format "^29.7.0" - -jest-environment-jsdom@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.7.0.tgz#d206fa3551933c3fd519e5dfdb58a0f5139a837f" - integrity sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA== - dependencies: - "@jest/environment" "^29.7.0" - "@jest/fake-timers" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/jsdom" "^20.0.0" - "@types/node" "*" - jest-mock "^29.7.0" - jest-util "^29.7.0" - jsdom "^20.0.0" - -jest-environment-node@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.7.0.tgz#0b93e111dda8ec120bc8300e6d1fb9576e164376" - integrity sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw== - dependencies: - "@jest/environment" "^29.7.0" - "@jest/fake-timers" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/node" "*" - jest-mock "^29.7.0" - jest-util "^29.7.0" - -jest-get-type@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.6.3.tgz#36f499fdcea197c1045a127319c0481723908fd1" - integrity sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw== - -jest-haste-map@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.7.0.tgz#3c2396524482f5a0506376e6c858c3bbcc17b104" - integrity sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA== - dependencies: - "@jest/types" "^29.6.3" - "@types/graceful-fs" "^4.1.3" - "@types/node" "*" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.9" - jest-regex-util "^29.6.3" - jest-util "^29.7.0" - jest-worker "^29.7.0" - micromatch "^4.0.4" - walker "^1.0.8" - optionalDependencies: - fsevents "^2.3.2" - -jest-leak-detector@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz#5b7ec0dadfdfec0ca383dc9aa016d36b5ea4c728" - integrity sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw== - dependencies: - jest-get-type "^29.6.3" - pretty-format "^29.7.0" - -jest-matcher-utils@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz#ae8fec79ff249fd592ce80e3ee474e83a6c44f12" - integrity sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g== - dependencies: - chalk "^4.0.0" - jest-diff "^29.7.0" - jest-get-type "^29.6.3" - pretty-format "^29.7.0" - -jest-message-util@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.7.0.tgz#8bc392e204e95dfe7564abbe72a404e28e51f7f3" - integrity sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w== - dependencies: - "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.6.3" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.9" - micromatch "^4.0.4" - pretty-format "^29.7.0" - slash "^3.0.0" - stack-utils "^2.0.3" - -jest-mock@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.7.0.tgz#4e836cf60e99c6fcfabe9f99d017f3fdd50a6347" - integrity sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw== - dependencies: - "@jest/types" "^29.6.3" - "@types/node" "*" - jest-util "^29.7.0" - -jest-pnp-resolver@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e" - integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w== - -jest-regex-util@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.6.3.tgz#4a556d9c776af68e1c5f48194f4d0327d24e8a52" - integrity sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg== - -jest-resolve-dependencies@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz#1b04f2c095f37fc776ff40803dc92921b1e88428" - integrity sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA== - dependencies: - jest-regex-util "^29.6.3" - jest-snapshot "^29.7.0" - -jest-resolve@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.7.0.tgz#64d6a8992dd26f635ab0c01e5eef4399c6bcbc30" - integrity sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA== - dependencies: - chalk "^4.0.0" - graceful-fs "^4.2.9" - jest-haste-map "^29.7.0" - jest-pnp-resolver "^1.2.2" - jest-util "^29.7.0" - jest-validate "^29.7.0" - resolve "^1.20.0" - resolve.exports "^2.0.0" - slash "^3.0.0" - -jest-runner@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.7.0.tgz#809af072d408a53dcfd2e849a4c976d3132f718e" - integrity sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ== - dependencies: - "@jest/console" "^29.7.0" - "@jest/environment" "^29.7.0" - "@jest/test-result" "^29.7.0" - "@jest/transform" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/node" "*" - chalk "^4.0.0" - emittery "^0.13.1" - graceful-fs "^4.2.9" - jest-docblock "^29.7.0" - jest-environment-node "^29.7.0" - jest-haste-map "^29.7.0" - jest-leak-detector "^29.7.0" - jest-message-util "^29.7.0" - jest-resolve "^29.7.0" - jest-runtime "^29.7.0" - jest-util "^29.7.0" - jest-watcher "^29.7.0" - jest-worker "^29.7.0" - p-limit "^3.1.0" - source-map-support "0.5.13" - -jest-runtime@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.7.0.tgz#efecb3141cf7d3767a3a0cc8f7c9990587d3d817" - integrity sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ== - dependencies: - "@jest/environment" "^29.7.0" - "@jest/fake-timers" "^29.7.0" - "@jest/globals" "^29.7.0" - "@jest/source-map" "^29.6.3" - "@jest/test-result" "^29.7.0" - "@jest/transform" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/node" "*" - chalk "^4.0.0" - cjs-module-lexer "^1.0.0" - collect-v8-coverage "^1.0.0" - glob "^7.1.3" - graceful-fs "^4.2.9" - jest-haste-map "^29.7.0" - jest-message-util "^29.7.0" - jest-mock "^29.7.0" - jest-regex-util "^29.6.3" - jest-resolve "^29.7.0" - jest-snapshot "^29.7.0" - jest-util "^29.7.0" - slash "^3.0.0" - strip-bom "^4.0.0" - -jest-snapshot@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.7.0.tgz#c2c574c3f51865da1bb329036778a69bf88a6be5" - integrity sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw== - dependencies: - "@babel/core" "^7.11.6" - "@babel/generator" "^7.7.2" - "@babel/plugin-syntax-jsx" "^7.7.2" - "@babel/plugin-syntax-typescript" "^7.7.2" - "@babel/types" "^7.3.3" - "@jest/expect-utils" "^29.7.0" - "@jest/transform" "^29.7.0" - "@jest/types" "^29.6.3" - babel-preset-current-node-syntax "^1.0.0" - chalk "^4.0.0" - expect "^29.7.0" - graceful-fs "^4.2.9" - jest-diff "^29.7.0" - jest-get-type "^29.6.3" - jest-matcher-utils "^29.7.0" - jest-message-util "^29.7.0" - jest-util "^29.7.0" - natural-compare "^1.4.0" - pretty-format "^29.7.0" - semver "^7.5.3" - -jest-util@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.7.0.tgz#23c2b62bfb22be82b44de98055802ff3710fc0bc" - integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA== - dependencies: - "@jest/types" "^29.6.3" - "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.9" - picomatch "^2.2.3" - -jest-validate@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.7.0.tgz#7bf705511c64da591d46b15fce41400d52147d9c" - integrity sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw== - dependencies: - "@jest/types" "^29.6.3" - camelcase "^6.2.0" - chalk "^4.0.0" - jest-get-type "^29.6.3" - leven "^3.1.0" - pretty-format "^29.7.0" - -jest-watcher@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.7.0.tgz#7810d30d619c3a62093223ce6bb359ca1b28a2f2" - integrity sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g== - dependencies: - "@jest/test-result" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - emittery "^0.13.1" - jest-util "^29.7.0" - string-length "^4.0.1" - -jest-worker@^27.4.5: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" - integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^8.0.0" - -jest-worker@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.7.0.tgz#acad073acbbaeb7262bd5389e1bcf43e10058d4a" - integrity sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw== - dependencies: - "@types/node" "*" - jest-util "^29.7.0" - merge-stream "^2.0.0" - supports-color "^8.0.0" - -jest@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest/-/jest-29.7.0.tgz#994676fc24177f088f1c5e3737f5697204ff2613" - integrity sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw== - dependencies: - "@jest/core" "^29.7.0" - "@jest/types" "^29.6.3" - import-local "^3.0.2" - jest-cli "^29.7.0" - -jose@^4.13.2: - version "4.15.9" - resolved "https://registry.yarnpkg.com/jose/-/jose-4.15.9.tgz#9b68eda29e9a0614c042fa29387196c7dd800100" - integrity sha512-1vUQX+IdDMVPj4k8kOxgUqlcK518yluMuGZwqlr44FS1ppZB/5GWh4rZG89erpOBOJjU/OBsnCVFfapsRz6nEA== - -js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - -jsdom@^20.0.0: - version "20.0.3" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-20.0.3.tgz#886a41ba1d4726f67a8858028c99489fed6ad4db" - integrity sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ== - dependencies: - abab "^2.0.6" - acorn "^8.8.1" - acorn-globals "^7.0.0" - cssom "^0.5.0" - cssstyle "^2.3.0" - data-urls "^3.0.2" - decimal.js "^10.4.2" - domexception "^4.0.0" - escodegen "^2.0.0" - form-data "^4.0.0" - html-encoding-sniffer "^3.0.0" - http-proxy-agent "^5.0.0" - https-proxy-agent "^5.0.1" - is-potential-custom-element-name "^1.0.1" - nwsapi "^2.2.2" - parse5 "^7.1.1" - saxes "^6.0.0" - symbol-tree "^3.2.4" - tough-cookie "^4.1.2" - w3c-xmlserializer "^4.0.0" - webidl-conversions "^7.0.0" - whatwg-encoding "^2.0.0" - whatwg-mimetype "^3.0.0" - whatwg-url "^11.0.0" - ws "^8.11.0" - xml-name-validator "^4.0.0" - -jsesc@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.1.0.tgz#74d335a234f67ed19907fdadfac7ccf9d409825d" - integrity sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA== - -json-buffer@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" - integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== - -json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" - integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-schema-traverse@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" - integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== - -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== - -json-stringify-safe@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== - -json5@^2.2.3: - version "2.2.3" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" - integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== - -keyv@^4.5.4: - version "4.5.4" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" - integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== - dependencies: - json-buffer "3.0.1" - -kleur@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" - integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== - -leven@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" - integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== - -levn@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" - integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== - dependencies: - prelude-ls "^1.2.1" - type-check "~0.4.0" - -lines-and-columns@^1.1.6: - version "1.2.4" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" - integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== - -linkify-it@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-5.0.0.tgz#9ef238bfa6dc70bd8e7f9572b52d369af569b421" - integrity sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ== - dependencies: - uc.micro "^2.0.0" - -lint-staged@^16.1.4: - version "16.2.6" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-16.2.6.tgz#760675e80f4b53337083d3f8bdecdd1f88079bf5" - integrity sha512-s1gphtDbV4bmW1eylXpVMk2u7is7YsrLl8hzrtvC70h4ByhcMLZFY01Fx05ZUDNuv1H8HO4E+e2zgejV1jVwNw== - dependencies: - commander "^14.0.1" - listr2 "^9.0.5" - micromatch "^4.0.8" - nano-spawn "^2.0.0" - pidtree "^0.6.0" - string-argv "^0.3.2" - yaml "^2.8.1" - -listr2@^9.0.5: - version "9.0.5" - resolved "https://registry.yarnpkg.com/listr2/-/listr2-9.0.5.tgz#92df7c4416a6da630eb9ef46da469b70de97b316" - integrity sha512-ME4Fb83LgEgwNw96RKNvKV4VTLuXfoKudAmm2lP8Kk87KaMK0/Xrx/aAkMWmT8mDb+3MlFDspfbCs7adjRxA2g== - dependencies: - cli-truncate "^5.0.0" - colorette "^2.0.20" - eventemitter3 "^5.0.1" - log-update "^6.1.0" - rfdc "^1.4.1" - wrap-ansi "^9.0.0" - -loader-runner@^4.2.0: - version "4.3.1" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.1.tgz#6c76ed29b0ccce9af379208299f07f876de737e3" - integrity sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q== - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - -lodash.memoize@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" - integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== - -lodash.merge@^4.6.2: - version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - -log-update@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/log-update/-/log-update-6.1.0.tgz#1a04ff38166f94647ae1af562f4bd6a15b1b7cd4" - integrity sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w== - dependencies: - ansi-escapes "^7.0.0" - cli-cursor "^5.0.0" - slice-ansi "^7.1.0" - strip-ansi "^7.1.0" - wrap-ansi "^9.0.0" - -lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" - integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== - dependencies: - yallist "^3.0.2" - -lunr@^2.3.9: - version "2.3.9" - resolved "https://registry.yarnpkg.com/lunr/-/lunr-2.3.9.tgz#18b123142832337dd6e964df1a5a7707b25d35e1" - integrity sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow== - -make-dir@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e" - integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw== - dependencies: - semver "^7.5.3" - -make-error@^1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== - -makeerror@1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" - integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== - dependencies: - tmpl "1.0.5" - -markdown-it@^14.1.0: - version "14.1.0" - resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-14.1.0.tgz#3c3c5992883c633db4714ccb4d7b5935d98b7d45" - integrity sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg== - dependencies: - argparse "^2.0.1" - entities "^4.4.0" - linkify-it "^5.0.0" - mdurl "^2.0.0" - punycode.js "^2.3.1" - uc.micro "^2.1.0" - -math-intrinsics@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9" - integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g== - -mdurl@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-2.0.0.tgz#80676ec0433025dd3e17ee983d0fe8de5a2237e0" - integrity sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w== - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - -merge2@^1.3.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -micromatch@^4.0.0, micromatch@^4.0.4, micromatch@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" - integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== - dependencies: - braces "^3.0.3" - picomatch "^2.3.1" - -mime-db@1.52.0: - version "1.52.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== - -mime-types@^2.1.12, mime-types@^2.1.27: - version "2.1.35" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== - dependencies: - mime-db "1.52.0" - -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -mimic-function@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/mimic-function/-/mimic-function-5.0.1.tgz#acbe2b3349f99b9deaca7fb70e48b83e94e67076" - integrity sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA== - -minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -minimatch@^9.0.4, minimatch@^9.0.5: - version "9.0.5" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" - integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== - dependencies: - brace-expansion "^2.0.1" - -minimist@^1.2.5: - version "1.2.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" - integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== - -mri@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" - integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== - -ms@^2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -msw@2.11.2: - version "2.11.2" - resolved "https://registry.yarnpkg.com/msw/-/msw-2.11.2.tgz#622d83855f456a5f93b1528f6eb6f4c0114623c3" - integrity sha512-MI54hLCsrMwiflkcqlgYYNJJddY5/+S0SnONvhv1owOplvqohKSQyGejpNdUGyCwgs4IH7PqaNbPw/sKOEze9Q== - dependencies: - "@bundled-es-modules/cookie" "^2.0.1" - "@bundled-es-modules/statuses" "^1.0.1" - "@inquirer/confirm" "^5.0.0" - "@mswjs/interceptors" "^0.39.1" - "@open-draft/deferred-promise" "^2.2.0" - "@open-draft/until" "^2.1.0" - "@types/cookie" "^0.6.0" - "@types/statuses" "^2.0.4" - graphql "^16.8.1" - headers-polyfill "^4.0.2" - is-node-process "^1.2.0" - outvariant "^1.4.3" - path-to-regexp "^6.3.0" - picocolors "^1.1.1" - rettime "^0.7.0" - strict-event-emitter "^0.5.1" - tough-cookie "^6.0.0" - type-fest "^4.26.1" - yargs "^17.7.2" - -mute-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-2.0.0.tgz#a5446fc0c512b71c83c44d908d5c7b7b4c493b2b" - integrity sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA== - -nano-spawn@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/nano-spawn/-/nano-spawn-2.0.0.tgz#f1250434c09ae18870d4f729fc54b406cf85a3e1" - integrity sha512-tacvGzUY5o2D8CBh2rrwxyNojUsZNU2zjNTzKQrkgGJQTbGAfArVWXSKMBokBeeg6C7OLRGUEyoFlYbfeWQIqw== - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== - -neo-async@^2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" - integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== - -nock@^14.0.6: - version "14.0.10" - resolved "https://registry.yarnpkg.com/nock/-/nock-14.0.10.tgz#d6f4e73e1c6b4b7aa19d852176e68940e15cd19d" - integrity sha512-Q7HjkpyPeLa0ZVZC5qpxBt5EyLczFJ91MEewQiIi9taWuA0KB/MDJlUWtON+7dGouVdADTQsf9RA7TZk6D8VMw== - dependencies: - "@mswjs/interceptors" "^0.39.5" - json-stringify-safe "^5.0.1" - propagate "^2.0.0" - -node-int64@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" - integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== - -node-releases@^2.0.26: - version "2.0.27" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.27.tgz#eedca519205cf20f650f61d56b070db111231e4e" - integrity sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA== - -normalize-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -npm-run-path@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" - integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== - dependencies: - path-key "^3.0.0" - -nwsapi@^2.2.2: - version "2.2.22" - resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.22.tgz#109f9530cda6c156d6a713cdf5939e9f0de98b9d" - integrity sha512-ujSMe1OWVn55euT1ihwCI1ZcAaAU3nxUiDwfDQldc51ZXaB9m2AyOn6/jh1BLe2t/G8xd6uKG1UBF2aZJeg2SQ== - -once@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== - dependencies: - wrappy "1" - -onetime@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - -onetime@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-7.0.0.tgz#9f16c92d8c9ef5120e3acd9dd9957cceecc1ab60" - integrity sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ== - dependencies: - mimic-function "^5.0.0" - -optionator@^0.9.3: - version "0.9.4" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734" - integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g== - dependencies: - deep-is "^0.1.3" - fast-levenshtein "^2.0.6" - levn "^0.4.1" - prelude-ls "^1.2.1" - type-check "^0.4.0" - word-wrap "^1.2.5" - -outvariant@^1.4.0, outvariant@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/outvariant/-/outvariant-1.4.3.tgz#221c1bfc093e8fec7075497e7799fdbf43d14873" - integrity sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA== - -p-limit@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - -p-limit@^3.0.2, p-limit@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -package-manager-detector@^1.3.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/package-manager-detector/-/package-manager-detector-1.5.0.tgz#8dcf7b78554047ddf5da453e6ba07ebc915c507e" - integrity sha512-uBj69dVlYe/+wxj8JOpr97XfsxH/eumMt6HqjNTmJDf/6NO9s+0uxeOneIz3AsPt2m6y9PqzDzd3ATcU17MNfw== - -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - -parse-json@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" - integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== - dependencies: - "@babel/code-frame" "^7.0.0" - error-ex "^1.3.1" - json-parse-even-better-errors "^2.3.0" - lines-and-columns "^1.1.6" - -parse5@^7.0.0, parse5@^7.1.1: - version "7.3.0" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.3.0.tgz#d7e224fa72399c7a175099f45fc2ad024b05ec05" - integrity sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw== - dependencies: - entities "^6.0.0" - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - -path-key@^3.0.0, path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -path-to-regexp@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-6.3.0.tgz#2b6a26a337737a8e1416f9272ed0766b1c0389f4" - integrity sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ== - -picocolors@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" - integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== - -picomatch@^2.0.4, picomatch@^2.2.3, picomatch@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -pidtree@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.6.0.tgz#90ad7b6d42d5841e69e0a2419ef38f8883aa057c" - integrity sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g== - -pirates@^4.0.4: - version "4.0.7" - resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.7.tgz#643b4a18c4257c8a65104b73f3049ce9a0a15e22" - integrity sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA== - -pkg-dir@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== - dependencies: - find-up "^4.0.0" - -prelude-ls@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" - integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== - -prettier-linter-helpers@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" - integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== - dependencies: - fast-diff "^1.1.2" - -prettier@3.4.2: - version "3.4.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.4.2.tgz#a5ce1fb522a588bf2b78ca44c6e6fe5aa5a2b13f" - integrity sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ== - -pretty-format@^29.0.0, pretty-format@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812" - integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ== - dependencies: - "@jest/schemas" "^29.6.3" - ansi-styles "^5.0.0" - react-is "^18.0.0" - -prompts@^2.0.1: - version "2.4.2" - resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" - integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== - dependencies: - kleur "^3.0.3" - sisteransi "^1.0.5" - -propagate@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/propagate/-/propagate-2.0.1.tgz#40cdedab18085c792334e64f0ac17256d38f9a45" - integrity sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag== - -psl@^1.1.33: - version "1.15.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.15.0.tgz#bdace31896f1d97cec6a79e8224898ce93d974c6" - integrity sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w== - dependencies: - punycode "^2.3.1" - -publint@^0.3.12: - version "0.3.15" - resolved "https://registry.yarnpkg.com/publint/-/publint-0.3.15.tgz#1f14793fb0cea14ad1dce2c524e9de6f6d64c311" - integrity sha512-xPbRAPW+vqdiaKy5sVVY0uFAu3LaviaPO3pZ9FaRx59l9+U/RKR1OEbLhkug87cwiVKxPXyB4txsv5cad67u+A== - dependencies: - "@publint/pack" "^0.1.2" - package-manager-detector "^1.3.0" - picocolors "^1.1.1" - sade "^1.8.1" - -punycode.js@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/punycode.js/-/punycode.js-2.3.1.tgz#6b53e56ad75588234e79f4affa90972c7dd8cdb7" - integrity sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA== - -punycode@^2.1.0, punycode@^2.1.1, punycode@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" - integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== - -pure-rand@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.1.0.tgz#d173cf23258231976ccbdb05247c9787957604f2" - integrity sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA== - -querystringify@^2.1.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" - integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== - -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - -randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -react-is@^18.0.0: - version "18.3.1" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e" - integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== - -require-from-string@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" - integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== - -requires-port@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== - -resolve-cwd@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" - integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== - dependencies: - resolve-from "^5.0.0" - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -resolve-from@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" - integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== - -resolve.exports@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.3.tgz#41955e6f1b4013b7586f873749a635dea07ebe3f" - integrity sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A== - -resolve@^1.20.0: - version "1.22.11" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.11.tgz#aad857ce1ffb8bfa9b0b1ac29f1156383f68c262" - integrity sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ== - dependencies: - is-core-module "^2.16.1" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -restore-cursor@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-5.1.0.tgz#0766d95699efacb14150993f55baf0953ea1ebe7" - integrity sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA== - dependencies: - onetime "^7.0.0" - signal-exit "^4.1.0" - -rettime@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/rettime/-/rettime-0.7.0.tgz#c040f1a65e396eaa4b8346dd96ed937edc79d96f" - integrity sha512-LPRKoHnLKd/r3dVxcwO7vhCW+orkOGj9ViueosEBK6ie89CijnfRlhaDhHq/3Hxu4CkWQtxwlBG0mzTQY6uQjw== - -reusify@^1.0.4: - version "1.1.0" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.1.0.tgz#0fe13b9522e1473f51b558ee796e08f11f9b489f" - integrity sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw== - -rfdc@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.4.1.tgz#778f76c4fb731d93414e8f925fbecf64cce7f6ca" - integrity sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA== - -run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" - -sade@^1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/sade/-/sade-1.8.1.tgz#0a78e81d658d394887be57d2a409bf703a3b2701" - integrity sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A== - dependencies: - mri "^1.1.0" - -safe-buffer@^5.1.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -"safer-buffer@>= 2.1.2 < 3.0.0": - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -saxes@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/saxes/-/saxes-6.0.0.tgz#fe5b4a4768df4f14a201b1ba6a65c1f3d9988cc5" - integrity sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA== - dependencies: - xmlchars "^2.2.0" - -schema-utils@^4.3.0, schema-utils@^4.3.3: - version "4.3.3" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.3.3.tgz#5b1850912fa31df90716963d45d9121fdfc09f46" - integrity sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA== - dependencies: - "@types/json-schema" "^7.0.9" - ajv "^8.9.0" - ajv-formats "^2.1.1" - ajv-keywords "^5.1.0" - -semver@^6.3.0, semver@^6.3.1: - version "6.3.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" - integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== - -semver@^7.3.4, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0, semver@^7.7.3: - version "7.7.3" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.3.tgz#4b5f4143d007633a8dc671cd0a6ef9147b8bb946" - integrity sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q== - -serialize-javascript@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" - integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== - dependencies: - randombytes "^2.1.0" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -signal-exit@^3.0.3, signal-exit@^3.0.7: - version "3.0.7" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" - integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== - -signal-exit@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" - integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== - -sisteransi@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" - integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -slice-ansi@^7.1.0: - version "7.1.2" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-7.1.2.tgz#adf7be70aa6d72162d907cd0e6d5c11f507b5403" - integrity sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w== - dependencies: - ansi-styles "^6.2.1" - is-fullwidth-code-point "^5.0.0" - -source-map-support@0.5.13: - version "0.5.13" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" - integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map-support@~0.5.20: - version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" - integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -source-map@^0.7.4: - version "0.7.6" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.6.tgz#a3658ab87e5b6429c8a1f3ba0083d4c61ca3ef02" - integrity sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ== - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== - -stack-utils@^2.0.3: - version "2.0.6" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f" - integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ== - dependencies: - escape-string-regexp "^2.0.0" - -statuses@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.2.tgz#8f75eecef765b5e1cfcdc080da59409ed424e382" - integrity sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw== - -strict-event-emitter@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/strict-event-emitter/-/strict-event-emitter-0.5.1.tgz#1602ece81c51574ca39c6815e09f1a3e8550bd93" - integrity sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ== - -string-argv@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.2.tgz#2b6d0ef24b656274d957d54e0a4bbf6153dc02b6" - integrity sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q== - -string-length@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" - integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== - dependencies: - char-regex "^1.0.2" - strip-ansi "^6.0.0" - -string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string-width@^7.0.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-7.2.0.tgz#b5bb8e2165ce275d4d43476dd2700ad9091db6dc" - integrity sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ== - dependencies: - emoji-regex "^10.3.0" - get-east-asian-width "^1.0.0" - strip-ansi "^7.1.0" - -string-width@^8.0.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-8.1.0.tgz#9e9fb305174947cf45c30529414b5da916e9e8d1" - integrity sha512-Kxl3KJGb/gxkaUMOjRsQ8IrXiGW75O4E3RPjFIINOVH8AMl2SQ/yWdTzWwF3FevIX9LcMAjJW+GRwAlAbTSXdg== - dependencies: - get-east-asian-width "^1.3.0" - strip-ansi "^7.1.0" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@^7.1.0: - version "7.1.2" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.2.tgz#132875abde678c7ea8d691533f2e7e22bb744dba" - integrity sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA== - dependencies: - ansi-regex "^6.0.1" - -strip-bom@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" - integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== - -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" - integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== - -strip-json-comments@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-color@^8.0.0: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - -supports-preserve-symlinks-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" - integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== - -symbol-tree@^3.2.4: - version "3.2.4" - resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" - integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== - -synckit@^0.11.7: - version "0.11.11" - resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.11.11.tgz#c0b619cf258a97faa209155d9cd1699b5c998cb0" - integrity sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw== - dependencies: - "@pkgr/core" "^0.2.9" - -tapable@^2.2.0, tapable@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.3.0.tgz#7e3ea6d5ca31ba8e078b560f0d83ce9a14aa8be6" - integrity sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg== - -terser-webpack-plugin@^5.3.11: - version "5.3.14" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz#9031d48e57ab27567f02ace85c7d690db66c3e06" - integrity sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw== - dependencies: - "@jridgewell/trace-mapping" "^0.3.25" - jest-worker "^27.4.5" - schema-utils "^4.3.0" - serialize-javascript "^6.0.2" - terser "^5.31.1" - -terser@^5.31.1: - version "5.44.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.44.0.tgz#ebefb8e5b8579d93111bfdfc39d2cf63879f4a82" - integrity sha512-nIVck8DK+GM/0Frwd+nIhZ84pR/BX7rmXMfYwyg+Sri5oGVE99/E3KvXqpC2xHFxyqXyGHTKBSioxxplrO4I4w== - dependencies: - "@jridgewell/source-map" "^0.3.3" - acorn "^8.15.0" - commander "^2.20.0" - source-map-support "~0.5.20" - -test-exclude@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" - integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== - dependencies: - "@istanbuljs/schema" "^0.1.2" - glob "^7.1.4" - minimatch "^3.0.4" - -tldts-core@^7.0.17: - version "7.0.17" - resolved "https://registry.yarnpkg.com/tldts-core/-/tldts-core-7.0.17.tgz#dadfee3750dd272ed219d7367beb7cbb2ff29eb8" - integrity sha512-DieYoGrP78PWKsrXr8MZwtQ7GLCUeLxihtjC1jZsW1DnvSMdKPitJSe8OSYDM2u5H6g3kWJZpePqkp43TfLh0g== - -tldts@^7.0.5: - version "7.0.17" - resolved "https://registry.yarnpkg.com/tldts/-/tldts-7.0.17.tgz#a6cdc067b9e80ea05f3be471c0ea410688cc78b2" - integrity sha512-Y1KQBgDd/NUc+LfOtKS6mNsC9CCaH+m2P1RoIZy7RAPo3C3/t8X45+zgut31cRZtZ3xKPjfn3TkGTrctC2TQIQ== - dependencies: - tldts-core "^7.0.17" - -tmpl@1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" - integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -tough-cookie@^4.1.2: - version "4.1.4" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.4.tgz#945f1461b45b5a8c76821c33ea49c3ac192c1b36" - integrity sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag== - dependencies: - psl "^1.1.33" - punycode "^2.1.1" - universalify "^0.2.0" - url-parse "^1.5.3" - -tough-cookie@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-6.0.0.tgz#11e418b7864a2c0d874702bc8ce0f011261940e5" - integrity sha512-kXuRi1mtaKMrsLUxz3sQYvVl37B0Ns6MzfrtV5DvJceE9bPyspOqk9xxv7XbZWcfLWbFmm997vl83qUWVJA64w== - dependencies: - tldts "^7.0.5" - -tr46@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-3.0.0.tgz#555c4e297a950617e8eeddef633c87d4d9d6cbf9" - integrity sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA== - dependencies: - punycode "^2.1.1" - -ts-api-utils@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-2.1.0.tgz#595f7094e46eed364c13fd23e75f9513d29baf91" - integrity sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ== - -ts-jest@^29.3.4: - version "29.4.5" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.4.5.tgz#a6b0dc401e521515d5342234be87f1ca96390a6f" - integrity sha512-HO3GyiWn2qvTQA4kTgjDcXiMwYQt68a1Y8+JuLRVpdIzm+UOLSHgl/XqR4c6nzJkq5rOkjc02O2I7P7l/Yof0Q== - dependencies: - bs-logger "^0.2.6" - fast-json-stable-stringify "^2.1.0" - handlebars "^4.7.8" - json5 "^2.2.3" - lodash.memoize "^4.1.2" - make-error "^1.3.6" - semver "^7.7.3" - type-fest "^4.41.0" - yargs-parser "^21.1.1" - -ts-loader@^9.5.1: - version "9.5.4" - resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-9.5.4.tgz#44b571165c10fb5a90744aa5b7e119233c4f4585" - integrity sha512-nCz0rEwunlTZiy6rXFByQU1kVVpCIgUpc/psFiKVrUwrizdnIbRFu8w7bxhUF0X613DYwT4XzrZHpVyMe758hQ== - dependencies: - chalk "^4.1.0" - enhanced-resolve "^5.0.0" - micromatch "^4.0.0" - semver "^7.3.4" - source-map "^0.7.4" - -type-check@^0.4.0, type-check@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" - integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== - dependencies: - prelude-ls "^1.2.1" - -type-detect@4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" - integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== - -type-fest@^0.21.3: - version "0.21.3" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" - integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== - -type-fest@^4.26.1, type-fest@^4.41.0: - version "4.41.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-4.41.0.tgz#6ae1c8e5731273c2bf1f58ad39cbae2c91a46c58" - integrity sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA== - -typedoc-plugin-missing-exports@^4.0.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/typedoc-plugin-missing-exports/-/typedoc-plugin-missing-exports-4.1.2.tgz#a125a679782082caad123e8b086b4ac9b28d08da" - integrity sha512-WNoeWX9+8X3E3riuYPduilUTFefl1K+Z+5bmYqNeH5qcWjtnTRMbRzGdEQ4XXn1WEO4WCIlU0vf46Ca2y/mspg== - -typedoc@^0.28.7: - version "0.28.14" - resolved "https://registry.yarnpkg.com/typedoc/-/typedoc-0.28.14.tgz#f48d650efc983b5cb3034b3b0e986b1702074326" - integrity sha512-ftJYPvpVfQvFzpkoSfHLkJybdA/geDJ8BGQt/ZnkkhnBYoYW6lBgPQXu6vqLxO4X75dA55hX8Af847H5KXlEFA== - dependencies: - "@gerrit0/mini-shiki" "^3.12.0" - lunr "^2.3.9" - markdown-it "^14.1.0" - minimatch "^9.0.5" - yaml "^2.8.1" - -typescript@~5.7.2: - version "5.7.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.7.3.tgz#919b44a7dbb8583a9b856d162be24a54bf80073e" - integrity sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw== - -uc.micro@^2.0.0, uc.micro@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-2.1.0.tgz#f8d3f7d0ec4c3dea35a7e3c8efa4cb8b45c9e7ee" - integrity sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A== - -uglify-js@^3.1.4: - version "3.19.3" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.19.3.tgz#82315e9bbc6f2b25888858acd1fff8441035b77f" - integrity sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ== - -undici-types@^6.15.0: - version "6.21.0" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.21.0.tgz#691d00af3909be93a7faa13be61b3a5b50ef12cb" - integrity sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ== - -undici-types@~5.26.4: - version "5.26.5" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" - integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== - -undici-types@~7.16.0: - version "7.16.0" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.16.0.tgz#ffccdff36aea4884cbfce9a750a0580224f58a46" - integrity sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw== - -undici@^7.12.0: - version "7.16.0" - resolved "https://registry.yarnpkg.com/undici/-/undici-7.16.0.tgz#cb2a1e957726d458b536e3f076bf51f066901c1a" - integrity sha512-QEg3HPMll0o3t2ourKwOeUAZ159Kn9mx5pnzHRQO8+Wixmh88YdZRiIwat0iNzNNXn0yoEtXJqFpyW7eM8BV7g== - -universalify@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0" - integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg== - -update-browserslist-db@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.4.tgz#7802aa2ae91477f255b86e0e46dbc787a206ad4a" - integrity sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A== - dependencies: - escalade "^3.2.0" - picocolors "^1.1.1" - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - -url-parse@^1.5.3: - version "1.5.10" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" - integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== - dependencies: - querystringify "^2.1.1" - requires-port "^1.0.0" - -uuid@^11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-11.1.0.tgz#9549028be1753bb934fc96e2bca09bb4105ae912" - integrity sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A== - -uuid@^9.0.0: - version "9.0.1" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" - integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== - -v8-to-istanbul@^9.0.1: - version "9.3.0" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz#b9572abfa62bd556c16d75fdebc1a411d5ff3175" - integrity sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA== - dependencies: - "@jridgewell/trace-mapping" "^0.3.12" - "@types/istanbul-lib-coverage" "^2.0.1" - convert-source-map "^2.0.0" - -w3c-xmlserializer@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz#aebdc84920d806222936e3cdce408e32488a3073" - integrity sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw== - dependencies: - xml-name-validator "^4.0.0" - -walker@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" - integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== - dependencies: - makeerror "1.0.12" - -watchpack@^2.4.4: - version "2.4.4" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.4.tgz#473bda72f0850453da6425081ea46fc0d7602947" - integrity sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA== - dependencies: - glob-to-regexp "^0.4.1" - graceful-fs "^4.1.2" - -webidl-conversions@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a" - integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== - -webpack-sources@^3.3.3: - version "3.3.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.3.3.tgz#d4bf7f9909675d7a070ff14d0ef2a4f3c982c723" - integrity sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg== - -webpack@^5.97.1: - version "5.102.1" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.102.1.tgz#1003a3024741a96ba99c37431938bf61aad3d988" - integrity sha512-7h/weGm9d/ywQ6qzJ+Xy+r9n/3qgp/thalBbpOi5i223dPXKi04IBtqPN9nTd+jBc7QKfvDbaBnFipYp4sJAUQ== - dependencies: - "@types/eslint-scope" "^3.7.7" - "@types/estree" "^1.0.8" - "@types/json-schema" "^7.0.15" - "@webassemblyjs/ast" "^1.14.1" - "@webassemblyjs/wasm-edit" "^1.14.1" - "@webassemblyjs/wasm-parser" "^1.14.1" - acorn "^8.15.0" - acorn-import-phases "^1.0.3" - browserslist "^4.26.3" - chrome-trace-event "^1.0.2" - enhanced-resolve "^5.17.3" - es-module-lexer "^1.2.1" - eslint-scope "5.1.1" - events "^3.2.0" - glob-to-regexp "^0.4.1" - graceful-fs "^4.2.11" - json-parse-even-better-errors "^2.3.1" - loader-runner "^4.2.0" - mime-types "^2.1.27" - neo-async "^2.6.2" - schema-utils "^4.3.3" - tapable "^2.3.0" - terser-webpack-plugin "^5.3.11" - watchpack "^2.4.4" - webpack-sources "^3.3.3" - -whatwg-encoding@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz#e7635f597fd87020858626805a2729fa7698ac53" - integrity sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg== - dependencies: - iconv-lite "0.6.3" - -whatwg-mimetype@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz#5fa1a7623867ff1af6ca3dc72ad6b8a4208beba7" - integrity sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q== - -whatwg-url@^11.0.0: - version "11.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-11.0.0.tgz#0a849eebb5faf2119b901bb76fd795c2848d4018" - integrity sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ== - dependencies: - tr46 "^3.0.0" - webidl-conversions "^7.0.0" - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -word-wrap@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" - integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== - -wordwrap@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== - -wrap-ansi@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" - integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^9.0.0: - version "9.0.2" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-9.0.2.tgz#956832dea9494306e6d209eb871643bb873d7c98" - integrity sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww== - dependencies: - ansi-styles "^6.2.1" - string-width "^7.0.0" - strip-ansi "^7.1.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== - -write-file-atomic@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd" - integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg== - dependencies: - imurmurhash "^0.1.4" - signal-exit "^3.0.7" - -ws@^8.11.0: - version "8.18.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.3.tgz#b56b88abffde62791c639170400c93dcb0c95472" - integrity sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg== - -xml-name-validator@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835" - integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw== - -xmlchars@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" - integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== - -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - -yallist@^3.0.2: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - -yaml@^2.8.1: - version "2.8.1" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.8.1.tgz#1870aa02b631f7e8328b93f8bc574fac5d6c4d79" - integrity sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw== - -yargs-parser@^21.1.1: - version "21.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" - integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== - -yargs@^17.3.1, yargs@^17.7.2: - version "17.7.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" - integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== - dependencies: - cliui "^8.0.1" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.3" - y18n "^5.0.5" - yargs-parser "^21.1.1" - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== - -yoctocolors-cjs@^2.1.2: - version "2.1.3" - resolved "https://registry.yarnpkg.com/yoctocolors-cjs/-/yoctocolors-cjs-2.1.3.tgz#7e4964ea8ec422b7a40ac917d3a344cfd2304baa" - integrity sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==