@usegrant/sdk
Version:
TypeSafe TypeScript SDK for accessing the UseGrant REST API
1 lines • 9.24 kB
Source Map (JSON)
{"version":3,"file":"index.cjs","names":["apiKey: string","options: Partial<Types.UseGrantOptions>","#api"],"sources":["../src/index.ts"],"sourcesContent":["import ky, { KyInstance, HTTPError } from 'ky';\nimport * as Types from './types';\nimport * as schema from './schema';\n\nconst API_URL = 'https://sdk.usegrant.dev';\n\nexport { HTTPError as UseGrantError };\nexport * from './types';\n\nclass UseGrant {\n #api: KyInstance;\n\n constructor(apiKey: string, options: Partial<Types.UseGrantOptions> = {}) {\n if (!apiKey) {\n throw new Error('API key is required');\n }\n\n this.#api = ky.create({\n signal: options.signal,\n prefixUrl: options.baseUrl ?? API_URL,\n headers: {\n Authorization: `Bearer ${apiKey}`,\n },\n retry: options.retry,\n });\n }\n\n listProviders = schema.GetProvidersFn.implementAsync(() => {\n return this.#api.get<Types.Provider[]>('v1/providers').json();\n });\n\n createProvider = schema.CreateProviderFn.implementAsync((req) => {\n return this.#api.post<Types.Provider>('v1/providers', { json: req }).json();\n });\n\n getProvider = schema.GetProviderFn.implementAsync((id) => {\n return this.#api.get<Types.Provider>(`v1/providers/${id}`).json();\n });\n\n deleteProvider = schema.DeleteProviderFn.implementAsync((id) => {\n return this.#api.delete(`v1/providers/${id}`).json();\n });\n\n listClients = schema.GetClientsFn.implementAsync((providerId) => {\n return this.#api.get<Types.Client[]>(`v1/providers/${providerId}/clients`).json();\n });\n\n createClient = schema.CreateClientFn.implementAsync((providerId, req) => {\n return this.#api.post<Types.Client>(`v1/providers/${providerId}/clients`, { json: req }).json();\n });\n\n getClient = schema.GetClientFn.implementAsync((providerId, clientId) => {\n return this.#api.get<Types.Client>(`v1/providers/${providerId}/clients/${clientId}`).json();\n });\n\n deleteClient = schema.DeleteClientFn.implementAsync((providerId, clientId) => {\n return this.#api.delete<Types.EmptyResponse>(`v1/providers/${providerId}/clients/${clientId}`).json();\n });\n\n createToken = schema.CreateTokenFn.implementAsync((providerId, clientId, req) => {\n return this.#api.post<Types.Token>(`v1/providers/${providerId}/clients/${clientId}/tokens`, { json: req }).json();\n });\n\n listDomains = schema.GetDomainsFn.implementAsync((providerId) => {\n return this.#api.get<Types.Domain[]>(`v1/providers/${providerId}/domains`).json();\n });\n\n addDomain = schema.AddDomainFn.implementAsync((providerId, req) => {\n return this.#api.post<Types.Domain>(`v1/providers/${providerId}/domains`, { json: req }).json();\n });\n\n deleteDomain = schema.DeleteDomainFn.implementAsync((providerId, domainId) => {\n return this.#api.delete<Types.EmptyResponse>(`v1/providers/${providerId}/domains/${domainId}`).json();\n });\n\n getDomain = schema.GetDomainFn.implementAsync((providerId, domainId) => {\n return this.#api.get<Types.Domain>(`v1/providers/${providerId}/domains/${domainId}`).json();\n });\n\n verifyDomain = schema.VerifyDomainFn.implementAsync((providerId, domainId) => {\n return this.#api\n .post<Types.DomainValidationResponse>(`v1/providers/${providerId}/domains/${domainId}/verify`)\n .json();\n });\n\n listTenants = schema.GetTenantsFn.implementAsync(() => {\n return this.#api.get<Types.Tenant[]>(`v1/tenants`).json();\n });\n\n createTenant = schema.CreateTenantFn.implementAsync((req) => {\n return this.#api.post<Types.Tenant>('v1/tenants', { json: req }).json();\n });\n\n getTenant = schema.GetTenantFn.implementAsync((tenantId) => {\n return this.#api.get<Types.Tenant>(`v1/tenants/${tenantId}`).json();\n });\n\n deleteTenant = schema.DeleteTenantFn.implementAsync((tenantId) => {\n return this.#api.delete<Types.EmptyResponse>(`v1/tenants/${tenantId}`).json();\n });\n\n listTenantProviders = schema.GetTenantProvidersFn.implementAsync((tenantId) => {\n return this.#api.get<Types.TenantProvider[]>(`v1/tenants/${tenantId}/providers`).json();\n });\n\n createTenantProvider = schema.CreateTenantProviderFn.implementAsync((tenantId, req) => {\n return this.#api.post<Types.TenantProvider>(`v1/tenants/${tenantId}/providers`, { json: req }).json();\n });\n\n getTenantProvider = schema.GetTenantProviderFn.implementAsync((tenantId, providerId) => {\n return this.#api.get<Types.TenantProvider>(`v1/tenants/${tenantId}/providers/${providerId}`).json();\n });\n\n deleteTenantProvider = schema.DeleteTenantProviderFn.implementAsync((tenantId, providerId) => {\n return this.#api.delete<Types.EmptyResponse>(`v1/tenants/${tenantId}/providers/${providerId}`).json();\n });\n\n listTenantProviderPolicies = schema.GetTenantProviderPoliciesFn.implementAsync((tenantId, providerId) => {\n return this.#api\n .get<Types.TenantProviderPolicy[]>(`v1/tenants/${tenantId}/providers/${providerId}/policies`)\n .json();\n });\n\n createTenantProviderPolicy = schema.CreateTenantProviderPolicyFn.implementAsync((tenantId, providerId, req) => {\n return this.#api\n .post<Types.TenantProviderPolicy>(`v1/tenants/${tenantId}/providers/${providerId}/policies`, { json: req })\n .json();\n });\n\n getTenantProviderPolicy = schema.GetTenantProviderPolicyFn.implementAsync((tenantId, providerId, policyId) => {\n return this.#api\n .get<Types.TenantProviderPolicy>(`v1/tenants/${tenantId}/providers/${providerId}/policies/${policyId}`)\n .json();\n });\n\n deleteTenantProviderPolicy = schema.DeleteTenantProviderPolicyFn.implementAsync((tenantId, providerId, policyId) => {\n return this.#api\n .delete<Types.EmptyResponse>(`v1/tenants/${tenantId}/providers/${providerId}/policies/${policyId}`)\n .json();\n });\n\n validateToken = schema.ValidateTokenFn.implementAsync((tenantId, policyId, token) => {\n return this.#api\n .post<Types.ValidateTokenResponse>(`v1/tenants/${tenantId}/validate`, {\n json: {\n tenantProviderPolicyId: policyId,\n token,\n },\n })\n .json();\n });\n}\n\nexport default UseGrant;\n"],"mappings":"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"}