@wix/auto_sdk_restaurants_menus 1.0.93 → 1.0.95

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.
@@ -88,73 +88,117 @@ interface ExtendedFields {
88
88
  namespaces?: Record<string, Record<string, any>>;
89
89
  }
90
90
  /**
91
- * The SEO schema object contains data about different types of meta tags. It makes sure that the information about your page is presented properly to search engines.
92
- * The search engines use this information for ranking purposes, or to display snippets in the search results.
93
- * This data will override other sources of tags (for example patterns) and will be included in the <head> section of the HTML document, while not being displayed on the page itself.
91
+ * The SEO data for a single page or dynamic item, in the shape stored today.
92
+ *
93
+ * FROZEN. Existing server code maps onto this message field by field, so its
94
+ * field set must never change (see the file header). New writers use
95
+ * `SeoSchemaV2`.
96
+ *
97
+ * These tags are rendered into the <head> of the HTML document and are not
98
+ * visible on the page itself. They override every other source of tags
99
+ * (site defaults, vertical presets, patterns) for this page.
94
100
  */
95
101
  interface SeoSchema {
96
- /** SEO tag information. */
102
+ /**
103
+ * The tags rendered into <head>, in no particular order. Render order is
104
+ * decided by the renderer, not by position in this list.
105
+ *
106
+ * No maxSize: this list is already populated by data written years ago, and
107
+ * a bound added now could reject a page that is already stored.
108
+ */
97
109
  tags?: Tag[];
98
- /** SEO general settings. */
110
+ /** Page-level SEO settings that are not themselves tags. */
99
111
  settings?: Settings;
100
112
  }
113
+ /** A keyword term the user is targeting. */
101
114
  interface Keyword {
102
- /** Keyword value. */
115
+ /**
116
+ * The term itself, e.g. "trail running shoes".
117
+ *
118
+ * No maxLength, for the same reason as the legacy tag fields: keywords are
119
+ * already stored, and a bound added now could reject a record written
120
+ * before the bound existed. The flynt `missing-string-validations` warning
121
+ * on this field is accepted deliberately.
122
+ */
103
123
  term?: string;
104
- /** Whether the keyword is the main focus keyword. */
124
+ /** Whether this is the page's primary focus keyword. At most one per page. */
105
125
  isMain?: boolean;
106
126
  /**
107
- * The source that added the keyword terms to the SEO settings.
127
+ * Which surface added the term, e.g. a panel or a suggestion flow. Used for
128
+ * attribution in BI. Opaque to the renderer.
108
129
  * @maxLength 1000
109
130
  */
110
131
  origin?: string | null;
111
132
  }
