{"version":3,"sources":["../src/schemas/authors.ts","../src/schemas/shared.ts","../src/schemas/pages.ts","../src/schemas/tags.ts","../src/schemas/posts.ts","../src/schemas/settings.ts","../src/schemas/tiers.ts","../src/schemas/email.ts","../src/schemas/offers.ts","../src/schemas/members.ts","../src/schemas/newsletter.ts","../src/schemas/subscriptions.ts","../src/schemas/site.ts","../src/fetchers/browse-fetcher.ts","../src/fetchers/formats.ts","../src/fetchers/read-fetcher.ts","../src/fetchers/basic-fetcher.ts","../src/fetchers/mutation-fetcher.ts","../src/fetchers/delete-fetcher.ts","../src/api-composer.ts","../src/helpers/browse-params.ts","../src/helpers/fields.ts","../src/helpers/http-client.ts"],"names":["z","postsAuthorSchema"],"mappings":"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","sourcesContent":["import { z } from \"zod\";\n\nimport { ghostIdentitySchema, ghostMetadataSchema } from \"./shared\";\n\nexport const baseAuthorsSchema = z.object({\n ...ghostIdentitySchema.shape,\n ...ghostMetadataSchema.shape,\n name: z.string(),\n profile_image: z.string().nullable(),\n cover_image: z.string().nullable(),\n bio: z.string().nullable(),\n website: z.string().nullable(),\n location: z.string().nullable(),\n facebook: z.string().nullable(),\n twitter: z.string().nullable(),\n count: z\n .object({\n posts: z.number(),\n })\n .optional(),\n url: z.string(),\n});\n","import { z } from \"zod\";\n\nimport type { HTTPClient } from \"../helpers/http-client\";\n\nexport const ghostIdentitySchema = z.object({\n slug: z.string(),\n id: z.string(),\n});\n\nexport const ghostIdentityInputSchema = z.object({\n slug: z.string().optional(),\n id: z.string().optional(),\n email: z.string().email().optional(),\n});\n\nexport type GhostIdentityInput = z.infer;\n\nexport type GhostIdentity = z.infer;\n\nexport const ghostMetaSchema = z.object({\n pagination: z.object({\n pages: z.number(),\n page: z.number(),\n limit: z.union([z.number(), z.literal(\"all\")]),\n total: z.number(),\n prev: z.number().nullable(),\n next: z.number().nullable(),\n }),\n});\n\nexport type GhostMeta = z.infer;\n\nexport const ghostExcerptSchema = z.object({\n excerpt: z.string().optional(),\n custom_excerpt: z.string().optional(),\n});\n\nexport const ghostCodeInjectionSchema = z.object({\n codeinjection_head: z.string().nullable(),\n codeinjection_foot: z.string().nullable(),\n});\n\nexport const ghostFacebookSchema = z.object({\n og_image: z.string().nullable(),\n og_title: z.string().nullable(),\n og_description: z.string().nullable(),\n});\n\nexport const ghostTwitterSchema = z.object({\n twitter_image: z.string().nullable(),\n twitter_title: z.string().nullable(),\n twitter_description: z.string().nullable(),\n});\n\nexport const ghostSocialMediaSchema = z.object({\n ...ghostFacebookSchema.shape,\n ...ghostTwitterSchema.shape,\n});\n\nexport const ghostMetadataSchema = z.object({\n meta_title: z.string().nullable(),\n meta_description: z.string().nullable(),\n});\n\nexport const ghostVisibilitySchema = z.union([\n z.literal(\"public\"),\n z.literal(\"members\"),\n z.literal(\"none\"),\n z.literal(\"internal\"),\n z.literal(\"paid\"),\n z.literal(\"tiers\"),\n]);\n\nexport const apiVersionsSchema = z\n .string()\n .regex(/^v5\\.\\d+/)\n .default(\"v5.0\");\nexport type TAPIVersion = V extends \"v5.0\" | `v5.${infer Minor}` ? `v5.${Minor}` : never;\nexport type APIVersions = z.infer;\n\nexport const contentAPICredentialsSchema = z.object({\n key: z.string().regex(/[0-9a-f]{26}/, { message: \"'key' must have 26 hex characters\" }),\n version: apiVersionsSchema,\n url: z.string().url(),\n});\n\nexport type ContentAPICredentials = z.infer;\n\nexport type APIResource =\n | \"pages\"\n | \"posts\"\n | \"settings\"\n | \"authors\"\n | \"tiers\"\n | \"tags\"\n | \"members\"\n | \"site\"\n | \"offers\"\n | \"users\"\n | \"newsletters\"\n | \"webhooks\"\n | \"themes\"\n | \"files\"\n | \"images\";\n\nexport type APIEndpoint = \"admin\" | \"content\";\n\nexport type APICredentials = {\n key: string;\n version: APIVersions;\n url: string;\n};\n\nexport type GhostRequestConfig = {\n endpoint: APIEndpoint;\n resource: APIResource;\n httpClient: HTTPClient;\n};\n\nexport const adminAPICredentialsSchema = z.object({\n key: z.string().regex(/[0-9a-f]{24}:[0-9a-f]{64}/, {\n message:\n \"'key' must have the following format {A}:{B}, where A is 24 hex characters and B is 64 hex characters\",\n }),\n version: apiVersionsSchema,\n url: z.string().url(),\n});\n\nexport const slugOrIdSchema = z.union([z.object({ slug: z.string() }), z.object({ id: z.string() })]);\nexport const emailOrIdSchema = z.union([\n z.object({ email: z.string().email() }),\n z.object({ id: z.string() }),\n]);\nexport const identitySchema = z.union([\n z.object({ email: z.string().email() }),\n z.object({ id: z.string() }),\n z.object({ slug: z.string() }),\n]);\n\nexport type AdminAPICredentials = z.infer;\n","import { z } from \"zod\";\n\nimport { baseAuthorsSchema } from \"./authors\";\nimport {\n ghostCodeInjectionSchema,\n ghostIdentitySchema,\n ghostMetadataSchema,\n ghostSocialMediaSchema,\n ghostVisibilitySchema,\n} from \"./shared\";\nimport { baseTagsSchema } from \"./tags\";\n\nconst postsAuthorSchema = baseAuthorsSchema.extend({\n url: z.string().nullish(),\n});\n\nexport const basePagesSchema = z.object({\n ...ghostIdentitySchema.shape,\n ...ghostMetadataSchema.shape,\n title: z.string(),\n html: z.string().nullish(),\n plaintext: z.string().nullish(),\n comment_id: z.string().nullable(),\n feature_image: z.string().nullable(),\n feature_image_alt: z.string().nullable(),\n feature_image_caption: z.string().nullable(),\n featured: z.boolean(),\n custom_excerpt: z.string().nullable(),\n ...ghostCodeInjectionSchema.shape,\n ...ghostSocialMediaSchema.shape,\n visibility: ghostVisibilitySchema,\n custom_template: z.string().nullable(),\n canonical_url: z.string().nullable(),\n authors: z.array(postsAuthorSchema).optional(),\n tags: z.array(baseTagsSchema).optional(),\n primary_author: postsAuthorSchema.nullish(),\n primary_tag: baseTagsSchema.nullish(),\n url: z.string(),\n excerpt: z.string().nullish(),\n reading_time: z.number().optional().default(0),\n created_at: z.string(),\n updated_at: z.string().nullish(),\n published_at: z.string().nullable(),\n email_subject: z.string().nullish(),\n is_page: z.boolean().default(true),\n});\n","import { z } from \"zod\";\n\nimport {\n ghostCodeInjectionSchema,\n ghostIdentitySchema,\n ghostMetadataSchema,\n ghostSocialMediaSchema,\n ghostVisibilitySchema,\n} from \"./shared\";\n\nexport const baseTagsSchema = z.object({\n ...ghostIdentitySchema.shape,\n ...ghostMetadataSchema.shape,\n ...ghostCodeInjectionSchema.shape,\n ...ghostSocialMediaSchema.shape,\n name: z.string(),\n description: z.string().nullable(),\n feature_image: z.string().nullable(),\n visibility: ghostVisibilitySchema,\n canonical_url: z.string().nullable(),\n accent_color: z.string().nullable(),\n url: z.string(),\n created_at: z.string().nullish(),\n updated_at: z.string().nullish(),\n count: z\n .object({\n posts: z.number(),\n })\n .optional(),\n});\n","import { z } from \"zod\";\n\nimport { baseAuthorsSchema } from \"./authors\";\nimport {\n ghostCodeInjectionSchema,\n ghostIdentitySchema,\n ghostMetadataSchema,\n ghostSocialMediaSchema,\n ghostVisibilitySchema,\n} from \"./shared\";\nimport { baseTagsSchema } from \"./tags\";\n\nconst postsAuthorSchema = baseAuthorsSchema.extend({\n url: z.string().nullish(),\n});\nexport const basePostsSchema = z.object({\n ...ghostIdentitySchema.shape,\n ...ghostMetadataSchema.shape,\n title: z.string(),\n html: z.string().nullish(),\n plaintext: z.string().nullish(),\n comment_id: z.string().nullable(),\n feature_image: z.string().nullable(),\n feature_image_alt: z.string().nullable(),\n feature_image_caption: z.string().nullable(),\n featured: z.boolean(),\n custom_excerpt: z.string().nullable(),\n ...ghostCodeInjectionSchema.shape,\n ...ghostSocialMediaSchema.shape,\n visibility: ghostVisibilitySchema,\n custom_template: z.string().nullable(),\n canonical_url: z.string().nullable(),\n authors: z.array(postsAuthorSchema).optional(),\n tags: z.array(baseTagsSchema).optional(),\n primary_author: postsAuthorSchema.nullish(),\n primary_tag: baseTagsSchema.nullish(),\n url: z.string(),\n excerpt: z.string().nullable(),\n reading_time: z.number().optional().default(0),\n created_at: z.string(),\n updated_at: z.string().nullish(),\n published_at: z.string().nullable(),\n email_subject: z.string().nullish(),\n is_page: z.boolean().default(false),\n});\n","import { z } from \"zod\";\n\nexport const baseSettingsSchema = z.object({\n title: z.string(),\n description: z.string(),\n logo: z.string().nullable(),\n icon: z.string().nullable(),\n accent_color: z.string().nullable(),\n cover_image: z.string().nullable(),\n facebook: z.string().nullable(),\n twitter: z.string().nullable(),\n lang: z.string(),\n timezone: z.string(),\n codeinjection_head: z.string().nullable(),\n codeinjection_foot: z.string().nullable(),\n navigation: z.array(\n z.object({\n label: z.string(),\n url: z.string(),\n })\n ),\n secondary_navigation: z.array(\n z.object({\n label: z.string(),\n url: z.string(),\n })\n ),\n meta_title: z.string().nullable(),\n meta_description: z.string().nullable(),\n og_image: z.string().nullable(),\n og_title: z.string().nullable(),\n og_description: z.string().nullable(),\n twitter_image: z.string().nullable(),\n twitter_title: z.string().nullable(),\n twitter_description: z.string().nullable(),\n members_support_address: z.string(),\n url: z.string(),\n});\n","import { z } from \"zod\";\n\nimport { ghostIdentitySchema, ghostVisibilitySchema } from \"./shared\";\n\nexport const baseTiersSchema = z.object({\n ...ghostIdentitySchema.shape,\n name: z.string(),\n description: z.string().nullable(),\n active: z.boolean(),\n type: z.union([z.literal(\"free\"), z.literal(\"paid\")]),\n welcome_page_url: z.string().nullable(),\n created_at: z.string(),\n updated_at: z.string().nullable(),\n stripe_prices: z\n .array(z.number())\n .optional()\n .transform((v) => (v?.length ? v : [])),\n monthly_price: z\n .number()\n .nullable()\n .optional()\n .transform((v) => (v ? v : null)),\n yearly_price: z\n .number()\n .nullable()\n .optional()\n .transform((v) => (v ? v : null)),\n benefits: z.array(z.string()).optional(),\n visibility: ghostVisibilitySchema,\n currency: z.string().nullish(),\n trial_days: z.number().default(0),\n});\n","import { z } from \"zod\";\n\nexport const baseEmailSchema = z.object({\n id: z.string(),\n uuid: z.string(),\n status: z.string(),\n recipient_filter: z.string(),\n error: z.string().nullish(),\n error_data: z.any().nullable(),\n email_count: z.number(),\n delivered_count: z.number(),\n opened_count: z.number(),\n failed_count: z.number(),\n subject: z.string(),\n from: z.string(),\n reply_to: z.string().nullable(),\n source: z.string(), // lexical format\n html: z.string().nullable(),\n plaintext: z.string().nullable(),\n track_opens: z.boolean(),\n submitted_at: z.string(),\n created_at: z.string(),\n updated_at: z.string(),\n});\n","import { z } from \"zod\";\n\nexport const baseOffersSchema = z.object({\n id: z.string(),\n name: z.string({ description: \"Internal name for an offer, must be unique\" }).default(\"\"),\n code: z.string({ description: \"Shortcode for the offer, for example: https://yoursite.com/black-friday\" }),\n display_title: z.string({ description: \"Name displayed in the offer window\" }).nullish(),\n display_description: z.string({ description: \"Text displayed in the offer window\" }).nullish(),\n type: z.union([z.literal(\"percent\"), z.literal(\"fixed\"), z.literal(\"trial\")]),\n cadence: z.union([z.literal(\"month\"), z.literal(\"year\")]),\n amount: z.number({\n description: `Offer discount amount, as a percentage or fixed value as set in type. \n Amount is always denoted by the smallest currency unit \n (e.g., 100 cents instead of $1.00 in USD)`,\n }),\n duration: z.union([z.literal(\"once\"), z.literal(\"forever\"), z.literal(\"repeating\"), z.literal(\"trial\")], {\n description: \"once/forever/repeating. repeating duration is only available when cadence is month\",\n }),\n duration_in_months: z\n .number({ description: \"Number of months offer should be repeated when duration is repeating\" })\n .nullish(),\n currency_restriction: z\n .boolean({\n description:\n \"Denotes whether the offer `currency` is restricted. If so, changing the currency invalidates the offer\",\n })\n .nullish(),\n currency: z\n .string({\n description: \"fixed type offers only - specifies tier's currency as three letter ISO currency code\",\n })\n .nullish(),\n status: z.union([z.literal(\"active\"), z.literal(\"archived\")], {\n description: \"active or archived - denotes if the offer is active or archived\",\n }),\n redemption_count: z.number({ description: \"Number of times the offer has been redeemed\" }).nullish(),\n tier: z.object(\n {\n id: z.string(),\n name: z.string().nullish(),\n },\n { description: \"Tier on which offer is applied\" }\n ),\n});\n","import { z } from \"zod\";\n\nimport { baseNewsletterSchema } from \"./newsletter\";\nimport { baseSubscriptionsSchema } from \"./subscriptions\";\n\nexport const baseMembersSchema = z.object({\n id: z.string(),\n email: z.string({ description: \"The email address of the member\" }),\n name: z.string({ description: \"The name of the member\" }).nullable(),\n note: z.string({ description: \"(nullable) A note about the member\" }).nullish(),\n geolocation: z.string({ description: \"(nullable) The geolocation of the member\" }).nullish(),\n created_at: z.string({ description: \"The date and time the member was created\" }),\n updated_at: z\n .string({ description: \"(nullable) The date and time the member was last updated\" })\n .nullish(),\n labels: z.array(\n z.object({\n id: z.string({ description: \"The ID of the label\" }),\n name: z.string({ description: \"The name of the label\" }),\n slug: z.string({ description: \"The slug of the label\" }),\n created_at: z.string({ description: \"The date and time the label was created\" }),\n updated_at: z\n .string({ description: \"(nullable) The date and time the label was last updated\" })\n .nullish(),\n }),\n { description: \"The labels associated with the member\" }\n ),\n subscriptions: z.array(baseSubscriptionsSchema, {\n description: \"The subscriptions associated with the member\",\n }),\n avatar_image: z.string({ description: \"The URL of the member's avatar image\" }),\n email_count: z.number({ description: \"The number of emails sent to the member\" }),\n email_opened_count: z.number({ description: \"The number of emails opened by the member\" }),\n email_open_rate: z.number({ description: \"(nullable) The open rate of the member\" }).nullish(),\n status: z.string({ description: \"The status of the member\" }),\n last_seen_at: z.string({ description: \"(nullable) The date and time the member was last seen\" }).nullish(),\n newsletters: z.array(baseNewsletterSchema),\n});\n","import { z } from \"zod\";\n\nimport { ghostIdentitySchema } from \"./shared\";\n\nexport const baseNewsletterSchema = z.object({\n ...ghostIdentitySchema.shape,\n name: z.string({ description: \"Public name for the newsletter\" }),\n description: z.string({ description: \"(nullable) Public description of the newsletter\" }).nullish(),\n sender_name: z.string({ description: \"(nullable) The sender name of the emails\" }).nullish(),\n sender_email: z\n .string({ description: \"(nullable) The email from which to send emails. Requires validation.\" })\n .nullish(),\n sender_reply_to: z.string({\n description:\n \"The reply-to email address for sent emails. Can be either newsletter (= use sender_email) or support (use support email from Portal settings).\",\n }),\n status: z.union([z.literal(\"active\"), z.literal(\"archived\")], {\n description: \"active or archived - denotes if the newsletter is active or archived\",\n }),\n visibility: z.union([z.literal(\"public\"), z.literal(\"members\")]),\n subscribe_on_signup: z.boolean({\n description: \"true/false. Whether members should automatically subscribe to this newsletter on signup\",\n }),\n sort_order: z.number({ description: \"The order in which newsletters are displayed in the Portal\" }),\n header_image: z\n .string({\n description: \"(nullable) Path to an image to show at the top of emails. Recommended size 1200x600\",\n })\n .nullish(),\n show_header_icon: z.boolean({ description: \"true/false. Show the site icon in emails\" }),\n show_header_title: z.boolean({ description: \"true/false. Show the site name in emails\" }),\n title_font_category: z.union([z.literal(\"serif\"), z.literal(\"sans_serif\")], {\n description: \"Title font style. Either serif or sans_serif\",\n }),\n title_alignment: z.string().nullish(),\n show_feature_image: z.boolean({ description: \"true/false. Show the post's feature image in emails\" }),\n body_font_category: z.union([z.literal(\"serif\"), z.literal(\"sans_serif\")], {\n description: \"Body font style. Either serif or sans_serif\",\n }),\n footer_content: z\n .string({\n description:\n \"(nullable) Extra information or legal text to show in the footer of emails. Should contain valid HTML.\",\n })\n .nullish(),\n show_badge: z.boolean({\n description:\n \"true/false. Show you’re a part of the indie publishing movement by adding a small Ghost badge in the footer\",\n }),\n created_at: z.string(),\n updated_at: z.string().nullish(),\n show_header_name: z.boolean({ description: \"true/false. Show the newsletter name in emails\" }),\n uuid: z.string(),\n});\n","import { z } from \"zod\";\n\nimport { baseOffersSchema } from \"./offers\";\nimport { baseTiersSchema } from \"./tiers\";\n\nexport const baseSubscriptionsSchema = z.object({\n id: z.string({ description: \"Stripe subscription ID sub_XXXX\" }),\n customer: z.object(\n {\n id: z.string(),\n name: z.string().nullable(),\n email: z.string(),\n },\n { description: \"Stripe customer attached to the subscription\" }\n ),\n status: z.string({ description: \"Subscription status\" }),\n start_date: z.string({ description: \"Subscription start date\" }),\n default_payment_card_last4: z.string({ description: \"Last 4 digits of the card\" }).nullable(),\n cancel_at_period_end: z.boolean({\n description: \"If the subscription should be canceled or renewed at period end\",\n }),\n cancellation_reason: z.string({ description: \"Reason for subscription cancellation\" }).nullable(),\n current_period_end: z.string({ description: \"Subscription end date\" }),\n price: z.object({\n id: z.string({ description: \"Stripe price ID\" }),\n price_id: z.string({ description: \"Ghost price ID\" }),\n nickname: z.string({ description: \"Price nickname\" }),\n amount: z.number({ description: \"Price amount\" }),\n interval: z.string({ description: \"Price interval\" }),\n type: z.string({ description: \"Price type\" }),\n currency: z.string({ description: \"Price currency\" }),\n }),\n tier: baseTiersSchema.nullish(),\n offer: baseOffersSchema.nullish(),\n});\n","import { z } from \"zod\";\n\nexport const baseSiteSchema = z.object({\n title: z.string(),\n description: z.string(),\n logo: z.string().nullable(),\n version: z.string(),\n url: z.string(),\n});\n","import { z, ZodRawShape } from \"zod\";\n\nimport { BrowseParamsSchema } from \"../helpers/browse-params\";\nimport type { HTTPClient } from \"../helpers/http-client\";\nimport { ghostMetaSchema, type APIResource } from \"../schemas/shared\";\nimport type { Mask } from \"../utils\";\nimport { contentFormats, type ContentFormats } from \"./formats\";\n\nexport class BrowseFetcher<\n const Resource extends APIResource = any,\n Params extends BrowseParamsSchema = any,\n Fields extends Mask = any,\n BaseShape extends ZodRawShape = any,\n OutputShape extends ZodRawShape = any,\n IncludeShape extends ZodRawShape = any,\n> {\n protected _urlParams: Record = {};\n protected _urlSearchParams: URLSearchParams | undefined = undefined;\n protected _includeFields: (keyof IncludeShape)[] = [];\n\n constructor(\n protected resource: Resource,\n protected config: {\n schema: z.ZodObject;\n output: z.ZodObject;\n include: z.ZodObject;\n },\n private _params: {\n browseParams?: Params;\n include?: (keyof IncludeShape)[];\n fields?: Fields;\n formats?: string[];\n } = { browseParams: {} as Params, include: [], fields: {} as z.noUnrecognized },\n protected httpClient: HTTPClient,\n ) {\n this._buildUrlParams();\n }\n\n /**\n * Lets you choose output format for the content of Post and Pages resources\n * The choices are html, mobiledoc or plaintext. It will transform the output of the fetcher to a new shape\n * with the selected formats required.\n *\n * @param formats html, mobiledoc or plaintext\n * @returns A new Fetcher with the fixed output shape and the formats specified\n */\n public formats>>(\n formats: z.noUnrecognized,\n ) {\n const params = {\n ...this._params,\n formats: Object.keys(formats).filter((key) => contentFormats.includes(key)),\n };\n return new BrowseFetcher(\n this.resource,\n {\n schema: this.config.schema,\n output: this.config.output.required(formats as Formats),\n include: this.config.include,\n },\n params,\n this.httpClient,\n );\n }\n\n /**\n * Let's you include special keys into the Ghost API Query to retrieve complimentary info\n * The available keys are defined by the Resource include schema, will not care about unknown keys.\n * Returns a new Fetcher with an Output shape modified with the include keys required.\n *\n * @param include Include specific keys from the include shape\n * @returns A new Fetcher with the fixed output shape and the formats specified\n */\n public include>(include: z.noUnrecognized) {\n const params = {\n ...this._params,\n include: Object.keys(this.config.include.parse(include)),\n };\n return new BrowseFetcher(\n this.resource,\n {\n schema: this.config.schema,\n output: this.config.output.required(include as Includes),\n include: this.config.include,\n },\n params,\n this.httpClient,\n );\n }\n\n /**\n * Let's you strip the output to only the specified keys of your choice that are in the config Schema\n * Will not care about unknown keys and return a new Fetcher with an Output shape with only the selected keys.\n *\n * @param fields Any keys from the resource Schema\n * @returns A new Fetcher with the fixed output shape having only the selected Fields\n */\n public fields>(fields: z.noUnrecognized) {\n const newOutput = this.config.output.pick(fields);\n return new BrowseFetcher(\n this.resource,\n {\n schema: this.config.schema,\n output: newOutput,\n include: this.config.include,\n },\n this._params,\n this.httpClient,\n );\n }\n\n public getResource() {\n return this.resource;\n }\n\n public getParams() {\n return this._params;\n }\n\n public getOutputFields() {\n return this.config.output.keyof().options as string[];\n }\n\n public getURLSearchParams() {\n return this._urlSearchParams;\n }\n\n public getIncludes() {\n return this._params?.include || [];\n }\n\n public getFormats() {\n return this._params?.formats || [];\n }\n\n private _buildUrlParams() {\n const inputKeys = this.config.schema.keyof().options as string[];\n const outputKeys = this.config.output.keyof().options as string[];\n this._urlParams = {\n ...this._urlBrowseParams(),\n };\n\n if (inputKeys.length !== outputKeys.length && outputKeys.length > 0) {\n this._urlParams.fields = outputKeys.join(\",\");\n }\n if (this._params.include && this._params.include.length > 0) {\n this._urlParams.include = this._params.include.join(\",\");\n }\n if (this._params.formats && this._params.formats.length > 0) {\n this._urlParams.formats = this._params.formats.join(\",\");\n }\n this._urlSearchParams = new URLSearchParams();\n for (const [key, value] of Object.entries(this._urlParams)) {\n this._urlSearchParams.append(key, value);\n }\n }\n\n private _urlBrowseParams() {\n let urlBrowseParams: { filter?: string; page?: string; order?: string; limit?: string } = {};\n if (this._params.browseParams === undefined) return {};\n const { limit, page, ...params } = this._params.browseParams;\n urlBrowseParams = {\n ...params,\n };\n if (limit) {\n urlBrowseParams.limit = limit.toString();\n }\n if (page) {\n urlBrowseParams.page = page.toString();\n }\n return urlBrowseParams;\n }\n\n private _getResultSchema() {\n return z.discriminatedUnion(\"success\", [\n z.object({\n success: z.literal(true),\n meta: ghostMetaSchema,\n data: z.array(this.config.output),\n }),\n z.object({\n success: z.literal(false),\n errors: z.array(\n z.object({\n type: z.string(),\n message: z.string(),\n }),\n ),\n }),\n ]);\n }\n\n public async fetch(options?: RequestInit) {\n const resultSchema = this._getResultSchema();\n const result = await this.httpClient.fetch({\n resource: this.resource,\n searchParams: this._urlSearchParams,\n options,\n });\n let data: any = {};\n if (result.errors) {\n data.success = false;\n data.errors = result.errors;\n } else {\n data = {\n success: true,\n meta: result.meta || {\n pagination: {\n pages: 0,\n page: 0,\n limit: 15,\n total: 0,\n prev: null,\n next: null,\n },\n },\n data: result[this.resource],\n };\n }\n return resultSchema.parse(data);\n }\n\n public async paginate(options?: RequestInit) {\n if (!this._params.browseParams?.page) {\n this._params.browseParams = {\n ...this._params.browseParams,\n page: 1,\n } as Params;\n this._buildUrlParams();\n }\n\n const resultSchema = this._getResultSchema();\n const result = await this.httpClient.fetch({\n resource: this.resource,\n searchParams: this._urlSearchParams,\n options,\n });\n let data: any = {};\n if (result.errors) {\n data.success = false;\n data.errors = result.errors;\n } else {\n data = {\n success: true,\n meta: result.meta || {\n pagination: {\n pages: 0,\n page: 0,\n limit: 15,\n total: 0,\n prev: null,\n next: null,\n },\n },\n data: result[this.resource],\n };\n }\n const response: {\n current: z.infer;\n next: BrowseFetcher | undefined;\n } = {\n current: resultSchema.parse(data),\n next: undefined,\n };\n if (response.current.success === false) return response;\n const { meta } = response.current;\n if (meta.pagination.pages <= 1 || meta.pagination.page === meta.pagination.pages) return response;\n const params = {\n ...this._params,\n browseParams: {\n ...this._params.browseParams,\n page: meta.pagination.page + 1,\n },\n };\n const next = new BrowseFetcher(this.resource, this.config, params, this.httpClient);\n response.next = next;\n return response;\n }\n}\n","export type ContentFormats = \"html\" | \"mobiledoc\" | \"plaintext\" | \"lexical\";\nexport const contentFormats = [\"html\", \"mobiledoc\", \"plaintext\", \"lexical\"];\n","import { z, ZodRawShape } from \"zod\";\n\nimport type { HTTPClient } from \"../helpers/http-client\";\nimport { type APIResource, type GhostIdentityInput } from \"../schemas/shared\";\nimport type { Mask } from \"../utils\";\nimport { contentFormats, type ContentFormats } from \"./formats\";\n\nexport class ReadFetcher<\n const Resource extends APIResource = any,\n Fields extends Mask = any,\n BaseShape extends ZodRawShape = any,\n OutputShape extends ZodRawShape = any,\n IncludeShape extends ZodRawShape = any,\n> {\n protected _urlParams: Record = {};\n protected _urlSearchParams: URLSearchParams | undefined = undefined;\n protected _pathnameIdentity: string | undefined = undefined;\n protected _includeFields: (keyof IncludeShape)[] = [];\n\n constructor(\n protected resource: Resource,\n protected config: {\n schema: z.ZodObject;\n output: z.ZodObject;\n include: z.ZodObject;\n },\n private _params: {\n identity: GhostIdentityInput;\n include?: (keyof IncludeShape)[];\n fields?: Fields;\n formats?: string[];\n },\n protected httpClient: HTTPClient,\n ) {\n this._buildUrlParams();\n }\n\n /**\n * Lets you choose output format for the content of Post and Pages resources\n * The choices are html, mobiledoc or plaintext. It will transform the output of the fetcher to a new shape\n * with the selected formats required.\n *\n * @param formats html, mobiledoc or plaintext\n * @returns A new Fetcher with the fixed output shape and the formats specified\n */\n public formats>>(\n formats: z.noUnrecognized,\n ) {\n const params = {\n ...this._params,\n formats: Object.keys(formats).filter((key) => contentFormats.includes(key)),\n };\n return new ReadFetcher(\n this.resource,\n {\n schema: this.config.schema,\n output: this.config.output.required(formats as Formats),\n include: this.config.include,\n },\n params,\n this.httpClient,\n );\n }\n\n /**\n * Let's you include special keys into the Ghost API Query to retrieve complimentary info\n * The available keys are defined by the Resource include schema, will not care about unknown keys.\n * Returns a new Fetcher with an Output shape modified with the include keys required.\n *\n * @param include Include specific keys from the include shape\n * @returns A new Fetcher with the fixed output shape and the formats specified\n */\n public include>(include: z.noUnrecognized) {\n const params = {\n ...this._params,\n include: Object.keys(this.config.include.parse(include)),\n };\n return new ReadFetcher(\n this.resource,\n {\n schema: this.config.schema,\n output: this.config.output.required(include as Includes),\n include: this.config.include,\n },\n params,\n this.httpClient,\n );\n }\n\n /**\n * Let's you strip the output to only the specified keys of your choice that are in the config Schema\n * Will not care about unknown keys and return a new Fetcher with an Output shape with only the selected keys.\n *\n * @param fields Any keys from the resource Schema\n * @returns A new Fetcher with the fixed output shape having only the selected Fields\n */\n public fields>(fields: z.noUnrecognized) {\n const newOutput = this.config.output.pick(fields);\n return new ReadFetcher(\n this.resource,\n {\n schema: this.config.schema,\n output: newOutput,\n include: this.config.include,\n },\n this._params,\n this.httpClient,\n );\n }\n\n public getResource() {\n return this.resource;\n }\n\n public getParams() {\n return this._params;\n }\n\n public getOutputFields() {\n return this.config.output.keyof().options as string[];\n }\n\n public getIncludes() {\n return this._params?.include || [];\n }\n\n public getFormats() {\n return this._params?.formats || [];\n }\n\n private _buildUrlParams() {\n const inputKeys = this.config.schema.keyof().options as string[];\n const outputKeys = this.config.output.keyof().options as string[];\n\n if (inputKeys.length !== outputKeys.length && outputKeys.length > 0) {\n this._urlParams.fields = outputKeys.join(\",\");\n }\n if (this._params.include && this._params.include.length > 0) {\n this._urlParams.include = this._params.include.join(\",\");\n }\n if (this._params.formats && this._params.formats.length > 0) {\n this._urlParams.formats = this._params.formats.join(\",\");\n }\n\n if (this._params.identity.id) {\n this._pathnameIdentity = `${this._params.identity.id}`;\n } else if (this._params.identity.slug) {\n this._pathnameIdentity = `slug/${this._params.identity.slug}`;\n } else if (this._params.identity.email) {\n this._pathnameIdentity = `email/${this._params.identity.email}`;\n } else {\n throw new Error(\"Identity is not defined\");\n }\n this._urlSearchParams = new URLSearchParams();\n for (const [key, value] of Object.entries(this._urlParams)) {\n this._urlSearchParams.append(key, value);\n }\n }\n\n public async fetch(options?: RequestInit) {\n const res = z.discriminatedUnion(\"success\", [\n z.object({\n success: z.literal(true),\n data: this.config.output,\n }),\n z.object({\n success: z.literal(false),\n errors: z.array(\n z.object({\n type: z.string(),\n message: z.string(),\n }),\n ),\n }),\n ]);\n const result = await this.httpClient.fetch({\n resource: this.resource,\n pathnameIdentity: this._pathnameIdentity,\n searchParams: this._urlSearchParams,\n options,\n });\n let data: any = {};\n if (result.errors) {\n data.success = false;\n data.errors = result.errors;\n } else {\n data = {\n success: true,\n data: result[this.resource][0],\n };\n }\n return res.parse(data);\n }\n}\n","import { z, ZodTypeAny } from \"zod\";\n\nimport type { HTTPClient } from \"../helpers/http-client\";\nimport type { APIResource } from \"../schemas/shared\";\n\nexport class BasicFetcher {\n constructor(\n protected resource: Resource,\n protected config: {\n output: OutputShape;\n },\n protected httpClient: HTTPClient\n ) {}\n\n public getResource() {\n return this.resource;\n }\n\n public async fetch(options?: RequestInit) {\n const res = z.discriminatedUnion(\"success\", [\n z.object({\n success: z.literal(true),\n data: this.config.output,\n }),\n z.object({\n success: z.literal(false),\n errors: z.array(\n z.object({\n type: z.string(),\n message: z.string(),\n })\n ),\n }),\n ]);\n const result = await this.httpClient.fetch({ options, resource: this.resource });\n let data: any = {};\n if (result.errors) {\n data.success = false;\n data.errors = result.errors;\n } else {\n data = {\n success: true,\n data: result[this.resource],\n };\n }\n return res.parse(data);\n }\n}\n","import { z, ZodRawShape, ZodTypeAny } from \"zod\";\n\nimport { HTTPClient } from \"../helpers/http-client\";\nimport type { APIResource } from \"../schemas/shared\";\n\nexport class MutationFetcher<\n const Resource extends APIResource = any,\n OutputShape extends ZodRawShape = any,\n ParamsShape extends ZodTypeAny = any,\n const HTTPVerb extends \"POST\" | \"PUT\" = \"POST\"\n> {\n protected _urlParams: Record = {};\n protected _urlSearchParams: URLSearchParams | undefined = undefined;\n protected _pathnameIdentity: string | undefined = undefined;\n\n constructor(\n protected resource: Resource,\n protected config: {\n output: z.ZodObject;\n paramsShape?: ParamsShape;\n },\n private _params: ({ id?: string } & ParamsShape[\"_output\"]) | undefined,\n protected _options: {\n method: HTTPVerb;\n body: Record;\n },\n protected httpClient: HTTPClient\n ) {\n this._buildUrlParams();\n }\n\n public getResource() {\n return this.resource;\n }\n\n public getParams() {\n return this._params;\n }\n\n private _buildUrlParams() {\n if (this._params) {\n for (const [key, value] of Object.entries(this._params)) {\n if (key !== \"id\") {\n this._urlParams[key] = value;\n }\n }\n }\n\n this._urlSearchParams = new URLSearchParams();\n if (this._params?.id) {\n this._pathnameIdentity = `${this._params.id}`;\n }\n for (const [key, value] of Object.entries(this._urlParams)) {\n this._urlSearchParams.append(key, value);\n }\n }\n\n public async submit() {\n const schema = z.discriminatedUnion(\"success\", [\n z.object({\n success: z.literal(true),\n data: this.config.output,\n }),\n z.object({\n success: z.literal(false),\n errors: z.array(\n z.object({\n type: z.string(),\n message: z.string(),\n context: z.string().nullish(),\n })\n ),\n }),\n ]);\n // Ghost API is expecting a JSON object with a key that matches the resource name\n // e.g. { posts: [ { title: \"Hello World\" } ] }\n // https://ghost.org/docs/api/v3/content/#create-a-post\n // body is also an array of objects, so we need to wrap it in another array\n // but Ghost will throw an error if given more than 1 item in the array.\n const createData = {\n [this.resource]: [this._options.body],\n };\n const response = await this.httpClient.fetch({\n resource: this.resource,\n searchParams: this._urlSearchParams,\n pathnameIdentity: this._pathnameIdentity,\n options: {\n method: this._options.method,\n body: JSON.stringify(createData),\n },\n });\n let result: any = {};\n if (response.errors) {\n result.success = false;\n result.errors = response.errors;\n } else {\n result = {\n success: true,\n data: response[this.resource][0],\n };\n }\n return schema.parse(result);\n }\n}\n","import { z } from \"zod\";\n\nimport type { HTTPClient } from \"../helpers/http-client\";\nimport type { APIResource } from \"../schemas/shared\";\n\nexport class DeleteFetcher {\n protected _pathnameIdentity: string | undefined = undefined;\n\n constructor(\n protected resource: Resource,\n private _params: { id: string },\n protected httpClient: HTTPClient\n ) {\n this._buildPathnameIdentity();\n }\n\n public getResource() {\n return this.resource;\n }\n\n public getParams() {\n return this._params;\n }\n\n private _buildPathnameIdentity() {\n if (!this._params.id) {\n throw new Error(\"Missing id in params\");\n }\n this._pathnameIdentity = this._params.id;\n }\n\n public async submit() {\n const schema = z.discriminatedUnion(\"success\", [\n z.object({\n success: z.literal(true),\n }),\n z.object({\n success: z.literal(false),\n errors: z.array(\n z.object({\n type: z.string(),\n message: z.string(),\n context: z.string().nullish(),\n })\n ),\n }),\n ]);\n let result: any = {};\n try {\n const response = await this.httpClient.fetchRawResponse({\n resource: this.resource,\n pathnameIdentity: this._pathnameIdentity,\n options: {\n method: \"DELETE\",\n },\n });\n if (response.status === 204) {\n result = {\n success: true,\n };\n } else {\n const res = await response.json();\n if (res.errors) {\n result.success = false;\n result.errors = res.errors;\n }\n }\n } catch (e) {\n result = {\n success: false,\n errors: [\n {\n type: \"FetchError\",\n message: (e as Error).toString(),\n },\n ],\n };\n }\n return schema.parse(result);\n }\n}\n","import { z, ZodRawShape, ZodTypeAny } from \"zod\";\n\nimport { DeleteFetcher } from \"./fetchers\";\nimport { BrowseFetcher } from \"./fetchers/browse-fetcher\";\nimport { MutationFetcher } from \"./fetchers/mutation-fetcher\";\nimport { ReadFetcher } from \"./fetchers/read-fetcher\";\nimport { parseBrowseParams, type BrowseParams } from \"./helpers/browse-params\";\nimport type { HTTPClient } from \"./helpers/http-client\";\nimport type { APIResource } from \"./schemas\";\nimport type { IsAny } from \"./utils\";\n\nfunction isZodObject(schema: z.ZodObject | z.ZodTypeAny): schema is z.ZodObject {\n return (schema as z.ZodObject).partial !== undefined;\n}\n\n/**\n * API Composer contains all methods, pick and choose.\n */\nexport class APIComposer<\n const Resource extends APIResource = any,\n Shape extends ZodRawShape = any,\n IdentityShape extends z.ZodTypeAny = any,\n IncludeShape extends ZodRawShape = any,\n CreateShape extends ZodTypeAny = any,\n CreateOptions extends ZodTypeAny = any,\n UpdateShape extends ZodTypeAny = any,\n UpdateOptions extends ZodTypeAny = any,\n> {\n constructor(\n protected resource: Resource,\n protected config: {\n schema: z.ZodObject;\n identitySchema: IdentityShape;\n include: z.ZodObject;\n createSchema?: CreateShape;\n createOptionsSchema?: CreateOptions;\n updateSchema?: UpdateShape;\n updateOptionsSchema?: UpdateOptions;\n },\n protected httpClient: HTTPClient,\n ) {}\n\n /**\n * Browse function that accepts browse params order, filter, page and limit. Will return an instance\n * of BrowseFetcher class.\n */\n public browse<\n const OrderStr extends string,\n const FilterStr extends string,\n const P extends {\n order?: OrderStr;\n limit?: number | \"all\";\n page?: number | string;\n filter?: FilterStr;\n },\n >(options?: BrowseParams) {\n return new BrowseFetcher(\n this.resource,\n {\n schema: this.config.schema,\n output: this.config.schema,\n include: this.config.include,\n },\n {\n browseParams:\n (options && parseBrowseParams(options, this.config.schema, this.config.include)) || undefined,\n },\n this.httpClient,\n );\n }\n\n /**\n * Read function that accepts Identify fields like id, slug or email. Will return an instance\n * of ReadFetcher class.\n */\n public read(options: z.infer) {\n return new ReadFetcher(\n this.resource,\n {\n schema: this.config.schema,\n output: this.config.schema,\n include: this.config.include,\n },\n {\n identity: this.config.identitySchema.parse(options),\n },\n this.httpClient,\n );\n }\n\n public async add(data: z.input, options?: z.infer) {\n if (!this.config.createSchema) {\n throw new Error(\"No createSchema defined\");\n }\n const parsedData = this.config.createSchema.parse(data);\n const parsedOptions =\n this.config.createOptionsSchema && options\n ? this.config.createOptionsSchema.parse(options)\n : undefined;\n const fetcher = new MutationFetcher(\n this.resource,\n {\n output: this.config.schema,\n paramsShape: this.config.createOptionsSchema,\n },\n parsedOptions,\n { method: \"POST\", body: parsedData },\n this.httpClient,\n );\n return fetcher.submit();\n }\n\n public async edit(\n id: string,\n data: IsAny extends true ? Partial> : z.input,\n options?: z.infer,\n ) {\n let updateSchema: z.ZodTypeAny | z.ZodObject | undefined = this.config.updateSchema;\n if (!this.config.updateSchema && this.config.createSchema && isZodObject(this.config.createSchema)) {\n updateSchema = this.config.createSchema.partial();\n }\n if (!updateSchema) {\n throw new Error(\"No updateSchema defined\");\n }\n const cleanId = z.string().nonempty().parse(id);\n const parsedData = updateSchema.parse(data);\n const parsedOptions =\n this.config.updateOptionsSchema && options ? this.config.updateOptionsSchema.parse(options) : {};\n\n if (Object.keys(parsedData).length === 0) {\n throw new Error(\"No data to edit\");\n }\n const fetcher = new MutationFetcher(\n this.resource,\n {\n output: this.config.schema,\n paramsShape: this.config.updateOptionsSchema,\n },\n { id: cleanId, ...parsedOptions },\n { method: \"PUT\", body: parsedData },\n this.httpClient,\n );\n return fetcher.submit();\n }\n\n public async delete(id: string) {\n const cleanId = z.string().nonempty().parse(id);\n const fetcher = new DeleteFetcher(this.resource, { id: cleanId }, this.httpClient);\n return fetcher.submit();\n }\n\n public access(keys: Keys[]) {\n const d: {\n [Property in keyof this]?: this[Property];\n } = {};\n keys.forEach((key) => {\n d[key] = (this[key] as Function).bind(this);\n });\n return d as Pick;\n }\n}\n","import { z } from \"zod\";\n\ntype Split = Str extends `${infer Start}${Separator}${infer Rest}`\n ? [Start, ...Split]\n : [Str];\n\nexport type BrowseOrder = S extends [infer Head, ...infer Tail]\n ? Tail extends []\n ? OrderPredicate\n : `${OrderPredicate},${BrowseOrder}`\n : S extends string\n ? OrderPredicate\n : never;\n// This ASC DESC asc desc is probably NOT the best way to do this\n// as union is distributive and will create a lot of types\n// TODO: find a better way to do this\n\nexport type OrderPredicate = S extends string\n ? S extends `${infer Field} ${infer Direction}`\n ? Field extends keyof Shape\n ? Direction extends \"ASC\" | \"DESC\" | \"asc\" | \"desc\"\n ? `${Field} ${Direction}`\n : never\n : never\n : S extends keyof Shape\n ? `${S}`\n : never\n : never;\nexport type FilterQuerySeparator = \"+\" | \",\" | \"(\" | \")\";\nexport type FilterQueryOperators = `-` | `>` | `<` | `~`;\nexport type FilterQuerySetOperators = `-`;\nexport type FieldOrSubField = S extends `${infer Field}.${string}` ? Field : S;\n\nexport type BrowseFilter = S extends string\n ? S extends `${infer Field}:${infer Rest}`\n ? FieldOrSubField extends keyof Shape\n ? Rest extends `${FilterQuerySetOperators}[${infer Values}]`\n ? `${Field}:${FilterQuerySetOperators}[${Values}]`\n : Rest extends `[${infer Values}]`\n ? `${Field}:[${Values}]`\n : Rest extends `${FilterQuerySetOperators}[${infer Values}]${FilterQuerySeparator}${infer NextQuery}`\n ? `${Field}:${FilterQuerySetOperators}[${Values}]${FilterQuerySeparator}${BrowseFilter<\n NextQuery,\n Shape\n >}`\n : Rest extends `[${infer Values}]${FilterQuerySeparator}${infer NextQuery}`\n ? `${Field}:[${Values}]${FilterQuerySeparator}${BrowseFilter}`\n : Rest extends `${infer Value}${FilterQuerySeparator}${infer NextQuery}`\n ? `${Field}:${Value}${FilterQuerySeparator}${BrowseFilter}`\n : Rest extends `${infer Value}`\n ? Value extends string\n ? `${Field}:${Value}`\n : never\n : S\n : never\n : never\n : never;\n\nexport type BrowseParams = P extends { order: infer Order }\n ? P extends { filter: infer Filter }\n ? Omit & { order: BrowseOrder, Shape> } & {\n filter: BrowseFilter;\n }\n : Omit & { order: BrowseOrder, Shape> }\n : P extends { filter: infer Filter }\n ? Omit & { filter: BrowseFilter }\n : P;\n\nexport const browseParamsSchema = z.object({\n order: z.string().optional(),\n limit: z\n .union([\n z.literal(\"all\"),\n z.number().refine((n) => n && n > 0 && n <= 15, {\n message: \"Limit must be between 1 and 15\",\n }),\n ])\n .optional(),\n page: z\n .number()\n .refine((n) => n && n >= 1, {\n message: \"Page must be greater than 1\",\n })\n .optional(),\n filter: z.string().optional(),\n});\nexport type BrowseParamsSchema = z.infer;\n\nexport const parseBrowseParams = (\n args: P,\n schema: z.ZodObject,\n includeSchema?: z.ZodObject\n) => {\n const keys = [\n ...(schema.keyof().options as string[]),\n ...((includeSchema && (includeSchema.keyof().options as string[])) || []),\n ];\n const augmentedSchema = browseParamsSchema.merge(\n z.object({\n order: z\n .string()\n .superRefine((val, ctx) => {\n const orderPredicates = val.split(\",\");\n for (const orderPredicate of orderPredicates) {\n const [field, direction] = orderPredicate.split(\" \");\n if (!keys.includes(field)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Field \"${field}\" is not a valid field`,\n fatal: true,\n });\n }\n if (direction && !(direction.toUpperCase() === \"ASC\" || direction.toUpperCase() === \"DESC\")) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"Order direction must be ASC or DESC\",\n fatal: true,\n });\n }\n }\n })\n .optional(),\n filter: z\n .string()\n .superRefine((val, ctx) => {\n const filterPredicates = val.replace(/ *\\[[^)]*\\] */g, \"\").split(/[+(,]+/);\n for (const filterPredicate of filterPredicates) {\n const field = filterPredicate.split(\":\")[0].split(\".\")[0];\n if (!keys.includes(field)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Field \"${field}\" is not a valid field`,\n fatal: true,\n });\n }\n }\n })\n .optional(),\n })\n );\n return augmentedSchema.parse(args);\n};\n","import { z } from \"zod\";\n\nimport type { Mask } from \"../utils\";\n\n/**\n * Parse a Fields object and generate a new Output Schema\n *\n * @param schema Base Resource Schema\n * @param fields Object containing fields to be picked with true as value\n * @returns new schema with only the fields specified in the fields object\n */\nexport const schemaWithPickedFields = >(\n schema: z.ZodObject,\n fields?: Fields\n) => {\n return schema.pick(fields || ({} as z.noUnrecognized));\n};\n","import { SignJWT } from \"jose\";\n\nimport type { APICredentials, APIResource } from \"../schemas\";\n\nexport type HTTPClientOptions = {\n key: string;\n version: APICredentials[\"version\"];\n url: APICredentials[\"url\"];\n endpoint: \"content\" | \"admin\";\n};\n\nexport interface IHTTPClient {\n get baseURL(): URL | undefined;\n get jwt(): string | undefined;\n generateJWT(key: string): Promise;\n genHeaders(): Promise>;\n fetch({\n resource,\n searchParams,\n options,\n pathnameIdentity,\n }: {\n resource: APIResource;\n searchParams?: URLSearchParams;\n options?: RequestInit;\n pathnameIdentity?: string;\n }): Promise;\n fetchRawResponse({\n resource,\n searchParams,\n options,\n pathnameIdentity,\n }: {\n resource: APIResource;\n searchParams?: URLSearchParams;\n options?: RequestInit;\n pathnameIdentity?: string;\n }): Promise;\n}\n\nexport class HTTPClient implements IHTTPClient {\n private _jwt: string | undefined;\n private _jwtExpiresAt: number | undefined;\n protected _baseURL: URL | undefined = undefined;\n\n constructor(protected config: Options) {\n let prefixPath = new URL(config.url).pathname;\n if (prefixPath.slice(-1) === \"/\") {\n prefixPath = prefixPath.slice(0, -1);\n }\n\n this._baseURL = new URL(`${prefixPath}/ghost/api/${config.endpoint}/`, config.url);\n }\n\n get baseURL() {\n return this._baseURL;\n }\n\n get jwt() {\n return this._jwt;\n }\n\n public async generateJWT(key: string) {\n const [id, _secret] = key.split(\":\");\n this._jwtExpiresAt = Date.now() + 5 * 60 * 1000;\n return new SignJWT({})\n .setProtectedHeader({ kid: id, alg: \"HS256\" })\n .setExpirationTime(\"5m\")\n .setIssuedAt()\n .setAudience(\"/admin/\")\n .sign(\n Uint8Array.from((_secret.match(/.{1,2}/g) as RegExpMatchArray).map((byte) => parseInt(byte, 16)))\n );\n }\n\n public async genHeaders() {\n const headers: Record = {\n \"Content-Type\": \"application/json\",\n \"Accept-Version\": this.config.version,\n };\n if (this.config.endpoint === \"admin\") {\n if (this._jwt === undefined || this._jwtExpiresAt === undefined || this._jwtExpiresAt < Date.now()) {\n this._jwt = await this.generateJWT(this.config.key);\n }\n headers[\"Authorization\"] = `Ghost ${this.jwt}`;\n }\n return headers;\n }\n\n public async fetch({\n resource,\n searchParams,\n options,\n pathnameIdentity,\n }: {\n resource: APIResource;\n searchParams?: URLSearchParams;\n options?: RequestInit;\n pathnameIdentity?: string;\n }) {\n if (this._baseURL === undefined) throw new Error(\"URL is undefined\");\n let path = `${resource}/`;\n if (pathnameIdentity !== undefined) {\n path += `${pathnameIdentity}/`;\n }\n const url = new URL(path, this._baseURL);\n if (searchParams !== undefined) {\n for (const [key, value] of searchParams.entries()) {\n url.searchParams.append(key, value);\n }\n }\n if (this.config.endpoint === \"content\") {\n url.searchParams.append(\"key\", this.config.key);\n }\n let result = undefined;\n const headers = await this.genHeaders();\n try {\n result = await (\n await fetch(url.toString(), {\n ...options,\n headers,\n })\n ).json();\n } catch (e) {\n return {\n status: \"error\",\n errors: [\n {\n type: \"FetchError\",\n message: (e as Error).toString(),\n },\n ],\n };\n }\n return result;\n }\n\n public async fetchRawResponse({\n resource,\n searchParams,\n options,\n pathnameIdentity,\n }: {\n resource: APIResource;\n searchParams?: URLSearchParams;\n options?: RequestInit;\n pathnameIdentity?: string;\n }) {\n if (this._baseURL === undefined) throw new Error(\"URL is undefined\");\n this._baseURL.pathname += `${resource}/`;\n if (pathnameIdentity !== undefined) {\n this._baseURL.pathname += `${pathnameIdentity}/`;\n }\n if (searchParams !== undefined) {\n for (const [key, value] of searchParams.entries()) {\n this._baseURL.searchParams.append(key, value);\n }\n }\n if (this.config.endpoint === \"content\") {\n this._baseURL.searchParams.append(\"key\", this.config.key);\n }\n const headers = await this.genHeaders();\n return await fetch(this._baseURL.toString(), {\n ...options,\n headers,\n });\n }\n}\n"]}