@replanejs/admin 0.8.12 → 0.8.19
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.
- package/dist/index.cjs +75 -32
- package/dist/index.d.cts +197 -37
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.ts +197 -37
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +75 -32
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["message: string","status: number","response?: ApiError","options: ReplaneAdminOptions","method: \"GET\" | \"POST\" | \"PUT\" | \"DELETE\" | \"PATCH\"","path: string","body?: unknown","headers: Record<string, string>","errorResponse: ApiError | undefined","client: ReplaneAdmin","projectId: string","data: CreateProjectRequest","data: UpdateProjectRequest","configName: string","data: CreateConfigRequest","data: UpdateConfigRequest","data: CreateSdkKeyRequest","sdkKeyId: string"],"sources":["../src/version.ts","../src/client.ts"],"sourcesContent":["// Auto-generated - do not edit manually\nexport const VERSION = \"0.8.12\";\nexport const DEFAULT_AGENT = `replane-js-admin/${VERSION}`;\n","import type {\n ReplaneAdminOptions,\n Project,\n ProjectListResponse,\n CreateProjectRequest,\n CreateProjectResponse,\n UpdateProjectRequest,\n UpdateProjectResponse,\n Config,\n ConfigListResponse,\n CreateConfigRequest,\n CreateConfigResponse,\n UpdateConfigRequest,\n UpdateConfigResponse,\n EnvironmentListResponse,\n SdkKeyListResponse,\n SdkKeyWithToken,\n CreateSdkKeyRequest,\n MemberListResponse,\n ApiError,\n} from \"./types.js\";\nimport { DEFAULT_AGENT } from \"./version.js\";\n\n/**\n * Error thrown by the Admin API client\n */\nexport class ReplaneAdminError extends Error {\n constructor(\n message: string,\n public readonly status: number,\n public readonly response?: ApiError\n ) {\n super(message);\n this.name = \"ReplaneAdminError\";\n }\n}\n\n/**\n * Admin API client for Replane\n *\n * Provides programmatic access to manage projects, configs, environments,\n * SDK keys, and members.\n *\n * @example\n * ```typescript\n * import { ReplaneAdmin } from \"@replanejs/admin\";\n *\n * const admin = new ReplaneAdmin({\n * baseUrl: \"https://app.replane.dev\",\n * apiKey: \"rpa_...\",\n * });\n *\n * // List all projects\n * const { projects } = await admin.projects.list();\n *\n * // Create a new config\n * const { id } = await admin.configs.create(\"project-id\", {\n * name: \"my-config\",\n * description: \"My config\",\n * editors: [],\n * maintainers: [],\n * base: { value: true, schema: null, overrides: [] },\n * variants: [],\n * });\n * ```\n */\nexport class ReplaneAdmin {\n private readonly apiKey: string;\n private readonly baseUrl: string;\n private readonly agent: string;\n private readonly fetchFn: typeof fetch;\n\n public readonly projects: ProjectsApi;\n public readonly configs: ConfigsApi;\n public readonly environments: EnvironmentsApi;\n public readonly sdkKeys: SdkKeysApi;\n public readonly members: MembersApi;\n\n constructor(options: ReplaneAdminOptions) {\n this.apiKey = options.apiKey;\n this.baseUrl = `${options.baseUrl.replace(/\\/$/, \"\")}/api/admin/v1`;\n this.agent = options.agent ?? DEFAULT_AGENT;\n this.fetchFn = options.fetchFn ?? globalThis.fetch;\n\n this.projects = new ProjectsApi(this);\n this.configs = new ConfigsApi(this);\n this.environments = new EnvironmentsApi(this);\n this.sdkKeys = new SdkKeysApi(this);\n this.members = new MembersApi(this);\n }\n\n /**\n * Make an authenticated request to the Admin API\n * @internal\n */\n async request<T>(\n method: \"GET\" | \"POST\" | \"PUT\" | \"DELETE\" | \"PATCH\",\n path: string,\n body?: unknown\n ): Promise<T> {\n const url = `${this.baseUrl}${path}`;\n\n const headers: Record<string, string> = {\n Authorization: `Bearer ${this.apiKey}`,\n \"User-Agent\": this.agent,\n };\n\n if (body !== undefined) {\n headers[\"Content-Type\"] = \"application/json\";\n }\n\n const response = await this.fetchFn(url, {\n method,\n headers,\n body: body !== undefined ? JSON.stringify(body) : undefined,\n });\n\n if (!response.ok) {\n let errorResponse: ApiError | undefined;\n try {\n errorResponse = await response.json();\n } catch {\n // Ignore JSON parse errors\n }\n throw new ReplaneAdminError(\n errorResponse?.error ?? `Request failed with status ${response.status}`,\n response.status,\n errorResponse\n );\n }\n\n // Handle 204 No Content\n if (response.status === 204) {\n return undefined as T;\n }\n\n return response.json();\n }\n}\n\n/**\n * Projects API\n */\nclass ProjectsApi {\n constructor(private readonly client: ReplaneAdmin) {}\n\n /**\n * List all projects\n */\n async list(): Promise<ProjectListResponse> {\n return this.client.request<ProjectListResponse>(\"GET\", \"/projects\");\n }\n\n /**\n * Get a project by ID\n */\n async get(projectId: string): Promise<Project> {\n return this.client.request<Project>(\"GET\", `/projects/${projectId}`);\n }\n\n /**\n * Create a new project\n */\n async create(data: CreateProjectRequest): Promise<CreateProjectResponse> {\n return this.client.request<CreateProjectResponse>(\"POST\", \"/projects\", data);\n }\n\n /**\n * Update a project\n */\n async update(projectId: string, data: UpdateProjectRequest): Promise<UpdateProjectResponse> {\n return this.client.request<UpdateProjectResponse>(\"PATCH\", `/projects/${projectId}`, data);\n }\n\n /**\n * Delete a project\n */\n async delete(projectId: string): Promise<void> {\n return this.client.request<void>(\"DELETE\", `/projects/${projectId}`);\n }\n}\n\n/**\n * Configs API\n */\nclass ConfigsApi {\n constructor(private readonly client: ReplaneAdmin) {}\n\n /**\n * List all configs in a project\n */\n async list(projectId: string): Promise<ConfigListResponse> {\n return this.client.request<ConfigListResponse>(\"GET\", `/projects/${projectId}/configs`);\n }\n\n /**\n * Get a config by name\n */\n async get(projectId: string, configName: string): Promise<Config> {\n return this.client.request<Config>(\n \"GET\",\n `/projects/${projectId}/configs/${encodeURIComponent(configName)}`\n );\n }\n\n /**\n * Create a new config\n */\n async create(projectId: string, data: CreateConfigRequest): Promise<CreateConfigResponse> {\n return this.client.request<CreateConfigResponse>(\n \"POST\",\n `/projects/${projectId}/configs`,\n data\n );\n }\n\n /**\n * Update a config\n */\n async update(\n projectId: string,\n configName: string,\n data: UpdateConfigRequest\n ): Promise<UpdateConfigResponse> {\n return this.client.request<UpdateConfigResponse>(\n \"PUT\",\n `/projects/${projectId}/configs/${encodeURIComponent(configName)}`,\n data\n );\n }\n\n /**\n * Delete a config\n */\n async delete(projectId: string, configName: string): Promise<void> {\n return this.client.request<void>(\n \"DELETE\",\n `/projects/${projectId}/configs/${encodeURIComponent(configName)}`\n );\n }\n}\n\n/**\n * Environments API\n */\nclass EnvironmentsApi {\n constructor(private readonly client: ReplaneAdmin) {}\n\n /**\n * List all environments in a project\n */\n async list(projectId: string): Promise<EnvironmentListResponse> {\n return this.client.request<EnvironmentListResponse>(\n \"GET\",\n `/projects/${projectId}/environments`\n );\n }\n}\n\n/**\n * SDK Keys API\n */\nclass SdkKeysApi {\n constructor(private readonly client: ReplaneAdmin) {}\n\n /**\n * List all SDK keys in a project\n */\n async list(projectId: string): Promise<SdkKeyListResponse> {\n return this.client.request<SdkKeyListResponse>(\"GET\", `/projects/${projectId}/sdk-keys`);\n }\n\n /**\n * Create a new SDK key\n * Note: The returned key is only shown once and cannot be retrieved again\n */\n async create(projectId: string, data: CreateSdkKeyRequest): Promise<SdkKeyWithToken> {\n return this.client.request<SdkKeyWithToken>(\"POST\", `/projects/${projectId}/sdk-keys`, data);\n }\n\n /**\n * Delete an SDK key\n */\n async delete(projectId: string, sdkKeyId: string): Promise<void> {\n return this.client.request<void>(\"DELETE\", `/projects/${projectId}/sdk-keys/${sdkKeyId}`);\n }\n}\n\n/**\n * Members API\n */\nclass MembersApi {\n constructor(private readonly client: ReplaneAdmin) {}\n\n /**\n * List all members in a project\n */\n async list(projectId: string): Promise<MemberListResponse> {\n return this.client.request<MemberListResponse>(\"GET\", `/projects/${projectId}/members`);\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["message: string","status: number","response?: ApiError","options: ReplaneAdminOptions","method: \"GET\" | \"POST\" | \"PUT\" | \"DELETE\" | \"PATCH\"","path: string","body?: unknown","headers: Record<string, string>","errorResponse: ApiError | undefined","client: ReplaneAdmin","request: GetWorkspaceRequest","request: CreateWorkspaceRequest","request: DeleteWorkspaceRequest","request: GetProjectRequest","request: CreateProjectRequest","request: UpdateProjectRequest","request: DeleteProjectRequest","request: ListConfigsRequest","request: GetConfigRequest","request: CreateConfigRequest","request: UpdateConfigRequest","request: DeleteConfigRequest","request: ListEnvironmentsRequest","request: ListSdkKeysRequest","request: CreateSdkKeyRequest","request: DeleteSdkKeyRequest","request: ListMembersRequest"],"sources":["../src/version.ts","../src/client.ts"],"sourcesContent":["// Auto-generated - do not edit manually\nexport const VERSION = \"0.8.19\";\nexport const DEFAULT_AGENT = `replane-js-admin/${VERSION}`;\n","import type {\n ReplaneAdminOptions,\n Workspace,\n ListWorkspacesResponse,\n GetWorkspaceRequest,\n CreateWorkspaceRequest,\n CreateWorkspaceResponse,\n DeleteWorkspaceRequest,\n Project,\n ListProjectsResponse,\n GetProjectRequest,\n CreateProjectRequest,\n CreateProjectResponse,\n UpdateProjectRequest,\n UpdateProjectResponse,\n DeleteProjectRequest,\n Config,\n ListConfigsRequest,\n ListConfigsResponse,\n GetConfigRequest,\n CreateConfigRequest,\n CreateConfigResponse,\n UpdateConfigRequest,\n UpdateConfigResponse,\n DeleteConfigRequest,\n ListEnvironmentsRequest,\n ListEnvironmentsResponse,\n ListSdkKeysRequest,\n ListSdkKeysResponse,\n SdkKeyWithToken,\n CreateSdkKeyRequest,\n DeleteSdkKeyRequest,\n ListMembersRequest,\n ListMembersResponse,\n ApiError,\n} from \"./types.js\";\nimport { DEFAULT_AGENT } from \"./version.js\";\n\n/**\n * Error thrown by the Admin API client\n */\nexport class ReplaneAdminError extends Error {\n constructor(\n message: string,\n public readonly status: number,\n public readonly response?: ApiError\n ) {\n super(message);\n this.name = \"ReplaneAdminError\";\n }\n}\n\n/**\n * Admin API client for Replane\n *\n * Provides programmatic access to manage projects, configs, environments,\n * SDK keys, and members.\n *\n * @example\n * ```typescript\n * import { ReplaneAdmin } from \"@replanejs/admin\";\n *\n * const admin = new ReplaneAdmin({\n * baseUrl: \"https://app.replane.dev\",\n * apiKey: \"rpa_...\",\n * });\n *\n * // List all projects\n * const { projects } = await admin.projects.list();\n *\n * // Create a new config\n * const { id } = await admin.configs.create({\n * projectId: \"project-id\",\n * name: \"my-config\",\n * description: \"My config\",\n * editors: [],\n * maintainers: [],\n * base: { value: true, schema: null, overrides: [] },\n * variants: [],\n * });\n * ```\n */\nexport class ReplaneAdmin {\n private readonly apiKey: string;\n private readonly baseUrl: string;\n private readonly agent: string;\n private readonly fetchFn: typeof fetch;\n\n public readonly workspaces: WorkspacesApi;\n public readonly projects: ProjectsApi;\n public readonly configs: ConfigsApi;\n public readonly environments: EnvironmentsApi;\n public readonly sdkKeys: SdkKeysApi;\n public readonly members: MembersApi;\n\n constructor(options: ReplaneAdminOptions) {\n this.apiKey = options.apiKey;\n this.baseUrl = `${options.baseUrl.replace(/\\/$/, \"\")}/api/admin/v1`;\n this.agent = options.agent ?? DEFAULT_AGENT;\n this.fetchFn = options.fetchFn ?? globalThis.fetch;\n\n this.workspaces = new WorkspacesApi(this);\n this.projects = new ProjectsApi(this);\n this.configs = new ConfigsApi(this);\n this.environments = new EnvironmentsApi(this);\n this.sdkKeys = new SdkKeysApi(this);\n this.members = new MembersApi(this);\n }\n\n /**\n * Make an authenticated request to the Admin API\n * @internal\n */\n async request<T>(\n method: \"GET\" | \"POST\" | \"PUT\" | \"DELETE\" | \"PATCH\",\n path: string,\n body?: unknown\n ): Promise<T> {\n const url = `${this.baseUrl}${path}`;\n\n const headers: Record<string, string> = {\n Authorization: `Bearer ${this.apiKey}`,\n \"User-Agent\": this.agent,\n };\n\n if (body !== undefined) {\n headers[\"Content-Type\"] = \"application/json\";\n }\n\n const response = await this.fetchFn(url, {\n method,\n headers,\n body: body !== undefined ? JSON.stringify(body) : undefined,\n });\n\n if (!response.ok) {\n let errorResponse: ApiError | undefined;\n try {\n errorResponse = await response.json();\n } catch {\n // Ignore JSON parse errors\n }\n // Handle both string and object error messages\n let errorMessage = `Request failed with status ${response.status}`;\n if (errorResponse?.error) {\n errorMessage =\n typeof errorResponse.error === \"string\"\n ? errorResponse.error\n : JSON.stringify(errorResponse.error);\n }\n throw new ReplaneAdminError(errorMessage, response.status, errorResponse);\n }\n\n // Handle 204 No Content\n if (response.status === 204) {\n return undefined as T;\n }\n\n return response.json();\n }\n}\n\n/**\n * Workspaces API\n * Note: Most workspace operations require superuser access\n */\nclass WorkspacesApi {\n constructor(private readonly client: ReplaneAdmin) {}\n\n /**\n * List all workspaces (requires superuser access)\n */\n async list(): Promise<ListWorkspacesResponse> {\n return this.client.request<ListWorkspacesResponse>(\"GET\", \"/workspaces\");\n }\n\n /**\n * Get a workspace by ID (requires superuser access)\n */\n async get(request: GetWorkspaceRequest): Promise<Workspace> {\n return this.client.request<Workspace>(\"GET\", `/workspaces/${request.workspaceId}`);\n }\n\n /**\n * Create a new workspace (requires superuser access)\n */\n async create(request: CreateWorkspaceRequest): Promise<CreateWorkspaceResponse> {\n return this.client.request<CreateWorkspaceResponse>(\"POST\", \"/workspaces\", request);\n }\n\n /**\n * Delete a workspace (requires superuser access)\n */\n async delete(request: DeleteWorkspaceRequest): Promise<void> {\n return this.client.request<void>(\"DELETE\", `/workspaces/${request.workspaceId}`);\n }\n}\n\n/**\n * Projects API\n */\nclass ProjectsApi {\n constructor(private readonly client: ReplaneAdmin) {}\n\n /**\n * List all projects\n */\n async list(): Promise<ListProjectsResponse> {\n return this.client.request<ListProjectsResponse>(\"GET\", \"/projects\");\n }\n\n /**\n * Get a project by ID\n */\n async get(request: GetProjectRequest): Promise<Project> {\n return this.client.request<Project>(\"GET\", `/projects/${request.projectId}`);\n }\n\n /**\n * Create a new project in a workspace\n */\n async create(request: CreateProjectRequest): Promise<CreateProjectResponse> {\n const { workspaceId, ...body } = request;\n return this.client.request<CreateProjectResponse>(\n \"POST\",\n `/workspaces/${workspaceId}/projects`,\n body\n );\n }\n\n /**\n * Update a project\n */\n async update(request: UpdateProjectRequest): Promise<UpdateProjectResponse> {\n const { projectId, ...body } = request;\n return this.client.request<UpdateProjectResponse>(\"PATCH\", `/projects/${projectId}`, body);\n }\n\n /**\n * Delete a project\n */\n async delete(request: DeleteProjectRequest): Promise<void> {\n return this.client.request<void>(\"DELETE\", `/projects/${request.projectId}`);\n }\n}\n\n/**\n * Configs API\n */\nclass ConfigsApi {\n constructor(private readonly client: ReplaneAdmin) {}\n\n /**\n * List all configs in a project\n */\n async list(request: ListConfigsRequest): Promise<ListConfigsResponse> {\n return this.client.request<ListConfigsResponse>(\n \"GET\",\n `/projects/${request.projectId}/configs`\n );\n }\n\n /**\n * Get a config by name\n */\n async get(request: GetConfigRequest): Promise<Config> {\n return this.client.request<Config>(\n \"GET\",\n `/projects/${request.projectId}/configs/${encodeURIComponent(request.configName)}`\n );\n }\n\n /**\n * Create a new config\n */\n async create(request: CreateConfigRequest): Promise<CreateConfigResponse> {\n const { projectId, ...body } = request;\n return this.client.request<CreateConfigResponse>(\n \"POST\",\n `/projects/${projectId}/configs`,\n body\n );\n }\n\n /**\n * Update a config\n */\n async update(request: UpdateConfigRequest): Promise<UpdateConfigResponse> {\n const { projectId, configName, ...body } = request;\n return this.client.request<UpdateConfigResponse>(\n \"PUT\",\n `/projects/${projectId}/configs/${encodeURIComponent(configName)}`,\n body\n );\n }\n\n /**\n * Delete a config\n */\n async delete(request: DeleteConfigRequest): Promise<void> {\n return this.client.request<void>(\n \"DELETE\",\n `/projects/${request.projectId}/configs/${encodeURIComponent(request.configName)}`\n );\n }\n}\n\n/**\n * Environments API\n */\nclass EnvironmentsApi {\n constructor(private readonly client: ReplaneAdmin) {}\n\n /**\n * List all environments in a project\n */\n async list(request: ListEnvironmentsRequest): Promise<ListEnvironmentsResponse> {\n return this.client.request<ListEnvironmentsResponse>(\n \"GET\",\n `/projects/${request.projectId}/environments`\n );\n }\n}\n\n/**\n * SDK Keys API\n */\nclass SdkKeysApi {\n constructor(private readonly client: ReplaneAdmin) {}\n\n /**\n * List all SDK keys in a project\n */\n async list(request: ListSdkKeysRequest): Promise<ListSdkKeysResponse> {\n return this.client.request<ListSdkKeysResponse>(\n \"GET\",\n `/projects/${request.projectId}/sdk-keys`\n );\n }\n\n /**\n * Create a new SDK key\n * Note: The returned key is only shown once and cannot be retrieved again\n */\n async create(request: CreateSdkKeyRequest): Promise<SdkKeyWithToken> {\n const { projectId, ...body } = request;\n return this.client.request<SdkKeyWithToken>(\"POST\", `/projects/${projectId}/sdk-keys`, body);\n }\n\n /**\n * Delete an SDK key\n */\n async delete(request: DeleteSdkKeyRequest): Promise<void> {\n return this.client.request<void>(\n \"DELETE\",\n `/projects/${request.projectId}/sdk-keys/${request.sdkKeyId}`\n );\n }\n}\n\n/**\n * Members API\n */\nclass MembersApi {\n constructor(private readonly client: ReplaneAdmin) {}\n\n /**\n * List all members in a project\n */\n async list(request: ListMembersRequest): Promise<ListMembersResponse> {\n return this.client.request<ListMembersResponse>(\n \"GET\",\n `/projects/${request.projectId}/members`\n );\n }\n}\n"],"mappings":"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"}
|
package/package.json
CHANGED