133
+ /**
134
+ * One tag in the page's <head>.
135
+ *
136
+ * Not deprecated, and with no removal date, deliberately: stored data is
137
+ * never migrated, so this shape stays valid input forever. `seo-renderer`
138
+ * normalizes both shapes on READ.
139
+ */
112
140
  interface Tag {
113
141
  /**
114
- * SEO tag type.
115
- *
142
+ * Legacy. Was a free-form string: "title" | "meta" | "script" | "link".
143
+ * The typed replacement is the `kind` oneof on `SeoSchemaV2.Tag`, which makes
144
+ * the invalid combinations unrepresentable rather than merely discouraged.
116
145
  *
117
- * Supported values: `title`, `meta`, `script`, `link`.
118
- *
119
- * Which of these an API actually accepts depends on where the tag is being set: this
120
- * list is not a blanket guarantee across every API that reuses this message. Site SEO
121
- * Tags in particular accepts only `meta` (see `SiteSeoTags.tags`) and rejects
122
- * `title`/`script`/`link` with a validation error even though they appear here —
123
- * check the field description of the specific `tags`-typed field you're writing to
124
- * for the types it actually supports and the error it returns.
146
+ * Which of these an API actually accepts depends on where the tag is being
147
+ * set: this list is not a blanket guarantee across every API that reuses
148
+ * this message. Site SEO Tags in particular accepts only `meta` (see
149
+ * `SiteSeoTags.tags`) and rejects `title`/`script`/`link` with a validation
150
+ * error even though they appear here — check the field description of the
151
+ * specific `tags`-typed field you are writing to.
125
152
  *
126
153
  * Limitation: `title` and `script` (e.g. a `script` tag with `props.type`
127
- * `"application/ld+json"` carrying structured data) are supported only when
128
- * `custom` is unset or `false`. Setting `custom: true` on a `title` or `script`
129
- * tag is rejected with `TAG_TYPE_NOT_ALLOWED`, because `custom: true` routes the
130
- * write through the site's Advanced/Custom Tags list. To write structured data,
131
- * omit `custom` (or set it to `false`).
154
+ * "application/ld+json" carrying structured data) are supported only when
155
+ * `custom` is unset or `false`. Setting `custom: true` on a `title` or
156
+ * `script` tag is rejected with `TAG_TYPE_NOT_ALLOWED`, because
157
+ * `custom: true` routes the write through the site's Advanced/Custom Tags
158
+ * list. To write structured data, omit `custom` (or set it to `false`).
159
+ *
160
+ * No length limit: this field holds data written years ago by writers we
161
+ * are not migrating. A constraint here could reject a record that is
162
+ * already stored, which is exactly the promise this design makes.
132
163
  */
133
164
  type?: string;
134
165
  /**
135
- * A `{"key": "value"}` pair object where each SEO tag property (`"name"`, `"content"`, `"rel"`, `"href"`) contains a value.
136
- * For example: `{"name": "description", "content": "the description itself"}`.
166
+ * Legacy. Was an untyped bag of HTML attributes.
167
+ * Typed replacement: `SeoSchemaV2.TitleTag` / `MetaTag` / `LinkTag`.
137
168
  */
138
169
  props?: Record<string, any> | null;
139
- /** SEO tag metadata. For example, `{"height": 300, "width": 240}`. */
170
+ /**
171
+ * Legacy. Was an untyped bag of 16 mixed-purpose keys. In `SeoSchemaV2`
172
+ * its contents are split by purpose: per-page structured-data state moves to
173
+ * StructuredDataTag, authorship to `written_by`, and render-time preset
174
+ * logic (variants, enabledByExperiment, removeSchemaIf*) moved out of the
175
+ * stored document entirely — it belongs to the preset definition, not to the
176
+ * page. See the design log for the full key-by-key mapping.
177
+ */
140
178
  meta?: Record<string, any> | null;
141
- /** SEO tag inner content. For example, `<title> inner content </title>`. */
179
+ /**
180
+ * Legacy. Was the tag's inner content, doubling as the JSON-LD payload
181
+ * for script tags. Typed replacement: `SeoSchemaV2.TitleTag.text` and
182
+ * `StructuredDataTag.json_ld`.
183
+ * No length limit, for the same reason as `type` above.
184
+ */
142
185
  children?: string;
143
186
  /**
144
187
  * Whether the tag is a [custom tag](https://support.wix.com/en/article/adding-additional-meta-tags-to-your-sites-pages) —
145
188
  * i.e. an entry from the site's Advanced/Custom Tags list.
146
189
  *
147
- * Setting this to `true` on a write restricts which `type` values are accepted
148
- * — the same restriction the Advanced/Custom Tags UI enforces. `title` and
149
- * `script` tags (including JSON-LD structured data) must be sent with `custom`
150
- * omitted or `false`; sending them with `custom: true` is rejected with
151
- * `TAG_TYPE_NOT_ALLOWED`.
190
+ * Setting this to `true` on a write restricts which `type` values are
191
+ * accepted — the same restriction the Advanced/Custom Tags UI enforces.
192
+ * `title` and `script` tags (including JSON-LD structured data) must be sent
193
+ * with `custom` omitted or `false`; sending them with `custom: true` is
194
+ * rejected with `TAG_TYPE_NOT_ALLOWED`.
152
195
  *
153
- * Note this is a separate restriction from Site SEO Tags' own type restriction on
154
- * `SiteSeoTags.tags`: even with `custom` unset, Site SEO Tags rejects `script` (e.g.
155
- * for site-wide structured data) unconditionally. There is currently no way to set
156
- * site-wide, every-page structured data through any of these APIs — write a per-page
157
- * `script` tag through the Item SEO Tags API instead.
196
+ * Note this is a separate restriction from Site SEO Tags' own type
197
+ * restriction on `SiteSeoTags.tags`: even with `custom` unset, Site SEO Tags
198
+ * rejects `script` (e.g. for site-wide structured data) unconditionally.
199
+ * There is currently no way to set site-wide, every-page structured data
200
+ * through any of these APIs — write a per-page `script` tag through the Item
201
+ * SEO Tags API instead.
158
202
  *
159
203
  * This flag is scoped to that feature only. It is NOT an indicator of whether a standard tag
160
204
  * (`title`, `description`, Open Graph, etc.) reflects a manually configured value versus a computed
@@ -167,22 +211,39 @@ interface Tag {
167
211
  * or Wix Studio pages, so even genuine Advanced/Custom Tags saved on those pages are missing from the
168
212
  * response entirely — there, `false` means this API could not tell, not that no custom tag exists.
169
213
  * Pass `seoData` explicitly to resolve against a known set of tags.
214
+ *
215
+ * `SeoSchemaV2.Tag` expresses this as `written_by = USER_CUSTOM`.
170
216
  */
171
217
  custom?: boolean;
172
- /** Whether the tag is disabled. If the tag is disabled, people can't find your page when searching for this phrase in search engines. */
218
+ /**
219
+ * Whether the tag is excluded from the rendered <head>.
220
+ *
221
+ * A disabled tag is still stored, so the user can re-enable it and so a
222
+ * pattern-provided tag stays suppressed on this page. Default false.
223
+ */
173
224
  disabled?: boolean;
174
225
  }
