{"version":3,"file":"components.cjs","names":["resolveSpaceId"],"sources":["../../src/resources/components.ts"],"sourcesContent":["import * as mapi from \"../generated/mapi/sdk.gen\";\nimport type {\n  CreateComponentData,\n  CreateComponentResponses,\n  DeleteComponentResponses,\n  GetComponentResponses,\n  GetComponentVersionData,\n  GetComponentVersionResponses,\n  ListManagementComponentsData,\n  ListManagementComponentsResponses,\n  ListVersionsData,\n  ListVersionsResponses,\n  RestoreComponentResponses,\n  RestoreVersionData,\n  RestoreVersionResponses,\n  UpdateComponentData,\n  UpdateComponentResponses,\n} from \"../generated/mapi/types.gen\";\nimport type { Component } from \"../generated/mapi/types-aliased.gen\";\nimport type { ApiResponse, FetchOptions, MapiResourceDeps } from \"../client\";\nimport { resolveSpaceId, type SpaceIdPathOverride } from \"./shared\";\n\n// Component definitions are MAPI wire shapes (a `schema` record), surfaced as the\n// public `Component`. This is distinct from the DSL `fields` blocks used to narrow\n// story content via `.withTypes()` — definitions are not parameterised by the block\n// registry.\ntype ListComponentsResult = Omit<ListManagementComponentsResponses[200], \"components\"> & {\n  components: Component[];\n};\ntype GetComponentResult = Omit<GetComponentResponses[200], \"component\"> & { component: Component };\ntype CreateComponentResult = Omit<CreateComponentResponses[201], \"component\"> & {\n  component: Component;\n};\ntype UpdateComponentResult = Omit<UpdateComponentResponses[200], \"component\"> & {\n  component: Component;\n};\ntype RestoreComponentResult = Omit<RestoreComponentResponses[200], \"component\"> & {\n  component: Component;\n};\n\nexport function createComponentsResource<DefaultThrowOnError extends boolean = false>(\n  deps: MapiResourceDeps<DefaultThrowOnError>,\n) {\n  const { client, spaceId, wrapRequest } = deps;\n  const getSpaceId = (path?: SpaceIdPathOverride[\"path\"]) => resolveSpaceId(spaceId, path);\n\n  return {\n    list<ThrowOnError extends boolean = DefaultThrowOnError>(\n      options: {\n        query?: ListManagementComponentsData[\"query\"];\n        signal?: AbortSignal;\n        throwOnError?: ThrowOnError;\n        fetchOptions?: FetchOptions;\n      } & SpaceIdPathOverride = {},\n    ): Promise<ApiResponse<ListComponentsResult, ThrowOnError>> {\n      const { query, signal, path, throwOnError, fetchOptions } = options;\n      const resolvedSpaceId = getSpaceId(path);\n      return wrapRequest<ListComponentsResult, ThrowOnError>(\n        () =>\n          mapi.listManagementComponents({\n            client,\n            path: { space_id: resolvedSpaceId },\n            query,\n            signal,\n            ...(throwOnError === undefined ? {} : { throwOnError }),\n            ...(fetchOptions\n              ? { kyOptions: { ...client.getConfig().kyOptions, ...fetchOptions } }\n              : {}),\n          }),\n        throwOnError,\n      );\n    },\n    get<ThrowOnError extends boolean = DefaultThrowOnError>(\n      componentId: number,\n      options: {\n        signal?: AbortSignal;\n        throwOnError?: ThrowOnError;\n        fetchOptions?: FetchOptions;\n      } & SpaceIdPathOverride = {},\n    ): Promise<ApiResponse<GetComponentResult, ThrowOnError>> {\n      const { signal, path, throwOnError, fetchOptions } = options;\n      const resolvedSpaceId = getSpaceId(path);\n      return wrapRequest<GetComponentResult, ThrowOnError>(\n        () =>\n          mapi.getComponent({\n            client,\n            path: { space_id: resolvedSpaceId, id: String(componentId) },\n            signal,\n            ...(throwOnError === undefined ? {} : { throwOnError }),\n            ...(fetchOptions\n              ? { kyOptions: { ...client.getConfig().kyOptions, ...fetchOptions } }\n              : {}),\n          }),\n        throwOnError,\n      );\n    },\n    create<ThrowOnError extends boolean = DefaultThrowOnError>(\n      options: {\n        body: CreateComponentData[\"body\"];\n        signal?: AbortSignal;\n        throwOnError?: ThrowOnError;\n        fetchOptions?: FetchOptions;\n      } & SpaceIdPathOverride,\n    ): Promise<ApiResponse<CreateComponentResult, ThrowOnError>> {\n      const { body, signal, path, throwOnError, fetchOptions } = options;\n      const resolvedSpaceId = getSpaceId(path);\n      return wrapRequest<CreateComponentResult, ThrowOnError>(\n        () =>\n          mapi.createComponent({\n            client,\n            path: { space_id: resolvedSpaceId },\n            body,\n            signal,\n            ...(throwOnError === undefined ? {} : { throwOnError }),\n            ...(fetchOptions\n              ? { kyOptions: { ...client.getConfig().kyOptions, ...fetchOptions } }\n              : {}),\n          }),\n        throwOnError,\n      );\n    },\n    update<ThrowOnError extends boolean = DefaultThrowOnError>(\n      componentId: number,\n      options: {\n        body: UpdateComponentData[\"body\"];\n        signal?: AbortSignal;\n        throwOnError?: ThrowOnError;\n        fetchOptions?: FetchOptions;\n      } & SpaceIdPathOverride,\n    ): Promise<ApiResponse<UpdateComponentResult, ThrowOnError>> {\n      const { body, signal, path, throwOnError, fetchOptions } = options;\n      const resolvedSpaceId = getSpaceId(path);\n      return wrapRequest<UpdateComponentResult, ThrowOnError>(\n        () =>\n          mapi.updateComponent({\n            client,\n            path: { space_id: resolvedSpaceId, id: String(componentId) },\n            body,\n            signal,\n            ...(throwOnError === undefined ? {} : { throwOnError }),\n            ...(fetchOptions\n              ? { kyOptions: { ...client.getConfig().kyOptions, ...fetchOptions } }\n              : {}),\n          }),\n        throwOnError,\n      );\n    },\n    delete<ThrowOnError extends boolean = DefaultThrowOnError>(\n      componentId: number,\n      options: {\n        signal?: AbortSignal;\n        throwOnError?: ThrowOnError;\n        fetchOptions?: FetchOptions;\n      } & SpaceIdPathOverride = {},\n    ): Promise<ApiResponse<DeleteComponentResponses[200], ThrowOnError>> {\n      const { signal, path, throwOnError, fetchOptions } = options;\n      const resolvedSpaceId = getSpaceId(path);\n      return wrapRequest<DeleteComponentResponses[200], ThrowOnError>(\n        () =>\n          mapi.deleteComponent({\n            client,\n            path: { space_id: resolvedSpaceId, id: String(componentId) },\n            signal,\n            ...(throwOnError === undefined ? {} : { throwOnError }),\n            ...(fetchOptions\n              ? { kyOptions: { ...client.getConfig().kyOptions, ...fetchOptions } }\n              : {}),\n          }),\n        throwOnError,\n      );\n    },\n    restore<ThrowOnError extends boolean = DefaultThrowOnError>(\n      componentId: number,\n      options: {\n        signal?: AbortSignal;\n        throwOnError?: ThrowOnError;\n        fetchOptions?: FetchOptions;\n      } & SpaceIdPathOverride = {},\n    ): Promise<ApiResponse<RestoreComponentResult, ThrowOnError>> {\n      const { signal, path, throwOnError, fetchOptions } = options;\n      const resolvedSpaceId = getSpaceId(path);\n      return wrapRequest<RestoreComponentResult, ThrowOnError>(\n        () =>\n          mapi.restoreComponent({\n            client,\n            path: { space_id: resolvedSpaceId, id: componentId },\n            signal,\n            ...(throwOnError === undefined ? {} : { throwOnError }),\n            ...(fetchOptions\n              ? { kyOptions: { ...client.getConfig().kyOptions, ...fetchOptions } }\n              : {}),\n          }),\n        throwOnError,\n      );\n    },\n    versions<ThrowOnError extends boolean = DefaultThrowOnError>(\n      componentId: number,\n      options: {\n        query?: Omit<ListVersionsData[\"query\"], \"model\" | \"model_id\">;\n        signal?: AbortSignal;\n        throwOnError?: ThrowOnError;\n        fetchOptions?: FetchOptions;\n      } & SpaceIdPathOverride = {},\n    ): Promise<ApiResponse<ListVersionsResponses[200], ThrowOnError>> {\n      const { query, signal, path, throwOnError, fetchOptions } = options;\n      const resolvedSpaceId = getSpaceId(path);\n      return wrapRequest<ListVersionsResponses[200], ThrowOnError>(\n        () =>\n          mapi.listVersions({\n            client,\n            path: { space_id: resolvedSpaceId },\n            query: { ...query, model: \"components\", model_id: componentId },\n            signal,\n            ...(throwOnError === undefined ? {} : { throwOnError }),\n            ...(fetchOptions\n              ? { kyOptions: { ...client.getConfig().kyOptions, ...fetchOptions } }\n              : {}),\n          }),\n        throwOnError,\n      );\n    },\n    version<ThrowOnError extends boolean = DefaultThrowOnError>(\n      componentId: number,\n      versionId: GetComponentVersionData[\"path\"][\"id\"],\n      options: {\n        signal?: AbortSignal;\n        throwOnError?: ThrowOnError;\n        fetchOptions?: FetchOptions;\n      } & SpaceIdPathOverride = {},\n    ): Promise<ApiResponse<GetComponentVersionResponses[200], ThrowOnError>> {\n      const { signal, path, throwOnError, fetchOptions } = options;\n      const resolvedSpaceId = getSpaceId(path);\n      return wrapRequest<GetComponentVersionResponses[200], ThrowOnError>(\n        () =>\n          mapi.getComponentVersion({\n            client,\n            path: { space_id: resolvedSpaceId, component_id: componentId, id: versionId },\n            signal,\n            ...(throwOnError === undefined ? {} : { throwOnError }),\n            ...(fetchOptions\n              ? { kyOptions: { ...client.getConfig().kyOptions, ...fetchOptions } }\n              : {}),\n          }),\n        throwOnError,\n      );\n    },\n    restoreVersion<ThrowOnError extends boolean = DefaultThrowOnError>(\n      componentId: number,\n      versionId: RestoreVersionData[\"path\"][\"id\"],\n      options: {\n        query?: Omit<RestoreVersionData[\"query\"], \"model\" | \"model_id\">;\n        signal?: AbortSignal;\n        throwOnError?: ThrowOnError;\n        fetchOptions?: FetchOptions;\n      } & SpaceIdPathOverride = {},\n    ): Promise<ApiResponse<RestoreVersionResponses[204], ThrowOnError>> {\n      const { query, signal, path, throwOnError, fetchOptions } = options;\n      const resolvedSpaceId = getSpaceId(path);\n      return wrapRequest<RestoreVersionResponses[204], ThrowOnError>(\n        () =>\n          mapi.restoreVersion({\n            client,\n            path: { space_id: resolvedSpaceId, id: versionId },\n            query: { ...query, model: \"components\", model_id: componentId },\n            signal,\n            ...(throwOnError === undefined ? {} : { throwOnError }),\n            ...(fetchOptions\n              ? { kyOptions: { ...client.getConfig().kyOptions, ...fetchOptions } }\n              : {}),\n          }),\n        throwOnError,\n      );\n    },\n  };\n}\n"],"mappings":"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"}