UNPKG

@usegrant/sdk

Version:

TypeSafe TypeScript SDK for accessing the UseGrant REST API

106 lines (104 loc) 5.32 kB
import { AddDomainFn, CreateClientFn, CreateProviderFn, CreateTenantFn, CreateTenantProviderFn, CreateTenantProviderPolicyFn, CreateTokenFn, DeleteClientFn, DeleteDomainFn, DeleteProviderFn, DeleteTenantFn, DeleteTenantProviderFn, DeleteTenantProviderPolicyFn, GetClientFn, GetClientsFn, GetDomainFn, GetDomainsFn, GetProviderFn, GetProvidersFn, GetTenantFn, GetTenantProviderFn, GetTenantProviderPoliciesFn, GetTenantProviderPolicyFn, GetTenantProvidersFn, GetTenantsFn, ValidateTokenFn, VerifyDomainFn } from "./schema-DrKgsxUj.js"; import ky, { HTTPError } from "ky"; //#region src/index.ts const API_URL = "https://sdk.usegrant.dev"; var UseGrant = class { #api; constructor(apiKey, options = {}) { if (!apiKey) throw new Error("API key is required"); this.#api = ky.create({ signal: options.signal, prefixUrl: options.baseUrl ?? API_URL, headers: { Authorization: `Bearer ${apiKey}` }, retry: options.retry }); } listProviders = GetProvidersFn.implementAsync(() => { return this.#api.get("v1/providers").json(); }); createProvider = CreateProviderFn.implementAsync((req) => { return this.#api.post("v1/providers", { json: req }).json(); }); getProvider = GetProviderFn.implementAsync((id) => { return this.#api.get(`v1/providers/${id}`).json(); }); deleteProvider = DeleteProviderFn.implementAsync((id) => { return this.#api.delete(`v1/providers/${id}`).json(); }); listClients = GetClientsFn.implementAsync((providerId) => { return this.#api.get(`v1/providers/${providerId}/clients`).json(); }); createClient = CreateClientFn.implementAsync((providerId, req) => { return this.#api.post(`v1/providers/${providerId}/clients`, { json: req }).json(); }); getClient = GetClientFn.implementAsync((providerId, clientId) => { return this.#api.get(`v1/providers/${providerId}/clients/${clientId}`).json(); }); deleteClient = DeleteClientFn.implementAsync((providerId, clientId) => { return this.#api.delete(`v1/providers/${providerId}/clients/${clientId}`).json(); }); createToken = CreateTokenFn.implementAsync((providerId, clientId, req) => { return this.#api.post(`v1/providers/${providerId}/clients/${clientId}/tokens`, { json: req }).json(); }); listDomains = GetDomainsFn.implementAsync((providerId) => { return this.#api.get(`v1/providers/${providerId}/domains`).json(); }); addDomain = AddDomainFn.implementAsync((providerId, req) => { return this.#api.post(`v1/providers/${providerId}/domains`, { json: req }).json(); }); deleteDomain = DeleteDomainFn.implementAsync((providerId, domainId) => { return this.#api.delete(`v1/providers/${providerId}/domains/${domainId}`).json(); }); getDomain = GetDomainFn.implementAsync((providerId, domainId) => { return this.#api.get(`v1/providers/${providerId}/domains/${domainId}`).json(); }); verifyDomain = VerifyDomainFn.implementAsync((providerId, domainId) => { return this.#api.post(`v1/providers/${providerId}/domains/${domainId}/verify`).json(); }); listTenants = GetTenantsFn.implementAsync(() => { return this.#api.get(`v1/tenants`).json(); }); createTenant = CreateTenantFn.implementAsync((req) => { return this.#api.post("v1/tenants", { json: req }).json(); }); getTenant = GetTenantFn.implementAsync((tenantId) => { return this.#api.get(`v1/tenants/${tenantId}`).json(); }); deleteTenant = DeleteTenantFn.implementAsync((tenantId) => { return this.#api.delete(`v1/tenants/${tenantId}`).json(); }); listTenantProviders = GetTenantProvidersFn.implementAsync((tenantId) => { return this.#api.get(`v1/tenants/${tenantId}/providers`).json(); }); createTenantProvider = CreateTenantProviderFn.implementAsync((tenantId, req) => { return this.#api.post(`v1/tenants/${tenantId}/providers`, { json: req }).json(); }); getTenantProvider = GetTenantProviderFn.implementAsync((tenantId, providerId) => { return this.#api.get(`v1/tenants/${tenantId}/providers/${providerId}`).json(); }); deleteTenantProvider = DeleteTenantProviderFn.implementAsync((tenantId, providerId) => { return this.#api.delete(`v1/tenants/${tenantId}/providers/${providerId}`).json(); }); listTenantProviderPolicies = GetTenantProviderPoliciesFn.implementAsync((tenantId, providerId) => { return this.#api.get(`v1/tenants/${tenantId}/providers/${providerId}/policies`).json(); }); createTenantProviderPolicy = CreateTenantProviderPolicyFn.implementAsync((tenantId, providerId, req) => { return this.#api.post(`v1/tenants/${tenantId}/providers/${providerId}/policies`, { json: req }).json(); }); getTenantProviderPolicy = GetTenantProviderPolicyFn.implementAsync((tenantId, providerId, policyId) => { return this.#api.get(`v1/tenants/${tenantId}/providers/${providerId}/policies/${policyId}`).json(); }); deleteTenantProviderPolicy = DeleteTenantProviderPolicyFn.implementAsync((tenantId, providerId, policyId) => { return this.#api.delete(`v1/tenants/${tenantId}/providers/${providerId}/policies/${policyId}`).json(); }); validateToken = ValidateTokenFn.implementAsync((tenantId, policyId, token) => { return this.#api.post(`v1/tenants/${tenantId}/validate`, { json: { tenantProviderPolicyId: policyId, token } }).json(); }); }; var src_default = UseGrant; //#endregion export { HTTPError as UseGrantError, src_default as default }; //# sourceMappingURL=index.js.map