@firebaseextensions/firestore-bigquery-change-tracker 1.1.39 → 1.1.40

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.
@@ -1,5 +1,6 @@
1
1
  import * as bigquery from "@google-cloud/bigquery";
2
2
  import { FirestoreEventHistoryTracker, FirestoreDocumentChangeEvent } from "../tracker";
3
+ import { LogLevel } from "../logger";
3
4
  export { RawChangelogSchema, RawChangelogViewSchema } from "./schema";
4
5
  export interface FirestoreBigQueryEventHistoryTrackerConfig {
5
6
  datasetId: string;
@@ -22,6 +23,7 @@ export interface FirestoreBigQueryEventHistoryTrackerConfig {
22
23
  useIncrementalMaterializedView?: boolean;
23
24
  maxStaleness?: string;
24
25
  refreshIntervalMinutes?: number;
26
+ logLevel?: LogLevel | string;
25
27
  }
26
28
  /**
27
29
  * An FirestoreEventHistoryTracker that exports data to BigQuery.
@@ -14,6 +14,7 @@ const clustering_1 = require("./clustering");
14
14
  const checkUpdates_1 = require("./checkUpdates");
15
15
  const utils_1 = require("./utils");
16
16
  const initializeLatestView_1 = require("./initializeLatestView");
17
+ const logger_1 = require("../logger");
17
18
  var schema_2 = require("./schema");
18
19
  Object.defineProperty(exports, "RawChangelogSchema", { enumerable: true, get: function () { return schema_2.RawChangelogSchema; } });
19
20
  Object.defineProperty(exports, "RawChangelogViewSchema", { enumerable: true, get: function () { return schema_2.RawChangelogViewSchema; } });
@@ -35,6 +36,7 @@ class FirestoreBigQueryEventHistoryTracker {
35
36
  if (!this.config.datasetLocation) {
36
37
  this.config.datasetLocation = "us";
37
38
  }
39
+ logger_1.logger.setLogLevel(this.config.logLevel || logger_1.LogLevel.INFO);
38
40
  }
39
41
  async record(events) {
40
42
  if (!this.config.skipInit) {
package/lib/index.d.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  export { FirestoreBigQueryEventHistoryTracker, RawChangelogSchema, RawChangelogViewSchema, } from "./bigquery";
2
2
  export { ChangeType, FirestoreDocumentChangeEvent, FirestoreEventHistoryTracker, } from "./tracker";
3
+ export { LogLevel, Logger } from "./logger";
package/lib/index.js CHANGED
@@ -15,10 +15,13 @@
15
15
  * limitations under the License.
16
16
  */
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.ChangeType = exports.RawChangelogViewSchema = exports.RawChangelogSchema = exports.FirestoreBigQueryEventHistoryTracker = void 0;
18
+ exports.Logger = exports.LogLevel = exports.ChangeType = exports.RawChangelogViewSchema = exports.RawChangelogSchema = exports.FirestoreBigQueryEventHistoryTracker = void 0;
19
19
  var bigquery_1 = require("./bigquery");
20
20
  Object.defineProperty(exports, "FirestoreBigQueryEventHistoryTracker", { enumerable: true, get: function () { return bigquery_1.FirestoreBigQueryEventHistoryTracker; } });
21
21
  Object.defineProperty(exports, "RawChangelogSchema", { enumerable: true, get: function () { return bigquery_1.RawChangelogSchema; } });
22
22
  Object.defineProperty(exports, "RawChangelogViewSchema", { enumerable: true, get: function () { return bigquery_1.RawChangelogViewSchema; } });
23
23
  var tracker_1 = require("./tracker");
24
24
  Object.defineProperty(exports, "ChangeType", { enumerable: true, get: function () { return tracker_1.ChangeType; } });
25
+ var logger_1 = require("./logger");
26
+ Object.defineProperty(exports, "LogLevel", { enumerable: true, get: function () { return logger_1.LogLevel; } });
27
+ Object.defineProperty(exports, "Logger", { enumerable: true, get: function () { return logger_1.Logger; } });
@@ -0,0 +1,19 @@
1
+ export declare enum LogLevel {
2
+ DEBUG = "debug",
3
+ INFO = "info",
4
+ WARN = "warn",
5
+ ERROR = "error",
6
+ SILENT = "silent"
7
+ }
8
+ export declare class Logger {
9
+ private logLevel;
10
+ constructor(logLevel?: LogLevel | string);
11
+ setLogLevel(logLevel: LogLevel | string): void;
12
+ debug(...args: any[]): void;
13
+ info(...args: any[]): void;
14
+ warn(...args: any[]): void;
15
+ error(...args: any[]): void;
16
+ log(...args: any[]): void;
17
+ private runIfLogLevel;
18
+ }
19
+ export declare const logger: Logger;
package/lib/logger.js ADDED
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.logger = exports.Logger = exports.LogLevel = void 0;
4
+ /*
5
+ * Copyright 2019 Google LLC
6
+ *
7
+ * Licensed under the Apache License, Version 2.0 (the "License");
8
+ * you may not use this file except in compliance with the License.
9
+ * You may obtain a copy of the License at
10
+ *
11
+ * https://www.apache.org/licenses/LICENSE-2.0
12
+ *
13
+ * Unless required by applicable law or agreed to in writing, software
14
+ * distributed under the License is distributed on an "AS IS" BASIS,
15
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ * See the License for the specific language governing permissions and
17
+ * limitations under the License.
18
+ */
19
+ const firebase_functions_1 = require("firebase-functions");
20
+ var LogLevel;
21
+ (function (LogLevel) {
22
+ LogLevel["DEBUG"] = "debug";
23
+ LogLevel["INFO"] = "info";
24
+ LogLevel["WARN"] = "warn";
25
+ LogLevel["ERROR"] = "error";
26
+ LogLevel["SILENT"] = "silent";
27
+ })(LogLevel = exports.LogLevel || (exports.LogLevel = {}));
28
+ const levels = {
29
+ debug: 0,
30
+ info: 1,
31
+ warn: 2,
32
+ error: 3,
33
+ silent: 4,
34
+ };
35
+ class Logger {
36
+ constructor(logLevel = LogLevel.INFO) {
37
+ this.setLogLevel(logLevel);
38
+ }
39
+ setLogLevel(logLevel) {
40
+ if (typeof logLevel === "string") {
41
+ this.logLevel = levels[logLevel] ?? levels.info;
42
+ }
43
+ else {
44
+ this.logLevel = levels[logLevel];
45
+ }
46
+ }
47
+ debug(...args) {
48
+ this.runIfLogLevel(levels.debug, firebase_functions_1.logger.debug, ...args);
49
+ }
50
+ info(...args) {
51
+ this.runIfLogLevel(levels.info, firebase_functions_1.logger.info, ...args);
52
+ }
53
+ warn(...args) {
54
+ this.runIfLogLevel(levels.warn, firebase_functions_1.logger.warn, ...args);
55
+ }
56
+ error(...args) {
57
+ this.runIfLogLevel(levels.error, firebase_functions_1.logger.error, ...args);
58
+ }
59
+ log(...args) {
60
+ this.info(...args);
61
+ }
62
+ runIfLogLevel(level, func, ...args) {
63
+ if (this.logLevel <= level) {
64
+ func(...args);
65
+ }
66
+ }
67
+ }
68
+ exports.Logger = Logger;
69
+ exports.logger = new Logger();
package/lib/logs.js CHANGED
@@ -16,208 +16,208 @@
16
16
  */
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.updatingMetadata = exports.failedToInitializeWait = exports.tableCreationError = exports.invalidClustering = exports.invalidClusteringTypes = exports.hourAndDatePartitioningWarning = exports.invalidTableReference = exports.invalidProjectIdWarning = exports.cannotPartitionExistingTable = exports.removedClustering = exports.updatedClustering = exports.bigQueryTableInsertErrors = exports.firestoreTimePartitioningParametersWarning = exports.firestoreTimePartitionFieldError = exports.addPartitionFieldColumn = exports.addNewColumn = exports.timestampMissingValue = exports.error = exports.dataTypeInvalid = exports.dataInserting = exports.dataInsertRetried = exports.dataInserted = exports.complete = exports.bigQueryViewValidating = exports.bigQueryViewValidated = exports.bigQueryViewUpToDate = exports.bigQueryViewUpdating = exports.bigQueryViewUpdated = exports.bigQueryViewAlreadyExists = exports.bigQueryViewCreating = exports.bigQueryViewCreated = exports.bigQueryUserDefinedFunctionCreated = exports.bigQueryUserDefinedFunctionCreating = exports.bigQueryTableValidating = exports.bigQueryTableValidated = exports.bigQueryTableUpToDate = exports.bigQueryTableUpdating = exports.bigQueryTableUpdated = exports.bigQueryTableCreating = exports.bigQueryTableCreated = exports.bigQueryTableAlreadyExists = exports.bigQuerySchemaViewCreated = exports.bigQueryLatestSnapshotViewQueryCreated = exports.bigQueryErrorRecordingDocumentChange = exports.bigQueryDatasetExists = exports.bigQueryDatasetCreating = exports.bigQueryDatasetCreated = exports.arrayFieldInvalid = void 0;
19
- const firebase_functions_1 = require("firebase-functions");
19
+ const logger_1 = require("./logger");
20
20
  const arrayFieldInvalid = (fieldName) => {
21
- firebase_functions_1.logger.warn(`Array field '${fieldName}' does not contain an array, skipping`);
21
+ logger_1.logger.warn(`Array field '${fieldName}' does not contain an array, skipping`);
22
22
  };
23
23
  exports.arrayFieldInvalid = arrayFieldInvalid;
24
24
  const bigQueryDatasetCreated = (datasetId) => {
25
- firebase_functions_1.logger.log(`Created BigQuery dataset: ${datasetId}`);
25
+ logger_1.logger.info(`Created BigQuery dataset: ${datasetId}`);
26
26
  };
27
27
  exports.bigQueryDatasetCreated = bigQueryDatasetCreated;
28
28
  const bigQueryDatasetCreating = (datasetId) => {
29
- firebase_functions_1.logger.log(`Creating BigQuery dataset: ${datasetId}`);
29
+ logger_1.logger.debug(`Creating BigQuery dataset: ${datasetId}`);
30
30
  };
31
31
  exports.bigQueryDatasetCreating = bigQueryDatasetCreating;
32
32
  const bigQueryDatasetExists = (datasetId) => {
33
- firebase_functions_1.logger.log(`BigQuery dataset already exists: ${datasetId}`);
33
+ logger_1.logger.info(`BigQuery dataset already exists: ${datasetId}`);
34
34
  };
35
35
  exports.bigQueryDatasetExists = bigQueryDatasetExists;
36
36
  const bigQueryErrorRecordingDocumentChange = (e) => {
37
- firebase_functions_1.logger.error(`Error recording document changes.`, e);
37
+ logger_1.logger.error(`Error recording document changes.`, e);
38
38
  };
39
39
  exports.bigQueryErrorRecordingDocumentChange = bigQueryErrorRecordingDocumentChange;
40
40
  const bigQueryLatestSnapshotViewQueryCreated = (query) => {
41
- firebase_functions_1.logger.log(`BigQuery latest snapshot view query:\n${query}`);
41
+ logger_1.logger.debug(`BigQuery latest snapshot view query:\n${query}`);
42
42
  };
43
43
  exports.bigQueryLatestSnapshotViewQueryCreated = bigQueryLatestSnapshotViewQueryCreated;
44
44
  const bigQuerySchemaViewCreated = (name) => {
45
- firebase_functions_1.logger.log(`BigQuery created schema view ${name}\n`);
45
+ logger_1.logger.debug(`BigQuery created schema view ${name}\n`);
46
46
  };
47
47
  exports.bigQuerySchemaViewCreated = bigQuerySchemaViewCreated;
48
48
  const bigQueryTableAlreadyExists = (tableName, datasetName) => {
49
- firebase_functions_1.logger.log(`BigQuery table with name ${tableName} already ` +
49
+ logger_1.logger.debug(`BigQuery table with name ${tableName} already ` +
50
50
  `exists in dataset ${datasetName}!`);
51
51
  };
52
52
  exports.bigQueryTableAlreadyExists = bigQueryTableAlreadyExists;
53
53
  const bigQueryTableCreated = (tableName) => {
54
- firebase_functions_1.logger.log(`Created BigQuery table: ${tableName}`);
54
+ logger_1.logger.info(`Created BigQuery table: ${tableName}`);
55
55
  };
56
56
  exports.bigQueryTableCreated = bigQueryTableCreated;
57
57
  const bigQueryTableCreating = (tableName) => {
58
- firebase_functions_1.logger.log(`Creating BigQuery table: ${tableName}`);
58
+ logger_1.logger.debug(`Creating BigQuery table: ${tableName}`);
59
59
  };
60
60
  exports.bigQueryTableCreating = bigQueryTableCreating;
61
61
  const bigQueryTableUpdated = (tableName) => {
62
- firebase_functions_1.logger.log(`Updated existing BigQuery table: ${tableName}`);
62
+ logger_1.logger.info(`Updated existing BigQuery table: ${tableName}`);
63
63
  };
64
64
  exports.bigQueryTableUpdated = bigQueryTableUpdated;
65
65
  const bigQueryTableUpdating = (tableName) => {
66
- firebase_functions_1.logger.log(`Updating existing BigQuery table: ${tableName}`);
66
+ logger_1.logger.debug(`Updating existing BigQuery table: ${tableName}`);
67
67
  };
68
68
  exports.bigQueryTableUpdating = bigQueryTableUpdating;
69
69
  const bigQueryTableUpToDate = (tableName) => {
70
- firebase_functions_1.logger.log(`BigQuery table: ${tableName} is up to date`);
70
+ logger_1.logger.info(`BigQuery table: ${tableName} is up to date`);
71
71
  };
72
72
  exports.bigQueryTableUpToDate = bigQueryTableUpToDate;
73
73
  const bigQueryTableValidated = (tableName) => {
74
- firebase_functions_1.logger.log(`Validated existing BigQuery table: ${tableName}`);
74
+ logger_1.logger.info(`Validated existing BigQuery table: ${tableName}`);
75
75
  };
76
76
  exports.bigQueryTableValidated = bigQueryTableValidated;
77
77
  const bigQueryTableValidating = (tableName) => {
78
- firebase_functions_1.logger.log(`Validating existing BigQuery table: ${tableName}`);
78
+ logger_1.logger.debug(`Validating existing BigQuery table: ${tableName}`);
79
79
  };
80
80
  exports.bigQueryTableValidating = bigQueryTableValidating;
81
81
  const bigQueryUserDefinedFunctionCreating = (functionName) => {
82
- firebase_functions_1.logger.log(`Creating BigQuery user-defined function ${functionName}`);
82
+ logger_1.logger.debug(`Creating BigQuery user-defined function ${functionName}`);
83
83
  };
84
84
  exports.bigQueryUserDefinedFunctionCreating = bigQueryUserDefinedFunctionCreating;
85
85
  const bigQueryUserDefinedFunctionCreated = (functionName) => {
86
- firebase_functions_1.logger.log(`Created BigQuery user-defined function ${functionName}`);
86
+ logger_1.logger.info(`Created BigQuery user-defined function ${functionName}`);
87
87
  };
88
88
  exports.bigQueryUserDefinedFunctionCreated = bigQueryUserDefinedFunctionCreated;
89
89
  const bigQueryViewCreated = (viewName) => {
90
- firebase_functions_1.logger.log(`Created BigQuery view: ${viewName}`);
90
+ logger_1.logger.info(`Created BigQuery view: ${viewName}`);
91
91
  };
92
92
  exports.bigQueryViewCreated = bigQueryViewCreated;
93
93
  const bigQueryViewCreating = (viewName, query) => {
94
- firebase_functions_1.logger.log(`Creating BigQuery view: ${viewName}\nQuery:\n${query}`);
94
+ logger_1.logger.debug(`Creating BigQuery view: ${viewName}\nQuery:\n${query}`);
95
95
  };
96
96
  exports.bigQueryViewCreating = bigQueryViewCreating;
97
97
  const bigQueryViewAlreadyExists = (viewName, datasetName) => {
98
- firebase_functions_1.logger.log(`View with id ${viewName} already exists in dataset ${datasetName}.`);
98
+ logger_1.logger.info(`View with id ${viewName} already exists in dataset ${datasetName}.`);
99
99
  };
100
100
  exports.bigQueryViewAlreadyExists = bigQueryViewAlreadyExists;
101
101
  const bigQueryViewUpdated = (viewName) => {
102
- firebase_functions_1.logger.log(`Updated existing BigQuery view: ${viewName}`);
102
+ logger_1.logger.info(`Updated existing BigQuery view: ${viewName}`);
103
103
  };
104
104
  exports.bigQueryViewUpdated = bigQueryViewUpdated;
105
105
  const bigQueryViewUpdating = (viewName) => {
106
- firebase_functions_1.logger.log(`Updating existing BigQuery view: ${viewName}`);
106
+ logger_1.logger.debug(`Updating existing BigQuery view: ${viewName}`);
107
107
  };
108
108
  exports.bigQueryViewUpdating = bigQueryViewUpdating;
109
109
  const bigQueryViewUpToDate = (viewName) => {
110
- firebase_functions_1.logger.log(`BigQuery view: ${viewName} is up to date`);
110
+ logger_1.logger.info(`BigQuery view: ${viewName} is up to date`);
111
111
  };
112
112
  exports.bigQueryViewUpToDate = bigQueryViewUpToDate;
113
113
  const bigQueryViewValidated = (viewName) => {
114
- firebase_functions_1.logger.log(`Validated existing BigQuery view: ${viewName}`);
114
+ logger_1.logger.info(`Validated existing BigQuery view: ${viewName}`);
115
115
  };
116
116
  exports.bigQueryViewValidated = bigQueryViewValidated;
117
117
  const bigQueryViewValidating = (viewName) => {
118
- firebase_functions_1.logger.log(`Validating existing BigQuery view: ${viewName}`);
118
+ logger_1.logger.debug(`Validating existing BigQuery view: ${viewName}`);
119
119
  };
120
120
  exports.bigQueryViewValidating = bigQueryViewValidating;
121
121
  const complete = () => {
122
- firebase_functions_1.logger.log("Completed mod execution");
122
+ logger_1.logger.info("Completed mod execution");
123
123
  };
124
124
  exports.complete = complete;
125
125
  const dataInserted = (rowCount) => {
126
- firebase_functions_1.logger.log(`Inserted ${rowCount} row(s) of data into BigQuery`);
126
+ logger_1.logger.debug(`Inserted ${rowCount} row(s) of data into BigQuery`);
127
127
  };
128
128
  exports.dataInserted = dataInserted;
129
129
  const dataInsertRetried = (rowCount) => {
130
- firebase_functions_1.logger.log(`Retried to insert ${rowCount} row(s) of data into BigQuery (ignoring unknown columns)`);
130
+ logger_1.logger.debug(`Retried to insert ${rowCount} row(s) of data into BigQuery (ignoring unknown columns)`);
131
131
  };
132
132
  exports.dataInsertRetried = dataInsertRetried;
133
133
  const dataInserting = (rowCount) => {
134
- firebase_functions_1.logger.log(`Inserting ${rowCount} row(s) of data into BigQuery`);
134
+ logger_1.logger.debug(`Inserting ${rowCount} row(s) of data into BigQuery`);
135
135
  };
136
136
  exports.dataInserting = dataInserting;
137
137
  const dataTypeInvalid = (fieldName, fieldType, dataType) => {
138
- firebase_functions_1.logger.warn(`Field '${fieldName}' has invalid data. Expected: ${fieldType}, received: ${dataType}`);
138
+ logger_1.logger.warn(`Field '${fieldName}' has invalid data. Expected: ${fieldType}, received: ${dataType}`);
139
139
  };
140
140
  exports.dataTypeInvalid = dataTypeInvalid;
141
141
  const error = (err) => {
142
- firebase_functions_1.logger.error("Error when mirroring data to BigQuery", err);
142
+ logger_1.logger.error("Error when mirroring data to BigQuery", err);
143
143
  };
144
144
  exports.error = error;
145
145
  const timestampMissingValue = (fieldName) => {
146
- firebase_functions_1.logger.warn(`Missing value for timestamp field: ${fieldName}, using default timestamp instead.`);
146
+ logger_1.logger.warn(`Missing value for timestamp field: ${fieldName}, using default timestamp instead.`);
147
147
  };
148
148
  exports.timestampMissingValue = timestampMissingValue;
149
149
  const addNewColumn = (table, field) => {
150
- firebase_functions_1.logger.log(`Updated '${table}' table with a '${field}' column`);
150
+ logger_1.logger.info(`Updated '${table}' table with a '${field}' column`);
151
151
  };
152
152
  exports.addNewColumn = addNewColumn;
153
153
  const addPartitionFieldColumn = (table, field) => {
154
- firebase_functions_1.logger.log(`Updated '${table}' table with a partition field '${field}' column`);
154
+ logger_1.logger.info(`Updated '${table}' table with a partition field '${field}' column`);
155
155
  };
156
156
  exports.addPartitionFieldColumn = addPartitionFieldColumn;
157
157
  const firestoreTimePartitionFieldError = (documentName, fieldName, firestoreFieldName, firestoreFieldData) => {
158
- firebase_functions_1.logger.warn(`Wrong type of Firestore Field for TimePartitioning. Accepts only strings in BigQuery format (DATE, DATETIME, TIMESTAMP) and Firestore Timestamp. Firestore Document field path: ${documentName}. Field name: ${firestoreFieldName}. Field data: ${firestoreFieldData}. Schema field "${fieldName}" value will be null.`);
158
+ logger_1.logger.warn(`Wrong type of Firestore Field for TimePartitioning. Accepts only strings in BigQuery format (DATE, DATETIME, TIMESTAMP) and Firestore Timestamp. Firestore Document field path: ${documentName}. Field name: ${firestoreFieldName}. Field data: ${firestoreFieldData}. Schema field "${fieldName}" value will be null.`);
159
159
  };
160
160
  exports.firestoreTimePartitionFieldError = firestoreTimePartitionFieldError;
161
161
  const firestoreTimePartitioningParametersWarning = (fieldName, fieldType, firestoreFieldName, dataFirestoreField) => {
162
- firebase_functions_1.logger.warn("All TimePartitioning option parameters need to be available to create new custom schema field");
163
- !fieldName && firebase_functions_1.logger.warn(`Parameter missing: TIME_PARTITIONING_FIELD`);
164
- !fieldType && firebase_functions_1.logger.warn(`Parameter missing: TIME_PARTITIONING_FIELD_TYPE`);
162
+ logger_1.logger.warn("All TimePartitioning option parameters need to be available to create new custom schema field");
163
+ !fieldName && logger_1.logger.warn(`Parameter missing: TIME_PARTITIONING_FIELD`);
164
+ !fieldType && logger_1.logger.warn(`Parameter missing: TIME_PARTITIONING_FIELD_TYPE`);
165
165
  !firestoreFieldName &&
166
- firebase_functions_1.logger.warn(`Parameter missing: TIME_PARTITIONING_FIRESTORE_FIELD`);
166
+ logger_1.logger.warn(`Parameter missing: TIME_PARTITIONING_FIRESTORE_FIELD`);
167
167
  !dataFirestoreField &&
168
- firebase_functions_1.logger.warn(`No data found in Firestore Document under selected field: "${firestoreFieldName}"`);
168
+ logger_1.logger.warn(`No data found in Firestore Document under selected field: "${firestoreFieldName}"`);
169
169
  };
170
170
  exports.firestoreTimePartitioningParametersWarning = firestoreTimePartitioningParametersWarning;
171
171
  const bigQueryTableInsertErrors = (insertErrors) => {
172
- firebase_functions_1.logger.warn(`Error when inserting data to table.`);
172
+ logger_1.logger.warn(`Error when inserting data to table.`);
173
173
  insertErrors?.forEach((error) => {
174
- firebase_functions_1.logger.warn("ROW DATA JSON:");
175
- firebase_functions_1.logger.warn(error.row);
176
- error.errors?.forEach((error) => firebase_functions_1.logger.warn(`ROW ERROR MESSAGE: ${error.message}`));
174
+ logger_1.logger.warn("ROW DATA JSON:");
175
+ logger_1.logger.warn(error.row);
176
+ error.errors?.forEach((error) => logger_1.logger.warn(`ROW ERROR MESSAGE: ${error.message}`));
177
177
  });
178
178
  };
179
179
  exports.bigQueryTableInsertErrors = bigQueryTableInsertErrors;
180
180
  const updatedClustering = (fields) => {
181
- firebase_functions_1.logger.info(`Clustering updated with new settings fields: ${fields}`);
181
+ logger_1.logger.info(`Clustering updated with new settings fields: ${fields}`);
182
182
  };
183
183
  exports.updatedClustering = updatedClustering;
184
184
  const removedClustering = (tableName) => {
185
- firebase_functions_1.logger.info(`Clustering removed on ${tableName}`);
185
+ logger_1.logger.info(`Clustering removed on ${tableName}`);
186
186
  };
187
187
  exports.removedClustering = removedClustering;
188
188
  const cannotPartitionExistingTable = (table) => {
189
- firebase_functions_1.logger.warn(`Cannot partition an existing table ${table.dataset.id}_${table.id}`);
189
+ logger_1.logger.warn(`Cannot partition an existing table ${table.dataset.id}_${table.id}`);
190
190
  };
191
191
  exports.cannotPartitionExistingTable = cannotPartitionExistingTable;
192
192
  function invalidProjectIdWarning(bqProjectId) {
193
- firebase_functions_1.logger.warn(`Invalid project Id ${bqProjectId}, data cannot be synchronized`);
193
+ logger_1.logger.warn(`Invalid project Id ${bqProjectId}, data cannot be synchronized`);
194
194
  }
195
195
  exports.invalidProjectIdWarning = invalidProjectIdWarning;
196
196
  function invalidTableReference() {
197
- firebase_functions_1.logger.warn(`No valid table reference is available. Skipping partitioning`);
197
+ logger_1.logger.warn(`No valid table reference is available. Skipping partitioning`);
198
198
  }
199
199
  exports.invalidTableReference = invalidTableReference;
200
200
  function hourAndDatePartitioningWarning() {
201
- firebase_functions_1.logger.warn(`Cannot partition table with hour partitioning and Date. For DATE columns, the partitions can have daily, monthly, or yearly granularity. Skipping partitioning`);
201
+ logger_1.logger.warn(`Cannot partition table with hour partitioning and Date. For DATE columns, the partitions can have daily, monthly, or yearly granularity. Skipping partitioning`);
202
202
  }
203
203
  exports.hourAndDatePartitioningWarning = hourAndDatePartitioningWarning;
204
204
  function invalidClusteringTypes(fields) {
205
- firebase_functions_1.logger.warn(`Unable to add clustering, field(s) ${fields} have invalid types.`);
205
+ logger_1.logger.warn(`Unable to add clustering, field(s) ${fields} have invalid types.`);
206
206
  }
207
207
  exports.invalidClusteringTypes = invalidClusteringTypes;
208
208
  function invalidClustering(fields) {
209
- firebase_functions_1.logger.warn(`Unable to add clustering, field(s) ${fields} do not exist on the expected table`);
209
+ logger_1.logger.warn(`Unable to add clustering, field(s) ${fields} do not exist on the expected table`);
210
210
  }
211
211
  exports.invalidClustering = invalidClustering;
212
212
  const tableCreationError = (table, message) => {
213
- firebase_functions_1.logger.warn(`Error caught creating table`, message);
213
+ logger_1.logger.warn(`Error caught creating table`, message);
214
214
  };
215
215
  exports.tableCreationError = tableCreationError;
216
216
  const failedToInitializeWait = (message) => {
217
- firebase_functions_1.logger.warn(`Failed while waiting to initialize.`, message);
217
+ logger_1.logger.warn(`Failed while waiting to initialize.`, message);
218
218
  };
219
219
  exports.failedToInitializeWait = failedToInitializeWait;
220
220
  const updatingMetadata = (tableName, resources) => {
221
- firebase_functions_1.logger.info(`Updated Metadata on ${tableName}, ${JSON.stringify(resources)})`);
221
+ logger_1.logger.info(`Updated Metadata on ${tableName}, ${JSON.stringify(resources)})`);
222
222
  };
223
223
  exports.updatingMetadata = updatingMetadata;
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "url": "github.com/firebase/extensions.git",
6
6
  "directory": "firestore-bigquery-export/firestore-bigquery-change-tracker"
7
7
  },
8
- "version": "1.1.39",
8
+ "version": "1.1.40",
9
9
  "description": "Core change-tracker library for Cloud Firestore Collection BigQuery Exports",
10
10
  "main": "./lib/index.js",
11
11
  "scripts": {