working with feature services in arcgis online.
i am using the ESRI JS SDK via esm npm package installed:
"@arcgis/core": "^4.29.2"
i pull a list of PortalItems via PortalQueryParams:
import PortalQueryParams from '@arcgis/core/portal/PortalQueryParams'
then for any given item from the list, i can update it's metadata properties just fine (description, accessInformation, snippet, etc.) but when i change the "access" property, it gets ignored.
looking at the network request, clearly the "access" property is dropped by the .update() method since it is not present in the Form Data.

i have dove into the PortalItem .update method source code and can see where "access" is ignored when building the request form data. specifically, .update() calls a createPostQuery function, which then runs a function this.toJSON which does not include the "access" property.

I have wasted hours... exploring this source code and these objects trying to figure out why it is getting ignored, and if an alternative method is required to update the sharing access that is not documented. i have had no luck. this is extremely frustrating because it should be as easy as changing the value for access. ESPECIALLY when the documentation indicates that it is possible:
https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-PortalItem.html#update
https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-PortalItem.html#access
The access property is NOT read-only like others are!

any help with this would be extremely appreciated!
i see the capabilities to accomplish this using the REST api but it seems ridiculous to me that such a simple change would require a whole separate set of requests when i am already authenticated and updating the portal item.