@wix/auto_sdk_seo_seo-patterns 1.0.11 → 1.0.13

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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/promote-seo-v1-seo-pattern-seo-patterns.http.ts","../../src/promote-seo-v1-seo-pattern-seo-patterns.types.ts","../../src/promote-seo-v1-seo-pattern-seo-patterns.meta.ts"],"sourcesContent":["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\nconst TRANSFORM_PATHS_0 = [{ path: 'fieldMask' }];\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 srcPath: '/promote/seo/v1/item-seo-tags',\n destPath: '/v1/item-seo-tags',\n },\n {\n srcPath: '/promote/seo/v1/site-seo-tags',\n destPath: '/v1/site-seo-tags',\n },\n {\n srcPath: '/promote/seo/v1/seo-patterns',\n destPath: '/v1/seo-patterns',\n },\n {\n srcPath: '/promote/seo/v1/bulk/item-seo-tags',\n destPath: '/v1/bulk/item-seo-tags',\n },\n ],\n 'manage._base_domain_': [\n {\n srcPath: '/_api/seo-metatags-server',\n destPath: '',\n },\n ],\n '*.dev.wix-code.com': [\n {\n srcPath: '/promote/seo/v1/item-seo-tags',\n destPath: '/v1/item-seo-tags',\n },\n {\n srcPath: '/promote/seo/v1/site-seo-tags',\n destPath: '/v1/site-seo-tags',\n },\n {\n srcPath: '/promote/seo/v1/seo-patterns',\n destPath: '/v1/seo-patterns',\n },\n {\n srcPath: '/promote/seo/v1/bulk/item-seo-tags',\n destPath: '/v1/bulk/item-seo-tags',\n },\n ],\n _: [\n {\n srcPath: '/promote/seo/v1/item-seo-tags',\n destPath: '/v1/item-seo-tags',\n },\n {\n srcPath: '/promote/seo/v1/site-seo-tags',\n destPath: '/v1/site-seo-tags',\n },\n {\n srcPath: '/promote/seo/v1/seo-patterns',\n destPath: '/v1/seo-patterns',\n },\n {\n srcPath: '/promote/seo/v1/bulk/item-seo-tags',\n destPath: '/v1/bulk/item-seo-tags',\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: TRANSFORM_PATHS_0,\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","/**\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. A known page type name, such as\n * `STATIC_PAGE`, `BLOG_POST`, or `STORES_PRODUCT`.\n *\n * See the list of [common page\n * types](https://dev.wix.com/docs/api-reference/business-management/seo/seo-pattern-v1/introduction#page-types).\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 * Which of these an API actually accepts depends on where the tag is being set: this\n * list is not a blanket guarantee across every API that reuses this message. Site SEO\n * Tags in particular accepts only `meta` (see `SiteSeoTags.tags`) and rejects\n * `title`/`script`/`link` with a validation error even though they appear here —\n * check the field description of the specific `tags`-typed field you're writing to\n * for the types it actually supports and the error it returns.\n *\n * Limitation: `title` and `script` (e.g. a `script` tag with `props.type`\n * `\"application/ld+json\"` carrying structured data) are supported only when\n * `custom` is unset or `false`. Setting `custom: true` on a `title` or `script`\n * tag is rejected with `TAG_TYPE_NOT_ALLOWED`, because `custom: true` routes the\n * write through the site's Advanced/Custom Tags list. To write structured data,\n * omit `custom` (or set it to `false`).\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 * i.e. an entry from the site's Advanced/Custom Tags list.\n *\n * Setting this to `true` on a write restricts which `type` values are accepted\n * — the same restriction the Advanced/Custom Tags UI enforces. `title` and\n * `script` tags (including JSON-LD structured data) must be sent with `custom`\n * omitted or `false`; sending them with `custom: true` is rejected with\n * `TAG_TYPE_NOT_ALLOWED`.\n *\n * Note this is a separate restriction from Site SEO Tags' own type restriction on\n * `SiteSeoTags.tags`: even with `custom` unset, Site SEO Tags rejects `script` (e.g.\n * for site-wide structured data) unconditionally. There is currently no way to set\n * site-wide, every-page structured data through any of these APIs — write a per-page\n * `script` tag through the Item SEO Tags API instead.\n *\n * This flag is scoped to that feature only. It is NOT an indicator of whether a standard tag\n * (`title`, `description`, Open Graph, etc.) reflects a manually configured value versus a computed\n * default/pattern — standard tags always resolve with `custom: false`, even when their content comes\n * from a page's manually saved SEO title/description override. Don't use this field to verify whether\n * a live page reflects a manual per-page SEO edit.\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 even genuine Advanced/Custom Tags saved on those pages are missing from the\n * response entirely — there, `false` means this API could not tell, not that no custom tag exists.\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. Send a known page type name, such as\n * `STATIC_PAGE`, `BLOG_POST`, or `STORES_PRODUCT`.\n *\n * An unknown name fails with `UNSUPPORTED_PAGE_TYPE`. A known page type whose Wix\n * business solution isn't installed on the site fails with `PAGE_TYPE_NOT_ON_SITE`.\n *\n * See the list of [common page\n * types](https://dev.wix.com/docs/api-reference/business-management/seo/seo-pattern-v1/introduction#page-types).\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. Send a known page type name, such as\n * `STATIC_PAGE`, `BLOG_POST`, or `STORES_PRODUCT`.\n *\n * An unknown name fails with `UNSUPPORTED_PAGE_TYPE`. A known page type whose Wix\n * business solution isn't installed on the site fails with `PAGE_TYPE_NOT_ON_SITE`.\n *\n * See the list of [common page\n * types](https://dev.wix.com/docs/api-reference/business-management/seo/seo-pattern-v1/introduction#page-types).\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. Send a known page type name, such as\n * `STATIC_PAGE`, `BLOG_POST`, or `STORES_PRODUCT`.\n *\n * An unknown name fails with `UNSUPPORTED_PAGE_TYPE`. A known page type whose Wix\n * business solution isn't installed on the site fails with `PAGE_TYPE_NOT_ON_SITE`.\n *\n * See the list of [common page\n * types](https://dev.wix.com/docs/api-reference/business-management/seo/seo-pattern-v1/introduction#page-types).\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. Send a known page type name, such as\n * `STATIC_PAGE`, `BLOG_POST`, or `STORES_PRODUCT`.\n *\n * An unknown name fails with `UNSUPPORTED_PAGE_TYPE`.\n *\n * See the list of [common page\n * types](https://dev.wix.com/docs/api-reference/business-management/seo/seo-pattern-v1/introduction#page-types).\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 * Over REST, send the mask as a comma-separated string, for example\n * `\"fieldMask\": \"pattern\"`. The JavaScript SDK takes an array of strings\n * instead, for example `fieldMask: [\"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. Send a known page type name, such as\n * `STATIC_PAGE`, `BLOG_POST`, or `STORES_PRODUCT`.\n *\n * An unknown name fails with `UNSUPPORTED_PAGE_TYPE`.\n *\n * See the list of [common page\n * types](https://dev.wix.com/docs/api-reference/business-management/seo/seo-pattern-v1/introduction#page-types).\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 entityAsJson?: string;\n /**\n * Indicates the event was triggered by a restore-from-trashbin operation for a previously deleted entity\n * @internal\n */\n triggeredByUndelete?: boolean | null;\n /** Indicates the event was triggered by a restore-from-trashbin operation for a previously deleted entity */\n restoreInfo?: RestoreInfo;\n /**\n * Optional domain-specific metadata defined by the API owner, encoded as JSON.\n * @internal\n */\n additionalMetadataAsJson?: string | null;\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 currentEntityAsJson?: string;\n /**\n * This field is currently part of the of the EntityUpdatedEvent msg, but scala/node libraries which implements the domain events standard\n * wont populate it / have any reference to it in the API.\n * The main reason for it is that fetching the old entity from the DB will have a performance hit on an update operation so unless truly needed,\n * the developer should send only the new (current) entity.\n * An additional reason is not wanting to send this additional entity over the wire (kafka) since in some cases it can be really big\n * Developers that must reflect the old entity will have to implement their own domain event sender mechanism which will follow the DomainEvent proto message.\n * @internal\n * @deprecated\n */\n previousEntityAsJson?: string | null;\n /**\n * Map of fully qualified field paths to their previous values for fields that changed.\n * For more details please see [AIP](https://dev.wix.com/docs/rnd-general/articles/p13n-guidelines-aips/guidance-aips/design-patterns/7016-events#modified-fields-format)\n * @internal\n */\n modifiedFields?: Record<string, any>;\n /**\n * Optional domain-specific metadata defined by the API owner, encoded as JSON.\n * @internal\n */\n additionalMetadataAsJson?: string | null;\n}\n\nexport interface EntityDeletedEvent {\n /**\n * Indicates if the entity is sent to trash-bin. only available when trash-bin is enabled\n * @internal\n */\n movedToTrash?: boolean | null;\n /** Entity that was deleted. */\n deletedEntityAsJson?: string | null;\n /**\n * Optional domain-specific metadata defined by the API owner, encoded as JSON.\n * @internal\n */\n additionalMetadataAsJson?: string | null;\n}\n\nexport interface ActionEvent {\n bodyAsJson?: 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","import * as ambassadorWixPromoteSeoV1SeoPattern from './promote-seo-v1-seo-pattern-seo-patterns.http.js';\nimport * as ambassadorWixPromoteSeoV1SeoPatternTypes from './promote-seo-v1-seo-pattern-seo-patterns.types.js';\nimport * as ambassadorWixPromoteSeoV1SeoPatternUniversalTypes from './promote-seo-v1-seo-pattern-seo-patterns.universal.js';\n\nexport type __PublicMethodMetaInfo<\n K = string,\n M = unknown,\n T = unknown,\n S = unknown,\n Q = unknown,\n R = unknown\n> = {\n getUrl: (context: any) => string;\n httpMethod: K;\n path: string;\n pathParams: M;\n __requestType: T;\n __originalRequestType: S;\n __responseType: Q;\n __originalResponseType: R;\n};\n\nexport function getSeoPattern(): __PublicMethodMetaInfo<\n 'GET',\n { pageType: string },\n ambassadorWixPromoteSeoV1SeoPatternUniversalTypes.GetSeoPatternRequest,\n ambassadorWixPromoteSeoV1SeoPatternTypes.GetSeoPatternRequest,\n ambassadorWixPromoteSeoV1SeoPatternUniversalTypes.GetSeoPatternResponse,\n ambassadorWixPromoteSeoV1SeoPatternTypes.GetSeoPatternResponse\n> {\n const payload = { pageType: ':pageType' } as any;\n\n const getRequestOptions =\n ambassadorWixPromoteSeoV1SeoPattern.getSeoPattern(payload);\n\n const getUrl = (context: any): string => {\n const { url } = getRequestOptions(context);\n return url!;\n };\n\n return {\n getUrl,\n httpMethod: 'GET',\n path: '/v1/seo-patterns/{pageType}',\n pathParams: { pageType: 'pageType' },\n __requestType: null as any,\n __originalRequestType: null as any,\n __responseType: null as any,\n __originalResponseType: null as any,\n };\n}\n\nexport function listSeoPatterns(): __PublicMethodMetaInfo<\n 'GET',\n {},\n ambassadorWixPromoteSeoV1SeoPatternUniversalTypes.ListSeoPatternsRequest,\n ambassadorWixPromoteSeoV1SeoPatternTypes.ListSeoPatternsRequest,\n ambassadorWixPromoteSeoV1SeoPatternUniversalTypes.ListSeoPatternsResponse,\n ambassadorWixPromoteSeoV1SeoPatternTypes.ListSeoPatternsResponse\n> {\n const payload = {} as any;\n\n const getRequestOptions =\n ambassadorWixPromoteSeoV1SeoPattern.listSeoPatterns(payload);\n\n const getUrl = (context: any): string => {\n const { url } = getRequestOptions(context);\n return url!;\n };\n\n return {\n getUrl,\n httpMethod: 'GET',\n path: '/v1/seo-patterns',\n pathParams: {},\n __requestType: null as any,\n __originalRequestType: null as any,\n __responseType: null as any,\n __originalResponseType: null as any,\n };\n}\n\nexport function listSeoPatternVariables(): __PublicMethodMetaInfo<\n 'GET',\n { pageType: string },\n ambassadorWixPromoteSeoV1SeoPatternUniversalTypes.ListSeoPatternVariablesRequest,\n ambassadorWixPromoteSeoV1SeoPatternTypes.ListSeoPatternVariablesRequest,\n ambassadorWixPromoteSeoV1SeoPatternUniversalTypes.ListSeoPatternVariablesResponse,\n ambassadorWixPromoteSeoV1SeoPatternTypes.ListSeoPatternVariablesResponse\n> {\n const payload = { pageType: ':pageType' } as any;\n\n const getRequestOptions =\n ambassadorWixPromoteSeoV1SeoPattern.listSeoPatternVariables(payload);\n\n const getUrl = (context: any): string => {\n const { url } = getRequestOptions(context);\n return url!;\n };\n\n return {\n getUrl,\n httpMethod: 'GET',\n path: '/v1/seo-patterns/{pageType}/variables',\n pathParams: { pageType: 'pageType' },\n __requestType: null as any,\n __originalRequestType: null as any,\n __responseType: null as any,\n __originalResponseType: null as any,\n };\n}\n\nexport function createSeoPattern(): __PublicMethodMetaInfo<\n 'POST',\n { pageType: string },\n ambassadorWixPromoteSeoV1SeoPatternUniversalTypes.CreateSeoPatternRequest,\n ambassadorWixPromoteSeoV1SeoPatternTypes.CreateSeoPatternRequest,\n ambassadorWixPromoteSeoV1SeoPatternUniversalTypes.CreateSeoPatternResponse,\n ambassadorWixPromoteSeoV1SeoPatternTypes.CreateSeoPatternResponse\n> {\n const payload = { pageType: ':pageType' } as any;\n\n const getRequestOptions =\n ambassadorWixPromoteSeoV1SeoPattern.createSeoPattern(payload);\n\n const getUrl = (context: any): string => {\n const { url } = getRequestOptions(context);\n return url!;\n };\n\n return {\n getUrl,\n httpMethod: 'POST',\n path: '/v1/seo-patterns/{pageType}',\n pathParams: { pageType: 'pageType' },\n __requestType: null as any,\n __originalRequestType: null as any,\n __responseType: null as any,\n __originalResponseType: null as any,\n };\n}\n\nexport function setSeoPattern(): __PublicMethodMetaInfo<\n 'PATCH',\n { pageType: string },\n ambassadorWixPromoteSeoV1SeoPatternUniversalTypes.SetSeoPatternRequest,\n ambassadorWixPromoteSeoV1SeoPatternTypes.SetSeoPatternRequest,\n ambassadorWixPromoteSeoV1SeoPatternUniversalTypes.SetSeoPatternResponse,\n ambassadorWixPromoteSeoV1SeoPatternTypes.SetSeoPatternResponse\n> {\n const payload = { pageType: ':pageType' } as any;\n\n const getRequestOptions =\n ambassadorWixPromoteSeoV1SeoPattern.setSeoPattern(payload);\n\n const getUrl = (context: any): string => {\n const { url } = getRequestOptions(context);\n return url!;\n };\n\n return {\n getUrl,\n httpMethod: 'PATCH',\n path: '/v1/seo-patterns/{pageType}',\n pathParams: { pageType: 'pageType' },\n __requestType: null as any,\n __originalRequestType: null as any,\n __responseType: null as any,\n __originalResponseType: null as any,\n };\n}\n\nexport function resetSeoPatternToDefault(): __PublicMethodMetaInfo<\n 'POST',\n { pageType: string },\n ambassadorWixPromoteSeoV1SeoPatternUniversalTypes.ResetSeoPatternToDefaultRequest,\n ambassadorWixPromoteSeoV1SeoPatternTypes.ResetSeoPatternToDefaultRequest,\n ambassadorWixPromoteSeoV1SeoPatternUniversalTypes.ResetSeoPatternToDefaultResponse,\n ambassadorWixPromoteSeoV1SeoPatternTypes.ResetSeoPatternToDefaultResponse\n> {\n const payload = { pageType: ':pageType' } as any;\n\n const getRequestOptions =\n ambassadorWixPromoteSeoV1SeoPattern.resetSeoPatternToDefault(payload);\n\n const getUrl = (context: any): string => {\n const { url } = getRequestOptions(context);\n return url!;\n };\n\n return {\n getUrl,\n httpMethod: 'POST',\n path: '/v1/seo-patterns/{pageType}/reset-to-default',\n pathParams: { pageType: 'pageType' },\n __requestType: null as any,\n __originalRequestType: null as any,\n __responseType: null as any,\n __originalResponseType: null as any,\n };\n}\n\nexport {\n SeoPattern as SeoPatternOriginal,\n SeoPatternBlob as SeoPatternBlobOriginal,\n Tag as TagOriginal,\n PatternSource as PatternSourceOriginal,\n PatternSourceWithLiterals as PatternSourceWithLiteralsOriginal,\n Origin as OriginOriginal,\n OriginWithLiterals as OriginWithLiteralsOriginal,\n GetSeoPatternRequest as GetSeoPatternRequestOriginal,\n GetSeoPatternResponse as GetSeoPatternResponseOriginal,\n ListSeoPatternsRequest as ListSeoPatternsRequestOriginal,\n ListSeoPatternsResponse as ListSeoPatternsResponseOriginal,\n ListSeoPatternVariablesRequest as ListSeoPatternVariablesRequestOriginal,\n ListSeoPatternVariablesResponse as ListSeoPatternVariablesResponseOriginal,\n SeoPatternVariable as SeoPatternVariableOriginal,\n CreateSeoPatternRequest as CreateSeoPatternRequestOriginal,\n CreateSeoPatternResponse as CreateSeoPatternResponseOriginal,\n SetSeoPatternRequest as SetSeoPatternRequestOriginal,\n SetSeoPatternResponse as SetSeoPatternResponseOriginal,\n ResetSeoPatternToDefaultRequest as ResetSeoPatternToDefaultRequestOriginal,\n ResetSeoPatternToDefaultResponse as ResetSeoPatternToDefaultResponseOriginal,\n DomainEvent as DomainEventOriginal,\n DomainEventBodyOneOf as DomainEventBodyOneOfOriginal,\n EntityCreatedEvent as EntityCreatedEventOriginal,\n RestoreInfo as RestoreInfoOriginal,\n EntityUpdatedEvent as EntityUpdatedEventOriginal,\n EntityDeletedEvent as EntityDeletedEventOriginal,\n ActionEvent as ActionEventOriginal,\n MessageEnvelope as MessageEnvelopeOriginal,\n IdentificationData as IdentificationDataOriginal,\n IdentificationDataIdOneOf as IdentificationDataIdOneOfOriginal,\n WebhookIdentityType as WebhookIdentityTypeOriginal,\n WebhookIdentityTypeWithLiterals as WebhookIdentityTypeWithLiteralsOriginal,\n AccountInfo as AccountInfoOriginal,\n GetSeoPatternApplicationErrors as GetSeoPatternApplicationErrorsOriginal,\n ListSeoPatternVariablesApplicationErrors as ListSeoPatternVariablesApplicationErrorsOriginal,\n CreateSeoPatternApplicationErrors as CreateSeoPatternApplicationErrorsOriginal,\n SetSeoPatternApplicationErrors as SetSeoPatternApplicationErrorsOriginal,\n ResetSeoPatternToDefaultApplicationErrors as ResetSeoPatternToDefaultApplicationErrorsOriginal,\n} from './promote-seo-v1-seo-pattern-seo-patterns.types.js';\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.http.ts","../../src/promote-seo-v1-seo-pattern-seo-patterns.types.ts","../../src/promote-seo-v1-seo-pattern-seo-patterns.meta.ts"],"sourcesContent":["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\nconst TRANSFORM_PATHS_0 = [{ path: 'fieldMask' }];\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 srcPath: '/promote/seo/v1/item-seo-tags',\n destPath: '/v1/item-seo-tags',\n },\n {\n srcPath: '/promote/seo/v1/site-seo-tags',\n destPath: '/v1/site-seo-tags',\n },\n {\n srcPath: '/promote/seo/v1/seo-patterns',\n destPath: '/v1/seo-patterns',\n },\n {\n srcPath: '/promote/seo/v1/bulk/item-seo-tags',\n destPath: '/v1/bulk/item-seo-tags',\n },\n ],\n 'manage._base_domain_': [\n {\n srcPath: '/_api/seo-metatags-server',\n destPath: '',\n },\n ],\n '*.dev.wix-code.com': [\n {\n srcPath: '/promote/seo/v1/item-seo-tags',\n destPath: '/v1/item-seo-tags',\n },\n {\n srcPath: '/promote/seo/v1/site-seo-tags',\n destPath: '/v1/site-seo-tags',\n },\n {\n srcPath: '/promote/seo/v1/seo-patterns',\n destPath: '/v1/seo-patterns',\n },\n {\n srcPath: '/promote/seo/v1/bulk/item-seo-tags',\n destPath: '/v1/bulk/item-seo-tags',\n },\n ],\n _: [\n {\n srcPath: '/promote/seo/v1/item-seo-tags',\n destPath: '/v1/item-seo-tags',\n },\n {\n srcPath: '/promote/seo/v1/site-seo-tags',\n destPath: '/v1/site-seo-tags',\n },\n {\n srcPath: '/promote/seo/v1/seo-patterns',\n destPath: '/v1/seo-patterns',\n },\n {\n srcPath: '/promote/seo/v1/bulk/item-seo-tags',\n destPath: '/v1/bulk/item-seo-tags',\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: TRANSFORM_PATHS_0,\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","/**\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. A known page type name, such as\n * `STATIC_PAGE`, `BLOG_POST`, or `STORES_PRODUCT`.\n *\n * See the list of [common page\n * types](https://dev.wix.com/docs/api-reference/business-management/seo/seo-pattern-v1/introduction#page-types).\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\n/**\n * One tag in the page's <head>.\n *\n * Not deprecated, and with no removal date, deliberately: stored data is\n * never migrated, so this shape stays valid input forever. `seo-renderer`\n * normalizes both shapes on READ.\n */\nexport interface Tag {\n /**\n * Legacy. Was a free-form string: \"title\" | \"meta\" | \"script\" | \"link\".\n * The typed replacement is the `kind` oneof on `SeoSchemaV2.Tag`, which makes\n * the invalid combinations unrepresentable rather than merely discouraged.\n *\n * Which of these an API actually accepts depends on where the tag is being\n * set: this list is not a blanket guarantee across every API that reuses\n * this message. Site SEO Tags in particular accepts only `meta` (see\n * `SiteSeoTags.tags`) and rejects `title`/`script`/`link` with a validation\n * error even though they appear here — check the field description of the\n * specific `tags`-typed field you are writing to.\n *\n * Limitation: `title` and `script` (e.g. a `script` tag with `props.type`\n * \"application/ld+json\" carrying structured data) are supported only when\n * `custom` is unset or `false`. Setting `custom: true` on a `title` or\n * `script` tag is rejected with `TAG_TYPE_NOT_ALLOWED`, because\n * `custom: true` routes the write through the site's Advanced/Custom Tags\n * list. To write structured data, omit `custom` (or set it to `false`).\n *\n * No length limit: this field holds data written years ago by writers we\n * are not migrating. A constraint here could reject a record that is\n * already stored, which is exactly the promise this design makes.\n */\n type?: string;\n /**\n * Legacy. Was an untyped bag of HTML attributes.\n * Typed replacement: `SeoSchemaV2.TitleTag` / `MetaTag` / `LinkTag`.\n */\n props?: Record<string, any> | null;\n /**\n * Legacy. Was an untyped bag of 16 mixed-purpose keys. In `SeoSchemaV2`\n * its contents are split by purpose: per-page structured-data state moves to\n * StructuredDataTag, authorship to `written_by`, and render-time preset\n * logic (variants, enabledByExperiment, removeSchemaIf*) moved out of the\n * stored document entirely — it belongs to the preset definition, not to the\n * page. See the design log for the full key-by-key mapping.\n */\n meta?: Record<string, any> | null;\n /**\n * Legacy. Was the tag's inner content, doubling as the JSON-LD payload\n * for script tags. Typed replacement: `SeoSchemaV2.TitleTag.text` and\n * `StructuredDataTag.json_ld`.\n * No length limit, for the same reason as `type` above.\n */\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 * i.e. an entry from the site's Advanced/Custom Tags list.\n *\n * Setting this to `true` on a write restricts which `type` values are\n * accepted — the same restriction the Advanced/Custom Tags UI enforces.\n * `title` and `script` tags (including JSON-LD structured data) must be sent\n * with `custom` omitted or `false`; sending them with `custom: true` is\n * rejected with `TAG_TYPE_NOT_ALLOWED`.\n *\n * Note this is a separate restriction from Site SEO Tags' own type\n * restriction on `SiteSeoTags.tags`: even with `custom` unset, Site SEO Tags\n * rejects `script` (e.g. for site-wide structured data) unconditionally.\n * There is currently no way to set site-wide, every-page structured data\n * through any of these APIs — write a per-page `script` tag through the Item\n * SEO Tags API instead.\n *\n * This flag is scoped to that feature only. It is NOT an indicator of whether a standard tag\n * (`title`, `description`, Open Graph, etc.) reflects a manually configured value versus a computed\n * default/pattern — standard tags always resolve with `custom: false`, even when their content comes\n * from a page's manually saved SEO title/description override. Don't use this field to verify whether\n * a live page reflects a manual per-page SEO edit.\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 even genuine Advanced/Custom Tags saved on those pages are missing from the\n * response entirely — there, `false` means this API could not tell, not that no custom tag exists.\n * Pass `seoData` explicitly to resolve against a known set of tags.\n *\n * `SeoSchemaV2.Tag` expresses this as `written_by = USER_CUSTOM`.\n */\n custom?: boolean;\n /**\n * Whether the tag is excluded from the rendered <head>.\n *\n * A disabled tag is still stored, so the user can re-enable it and so a\n * pattern-provided tag stays suppressed on this page. Default false.\n */\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. Send a known page type name, such as\n * `STATIC_PAGE`, `BLOG_POST`, or `STORES_PRODUCT`.\n *\n * An unknown name fails with `UNSUPPORTED_PAGE_TYPE`. A known page type whose Wix\n * business solution isn't installed on the site fails with `PAGE_TYPE_NOT_ON_SITE`.\n *\n * See the list of [common page\n * types](https://dev.wix.com/docs/api-reference/business-management/seo/seo-pattern-v1/introduction#page-types).\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. Send a known page type name, such as\n * `STATIC_PAGE`, `BLOG_POST`, or `STORES_PRODUCT`.\n *\n * An unknown name fails with `UNSUPPORTED_PAGE_TYPE`. A known page type whose Wix\n * business solution isn't installed on the site fails with `PAGE_TYPE_NOT_ON_SITE`.\n *\n * See the list of [common page\n * types](https://dev.wix.com/docs/api-reference/business-management/seo/seo-pattern-v1/introduction#page-types).\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. Send a known page type name, such as\n * `STATIC_PAGE`, `BLOG_POST`, or `STORES_PRODUCT`.\n *\n * An unknown name fails with `UNSUPPORTED_PAGE_TYPE`. A known page type whose Wix\n * business solution isn't installed on the site fails with `PAGE_TYPE_NOT_ON_SITE`.\n *\n * See the list of [common page\n * types](https://dev.wix.com/docs/api-reference/business-management/seo/seo-pattern-v1/introduction#page-types).\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. Send a known page type name, such as\n * `STATIC_PAGE`, `BLOG_POST`, or `STORES_PRODUCT`.\n *\n * An unknown name fails with `UNSUPPORTED_PAGE_TYPE`.\n *\n * See the list of [common page\n * types](https://dev.wix.com/docs/api-reference/business-management/seo/seo-pattern-v1/introduction#page-types).\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 * Over REST, send the mask as a comma-separated string, for example\n * `\"fieldMask\": \"pattern\"`. The JavaScript SDK takes an array of strings\n * instead, for example `fieldMask: [\"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. Send a known page type name, such as\n * `STATIC_PAGE`, `BLOG_POST`, or `STORES_PRODUCT`.\n *\n * An unknown name fails with `UNSUPPORTED_PAGE_TYPE`.\n *\n * See the list of [common page\n * types](https://dev.wix.com/docs/api-reference/business-management/seo/seo-pattern-v1/introduction#page-types).\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 entityAsJson?: string;\n /**\n * Indicates the event was triggered by a restore-from-trashbin operation for a previously deleted entity\n * @internal\n */\n triggeredByUndelete?: boolean | null;\n /** Indicates the event was triggered by a restore-from-trashbin operation for a previously deleted entity */\n restoreInfo?: RestoreInfo;\n /**\n * Optional domain-specific metadata defined by the API owner, encoded as JSON.\n * @internal\n */\n additionalMetadataAsJson?: string | null;\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 currentEntityAsJson?: string;\n /**\n * This field is currently part of the of the EntityUpdatedEvent msg, but scala/node libraries which implements the domain events standard\n * wont populate it / have any reference to it in the API.\n * The main reason for it is that fetching the old entity from the DB will have a performance hit on an update operation so unless truly needed,\n * the developer should send only the new (current) entity.\n * An additional reason is not wanting to send this additional entity over the wire (kafka) since in some cases it can be really big\n * Developers that must reflect the old entity will have to implement their own domain event sender mechanism which will follow the DomainEvent proto message.\n * @internal\n * @deprecated\n */\n previousEntityAsJson?: string | null;\n /**\n * Map of fully qualified field paths to their previous values for fields that changed.\n * For more details please see [AIP](https://dev.wix.com/docs/rnd-general/articles/p13n-guidelines-aips/guidance-aips/design-patterns/7016-events#modified-fields-format)\n * @internal\n */\n modifiedFields?: Record<string, any>;\n /**\n * Optional domain-specific metadata defined by the API owner, encoded as JSON.\n * @internal\n */\n additionalMetadataAsJson?: string | null;\n}\n\nexport interface EntityDeletedEvent {\n /**\n * Indicates if the entity is sent to trash-bin. only available when trash-bin is enabled\n * @internal\n */\n movedToTrash?: boolean | null;\n /** Entity that was deleted. */\n deletedEntityAsJson?: string | null;\n /**\n * Optional domain-specific metadata defined by the API owner, encoded as JSON.\n * @internal\n */\n additionalMetadataAsJson?: string | null;\n}\n\nexport interface ActionEvent {\n bodyAsJson?: 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","import * as ambassadorWixPromoteSeoV1SeoPattern from './promote-seo-v1-seo-pattern-seo-patterns.http.js';\nimport * as ambassadorWixPromoteSeoV1SeoPatternTypes from './promote-seo-v1-seo-pattern-seo-patterns.types.js';\nimport * as ambassadorWixPromoteSeoV1SeoPatternUniversalTypes from './promote-seo-v1-seo-pattern-seo-patterns.universal.js';\n\nexport type __PublicMethodMetaInfo<\n K = string,\n M = unknown,\n T = unknown,\n S = unknown,\n Q = unknown,\n R = unknown\n> = {\n getUrl: (context: any) => string;\n httpMethod: K;\n path: string;\n pathParams: M;\n __requestType: T;\n __originalRequestType: S;\n __responseType: Q;\n __originalResponseType: R;\n};\n\nexport function getSeoPattern(): __PublicMethodMetaInfo<\n 'GET',\n { pageType: string },\n ambassadorWixPromoteSeoV1SeoPatternUniversalTypes.GetSeoPatternRequest,\n ambassadorWixPromoteSeoV1SeoPatternTypes.GetSeoPatternRequest,\n ambassadorWixPromoteSeoV1SeoPatternUniversalTypes.GetSeoPatternResponse,\n ambassadorWixPromoteSeoV1SeoPatternTypes.GetSeoPatternResponse\n> {\n const payload = { pageType: ':pageType' } as any;\n\n const getRequestOptions =\n ambassadorWixPromoteSeoV1SeoPattern.getSeoPattern(payload);\n\n const getUrl = (context: any): string => {\n const { url } = getRequestOptions(context);\n return url!;\n };\n\n return {\n getUrl,\n httpMethod: 'GET',\n path: '/v1/seo-patterns/{pageType}',\n pathParams: { pageType: 'pageType' },\n __requestType: null as any,\n __originalRequestType: null as any,\n __responseType: null as any,\n __originalResponseType: null as any,\n };\n}\n\nexport function listSeoPatterns(): __PublicMethodMetaInfo<\n 'GET',\n {},\n ambassadorWixPromoteSeoV1SeoPatternUniversalTypes.ListSeoPatternsRequest,\n ambassadorWixPromoteSeoV1SeoPatternTypes.ListSeoPatternsRequest,\n ambassadorWixPromoteSeoV1SeoPatternUniversalTypes.ListSeoPatternsResponse,\n ambassadorWixPromoteSeoV1SeoPatternTypes.ListSeoPatternsResponse\n> {\n const payload = {} as any;\n\n const getRequestOptions =\n ambassadorWixPromoteSeoV1SeoPattern.listSeoPatterns(payload);\n\n const getUrl = (context: any): string => {\n const { url } = getRequestOptions(context);\n return url!;\n };\n\n return {\n getUrl,\n httpMethod: 'GET',\n path: '/v1/seo-patterns',\n pathParams: {},\n __requestType: null as any,\n __originalRequestType: null as any,\n __responseType: null as any,\n __originalResponseType: null as any,\n };\n}\n\nexport function listSeoPatternVariables(): __PublicMethodMetaInfo<\n 'GET',\n { pageType: string },\n ambassadorWixPromoteSeoV1SeoPatternUniversalTypes.ListSeoPatternVariablesRequest,\n ambassadorWixPromoteSeoV1SeoPatternTypes.ListSeoPatternVariablesRequest,\n ambassadorWixPromoteSeoV1SeoPatternUniversalTypes.ListSeoPatternVariablesResponse,\n ambassadorWixPromoteSeoV1SeoPatternTypes.ListSeoPatternVariablesResponse\n> {\n const payload = { pageType: ':pageType' } as any;\n\n const getRequestOptions =\n ambassadorWixPromoteSeoV1SeoPattern.listSeoPatternVariables(payload);\n\n const getUrl = (context: any): string => {\n const { url } = getRequestOptions(context);\n return url!;\n };\n\n return {\n getUrl,\n httpMethod: 'GET',\n path: '/v1/seo-patterns/{pageType}/variables',\n pathParams: { pageType: 'pageType' },\n __requestType: null as any,\n __originalRequestType: null as any,\n __responseType: null as any,\n __originalResponseType: null as any,\n };\n}\n\nexport function createSeoPattern(): __PublicMethodMetaInfo<\n 'POST',\n { pageType: string },\n ambassadorWixPromoteSeoV1SeoPatternUniversalTypes.CreateSeoPatternRequest,\n ambassadorWixPromoteSeoV1SeoPatternTypes.CreateSeoPatternRequest,\n ambassadorWixPromoteSeoV1SeoPatternUniversalTypes.CreateSeoPatternResponse,\n ambassadorWixPromoteSeoV1SeoPatternTypes.CreateSeoPatternResponse\n> {\n const payload = { pageType: ':pageType' } as any;\n\n const getRequestOptions =\n ambassadorWixPromoteSeoV1SeoPattern.createSeoPattern(payload);\n\n const getUrl = (context: any): string => {\n const { url } = getRequestOptions(context);\n return url!;\n };\n\n return {\n getUrl,\n httpMethod: 'POST',\n path: '/v1/seo-patterns/{pageType}',\n pathParams: { pageType: 'pageType' },\n __requestType: null as any,\n __originalRequestType: null as any,\n __responseType: null as any,\n __originalResponseType: null as any,\n };\n}\n\nexport function setSeoPattern(): __PublicMethodMetaInfo<\n 'PATCH',\n { pageType: string },\n ambassadorWixPromoteSeoV1SeoPatternUniversalTypes.SetSeoPatternRequest,\n ambassadorWixPromoteSeoV1SeoPatternTypes.SetSeoPatternRequest,\n ambassadorWixPromoteSeoV1SeoPatternUniversalTypes.SetSeoPatternResponse,\n ambassadorWixPromoteSeoV1SeoPatternTypes.SetSeoPatternResponse\n> {\n const payload = { pageType: ':pageType' } as any;\n\n const getRequestOptions =\n ambassadorWixPromoteSeoV1SeoPattern.setSeoPattern(payload);\n\n const getUrl = (context: any): string => {\n const { url } = getRequestOptions(context);\n return url!;\n };\n\n return {\n getUrl,\n httpMethod: 'PATCH',\n path: '/v1/seo-patterns/{pageType}',\n pathParams: { pageType: 'pageType' },\n __requestType: null as any,\n __originalRequestType: null as any,\n __responseType: null as any,\n __originalResponseType: null as any,\n };\n}\n\nexport function resetSeoPatternToDefault(): __PublicMethodMetaInfo<\n 'POST',\n { pageType: string },\n ambassadorWixPromoteSeoV1SeoPatternUniversalTypes.ResetSeoPatternToDefaultRequest,\n ambassadorWixPromoteSeoV1SeoPatternTypes.ResetSeoPatternToDefaultRequest,\n ambassadorWixPromoteSeoV1SeoPatternUniversalTypes.ResetSeoPatternToDefaultResponse,\n ambassadorWixPromoteSeoV1SeoPatternTypes.ResetSeoPatternToDefaultResponse\n> {\n const payload = { pageType: ':pageType' } as any;\n\n const getRequestOptions =\n ambassadorWixPromoteSeoV1SeoPattern.resetSeoPatternToDefault(payload);\n\n const getUrl = (context: any): string => {\n const { url } = getRequestOptions(context);\n return url!;\n };\n\n return {\n getUrl,\n httpMethod: 'POST',\n path: '/v1/seo-patterns/{pageType}/reset-to-default',\n pathParams: { pageType: 'pageType' },\n __requestType: null as any,\n __originalRequestType: null as any,\n __responseType: null as any,\n __originalResponseType: null as any,\n };\n}\n\nexport {\n SeoPattern as SeoPatternOriginal,\n SeoPatternBlob as SeoPatternBlobOriginal,\n Tag as TagOriginal,\n PatternSource as PatternSourceOriginal,\n PatternSourceWithLiterals as PatternSourceWithLiteralsOriginal,\n Origin as OriginOriginal,\n OriginWithLiterals as OriginWithLiteralsOriginal,\n GetSeoPatternRequest as GetSeoPatternRequestOriginal,\n GetSeoPatternResponse as GetSeoPatternResponseOriginal,\n ListSeoPatternsRequest as ListSeoPatternsRequestOriginal,\n ListSeoPatternsResponse as ListSeoPatternsResponseOriginal,\n ListSeoPatternVariablesRequest as ListSeoPatternVariablesRequestOriginal,\n ListSeoPatternVariablesResponse as ListSeoPatternVariablesResponseOriginal,\n SeoPatternVariable as SeoPatternVariableOriginal,\n CreateSeoPatternRequest as CreateSeoPatternRequestOriginal,\n CreateSeoPatternResponse as CreateSeoPatternResponseOriginal,\n SetSeoPatternRequest as SetSeoPatternRequestOriginal,\n SetSeoPatternResponse as SetSeoPatternResponseOriginal,\n ResetSeoPatternToDefaultRequest as ResetSeoPatternToDefaultRequestOriginal,\n ResetSeoPatternToDefaultResponse as ResetSeoPatternToDefaultResponseOriginal,\n DomainEvent as DomainEventOriginal,\n DomainEventBodyOneOf as DomainEventBodyOneOfOriginal,\n EntityCreatedEvent as EntityCreatedEventOriginal,\n RestoreInfo as RestoreInfoOriginal,\n EntityUpdatedEvent as EntityUpdatedEventOriginal,\n EntityDeletedEvent as EntityDeletedEventOriginal,\n ActionEvent as ActionEventOriginal,\n MessageEnvelope as MessageEnvelopeOriginal,\n IdentificationData as IdentificationDataOriginal,\n IdentificationDataIdOneOf as IdentificationDataIdOneOfOriginal,\n WebhookIdentityType as WebhookIdentityTypeOriginal,\n WebhookIdentityTypeWithLiterals as WebhookIdentityTypeWithLiteralsOriginal,\n AccountInfo as AccountInfoOriginal,\n GetSeoPatternApplicationErrors as GetSeoPatternApplicationErrorsOriginal,\n ListSeoPatternVariablesApplicationErrors as ListSeoPatternVariablesApplicationErrorsOriginal,\n CreateSeoPatternApplicationErrors as CreateSeoPatternApplicationErrorsOriginal,\n SetSeoPatternApplicationErrors as SetSeoPatternApplicationErrorsOriginal,\n ResetSeoPatternToDefaultApplicationErrors as ResetSeoPatternToDefaultApplicationErrorsOriginal,\n} from './promote-seo-v1-seo-pattern-seo-patterns.types.js';\n"],"mappings":"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","names":["PatternSource","Origin","WebhookIdentityType","getSeoPattern","listSeoPatterns","listSeoPatternVariables","createSeoPattern","setSeoPattern","resetSeoPatternToDefault"]}
@@ -105,52 +105,75 @@ interface SeoPatternBlob {
105
105
  */
106
106
  tags?: Tag[];
107
107
  }
108
+ /**
109
+ * One tag in the page's <head>.
110
+ *
111
+ * Not deprecated, and with no removal date, deliberately: stored data is
112
+ * never migrated, so this shape stays valid input forever. `seo-renderer`
113
+ * normalizes both shapes on READ.
114
+ */
108
115
  interface Tag {
109
116
  /**
110
- * SEO tag type.
111
- *
117
+ * Legacy. Was a free-form string: "title" | "meta" | "script" | "link".
118
+ * The typed replacement is the `kind` oneof on `SeoSchemaV2.Tag`, which makes
119
+ * the invalid combinations unrepresentable rather than merely discouraged.
112
120
  *
113
- * Supported values: `title`, `meta`, `script`, `link`.
114
- *
115
- * Which of these an API actually accepts depends on where the tag is being set: this
116
- * list is not a blanket guarantee across every API that reuses this message. Site SEO
117
- * Tags in particular accepts only `meta` (see `SiteSeoTags.tags`) and rejects
118
- * `title`/`script`/`link` with a validation error even though they appear here —
119
- * check the field description of the specific `tags`-typed field you're writing to
120
- * for the types it actually supports and the error it returns.
121
+ * Which of these an API actually accepts depends on where the tag is being
122
+ * set: this list is not a blanket guarantee across every API that reuses
123
+ * this message. Site SEO Tags in particular accepts only `meta` (see
124
+ * `SiteSeoTags.tags`) and rejects `title`/`script`/`link` with a validation
125
+ * error even though they appear here — check the field description of the
126
+ * specific `tags`-typed field you are writing to.
121
127
  *
122
128
  * Limitation: `title` and `script` (e.g. a `script` tag with `props.type`
123
- * `"application/ld+json"` carrying structured data) are supported only when
124
- * `custom` is unset or `false`. Setting `custom: true` on a `title` or `script`
125
- * tag is rejected with `TAG_TYPE_NOT_ALLOWED`, because `custom: true` routes the
126
- * write through the site's Advanced/Custom Tags list. To write structured data,
127
- * omit `custom` (or set it to `false`).
129
+ * "application/ld+json" carrying structured data) are supported only when
130
+ * `custom` is unset or `false`. Setting `custom: true` on a `title` or
131
+ * `script` tag is rejected with `TAG_TYPE_NOT_ALLOWED`, because
132
+ * `custom: true` routes the write through the site's Advanced/Custom Tags
133
+ * list. To write structured data, omit `custom` (or set it to `false`).
134
+ *
135
+ * No length limit: this field holds data written years ago by writers we
136
+ * are not migrating. A constraint here could reject a record that is
137
+ * already stored, which is exactly the promise this design makes.
128
138
  */
129
139
  type?: string;
130
140
  /**
131
- * A `{"key": "value"}` pair object where each SEO tag property (`"name"`, `"content"`, `"rel"`, `"href"`) contains a value.
132
- * For example: `{"name": "description", "content": "the description itself"}`.
141
+ * Legacy. Was an untyped bag of HTML attributes.
142
+ * Typed replacement: `SeoSchemaV2.TitleTag` / `MetaTag` / `LinkTag`.
133
143
  */
134
144
  props?: Record<string, any> | null;
135
- /** SEO tag metadata. For example, `{"height": 300, "width": 240}`. */
145
+ /**
146
+ * Legacy. Was an untyped bag of 16 mixed-purpose keys. In `SeoSchemaV2`
147
+ * its contents are split by purpose: per-page structured-data state moves to
148
+ * StructuredDataTag, authorship to `written_by`, and render-time preset
149
+ * logic (variants, enabledByExperiment, removeSchemaIf*) moved out of the
150
+ * stored document entirely — it belongs to the preset definition, not to the
151
+ * page. See the design log for the full key-by-key mapping.
152
+ */
136
153
  meta?: Record<string, any> | null;
137
- /** SEO tag inner content. For example, `<title> inner content </title>`. */
154
+ /**
155
+ * Legacy. Was the tag's inner content, doubling as the JSON-LD payload
156
+ * for script tags. Typed replacement: `SeoSchemaV2.TitleTag.text` and
157
+ * `StructuredDataTag.json_ld`.
158
+ * No length limit, for the same reason as `type` above.
159
+ */
138
160
  children?: string;
139
161
  /**
140
162
  * Whether the tag is a [custom tag](https://support.wix.com/en/article/adding-additional-meta-tags-to-your-sites-pages) —
141
163
  * i.e. an entry from the site's Advanced/Custom Tags list.
142
164
  *
143
- * Setting this to `true` on a write restricts which `type` values are accepted
144
- * — the same restriction the Advanced/Custom Tags UI enforces. `title` and
145
- * `script` tags (including JSON-LD structured data) must be sent with `custom`
146
- * omitted or `false`; sending them with `custom: true` is rejected with
147
- * `TAG_TYPE_NOT_ALLOWED`.
165
+ * Setting this to `true` on a write restricts which `type` values are
166
+ * accepted — the same restriction the Advanced/Custom Tags UI enforces.
167
+ * `title` and `script` tags (including JSON-LD structured data) must be sent
168
+ * with `custom` omitted or `false`; sending them with `custom: true` is
169
+ * rejected with `TAG_TYPE_NOT_ALLOWED`.
148
170
  *
149
- * Note this is a separate restriction from Site SEO Tags' own type restriction on
150
- * `SiteSeoTags.tags`: even with `custom` unset, Site SEO Tags rejects `script` (e.g.
151
- * for site-wide structured data) unconditionally. There is currently no way to set
152
- * site-wide, every-page structured data through any of these APIs — write a per-page
153
- * `script` tag through the Item SEO Tags API instead.
171
+ * Note this is a separate restriction from Site SEO Tags' own type
172
+ * restriction on `SiteSeoTags.tags`: even with `custom` unset, Site SEO Tags
173
+ * rejects `script` (e.g. for site-wide structured data) unconditionally.
174
+ * There is currently no way to set site-wide, every-page structured data
175
+ * through any of these APIs — write a per-page `script` tag through the Item
176
+ * SEO Tags API instead.
154
177
  *
155
178
  * This flag is scoped to that feature only. It is NOT an indicator of whether a standard tag
156
179
  * (`title`, `description`, Open Graph, etc.) reflects a manually configured value versus a computed
@@ -163,9 +186,16 @@ interface Tag {
163
186
  * or Wix Studio pages, so even genuine Advanced/Custom Tags saved on those pages are missing from the
164
187
  * response entirely — there, `false` means this API could not tell, not that no custom tag exists.
165
188
  * Pass `seoData` explicitly to resolve against a known set of tags.
189
+ *
190
+ * `SeoSchemaV2.Tag` expresses this as `written_by = USER_CUSTOM`.
166
191
  */
167
192
  custom?: boolean;
168
- /** Whether the tag is disabled. If the tag is disabled, people can't find your page when searching for this phrase in search engines. */
193
+ /**
194
+ * Whether the tag is excluded from the rendered <head>.
195
+ *
196
+ * A disabled tag is still stored, so the user can re-enable it and so a
197
+ * pattern-provided tag stays suppressed on this page. Default false.
198
+ */
169
199
  disabled?: boolean;
170
200
  }
171
201
  /** Which pattern is in effect for a page type. */
@@ -106,52 +106,75 @@ interface SeoPatternBlob {
106
106
  */
107
107
  tags?: Tag[];
108
108
  }
109
+ /**
110
+ * One tag in the page's <head>.
111
+ *
112
+ * Not deprecated, and with no removal date, deliberately: stored data is
113
+ * never migrated, so this shape stays valid input forever. `seo-renderer`
114
+ * normalizes both shapes on READ.
115
+ */
109
116
  interface Tag {
110
117
  /**
111
- * SEO tag type.
112
- *
118
+ * Legacy. Was a free-form string: "title" | "meta" | "script" | "link".
119
+ * The typed replacement is the `kind` oneof on `SeoSchemaV2.Tag`, which makes
120
+ * the invalid combinations unrepresentable rather than merely discouraged.
113
121
  *
114
- * Supported values: `title`, `meta`, `script`, `link`.
115
- *
116
- * Which of these an API actually accepts depends on where the tag is being set: this
117
- * list is not a blanket guarantee across every API that reuses this message. Site SEO
118
- * Tags in particular accepts only `meta` (see `SiteSeoTags.tags`) and rejects
119
- * `title`/`script`/`link` with a validation error even though they appear here —
120
- * check the field description of the specific `tags`-typed field you're writing to
121
- * for the types it actually supports and the error it returns.
122
+ * Which of these an API actually accepts depends on where the tag is being
123
+ * set: this list is not a blanket guarantee across every API that reuses
124
+ * this message. Site SEO Tags in particular accepts only `meta` (see
125
+ * `SiteSeoTags.tags`) and rejects `title`/`script`/`link` with a validation
126
+ * error even though they appear here — check the field description of the
127
+ * specific `tags`-typed field you are writing to.
122
128
  *
123
129
  * Limitation: `title` and `script` (e.g. a `script` tag with `props.type`
124
- * `"application/ld+json"` carrying structured data) are supported only when
125
- * `custom` is unset or `false`. Setting `custom: true` on a `title` or `script`
126
- * tag is rejected with `TAG_TYPE_NOT_ALLOWED`, because `custom: true` routes the
127
- * write through the site's Advanced/Custom Tags list. To write structured data,
128
- * omit `custom` (or set it to `false`).
130
+ * "application/ld+json" carrying structured data) are supported only when
131
+ * `custom` is unset or `false`. Setting `custom: true` on a `title` or
132
+ * `script` tag is rejected with `TAG_TYPE_NOT_ALLOWED`, because
133
+ * `custom: true` routes the write through the site's Advanced/Custom Tags
134
+ * list. To write structured data, omit `custom` (or set it to `false`).
135
+ *
136
+ * No length limit: this field holds data written years ago by writers we
137
+ * are not migrating. A constraint here could reject a record that is
138
+ * already stored, which is exactly the promise this design makes.
129
139
  */
130
140
  type?: string;
131
141
  /**
132
- * A `{"key": "value"}` pair object where each SEO tag property (`"name"`, `"content"`, `"rel"`, `"href"`) contains a value.
133
- * For example: `{"name": "description", "content": "the description itself"}`.
142
+ * Legacy. Was an untyped bag of HTML attributes.
143
+ * Typed replacement: `SeoSchemaV2.TitleTag` / `MetaTag` / `LinkTag`.
134
144
  */
135
145
  props?: Record<string, any> | null;
136
- /** SEO tag metadata. For example, `{"height": 300, "width": 240}`. */
146
+ /**
147
+ * Legacy. Was an untyped bag of 16 mixed-purpose keys. In `SeoSchemaV2`
148
+ * its contents are split by purpose: per-page structured-data state moves to
149
+ * StructuredDataTag, authorship to `written_by`, and render-time preset
150
+ * logic (variants, enabledByExperiment, removeSchemaIf*) moved out of the
151
+ * stored document entirely — it belongs to the preset definition, not to the
152
+ * page. See the design log for the full key-by-key mapping.
153
+ */
137
154
  meta?: Record<string, any> | null;
138
- /** SEO tag inner content. For example, `<title> inner content </title>`. */
155
+ /**
156
+ * Legacy. Was the tag's inner content, doubling as the JSON-LD payload
157
+ * for script tags. Typed replacement: `SeoSchemaV2.TitleTag.text` and
158
+ * `StructuredDataTag.json_ld`.
159
+ * No length limit, for the same reason as `type` above.
160
+ */
139
161
  children?: string;
140
162
  /**
141
163
  * Whether the tag is a [custom tag](https://support.wix.com/en/article/adding-additional-meta-tags-to-your-sites-pages) —
142
164
  * i.e. an entry from the site's Advanced/Custom Tags list.
143
165
  *
144
- * Setting this to `true` on a write restricts which `type` values are accepted
145
- * — the same restriction the Advanced/Custom Tags UI enforces. `title` and
146
- * `script` tags (including JSON-LD structured data) must be sent with `custom`
147
- * omitted or `false`; sending them with `custom: true` is rejected with
148
- * `TAG_TYPE_NOT_ALLOWED`.
166
+ * Setting this to `true` on a write restricts which `type` values are
167
+ * accepted — the same restriction the Advanced/Custom Tags UI enforces.
168
+ * `title` and `script` tags (including JSON-LD structured data) must be sent
169
+ * with `custom` omitted or `false`; sending them with `custom: true` is
170
+ * rejected with `TAG_TYPE_NOT_ALLOWED`.
149
171
  *
150
- * Note this is a separate restriction from Site SEO Tags' own type restriction on
151
- * `SiteSeoTags.tags`: even with `custom` unset, Site SEO Tags rejects `script` (e.g.
152
- * for site-wide structured data) unconditionally. There is currently no way to set
153
- * site-wide, every-page structured data through any of these APIs — write a per-page
154
- * `script` tag through the Item SEO Tags API instead.
172
+ * Note this is a separate restriction from Site SEO Tags' own type
173
+ * restriction on `SiteSeoTags.tags`: even with `custom` unset, Site SEO Tags
174
+ * rejects `script` (e.g. for site-wide structured data) unconditionally.
175
+ * There is currently no way to set site-wide, every-page structured data
176
+ * through any of these APIs — write a per-page `script` tag through the Item
177
+ * SEO Tags API instead.
155
178
  *
156
179
  * This flag is scoped to that feature only. It is NOT an indicator of whether a standard tag
157
180
  * (`title`, `description`, Open Graph, etc.) reflects a manually configured value versus a computed
@@ -164,9 +187,16 @@ interface Tag {
164
187
  * or Wix Studio pages, so even genuine Advanced/Custom Tags saved on those pages are missing from the
165
188
  * response entirely — there, `false` means this API could not tell, not that no custom tag exists.
166
189
  * Pass `seoData` explicitly to resolve against a known set of tags.
190
+ *
191
+ * `SeoSchemaV2.Tag` expresses this as `written_by = USER_CUSTOM`.
167
192
  */
168
193
  custom?: boolean;
169
- /** Whether the tag is disabled. If the tag is disabled, people can't find your page when searching for this phrase in search engines. */
194
+ /**
195
+ * Whether the tag is excluded from the rendered <head>.
196
+ *
197
+ * A disabled tag is still stored, so the user can re-enable it and so a
198
+ * pattern-provided tag stays suppressed on this page. Default false.
199
+ */
170
200
  disabled?: boolean;
171
201
  }
172
202
  /** Which pattern is in effect for a page type. */