@mui/x-license 9.2.0 → 9.6.0

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/CHANGELOG.md CHANGED
@@ -1,5 +1,570 @@
1
1
  # Changelog
2
2
 
3
+ ## 9.6.0
4
+
5
+ _Jun 18, 2026_
6
+
7
+ We'd like to extend a big thank you to the 17 contributors who made this release possible. Here are some highlights ✨:
8
+
9
+ - 📊 New features for the radial bar charts, like percentage min radius and disabling tick labels.
10
+
11
+ Special thanks go out to these community members for their valuable contributions:
12
+ @adamowski10, @Anexus5919, @Morteza-hp, @mustafajw07, @TargiX
13
+
14
+ The following team members contributed to this release:
15
+ @alexfauquette, @arminmeh, @brijeshb42, @cherniavskii, @hasdfa, @Janpot, @JCQuintas, @michelengelen, @noraleonte, @oliviertassinari, @rita-codes, @sai6855
16
+
17
+ ### Data Grid
18
+
19
+ #### `@mui/x-data-grid@9.6.0`
20
+
21
+ - [DataGrid] Define `overflowAnchor` style at the right element (#22849) @arminmeh
22
+ - [DataGrid] Fix scrollbars not showing up on scroll on iOS (#22832) @cherniavskii
23
+
24
+ #### `@mui/x-data-grid-pro@9.6.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
25
+
26
+ Same changes as in `@mui/x-data-grid@9.6.0`, plus:
27
+
28
+ - [DataGridPro] Prevent incorrect row range capping on the first page with known `rowCount` (#22808) @michelengelen
29
+
30
+ #### `@mui/x-data-grid-premium@9.6.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
31
+
32
+ Same changes as in `@mui/x-data-grid-pro@9.6.0`.
33
+
34
+ ### Date and Time Pickers
35
+
36
+ #### `@mui/x-date-pickers@9.6.0`
37
+
38
+ - [pickers] Fix `AdapterMomentHijri.getDaysInMonth` returning the Gregorian month length (#22774) @Anexus5919
39
+ - [l10n] Improve Persian (fa-IR) locale (#22454) @Morteza-hp
40
+
41
+ #### `@mui/x-date-pickers-pro@9.6.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
42
+
43
+ Same changes as in `@mui/x-date-pickers@9.6.0`.
44
+
45
+ ### Charts
46
+
47
+ #### `@mui/x-charts@9.6.0`
48
+
49
+ - [charts] Add `disableTickLabel` prop to radial axes (#22801) @JCQuintas
50
+ - [charts] Fix bug when `min` is in axis domain (#22827) @alexfauquette
51
+ - [charts] Fix wheel zoom not centering on cursor position (#22811) @JCQuintas
52
+ - [charts] Remove zoom gesture registration from community package (#22753) @sai6855
53
+ - [charts] Support percentage values for radial axis `minRadius`/`maxRadius` (#22803) @JCQuintas
54
+ - [charts] Support `unknownColor` in color scale (#22813) @alexfauquette
55
+ - [charts] Document click listener for scatter composition (#22809) @sai6855
56
+
57
+ #### `@mui/x-charts-pro@9.6.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
58
+
59
+ Same changes as in `@mui/x-charts@9.6.0`.
60
+
61
+ #### `@mui/x-charts-premium@9.6.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
62
+
63
+ Same changes as in `@mui/x-charts-pro@9.6.0`, plus:
64
+
65
+ - [charts-premium] Add `geoFeatureKey` to transform features identifier (#22848) @alexfauquette
66
+ - [charts-premium] Allow to remove Antartica (#22815) @alexfauquette
67
+ - [charts-premium] Regenerate `ScatterPlotPremium` `propTypes` (#22829) @rita-codes
68
+ - [charts-premium] Support maps tooltip positioned on items (#22648) @alexfauquette
69
+ - [docs] Show how to export maps (#22837) @alexfauquette
70
+
71
+
72
+ ### Tree View
73
+
74
+ #### `@mui/x-tree-view@9.6.0`
75
+
76
+ Internal changes.
77
+
78
+ #### `@mui/x-tree-view-pro@9.6.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
79
+
80
+ Same changes as in `@mui/x-tree-view@9.6.0`.
81
+
82
+ ### Scheduler
83
+
84
+ #### `@mui/x-scheduler@9.0.0-beta.2`
85
+
86
+ - [scheduler] Add dispose lifecycle to `SchedulerLazyLoadingPlugin` (#22532) @rita-codes
87
+ - [scheduler] Add responsive mobile week view and responsive typography (#22593) @noraleonte
88
+ - [scheduler] Add stable weekday token to `recurrenceWeeklyPresetLabel` (#22733) @mustafajw07
89
+ - [scheduler] Create accessibility documentation section (#22557) @mustafajw07
90
+ - [scheduler] Decouple `MonthViewProps` from day time grid props (#22802) @mustafajw07
91
+ - [scheduler] Export missing public scheduler types (#22785) @mustafajw07
92
+ - [scheduler] Fix JSDoc defaults and improve public type readability (#22784) @mustafajw07
93
+ - [scheduler] Fix `aria-labelledby` on events referencing non-existent header IDs (#22778) @rita-codes
94
+ - [scheduler] Move `EventCalendarStyledContext` to internals (#22787) @mustafajw07
95
+ - [scheduler] Normalize all-day recurring occurrences to whole days (#22792) @Anexus5919
96
+ - [scheduler] Recalculate `DayTimeGrid` `hasScroll` on container resize (#22780) @Anexus5919
97
+ - [scheduler] Recompute `nowUpdatedEveryMinute` only on timezone change (#22793) @Anexus5919
98
+ - [scheduler] Register auto-scroll once instead of on every render (#22794) @Anexus5919
99
+ - [scheduler] Remove duplicate dividers in the day/time grid (#22795) @Anexus5919
100
+ - [scheduler] Remove unused `--has-scroll` CSS variable from `DayTimeGrid` (#22799) @Anexus5919
101
+ - [scheduler] Remove vestigial async from internal drop handler (#22781) @mustafajw07
102
+ - [scheduler] Return a primitive key from the Calendar lazy-loading selector (#22791) @Anexus5919
103
+ - [scheduler] Throw on invalid event dates instead of emitting `NaN` timestamps (#22740) @rita-codes
104
+ - [scheduler] Tighten `StandaloneEventProps` data typing (#22796) @mustafajw07
105
+ - [scheduler] Update feedback banner to say beta instead of alpha (#22804) @rita-codes
106
+ - [scheduler] Use `@base-ui` `generateId` for event ids in `createEventModel` (#22788) @rita-codes
107
+ - [scheduler] Clear clipboard after pasting a cut event (#22773) @Anexus5919
108
+ - [scheduler] Show drag placeholder when re-entering the same position (#22775) @Anexus5919
109
+ - [scheduler] Validate missing and duplicate event ids (#22790) @Anexus5919
110
+ - [l10n] Improve Polish (pl-PL) locale (#22612) @adamowski10
111
+
112
+ #### `@mui/x-scheduler-premium@9.0.0-beta.2` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
113
+
114
+ Same changes as in `@mui/x-scheduler@9.0.0-beta.2`, plus:
115
+
116
+ - [scheduler-premium] Expose premium model types through public API (#22798) @mustafajw07
117
+ - [scheduler-premium] Remove non-functional `onPreferencesChange` prop from `EventTimelinePremium` (#22777) @rita-codes
118
+ - [scheduler-premium] Validate the `FREQ` value in `parseRRule`] (#22786) @rita-codes
119
+
120
+ ### Codemod
121
+
122
+ #### `@mui/x-codemod@9.6.0`
123
+
124
+ Internal changes.
125
+
126
+ ### Docs
127
+
128
+ - [docs] Fix link-check build timeout by disabling serve directory listing (#22836) @Janpot
129
+ - [docs] Show how to export maps (#22837) @alexfauquette
130
+ - [docs] Add radial bar overview demo with custom overlays (#22776) @JCQuintas
131
+ - [docs] Add weather composition demo (#22723) @TargiX
132
+ - [docs] Add docs overview gallery and playground (#22488) @hasdfa
133
+ - [docs] Clarify 'Scrolling without render gaps' (#22629) @oliviertassinari
134
+ - [docs] Fix typo in release instructions (#22864) @brijeshb42
135
+
136
+ ### Core
137
+
138
+ - [code-infra] Fix lint issues (#22757) @brijeshb42
139
+ - [code-infra] Fix remaining Dependabot security alerts (#22761) @Janpot
140
+ - [code-infra] Remove release:build from docs:build script (#22852) @brijeshb42
141
+ - [code-infra] Unpin `@mui/utils` version to allow dedupe (#22828) @mustafajw07
142
+ - [docs-infra] Cap Netlify Next.js build parallelism to avoid OOM (#22847) @Janpot
143
+ - [docs-infra] Remove i18n codebase (#22591) @brijeshb42
144
+ - [internal] Fix failing React 18 unit tests (#22846) @brijeshb42
145
+
146
+ ### Miscellaneous
147
+
148
+ - [core] Add remove-proptypes markers to generated `propTypes` (#22850) @JCQuintas
149
+ - [core] Bump vitest packages to 4.1.8 to fix browser-test version skew (#22845) @Janpot
150
+ - [core] Reduce e2e build concurrency to avoid OOM (#22843) @Janpot
151
+ - [core] Strip proptypes from Production bundles (#22750) @sai6855
152
+ - [test] Wait for `GridToolbarCustom` rows before screenshot (#22844) @Janpot
153
+
154
+ ## 9.5.0
155
+
156
+ _Jun 11, 2026_
157
+
158
+ We'd like to extend a big thank you to the 9 contributors who made this release possible. Here are some highlights ✨:
159
+
160
+ - 🎁 New [`multiSelect` column type for Data Grid Pro](https://mui.com/x/react-data-grid/column-definition/#MultiSelectColumn)
161
+ - 🚀 New [renderer="svg-progressive"](https://mui.com/x/react-charts/scatter/#progressive-renderer) paints scatter points in batched frames so large datasets render smoothly without blocking the main thread.
162
+ - 🐞 Bugfixes
163
+ - 📚 Documentation improvements
164
+
165
+ Special thanks go out to community members @mustafajw07 and @Anexus5919 for their valuable contribution.
166
+
167
+ The following team members contributed to this release:
168
+ @alexfauquette, @JCQuintas, @rita-codes, @rluzists1, @sai6855, @siriwatknp, @arminmeh, @brijeshb42
169
+
170
+ ### Data Grid
171
+
172
+ #### `@mui/x-data-grid@9.5.0`
173
+
174
+ - [DataGrid] Restrict warning messages to non-production environments in various components (#22461) @sai6855
175
+ - [DataGrid] Prevent React state update before mount (#22374) @arminmeh
176
+
177
+ #### `@mui/x-data-grid-pro@9.5.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
178
+
179
+ Same changes as in `@mui/x-data-grid@9.5.0`, plus:
180
+
181
+ - [DataGridPro] Add new `multiSelect` column type (#21157) @siriwatknp
182
+
183
+ #### `@mui/x-data-grid-premium@9.5.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
184
+
185
+ Same changes as in `@mui/x-data-grid-pro@9.5.0`.
186
+
187
+ ### Date and Time Pickers
188
+
189
+ #### `@mui/x-date-pickers@9.5.0`
190
+
191
+ - [pickers] Fix missing export of `th-TH` (#22703) @alexfauquette
192
+
193
+ #### `@mui/x-date-pickers-pro@9.5.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
194
+
195
+ Same changes as in `@mui/x-date-pickers@9.5.0`.
196
+
197
+ ### Charts
198
+
199
+ #### `@mui/x-charts@9.5.0`
200
+
201
+ - [charts] Add `FocusedBar` component to `BarScatterComposition` demo (#22704) @sai6855
202
+ - [charts] Add dedicated Bubble Chart documentation page (#22688) @mustafajw07
203
+ - [charts] Add progressive scatter renderer (#22518) @JCQuintas
204
+ - [charts] Avoid full axis pipeline rebuild on resize (#22695) @JCQuintas
205
+ - [charts] Document focus indicator in composition page (#22712) @JCQuintas
206
+ - [charts] Fix `ChartsTooltip` `container` and `disablePortal` props being ignored (#22690) @JCQuintas
207
+ - [charts] Make ordinal scales O(1) to copy and re-range (#22691) @JCQuintas
208
+ - [charts] Stabilize WebGL bar rendering at sub-pixel widths (#22678) @JCQuintas
209
+ - [charts] Use the series config to define value types (#22693) @sai6855
210
+ - [charts] Decouple interaction hook from the cartesian zoom (#22708) @alexfauquette
211
+
212
+ #### `@mui/x-charts-pro@9.5.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
213
+
214
+ Same changes as in `@mui/x-charts@9.5.0`, plus:
215
+
216
+ - [charts-pro] Add missing focus highlight (#22689) @alexfauquette
217
+
218
+ #### `@mui/x-charts-premium@9.5.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
219
+
220
+ Same changes as in `@mui/x-charts-pro@9.5.0`, plus:
221
+
222
+ - [charts-premium] Set `Heatmap` WebGL render as stable (#22665) @alexfauquette
223
+ - [charts-premium] Stabilize candlestick charts (#22666) @alexfauquette
224
+ - [charts-premium] Stabilize the radial charts (#22655) @alexfauquette
225
+
226
+ ### Scheduler
227
+
228
+ #### `@mui/x-scheduler@9.0.0-beta.1`
229
+
230
+ Internal changes.
231
+
232
+ #### `@mui/x-scheduler-premium@9.0.0-beta.1` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
233
+
234
+ Same changes as in `@mui/x-scheduler@9.0.0-beta.1`, plus:
235
+
236
+ - [scheduler] Remove dead CSS variable writes in `EventTimelinePremiumContent` (#22720) @rita-codes
237
+ - [scheduler] Show scope dialog when deleting a recurring event (#22552) @Anexus5919
238
+
239
+ ### Core
240
+
241
+ - [docs-infra] Fix immutable cache headers for `/\_next/static` assets (#22747) @brijeshb42
242
+ - [docs-infra] Prefix `/\_next/static` cache header rule with `/x` basePath (#22748) @brijeshb42
243
+ - [code-infra] Update dependencies to resolve Dependabot security alerts (#22714) @Janpot
244
+
245
+ ### Docs
246
+
247
+ - [docs] Fix broken links checker crashing on 404 known-targets fetch (#22707) @sai6855
248
+ - [docs] Fix country data (#22716) @alexfauquette
249
+
250
+ ### Miscellaneous
251
+
252
+ - [legal] Update EULA links in docs (#22717) @rluzists1
253
+
254
+ ## 9.4.0
255
+
256
+ <!-- generated comparing v9.3.0..master -->
257
+
258
+ _Jun 4, 2026_
259
+
260
+ We'd like to extend a big thank you to the 21 contributors who made this release possible. Here are some highlights ✨:
261
+
262
+ - 🎉 Scheduler is now in Beta shipping with Timeline vitualization and lazy loading
263
+ - 📆 Implement Event Timeline virtualization (#22339)
264
+ - 🫧 Introduce bubble charts (#22537)
265
+ - 🐞 Bugfixes
266
+ - 📚 Documentation improvements
267
+
268
+ Special thanks go out to these community members for their valuable contributions:
269
+ @imxv, @mixelburg, @mustafajw07
270
+
271
+ The following team members contributed to this release:
272
+ @aemartos, @alexfauquette, @arminmeh, @bernardobelchior, @cherniavskii, @flaviendelangle, @hasdfa, @Janpot, @JCQuintas, @joserodolfofreitas, @LukasTy, @MBilalShafi, @michelengelen, @mj12albert, @noraleonte, @oliviertassinari, @rita-codes, @romgrk, @sai6855
273
+
274
+ ### Data Grid
275
+
276
+ #### `@mui/x-data-grid@9.4.0`
277
+
278
+ - [DataGrid] Fix `avg` aggregation when the average is zero (#22652) @mj12albert
279
+ - [DataGrid] Inherit icon `fontSize` from `baseIconButton` size (#22187) @imxv
280
+ - [DataGrid] Fix `noRowsOverlay` flicker between `dataSource` re-fetches (#22465) @LukasTy
281
+
282
+ #### `@mui/x-data-grid-pro@9.4.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
283
+
284
+ Same changes as in `@mui/x-data-grid@9.4.0`.
285
+
286
+ #### `@mui/x-data-grid-premium@9.4.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
287
+
288
+ > This release includes a version bump of the `@mui/x-internal-exceljs-fork` package to address the vulnerable dependencies.
289
+ > The following CVEs are fixed:
290
+ >
291
+ > - <https://github.com/advisories/GHSA-ph9p-34f9-6g65>
292
+ > - <https://github.com/isaacs/minimatch/security/advisories/GHSA-23c5-xmqv-rm74>
293
+ > - <https://github.com/advisories/GHSA-w5hq-g745-h8pq>
294
+ >
295
+ > To make this security update possible, we bumped the `node` version requirement from `>=14.0.0` to `>=14.17.0`.
296
+ > [Node.js 14.17.0](https://nodejs.org/en/blog/release/v14.17.0) was released in May 2021, so we consider it safe to bump the requirement without causing issues for our users.
297
+
298
+ Same changes as in `@mui/x-data-grid-pro@9.4.0`, plus:
299
+
300
+ - [DataGridPremium] Nested Lazy Loading (#21043) @MBilalShafi
301
+ - [DataGridPremium] Update exceljs fork (#22658) @cherniavskii
302
+
303
+ ### Date and Time Pickers
304
+
305
+ #### `@mui/x-date-pickers@9.4.0`
306
+
307
+ Internal changes.
308
+
309
+ #### `@mui/x-date-pickers-pro@9.4.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
310
+
311
+ Same changes as in `@mui/x-date-pickers@9.4.0`.
312
+
313
+ ### Charts
314
+
315
+ #### `@mui/x-charts@9.4.0`
316
+
317
+ - [charts] Add functionality to hide elements during chart export (#22525) @sai6855
318
+ - [charts] Add option to show marks only on the first/last values (#22645) @alexfauquette
319
+ - [charts] Add text customization section and demo for axis labels (#22597) @sai6855
320
+ - [charts] Allow axes to scale according to the visible series only (#22566) @alexfauquette
321
+ - [charts] Correctly handle different identifiers for each series (#22556) @sai6855
322
+ - [charts] Fix inverted Y axis zoom/pan on ordinal scales (#22654) @JCQuintas
323
+ - [charts] Introduce bubble charts (#22537) @alexfauquette
324
+ - [charts] Let scatter chart tooltip ignore hidden series (#22614) @alexfauquette
325
+ - [charts] Make `'sqrt'` size mapping the default (#22683) @alexfauquette
326
+ - [charts] Remove unused proptypes (#22618) @alexfauquette
327
+ - [charts] Support module augmentation for slots (#22519) @sai6855
328
+ - [charts] Support multiple marker size in `findClosestPoint` (#22622) @alexfauquette
329
+ - [charts] Upgrade bezier-easing to v3 and use it for line chart hit-detection (#22608) @sai6855
330
+ - [charts] Use `useLayoutEffect` with `ResizeObserver` (#22646) @JCQuintas
331
+
332
+ #### `@mui/x-charts-pro@9.4.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
333
+
334
+ Same changes as in `@mui/x-charts@9.4.0`, plus:
335
+
336
+ - [charts-pro] Auto-select range button matching current zoom (#22137) @JCQuintas
337
+ - [charts-pro] Support range values in `initialZoom` (#22563) @JCQuintas
338
+
339
+ #### `@mui/x-charts-premium@9.4.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
340
+
341
+ Same changes as in `@mui/x-charts-pro@9.4.0`, plus:
342
+
343
+ - [charts-premium] Support range-bar series in WebGL bar renderer (#22607) @JCQuintas
344
+ - [charts-premium] Fix `onAxisClick` for radial bar and lines (#22522) @alexfauquette
345
+
346
+ ### Tree View
347
+
348
+ #### `@mui/x-tree-view@9.4.0`
349
+
350
+ Internal changes.
351
+
352
+ #### `@mui/x-tree-view-pro@9.4.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
353
+
354
+ Same changes as in `@mui/x-tree-view@9.4.0`.
355
+
356
+ ### Scheduler
357
+
358
+ #### Breaking changes
359
+
360
+ The theme `styleOverrides` slots for the skeleton and the error container were
361
+ renamed and unified. The CSS utility class names (for example
362
+ `.MuiEventCalendar-eventSkeleton`) are **not** affected — only
363
+ `theme.components.*` overrides need updating.
364
+
365
+ **Event skeleton**
366
+
367
+ | Before | After |
368
+ | --------------------------------------- | ------------------------------ |
369
+ | `MuiEventCalendar` slot `EventSkeleton` | `MuiEventSkeleton` slot `Root` |
370
+ | `MuiEventTimeline` slot `EventSkeleton` | `MuiEventSkeleton` slot `Root` |
371
+
372
+ **Error container**
373
+
374
+ | Before | After |
375
+ | ------------------------------------------------------------- | --------------------------------------- |
376
+ | `MuiEventCalendar` / `MuiEventTimeline` slot `ErrorContainer` | `MuiEventErrorContainer` slot `Root` |
377
+ | `MuiEventCalendar` / `MuiEventTimeline` slot `ErrorAlert` | `MuiEventErrorContainer` slot `Alert` |
378
+ | `MuiEventCalendar` / `MuiEventTimeline` slot `ErrorMessage` | `MuiEventErrorContainer` slot `Message` |
379
+
380
+ If you customized these through the theme, update the component name and slot
381
+ names accordingly:
382
+
383
+ ```diff
384
+ components: {
385
+ - MuiEventCalendar: {
386
+ + MuiEventSkeleton: {
387
+ styleOverrides: {
388
+ - EventSkeleton: { /* ... */ },
389
+ + Root: { /* ... */ },
390
+ },
391
+ },
392
+ },
393
+ }
394
+ ```
395
+
396
+ #### `@mui/x-scheduler@9.0.0-beta.0`
397
+
398
+ - [scheduler] Add a prop to control whether the resource of an event can be cleared (#22464) @rita-codes
399
+ - [scheduler] Add week number labels to agenda, day and week views (#22594) @mustafajw07
400
+ - [scheduler] Add `weekStartsOn` preference and update date functions to support custom week start (#22426) @mustafajw07
401
+ - [scheduler] Export premium version of the standalone views (#22621) @flaviendelangle
402
+ - [scheduler] Implement timeline virtualization (#22339) @romgrk
403
+ - [scheduler] Split scheduler overview (#22453) @joserodolfofreitas
404
+ - [scheduler] Unify `EventSkeleton` and `ErrorContainer` between `EventCalendar` and `EventTimeline` (#22676) @noraleonte
405
+
406
+ #### `@mui/x-scheduler-premium@9.0.0-beta.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
407
+
408
+ Same changes as in `@mui/x-scheduler@9.0.0-beta.0`.
409
+
410
+ ### Docs
411
+
412
+ - [docs] Add a performance docs page for charts (#22656) @alexfauquette
413
+ - [docs] Add real dataset for maps documentation (#22599) @alexfauquette
414
+ - [docs] Add spacing between selects on charts overview demo (#22589) @bernardobelchior
415
+ - [docs] Reorganize existing chat docs navigation (#22478) @hasdfa
416
+ - [docs] Switch to visionscarto's world atlas dataset (#22669) @cherniavskii
417
+ - [docs] Update TreeView `domstructure` docs and add demo (#22420) @mj12albert
418
+ - [docs] Fix indexation of Scheduler (#22567) @oliviertassinari
419
+ - [docs] Fix wide layout on event timeline lazy loading and Import title (#22604) @rita-codes
420
+ - [docs] Derive class name owners for shared charts classes (#22674) @JCQuintas
421
+
422
+ ### Core
423
+
424
+ - [code-infra] Drop unused and now-transitive deps from docs/package.json (#22549) @LukasTy
425
+ - [code-infra] Refresh CI Node pins to 22.22.3 (#22598) @LukasTy
426
+ - [code-infra] Skip empty product sections in changelog (#22541) @rita-codes
427
+ - [code-infra] Stabilize DataGridScrollRestoration visual regression test (#22553) @Janpot
428
+ - [internal] Add license to the `x-data-grid-generator` (#22240) @arminmeh
429
+ - [internal] Express default value for resource_class (#22569) @oliviertassinari
430
+ - [internal] Fix use of ellipsis (#21852) @oliviertassinari
431
+ - [internal] `useLayoutEffect` with `ResizeObserver` (#22428) @romgrk
432
+
433
+ ### Miscellaneous
434
+
435
+ - [chat-headless] Add built-in chat adapters (#22479) @hasdfa
436
+ - [chat-headless] Harden runtime model and message errors (#22480) @hasdfa
437
+ - [core] Prepare for TypeScript 6 bump (#22551) @LukasTy
438
+ - [core] Use CircleCI Gen2 resource classes (#22610) @LukasTy
439
+ - [infra] Fix broken tag retrieval on `master` during release (#22174) @michelengelen
440
+ - [infra] Group Base UI renovate updates (#22590) @LukasTy
441
+ - [pnpm] Add security settings to pnpm-workspace.yaml (#22611) @Janpot
442
+ - [release] Fix release PR scripts (#22680) @JCQuintas
443
+ - [test] Add a Tree View regression test for lazy loading with getChildrenCount returning -1 (#22605) @mixelburg
444
+ - [test] Disable LCD subpixel antialiasing in regression screenshots (#22602) @Janpot
445
+ - [test] Fix flaky Data Grid Pro data source tree data tests (#22659) @LukasTy
446
+ - [test] Remove stale form-submit TODO from e2e suite (#22564) @LukasTy
447
+ - [x-license] Exclude test keys from the published npm package (#22647) @aemartos
448
+ - [test] Fix flaky WebGL benchmark by polling for canvas content (#22535) @JCQuintas
449
+
450
+ ## 9.3.0
451
+
452
+ _May 21, 2026_
453
+
454
+ We'd like to extend a big thank you to the 16 contributors who made this release possible. Here are some highlights ✨:
455
+
456
+ - 📆 Refactor Calendar Range drag editing to use Pointer Events instead of drag and touch events combination (#22279)
457
+ - ✨ Apply lazy loading to `EventTimelinePremium` (#22308)
458
+ - 🐞 Bugfixes
459
+ - 📚 Documentation improvements
460
+ - 🌎 Added Norwegian bokmål (nb-NO) locale to the Scheduler
461
+ - 🌎 Improved Swedish (sv-SE) locale on the Data Grid
462
+
463
+ Special thanks go out to these community members for their valuable contributions:
464
+ @Anexus5919, @jvskriubakken, @oscar-b, @rin, @viktormelin
465
+
466
+ The following team members contributed to this release:
467
+ @aemartos, @alexfauquette, @arminmeh, @Janpot, @JCQuintas, @LukasTy, @mj12albert, @oliviertassinari, @rita-codes, @romgrk, @sai6855
468
+
469
+ ### Data Grid
470
+
471
+ #### `@mui/x-data-grid@9.3.0`
472
+
473
+ - [DataGrid] Fix scrollbar disappearing after multiple resizes (#22512) @LukasTy
474
+ - [DataGrid] Revert "Add support for pinned columns in `GridVirtualScroller`" (#22467) @oliviertassinari
475
+ - [l10n] Improve Swedish (svSE) locale (#21851) @viktormelin
476
+
477
+ #### `@mui/x-data-grid-pro@9.3.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
478
+
479
+ Same changes as in `@mui/x-data-grid@9.3.0`.
480
+
481
+ #### `@mui/x-data-grid-premium@9.3.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
482
+
483
+ Same changes as in `@mui/x-data-grid-pro@9.3.0`.
484
+
485
+ ### Date and Time Pickers
486
+
487
+ #### `@mui/x-date-pickers@9.3.0`
488
+
489
+ - [pickers] Fix disabled state styling for `PickersTextField` standard and filled variants (#22189) @LukasTy
490
+ - [pickers] Fix previous month disabled state calculation (#22524) @mj12albert
491
+ - [pickers] Merge `slotProps.sectionContent` in `PickersInputBase` (#22324) @rin
492
+
493
+ #### `@mui/x-date-pickers-pro@9.3.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
494
+
495
+ Same changes as in `@mui/x-date-pickers@9.3.0`, plus:
496
+
497
+ - [DateRangeCalendar] Use Pointer Events for drag editing (#22279) @LukasTy
498
+
499
+ ### Charts
500
+
501
+ #### `@mui/x-charts@9.3.0`
502
+
503
+ - [charts] Add `data-series` to elements of radar chart (#22523) @alexfauquette
504
+ - [charts] Add environment check for warning messages in axis and radar hooks (#22506) @sai6855
505
+ - [charts] Chart `seriesConfig` deduplication for lines and bars (#22257) @sai6855
506
+ - [charts] Fix highlighted item crash (#22539) @oscar-b
507
+ - [charts] Fix the line and mark class (#22526) @alexfauquette
508
+ - [charts] Fix use of deprecated API in docs (#22469) @oliviertassinari
509
+ - [charts] Improve performance of `evaluateCurveY` function (#22407) @sai6855
510
+
511
+ #### `@mui/x-charts-pro@9.3.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
512
+
513
+ Same changes as in `@mui/x-charts@9.3.0`.
514
+
515
+ #### `@mui/x-charts-premium@9.3.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
516
+
517
+ Same changes as in `@mui/x-charts-pro@9.3.0`, plus:
518
+
519
+ - [charts-premium] Add `closePath` option to the radial line series (#22517) @alexfauquette
520
+
521
+ ### Tree View
522
+
523
+ #### `@mui/x-tree-view-pro@9.3.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
524
+
525
+ Internal changes.
526
+
527
+ ### Scheduler
528
+
529
+ #### `@mui/x-scheduler@9.0.0-alpha.7`
530
+
531
+ - [I10n] Add Norwegian bokmål (nb-NO) locale (#22415) @jvskriubakken
532
+
533
+ #### `@mui/x-scheduler-premium@9.0.0-alpha.7` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
534
+
535
+ Same changes as in `@mui/x-scheduler@9.0.0-alpha.7`, plus:
536
+
537
+ - [scheduler] Apply lazy loading to `EventTimelinePremium` (#22308) @rita-codes
538
+ - [scheduler] Deduplicate staged ranges within the debounce window (#22476) @Anexus5919
539
+ - [scheduler] Pass full event objects to `dataSource.updateEvents` (#22462) @rita-codes
540
+
541
+ ### Docs
542
+
543
+ - [docs] Automatically update supported versions (#21850) @arminmeh
544
+ - [docs] Fix `New` label on bar charts docs (#22473) @oliviertassinari
545
+ - [docs] Improve premium page header for charts (#22474) @oliviertassinari
546
+ - [docs] Sync `README` with licensing/licensing.md in scheduler (#22468) @oliviertassinari
547
+
548
+ ### Core
549
+
550
+ - [code-infra] Cover docs overview composites with Argos (#22283) @LukasTy
551
+ - [code-infra] Enable `mui/no-presentation-role` lint rule (#22360) @Janpot
552
+ - [code-infra] Make generated `propTypes` union order deterministic (#22521) @JCQuintas
553
+ - [code-infra] Make screenshots stable across different ordering of the tests (#22449) @Janpot
554
+ - [code-infra] Optimize visual regression testing (#22447) @Janpot
555
+ - [code-infra] Replace markdownlint with remark from code-infra (#22255) @Janpot
556
+
557
+ ### Miscellaneous
558
+
559
+ - [virtualizer] Improve `controlled` mode performance (#22123) @romgrk
560
+ - [data-grid-generator] Include `tree-data` params in `useDemoData` cache key (#22456) @Janpot
561
+ - [test] Fix flaky browser tests and optimize (#22431) @Janpot
562
+ - [test] Speed up `test_types` job (#22442) @Janpot
563
+ - [test] Trim ffmpeg install in `test_regressions` (#22459) @Janpot
564
+ - [test] Add WebGL performance benchmarks for charts (#22471) @JCQuintas
565
+ - [test] Expand chart performance benchmarks for charts (#22472) @JCQuintas
566
+ - [x-license] use workspace dep for v9 in cross-major compat tests (#22504) @aemartos
567
+
3
568
  ## 9.2.0
4
569
 
5
570
  _May 13, 2026_
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-license v9.2.0
2
+ * @mui/x-license v9.6.0
3
3
  *
4
4
  * @license SEE LICENSE IN LICENSE
5
5
  * This source code is licensed under the SEE LICENSE IN LICENSE license found in the
package/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-license v9.2.0
2
+ * @mui/x-license v9.6.0
3
3
  *
4
4
  * @license SEE LICENSE IN LICENSE
5
5
  * This source code is licensed under the SEE LICENSE IN LICENSE license found in the
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mui/x-license",
3
- "version": "9.2.0",
3
+ "version": "9.6.0",
4
4
  "author": "MUI Team",
5
5
  "description": "MUI X License verification.",
6
6
  "license": "SEE LICENSE IN LICENSE",
@@ -21,9 +21,9 @@
21
21
  "directory": "packages/x-license"
22
22
  },
23
23
  "dependencies": {
24
- "@babel/runtime": "^7.29.2",
25
- "@mui/utils": "9.0.1",
26
- "@mui/x-internals": "^9.1.0",
24
+ "@babel/runtime": "^7.29.7",
25
+ "@mui/utils": "^9.0.1",
26
+ "@mui/x-internals": "^9.6.0",
27
27
  "@mui/x-telemetry": "^9.2.0"
28
28
  },
29
29
  "peerDependencies": {
@@ -62,22 +62,11 @@
62
62
  "types": "./internals/index.d.mts",
63
63
  "default": "./internals/index.mjs"
64
64
  }
65
- },
66
- "./test-keys": {
67
- "import": {
68
- "types": "./test-keys.d.mts",
69
- "default": "./test-keys.mjs"
70
- },
71
- "require": {
72
- "types": "./test-keys.d.ts",
73
- "default": "./test-keys.js"
74
- },
75
- "default": {
76
- "types": "./test-keys.d.mts",
77
- "default": "./test-keys.mjs"
78
- }
79
65
  }
80
66
  },
67
+ "imports": {
68
+ "#formatErrorMessage": "@mui/x-internals/formatErrorMessage"
69
+ },
81
70
  "main": "./index.js",
82
71
  "types": "./index.d.ts"
83
72
  }
package/test-keys.d.mts DELETED
@@ -1,107 +0,0 @@
1
- /**
2
- * Test Premium license key.
3
- * orderId: #123, scope: premium, licenseModel: annual, planVersion: Q3-2024
4
- * keyVersion: 2, expiryDate: 2099-12-30T23:00:00.000Z
5
- */
6
- export declare const TEST_LICENSE_KEY_PREMIUM = "715a2f48d6140e8e6f2484e6c4b981aeTz0xMjMsRT00MTAyMzU0ODAwMDAwLFM9cHJlbWl1bSxMTT1hbm51YWwsUFY9UTMtMjAyNCxUPXRydWUsS1Y9Mg==";
7
- /**
8
- * Test Pro license key.
9
- * orderId: #123, scope: pro, licenseModel: annual, planVersion: Q3-2024
10
- * keyVersion: 2, expiryDate: 2099-12-30T23:00:00.000Z
11
- */
12
- export declare const TEST_LICENSE_KEY_PRO = "8d0500f3fe93ffea84445b2aed17c59cTz0xMjMsRT00MTAyMzU0ODAwMDAwLFM9cHJvLExNPWFubnVhbCxQVj1RMy0yMDI0LFQ9dHJ1ZSxLVj0y";
13
- /**
14
- * Key version 1 format (pro, perpetual, initial implied).
15
- * orderId: #123, expiryDate: 2026-08-02
16
- */
17
- export declare const TEST_KEY_V1 = "8f5bd7d70e4d7aeecd1d5b9d0d1759bbT1JERVI6MTIzLEVYUElSWT0xNzg1ODc0MDEwNzA4LFQ9dHJ1ZSxLRVlWRVJTSU9OPTE=";
18
- /**
19
- * Pro subscription, initial, expiry = releaseDate + 1 day.
20
- * orderId: #123, keyVersion: 2
21
- */
22
- export declare const TEST_KEY_PRO_SUBSCRIPTION = "b4cb282aa165b05f65f70a4caddadc81Tz0xMjMsRT0xNTE0NzYxMjAwMDAwLFM9cHJvLExNPXN1YnNjcmlwdGlvbixQVj1pbml0aWFsLFQ9dHJ1ZSxLVj0y";
23
- /**
24
- * Premium subscription, initial, expiry = releaseDate + 1 day.
25
- * orderId: #123, keyVersion: 2
26
- */
27
- export declare const TEST_KEY_PREMIUM_SUBSCRIPTION = "22bd1051015e3c663f8ca5cba9ebe56aTz0xMjMsRT0xNTE0NzYxMjAwMDAwLFM9cHJlbWl1bSxMTT1zdWJzY3JpcHRpb24sUFY9aW5pdGlhbCxUPXRydWUsS1Y9Mg==";
28
- /**
29
- * Pro perpetual, initial, expiry = releaseDate + 1 day (valid).
30
- * orderId: #123, keyVersion: 2
31
- */
32
- export declare const TEST_KEY_PRO_PERPETUAL = "f4221ac32d1b8b102c143dcf65080414Tz0xMjMsRT0xNTE0NzYxMjAwMDAwLFM9cHJvLExNPXBlcnBldHVhbCxQVj1pbml0aWFsLFQ9dHJ1ZSxLVj0y";
33
- /**
34
- * Pro perpetual, initial, expiry = releaseDate - 1 day (expired before release).
35
- * orderId: #123, keyVersion: 2
36
- */
37
- export declare const TEST_KEY_PRO_PERPETUAL_EXPIRED = "64245e2bb861fc92856e682b32dc8bf2Tz0xMjMsRT0xNTE0NTg4NDAwMDAwLFM9cHJvLExNPXBlcnBldHVhbCxQVj1pbml0aWFsLFQ9dHJ1ZSxLVj0y";
38
- /**
39
- * Pro annual, initial, expiry = releaseDate + 1 day.
40
- * orderId: #123, keyVersion: 2
41
- */
42
- export declare const TEST_KEY_PRO_ANNUAL_INITIAL = "d82e3196c55fc5dc21a4145b796a77a7Tz0xMjMsRT0xNTE0NzYxMjAwMDAwLFM9cHJvLExNPWFubnVhbCxQVj1pbml0aWFsLFQ9dHJ1ZSxLVj0y";
43
- /**
44
- * Premium annual, initial, expiry = releaseDate + 1 day.
45
- * orderId: #123, keyVersion: 2
46
- */
47
- export declare const TEST_KEY_PREMIUM_ANNUAL_INITIAL = "8fc9fa79e1b5f30ce737ccec8f3e36f4Tz0xMjMsRT0xNTE0NzYxMjAwMDAwLFM9cHJlbWl1bSxMTT1hbm51YWwsUFY9aW5pdGlhbCxUPXRydWUsS1Y9Mg==";
48
- /**
49
- * Pro subscription, initial, expiry = 2024-06-14 (fakeNow - 1 day, within grace period).
50
- * orderId: #123, keyVersion: 2
51
- */
52
- export declare const TEST_KEY_EXPIRED_GRACE = "84dcbd1c5a6169c74e6c70ec23e0df55Tz0xMjMsRT0xNzE4MzIzMjAwMDAwLFM9cHJvLExNPXN1YnNjcmlwdGlvbixQVj1pbml0aWFsLFQ9dHJ1ZSxLVj0y";
53
- /**
54
- * Pro subscription, initial, expiry = 2024-05-16 (fakeNow - 30 days, past grace period).
55
- * orderId: #123, keyVersion: 2
56
- */
57
- export declare const TEST_KEY_EXPIRED_30DAYS = "4081d3863dda2ca60be4a5b29f582117Tz0xMjMsRT0xNzE1ODE3NjAwMDAwLFM9cHJvLExNPXN1YnNjcmlwdGlvbixQVj1pbml0aWFsLFQ9dHJ1ZSxLVj0y";
58
- /**
59
- * Pro subscription, initial, expiry = 3001-01-01.
60
- * orderId: #123, keyVersion: 2
61
- */
62
- export declare const TEST_KEY_PRO_SUBSCRIPTION_FUTURE = "e83a283135bbd911e4aa0fd55ceea3ebTz0xMjMsRT0zMjUzNTEyNjAwMDAwMCxTPXBybyxMTT1zdWJzY3JpcHRpb24sUFY9aW5pdGlhbCxUPXRydWUsS1Y9Mg==";
63
- /**
64
- * Premium subscription, initial, expiry = 3001-01-01.
65
- * orderId: #123, keyVersion: 2
66
- */
67
- export declare const TEST_KEY_PREMIUM_SUBSCRIPTION_FUTURE = "1c6ea00fadedfcb3f2ef393f1de32f29Tz0xMjMsRT0zMjUzNTEyNjAwMDAwMCxTPXByZW1pdW0sTE09c3Vic2NyaXB0aW9uLFBWPWluaXRpYWwsVD10cnVlLEtWPTI=";
68
- /**
69
- * Pro annual, Q1-2026, expiry = 3001-01-01.
70
- * orderId: #123, keyVersion: 2
71
- */
72
- export declare const TEST_KEY_PRO_ANNUAL_Q1_2026 = "10c66120eda205131bf0a2074a3fddc8Tz0xMjMsRT0zMjUzNTEyNjAwMDAwMCxTPXBybyxMTT1hbm51YWwsUFY9UTEtMjAyNixUPXRydWUsS1Y9Mg==";
73
- /**
74
- * Pro annual, Q3-2024, quantity: 5, appType: single.
75
- * orderId: #123, keyVersion: 3, expiryDate: 2099-12-30T23:00:00.000Z
76
- */
77
- export declare const TEST_KEY_PRO_ANNUAL_V3 = "521a75b4cf0d0c5e8990ce070886e167Tz0xMjMsRT00MTAyMzU0ODAwMDAwLFM9cHJvLExNPWFubnVhbCxQVj1RMy0yMDI0LFE9NSxBVD1zaW5nbGUsVD10cnVlLEtWPTM=";
78
- /**
79
- * Pro annual, Q1-2026, quantity: 5, appType: single.
80
- * orderId: #123, keyVersion: 3, expiryDate: 3001-01-01
81
- */
82
- export declare const TEST_KEY_PRO_ANNUAL_Q1_2026_V3 = "5f52871b5845f28ebdd0fabbe0b89695Tz0xMjMsRT0zMjUzNTEyNjAwMDAwMCxTPXBybyxMTT1hbm51YWwsUFY9UTEtMjAyNixRPTUsQVQ9c2luZ2xlLFQ9dHJ1ZSxLVj0z";
83
- /**
84
- * Premium annual, Q1-2026, quantity: 10, appType: single.
85
- * orderId: #123, keyVersion: 3, expiryDate: 3001-01-01
86
- */
87
- export declare const TEST_KEY_PREMIUM_ANNUAL_Q1_2026_V3 = "450d9fc1b28e709fcb73969bd10e1c30Tz0xMjMsRT0zMjUzNTEyNjAwMDAwMCxTPXByZW1pdW0sTE09YW5udWFsLFBWPVExLTIwMjYsUT0xMCxBVD1zaW5nbGUsVD10cnVlLEtWPTM=";
88
- /**
89
- * Pro perpetual, Q1-2026, expiry = releaseDate + 1 day (not expired).
90
- * orderId: #123, keyVersion: 2
91
- */
92
- export declare const TEST_KEY_PRO_PERPETUAL_Q1_2026 = "5f78509380f3ea3b3c91d7af3f5496eaTz0xMjMsRT0xNTE0NzYxMjAwMDAwLFM9cHJvLExNPXBlcnBldHVhbCxQVj1RMS0yMDI2LFQ9dHJ1ZSxLVj0y";
93
- /**
94
- * Pro perpetual, Q1-2026, expiry = releaseDate - 1 day (expired before release).
95
- * orderId: #123, keyVersion: 2
96
- */
97
- export declare const TEST_KEY_PRO_PERPETUAL_Q1_2026_EXPIRED = "191d8aaf174e38bcbf367e07fa39e423Tz0xMjMsRT0xNTE0NTg4NDAwMDAwLFM9cHJvLExNPXBlcnBldHVhbCxQVj1RMS0yMDI2LFQ9dHJ1ZSxLVj0y";
98
- /**
99
- * Invalid key: hash does not match payload (tampered).
100
- * Used to test that verifyLicense rejects tampered keys.
101
- */
102
- export declare const TEST_KEY_INVALID = "c0b3c1c31055976260628def9b697020TkFNRTpNYC1VSSBTQVMsREVWRUxPUEVSX0NPVU5UPTEwLEVYUElSWT0xNTkxNzIzMDY3MDQyLFZFUlNJT049MS4yLjMsVD10cnVl";
103
- /**
104
- * Valid hash but unknown key version (KV=99).
105
- * Used to test that decodeLicense returns null for unrecognized versions.
106
- */
107
- export declare const TEST_KEY_UNKNOWN_VERSION = "64152474c774ae343484f08bbbc1a231Tz0xMjMsRT0xNTE0NzYxMjAwMDAwLFM9cHJvLExNPWFubnVhbCxQVj1pbml0aWFsLFQ9dHJ1ZSxLVj05OQ==";
package/test-keys.d.ts DELETED
@@ -1,107 +0,0 @@
1
- /**
2
- * Test Premium license key.
3
- * orderId: #123, scope: premium, licenseModel: annual, planVersion: Q3-2024
4
- * keyVersion: 2, expiryDate: 2099-12-30T23:00:00.000Z
5
- */
6
- export declare const TEST_LICENSE_KEY_PREMIUM = "715a2f48d6140e8e6f2484e6c4b981aeTz0xMjMsRT00MTAyMzU0ODAwMDAwLFM9cHJlbWl1bSxMTT1hbm51YWwsUFY9UTMtMjAyNCxUPXRydWUsS1Y9Mg==";
7
- /**
8
- * Test Pro license key.
9
- * orderId: #123, scope: pro, licenseModel: annual, planVersion: Q3-2024
10
- * keyVersion: 2, expiryDate: 2099-12-30T23:00:00.000Z
11
- */
12
- export declare const TEST_LICENSE_KEY_PRO = "8d0500f3fe93ffea84445b2aed17c59cTz0xMjMsRT00MTAyMzU0ODAwMDAwLFM9cHJvLExNPWFubnVhbCxQVj1RMy0yMDI0LFQ9dHJ1ZSxLVj0y";
13
- /**
14
- * Key version 1 format (pro, perpetual, initial implied).
15
- * orderId: #123, expiryDate: 2026-08-02
16
- */
17
- export declare const TEST_KEY_V1 = "8f5bd7d70e4d7aeecd1d5b9d0d1759bbT1JERVI6MTIzLEVYUElSWT0xNzg1ODc0MDEwNzA4LFQ9dHJ1ZSxLRVlWRVJTSU9OPTE=";
18
- /**
19
- * Pro subscription, initial, expiry = releaseDate + 1 day.
20
- * orderId: #123, keyVersion: 2
21
- */
22
- export declare const TEST_KEY_PRO_SUBSCRIPTION = "b4cb282aa165b05f65f70a4caddadc81Tz0xMjMsRT0xNTE0NzYxMjAwMDAwLFM9cHJvLExNPXN1YnNjcmlwdGlvbixQVj1pbml0aWFsLFQ9dHJ1ZSxLVj0y";
23
- /**
24
- * Premium subscription, initial, expiry = releaseDate + 1 day.
25
- * orderId: #123, keyVersion: 2
26
- */
27
- export declare const TEST_KEY_PREMIUM_SUBSCRIPTION = "22bd1051015e3c663f8ca5cba9ebe56aTz0xMjMsRT0xNTE0NzYxMjAwMDAwLFM9cHJlbWl1bSxMTT1zdWJzY3JpcHRpb24sUFY9aW5pdGlhbCxUPXRydWUsS1Y9Mg==";
28
- /**
29
- * Pro perpetual, initial, expiry = releaseDate + 1 day (valid).
30
- * orderId: #123, keyVersion: 2
31
- */
32
- export declare const TEST_KEY_PRO_PERPETUAL = "f4221ac32d1b8b102c143dcf65080414Tz0xMjMsRT0xNTE0NzYxMjAwMDAwLFM9cHJvLExNPXBlcnBldHVhbCxQVj1pbml0aWFsLFQ9dHJ1ZSxLVj0y";
33
- /**
34
- * Pro perpetual, initial, expiry = releaseDate - 1 day (expired before release).
35
- * orderId: #123, keyVersion: 2
36
- */
37
- export declare const TEST_KEY_PRO_PERPETUAL_EXPIRED = "64245e2bb861fc92856e682b32dc8bf2Tz0xMjMsRT0xNTE0NTg4NDAwMDAwLFM9cHJvLExNPXBlcnBldHVhbCxQVj1pbml0aWFsLFQ9dHJ1ZSxLVj0y";
38
- /**
39
- * Pro annual, initial, expiry = releaseDate + 1 day.
40
- * orderId: #123, keyVersion: 2
41
- */
42
- export declare const TEST_KEY_PRO_ANNUAL_INITIAL = "d82e3196c55fc5dc21a4145b796a77a7Tz0xMjMsRT0xNTE0NzYxMjAwMDAwLFM9cHJvLExNPWFubnVhbCxQVj1pbml0aWFsLFQ9dHJ1ZSxLVj0y";
43
- /**
44
- * Premium annual, initial, expiry = releaseDate + 1 day.
45
- * orderId: #123, keyVersion: 2
46
- */
47
- export declare const TEST_KEY_PREMIUM_ANNUAL_INITIAL = "8fc9fa79e1b5f30ce737ccec8f3e36f4Tz0xMjMsRT0xNTE0NzYxMjAwMDAwLFM9cHJlbWl1bSxMTT1hbm51YWwsUFY9aW5pdGlhbCxUPXRydWUsS1Y9Mg==";
48
- /**
49
- * Pro subscription, initial, expiry = 2024-06-14 (fakeNow - 1 day, within grace period).
50
- * orderId: #123, keyVersion: 2
51
- */
52
- export declare const TEST_KEY_EXPIRED_GRACE = "84dcbd1c5a6169c74e6c70ec23e0df55Tz0xMjMsRT0xNzE4MzIzMjAwMDAwLFM9cHJvLExNPXN1YnNjcmlwdGlvbixQVj1pbml0aWFsLFQ9dHJ1ZSxLVj0y";
53
- /**
54
- * Pro subscription, initial, expiry = 2024-05-16 (fakeNow - 30 days, past grace period).
55
- * orderId: #123, keyVersion: 2
56
- */
57
- export declare const TEST_KEY_EXPIRED_30DAYS = "4081d3863dda2ca60be4a5b29f582117Tz0xMjMsRT0xNzE1ODE3NjAwMDAwLFM9cHJvLExNPXN1YnNjcmlwdGlvbixQVj1pbml0aWFsLFQ9dHJ1ZSxLVj0y";
58
- /**
59
- * Pro subscription, initial, expiry = 3001-01-01.
60
- * orderId: #123, keyVersion: 2
61
- */
62
- export declare const TEST_KEY_PRO_SUBSCRIPTION_FUTURE = "e83a283135bbd911e4aa0fd55ceea3ebTz0xMjMsRT0zMjUzNTEyNjAwMDAwMCxTPXBybyxMTT1zdWJzY3JpcHRpb24sUFY9aW5pdGlhbCxUPXRydWUsS1Y9Mg==";
63
- /**
64
- * Premium subscription, initial, expiry = 3001-01-01.
65
- * orderId: #123, keyVersion: 2
66
- */
67
- export declare const TEST_KEY_PREMIUM_SUBSCRIPTION_FUTURE = "1c6ea00fadedfcb3f2ef393f1de32f29Tz0xMjMsRT0zMjUzNTEyNjAwMDAwMCxTPXByZW1pdW0sTE09c3Vic2NyaXB0aW9uLFBWPWluaXRpYWwsVD10cnVlLEtWPTI=";
68
- /**
69
- * Pro annual, Q1-2026, expiry = 3001-01-01.
70
- * orderId: #123, keyVersion: 2
71
- */
72
- export declare const TEST_KEY_PRO_ANNUAL_Q1_2026 = "10c66120eda205131bf0a2074a3fddc8Tz0xMjMsRT0zMjUzNTEyNjAwMDAwMCxTPXBybyxMTT1hbm51YWwsUFY9UTEtMjAyNixUPXRydWUsS1Y9Mg==";
73
- /**
74
- * Pro annual, Q3-2024, quantity: 5, appType: single.
75
- * orderId: #123, keyVersion: 3, expiryDate: 2099-12-30T23:00:00.000Z
76
- */
77
- export declare const TEST_KEY_PRO_ANNUAL_V3 = "521a75b4cf0d0c5e8990ce070886e167Tz0xMjMsRT00MTAyMzU0ODAwMDAwLFM9cHJvLExNPWFubnVhbCxQVj1RMy0yMDI0LFE9NSxBVD1zaW5nbGUsVD10cnVlLEtWPTM=";
78
- /**
79
- * Pro annual, Q1-2026, quantity: 5, appType: single.
80
- * orderId: #123, keyVersion: 3, expiryDate: 3001-01-01
81
- */
82
- export declare const TEST_KEY_PRO_ANNUAL_Q1_2026_V3 = "5f52871b5845f28ebdd0fabbe0b89695Tz0xMjMsRT0zMjUzNTEyNjAwMDAwMCxTPXBybyxMTT1hbm51YWwsUFY9UTEtMjAyNixRPTUsQVQ9c2luZ2xlLFQ9dHJ1ZSxLVj0z";
83
- /**
84
- * Premium annual, Q1-2026, quantity: 10, appType: single.
85
- * orderId: #123, keyVersion: 3, expiryDate: 3001-01-01
86
- */
87
- export declare const TEST_KEY_PREMIUM_ANNUAL_Q1_2026_V3 = "450d9fc1b28e709fcb73969bd10e1c30Tz0xMjMsRT0zMjUzNTEyNjAwMDAwMCxTPXByZW1pdW0sTE09YW5udWFsLFBWPVExLTIwMjYsUT0xMCxBVD1zaW5nbGUsVD10cnVlLEtWPTM=";
88
- /**
89
- * Pro perpetual, Q1-2026, expiry = releaseDate + 1 day (not expired).
90
- * orderId: #123, keyVersion: 2
91
- */
92
- export declare const TEST_KEY_PRO_PERPETUAL_Q1_2026 = "5f78509380f3ea3b3c91d7af3f5496eaTz0xMjMsRT0xNTE0NzYxMjAwMDAwLFM9cHJvLExNPXBlcnBldHVhbCxQVj1RMS0yMDI2LFQ9dHJ1ZSxLVj0y";
93
- /**
94
- * Pro perpetual, Q1-2026, expiry = releaseDate - 1 day (expired before release).
95
- * orderId: #123, keyVersion: 2
96
- */
97
- export declare const TEST_KEY_PRO_PERPETUAL_Q1_2026_EXPIRED = "191d8aaf174e38bcbf367e07fa39e423Tz0xMjMsRT0xNTE0NTg4NDAwMDAwLFM9cHJvLExNPXBlcnBldHVhbCxQVj1RMS0yMDI2LFQ9dHJ1ZSxLVj0y";
98
- /**
99
- * Invalid key: hash does not match payload (tampered).
100
- * Used to test that verifyLicense rejects tampered keys.
101
- */
102
- export declare const TEST_KEY_INVALID = "c0b3c1c31055976260628def9b697020TkFNRTpNYC1VSSBTQVMsREVWRUxPUEVSX0NPVU5UPTEwLEVYUElSWT0xNTkxNzIzMDY3MDQyLFZFUlNJT049MS4yLjMsVD10cnVl";
103
- /**
104
- * Valid hash but unknown key version (KV=99).
105
- * Used to test that decodeLicense returns null for unrecognized versions.
106
- */
107
- export declare const TEST_KEY_UNKNOWN_VERSION = "64152474c774ae343484f08bbbc1a231Tz0xMjMsRT0xNTE0NzYxMjAwMDAwLFM9cHJvLExNPWFubnVhbCxQVj1pbml0aWFsLFQ9dHJ1ZSxLVj05OQ==";
package/test-keys.js DELETED
@@ -1,157 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.TEST_LICENSE_KEY_PRO = exports.TEST_LICENSE_KEY_PREMIUM = exports.TEST_KEY_V1 = exports.TEST_KEY_UNKNOWN_VERSION = exports.TEST_KEY_PRO_SUBSCRIPTION_FUTURE = exports.TEST_KEY_PRO_SUBSCRIPTION = exports.TEST_KEY_PRO_PERPETUAL_Q1_2026_EXPIRED = exports.TEST_KEY_PRO_PERPETUAL_Q1_2026 = exports.TEST_KEY_PRO_PERPETUAL_EXPIRED = exports.TEST_KEY_PRO_PERPETUAL = exports.TEST_KEY_PRO_ANNUAL_V3 = exports.TEST_KEY_PRO_ANNUAL_Q1_2026_V3 = exports.TEST_KEY_PRO_ANNUAL_Q1_2026 = exports.TEST_KEY_PRO_ANNUAL_INITIAL = exports.TEST_KEY_PREMIUM_SUBSCRIPTION_FUTURE = exports.TEST_KEY_PREMIUM_SUBSCRIPTION = exports.TEST_KEY_PREMIUM_ANNUAL_Q1_2026_V3 = exports.TEST_KEY_PREMIUM_ANNUAL_INITIAL = exports.TEST_KEY_INVALID = exports.TEST_KEY_EXPIRED_GRACE = exports.TEST_KEY_EXPIRED_30DAYS = void 0;
7
- // =============================================================================
8
- // Test license keys for use in test suites.
9
- // All keys contain T=true in their payload and are rejected outside test environments.
10
- // Import via '@mui/x-license/internals'.
11
- // =============================================================================
12
-
13
- /**
14
- * Test Premium license key.
15
- * orderId: #123, scope: premium, licenseModel: annual, planVersion: Q3-2024
16
- * keyVersion: 2, expiryDate: 2099-12-30T23:00:00.000Z
17
- */
18
- const TEST_LICENSE_KEY_PREMIUM = exports.TEST_LICENSE_KEY_PREMIUM = '715a2f48d6140e8e6f2484e6c4b981aeTz0xMjMsRT00MTAyMzU0ODAwMDAwLFM9cHJlbWl1bSxMTT1hbm51YWwsUFY9UTMtMjAyNCxUPXRydWUsS1Y9Mg==';
19
-
20
- /**
21
- * Test Pro license key.
22
- * orderId: #123, scope: pro, licenseModel: annual, planVersion: Q3-2024
23
- * keyVersion: 2, expiryDate: 2099-12-30T23:00:00.000Z
24
- */
25
- const TEST_LICENSE_KEY_PRO = exports.TEST_LICENSE_KEY_PRO = '8d0500f3fe93ffea84445b2aed17c59cTz0xMjMsRT00MTAyMzU0ODAwMDAwLFM9cHJvLExNPWFubnVhbCxQVj1RMy0yMDI0LFQ9dHJ1ZSxLVj0y';
26
-
27
- // --- Key format v1 ---
28
-
29
- /**
30
- * Key version 1 format (pro, perpetual, initial implied).
31
- * orderId: #123, expiryDate: 2026-08-02
32
- */
33
- const TEST_KEY_V1 = exports.TEST_KEY_V1 = '8f5bd7d70e4d7aeecd1d5b9d0d1759bbT1JERVI6MTIzLEVYUElSWT0xNzg1ODc0MDEwNzA4LFQ9dHJ1ZSxLRVlWRVJTSU9OPTE=';
34
-
35
- // --- Keys for verifyLicense tests (paired with releaseDate = 2018-01-01) ---
36
-
37
- /**
38
- * Pro subscription, initial, expiry = releaseDate + 1 day.
39
- * orderId: #123, keyVersion: 2
40
- */
41
- const TEST_KEY_PRO_SUBSCRIPTION = exports.TEST_KEY_PRO_SUBSCRIPTION = 'b4cb282aa165b05f65f70a4caddadc81Tz0xMjMsRT0xNTE0NzYxMjAwMDAwLFM9cHJvLExNPXN1YnNjcmlwdGlvbixQVj1pbml0aWFsLFQ9dHJ1ZSxLVj0y';
42
-
43
- /**
44
- * Premium subscription, initial, expiry = releaseDate + 1 day.
45
- * orderId: #123, keyVersion: 2
46
- */
47
- const TEST_KEY_PREMIUM_SUBSCRIPTION = exports.TEST_KEY_PREMIUM_SUBSCRIPTION = '22bd1051015e3c663f8ca5cba9ebe56aTz0xMjMsRT0xNTE0NzYxMjAwMDAwLFM9cHJlbWl1bSxMTT1zdWJzY3JpcHRpb24sUFY9aW5pdGlhbCxUPXRydWUsS1Y9Mg==';
48
-
49
- /**
50
- * Pro perpetual, initial, expiry = releaseDate + 1 day (valid).
51
- * orderId: #123, keyVersion: 2
52
- */
53
- const TEST_KEY_PRO_PERPETUAL = exports.TEST_KEY_PRO_PERPETUAL = 'f4221ac32d1b8b102c143dcf65080414Tz0xMjMsRT0xNTE0NzYxMjAwMDAwLFM9cHJvLExNPXBlcnBldHVhbCxQVj1pbml0aWFsLFQ9dHJ1ZSxLVj0y';
54
-
55
- /**
56
- * Pro perpetual, initial, expiry = releaseDate - 1 day (expired before release).
57
- * orderId: #123, keyVersion: 2
58
- */
59
- const TEST_KEY_PRO_PERPETUAL_EXPIRED = exports.TEST_KEY_PRO_PERPETUAL_EXPIRED = '64245e2bb861fc92856e682b32dc8bf2Tz0xMjMsRT0xNTE0NTg4NDAwMDAwLFM9cHJvLExNPXBlcnBldHVhbCxQVj1pbml0aWFsLFQ9dHJ1ZSxLVj0y';
60
-
61
- /**
62
- * Pro annual, initial, expiry = releaseDate + 1 day.
63
- * orderId: #123, keyVersion: 2
64
- */
65
- const TEST_KEY_PRO_ANNUAL_INITIAL = exports.TEST_KEY_PRO_ANNUAL_INITIAL = 'd82e3196c55fc5dc21a4145b796a77a7Tz0xMjMsRT0xNTE0NzYxMjAwMDAwLFM9cHJvLExNPWFubnVhbCxQVj1pbml0aWFsLFQ9dHJ1ZSxLVj0y';
66
-
67
- /**
68
- * Premium annual, initial, expiry = releaseDate + 1 day.
69
- * orderId: #123, keyVersion: 2
70
- */
71
- const TEST_KEY_PREMIUM_ANNUAL_INITIAL = exports.TEST_KEY_PREMIUM_ANNUAL_INITIAL = '8fc9fa79e1b5f30ce737ccec8f3e36f4Tz0xMjMsRT0xNTE0NzYxMjAwMDAwLFM9cHJlbWl1bSxMTT1hbm51YWwsUFY9aW5pdGlhbCxUPXRydWUsS1Y9Mg==';
72
-
73
- // --- Keys for time-sensitive tests (used with vi.useFakeTimers, fakeNow = 2024-06-15) ---
74
-
75
- /**
76
- * Pro subscription, initial, expiry = 2024-06-14 (fakeNow - 1 day, within grace period).
77
- * orderId: #123, keyVersion: 2
78
- */
79
- const TEST_KEY_EXPIRED_GRACE = exports.TEST_KEY_EXPIRED_GRACE = '84dcbd1c5a6169c74e6c70ec23e0df55Tz0xMjMsRT0xNzE4MzIzMjAwMDAwLFM9cHJvLExNPXN1YnNjcmlwdGlvbixQVj1pbml0aWFsLFQ9dHJ1ZSxLVj0y';
80
-
81
- /**
82
- * Pro subscription, initial, expiry = 2024-05-16 (fakeNow - 30 days, past grace period).
83
- * orderId: #123, keyVersion: 2
84
- */
85
- const TEST_KEY_EXPIRED_30DAYS = exports.TEST_KEY_EXPIRED_30DAYS = '4081d3863dda2ca60be4a5b29f582117Tz0xMjMsRT0xNzE1ODE3NjAwMDAwLFM9cHJvLExNPXN1YnNjcmlwdGlvbixQVj1pbml0aWFsLFQ9dHJ1ZSxLVj0y';
86
-
87
- // --- Keys for useLicenseVerifier plan combination tests (initial planVersion, far-future expiry) ---
88
-
89
- /**
90
- * Pro subscription, initial, expiry = 3001-01-01.
91
- * orderId: #123, keyVersion: 2
92
- */
93
- const TEST_KEY_PRO_SUBSCRIPTION_FUTURE = exports.TEST_KEY_PRO_SUBSCRIPTION_FUTURE = 'e83a283135bbd911e4aa0fd55ceea3ebTz0xMjMsRT0zMjUzNTEyNjAwMDAwMCxTPXBybyxMTT1zdWJzY3JpcHRpb24sUFY9aW5pdGlhbCxUPXRydWUsS1Y9Mg==';
94
-
95
- /**
96
- * Premium subscription, initial, expiry = 3001-01-01.
97
- * orderId: #123, keyVersion: 2
98
- */
99
- const TEST_KEY_PREMIUM_SUBSCRIPTION_FUTURE = exports.TEST_KEY_PREMIUM_SUBSCRIPTION_FUTURE = '1c6ea00fadedfcb3f2ef393f1de32f29Tz0xMjMsRT0zMjUzNTEyNjAwMDAwMCxTPXByZW1pdW0sTE09c3Vic2NyaXB0aW9uLFBWPWluaXRpYWwsVD10cnVlLEtWPTI=';
100
-
101
- // --- KV=2 Q1-2026 (used by cross-major compat tests) ---
102
-
103
- /**
104
- * Pro annual, Q1-2026, expiry = 3001-01-01.
105
- * orderId: #123, keyVersion: 2
106
- */
107
- const TEST_KEY_PRO_ANNUAL_Q1_2026 = exports.TEST_KEY_PRO_ANNUAL_Q1_2026 = '10c66120eda205131bf0a2074a3fddc8Tz0xMjMsRT0zMjUzNTEyNjAwMDAwMCxTPXBybyxMTT1hbm51YWwsUFY9UTEtMjAyNixUPXRydWUsS1Y9Mg==';
108
-
109
- // --- Key format v3 ---
110
-
111
- /**
112
- * Pro annual, Q3-2024, quantity: 5, appType: single.
113
- * orderId: #123, keyVersion: 3, expiryDate: 2099-12-30T23:00:00.000Z
114
- */
115
- const TEST_KEY_PRO_ANNUAL_V3 = exports.TEST_KEY_PRO_ANNUAL_V3 = '521a75b4cf0d0c5e8990ce070886e167Tz0xMjMsRT00MTAyMzU0ODAwMDAwLFM9cHJvLExNPWFubnVhbCxQVj1RMy0yMDI0LFE9NSxBVD1zaW5nbGUsVD10cnVlLEtWPTM=';
116
-
117
- // --- Key format v3 Q1-2026 ---
118
-
119
- /**
120
- * Pro annual, Q1-2026, quantity: 5, appType: single.
121
- * orderId: #123, keyVersion: 3, expiryDate: 3001-01-01
122
- */
123
- const TEST_KEY_PRO_ANNUAL_Q1_2026_V3 = exports.TEST_KEY_PRO_ANNUAL_Q1_2026_V3 = '5f52871b5845f28ebdd0fabbe0b89695Tz0xMjMsRT0zMjUzNTEyNjAwMDAwMCxTPXBybyxMTT1hbm51YWwsUFY9UTEtMjAyNixRPTUsQVQ9c2luZ2xlLFQ9dHJ1ZSxLVj0z';
124
-
125
- /**
126
- * Premium annual, Q1-2026, quantity: 10, appType: single.
127
- * orderId: #123, keyVersion: 3, expiryDate: 3001-01-01
128
- */
129
- const TEST_KEY_PREMIUM_ANNUAL_Q1_2026_V3 = exports.TEST_KEY_PREMIUM_ANNUAL_Q1_2026_V3 = '450d9fc1b28e709fcb73969bd10e1c30Tz0xMjMsRT0zMjUzNTEyNjAwMDAwMCxTPXByZW1pdW0sTE09YW5udWFsLFBWPVExLTIwMjYsUT0xMCxBVD1zaW5nbGUsVD10cnVlLEtWPTM=';
130
-
131
- // --- Keys for v9 plan version check tests (perpetual + Q1-2026) ---
132
-
133
- /**
134
- * Pro perpetual, Q1-2026, expiry = releaseDate + 1 day (not expired).
135
- * orderId: #123, keyVersion: 2
136
- */
137
- const TEST_KEY_PRO_PERPETUAL_Q1_2026 = exports.TEST_KEY_PRO_PERPETUAL_Q1_2026 = '5f78509380f3ea3b3c91d7af3f5496eaTz0xMjMsRT0xNTE0NzYxMjAwMDAwLFM9cHJvLExNPXBlcnBldHVhbCxQVj1RMS0yMDI2LFQ9dHJ1ZSxLVj0y';
138
-
139
- /**
140
- * Pro perpetual, Q1-2026, expiry = releaseDate - 1 day (expired before release).
141
- * orderId: #123, keyVersion: 2
142
- */
143
- const TEST_KEY_PRO_PERPETUAL_Q1_2026_EXPIRED = exports.TEST_KEY_PRO_PERPETUAL_Q1_2026_EXPIRED = '191d8aaf174e38bcbf367e07fa39e423Tz0xMjMsRT0xNTE0NTg4NDAwMDAwLFM9cHJvLExNPXBlcnBldHVhbCxQVj1RMS0yMDI2LFQ9dHJ1ZSxLVj0y';
144
-
145
- // --- Invalid / edge-case keys ---
146
-
147
- /**
148
- * Invalid key: hash does not match payload (tampered).
149
- * Used to test that verifyLicense rejects tampered keys.
150
- */
151
- const TEST_KEY_INVALID = exports.TEST_KEY_INVALID = 'c0b3c1c31055976260628def9b697020TkFNRTpNYC1VSSBTQVMsREVWRUxPUEVSX0NPVU5UPTEwLEVYUElSWT0xNTkxNzIzMDY3MDQyLFZFUlNJT049MS4yLjMsVD10cnVl';
152
-
153
- /**
154
- * Valid hash but unknown key version (KV=99).
155
- * Used to test that decodeLicense returns null for unrecognized versions.
156
- */
157
- const TEST_KEY_UNKNOWN_VERSION = exports.TEST_KEY_UNKNOWN_VERSION = '64152474c774ae343484f08bbbc1a231Tz0xMjMsRT0xNTE0NzYxMjAwMDAwLFM9cHJvLExNPWFubnVhbCxQVj1pbml0aWFsLFQ9dHJ1ZSxLVj05OQ==';
package/test-keys.mjs DELETED
@@ -1,151 +0,0 @@
1
- // =============================================================================
2
- // Test license keys for use in test suites.
3
- // All keys contain T=true in their payload and are rejected outside test environments.
4
- // Import via '@mui/x-license/internals'.
5
- // =============================================================================
6
-
7
- /**
8
- * Test Premium license key.
9
- * orderId: #123, scope: premium, licenseModel: annual, planVersion: Q3-2024
10
- * keyVersion: 2, expiryDate: 2099-12-30T23:00:00.000Z
11
- */
12
- export const TEST_LICENSE_KEY_PREMIUM = '715a2f48d6140e8e6f2484e6c4b981aeTz0xMjMsRT00MTAyMzU0ODAwMDAwLFM9cHJlbWl1bSxMTT1hbm51YWwsUFY9UTMtMjAyNCxUPXRydWUsS1Y9Mg==';
13
-
14
- /**
15
- * Test Pro license key.
16
- * orderId: #123, scope: pro, licenseModel: annual, planVersion: Q3-2024
17
- * keyVersion: 2, expiryDate: 2099-12-30T23:00:00.000Z
18
- */
19
- export const TEST_LICENSE_KEY_PRO = '8d0500f3fe93ffea84445b2aed17c59cTz0xMjMsRT00MTAyMzU0ODAwMDAwLFM9cHJvLExNPWFubnVhbCxQVj1RMy0yMDI0LFQ9dHJ1ZSxLVj0y';
20
-
21
- // --- Key format v1 ---
22
-
23
- /**
24
- * Key version 1 format (pro, perpetual, initial implied).
25
- * orderId: #123, expiryDate: 2026-08-02
26
- */
27
- export const TEST_KEY_V1 = '8f5bd7d70e4d7aeecd1d5b9d0d1759bbT1JERVI6MTIzLEVYUElSWT0xNzg1ODc0MDEwNzA4LFQ9dHJ1ZSxLRVlWRVJTSU9OPTE=';
28
-
29
- // --- Keys for verifyLicense tests (paired with releaseDate = 2018-01-01) ---
30
-
31
- /**
32
- * Pro subscription, initial, expiry = releaseDate + 1 day.
33
- * orderId: #123, keyVersion: 2
34
- */
35
- export const TEST_KEY_PRO_SUBSCRIPTION = 'b4cb282aa165b05f65f70a4caddadc81Tz0xMjMsRT0xNTE0NzYxMjAwMDAwLFM9cHJvLExNPXN1YnNjcmlwdGlvbixQVj1pbml0aWFsLFQ9dHJ1ZSxLVj0y';
36
-
37
- /**
38
- * Premium subscription, initial, expiry = releaseDate + 1 day.
39
- * orderId: #123, keyVersion: 2
40
- */
41
- export const TEST_KEY_PREMIUM_SUBSCRIPTION = '22bd1051015e3c663f8ca5cba9ebe56aTz0xMjMsRT0xNTE0NzYxMjAwMDAwLFM9cHJlbWl1bSxMTT1zdWJzY3JpcHRpb24sUFY9aW5pdGlhbCxUPXRydWUsS1Y9Mg==';
42
-
43
- /**
44
- * Pro perpetual, initial, expiry = releaseDate + 1 day (valid).
45
- * orderId: #123, keyVersion: 2
46
- */
47
- export const TEST_KEY_PRO_PERPETUAL = 'f4221ac32d1b8b102c143dcf65080414Tz0xMjMsRT0xNTE0NzYxMjAwMDAwLFM9cHJvLExNPXBlcnBldHVhbCxQVj1pbml0aWFsLFQ9dHJ1ZSxLVj0y';
48
-
49
- /**
50
- * Pro perpetual, initial, expiry = releaseDate - 1 day (expired before release).
51
- * orderId: #123, keyVersion: 2
52
- */
53
- export const TEST_KEY_PRO_PERPETUAL_EXPIRED = '64245e2bb861fc92856e682b32dc8bf2Tz0xMjMsRT0xNTE0NTg4NDAwMDAwLFM9cHJvLExNPXBlcnBldHVhbCxQVj1pbml0aWFsLFQ9dHJ1ZSxLVj0y';
54
-
55
- /**
56
- * Pro annual, initial, expiry = releaseDate + 1 day.
57
- * orderId: #123, keyVersion: 2
58
- */
59
- export const TEST_KEY_PRO_ANNUAL_INITIAL = 'd82e3196c55fc5dc21a4145b796a77a7Tz0xMjMsRT0xNTE0NzYxMjAwMDAwLFM9cHJvLExNPWFubnVhbCxQVj1pbml0aWFsLFQ9dHJ1ZSxLVj0y';
60
-
61
- /**
62
- * Premium annual, initial, expiry = releaseDate + 1 day.
63
- * orderId: #123, keyVersion: 2
64
- */
65
- export const TEST_KEY_PREMIUM_ANNUAL_INITIAL = '8fc9fa79e1b5f30ce737ccec8f3e36f4Tz0xMjMsRT0xNTE0NzYxMjAwMDAwLFM9cHJlbWl1bSxMTT1hbm51YWwsUFY9aW5pdGlhbCxUPXRydWUsS1Y9Mg==';
66
-
67
- // --- Keys for time-sensitive tests (used with vi.useFakeTimers, fakeNow = 2024-06-15) ---
68
-
69
- /**
70
- * Pro subscription, initial, expiry = 2024-06-14 (fakeNow - 1 day, within grace period).
71
- * orderId: #123, keyVersion: 2
72
- */
73
- export const TEST_KEY_EXPIRED_GRACE = '84dcbd1c5a6169c74e6c70ec23e0df55Tz0xMjMsRT0xNzE4MzIzMjAwMDAwLFM9cHJvLExNPXN1YnNjcmlwdGlvbixQVj1pbml0aWFsLFQ9dHJ1ZSxLVj0y';
74
-
75
- /**
76
- * Pro subscription, initial, expiry = 2024-05-16 (fakeNow - 30 days, past grace period).
77
- * orderId: #123, keyVersion: 2
78
- */
79
- export const TEST_KEY_EXPIRED_30DAYS = '4081d3863dda2ca60be4a5b29f582117Tz0xMjMsRT0xNzE1ODE3NjAwMDAwLFM9cHJvLExNPXN1YnNjcmlwdGlvbixQVj1pbml0aWFsLFQ9dHJ1ZSxLVj0y';
80
-
81
- // --- Keys for useLicenseVerifier plan combination tests (initial planVersion, far-future expiry) ---
82
-
83
- /**
84
- * Pro subscription, initial, expiry = 3001-01-01.
85
- * orderId: #123, keyVersion: 2
86
- */
87
- export const TEST_KEY_PRO_SUBSCRIPTION_FUTURE = 'e83a283135bbd911e4aa0fd55ceea3ebTz0xMjMsRT0zMjUzNTEyNjAwMDAwMCxTPXBybyxMTT1zdWJzY3JpcHRpb24sUFY9aW5pdGlhbCxUPXRydWUsS1Y9Mg==';
88
-
89
- /**
90
- * Premium subscription, initial, expiry = 3001-01-01.
91
- * orderId: #123, keyVersion: 2
92
- */
93
- export const TEST_KEY_PREMIUM_SUBSCRIPTION_FUTURE = '1c6ea00fadedfcb3f2ef393f1de32f29Tz0xMjMsRT0zMjUzNTEyNjAwMDAwMCxTPXByZW1pdW0sTE09c3Vic2NyaXB0aW9uLFBWPWluaXRpYWwsVD10cnVlLEtWPTI=';
94
-
95
- // --- KV=2 Q1-2026 (used by cross-major compat tests) ---
96
-
97
- /**
98
- * Pro annual, Q1-2026, expiry = 3001-01-01.
99
- * orderId: #123, keyVersion: 2
100
- */
101
- export const TEST_KEY_PRO_ANNUAL_Q1_2026 = '10c66120eda205131bf0a2074a3fddc8Tz0xMjMsRT0zMjUzNTEyNjAwMDAwMCxTPXBybyxMTT1hbm51YWwsUFY9UTEtMjAyNixUPXRydWUsS1Y9Mg==';
102
-
103
- // --- Key format v3 ---
104
-
105
- /**
106
- * Pro annual, Q3-2024, quantity: 5, appType: single.
107
- * orderId: #123, keyVersion: 3, expiryDate: 2099-12-30T23:00:00.000Z
108
- */
109
- export const TEST_KEY_PRO_ANNUAL_V3 = '521a75b4cf0d0c5e8990ce070886e167Tz0xMjMsRT00MTAyMzU0ODAwMDAwLFM9cHJvLExNPWFubnVhbCxQVj1RMy0yMDI0LFE9NSxBVD1zaW5nbGUsVD10cnVlLEtWPTM=';
110
-
111
- // --- Key format v3 Q1-2026 ---
112
-
113
- /**
114
- * Pro annual, Q1-2026, quantity: 5, appType: single.
115
- * orderId: #123, keyVersion: 3, expiryDate: 3001-01-01
116
- */
117
- export const TEST_KEY_PRO_ANNUAL_Q1_2026_V3 = '5f52871b5845f28ebdd0fabbe0b89695Tz0xMjMsRT0zMjUzNTEyNjAwMDAwMCxTPXBybyxMTT1hbm51YWwsUFY9UTEtMjAyNixRPTUsQVQ9c2luZ2xlLFQ9dHJ1ZSxLVj0z';
118
-
119
- /**
120
- * Premium annual, Q1-2026, quantity: 10, appType: single.
121
- * orderId: #123, keyVersion: 3, expiryDate: 3001-01-01
122
- */
123
- export const TEST_KEY_PREMIUM_ANNUAL_Q1_2026_V3 = '450d9fc1b28e709fcb73969bd10e1c30Tz0xMjMsRT0zMjUzNTEyNjAwMDAwMCxTPXByZW1pdW0sTE09YW5udWFsLFBWPVExLTIwMjYsUT0xMCxBVD1zaW5nbGUsVD10cnVlLEtWPTM=';
124
-
125
- // --- Keys for v9 plan version check tests (perpetual + Q1-2026) ---
126
-
127
- /**
128
- * Pro perpetual, Q1-2026, expiry = releaseDate + 1 day (not expired).
129
- * orderId: #123, keyVersion: 2
130
- */
131
- export const TEST_KEY_PRO_PERPETUAL_Q1_2026 = '5f78509380f3ea3b3c91d7af3f5496eaTz0xMjMsRT0xNTE0NzYxMjAwMDAwLFM9cHJvLExNPXBlcnBldHVhbCxQVj1RMS0yMDI2LFQ9dHJ1ZSxLVj0y';
132
-
133
- /**
134
- * Pro perpetual, Q1-2026, expiry = releaseDate - 1 day (expired before release).
135
- * orderId: #123, keyVersion: 2
136
- */
137
- export const TEST_KEY_PRO_PERPETUAL_Q1_2026_EXPIRED = '191d8aaf174e38bcbf367e07fa39e423Tz0xMjMsRT0xNTE0NTg4NDAwMDAwLFM9cHJvLExNPXBlcnBldHVhbCxQVj1RMS0yMDI2LFQ9dHJ1ZSxLVj0y';
138
-
139
- // --- Invalid / edge-case keys ---
140
-
141
- /**
142
- * Invalid key: hash does not match payload (tampered).
143
- * Used to test that verifyLicense rejects tampered keys.
144
- */
145
- export const TEST_KEY_INVALID = 'c0b3c1c31055976260628def9b697020TkFNRTpNYC1VSSBTQVMsREVWRUxPUEVSX0NPVU5UPTEwLEVYUElSWT0xNTkxNzIzMDY3MDQyLFZFUlNJT049MS4yLjMsVD10cnVl';
146
-
147
- /**
148
- * Valid hash but unknown key version (KV=99).
149
- * Used to test that decodeLicense returns null for unrecognized versions.
150
- */
151
- export const TEST_KEY_UNKNOWN_VERSION = '64152474c774ae343484f08bbbc1a231Tz0xMjMsRT0xNTE0NzYxMjAwMDAwLFM9cHJvLExNPWFubnVhbCxQVj1pbml0aWFsLFQ9dHJ1ZSxLVj05OQ==';