@firebase-function-kits/firestore-bigquery-export 0.0.2-rc.0 → 0.0.2-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,7 +1,11 @@
1
1
  {
2
2
  "name": "@firebase-function-kits/firestore-bigquery-export",
3
- "version": "0.0.2-rc.0",
4
- "repository": "firebase/extensions",
3
+ "version": "0.0.2-rc.2",
4
+ "repository": {
5
+ "type": "git",
6
+ "url": "https://github.com/firebase/extensions.git",
7
+ "directory": "kits/firestore-bigquery-export"
8
+ },
5
9
  "description": "Stream a Cloud Firestore collection to BigQuery as a deployable Firebase Function",
6
10
  "license": "Apache-2.0",
7
11
  "main": "lib/index.js",
@@ -29,8 +33,8 @@
29
33
  "dependencies": {
30
34
  "@firebaseextensions/firestore-bigquery-change-tracker": "^2.0.4",
31
35
  "@google-cloud/bigquery": "^7.6.0",
32
- "firebase-admin": "^14.1.0",
33
- "firebase-functions": "7.3.2",
36
+ "firebase-admin": "^13.6.0",
37
+ "firebase-functions": "^7.3.2",
34
38
  "generate-schema": "^2.6.0",
35
39
  "lodash": "^4.17.14"
36
40
  },
package/src/config.ts CHANGED
@@ -160,58 +160,334 @@ export interface ConfigExpressions {
160
160
  */
161
161
  const params = {
162
162
  bigqueryProjectId: defineString("BIGQUERY_PROJECT_ID", {
163
+ label: "BigQuery Project ID",
164
+ description:
165
+ "Override the default project for BigQuery instance. This can allow updates to be directed to to a BigQuery instance on another GCP project.",
166
+
163
167
  default: projectID,
164
168
  }),
165
- database: defineString("DATABASE", { default: "(default)" }),
169
+ database: defineString("DATABASE", {
170
+ label: "Firestore Instance ID",
171
+ description:
172
+ 'The Firestore database to use. Use "(default)" for the default database. You can view your available Firestore databases at https://console.cloud.google.com/firestore/databases.',
173
+ default: "(default)",
174
+ input: { text: { example: "(default)" } },
175
+ }),
166
176
  databaseRegion: defineString("DATABASE_REGION", {
167
- input: select([...DATABASE_REGION_OPTIONS]),
177
+ label: "Firestore Instance Location",
178
+ description:
179
+ "Where is the Firestore database located? You can check your current database location at https://console.cloud.google.com/firestore/databases.",
180
+
181
+ input: select({
182
+ "Multi-region (Europe - Belgium and Netherlands)": "eur3",
183
+ "Multi-region (United States)": "nam5",
184
+ "Multi-region (Iowa, North Virginia, and Oklahoma)": "nam7",
185
+ "Iowa (us-central1)": "us-central1",
186
+ "Oregon (us-west1)": "us-west1",
187
+ "Los Angeles (us-west2)": "us-west2",
188
+ "Salt Lake City (us-west3)": "us-west3",
189
+ "Las Vegas (us-west4)": "us-west4",
190
+ "South Carolina (us-east1)": "us-east1",
191
+ "Northern Virginia (us-east4)": "us-east4",
192
+ "Columbus (us-east5)": "us-east5",
193
+ "Dallas (us-south1)": "us-south1",
194
+ "Montreal (northamerica-northeast1)": "northamerica-northeast1",
195
+ "Toronto (northamerica-northeast2)": "northamerica-northeast2",
196
+ "Queretaro (northamerica-south1)": "northamerica-south1",
197
+ "Sao Paulo (southamerica-east1)": "southamerica-east1",
198
+ "Santiago (southamerica-west1)": "southamerica-west1",
199
+ "Belgium (europe-west1)": "europe-west1",
200
+ "London (europe-west2)": "europe-west2",
201
+ "Frankfurt (europe-west3)": "europe-west3",
202
+ "Netherlands (europe-west4)": "europe-west4",
203
+ "Zurich (europe-west6)": "europe-west6",
204
+ "Milan (europe-west8)": "europe-west8",
205
+ "Paris (europe-west9)": "europe-west9",
206
+ "Berlin (europe-west10)": "europe-west10",
207
+ "Turin (europe-west12)": "europe-west12",
208
+ "Madrid (europe-southwest1)": "europe-southwest1",
209
+ "Finland (europe-north1)": "europe-north1",
210
+ "Stockholm (europe-north2)": "europe-north2",
211
+ "Warsaw (europe-central2)": "europe-central2",
212
+ "Doha (me-central1)": "me-central1",
213
+ "Dammam (me-central2)": "me-central2",
214
+ "Tel Aviv (me-west1)": "me-west1",
215
+ "Mumbai (asia-south1)": "asia-south1",
216
+ "Delhi (asia-south2)": "asia-south2",
217
+ "Singapore (asia-southeast1)": "asia-southeast1",
218
+ "Jakarta (asia-southeast2)": "asia-southeast2",
219
+ "Taiwan (asia-east1)": "asia-east1",
220
+ "Hong Kong (asia-east2)": "asia-east2",
221
+ "Tokyo (asia-northeast1)": "asia-northeast1",
222
+ "Osaka (asia-northeast2)": "asia-northeast2",
223
+ "Seoul (asia-northeast3)": "asia-northeast3",
224
+ "Sydney (australia-southeast1)": "australia-southeast1",
225
+ "Melbourne (australia-southeast2)": "australia-southeast2",
226
+ "Johannesburg (africa-south1)": "africa-south1",
227
+ }),
228
+ }),
229
+ collectionPath: defineString("COLLECTION_PATH", {
230
+ label: "Collection path",
231
+ description:
232
+ "What is the path of the collection that you would like to export? You may use `{wildcard}` notation to match a subcollection of all documents in a collection (for example: `chatrooms/{chatid}/posts`). Parent Firestore Document IDs from `{wildcards}` can be returned in `path_params` as a JSON formatted string.",
233
+
234
+ default: "posts",
235
+ input: {
236
+ text: {
237
+ example: "posts",
238
+
239
+ validationRegex: /^[^\/]+(\/[^\/]+\/[^\/]+)*$/,
240
+ validationErrorMessage:
241
+ 'Firestore collection paths must be an odd number of segments separated by slashes, e.g. "path/to/collection".',
242
+ },
243
+ },
244
+ }),
245
+ datasetId: defineString("DATASET_ID", {
246
+ label: "Dataset ID",
247
+ description:
248
+ "What ID would you like to use for your BigQuery dataset? This extension will create the dataset, if it doesn't already exist.",
249
+
250
+ default: "firestore_export",
251
+ input: {
252
+ text: {
253
+ example: "firestore_export",
254
+
255
+ validationRegex: /^[a-zA-Z0-9_]+$/,
256
+ validationErrorMessage:
257
+ "BigQuery dataset IDs must be alphanumeric (plus underscores) and must be no more than 1024 characters.",
258
+ },
259
+ },
260
+ }),
261
+ tableId: defineString("TABLE_ID", {
262
+ label: "Table ID",
263
+ description:
264
+ "What identifying prefix would you like to use for your table and view inside your BigQuery dataset? This extension will create the table and view, if they don't already exist.",
265
+
266
+ default: "posts",
267
+ input: {
268
+ text: {
269
+ example: "posts",
270
+
271
+ validationRegex: /^[a-zA-Z0-9_]+$/,
272
+ validationErrorMessage:
273
+ "BigQuery table IDs must be alphanumeric (plus underscores) and must be no more than 1024 characters.",
274
+ },
275
+ },
168
276
  }),
169
- collectionPath: defineString("COLLECTION_PATH", { default: "posts" }),
170
- datasetId: defineString("DATASET_ID", { default: "firestore_export" }),
171
- tableId: defineString("TABLE_ID", { default: "posts" }),
172
277
  datasetLocation: defineString("DATASET_LOCATION", {
278
+ label: "BigQuery Dataset location",
279
+ description:
280
+ "Where do you want to deploy the BigQuery dataset created for this extension? For help selecting a location, refer to the [location selection guide](https://cloud.google.com/bigquery/docs/locations).",
281
+
173
282
  default: "us",
174
- input: select([...DATASET_LOCATION_OPTIONS]),
283
+ input: select({
284
+ "Iowa (us-central1)": "us-central1",
285
+ "Las Vegas (us-west4)": "us-west4",
286
+ "Warsaw (europe-central2)": "europe-central2",
287
+ "Los Angeles (us-west2)": "us-west2",
288
+ "Montreal (northamerica-northeast1)": "northamerica-northeast1",
289
+ "Northern Virginia (us-east4)": "us-east4",
290
+ "Oregon (us-west1)": "us-west1",
291
+ "Salt Lake City (us-west3)": "us-west3",
292
+ "Sao Paulo (southamerica-east1)": "southamerica-east1",
293
+ "South Carolina (us-east1)": "us-east1",
294
+ "Belgium (europe-west1)": "europe-west1",
295
+ "Finland (europe-north1)": "europe-north1",
296
+ "Frankfurt (europe-west3)": "europe-west3",
297
+ "London (europe-west2)": "europe-west2",
298
+ "Netherlands (europe-west4)": "europe-west4",
299
+ "Zurich (europe-west6)": "europe-west6",
300
+ "Taiwan (asia-east1)": "asia-east1",
301
+ "Hong Kong (asia-east2)": "asia-east2",
302
+ "Jakarta (asia-southeast2)": "asia-southeast2",
303
+ "Mumbai (asia-south1)": "asia-south1",
304
+ "Singapore (asia-southeast1)": "asia-southeast1",
305
+ "Osaka (asia-northeast2)": "asia-northeast2",
306
+ "Seoul (asia-northeast3)": "asia-northeast3",
307
+ "Sydney (australia-southeast1)": "australia-southeast1",
308
+ "Tokyo (asia-northeast1)": "asia-northeast1",
309
+ "United States (multi-regional)": "us",
310
+ "Europe (multi-regional)": "eu",
311
+ "Johannesburg (africa-south1)": "africa-south1",
312
+ "Tel Aviv (me-west1)": "me-west1",
313
+ "Doha (me-central1)": "me-central1",
314
+ "Dammam (me-central2)": "me-central2",
315
+ "Zürich (europe-west6)": "europe-west6",
316
+ "Turin (europe-west12)": "europe-west12",
317
+ "Stockholm (europe-north2)": "europe-north2",
318
+ "Paris (europe-west9)": "europe-west9",
319
+ "Milan (europe-west8)": "europe-west8",
320
+ "Madrid (europe-southwest1)": "europe-southwest1",
321
+ "Berlin (europe-west10)": "europe-west10",
322
+ "Melbourne (australia-southeast2)": "australia-southeast2",
323
+ "Delhi (asia-south2)": "asia-south2",
324
+ "Toronto (northamerica-northeast2)": "northamerica-northeast2",
325
+ "Santiago (southamerica-west1)": "southamerica-west1",
326
+ "Mexico (northamerica-south1)": "northamerica-south1",
327
+ "Dallas (us-south1)": "us-south1",
328
+ "Columbus, Ohio (us-east5)": "us-east5",
329
+ }),
330
+ }),
331
+ backupCollection: defineString("BACKUP_COLLECTION", {
332
+ label: "Backup Collection Name",
333
+ description:
334
+ "This (optional) parameter will allow you to specify a collection for which failed BigQuery updates will be written to.",
335
+ default: "",
336
+ }),
337
+ transformFunction: defineString("TRANSFORM_FUNCTION", {
338
+ label: "Transform function URL",
339
+ description:
340
+ "Specify a function URL to call that will transform the payload that will be written to BigQuery. See the pre-install documentation for more details.",
341
+ default: "",
342
+ input: {
343
+ text: {
344
+ example:
345
+ "https://us-west1-my-project-id.cloudfunctions.net/myTransformFunction",
346
+ },
347
+ },
175
348
  }),
176
- backupCollection: defineString("BACKUP_COLLECTION", { default: "" }),
177
- transformFunction: defineString("TRANSFORM_FUNCTION", { default: "" }),
178
349
  tablePartitioning: defineString("TABLE_PARTITIONING", {
350
+ label: "BigQuery SQL table Time Partitioning option type",
351
+ description:
352
+ "This parameter will allow you to partition the BigQuery table and BigQuery view created by the extension based on data ingestion time. You may select the granularity of partitioning based upon one of: HOUR, DAY, MONTH, YEAR. This will generate one partition per day, hour, month or year, respectively.",
353
+
179
354
  default: "NONE",
180
- input: select([...TABLE_PARTITIONING_OPTIONS]),
355
+ input: select({
356
+ hour: "HOUR",
357
+ day: "DAY",
358
+ month: "MONTH",
359
+ year: "YEAR",
360
+ none: "NONE",
361
+ }),
181
362
  }),
182
363
  timePartitioningField: defineString("TIME_PARTITIONING_FIELD", {
364
+ label: "BigQuery Time Partitioning column name",
365
+ description:
366
+ "BigQuery table column/schema field name for TimePartitioning. You can choose schema available as `timestamp` OR a new custom defined column that will be assigned to the selected Firestore Document field below. Defaults to pseudo column _PARTITIONTIME if unspecified. Cannot be changed if Table is already partitioned.",
367
+
183
368
  default: "",
184
369
  }),
185
370
  timePartitioningFieldType: defineString("TIME_PARTITIONING_FIELD_TYPE", {
371
+ label: "BigQuery SQL Time Partitioning table schema field(column) type",
372
+ description:
373
+ "Parameter for BigQuery SQL schema field type for the selected Time Partitioning Firestore Document field option. Cannot be changed if Table is already partitioned.",
374
+
186
375
  default: "omit",
187
376
  input: select([...TIME_PARTITIONING_FIELD_TYPE_OPTIONS]),
188
377
  }),
189
378
  timePartitioningFirestoreField: defineString(
190
379
  "TIME_PARTITIONING_FIRESTORE_FIELD",
191
- { default: "" }
380
+ {
381
+ label:
382
+ "Firestore Document field name for BigQuery SQL Time Partitioning field option",
383
+ description:
384
+ "This parameter will allow you to partition the BigQuery table created by the extension based on the selected Firestore Document field. The Firestore Document field value must be a top-level TIMESTAMP, DATETIME, DATE field BigQuery string format or Firestore timestamp(will be converted to BigQuery TIMESTAMP). Cannot be changed if Table is already partitioned.\n example: `postDate`(Ensure that the Firestore-BigQuery export extension\ncreates the dataset and table before initiating any backfill scripts.\n This step is crucial for the partitioning to function correctly. It is\nessential for the script to insert data into an already partitioned table.)",
385
+ default: "",
386
+ }
192
387
  ),
193
- clustering: defineString("CLUSTERING", { default: "" }),
388
+ clustering: defineString("CLUSTERING", {
389
+ label: "BigQuery SQL table clustering",
390
+ description:
391
+ "This parameter allows you to set up clustering for the BigQuery table created by the extension. Specify up to 4 comma-separated fields (for example: `data,document_id,timestamp` - no whitespaces). The order of the specified columns determines the sort order of the data. \nNote: Cluster columns must be top-level, non-repeated columns of one of the following types: BIGNUMERIC, BOOL, DATE, DATETIME, GEOGRAPHY, INT64, NUMERIC, RANGE, STRING, TIMESTAMP. Clustering will not be added if a field with an invalid type is present in this parameter.\nAvailable schema extensions table fields for clustering include: `document_id, document_name, timestamp, event_id, operation, data`.",
392
+
393
+ default: "",
394
+ input: {
395
+ text: {
396
+ example: "data,document_id,timestamp",
397
+
398
+ // Extension regex, with an empty branch added: the param is optional.
399
+ validationRegex: /^(?:[^,\s]+(?:,[^,\s]+){0,3}|)$/,
400
+ validationErrorMessage:
401
+ "No whitespaces. Max 4 fields. e.g. `data,timestamp,event_id,operation`",
402
+ },
403
+ },
404
+ }),
194
405
  wildcardIds: defineBoolean("WILDCARD_IDS", {
406
+ label: "Enable Wildcard Column field with Parent Firestore Document IDs",
407
+ description:
408
+ "If enabled, creates a column containing a JSON object of all wildcard ids from a documents path.",
409
+
195
410
  default: false,
196
411
  }),
197
412
  useNewSnapshotQuerySyntax: defineBoolean("USE_NEW_SNAPSHOT_QUERY_SYNTAX", {
413
+ label: "Use new query syntax for snapshots",
414
+ description:
415
+ "If enabled, snapshots will be generated with the new query syntax, which should be more performant, and avoid potential resource limitations.",
416
+
198
417
  default: false,
199
418
  }),
200
419
  excludeOldData: defineBoolean("EXCLUDE_OLD_DATA", {
420
+ label: "Exclude old data payloads",
421
+ description:
422
+ "If enabled, table rows will never contain old data (document snapshot before the Firestore onDocumentUpdate event: `change.before.data()`). The reduction in data should be more performant, and avoid potential resource limitations.",
423
+
201
424
  default: false,
202
425
  }),
203
426
  viewType: defineString("VIEW_TYPE", {
427
+ label: "View Type",
428
+ description:
429
+ "Select the type of view to create in BigQuery. A regular view is a virtual table defined by a SQL query. A materialized view persists the results of a query for faster access, with either incremental or non-incremental updates. Please note that materialized views in this extension come with several important caveats and limitations - carefully review the pre-install documentation before selecting these options to ensure they are appropriate for your use case.",
430
+
204
431
  default: "view",
205
- input: select([...VIEW_TYPE_OPTIONS]),
432
+ input: select({
433
+ View: "view",
434
+ "Materialized View (Incremental)": "materialized_incremental",
435
+ "Materialized View (Non-incremental)": "materialized_non_incremental",
436
+ }),
437
+ }),
438
+ maxStaleness: defineString("MAX_STALENESS", {
439
+ label: "Maximum Staleness Duration",
440
+ description:
441
+ "For materialized views only: Specifies the maximum staleness acceptable for the materialized view. Should be specified as an INTERVAL value following BigQuery SQL syntax. This parameter will only take effect if View Type is set to a materialized view option.",
442
+ default: "",
443
+ input: { text: { example: 'INTERVAL "8:0:0" HOUR TO SECOND' } },
206
444
  }),
207
- maxStaleness: defineString("MAX_STALENESS", { default: "" }),
208
445
  refreshIntervalMinutes: defineString("REFRESH_INTERVAL_MINUTES", {
446
+ label: "Refresh Interval (Minutes)",
447
+ description:
448
+ "For materialized views only: Specifies how often the materialized view should be refreshed, in minutes. This parameter will only take effect if View Type is set to a materialized view option.",
449
+
450
+ default: "",
451
+ input: {
452
+ text: {
453
+ example: "60",
454
+
455
+ // Extension regex, with an empty branch added: the param is optional.
456
+ validationRegex: /^(?:[1-9][0-9]*|)$/,
457
+ validationErrorMessage: "Must be a positive integer",
458
+ },
459
+ },
460
+ }),
461
+ kmsKeyName: defineString("KMS_KEY_NAME", {
462
+ label: "Cloud KMS key name",
463
+ description:
464
+ "Instead of Google managing the key encryption keys that protect your data, you control and manage key encryption keys in Cloud KMS. If this parameter is set, the extension will specify the KMS key name when creating the BQ table. See the PREINSTALL.md for more details.",
465
+
209
466
  default: "",
467
+ input: {
468
+ text: {
469
+ // Extension regex (unanchored, as upstream), with an empty branch
470
+ // added: the param is optional.
471
+ validationRegex:
472
+ /projects\/([^\/]+)\/locations\/([^\/]+)\/keyRings\/([^\/]+)\/cryptoKeys\/([^\/]+)|^$/,
473
+ validationErrorMessage:
474
+ "The key name must be of the format 'projects/PROJECT_NAME/locations/KEY_RING_LOCATION/keyRings/KEY_RING_ID/cryptoKeys/KEY_ID'.",
475
+ },
476
+ },
210
477
  }),
211
- kmsKeyName: defineString("KMS_KEY_NAME", { default: "" }),
212
478
  logLevel: defineString("LOG_LEVEL", {
479
+ label: "Log level",
480
+ description:
481
+ "The log level for the extension. The log level controls the verbosity of the extension's logs. The available log levels are: debug, info, warn, and error. To reduce the volume of logs, use a log level of warn or error.",
482
+
213
483
  default: "info",
214
- input: select([...LOG_LEVEL_OPTIONS]),
484
+ input: select({
485
+ Debug: "debug",
486
+ Info: "info",
487
+ Warn: "warn",
488
+ Error: "error",
489
+ Silent: "silent",
490
+ }),
215
491
  }),
216
492
  };
217
493
 
@@ -1 +1 @@
1
- {"version":"7.0.2","root":["./src/config.ts","./src/events.ts","./src/export-config.ts","./src/handlers.ts","./src/index.ts","./src/init.ts","./src/lib.ts","./src/logs.ts","./src/util.ts"],"packageJsons":["./node_modules/@firebase/app-types/package.json","./node_modules/@firebase/component/package.json","./node_modules/@firebase/database-types/package.json","./node_modules/@firebase/logger/package.json","./node_modules/@firebase/util/package.json","./node_modules/@firebaseextensions/firestore-bigquery-change-tracker/package.json","./node_modules/@google-cloud/bigquery/package.json","./node_modules/@google-cloud/common/package.json","./node_modules/@google-cloud/firestore/node_modules/@grpc/proto-loader/package.json","./node_modules/@google-cloud/firestore/node_modules/gaxios/build/esm/package.json","./node_modules/@google-cloud/firestore/node_modules/gaxios/package.json","./node_modules/@google-cloud/firestore/node_modules/gcp-metadata/package.json","./node_modules/@google-cloud/firestore/node_modules/google-auth-library/package.json","./node_modules/@google-cloud/firestore/node_modules/google-gax/package.json","./node_modules/@google-cloud/firestore/node_modules/google-logging-utils/package.json","./node_modules/@google-cloud/firestore/node_modules/gtoken/package.json","./node_modules/@google-cloud/firestore/node_modules/proto3-json-serializer/package.json","./node_modules/@google-cloud/firestore/package.json","./node_modules/@google-cloud/paginator/package.json","./node_modules/@google-cloud/precise-date/package.json","./node_modules/@grpc/grpc-js/node_modules/@grpc/proto-loader/package.json","./node_modules/@grpc/grpc-js/package.json","./node_modules/@js-sdsl/ordered-map/package.json","./node_modules/@types/body-parser/package.json","./node_modules/@types/connect/package.json","./node_modules/@types/cors/package.json","./node_modules/@types/express-serve-static-core/package.json","./node_modules/@types/http-errors/package.json","./node_modules/@types/mime/package.json","./node_modules/@types/node/package.json","./node_modules/@types/qs/package.json","./node_modules/@types/range-parser/package.json","./node_modules/@types/send/package.json","./node_modules/@types/serve-static/node_modules/@types/send/package.json","./node_modules/@types/serve-static/package.json","./node_modules/body-parser/package.json","./node_modules/cors/package.json","./node_modules/firebase-admin/package.json","./node_modules/firebase-functions/node_modules/@types/express-serve-static-core/package.json","./node_modules/firebase-functions/node_modules/@types/express/package.json","./node_modules/firebase-functions/node_modules/@types/serve-static/package.json","./node_modules/firebase-functions/node_modules/body-parser/package.json","./node_modules/firebase-functions/node_modules/express/package.json","./node_modules/firebase-functions/node_modules/send/package.json","./node_modules/firebase-functions/node_modules/serve-static/package.json","./node_modules/firebase-functions/package.json","./node_modules/gaxios/package.json","./node_modules/gcp-metadata/package.json","./node_modules/google-auth-library/package.json","./node_modules/gtoken/package.json","./node_modules/http-errors/package.json","./node_modules/long/package.json","./node_modules/long/umd/package.json","./node_modules/mime/package.json","./node_modules/protobufjs/package.json","./node_modules/qs/package.json","./node_modules/range-parser/package.json","./node_modules/send/package.json","./node_modules/string_decoder/package.json","./node_modules/teeny-request/package.json","./node_modules/undici-types/package.json","./package.json"],"missingPackageJsons":["./node_modules/@apollo/server/package.json","./node_modules/@as-integrations/express4/package.json","./node_modules/@firebase/logger/dist/package.json","./node_modules/@firebase/logger/dist/src/package.json","./node_modules/@firebase/util/dist/package.json","./node_modules/@firebaseextensions/firestore-bigquery-change-tracker/lib/bigquery/package.json","./node_modules/@firebaseextensions/firestore-bigquery-change-tracker/lib/bigquery/partitioning/package.json","./node_modules/@firebaseextensions/firestore-bigquery-change-tracker/lib/package.json","./node_modules/@firebaseextensions/firestore-bigquery-change-tracker/node_modules/@google-cloud/bigquery/package.json","./node_modules/@google-cloud/bigquery/build/package.json","./node_modules/@google-cloud/bigquery/build/src/package.json","./node_modules/@google-cloud/common/build/package.json","./node_modules/@google-cloud/common/build/src/package.json","./node_modules/@google-cloud/common/build/src/util/package.json","./node_modules/@google-cloud/firestore/node_modules/@grpc/grpc-js/build/src/client/package.json","./node_modules/@google-cloud/firestore/node_modules/@grpc/grpc-js/package.json","./node_modules/@google-cloud/firestore/node_modules/@grpc/proto-loader/build/package.json","./node_modules/@google-cloud/firestore/node_modules/@grpc/proto-loader/build/src/package.json","./node_modules/@google-cloud/firestore/node_modules/events/package.json","./node_modules/@google-cloud/firestore/node_modules/gaxios/build/cjs/package.json","./node_modules/@google-cloud/firestore/node_modules/gaxios/build/cjs/src/package.json","./node_modules/@google-cloud/firestore/node_modules/gaxios/build/esm/src/package.json","./node_modules/@google-cloud/firestore/node_modules/gaxios/build/package.json","./node_modules/@google-cloud/firestore/node_modules/gcp-metadata/build/package.json","./node_modules/@google-cloud/firestore/node_modules/gcp-metadata/build/src/package.json","./node_modules/@google-cloud/firestore/node_modules/google-auth-library/build/package.json","./node_modules/@google-cloud/firestore/node_modules/google-auth-library/build/src/auth/googleauth/package.json","./node_modules/@google-cloud/firestore/node_modules/google-auth-library/build/src/auth/package.json","./node_modules/@google-cloud/firestore/node_modules/google-auth-library/build/src/crypto/package.json","./node_modules/@google-cloud/firestore/node_modules/google-auth-library/build/src/package.json","./node_modules/@google-cloud/firestore/node_modules/google-gax/build/package.json","./node_modules/@google-cloud/firestore/node_modules/google-gax/build/protos/package.json","./node_modules/@google-cloud/firestore/node_modules/google-gax/build/src/bundlingCalls/package.json","./node_modules/@google-cloud/firestore/node_modules/google-gax/build/src/longRunningCalls/package.json","./node_modules/@google-cloud/firestore/node_modules/google-gax/build/src/normalCalls/package.json","./node_modules/@google-cloud/firestore/node_modules/google-gax/build/src/package.json","./node_modules/@google-cloud/firestore/node_modules/google-gax/build/src/paginationCalls/package.json","./node_modules/@google-cloud/firestore/node_modules/google-gax/build/src/streamingCalls/package.json","./node_modules/@google-cloud/firestore/node_modules/google-logging-utils/build/package.json","./node_modules/@google-cloud/firestore/node_modules/google-logging-utils/build/src/package.json","./node_modules/@google-cloud/firestore/node_modules/gtoken/build/cjs/package.json","./node_modules/@google-cloud/firestore/node_modules/gtoken/build/cjs/src/package.json","./node_modules/@google-cloud/firestore/node_modules/gtoken/build/package.json","./node_modules/@google-cloud/firestore/node_modules/http/package.json","./node_modules/@google-cloud/firestore/node_modules/long/package.json","./node_modules/@google-cloud/firestore/node_modules/proto3-json-serializer/build/package.json","./node_modules/@google-cloud/firestore/node_modules/proto3-json-serializer/build/src/package.json","./node_modules/@google-cloud/firestore/node_modules/protobufjs/ext/descriptor/package.json","./node_modules/@google-cloud/firestore/node_modules/protobufjs/minimal/package.json","./node_modules/@google-cloud/firestore/node_modules/protobufjs/package.json","./node_modules/@google-cloud/firestore/node_modules/querystring/package.json","./node_modules/@google-cloud/firestore/node_modules/stream/package.json","./node_modules/@google-cloud/firestore/node_modules/undici-types/package.json","./node_modules/@google-cloud/firestore/types/package.json","./node_modules/@google-cloud/firestore/types/protos/package.json","./node_modules/@google-cloud/firestore/types/v1/package.json","./node_modules/@google-cloud/firestore/types/v1beta1/package.json","./node_modules/@google-cloud/paginator/build/package.json","./node_modules/@google-cloud/paginator/build/src/package.json","./node_modules/@google-cloud/precise-date/build/package.json","./node_modules/@google-cloud/precise-date/build/src/package.json","./node_modules/@grpc/grpc-js/build/package.json","./node_modules/@grpc/grpc-js/build/src/client/package.json","./node_modules/@grpc/grpc-js/build/src/generated/google/package.json","./node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/package.json","./node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/package.json","./node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/package.json","./node_modules/@grpc/grpc-js/build/src/generated/grpc/package.json","./node_modules/@grpc/grpc-js/build/src/generated/package.json","./node_modules/@grpc/grpc-js/build/src/generated/xds/data/orca/package.json","./node_modules/@grpc/grpc-js/build/src/generated/xds/data/orca/v3/package.json","./node_modules/@grpc/grpc-js/build/src/generated/xds/data/package.json","./node_modules/@grpc/grpc-js/build/src/generated/xds/package.json","./node_modules/@grpc/grpc-js/build/src/generated/xds/service/orca/package.json","./node_modules/@grpc/grpc-js/build/src/generated/xds/service/orca/v3/package.json","./node_modules/@grpc/grpc-js/build/src/generated/xds/service/package.json","./node_modules/@grpc/grpc-js/build/src/package.json","./node_modules/@grpc/grpc-js/node_modules/@grpc/proto-loader/build/package.json","./node_modules/@grpc/grpc-js/node_modules/@grpc/proto-loader/build/src/package.json","./node_modules/@grpc/grpc-js/node_modules/@js-sdsl/ordered-map/package.json","./node_modules/@grpc/grpc-js/node_modules/events/package.json","./node_modules/@grpc/grpc-js/node_modules/http2/package.json","./node_modules/@grpc/grpc-js/node_modules/long/package.json","./node_modules/@grpc/grpc-js/node_modules/net/package.json","./node_modules/@grpc/grpc-js/node_modules/protobufjs/ext/descriptor/package.json","./node_modules/@grpc/grpc-js/node_modules/protobufjs/package.json","./node_modules/@grpc/grpc-js/node_modules/stream/package.json","./node_modules/@grpc/grpc-js/node_modules/tls/package.json","./node_modules/@js-sdsl/ordered-map/dist/esm/package.json","./node_modules/@js-sdsl/ordered-map/dist/package.json","./node_modules/@types/assert/package.json","./node_modules/@types/assert/strict/package.json","./node_modules/@types/async_hooks/package.json","./node_modules/@types/buffer/package.json","./node_modules/@types/child_process/package.json","./node_modules/@types/cluster/package.json","./node_modules/@types/console/package.json","./node_modules/@types/constants/package.json","./node_modules/@types/crypto/package.json","./node_modules/@types/dgram/package.json","./node_modules/@types/diagnostics_channel/package.json","./node_modules/@types/dns/package.json","./node_modules/@types/dns/promises/package.json","./node_modules/@types/domain/package.json","./node_modules/@types/events/package.json","./node_modules/@types/fs/package.json","./node_modules/@types/fs/promises/package.json","./node_modules/@types/http/package.json","./node_modules/@types/http2/package.json","./node_modules/@types/https/package.json","./node_modules/@types/inspector/package.json","./node_modules/@types/inspector/promises/package.json","./node_modules/@types/module/package.json","./node_modules/@types/net/package.json","./node_modules/@types/node/assert/package.json","./node_modules/@types/node/compatibility/package.json","./node_modules/@types/node/dns/package.json","./node_modules/@types/node/fs/package.json","./node_modules/@types/node/readline/package.json","./node_modules/@types/node/stream/package.json","./node_modules/@types/node/timers/package.json","./node_modules/@types/node/web-globals/package.json","./node_modules/@types/os/package.json","./node_modules/@types/path/package.json","./node_modules/@types/path/posix/package.json","./node_modules/@types/path/win32/package.json","./node_modules/@types/perf_hooks/package.json","./node_modules/@types/process/package.json","./node_modules/@types/punycode/package.json","./node_modules/@types/querystring/package.json","./node_modules/@types/readline/package.json","./node_modules/@types/readline/promises/package.json","./node_modules/@types/repl/package.json","./node_modules/@types/serve-static/node_modules/@types/fs/package.json","./node_modules/@types/serve-static/node_modules/@types/http-errors/package.json","./node_modules/@types/serve-static/node_modules/@types/http/package.json","./node_modules/@types/serve-static/node_modules/@types/mime/package.json","./node_modules/@types/serve-static/node_modules/@types/stream/package.json","./node_modules/@types/serve-static/node_modules/fs/package.json","./node_modules/@types/serve-static/node_modules/http-errors/package.json","./node_modules/@types/serve-static/node_modules/http/package.json","./node_modules/@types/serve-static/node_modules/mime/package.json","./node_modules/@types/serve-static/node_modules/send/package.json","./node_modules/@types/serve-static/node_modules/stream/package.json","./node_modules/@types/stream/consumers/package.json","./node_modules/@types/stream/package.json","./node_modules/@types/stream/promises/package.json","./node_modules/@types/stream/web/package.json","./node_modules/@types/string_decoder/package.json","./node_modules/@types/timers/package.json","./node_modules/@types/timers/promises/package.json","./node_modules/@types/tls/package.json","./node_modules/@types/trace_events/package.json","./node_modules/@types/tty/package.json","./node_modules/@types/url/package.json","./node_modules/@types/util/package.json","./node_modules/@types/util/types/package.json","./node_modules/@types/v8/package.json","./node_modules/@types/vm/package.json","./node_modules/@types/wasi/package.json","./node_modules/@types/worker_threads/package.json","./node_modules/@types/zlib/package.json","./node_modules/assert/package.json","./node_modules/assert/strict/package.json","./node_modules/async_hooks/package.json","./node_modules/buffer/package.json","./node_modules/child_process/package.json","./node_modules/cluster/package.json","./node_modules/connect/package.json","./node_modules/console/package.json","./node_modules/constants/package.json","./node_modules/crypto/package.json","./node_modules/dgram/package.json","./node_modules/diagnostics_channel/package.json","./node_modules/dns/package.json","./node_modules/dns/promises/package.json","./node_modules/domain/package.json","./node_modules/events/package.json","./node_modules/firebase-admin/app-check/package.json","./node_modules/firebase-admin/app/package.json","./node_modules/firebase-admin/auth/package.json","./node_modules/firebase-admin/database/package.json","./node_modules/firebase-admin/eventarc/package.json","./node_modules/firebase-admin/firestore/package.json","./node_modules/firebase-admin/lib/app-check/package.json","./node_modules/firebase-admin/lib/app/package.json","./node_modules/firebase-admin/lib/auth/package.json","./node_modules/firebase-admin/lib/database/package.json","./node_modules/firebase-admin/lib/eventarc/package.json","./node_modules/firebase-admin/lib/firestore/package.json","./node_modules/firebase-admin/lib/package.json","./node_modules/firebase-admin/lib/utils/package.json","./node_modules/firebase-admin/node_modules/@firebase/database-types/package.json","./node_modules/firebase-admin/node_modules/@google-cloud/firestore/package.json","./node_modules/firebase-admin/node_modules/http/package.json","./node_modules/firebase-functions/firestore/package.json","./node_modules/firebase-functions/lib/common/package.json","./node_modules/firebase-functions/lib/common/providers/package.json","./node_modules/firebase-functions/lib/lifecycle/package.json","./node_modules/firebase-functions/lib/logger/package.json","./node_modules/firebase-functions/lib/package.json","./node_modules/firebase-functions/lib/params/package.json","./node_modules/firebase-functions/lib/runtime/package.json","./node_modules/firebase-functions/lib/v1/package.json","./node_modules/firebase-functions/lib/v1/providers/package.json","./node_modules/firebase-functions/lib/v2/package.json","./node_modules/firebase-functions/lib/v2/providers/alerts/package.json","./node_modules/firebase-functions/lib/v2/providers/dataconnect/package.json","./node_modules/firebase-functions/lib/v2/providers/package.json","./node_modules/firebase-functions/node_modules/@types/async_hooks/package.json","./node_modules/firebase-functions/node_modules/@types/body-parser/package.json","./node_modules/firebase-functions/node_modules/@types/cors/package.json","./node_modules/firebase-functions/node_modules/@types/events/package.json","./node_modules/firebase-functions/node_modules/@types/firebase-admin/app-check/package.json","./node_modules/firebase-functions/node_modules/@types/firebase-admin/app/package.json","./node_modules/firebase-functions/node_modules/@types/firebase-admin/auth/package.json","./node_modules/firebase-functions/node_modules/@types/firebase-admin/database/package.json","./node_modules/firebase-functions/node_modules/@types/firebase-admin/firestore/package.json","./node_modules/firebase-functions/node_modules/@types/firebase-admin/package.json","./node_modules/firebase-functions/node_modules/@types/http-errors/package.json","./node_modules/firebase-functions/node_modules/@types/http/package.json","./node_modules/firebase-functions/node_modules/@types/qs/package.json","./node_modules/firebase-functions/node_modules/@types/range-parser/package.json","./node_modules/firebase-functions/node_modules/@types/send/package.json","./node_modules/firebase-functions/node_modules/async_hooks/package.json","./node_modules/firebase-functions/node_modules/cors/package.json","./node_modules/firebase-functions/node_modules/events/package.json","./node_modules/firebase-functions/node_modules/express-serve-static-core/package.json","./node_modules/firebase-functions/node_modules/firebase-admin/app-check/package.json","./node_modules/firebase-functions/node_modules/firebase-admin/app/package.json","./node_modules/firebase-functions/node_modules/firebase-admin/auth/package.json","./node_modules/firebase-functions/node_modules/firebase-admin/database/package.json","./node_modules/firebase-functions/node_modules/firebase-admin/firestore/package.json","./node_modules/firebase-functions/node_modules/firebase-admin/package.json","./node_modules/firebase-functions/node_modules/http-errors/package.json","./node_modules/firebase-functions/node_modules/http/package.json","./node_modules/firebase-functions/node_modules/qs/package.json","./node_modules/firebase-functions/node_modules/range-parser/package.json","./node_modules/firebase-functions/params/package.json","./node_modules/firebase-functions/tasks/package.json","./node_modules/firebase-functions/v2/lifecycle/package.json","./node_modules/firebase-functions/v2/package.json","./node_modules/fs/package.json","./node_modules/fs/promises/package.json","./node_modules/gaxios/build/package.json","./node_modules/gaxios/build/src/package.json","./node_modules/gcp-metadata/build/package.json","./node_modules/gcp-metadata/build/src/package.json","./node_modules/google-auth-library/build/package.json","./node_modules/google-auth-library/build/src/auth/package.json","./node_modules/google-auth-library/build/src/crypto/package.json","./node_modules/google-auth-library/build/src/package.json","./node_modules/graphql/package.json","./node_modules/gtoken/build/package.json","./node_modules/gtoken/build/src/package.json","./node_modules/http/package.json","./node_modules/http2/package.json","./node_modules/https/package.json","./node_modules/inspector/package.json","./node_modules/inspector/promises/package.json","./node_modules/module/package.json","./node_modules/net/package.json","./node_modules/os/package.json","./node_modules/path/package.json","./node_modules/path/posix/package.json","./node_modules/path/win32/package.json","./node_modules/perf_hooks/package.json","./node_modules/process/package.json","./node_modules/protobufjs/ext/descriptor/package.json","./node_modules/protobufjs/ext/package.json","./node_modules/protobufjs/minimal/package.json","./node_modules/punycode/package.json","./node_modules/querystring/package.json","./node_modules/readline/package.json","./node_modules/readline/promises/package.json","./node_modules/repl/package.json","./node_modules/stream/consumers/package.json","./node_modules/stream/package.json","./node_modules/stream/promises/package.json","./node_modules/stream/web/package.json","./node_modules/teeny-request/build/package.json","./node_modules/teeny-request/build/src/package.json","./node_modules/teeny-request/node_modules/http/package.json","./node_modules/teeny-request/node_modules/https/package.json","./node_modules/teeny-request/node_modules/stream/package.json","./node_modules/timers/package.json","./node_modules/timers/promises/package.json","./node_modules/tls/package.json","./node_modules/trace_events/package.json","./node_modules/tty/package.json","./node_modules/url/package.json","./node_modules/util/package.json","./node_modules/util/types/package.json","./node_modules/v8/package.json","./node_modules/vm/package.json","./node_modules/wasi/package.json","./node_modules/worker_threads/package.json","./node_modules/zlib/package.json"]}
1
+ {"version":"7.0.2","root":["./src/config.ts","./src/events.ts","./src/export-config.ts","./src/handlers.ts","./src/index.ts","./src/init.ts","./src/lib.ts","./src/logs.ts","./src/util.ts"],"packageJsons":["./node_modules/@firebase/app-types/package.json","./node_modules/@firebase/component/package.json","./node_modules/@firebase/database-types/package.json","./node_modules/@firebase/logger/package.json","./node_modules/@firebase/util/package.json","./node_modules/@firebaseextensions/firestore-bigquery-change-tracker/package.json","./node_modules/@google-cloud/bigquery/package.json","./node_modules/@google-cloud/common/package.json","./node_modules/@google-cloud/firestore/package.json","./node_modules/@google-cloud/paginator/package.json","./node_modules/@google-cloud/precise-date/package.json","./node_modules/@grpc/grpc-js/node_modules/@grpc/proto-loader/package.json","./node_modules/@grpc/grpc-js/package.json","./node_modules/@grpc/proto-loader/package.json","./node_modules/@js-sdsl/ordered-map/package.json","./node_modules/@types/body-parser/package.json","./node_modules/@types/connect/package.json","./node_modules/@types/cors/package.json","./node_modules/@types/express-serve-static-core/package.json","./node_modules/@types/express/package.json","./node_modules/@types/http-errors/package.json","./node_modules/@types/node/package.json","./node_modules/@types/qs/package.json","./node_modules/@types/range-parser/package.json","./node_modules/@types/send/package.json","./node_modules/@types/serve-static/package.json","./node_modules/abort-controller/package.json","./node_modules/body-parser/package.json","./node_modules/cors/package.json","./node_modules/event-target-shim/package.json","./node_modules/express/package.json","./node_modules/firebase-admin/package.json","./node_modules/firebase-functions/package.json","./node_modules/gaxios/package.json","./node_modules/gcp-metadata/package.json","./node_modules/google-auth-library/package.json","./node_modules/google-gax/package.json","./node_modules/gtoken/package.json","./node_modules/http-errors/package.json","./node_modules/long/package.json","./node_modules/long/umd/package.json","./node_modules/proto3-json-serializer/package.json","./node_modules/protobufjs/package.json","./node_modules/qs/package.json","./node_modules/range-parser/package.json","./node_modules/send/package.json","./node_modules/serve-static/package.json","./node_modules/string_decoder/package.json","./node_modules/teeny-request/package.json","./node_modules/undici-types/package.json","./package.json"],"missingPackageJsons":["./node_modules/@apollo/server/package.json","./node_modules/@as-integrations/express4/package.json","./node_modules/@firebase/logger/dist/package.json","./node_modules/@firebase/logger/dist/src/package.json","./node_modules/@firebase/util/dist/package.json","./node_modules/@firebaseextensions/firestore-bigquery-change-tracker/lib/bigquery/package.json","./node_modules/@firebaseextensions/firestore-bigquery-change-tracker/lib/bigquery/partitioning/package.json","./node_modules/@firebaseextensions/firestore-bigquery-change-tracker/lib/package.json","./node_modules/@firebaseextensions/firestore-bigquery-change-tracker/node_modules/@google-cloud/bigquery/package.json","./node_modules/@firebaseextensions/firestore-bigquery-change-tracker/node_modules/@types/google-cloud__bigquery/package.json","./node_modules/@google-cloud/bigquery/build/package.json","./node_modules/@google-cloud/bigquery/build/src/package.json","./node_modules/@google-cloud/common/build/package.json","./node_modules/@google-cloud/common/build/src/package.json","./node_modules/@google-cloud/common/build/src/util/package.json","./node_modules/@google-cloud/firestore/types/package.json","./node_modules/@google-cloud/firestore/types/protos/package.json","./node_modules/@google-cloud/firestore/types/v1/package.json","./node_modules/@google-cloud/firestore/types/v1beta1/package.json","./node_modules/@google-cloud/paginator/build/package.json","./node_modules/@google-cloud/paginator/build/src/package.json","./node_modules/@google-cloud/precise-date/build/package.json","./node_modules/@google-cloud/precise-date/build/src/package.json","./node_modules/@grpc/grpc-js/build/package.json","./node_modules/@grpc/grpc-js/build/src/client/package.json","./node_modules/@grpc/grpc-js/build/src/generated/google/package.json","./node_modules/@grpc/grpc-js/build/src/generated/google/protobuf/package.json","./node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/package.json","./node_modules/@grpc/grpc-js/build/src/generated/grpc/channelz/v1/package.json","./node_modules/@grpc/grpc-js/build/src/generated/grpc/package.json","./node_modules/@grpc/grpc-js/build/src/generated/package.json","./node_modules/@grpc/grpc-js/build/src/generated/xds/data/orca/package.json","./node_modules/@grpc/grpc-js/build/src/generated/xds/data/orca/v3/package.json","./node_modules/@grpc/grpc-js/build/src/generated/xds/data/package.json","./node_modules/@grpc/grpc-js/build/src/generated/xds/package.json","./node_modules/@grpc/grpc-js/build/src/generated/xds/service/orca/package.json","./node_modules/@grpc/grpc-js/build/src/generated/xds/service/orca/v3/package.json","./node_modules/@grpc/grpc-js/build/src/generated/xds/service/package.json","./node_modules/@grpc/grpc-js/build/src/package.json","./node_modules/@grpc/grpc-js/node_modules/@grpc/proto-loader/build/package.json","./node_modules/@grpc/grpc-js/node_modules/@grpc/proto-loader/build/src/package.json","./node_modules/@grpc/grpc-js/node_modules/@js-sdsl/ordered-map/package.json","./node_modules/@grpc/grpc-js/node_modules/events/package.json","./node_modules/@grpc/grpc-js/node_modules/http2/package.json","./node_modules/@grpc/grpc-js/node_modules/long/package.json","./node_modules/@grpc/grpc-js/node_modules/net/package.json","./node_modules/@grpc/grpc-js/node_modules/protobufjs/ext/descriptor/package.json","./node_modules/@grpc/grpc-js/node_modules/protobufjs/package.json","./node_modules/@grpc/grpc-js/node_modules/stream/package.json","./node_modules/@grpc/grpc-js/node_modules/tls/package.json","./node_modules/@grpc/proto-loader/build/package.json","./node_modules/@grpc/proto-loader/build/src/package.json","./node_modules/@js-sdsl/ordered-map/dist/esm/package.json","./node_modules/@js-sdsl/ordered-map/dist/package.json","./node_modules/@types/assert/package.json","./node_modules/@types/assert/strict/package.json","./node_modules/@types/async_hooks/package.json","./node_modules/@types/buffer/package.json","./node_modules/@types/child_process/package.json","./node_modules/@types/cluster/package.json","./node_modules/@types/console/package.json","./node_modules/@types/constants/package.json","./node_modules/@types/crypto/package.json","./node_modules/@types/dgram/package.json","./node_modules/@types/diagnostics_channel/package.json","./node_modules/@types/dns/package.json","./node_modules/@types/dns/promises/package.json","./node_modules/@types/domain/package.json","./node_modules/@types/events/package.json","./node_modules/@types/fs/package.json","./node_modules/@types/fs/promises/package.json","./node_modules/@types/http/package.json","./node_modules/@types/http2/package.json","./node_modules/@types/https/package.json","./node_modules/@types/inspector/package.json","./node_modules/@types/inspector/promises/package.json","./node_modules/@types/module/package.json","./node_modules/@types/net/package.json","./node_modules/@types/node/assert/package.json","./node_modules/@types/node/dns/package.json","./node_modules/@types/node/fs/package.json","./node_modules/@types/node/inspector/package.json","./node_modules/@types/node/path/package.json","./node_modules/@types/node/readline/package.json","./node_modules/@types/node/stream/package.json","./node_modules/@types/node/test/package.json","./node_modules/@types/node/timers/package.json","./node_modules/@types/node/util/package.json","./node_modules/@types/node/web-globals/package.json","./node_modules/@types/node/zlib/package.json","./node_modules/@types/os/package.json","./node_modules/@types/path/package.json","./node_modules/@types/path/posix/package.json","./node_modules/@types/path/win32/package.json","./node_modules/@types/perf_hooks/package.json","./node_modules/@types/process/package.json","./node_modules/@types/punycode/package.json","./node_modules/@types/querystring/package.json","./node_modules/@types/readline/package.json","./node_modules/@types/readline/promises/package.json","./node_modules/@types/repl/package.json","./node_modules/@types/stream/consumers/package.json","./node_modules/@types/stream/iter/package.json","./node_modules/@types/stream/package.json","./node_modules/@types/stream/promises/package.json","./node_modules/@types/stream/web/package.json","./node_modules/@types/string_decoder/package.json","./node_modules/@types/timers/package.json","./node_modules/@types/timers/promises/package.json","./node_modules/@types/tls/package.json","./node_modules/@types/trace_events/package.json","./node_modules/@types/tty/package.json","./node_modules/@types/url/package.json","./node_modules/@types/util/package.json","./node_modules/@types/util/types/package.json","./node_modules/@types/v8/package.json","./node_modules/@types/vm/package.json","./node_modules/@types/wasi/package.json","./node_modules/@types/worker_threads/package.json","./node_modules/@types/zlib/package.json","./node_modules/abort-controller/dist/package.json","./node_modules/assert/package.json","./node_modules/assert/strict/package.json","./node_modules/async_hooks/package.json","./node_modules/buffer/package.json","./node_modules/child_process/package.json","./node_modules/cluster/package.json","./node_modules/connect/package.json","./node_modules/console/package.json","./node_modules/constants/package.json","./node_modules/crypto/package.json","./node_modules/dgram/package.json","./node_modules/diagnostics_channel/package.json","./node_modules/dns/package.json","./node_modules/dns/promises/package.json","./node_modules/domain/package.json","./node_modules/events/package.json","./node_modules/express-serve-static-core/package.json","./node_modules/firebase-admin/app-check/package.json","./node_modules/firebase-admin/app/package.json","./node_modules/firebase-admin/auth/package.json","./node_modules/firebase-admin/database/package.json","./node_modules/firebase-admin/eventarc/package.json","./node_modules/firebase-admin/firestore/package.json","./node_modules/firebase-admin/lib/app-check/package.json","./node_modules/firebase-admin/lib/app/package.json","./node_modules/firebase-admin/lib/auth/package.json","./node_modules/firebase-admin/lib/database/package.json","./node_modules/firebase-admin/lib/eventarc/package.json","./node_modules/firebase-admin/lib/firestore/package.json","./node_modules/firebase-admin/lib/messaging/package.json","./node_modules/firebase-admin/lib/package.json","./node_modules/firebase-admin/lib/utils/package.json","./node_modules/firebase-admin/node_modules/@firebase/database-types/package.json","./node_modules/firebase-admin/node_modules/@google-cloud/firestore/package.json","./node_modules/firebase-admin/node_modules/http/package.json","./node_modules/firebase-functions/firestore/package.json","./node_modules/firebase-functions/lib/common/package.json","./node_modules/firebase-functions/lib/common/providers/package.json","./node_modules/firebase-functions/lib/lifecycle/package.json","./node_modules/firebase-functions/lib/logger/package.json","./node_modules/firebase-functions/lib/package.json","./node_modules/firebase-functions/lib/params/package.json","./node_modules/firebase-functions/lib/runtime/package.json","./node_modules/firebase-functions/lib/v1/package.json","./node_modules/firebase-functions/lib/v1/providers/package.json","./node_modules/firebase-functions/lib/v2/package.json","./node_modules/firebase-functions/lib/v2/providers/alerts/package.json","./node_modules/firebase-functions/lib/v2/providers/dataconnect/package.json","./node_modules/firebase-functions/lib/v2/providers/package.json","./node_modules/firebase-functions/params/package.json","./node_modules/firebase-functions/tasks/package.json","./node_modules/firebase-functions/v2/lifecycle/package.json","./node_modules/firebase-functions/v2/package.json","./node_modules/fs/package.json","./node_modules/fs/promises/package.json","./node_modules/gaxios/build/package.json","./node_modules/gaxios/build/src/package.json","./node_modules/gcp-metadata/build/package.json","./node_modules/gcp-metadata/build/src/package.json","./node_modules/google-auth-library/build/package.json","./node_modules/google-auth-library/build/src/auth/googleauth/package.json","./node_modules/google-auth-library/build/src/auth/package.json","./node_modules/google-auth-library/build/src/crypto/package.json","./node_modules/google-auth-library/build/src/package.json","./node_modules/google-gax/build/package.json","./node_modules/google-gax/build/protos/package.json","./node_modules/google-gax/build/src/bundlingCalls/package.json","./node_modules/google-gax/build/src/longRunningCalls/package.json","./node_modules/google-gax/build/src/normalCalls/package.json","./node_modules/google-gax/build/src/package.json","./node_modules/google-gax/build/src/paginationCalls/package.json","./node_modules/google-gax/build/src/streamingCalls/package.json","./node_modules/graphql/package.json","./node_modules/gtoken/build/package.json","./node_modules/gtoken/build/src/package.json","./node_modules/http/package.json","./node_modules/http2/package.json","./node_modules/https/package.json","./node_modules/inspector/package.json","./node_modules/inspector/promises/package.json","./node_modules/module/package.json","./node_modules/net/package.json","./node_modules/os/package.json","./node_modules/path/package.json","./node_modules/path/posix/package.json","./node_modules/path/win32/package.json","./node_modules/perf_hooks/package.json","./node_modules/process/package.json","./node_modules/proto3-json-serializer/build/package.json","./node_modules/proto3-json-serializer/build/src/package.json","./node_modules/protobufjs/ext/descriptor/package.json","./node_modules/protobufjs/ext/package.json","./node_modules/protobufjs/minimal/package.json","./node_modules/punycode/package.json","./node_modules/querystring/package.json","./node_modules/readline/package.json","./node_modules/readline/promises/package.json","./node_modules/repl/package.json","./node_modules/stream/consumers/package.json","./node_modules/stream/iter/package.json","./node_modules/stream/package.json","./node_modules/stream/promises/package.json","./node_modules/stream/web/package.json","./node_modules/teeny-request/build/package.json","./node_modules/teeny-request/build/src/package.json","./node_modules/teeny-request/node_modules/http/package.json","./node_modules/teeny-request/node_modules/https/package.json","./node_modules/teeny-request/node_modules/stream/package.json","./node_modules/timers/package.json","./node_modules/timers/promises/package.json","./node_modules/tls/package.json","./node_modules/trace_events/package.json","./node_modules/tty/package.json","./node_modules/url/package.json","./node_modules/util/package.json","./node_modules/util/types/package.json","./node_modules/v8/package.json","./node_modules/vm/package.json","./node_modules/wasi/package.json","./node_modules/worker_threads/package.json","./node_modules/zlib/package.json"]}