diff --git a/.firebaserc b/.firebaserc new file mode 100644 index 0000000..a87a5cf --- /dev/null +++ b/.firebaserc @@ -0,0 +1,5 @@ +{ + "projects": { + "default": "girinb-runrun" + } +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b17f631 --- /dev/null +++ b/.gitignore @@ -0,0 +1,69 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +firebase-debug.log* +firebase-debug.*.log* + +# Firebase cache +.firebase/ + +# Firebase config + +# Uncomment this if you'd like others to create their own Firebase project. +# For a team working on the same Firebase project(s), it is recommended to leave +# it commented so all members can deploy to the same project(s) in .firebaserc. +# .firebaserc + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (http://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env + +# dataconnect generated files +.dataconnect diff --git a/app.js b/app.js index e29f456..035fb95 100644 --- a/app.js +++ b/app.js @@ -1,7 +1,7 @@ // functions/index.js -const functions = require('firebase-functions'); +const functions = require("firebase-functions"); exports.helloWorld = functions.https.onRequest((request, response) => { - response.send("Hello from Firebase!"); + response.send("Hello from Firebase!"); }); \ No newline at end of file diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 0000000..bf52375 --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,9 @@ +module.exports = [ + { + rules: { + "quotes": ["error", "double"], + "indent": ["error", 2], + "linebreak-style": ["error", "unix"] + } + } +]; \ No newline at end of file diff --git a/firebase-debug.log b/firebase-debug.log deleted file mode 100644 index e238277..0000000 --- a/firebase-debug.log +++ /dev/null @@ -1,305 +0,0 @@ -[debug] [2025-05-14T14:03:13.852Z] ---------------------------------------------------------------------- -[debug] [2025-05-14T14:03:13.856Z] Command: /Users/girinb/.nvm/versions/node/v22.15.0/bin/node /Users/girinb/.nvm/versions/node/v22.15.0/bin/firebase deploy --only functions --debug -[debug] [2025-05-14T14:03:13.857Z] CLI Version: 14.3.1 -[debug] [2025-05-14T14:03:13.857Z] Platform: darwin -[debug] [2025-05-14T14:03:13.857Z] Node Version: v22.15.0 -[debug] [2025-05-14T14:03:13.857Z] Time: Wed May 14 2025 23:03:13 GMT+0900 (대한민국 표준시) -[debug] [2025-05-14T14:03:13.857Z] ---------------------------------------------------------------------- -[debug] -[debug] [2025-05-14T14:03:13.953Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] -[debug] [2025-05-14T14:03:13.954Z] > authorizing via signed-in user (sisiorune@gmail.com) -[debug] [2025-05-14T14:03:13.954Z] [iam] checking project girinb-runrun for permissions ["cloudfunctions.functions.create","cloudfunctions.functions.delete","cloudfunctions.functions.get","cloudfunctions.functions.list","cloudfunctions.functions.update","cloudfunctions.operations.get","firebase.projects.get"] -[debug] [2025-05-14T14:03:13.955Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:03:13.955Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:03:13.955Z] >>> [apiv2][query] POST https://cloudresourcemanager.googleapis.com/v1/projects/girinb-runrun:testIamPermissions [none] -[debug] [2025-05-14T14:03:13.956Z] >>> [apiv2][(partial)header] POST https://cloudresourcemanager.googleapis.com/v1/projects/girinb-runrun:testIamPermissions x-goog-quota-user=projects/girinb-runrun -[debug] [2025-05-14T14:03:13.956Z] >>> [apiv2][body] POST https://cloudresourcemanager.googleapis.com/v1/projects/girinb-runrun:testIamPermissions {"permissions":["cloudfunctions.functions.create","cloudfunctions.functions.delete","cloudfunctions.functions.get","cloudfunctions.functions.list","cloudfunctions.functions.update","cloudfunctions.operations.get","firebase.projects.get"]} -[debug] [2025-05-14T14:03:14.759Z] <<< [apiv2][status] POST https://cloudresourcemanager.googleapis.com/v1/projects/girinb-runrun:testIamPermissions 200 -[debug] [2025-05-14T14:03:14.759Z] <<< [apiv2][body] POST https://cloudresourcemanager.googleapis.com/v1/projects/girinb-runrun:testIamPermissions {"permissions":["cloudfunctions.functions.create","cloudfunctions.functions.delete","cloudfunctions.functions.get","cloudfunctions.functions.list","cloudfunctions.functions.update","cloudfunctions.operations.get","firebase.projects.get"]} -[debug] [2025-05-14T14:03:14.759Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:03:14.759Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:03:14.759Z] >>> [apiv2][query] POST https://iam.googleapis.com/v1/projects/girinb-runrun/serviceAccounts/girinb-runrun@appspot.gserviceaccount.com:testIamPermissions [none] -[debug] [2025-05-14T14:03:14.760Z] >>> [apiv2][body] POST https://iam.googleapis.com/v1/projects/girinb-runrun/serviceAccounts/girinb-runrun@appspot.gserviceaccount.com:testIamPermissions {"permissions":["iam.serviceAccounts.actAs"]} -[debug] [2025-05-14T14:03:15.113Z] <<< [apiv2][status] POST https://iam.googleapis.com/v1/projects/girinb-runrun/serviceAccounts/girinb-runrun@appspot.gserviceaccount.com:testIamPermissions 200 -[debug] [2025-05-14T14:03:15.113Z] <<< [apiv2][body] POST https://iam.googleapis.com/v1/projects/girinb-runrun/serviceAccounts/girinb-runrun@appspot.gserviceaccount.com:testIamPermissions {"permissions":["iam.serviceAccounts.actAs"]} -[info] -[info] === Deploying to 'girinb-runrun'... -[info] -[info] i deploying functions -[debug] [2025-05-14T14:03:15.116Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:03:15.116Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:03:15.116Z] >>> [apiv2][query] GET https://serviceusage.googleapis.com/v1/projects/girinb-runrun/services/cloudresourcemanager.googleapis.com [none] -[debug] [2025-05-14T14:03:15.116Z] >>> [apiv2][(partial)header] GET https://serviceusage.googleapis.com/v1/projects/girinb-runrun/services/cloudresourcemanager.googleapis.com x-goog-quota-user=projects/girinb-runrun -[debug] [2025-05-14T14:03:16.263Z] <<< [apiv2][status] GET https://serviceusage.googleapis.com/v1/projects/girinb-runrun/services/cloudresourcemanager.googleapis.com 200 -[debug] [2025-05-14T14:03:16.263Z] <<< [apiv2][body] GET https://serviceusage.googleapis.com/v1/projects/girinb-runrun/services/cloudresourcemanager.googleapis.com [omitted] -[debug] [2025-05-14T14:03:16.263Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:03:16.263Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:03:16.264Z] >>> [apiv2][query] GET https://cloudresourcemanager.googleapis.com/v1/projects/girinb-runrun [none] -[debug] [2025-05-14T14:03:16.476Z] <<< [apiv2][status] GET https://cloudresourcemanager.googleapis.com/v1/projects/girinb-runrun 200 -[debug] [2025-05-14T14:03:16.477Z] <<< [apiv2][body] GET https://cloudresourcemanager.googleapis.com/v1/projects/girinb-runrun {"projectNumber":"476799073767","projectId":"girinb-runrun","lifecycleState":"ACTIVE","name":"girinb-runrun","labels":{"firebase":"enabled"},"createTime":"2024-04-16T10:50:42.745517Z"} -[info] i functions: preparing codebase default for deployment -[info] i functions: ensuring required API cloudfunctions.googleapis.com is enabled... -[debug] [2025-05-14T14:03:16.479Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:03:16.479Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:03:16.480Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:03:16.480Z] Checked if tokens are valid: true, expires at: 1747233089478 -[info] i functions: ensuring required API cloudbuild.googleapis.com is enabled... -[debug] [2025-05-14T14:03:16.480Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:03:16.480Z] Checked if tokens are valid: true, expires at: 1747233089478 -[info] i artifactregistry: ensuring required API artifactregistry.googleapis.com is enabled... -[debug] [2025-05-14T14:03:16.480Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:03:16.480Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:03:16.481Z] >>> [apiv2][query] GET https://serviceusage.googleapis.com/v1/projects/girinb-runrun/services/cloudfunctions.googleapis.com [none] -[debug] [2025-05-14T14:03:16.481Z] >>> [apiv2][(partial)header] GET https://serviceusage.googleapis.com/v1/projects/girinb-runrun/services/cloudfunctions.googleapis.com x-goog-quota-user=projects/girinb-runrun -[debug] [2025-05-14T14:03:16.482Z] >>> [apiv2][query] GET https://serviceusage.googleapis.com/v1/projects/girinb-runrun/services/runtimeconfig.googleapis.com [none] -[debug] [2025-05-14T14:03:16.482Z] >>> [apiv2][(partial)header] GET https://serviceusage.googleapis.com/v1/projects/girinb-runrun/services/runtimeconfig.googleapis.com x-goog-quota-user=projects/girinb-runrun -[debug] [2025-05-14T14:03:16.484Z] >>> [apiv2][query] GET https://serviceusage.googleapis.com/v1/projects/girinb-runrun/services/cloudbuild.googleapis.com [none] -[debug] [2025-05-14T14:03:16.484Z] >>> [apiv2][(partial)header] GET https://serviceusage.googleapis.com/v1/projects/girinb-runrun/services/cloudbuild.googleapis.com x-goog-quota-user=projects/girinb-runrun -[debug] [2025-05-14T14:03:16.486Z] >>> [apiv2][query] GET https://serviceusage.googleapis.com/v1/projects/girinb-runrun/services/artifactregistry.googleapis.com [none] -[debug] [2025-05-14T14:03:16.486Z] >>> [apiv2][(partial)header] GET https://serviceusage.googleapis.com/v1/projects/girinb-runrun/services/artifactregistry.googleapis.com x-goog-quota-user=projects/girinb-runrun -[debug] [2025-05-14T14:03:17.123Z] <<< [apiv2][status] GET https://serviceusage.googleapis.com/v1/projects/girinb-runrun/services/cloudfunctions.googleapis.com 200 -[debug] [2025-05-14T14:03:17.123Z] <<< [apiv2][body] GET https://serviceusage.googleapis.com/v1/projects/girinb-runrun/services/cloudfunctions.googleapis.com [omitted] -[info] ✔ functions: required API cloudfunctions.googleapis.com is enabled -[debug] [2025-05-14T14:03:17.553Z] <<< [apiv2][status] GET https://serviceusage.googleapis.com/v1/projects/girinb-runrun/services/runtimeconfig.googleapis.com 200 -[debug] [2025-05-14T14:03:17.554Z] <<< [apiv2][body] GET https://serviceusage.googleapis.com/v1/projects/girinb-runrun/services/runtimeconfig.googleapis.com [omitted] -[debug] [2025-05-14T14:03:17.566Z] <<< [apiv2][status] GET https://serviceusage.googleapis.com/v1/projects/girinb-runrun/services/artifactregistry.googleapis.com 200 -[debug] [2025-05-14T14:03:17.566Z] <<< [apiv2][body] GET https://serviceusage.googleapis.com/v1/projects/girinb-runrun/services/artifactregistry.googleapis.com [omitted] -[info] ✔ artifactregistry: required API artifactregistry.googleapis.com is enabled -[debug] [2025-05-14T14:03:17.930Z] <<< [apiv2][status] GET https://serviceusage.googleapis.com/v1/projects/girinb-runrun/services/cloudbuild.googleapis.com 200 -[debug] [2025-05-14T14:03:17.930Z] <<< [apiv2][body] GET https://serviceusage.googleapis.com/v1/projects/girinb-runrun/services/cloudbuild.googleapis.com [omitted] -[info] ✔ functions: required API cloudbuild.googleapis.com is enabled -[debug] [2025-05-14T14:03:17.930Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:03:17.931Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:03:17.931Z] >>> [apiv2][query] GET https://firebase.googleapis.com/v1beta1/projects/girinb-runrun/adminSdkConfig [none] -[debug] [2025-05-14T14:03:19.217Z] <<< [apiv2][status] GET https://firebase.googleapis.com/v1beta1/projects/girinb-runrun/adminSdkConfig 200 -[debug] [2025-05-14T14:03:19.217Z] <<< [apiv2][body] GET https://firebase.googleapis.com/v1beta1/projects/girinb-runrun/adminSdkConfig {"projectId":"girinb-runrun","databaseURL":"https://girinb-runrun-default-rtdb.firebaseio.com","storageBucket":"girinb-runrun.appspot.com","locationId":"asia-northeast3"} -[debug] [2025-05-14T14:03:19.218Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:03:19.218Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:03:19.218Z] >>> [apiv2][query] GET https://runtimeconfig.googleapis.com/v1beta1/projects/girinb-runrun/configs [none] -[debug] [2025-05-14T14:03:19.701Z] <<< [apiv2][status] GET https://runtimeconfig.googleapis.com/v1beta1/projects/girinb-runrun/configs 200 -[debug] [2025-05-14T14:03:19.701Z] <<< [apiv2][body] GET https://runtimeconfig.googleapis.com/v1beta1/projects/girinb-runrun/configs {} -[debug] [2025-05-14T14:03:19.703Z] Validating nodejs source -[warn] ⚠ functions: Runtime Node.js 18 was deprecated on 2025-04-30 and will be decommissioned on 2025-10-31, after which you will not be able to deploy without upgrading. Consider upgrading now to avoid disruption. See https://cloud.google.com/functions/docs/runtime-support for full details on the lifecycle policy -[warn] ⚠ functions: package.json indicates an outdated version of firebase-functions. Please upgrade using npm install --save firebase-functions@latest in your functions directory. -[warn] ⚠ functions: Please note that there will be breaking changes when you upgrade. -[debug] [2025-05-14T14:03:20.200Z] > [functions] package.json contents: { - "name": "functions", - "description": "Cloud Functions for Firebase", - "scripts": { - "serve": "firebase emulators:start --only functions", - "shell": "firebase functions:shell", - "start": "npm run shell", - "deploy": "firebase deploy --only functions", - "logs": "firebase functions:log" - }, - "engines": { - "node": "18" - }, - "main": "index.js", - "dependencies": { - "firebase-admin": "^12.1.0", - "firebase-functions": "^5.0.0" - }, - "devDependencies": { - "firebase-functions-test": "^3.1.0" - }, - "private": true -} -[debug] [2025-05-14T14:03:20.200Z] Building nodejs source -[info] i functions: Loading and analyzing source code for codebase default to determine what to deploy -[debug] [2025-05-14T14:03:20.202Z] Could not find functions.yaml. Must use http discovery -[debug] [2025-05-14T14:03:20.207Z] Found firebase-functions binary at '/Users/girinb/node_testing/functions/node_modules/.bin/firebase-functions' -[info] Serving at port 8397 - -[debug] [2025-05-14T14:03:20.684Z] Got response from /__/functions.yaml {"endpoints":{"helloWorld":{"platform":"gcfv1","availableMemoryMb":null,"timeoutSeconds":null,"minInstances":null,"maxInstances":null,"ingressSettings":null,"serviceAccountEmail":null,"vpc":null,"httpsTrigger":{},"entryPoint":"helloWorld"}},"specVersion":"v1alpha1","requiredAPIs":[],"extensions":{}} -[info] i extensions: ensuring required API firebaseextensions.googleapis.com is enabled... -[debug] [2025-05-14T14:03:24.706Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:03:24.706Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:03:24.706Z] >>> [apiv2][query] GET https://serviceusage.googleapis.com/v1/projects/girinb-runrun/services/firebaseextensions.googleapis.com [none] -[debug] [2025-05-14T14:03:24.706Z] >>> [apiv2][(partial)header] GET https://serviceusage.googleapis.com/v1/projects/girinb-runrun/services/firebaseextensions.googleapis.com x-goog-quota-user=projects/girinb-runrun -[debug] [2025-05-14T14:03:25.804Z] <<< [apiv2][status] GET https://serviceusage.googleapis.com/v1/projects/girinb-runrun/services/firebaseextensions.googleapis.com 200 -[debug] [2025-05-14T14:03:25.805Z] <<< [apiv2][body] GET https://serviceusage.googleapis.com/v1/projects/girinb-runrun/services/firebaseextensions.googleapis.com [omitted] -[info] ✔ extensions: required API firebaseextensions.googleapis.com is enabled -[debug] [2025-05-14T14:03:25.805Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] -[debug] [2025-05-14T14:03:25.805Z] > authorizing via signed-in user (sisiorune@gmail.com) -[debug] [2025-05-14T14:03:25.805Z] [iam] checking project girinb-runrun for permissions ["firebase.projects.get","firebaseextensions.instances.list"] -[debug] [2025-05-14T14:03:25.805Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:03:25.805Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:03:25.805Z] >>> [apiv2][query] POST https://cloudresourcemanager.googleapis.com/v1/projects/girinb-runrun:testIamPermissions [none] -[debug] [2025-05-14T14:03:25.805Z] >>> [apiv2][(partial)header] POST https://cloudresourcemanager.googleapis.com/v1/projects/girinb-runrun:testIamPermissions x-goog-quota-user=projects/girinb-runrun -[debug] [2025-05-14T14:03:25.805Z] >>> [apiv2][body] POST https://cloudresourcemanager.googleapis.com/v1/projects/girinb-runrun:testIamPermissions {"permissions":["firebase.projects.get","firebaseextensions.instances.list"]} -[debug] [2025-05-14T14:03:26.556Z] <<< [apiv2][status] POST https://cloudresourcemanager.googleapis.com/v1/projects/girinb-runrun:testIamPermissions 200 -[debug] [2025-05-14T14:03:26.557Z] <<< [apiv2][body] POST https://cloudresourcemanager.googleapis.com/v1/projects/girinb-runrun:testIamPermissions {"permissions":["firebase.projects.get","firebaseextensions.instances.list"]} -[debug] [2025-05-14T14:03:26.557Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:03:26.557Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:03:26.558Z] >>> [apiv2][query] GET https://firebaseextensions.googleapis.com/v1beta/projects/girinb-runrun/instances pageSize=100&pageToken= -[debug] [2025-05-14T14:03:27.499Z] <<< [apiv2][status] GET https://firebaseextensions.googleapis.com/v1beta/projects/girinb-runrun/instances 200 -[debug] [2025-05-14T14:03:27.499Z] <<< [apiv2][body] GET https://firebaseextensions.googleapis.com/v1beta/projects/girinb-runrun/instances {} -[info] i functions: preparing functions directory for uploading... -[info] i functions: packaged /Users/girinb/node_testing/functions (62.16 KB) for uploading -[debug] [2025-05-14T14:03:27.523Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:03:27.523Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:03:27.524Z] >>> [apiv2][query] GET https://cloudfunctions.googleapis.com/v1/projects/girinb-runrun/locations/-/functions [none] -[debug] [2025-05-14T14:03:28.281Z] <<< [apiv2][status] GET https://cloudfunctions.googleapis.com/v1/projects/girinb-runrun/locations/-/functions 200 -[debug] [2025-05-14T14:03:28.281Z] <<< [apiv2][body] GET https://cloudfunctions.googleapis.com/v1/projects/girinb-runrun/locations/-/functions {} -[debug] [2025-05-14T14:03:28.282Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:03:28.282Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:03:28.282Z] >>> [apiv2][query] GET https://cloudfunctions.googleapis.com/v2/projects/girinb-runrun/locations/-/functions filter=environment%3D%22GEN_2%22 -[debug] [2025-05-14T14:03:29.629Z] <<< [apiv2][status] GET https://cloudfunctions.googleapis.com/v2/projects/girinb-runrun/locations/-/functions 200 -[debug] [2025-05-14T14:03:29.629Z] <<< [apiv2][body] GET https://cloudfunctions.googleapis.com/v2/projects/girinb-runrun/locations/-/functions {} -[debug] [2025-05-14T14:03:29.630Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:03:29.631Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:03:29.631Z] >>> [apiv2][query] GET https://serviceusage.googleapis.com/v1/projects/girinb-runrun/services/cloudresourcemanager.googleapis.com [none] -[debug] [2025-05-14T14:03:29.631Z] >>> [apiv2][(partial)header] GET https://serviceusage.googleapis.com/v1/projects/girinb-runrun/services/cloudresourcemanager.googleapis.com x-goog-quota-user=projects/girinb-runrun -[debug] [2025-05-14T14:03:29.922Z] <<< [apiv2][status] GET https://serviceusage.googleapis.com/v1/projects/girinb-runrun/services/cloudresourcemanager.googleapis.com 200 -[debug] [2025-05-14T14:03:29.922Z] <<< [apiv2][body] GET https://serviceusage.googleapis.com/v1/projects/girinb-runrun/services/cloudresourcemanager.googleapis.com [omitted] -[debug] [2025-05-14T14:03:29.922Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:03:29.922Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:03:29.922Z] >>> [apiv2][query] GET https://cloudresourcemanager.googleapis.com/v1/projects/girinb-runrun [none] -[debug] [2025-05-14T14:03:30.143Z] <<< [apiv2][status] GET https://cloudresourcemanager.googleapis.com/v1/projects/girinb-runrun 200 -[debug] [2025-05-14T14:03:30.144Z] <<< [apiv2][body] GET https://cloudresourcemanager.googleapis.com/v1/projects/girinb-runrun {"projectNumber":"476799073767","projectId":"girinb-runrun","lifecycleState":"ACTIVE","name":"girinb-runrun","labels":{"firebase":"enabled"},"createTime":"2024-04-16T10:50:42.745517Z"} -[debug] [2025-05-14T14:03:30.145Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:03:30.145Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:03:30.146Z] >>> [apiv2][query] GET https://cloudbilling.googleapis.com/v1/projects/girinb-runrun/billingInfo [none] -[debug] [2025-05-14T14:03:31.355Z] <<< [apiv2][status] GET https://cloudbilling.googleapis.com/v1/projects/girinb-runrun/billingInfo 200 -[debug] [2025-05-14T14:03:31.356Z] <<< [apiv2][body] GET https://cloudbilling.googleapis.com/v1/projects/girinb-runrun/billingInfo {"name":"projects/girinb-runrun/billingInfo","projectId":"girinb-runrun","billingAccountName":"billingAccounts/01E72B-CF605E-F61383","billingEnabled":true} -[debug] [2025-05-14T14:03:31.357Z] [functions] found 1 new HTTP functions, testing setIamPolicy permission... -[debug] [2025-05-14T14:03:31.358Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:03:31.358Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:03:31.358Z] >>> [apiv2][query] POST https://cloudresourcemanager.googleapis.com/v1/projects/girinb-runrun:testIamPermissions [none] -[debug] [2025-05-14T14:03:31.358Z] >>> [apiv2][(partial)header] POST https://cloudresourcemanager.googleapis.com/v1/projects/girinb-runrun:testIamPermissions x-goog-quota-user=projects/girinb-runrun -[debug] [2025-05-14T14:03:31.358Z] >>> [apiv2][body] POST https://cloudresourcemanager.googleapis.com/v1/projects/girinb-runrun:testIamPermissions {"permissions":["cloudfunctions.functions.setIamPolicy"]} -[debug] [2025-05-14T14:03:31.534Z] <<< [apiv2][status] POST https://cloudresourcemanager.googleapis.com/v1/projects/girinb-runrun:testIamPermissions 200 -[debug] [2025-05-14T14:03:31.535Z] <<< [apiv2][body] POST https://cloudresourcemanager.googleapis.com/v1/projects/girinb-runrun:testIamPermissions {"permissions":["cloudfunctions.functions.setIamPolicy"]} -[debug] [2025-05-14T14:03:31.535Z] [functions] found setIamPolicy permission, proceeding with deploy -[debug] [2025-05-14T14:03:31.536Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:03:31.536Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:03:31.536Z] >>> [apiv2][query] POST https://cloudfunctions.googleapis.com/v1/projects/girinb-runrun/locations/us-central1/functions:generateUploadUrl [none] -[debug] [2025-05-14T14:03:31.536Z] >>> [apiv2][body] POST https://cloudfunctions.googleapis.com/v1/projects/girinb-runrun/locations/us-central1/functions:generateUploadUrl {} -[debug] [2025-05-14T14:03:42.638Z] <<< [apiv2][status] POST https://cloudfunctions.googleapis.com/v1/projects/girinb-runrun/locations/us-central1/functions:generateUploadUrl 200 -[debug] [2025-05-14T14:03:42.639Z] <<< [apiv2][body] POST https://cloudfunctions.googleapis.com/v1/projects/girinb-runrun/locations/us-central1/functions:generateUploadUrl {"uploadUrl":"https://storage.googleapis.com/uploads-352832638533.us-central1.cloudfunctions.appspot.com/ec347c6d-8533-472b-a13f-319ce9e6689e.zip?GoogleAccessId=service-476799073767@gcf-admin-robot.iam.gserviceaccount.com&Expires=1747233222&Signature=u46DPN24DL5Z38WOuOG7eQWm2TtNRx1PzQZ207bQrZMKWwgr66lLnUo6DrEap1kO9d6kwNZCnwYrkEOfmCd8QDWkiVbsr58MZO%2FLviu81pJBQIWzw%2Bt%2BZqYRrEdFSIq5zYWtZvxbw%2Fglj4bIKE%2FsgGB2RWFAQq0c5WFxb24us8QFxa1baE6p7T%2BtaGxG8XWcj%2BbopFW2RtGfb%2FgorJF90Zx8OER2yPt5MgKa3Q4KCi8unqzLxiod0cHZeB9Rwtd8RS1qhsJ7nWVbWKDLUyYRMlu9CakRfh2777hNyji6VHqibC8zvhsLk9xKbIbehlfQMFAl3QZ3aBhi3uNE39EibA%3D%3D"} -[debug] [2025-05-14T14:03:42.640Z] >>> [apiv2][query] PUT https://storage.googleapis.com/uploads-352832638533.us-central1.cloudfunctions.appspot.com/ec347c6d-8533-472b-a13f-319ce9e6689e.zip GoogleAccessId=service-476799073767%40gcf-admin-robot.iam.gserviceaccount.com&Expires=1747233222&Signature=u46DPN24DL5Z38WOuOG7eQWm2TtNRx1PzQZ207bQrZMKWwgr66lLnUo6DrEap1kO9d6kwNZCnwYrkEOfmCd8QDWkiVbsr58MZO%2FLviu81pJBQIWzw%2Bt%2BZqYRrEdFSIq5zYWtZvxbw%2Fglj4bIKE%2FsgGB2RWFAQq0c5WFxb24us8QFxa1baE6p7T%2BtaGxG8XWcj%2BbopFW2RtGfb%2FgorJF90Zx8OER2yPt5MgKa3Q4KCi8unqzLxiod0cHZeB9Rwtd8RS1qhsJ7nWVbWKDLUyYRMlu9CakRfh2777hNyji6VHqibC8zvhsLk9xKbIbehlfQMFAl3QZ3aBhi3uNE39EibA%3D%3D -[debug] [2025-05-14T14:03:42.641Z] >>> [apiv2][body] PUT https://storage.googleapis.com/uploads-352832638533.us-central1.cloudfunctions.appspot.com/ec347c6d-8533-472b-a13f-319ce9e6689e.zip [stream] -[debug] [2025-05-14T14:03:43.497Z] <<< [apiv2][status] PUT https://storage.googleapis.com/uploads-352832638533.us-central1.cloudfunctions.appspot.com/ec347c6d-8533-472b-a13f-319ce9e6689e.zip 200 -[debug] [2025-05-14T14:03:43.497Z] <<< [apiv2][body] PUT https://storage.googleapis.com/uploads-352832638533.us-central1.cloudfunctions.appspot.com/ec347c6d-8533-472b-a13f-319ce9e6689e.zip [omitted] -[info] ✔ functions: functions folder uploaded successfully -[info] i functions: creating Node.js 18 (1st Gen) function helloWorld(us-central1)... -[debug] [2025-05-14T14:03:43.503Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:03:43.503Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:03:43.504Z] >>> [apiv2][query] POST https://cloudfunctions.googleapis.com/v1/projects/girinb-runrun/locations/us-central1/functions [none] -[debug] [2025-05-14T14:03:43.504Z] >>> [apiv2][body] POST https://cloudfunctions.googleapis.com/v1/projects/girinb-runrun/locations/us-central1/functions {"name":"projects/girinb-runrun/locations/us-central1/functions/helloWorld","sourceUploadUrl":"https://storage.googleapis.com/uploads-352832638533.us-central1.cloudfunctions.appspot.com/ec347c6d-8533-472b-a13f-319ce9e6689e.zip?GoogleAccessId=service-476799073767@gcf-admin-robot.iam.gserviceaccount.com&Expires=1747233222&Signature=u46DPN24DL5Z38WOuOG7eQWm2TtNRx1PzQZ207bQrZMKWwgr66lLnUo6DrEap1kO9d6kwNZCnwYrkEOfmCd8QDWkiVbsr58MZO%2FLviu81pJBQIWzw%2Bt%2BZqYRrEdFSIq5zYWtZvxbw%2Fglj4bIKE%2FsgGB2RWFAQq0c5WFxb24us8QFxa1baE6p7T%2BtaGxG8XWcj%2BbopFW2RtGfb%2FgorJF90Zx8OER2yPt5MgKa3Q4KCi8unqzLxiod0cHZeB9Rwtd8RS1qhsJ7nWVbWKDLUyYRMlu9CakRfh2777hNyji6VHqibC8zvhsLk9xKbIbehlfQMFAl3QZ3aBhi3uNE39EibA%3D%3D","entryPoint":"helloWorld","runtime":"nodejs18","dockerRegistry":"ARTIFACT_REGISTRY","labels":{"deployment-tool":"cli-firebase","firebase-functions-hash":"14482821a43ce6b9a6304c926ea2098b230b8ab8"},"httpsTrigger":{"securityLevel":"SECURE_ALWAYS"},"minInstances":null,"maxInstances":null,"ingressSettings":null,"environmentVariables":{"FIREBASE_CONFIG":"{\"projectId\":\"girinb-runrun\",\"databaseURL\":\"https://girinb-runrun-default-rtdb.firebaseio.com\",\"storageBucket\":\"girinb-runrun.appspot.com\",\"locationId\":\"asia-northeast3\"}","GCLOUD_PROJECT":"girinb-runrun","EVENTARC_CLOUD_EVENT_SOURCE":"projects/girinb-runrun/locations/us-central1/functions/helloWorld"},"serviceAccountEmail":null,"availableMemoryMb":null,"timeout":null,"vpcConnector":null,"vpcConnectorEgressSettings":null,"buildEnvironmentVariables":{"GOOGLE_NODE_RUN_SCRIPTS":""}} -[debug] [2025-05-14T14:03:44.503Z] <<< [apiv2][status] POST https://cloudfunctions.googleapis.com/v1/projects/girinb-runrun/locations/us-central1/functions 200 -[debug] [2025-05-14T14:03:44.503Z] <<< [apiv2][body] POST https://cloudfunctions.googleapis.com/v1/projects/girinb-runrun/locations/us-central1/functions {"name":"operations/cHJvamVjdHMvZ2lyaW5iLXJ1bnJ1bi9sb2NhdGlvbnMvdXMtY2VudHJhbDEvb3BlcmF0aW9ucy9vcGVyYXRpb24tMTc0NzIzMTQyMzg3OS02MzUxOTA0NWM1OWY4LTRlZGFkYzRiLWEyNzcxNGMx","metadata":{"@type":"type.googleapis.com/google.cloud.functions.v1.OperationMetadataV1","target":"projects/girinb-runrun/locations/us-central1/functions/helloWorld","updateTime":"2025-05-14T14:03:44.325674558Z"}} -[debug] [2025-05-14T14:03:44.504Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:03:44.504Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:03:44.505Z] >>> [apiv2][query] GET https://cloudfunctions.googleapis.com/v1/operations/cHJvamVjdHMvZ2lyaW5iLXJ1bnJ1bi9sb2NhdGlvbnMvdXMtY2VudHJhbDEvb3BlcmF0aW9ucy9vcGVyYXRpb24tMTc0NzIzMTQyMzg3OS02MzUxOTA0NWM1OWY4LTRlZGFkYzRiLWEyNzcxNGMx [none] -[debug] [2025-05-14T14:03:45.523Z] <<< [apiv2][status] GET https://cloudfunctions.googleapis.com/v1/operations/cHJvamVjdHMvZ2lyaW5iLXJ1bnJ1bi9sb2NhdGlvbnMvdXMtY2VudHJhbDEvb3BlcmF0aW9ucy9vcGVyYXRpb24tMTc0NzIzMTQyMzg3OS02MzUxOTA0NWM1OWY4LTRlZGFkYzRiLWEyNzcxNGMx 200 -[debug] [2025-05-14T14:03:45.523Z] <<< [apiv2][body] GET https://cloudfunctions.googleapis.com/v1/operations/cHJvamVjdHMvZ2lyaW5iLXJ1bnJ1bi9sb2NhdGlvbnMvdXMtY2VudHJhbDEvb3BlcmF0aW9ucy9vcGVyYXRpb24tMTc0NzIzMTQyMzg3OS02MzUxOTA0NWM1OWY4LTRlZGFkYzRiLWEyNzcxNGMx {"name":"operations/cHJvamVjdHMvZ2lyaW5iLXJ1bnJ1bi9sb2NhdGlvbnMvdXMtY2VudHJhbDEvb3BlcmF0aW9ucy9vcGVyYXRpb24tMTc0NzIzMTQyMzg3OS02MzUxOTA0NWM1OWY4LTRlZGFkYzRiLWEyNzcxNGMx","metadata":{"@type":"type.googleapis.com/google.cloud.functions.v1.OperationMetadataV1","target":"projects/girinb-runrun/locations/us-central1/functions/helloWorld","type":"CREATE_FUNCTION","request":{"@type":"type.googleapis.com/google.cloud.functions.v1.CloudFunction","name":"projects/girinb-runrun/locations/us-central1/functions/helloWorld","httpsTrigger":{"securityLevel":"SECURE_ALWAYS"},"entryPoint":"helloWorld","updateTime":"1970-01-01T00:00:00Z","labels":{"deployment-tool":"cli-firebase","firebase-functions-hash":"14482821a43ce6b9a6304c926ea2098b230b8ab8"},"sourceUploadUrl":"https://storage.googleapis.com/uploads-352832638533.us-central1.cloudfunctions.appspot.com/ec347c6d-8533-472b-a13f-319ce9e6689e.zip?GoogleAccessId=service-476799073767@gcf-admin-robot.iam.gserviceaccount.com&Expires=1747233222&Signature=u46DPN24DL5Z38WOuOG7eQWm2TtNRx1PzQZ207bQrZMKWwgr66lLnUo6DrEap1kO9d6kwNZCnwYrkEOfmCd8QDWkiVbsr58MZO%2FLviu81pJBQIWzw%2Bt%2BZqYRrEdFSIq5zYWtZvxbw%2Fglj4bIKE%2FsgGB2RWFAQq0c5WFxb24us8QFxa1baE6p7T%2BtaGxG8XWcj%2BbopFW2RtGfb%2FgorJF90Zx8OER2yPt5MgKa3Q4KCi8unqzLxiod0cHZeB9Rwtd8RS1qhsJ7nWVbWKDLUyYRMlu9CakRfh2777hNyji6VHqibC8zvhsLk9xKbIbehlfQMFAl3QZ3aBhi3uNE39EibA%3D%3D","environmentVariables":{"FIREBASE_CONFIG":"{\"projectId\":\"girinb-runrun\",\"databaseURL\":\"https://girinb-runrun-default-rtdb.firebaseio.com\",\"storageBucket\":\"girinb-runrun.appspot.com\",\"locationId\":\"asia-northeast3\"}","GCLOUD_PROJECT":"girinb-runrun","EVENTARC_CLOUD_EVENT_SOURCE":"projects/girinb-runrun/locations/us-central1/functions/helloWorld"},"runtime":"nodejs18","buildEnvironmentVariables":{"GOOGLE_NODE_RUN_SCRIPTS":""},"dockerRegistry":"ARTIFACT_REGISTRY"},"versionId":"1","updateTime":"2025-05-14T14:03:44.325674558Z"}} -[debug] [2025-05-14T14:03:46.026Z] [create-default-us-central1-helloWorld] Retrying task index 0 -[debug] [2025-05-14T14:03:46.026Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:03:46.026Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:03:46.027Z] >>> [apiv2][query] GET https://cloudfunctions.googleapis.com/v1/operations/cHJvamVjdHMvZ2lyaW5iLXJ1bnJ1bi9sb2NhdGlvbnMvdXMtY2VudHJhbDEvb3BlcmF0aW9ucy9vcGVyYXRpb24tMTc0NzIzMTQyMzg3OS02MzUxOTA0NWM1OWY4LTRlZGFkYzRiLWEyNzcxNGMx [none] -[debug] [2025-05-14T14:03:46.498Z] <<< [apiv2][status] GET https://cloudfunctions.googleapis.com/v1/operations/cHJvamVjdHMvZ2lyaW5iLXJ1bnJ1bi9sb2NhdGlvbnMvdXMtY2VudHJhbDEvb3BlcmF0aW9ucy9vcGVyYXRpb24tMTc0NzIzMTQyMzg3OS02MzUxOTA0NWM1OWY4LTRlZGFkYzRiLWEyNzcxNGMx 200 -[debug] [2025-05-14T14:03:46.499Z] <<< [apiv2][body] GET https://cloudfunctions.googleapis.com/v1/operations/cHJvamVjdHMvZ2lyaW5iLXJ1bnJ1bi9sb2NhdGlvbnMvdXMtY2VudHJhbDEvb3BlcmF0aW9ucy9vcGVyYXRpb24tMTc0NzIzMTQyMzg3OS02MzUxOTA0NWM1OWY4LTRlZGFkYzRiLWEyNzcxNGMx {"name":"operations/cHJvamVjdHMvZ2lyaW5iLXJ1bnJ1bi9sb2NhdGlvbnMvdXMtY2VudHJhbDEvb3BlcmF0aW9ucy9vcGVyYXRpb24tMTc0NzIzMTQyMzg3OS02MzUxOTA0NWM1OWY4LTRlZGFkYzRiLWEyNzcxNGMx","metadata":{"@type":"type.googleapis.com/google.cloud.functions.v1.OperationMetadataV1","target":"projects/girinb-runrun/locations/us-central1/functions/helloWorld","type":"CREATE_FUNCTION","request":{"@type":"type.googleapis.com/google.cloud.functions.v1.CloudFunction","name":"projects/girinb-runrun/locations/us-central1/functions/helloWorld","httpsTrigger":{"securityLevel":"SECURE_ALWAYS"},"entryPoint":"helloWorld","updateTime":"1970-01-01T00:00:00Z","labels":{"deployment-tool":"cli-firebase","firebase-functions-hash":"14482821a43ce6b9a6304c926ea2098b230b8ab8"},"sourceUploadUrl":"https://storage.googleapis.com/uploads-352832638533.us-central1.cloudfunctions.appspot.com/ec347c6d-8533-472b-a13f-319ce9e6689e.zip?GoogleAccessId=service-476799073767@gcf-admin-robot.iam.gserviceaccount.com&Expires=1747233222&Signature=u46DPN24DL5Z38WOuOG7eQWm2TtNRx1PzQZ207bQrZMKWwgr66lLnUo6DrEap1kO9d6kwNZCnwYrkEOfmCd8QDWkiVbsr58MZO%2FLviu81pJBQIWzw%2Bt%2BZqYRrEdFSIq5zYWtZvxbw%2Fglj4bIKE%2FsgGB2RWFAQq0c5WFxb24us8QFxa1baE6p7T%2BtaGxG8XWcj%2BbopFW2RtGfb%2FgorJF90Zx8OER2yPt5MgKa3Q4KCi8unqzLxiod0cHZeB9Rwtd8RS1qhsJ7nWVbWKDLUyYRMlu9CakRfh2777hNyji6VHqibC8zvhsLk9xKbIbehlfQMFAl3QZ3aBhi3uNE39EibA%3D%3D","environmentVariables":{"FIREBASE_CONFIG":"{\"projectId\":\"girinb-runrun\",\"databaseURL\":\"https://girinb-runrun-default-rtdb.firebaseio.com\",\"storageBucket\":\"girinb-runrun.appspot.com\",\"locationId\":\"asia-northeast3\"}","GCLOUD_PROJECT":"girinb-runrun","EVENTARC_CLOUD_EVENT_SOURCE":"projects/girinb-runrun/locations/us-central1/functions/helloWorld"},"runtime":"nodejs18","buildEnvironmentVariables":{"GOOGLE_NODE_RUN_SCRIPTS":""},"dockerRegistry":"ARTIFACT_REGISTRY"},"versionId":"1","updateTime":"2025-05-14T14:03:44.325674558Z"}} -[debug] [2025-05-14T14:03:47.500Z] [create-default-us-central1-helloWorld] Retrying task index 0 -[debug] [2025-05-14T14:03:47.501Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:03:47.501Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:03:47.501Z] >>> [apiv2][query] GET https://cloudfunctions.googleapis.com/v1/operations/cHJvamVjdHMvZ2lyaW5iLXJ1bnJ1bi9sb2NhdGlvbnMvdXMtY2VudHJhbDEvb3BlcmF0aW9ucy9vcGVyYXRpb24tMTc0NzIzMTQyMzg3OS02MzUxOTA0NWM1OWY4LTRlZGFkYzRiLWEyNzcxNGMx [none] -[debug] [2025-05-14T14:03:48.624Z] <<< [apiv2][status] GET https://cloudfunctions.googleapis.com/v1/operations/cHJvamVjdHMvZ2lyaW5iLXJ1bnJ1bi9sb2NhdGlvbnMvdXMtY2VudHJhbDEvb3BlcmF0aW9ucy9vcGVyYXRpb24tMTc0NzIzMTQyMzg3OS02MzUxOTA0NWM1OWY4LTRlZGFkYzRiLWEyNzcxNGMx 200 -[debug] [2025-05-14T14:03:48.624Z] <<< [apiv2][body] GET https://cloudfunctions.googleapis.com/v1/operations/cHJvamVjdHMvZ2lyaW5iLXJ1bnJ1bi9sb2NhdGlvbnMvdXMtY2VudHJhbDEvb3BlcmF0aW9ucy9vcGVyYXRpb24tMTc0NzIzMTQyMzg3OS02MzUxOTA0NWM1OWY4LTRlZGFkYzRiLWEyNzcxNGMx {"name":"operations/cHJvamVjdHMvZ2lyaW5iLXJ1bnJ1bi9sb2NhdGlvbnMvdXMtY2VudHJhbDEvb3BlcmF0aW9ucy9vcGVyYXRpb24tMTc0NzIzMTQyMzg3OS02MzUxOTA0NWM1OWY4LTRlZGFkYzRiLWEyNzcxNGMx","metadata":{"@type":"type.googleapis.com/google.cloud.functions.v1.OperationMetadataV1","target":"projects/girinb-runrun/locations/us-central1/functions/helloWorld","type":"CREATE_FUNCTION","request":{"@type":"type.googleapis.com/google.cloud.functions.v1.CloudFunction","name":"projects/girinb-runrun/locations/us-central1/functions/helloWorld","httpsTrigger":{"securityLevel":"SECURE_ALWAYS"},"entryPoint":"helloWorld","updateTime":"1970-01-01T00:00:00Z","labels":{"deployment-tool":"cli-firebase","firebase-functions-hash":"14482821a43ce6b9a6304c926ea2098b230b8ab8"},"sourceUploadUrl":"https://storage.googleapis.com/uploads-352832638533.us-central1.cloudfunctions.appspot.com/ec347c6d-8533-472b-a13f-319ce9e6689e.zip?GoogleAccessId=service-476799073767@gcf-admin-robot.iam.gserviceaccount.com&Expires=1747233222&Signature=u46DPN24DL5Z38WOuOG7eQWm2TtNRx1PzQZ207bQrZMKWwgr66lLnUo6DrEap1kO9d6kwNZCnwYrkEOfmCd8QDWkiVbsr58MZO%2FLviu81pJBQIWzw%2Bt%2BZqYRrEdFSIq5zYWtZvxbw%2Fglj4bIKE%2FsgGB2RWFAQq0c5WFxb24us8QFxa1baE6p7T%2BtaGxG8XWcj%2BbopFW2RtGfb%2FgorJF90Zx8OER2yPt5MgKa3Q4KCi8unqzLxiod0cHZeB9Rwtd8RS1qhsJ7nWVbWKDLUyYRMlu9CakRfh2777hNyji6VHqibC8zvhsLk9xKbIbehlfQMFAl3QZ3aBhi3uNE39EibA%3D%3D","environmentVariables":{"FIREBASE_CONFIG":"{\"projectId\":\"girinb-runrun\",\"databaseURL\":\"https://girinb-runrun-default-rtdb.firebaseio.com\",\"storageBucket\":\"girinb-runrun.appspot.com\",\"locationId\":\"asia-northeast3\"}","GCLOUD_PROJECT":"girinb-runrun","EVENTARC_CLOUD_EVENT_SOURCE":"projects/girinb-runrun/locations/us-central1/functions/helloWorld"},"runtime":"nodejs18","buildEnvironmentVariables":{"GOOGLE_NODE_RUN_SCRIPTS":""},"dockerRegistry":"ARTIFACT_REGISTRY"},"versionId":"1","updateTime":"2025-05-14T14:03:44.325674558Z","buildId":"9e04218b-4d6b-4217-a6e6-85d03f15973f","buildName":"projects/476799073767/locations/us-central1/builds/9e04218b-4d6b-4217-a6e6-85d03f15973f"}} -[debug] [2025-05-14T14:03:50.626Z] [create-default-us-central1-helloWorld] Retrying task index 0 -[debug] [2025-05-14T14:03:50.627Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:03:50.627Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:03:50.627Z] >>> [apiv2][query] GET https://cloudfunctions.googleapis.com/v1/operations/cHJvamVjdHMvZ2lyaW5iLXJ1bnJ1bi9sb2NhdGlvbnMvdXMtY2VudHJhbDEvb3BlcmF0aW9ucy9vcGVyYXRpb24tMTc0NzIzMTQyMzg3OS02MzUxOTA0NWM1OWY4LTRlZGFkYzRiLWEyNzcxNGMx [none] -[debug] [2025-05-14T14:03:51.121Z] <<< [apiv2][status] GET https://cloudfunctions.googleapis.com/v1/operations/cHJvamVjdHMvZ2lyaW5iLXJ1bnJ1bi9sb2NhdGlvbnMvdXMtY2VudHJhbDEvb3BlcmF0aW9ucy9vcGVyYXRpb24tMTc0NzIzMTQyMzg3OS02MzUxOTA0NWM1OWY4LTRlZGFkYzRiLWEyNzcxNGMx 200 -[debug] [2025-05-14T14:03:51.121Z] <<< [apiv2][body] GET https://cloudfunctions.googleapis.com/v1/operations/cHJvamVjdHMvZ2lyaW5iLXJ1bnJ1bi9sb2NhdGlvbnMvdXMtY2VudHJhbDEvb3BlcmF0aW9ucy9vcGVyYXRpb24tMTc0NzIzMTQyMzg3OS02MzUxOTA0NWM1OWY4LTRlZGFkYzRiLWEyNzcxNGMx {"name":"operations/cHJvamVjdHMvZ2lyaW5iLXJ1bnJ1bi9sb2NhdGlvbnMvdXMtY2VudHJhbDEvb3BlcmF0aW9ucy9vcGVyYXRpb24tMTc0NzIzMTQyMzg3OS02MzUxOTA0NWM1OWY4LTRlZGFkYzRiLWEyNzcxNGMx","metadata":{"@type":"type.googleapis.com/google.cloud.functions.v1.OperationMetadataV1","target":"projects/girinb-runrun/locations/us-central1/functions/helloWorld","type":"CREATE_FUNCTION","request":{"@type":"type.googleapis.com/google.cloud.functions.v1.CloudFunction","name":"projects/girinb-runrun/locations/us-central1/functions/helloWorld","httpsTrigger":{"securityLevel":"SECURE_ALWAYS"},"entryPoint":"helloWorld","updateTime":"1970-01-01T00:00:00Z","labels":{"deployment-tool":"cli-firebase","firebase-functions-hash":"14482821a43ce6b9a6304c926ea2098b230b8ab8"},"sourceUploadUrl":"https://storage.googleapis.com/uploads-352832638533.us-central1.cloudfunctions.appspot.com/ec347c6d-8533-472b-a13f-319ce9e6689e.zip?GoogleAccessId=service-476799073767@gcf-admin-robot.iam.gserviceaccount.com&Expires=1747233222&Signature=u46DPN24DL5Z38WOuOG7eQWm2TtNRx1PzQZ207bQrZMKWwgr66lLnUo6DrEap1kO9d6kwNZCnwYrkEOfmCd8QDWkiVbsr58MZO%2FLviu81pJBQIWzw%2Bt%2BZqYRrEdFSIq5zYWtZvxbw%2Fglj4bIKE%2FsgGB2RWFAQq0c5WFxb24us8QFxa1baE6p7T%2BtaGxG8XWcj%2BbopFW2RtGfb%2FgorJF90Zx8OER2yPt5MgKa3Q4KCi8unqzLxiod0cHZeB9Rwtd8RS1qhsJ7nWVbWKDLUyYRMlu9CakRfh2777hNyji6VHqibC8zvhsLk9xKbIbehlfQMFAl3QZ3aBhi3uNE39EibA%3D%3D","environmentVariables":{"FIREBASE_CONFIG":"{\"projectId\":\"girinb-runrun\",\"databaseURL\":\"https://girinb-runrun-default-rtdb.firebaseio.com\",\"storageBucket\":\"girinb-runrun.appspot.com\",\"locationId\":\"asia-northeast3\"}","GCLOUD_PROJECT":"girinb-runrun","EVENTARC_CLOUD_EVENT_SOURCE":"projects/girinb-runrun/locations/us-central1/functions/helloWorld"},"runtime":"nodejs18","buildEnvironmentVariables":{"GOOGLE_NODE_RUN_SCRIPTS":""},"dockerRegistry":"ARTIFACT_REGISTRY"},"versionId":"1","updateTime":"2025-05-14T14:03:44.325674558Z","buildId":"9e04218b-4d6b-4217-a6e6-85d03f15973f","buildName":"projects/476799073767/locations/us-central1/builds/9e04218b-4d6b-4217-a6e6-85d03f15973f"}} -[debug] [2025-05-14T14:03:55.124Z] [create-default-us-central1-helloWorld] Retrying task index 0 -[debug] [2025-05-14T14:03:55.124Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:03:55.124Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:03:55.125Z] >>> [apiv2][query] GET https://cloudfunctions.googleapis.com/v1/operations/cHJvamVjdHMvZ2lyaW5iLXJ1bnJ1bi9sb2NhdGlvbnMvdXMtY2VudHJhbDEvb3BlcmF0aW9ucy9vcGVyYXRpb24tMTc0NzIzMTQyMzg3OS02MzUxOTA0NWM1OWY4LTRlZGFkYzRiLWEyNzcxNGMx [none] -[debug] [2025-05-14T14:03:55.508Z] <<< [apiv2][status] GET https://cloudfunctions.googleapis.com/v1/operations/cHJvamVjdHMvZ2lyaW5iLXJ1bnJ1bi9sb2NhdGlvbnMvdXMtY2VudHJhbDEvb3BlcmF0aW9ucy9vcGVyYXRpb24tMTc0NzIzMTQyMzg3OS02MzUxOTA0NWM1OWY4LTRlZGFkYzRiLWEyNzcxNGMx 200 -[debug] [2025-05-14T14:03:55.509Z] <<< [apiv2][body] GET https://cloudfunctions.googleapis.com/v1/operations/cHJvamVjdHMvZ2lyaW5iLXJ1bnJ1bi9sb2NhdGlvbnMvdXMtY2VudHJhbDEvb3BlcmF0aW9ucy9vcGVyYXRpb24tMTc0NzIzMTQyMzg3OS02MzUxOTA0NWM1OWY4LTRlZGFkYzRiLWEyNzcxNGMx {"name":"operations/cHJvamVjdHMvZ2lyaW5iLXJ1bnJ1bi9sb2NhdGlvbnMvdXMtY2VudHJhbDEvb3BlcmF0aW9ucy9vcGVyYXRpb24tMTc0NzIzMTQyMzg3OS02MzUxOTA0NWM1OWY4LTRlZGFkYzRiLWEyNzcxNGMx","metadata":{"@type":"type.googleapis.com/google.cloud.functions.v1.OperationMetadataV1","target":"projects/girinb-runrun/locations/us-central1/functions/helloWorld","type":"CREATE_FUNCTION","request":{"@type":"type.googleapis.com/google.cloud.functions.v1.CloudFunction","name":"projects/girinb-runrun/locations/us-central1/functions/helloWorld","httpsTrigger":{"securityLevel":"SECURE_ALWAYS"},"entryPoint":"helloWorld","updateTime":"1970-01-01T00:00:00Z","labels":{"deployment-tool":"cli-firebase","firebase-functions-hash":"14482821a43ce6b9a6304c926ea2098b230b8ab8"},"sourceUploadUrl":"https://storage.googleapis.com/uploads-352832638533.us-central1.cloudfunctions.appspot.com/ec347c6d-8533-472b-a13f-319ce9e6689e.zip?GoogleAccessId=service-476799073767@gcf-admin-robot.iam.gserviceaccount.com&Expires=1747233222&Signature=u46DPN24DL5Z38WOuOG7eQWm2TtNRx1PzQZ207bQrZMKWwgr66lLnUo6DrEap1kO9d6kwNZCnwYrkEOfmCd8QDWkiVbsr58MZO%2FLviu81pJBQIWzw%2Bt%2BZqYRrEdFSIq5zYWtZvxbw%2Fglj4bIKE%2FsgGB2RWFAQq0c5WFxb24us8QFxa1baE6p7T%2BtaGxG8XWcj%2BbopFW2RtGfb%2FgorJF90Zx8OER2yPt5MgKa3Q4KCi8unqzLxiod0cHZeB9Rwtd8RS1qhsJ7nWVbWKDLUyYRMlu9CakRfh2777hNyji6VHqibC8zvhsLk9xKbIbehlfQMFAl3QZ3aBhi3uNE39EibA%3D%3D","environmentVariables":{"FIREBASE_CONFIG":"{\"projectId\":\"girinb-runrun\",\"databaseURL\":\"https://girinb-runrun-default-rtdb.firebaseio.com\",\"storageBucket\":\"girinb-runrun.appspot.com\",\"locationId\":\"asia-northeast3\"}","GCLOUD_PROJECT":"girinb-runrun","EVENTARC_CLOUD_EVENT_SOURCE":"projects/girinb-runrun/locations/us-central1/functions/helloWorld"},"runtime":"nodejs18","buildEnvironmentVariables":{"GOOGLE_NODE_RUN_SCRIPTS":""},"dockerRegistry":"ARTIFACT_REGISTRY"},"versionId":"1","updateTime":"2025-05-14T14:03:44.325674558Z","buildId":"9e04218b-4d6b-4217-a6e6-85d03f15973f","buildName":"projects/476799073767/locations/us-central1/builds/9e04218b-4d6b-4217-a6e6-85d03f15973f"}} -[debug] [2025-05-14T14:04:03.511Z] [create-default-us-central1-helloWorld] Retrying task index 0 -[debug] [2025-05-14T14:04:03.513Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:04:03.513Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:04:03.513Z] >>> [apiv2][query] GET https://cloudfunctions.googleapis.com/v1/operations/cHJvamVjdHMvZ2lyaW5iLXJ1bnJ1bi9sb2NhdGlvbnMvdXMtY2VudHJhbDEvb3BlcmF0aW9ucy9vcGVyYXRpb24tMTc0NzIzMTQyMzg3OS02MzUxOTA0NWM1OWY4LTRlZGFkYzRiLWEyNzcxNGMx [none] -[debug] [2025-05-14T14:04:04.822Z] <<< [apiv2][status] GET https://cloudfunctions.googleapis.com/v1/operations/cHJvamVjdHMvZ2lyaW5iLXJ1bnJ1bi9sb2NhdGlvbnMvdXMtY2VudHJhbDEvb3BlcmF0aW9ucy9vcGVyYXRpb24tMTc0NzIzMTQyMzg3OS02MzUxOTA0NWM1OWY4LTRlZGFkYzRiLWEyNzcxNGMx 200 -[debug] [2025-05-14T14:04:04.822Z] <<< [apiv2][body] GET https://cloudfunctions.googleapis.com/v1/operations/cHJvamVjdHMvZ2lyaW5iLXJ1bnJ1bi9sb2NhdGlvbnMvdXMtY2VudHJhbDEvb3BlcmF0aW9ucy9vcGVyYXRpb24tMTc0NzIzMTQyMzg3OS02MzUxOTA0NWM1OWY4LTRlZGFkYzRiLWEyNzcxNGMx {"name":"operations/cHJvamVjdHMvZ2lyaW5iLXJ1bnJ1bi9sb2NhdGlvbnMvdXMtY2VudHJhbDEvb3BlcmF0aW9ucy9vcGVyYXRpb24tMTc0NzIzMTQyMzg3OS02MzUxOTA0NWM1OWY4LTRlZGFkYzRiLWEyNzcxNGMx","metadata":{"@type":"type.googleapis.com/google.cloud.functions.v1.OperationMetadataV1","target":"projects/girinb-runrun/locations/us-central1/functions/helloWorld","type":"CREATE_FUNCTION","request":{"@type":"type.googleapis.com/google.cloud.functions.v1.CloudFunction","name":"projects/girinb-runrun/locations/us-central1/functions/helloWorld","httpsTrigger":{"securityLevel":"SECURE_ALWAYS"},"entryPoint":"helloWorld","updateTime":"1970-01-01T00:00:00Z","labels":{"deployment-tool":"cli-firebase","firebase-functions-hash":"14482821a43ce6b9a6304c926ea2098b230b8ab8"},"sourceUploadUrl":"https://storage.googleapis.com/uploads-352832638533.us-central1.cloudfunctions.appspot.com/ec347c6d-8533-472b-a13f-319ce9e6689e.zip?GoogleAccessId=service-476799073767@gcf-admin-robot.iam.gserviceaccount.com&Expires=1747233222&Signature=u46DPN24DL5Z38WOuOG7eQWm2TtNRx1PzQZ207bQrZMKWwgr66lLnUo6DrEap1kO9d6kwNZCnwYrkEOfmCd8QDWkiVbsr58MZO%2FLviu81pJBQIWzw%2Bt%2BZqYRrEdFSIq5zYWtZvxbw%2Fglj4bIKE%2FsgGB2RWFAQq0c5WFxb24us8QFxa1baE6p7T%2BtaGxG8XWcj%2BbopFW2RtGfb%2FgorJF90Zx8OER2yPt5MgKa3Q4KCi8unqzLxiod0cHZeB9Rwtd8RS1qhsJ7nWVbWKDLUyYRMlu9CakRfh2777hNyji6VHqibC8zvhsLk9xKbIbehlfQMFAl3QZ3aBhi3uNE39EibA%3D%3D","environmentVariables":{"FIREBASE_CONFIG":"{\"projectId\":\"girinb-runrun\",\"databaseURL\":\"https://girinb-runrun-default-rtdb.firebaseio.com\",\"storageBucket\":\"girinb-runrun.appspot.com\",\"locationId\":\"asia-northeast3\"}","GCLOUD_PROJECT":"girinb-runrun","EVENTARC_CLOUD_EVENT_SOURCE":"projects/girinb-runrun/locations/us-central1/functions/helloWorld"},"runtime":"nodejs18","buildEnvironmentVariables":{"GOOGLE_NODE_RUN_SCRIPTS":""},"dockerRegistry":"ARTIFACT_REGISTRY"},"versionId":"1","updateTime":"2025-05-14T14:03:44.325674558Z","buildId":"9e04218b-4d6b-4217-a6e6-85d03f15973f","buildName":"projects/476799073767/locations/us-central1/builds/9e04218b-4d6b-4217-a6e6-85d03f15973f"}} -[debug] [2025-05-14T14:04:14.825Z] [create-default-us-central1-helloWorld] Retrying task index 0 -[debug] [2025-05-14T14:04:14.826Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:04:14.826Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:04:14.826Z] >>> [apiv2][query] GET https://cloudfunctions.googleapis.com/v1/operations/cHJvamVjdHMvZ2lyaW5iLXJ1bnJ1bi9sb2NhdGlvbnMvdXMtY2VudHJhbDEvb3BlcmF0aW9ucy9vcGVyYXRpb24tMTc0NzIzMTQyMzg3OS02MzUxOTA0NWM1OWY4LTRlZGFkYzRiLWEyNzcxNGMx [none] -[debug] [2025-05-14T14:04:15.530Z] <<< [apiv2][status] GET https://cloudfunctions.googleapis.com/v1/operations/cHJvamVjdHMvZ2lyaW5iLXJ1bnJ1bi9sb2NhdGlvbnMvdXMtY2VudHJhbDEvb3BlcmF0aW9ucy9vcGVyYXRpb24tMTc0NzIzMTQyMzg3OS02MzUxOTA0NWM1OWY4LTRlZGFkYzRiLWEyNzcxNGMx 200 -[debug] [2025-05-14T14:04:15.531Z] <<< [apiv2][body] GET https://cloudfunctions.googleapis.com/v1/operations/cHJvamVjdHMvZ2lyaW5iLXJ1bnJ1bi9sb2NhdGlvbnMvdXMtY2VudHJhbDEvb3BlcmF0aW9ucy9vcGVyYXRpb24tMTc0NzIzMTQyMzg3OS02MzUxOTA0NWM1OWY4LTRlZGFkYzRiLWEyNzcxNGMx {"name":"operations/cHJvamVjdHMvZ2lyaW5iLXJ1bnJ1bi9sb2NhdGlvbnMvdXMtY2VudHJhbDEvb3BlcmF0aW9ucy9vcGVyYXRpb24tMTc0NzIzMTQyMzg3OS02MzUxOTA0NWM1OWY4LTRlZGFkYzRiLWEyNzcxNGMx","metadata":{"@type":"type.googleapis.com/google.cloud.functions.v1.OperationMetadataV1","target":"projects/girinb-runrun/locations/us-central1/functions/helloWorld","type":"CREATE_FUNCTION","request":{"@type":"type.googleapis.com/google.cloud.functions.v1.CloudFunction","name":"projects/girinb-runrun/locations/us-central1/functions/helloWorld","httpsTrigger":{"securityLevel":"SECURE_ALWAYS"},"entryPoint":"helloWorld","updateTime":"1970-01-01T00:00:00Z","labels":{"deployment-tool":"cli-firebase","firebase-functions-hash":"14482821a43ce6b9a6304c926ea2098b230b8ab8"},"sourceUploadUrl":"https://storage.googleapis.com/uploads-352832638533.us-central1.cloudfunctions.appspot.com/ec347c6d-8533-472b-a13f-319ce9e6689e.zip?GoogleAccessId=service-476799073767@gcf-admin-robot.iam.gserviceaccount.com&Expires=1747233222&Signature=u46DPN24DL5Z38WOuOG7eQWm2TtNRx1PzQZ207bQrZMKWwgr66lLnUo6DrEap1kO9d6kwNZCnwYrkEOfmCd8QDWkiVbsr58MZO%2FLviu81pJBQIWzw%2Bt%2BZqYRrEdFSIq5zYWtZvxbw%2Fglj4bIKE%2FsgGB2RWFAQq0c5WFxb24us8QFxa1baE6p7T%2BtaGxG8XWcj%2BbopFW2RtGfb%2FgorJF90Zx8OER2yPt5MgKa3Q4KCi8unqzLxiod0cHZeB9Rwtd8RS1qhsJ7nWVbWKDLUyYRMlu9CakRfh2777hNyji6VHqibC8zvhsLk9xKbIbehlfQMFAl3QZ3aBhi3uNE39EibA%3D%3D","environmentVariables":{"FIREBASE_CONFIG":"{\"projectId\":\"girinb-runrun\",\"databaseURL\":\"https://girinb-runrun-default-rtdb.firebaseio.com\",\"storageBucket\":\"girinb-runrun.appspot.com\",\"locationId\":\"asia-northeast3\"}","GCLOUD_PROJECT":"girinb-runrun","EVENTARC_CLOUD_EVENT_SOURCE":"projects/girinb-runrun/locations/us-central1/functions/helloWorld"},"runtime":"nodejs18","buildEnvironmentVariables":{"GOOGLE_NODE_RUN_SCRIPTS":""},"dockerRegistry":"ARTIFACT_REGISTRY"},"versionId":"1","updateTime":"2025-05-14T14:03:44.325674558Z","buildId":"9e04218b-4d6b-4217-a6e6-85d03f15973f","buildName":"projects/476799073767/locations/us-central1/builds/9e04218b-4d6b-4217-a6e6-85d03f15973f"}} -[debug] [2025-05-14T14:04:25.533Z] [create-default-us-central1-helloWorld] Retrying task index 0 -[debug] [2025-05-14T14:04:25.533Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:04:25.534Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:04:25.534Z] >>> [apiv2][query] GET https://cloudfunctions.googleapis.com/v1/operations/cHJvamVjdHMvZ2lyaW5iLXJ1bnJ1bi9sb2NhdGlvbnMvdXMtY2VudHJhbDEvb3BlcmF0aW9ucy9vcGVyYXRpb24tMTc0NzIzMTQyMzg3OS02MzUxOTA0NWM1OWY4LTRlZGFkYzRiLWEyNzcxNGMx [none] -[debug] [2025-05-14T14:04:26.242Z] <<< [apiv2][status] GET https://cloudfunctions.googleapis.com/v1/operations/cHJvamVjdHMvZ2lyaW5iLXJ1bnJ1bi9sb2NhdGlvbnMvdXMtY2VudHJhbDEvb3BlcmF0aW9ucy9vcGVyYXRpb24tMTc0NzIzMTQyMzg3OS02MzUxOTA0NWM1OWY4LTRlZGFkYzRiLWEyNzcxNGMx 200 -[debug] [2025-05-14T14:04:26.242Z] <<< [apiv2][body] GET https://cloudfunctions.googleapis.com/v1/operations/cHJvamVjdHMvZ2lyaW5iLXJ1bnJ1bi9sb2NhdGlvbnMvdXMtY2VudHJhbDEvb3BlcmF0aW9ucy9vcGVyYXRpb24tMTc0NzIzMTQyMzg3OS02MzUxOTA0NWM1OWY4LTRlZGFkYzRiLWEyNzcxNGMx {"name":"operations/cHJvamVjdHMvZ2lyaW5iLXJ1bnJ1bi9sb2NhdGlvbnMvdXMtY2VudHJhbDEvb3BlcmF0aW9ucy9vcGVyYXRpb24tMTc0NzIzMTQyMzg3OS02MzUxOTA0NWM1OWY4LTRlZGFkYzRiLWEyNzcxNGMx","metadata":{"@type":"type.googleapis.com/google.cloud.functions.v1.OperationMetadataV1","target":"projects/girinb-runrun/locations/us-central1/functions/helloWorld","type":"CREATE_FUNCTION","request":{"@type":"type.googleapis.com/google.cloud.functions.v1.CloudFunction","name":"projects/girinb-runrun/locations/us-central1/functions/helloWorld","httpsTrigger":{"securityLevel":"SECURE_ALWAYS"},"entryPoint":"helloWorld","updateTime":"1970-01-01T00:00:00Z","labels":{"deployment-tool":"cli-firebase","firebase-functions-hash":"14482821a43ce6b9a6304c926ea2098b230b8ab8"},"sourceUploadUrl":"https://storage.googleapis.com/uploads-352832638533.us-central1.cloudfunctions.appspot.com/ec347c6d-8533-472b-a13f-319ce9e6689e.zip?GoogleAccessId=service-476799073767@gcf-admin-robot.iam.gserviceaccount.com&Expires=1747233222&Signature=u46DPN24DL5Z38WOuOG7eQWm2TtNRx1PzQZ207bQrZMKWwgr66lLnUo6DrEap1kO9d6kwNZCnwYrkEOfmCd8QDWkiVbsr58MZO%2FLviu81pJBQIWzw%2Bt%2BZqYRrEdFSIq5zYWtZvxbw%2Fglj4bIKE%2FsgGB2RWFAQq0c5WFxb24us8QFxa1baE6p7T%2BtaGxG8XWcj%2BbopFW2RtGfb%2FgorJF90Zx8OER2yPt5MgKa3Q4KCi8unqzLxiod0cHZeB9Rwtd8RS1qhsJ7nWVbWKDLUyYRMlu9CakRfh2777hNyji6VHqibC8zvhsLk9xKbIbehlfQMFAl3QZ3aBhi3uNE39EibA%3D%3D","environmentVariables":{"FIREBASE_CONFIG":"{\"projectId\":\"girinb-runrun\",\"databaseURL\":\"https://girinb-runrun-default-rtdb.firebaseio.com\",\"storageBucket\":\"girinb-runrun.appspot.com\",\"locationId\":\"asia-northeast3\"}","GCLOUD_PROJECT":"girinb-runrun","EVENTARC_CLOUD_EVENT_SOURCE":"projects/girinb-runrun/locations/us-central1/functions/helloWorld"},"runtime":"nodejs18","buildEnvironmentVariables":{"GOOGLE_NODE_RUN_SCRIPTS":""},"dockerRegistry":"ARTIFACT_REGISTRY"},"versionId":"1","updateTime":"2025-05-14T14:03:44.325674558Z","buildId":"9e04218b-4d6b-4217-a6e6-85d03f15973f","buildName":"projects/476799073767/locations/us-central1/builds/9e04218b-4d6b-4217-a6e6-85d03f15973f"}} -[debug] [2025-05-14T14:04:36.243Z] [create-default-us-central1-helloWorld] Retrying task index 0 -[debug] [2025-05-14T14:04:36.244Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:04:36.245Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:04:36.245Z] >>> [apiv2][query] GET https://cloudfunctions.googleapis.com/v1/operations/cHJvamVjdHMvZ2lyaW5iLXJ1bnJ1bi9sb2NhdGlvbnMvdXMtY2VudHJhbDEvb3BlcmF0aW9ucy9vcGVyYXRpb24tMTc0NzIzMTQyMzg3OS02MzUxOTA0NWM1OWY4LTRlZGFkYzRiLWEyNzcxNGMx [none] -[debug] [2025-05-14T14:04:36.994Z] <<< [apiv2][status] GET https://cloudfunctions.googleapis.com/v1/operations/cHJvamVjdHMvZ2lyaW5iLXJ1bnJ1bi9sb2NhdGlvbnMvdXMtY2VudHJhbDEvb3BlcmF0aW9ucy9vcGVyYXRpb24tMTc0NzIzMTQyMzg3OS02MzUxOTA0NWM1OWY4LTRlZGFkYzRiLWEyNzcxNGMx 200 -[debug] [2025-05-14T14:04:36.995Z] <<< [apiv2][body] GET https://cloudfunctions.googleapis.com/v1/operations/cHJvamVjdHMvZ2lyaW5iLXJ1bnJ1bi9sb2NhdGlvbnMvdXMtY2VudHJhbDEvb3BlcmF0aW9ucy9vcGVyYXRpb24tMTc0NzIzMTQyMzg3OS02MzUxOTA0NWM1OWY4LTRlZGFkYzRiLWEyNzcxNGMx {"name":"operations/cHJvamVjdHMvZ2lyaW5iLXJ1bnJ1bi9sb2NhdGlvbnMvdXMtY2VudHJhbDEvb3BlcmF0aW9ucy9vcGVyYXRpb24tMTc0NzIzMTQyMzg3OS02MzUxOTA0NWM1OWY4LTRlZGFkYzRiLWEyNzcxNGMx","metadata":{"@type":"type.googleapis.com/google.cloud.functions.v1.OperationMetadataV1","target":"projects/girinb-runrun/locations/us-central1/functions/helloWorld","type":"CREATE_FUNCTION","request":{"@type":"type.googleapis.com/google.cloud.functions.v1.CloudFunction","name":"projects/girinb-runrun/locations/us-central1/functions/helloWorld","httpsTrigger":{"securityLevel":"SECURE_ALWAYS"},"entryPoint":"helloWorld","updateTime":"1970-01-01T00:00:00Z","labels":{"deployment-tool":"cli-firebase","firebase-functions-hash":"14482821a43ce6b9a6304c926ea2098b230b8ab8"},"sourceUploadUrl":"https://storage.googleapis.com/uploads-352832638533.us-central1.cloudfunctions.appspot.com/ec347c6d-8533-472b-a13f-319ce9e6689e.zip?GoogleAccessId=service-476799073767@gcf-admin-robot.iam.gserviceaccount.com&Expires=1747233222&Signature=u46DPN24DL5Z38WOuOG7eQWm2TtNRx1PzQZ207bQrZMKWwgr66lLnUo6DrEap1kO9d6kwNZCnwYrkEOfmCd8QDWkiVbsr58MZO%2FLviu81pJBQIWzw%2Bt%2BZqYRrEdFSIq5zYWtZvxbw%2Fglj4bIKE%2FsgGB2RWFAQq0c5WFxb24us8QFxa1baE6p7T%2BtaGxG8XWcj%2BbopFW2RtGfb%2FgorJF90Zx8OER2yPt5MgKa3Q4KCi8unqzLxiod0cHZeB9Rwtd8RS1qhsJ7nWVbWKDLUyYRMlu9CakRfh2777hNyji6VHqibC8zvhsLk9xKbIbehlfQMFAl3QZ3aBhi3uNE39EibA%3D%3D","environmentVariables":{"FIREBASE_CONFIG":"{\"projectId\":\"girinb-runrun\",\"databaseURL\":\"https://girinb-runrun-default-rtdb.firebaseio.com\",\"storageBucket\":\"girinb-runrun.appspot.com\",\"locationId\":\"asia-northeast3\"}","GCLOUD_PROJECT":"girinb-runrun","EVENTARC_CLOUD_EVENT_SOURCE":"projects/girinb-runrun/locations/us-central1/functions/helloWorld"},"runtime":"nodejs18","buildEnvironmentVariables":{"GOOGLE_NODE_RUN_SCRIPTS":""},"dockerRegistry":"ARTIFACT_REGISTRY"},"versionId":"1","updateTime":"2025-05-14T14:03:44.325674558Z","buildId":"9e04218b-4d6b-4217-a6e6-85d03f15973f","buildName":"projects/476799073767/locations/us-central1/builds/9e04218b-4d6b-4217-a6e6-85d03f15973f"}} -[debug] [2025-05-14T14:04:46.998Z] [create-default-us-central1-helloWorld] Retrying task index 0 -[debug] [2025-05-14T14:04:47.001Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:04:47.001Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:04:47.001Z] >>> [apiv2][query] GET https://cloudfunctions.googleapis.com/v1/operations/cHJvamVjdHMvZ2lyaW5iLXJ1bnJ1bi9sb2NhdGlvbnMvdXMtY2VudHJhbDEvb3BlcmF0aW9ucy9vcGVyYXRpb24tMTc0NzIzMTQyMzg3OS02MzUxOTA0NWM1OWY4LTRlZGFkYzRiLWEyNzcxNGMx [none] -[debug] [2025-05-14T14:04:47.545Z] <<< [apiv2][status] GET https://cloudfunctions.googleapis.com/v1/operations/cHJvamVjdHMvZ2lyaW5iLXJ1bnJ1bi9sb2NhdGlvbnMvdXMtY2VudHJhbDEvb3BlcmF0aW9ucy9vcGVyYXRpb24tMTc0NzIzMTQyMzg3OS02MzUxOTA0NWM1OWY4LTRlZGFkYzRiLWEyNzcxNGMx 200 -[debug] [2025-05-14T14:04:47.546Z] <<< [apiv2][body] GET https://cloudfunctions.googleapis.com/v1/operations/cHJvamVjdHMvZ2lyaW5iLXJ1bnJ1bi9sb2NhdGlvbnMvdXMtY2VudHJhbDEvb3BlcmF0aW9ucy9vcGVyYXRpb24tMTc0NzIzMTQyMzg3OS02MzUxOTA0NWM1OWY4LTRlZGFkYzRiLWEyNzcxNGMx {"name":"operations/cHJvamVjdHMvZ2lyaW5iLXJ1bnJ1bi9sb2NhdGlvbnMvdXMtY2VudHJhbDEvb3BlcmF0aW9ucy9vcGVyYXRpb24tMTc0NzIzMTQyMzg3OS02MzUxOTA0NWM1OWY4LTRlZGFkYzRiLWEyNzcxNGMx","metadata":{"@type":"type.googleapis.com/google.cloud.functions.v1.OperationMetadataV1","target":"projects/girinb-runrun/locations/us-central1/functions/helloWorld","type":"CREATE_FUNCTION","request":{"@type":"type.googleapis.com/google.cloud.functions.v1.CloudFunction","name":"projects/girinb-runrun/locations/us-central1/functions/helloWorld","httpsTrigger":{"securityLevel":"SECURE_ALWAYS"},"entryPoint":"helloWorld","updateTime":"1970-01-01T00:00:00Z","labels":{"deployment-tool":"cli-firebase","firebase-functions-hash":"14482821a43ce6b9a6304c926ea2098b230b8ab8"},"sourceUploadUrl":"https://storage.googleapis.com/uploads-352832638533.us-central1.cloudfunctions.appspot.com/ec347c6d-8533-472b-a13f-319ce9e6689e.zip?GoogleAccessId=service-476799073767@gcf-admin-robot.iam.gserviceaccount.com&Expires=1747233222&Signature=u46DPN24DL5Z38WOuOG7eQWm2TtNRx1PzQZ207bQrZMKWwgr66lLnUo6DrEap1kO9d6kwNZCnwYrkEOfmCd8QDWkiVbsr58MZO%2FLviu81pJBQIWzw%2Bt%2BZqYRrEdFSIq5zYWtZvxbw%2Fglj4bIKE%2FsgGB2RWFAQq0c5WFxb24us8QFxa1baE6p7T%2BtaGxG8XWcj%2BbopFW2RtGfb%2FgorJF90Zx8OER2yPt5MgKa3Q4KCi8unqzLxiod0cHZeB9Rwtd8RS1qhsJ7nWVbWKDLUyYRMlu9CakRfh2777hNyji6VHqibC8zvhsLk9xKbIbehlfQMFAl3QZ3aBhi3uNE39EibA%3D%3D","environmentVariables":{"FIREBASE_CONFIG":"{\"projectId\":\"girinb-runrun\",\"databaseURL\":\"https://girinb-runrun-default-rtdb.firebaseio.com\",\"storageBucket\":\"girinb-runrun.appspot.com\",\"locationId\":\"asia-northeast3\"}","GCLOUD_PROJECT":"girinb-runrun","EVENTARC_CLOUD_EVENT_SOURCE":"projects/girinb-runrun/locations/us-central1/functions/helloWorld"},"runtime":"nodejs18","buildEnvironmentVariables":{"GOOGLE_NODE_RUN_SCRIPTS":""},"dockerRegistry":"ARTIFACT_REGISTRY"},"versionId":"1","updateTime":"2025-05-14T14:03:44.325674558Z","buildId":"9e04218b-4d6b-4217-a6e6-85d03f15973f","sourceToken":"2d2e5813-b0dd-46a8-95d9-81d21454cae0","buildName":"projects/476799073767/locations/us-central1/builds/9e04218b-4d6b-4217-a6e6-85d03f15973f"}} -[debug] [2025-05-14T14:04:47.547Z] Got source token 2d2e5813-b0dd-46a8-95d9-81d21454cae0 for region us-central1 -[debug] [2025-05-14T14:04:57.550Z] [create-default-us-central1-helloWorld] Retrying task index 0 -[debug] [2025-05-14T14:04:57.553Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:04:57.553Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:04:57.553Z] >>> [apiv2][query] GET https://cloudfunctions.googleapis.com/v1/operations/cHJvamVjdHMvZ2lyaW5iLXJ1bnJ1bi9sb2NhdGlvbnMvdXMtY2VudHJhbDEvb3BlcmF0aW9ucy9vcGVyYXRpb24tMTc0NzIzMTQyMzg3OS02MzUxOTA0NWM1OWY4LTRlZGFkYzRiLWEyNzcxNGMx [none] -[debug] [2025-05-14T14:04:58.153Z] <<< [apiv2][status] GET https://cloudfunctions.googleapis.com/v1/operations/cHJvamVjdHMvZ2lyaW5iLXJ1bnJ1bi9sb2NhdGlvbnMvdXMtY2VudHJhbDEvb3BlcmF0aW9ucy9vcGVyYXRpb24tMTc0NzIzMTQyMzg3OS02MzUxOTA0NWM1OWY4LTRlZGFkYzRiLWEyNzcxNGMx 200 -[debug] [2025-05-14T14:04:58.155Z] <<< [apiv2][body] GET https://cloudfunctions.googleapis.com/v1/operations/cHJvamVjdHMvZ2lyaW5iLXJ1bnJ1bi9sb2NhdGlvbnMvdXMtY2VudHJhbDEvb3BlcmF0aW9ucy9vcGVyYXRpb24tMTc0NzIzMTQyMzg3OS02MzUxOTA0NWM1OWY4LTRlZGFkYzRiLWEyNzcxNGMx {"name":"operations/cHJvamVjdHMvZ2lyaW5iLXJ1bnJ1bi9sb2NhdGlvbnMvdXMtY2VudHJhbDEvb3BlcmF0aW9ucy9vcGVyYXRpb24tMTc0NzIzMTQyMzg3OS02MzUxOTA0NWM1OWY4LTRlZGFkYzRiLWEyNzcxNGMx","metadata":{"@type":"type.googleapis.com/google.cloud.functions.v1.OperationMetadataV1","target":"projects/girinb-runrun/locations/us-central1/functions/helloWorld","type":"CREATE_FUNCTION","request":{"@type":"type.googleapis.com/google.cloud.functions.v1.CloudFunction","name":"projects/girinb-runrun/locations/us-central1/functions/helloWorld","httpsTrigger":{"securityLevel":"SECURE_ALWAYS"},"entryPoint":"helloWorld","updateTime":"1970-01-01T00:00:00Z","labels":{"deployment-tool":"cli-firebase","firebase-functions-hash":"14482821a43ce6b9a6304c926ea2098b230b8ab8"},"sourceUploadUrl":"https://storage.googleapis.com/uploads-352832638533.us-central1.cloudfunctions.appspot.com/ec347c6d-8533-472b-a13f-319ce9e6689e.zip?GoogleAccessId=service-476799073767@gcf-admin-robot.iam.gserviceaccount.com&Expires=1747233222&Signature=u46DPN24DL5Z38WOuOG7eQWm2TtNRx1PzQZ207bQrZMKWwgr66lLnUo6DrEap1kO9d6kwNZCnwYrkEOfmCd8QDWkiVbsr58MZO%2FLviu81pJBQIWzw%2Bt%2BZqYRrEdFSIq5zYWtZvxbw%2Fglj4bIKE%2FsgGB2RWFAQq0c5WFxb24us8QFxa1baE6p7T%2BtaGxG8XWcj%2BbopFW2RtGfb%2FgorJF90Zx8OER2yPt5MgKa3Q4KCi8unqzLxiod0cHZeB9Rwtd8RS1qhsJ7nWVbWKDLUyYRMlu9CakRfh2777hNyji6VHqibC8zvhsLk9xKbIbehlfQMFAl3QZ3aBhi3uNE39EibA%3D%3D","environmentVariables":{"FIREBASE_CONFIG":"{\"projectId\":\"girinb-runrun\",\"databaseURL\":\"https://girinb-runrun-default-rtdb.firebaseio.com\",\"storageBucket\":\"girinb-runrun.appspot.com\",\"locationId\":\"asia-northeast3\"}","GCLOUD_PROJECT":"girinb-runrun","EVENTARC_CLOUD_EVENT_SOURCE":"projects/girinb-runrun/locations/us-central1/functions/helloWorld"},"runtime":"nodejs18","buildEnvironmentVariables":{"GOOGLE_NODE_RUN_SCRIPTS":""},"dockerRegistry":"ARTIFACT_REGISTRY"},"versionId":"1","updateTime":"2025-05-14T14:03:44.325674558Z","buildId":"9e04218b-4d6b-4217-a6e6-85d03f15973f","sourceToken":"2d2e5813-b0dd-46a8-95d9-81d21454cae0","buildName":"projects/476799073767/locations/us-central1/builds/9e04218b-4d6b-4217-a6e6-85d03f15973f"}} -[debug] [2025-05-14T14:04:58.159Z] Got source token 2d2e5813-b0dd-46a8-95d9-81d21454cae0 for region us-central1 -[debug] [2025-05-14T14:05:08.161Z] [create-default-us-central1-helloWorld] Retrying task index 0 -[debug] [2025-05-14T14:05:08.161Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:05:08.161Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:05:08.161Z] >>> [apiv2][query] GET https://cloudfunctions.googleapis.com/v1/operations/cHJvamVjdHMvZ2lyaW5iLXJ1bnJ1bi9sb2NhdGlvbnMvdXMtY2VudHJhbDEvb3BlcmF0aW9ucy9vcGVyYXRpb24tMTc0NzIzMTQyMzg3OS02MzUxOTA0NWM1OWY4LTRlZGFkYzRiLWEyNzcxNGMx [none] -[debug] [2025-05-14T14:05:08.762Z] <<< [apiv2][status] GET https://cloudfunctions.googleapis.com/v1/operations/cHJvamVjdHMvZ2lyaW5iLXJ1bnJ1bi9sb2NhdGlvbnMvdXMtY2VudHJhbDEvb3BlcmF0aW9ucy9vcGVyYXRpb24tMTc0NzIzMTQyMzg3OS02MzUxOTA0NWM1OWY4LTRlZGFkYzRiLWEyNzcxNGMx 200 -[debug] [2025-05-14T14:05:08.762Z] <<< [apiv2][body] GET https://cloudfunctions.googleapis.com/v1/operations/cHJvamVjdHMvZ2lyaW5iLXJ1bnJ1bi9sb2NhdGlvbnMvdXMtY2VudHJhbDEvb3BlcmF0aW9ucy9vcGVyYXRpb24tMTc0NzIzMTQyMzg3OS02MzUxOTA0NWM1OWY4LTRlZGFkYzRiLWEyNzcxNGMx {"name":"operations/cHJvamVjdHMvZ2lyaW5iLXJ1bnJ1bi9sb2NhdGlvbnMvdXMtY2VudHJhbDEvb3BlcmF0aW9ucy9vcGVyYXRpb24tMTc0NzIzMTQyMzg3OS02MzUxOTA0NWM1OWY4LTRlZGFkYzRiLWEyNzcxNGMx","metadata":{"@type":"type.googleapis.com/google.cloud.functions.v1.OperationMetadataV1","target":"projects/girinb-runrun/locations/us-central1/functions/helloWorld","type":"CREATE_FUNCTION","request":{"@type":"type.googleapis.com/google.cloud.functions.v1.CloudFunction","name":"projects/girinb-runrun/locations/us-central1/functions/helloWorld","httpsTrigger":{"securityLevel":"SECURE_ALWAYS"},"entryPoint":"helloWorld","updateTime":"1970-01-01T00:00:00Z","labels":{"deployment-tool":"cli-firebase","firebase-functions-hash":"14482821a43ce6b9a6304c926ea2098b230b8ab8"},"sourceUploadUrl":"https://storage.googleapis.com/uploads-352832638533.us-central1.cloudfunctions.appspot.com/ec347c6d-8533-472b-a13f-319ce9e6689e.zip?GoogleAccessId=service-476799073767@gcf-admin-robot.iam.gserviceaccount.com&Expires=1747233222&Signature=u46DPN24DL5Z38WOuOG7eQWm2TtNRx1PzQZ207bQrZMKWwgr66lLnUo6DrEap1kO9d6kwNZCnwYrkEOfmCd8QDWkiVbsr58MZO%2FLviu81pJBQIWzw%2Bt%2BZqYRrEdFSIq5zYWtZvxbw%2Fglj4bIKE%2FsgGB2RWFAQq0c5WFxb24us8QFxa1baE6p7T%2BtaGxG8XWcj%2BbopFW2RtGfb%2FgorJF90Zx8OER2yPt5MgKa3Q4KCi8unqzLxiod0cHZeB9Rwtd8RS1qhsJ7nWVbWKDLUyYRMlu9CakRfh2777hNyji6VHqibC8zvhsLk9xKbIbehlfQMFAl3QZ3aBhi3uNE39EibA%3D%3D","environmentVariables":{"FIREBASE_CONFIG":"{\"projectId\":\"girinb-runrun\",\"databaseURL\":\"https://girinb-runrun-default-rtdb.firebaseio.com\",\"storageBucket\":\"girinb-runrun.appspot.com\",\"locationId\":\"asia-northeast3\"}","GCLOUD_PROJECT":"girinb-runrun","EVENTARC_CLOUD_EVENT_SOURCE":"projects/girinb-runrun/locations/us-central1/functions/helloWorld"},"runtime":"nodejs18","buildEnvironmentVariables":{"GOOGLE_NODE_RUN_SCRIPTS":""},"dockerRegistry":"ARTIFACT_REGISTRY"},"versionId":"1","updateTime":"2025-05-14T14:03:44.325674558Z","buildId":"9e04218b-4d6b-4217-a6e6-85d03f15973f","sourceToken":"2d2e5813-b0dd-46a8-95d9-81d21454cae0","buildName":"projects/476799073767/locations/us-central1/builds/9e04218b-4d6b-4217-a6e6-85d03f15973f"}} -[debug] [2025-05-14T14:05:08.763Z] Got source token 2d2e5813-b0dd-46a8-95d9-81d21454cae0 for region us-central1 -[debug] [2025-05-14T14:05:18.763Z] [create-default-us-central1-helloWorld] Retrying task index 0 -[debug] [2025-05-14T14:05:18.764Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:05:18.764Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:05:18.765Z] >>> [apiv2][query] GET https://cloudfunctions.googleapis.com/v1/operations/cHJvamVjdHMvZ2lyaW5iLXJ1bnJ1bi9sb2NhdGlvbnMvdXMtY2VudHJhbDEvb3BlcmF0aW9ucy9vcGVyYXRpb24tMTc0NzIzMTQyMzg3OS02MzUxOTA0NWM1OWY4LTRlZGFkYzRiLWEyNzcxNGMx [none] -[debug] [2025-05-14T14:05:19.997Z] <<< [apiv2][status] GET https://cloudfunctions.googleapis.com/v1/operations/cHJvamVjdHMvZ2lyaW5iLXJ1bnJ1bi9sb2NhdGlvbnMvdXMtY2VudHJhbDEvb3BlcmF0aW9ucy9vcGVyYXRpb24tMTc0NzIzMTQyMzg3OS02MzUxOTA0NWM1OWY4LTRlZGFkYzRiLWEyNzcxNGMx 200 -[debug] [2025-05-14T14:05:19.998Z] <<< [apiv2][body] GET https://cloudfunctions.googleapis.com/v1/operations/cHJvamVjdHMvZ2lyaW5iLXJ1bnJ1bi9sb2NhdGlvbnMvdXMtY2VudHJhbDEvb3BlcmF0aW9ucy9vcGVyYXRpb24tMTc0NzIzMTQyMzg3OS02MzUxOTA0NWM1OWY4LTRlZGFkYzRiLWEyNzcxNGMx {"name":"operations/cHJvamVjdHMvZ2lyaW5iLXJ1bnJ1bi9sb2NhdGlvbnMvdXMtY2VudHJhbDEvb3BlcmF0aW9ucy9vcGVyYXRpb24tMTc0NzIzMTQyMzg3OS02MzUxOTA0NWM1OWY4LTRlZGFkYzRiLWEyNzcxNGMx","metadata":{"@type":"type.googleapis.com/google.cloud.functions.v1.OperationMetadataV1","target":"projects/girinb-runrun/locations/us-central1/functions/helloWorld","type":"CREATE_FUNCTION","request":{"@type":"type.googleapis.com/google.cloud.functions.v1.CloudFunction","name":"projects/girinb-runrun/locations/us-central1/functions/helloWorld","httpsTrigger":{"securityLevel":"SECURE_ALWAYS"},"entryPoint":"helloWorld","updateTime":"1970-01-01T00:00:00Z","labels":{"deployment-tool":"cli-firebase","firebase-functions-hash":"14482821a43ce6b9a6304c926ea2098b230b8ab8"},"sourceUploadUrl":"https://storage.googleapis.com/uploads-352832638533.us-central1.cloudfunctions.appspot.com/ec347c6d-8533-472b-a13f-319ce9e6689e.zip?GoogleAccessId=service-476799073767@gcf-admin-robot.iam.gserviceaccount.com&Expires=1747233222&Signature=u46DPN24DL5Z38WOuOG7eQWm2TtNRx1PzQZ207bQrZMKWwgr66lLnUo6DrEap1kO9d6kwNZCnwYrkEOfmCd8QDWkiVbsr58MZO%2FLviu81pJBQIWzw%2Bt%2BZqYRrEdFSIq5zYWtZvxbw%2Fglj4bIKE%2FsgGB2RWFAQq0c5WFxb24us8QFxa1baE6p7T%2BtaGxG8XWcj%2BbopFW2RtGfb%2FgorJF90Zx8OER2yPt5MgKa3Q4KCi8unqzLxiod0cHZeB9Rwtd8RS1qhsJ7nWVbWKDLUyYRMlu9CakRfh2777hNyji6VHqibC8zvhsLk9xKbIbehlfQMFAl3QZ3aBhi3uNE39EibA%3D%3D","environmentVariables":{"FIREBASE_CONFIG":"{\"projectId\":\"girinb-runrun\",\"databaseURL\":\"https://girinb-runrun-default-rtdb.firebaseio.com\",\"storageBucket\":\"girinb-runrun.appspot.com\",\"locationId\":\"asia-northeast3\"}","GCLOUD_PROJECT":"girinb-runrun","EVENTARC_CLOUD_EVENT_SOURCE":"projects/girinb-runrun/locations/us-central1/functions/helloWorld"},"runtime":"nodejs18","buildEnvironmentVariables":{"GOOGLE_NODE_RUN_SCRIPTS":""},"dockerRegistry":"ARTIFACT_REGISTRY"},"versionId":"1","updateTime":"2025-05-14T14:05:09.538996132Z","buildId":"9e04218b-4d6b-4217-a6e6-85d03f15973f","sourceToken":"2d2e5813-b0dd-46a8-95d9-81d21454cae0","buildName":"projects/476799073767/locations/us-central1/builds/9e04218b-4d6b-4217-a6e6-85d03f15973f"},"done":true,"response":{"@type":"type.googleapis.com/google.cloud.functions.v1.CloudFunction","name":"projects/girinb-runrun/locations/us-central1/functions/helloWorld","httpsTrigger":{"url":"https://us-central1-girinb-runrun.cloudfunctions.net/helloWorld","securityLevel":"SECURE_ALWAYS"},"status":"ACTIVE","entryPoint":"helloWorld","timeout":"60s","availableMemoryMb":256,"serviceAccountEmail":"girinb-runrun@appspot.gserviceaccount.com","updateTime":"2025-05-14T14:03:44.320090052Z","versionId":"1","labels":{"deployment-tool":"cli-firebase","firebase-functions-hash":"14482821a43ce6b9a6304c926ea2098b230b8ab8"},"sourceUploadUrl":"https://storage.googleapis.com/uploads-352832638533.us-central1.cloudfunctions.appspot.com/ec347c6d-8533-472b-a13f-319ce9e6689e.zip","environmentVariables":{"FIREBASE_CONFIG":"{\"projectId\":\"girinb-runrun\",\"databaseURL\":\"https://girinb-runrun-default-rtdb.firebaseio.com\",\"storageBucket\":\"girinb-runrun.appspot.com\",\"locationId\":\"asia-northeast3\"}","GCLOUD_PROJECT":"girinb-runrun","EVENTARC_CLOUD_EVENT_SOURCE":"projects/girinb-runrun/locations/us-central1/functions/helloWorld"},"runtime":"nodejs18","ingressSettings":"ALLOW_ALL","buildId":"9e04218b-4d6b-4217-a6e6-85d03f15973f","buildEnvironmentVariables":{"GOOGLE_NODE_RUN_SCRIPTS":""},"buildName":"projects/476799073767/locations/us-central1/builds/9e04218b-4d6b-4217-a6e6-85d03f15973f","dockerRegistry":"ARTIFACT_REGISTRY","automaticUpdatePolicy":{},"satisfiesPzi":true}} -[debug] [2025-05-14T14:05:19.998Z] Got source token 2d2e5813-b0dd-46a8-95d9-81d21454cae0 for region us-central1 -[debug] [2025-05-14T14:05:20.000Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:05:20.000Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:05:20.000Z] >>> [apiv2][query] POST https://cloudfunctions.googleapis.com/v1/projects/girinb-runrun/locations/us-central1/functions/helloWorld:setIamPolicy [none] -[debug] [2025-05-14T14:05:20.000Z] >>> [apiv2][body] POST https://cloudfunctions.googleapis.com/v1/projects/girinb-runrun/locations/us-central1/functions/helloWorld:setIamPolicy {"policy":{"bindings":[{"role":"roles/cloudfunctions.invoker","members":["allUsers"]}],"etag":"","version":3},"updateMask":"bindings,etag,version"} -[debug] [2025-05-14T14:05:20.753Z] <<< [apiv2][status] POST https://cloudfunctions.googleapis.com/v1/projects/girinb-runrun/locations/us-central1/functions/helloWorld:setIamPolicy 200 -[debug] [2025-05-14T14:05:20.753Z] <<< [apiv2][body] POST https://cloudfunctions.googleapis.com/v1/projects/girinb-runrun/locations/us-central1/functions/helloWorld:setIamPolicy {"version":1,"etag":"BwY1GQofzPU=","bindings":[{"role":"roles/cloudfunctions.invoker","members":["allUsers"]}]} -[info] ✔ functions[helloWorld(us-central1)] Successful create operation. -[debug] [2025-05-14T14:05:20.762Z] Total Function Deployment time: 97252 -[debug] [2025-05-14T14:05:20.762Z] 1 Functions Deployed -[debug] [2025-05-14T14:05:20.762Z] 0 Functions Errored -[debug] [2025-05-14T14:05:20.762Z] 0 Function Deployments Aborted -[debug] [2025-05-14T14:05:20.762Z] Average Function Deployment time: 97251 -[info] Function URL (helloWorld(us-central1)): https://us-central1-girinb-runrun.cloudfunctions.net/helloWorld -[debug] [2025-05-14T14:05:20.978Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:05:20.978Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:05:20.978Z] >>> [apiv2][query] GET https://artifactregistry.googleapis.com/v1/projects/girinb-runrun/locations/us-central1/repositories/gcf-artifacts [none] -[debug] [2025-05-14T14:05:22.888Z] <<< [apiv2][status] GET https://artifactregistry.googleapis.com/v1/projects/girinb-runrun/locations/us-central1/repositories/gcf-artifacts 200 -[debug] [2025-05-14T14:05:22.888Z] <<< [apiv2][body] GET https://artifactregistry.googleapis.com/v1/projects/girinb-runrun/locations/us-central1/repositories/gcf-artifacts {"name":"projects/girinb-runrun/locations/us-central1/repositories/gcf-artifacts","format":"DOCKER","description":"This repository is created and used by Cloud Functions for storing function docker images.","labels":{"goog-managed-by":"cloudfunctions"},"createTime":"2024-05-03T17:21:07.731240Z","updateTime":"2025-05-14T14:04:35.363398Z","mode":"STANDARD_REPOSITORY","sizeBytes":"553470065","vulnerabilityScanningConfig":{"lastEnableTime":"2024-05-03T17:20:57.348145149Z","enablementState":"SCANNING_DISABLED","enablementStateReason":"API containerscanning.googleapis.com is not enabled."},"satisfiesPzi":true,"registryUri":"us-central1-docker.pkg.dev/girinb-runrun/gcf-artifacts"} -[warn] ⚠ functions: No cleanup policy detected for repositories in us-central1. This may result in a small monthly bill as container images accumulate over time. -[info] i functions: Configuring cleanup policy for repository in us-central1. Images older than 1 days will be automatically deleted. -[debug] [2025-05-14T14:05:28.547Z] Setting up artifact cleanup policy for region us-central1 -[debug] [2025-05-14T14:05:28.547Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:05:28.547Z] Checked if tokens are valid: true, expires at: 1747233089478 -[debug] [2025-05-14T14:05:28.548Z] >>> [apiv2][query] PATCH https://artifactregistry.googleapis.com/v1/projects/girinb-runrun/locations/us-central1/repositories/gcf-artifacts updateMask=name%2CcleanupPolicies%2CcleanupPolicyDryRun%2Clabels -[debug] [2025-05-14T14:05:28.548Z] >>> [apiv2][body] PATCH https://artifactregistry.googleapis.com/v1/projects/girinb-runrun/locations/us-central1/repositories/gcf-artifacts {"name":"projects/girinb-runrun/locations/us-central1/repositories/gcf-artifacts","cleanupPolicies":{"firebase-functions-cleanup":{"id":"firebase-functions-cleanup","condition":{"tagState":"ANY","olderThan":"86400s"},"action":"DELETE"}},"cleanupPolicyDryRun":false,"labels":{"goog-managed-by":"cloudfunctions"}} -[debug] [2025-05-14T14:05:29.749Z] <<< [apiv2][status] PATCH https://artifactregistry.googleapis.com/v1/projects/girinb-runrun/locations/us-central1/repositories/gcf-artifacts 200 -[debug] [2025-05-14T14:05:29.749Z] <<< [apiv2][body] PATCH https://artifactregistry.googleapis.com/v1/projects/girinb-runrun/locations/us-central1/repositories/gcf-artifacts {"name":"projects/girinb-runrun/locations/us-central1/repositories/gcf-artifacts","format":"DOCKER","description":"This repository is created and used by Cloud Functions for storing function docker images.","labels":{"goog-managed-by":"cloudfunctions"},"createTime":"2024-05-03T17:21:07.731240Z","updateTime":"2025-05-14T14:05:29.585787Z","mode":"STANDARD_REPOSITORY","cleanupPolicies":{"firebase-functions-cleanup":{"id":"firebase-functions-cleanup","action":"DELETE","condition":{"tagState":"ANY","olderThan":"86400s"}}},"vulnerabilityScanningConfig":{"lastEnableTime":"2024-05-03T17:20:57.348145149Z","enablementState":"SCANNING_DISABLED","enablementStateReason":"API containerscanning.googleapis.com is not enabled."},"satisfiesPzi":true} -[info] i functions: Configured cleanup policy for repository in us-central1. -[info] -[info] ✔ Deploy complete! -[info] -[info] Project Console: https://console.firebase.google.com/project/girinb-runrun/overview diff --git a/firebase.json b/firebase.json index c0377d4..5f92350 100644 --- a/firebase.json +++ b/firebase.json @@ -9,6 +9,9 @@ "firebase-debug.log", "firebase-debug.*.log", "*.local" + ], + "predeploy": [ + "npm --prefix \"$RESOURCE_DIR\" run lint" ] } ] diff --git a/functions/.eslintrc.js b/functions/.eslintrc.js new file mode 100644 index 0000000..f4cb76c --- /dev/null +++ b/functions/.eslintrc.js @@ -0,0 +1,28 @@ +module.exports = { + env: { + es6: true, + node: true, + }, + parserOptions: { + "ecmaVersion": 2018, + }, + extends: [ + "eslint:recommended", + "google", + ], + rules: { + "no-restricted-globals": ["error", "name", "length"], + "prefer-arrow-callback": "error", + "quotes": ["error", "double", {"allowTemplateLiterals": true}], + }, + overrides: [ + { + files: ["**/*.spec.*"], + env: { + mocha: true, + }, + rules: {}, + }, + ], + globals: {}, +}; diff --git a/functions/index.js b/functions/index.js index e29f456..0545453 100644 --- a/functions/index.js +++ b/functions/index.js @@ -1,7 +1,58 @@ -// functions/index.js - -const functions = require('firebase-functions'); - -exports.helloWorld = functions.https.onRequest((request, response) => { - response.send("Hello from Firebase!"); +const { onRequest } = require("firebase-functions/v2/https"); + +exports.helloWorld = onRequest((req, res) => { + const jsonData = { + "casestudy_lessons": [ + { + "lesson_id": "NZSKGBZA0YI8", + "lesson_tag": "YouTube", + "lesson_url": "https://www.youtube.com/watch?v=tgUocrkP8Es&list=PLv6KfiLx9P_1uHbOn0lNz06ZsXFRls893", + "thumbnail": "https://img.youtube.com/vi/tgUocrkP8Es/maxresdefault.jpg" + }, + { + "lesson_id": "EIUQAOS19PO9", + "lesson_tag": "YouTube", + "lesson_url": "https://www.youtube.com/watch?v=F5XLuFlhINU&list=PLv6KfiLx9P_1uHbOn0lNz06ZsXFRls893&index=2", + "thumbnail": "https://img.youtube.com/vi/F5XLuFlhINU/maxresdefault.jpg" + }, + { + "lesson_id": "W1E8UI5QEASQ", + "lesson_tag": "YouTube", + "lesson_url": "https://www.youtube.com/watch?v=pJ_X7yPI7Ow&list=PLv6KfiLx9P_1uHbOn0lNz06ZsXFRls893&index=3", + "thumbnail": "https://img.youtube.com/vi/pJ_X7yPI7Ow/maxresdefault.jpg" + }, + { + "lesson_id": "J4XJNBZ45R7Y", + "lesson_tag": "YouTube", + "lesson_url": "https://www.youtube.com/watch?v=UaJFeOPtEx8&list=PLv6KfiLx9P_1uHbOn0lNz06ZsXFRls893&index=4", + "thumbnail": "https://img.youtube.com/vi/UaJFeOPtEx8/maxresdefault.jpg" + }, + { + "lesson_id": "WC4DS2CXAWEQ", + "lesson_tag": "YouTube", + "lesson_url": "https://www.youtube.com/watch?v=LXsFOrgbg_o&list=PLv6KfiLx9P_0uFZ_xpwutLxndmeRmDYgD", + "thumbnail": "https://img.youtube.com/vi/LXsFOrgbg_o/maxresdefault.jpg" + }, + { + "lesson_id": "OXD8FLUNG28O", + "lesson_tag": "YouTube", + "lesson_url": "https://www.youtube.com/watch?v=jjm2Aabb2EE&list=PLv6KfiLx9P_0uFZ_xpwutLxndmeRmDYgD&index=2", + "thumbnail": "https://img.youtube.com/vi/jjm2Aabb2EE/maxresdefault.jpg" + }, + { + "lesson_id": "C9BPD0CCBZCU", + "lesson_tag": "영상 ID를 찾을 수 없음", + "lesson_url": null, + "thumbnail": null + }, + { + "lesson_id": "4AUOR21NV8LI", + "lesson_tag": "영상 ID를 찾을 수 없음", + "lesson_url": null, + "thumbnail": null + } + ] + }; + + res.json(jsonData); }); \ No newline at end of file diff --git a/functions/package-lock.json b/functions/package-lock.json index 83a5eee..3f58ce1 100644 --- a/functions/package-lock.json +++ b/functions/package-lock.json @@ -6,14 +6,16 @@ "": { "name": "functions", "dependencies": { - "firebase-admin": "^12.1.0", - "firebase-functions": "^5.0.0" + "firebase-admin": "^12.6.0", + "firebase-functions": "^6.0.1" }, "devDependencies": { + "eslint": "^8.15.0", + "eslint-config-google": "^0.14.0", "firebase-functions-test": "^3.1.0" }, "engines": { - "node": "18" + "node": "22" } }, "node_modules/@ampproject/remapping": { @@ -605,6 +607,133 @@ "license": "MIT", "peer": true }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz", + "integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/@eslint/eslintrc/node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@eslint/eslintrc/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", + "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, "node_modules/@fastify/busboy": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-3.1.1.tgz", @@ -817,6 +946,64 @@ "node": ">=6" } }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", + "deprecated": "Use @eslint/config-array instead", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.3", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true + }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", @@ -1221,6 +1408,41 @@ "url": "https://opencollective.com/js-sdsl" } }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/@opentelemetry/api": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz", @@ -1420,21 +1642,20 @@ } }, "node_modules/@types/express": { - "version": "4.17.3", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.3.tgz", - "integrity": "sha512-I8cGRJj3pyOLs/HndoP+25vOqhqWkAZsWMEmq1qXy/b/M3ppufecUwaK2/TVDVxcV61/iSdhykUjQQ2DLSrTdg==", - "license": "MIT", + "version": "4.17.22", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.22.tgz", + "integrity": "sha512-eZUmSnhRX9YRSkplpz0N+k6NljUUn5l3EWZIKZvYzhvMphEuNiyyy1viH/ejgt66JWgALwC/gtSUAeQKtSwW/w==", "dependencies": { "@types/body-parser": "*", - "@types/express-serve-static-core": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", "@types/serve-static": "*" } }, "node_modules/@types/express-serve-static-core": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.6.tgz", - "integrity": "sha512-3xhRnjJPkULekpSzgtoNYYcTWgEZkp4myc+Saevii5JPnHNvHMRlBSHDbs7Bh1iPPoVTERHEZXyhyLbMEsExsA==", - "license": "MIT", + "version": "4.19.6", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz", + "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==", "dependencies": { "@types/node": "*", "@types/qs": "*", @@ -1543,8 +1764,7 @@ "node_modules/@types/range-parser": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", - "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", - "license": "MIT" + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==" }, "node_modules/@types/request": { "version": "2.48.12", @@ -1614,6 +1834,12 @@ "license": "MIT", "peer": true }, + "node_modules/@ungap/structured-clone": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", + "dev": true + }, "node_modules/abort-controller": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", @@ -1640,6 +1866,27 @@ "node": ">= 0.6" } }, + "node_modules/acorn": { + "version": "8.14.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", + "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, "node_modules/agent-base": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", @@ -1650,6 +1897,22 @@ "node": ">= 14" } }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, "node_modules/ansi-escapes": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", @@ -1879,8 +2142,7 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/base64-js": { "version": "1.5.1", @@ -1943,7 +2205,6 @@ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -2066,7 +2327,6 @@ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=6" } @@ -2110,7 +2370,6 @@ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -2231,8 +2490,7 @@ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/content-disposition": { "version": "0.5.4", @@ -2320,7 +2578,6 @@ "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -2355,6 +2612,12 @@ } } }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, "node_modules/deepmerge": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", @@ -2417,6 +2680,18 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/dunder-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", @@ -2591,6 +2866,245 @@ "node": ">=8" } }, + "node_modules/eslint": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", + "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.1", + "@humanwhocodes/config-array": "^0.13.0", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-google": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/eslint-config-google/-/eslint-config-google-0.14.0.tgz", + "integrity": "sha512-WsbX4WbjuMvTdeVL6+J3rK1RGhCTqjsFjX7UMSMgZiyxxaNLkoJENbrGExzERFeoTpGw3F3FypTiWAP9ZXzkEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + }, + "peerDependencies": { + "eslint": ">=5.16.0" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/eslint/node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/eslint/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/eslint/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", @@ -2606,6 +3120,48 @@ "node": ">=4" } }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", @@ -2744,16 +3300,21 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "license": "MIT", - "optional": true + "devOptional": true, + "license": "MIT" }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true }, "node_modules/fast-xml-parser": { "version": "4.5.3", @@ -2774,6 +3335,15 @@ "fxparser": "src/cli/cli.js" } }, + "node_modules/fastq": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, "node_modules/faye-websocket": { "version": "0.11.4", "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", @@ -2797,6 +3367,18 @@ "bser": "2.1.1" } }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, "node_modules/fill-range": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", @@ -2869,15 +3451,14 @@ } }, "node_modules/firebase-functions": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/firebase-functions/-/firebase-functions-5.1.1.tgz", - "integrity": "sha512-KkyKZE98Leg/C73oRyuUYox04PQeeBThdygMfeX+7t1cmKWYKa/ZieYa89U8GHgED+0mF7m7wfNZOfbURYxIKg==", - "license": "MIT", + "version": "6.3.2", + "resolved": "https://registry.npmjs.org/firebase-functions/-/firebase-functions-6.3.2.tgz", + "integrity": "sha512-FC3A1/nhqt1ZzxRnj5HZLScQaozAcFSD/vSR8khqSoFNOfxuXgwJS6ZABTB7+v+iMD5z6Mmxw6OfqITUBuI7OQ==", "dependencies": { "@types/cors": "^2.8.5", - "@types/express": "4.17.3", + "@types/express": "^4.17.21", "cors": "^2.8.5", - "express": "^4.17.1", + "express": "^4.21.0", "protobufjs": "^7.2.2" }, "bin": { @@ -2887,7 +3468,7 @@ "node": ">=14.10.0" }, "peerDependencies": { - "firebase-admin": "^11.10.0 || ^12.0.0" + "firebase-admin": "^11.10.0 || ^12.0.0 || ^13.0.0" } }, "node_modules/firebase-functions-test": { @@ -2910,6 +3491,26 @@ "jest": ">=28.0.0" } }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "dev": true + }, "node_modules/form-data": { "version": "2.5.3", "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.3.tgz", @@ -2950,8 +3551,7 @@ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true, - "license": "ISC", - "peer": true + "license": "ISC" }, "node_modules/fsevents": { "version": "2.3.3", @@ -3121,7 +3721,6 @@ "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, "license": "ISC", - "peer": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -3137,6 +3736,18 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", @@ -3234,6 +3845,12 @@ "license": "ISC", "peer": true }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, "node_modules/gtoken": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-7.1.0.tgz", @@ -3254,7 +3871,6 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=8" } @@ -3461,6 +4077,40 @@ "node": ">=0.10.0" } }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/import-local": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", @@ -3488,7 +4138,6 @@ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=0.8.19" } @@ -3500,7 +4149,6 @@ "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", "dev": true, "license": "ISC", - "peer": true, "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -3546,6 +4194,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", @@ -3567,6 +4224,18 @@ "node": ">=6" } }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -3578,6 +4247,15 @@ "node": ">=0.12.0" } }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/is-stream": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", @@ -3596,8 +4274,7 @@ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true, - "license": "ISC", - "peer": true + "license": "ISC" }, "node_modules/istanbul-lib-coverage": { "version": "3.2.2", @@ -4397,6 +5074,12 @@ "bignumber.js": "^9.0.0" } }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", @@ -4405,6 +5088,18 @@ "license": "MIT", "peer": true }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", @@ -4509,30 +5204,6 @@ "node": ">=14" } }, - "node_modules/jwks-rsa/node_modules/@types/express": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", - "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", - "license": "MIT", - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.33", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/jwks-rsa/node_modules/@types/express-serve-static-core": { - "version": "4.19.6", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz", - "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==", - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, "node_modules/jwks-rsa/node_modules/debug": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", @@ -4567,6 +5238,15 @@ "safe-buffer": "^5.0.1" } }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, "node_modules/kleur": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", @@ -4589,6 +5269,19 @@ "node": ">=6" } }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/limiter": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.5.tgz", @@ -4672,6 +5365,12 @@ "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", "license": "MIT" }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, "node_modules/lodash.once": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", @@ -4875,7 +5574,6 @@ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "license": "ISC", - "peer": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -4894,8 +5592,7 @@ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/negotiator": { "version": "0.6.3", @@ -5047,6 +5744,23 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -5105,6 +5819,18 @@ "node": ">=6" } }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -5140,7 +5866,6 @@ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=8" } @@ -5151,7 +5876,6 @@ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=0.10.0" } @@ -5162,7 +5886,6 @@ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=8" } @@ -5228,6 +5951,15 @@ "node": ">=8" } }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/pretty-format": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", @@ -5323,6 +6055,15 @@ "node": ">= 0.10" } }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/pure-rand": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", @@ -5356,6 +6097,26 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", @@ -5496,6 +6257,55 @@ "node": ">=14" } }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -5611,7 +6421,6 @@ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "shebang-regex": "^3.0.0" }, @@ -5625,7 +6434,6 @@ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=8" } @@ -5881,7 +6689,6 @@ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=8" }, @@ -5915,7 +6722,6 @@ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -6036,6 +6842,12 @@ "node": ">=8" } }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, "node_modules/tmpl": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", @@ -6087,6 +6899,18 @@ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD" }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", @@ -6172,6 +6996,15 @@ "browserslist": ">= 4.21.0" } }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -6284,7 +7117,6 @@ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "license": "ISC", - "peer": true, "dependencies": { "isexe": "^2.0.0" }, @@ -6295,6 +7127,15 @@ "node": ">= 8" } }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", diff --git a/functions/package.json b/functions/package.json index 2e86341..b8816bd 100644 --- a/functions/package.json +++ b/functions/package.json @@ -2,6 +2,7 @@ "name": "functions", "description": "Cloud Functions for Firebase", "scripts": { + "lint": "eslint .", "serve": "firebase emulators:start --only functions", "shell": "firebase functions:shell", "start": "npm run shell", @@ -9,14 +10,16 @@ "logs": "firebase functions:log" }, "engines": { - "node": "18" + "node": "22" }, "main": "index.js", "dependencies": { - "firebase-admin": "^12.1.0", - "firebase-functions": "^5.0.0" + "firebase-admin": "^12.6.0", + "firebase-functions": "^6.0.1" }, "devDependencies": { + "eslint": "^8.15.0", + "eslint-config-google": "^0.14.0", "firebase-functions-test": "^3.1.0" }, "private": true