@algolia/wizard 0.43.0-rc.141.298 → 0.43.0-rc.141.299

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.
package/dist/main.js CHANGED
@@ -3472,7 +3472,7 @@ async function runAnalysis(mode, extraInstructions = []) {
3472
3472
  // package.json
3473
3473
  var package_default = {
3474
3474
  name: "@algolia/wizard",
3475
- version: "0.43.0-rc.141.298",
3475
+ version: "0.43.0-rc.141.299",
3476
3476
  description: "Magically implement Algolia functionality in your codebase",
3477
3477
  type: "module",
3478
3478
  engines: {
@@ -4143,8 +4143,11 @@ function searchInstructions(input) {
4143
4143
  `Import and render that new component from ${input.searchLocation ? `"${input.searchLocation}"` : "the best shared, always-rendered layout location (e.g. a header/nav component)"} so it is reachable across the app \u2014 at least a working search input and results panel against the target index.`,
4144
4144
  "If a search box already exists, replace its usage with an import and render of your new component; remove the old implementation.",
4145
4145
  "When rendering results with an existing shared component (e.g. a card), import and reuse that component rather than inlining its markup \u2014 inlining silently drops the styles and behavior its own file provides.",
4146
- "Results appear as a dropdown panel, not a permanently visible list: show it only while the input is focused and has a non-empty query, and close it on Escape, on blur, and on an outside click. If the SDK reference above documents an Autocomplete widget for this stack, it already provides all of that (open/close, arrow-key navigation, combobox ARIA, Insights events) \u2014 use it as-is and do not add your own open/close logic or ARIA roles on top of it. Only build this by hand when the reference has no such widget for this stack, or says it is headless; then also handle Up/Down arrows over the results and Enter to select.",
4146
+ "Results appear as a dropdown panel, not a permanently visible list. If the SDK reference above documents an Autocomplete widget for this stack, it already owns that behavior \u2014 when the panel opens and closes, Escape, blur, outside click, arrow-key navigation, combobox ARIA, Insights events \u2014 so use it as-is and add no open/close logic, query gating, or ARIA roles of your own, even if it opens on focus before anything is typed. Only build this by hand when the reference has no such widget for this stack, or says it is headless; then show the panel only while the input is focused and has a non-empty query, close it on Escape, on blur, and on an outside click, and move an active-result highlight with Up/Down arrows with Enter to select.",
4147
+ "Let the widget own result selection: where the hits have a detail page, pass its per-index URL option (getURL or the flavor's equivalent) so it navigates on click and on Enter with a result highlighted, and keep your item template or item component to content only \u2014 no anchor, no href, no click handler of your own, no stopPropagation. The widget's own result element is what sends the Insights click event, closes the panel, and clears the active option; wrapping a result in your own link swallows all three while still navigating, so it looks correct and silently loses click analytics.",
4148
+ "Render the zero-results state through the widget's own no-results template or component, so a query that matches nothing shows a message rather than an empty panel.",
4147
4149
  "Meet WCAG AA contrast (4.5:1 body text, 3:1 large text/icons) between the panel's text and its own background, and give both the input and the active result a focus indicator that is visible against whatever sits behind it. Style the panel through the widget's own class and CSS-variable overrides (or, if building by hand, the app's existing theme tokens) \u2014 never assume a light surface or reuse the surrounding page's colors unchanged inside the panel.",
4150
+ "A vendor theme stylesheet, and any CSS you write against vendor class names, must be global: import the theme from the component's own script module or the app's global stylesheet, and put the overrides in a global block (Astro's <style is:global>, an unscoped Vue block, a plain global CSS file). Never route either through a framework-scoped style block or a CSS Module \u2014 scoping rewrites the vendor selectors, and the widget builds its DOM at runtime with no scope attribute on it, so not one rule matches: the styling silently does nothing and the build still passes.",
4148
4151
  "The panel takes its width from the input by default, so a small input makes it unreadably narrow: give it a minimum width of 320px independent of the input, and keep it anchored to the input edge it opens from so widening it does not push it off-screen.",
4149
4152
  `Define ${SEARCH_CONFIG_APP_ID}, ${SEARCH_CONFIG_SEARCH_KEY}, and ${SEARCH_CONFIG_INDEX_NAME} as exported constants in a module that fits this project's existing conventions for shared client-side config \u2014 reuse an existing one if it already holds config like this, or add a small new one otherwise. These are PUBLIC values, safe to commit and expose client-side: never read them from an environment variable or a .env* file, and never hardcode them anywhere except in that one module (import them wherever the search client needs them).`,
4150
4153
  `Set ${SEARCH_CONFIG_APP_ID} to "${input.appId}" and ${SEARCH_CONFIG_INDEX_NAME} to "${input.targetIndex}".`,
@@ -30,6 +30,11 @@ Always install the **latest stable** within the major (use a caret range like `^
30
30
  - For InstantSearch, import the client from `algoliasearch/lite` (smaller bundle and
31
31
  correct types — see `instantsearch-setup.md`).
32
32
  - Always enable **Insights** on the InstantSearch root with `insights: true`. Without it there are no click/conversion events, so many Algolia features will not work as expected.
33
+ - Vendor CSS has to be **global** CSS: import an InstantSearch theme from a JS/TS module
34
+ or the app's global stylesheet, and keep `.ais-*` overrides in a global block. Inside a
35
+ framework-scoped style block (Astro `<style>`, Vue `<style scoped>`, Svelte `<style>`) or
36
+ a CSS Module, scoping rewrites the selectors, the widget's runtime DOM never carries the
37
+ scope attribute, and the styling silently does nothing while the build still passes.
33
38
 
34
39
  ## Files
35
40
 
@@ -54,12 +54,16 @@ search.addWidgets([
54
54
  indices: [
55
55
  {
56
56
  indexName: ALGOLIA_INDEX_NAME,
57
+ getURL: (item) => `/products/${item.handle}`,
57
58
  templates: {
58
59
  item({ item, onSelect }, { html, components }) {
59
60
  return html`<div onClick=${onSelect}>
60
61
  ${components.Highlight({ hit: item, attribute: 'name' })}
61
62
  </div>`
62
63
  },
64
+ noResults(_, { html }) {
65
+ return html`<span>No results</span>`
66
+ },
63
67
  },
64
68
  },
65
69
  ],
@@ -69,20 +73,62 @@ search.addWidgets([
69
73
  search.start()
70
74
  ```
71
75
 
72
- `indices[].getURL` and `.getQuery` are optional — only pass `getURL` if the app has a real
73
- per-item page to link to; don't invent one. Leave `showQuerySuggestions`,
76
+ ### Navigation is `getURL`'s job, not the template's
77
+
78
+ Where the hits have a detail page, pass `indices[].getURL` — `(item) => string`, a route
79
+ that already exists; don't invent one. The widget then navigates on click **and** on Enter
80
+ over a keyboard-highlighted item, and records the click event on the way out. Without it,
81
+ Enter on a highlighted result does nothing.
82
+
83
+ The `item` template renders content only: **no `<a>`, no `href`, no click handler of your
84
+ own, and never `stopPropagation`.** The widget's own `<li>` owns the click — it sends the
85
+ Insights `click` event, closes the panel, and clears the active option. Wrapping the
86
+ template in an anchor swallows all three: the link still navigates, so it looks correct,
87
+ while click analytics never fire and the panel stays open behind the new page.
88
+
89
+ Give every index a `templates.noResults` — without it the panel renders an empty box on a
90
+ query that matches nothing.
91
+
92
+ `getSearchPageURL` sends Enter with no result highlighted to a full search-results page;
93
+ pass it only if the app has one. `.getQuery` is optional. Leave `showQuerySuggestions`,
74
94
  `showPromptSuggestions`, `showRecent`, and `aiMode` unset — each depends on an index or
75
95
  feature (query suggestions, recent-search storage, AI chat) this project doesn't have.
76
96
 
97
+ In TypeScript, type the records through the widget's generic instead of casting inside the
98
+ templates:
99
+
100
+ ```ts
101
+ import type { Hit } from 'instantsearch.js'
102
+
103
+ type ProductHit = Hit<{ title: string; handle: string }>
104
+
105
+ autocomplete<ProductHit>({
106
+ /* item, getURL, and the templates are all typed from ProductHit */
107
+ })
108
+ ```
109
+
77
110
  ### Styling the panel
78
111
 
79
112
  The widget ships no CSS of its own. Install `instantsearch.css` and import a theme once,
80
- then layer the app's own look on top:
113
+ from the component's own JS/TS module or from the app's global stylesheet:
81
114
 
82
115
  ```js
83
116
  import 'instantsearch.css/themes/satellite.css'
84
117
  ```
85
118
 
119
+ **Never import the theme as a CSS `@import` inside a framework-scoped style block** — an
120
+ Astro `<style>`, a Vue `<style scoped>`, a Svelte `<style>`, a CSS Module. Scoping
121
+ rewrites every selector in the imported theme
122
+ (`.ais-AutocompleteInput[data-astro-cid-abc123]`), and the widget renders its own DOM at
123
+ runtime into an empty container, so none of those elements carry the scope attribute and
124
+ not one theme rule matches. Nothing errors, the build passes, and the search UI renders
125
+ unstyled. Your own overrides of `.ais-*` classes have the same problem: put them in global
126
+ CSS (`<style is:global>` in Astro, an unscoped block or `:deep()` in Vue).
127
+
128
+ The theme already ships a dark palette behind `:root[data-theme=dark], .dark`. In a dark
129
+ app, set `data-theme="dark"` on `<html>` or render the widget under a `.dark` ancestor and
130
+ adjust from there — don't redefine the light palette by hand.
131
+
86
132
  The theme defines its palette as `--ais-*` custom properties on `:root`, and the colors
87
133
  are **RGB triplets consumed through `rgba()`**, not CSS colors — override them with
88
134
  triplets or every widget color breaks:
@@ -95,10 +141,29 @@ triplets or every widget color breaks:
95
141
  }
96
142
  ```
97
143
 
98
- Everything else is plain CSS against the widget's own classes (`.ais-Autocomplete`,
99
- `.ais-AutocompletePanel`, `.ais-AutocompleteInput`, `.ais-AutocompleteIndexList`,
100
- `.ais-AutocompleteIndexItem`), or `cssClasses` / `indices[].cssClasses` to add your own
101
- class names to those elements.
144
+ Everything else is plain CSS against the widget's own classes, or `cssClasses` /
145
+ `indices[].cssClasses` to add your own class names to the same elements. Know which
146
+ element owns what before writing a rule:
147
+
148
+ - `.ais-Autocomplete` — root. Its **container** sets the widget's width; don't try to size
149
+ the widget from the input.
150
+ - `.ais-AutocompleteForm` — the visible frame: background, border, radius, and the focus
151
+ ring (`:focus-within`). Style the input's pill here.
152
+ - `.ais-AutocompleteInput` — text only. The theme gives it `border: 0`,
153
+ `background: none`, `width: 100%`. A border or a fixed width here leaves the form's own
154
+ frame drawn around it and changes no widths.
155
+ - `.ais-AutocompletePanel` (+ `--open`) and `.ais-AutocompletePanelLayout` — dropdown
156
+ surface and its scroll container.
157
+ - `.ais-AutocompleteIndex`, `-IndexHeader`, `-IndexList`, `-IndexItem`, `-IndexNoResults`
158
+ — one index's results. The active item carries `aria-selected="true"`.
159
+ - `.ais-AutocompleteItemWrapper`, `-ItemContent`, `-ItemIcon` — inside one result.
160
+ - `.ais-AutocompleteSubmitButton`, `-ClearButton`, `-LoadingIndicator`, `-Label` — the
161
+ form's own controls.
162
+ - `.ais-AutocompleteDetached*` — detached mode (below).
163
+
164
+ Don't style a class that isn't in that list: `.ais-SearchBox-*` belongs to the `searchBox`
165
+ widget and does nothing here. To check the names against the installed version:
166
+ `grep -o 'ais-Autocomplete[A-Za-z-]*' node_modules/instantsearch.css/themes/satellite.css | sort -u`.
102
167
 
103
168
  The theme's panel is `position: absolute; width: 100%`, so it inherits the width of the
104
169
  input container — a small input yields an unreadably narrow panel. Give it a minimum
@@ -111,10 +176,14 @@ width and anchor it to the edge it opens from, or it grows off-screen:
111
176
  }
112
177
  ```
113
178
 
114
- Below `(max-width: 680px)` the widget switches to detached (fullscreen) mode and renders
115
- no panel, so panel width rules only apply above that breakpoint. Change the breakpoint
116
- with `detachedMediaQuery` or `--ais-autocomplete-detached-media-query`; pass `''` to
117
- disable detached mode.
179
+ Below `(max-width: 680px)` the widget switches to detached (fullscreen) mode: the inline
180
+ form is replaced by a `.ais-AutocompleteDetachedSearchButton`, and the form and results
181
+ move into an overlay (`.ais-AutocompleteDetachedOverlay`,
182
+ `.ais-AutocompleteDetachedContainer`, `.ais-AutocompleteDetachedFormContainer`). So panel
183
+ width rules only apply above that breakpoint, and styling the inline form leaves the
184
+ mobile trigger button on the theme's own look unless you style it too. Change the
185
+ breakpoint with `detachedMediaQuery` or `--ais-autocomplete-detached-media-query`; pass
186
+ `''` to disable detached mode and keep the inline form at every width.
118
187
 
119
188
  ## Insights (click analytics) — always enable it
120
189
 
@@ -122,11 +191,16 @@ The `insights` option turns on the Insights middleware (`instantsearch.js` v4.55
122
191
  which adds `clickAnalytics: true` to every query and keeps the `userToken` in sync
123
192
  between search and event calls. Never set `clickAnalytics` or `userToken` on the `configure` widget by hand.
124
193
 
125
- Use `insights: true`. The middleware loads `search-insights` from the jsDelivr CDN
126
- itself; do not install the package or pass `insightsClient`.
194
+ Use `insights: true` and nothing else. The middleware loads `search-insights` from the
195
+ jsDelivr CDN itself; do not install the package, do not pass `insightsClient`, and do not
196
+ declare `window.aa`.
197
+
198
+ Everything below this line is a **conditional fallback**. Apply one only when its stated
199
+ condition actually holds in this project — a CSP you can point at, a user id the app
200
+ already has. Where it doesn't hold, `insights: true` is the whole implementation.
127
201
 
128
- If a Content-Security-Policy blocks jsDelivr, the CDN script cannot load. In that
129
- case, install `search-insights` from npm and pass its default export as
202
+ If the project has a Content-Security-Policy that blocks jsDelivr, the CDN script cannot
203
+ load. Only in that case, install `search-insights` from npm and pass its default export as
130
204
  `insightsClient` in the `insights` option:
131
205
 
132
206
  ```js
@@ -52,9 +52,11 @@ export function Search() {
52
52
  indices={[
53
53
  {
54
54
  indexName: ALGOLIA_INDEX_NAME,
55
+ getURL: (item) => `/products/${item.handle}`,
55
56
  itemComponent: ({ item, onSelect }) => (
56
57
  <div onClick={onSelect}>{item.name}</div>
57
58
  ),
59
+ noResultsComponent: () => <span>No results</span>,
58
60
  },
59
61
  ]}
60
62
  />
@@ -63,20 +65,63 @@ export function Search() {
63
65
  }
64
66
  ```
65
67
 
66
- `indices[].getURL` and `.getQuery` are optional — only pass `getURL` if the app has a real
67
- per-item page to link to; don't invent one. Leave `showQuerySuggestions`,
68
+ ### Navigation is `getURL`'s job, not the item component's
69
+
70
+ Where the hits have a detail page, pass `indices[].getURL` — `(item) => string`, a route
71
+ that already exists; don't invent one. The widget then navigates on click **and** on Enter
72
+ over a keyboard-highlighted item, and records the click event on the way out. Without it,
73
+ Enter on a highlighted result does nothing.
74
+
75
+ `itemComponent` renders content only: **no `<a>`, no `href`, no `onClick` of your own
76
+ beyond the `onSelect` it is handed, and never `stopPropagation`.** The widget's own `<li>`
77
+ owns the click — it sends the Insights `click` event, closes the panel, and clears the
78
+ active option. Wrapping the item in a link or a router `<Link>` swallows all three: the
79
+ navigation still happens, so it looks correct, while click analytics never fire and the
80
+ panel stays open behind the new page.
81
+
82
+ Give every index a `noResultsComponent` — without it the panel renders an empty box on a
83
+ query that matches nothing.
84
+
85
+ `getSearchPageURL` sends Enter with no result highlighted to a full search-results page;
86
+ pass it only if the app has one. `.getQuery` is optional. Leave `showQuerySuggestions`,
68
87
  `showPromptSuggestions`, `showRecent`, and `aiMode` unset — each depends on an index or
69
88
  feature (query suggestions, recent-search storage, AI chat) this project doesn't have.
70
89
 
90
+ In TypeScript, type the records through the component's generic instead of casting inside
91
+ `itemComponent`:
92
+
93
+ ```tsx
94
+ import type { Hit } from 'instantsearch.js'
95
+
96
+ type ProductHit = Hit<{ title: string; handle: string }>
97
+
98
+ export function Search() {
99
+ // item, getURL, and itemComponent are all typed from ProductHit
100
+ return <Autocomplete<ProductHit> indices={[]} />
101
+ }
102
+ ```
103
+
71
104
  ### Styling the panel
72
105
 
73
106
  The widget ships no CSS of its own. Install `instantsearch.css` and import a theme once,
74
- then layer the app's own look on top:
107
+ from the component module or the app's global stylesheet:
75
108
 
76
109
  ```tsx
77
110
  import 'instantsearch.css/themes/satellite.css'
78
111
  ```
79
112
 
113
+ **Never route the theme through scoped or module CSS** — a CSS Module, an Astro `<style>`,
114
+ a Vue `<style scoped>`, a Svelte `<style>`, or any styled-components-style wrapper that
115
+ rewrites selectors. Scoping renames every selector in the imported theme, and the widget
116
+ renders its own DOM at runtime, so none of its elements match the rewritten names. Nothing
117
+ errors, the build passes, and the search UI renders unstyled. Your own overrides of
118
+ `.ais-*` classes have the same problem: keep them in a global stylesheet, or add your own
119
+ class names through `classNames` and style those instead.
120
+
121
+ The theme already ships a dark palette behind `:root[data-theme=dark], .dark`. In a dark
122
+ app, set `data-theme="dark"` on `<html>` or render the widget under a `.dark` ancestor and
123
+ adjust from there — don't redefine the light palette by hand.
124
+
80
125
  The theme defines its palette as `--ais-*` custom properties on `:root`, and the colors
81
126
  are **RGB triplets consumed through `rgba()`**, not CSS colors — override them with
82
127
  triplets or every widget color breaks:
@@ -89,10 +134,29 @@ triplets or every widget color breaks:
89
134
  }
90
135
  ```
91
136
 
92
- Everything else is plain CSS against the widget's own classes (`.ais-Autocomplete`,
93
- `.ais-AutocompletePanel`, `.ais-AutocompleteInput`, `.ais-AutocompleteIndexList`,
94
- `.ais-AutocompleteIndexItem`), or the `classNames` / `indices[].classNames` props to add
95
- your own class names to those elements.
137
+ Everything else is plain CSS against the widget's own classes, or the `classNames` /
138
+ `indices[].classNames` props to add your own class names to the same elements. Know which
139
+ element owns what before writing a rule:
140
+
141
+ - `.ais-Autocomplete` — root. Its **container** sets the widget's width; don't try to size
142
+ the widget from the input.
143
+ - `.ais-AutocompleteForm` — the visible frame: background, border, radius, and the focus
144
+ ring (`:focus-within`). Style the input's pill here.
145
+ - `.ais-AutocompleteInput` — text only. The theme gives it `border: 0`,
146
+ `background: none`, `width: 100%`. A border or a fixed width here leaves the form's own
147
+ frame drawn around it and changes no widths.
148
+ - `.ais-AutocompletePanel` (+ `--open`) and `.ais-AutocompletePanelLayout` — dropdown
149
+ surface and its scroll container.
150
+ - `.ais-AutocompleteIndex`, `-IndexHeader`, `-IndexList`, `-IndexItem`, `-IndexNoResults`
151
+ — one index's results. The active item carries `aria-selected="true"`.
152
+ - `.ais-AutocompleteItemWrapper`, `-ItemContent`, `-ItemIcon` — inside one result.
153
+ - `.ais-AutocompleteSubmitButton`, `-ClearButton`, `-LoadingIndicator`, `-Label` — the
154
+ form's own controls.
155
+ - `.ais-AutocompleteDetached*` — detached mode (below).
156
+
157
+ Don't style a class that isn't in that list: `.ais-SearchBox-*` belongs to the `SearchBox`
158
+ widget and does nothing here. To check the names against the installed version:
159
+ `grep -o 'ais-Autocomplete[A-Za-z-]*' node_modules/instantsearch.css/themes/satellite.css | sort -u`.
96
160
 
97
161
  The theme's panel is `position: absolute; width: 100%`, so it inherits the width of the
98
162
  input container — a small input yields an unreadably narrow panel. Give it a minimum
@@ -105,10 +169,14 @@ width and anchor it to the edge it opens from, or it grows off-screen:
105
169
  }
106
170
  ```
107
171
 
108
- Below `(max-width: 680px)` the widget switches to detached (fullscreen) mode and renders
109
- no panel, so panel width rules only apply above that breakpoint. Change the breakpoint
110
- with `detachedMediaQuery` or `--ais-autocomplete-detached-media-query`; pass `''` to
111
- disable detached mode.
172
+ Below `(max-width: 680px)` the widget switches to detached (fullscreen) mode: the inline
173
+ form is replaced by a `.ais-AutocompleteDetachedSearchButton`, and the form and results
174
+ move into an overlay (`.ais-AutocompleteDetachedOverlay`,
175
+ `.ais-AutocompleteDetachedContainer`, `.ais-AutocompleteDetachedFormContainer`). So panel
176
+ width rules only apply above that breakpoint, and styling the inline form leaves the
177
+ mobile trigger button on the theme's own look unless you style it too. Change the
178
+ breakpoint with `detachedMediaQuery` or `--ais-autocomplete-detached-media-query`; pass
179
+ `''` to disable detached mode and keep the inline form at every width.
112
180
 
113
181
  Do not inline `searchClient={algoliasearch(...)}` — keep the stable reference above.
114
182
 
@@ -118,10 +186,16 @@ The `insights` prop turns on the Insights middleware, which adds
118
186
  `clickAnalytics: true` to every query and keeps the `userToken` in sync between search
119
187
  and event calls. Never set `clickAnalytics` or `userToken` on `<Configure>` by hand.
120
188
 
121
- Use `insights={true}`. The middleware loads `search-insights` from the jsDelivr CDN
122
- itself; do not install the package or pass `insightsClient`.
189
+ Use `insights={true}` and nothing else. The middleware loads `search-insights` from the
190
+ jsDelivr CDN itself; do not install the package, do not pass `insightsClient`, and do not
191
+ declare `window.aa`.
192
+
193
+ Everything below this line is a **conditional fallback**. Apply one only when its stated
194
+ condition actually holds in this project — a CSP you can point at, a user id the app
195
+ already has. Where it doesn't hold, `insights={true}` is the whole implementation.
123
196
 
124
- If a Content-Security-Policy blocks jsDelivr, the CDN script cannot load. In that
197
+ If the project has a Content-Security-Policy that blocks jsDelivr, the CDN script cannot
198
+ load. In that
125
199
  case, install `search-insights` from npm and pass its default export as
126
200
  `insightsClient`:
127
201
 
@@ -170,10 +170,14 @@ The `insights` prop turns on the Insights middleware, which adds
170
170
  `clickAnalytics: true` to every query and keeps the `userToken` in sync between search
171
171
  and event calls. Never set `clickAnalytics` or `userToken` on `ais-configure` by hand.
172
172
 
173
- Use `:insights="true"`. The middleware loads `search-insights` from the jsDelivr CDN itself; do not install
174
- the package or pass `insightsClient`.
173
+ Use `:insights="true"` and nothing else. The middleware loads `search-insights` from the jsDelivr CDN
174
+ itself; do not install the package, do not pass `insightsClient`, and do not declare `window.aa`.
175
175
 
176
- If a Content-Security-Policy blocks jsDelivr, the CDN script cannot load. In that
176
+ Everything below this line is a **conditional fallback**. Apply one only when its stated condition
177
+ actually holds in this project — a CSP you can point at, a user id the app already has. Where it
178
+ doesn't hold, `:insights="true"` is the whole implementation.
179
+
180
+ If the project has a Content-Security-Policy that blocks jsDelivr, the CDN script cannot load. In that
177
181
  case, install `search-insights` from npm and pass its default export as
178
182
  `insightsClient`:
179
183
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@algolia/wizard",
3
- "version": "0.43.0-rc.141.298",
3
+ "version": "0.43.0-rc.141.299",
4
4
  "description": "Magically implement Algolia functionality in your codebase",
5
5
  "type": "module",
6
6
  "engines": {