@blimu/backend 0.7.0 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/README.md +129 -134
  2. package/dist/client.d.mts +24 -0
  3. package/dist/client.d.ts +15 -57
  4. package/dist/client.js +67 -156
  5. package/dist/client.js.map +1 -1
  6. package/dist/client.mjs +48 -0
  7. package/dist/client.mjs.map +1 -0
  8. package/dist/index.d.mts +36 -0
  9. package/dist/index.d.ts +25 -26
  10. package/dist/index.js +1046 -82
  11. package/dist/index.js.map +1 -1
  12. package/dist/index.mjs +1014 -0
  13. package/dist/index.mjs.map +1 -0
  14. package/dist/main.d.mts +19 -0
  15. package/dist/main.d.ts +19 -0
  16. package/dist/main.js +1285 -0
  17. package/dist/main.js.map +1 -0
  18. package/dist/main.mjs +1275 -0
  19. package/dist/main.mjs.map +1 -0
  20. package/dist/schema-B1usIXCr.d.mts +424 -0
  21. package/dist/schema-B1usIXCr.d.ts +424 -0
  22. package/dist/schema.d.mts +2 -0
  23. package/dist/schema.d.ts +2 -381
  24. package/dist/schema.js +17 -1
  25. package/dist/schema.js.map +1 -1
  26. package/dist/schema.mjs +1 -0
  27. package/dist/schema.mjs.map +1 -0
  28. package/dist/schema.zod-CRNAHxbc.d.mts +444 -0
  29. package/dist/schema.zod-CRNAHxbc.d.ts +444 -0
  30. package/dist/schema.zod.d.mts +2 -0
  31. package/dist/schema.zod.d.ts +2 -0
  32. package/dist/schema.zod.js +563 -0
  33. package/dist/schema.zod.js.map +1 -0
  34. package/dist/schema.zod.mjs +496 -0
  35. package/dist/schema.zod.mjs.map +1 -0
  36. package/dist/services/bulk_resources.d.mts +12 -0
  37. package/dist/services/bulk_resources.d.ts +9 -4
  38. package/dist/services/bulk_resources.js +45 -17
  39. package/dist/services/bulk_resources.js.map +1 -1
  40. package/dist/services/bulk_resources.mjs +22 -0
  41. package/dist/services/bulk_resources.mjs.map +1 -0
  42. package/dist/services/bulk_roles.d.mts +12 -0
  43. package/dist/services/bulk_roles.d.ts +9 -4
  44. package/dist/services/bulk_roles.js +45 -17
  45. package/dist/services/bulk_roles.js.map +1 -1
  46. package/dist/services/bulk_roles.mjs +22 -0
  47. package/dist/services/bulk_roles.mjs.map +1 -0
  48. package/dist/services/entitlements.d.mts +14 -0
  49. package/dist/services/entitlements.d.ts +11 -6
  50. package/dist/services/entitlements.js +69 -33
  51. package/dist/services/entitlements.js.map +1 -1
  52. package/dist/services/entitlements.mjs +46 -0
  53. package/dist/services/entitlements.mjs.map +1 -0
  54. package/dist/services/plans.d.mts +14 -0
  55. package/dist/services/plans.d.ts +11 -6
  56. package/dist/services/plans.js +67 -31
  57. package/dist/services/plans.js.map +1 -1
  58. package/dist/services/plans.mjs +44 -0
  59. package/dist/services/plans.mjs.map +1 -0
  60. package/dist/services/resource_members.d.mts +12 -0
  61. package/dist/services/resource_members.d.ts +9 -4
  62. package/dist/services/resource_members.js +45 -16
  63. package/dist/services/resource_members.js.map +1 -1
  64. package/dist/services/resource_members.mjs +22 -0
  65. package/dist/services/resource_members.mjs.map +1 -0
  66. package/dist/services/resources.d.mts +16 -0
  67. package/dist/services/resources.d.ts +13 -8
  68. package/dist/services/resources.js +91 -48
  69. package/dist/services/resources.js.map +1 -1
  70. package/dist/services/resources.mjs +68 -0
  71. package/dist/services/resources.mjs.map +1 -0
  72. package/dist/services/roles.d.mts +14 -0
  73. package/dist/services/roles.d.ts +11 -6
  74. package/dist/services/roles.js +68 -32
  75. package/dist/services/roles.js.map +1 -1
  76. package/dist/services/roles.mjs +45 -0
  77. package/dist/services/roles.mjs.map +1 -0
  78. package/dist/services/usage.d.mts +16 -0
  79. package/dist/services/usage.d.ts +13 -8
  80. package/dist/services/usage.js +93 -51
  81. package/dist/services/usage.js.map +1 -1
  82. package/dist/services/usage.mjs +70 -0
  83. package/dist/services/usage.mjs.map +1 -0
  84. package/dist/services/users.d.mts +17 -0
  85. package/dist/services/users.d.ts +13 -8
  86. package/dist/services/users.js +102 -55
  87. package/dist/services/users.js.map +1 -1
  88. package/dist/services/users.mjs +79 -0
  89. package/dist/services/users.mjs.map +1 -0
  90. package/dist/token-verifier.d.mts +35 -0
  91. package/dist/token-verifier.d.ts +8 -6
  92. package/dist/token-verifier.js +227 -171
  93. package/dist/token-verifier.js.map +1 -1
  94. package/dist/token-verifier.mjs +203 -0
  95. package/dist/token-verifier.mjs.map +1 -0
  96. package/dist/tsconfig.tsbuildinfo +1 -1
  97. package/dist/utils.d.mts +20 -0
  98. package/dist/utils.d.ts +7 -3
  99. package/dist/utils.js +50 -19
  100. package/dist/utils.js.map +1 -1
  101. package/dist/utils.mjs +29 -0
  102. package/dist/utils.mjs.map +1 -0
  103. package/package.json +37 -62
  104. package/src/client.ts +74 -0
  105. package/src/index.ts +55 -0
  106. package/src/main.ts +3 -0
  107. package/src/schema.ts +430 -0
  108. package/src/schema.zod.ts +558 -0
  109. package/src/services/bulk_resources.ts +24 -0
  110. package/src/services/bulk_roles.ts +22 -0
  111. package/src/services/entitlements.ts +58 -0
  112. package/src/services/plans.ts +57 -0
  113. package/src/services/resource_members.ts +25 -0
  114. package/src/services/resources.ts +91 -0
  115. package/src/services/roles.ts +58 -0
  116. package/src/services/usage.ts +93 -0
  117. package/src/services/users.ts +100 -0
  118. package/src/token-verifier.ts +280 -0
  119. package/src/utils.ts +56 -0
  120. package/bin/blimu +0 -0
  121. package/scripts/download-binary.js +0 -243
  122. package/scripts/postinstall.js +0 -24
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/client.ts","../src/services/bulk_resources.ts","../src/services/bulk_roles.ts","../src/services/entitlements.ts","../src/services/plans.ts","../src/services/resource_members.ts","../src/services/resources.ts","../src/services/roles.ts","../src/services/usage.ts","../src/services/users.ts","../src/index.ts","../src/utils.ts","../src/schema.ts","../src/schema.zod.ts"],"sourcesContent":["import {\n FetchClient,\n FetchError,\n type FetchClientConfig,\n type AuthStrategy,\n} from '@blimu/fetch';\n\nexport type ClientOption = FetchClientConfig & { apiKey?: string };\n\n// Re-export FetchError for backward compatibility\nexport { FetchError };\n\nexport class CoreClient extends FetchClient {\n constructor(cfg: ClientOption = {}) {\n // Build auth strategies from OpenAPI security schemes\n const authStrategies: AuthStrategy[] = [];\n\n // Extract auth and security scheme properties to avoid passing them to FetchClient\n const { auth: _existingAuth, apiKey, ...restCfg } = cfg;\n if (cfg?.apiKey) {\n const apiKeyValue = cfg.apiKey;\n authStrategies.push({\n type: 'apiKey',\n key: () => apiKeyValue,\n location: 'header',\n name: 'X-API-KEY',\n });\n } // Build final auth config (merge existing with new strategies)\n const finalAuthStrategies = [\n ...(_existingAuth?.strategies || []),\n ...authStrategies,\n ];\n\n // Build fetchConfig, ensuring auth comes after restCfg spread to override any existing auth\n const fetchConfig: FetchClientConfig = {\n ...restCfg,\n baseURL: cfg.baseURL ?? 'https://api.blimu.dev',\n // Explicitly set auth after restCfg to ensure it's not overwritten\n // (restCfg might have an auth property that we want to replace)\n ...(finalAuthStrategies.length > 0\n ? {\n auth: {\n strategies: finalAuthStrategies,\n },\n }\n : {}),\n // Hooks are passed through directly from FetchClientConfig (no mapping needed)\n };\n\n super(fetchConfig);\n }\n\n async request(\n init: RequestInit & {\n path: string;\n method: string;\n query?: Record<string, any>;\n }\n ) {\n return await super.request(init);\n }\n\n async *requestStream<T = any>(\n init: RequestInit & {\n path: string;\n method: string;\n query?: Record<string, any>;\n contentType: string;\n streamingFormat?: 'sse' | 'ndjson' | 'chunked';\n }\n ): AsyncGenerator<T, void, unknown> {\n yield* super.requestStream(init);\n }\n}\n","import { CoreClient } from '../client';\nimport * as Schema from '../schema';\nimport type { ResourceType } from '@blimu/types';\n\nexport class BulkResourcesService {\n constructor(private core: CoreClient) {}\n\n /**\n * POST /v1/resources/{resourceType}/bulk*\n * @summary Bulk create resources*\n * @description Creates multiple resources of the specified type in a single request. This operation supports partial success - some resources may be created while others fail. The response includes details about successful creations and any errors encountered. Resources can have parent relationships and initial role assignments.*/\n create(\n resourceType: ResourceType,\n body: Schema.ResourceBulkCreateBody,\n init?: Omit<RequestInit, 'method' | 'body'>\n ): Promise<Schema.ResourceBulkResult> {\n return this.core.request({\n method: 'POST',\n path: `/v1/resources/${encodeURIComponent(resourceType)}/bulk`,\n body: body as any,\n ...(init || {}),\n });\n }\n}\n","import { CoreClient } from '../client';\nimport * as Schema from '../schema';\n\nexport class BulkRolesService {\n constructor(private core: CoreClient) {}\n\n /**\n * POST /v1/users/roles/bulk*\n * @summary Bulk create roles*\n * @description Assigns multiple roles to users on resources in a single request. This operation supports partial success - some role assignments may succeed while others fail. The response includes details about successful assignments and any errors encountered. All roles must be valid according to your resource definitions.*/\n create(\n body: Schema.RoleBulkCreateBody,\n init?: Omit<RequestInit, 'method' | 'body'>\n ): Promise<Schema.RoleBulkResult> {\n return this.core.request({\n method: 'POST',\n path: `/v1/users/roles/bulk`,\n body: body as any,\n ...(init || {}),\n });\n }\n}\n","import { CoreClient } from '../client';\nimport * as Schema from '../schema';\nimport type { ResourceType } from '@blimu/types';\n\nexport class EntitlementsService {\n constructor(private core: CoreClient) {}\n\n /**\n * POST /v1/entitlements/check*\n * @summary Check if a user has a specific entitlement on a resource*\n * @description Checks whether a user has permission to perform a specific action (entitlement) on a resource. This endpoint evaluates role-based access, plan gating, and usage limits. The response includes detailed information about why access was granted or denied, including which roles were checked, plan requirements, and usage limit status.*/\n checkEntitlement(\n body: Schema.EntitlementCheckBody,\n init?: Omit<RequestInit, 'method' | 'body'>\n ): Promise<Schema.EntitlementCheckResult> {\n return this.core.request({\n method: 'POST',\n path: `/v1/entitlements/check`,\n body: body as any,\n ...(init || {}),\n });\n }\n\n /**\n * GET /v1/entitlements/list-for-resource/{resourceType}/{resourceId}*\n * @summary List entitlements for a specific resource*\n * @description Returns entitlements for a specific resource and user. Only evaluates roles and plans (excludes limits). Provides detailed information about why entitlements are allowed or denied, including current roles, allowed roles, current plan, and allowed plans. Results are cached per resource for performance.*/\n listForResource(\n resourceType: ResourceType,\n resourceId: string,\n query?: Schema.EntitlementsListForResourceQuery,\n init?: Omit<RequestInit, 'method' | 'body'>\n ): Promise<Schema.EntitlementsListResult> {\n return this.core.request({\n method: 'GET',\n path: `/v1/entitlements/list-for-resource/${encodeURIComponent(resourceType)}/${encodeURIComponent(resourceId)}`,\n query,\n ...(init || {}),\n });\n }\n\n /**\n * GET /v1/entitlements/list-for-tenant/{tenantResourceId}*\n * @summary List entitlements for a tenant and all its sub-resources*\n * @description Returns entitlements for a tenant resource and all its descendant resources. This endpoint scopes queries to a single tenant, preventing cross-tenant data access. Only evaluates roles and plans (excludes limits). Results are cached per resource for performance. The tenant resource type is automatically determined from the environment definition (resource marked as `is_tenant: true`).*/\n listForTenant(\n tenantResourceId: string,\n query?: Schema.EntitlementsListForTenantQuery,\n init?: Omit<RequestInit, 'method' | 'body'>\n ): Promise<Schema.EntitlementsListResult> {\n return this.core.request({\n method: 'GET',\n path: `/v1/entitlements/list-for-tenant/${encodeURIComponent(tenantResourceId)}`,\n query,\n ...(init || {}),\n });\n }\n}\n","import { CoreClient } from '../client';\nimport * as Schema from '../schema';\nimport type { ResourceType } from '@blimu/types';\n\nexport class PlansService {\n constructor(private core: CoreClient) {}\n\n /**\n * DELETE /v1/resources/{resourceType}/{resourceId}/plan*\n * @summary Remove plan assignment from a tenant resource*\n * @description Removes the billing plan assignment from a tenant resource. After removal, the resource will have no plan and will be subject to default limits.*/\n delete(\n resourceType: ResourceType,\n resourceId: string,\n init?: Omit<RequestInit, 'method' | 'body'>\n ): Promise<Schema.PlanDeleteResponse> {\n return this.core.request({\n method: 'DELETE',\n path: `/v1/resources/${encodeURIComponent(resourceType)}/${encodeURIComponent(resourceId)}/plan`,\n ...(init || {}),\n });\n }\n\n /**\n * GET /v1/resources/{resourceType}/{resourceId}/plan*\n * @summary Get the plan assigned to a tenant resource*\n * @description Retrieves the billing plan currently assigned to a tenant resource, if any.*/\n read(\n resourceType: ResourceType,\n resourceId: string,\n init?: Omit<RequestInit, 'method' | 'body'>\n ): Promise<Schema.PlanResponse> {\n return this.core.request({\n method: 'GET',\n path: `/v1/resources/${encodeURIComponent(resourceType)}/${encodeURIComponent(resourceId)}/plan`,\n ...(init || {}),\n });\n }\n\n /**\n * POST /v1/resources/{resourceType}/{resourceId}/plan*\n * @summary Assign a plan to a tenant resource*\n * @description Assigns a billing plan to a tenant resource. Plans control feature access and usage limits based on your plan definitions. The resource must be marked as a tenant in your resource definitions.*/\n assign(\n resourceType: ResourceType,\n resourceId: string,\n body: Schema.PlanAssignBody,\n init?: Omit<RequestInit, 'method' | 'body'>\n ): Promise<unknown> {\n return this.core.request({\n method: 'POST',\n path: `/v1/resources/${encodeURIComponent(resourceType)}/${encodeURIComponent(resourceId)}/plan`,\n body: body as any,\n ...(init || {}),\n });\n }\n}\n","import { CoreClient } from '../client';\nimport * as Schema from '../schema';\nimport type { ResourceType } from '@blimu/types';\n\nexport class ResourceMembersService {\n constructor(private core: CoreClient) {}\n\n /**\n * GET /v1/resources/{resourceType}/{resourceId}/members*\n * @summary List members for a resource*\n * @description Retrieves a paginated list of users who have roles (direct or inherited) on the specified resource. Supports search functionality to filter users by email or name.*/\n list(\n resourceType: ResourceType,\n resourceId: string,\n query?: Schema.ResourceMembersListQuery,\n init?: Omit<RequestInit, 'method' | 'body'>\n ): Promise<Schema.ResourceMemberList> {\n return this.core.request({\n method: 'GET',\n path: `/v1/resources/${encodeURIComponent(resourceType)}/${encodeURIComponent(resourceId)}/members`,\n query,\n ...(init || {}),\n });\n }\n}\n","import { CoreClient } from '../client';\nimport * as Schema from '../schema';\nimport type { ResourceType } from '@blimu/types';\n\nexport class ResourcesService {\n constructor(private core: CoreClient) {}\n\n /**\n * GET /v1/resources/{resourceType}*\n * @summary List resources*\n * @description Retrieves a paginated list of resources of the specified type. Supports search and filtering. Resources are returned with their parent relationships and metadata.*/\n list(\n resourceType: ResourceType,\n query?: Schema.ResourcesListQuery,\n init?: Omit<RequestInit, 'method' | 'body'>\n ): Promise<Schema.ResourceList> {\n return this.core.request({\n method: 'GET',\n path: `/v1/resources/${encodeURIComponent(resourceType)}`,\n query,\n ...(init || {}),\n });\n }\n\n /**\n * POST /v1/resources/{resourceType}*\n * @summary Create a resource*\n * @description Creates a new resource of the specified type. Resources can have parent relationships to form hierarchies. You can optionally assign initial roles to users when creating the resource. Parent resources must already exist.*/\n create(\n resourceType: ResourceType,\n body: Schema.ResourceCreateBody,\n init?: Omit<RequestInit, 'method' | 'body'>\n ): Promise<Schema.Resource> {\n return this.core.request({\n method: 'POST',\n path: `/v1/resources/${encodeURIComponent(resourceType)}`,\n body: body as any,\n ...(init || {}),\n });\n }\n\n /**\n * DELETE /v1/resources/{resourceType}/{resourceId}*\n * @summary Delete a resource*\n * @description Deletes a resource by its type and ID. This operation is permanent and cannot be undone. Deleting a resource may affect child resources that depend on it.*/\n delete(\n resourceType: ResourceType,\n resourceId: string,\n init?: Omit<RequestInit, 'method' | 'body'>\n ): Promise<unknown> {\n return this.core.request({\n method: 'DELETE',\n path: `/v1/resources/${encodeURIComponent(resourceType)}/${encodeURIComponent(resourceId)}`,\n ...(init || {}),\n });\n }\n\n /**\n * GET /v1/resources/{resourceType}/{resourceId}*\n * @summary Read a resource*\n * @description Retrieves a single resource by its type and ID. Returns the resource with its parent relationships and metadata.*/\n read(\n resourceType: ResourceType,\n resourceId: string,\n init?: Omit<RequestInit, 'method' | 'body'>\n ): Promise<Schema.Resource> {\n return this.core.request({\n method: 'GET',\n path: `/v1/resources/${encodeURIComponent(resourceType)}/${encodeURIComponent(resourceId)}`,\n ...(init || {}),\n });\n }\n\n /**\n * PUT /v1/resources/{resourceType}/{resourceId}*\n * @summary Update a resource*\n * @description Updates an existing resource. You can update the resource name and modify parent relationships. Parent resources must already exist.*/\n update(\n resourceType: ResourceType,\n resourceId: string,\n body: Schema.ResourceUpdateBody,\n init?: Omit<RequestInit, 'method' | 'body'>\n ): Promise<unknown> {\n return this.core.request({\n method: 'PUT',\n path: `/v1/resources/${encodeURIComponent(resourceType)}/${encodeURIComponent(resourceId)}`,\n body: body as any,\n ...(init || {}),\n });\n }\n}\n","import { CoreClient } from '../client';\nimport * as Schema from '../schema';\nimport type { ResourceType } from '@blimu/types';\n\nexport class RolesService {\n constructor(private core: CoreClient) {}\n\n /**\n * GET /v1/users/{userId}/roles*\n * @summary List user roles*\n * @description Retrieves a paginated list of roles assigned to a user. Supports filtering by resource type, resource ID, and role name. Returns both directly assigned roles and inherited roles.*/\n list(\n userId: string,\n query?: Schema.RolesListQuery,\n init?: Omit<RequestInit, 'method' | 'body'>\n ): Promise<Schema.RoleList> {\n return this.core.request({\n method: 'GET',\n path: `/v1/users/${encodeURIComponent(userId)}/roles`,\n query,\n ...(init || {}),\n });\n }\n\n /**\n * POST /v1/users/{userId}/roles*\n * @summary Create a role (assign role to user on resource)*\n * @description Assigns a role to a user on a specific resource. The role must be defined in your resource definitions for the specified resource type. Roles can be inherited from parent resources based on your resource configuration.*/\n create(\n userId: string,\n body: Schema.RoleCreateBody,\n init?: Omit<RequestInit, 'method' | 'body'>\n ): Promise<Schema.Role> {\n return this.core.request({\n method: 'POST',\n path: `/v1/users/${encodeURIComponent(userId)}/roles`,\n body: body as any,\n ...(init || {}),\n });\n }\n\n /**\n * DELETE /v1/users/{userId}/roles/{resourceType}/{resourceId}*\n * @summary Delete a role*\n * @description Removes a role assignment from a user on a specific resource. This only removes the direct role assignment and does not affect inherited roles from parent resources.*/\n delete(\n userId: string,\n resourceType: ResourceType,\n resourceId: string,\n init?: Omit<RequestInit, 'method' | 'body'>\n ): Promise<unknown> {\n return this.core.request({\n method: 'DELETE',\n path: `/v1/users/${encodeURIComponent(userId)}/roles/${encodeURIComponent(resourceType)}/${encodeURIComponent(resourceId)}`,\n ...(init || {}),\n });\n }\n}\n","import { CoreClient } from '../client';\nimport * as Schema from '../schema';\nimport type { ResourceType, UsageLimitType } from '@blimu/types';\n\nexport class UsageService {\n constructor(private core: CoreClient) {}\n\n /**\n * GET /v1/usage/balance/{resourceType}/{resourceId}/{limitType}*\n * @summary Get wallet balance*\n * @description Retrieves the current balance of a usage wallet for a specific resource and limit type within a given time period. The balance reflects all credits and consumption transactions.*/\n getBalance(\n resourceType: ResourceType,\n resourceId: string,\n limitType: UsageLimitType,\n query?: Schema.UsageGetBalanceQuery,\n init?: Omit<RequestInit, 'method' | 'body'>\n ): Promise<Schema.BalanceResponse> {\n return this.core.request({\n method: 'GET',\n path: `/v1/usage/balance/${encodeURIComponent(resourceType)}/${encodeURIComponent(resourceId)}/${encodeURIComponent(limitType)}`,\n query,\n ...(init || {}),\n });\n }\n\n /**\n * POST /v1/usage/check*\n * @summary Check if consumption is allowed*\n * @description Checks whether a specific amount of consumption is allowed for a resource and limit type within a given time period. Returns the current balance, requested amount, and remaining balance after the consumption.*/\n checkLimit(\n body: Schema.UsageCheckBody,\n init?: Omit<RequestInit, 'method' | 'body'>\n ): Promise<Schema.CheckLimitResponse> {\n return this.core.request({\n method: 'POST',\n path: `/v1/usage/check`,\n body: body as any,\n ...(init || {}),\n });\n }\n\n /**\n * POST /v1/usage/consume*\n * @summary Record consumption (inserts negative amount)*\n * @description Records consumption from a usage wallet for a specific resource and limit type. This decreases the available balance. Consumption can be tagged for tracking purposes.*/\n consume(\n body: Schema.UsageConsumeBody,\n init?: Omit<RequestInit, 'method' | 'body'>\n ): Promise<Schema.UsageWalletResponse> {\n return this.core.request({\n method: 'POST',\n path: `/v1/usage/consume`,\n body: body as any,\n ...(init || {}),\n });\n }\n\n /**\n * POST /v1/usage/credit*\n * @summary Add credits to wallet (inserts positive amount)*\n * @description Adds credits to a usage wallet for a specific resource and limit type. This increases the available balance for usage-based limits. Credits can be tagged for tracking purposes.*/\n credit(\n body: Schema.UsageCreditBody,\n init?: Omit<RequestInit, 'method' | 'body'>\n ): Promise<Schema.UsageWalletResponse> {\n return this.core.request({\n method: 'POST',\n path: `/v1/usage/credit`,\n body: body as any,\n ...(init || {}),\n });\n }\n\n /**\n * GET /v1/usage/transactions/{resourceType}/{resourceId}/{limitType}*\n * @summary Get transaction history*\n * @description Retrieves the transaction history for a usage wallet, including all credits and consumption records. Supports filtering by time period and date range.*/\n getTransactionHistory(\n resourceType: ResourceType,\n resourceId: string,\n limitType: UsageLimitType,\n query?: Schema.UsageGetTransactionHistoryQuery,\n init?: Omit<RequestInit, 'method' | 'body'>\n ): Promise<Schema.TransactionHistoryResponse> {\n return this.core.request({\n method: 'GET',\n path: `/v1/usage/transactions/${encodeURIComponent(resourceType)}/${encodeURIComponent(resourceId)}/${encodeURIComponent(limitType)}`,\n query,\n ...(init || {}),\n });\n }\n}\n","import { CoreClient } from '../client';\nimport * as Schema from '../schema';\n\nexport class UsersService {\n constructor(private core: CoreClient) {}\n\n /**\n * GET /v1/users*\n * @summary List users*\n * @description Retrieves a paginated list of users in your environment. Supports search functionality to filter users by email, name, or lookup key.*/\n list(\n query?: Schema.UsersListQuery,\n init?: Omit<RequestInit, 'method' | 'body'>\n ): Promise<Schema.UserList> {\n return this.core.request({\n method: 'GET',\n path: `/v1/users`,\n query,\n ...(init || {}),\n });\n }\n\n /**\n * POST /v1/users*\n * @summary Create a user*\n * @description Creates a new user in your environment. The lookupKey is a unique identifier that you can use to reference the user in your system. It should be stable and not change over time.*/\n create(\n body: Schema.UserCreateBody,\n init?: Omit<RequestInit, 'method' | 'body'>\n ): Promise<Schema.User> {\n return this.core.request({\n method: 'POST',\n path: `/v1/users`,\n body: body as any,\n ...(init || {}),\n });\n }\n\n /**\n * DELETE /v1/users/{userId}*\n * @summary Delete a user*\n * @description Deletes a user by their ID or lookup key. This operation is permanent and cannot be undone. Deleting a user will also remove all role assignments for that user.*/\n delete(\n userId: string,\n init?: Omit<RequestInit, 'method' | 'body'>\n ): Promise<unknown> {\n return this.core.request({\n method: 'DELETE',\n path: `/v1/users/${encodeURIComponent(userId)}`,\n ...(init || {}),\n });\n }\n\n /**\n * GET /v1/users/{userId}*\n * @summary Get a user by ID*\n * @description Retrieves a single user by their ID or lookup key. Returns user information including email, name, and metadata.*/\n read(\n userId: string,\n init?: Omit<RequestInit, 'method' | 'body'>\n ): Promise<Schema.User> {\n return this.core.request({\n method: 'GET',\n path: `/v1/users/${encodeURIComponent(userId)}`,\n ...(init || {}),\n });\n }\n\n /**\n * PUT /v1/users/{userId}*\n * @summary Update a user*\n * @description Updates an existing user. You can modify email, name, and other user properties. The lookupKey can be updated but should remain stable.*/\n update(\n userId: string,\n body: Schema.UserUpdateBody,\n init?: Omit<RequestInit, 'method' | 'body'>\n ): Promise<Schema.User> {\n return this.core.request({\n method: 'PUT',\n path: `/v1/users/${encodeURIComponent(userId)}`,\n body: body as any,\n ...(init || {}),\n });\n }\n\n /**\n * GET /v1/users/{userId}/effective-user-resources-roles*\n * @summary List effective user resources roles*\n * @description Retrieves all resources and roles for a user, including inherited roles from parent resources. The response indicates whether each role is directly assigned or inherited through resource hierarchies.*/\n listEffectiveUserResourcesRoles(\n userId: string,\n init?: Omit<RequestInit, 'method' | 'body'>\n ): Promise<Schema.UserResourceList> {\n return this.core.request({\n method: 'GET',\n path: `/v1/users/${encodeURIComponent(userId)}/effective-user-resources-roles`,\n ...(init || {}),\n });\n }\n}\n","import { CoreClient, FetchError, type ClientOption } from './client';\nimport { BulkResourcesService } from './services/bulk_resources';\nimport { BulkRolesService } from './services/bulk_roles';\nimport { EntitlementsService } from './services/entitlements';\nimport { PlansService } from './services/plans';\nimport { ResourceMembersService } from './services/resource_members';\nimport { ResourcesService } from './services/resources';\nimport { RolesService } from './services/roles';\nimport { UsageService } from './services/usage';\nimport { UsersService } from './services/users';\nexport class Blimu {\n readonly bulkResources: BulkResourcesService;\n readonly bulkRoles: BulkRolesService;\n readonly entitlements: EntitlementsService;\n readonly plans: PlansService;\n readonly resourceMembers: ResourceMembersService;\n readonly resources: ResourcesService;\n readonly roles: RolesService;\n readonly usage: UsageService;\n readonly users: UsersService;\n constructor(options?: ClientOption) {\n const core = new CoreClient(options);\n this.bulkResources = new BulkResourcesService(core);\n this.bulkRoles = new BulkRolesService(core);\n this.entitlements = new EntitlementsService(core);\n this.plans = new PlansService(core);\n this.resourceMembers = new ResourceMembersService(core);\n this.resources = new ResourcesService(core);\n this.roles = new RolesService(core);\n this.usage = new UsageService(core);\n this.users = new UsersService(core);\n }\n}\n\nexport type { ClientOption };\n\n// Export FetchError and CoreClient for error handling and advanced usage\nexport { FetchError, CoreClient };\n// Re-export all error types from @blimu/fetch for instanceof checks\nexport * from '@blimu/fetch';\nexport const BlimuError = FetchError;\n\n// Re-exports for better ergonomics\nexport * from './utils';\nexport * as Schema from './schema';\nexport * as ZodSchema from './schema.zod';\nexport { BulkResourcesService } from './services/bulk_resources';\nexport { BulkRolesService } from './services/bulk_roles';\nexport { EntitlementsService } from './services/entitlements';\nexport { PlansService } from './services/plans';\nexport { ResourceMembersService } from './services/resource_members';\nexport { ResourcesService } from './services/resources';\nexport { RolesService } from './services/roles';\nexport { UsageService } from './services/usage';\nexport { UsersService } from './services/users';\n","import { parseSSEStream, parseNDJSONStream } from '@blimu/fetch';\n\nexport type PaginableQuery = { limit?: number; offset?: number } & Record<\n string,\n unknown\n>;\n\nexport async function* paginate<T>(\n fetchPage: (\n query?: any,\n init?: Omit<RequestInit, 'method' | 'body'>\n ) => Promise<{\n data?: T[];\n hasMore?: boolean;\n limit?: number;\n offset?: number;\n }>,\n initialQuery: PaginableQuery = {},\n pageSize = 100\n): AsyncGenerator<T, void, unknown> {\n let offset = Number(initialQuery.offset ?? 0);\n const limit = Number(initialQuery.limit ?? pageSize);\n // shallow copy to avoid mutating caller\n const baseQuery: any = { ...initialQuery };\n while (true) {\n const page = await fetchPage({ ...baseQuery, limit, offset });\n const items = page.data ?? [];\n for (const item of items) {\n yield item as T;\n }\n if (!page.hasMore || items.length < limit) break;\n offset += limit;\n }\n}\n\nexport async function listAll<T>(\n fetchPage: (\n query?: any,\n init?: Omit<RequestInit, 'method' | 'body'>\n ) => Promise<{\n data?: T[];\n hasMore?: boolean;\n limit?: number;\n offset?: number;\n }>,\n query: PaginableQuery = {},\n pageSize = 100\n): Promise<T[]> {\n const out: T[] = [];\n for await (const item of paginate<T>(fetchPage, query, pageSize))\n out.push(item);\n return out;\n}\n\n// Re-export streaming parsers from @blimu/fetch\nexport { parseSSEStream, parseNDJSONStream };\n","// Generated types from OpenAPI components.schemas\n\nimport type {\n ResourceType,\n EntitlementType,\n PlanType,\n LimitType,\n UsageLimitType,\n} from '@blimu/types';\n\nexport type Enum<T> = T[keyof T];\n\nexport interface BalanceResponse {\n balance: number;\n}\n\nexport interface CheckLimitResponse {\n allowed: boolean;\n current: number;\n remaining?: number;\n requested: number;\n}\n\nexport interface EntitlementCheckBody {\n amount?: number;\n entitlement: EntitlementType;\n resourceId: string;\n userId: string;\n}\n\nexport interface EntitlementCheckResult {\n allowed: boolean;\n limit?: {\n allowed: boolean;\n current?: number;\n limit?: number;\n plan?: string | null;\n reason?: string;\n remaining?: number;\n scope?: string;\n } | null;\n plans?: {\n allowed: boolean;\n allowedPlans?: Array<string>;\n plan?: string | null;\n reason?: string;\n } | null;\n roles?: {\n allowed: boolean;\n allowedRoles?: Array<string>;\n reason?: string;\n userRoles?: Array<string>;\n } | null;\n}\n\nexport interface EntitlementsListResult {\n results: Array<{\n entitlements: Array<{\n allowed: boolean;\n allowedByPlan: boolean;\n allowedByRole: boolean;\n allowedPlans?: Array<string>;\n allowedRoles: Array<string>;\n currentPlan?: string;\n currentRole?: string;\n entitlement: EntitlementType;\n }>;\n resourceId: string;\n resourceType: ResourceType;\n }>;\n}\n\nexport interface PlanAssignBody {\n planKey: PlanType;\n}\n\nexport interface PlanDeleteResponse {\n success: boolean;\n}\n\nexport interface PlanResponse {\n createdAt: string;\n environmentId: string;\n planKey: PlanType;\n resourceId: string;\n resourceType: ResourceType;\n updatedAt: string;\n}\n\nexport interface Resource {\n createdAt: string;\n id: string;\n name: string | null;\n parents?: Array<{ id: string; type: ResourceType }>;\n type: ResourceType;\n}\n\nexport interface ResourceBulkCreateBody {\n resources: Array<{\n id?: string;\n name?: string;\n parents?: Array<{ id: string; type: ResourceType }>;\n roles?: Array<{ role: string; userId: string }>;\n }>;\n}\n\nexport interface ResourceBulkResult {\n created: Array<{ environmentId: string; id: string; type: ResourceType }>;\n errors: Array<{\n error: string;\n index: number;\n resource: {\n id?: string;\n name?: string;\n parents?: Array<{ id: string; type: ResourceType }>;\n roles?: Array<{ role: string; userId: string }>;\n };\n }>;\n success: boolean;\n summary: { failed: number; successful: number; total: number };\n}\n\nexport interface ResourceCreateBody {\n id?: string;\n name?: string;\n parents?: Array<{ id: string; type: ResourceType }>;\n roles?: Array<{ role: string; userId: string }>;\n}\n\nexport interface ResourceList {\n items: Array<{\n createdAt: string;\n id: string;\n name: string | null;\n parents?: Array<{ id: string; type: ResourceType }>;\n type: ResourceType;\n }>;\n limit: number;\n page: number;\n total: number;\n}\n\nexport interface ResourceMemberList {\n items: Array<{\n inherited: boolean;\n role: string;\n user: {\n avatarUrl: string | null;\n createdAt: string;\n email: string;\n emailVerified: boolean;\n firstName: string | null;\n id: string;\n lastLoginAt: string | null;\n lastName: string | null;\n lookupKey: string | null;\n updatedAt: string;\n };\n userId: string;\n }>;\n limit: number;\n page: number;\n total: number;\n}\n\nexport interface ResourceUpdateBody {\n name?: string;\n /** Creates relationships with other resources. Parent resources must already exist. */\n parents?: Array<{ id: string; type: ResourceType }>;\n}\n\nexport interface Role {\n createdAt: string;\n environmentId: string;\n resourceId: string;\n resourceType: ResourceType;\n role: string;\n userId: string;\n}\n\nexport interface RoleBulkCreateBody {\n roles: Array<{\n resourceId: string;\n resourceType: ResourceType;\n role: string;\n userId: string;\n }>;\n}\n\nexport interface RoleBulkResult {\n created: Array<{\n createdAt: string;\n environmentId: string;\n resourceId: string;\n resourceType: ResourceType;\n role: string;\n userId: string;\n }>;\n errors: Array<{\n error: string;\n index: number;\n role: {\n resourceId: string;\n resourceType: ResourceType;\n role: string;\n userId: string;\n };\n }>;\n success: boolean;\n summary: { failed: number; successful: number; total: number };\n}\n\nexport interface RoleCreateBody {\n resourceId: string;\n resourceType: ResourceType;\n role: string;\n}\n\nexport interface RoleList {\n limit: number;\n page: number;\n roles: Array<{\n createdAt: string;\n environmentId: string;\n resourceId: string;\n resourceType: ResourceType;\n role: string;\n userId: string;\n }>;\n total: number;\n}\n\nexport interface TransactionHistoryResponse {\n items: Array<{\n amount: number;\n createdAt: string;\n environmentId: string;\n id: string;\n limitType: LimitType;\n resourceId: string;\n resourceType: ResourceType;\n tags: Record<string, unknown> | null;\n }>;\n}\n\nexport interface UsageCheckBody {\n amount: number;\n limitType: UsageLimitType;\n period: 'monthly' | 'yearly' | 'lifetime';\n resourceId: string;\n resourceType: ResourceType;\n}\n\nexport interface UsageConsumeBody {\n amount: number;\n limitType: UsageLimitType;\n resourceId: string;\n resourceType: ResourceType;\n tags?: Record<string, unknown>;\n}\n\nexport interface UsageCreditBody {\n amount: number;\n limitType: UsageLimitType;\n resourceId: string;\n resourceType: ResourceType;\n tags?: Record<string, unknown>;\n}\n\nexport interface UsageWalletResponse {\n amount: number;\n createdAt: string;\n environmentId: string;\n id: string;\n limitType: UsageLimitType;\n resourceId: string;\n resourceType: ResourceType;\n tags: Record<string, unknown> | null;\n}\n\nexport interface User {\n avatarUrl: string | null;\n createdAt: string;\n email: string;\n emailVerified: boolean;\n firstName: string | null;\n id: string;\n lastLoginAt: string | null;\n lastName: string | null;\n lookupKey: string | null;\n updatedAt: string;\n}\n\nexport interface UserCreateBody {\n avatarUrl?: string;\n email: string;\n firstName?: string | null;\n lastName?: string | null;\n lookupKey: string;\n newUser?: boolean | null;\n password?: string | null;\n}\n\nexport interface UserList {\n items: Array<{\n avatarUrl: string | null;\n createdAt: string;\n email: string;\n emailVerified: boolean;\n firstName: string | null;\n id: string;\n lastLoginAt: string | null;\n lastName: string | null;\n lookupKey: string | null;\n updatedAt: string;\n }>;\n limit: number;\n page: number;\n total: number;\n}\n\nexport type UserResourceList = Array<{\n inherited: boolean;\n resource: {\n id: string;\n name: string;\n parents: Array<{ id: string; type: ResourceType }>;\n type: ResourceType;\n };\n role: string;\n}>;\n\nexport interface UserUpdateBody {\n avatarUrl?: string | null;\n email?: string;\n firstName?: string | null;\n lastName?: string | null;\n lookupKey?: string;\n password?: string;\n}\n\n// Operation query parameter interfaces\n\n/**\n * Query params for Entitlements.ListForResource*\n * Returns entitlements for a specific resource and user. Only evaluates roles and plans (excludes limits). Provides detailed information about why entitlements are allowed or denied, including current roles, allowed roles, current plan, and allowed plans. Results are cached per resource for performance.*/\nexport interface EntitlementsListForResourceQuery {\n /** The unique identifier of the user */\n userId: string;\n}\n\n/**\n * Query params for Entitlements.ListForTenant*\n * Returns entitlements for a tenant resource and all its descendant resources. This endpoint scopes queries to a single tenant, preventing cross-tenant data access. Only evaluates roles and plans (excludes limits). Results are cached per resource for performance. The tenant resource type is automatically determined from the environment definition (resource marked as `is_tenant: true`).*/\nexport interface EntitlementsListForTenantQuery {\n /** The unique identifier of the user */\n userId: string;\n}\n\n/**\n * Query params for Resource Members.List*\n * Retrieves a paginated list of users who have roles (direct or inherited) on the specified resource. Supports search functionality to filter users by email or name.*/\nexport interface ResourceMembersListQuery {\n /** Number of items per page (minimum: 1, maximum: 100) */\n limit?: number;\n /** Page number for pagination */\n page?: number;\n /** Search query to filter members by email or name */\n search?: string;\n}\n\n/**\n * Query params for Resources.List*\n * Retrieves a paginated list of resources of the specified type. Supports search and filtering. Resources are returned with their parent relationships and metadata.*/\nexport interface ResourcesListQuery {\n /** Number of items per page (minimum: 1, maximum: 100) */\n limit?: number;\n /** Page number for pagination */\n page?: number;\n /** Search query to filter resources by name */\n search?: string;\n}\n\n/**\n * Query params for Roles.List*\n * Retrieves a paginated list of roles assigned to a user. Supports filtering by resource type, resource ID, and role name. Returns both directly assigned roles and inherited roles.*/\nexport interface RolesListQuery {\n /** Number of items per page (minimum: 1, maximum: 100) */\n limit?: number;\n /** Page number for pagination */\n page?: number;\n /** Filter roles by specific resource ID */\n resourceId?: string;\n /** Filter roles by resource type */\n resourceType?: ResourceType;\n /** Filter by role name */\n role?: string;\n}\n\n/**\n * Query params for Usage.GetBalance*\n * Retrieves the current balance of a usage wallet for a specific resource and limit type within a given time period. The balance reflects all credits and consumption transactions.*/\nexport interface UsageGetBalanceQuery {\n /** Time period for the balance calculation */\n period: 'monthly' | 'yearly' | 'lifetime';\n}\n\n/**\n * Query params for Usage.GetTransactionHistory*\n * Retrieves the transaction history for a usage wallet, including all credits and consumption records. Supports filtering by time period and date range.*/\nexport interface UsageGetTransactionHistoryQuery {\n /** End date for filtering transactions (ISO 8601 format) */\n endDate?: string;\n /** Time period for filtering transactions */\n period?: 'monthly' | 'yearly' | 'lifetime';\n /** Start date for filtering transactions (ISO 8601 format) */\n startDate?: string;\n}\n\n/**\n * Query params for Users.List*\n * Retrieves a paginated list of users in your environment. Supports search functionality to filter users by email, name, or lookup key.*/\nexport interface UsersListQuery {\n /** Number of items per page (minimum: 1, maximum: 100) */\n limit?: number;\n /** Page number for pagination */\n page?: number;\n /** Search query to filter users by email, name, or lookup key */\n search?: string;\n}\n","// Generated zod schemas from OpenAPI components.schemas\n// Use these schemas for runtime validation in forms, API requests, etc.\n\nimport { z } from 'zod';\n\n/**\n * Schema for EntitlementType\n * Entitlement identifier\n */\nexport const EntitlementTypeSchema = z.string();\n/**\n * Schema for LimitType\n * Limit type identifier\n */\nexport const LimitTypeSchema = z.string();\n/**\n * Schema for PlanType\n * Plan type identifier\n */\nexport const PlanTypeSchema = z.string();\n/**\n * Schema for ResourceType\n * Resource type identifier\n */\nexport const ResourceTypeSchema = z.string();\n/**\n * Schema for UsageLimitType\n * Usage-based limit type identifier\n */\nexport const UsageLimitTypeSchema = z.string();\n\n/**\n * Zod schema for BalanceResponse*/\nexport const BalanceResponseSchema = z.object({ balance: z.number() }); /**\n * Zod schema for CheckLimitResponse*/\nexport const CheckLimitResponseSchema = z.object({\n allowed: z.boolean(),\n current: z.number(),\n remaining: z.number().optional(),\n requested: z.number(),\n}); /**\n * Zod schema for EntitlementCheckBody*/\nexport const EntitlementCheckBodySchema = z.object({\n amount: z.number().int().optional(),\n entitlement: EntitlementTypeSchema,\n resourceId: z.string(),\n userId: z.string(),\n}); /**\n * Zod schema for EntitlementCheckResult*/\nexport const EntitlementCheckResultSchema = z.object({\n allowed: z.boolean(),\n limit: z\n .object({\n allowed: z.boolean(),\n current: z.number().optional(),\n limit: z.number().optional(),\n plan: z.string().nullable().optional(),\n reason: z.string().optional(),\n remaining: z.number().optional(),\n scope: z.string().optional(),\n })\n .nullable()\n .optional(),\n plans: z\n .object({\n allowed: z.boolean(),\n allowedPlans: z.array(z.string()).optional(),\n plan: z.string().nullable().optional(),\n reason: z.string().optional(),\n })\n .nullable()\n .optional(),\n roles: z\n .object({\n allowed: z.boolean(),\n allowedRoles: z.array(z.string()).optional(),\n reason: z.string().optional(),\n userRoles: z.array(z.string()).optional(),\n })\n .nullable()\n .optional(),\n}); /**\n * Zod schema for EntitlementsListResult*/\nexport const EntitlementsListResultSchema = z.object({\n results: z.array(\n z.object({\n entitlements: z.array(\n z.object({\n allowed: z.boolean(),\n allowedByPlan: z.boolean(),\n allowedByRole: z.boolean(),\n allowedPlans: z.array(z.string()).optional(),\n allowedRoles: z.array(z.string()),\n currentPlan: z.string().optional(),\n currentRole: z.string().optional(),\n entitlement: EntitlementTypeSchema,\n })\n ),\n resourceId: z.string(),\n resourceType: ResourceTypeSchema,\n })\n ),\n}); /**\n * Zod schema for PlanAssignBody*/\nexport const PlanAssignBodySchema = z.object({ planKey: PlanTypeSchema }); /**\n * Zod schema for PlanDeleteResponse*/\nexport const PlanDeleteResponseSchema = z.object({ success: z.boolean() }); /**\n * Zod schema for PlanResponse*/\nexport const PlanResponseSchema = z.object({\n createdAt: z.string().datetime(),\n environmentId: z.string(),\n planKey: PlanTypeSchema,\n resourceId: z.string(),\n resourceType: ResourceTypeSchema,\n updatedAt: z.string().datetime(),\n}); /**\n * Zod schema for Resource*/\nexport const ResourceSchema = z.object({\n createdAt: z.string().datetime(),\n id: z.string(),\n name: z.string().nullable(),\n parents: z\n .array(\n z.object({\n id: z.string(),\n type: ResourceTypeSchema,\n })\n )\n .optional(),\n type: ResourceTypeSchema,\n}); /**\n * Zod schema for ResourceBulkCreateBody*/\nexport const ResourceBulkCreateBodySchema = z.object({\n resources: z.array(\n z.object({\n id: z.string().optional(),\n name: z.string().optional(),\n parents: z\n .array(\n z.object({\n id: z.string(),\n type: ResourceTypeSchema,\n })\n )\n .optional(),\n roles: z\n .array(\n z.object({\n role: z.string(),\n userId: z.string(),\n })\n )\n .optional(),\n })\n ),\n}); /**\n * Zod schema for ResourceBulkResult*/\nexport const ResourceBulkResultSchema = z.object({\n created: z.array(\n z.object({\n environmentId: z.string(),\n id: z.string(),\n type: ResourceTypeSchema,\n })\n ),\n errors: z.array(\n z.object({\n error: z.string(),\n index: z.number(),\n resource: z.object({\n id: z.string().optional(),\n name: z.string().optional(),\n parents: z\n .array(\n z.object({\n id: z.string(),\n type: ResourceTypeSchema,\n })\n )\n .optional(),\n roles: z\n .array(\n z.object({\n role: z.string(),\n userId: z.string(),\n })\n )\n .optional(),\n }),\n })\n ),\n success: z.boolean(),\n summary: z.object({\n failed: z.number(),\n successful: z.number(),\n total: z.number(),\n }),\n}); /**\n * Zod schema for ResourceCreateBody*/\nexport const ResourceCreateBodySchema = z.object({\n id: z.string().optional(),\n name: z.string().optional(),\n parents: z\n .array(\n z.object({\n id: z.string(),\n type: ResourceTypeSchema,\n })\n )\n .optional(),\n roles: z\n .array(\n z.object({\n role: z.string(),\n userId: z.string(),\n })\n )\n .optional(),\n}); /**\n * Zod schema for ResourceList*/\nexport const ResourceListSchema = z.object({\n items: z.array(\n z.object({\n createdAt: z.string().datetime(),\n id: z.string(),\n name: z.string().nullable(),\n parents: z\n .array(\n z.object({\n id: z.string(),\n type: ResourceTypeSchema,\n })\n )\n .optional(),\n type: ResourceTypeSchema,\n })\n ),\n limit: z.number(),\n page: z.number(),\n total: z.number(),\n}); /**\n * Zod schema for ResourceMemberList*/\nexport const ResourceMemberListSchema = z.object({\n items: z.array(\n z.object({\n inherited: z.boolean(),\n role: z.string(),\n user: z.object({\n avatarUrl: z.string().nullable(),\n createdAt: z.string().datetime(),\n email: z.string().email(),\n emailVerified: z.boolean(),\n firstName: z.string().nullable(),\n id: z.string(),\n lastLoginAt: z.string().datetime().nullable(),\n lastName: z.string().nullable(),\n lookupKey: z.string().nullable(),\n updatedAt: z.string().datetime(),\n }),\n userId: z.string(),\n })\n ),\n limit: z.number(),\n page: z.number(),\n total: z.number(),\n}); /**\n * Zod schema for ResourceUpdateBody*/\nexport const ResourceUpdateBodySchema = z.object({\n name: z.string().optional(),\n /** Creates relationships with other resources. Parent resources must already exist. */ parents:\n z\n .array(\n z.object({\n id: z.string(),\n type: ResourceTypeSchema,\n })\n )\n .optional(),\n}); /**\n * Zod schema for Role*/\nexport const RoleSchema = z.object({\n createdAt: z.string(),\n environmentId: z.string(),\n resourceId: z.string(),\n resourceType: ResourceTypeSchema,\n role: z.string(),\n userId: z.string(),\n}); /**\n * Zod schema for RoleBulkCreateBody*/\nexport const RoleBulkCreateBodySchema = z.object({\n roles: z.array(\n z.object({\n resourceId: z.string(),\n resourceType: ResourceTypeSchema,\n role: z.string(),\n userId: z.string(),\n })\n ),\n}); /**\n * Zod schema for RoleBulkResult*/\nexport const RoleBulkResultSchema = z.object({\n created: z.array(\n z.object({\n createdAt: z.string(),\n environmentId: z.string(),\n resourceId: z.string(),\n resourceType: ResourceTypeSchema,\n role: z.string(),\n userId: z.string(),\n })\n ),\n errors: z.array(\n z.object({\n error: z.string(),\n index: z.number(),\n role: z.object({\n resourceId: z.string(),\n resourceType: ResourceTypeSchema,\n role: z.string(),\n userId: z.string(),\n }),\n })\n ),\n success: z.boolean(),\n summary: z.object({\n failed: z.number(),\n successful: z.number(),\n total: z.number(),\n }),\n}); /**\n * Zod schema for RoleCreateBody*/\nexport const RoleCreateBodySchema = z.object({\n resourceId: z.string(),\n resourceType: ResourceTypeSchema,\n role: z.string(),\n}); /**\n * Zod schema for RoleList*/\nexport const RoleListSchema = z.object({\n limit: z.number(),\n page: z.number(),\n roles: z.array(\n z.object({\n createdAt: z.string(),\n environmentId: z.string(),\n resourceId: z.string(),\n resourceType: ResourceTypeSchema,\n role: z.string(),\n userId: z.string(),\n })\n ),\n total: z.number(),\n}); /**\n * Zod schema for TransactionHistoryResponse*/\nexport const TransactionHistoryResponseSchema = z.object({\n items: z.array(\n z.object({\n amount: z.number().int(),\n createdAt: z.string().datetime(),\n environmentId: z.string(),\n id: z.string(),\n limitType: LimitTypeSchema,\n resourceId: z.string(),\n resourceType: ResourceTypeSchema,\n tags: z.record(z.string(), z.unknown()).nullable(),\n })\n ),\n}); /**\n * Zod schema for UsageCheckBody*/\nexport const UsageCheckBodySchema = z.object({\n amount: z.number().int(),\n limitType: UsageLimitTypeSchema,\n period: z.enum(['monthly', 'yearly', 'lifetime']),\n resourceId: z.string(),\n resourceType: ResourceTypeSchema,\n}); /**\n * Zod schema for UsageConsumeBody*/\nexport const UsageConsumeBodySchema = z.object({\n amount: z.number().int(),\n limitType: UsageLimitTypeSchema,\n resourceId: z.string(),\n resourceType: ResourceTypeSchema,\n tags: z.record(z.string(), z.unknown()).optional(),\n}); /**\n * Zod schema for UsageCreditBody*/\nexport const UsageCreditBodySchema = z.object({\n amount: z.number().int(),\n limitType: UsageLimitTypeSchema,\n resourceId: z.string(),\n resourceType: ResourceTypeSchema,\n tags: z.record(z.string(), z.unknown()).optional(),\n}); /**\n * Zod schema for UsageWalletResponse*/\nexport const UsageWalletResponseSchema = z.object({\n amount: z.number().int(),\n createdAt: z.string().datetime(),\n environmentId: z.string(),\n id: z.string(),\n limitType: UsageLimitTypeSchema,\n resourceId: z.string(),\n resourceType: ResourceTypeSchema,\n tags: z.record(z.string(), z.unknown()).nullable(),\n}); /**\n * Zod schema for User*/\nexport const UserSchema = z.object({\n avatarUrl: z.string().nullable(),\n createdAt: z.string().datetime(),\n email: z.string().email(),\n emailVerified: z.boolean(),\n firstName: z.string().nullable(),\n id: z.string(),\n lastLoginAt: z.string().datetime().nullable(),\n lastName: z.string().nullable(),\n lookupKey: z.string().nullable(),\n updatedAt: z.string().datetime(),\n}); /**\n * Zod schema for UserCreateBody*/\nexport const UserCreateBodySchema = z.object({\n avatarUrl: z.string().url().optional(),\n email: z.string().email(),\n firstName: z.string().nullable().optional(),\n lastName: z.string().nullable().optional(),\n lookupKey: z.string(),\n newUser: z.boolean().nullable().optional(),\n password: z.string().nullable().optional(),\n}); /**\n * Zod schema for UserList*/\nexport const UserListSchema = z.object({\n items: z.array(\n z.object({\n avatarUrl: z.string().nullable(),\n createdAt: z.string().datetime(),\n email: z.string().email(),\n emailVerified: z.boolean(),\n firstName: z.string().nullable(),\n id: z.string(),\n lastLoginAt: z.string().datetime().nullable(),\n lastName: z.string().nullable(),\n lookupKey: z.string().nullable(),\n updatedAt: z.string().datetime(),\n })\n ),\n limit: z.number(),\n page: z.number(),\n total: z.number(),\n}); /**\n * Zod schema for UserResourceList*/\nexport const UserResourceListSchema = z.array(\n z.object({\n inherited: z.boolean(),\n resource: z\n .object({\n id: z.string(),\n name: z.string(),\n parents: z.array(\n z.object({\n id: z.string(),\n type: ResourceTypeSchema,\n })\n ),\n type: ResourceTypeSchema,\n })\n .catchall(z.unknown()),\n role: z.string(),\n })\n); /**\n * Zod schema for UserUpdateBody*/\nexport const UserUpdateBodySchema = z.object({\n avatarUrl: z.string().url().nullable().optional(),\n email: z.string().email().optional(),\n firstName: z.string().nullable().optional(),\n lastName: z.string().nullable().optional(),\n lookupKey: z.string().optional(),\n password: z.string().optional(),\n});\n// Operation query parameter schemas\n\n/**\n * Schema for query params of Entitlements.ListForResource* Returns entitlements for a specific resource and user. Only evaluates roles and plans (excludes limits). Provides detailed information about why entitlements are allowed or denied, including current roles, allowed roles, current plan, and allowed plans. Results are cached per resource for performance.*/\nexport const EntitlementsListForResourceQuerySchema = z.object({\n /** The unique identifier of the user */ userId: z.string(),\n});\n\n/**\n * Schema for query params of Entitlements.ListForTenant* Returns entitlements for a tenant resource and all its descendant resources. This endpoint scopes queries to a single tenant, preventing cross-tenant data access. Only evaluates roles and plans (excludes limits). Results are cached per resource for performance. The tenant resource type is automatically determined from the environment definition (resource marked as `is_tenant: true`).*/\nexport const EntitlementsListForTenantQuerySchema = z.object({\n /** The unique identifier of the user */ userId: z.string(),\n});\n\n/**\n * Schema for query params of Resource Members.List* Retrieves a paginated list of users who have roles (direct or inherited) on the specified resource. Supports search functionality to filter users by email or name.*/\nexport const ResourceMembersListQuerySchema = z.object({\n /** Number of items per page (minimum: 1, maximum: 100) */ limit: z\n .number()\n .optional(),\n /** Page number for pagination */ page: z.number().optional(),\n /** Search query to filter members by email or name */ search: z\n .string()\n .optional(),\n});\n\n/**\n * Schema for query params of Resources.List* Retrieves a paginated list of resources of the specified type. Supports search and filtering. Resources are returned with their parent relationships and metadata.*/\nexport const ResourcesListQuerySchema = z.object({\n /** Number of items per page (minimum: 1, maximum: 100) */ limit: z\n .number()\n .optional(),\n /** Page number for pagination */ page: z.number().optional(),\n /** Search query to filter resources by name */ search: z.string().optional(),\n});\n\n/**\n * Schema for query params of Roles.List* Retrieves a paginated list of roles assigned to a user. Supports filtering by resource type, resource ID, and role name. Returns both directly assigned roles and inherited roles.*/\nexport const RolesListQuerySchema = z.object({\n /** Number of items per page (minimum: 1, maximum: 100) */ limit: z\n .number()\n .optional(),\n /** Page number for pagination */ page: z.number().optional(),\n /** Filter roles by specific resource ID */ resourceId: z.string().optional(),\n /** Filter roles by resource type */ resourceType:\n ResourceTypeSchema.optional(),\n /** Filter by role name */ role: z.string().optional(),\n});\n\n/**\n * Schema for query params of Usage.GetBalance* Retrieves the current balance of a usage wallet for a specific resource and limit type within a given time period. The balance reflects all credits and consumption transactions.*/\nexport const UsageGetBalanceQuerySchema = z.object({\n /** Time period for the balance calculation */ period: z.enum([\n 'monthly',\n 'yearly',\n 'lifetime',\n ]),\n});\n\n/**\n * Schema for query params of Usage.GetTransactionHistory* Retrieves the transaction history for a usage wallet, including all credits and consumption records. Supports filtering by time period and date range.*/\nexport const UsageGetTransactionHistoryQuerySchema = z.object({\n /** End date for filtering transactions (ISO 8601 format) */ endDate: z\n .string()\n .optional(),\n /** Time period for filtering transactions */ period: z\n .enum(['monthly', 'yearly', 'lifetime'])\n .optional(),\n /** Start date for filtering transactions (ISO 8601 format) */ startDate: z\n .string()\n .optional(),\n});\n\n/**\n * Schema for query params of Users.List* Retrieves a paginated list of users in your environment. Supports search functionality to filter users by email, name, or lookup key.*/\nexport const UsersListQuerySchema = z.object({\n /** Number of items per page (minimum: 1, maximum: 100) */ limit: z\n .number()\n .optional(),\n /** Page number for pagination */ page: z.number().optional(),\n /** Search query to filter users by email, name, or lookup key */ search: z\n .string()\n .optional(),\n});\n"],"mappings":"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","names":[]}
@@ -0,0 +1,19 @@
1
+ export { Blimu, BlimuError } from './index.mjs';
2
+ export { JWK, JWKSet, TokenVerifier, TokenVerifierOptions, VerifyTokenOptions, verifyToken } from './token-verifier.mjs';
3
+ export * from '@blimu/types';
4
+ export { s as Schema } from './schema-B1usIXCr.mjs';
5
+ export { s as ZodSchema } from './schema.zod-CRNAHxbc.mjs';
6
+ export { BulkResourcesService } from './services/bulk_resources.mjs';
7
+ export { BulkRolesService } from './services/bulk_roles.mjs';
8
+ export { EntitlementsService } from './services/entitlements.mjs';
9
+ export { PlansService } from './services/plans.mjs';
10
+ export { ResourceMembersService } from './services/resource_members.mjs';
11
+ export { ResourcesService } from './services/resources.mjs';
12
+ export { RolesService } from './services/roles.mjs';
13
+ export { UsageService } from './services/usage.mjs';
14
+ export { UsersService } from './services/users.mjs';
15
+ export * from '@blimu/fetch';
16
+ export { FetchError, parseNDJSONStream, parseSSEStream } from '@blimu/fetch';
17
+ export { PaginableQuery, listAll, paginate } from './utils.mjs';
18
+ export { ClientOption, CoreClient } from './client.mjs';
19
+ import 'zod';
package/dist/main.d.ts ADDED
@@ -0,0 +1,19 @@
1
+ export { Blimu, BlimuError } from './index.js';
2
+ export { JWK, JWKSet, TokenVerifier, TokenVerifierOptions, VerifyTokenOptions, verifyToken } from './token-verifier.js';
3
+ export * from '@blimu/types';
4
+ export { s as Schema } from './schema-B1usIXCr.js';
5
+ export { s as ZodSchema } from './schema.zod-CRNAHxbc.js';
6
+ export { BulkResourcesService } from './services/bulk_resources.js';
7
+ export { BulkRolesService } from './services/bulk_roles.js';
8
+ export { EntitlementsService } from './services/entitlements.js';
9
+ export { PlansService } from './services/plans.js';
10
+ export { ResourceMembersService } from './services/resource_members.js';
11
+ export { ResourcesService } from './services/resources.js';
12
+ export { RolesService } from './services/roles.js';
13
+ export { UsageService } from './services/usage.js';
14
+ export { UsersService } from './services/users.js';
15
+ export * from '@blimu/fetch';
16
+ export { FetchError, parseNDJSONStream, parseSSEStream } from '@blimu/fetch';
17
+ export { PaginableQuery, listAll, paginate } from './utils.js';
18
+ export { ClientOption, CoreClient } from './client.js';
19
+ import 'zod';