{"version":3,"file":"stories.mjs","names":["mapi.listStories","mapi.getStoryById","mapi.createStory","mapi.updateStory","mapi.deleteStory","mapi.duplicateStory","mapi.publishStory","mapi.listVersions"],"sources":["../../src/resources/stories.ts"],"sourcesContent":["import * as mapi from \"../generated/mapi/sdk.gen\";\nimport type {\n  CreateStoryData,\n  CreateStoryResponses,\n  DeleteStoryResponses,\n  DuplicateStoryData,\n  DuplicateStoryResponses,\n  GetStoryByIdData,\n  GetStoryByIdResponses,\n  ListStoriesData,\n  ListStoriesResponses,\n  ListVersionsData,\n  ListVersionsResponses,\n  PublishStoryData,\n  PublishStoryResponses,\n  UpdateStoryData,\n  UpdateStoryRequest,\n  UpdateStoryResponses,\n} from \"../generated/mapi/types.gen\";\nimport type { Block as Component } from \"../generated/types/block\";\nimport type { MapiStory, StoryCreate, StoryUpdate } from \"../generated/types/mapi-story\";\nimport type { ApiResponse, FetchOptions, MapiResourceDeps } from \"../client\";\nimport { resolveSpaceId, type SpaceIdPathOverride } from \"./shared\";\n\nexport type StoryListQuery = NonNullable<ListStoriesData[\"query\"]>;\n\n/**\n * Resolves to a component-narrowed story type when `TComponents` is a specific\n * Component union, or falls back to the generated `MapiStory` when no components\n * are provided (i.e. `TComponents` is the default base `Component` type).\n */\ntype StoryResult<\n  TComponents extends Component,\n  TFieldPlugins = Record<never, never>,\n> = Component extends TComponents ? MapiStory : MapiStory<TComponents, TFieldPlugins>;\n\ntype GetResponse<TComponents extends Component, TFieldPlugins = Record<never, never>> = Omit<\n  GetStoryByIdResponses[200],\n  \"story\"\n> & { story?: StoryResult<TComponents, TFieldPlugins> };\n\ntype ListResponse<TComponents extends Component, TFieldPlugins = Record<never, never>> = Omit<\n  ListStoriesResponses[200],\n  \"stories\"\n> & { stories?: Array<StoryResult<TComponents, TFieldPlugins>> };\n\ntype CreateResponse<TComponents extends Component, TFieldPlugins = Record<never, never>> = Omit<\n  CreateStoryResponses[201],\n  \"story\"\n> & { story?: StoryResult<TComponents, TFieldPlugins> };\n\ntype UpdateResponse<TComponents extends Component, TFieldPlugins = Record<never, never>> = Omit<\n  UpdateStoryResponses[200],\n  \"story\"\n> & { story?: StoryResult<TComponents, TFieldPlugins> };\n\ntype DuplicateResponse<TComponents extends Component, TFieldPlugins = Record<never, never>> = Omit<\n  DuplicateStoryResponses[200],\n  \"story\"\n> & { story?: StoryResult<TComponents, TFieldPlugins> };\n\ntype PublishResponse<TComponents extends Component, TFieldPlugins = Record<never, never>> = Omit<\n  PublishStoryResponses[200],\n  \"story\"\n> & { story?: StoryResult<TComponents, TFieldPlugins> };\n\ntype CreateBody<\n  TComponents extends Component,\n  TFieldPlugins = Record<never, never>,\n> = Component extends TComponents\n  ? CreateStoryData[\"body\"]\n  : Omit<UpdateStoryRequest, \"story\"> & {\n      story: StoryCreate<TComponents, TFieldPlugins>;\n    };\n\ntype UpdateBody<\n  TComponents extends Component,\n  TFieldPlugins = Record<never, never>,\n> = Component extends TComponents\n  ? UpdateStoryData[\"body\"]\n  : Omit<UpdateStoryRequest, \"story\"> & {\n      story: StoryUpdate<TComponents, TFieldPlugins>;\n    };\n\nexport function createStoriesResource<\n  TComponents extends Component = Component,\n  TFieldPlugins = Record<never, never>,\n  DefaultThrowOnError extends boolean = false,\n>(deps: MapiResourceDeps<DefaultThrowOnError>) {\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?: ListStoriesData[\"query\"];\n        signal?: AbortSignal;\n        throwOnError?: ThrowOnError;\n        fetchOptions?: FetchOptions;\n      } & SpaceIdPathOverride = {},\n    ): Promise<ApiResponse<ListResponse<TComponents, TFieldPlugins>, ThrowOnError>> {\n      const { query, signal, path, throwOnError, fetchOptions } = options;\n      const resolvedSpaceId = getSpaceId(path);\n      return wrapRequest<ListResponse<TComponents, TFieldPlugins>, ThrowOnError>(\n        () =>\n          mapi.listStories({\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      storyId: number,\n      options: {\n        query?: GetStoryByIdData[\"query\"];\n        signal?: AbortSignal;\n        throwOnError?: ThrowOnError;\n        fetchOptions?: FetchOptions;\n      } & SpaceIdPathOverride = {},\n    ): Promise<ApiResponse<GetResponse<TComponents, TFieldPlugins>, ThrowOnError>> {\n      const { query, signal, path, throwOnError, fetchOptions } = options;\n      const resolvedSpaceId = getSpaceId(path);\n      return wrapRequest<GetResponse<TComponents, TFieldPlugins>, ThrowOnError>(\n        () =>\n          mapi.getStoryById({\n            client,\n            path: { space_id: resolvedSpaceId, id: storyId },\n            query,\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: CreateBody<TComponents, TFieldPlugins>;\n        query?: CreateStoryData[\"query\"];\n        signal?: AbortSignal;\n        throwOnError?: ThrowOnError;\n        fetchOptions?: FetchOptions;\n      } & SpaceIdPathOverride,\n    ): Promise<ApiResponse<CreateResponse<TComponents, TFieldPlugins>, ThrowOnError>> {\n      const { body, query, signal, path, throwOnError, fetchOptions } = options;\n      const resolvedSpaceId = getSpaceId(path);\n      return wrapRequest<CreateResponse<TComponents, TFieldPlugins>, ThrowOnError>(\n        () =>\n          mapi.createStory({\n            client,\n            path: { space_id: resolvedSpaceId },\n            body: body as CreateStoryData[\"body\"],\n            query,\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      storyId: number,\n      options: {\n        body: UpdateBody<TComponents, TFieldPlugins>;\n        query?: UpdateStoryData[\"query\"];\n        signal?: AbortSignal;\n        throwOnError?: ThrowOnError;\n        fetchOptions?: FetchOptions;\n      } & SpaceIdPathOverride,\n    ): Promise<ApiResponse<UpdateResponse<TComponents, TFieldPlugins>, ThrowOnError>> {\n      const { body, query, signal, path, throwOnError, fetchOptions } = options;\n      const resolvedSpaceId = getSpaceId(path);\n      return wrapRequest<UpdateResponse<TComponents, TFieldPlugins>, ThrowOnError>(\n        () =>\n          mapi.updateStory({\n            client,\n            path: { space_id: resolvedSpaceId, id: storyId },\n            body: body as UpdateStoryData[\"body\"],\n            query,\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      storyId: number,\n      options: {\n        signal?: AbortSignal;\n        throwOnError?: ThrowOnError;\n        fetchOptions?: FetchOptions;\n      } & SpaceIdPathOverride = {},\n    ): Promise<ApiResponse<DeleteStoryResponses[200], ThrowOnError>> {\n      const { signal, path, throwOnError, fetchOptions } = options;\n      const resolvedSpaceId = getSpaceId(path);\n      return wrapRequest<DeleteStoryResponses[200], ThrowOnError>(\n        () =>\n          mapi.deleteStory({\n            client,\n            path: { space_id: resolvedSpaceId, id: storyId },\n            signal,\n            ...(throwOnError === undefined ? {} : { throwOnError }),\n            ...(fetchOptions\n              ? { kyOptions: { ...client.getConfig().kyOptions, ...fetchOptions } }\n              : {}),\n          }),\n        throwOnError,\n      );\n    },\n    duplicate<ThrowOnError extends boolean = DefaultThrowOnError>(\n      storyId: number,\n      options: {\n        body: DuplicateStoryData[\"body\"];\n        query?: DuplicateStoryData[\"query\"];\n        signal?: AbortSignal;\n        throwOnError?: ThrowOnError;\n        fetchOptions?: FetchOptions;\n      } & SpaceIdPathOverride,\n    ): Promise<ApiResponse<DuplicateResponse<TComponents, TFieldPlugins>, ThrowOnError>> {\n      const { body, query, signal, path, throwOnError, fetchOptions } = options;\n      const resolvedSpaceId = getSpaceId(path);\n      return wrapRequest<DuplicateResponse<TComponents, TFieldPlugins>, ThrowOnError>(\n        () =>\n          mapi.duplicateStory({\n            client,\n            path: { space_id: resolvedSpaceId, id: storyId },\n            body,\n            query,\n            signal,\n            ...(throwOnError === undefined ? {} : { throwOnError }),\n            ...(fetchOptions\n              ? { kyOptions: { ...client.getConfig().kyOptions, ...fetchOptions } }\n              : {}),\n          }),\n        throwOnError,\n      );\n    },\n    publish<ThrowOnError extends boolean = DefaultThrowOnError>(\n      storyId: number,\n      options: {\n        query?: PublishStoryData[\"query\"];\n        signal?: AbortSignal;\n        throwOnError?: ThrowOnError;\n        fetchOptions?: FetchOptions;\n      } & SpaceIdPathOverride = {},\n    ): Promise<ApiResponse<PublishResponse<TComponents, TFieldPlugins>, ThrowOnError>> {\n      const { query, signal, path, throwOnError, fetchOptions } = options;\n      const resolvedSpaceId = getSpaceId(path);\n      return wrapRequest<PublishResponse<TComponents, TFieldPlugins>, ThrowOnError>(\n        () =>\n          mapi.publishStory({\n            client,\n            path: { space_id: resolvedSpaceId, id: storyId },\n            query,\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      storyId: 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: \"stories\", model_id: storyId },\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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"}