initial
This commit is contained in:
@@ -0,0 +1,476 @@
|
||||
# Changelog
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [0.4.33] - 2026-06-26
|
||||
### Changed
|
||||
- Internal updates.
|
||||
|
||||
## [0.4.32] - 2026-06-24
|
||||
### Changed
|
||||
- Defer ExPlat REST controller instantiation so the controller class only loads on REST API requests. [#49803]
|
||||
|
||||
## [0.4.31] - 2026-06-23
|
||||
### Changed
|
||||
- Update package dependencies. [#49831]
|
||||
|
||||
## [0.4.30] - 2026-06-22
|
||||
### Changed
|
||||
- Update package dependencies. [#49631] [#49691] [#49757]
|
||||
|
||||
## [0.4.29] - 2026-06-10
|
||||
### Changed
|
||||
- Update package dependencies. [#49273] [#49492]
|
||||
|
||||
## [0.4.28] - 2026-06-08
|
||||
### Changed
|
||||
- Internal updates.
|
||||
|
||||
## [0.4.27] - 2026-06-05
|
||||
### Changed
|
||||
- Update dependencies. [#49354]
|
||||
|
||||
## [0.4.26] - 2026-05-21
|
||||
### Changed
|
||||
- Update package dependencies. [#48405]
|
||||
- Update package dependencies. [#49012]
|
||||
|
||||
## [0.4.25] - 2026-05-19
|
||||
### Changed
|
||||
- Internal updates.
|
||||
|
||||
## [0.4.24] - 2026-05-14
|
||||
### Changed
|
||||
- Update dependencies. [#48778]
|
||||
|
||||
## [0.4.23] - 2026-05-11
|
||||
### Changed
|
||||
- Update dependencies. [#46383]
|
||||
|
||||
## [0.4.22] - 2026-05-04
|
||||
### Changed
|
||||
- Internal: No longer require automattic/jetpack-changelogger as a per-project dev dependency. [#48225]
|
||||
|
||||
## [0.4.21] - 2026-04-20
|
||||
### Changed
|
||||
- Update package dependencies. [#48106]
|
||||
|
||||
## [0.4.20] - 2026-04-09
|
||||
### Changed
|
||||
- Update package dependencies. [#47890]
|
||||
|
||||
## [0.4.19] - 2026-04-06
|
||||
### Changed
|
||||
- Launch Site: Implement direct site launch from the WP Admin masterbar button via an ExPlat experiment, with a shared mutation hook and celebration modal for use across launch entry points. [#47705]
|
||||
|
||||
## [0.4.18] - 2026-03-30
|
||||
### Changed
|
||||
- Update package dependencies. [#47799]
|
||||
|
||||
## [0.4.17] - 2026-03-23
|
||||
### Changed
|
||||
- Update package dependencies. [#47684]
|
||||
|
||||
## [0.4.16] - 2026-03-16
|
||||
### Changed
|
||||
- Update dependencies. [#47472]
|
||||
|
||||
## [0.4.15] - 2026-03-09
|
||||
### Changed
|
||||
- Switch to Native TypeScript compiler based on Go. [#47375]
|
||||
|
||||
## [0.4.14] - 2026-02-26
|
||||
### Changed
|
||||
- Update package dependencies. [#47285] [#47300]
|
||||
|
||||
## [0.4.13] - 2026-02-23
|
||||
### Changed
|
||||
- Update dependencies. [#46383]
|
||||
|
||||
## [0.4.12] - 2026-02-18
|
||||
### Changed
|
||||
- Update package dependencies. [#47173]
|
||||
|
||||
## [0.4.11] - 2026-02-16
|
||||
### Changed
|
||||
- Update package dependencies. [#47099]
|
||||
|
||||
## [0.4.10] - 2026-02-10
|
||||
### Changed
|
||||
- Update package dependencies. [#47002]
|
||||
|
||||
## [0.4.9] - 2026-02-02
|
||||
### Changed
|
||||
- Update package dependencies. [#46854]
|
||||
|
||||
## [0.4.8] - 2026-01-26
|
||||
### Changed
|
||||
- Update dependencies. [#46383]
|
||||
|
||||
## [0.4.7] - 2026-01-19
|
||||
### Changed
|
||||
- Update package dependencies. [#46647]
|
||||
|
||||
## [0.4.6] - 2026-01-07
|
||||
### Changed
|
||||
- Update package dependencies. [#46456]
|
||||
|
||||
## [0.4.5] - 2026-01-06
|
||||
### Changed
|
||||
- Update package dependencies. [#46427]
|
||||
|
||||
## [0.4.4] - 2025-12-22
|
||||
### Changed
|
||||
- Update dependencies. [#46381]
|
||||
|
||||
## [0.4.3] - 2025-12-11
|
||||
### Changed
|
||||
- Update package dependencies. [#46244]
|
||||
|
||||
## [0.4.2] - 2025-12-08
|
||||
### Changed
|
||||
- Update dependencies. [#43068]
|
||||
|
||||
## [0.4.1] - 2025-12-01
|
||||
### Changed
|
||||
- Update package dependencies. [#46143]
|
||||
|
||||
## [0.4.0] - 2025-11-17
|
||||
### Added
|
||||
- Add the possibility of passing the platform to the explat assignment endpoint. [#45922]
|
||||
|
||||
### Changed
|
||||
- Update package dependencies. [#45915] [#45958]
|
||||
|
||||
## [0.3.14] - 2025-11-10
|
||||
### Changed
|
||||
- Update package dependencies. [#45756]
|
||||
|
||||
## [0.3.13] - 2025-10-28
|
||||
### Changed
|
||||
- Update package dependencies. [#45652]
|
||||
|
||||
## [0.3.12] - 2025-10-06
|
||||
### Changed
|
||||
- Update package dependencies. [#45334]
|
||||
|
||||
## [0.3.11] - 2025-09-22
|
||||
### Changed
|
||||
- Update dependencies. [#43068]
|
||||
|
||||
## [0.3.10] - 2025-09-19
|
||||
### Changed
|
||||
- Update package dependencies. [#45173] [#45229]
|
||||
|
||||
## [0.3.9] - 2025-09-08
|
||||
### Changed
|
||||
- Update package dependencies. [#45027] [#45097]
|
||||
|
||||
## [0.3.8] - 2025-08-18
|
||||
### Added
|
||||
- Add `typecheck` script to ensure that TypeScript files are type-checked. [#44795]
|
||||
|
||||
## [0.3.7] - 2025-08-14
|
||||
### Changed
|
||||
- Update package dependencies. [#44701]
|
||||
|
||||
## [0.3.6] - 2025-08-11
|
||||
### Changed
|
||||
- Update package dependencies. [#44677]
|
||||
|
||||
## [0.3.5] - 2025-08-04
|
||||
### Changed
|
||||
- Internal updates.
|
||||
|
||||
## [0.3.4] - 2025-07-21
|
||||
### Changed
|
||||
- Update package dependencies. [#44356]
|
||||
|
||||
## [0.3.3] - 2025-07-08
|
||||
### Changed
|
||||
- Update package dependencies. [#44217]
|
||||
|
||||
## [0.3.2] - 2025-07-03
|
||||
### Changed
|
||||
- Update package dependencies. [#44151]
|
||||
|
||||
## [0.3.1] - 2025-06-30
|
||||
### Changed
|
||||
- Update dependencies. [#43068]
|
||||
|
||||
## [0.3.0] - 2025-06-27
|
||||
### Changed
|
||||
- Create custom explat client with public-api fetch for assignments. [#44081]
|
||||
|
||||
## [0.2.26] - 2025-06-24
|
||||
### Added
|
||||
- Improve error handling on Chrome AI events. [#44048]
|
||||
|
||||
## [0.2.25] - 2025-06-23
|
||||
### Changed
|
||||
- Update package dependencies. [#44020]
|
||||
|
||||
## [0.2.24] - 2025-06-18
|
||||
### Changed
|
||||
- Internal updates.
|
||||
|
||||
## [0.2.23] - 2025-06-05
|
||||
### Changed
|
||||
- Update package dependencies. [#43718] [#43734] [#43766]
|
||||
|
||||
## [0.2.22] - 2025-06-02
|
||||
### Changed
|
||||
- Update dependencies. [#43068]
|
||||
|
||||
## [0.2.21] - 2025-05-26
|
||||
### Changed
|
||||
- Update package dependencies. [#43578]
|
||||
|
||||
## [0.2.20] - 2025-05-22
|
||||
### Changed
|
||||
- Update package dependencies. [#43557]
|
||||
|
||||
## [0.2.19] - 2025-05-12
|
||||
### Changed
|
||||
- Stable release management: Do not ship source files. [#43310]
|
||||
|
||||
## [0.2.18] - 2025-05-05
|
||||
### Changed
|
||||
- Update package dependencies. [#43326]
|
||||
|
||||
## [0.2.17] - 2025-04-28
|
||||
### Changed
|
||||
- Internal updates.
|
||||
|
||||
## [0.2.16] - 2025-04-14
|
||||
### Changed
|
||||
- Update dependencies. [#43001]
|
||||
|
||||
## [0.2.15] - 2025-04-03
|
||||
### Changed
|
||||
- Update package dependencies. [#42809]
|
||||
|
||||
## [0.2.14] - 2025-04-01
|
||||
### Changed
|
||||
- Update package dependencies. [#42762]
|
||||
|
||||
## [0.2.13] - 2025-03-21
|
||||
### Changed
|
||||
- Internal updates.
|
||||
|
||||
## [0.2.12] - 2025-03-18
|
||||
### Changed
|
||||
- Update package dependencies. [#42511]
|
||||
|
||||
## [0.2.11] - 2025-03-12
|
||||
### Changed
|
||||
- Internal updates.
|
||||
|
||||
## [0.2.10] - 2025-03-05
|
||||
### Changed
|
||||
- Internal updates.
|
||||
|
||||
## [0.2.9] - 2025-03-03
|
||||
### Changed
|
||||
- Update package dependencies. [#42163]
|
||||
|
||||
## [0.2.8] - 2025-02-24
|
||||
### Changed
|
||||
- Update dependencies.
|
||||
|
||||
## [0.2.7] - 2025-02-17
|
||||
### Changed
|
||||
- Update dependencies.
|
||||
|
||||
## [0.2.6] - 2025-02-10
|
||||
### Changed
|
||||
- Updated package dependencies. [#41491]
|
||||
|
||||
## [0.2.5] - 2025-02-03
|
||||
### Changed
|
||||
- Updated package dependencies. [#41286]
|
||||
|
||||
## [0.2.4] - 2025-01-20
|
||||
### Changed
|
||||
- Updated package dependencies. [#41099]
|
||||
|
||||
## [0.2.3] - 2024-12-16
|
||||
### Changed
|
||||
- Updated package dependencies. [#40564]
|
||||
|
||||
## [0.2.2] - 2024-12-04
|
||||
### Changed
|
||||
- Updated package dependencies. [#40363] [#40372]
|
||||
|
||||
## [0.2.1] - 2024-11-25
|
||||
### Changed
|
||||
- Updated package dependencies. [#40232] [#40288]
|
||||
|
||||
## [0.2.0] - 2024-11-14
|
||||
### Removed
|
||||
- General: Update minimum PHP version to 7.2. [#40147]
|
||||
|
||||
## [0.1.15] - 2024-11-11
|
||||
### Changed
|
||||
- Updated package dependencies. [#39999] [#40000] [#40060]
|
||||
|
||||
## [0.1.14] - 2024-11-04
|
||||
### Added
|
||||
- Enable test coverage. [#39961]
|
||||
|
||||
## [0.1.13] - 2024-10-29
|
||||
### Changed
|
||||
- Internal updates.
|
||||
|
||||
## [0.1.12] - 2024-10-14
|
||||
### Changed
|
||||
- Only include `wp-polyfill` as a script dependency when needed. [#39629]
|
||||
|
||||
## [0.1.11] - 2024-10-10
|
||||
### Changed
|
||||
- Updated package dependencies. [#39649] [#39707]
|
||||
|
||||
## [0.1.10] - 2024-10-07
|
||||
### Changed
|
||||
- Updated package dependencies. [#39594]
|
||||
|
||||
## [0.1.9] - 2024-09-23
|
||||
### Changed
|
||||
- Update dependencies.
|
||||
|
||||
## [0.1.8] - 2024-09-10
|
||||
### Changed
|
||||
- Updated package dependencies. [#39302]
|
||||
|
||||
## [0.1.7] - 2024-09-05
|
||||
### Changed
|
||||
- Update dependencies.
|
||||
|
||||
## [0.1.6] - 2024-09-05
|
||||
### Changed
|
||||
- Updated package dependencies. [#39176]
|
||||
|
||||
## [0.1.5] - 2024-08-29
|
||||
### Changed
|
||||
- Updated package dependencies. [#39111]
|
||||
|
||||
## [0.1.4] - 2024-08-26
|
||||
### Changed
|
||||
- Updated package dependencies. [#39004]
|
||||
|
||||
## [0.1.3] - 2024-08-21
|
||||
### Changed
|
||||
- Internal updates.
|
||||
|
||||
## [0.1.2] - 2024-08-15
|
||||
### Changed
|
||||
- Updated package dependencies. [#38662]
|
||||
|
||||
## [0.1.1] - 2024-08-01
|
||||
### Changed
|
||||
- Internal updates.
|
||||
|
||||
## 0.1.0 - 2024-07-29
|
||||
### Added
|
||||
- Adds a new component to fetch experiments specifically for authenticated users [#37999]
|
||||
- Initial version. [#37910]
|
||||
- Introduce the both the backend layer and frontend components for the ExPlat package. [#37958]
|
||||
|
||||
### Changed
|
||||
- ExPlat: add condition to prevent fetching the experiment assignment if there's not anon id (meaning that Tracks is likely disabled) [#38327]
|
||||
- Updated package dependencies. [#38132]
|
||||
|
||||
[0.4.33]: https://github.com/Automattic/jetpack-explat/compare/v0.4.32...v0.4.33
|
||||
[0.4.32]: https://github.com/Automattic/jetpack-explat/compare/v0.4.31...v0.4.32
|
||||
[0.4.31]: https://github.com/Automattic/jetpack-explat/compare/v0.4.30...v0.4.31
|
||||
[0.4.30]: https://github.com/Automattic/jetpack-explat/compare/v0.4.29...v0.4.30
|
||||
[0.4.29]: https://github.com/Automattic/jetpack-explat/compare/v0.4.28...v0.4.29
|
||||
[0.4.28]: https://github.com/Automattic/jetpack-explat/compare/v0.4.27...v0.4.28
|
||||
[0.4.27]: https://github.com/Automattic/jetpack-explat/compare/v0.4.26...v0.4.27
|
||||
[0.4.26]: https://github.com/Automattic/jetpack-explat/compare/v0.4.25...v0.4.26
|
||||
[0.4.25]: https://github.com/Automattic/jetpack-explat/compare/v0.4.24...v0.4.25
|
||||
[0.4.24]: https://github.com/Automattic/jetpack-explat/compare/v0.4.23...v0.4.24
|
||||
[0.4.23]: https://github.com/Automattic/jetpack-explat/compare/v0.4.22...v0.4.23
|
||||
[0.4.22]: https://github.com/Automattic/jetpack-explat/compare/v0.4.21...v0.4.22
|
||||
[0.4.21]: https://github.com/Automattic/jetpack-explat/compare/v0.4.20...v0.4.21
|
||||
[0.4.20]: https://github.com/Automattic/jetpack-explat/compare/v0.4.19...v0.4.20
|
||||
[0.4.19]: https://github.com/Automattic/jetpack-explat/compare/v0.4.18...v0.4.19
|
||||
[0.4.18]: https://github.com/Automattic/jetpack-explat/compare/v0.4.17...v0.4.18
|
||||
[0.4.17]: https://github.com/Automattic/jetpack-explat/compare/v0.4.16...v0.4.17
|
||||
[0.4.16]: https://github.com/Automattic/jetpack-explat/compare/v0.4.15...v0.4.16
|
||||
[0.4.15]: https://github.com/Automattic/jetpack-explat/compare/v0.4.14...v0.4.15
|
||||
[0.4.14]: https://github.com/Automattic/jetpack-explat/compare/v0.4.13...v0.4.14
|
||||
[0.4.13]: https://github.com/Automattic/jetpack-explat/compare/v0.4.12...v0.4.13
|
||||
[0.4.12]: https://github.com/Automattic/jetpack-explat/compare/v0.4.11...v0.4.12
|
||||
[0.4.11]: https://github.com/Automattic/jetpack-explat/compare/v0.4.10...v0.4.11
|
||||
[0.4.10]: https://github.com/Automattic/jetpack-explat/compare/v0.4.9...v0.4.10
|
||||
[0.4.9]: https://github.com/Automattic/jetpack-explat/compare/v0.4.8...v0.4.9
|
||||
[0.4.8]: https://github.com/Automattic/jetpack-explat/compare/v0.4.7...v0.4.8
|
||||
[0.4.7]: https://github.com/Automattic/jetpack-explat/compare/v0.4.6...v0.4.7
|
||||
[0.4.6]: https://github.com/Automattic/jetpack-explat/compare/v0.4.5...v0.4.6
|
||||
[0.4.5]: https://github.com/Automattic/jetpack-explat/compare/v0.4.4...v0.4.5
|
||||
[0.4.4]: https://github.com/Automattic/jetpack-explat/compare/v0.4.3...v0.4.4
|
||||
[0.4.3]: https://github.com/Automattic/jetpack-explat/compare/v0.4.2...v0.4.3
|
||||
[0.4.2]: https://github.com/Automattic/jetpack-explat/compare/v0.4.1...v0.4.2
|
||||
[0.4.1]: https://github.com/Automattic/jetpack-explat/compare/v0.4.0...v0.4.1
|
||||
[0.4.0]: https://github.com/Automattic/jetpack-explat/compare/v0.3.14...v0.4.0
|
||||
[0.3.14]: https://github.com/Automattic/jetpack-explat/compare/v0.3.13...v0.3.14
|
||||
[0.3.13]: https://github.com/Automattic/jetpack-explat/compare/v0.3.12...v0.3.13
|
||||
[0.3.12]: https://github.com/Automattic/jetpack-explat/compare/v0.3.11...v0.3.12
|
||||
[0.3.11]: https://github.com/Automattic/jetpack-explat/compare/v0.3.10...v0.3.11
|
||||
[0.3.10]: https://github.com/Automattic/jetpack-explat/compare/v0.3.9...v0.3.10
|
||||
[0.3.9]: https://github.com/Automattic/jetpack-explat/compare/v0.3.8...v0.3.9
|
||||
[0.3.8]: https://github.com/Automattic/jetpack-explat/compare/v0.3.7...v0.3.8
|
||||
[0.3.7]: https://github.com/Automattic/jetpack-explat/compare/v0.3.6...v0.3.7
|
||||
[0.3.6]: https://github.com/Automattic/jetpack-explat/compare/v0.3.5...v0.3.6
|
||||
[0.3.5]: https://github.com/Automattic/jetpack-explat/compare/v0.3.4...v0.3.5
|
||||
[0.3.4]: https://github.com/Automattic/jetpack-explat/compare/v0.3.3...v0.3.4
|
||||
[0.3.3]: https://github.com/Automattic/jetpack-explat/compare/v0.3.2...v0.3.3
|
||||
[0.3.2]: https://github.com/Automattic/jetpack-explat/compare/v0.3.1...v0.3.2
|
||||
[0.3.1]: https://github.com/Automattic/jetpack-explat/compare/v0.3.0...v0.3.1
|
||||
[0.3.0]: https://github.com/Automattic/jetpack-explat/compare/v0.2.26...v0.3.0
|
||||
[0.2.26]: https://github.com/Automattic/jetpack-explat/compare/v0.2.25...v0.2.26
|
||||
[0.2.25]: https://github.com/Automattic/jetpack-explat/compare/v0.2.24...v0.2.25
|
||||
[0.2.24]: https://github.com/Automattic/jetpack-explat/compare/v0.2.23...v0.2.24
|
||||
[0.2.23]: https://github.com/Automattic/jetpack-explat/compare/v0.2.22...v0.2.23
|
||||
[0.2.22]: https://github.com/Automattic/jetpack-explat/compare/v0.2.21...v0.2.22
|
||||
[0.2.21]: https://github.com/Automattic/jetpack-explat/compare/v0.2.20...v0.2.21
|
||||
[0.2.20]: https://github.com/Automattic/jetpack-explat/compare/v0.2.19...v0.2.20
|
||||
[0.2.19]: https://github.com/Automattic/jetpack-explat/compare/v0.2.18...v0.2.19
|
||||
[0.2.18]: https://github.com/Automattic/jetpack-explat/compare/v0.2.17...v0.2.18
|
||||
[0.2.17]: https://github.com/Automattic/jetpack-explat/compare/v0.2.16...v0.2.17
|
||||
[0.2.16]: https://github.com/Automattic/jetpack-explat/compare/v0.2.15...v0.2.16
|
||||
[0.2.15]: https://github.com/Automattic/jetpack-explat/compare/v0.2.14...v0.2.15
|
||||
[0.2.14]: https://github.com/Automattic/jetpack-explat/compare/v0.2.13...v0.2.14
|
||||
[0.2.13]: https://github.com/Automattic/jetpack-explat/compare/v0.2.12...v0.2.13
|
||||
[0.2.12]: https://github.com/Automattic/jetpack-explat/compare/v0.2.11...v0.2.12
|
||||
[0.2.11]: https://github.com/Automattic/jetpack-explat/compare/v0.2.10...v0.2.11
|
||||
[0.2.10]: https://github.com/Automattic/jetpack-explat/compare/v0.2.9...v0.2.10
|
||||
[0.2.9]: https://github.com/Automattic/jetpack-explat/compare/v0.2.8...v0.2.9
|
||||
[0.2.8]: https://github.com/Automattic/jetpack-explat/compare/v0.2.7...v0.2.8
|
||||
[0.2.7]: https://github.com/Automattic/jetpack-explat/compare/v0.2.6...v0.2.7
|
||||
[0.2.6]: https://github.com/Automattic/jetpack-explat/compare/v0.2.5...v0.2.6
|
||||
[0.2.5]: https://github.com/Automattic/jetpack-explat/compare/v0.2.4...v0.2.5
|
||||
[0.2.4]: https://github.com/Automattic/jetpack-explat/compare/v0.2.3...v0.2.4
|
||||
[0.2.3]: https://github.com/Automattic/jetpack-explat/compare/v0.2.2...v0.2.3
|
||||
[0.2.2]: https://github.com/Automattic/jetpack-explat/compare/v0.2.1...v0.2.2
|
||||
[0.2.1]: https://github.com/Automattic/jetpack-explat/compare/v0.2.0...v0.2.1
|
||||
[0.2.0]: https://github.com/Automattic/jetpack-explat/compare/v0.1.15...v0.2.0
|
||||
[0.1.15]: https://github.com/Automattic/jetpack-explat/compare/v0.1.14...v0.1.15
|
||||
[0.1.14]: https://github.com/Automattic/jetpack-explat/compare/v0.1.13...v0.1.14
|
||||
[0.1.13]: https://github.com/Automattic/jetpack-explat/compare/v0.1.12...v0.1.13
|
||||
[0.1.12]: https://github.com/Automattic/jetpack-explat/compare/v0.1.11...v0.1.12
|
||||
[0.1.11]: https://github.com/Automattic/jetpack-explat/compare/v0.1.10...v0.1.11
|
||||
[0.1.10]: https://github.com/Automattic/jetpack-explat/compare/v0.1.9...v0.1.10
|
||||
[0.1.9]: https://github.com/Automattic/jetpack-explat/compare/v0.1.8...v0.1.9
|
||||
[0.1.8]: https://github.com/Automattic/jetpack-explat/compare/v0.1.7...v0.1.8
|
||||
[0.1.7]: https://github.com/Automattic/jetpack-explat/compare/v0.1.6...v0.1.7
|
||||
[0.1.6]: https://github.com/Automattic/jetpack-explat/compare/v0.1.5...v0.1.6
|
||||
[0.1.5]: https://github.com/Automattic/jetpack-explat/compare/v0.1.4...v0.1.5
|
||||
[0.1.4]: https://github.com/Automattic/jetpack-explat/compare/v0.1.3...v0.1.4
|
||||
[0.1.3]: https://github.com/Automattic/jetpack-explat/compare/v0.1.2...v0.1.3
|
||||
[0.1.2]: https://github.com/Automattic/jetpack-explat/compare/v0.1.1...v0.1.2
|
||||
[0.1.1]: https://github.com/Automattic/jetpack-explat/compare/v0.1.0...v0.1.1
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
/**
|
||||
* Gather w.js anonymous cookie, tk_ai
|
||||
*
|
||||
* @return {?string} The anonymous cookie value, or null if it doesn't exist
|
||||
*/
|
||||
export declare const readAnonCookie: () => string | null;
|
||||
/**
|
||||
* Initializes the anonId:
|
||||
* - Polls for AnonId receival
|
||||
* - Should only be called once at startup
|
||||
* - Happens to be safe to call multiple times if it is necessary to reset the anonId - something like this was necessary for testing.
|
||||
*
|
||||
* This purely for boot-time initialization, in usual circumstances it will be retrieved within 100-300ms, it happens in parallel booting
|
||||
* so should only delay experiment loading that much for boot-time experiments. In some circumstances such as a very slow connection this
|
||||
* can take a lot longer.
|
||||
*
|
||||
* The state of initializeAnonIdPromise should be used rather than the return of this function.
|
||||
* The return is only avaliable to make this easier to test.
|
||||
*
|
||||
* Throws on error.
|
||||
*
|
||||
* @return {Promise<string | null>} The anonymous cookie value, or null if it doesn't exist
|
||||
*/
|
||||
export declare const initializeAnonId: () => Promise<string | null>;
|
||||
export declare const getAnonId: () => Promise<string | null>;
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
export declare const fetchExperimentAssignmentAnonymously: ({ experimentName, anonId, }: {
|
||||
experimentName: string;
|
||||
anonId: string | null;
|
||||
}) => Promise<unknown>;
|
||||
export declare const fetchExperimentAssignmentWithAuth: ({ experimentName, anonId, }: {
|
||||
experimentName: string;
|
||||
anonId: string | null;
|
||||
}) => Promise<unknown>;
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
export declare const logError: (error: Record<string, string> & {
|
||||
message: string;
|
||||
}) => void;
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
/**
|
||||
* External dependencies
|
||||
*/
|
||||
import { createExPlatClient } from '@automattic/explat-client';
|
||||
import debugFactory from 'debug';
|
||||
export { createExPlatClient };
|
||||
export declare const initializeExPlat: () => Promise<string | null | void>;
|
||||
export declare const loadExperimentAssignment: (experimentName: string) => Promise<import("@automattic/explat-client").ExperimentAssignment>, dangerouslyGetExperimentAssignment: (experimentName: string) => import("@automattic/explat-client").ExperimentAssignment;
|
||||
export declare const useExperiment: (experimentName: string, options?: import("@automattic/explat-client-react-helpers").ExperimentOptions) => [boolean, import("@automattic/explat-client").ExperimentAssignment | null], Experiment: (props: {
|
||||
name: string;
|
||||
defaultExperience: debugFactory;
|
||||
treatmentExperience: debugFactory;
|
||||
loadingExperience: debugFactory;
|
||||
options?: import("@automattic/explat-client-react-helpers").ExperimentOptions;
|
||||
}) => JSX.Element, ProvideExperimentData: (props: {
|
||||
children: (isLoading: boolean, experimentAssignment: import("@automattic/explat-client").ExperimentAssignment | null) => JSX.Element;
|
||||
name: string;
|
||||
options?: import("@automattic/explat-client-react-helpers").ExperimentOptions;
|
||||
}) => JSX.Element;
|
||||
export declare const loadExperimentAssignmentWithAuth: (experimentName: string) => Promise<import("@automattic/explat-client").ExperimentAssignment>, dangerouslyGetExperimentAssignmentWithAuth: (experimentName: string) => import("@automattic/explat-client").ExperimentAssignment;
|
||||
export declare const useExperimentWithAuth: (experimentName: string, options?: import("@automattic/explat-client-react-helpers").ExperimentOptions) => [boolean, import("@automattic/explat-client").ExperimentAssignment | null], ExperimentWithAuth: (props: {
|
||||
name: string;
|
||||
defaultExperience: debugFactory;
|
||||
treatmentExperience: debugFactory;
|
||||
loadingExperience: debugFactory;
|
||||
options?: import("@automattic/explat-client-react-helpers").ExperimentOptions;
|
||||
}) => JSX.Element, ProvideExperimentDataWithAuth: (props: {
|
||||
children: (isLoading: boolean, experimentAssignment: import("@automattic/explat-client").ExperimentAssignment | null) => JSX.Element;
|
||||
name: string;
|
||||
options?: import("@automattic/explat-client-react-helpers").ExperimentOptions;
|
||||
}) => JSX.Element;
|
||||
+1
@@ -0,0 +1 @@
|
||||
<?php return array('dependencies' => array('react', 'react-jsx-runtime', 'wp-api-fetch', 'wp-url'), 'version' => 'd909fec2f1655c5db20c');
|
||||
File diff suppressed because one or more lines are too long
+4
@@ -0,0 +1,4 @@
|
||||
/**
|
||||
* Boolean determining if environment is development.
|
||||
*/
|
||||
export declare const isDevelopmentMode: boolean;
|
||||
+44
@@ -0,0 +1,44 @@
|
||||
<?php
|
||||
/**
|
||||
* Package description here
|
||||
*
|
||||
* @package automattic/jetpack-explat
|
||||
*/
|
||||
|
||||
namespace Automattic\Jetpack;
|
||||
|
||||
use Automattic\Jetpack\Connection\Rest_Authentication;
|
||||
use Automattic\Jetpack\ExPlat\REST_Controller;
|
||||
|
||||
/**
|
||||
* Class description.
|
||||
*/
|
||||
class ExPlat {
|
||||
|
||||
/**
|
||||
* ExPlat package version
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const PACKAGE_VERSION = '0.4.33';
|
||||
|
||||
/**
|
||||
* Initializer.
|
||||
* Used to configure the ExPlat package
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public static function init() {
|
||||
if ( did_action( 'jetpack_explat_initialized' ) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Set up the REST authentication hooks.
|
||||
Rest_Authentication::init();
|
||||
|
||||
add_action( 'rest_api_init', array( REST_Controller::class, 'register' ) );
|
||||
|
||||
// Runs right after the Jetpack ExPlat package is initialized.
|
||||
do_action( 'jetpack_explat_initialized' );
|
||||
}
|
||||
}
|
||||
+144
@@ -0,0 +1,144 @@
|
||||
<?php
|
||||
/**
|
||||
* The ExPlat Rest Controller class.
|
||||
* Registers the REST routes for ExPlat backend
|
||||
*
|
||||
* @package automattic/jetpack-explat
|
||||
*/
|
||||
|
||||
namespace Automattic\Jetpack\ExPlat;
|
||||
|
||||
use Automattic\Jetpack\Connection\Client;
|
||||
use Automattic\Jetpack\Connection\Manager as Jetpack_Connection;
|
||||
use WP_Error;
|
||||
use WP_REST_Request;
|
||||
use WP_REST_Response;
|
||||
use WP_REST_Server;
|
||||
|
||||
/**
|
||||
* Registers general REST routes for ExPlat.
|
||||
*/
|
||||
class REST_Controller {
|
||||
/**
|
||||
* Namespace for the REST API.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public static $namespace = 'jetpack/v4/explat';
|
||||
|
||||
/**
|
||||
* Current version of the ExPlat API and components
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const EXPLAT_API_VERSION = '0.1.0';
|
||||
|
||||
/**
|
||||
* Base API URI for WordPress.com
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const WPCOM_API_BASE_URL = 'https://public-api.wordpress.com/wpcom/v2';
|
||||
|
||||
/**
|
||||
* Registers the REST routes on the `rest_api_init` hook.
|
||||
*
|
||||
* Instantiated here, rather than eagerly, so the controller class only loads
|
||||
* on requests that reach `rest_api_init`. Static so the callback can be
|
||||
* unregistered.
|
||||
*
|
||||
* @access public
|
||||
*/
|
||||
public static function register() {
|
||||
( new self() )->register_rest_routes();
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers the REST routes.
|
||||
*
|
||||
* @access public
|
||||
* @static
|
||||
*/
|
||||
public function register_rest_routes() {
|
||||
register_rest_route(
|
||||
static::$namespace,
|
||||
'assignments',
|
||||
array(
|
||||
'methods' => WP_REST_Server::READABLE,
|
||||
'callback' => array( $this, 'get_assignments' ),
|
||||
'permission_callback' => '__return_true',
|
||||
'args' => array(
|
||||
'experiment_name' => array(
|
||||
'type' => 'string',
|
||||
),
|
||||
'anon_id' => array(
|
||||
'type' => 'string',
|
||||
),
|
||||
'as_connected_user' => array(
|
||||
'type' => 'boolean',
|
||||
),
|
||||
'platform' => array(
|
||||
'type' => 'string',
|
||||
'enum' => array( 'jetpack', 'calypso', 'wpcom' ),
|
||||
'default' => 'jetpack',
|
||||
),
|
||||
),
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the assignments for a given experiment and anon_id
|
||||
*
|
||||
* @param WP_REST_Request $request The REST request object.
|
||||
* @return WP_REST_Response|WP_Error
|
||||
*/
|
||||
public function get_assignments( $request ) {
|
||||
$response = null;
|
||||
$is_user_connected = ( new Jetpack_Connection() )->is_user_connected();
|
||||
$platform = $request->get_param( 'platform' );
|
||||
$request_path = '/experiments/' . self::EXPLAT_API_VERSION . '/assignments/' . $platform;
|
||||
$args = array(
|
||||
'experiment_names' => $request['experiment_name'],
|
||||
'anon_id' => $request['anon_id'],
|
||||
);
|
||||
|
||||
if ( $request['as_connected_user'] && $is_user_connected ) {
|
||||
$response = Client::wpcom_json_api_request_as_user(
|
||||
add_query_arg( $args, $request_path ),
|
||||
'v2',
|
||||
array(
|
||||
'headers' => array(
|
||||
'User-Agent' => 'Jetpack MU WPCOM Plugin Experiment Assignment',
|
||||
),
|
||||
)
|
||||
);
|
||||
} else {
|
||||
$response = wp_remote_get(
|
||||
add_query_arg( $args, self::WPCOM_API_BASE_URL . $request_path )
|
||||
);
|
||||
}
|
||||
|
||||
if ( is_wp_error( $response ) ) {
|
||||
return new WP_Error(
|
||||
'wp_error_fetching_assignment',
|
||||
$response->get_error_message(),
|
||||
array( 'status' => 500 )
|
||||
);
|
||||
}
|
||||
|
||||
$response_code = wp_remote_retrieve_response_code( $response );
|
||||
|
||||
if ( 200 !== $response_code ) {
|
||||
return new WP_Error(
|
||||
'http_error_fetching_assignment',
|
||||
wp_remote_retrieve_response_message( $response ),
|
||||
array( 'status' => $response_code )
|
||||
);
|
||||
}
|
||||
|
||||
return rest_ensure_response(
|
||||
json_decode( wp_remote_retrieve_body( $response ), true )
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user