constructor() {
    super();
    this.ca = { cert: null, url: null };
    this.cache = {};
    this.bundleId = '';
  }
Parse Server authentication adapter for Apple Game Center.

@class AppleGameCenterAdapter
@param {Object} options - Configuration options for the adapter.
@param {string} options.bundleId - Your Apple Game Center bundle ID. Required for secure authentication.
@param {boolean} [options.enableInsecureAuth=false] - **[DEPRECATED]** Enable insecure authentication (not recommended).

@param {Object} authData - The authentication data provided by the client.
@param {string} authData.id - The user ID obtained from Apple Game Center.
@param {string} authData.publicKeyUrl - The public key URL obtained from Apple Game Center.
@param {string} authData.timestamp - The timestamp obtained from Apple Game Center.
@param {string} authData.signature - The signature obtained from Apple Game Center.
@param {string} authData.salt - The salt obtained from Apple Game Center.
@param {string} [authData.bundleId] - **[DEPRECATED]** The bundle ID obtained from Apple Game Center (required for insecure authentication).

@description
## Parse Server Configuration
The following `authData` fields are required:
`id`, `publicKeyUrl`, `timestamp`, `signature`, and `salt`. These fields are validated against the configured `bundleId` for additional security.

To configure Parse Server for Apple Game Center authentication, use the following structure:
```json
{
 "auth": {
   "gcenter": {
    "bundleId": "com.valid.app"
 }
}
```

## Insecure Authentication (Not Recommended)
The following `authData` fields are required for insecure authentication:
`id`, `publicKeyUrl`, `timestamp`, `signature`, `salt`, and `bundleId` (**[DEPRECATED]**). This flow is insecure and poses potential security risks.

To configure Parse Server for insecure authentication, use the following structure:
```json
{
  "auth": {
   "gcenter": {
     "enableInsecureAuth": true
  }
}
```

### Deprecation Notice
The `enableInsecureAuth` option and `authData.bundleId` parameter are deprecated and may be removed in future releases. Use secure authentication with the `bundleId` configured in the `options` object instead.


@example <caption>Secure Authentication Example</caption>
// Example authData for secure authentication:
const authData = {
  gcenter: {
    id: "1234567",
    publicKeyUrl: "https://valid.apple.com/public/timeout.cer",
    timestamp: 1460981421303,
    salt: "saltST==",
    signature: "PoDwf39DCN464B49jJCU0d9Y0J"
  }
};

@example <caption>Insecure Authentication Example (Not Recommended)</caption>
// Example authData for insecure authentication:
const authData = {
  gcenter: {
    id: "1234567",
    publicKeyUrl: "https://valid.apple.com/public/timeout.cer",
    timestamp: 1460981421303,
    salt: "saltST==",
    signature: "PoDwf39DCN464B49jJCU0d9Y0J",
    bundleId: "com.valid.app" // Deprecated.
  }
};

@see {@link https://developer.apple.com/documentation/gamekit/gklocalplayer/3516283-fetchitems Apple Game Center Documentation}