This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@googleapis/androidpublisher](https://redirect.github.com/googleapis/google-api-nodejs-client) | [`^22.0.0` -> `^24.0.0`](https://renovatebot.com/diffs/npm/@googleapis%2fandroidpublisher/22.0.0/24.0.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |
---
### Release Notes
<details>
<summary>googleapis/google-api-nodejs-client (@​googleapis/androidpublisher)</summary>
### [`v24.0.0`](https://redirect.github.com/googleapis/google-api-nodejs-client/blob/HEAD/CHANGELOG.md#12400-2023-08-09)
##### ⚠ BREAKING CHANGES
- **youtube:** This release has breaking changes.
- **workloadmanager:** This release has breaking changes.
- **smartdevicemanagement:** This release has breaking changes.
- **serviceusage:** This release has breaking changes.
- **servicedirectory:** This release has breaking changes.
- **retail:** This release has breaking changes.
- **networkconnectivity:** This release has breaking changes.
- **monitoring:** This release has breaking changes.
- **gkeonprem:** This release has breaking changes.
- **gkehub:** This release has breaking changes.
- **contentwarehouse:** This release has breaking changes.
- **contactcenteraiplatform:** This release has breaking changes.
- **compute:** This release has breaking changes.
- **checks:** This release has breaking changes.
- **bigtableadmin:** This release has breaking changes.
- **bigquery:** This release has breaking changes.
- **assuredworkloads:** This release has breaking changes.
- **androidmanagement:** This release has breaking changes.
- **analyticsadmin:** This release has breaking changes.
- migate to Node 14
##### Features
- **admin:** update the API ([1bc7f53](1bc7f53857))
- **analyticsadmin:** update the API ([8f479e1](8f479e1550))
- **analyticshub:** update the API ([427f865](427f8657bc))
- **androidmanagement:** update the API ([d885722](d885722fa7))
- **artifactregistry:** update the API ([d70a33e](d70a33e42e))
- **assuredworkloads:** update the API ([321cff7](321cff70dc))
- **beyondcorp:** update the API ([ad95808](ad95808585))
- **bigquerydatatransfer:** update the API ([b290e4a](b290e4a24d))
- **bigquery:** update the API ([3a1ca66](3a1ca661f4))
- **bigtableadmin:** update the API ([4f1fb0c](4f1fb0cac0))
- **chat:** update the API ([c594a3b](c594a3b012))
- **checks:** update the API ([b9c4657](b9c46572eb))
- **cloudbuild:** update the API ([1d791a8](1d791a8bc5))
- **clouddeploy:** update the API ([c733347](c7333472fd))
- **cloudfunctions:** update the API ([0255d75](0255d75e4b))
- **compute:** update the API ([0237e76](0237e76d5b))
- **connectors:** update the API ([cc40ccb](cc40ccbdeb))
- **contactcenteraiplatform:** update the API ([6778c8d](6778c8ddfa))
- **containeranalysis:** update the API ([a74b5e3](a74b5e3e99))
- **container:** update the API ([1f06a76](1f06a76ec8))
- **content:** update the API ([b5af676](b5af676bbb))
- **contentwarehouse:** update the API ([ac9b754](ac9b7543ce))
- **datacatalog:** update the API ([747a4af](747a4af6ff))
- **dataflow:** update the API ([a62940f](a62940fdc1))
- **dataform:** update the API ([d1a0a72](d1a0a72df8))
- **datamigration:** update the API ([5037d65](5037d6562b))
- **dataplex:** update the API ([ef7bc25](ef7bc250fb))
- **dataproc:** update the API ([1c699db](1c699db9ce))
- **datastore:** update the API ([80a30a0](80a30a04e2))
- **datastream:** update the API ([2c1c784](2c1c784b89))
- **dialogflow:** update the API ([bac62ef](bac62ef9ff))
- **discoveryengine:** update the API ([d8debb8](d8debb8863))
- **discovery:** update the API ([c82eebd](c82eebd5f1))
- **displayvideo:** update the API ([bbc4d65](bbc4d65427))
- **documentai:** update the API ([8ac40a0](8ac40a004e))
- **drivelabels:** update the API ([5ef5d03](5ef5d030b1))
- **drive:** update the API ([2432651](243265177f))
- **firebaseappcheck:** update the API ([7c4888c](7c4888c182))
- **firebase:** update the API ([fdafcaa](fdafcaa969))
- **firestore:** update the API ([7a14283](7a14283031))
- **games:** update the API ([55fed7d](55fed7d4ec))
- **gkebackup:** update the API ([8d1ac26](8d1ac26eb6))
- **gkehub:** update the API ([81d36c9](81d36c9368))
- **gkeonprem:** update the API ([7412e91](7412e91ccd))
- **healthcare:** update the API ([1d0354c](1d0354c855))
- **migrationcenter:** update the API ([f4cb381](f4cb38184d))
- **monitoring:** update the API ([f5bf72c](f5bf72c5a7))
- **networkconnectivity:** update the API ([23894c5](23894c5f96))
- **networksecurity:** update the API ([d9f4f91](d9f4f9174f))
- **notebooks:** update the API ([9498d86](9498d86aaf))
- **ondemandscanning:** update the API ([0ec83f3](0ec83f316b))
- **osconfig:** update the API ([e1ca8d0](e1ca8d031e))
- **oslogin:** update the API ([cf32530](cf32530418))
- **policysimulator:** update the API ([7c67951](7c6795150e))
- **pubsub:** update the API ([27c5439](27c5439336))
- regenerate index files ([7e6a0e5](7e6a0e582b))
- **retail:** update the API ([4dcd52b](4dcd52b6a7))
- **securitycenter:** update the API ([82cf038](82cf0380c5))
- **serviceconsumermanagement:** update the API ([da52b7e](da52b7ef38))
- **servicecontrol:** update the API ([d246968](d24696820f))
- **servicedirectory:** update the API ([70389d9](70389d96ea))
- **servicemanagement:** update the API ([6fdca08](6fdca087b3))
- **servicenetworking:** update the API ([d4784d0](d4784d07dd))
- **serviceusage:** update the API ([cf72cfd](cf72cfd02b))
- **smartdevicemanagement:** update the API ([cc5c86e](cc5c86e758))
- **sqladmin:** update the API ([0c9f7b6](0c9f7b666d))
- **tagmanager:** update the API ([42c3b97](42c3b97d78))
- **toolresults:** update the API ([d07c878](d07c8782d3))
- **tpu:** update the API ([6109722](61097227dc))
- **trafficdirector:** update the API ([d07ac95](d07ac95641))
- **vault:** update the API ([e1d2dc4](e1d2dc4ca3))
- **verifiedaccess:** update the API ([d8e2234](d8e22343e2))
- **videointelligence:** update the API ([158ae35](158ae35e73))
- **vmmigration:** update the API ([3adbd55](3adbd5557e))
- **workloadmanager:** update the API ([2f089aa](2f089aa056))
- **youtube:** update the API ([83aac2f](83aac2f393))
##### Bug Fixes
- **abusiveexperiencereport:** update the API ([51e5811](51e581179d))
- **acceleratedmobilepageurl:** update the API ([a6a2a06](a6a2a06ff1))
- **accessapproval:** update the API ([5194181](519418151e))
- **accesscontextmanager:** update the API ([28aebba](28aebba030))
- **acmedns:** update the API ([c6b1bcb](c6b1bcb8c3))
- add headers to tests ([d88a219](d88a2193ee))
- **adexchangebuyer2:** update the API ([436e422](436e422f45))
- **adexchangebuyer:** update the API ([de73406](de73406cfe))
- **adexperiencereport:** update the API ([3363255](3363255135))
- **admob:** update the API ([d249550](d249550bd5))
- **adsensehost:** update the API ([0a088ff](0a088ff891))
- **adsense:** update the API ([e1f10f6](e1f10f6ecf))
- **advisorynotifications:** update the API ([d8350ff](d8350ff286))
- **aiplatform:** update the API ([7feb2e8](7feb2e8bf0))
- **alertcenter:** update the API ([a073124](a07312469e))
- **analyticsdata:** update the API ([43bedd1](43bedd114a))
- **analyticsreporting:** update the API ([2d68b5a](2d68b5aa54))
- **analytics:** update the API ([64c4b07](64c4b07238))
- **androiddeviceprovisioning:** update the API ([ba02075](ba02075615))
- **androidenterprise:** update the API ([93f7c0c](93f7c0c999))
- **androidpublisher:** update the API ([8d35576](8d35576047))
- **apigateway:** update the API ([fc58d33](fc58d331a6))
- **apigeeregistry:** update the API ([b57542e](b57542e40b))
- **apikeys:** update the API ([18e475b](18e475be06))
- **appengine:** update the API ([67a3448](67a3448d66))
- **appsactivity:** update the API ([f8ba6ee](f8ba6ee70c))
- **area120tables:** update the API ([6ae8d8d](6ae8d8d8be))
- **authorizedbuyersmarketplace:** update the API ([61d943b](61d943be06))
- **baremetalsolution:** update the API ([269dae8](269dae821f))
- **batch:** update the API ([7aa7cc7](7aa7cc702d))
- **bigqueryconnection:** update the API ([bb288b1](bb288b1195))
- **bigqueryreservation:** update the API ([4e77b1d](4e77b1d162))
- **billingbudgets:** update the API ([0f799e6](0f799e65a5))
- **binaryauthorization:** update the API ([deb6c10](deb6c10db6))
- **blockchainnodeengine:** update the API ([b6bd10a](b6bd10a35c))
- **blogger:** update the API ([975da3e](975da3e0ed))
- **books:** update the API ([4bef344](4bef344a07))
- **businessprofileperformance:** update the API ([5b313f4](5b313f4920))
- **calendar:** update the API ([006efbc](006efbc7fa))
- **certificatemanager:** update the API ([7d91857](7d91857b20))
- **chromemanagement:** update the API ([fd29c85](fd29c85f37))
- **chromepolicy:** update the API ([f51e0db](f51e0db2dc))
- **chromeuxreport:** update the API ([fd7db9e](fd7db9edc4))
- **civicinfo:** update the API ([a1f55b2](a1f55b245d))
- **classroom:** update the API ([7603333](7603333575))
- **cloudasset:** update the API ([1ffdfc2](1ffdfc2b30))
- **cloudbilling:** update the API ([46cbf0e](46cbf0ef91))
- **cloudchannel:** update the API ([e563d83](e563d832be))
- **clouddebugger:** update the API ([faad469](faad4698e5))
- **clouderrorreporting:** update the API ([afa4dec](afa4dec030))
- **cloudidentity:** update the API ([2610c07](2610c07173))
- **cloudiot:** update the API ([49105a6](49105a65ea))
- **cloudkms:** update the API ([208f1da](208f1daac6))
- **cloudprofiler:** update the API ([25cdd90](25cdd90c33))
- **cloudresourcemanager:** update the API ([493ac8c](493ac8ce90))
- **cloudscheduler:** update the API ([58070d7](58070d75a2))
- **cloudsearch:** update the API ([d732a80](d732a80357))
- **cloudshell:** update the API ([f098eb8](f098eb8765))
- **cloudsupport:** update the API ([16514b9](16514b97fc))
- **cloudtasks:** update the API ([12a7fe1](12a7fe1b93))
- **cloudtrace:** update the API ([85adc52](85adc52814))
- **composer:** update the API ([746d876](746d876c78))
- **contactcenterinsights:** update the API ([03a34b1](03a34b14b6))
- **customsearch:** update the API ([13ef993](13ef993800))
- **datafusion:** update the API ([d74fb78](d74fb78629))
- **datalabeling:** update the API ([ed7e0cb](ed7e0cb989))
- **datalineage:** update the API ([7be88ab](7be88abd11))
- **datapipelines:** update the API ([68131e2](68131e2960))
- **deploymentmanager:** update the API ([7a36c72](7a36c726f7))
- **dfareporting:** update the API ([f9c9934](f9c9934688))
- **digitalassetlinks:** update the API ([ef3f085](ef3f0859be))
- **dlp:** update the API ([75eb667](75eb6671c3))
- **dns:** update the API ([6e63b36](6e63b36afb))
- **docs:** update the API ([9cdab2d](9cdab2d96b))
- **domainsrdap:** update the API ([13b01b1](13b01b1767))
- **domains:** update the API ([884519b](884519bf3a))
- **doubleclickbidmanager:** update the API ([73d0bed](73d0bedb16))
- **doubleclicksearch:** update the API ([fa8cb1f](fa8cb1f4aa))
- **driveactivity:** update the API ([13487f9](13487f9ce2))
- **essentialcontacts:** update the API ([5fab60a](5fab60a961))
- **eventarc:** update the API ([d615c48](d615c48812))
- **factchecktools:** update the API ([6f372f1](6f372f19cc))
- **fcmdata:** update the API ([3b19295](3b192956b2))
- **fcm:** update the API ([e099c42](e099c42993))
- **file:** update the API ([9bbf034](9bbf0348a0))
- **firebaseappdistribution:** update the API ([8da0eb4](8da0eb460f))
- **firebasedatabase:** update the API ([4032b62](4032b62921))
- **firebasedynamiclinks:** update the API ([9d96aea](9d96aeafe1))
- **firebasehosting:** update the API ([c23f76b](c23f76bf5e))
- **firebaseml:** update the API ([048c48e](048c48e88b))
- **firebaserules:** update the API ([5e24b10](5e24b105f7))
- **firebasestorage:** update the API ([ea95e22](ea95e22fb2))
- **fitness:** update the API ([7c544ff](7c544ffc24))
- **forms:** update the API ([8ba614a](8ba614a2aa))
- **gamesConfiguration:** update the API ([8d46262](8d46262831))
- **gameservices:** update the API ([900a2fa](900a2fac5c))
- **gamesManagement:** update the API ([7997150](799715027a))
- **genomics:** update the API ([c64bc84](c64bc848cb))
- **gmailpostmastertools:** update the API ([3b25276](3b25276be0))
- **gmail:** update the API ([6ee8730](6ee873005b))
- **groupsmigration:** update the API ([e0c396e](e0c396e9d0))
- **groupssettings:** update the API ([8400a0e](8400a0e998))
- **homegraph:** update the API ([c77f44b](c77f44b726))
- **iamcredentials:** update the API ([b806bd9](b806bd9fb9))
- **iam:** update the API ([6ad470f](6ad470ffbb))
- **iap:** update the API ([8b998a0](8b998a0914))
- **ideahub:** update the API ([1540d50](1540d50df9))
- **identitytoolkit:** update the API ([4d7a874](4d7a874025))
- **ids:** update the API ([428dc29](428dc29375))
- **indexing:** update the API ([782806a](782806a470))
- **integrations:** update the API ([96dd8fd](96dd8fd2c1))
- **jobs:** update the API ([10826fa](10826fa6de))
- **kgsearch:** update the API ([9cee192](9cee192c08))
- **kmsinventory:** update the API ([9492458](9492458165))
- **language:** update the API ([585690a](585690a033))
- **libraryagent:** update the API ([9251716](9251716a73))
- **licensing:** update the API ([c5271b5](c5271b559e))
- **lifesciences:** update the API ([145d7ce](145d7ce4d4))
- **localservices:** update the API ([db5b627](db5b6271a4))
- **logging:** update the API ([df73435](df73435d7d))
- **managedidentities:** update the API ([1814dfa](1814dfa9e3))
- **manufacturers:** update the API ([c6c1398](c6c1398806))
- **memcache:** update the API ([05013bb](05013bb4d2))
- **metastore:** update the API ([45b0b5d](45b0b5d84f))
- **ml:** update the API ([9e1be4a](9e1be4aed4))
- **mybusinessaccountmanagement:** update the API ([6bc90e9](6bc90e9575))
- **mybusinessbusinesscalls:** update the API ([13ec9e0](13ec9e001a))
- **mybusinessbusinessinformation:** update the API ([565b3fa](565b3fa86b))
- **mybusinesslodging:** update the API ([006bd5a](006bd5a42d))
- **mybusinessnotifications:** update the API ([78e33ee](78e33ee568))
- **mybusinessplaceactions:** update the API ([bc8e5c7](bc8e5c7259))
- **mybusinessqanda:** update the API ([0ca91b1](0ca91b1e04))
- **mybusinessverifications:** update the API ([d5de2b9](d5de2b9692))
- **networkmanagement:** update the API ([533642b](533642ba85))
- **networkservices:** update the API ([8133c74](8133c7471e))
- **oauth2:** update the API ([5097e00](5097e00e9b))
- **orgpolicy:** update the API ([4f1d852](4f1d85203a))
- **pagespeedonline:** update the API ([fb574b4](fb574b4740))
- **paymentsresellersubscription:** update the API ([ecff656](ecff6566f2))
- **people:** update the API ([abebf9f](abebf9f738))
- **places:** update the API ([1582524](1582524f23))
- **playablelocations:** update the API ([711c349](711c349182))
- **playcustomapp:** update the API ([d96f5b2](d96f5b2af3))
- **playdeveloperreporting:** update the API ([e05bcaf](e05bcaf6c0))
- **playintegrity:** update the API ([7c9edd3](7c9edd37f9))
- **plus:** update the API ([ecac7a8](ecac7a88cd))
- **policyanalyzer:** update the API ([98148bf](98148bf5d9))
- **policytroubleshooter:** update the API ([36a5273](36a52733f6))
- **poly:** update the API ([807484d](807484d57a))
- **privateca:** update the API ([b654769](b654769dd2))
- **prod_tt_sasportal:** update the API ([b8c3705](b8c3705040))
- **publicca:** update the API ([f3361e6](f3361e6e1d))
- **pubsublite:** update the API ([87e148d](87e148d025))
- **readerrevenuesubscriptionlinking:** update the API ([6eb57e9](6eb57e9d2f))
- **realtimebidding:** update the API ([dbcfad2](dbcfad26ca))
- **recaptchaenterprise:** update the API ([3af6e62](3af6e62c11))
- **recommendationengine:** update the API ([b5323d8](b5323d877e))
- **recommender:** update the API ([bf6eed9](bf6eed9745))
- **redis:** update the API ([6879c13](6879c133e0))
- **remotebuildexecution:** update the API ([911cd0a](911cd0a68e))
- **reseller:** update the API ([e7ec5d3](e7ec5d33b9))
- **resourcesettings:** update the API ([c2c0c9e](c2c0c9ecd6))
- **runtimeconfig:** update the API ([7866c3a](7866c3a9b9))
- **run:** update the API ([2ed76fe](2ed76fe355))
- **safebrowsing:** update the API ([fe23d83](fe23d83559))
- **sasportal:** update the API ([ca33e9c](ca33e9c71f))
- **script:** update the API ([207587b](207587b2b7))
- **searchads360:** update the API ([8ed1df1](8ed1df140b))
- **searchconsole:** update the API ([208d0a5](208d0a5dc7))
- **secretmanager:** update the API ([426f146](426f146ac7))
- **sheets:** update the API ([3333f83](3333f83473))
- **siteVerification:** update the API ([760447c](760447c313))
- **slides:** update the API ([5e4d08c](5e4d08cfae))
- **sourcerepo:** update the API ([f803061](f803061d79))
- **spanner:** update the API ([8fe5e93](8fe5e9303a))
- **speech:** update the API ([34b7185](34b7185e75))
- **sql:** update the API ([b29a348](b29a34873e))
- **storagetransfer:** update the API ([d4e4820](d4e48203dd))
- **storage:** update the API ([20860bc](20860bc1ab))
- **streetviewpublish:** update the API ([1c6bb94](1c6bb94e2e))
- **sts:** update the API ([5765d2a](5765d2a4a1))
- **tasks:** update the API ([0eac80e](0eac80eb8e))
- **testing:** update the API ([fd787ed](fd787ed8f2))
- **texttospeech:** update the API ([9981feb](9981feb93e))
- **transcoder:** update the API ([851586c](851586c418))
- **translate:** update the API ([e11cc5e](e11cc5eea6))
- **travelimpactmodel:** update the API ([75a5352](75a5352631))
- **vectortile:** update the API ([4d94932](4d949325d9))
- **versionhistory:** update the API ([bb2ceec](bb2ceec5dd))
- **vision:** update the API ([afea669](afea6697bc))
- **vpcaccess:** update the API ([da58970](da5897041f))
- **webfonts:** update the API ([f0a4421](f0a4421760))
- **webmasters:** update the API ([d4143d6](d4143d6ab0))
- **webrisk:** update the API ([d4cc69b](d4cc69bca7))
- **websecurityscanner:** update the API ([9960a3a](9960a3aff2))
- **workflowexecutions:** update the API ([b3488ab](b3488abe18))
- **workflows:** update the API ([0b82237](0b82237e45))
- **workstations:** update the API ([a5f5488](a5f5488c31))
- **youtubeAnalytics:** update the API ([203afe6](203afe652d))
- **youtubereporting:** update the API ([48b6016](48b6016a38))
##### Miscellaneous Chores
- migate to Node 14 ([0967781](09677817aa))
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/toeverything/AFFiNE).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNzYuMiIsInVwZGF0ZWRJblZlciI6IjM5LjE3Ni4yIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==-->
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "* 0-3 * * 1" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/toeverything/AFFiNE).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNjQuMSIsInVwZGF0ZWRJblZlciI6IjM5LjE3Ni4yIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==-->
The new code should be more efficient as it:
- Avoids unnecessary iterations when objects aren't empty
- Has clearer path management
- Reduces redundant object traversals
1. **Table UI Enhancements - Test IDs Added**
- Added `data-testid` attributes to several table components for better testability:
- `add-column-button` for the column addition button
- `add-row-button` for the row addition button
- `drag-column-handle` for column drag handles
- `drag-row-handle` for row drag handles
2. **New Test Infrastructure**
- Added new testing utilities in `tests/kit/src/bs/`:
- `misc.ts`: Added `waitNextFrame` utility function for handling animation frame timing in tests
- `table.ts`: Added comprehensive table testing utilities including:
- `createTable`: Creates a new table with initial cells
- `getCellText`: Retrieves text from a specific table cell
- `inputToCell`: Inputs text into a specific table cell
- `clickDeleteButtonInTableMenu`: Handles table deletion operations
3. **New Collaboration Test**
- Added a new test file `tests/affine-local/e2e/blocksuite/table/collab.spec.ts` that tests table collaboration features:
- Tests synchronization between two pages (A and B)
- Verifies table operations sync correctly:
- Adding columns and rows
- Inputting cell content
- Deleting columns and rows
- Validates cell content consistency across both pages
- Tests the complete table manipulation workflow in a collaborative setting
4. **Package Configuration Update**
- Modified `tests/kit/package.json` to expose new test utilities:
- Added new export mapping: `"./bs/*": "./src/bs/*.ts"` to make the new table testing utilities accessible
This PR primarily focuses on improving table testing infrastructure and adding comprehensive collaboration tests for the table functionality, while also enhancing component testability through data-test-ids.
A listening tappable app's info should inherit from its group process's name/icon. However the group process may not be listed as a tappable application.
Why make this fix?
The network search flag is saved locally. If the user opens multiple clients, the local status and server status may be inconsistent.
The main changes in this PR involve replacing the deprecated `BlockServiceWatcher` with the new `LifeCycleWatcher` across multiple files. Here's a detailed breakdown:
1. **Core Architectural Change:**
- Removed `BlockServiceWatcher` class completely (deleted file)
- Migrated to `LifeCycleWatcher` as the new standard for watching component lifecycle events
2. **Key Changes in Implementation:**
- Changed from using `blockService.specSlots` events to using `view.viewUpdated` events
- Replaced `flavour` static property with `key` static property
- Updated event handling to use more specific payload type checking
3. **Major File Changes:**
- Modified multiple block components:
- Embed synced doc block
- Frame preview
- Edgeless root spec
- AI-related components (code, image, paragraph, etc.)
- Quick search service
- Edgeless clipboard
4. **Pattern of Changes:**
The migration follows a consistent pattern:
```typescript
// Old pattern
class SomeWatcher extends BlockServiceWatcher {
static override readonly flavour = 'some:flavour';
mounted() {
this.blockService.specSlots.viewConnected.on(...)
}
}
// New pattern
class SomeWatcher extends LifeCycleWatcher {
static override key = 'some-watcher';
mounted() {
const { view } = this.std;
view.viewUpdated.on(payload => {
if (payload.type !== 'block' || payload.method !== 'add') return;
// Handle event
});
}
}
```
5. **Benefits:**
- More explicit and type-safe event handling
- Cleaner architecture by removing deprecated code
- More consistent approach to lifecycle management
- Better separation of concerns
This appears to be a significant architectural improvement that modernizes the codebase by removing deprecated patterns and standardizing on a more robust lifecycle management system.
1. **Major Architectural Change: Schema Management**
- Moved from `workspace.schema` to `store.schema` throughout the codebase
- Removed schema property from Workspace and Doc interfaces
- Added `BlockSchemaExtension` pattern across multiple block types
2. **Block Schema Extensions Added**
- Added new `BlockSchemaExtension` to numerous block types including:
- DataView, Surface, Attachment, Bookmark, Code
- Database, Divider, EdgelessText, Embed blocks (Figma, Github, HTML, etc.)
- Frame, Image, Latex, List, Note, Paragraph
- Root, Surface Reference, Table blocks
3. **Import/Export System Updates**
- Updated import functions to accept `schema` parameter:
- `importHTMLToDoc`
- `importHTMLZip`
- `importMarkdownToDoc`
- `importMarkdownZip`
- `importNotionZip`
- Modified export functions to use new schema pattern
4. **Test Infrastructure Updates**
- Updated test files to use new schema extensions
- Modified test document creation to include schema extensions
- Removed direct schema registration in favor of extensions
5. **Service Layer Changes**
- Updated various services to use `getAFFiNEWorkspaceSchema()`
- Modified transformer initialization to use document schema
- Updated collection initialization patterns
6. **Version Management**
- Removed version-related properties and methods from:
- `WorkspaceMetaImpl`
- `TestMeta`
- `DocImpl`
- Removed `blockVersions` and `workspaceVersion/pageVersion`
7. **Store and Extension Updates**
- Added new store extensions and adapters
- Updated store initialization patterns
- Added new schema-related functionality in store extension
This PR represents a significant architectural shift in how schemas are managed, moving from a workspace-centric to a store-centric approach, while introducing a more extensible block schema system through `BlockSchemaExtension`. The changes touch multiple layers of the application including core functionality, services, testing infrastructure, and import/export capabilities.