initial commit

This commit is contained in:
2025-09-01 22:12:29 +02:00
parent b1873f9c1d
commit 02a54f61c0
5598 changed files with 903558 additions and 0 deletions

View File

@@ -0,0 +1,53 @@
/*! firebase-admin v13.5.0 */
/*!
* Copyright 2021 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* Firebase Instance ID service.
*
* @packageDocumentation
*/
import { App } from '../app/index';
import { Installations } from './installations';
export { Installations };
/**
* Gets the {@link Installations} service for the default app or a given app.
*
* `getInstallations()` can be called with no arguments to access the default
* app's `Installations` service or as `getInstallations(app)` to access the
* `Installations` service associated with a specific app.
*
* @example
* ```javascript
* // Get the Installations service for the default app
* const defaultInstallations = getInstallations();
* ```
*
* @example
* ```javascript
* // Get the Installations service for a given app
* const otherInstallations = getInstallations(otherApp);
*```
*
* @param app - Optional app whose `Installations` service to
* return. If not provided, the default `Installations` service will be
* returned.
*
* @returns The default `Installations` service if
* no app is provided or the `Installations` service associated with the
* provided app.
*/
export declare function getInstallations(app?: App): Installations;
export { FirebaseInstallationsError, InstallationsClientErrorCode } from '../utils/error';

View File

@@ -0,0 +1,65 @@
/*! firebase-admin v13.5.0 */
"use strict";
/*!
* Copyright 2021 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.InstallationsClientErrorCode = exports.FirebaseInstallationsError = exports.Installations = void 0;
exports.getInstallations = getInstallations;
/**
* Firebase Instance ID service.
*
* @packageDocumentation
*/
const index_1 = require("../app/index");
const installations_1 = require("./installations");
Object.defineProperty(exports, "Installations", { enumerable: true, get: function () { return installations_1.Installations; } });
/**
* Gets the {@link Installations} service for the default app or a given app.
*
* `getInstallations()` can be called with no arguments to access the default
* app's `Installations` service or as `getInstallations(app)` to access the
* `Installations` service associated with a specific app.
*
* @example
* ```javascript
* // Get the Installations service for the default app
* const defaultInstallations = getInstallations();
* ```
*
* @example
* ```javascript
* // Get the Installations service for a given app
* const otherInstallations = getInstallations(otherApp);
*```
*
* @param app - Optional app whose `Installations` service to
* return. If not provided, the default `Installations` service will be
* returned.
*
* @returns The default `Installations` service if
* no app is provided or the `Installations` service associated with the
* provided app.
*/
function getInstallations(app) {
if (typeof app === 'undefined') {
app = (0, index_1.getApp)();
}
const firebaseApp = app;
return firebaseApp.getOrInitService('installations', (app) => new installations_1.Installations(app));
}
var error_1 = require("../utils/error");
Object.defineProperty(exports, "FirebaseInstallationsError", { enumerable: true, get: function () { return error_1.FirebaseInstallationsError; } });
Object.defineProperty(exports, "InstallationsClientErrorCode", { enumerable: true, get: function () { return error_1.InstallationsClientErrorCode; } });

View File

@@ -0,0 +1,55 @@
/*! firebase-admin v13.5.0 */
/*!
* Copyright 2021 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { App } from '../app/index';
import { Installations as TInstallations } from './installations';
/**
* Gets the {@link firebase-admin.installations#Installations} service for the
* default app or a given app.
*
* `admin.installations()` can be called with no arguments to access the default
* app's {@link firebase-admin.installations#Installations} service or as
* `admin.installations(app)` to access the
* {@link firebase-admin.installations#Installations} service associated with a
* specific app.
*
* @example
* ```javascript
* // Get the Installations service for the default app
* var defaultInstallations = admin.installations();
* ```
*
* @example
* ```javascript
* // Get the Installations service for a given app
* var otherInstallations = admin.installations(otherApp);
*```
*
* @param app - Optional app whose `Installations` service to
* return. If not provided, the default `Installations` service is
* returned.
*
* @returns The default `Installations` service if
* no app is provided or the `Installations` service associated with the
* provided app.
*/
export declare function installations(app?: App): installations.Installations;
export declare namespace installations {
/**
* Type alias to {@link firebase-admin.installations#Installations}.
*/
type Installations = TInstallations;
}

View File

@@ -0,0 +1,18 @@
/*! firebase-admin v13.5.0 */
"use strict";
/*!
* Copyright 2021 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
Object.defineProperty(exports, "__esModule", { value: true });

View File

@@ -0,0 +1,43 @@
/*! firebase-admin v13.5.0 */
/*!
* @license
* Copyright 2021 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { App } from '../app/index';
/**
* Class that provides mechanism to send requests to the FIS backend endpoints.
*/
export declare class FirebaseInstallationsRequestHandler {
private readonly app;
private readonly host;
private readonly timeout;
private readonly httpClient;
private path;
/**
* @param app - The app used to fetch access tokens to sign API requests.
*
* @constructor
*/
constructor(app: App);
deleteInstallation(fid: string): Promise<void>;
/**
* Invokes the request handler based on the API settings object passed.
*
* @param apiSettings - The API endpoint settings to apply to request and response.
* @returns A promise that resolves when the request is complete.
*/
private invokeRequestHandler;
private getPathPrefix;
}

View File

