@wix/auto_sdk_seo_seo-patterns 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/build/cjs/index.d.ts +18 -36
  2. package/build/cjs/index.js +3 -15
  3. package/build/cjs/index.js.map +1 -1
  4. package/build/cjs/index.typings.d.ts +98 -128
  5. package/build/cjs/index.typings.js +3 -15
  6. package/build/cjs/index.typings.js.map +1 -1
  7. package/build/cjs/meta.d.ts +76 -60
  8. package/build/cjs/meta.js.map +1 -1
  9. package/build/cjs/schemas.d.ts +0 -3
  10. package/build/cjs/schemas.js +54 -65
  11. package/build/cjs/schemas.js.map +1 -1
  12. package/build/es/index.d.mts +18 -36
  13. package/build/es/index.mjs +3 -15
  14. package/build/es/index.mjs.map +1 -1
  15. package/build/es/index.typings.d.mts +98 -128
  16. package/build/es/index.typings.mjs +3 -15
  17. package/build/es/index.typings.mjs.map +1 -1
  18. package/build/es/meta.d.mts +76 -60
  19. package/build/es/meta.mjs.map +1 -1
  20. package/build/es/schemas.d.mts +0 -3
  21. package/build/es/schemas.mjs +54 -65
  22. package/build/es/schemas.mjs.map +1 -1
  23. package/build/internal/cjs/index.d.ts +18 -36
  24. package/build/internal/cjs/index.js +3 -15
  25. package/build/internal/cjs/index.js.map +1 -1
  26. package/build/internal/cjs/index.typings.d.ts +107 -113
  27. package/build/internal/cjs/index.typings.js +3 -15
  28. package/build/internal/cjs/index.typings.js.map +1 -1
  29. package/build/internal/cjs/meta.d.ts +85 -45
  30. package/build/internal/cjs/meta.js.map +1 -1
  31. package/build/internal/cjs/schemas.d.ts +0 -3
  32. package/build/internal/cjs/schemas.js +54 -65
  33. package/build/internal/cjs/schemas.js.map +1 -1
  34. package/build/internal/es/index.d.mts +18 -36
  35. package/build/internal/es/index.mjs +3 -15
  36. package/build/internal/es/index.mjs.map +1 -1
  37. package/build/internal/es/index.typings.d.mts +107 -113
  38. package/build/internal/es/index.typings.mjs +3 -15
  39. package/build/internal/es/index.typings.mjs.map +1 -1
  40. package/build/internal/es/meta.d.mts +85 -45
  41. package/build/internal/es/meta.mjs.map +1 -1
  42. package/build/internal/es/schemas.d.mts +0 -3
  43. package/build/internal/es/schemas.mjs +54 -65
  44. package/build/internal/es/schemas.mjs.map +1 -1
  45. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/promote-seo-v1-seo-pattern-seo-patterns.universal.ts","../../src/promote-seo-v1-seo-pattern-seo-patterns.http.ts"],"sourcesContent":["import { transformError as sdkTransformError } from '@wix/sdk-runtime/transform-error';\nimport {\n renameKeysFromSDKRequestToRESTRequest,\n renameKeysFromRESTResponseToSDKResponse,\n} from '@wix/sdk-runtime/rename-all-nested-keys';\nimport { HttpClient, NonNullablePaths } from '@wix/sdk-types';\nimport * as ambassadorWixPromoteSeoV1SeoPattern from './promote-seo-v1-seo-pattern-seo-patterns.http.js';\n\n/**\n * An SEO pattern is a template of SEO tags defined for one page type, such as every blog\n * post or every store product. A pattern's tags may contain variables, written as\n * `{{variable}}`, that are filled in with each item's own values when its page renders,\n * so a site owner sets the tags for a whole page type once instead of item by item.\n *\n * Every page type always has a pattern in effect. When a site has no pattern of its own\n * for a page type, the built-in Wix default applies, and `source` reports which of the\n * two is in effect.\n *\n * A change to a pattern reaches the live site without a site publish, and applies to\n * every page of that type that has no SEO tags set for the item itself.\n */\nexport interface SeoPattern {\n /**\n * SEO pattern ID, in the format `{pageType}`.\n *\n * For a pattern that applies to a single page built from a Wix Data collection, the\n * format is `{pageType}:{pageId}`.\n * @readonly\n * @maxLength 400\n */\n _id?: string | null;\n /**\n * Page type the pattern applies to. For example, `STATIC_PAGE`, `BLOG_POST`, or\n * `STORES_PRODUCT`.\n *\n * Calling with a page type Wix doesn't recognize fails with `UNSUPPORTED_PAGE_TYPE`,\n * and the error lists the page types that are supported. For a page type provided by a\n * Wix app, such as `BLOG_POST`, the app must be installed on the site.\n *\n * Page types aren't the same set as the item types of the Item SEO Tags API: a page\n * type can support a pattern without supporting tags set per item, and the other way\n * round.\n * @maxLength 100\n * @readonly\n */\n pageType?: string;\n /**\n * ID of a single page built from a Wix Data collection, when the pattern applies to\n * that page alone rather than to the whole page type.\n *\n * Supported only for the `WIX_DATA_PAGE_ITEM` page type. Every other page type has one\n * pattern for the type, and passing a page ID for one of those fails with\n * `PAGE_ID_NOT_SUPPORTED`.\n * @maxLength 200\n */\n pageId?: string | null;\n /**\n * The site's own pattern for the page type, which takes precedence over the Wix\n * default.\n *\n * Empty when the site has no pattern of its own, in which case `defaultPattern`\n * applies. Setting this field replaces the pattern in full, so send the complete set of\n * tag templates you want the page type to have.\n */\n pattern?: SeoPatternBlob;\n /**\n * The pattern Wix provides for the page type, which applies whenever the site has no\n * pattern of its own.\n *\n * Always returned, so you can compare a customized pattern with the one it started\n * from, and see what a reset would restore.\n * @readonly\n */\n defaultPattern?: SeoPatternBlob;\n /**\n * Which pattern is in effect for the page type: the site's own, or the Wix default.\n * @readonly\n */\n source?: PatternSourceWithLiterals;\n /**\n * Language the pattern applies to, as an IETF BCP 47 language tag. For example,\n * `en-US` for U.S. English.\n *\n * A page type has a single pattern, so this reports the site's primary language.\n * @maxLength 100\n * @readonly\n */\n language?: string | null;\n /**\n * What made the most recent change to the pattern, for example a user or the site\n * migration flow. Derived from the caller, not from the request.\n *\n * `ORIGIN_UNSPECIFIED` when the caller isn't one Wix identifies as a specific origin.\n * Origin isn't stored with the pattern either, so Get SEO Pattern and List SEO Patterns\n * always return `ORIGIN_UNSPECIFIED`.\n * @readonly\n */\n origin?: OriginWithLiterals;\n}\n\n/**\n * A set of SEO tag templates.\n *\n * Each tag has the same structure as a rendered SEO tag, except that its values may\n * contain `{{variable}}` placeholders, which are replaced with an item's own values when\n * its page renders.\n */\nexport interface SeoPatternBlob {\n /**\n * The pattern's SEO tag templates.\n *\n * A tag may reference only the variables the page type offers. Call List SEO Pattern\n * Variables for the page type to retrieve them.\n *\n * Max: 100 tags\n * @maxSize 100\n */\n tags?: Tag[];\n}\n\nexport interface Tag {\n /**\n * SEO tag type.\n *\n *\n * Supported values: `title`, `meta`, `script`, `link`.\n */\n type?: string;\n /**\n * A `{\"key\": \"value\"}` pair object where each SEO tag property (`\"name\"`, `\"content\"`, `\"rel\"`, `\"href\"`) contains a value.\n * For example: `{\"name\": \"description\", \"content\": \"the description itself\"}`.\n */\n props?: Record<string, any> | null;\n /** SEO tag metadata. For example, `{\"height\": 300, \"width\": 240}`. */\n meta?: Record<string, any> | null;\n /** SEO tag inner content. For example, `<title> inner content </title>`. */\n children?: string;\n /** Whether the tag is a [custom tag](https://support.wix.com/en/article/adding-additional-meta-tags-to-your-sites-pages). */\n custom?: boolean;\n /** Whether the tag is disabled. If the tag is disabled, people can't find your page when searching for this phrase in search engines. */\n disabled?: boolean;\n}\n\n/** Which pattern is in effect for a page type. */\nexport enum PatternSource {\n /** Unknown source. */\n PATTERN_SOURCE_UNSPECIFIED = 'PATTERN_SOURCE_UNSPECIFIED',\n /** The site has a pattern of its own for the page type, returned in `pattern`. */\n PATTERN_SOURCE_USER = 'PATTERN_SOURCE_USER',\n /**\n * The site has no pattern of its own for the page type, so the Wix default in\n * `defaultPattern` applies.\n */\n PATTERN_SOURCE_DEFAULT = 'PATTERN_SOURCE_DEFAULT',\n}\n\n/** @enumType */\nexport type PatternSourceWithLiterals =\n | PatternSource\n | 'PATTERN_SOURCE_UNSPECIFIED'\n | 'PATTERN_SOURCE_USER'\n | 'PATTERN_SOURCE_DEFAULT';\n\n/**\n * What made a change to a site's SEO tags or patterns. Derived from the caller, not from\n * the request.\n */\nexport enum Origin {\n /**\n * Unknown origin. Returned by read methods, because origin isn't stored alongside the\n * data it describes.\n */\n ORIGIN_UNSPECIFIED = 'ORIGIN_UNSPECIFIED',\n /** A user, working in the dashboard or editor, or calling the API on their own behalf. */\n ORIGIN_USER = 'ORIGIN_USER',\n /** The flow that imports an existing site into Wix. */\n ORIGIN_MIGRATION = 'ORIGIN_MIGRATION',\n /** An AI agent or an automated suggestion flow. */\n ORIGIN_AI = 'ORIGIN_AI',\n}\n\n/** @enumType */\nexport type OriginWithLiterals =\n | Origin\n | 'ORIGIN_UNSPECIFIED'\n | 'ORIGIN_USER'\n | 'ORIGIN_MIGRATION'\n | 'ORIGIN_AI';\n\nexport interface GetSeoPatternRequest {\n /**\n * Page type whose pattern to retrieve. For example, `STATIC_PAGE`, `BLOG_POST`, or\n * `STORES_PRODUCT`.\n * @maxLength 100\n */\n pageType: string;\n /**\n * ID of a single page built from a Wix Data collection, to retrieve the pattern of that\n * page alone.\n *\n * Supported only for the `WIX_DATA_PAGE_ITEM` page type. Every other page type has one\n * pattern for the type, and passing a page ID for one of those fails with\n * `PAGE_ID_NOT_SUPPORTED`.\n * @maxLength 200\n */\n pageId?: string | null;\n /**\n * Not supported yet. Passing a value fails with `COLLECTION_NAME_NOT_SUPPORTED`.\n *\n * To address a single page built from a Wix Data collection, pass its `pageId`.\n * @maxLength 200\n */\n collectionName?: string | null;\n}\n\nexport interface GetSeoPatternResponse {\n /**\n * The page type's pattern: the site's own pattern, the Wix default, and which of the\n * two is in effect.\n */\n seoPattern?: SeoPattern;\n}\n\nexport interface ListSeoPatternsRequest {}\n\nexport interface ListSeoPatternsResponse {\n /**\n * The patterns stored for the site, one per page type.\n *\n * A page type that has never had a pattern stored isn't included. A page type that was\n * reset to its Wix default is included, with an empty `pattern`.\n * @maxSize 200\n */\n seoPatterns?: SeoPattern[];\n}\n\nexport interface ListSeoPatternVariablesRequest {\n /**\n * Page type whose variables to retrieve. For example, `STATIC_PAGE`, `BLOG_POST`, or\n * `STORES_PRODUCT`.\n * @maxLength 100\n */\n pageType: string;\n}\n\nexport interface ListSeoPatternVariablesResponse {\n /**\n * Variables a pattern for this page type may use in its tags. For example,\n * `{{product.name}}` in a title template.\n * @maxSize 500\n */\n variables?: SeoPatternVariable[];\n /**\n * Variables a pattern for this page type may use in its structured data tags.\n *\n * A pattern may use these as well as the variables in `variables`.\n * @maxSize 500\n */\n structuredDataVariables?: SeoPatternVariable[];\n}\n\n/**\n * A variable a pattern may reference, which is replaced with an item's own value when its\n * page renders.\n */\nexport interface SeoPatternVariable {\n /**\n * Name of the variable, without the surrounding braces. For example, `product.name`,\n * which a pattern references as `{{product.name}}`.\n * @maxLength 200\n */\n key?: string;\n /**\n * Whether Wix offers this variable to site owners editing the pattern in the dashboard.\n *\n * `false` doesn't prevent a pattern from using the variable. It marks a variable Wix\n * keeps out of the dashboard's list, typically because it's only meaningful in specific\n * cases.\n */\n userVisible?: boolean;\n}\n\nexport interface CreateSeoPatternRequest {\n /**\n * Page type whose pattern to create a pattern for. For example, `STATIC_PAGE`, `BLOG_POST`, or\n * `STORES_PRODUCT`.\n * @maxLength 100\n */\n pageType: string;\n /**\n * Pattern to create for the page type.\n *\n * `pattern` is the only field to send. The page type comes from the request path, and\n * every other field is read-only. To create a pattern for a single page built from a\n * Wix Data collection, set `pageId`.\n */\n seoPattern: SeoPattern;\n}\n\nexport interface CreateSeoPatternResponse {\n /**\n * The created pattern, with `source` reporting that the site's own pattern is now in\n * effect.\n */\n seoPattern?: SeoPattern;\n}\n\nexport interface SetSeoPatternRequest {\n /**\n * Page type whose pattern to change. For example, `STATIC_PAGE`, `BLOG_POST`, or\n * `STORES_PRODUCT`.\n * @maxLength 100\n */\n pageType: string;\n /**\n * Pattern to set for the page type.\n *\n * `pattern` is the only writable field, and setting it replaces the page type's tag\n * templates in full. Sending an empty pattern clears it, which returns the page type to\n * its Wix default.\n */\n seoPattern: SeoPattern;\n /**\n * Fields to update.\n *\n * Required, and must name only writable fields. An empty field mask, an unknown field,\n * or a read-only field fails with `INVALID_FIELD_MASK`.\n */\n fieldMask: string[];\n /**\n * Not supported yet. Passing a value fails with `COLLECTION_NAME_NOT_SUPPORTED`.\n *\n * To address a single page built from a Wix Data collection, pass its `pageId`.\n * @maxLength 200\n */\n collectionName?: string | null;\n /**\n * ID of a single page built from a Wix Data collection, to change the pattern of that\n * page alone.\n *\n * Supported only for the `WIX_DATA_PAGE_ITEM` page type. Every other page type has one\n * pattern for the type, and passing a page ID for one of those fails with\n * `PAGE_ID_NOT_SUPPORTED`.\n * @maxLength 200\n */\n pageId?: string | null;\n}\n\nexport interface SetSeoPatternResponse {\n /** The updated pattern. */\n seoPattern?: SeoPattern;\n}\n\nexport interface ResetSeoPatternToDefaultRequest {\n /**\n * Page type whose pattern to reset. For example, `STATIC_PAGE`, `BLOG_POST`, or\n * `STORES_PRODUCT`.\n * @maxLength 100\n */\n pageType: string;\n /**\n * Not supported yet. Passing a value fails with `COLLECTION_NAME_NOT_SUPPORTED`.\n *\n * To address a single page built from a Wix Data collection, pass its `pageId`.\n * @maxLength 200\n */\n collectionName?: string | null;\n /**\n * ID of a single page built from a Wix Data collection, to reset the pattern of that\n * page alone.\n *\n * Supported only for the `WIX_DATA_PAGE_ITEM` page type. Every other page type has one\n * pattern for the type, and passing a page ID for one of those fails with\n * `PAGE_ID_NOT_SUPPORTED`.\n * @maxLength 200\n */\n pageId?: string | null;\n}\n\nexport interface ResetSeoPatternToDefaultResponse {\n /**\n * The page type after the reset: an empty `pattern`, and `source` of\n * `PATTERN_SOURCE_DEFAULT`.\n */\n seoPattern?: SeoPattern;\n}\n\nexport interface DomainEvent extends DomainEventBodyOneOf {\n createdEvent?: EntityCreatedEvent;\n updatedEvent?: EntityUpdatedEvent;\n deletedEvent?: EntityDeletedEvent;\n actionEvent?: ActionEvent;\n /** Event ID. With this ID you can easily spot duplicated events and ignore them. */\n _id?: string;\n /**\n * Fully Qualified Domain Name of an entity. This is a unique identifier assigned to the API main business entities.\n * For example, `wix.stores.catalog.product`, `wix.bookings.session`, `wix.payments.transaction`.\n */\n entityFqdn?: string;\n /**\n * Event action name, placed at the top level to make it easier for users to dispatch messages.\n * For example: `created`/`updated`/`deleted`/`started`/`completed`/`email_opened`.\n */\n slug?: string;\n /** ID of the entity associated with the event. */\n entityId?: string;\n /** Event timestamp in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) format and UTC time. For example, `2020-04-26T13:57:50.699Z`. */\n eventTime?: Date | null;\n /**\n * Whether the event was triggered as a result of a privacy regulation application\n * (for example, GDPR).\n */\n triggeredByAnonymizeRequest?: boolean | null;\n /** If present, indicates the action that triggered the event. */\n originatedFrom?: string | null;\n /**\n * A sequence number that indicates the order of updates to an entity. For example, if an entity was updated at `16:00` and then again at `16:01`, the second update will always have a higher sequence number.\n * You can use this number to make sure you're handling updates in the right order. Just save the latest sequence number on your end and compare it to the one in each new message. If the new message has an older (lower) number, you can safely ignore it.\n */\n entityEventSequence?: string | null;\n}\n\n/** @oneof */\nexport interface DomainEventBodyOneOf {\n createdEvent?: EntityCreatedEvent;\n updatedEvent?: EntityUpdatedEvent;\n deletedEvent?: EntityDeletedEvent;\n actionEvent?: ActionEvent;\n}\n\nexport interface EntityCreatedEvent {\n entity?: string;\n}\n\nexport interface RestoreInfo {\n deletedDate?: Date | null;\n}\n\nexport interface EntityUpdatedEvent {\n /**\n * Since platformized APIs only expose PATCH and not PUT we can't assume that the fields sent from the client are the actual diff.\n * This means that to generate a list of changed fields (as opposed to sent fields) one needs to traverse both objects.\n * We don't want to impose this on all developers and so we leave this traversal to the notification recipients which need it.\n */\n currentEntity?: string;\n}\n\nexport interface EntityDeletedEvent {\n /** Entity that was deleted. */\n deletedEntity?: string | null;\n}\n\nexport interface ActionEvent {\n body?: string;\n}\n\nexport interface MessageEnvelope {\n /**\n * App instance ID.\n * @format GUID\n */\n instanceId?: string | null;\n /**\n * Event type.\n * @maxLength 150\n */\n eventType?: string;\n /** The identification type and identity data. */\n identity?: IdentificationData;\n /** Stringify payload. */\n data?: string;\n /** Details related to the account */\n accountInfo?: AccountInfo;\n}\n\nexport interface IdentificationData extends IdentificationDataIdOneOf {\n /**\n * ID of a site visitor that has not logged in to the site.\n * @format GUID\n */\n anonymousVisitorId?: string;\n /**\n * ID of a site visitor that has logged in to the site.\n * @format GUID\n */\n memberId?: string;\n /**\n * ID of a Wix user (site owner, contributor, etc.).\n * @format GUID\n */\n wixUserId?: string;\n /**\n * ID of an app.\n * @format GUID\n */\n appId?: string;\n /** @readonly */\n identityType?: WebhookIdentityTypeWithLiterals;\n}\n\n/** @oneof */\nexport interface IdentificationDataIdOneOf {\n /**\n * ID of a site visitor that has not logged in to the site.\n * @format GUID\n */\n anonymousVisitorId?: string;\n /**\n * ID of a site visitor that has logged in to the site.\n * @format GUID\n */\n memberId?: string;\n /**\n * ID of a Wix user (site owner, contributor, etc.).\n * @format GUID\n */\n wixUserId?: string;\n /**\n * ID of an app.\n * @format GUID\n */\n appId?: string;\n}\n\nexport enum WebhookIdentityType {\n UNKNOWN = 'UNKNOWN',\n ANONYMOUS_VISITOR = 'ANONYMOUS_VISITOR',\n MEMBER = 'MEMBER',\n WIX_USER = 'WIX_USER',\n APP = 'APP',\n}\n\n/** @enumType */\nexport type WebhookIdentityTypeWithLiterals =\n | WebhookIdentityType\n | 'UNKNOWN'\n | 'ANONYMOUS_VISITOR'\n | 'MEMBER'\n | 'WIX_USER'\n | 'APP';\n\nexport interface AccountInfo {\n /**\n * ID of the Wix account associated with the event.\n * @format GUID\n */\n accountId?: string | null;\n /**\n * ID of the parent Wix account. Only included when accountId belongs to a child account.\n * @format GUID\n */\n parentAccountId?: string | null;\n /**\n * ID of the Wix site associated with the event. Only included when the event is tied to a specific site.\n * @format GUID\n */\n siteId?: string | null;\n}\n\n/** @docsIgnore */\nexport type GetSeoPatternApplicationErrors = {\n code?: 'UNSUPPORTED_PAGE_TYPE';\n description?: string;\n data?: Record<string, any>;\n};\n/** @docsIgnore */\nexport type ListSeoPatternVariablesApplicationErrors = {\n code?: 'UNSUPPORTED_PAGE_TYPE';\n description?: string;\n data?: Record<string, any>;\n};\n/** @docsIgnore */\nexport type CreateSeoPatternApplicationErrors =\n | {\n code?: 'UNSUPPORTED_PAGE_TYPE';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'INVALID_PATTERN';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'PATTERN_ALREADY_EXISTS';\n description?: string;\n data?: Record<string, any>;\n };\n/** @docsIgnore */\nexport type SetSeoPatternApplicationErrors =\n | {\n code?: 'UNSUPPORTED_PAGE_TYPE';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'INVALID_PATTERN';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'INVALID_FIELD_MASK';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'PATTERN_NOT_FOUND';\n description?: string;\n data?: Record<string, any>;\n };\n/** @docsIgnore */\nexport type ResetSeoPatternToDefaultApplicationErrors =\n | {\n code?: 'UNSUPPORTED_PAGE_TYPE';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'PATTERN_NOT_FOUND';\n description?: string;\n data?: Record<string, any>;\n };\n\n/**\n * Retrieves the SEO pattern in effect for a page type.\n *\n * The response contains both the site's own pattern, which is empty when the site has\n * none, and the Wix default, with `source` reporting which of the two is in effect. A\n * page type with no pattern of its own isn't an error.\n *\n * Fails with `PAGE_TYPE_NOT_ON_SITE` if the page type comes from a Wix app that isn't\n * installed on the site.\n * @param pageType - Page type whose pattern to retrieve. For example, `STATIC_PAGE`, `BLOG_POST`, or\n * `STORES_PRODUCT`.\n * @public\n * @documentationMaturity preview\n * @requiredField pageType\n * @permissionId wix-seo.read\n * @applicableIdentity APP\n * @applicableIdentity MEMBER\n * @fqn wix.promote.seo.metatags.v1.PageTypeSeoPatternsService.GetSeoPattern\n */\nexport async function getSeoPattern(\n pageType: string,\n options?: GetSeoPatternOptions\n): Promise<\n NonNullablePaths<\n GetSeoPatternResponse,\n | `seoPattern.pageType`\n | `seoPattern.pattern.tags`\n | `seoPattern.pattern.tags.${number}.type`\n | `seoPattern.pattern.tags.${number}.children`\n | `seoPattern.pattern.tags.${number}.custom`\n | `seoPattern.pattern.tags.${number}.disabled`\n | `seoPattern.source`\n | `seoPattern.origin`,\n 6\n > & {\n __applicationErrorsType?: GetSeoPatternApplicationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n pageType: pageType,\n pageId: options?.pageId,\n collectionName: options?.collectionName,\n });\n\n const reqOpts = ambassadorWixPromoteSeoV1SeoPattern.getSeoPattern(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n pageType: '$[0]',\n pageId: '$[1].pageId',\n collectionName: '$[1].collectionName',\n },\n singleArgumentUnchanged: false,\n },\n ['pageType', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface GetSeoPatternOptions {\n /**\n * ID of a single page built from a Wix Data collection, to retrieve the pattern of that\n * page alone.\n *\n * Supported only for the `WIX_DATA_PAGE_ITEM` page type. Every other page type has one\n * pattern for the type, and passing a page ID for one of those fails with\n * `PAGE_ID_NOT_SUPPORTED`.\n * @maxLength 200\n */\n pageId?: string | null;\n /**\n * Not supported yet. Passing a value fails with `COLLECTION_NAME_NOT_SUPPORTED`.\n *\n * To address a single page built from a Wix Data collection, pass its `pageId`.\n * @maxLength 200\n */\n collectionName?: string | null;\n}\n\n/**\n * Retrieves the patterns stored for a site, one per page type.\n *\n * Only page types that have had a pattern stored are returned, so this isn't an\n * inventory of a site's page types: a page type still on its Wix default is absent.\n * A page type that was reset to its default remains in the list, with an empty\n * `pattern` and `source` of `PATTERN_SOURCE_DEFAULT`.\n *\n * The response isn't paged. A site has a bounded number of page types, and all of them\n * are returned in one call.\n * @public\n * @documentationMaturity preview\n * @permissionId wix-seo.read\n * @applicableIdentity APP\n * @applicableIdentity MEMBER\n * @fqn wix.promote.seo.metatags.v1.PageTypeSeoPatternsService.ListSeoPatterns\n */\nexport async function listSeoPatterns(): Promise<\n NonNullablePaths<\n ListSeoPatternsResponse,\n | `seoPatterns`\n | `seoPatterns.${number}.pageType`\n | `seoPatterns.${number}.source`\n | `seoPatterns.${number}.origin`,\n 4\n >\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[0] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({});\n\n const reqOpts = ambassadorWixPromoteSeoV1SeoPattern.listSeoPatterns(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {},\n singleArgumentUnchanged: false,\n },\n []\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\n/**\n * Retrieves the variables a pattern for a page type may reference.\n *\n * A pattern may reference only the variables its page type offers, so call this method\n * before writing a pattern. A pattern referencing any other variable is rejected with\n * `INVALID_PATTERN`.\n *\n * Variables for the page's own tags and variables for its structured data are returned\n * in separate fields, and a pattern may use either.\n *\n * Fails with `PAGE_TYPE_NOT_ON_SITE` if the page type comes from a Wix app that isn't\n * installed on the site.\n * @param pageType - Page type whose variables to retrieve. For example, `STATIC_PAGE`, `BLOG_POST`, or\n * `STORES_PRODUCT`.\n * @public\n * @documentationMaturity preview\n * @requiredField pageType\n * @permissionId wix-seo.read\n * @applicableIdentity APP\n * @applicableIdentity MEMBER\n * @fqn wix.promote.seo.metatags.v1.PageTypeSeoPatternsService.ListSeoPatternVariables\n */\nexport async function listSeoPatternVariables(pageType: string): Promise<\n NonNullablePaths<\n ListSeoPatternVariablesResponse,\n | `variables`\n | `variables.${number}.key`\n | `variables.${number}.userVisible`\n | `structuredDataVariables`\n | `structuredDataVariables.${number}.key`\n | `structuredDataVariables.${number}.userVisible`,\n 4\n > & {\n __applicationErrorsType?: ListSeoPatternVariablesApplicationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[1] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({ pageType: pageType });\n\n const reqOpts =\n ambassadorWixPromoteSeoV1SeoPattern.listSeoPatternVariables(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { pageType: '$[0]' },\n singleArgumentUnchanged: false,\n },\n ['pageType']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\n/**\n * Creates a pattern for a page type that's still on its Wix default.\n *\n * The pattern must contain at least one tag. An empty pattern is stored and read back\n * as no pattern at all, so it's rejected rather than saved as a pattern that does\n * nothing. To leave a page type on its Wix default, create nothing for it.\n *\n * To change a pattern that already exists, call Set SEO Pattern. Creating a second\n * pattern for the same page type fails with `PATTERN_ALREADY_EXISTS`.\n *\n * Fails with `PAGE_TYPE_NOT_ON_SITE` if the page type comes from a Wix app that isn't\n * installed on the site.\n * @param pageType - Page type whose pattern to create a pattern for. For example, `STATIC_PAGE`, `BLOG_POST`, or\n * `STORES_PRODUCT`.\n * @param seoPattern - Pattern to create for the page type.\n *\n * `pattern` is the only field to send. The page type comes from the request path, and\n * every other field is read-only. To create a pattern for a single page built from a\n * Wix Data collection, set `pageId`.\n * @public\n * @documentationMaturity preview\n * @requiredField pageType\n * @requiredField seoPattern\n * @permissionId wix-seo.edit\n * @applicableIdentity APP\n * @returns The created pattern, with `source` reporting that the site's own pattern is now in\n * effect.\n * @fqn wix.promote.seo.metatags.v1.PageTypeSeoPatternsService.CreateSeoPattern\n */\nexport async function createSeoPattern(\n pageType: string,\n seoPattern: SeoPattern\n): Promise<\n NonNullablePaths<\n SeoPattern,\n | `pageType`\n | `pattern.tags`\n | `pattern.tags.${number}.type`\n | `pattern.tags.${number}.children`\n | `pattern.tags.${number}.custom`\n | `pattern.tags.${number}.disabled`\n | `source`\n | `origin`,\n 5\n > & {\n __applicationErrorsType?: CreateSeoPatternApplicationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n pageType: pageType,\n seoPattern: seoPattern,\n });\n\n const reqOpts = ambassadorWixPromoteSeoV1SeoPattern.createSeoPattern(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)?.seoPattern!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { pageType: '$[0]', seoPattern: '$[1]' },\n singleArgumentUnchanged: false,\n },\n ['pageType', 'seoPattern']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\n/**\n * Changes the pattern a site has for a page type.\n *\n * Setting `pattern` replaces the page type's tag templates in full, so retrieve the\n * pattern first and send back the complete set you want it to have. Sending an empty\n * pattern clears it, which returns the page type to its Wix default.\n *\n * This method changes a pattern that already exists rather than creating one, so a page\n * type still on its Wix default fails with `PATTERN_NOT_FOUND`. Call Create SEO Pattern\n * for it instead.\n *\n * A pattern has no revision, and the site's SEO settings in the dashboard write to the\n * same pattern. The last write wins, so retrieve the pattern immediately before writing\n * it.\n * @param pageType - Page type whose pattern to change. For example, `STATIC_PAGE`, `BLOG_POST`, or\n * `STORES_PRODUCT`.\n * @param seoPattern - Pattern to set for the page type.\n *\n * `pattern` is the only writable field, and setting it replaces the page type's tag\n * templates in full. Sending an empty pattern clears it, which returns the page type to\n * its Wix default.\n * @public\n * @documentationMaturity preview\n * @requiredField options.fieldMask\n * @requiredField pageType\n * @requiredField seoPattern\n * @permissionId wix-seo.edit\n * @applicableIdentity APP\n * @fqn wix.promote.seo.metatags.v1.PageTypeSeoPatternsService.SetSeoPattern\n */\nexport async function setSeoPattern(\n pageType: string,\n seoPattern: SeoPattern,\n options?: NonNullablePaths<SetSeoPatternOptions, `fieldMask`, 2>\n): Promise<\n NonNullablePaths<\n SetSeoPatternResponse,\n | `seoPattern.pageType`\n | `seoPattern.pattern.tags`\n | `seoPattern.pattern.tags.${number}.type`\n | `seoPattern.pattern.tags.${number}.children`\n | `seoPattern.pattern.tags.${number}.custom`\n | `seoPattern.pattern.tags.${number}.disabled`\n | `seoPattern.source`\n | `seoPattern.origin`,\n 6\n > & {\n __applicationErrorsType?: SetSeoPatternApplicationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[3] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n pageType: pageType,\n seoPattern: seoPattern,\n fieldMask: options?.fieldMask,\n collectionName: options?.collectionName,\n pageId: options?.pageId,\n });\n\n const reqOpts = ambassadorWixPromoteSeoV1SeoPattern.setSeoPattern(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n pageType: '$[0]',\n seoPattern: '$[1]',\n fieldMask: '$[2].fieldMask',\n collectionName: '$[2].collectionName',\n pageId: '$[2].pageId',\n },\n singleArgumentUnchanged: false,\n },\n ['pageType', 'seoPattern', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface SetSeoPatternOptions {\n /**\n * Fields to update.\n *\n * Required, and must name only writable fields. An empty field mask, an unknown field,\n * or a read-only field fails with `INVALID_FIELD_MASK`.\n */\n fieldMask: string[];\n /**\n * Not supported yet. Passing a value fails with `COLLECTION_NAME_NOT_SUPPORTED`.\n *\n * To address a single page built from a Wix Data collection, pass its `pageId`.\n * @maxLength 200\n */\n collectionName?: string | null;\n /**\n * ID of a single page built from a Wix Data collection, to change the pattern of that\n * page alone.\n *\n * Supported only for the `WIX_DATA_PAGE_ITEM` page type. Every other page type has one\n * pattern for the type, and passing a page ID for one of those fails with\n * `PAGE_ID_NOT_SUPPORTED`.\n * @maxLength 200\n */\n pageId?: string | null;\n}\n\n/**\n * Removes the pattern a site has for a page type, so the Wix default applies again.\n *\n * The response reports the page type after the reset, with an empty `pattern` and\n * `source` of `PATTERN_SOURCE_DEFAULT`. The page type remains in the response of List\n * SEO Patterns, with the same empty pattern.\n *\n * Fails with `PATTERN_NOT_FOUND` if the page type is already on its Wix default, so\n * there's nothing to reset.\n * @param pageType - Page type whose pattern to reset. For example, `STATIC_PAGE`, `BLOG_POST`, or\n * `STORES_PRODUCT`.\n * @public\n * @documentationMaturity preview\n * @requiredField pageType\n * @permissionId wix-seo.edit\n * @applicableIdentity APP\n * @fqn wix.promote.seo.metatags.v1.PageTypeSeoPatternsService.ResetSeoPatternToDefault\n */\nexport async function resetSeoPatternToDefault(\n pageType: string,\n options?: ResetSeoPatternToDefaultOptions\n): Promise<\n NonNullablePaths<\n ResetSeoPatternToDefaultResponse,\n | `seoPattern.pageType`\n | `seoPattern.pattern.tags`\n | `seoPattern.pattern.tags.${number}.type`\n | `seoPattern.pattern.tags.${number}.children`\n | `seoPattern.pattern.tags.${number}.custom`\n | `seoPattern.pattern.tags.${number}.disabled`\n | `seoPattern.source`\n | `seoPattern.origin`,\n 6\n > & {\n __applicationErrorsType?: ResetSeoPatternToDefaultApplicationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n pageType: pageType,\n collectionName: options?.collectionName,\n pageId: options?.pageId,\n });\n\n const reqOpts =\n ambassadorWixPromoteSeoV1SeoPattern.resetSeoPatternToDefault(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n pageType: '$[0]',\n collectionName: '$[1].collectionName',\n pageId: '$[1].pageId',\n },\n singleArgumentUnchanged: false,\n },\n ['pageType', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface ResetSeoPatternToDefaultOptions {\n /**\n * Not supported yet. Passing a value fails with `COLLECTION_NAME_NOT_SUPPORTED`.\n *\n * To address a single page built from a Wix Data collection, pass its `pageId`.\n * @maxLength 200\n */\n collectionName?: string | null;\n /**\n * ID of a single page built from a Wix Data collection, to reset the pattern of that\n * page alone.\n *\n * Supported only for the `WIX_DATA_PAGE_ITEM` page type. Every other page type has one\n * pattern for the type, and passing a page ID for one of those fails with\n * `PAGE_ID_NOT_SUPPORTED`.\n * @maxLength 200\n */\n pageId?: string | null;\n}\n","import { toURLSearchParams } from '@wix/sdk-runtime/rest-modules';\nimport { transformSDKFieldMaskToRESTFieldMask } from '@wix/sdk-runtime/transformations/field-mask';\nimport { transformPaths } from '@wix/sdk-runtime/transformations/transform-paths';\nimport { resolveUrl } from '@wix/sdk-runtime/rest-modules';\nimport { ResolveUrlOpts } from '@wix/sdk-runtime/rest-modules';\nimport { RequestOptionsFactory } from '@wix/sdk-types';\n\nfunction resolveWixPromoteSeoMetatagsV1PageTypeSeoPatternsServiceUrl(\n opts: Omit<ResolveUrlOpts, 'domainToMappings'>\n) {\n const domainToMappings = {\n 'www.wixapis.com': [\n {\n srcPath: '/seo-metatags-server',\n destPath: '',\n },\n ],\n 'manage._base_domain_': [\n {\n srcPath: '/_api/seo-metatags-server',\n destPath: '',\n },\n ],\n };\n\n return resolveUrl(Object.assign(opts, { domainToMappings }));\n}\n\nconst PACKAGE_NAME = '@wix/auto_sdk_seo_seo-patterns';\n\n/**\n * Retrieves the SEO pattern in effect for a page type.\n *\n * The response contains both the site's own pattern, which is empty when the site has\n * none, and the Wix default, with `source` reporting which of the two is in effect. A\n * page type with no pattern of its own isn't an error.\n *\n * Fails with `PAGE_TYPE_NOT_ON_SITE` if the page type comes from a Wix app that isn't\n * installed on the site.\n */\nexport function getSeoPattern(payload: object): RequestOptionsFactory<any> {\n function __getSeoPattern({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.promote.seo.v1.seo_pattern',\n method: 'GET' as any,\n methodFqn:\n 'wix.promote.seo.metatags.v1.PageTypeSeoPatternsService.GetSeoPattern',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixPromoteSeoMetatagsV1PageTypeSeoPatternsServiceUrl({\n protoPath: '/v1/seo-patterns/{pageType}',\n data: payload,\n host,\n }),\n params: toURLSearchParams(payload),\n };\n\n return metadata;\n }\n\n return __getSeoPattern;\n}\n\n/**\n * Retrieves the patterns stored for a site, one per page type.\n *\n * Only page types that have had a pattern stored are returned, so this isn't an\n * inventory of a site's page types: a page type still on its Wix default is absent.\n * A page type that was reset to its default remains in the list, with an empty\n * `pattern` and `source` of `PATTERN_SOURCE_DEFAULT`.\n *\n * The response isn't paged. A site has a bounded number of page types, and all of them\n * are returned in one call.\n */\nexport function listSeoPatterns(payload: object): RequestOptionsFactory<any> {\n function __listSeoPatterns({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.promote.seo.v1.seo_pattern',\n method: 'GET' as any,\n methodFqn:\n 'wix.promote.seo.metatags.v1.PageTypeSeoPatternsService.ListSeoPatterns',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixPromoteSeoMetatagsV1PageTypeSeoPatternsServiceUrl({\n protoPath: '/v1/seo-patterns',\n data: payload,\n host,\n }),\n params: toURLSearchParams(payload),\n };\n\n return metadata;\n }\n\n return __listSeoPatterns;\n}\n\n/**\n * Retrieves the variables a pattern for a page type may reference.\n *\n * A pattern may reference only the variables its page type offers, so call this method\n * before writing a pattern. A pattern referencing any other variable is rejected with\n * `INVALID_PATTERN`.\n *\n * Variables for the page's own tags and variables for its structured data are returned\n * in separate fields, and a pattern may use either.\n *\n * Fails with `PAGE_TYPE_NOT_ON_SITE` if the page type comes from a Wix app that isn't\n * installed on the site.\n */\nexport function listSeoPatternVariables(\n payload: object\n): RequestOptionsFactory<any> {\n function __listSeoPatternVariables({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.promote.seo.v1.seo_pattern',\n method: 'GET' as any,\n methodFqn:\n 'wix.promote.seo.metatags.v1.PageTypeSeoPatternsService.ListSeoPatternVariables',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixPromoteSeoMetatagsV1PageTypeSeoPatternsServiceUrl({\n protoPath: '/v1/seo-patterns/{pageType}/variables',\n data: payload,\n host,\n }),\n params: toURLSearchParams(payload),\n };\n\n return metadata;\n }\n\n return __listSeoPatternVariables;\n}\n\n/**\n * Creates a pattern for a page type that's still on its Wix default.\n *\n * The pattern must contain at least one tag. An empty pattern is stored and read back\n * as no pattern at all, so it's rejected rather than saved as a pattern that does\n * nothing. To leave a page type on its Wix default, create nothing for it.\n *\n * To change a pattern that already exists, call Set SEO Pattern. Creating a second\n * pattern for the same page type fails with `PATTERN_ALREADY_EXISTS`.\n *\n * Fails with `PAGE_TYPE_NOT_ON_SITE` if the page type comes from a Wix app that isn't\n * installed on the site.\n */\nexport function createSeoPattern(payload: object): RequestOptionsFactory<any> {\n function __createSeoPattern({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.promote.seo.v1.seo_pattern',\n method: 'POST' as any,\n methodFqn:\n 'wix.promote.seo.metatags.v1.PageTypeSeoPatternsService.CreateSeoPattern',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixPromoteSeoMetatagsV1PageTypeSeoPatternsServiceUrl({\n protoPath: '/v1/seo-patterns/{pageType}',\n data: payload,\n host,\n }),\n data: payload,\n };\n\n return metadata;\n }\n\n return __createSeoPattern;\n}\n\n/**\n * Changes the pattern a site has for a page type.\n *\n * Setting `pattern` replaces the page type's tag templates in full, so retrieve the\n * pattern first and send back the complete set you want it to have. Sending an empty\n * pattern clears it, which returns the page type to its Wix default.\n *\n * This method changes a pattern that already exists rather than creating one, so a page\n * type still on its Wix default fails with `PATTERN_NOT_FOUND`. Call Create SEO Pattern\n * for it instead.\n *\n * A pattern has no revision, and the site's SEO settings in the dashboard write to the\n * same pattern. The last write wins, so retrieve the pattern immediately before writing\n * it.\n */\nexport function setSeoPattern(payload: object): RequestOptionsFactory<any> {\n function __setSeoPattern({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKFieldMaskToRESTFieldMask,\n paths: [{ path: 'fieldMask' }],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.promote.seo.v1.seo_pattern',\n method: 'PATCH' as any,\n methodFqn:\n 'wix.promote.seo.metatags.v1.PageTypeSeoPatternsService.SetSeoPattern',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixPromoteSeoMetatagsV1PageTypeSeoPatternsServiceUrl({\n protoPath: '/v1/seo-patterns/{pageType}',\n data: serializedData,\n host,\n }),\n data: serializedData,\n };\n\n return metadata;\n }\n\n return __setSeoPattern;\n}\n\n/**\n * Removes the pattern a site has for a page type, so the Wix default applies again.\n *\n * The response reports the page type after the reset, with an empty `pattern` and\n * `source` of `PATTERN_SOURCE_DEFAULT`. The page type remains in the response of List\n * SEO Patterns, with the same empty pattern.\n *\n * Fails with `PATTERN_NOT_FOUND` if the page type is already on its Wix default, so\n * there's nothing to reset.\n */\nexport function resetSeoPatternToDefault(\n payload: object\n): RequestOptionsFactory<any> {\n function __resetSeoPatternToDefault({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.promote.seo.v1.seo_pattern',\n method: 'POST' as any,\n methodFqn:\n 'wix.promote.seo.metatags.v1.PageTypeSeoPatternsService.ResetSeoPatternToDefault',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixPromoteSeoMetatagsV1PageTypeSeoPatternsServiceUrl({\n protoPath: '/v1/seo-patterns/{pageType}/reset-to-default',\n data: payload,\n host,\n }),\n data: payload,\n };\n\n return metadata;\n }\n\n return __resetSeoPatternToDefault;\n}\n"],"mappings":"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","names":["PatternSource","Origin","WebhookIdentityType","getSeoPattern","listSeoPatterns","listSeoPatternVariables","createSeoPattern","setSeoPattern","resetSeoPatternToDefault"]}
1
+ {"version":3,"sources":["../../src/promote-seo-v1-seo-pattern-seo-patterns.universal.ts","../../src/promote-seo-v1-seo-pattern-seo-patterns.http.ts"],"sourcesContent":["import { transformError as sdkTransformError } from '@wix/sdk-runtime/transform-error';\nimport {\n renameKeysFromSDKRequestToRESTRequest,\n renameKeysFromRESTResponseToSDKResponse,\n} from '@wix/sdk-runtime/rename-all-nested-keys';\nimport { HttpClient, NonNullablePaths } from '@wix/sdk-types';\nimport * as ambassadorWixPromoteSeoV1SeoPattern from './promote-seo-v1-seo-pattern-seo-patterns.http.js';\n\n/**\n * An SEO pattern is a template of SEO tags defined for one page type, such as every blog\n * post or every store product. A pattern's tags may contain variables, written as\n * `{{variable}}`, that are filled in with each item's own values when its page renders,\n * so a Wix user sets the tags for a whole page type once instead of item by item.\n *\n * Every page type always has a pattern in effect. When a site has no pattern of its own\n * for a page type, the built-in Wix default applies, and `source` reports which of the\n * two is in effect.\n *\n * A change to a pattern reaches the live site without a site publish, and applies to\n * every page of that type that has no SEO tags set for the item itself.\n */\nexport interface SeoPattern {\n /**\n * SEO pattern ID, in the format `{pageType}`.\n *\n * For a pattern that applies to a single page built from a Wix Data collection, the\n * format is `{pageType}:{pageId}`.\n * @readonly\n * @maxLength 400\n */\n _id?: string | null;\n /**\n * Page type the pattern applies to. For example, `STATIC_PAGE`, `BLOG_POST`, or\n * `STORES_PRODUCT`.\n * @maxLength 100\n * @readonly\n */\n pageType?: string;\n /**\n * ID of a single page built from a Wix Data collection, when the pattern applies to\n * that page alone rather than to the whole page type.\n *\n * Supported only for the `WIX_DATA_PAGE_ITEM` page type.\n * @maxLength 200\n */\n pageId?: string | null;\n /**\n * The site's own pattern for the page type, which takes precedence over the Wix\n * default.\n *\n * Empty when the site has no pattern of its own, in which case `defaultPattern`\n * applies.\n */\n pattern?: SeoPatternBlob;\n /**\n * The pattern Wix provides for the page type, which applies whenever the site has no\n * pattern of its own.\n *\n * Always returned, so you can see what a reset would restore.\n * @readonly\n */\n defaultPattern?: SeoPatternBlob;\n /**\n * Which pattern is in effect for the page type: the site's own, or the Wix default.\n * @readonly\n */\n source?: PatternSourceWithLiterals;\n /**\n * Language the pattern applies to, as an IETF BCP 47 language tag. For example,\n * `en-US` for U.S. English.\n *\n * A page type has a single pattern, so this reports the site's primary language.\n * @maxLength 100\n * @readonly\n */\n language?: string | null;\n /**\n * What made the most recent change to the pattern, for example a Wix user or the site\n * migration flow. Derived from the caller, not from the request.\n *\n * Reported only on the response to a write, and on the event the write emits. It isn't\n * stored with the pattern, so Get SEO Pattern and List SEO Patterns always report\n * `ORIGIN_UNSPECIFIED`, as does a write by a caller Wix doesn't identify as a specific\n * origin.\n * @readonly\n */\n origin?: OriginWithLiterals;\n}\n\n/**\n * A set of SEO tag templates.\n *\n * Each tag has the same structure as a rendered SEO tag, except that its values may\n * contain `{{variable}}` placeholders, which are replaced with an item's own values when\n * its page renders.\n */\nexport interface SeoPatternBlob {\n /**\n * The pattern's SEO tag templates.\n *\n * A tag may reference only the variables the page type offers. Call [List SEO Pattern\n * Variables](https://dev.wix.com/docs/api-reference/business-management/seo/seo-pattern-v1/list-seo-pattern-variables)\n * for the page type to retrieve them.\n *\n * A tag whose `disabled` or `custom` value is itself a variable is returned with that\n * value unset, because those fields are booleans. The behavior still applies when the\n * page renders.\n * @maxSize 100\n */\n tags?: Tag[];\n}\n\nexport interface Tag {\n /**\n * SEO tag type.\n *\n *\n * Supported values: `title`, `meta`, `script`, `link`.\n */\n type?: string;\n /**\n * A `{\"key\": \"value\"}` pair object where each SEO tag property (`\"name\"`, `\"content\"`, `\"rel\"`, `\"href\"`) contains a value.\n * For example: `{\"name\": \"description\", \"content\": \"the description itself\"}`.\n */\n props?: Record<string, any> | null;\n /** SEO tag metadata. For example, `{\"height\": 300, \"width\": 240}`. */\n meta?: Record<string, any> | null;\n /** SEO tag inner content. For example, `<title> inner content </title>`. */\n children?: string;\n /**\n * Whether the tag is a [custom tag](https://support.wix.com/en/article/adding-additional-meta-tags-to-your-sites-pages).\n *\n * Limitation: when `ResolveStaticPageSeoTags` is called without `seoData`, the per-page SEO data is read\n * only from the Vibe/Wix-managed-headless override store. That store holds nothing for classic Wix Editor\n * or Wix Studio pages, so custom tags saved on those pages are missing from the response entirely. For\n * those pages `false` therefore does not mean \"not a custom tag\" — it means this API could not tell.\n * Pass `seoData` explicitly to resolve against a known set of tags.\n */\n custom?: boolean;\n /** Whether the tag is disabled. If the tag is disabled, people can't find your page when searching for this phrase in search engines. */\n disabled?: boolean;\n}\n\n/** Which pattern is in effect for a page type. */\nexport enum PatternSource {\n /** Unknown source. */\n PATTERN_SOURCE_UNSPECIFIED = 'PATTERN_SOURCE_UNSPECIFIED',\n /** The site has a pattern of its own for the page type, returned in `pattern`. */\n PATTERN_SOURCE_USER = 'PATTERN_SOURCE_USER',\n /**\n * The site has no pattern of its own for the page type, so the Wix default in\n * `defaultPattern` applies.\n */\n PATTERN_SOURCE_DEFAULT = 'PATTERN_SOURCE_DEFAULT',\n}\n\n/** @enumType */\nexport type PatternSourceWithLiterals =\n | PatternSource\n | 'PATTERN_SOURCE_UNSPECIFIED'\n | 'PATTERN_SOURCE_USER'\n | 'PATTERN_SOURCE_DEFAULT';\n\n/**\n * What made a change to a site's SEO tags or patterns. Derived from the caller, not from\n * the request.\n */\nexport enum Origin {\n /**\n * Unknown origin. Returned by read methods, because origin isn't stored alongside the\n * data it describes.\n */\n ORIGIN_UNSPECIFIED = 'ORIGIN_UNSPECIFIED',\n /** A user, working in the dashboard or editor, or calling the API on their own behalf. */\n ORIGIN_USER = 'ORIGIN_USER',\n /** The flow that imports an existing site into Wix. */\n ORIGIN_MIGRATION = 'ORIGIN_MIGRATION',\n /** An AI agent or an automated suggestion flow. */\n ORIGIN_AI = 'ORIGIN_AI',\n}\n\n/** @enumType */\nexport type OriginWithLiterals =\n | Origin\n | 'ORIGIN_UNSPECIFIED'\n | 'ORIGIN_USER'\n | 'ORIGIN_MIGRATION'\n | 'ORIGIN_AI';\n\nexport interface GetSeoPatternRequest {\n /**\n * Page type whose pattern to retrieve. For example, `STATIC_PAGE`, `BLOG_POST`, or\n * `STORES_PRODUCT`.\n * @maxLength 100\n */\n pageType: string;\n /**\n * ID of a single page built from a Wix Data collection, to retrieve the pattern of that\n * page alone.\n *\n * Supported only for the `WIX_DATA_PAGE_ITEM` page type.\n * @maxLength 200\n */\n pageId?: string | null;\n /**\n * Not supported yet.\n *\n * To address a single page built from a Wix Data collection, specify its `pageId`.\n * @internal\n * @maxLength 200\n */\n collectionName?: string | null;\n}\n\nexport interface GetSeoPatternResponse {\n /**\n * The page type's pattern: the site's own pattern, the Wix default, and which of the\n * two is in effect.\n */\n seoPattern?: SeoPattern;\n}\n\nexport interface ListSeoPatternsRequest {}\n\nexport interface ListSeoPatternsResponse {\n /**\n * The patterns stored for the site, one per page type.\n *\n * A page type that has never had a pattern stored isn't included. A page type that was\n * reset to its Wix default is included, with an empty `pattern`.\n * @maxSize 200\n */\n seoPatterns?: SeoPattern[];\n}\n\nexport interface ListSeoPatternVariablesRequest {\n /**\n * Page type whose variables to retrieve. For example, `STATIC_PAGE`, `BLOG_POST`, or\n * `STORES_PRODUCT`.\n * @maxLength 100\n */\n pageType: string;\n}\n\nexport interface ListSeoPatternVariablesResponse {\n /**\n * Variables a pattern for this page type may use in its tags. For example,\n * `{{product.name}}` in a title template.\n *\n * A variable can appear more than once, with different `userVisible` values, when both\n * the site and the page type offer it. Either entry can be used in a pattern.\n * @maxSize 500\n */\n variables?: SeoPatternVariable[];\n /**\n * Variables a pattern for this page type may use in its structured data tags.\n *\n * A pattern may use these as well as the variables in `variables`.\n * @maxSize 500\n */\n structuredDataVariables?: SeoPatternVariable[];\n}\n\n/**\n * A variable a pattern may reference, which is replaced with an item's own value when its\n * page renders.\n */\nexport interface SeoPatternVariable {\n /**\n * Name of the variable, without the surrounding braces. For example, `product.name`,\n * which a pattern references as `{{product.name}}`.\n * @maxLength 200\n */\n key?: string;\n /**\n * Whether the variable appears in the list shown to Wix users editing the pattern in the\n * dashboard.\n *\n * `false` doesn't prevent a pattern from using the variable. It marks a variable that's\n * kept out of the dashboard's list, typically because it's only meaningful in certain\n * cases.\n */\n userVisible?: boolean;\n}\n\nexport interface CreateSeoPatternRequest {\n /**\n * Page type to create a pattern for. For example, `STATIC_PAGE`, `BLOG_POST`, or\n * `STORES_PRODUCT`.\n * @maxLength 100\n */\n pageType: string;\n /**\n * Pattern to create for the page type.\n *\n * `pattern` is the only field to send. The page type comes from the request path, and\n * every other field is read-only. To create a pattern for a single page built from a\n * Wix Data collection, set `pageId`.\n */\n seoPattern: SeoPattern;\n}\n\nexport interface CreateSeoPatternResponse {\n /**\n * The created pattern, with `source` reporting that the site's own pattern is now in\n * effect.\n */\n seoPattern?: SeoPattern;\n}\n\nexport interface SetSeoPatternRequest {\n /**\n * Page type whose pattern to change. For example, `STATIC_PAGE`, `BLOG_POST`, or\n * `STORES_PRODUCT`.\n * @maxLength 100\n */\n pageType: string;\n /**\n * Pattern to set for the page type.\n *\n * `pattern` is the only writable field, and setting it replaces the page type's tag\n * templates in full. Sending an empty pattern clears it, which returns the page type to\n * its Wix default.\n */\n seoPattern: SeoPattern;\n /**\n * Fields to update.\n *\n * Supported properties: `pattern`\n */\n fieldMask: string[];\n /**\n * Not supported yet.\n *\n * To address a single page built from a Wix Data collection, specify its `pageId`.\n * @internal\n * @maxLength 200\n */\n collectionName?: string | null;\n /**\n * ID of a single page built from a Wix Data collection, to change the pattern of that\n * page alone.\n *\n * Supported only for the `WIX_DATA_PAGE_ITEM` page type.\n * @maxLength 200\n */\n pageId?: string | null;\n}\n\nexport interface SetSeoPatternResponse {\n /** The updated pattern. */\n seoPattern?: SeoPattern;\n}\n\nexport interface ResetSeoPatternToDefaultRequest {\n /**\n * Page type whose pattern to reset. For example, `STATIC_PAGE`, `BLOG_POST`, or\n * `STORES_PRODUCT`.\n * @maxLength 100\n */\n pageType: string;\n /**\n * Not supported yet.\n *\n * To address a single page built from a Wix Data collection, specify its `pageId`.\n * @internal\n * @maxLength 200\n */\n collectionName?: string | null;\n /**\n * ID of a single page built from a Wix Data collection, to reset the pattern of that\n * page alone.\n *\n * Supported only for the `WIX_DATA_PAGE_ITEM` page type.\n * @maxLength 200\n */\n pageId?: string | null;\n}\n\nexport interface ResetSeoPatternToDefaultResponse {\n /**\n * The page type after the reset: an empty `pattern`, and `source` of\n * `PATTERN_SOURCE_DEFAULT`.\n */\n seoPattern?: SeoPattern;\n}\n\nexport interface DomainEvent extends DomainEventBodyOneOf {\n createdEvent?: EntityCreatedEvent;\n updatedEvent?: EntityUpdatedEvent;\n deletedEvent?: EntityDeletedEvent;\n actionEvent?: ActionEvent;\n /** Event ID. With this ID you can easily spot duplicated events and ignore them. */\n _id?: string;\n /**\n * Fully Qualified Domain Name of an entity. This is a unique identifier assigned to the API main business entities.\n * For example, `wix.stores.catalog.product`, `wix.bookings.session`, `wix.payments.transaction`.\n */\n entityFqdn?: string;\n /**\n * Event action name, placed at the top level to make it easier for users to dispatch messages.\n * For example: `created`/`updated`/`deleted`/`started`/`completed`/`email_opened`.\n */\n slug?: string;\n /** ID of the entity associated with the event. */\n entityId?: string;\n /** Event timestamp in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) format and UTC time. For example, `2020-04-26T13:57:50.699Z`. */\n eventTime?: Date | null;\n /**\n * Whether the event was triggered as a result of a privacy regulation application\n * (for example, GDPR).\n */\n triggeredByAnonymizeRequest?: boolean | null;\n /** If present, indicates the action that triggered the event. */\n originatedFrom?: string | null;\n /**\n * A sequence number that indicates the order of updates to an entity. For example, if an entity was updated at `16:00` and then again at `16:01`, the second update will always have a higher sequence number.\n * You can use this number to make sure you're handling updates in the right order. Just save the latest sequence number on your end and compare it to the one in each new message. If the new message has an older (lower) number, you can safely ignore it.\n */\n entityEventSequence?: string | null;\n}\n\n/** @oneof */\nexport interface DomainEventBodyOneOf {\n createdEvent?: EntityCreatedEvent;\n updatedEvent?: EntityUpdatedEvent;\n deletedEvent?: EntityDeletedEvent;\n actionEvent?: ActionEvent;\n}\n\nexport interface EntityCreatedEvent {\n entity?: string;\n}\n\nexport interface RestoreInfo {\n deletedDate?: Date | null;\n}\n\nexport interface EntityUpdatedEvent {\n /**\n * Since platformized APIs only expose PATCH and not PUT we can't assume that the fields sent from the client are the actual diff.\n * This means that to generate a list of changed fields (as opposed to sent fields) one needs to traverse both objects.\n * We don't want to impose this on all developers and so we leave this traversal to the notification recipients which need it.\n */\n currentEntity?: string;\n}\n\nexport interface EntityDeletedEvent {\n /** Entity that was deleted. */\n deletedEntity?: string | null;\n}\n\nexport interface ActionEvent {\n body?: string;\n}\n\nexport interface MessageEnvelope {\n /**\n * App instance ID.\n * @format GUID\n */\n instanceId?: string | null;\n /**\n * Event type.\n * @maxLength 150\n */\n eventType?: string;\n /** The identification type and identity data. */\n identity?: IdentificationData;\n /** Stringify payload. */\n data?: string;\n /** Details related to the account */\n accountInfo?: AccountInfo;\n}\n\nexport interface IdentificationData extends IdentificationDataIdOneOf {\n /**\n * ID of a site visitor that has not logged in to the site.\n * @format GUID\n */\n anonymousVisitorId?: string;\n /**\n * ID of a site visitor that has logged in to the site.\n * @format GUID\n */\n memberId?: string;\n /**\n * ID of a Wix user (site owner, contributor, etc.).\n * @format GUID\n */\n wixUserId?: string;\n /**\n * ID of an app.\n * @format GUID\n */\n appId?: string;\n /** @readonly */\n identityType?: WebhookIdentityTypeWithLiterals;\n}\n\n/** @oneof */\nexport interface IdentificationDataIdOneOf {\n /**\n * ID of a site visitor that has not logged in to the site.\n * @format GUID\n */\n anonymousVisitorId?: string;\n /**\n * ID of a site visitor that has logged in to the site.\n * @format GUID\n */\n memberId?: string;\n /**\n * ID of a Wix user (site owner, contributor, etc.).\n * @format GUID\n */\n wixUserId?: string;\n /**\n * ID of an app.\n * @format GUID\n */\n appId?: string;\n}\n\nexport enum WebhookIdentityType {\n UNKNOWN = 'UNKNOWN',\n ANONYMOUS_VISITOR = 'ANONYMOUS_VISITOR',\n MEMBER = 'MEMBER',\n WIX_USER = 'WIX_USER',\n APP = 'APP',\n}\n\n/** @enumType */\nexport type WebhookIdentityTypeWithLiterals =\n | WebhookIdentityType\n | 'UNKNOWN'\n | 'ANONYMOUS_VISITOR'\n | 'MEMBER'\n | 'WIX_USER'\n | 'APP';\n\nexport interface AccountInfo {\n /**\n * ID of the Wix account associated with the event.\n * @format GUID\n */\n accountId?: string | null;\n /**\n * ID of the parent Wix account. Only included when accountId belongs to a child account.\n * @format GUID\n */\n parentAccountId?: string | null;\n /**\n * ID of the Wix site associated with the event. Only included when the event is tied to a specific site.\n * @format GUID\n */\n siteId?: string | null;\n}\n\n/** @docsIgnore */\nexport type GetSeoPatternApplicationErrors =\n | {\n code?: 'UNSUPPORTED_PAGE_TYPE';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'PAGE_TYPE_NOT_ON_SITE';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'PAGE_ID_NOT_SUPPORTED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'COLLECTION_NAME_NOT_SUPPORTED';\n description?: string;\n data?: Record<string, any>;\n };\n/** @docsIgnore */\nexport type ListSeoPatternVariablesApplicationErrors =\n | {\n code?: 'UNSUPPORTED_PAGE_TYPE';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'PAGE_TYPE_NOT_ON_SITE';\n description?: string;\n data?: Record<string, any>;\n };\n/** @docsIgnore */\nexport type CreateSeoPatternApplicationErrors =\n | {\n code?: 'UNSUPPORTED_PAGE_TYPE';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'INVALID_PATTERN';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'PATTERN_ALREADY_EXISTS';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'PAGE_TYPE_NOT_ON_SITE';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'PAGE_ID_NOT_SUPPORTED';\n description?: string;\n data?: Record<string, any>;\n };\n/** @docsIgnore */\nexport type SetSeoPatternApplicationErrors =\n | {\n code?: 'UNSUPPORTED_PAGE_TYPE';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'INVALID_PATTERN';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'INVALID_FIELD_MASK';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'PATTERN_NOT_FOUND';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'PAGE_ID_NOT_SUPPORTED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'COLLECTION_NAME_NOT_SUPPORTED';\n description?: string;\n data?: Record<string, any>;\n };\n/** @docsIgnore */\nexport type ResetSeoPatternToDefaultApplicationErrors =\n | {\n code?: 'UNSUPPORTED_PAGE_TYPE';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'PATTERN_NOT_FOUND';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'PAGE_ID_NOT_SUPPORTED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'COLLECTION_NAME_NOT_SUPPORTED';\n description?: string;\n data?: Record<string, any>;\n };\n\n/**\n * Retrieves the SEO pattern in effect for a page type.\n *\n * The response contains the site's own pattern in `pattern`, and the pattern Wix\n * provides in `defaultPattern`. `source` reports which of the two is in effect.\n * `pattern` is empty when the site has no pattern of its own.\n * @param pageType - Page type whose pattern to retrieve. For example, `STATIC_PAGE`, `BLOG_POST`, or\n * `STORES_PRODUCT`.\n * @public\n * @documentationMaturity preview\n * @requiredField pageType\n * @permissionId wix-seo.read\n * @applicableIdentity APP\n * @applicableIdentity MEMBER\n * @fqn wix.promote.seo.metatags.v1.PageTypeSeoPatternsService.GetSeoPattern\n */\nexport async function getSeoPattern(\n pageType: string,\n options?: GetSeoPatternOptions\n): Promise<\n NonNullablePaths<\n GetSeoPatternResponse,\n | `seoPattern.pageType`\n | `seoPattern.pattern.tags`\n | `seoPattern.pattern.tags.${number}.type`\n | `seoPattern.pattern.tags.${number}.children`\n | `seoPattern.pattern.tags.${number}.custom`\n | `seoPattern.pattern.tags.${number}.disabled`\n | `seoPattern.source`\n | `seoPattern.origin`,\n 6\n > & {\n __applicationErrorsType?: GetSeoPatternApplicationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n pageType: pageType,\n pageId: options?.pageId,\n });\n\n const reqOpts = ambassadorWixPromoteSeoV1SeoPattern.getSeoPattern(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { pageType: '$[0]', pageId: '$[1].pageId' },\n singleArgumentUnchanged: false,\n },\n ['pageType', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface GetSeoPatternOptions {\n /**\n * ID of a single page built from a Wix Data collection, to retrieve the pattern of that\n * page alone.\n *\n * Supported only for the `WIX_DATA_PAGE_ITEM` page type.\n * @maxLength 200\n */\n pageId?: string | null;\n}\n\n/**\n * Retrieves the patterns stored for a site, one per page type.\n *\n * Only returns page types that have had a pattern of the site's own stored, so a page\n * type that has never had one is absent. A page type that was reset to its default remains in the\n * list, with an empty `pattern` and `source` of `PATTERN_SOURCE_DEFAULT`.\n * @public\n * @documentationMaturity preview\n * @permissionId wix-seo.read\n * @applicableIdentity APP\n * @applicableIdentity MEMBER\n * @fqn wix.promote.seo.metatags.v1.PageTypeSeoPatternsService.ListSeoPatterns\n */\nexport async function listSeoPatterns(): Promise<\n NonNullablePaths<\n ListSeoPatternsResponse,\n | `seoPatterns`\n | `seoPatterns.${number}.pageType`\n | `seoPatterns.${number}.source`\n | `seoPatterns.${number}.origin`,\n 4\n >\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[0] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({});\n\n const reqOpts = ambassadorWixPromoteSeoV1SeoPattern.listSeoPatterns(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {},\n singleArgumentUnchanged: false,\n },\n []\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\n/**\n * Retrieves the variables a pattern for a page type may reference.\n *\n * Call this method to retrieve the valid variables for a page type before writing a\n * pattern.\n *\n * Variables for the page's own tags and variables for its structured data are returned\n * in separate fields, and a pattern may use either.\n * @param pageType - Page type whose variables to retrieve. For example, `STATIC_PAGE`, `BLOG_POST`, or\n * `STORES_PRODUCT`.\n * @public\n * @documentationMaturity preview\n * @requiredField pageType\n * @permissionId wix-seo.read\n * @applicableIdentity APP\n * @applicableIdentity MEMBER\n * @fqn wix.promote.seo.metatags.v1.PageTypeSeoPatternsService.ListSeoPatternVariables\n */\nexport async function listSeoPatternVariables(pageType: string): Promise<\n NonNullablePaths<\n ListSeoPatternVariablesResponse,\n | `variables`\n | `variables.${number}.key`\n | `variables.${number}.userVisible`\n | `structuredDataVariables`\n | `structuredDataVariables.${number}.key`\n | `structuredDataVariables.${number}.userVisible`,\n 4\n > & {\n __applicationErrorsType?: ListSeoPatternVariablesApplicationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[1] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({ pageType: pageType });\n\n const reqOpts =\n ambassadorWixPromoteSeoV1SeoPattern.listSeoPatternVariables(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { pageType: '$[0]' },\n singleArgumentUnchanged: false,\n },\n ['pageType']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\n/**\n * Creates a pattern for a page type that's still on its Wix default.\n *\n * The pattern must contain at least one tag. To leave a page type on its Wix default,\n * create nothing for it.\n *\n * To change a pattern that already exists, call [Set SEO\n * Pattern](https://dev.wix.com/docs/api-reference/business-management/seo/seo-pattern-v1/set-seo-pattern).\n * @param pageType - Page type to create a pattern for. For example, `STATIC_PAGE`, `BLOG_POST`, or\n * `STORES_PRODUCT`.\n * @param seoPattern - Pattern to create for the page type.\n *\n * `pattern` is the only field to send. The page type comes from the request path, and\n * every other field is read-only. To create a pattern for a single page built from a\n * Wix Data collection, set `pageId`.\n * @public\n * @documentationMaturity preview\n * @requiredField pageType\n * @requiredField seoPattern\n * @permissionId wix-seo.edit\n * @applicableIdentity APP\n * @returns The created pattern, with `source` reporting that the site's own pattern is now in\n * effect.\n * @fqn wix.promote.seo.metatags.v1.PageTypeSeoPatternsService.CreateSeoPattern\n */\nexport async function createSeoPattern(\n pageType: string,\n seoPattern: SeoPattern\n): Promise<\n NonNullablePaths<\n SeoPattern,\n | `pageType`\n | `pattern.tags`\n | `pattern.tags.${number}.type`\n | `pattern.tags.${number}.children`\n | `pattern.tags.${number}.custom`\n | `pattern.tags.${number}.disabled`\n | `source`\n | `origin`,\n 5\n > & {\n __applicationErrorsType?: CreateSeoPatternApplicationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n pageType: pageType,\n seoPattern: seoPattern,\n });\n\n const reqOpts = ambassadorWixPromoteSeoV1SeoPattern.createSeoPattern(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)?.seoPattern!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { pageType: '$[0]', seoPattern: '$[1]' },\n singleArgumentUnchanged: false,\n },\n ['pageType', 'seoPattern']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\n/**\n * Changes the pattern a site has for a page type.\n *\n * Setting `pattern` replaces the page type's tag templates in full, so retrieve the\n * pattern first and send back the complete set you want it to have. Sending an empty\n * pattern clears it, which returns the page type to its Wix default.\n *\n * This method changes a pattern that already exists rather than creating one. For a page\n * type still on its Wix default, call [Create SEO\n * Pattern](https://dev.wix.com/docs/api-reference/business-management/seo/seo-pattern-v1/create-seo-pattern)\n * instead.\n *\n * A pattern has no revision, and the site's SEO settings in the dashboard write to the\n * same pattern. The last write wins, so retrieve the pattern immediately before writing\n * it.\n * @param pageType - Page type whose pattern to change. For example, `STATIC_PAGE`, `BLOG_POST`, or\n * `STORES_PRODUCT`.\n * @param seoPattern - Pattern to set for the page type.\n *\n * `pattern` is the only writable field, and setting it replaces the page type's tag\n * templates in full. Sending an empty pattern clears it, which returns the page type to\n * its Wix default.\n * @public\n * @documentationMaturity preview\n * @requiredField options.fieldMask\n * @requiredField pageType\n * @requiredField seoPattern\n * @permissionId wix-seo.edit\n * @applicableIdentity APP\n * @fqn wix.promote.seo.metatags.v1.PageTypeSeoPatternsService.SetSeoPattern\n */\nexport async function setSeoPattern(\n pageType: string,\n seoPattern: SeoPattern,\n options?: NonNullablePaths<SetSeoPatternOptions, `fieldMask`, 2>\n): Promise<\n NonNullablePaths<\n SetSeoPatternResponse,\n | `seoPattern.pageType`\n | `seoPattern.pattern.tags`\n | `seoPattern.pattern.tags.${number}.type`\n | `seoPattern.pattern.tags.${number}.children`\n | `seoPattern.pattern.tags.${number}.custom`\n | `seoPattern.pattern.tags.${number}.disabled`\n | `seoPattern.source`\n | `seoPattern.origin`,\n 6\n > & {\n __applicationErrorsType?: SetSeoPatternApplicationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[3] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n pageType: pageType,\n seoPattern: seoPattern,\n fieldMask: options?.fieldMask,\n pageId: options?.pageId,\n });\n\n const reqOpts = ambassadorWixPromoteSeoV1SeoPattern.setSeoPattern(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n pageType: '$[0]',\n seoPattern: '$[1]',\n fieldMask: '$[2].fieldMask',\n pageId: '$[2].pageId',\n },\n singleArgumentUnchanged: false,\n },\n ['pageType', 'seoPattern', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface SetSeoPatternOptions {\n /**\n * Fields to update.\n *\n * Supported properties: `pattern`\n */\n fieldMask: string[];\n /**\n * ID of a single page built from a Wix Data collection, to change the pattern of that\n * page alone.\n *\n * Supported only for the `WIX_DATA_PAGE_ITEM` page type.\n * @maxLength 200\n */\n pageId?: string | null;\n}\n\n/**\n * Removes the pattern a site has for a page type, so the Wix default applies again.\n *\n * The response reports the page type after the reset, with an empty `pattern` and\n * `source` of `PATTERN_SOURCE_DEFAULT`.\n * @param pageType - Page type whose pattern to reset. For example, `STATIC_PAGE`, `BLOG_POST`, or\n * `STORES_PRODUCT`.\n * @public\n * @documentationMaturity preview\n * @requiredField pageType\n * @permissionId wix-seo.edit\n * @applicableIdentity APP\n * @fqn wix.promote.seo.metatags.v1.PageTypeSeoPatternsService.ResetSeoPatternToDefault\n */\nexport async function resetSeoPatternToDefault(\n pageType: string,\n options?: ResetSeoPatternToDefaultOptions\n): Promise<\n NonNullablePaths<\n ResetSeoPatternToDefaultResponse,\n | `seoPattern.pageType`\n | `seoPattern.pattern.tags`\n | `seoPattern.pattern.tags.${number}.type`\n | `seoPattern.pattern.tags.${number}.children`\n | `seoPattern.pattern.tags.${number}.custom`\n | `seoPattern.pattern.tags.${number}.disabled`\n | `seoPattern.source`\n | `seoPattern.origin`,\n 6\n > & {\n __applicationErrorsType?: ResetSeoPatternToDefaultApplicationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n pageType: pageType,\n pageId: options?.pageId,\n });\n\n const reqOpts =\n ambassadorWixPromoteSeoV1SeoPattern.resetSeoPatternToDefault(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { pageType: '$[0]', pageId: '$[1].pageId' },\n singleArgumentUnchanged: false,\n },\n ['pageType', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface ResetSeoPatternToDefaultOptions {\n /**\n * ID of a single page built from a Wix Data collection, to reset the pattern of that\n * page alone.\n *\n * Supported only for the `WIX_DATA_PAGE_ITEM` page type.\n * @maxLength 200\n */\n pageId?: string | null;\n}\n","import { toURLSearchParams } from '@wix/sdk-runtime/rest-modules';\nimport { transformSDKFieldMaskToRESTFieldMask } from '@wix/sdk-runtime/transformations/field-mask';\nimport { transformPaths } from '@wix/sdk-runtime/transformations/transform-paths';\nimport { resolveUrl } from '@wix/sdk-runtime/rest-modules';\nimport { ResolveUrlOpts } from '@wix/sdk-runtime/rest-modules';\nimport { RequestOptionsFactory } from '@wix/sdk-types';\n\nfunction resolveWixPromoteSeoMetatagsV1PageTypeSeoPatternsServiceUrl(\n opts: Omit<ResolveUrlOpts, 'domainToMappings'>\n) {\n const domainToMappings = {\n 'www.wixapis.com': [\n {\n srcPath: '/seo-metatags-server',\n destPath: '',\n },\n ],\n 'manage._base_domain_': [\n {\n srcPath: '/_api/seo-metatags-server',\n destPath: '',\n },\n ],\n };\n\n return resolveUrl(Object.assign(opts, { domainToMappings }));\n}\n\nconst PACKAGE_NAME = '@wix/auto_sdk_seo_seo-patterns';\n\n/**\n * Retrieves the SEO pattern in effect for a page type.\n *\n * The response contains the site's own pattern in `pattern`, and the pattern Wix\n * provides in `defaultPattern`. `source` reports which of the two is in effect.\n * `pattern` is empty when the site has no pattern of its own.\n */\nexport function getSeoPattern(payload: object): RequestOptionsFactory<any> {\n function __getSeoPattern({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.promote.seo.v1.seo_pattern',\n method: 'GET' as any,\n methodFqn:\n 'wix.promote.seo.metatags.v1.PageTypeSeoPatternsService.GetSeoPattern',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixPromoteSeoMetatagsV1PageTypeSeoPatternsServiceUrl({\n protoPath: '/v1/seo-patterns/{pageType}',\n data: payload,\n host,\n }),\n params: toURLSearchParams(payload),\n };\n\n return metadata;\n }\n\n return __getSeoPattern;\n}\n\n/**\n * Retrieves the patterns stored for a site, one per page type.\n *\n * Only returns page types that have had a pattern of the site's own stored, so a page\n * type that has never had one is absent. A page type that was reset to its default remains in the\n * list, with an empty `pattern` and `source` of `PATTERN_SOURCE_DEFAULT`.\n */\nexport function listSeoPatterns(payload: object): RequestOptionsFactory<any> {\n function __listSeoPatterns({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.promote.seo.v1.seo_pattern',\n method: 'GET' as any,\n methodFqn:\n 'wix.promote.seo.metatags.v1.PageTypeSeoPatternsService.ListSeoPatterns',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixPromoteSeoMetatagsV1PageTypeSeoPatternsServiceUrl({\n protoPath: '/v1/seo-patterns',\n data: payload,\n host,\n }),\n params: toURLSearchParams(payload),\n };\n\n return metadata;\n }\n\n return __listSeoPatterns;\n}\n\n/**\n * Retrieves the variables a pattern for a page type may reference.\n *\n * Call this method to retrieve the valid variables for a page type before writing a\n * pattern.\n *\n * Variables for the page's own tags and variables for its structured data are returned\n * in separate fields, and a pattern may use either.\n */\nexport function listSeoPatternVariables(\n payload: object\n): RequestOptionsFactory<any> {\n function __listSeoPatternVariables({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.promote.seo.v1.seo_pattern',\n method: 'GET' as any,\n methodFqn:\n 'wix.promote.seo.metatags.v1.PageTypeSeoPatternsService.ListSeoPatternVariables',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixPromoteSeoMetatagsV1PageTypeSeoPatternsServiceUrl({\n protoPath: '/v1/seo-patterns/{pageType}/variables',\n data: payload,\n host,\n }),\n params: toURLSearchParams(payload),\n };\n\n return metadata;\n }\n\n return __listSeoPatternVariables;\n}\n\n/**\n * Creates a pattern for a page type that's still on its Wix default.\n *\n * The pattern must contain at least one tag. To leave a page type on its Wix default,\n * create nothing for it.\n *\n * To change a pattern that already exists, call [Set SEO\n * Pattern](https://dev.wix.com/docs/api-reference/business-management/seo/seo-pattern-v1/set-seo-pattern).\n */\nexport function createSeoPattern(payload: object): RequestOptionsFactory<any> {\n function __createSeoPattern({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.promote.seo.v1.seo_pattern',\n method: 'POST' as any,\n methodFqn:\n 'wix.promote.seo.metatags.v1.PageTypeSeoPatternsService.CreateSeoPattern',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixPromoteSeoMetatagsV1PageTypeSeoPatternsServiceUrl({\n protoPath: '/v1/seo-patterns/{pageType}',\n data: payload,\n host,\n }),\n data: payload,\n };\n\n return metadata;\n }\n\n return __createSeoPattern;\n}\n\n/**\n * Changes the pattern a site has for a page type.\n *\n * Setting `pattern` replaces the page type's tag templates in full, so retrieve the\n * pattern first and send back the complete set you want it to have. Sending an empty\n * pattern clears it, which returns the page type to its Wix default.\n *\n * This method changes a pattern that already exists rather than creating one. For a page\n * type still on its Wix default, call [Create SEO\n * Pattern](https://dev.wix.com/docs/api-reference/business-management/seo/seo-pattern-v1/create-seo-pattern)\n * instead.\n *\n * A pattern has no revision, and the site's SEO settings in the dashboard write to the\n * same pattern. The last write wins, so retrieve the pattern immediately before writing\n * it.\n */\nexport function setSeoPattern(payload: object): RequestOptionsFactory<any> {\n function __setSeoPattern({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKFieldMaskToRESTFieldMask,\n paths: [{ path: 'fieldMask' }],\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.promote.seo.v1.seo_pattern',\n method: 'PATCH' as any,\n methodFqn:\n 'wix.promote.seo.metatags.v1.PageTypeSeoPatternsService.SetSeoPattern',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixPromoteSeoMetatagsV1PageTypeSeoPatternsServiceUrl({\n protoPath: '/v1/seo-patterns/{pageType}',\n data: serializedData,\n host,\n }),\n data: serializedData,\n };\n\n return metadata;\n }\n\n return __setSeoPattern;\n}\n\n/**\n * Removes the pattern a site has for a page type, so the Wix default applies again.\n *\n * The response reports the page type after the reset, with an empty `pattern` and\n * `source` of `PATTERN_SOURCE_DEFAULT`.\n */\nexport function resetSeoPatternToDefault(\n payload: object\n): RequestOptionsFactory<any> {\n function __resetSeoPatternToDefault({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.promote.seo.v1.seo_pattern',\n method: 'POST' as any,\n methodFqn:\n 'wix.promote.seo.metatags.v1.PageTypeSeoPatternsService.ResetSeoPatternToDefault',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixPromoteSeoMetatagsV1PageTypeSeoPatternsServiceUrl({\n protoPath: '/v1/seo-patterns/{pageType}/reset-to-default',\n data: payload,\n host,\n }),\n data: payload,\n };\n\n return metadata;\n }\n\n return __resetSeoPatternToDefault;\n}\n"],"mappings":"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","names":["PatternSource","Origin","WebhookIdentityType","getSeoPattern","listSeoPatterns","listSeoPatternVariables","createSeoPattern","setSeoPattern","resetSeoPatternToDefault"]}
@@ -5,7 +5,7 @@ import '@wix/sdk-types';
5
5
  * An SEO pattern is a template of SEO tags defined for one page type, such as every blog
6
6
  * post or every store product. A pattern's tags may contain variables, written as
7
7
  * `{{variable}}`, that are filled in with each item's own values when its page renders,
8
- * so a site owner sets the tags for a whole page type once instead of item by item.
8
+ * so a Wix user sets the tags for a whole page type once instead of item by item.
9
9
  *
10
10
  * Every page type always has a pattern in effect. When a site has no pattern of its own
11
11
  * for a page type, the built-in Wix default applies, and `source` reports which of the
@@ -27,14 +27,6 @@ interface SeoPattern {
27
27
  /**
28
28
  * Page type the pattern applies to. For example, `STATIC_PAGE`, `BLOG_POST`, or
29
29
  * `STORES_PRODUCT`.
30
- *
31
- * Calling with a page type Wix doesn't recognize fails with `UNSUPPORTED_PAGE_TYPE`,
32
- * and the error lists the page types that are supported. For a page type provided by a
33
- * Wix app, such as `BLOG_POST`, the app must be installed on the site.
34
- *
35
- * Page types aren't the same set as the item types of the Item SEO Tags API: a page
36
- * type can support a pattern without supporting tags set per item, and the other way
37
- * round.
38
30
  * @maxLength 100
39
31
  * @readonly
40
32
  */
@@ -43,9 +35,7 @@ interface SeoPattern {
43
35
  * ID of a single page built from a Wix Data collection, when the pattern applies to
44
36
  * that page alone rather than to the whole page type.
45
37
  *
46
- * Supported only for the `WIX_DATA_PAGE_ITEM` page type. Every other page type has one
47
- * pattern for the type, and passing a page ID for one of those fails with
48
- * `PAGE_ID_NOT_SUPPORTED`.
38
+ * Supported only for the `WIX_DATA_PAGE_ITEM` page type.
49
39
  * @maxLength 200
50
40
  */
51
41
  pageId?: string | null;
@@ -54,16 +44,14 @@ interface SeoPattern {
54
44
  * default.
55
45
  *
56
46
  * Empty when the site has no pattern of its own, in which case `defaultPattern`
57
- * applies. Setting this field replaces the pattern in full, so send the complete set of
58
- * tag templates you want the page type to have.
47
+ * applies.
59
48
  */
60
49
  pattern?: SeoPatternBlob;
61
50
  /**
62
51
  * The pattern Wix provides for the page type, which applies whenever the site has no
63
52
  * pattern of its own.
64
53
  *
65
- * Always returned, so you can compare a customized pattern with the one it started
66
- * from, and see what a reset would restore.
54
+ * Always returned, so you can see what a reset would restore.
67
55
  * @readonly
68
56
  */
69
57
  defaultPattern?: SeoPatternBlob;
@@ -82,12 +70,13 @@ interface SeoPattern {
82
70
  */
83
71
  language?: string | null;
84
72
  /**
85
- * What made the most recent change to the pattern, for example a user or the site
73
+ * What made the most recent change to the pattern, for example a Wix user or the site
86
74
  * migration flow. Derived from the caller, not from the request.
87
75
  *
88
- * `ORIGIN_UNSPECIFIED` when the caller isn't one Wix identifies as a specific origin.
89
- * Origin isn't stored with the pattern either, so Get SEO Pattern and List SEO Patterns
90
- * always return `ORIGIN_UNSPECIFIED`.
76
+ * Reported only on the response to a write, and on the event the write emits. It isn't
77
+ * stored with the pattern, so Get SEO Pattern and List SEO Patterns always report
78
+ * `ORIGIN_UNSPECIFIED`, as does a write by a caller Wix doesn't identify as a specific
79
+ * origin.
91
80
  * @readonly
92
81
  */
93
82
  origin?: OriginWithLiterals;
@@ -103,10 +92,13 @@ interface SeoPatternBlob {
103
92
  /**
104
93
  * The pattern's SEO tag templates.
105
94
  *
106
- * A tag may reference only the variables the page type offers. Call List SEO Pattern
107
- * Variables for the page type to retrieve them.
95
+ * A tag may reference only the variables the page type offers. Call [List SEO Pattern
96
+ * Variables](https://dev.wix.com/docs/api-reference/business-management/seo/seo-pattern-v1/list-seo-pattern-variables)
97
+ * for the page type to retrieve them.
108
98
  *
109
- * Max: 100 tags
99
+ * A tag whose `disabled` or `custom` value is itself a variable is returned with that
100
+ * value unset, because those fields are booleans. The behavior still applies when the
101
+ * page renders.
110
102
  * @maxSize 100
111
103
  */
112
104
  tags?: Tag[];
@@ -128,7 +120,15 @@ interface Tag {
128
120
  meta?: Record<string, any> | null;
129
121
  /** SEO tag inner content. For example, `<title> inner content </title>`. */
130
122
  children?: string;
131
- /** Whether the tag is a [custom tag](https://support.wix.com/en/article/adding-additional-meta-tags-to-your-sites-pages). */
123
+ /**
124
+ * Whether the tag is a [custom tag](https://support.wix.com/en/article/adding-additional-meta-tags-to-your-sites-pages).
125
+ *
126
+ * Limitation: when `ResolveStaticPageSeoTags` is called without `seoData`, the per-page SEO data is read
127
+ * only from the Vibe/Wix-managed-headless override store. That store holds nothing for classic Wix Editor
128
+ * or Wix Studio pages, so custom tags saved on those pages are missing from the response entirely. For
129
+ * those pages `false` therefore does not mean "not a custom tag" — it means this API could not tell.
130
+ * Pass `seoData` explicitly to resolve against a known set of tags.
131
+ */
132
132
  custom?: boolean;
133
133
  /** Whether the tag is disabled. If the tag is disabled, people can't find your page when searching for this phrase in search engines. */
134
134
  disabled?: boolean;
@@ -177,19 +177,10 @@ interface GetSeoPatternRequest {
177
177
  * ID of a single page built from a Wix Data collection, to retrieve the pattern of that
178
178
  * page alone.
179
179
  *
180
- * Supported only for the `WIX_DATA_PAGE_ITEM` page type. Every other page type has one
181
- * pattern for the type, and passing a page ID for one of those fails with
182
- * `PAGE_ID_NOT_SUPPORTED`.
180
+ * Supported only for the `WIX_DATA_PAGE_ITEM` page type.
183
181
  * @maxLength 200
184
182
  */
185
183
  pageId?: string | null;
186
- /**
187
- * Not supported yet. Passing a value fails with `COLLECTION_NAME_NOT_SUPPORTED`.
188
- *
189
- * To address a single page built from a Wix Data collection, pass its `pageId`.
190
- * @maxLength 200
191
- */
192
- collectionName?: string | null;
193
184
  }
194
185
  interface GetSeoPatternResponse {
195
186
  /**
@@ -222,6 +213,9 @@ interface ListSeoPatternVariablesResponse {
222
213
  /**
223
214
  * Variables a pattern for this page type may use in its tags. For example,
224
215
  * `{{product.name}}` in a title template.
216
+ *
217
+ * A variable can appear more than once, with different `userVisible` values, when both
218
+ * the site and the page type offer it. Either entry can be used in a pattern.
225
219
  * @maxSize 500
226
220
  */
227
221
  variables?: SeoPatternVariable[];
@@ -245,17 +239,18 @@ interface SeoPatternVariable {
245
239
  */
246
240
  key?: string;
247
241
  /**
248
- * Whether Wix offers this variable to site owners editing the pattern in the dashboard.
242
+ * Whether the variable appears in the list shown to Wix users editing the pattern in the
243
+ * dashboard.
249
244
  *
250
- * `false` doesn't prevent a pattern from using the variable. It marks a variable Wix
251
- * keeps out of the dashboard's list, typically because it's only meaningful in specific
245
+ * `false` doesn't prevent a pattern from using the variable. It marks a variable that's
246
+ * kept out of the dashboard's list, typically because it's only meaningful in certain
252
247
  * cases.
253
248
  */
254
249
  userVisible?: boolean;
255
250
  }
256
251
  interface CreateSeoPatternRequest {
257
252
  /**
258
- * Page type whose pattern to create a pattern for. For example, `STATIC_PAGE`, `BLOG_POST`, or
253
+ * Page type to create a pattern for. For example, `STATIC_PAGE`, `BLOG_POST`, or
259
254
  * `STORES_PRODUCT`.
260
255
  * @maxLength 100
261
256
  */
@@ -294,24 +289,14 @@ interface SetSeoPatternRequest {
294
289
  /**
295
290
  * Fields to update.
296
291
  *
297
- * Required, and must name only writable fields. An empty field mask, an unknown field,
298
- * or a read-only field fails with `INVALID_FIELD_MASK`.
292
+ * Supported properties: `pattern`
299
293
  */
300
294
  fieldMask: string[];
301
- /**
302
- * Not supported yet. Passing a value fails with `COLLECTION_NAME_NOT_SUPPORTED`.
303
- *
304
- * To address a single page built from a Wix Data collection, pass its `pageId`.
305
- * @maxLength 200
306
- */
307
- collectionName?: string | null;
308
295
  /**
309
296
  * ID of a single page built from a Wix Data collection, to change the pattern of that
310
297
  * page alone.
311
298
  *
312
- * Supported only for the `WIX_DATA_PAGE_ITEM` page type. Every other page type has one
313
- * pattern for the type, and passing a page ID for one of those fails with
314
- * `PAGE_ID_NOT_SUPPORTED`.
299
+ * Supported only for the `WIX_DATA_PAGE_ITEM` page type.
315
300
  * @maxLength 200
316
301
  */
317
302
  pageId?: string | null;
@@ -327,20 +312,11 @@ interface ResetSeoPatternToDefaultRequest {
327
312
  * @maxLength 100
328
313
  */
329
314
  pageType: string;
330
- /**
331
- * Not supported yet. Passing a value fails with `COLLECTION_NAME_NOT_SUPPORTED`.
332
- *
333
- * To address a single page built from a Wix Data collection, pass its `pageId`.
334
- * @maxLength 200
335
- */
336
- collectionName?: string | null;
337
315
  /**
338
316
  * ID of a single page built from a Wix Data collection, to reset the pattern of that
339
317
  * page alone.
340
318
  *
341
- * Supported only for the `WIX_DATA_PAGE_ITEM` page type. Every other page type has one
342
- * pattern for the type, and passing a page ID for one of those fails with
343
- * `PAGE_ID_NOT_SUPPORTED`.
319
+ * Supported only for the `WIX_DATA_PAGE_ITEM` page type.
344
320
  * @maxLength 200
345
321
  */
346
322
  pageId?: string | null;
@@ -512,12 +488,28 @@ type GetSeoPatternApplicationErrors = {
512
488
  code?: 'UNSUPPORTED_PAGE_TYPE';
513
489
  description?: string;
514
490
  data?: Record<string, any>;
491
+ } | {
492
+ code?: 'PAGE_TYPE_NOT_ON_SITE';
493
+ description?: string;
494
+ data?: Record<string, any>;
495
+ } | {
496
+ code?: 'PAGE_ID_NOT_SUPPORTED';
497
+ description?: string;
498
+ data?: Record<string, any>;
499
+ } | {
500
+ code?: 'COLLECTION_NAME_NOT_SUPPORTED';
501
+ description?: string;
502
+ data?: Record<string, any>;
515
503
  };
516
504
  /** @docsIgnore */
517
505
  type ListSeoPatternVariablesApplicationErrors = {
518
506
  code?: 'UNSUPPORTED_PAGE_TYPE';
519
507
  description?: string;
520
508
  data?: Record<string, any>;
509
+ } | {
510
+ code?: 'PAGE_TYPE_NOT_ON_SITE';
511
+ description?: string;
512
+ data?: Record<string, any>;
521
513
  };
522
514
  /** @docsIgnore */
523
515
  type CreateSeoPatternApplicationErrors = {
@@ -532,6 +524,14 @@ type CreateSeoPatternApplicationErrors = {
532
524
  code?: 'PATTERN_ALREADY_EXISTS';
533
525
  description?: string;
534
526
  data?: Record<string, any>;
527
+ } | {
528
+ code?: 'PAGE_TYPE_NOT_ON_SITE';
529
+ description?: string;
530
+ data?: Record<string, any>;
531
+ } | {
532
+ code?: 'PAGE_ID_NOT_SUPPORTED';
533
+ description?: string;
534
+ data?: Record<string, any>;
535
535
  };
536
536
  /** @docsIgnore */
537
537
  type SetSeoPatternApplicationErrors = {
@@ -550,6 +550,14 @@ type SetSeoPatternApplicationErrors = {
550
550
  code?: 'PATTERN_NOT_FOUND';
551
551
  description?: string;
552
552
  data?: Record<string, any>;
553
+ } | {
554
+ code?: 'PAGE_ID_NOT_SUPPORTED';
555
+ description?: string;
556
+ data?: Record<string, any>;
557
+ } | {
558
+ code?: 'COLLECTION_NAME_NOT_SUPPORTED';
559
+ description?: string;
560
+ data?: Record<string, any>;
553
561
  };
554
562
  /** @docsIgnore */
555
563
  type ResetSeoPatternToDefaultApplicationErrors = {
@@ -560,6 +568,14 @@ type ResetSeoPatternToDefaultApplicationErrors = {
560
568
  code?: 'PATTERN_NOT_FOUND';
561
569
  description?: string;
562
570
  data?: Record<string, any>;
571
+ } | {
572
+ code?: 'PAGE_ID_NOT_SUPPORTED';
573
+ description?: string;
574
+ data?: Record<string, any>;
575
+ } | {
576
+ code?: 'COLLECTION_NAME_NOT_SUPPORTED';
577
+ description?: string;
578
+ data?: Record<string, any>;
563
579
  };
564
580
 
565
581
  type __PublicMethodMetaInfo<K = string, M = unknown, T = unknown, S = unknown, Q = unknown, R = unknown> = {