226
+ /** Page-level SEO settings that are not tags. */
175
227
  interface Settings {
176
228
  /**
177
- * Whether the [automatical redirect visits](https://support.wix.com/en/article/customizing-your-pages-seo-settings-in-the-seo-panel) from the old URL to the new one is enabled.
229
+ * Whether to suppress the automatic redirect from this page's previous URL to
230
+ * its current one after a slug change.
178
231
  *
179
- *
180
- * Default: `false` (automatical redirect is enabled).
232
+ * Default false, meaning the redirect IS created. The field is named for the
233
+ * exception rather than the rule, which reads backwards; kept as-is because
234
+ * renaming a stored boolean is not worth the migration.
181
235
  */
182
236
  preventAutoRedirect?: boolean;
183
237
  /**
184
- * User-selected keyword terms for a specific page.
185
- * @maxSize 5
238
+ * Keyword terms the user is targeting for this page. Used by the SEO
239
+ * assistant and checklist; never rendered into <head>.
240
+ *
241
+ * 20 is a sanity bound, not the product limit. v1 declared 5 — the number
242
+ * the panel happens to allow today — which is exactly the mistake we are
243
+ * fixing for structured data. A product decision to allow 8 should not need
244
+ * a proto release, so the panel owns that number and the proto only stops
245
+ * something absurd.
246
+ * @maxSize 20
186
247
  */
187
248
  keywords?: Keyword[];
188
249
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wix/auto_sdk_restaurants_menus",
3
- "version": "1.0.93",
3
+ "version": "1.0.95",
4
4
  "license": "MIT",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/",
@@ -29,8 +29,8 @@
29
29
  "service-plugins"
30
30
  ],
31
31
  "dependencies": {
32
- "@wix/sdk-runtime": "^1.0.24",
33
- "@wix/sdk-types": "^1.17.11"
32
+ "@wix/sdk-runtime": "^1.0.28",
33
+ "@wix/sdk-types": "^1.17.12"
34
34
  },
35
35
  "devDependencies": {
36
36
  "tsup": "^8.4.0",
@@ -50,5 +50,5 @@
50
50
  "fqdn": "wix.restaurants.menus.v1.menu"
51
51
  }
52
52
  },
53
- "falconPackageHash": "35b541938ca74c940d17f74ff4ecf319b8745df8e8d42cb347c38c47"
53
+ "falconPackageHash": "e44e4c7dc9e70f841b2e4b30093df1f516bf8abc053d993824366771"
54
54
  }