@usegrant/sdk
Version:
TypeSafe TypeScript SDK for accessing the UseGrant REST API
106 lines (104 loc) • 5.32 kB
JavaScript
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