@@ -0,0 +1,114 @@
/*! firebase-admin v13.5.0 */
"use strict";
/*!
* @license
* Copyright 2021 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.FirebaseInstallationsRequestHandler = void 0;
const error_1 = require("../utils/error");
const api_request_1 = require("../utils/api-request");
const utils = require("../utils/index");
const validator = require("../utils/validator");
/** Firebase IID backend host. */
const FIREBASE_IID_HOST = 'console.firebase.google.com';
/** Firebase IID backend path. */
const FIREBASE_IID_PATH = '/v1/';
/** Firebase IID request timeout duration in milliseconds. */
const FIREBASE_IID_TIMEOUT = 10000;
/** HTTP error codes raised by the backend server. */
const ERROR_CODES = {
400: 'Malformed installation ID argument.',
401: 'Request not authorized.',
403: 'Project does not match installation ID or the client does not have sufficient privileges.',
404: 'Failed to find the installation ID.',
409: 'Already deleted.',
429: 'Request throttled out by the backend server.',
500: 'Internal server error.',
503: 'Backend servers are over capacity. Try again later.',
};
/**
* Class that provides mechanism to send requests to the FIS backend endpoints.
*/
class FirebaseInstallationsRequestHandler {
/**
* @param app - The app used to fetch access tokens to sign API requests.
*
* @constructor
*/
constructor(app) {
this.app = app;
this.host = FIREBASE_IID_HOST;
this.timeout = FIREBASE_IID_TIMEOUT;
this.httpClient = new api_request_1.AuthorizedHttpClient(app);
}
deleteInstallation(fid) {
if (!validator.isNonEmptyString(fid)) {
return Promise.reject(new error_1.FirebaseInstallationsError(error_1.InstallationsClientErrorCode.INVALID_INSTALLATION_ID, 'Installation ID must be a non-empty string.'));
}
return this.invokeRequestHandler(new api_request_1.ApiSettings(fid, 'DELETE'));
}
/**
* Invokes the request handler based on the API settings object passed.
*
* @param apiSettings - The API endpoint settings to apply to request and response.
* @returns A promise that resolves when the request is complete.
*/
invokeRequestHandler(apiSettings) {
return this.getPathPrefix()
.then((path) => {
const req = {
url: `https://${this.host}${path}${apiSettings.getEndpoint()}`,
method: apiSettings.getHttpMethod(),
timeout: this.timeout,
};
return this.httpClient.send(req);
})
.then(() => {
// return nothing on success
})
.catch((err) => {
if (err instanceof api_request_1.RequestResponseError) {
const response = err.response;
const errorMessage = (response.isJson() && 'error' in response.data) ?
response.data.error : response.text;
const template = ERROR_CODES[response.status];
const message = template ?
`Installation ID "${apiSettings.getEndpoint()}": ${template}` : errorMessage;
throw new error_1.FirebaseInstallationsError(error_1.InstallationsClientErrorCode.API_ERROR, message);
}
// In case of timeouts and other network errors, the HttpClient returns a
// FirebaseError wrapped in the response. Simply throw it here.
throw err;
});
}
getPathPrefix() {
if (this.path) {
return Promise.resolve(this.path);
}
return utils.findProjectId(this.app)
.then((projectId) => {
if (!validator.isNonEmptyString(projectId)) {
// Assert for an explicit projct ID (either via AppOptions or the cert itself).
throw new error_1.FirebaseInstallationsError(error_1.InstallationsClientErrorCode.INVALID_PROJECT_ID, 'Failed to determine project ID for Installations. Initialize the '
+ 'SDK with service account credentials or set project ID as an app option. '
+ 'Alternatively set the GOOGLE_CLOUD_PROJECT environment variable.');
}
this.path = FIREBASE_IID_PATH + `project/${projectId}/instanceId/`;
return this.path;
});
}
}
exports.FirebaseInstallationsRequestHandler = FirebaseInstallationsRequestHandler;

View File

@@ -0,0 +1,38 @@
/*! firebase-admin v13.5.0 */
/*!
* Copyright 2021 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { App } from '../app/index';
/**
* The `Installations` service for the current app.
*/
export declare class Installations {
private app_;
private requestHandler;
/**
* Deletes the specified installation ID and the associated data from Firebase.
*
* @param fid - The Firebase installation ID to be deleted.
*
* @returns A promise fulfilled when the installation ID is deleted.
*/
deleteInstallation(fid: string): Promise<void>;
/**
* Returns the app associated with this Installations instance.
*
* @returns The app associated with this Installations instance.
*/
get app(): App;
}

View File

@@ -0,0 +1,58 @@
/*! firebase-admin v13.5.0 */
"use strict";
/*!
* Copyright 2021 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.Installations = void 0;
const error_1 = require("../utils/error");
const installations_request_handler_1 = require("./installations-request-handler");
const validator = require("../utils/validator");
/**
* The `Installations` service for the current app.
*/
class Installations {
/**
* @param app - The app for this Installations service.
* @constructor
* @internal
*/
constructor(app) {
if (!validator.isNonNullObject(app) || !('options' in app)) {
throw new error_1.FirebaseInstallationsError(error_1.InstallationsClientErrorCode.INVALID_ARGUMENT, 'First argument passed to admin.installations() must be a valid Firebase app instance.');
}
this.app_ = app;
this.requestHandler = new installations_request_handler_1.FirebaseInstallationsRequestHandler(app);
}
/**
* Deletes the specified installation ID and the associated data from Firebase.
*
* @param fid - The Firebase installation ID to be deleted.
*
* @returns A promise fulfilled when the installation ID is deleted.
*/
deleteInstallation(fid) {
return this.requestHandler.deleteInstallation(fid);
}
/**
* Returns the app associated with this Installations instance.
*
* @returns The app associated with this Installations instance.
*/
get app() {
return this.app_;
}
}
exports.Installations = Installations;