@firebase-function-kits/delete-user-data 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/CHANGELOG.md CHANGED
@@ -1 +1 @@
1
- - Initial release
1
+ - Initial release of kit, see README for differences between the legacy extension and this kit
package/README.md CHANGED
@@ -135,6 +135,77 @@ When `EVENTARC_CHANNEL` is configured, the functions publish deletion events
135
135
  for each backend under `firebase.extensions.delete-user-data.v1.*`
136
136
  (`firestore`, `database`, and `storage`).
137
137
 
138
+ ## Differences from the Delete User Data extension
139
+
140
+ This kit is the extension repackaged as an npm package, but a few things behave
141
+ differently. If you are moving from an installed extension instance, read this
142
+ section before you deploy.
143
+
144
+ ### Auto-discovery uses `true` / `false`
145
+
146
+ `ENABLE_AUTO_DISCOVERY` is a boolean param, and only the literal string `true`
147
+ enables it. The extension used `yes` / `no`, so copying an old config across
148
+ leaves auto-discovery silently switched off. Change `yes` to `true` in your
149
+ `.env`.
150
+
151
+ ### You set `INSTANCE_ID` yourself
152
+
153
+ The extension derived an instance id at install time and used it to name the
154
+ Pub/Sub topics. Here it is a setting you provide, and it must match this
155
+ instance's key in the `instances` map in `firebase.json`. If the two disagree,
156
+ auto-discovery publishes to a topic nothing is listening on.
157
+
158
+ ### Pub/Sub topics are named differently
159
+
160
+ Discovery and deletion topics are now `kit-<INSTANCE_ID>-discovery` and
161
+ `kit-<INSTANCE_ID>-deletion`, where the extension used an `ext-` prefix. The
162
+ Firebase CLI creates them for you on deploy, so there is no manual setup step,
163
+ but the old topics from an extension install are not reused and can be deleted
164
+ once you have migrated.
165
+
166
+ You can also override both names with `DISCOVERY_TOPIC_NAME` and
167
+ `DELETION_TOPIC_NAME`, which the extension did not allow. Change them together,
168
+ since one function publishes to a topic the other is triggered by.
169
+
170
+ ### Realtime Database deletion no longer needs a database instance
171
+
172
+ The extension only cleared RTDB paths when both `SELECTED_DATABASE_INSTANCE`
173
+ and `SELECTED_DATABASE_LOCATION` were set. This kit clears them whenever
174
+ `RTDB_PATHS` is set, falling back to your project's default database when no
175
+ instance is named. Set `SELECTED_DATABASE_INSTANCE` explicitly if you are
176
+ targeting a secondary database, and leave `RTDB_PATHS` empty if you do not want
177
+ RTDB touched at all.
178
+
179
+ ### Functions deploy to your default region
180
+
181
+ The extension deployed to the location you picked at install time. This kit
182
+ sets no region, so its functions deploy to your codebase's default
183
+ (`us-central1` unless you have changed it).
184
+
185
+ ### All functions are 2nd gen
186
+
187
+ `clearData`, `handleSearch` and `handleDeletion` are all 2nd gen functions. Kits
188
+ do not support 1st gen endpoints, so `clearData` listens on the 2nd gen Firebase
189
+ Auth event `google.firebase.auth.user.v2.deleted` instead of the 1st gen
190
+ `user.delete` trigger. That event type is still beta in `firebase-functions`.
191
+ This mainly matters if you have infrastructure or alerting keyed to function
192
+ generation.
193
+
194
+ ### Empty search fields no longer error
195
+
196
+ Setting `AUTO_DISCOVERY_SEARCH_FIELDS` to an empty value used to raise an
197
+ invalid field path error during discovery. It is now treated as "match on the
198
+ document path only". The default is unchanged (`id,uid,userId`).
199
+
200
+ ### Unchanged
201
+
202
+ Events are the same. When `EVENTARC_CHANNEL` is configured, the functions still
203
+ publish `firebase.extensions.delete-user-data.v1.firestore`, `.database` and
204
+ `.storage` with the same payloads. Path syntax (`{UID}` substitution, comma
205
+ separated lists, `{DEFAULT}` for the default Storage bucket), the shallow and
206
+ recursive Firestore delete modes, the search depth and field matching rules,
207
+ and the custom `SEARCH_FUNCTION` contract all behave as they did.
208
+
138
209
  ## API surface
139
210
 
140
211
  - **Main entry** (`@firebase/delete-user-data`): exports `clearData`,
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAWH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AA0C5D,eAAO,MAAM,kBAAkB;aAC7B,kBAAkB;aAClB,iBAAiB;CACT,CAAC;AAMX,wBAAgB,aAAa,IAAI,oBAAoB,CAqBpD"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAWH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAoI5D,eAAO,MAAM,kBAAkB;aAC7B,kBAAkB;aAClB,iBAAiB;CACT,CAAC;AAMX,wBAAgB,aAAa,IAAI,oBAAoB,CAqBpD"}
package/lib/config.js CHANGED
@@ -21,32 +21,99 @@ const params_1 = require("firebase-functions/params");
21
21
  const instanceId = (0, params_1.defineString)("INSTANCE_ID");
22
22
  const params = {
23
23
  instanceId,
24
- firestorePaths: (0, params_1.defineString)("FIRESTORE_PATHS", { default: "" }),
24
+ firestorePaths: (0, params_1.defineString)("FIRESTORE_PATHS", {
25
+ label: "Cloud Firestore paths",
26
+ description: "Which paths in your Cloud Firestore instance contain data keyed on a user ID? Leave empty if you don't use Cloud Firestore.\nEnter the full paths, separated by commas. Use `{UID}` as a placeholder for the user's UID.\nFor example, if you have the collections `users` and `admins`, and each collection has documents with User ID as document IDs, then enter `users/{UID},admins/{UID}`.",
27
+ default: "",
28
+ input: { text: { example: "users/{UID},admins/{UID}" } },
29
+ }),
25
30
  firestoreDatabaseId: (0, params_1.defineString)("FIRESTORE_DATABASE_ID", {
31
+ label: "Firestore Database ID",
32
+ description: 'The ID of 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.',
26
33
  default: "(default)",
27
34
  }),
28
35
  firestoreDeleteMode: (0, params_1.defineString)("FIRESTORE_DELETE_MODE", {
36
+ label: "Cloud Firestore delete mode",
37
+ description: "(Only applicable if you use the `Cloud Firestore paths` parameter.) How do you want to delete Cloud Firestore documents? To also delete documents in subcollections, set this parameter to `recursive`.",
29
38
  default: "shallow",
30
- input: (0, params_1.select)(["recursive", "shallow"]),
39
+ input: (0, params_1.select)({ Recursive: "recursive", Shallow: "shallow" }),
40
+ }),
41
+ rtdbInstance: (0, params_1.defineString)("SELECTED_DATABASE_INSTANCE", {
42
+ label: "Realtime Database instance",
43
+ description: "What is the ID of the Realtime Database instance from which you want to delete user data (keyed on user ID)?",
44
+ default: "",
45
+ input: {
46
+ text: {
47
+ example: "my-instance",
48
+ // Extension regex, with an empty branch added: the param is optional.
49
+ validationRegex: /^(?:[^\.\$\#\]\[\/\x00-\x1F\x7F]+|)$/,
50
+ validationErrorMessage: "Invalid database instance. Make sure that you have entered just the instance ID, and not the entire database URL.",
51
+ },
52
+ },
31
53
  }),
32
- rtdbInstance: (0, params_1.defineString)("SELECTED_DATABASE_INSTANCE", { default: "" }),
33
54
  rtdbLocation: (0, params_1.defineString)("SELECTED_DATABASE_LOCATION", {
55
+ label: "Realtime Database location",
56
+ description: "(Only applicable if you provided the `Realtime Database instance` parameter.) From which Realtime Database location do you want to delete data keyed on a user ID?",
34
57
  default: "us-central1",
35
- input: (0, params_1.select)(["us-central1", "europe-west1", "asia-southeast1"]),
58
+ input: (0, params_1.select)({
59
+ "United States": "us-central1",
60
+ Belgium: "europe-west1",
61
+ Singapore: "asia-southeast1",
62
+ }),
63
+ }),
64
+ rtdbPaths: (0, params_1.defineString)("RTDB_PATHS", {
65
+ label: "Realtime Database paths",
66
+ description: "Which paths in your Realtime Database instance contain data keyed on a user ID? Leave empty if you don't use Realtime Database.\nEnter the full paths, separated by commas. Use `{UID}` as a placeholder for the user's UID.\nFor example: `users/{UID},admins/{UID}`.",
67
+ default: "",
68
+ input: { text: { example: "users/{UID},admins/{UID}" } },
36
69
  }),
37
- rtdbPaths: (0, params_1.defineString)("RTDB_PATHS", { default: "" }),
38
70
  storageBucket: (0, params_1.defineString)("CLOUD_STORAGE_BUCKET", {
71
+ label: "Cloud Storage bucket",
72
+ description: "Which Google Cloud Storage bucket do you want to delete files from?",
39
73
  default: params_1.storageBucket,
74
+ input: {
75
+ text: {
76
+ example: "my-project-12345.appspot.com",
77
+ validationRegex: /^([0-9a-z_.-]*)$/,
78
+ validationErrorMessage: "Invalid storage bucket",
79
+ },
80
+ },
81
+ }),
82
+ storagePaths: (0, params_1.defineString)("STORAGE_PATHS", {
83
+ label: "Cloud Storage paths",
84
+ description: "Where in Google Cloud Storage do you store data keyed on a user ID? Leave empty if you don't use Cloud Storage.\nEnter the full paths to files or directories in your Storage buckets, separated by commas. Use `{UID}` to represent the User ID of the deleted user, and use `{DEFAULT}` to represent your default Storage bucket.\nHere's a series of examples. To delete all the files in your default bucket with the file naming scheme `{UID}-pic.png`, enter `{DEFAULT}/{UID}-pic.png`. To also delete all the files in another bucket called my-app-logs with the file naming scheme `{UID}-logs.txt`, enter `{DEFAULT}/{UID}-pic.png,my-app-logs/{UID}-logs.txt`. To *also* delete a User ID-labeled directory and all its files (like `media/{UID}`), enter `{DEFAULT}/{UID}-pic.png,my-app-logs/{UID}-logs.txt,{DEFAULT}/media/{UID}`.",
85
+ default: "",
86
+ input: {
87
+ text: {
88
+ example: "{DEFAULT}/{UID}-pic.png,my-awesome-app-logs/{UID}-logs.txt",
89
+ },
90
+ },
40
91
  }),
41
- storagePaths: (0, params_1.defineString)("STORAGE_PATHS", { default: "" }),
42
92
  enableAutoDiscovery: (0, params_1.defineBoolean)("ENABLE_AUTO_DISCOVERY", {
93
+ label: "Enable auto discovery",
94
+ description: "Enable the extension to automatically discover Firestore collections and documents to delete.",
43
95
  default: false,
44
96
  }),
45
- searchDepth: (0, params_1.defineInt)("AUTO_DISCOVERY_SEARCH_DEPTH", { default: 3 }),
97
+ searchDepth: (0, params_1.defineInt)("AUTO_DISCOVERY_SEARCH_DEPTH", {
98
+ label: "Auto discovery search depth",
99
+ description: "If auto discovery is enabled, how deep should auto discovery find collections and documents. For example, setting to `1` would only discover root collections and documents, whereas setting to `9` would search sub-collections 9 levels deep. Defaults to `3`.",
100
+ default: 3,
101
+ }),
46
102
  searchFields: (0, params_1.defineString)("AUTO_DISCOVERY_SEARCH_FIELDS", {
103
+ label: "Auto discovery search fields",
104
+ description: "If auto discovery is enabled, specify what document fields are used to associate the UID with the document. The extension will delete documents where the value for one or more of these fields matches the deleting user’s UID. If left empty, document fields will not be used in auto discovery.",
47
105
  default: "id,uid,userId",
48
106
  }),
49
- searchFunction: (0, params_1.defineString)("SEARCH_FUNCTION", { default: "" }),
107
+ searchFunction: (0, params_1.defineString)("SEARCH_FUNCTION", {
108
+ label: "Search function URL",
109
+ description: "Specify a URL to call that will return a list of document paths to delete. The extension will send a `POST` request to the specified `URL`, with the `uid` of the deleted user will be provided in the body of the request. The endpoint specified should return an array of firestore paths to delete.",
110
+ default: "",
111
+ input: {
112
+ text: {
113
+ example: "https://us-west1-my-project-id.cloudfunctions.net/myTransformFunction",
114
+ },
115
+ },
116
+ }),
50
117
  // Non-empty defaults so Pub/Sub trigger bindings resolve during deploy
51
118
  // discovery without freezing an empty topic name into the manifest.
52
119
  discoveryTopicName: (0, params_1.defineString)("DISCOVERY_TOPIC_NAME", {
package/lib/config.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -1,6 +1,5 @@
1
- import * as functionsV1 from "firebase-functions/v1";
2
1
  export * from "./lib";
3
- export declare const clearData: functionsV1.CloudFunction<import("firebase-admin/auth").UserRecord>;
2
+ export declare const clearData: import("firebase-functions/core").CloudFunction<import("firebase-functions/core").CloudEvent<import("firebase-admin/auth").UserRecord>>;
4
3
  export declare const handleSearch: import("firebase-functions/core").CloudFunction<import("firebase-functions/core").CloudEvent<import("firebase-functions/v2/pubsub").MessagePublishedData<any>>>;
5
4
  export declare const handleDeletion: import("firebase-functions/core").CloudFunction<import("firebase-functions/core").CloudEvent<import("firebase-functions/v2/pubsub").MessagePublishedData<any>>>;
6
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,WAAW,MAAM,uBAAuB,CAAC;AAerD,cAAc,OAAO,CAAC;AAiDtB,eAAO,MAAM,SAAS,qEAEpB,CAAC;AAEH,eAAO,MAAM,YAAY,iKAKxB,CAAC;AAEF,eAAO,MAAM,cAAc,iKAK1B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAkCA,cAAc,OAAO,CAAC;AAiDtB,eAAO,MAAM,SAAS,yIASpB,CAAC;AAEH,eAAO,MAAM,YAAY,iKAKxB,CAAC;AAEF,eAAO,MAAM,cAAc,iKAK1B,CAAC"}
package/lib/index.js CHANGED
@@ -55,8 +55,8 @@ exports.handleDeletion = exports.handleSearch = exports.clearData = void 0;
55
55
  const pubsub_1 = require("@google-cloud/pubsub");
56
56
  const admin = __importStar(require("firebase-admin"));
57
57
  const firestore_1 = require("firebase-admin/firestore");
58
- const functionsV1 = __importStar(require("firebase-functions/v1"));
59
58
  const v2_1 = require("firebase-functions/v2");
59
+ const identity_1 = require("firebase-functions/v2/identity");
60
60
  const pubsub_2 = require("firebase-functions/v2/pubsub");
61
61
  const config_1 = require("./config");
62
62
  const events = __importStar(require("./events"));
@@ -100,8 +100,15 @@ function getContext() {
100
100
  };
101
101
  return ctx;
102
102
  }
103
- exports.clearData = functionsV1.auth.user().onDelete((user) => {
104
- return (0, handlers_1.handleClear)(user.uid, getContext());
103
+ exports.clearData = (0, identity_1.onUserDeleted)((event) => {
104
+ // The Auth event delivers no user record when the payload envelope is empty,
105
+ // so bail before getContext() rather than initialising the SDKs for nothing.
106
+ const uid = event.data?.uid;
107
+ if (!uid) {
108
+ logs.deletionEventMissingUid(event.id);
109
+ return;
110
+ }
111
+ return (0, handlers_1.handleClear)(uid, getContext());
105
112
  });
106
113
  exports.handleSearch = (0, pubsub_2.onMessagePublished)({
107
114
  topic: config_1.CONFIG_EXPRESSIONS.discoveryTopicName,
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,iDAA8C;AAC9C,MAAY,KAAK,2CAAuB;AACxC,wDAAwD;AACxD,MAAY,WAAW,kDAA8B;AAErD,8CAAqD;AACrD,yDAAkE;AAClE,qCAA6D;AAC7D,MAAY,MAAM,qCAAiB;AACnC,mDAA8E;AAC9E,yCAKoB;AACpB,MAAY,IAAI,mCAAe;AAE/B,wCAAsB;AAEtB,MAAM,cAAc,GAAwB;IAC1C,uBAAuB;IACvB,8BAA8B;IAC9B,qBAAqB;IACrB,oBAAoB;IACpB,gFAAgF;IAChF,8BAA8B;IAC9B,mBAAmB;CACpB,CAAC;AAEF,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;IAClC,IAAA,iBAAY,EAAC,IAAI,CAAC,CAAC;AACrB,CAAC;AAED,IAAI,GAA+B,CAAC;AAEpC,SAAS,UAAU;IACjB,IAAI,GAAG,EAAE,CAAC;QACR,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,QAAQ,GAAG,IAAA,2CAA2B,EAAC,IAAA,sBAAa,GAAE,CAAC,CAAC;IAC9D,MAAM,WAAW,GAAG,IAAA,8BAAc,EAChC,QAAQ,CAAC,YAAY,EACrB,QAAQ,CAAC,YAAY,CACtB,CAAC;IAEF,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,KAAK,CAAC,aAAa,CAAC;YAClB,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,kBAAkB,EAAE;YACjD,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,iBAAiB,EAAE,CAAC;IAC3B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAEpB,GAAG,GAAG;QACJ,SAAS,EAAE,IAAA,wBAAY,EAAC,QAAQ,CAAC,mBAAmB,CAAC;QACrD,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE;QACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE;QAC1B,MAAM,EAAE,IAAI,eAAM,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC;QACrD,MAAM,EAAE,QAAQ;KACjB,CAAC;IACF,OAAO,GAAG,CAAC;AACb,CAAC;AAEY,QAAA,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE;IACjE,OAAO,IAAA,sBAAW,EAAC,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC;AAC7C,CAAC,CAAC,CAAC;AAEU,QAAA,YAAY,GAAG,IAAA,2BAAkB,EAC5C;IACE,KAAK,EAAE,2BAAkB,CAAC,kBAAkB;CAC7C,EACD,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,uBAAS,EAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,CAC5D,CAAC;AAEW,QAAA,cAAc,GAAG,IAAA,2BAAkB,EAC9C;IACE,KAAK,EAAE,2BAAkB,CAAC,iBAAiB;CAC5C,EACD,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,yBAAW,EAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,CAC9D,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,iDAA8C;AAC9C,MAAY,KAAK,2CAAuB;AACxC,wDAAwD;AAExD,8CAAqD;AACrD,6DAA+D;AAC/D,yDAAkE;AAClE,qCAA6D;AAC7D,MAAY,MAAM,qCAAiB;AACnC,mDAA8E;AAC9E,yCAKoB;AACpB,MAAY,IAAI,mCAAe;AAE/B,wCAAsB;AAEtB,MAAM,cAAc,GAAwB;IAC1C,uBAAuB;IACvB,8BAA8B;IAC9B,qBAAqB;IACrB,oBAAoB;IACpB,gFAAgF;IAChF,8BAA8B;IAC9B,mBAAmB;CACpB,CAAC;AAEF,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;IAClC,IAAA,iBAAY,EAAC,IAAI,CAAC,CAAC;AACrB,CAAC;AAED,IAAI,GAA+B,CAAC;AAEpC,SAAS,UAAU;IACjB,IAAI,GAAG,EAAE,CAAC;QACR,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,QAAQ,GAAG,IAAA,2CAA2B,EAAC,IAAA,sBAAa,GAAE,CAAC,CAAC;IAC9D,MAAM,WAAW,GAAG,IAAA,8BAAc,EAChC,QAAQ,CAAC,YAAY,EACrB,QAAQ,CAAC,YAAY,CACtB,CAAC;IAEF,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,KAAK,CAAC,aAAa,CAAC;YAClB,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,kBAAkB,EAAE;YACjD,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,iBAAiB,EAAE,CAAC;IAC3B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAEpB,GAAG,GAAG;QACJ,SAAS,EAAE,IAAA,wBAAY,EAAC,QAAQ,CAAC,mBAAmB,CAAC;QACrD,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE;QACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE;QAC1B,MAAM,EAAE,IAAI,eAAM,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC;QACrD,MAAM,EAAE,QAAQ;KACjB,CAAC;IACF,OAAO,GAAG,CAAC;AACb,CAAC;AAEY,QAAA,SAAS,GAAG,IAAA,wBAAa,EAAC,CAAC,KAAK,EAAE,EAAE;IAC/C,6EAA6E;IAC7E,6EAA6E;IAC7E,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC;IAC5B,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACvC,OAAO;IACT,CAAC;IACD,OAAO,IAAA,sBAAW,EAAC,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC;AACxC,CAAC,CAAC,CAAC;AAEU,QAAA,YAAY,GAAG,IAAA,2BAAkB,EAC5C;IACE,KAAK,EAAE,2BAAkB,CAAC,kBAAkB;CAC7C,EACD,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,uBAAS,EAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,CAC5D,CAAC;AAEW,QAAA,cAAc,GAAG,IAAA,2BAAkB,EAC9C;IACE,KAAK,EAAE,2BAAkB,CAAC,iBAAiB;CAC5C,EACD,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,yBAAW,EAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,CAC9D,CAAC"}
package/lib/logs.d.ts CHANGED
@@ -22,5 +22,6 @@ export declare const storagePathDeleting: (path: string) => void;
22
22
  export declare const storagePath404: (path: string) => void;
23
23
  export declare const storagePathError: (path: string, err: Error) => void;
24
24
  export declare const customFunctionError: (err: Error) => void;
25
+ export declare const deletionEventMissingUid: (eventId: string) => void;
25
26
  export declare function warnInvalidPaths(invalidPathCount: number, uid: string): void;
26
27
  //# sourceMappingURL=logs.d.ts.map
package/lib/logs.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../src/logs.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,iBAAiB,CAAC;AAEpE,eAAO,MAAM,QAAQ,QAAS,MAAM,SAEnC,CAAC;AAEF,eAAO,MAAM,gBAAgB,YAE5B,CAAC;AAEF,eAAO,MAAM,iBAAiB,YAE7B,CAAC;AAEF,eAAO,MAAM,sBAAsB,YAElC,CAAC;AAEF,eAAO,MAAM,oBAAoB,SAAU,MAAM,aAAa,OAAO,SAMpE,CAAC;AAEF,eAAO,MAAM,qBAAqB,SAAU,MAAM,aAAa,OAAO,SAMrE,CAAC;AAEF,eAAO,MAAM,kBAAkB,SAAU,MAAM,OAAO,KAAK,SAE1D,CAAC;AAEF,eAAO,MAAM,IAAI,WAAY,4BAA4B,SAExD,CAAC;AAEF,eAAO,MAAM,WAAW,YAEvB,CAAC;AAEF,eAAO,MAAM,YAAY,YAExB,CAAC;AAEF,eAAO,MAAM,eAAe,SAAU,MAAM,SAE3C,CAAC;AAEF,eAAO,MAAM,iBAAiB,YAE7B,CAAC;AAEF,eAAO,MAAM,gBAAgB,SAAU,MAAM,SAE5C,CAAC;AAEF,eAAO,MAAM,aAAa,SAAU,MAAM,OAAO,KAAK,SAKrD,CAAC;AAEF,eAAO,MAAM,KAAK,WAAY,4BAA4B,SAEzD,CAAC;AAEF,eAAO,MAAM,cAAc,YAE1B,CAAC;AAEF,eAAO,MAAM,eAAe,YAE3B,CAAC;AAEF,eAAO,MAAM,oBAAoB,YAEhC,CAAC;AAEF,eAAO,MAAM,kBAAkB,SAAU,MAAM,SAE9C,CAAC;AAEF,eAAO,MAAM,mBAAmB,SAAU,MAAM,SAE/C,CAAC;AAEF,eAAO,MAAM,cAAc,SAAU,MAAM,SAE1C,CAAC;AAEF,eAAO,MAAM,gBAAgB,SAAU,MAAM,OAAO,KAAK,SAExD,CAAC;AAEF,eAAO,MAAM,mBAAmB,QAAS,KAAK,SAE7C,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,QAIrE"}
1
+ {"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../src/logs.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,iBAAiB,CAAC;AAEpE,eAAO,MAAM,QAAQ,QAAS,MAAM,SAEnC,CAAC;AAEF,eAAO,MAAM,gBAAgB,YAE5B,CAAC;AAEF,eAAO,MAAM,iBAAiB,YAE7B,CAAC;AAEF,eAAO,MAAM,sBAAsB,YAElC,CAAC;AAEF,eAAO,MAAM,oBAAoB,SAAU,MAAM,aAAa,OAAO,SAMpE,CAAC;AAEF,eAAO,MAAM,qBAAqB,SAAU,MAAM,aAAa,OAAO,SAMrE,CAAC;AAEF,eAAO,MAAM,kBAAkB,SAAU,MAAM,OAAO,KAAK,SAE1D,CAAC;AAEF,eAAO,MAAM,IAAI,WAAY,4BAA4B,SAExD,CAAC;AAEF,eAAO,MAAM,WAAW,YAEvB,CAAC;AAEF,eAAO,MAAM,YAAY,YAExB,CAAC;AAEF,eAAO,MAAM,eAAe,SAAU,MAAM,SAE3C,CAAC;AAEF,eAAO,MAAM,iBAAiB,YAE7B,CAAC;AAEF,eAAO,MAAM,gBAAgB,SAAU,MAAM,SAE5C,CAAC;AAEF,eAAO,MAAM,aAAa,SAAU,MAAM,OAAO,KAAK,SAKrD,CAAC;AAEF,eAAO,MAAM,KAAK,WAAY,4BAA4B,SAEzD,CAAC;AAEF,eAAO,MAAM,cAAc,YAE1B,CAAC;AAEF,eAAO,MAAM,eAAe,YAE3B,CAAC;AAEF,eAAO,MAAM,oBAAoB,YAEhC,CAAC;AAEF,eAAO,MAAM,kBAAkB,SAAU,MAAM,SAE9C,CAAC;AAEF,eAAO,MAAM,mBAAmB,SAAU,MAAM,SAE/C,CAAC;AAEF,eAAO,MAAM,cAAc,SAAU,MAAM,SAE1C,CAAC;AAEF,eAAO,MAAM,gBAAgB,SAAU,MAAM,OAAO,KAAK,SAExD,CAAC;AAEF,eAAO,MAAM,mBAAmB,QAAS,KAAK,SAE7C,CAAC;AAEF,eAAO,MAAM,uBAAuB,YAAa,MAAM,SAItD,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,QAIrE"}
package/lib/logs.js CHANGED
@@ -15,7 +15,7 @@
15
15
  * limitations under the License.
16
16
  */
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.customFunctionError = exports.storagePathError = exports.storagePath404 = exports.storagePathDeleting = exports.storagePathDeleted = exports.storageNotConfigured = exports.storageDeleting = exports.storageDeleted = exports.start = exports.rtdbPathError = exports.rtdbPathDeleting = exports.rtdbNotConfigured = exports.rtdbPathDeleted = exports.rtdbDeleting = exports.rtdbDeleted = exports.init = exports.firestorePathError = exports.firestorePathDeleting = exports.firestorePathDeleted = exports.firestoreNotConfigured = exports.firestoreDeleting = exports.firestoreDeleted = exports.complete = void 0;
18
+ exports.deletionEventMissingUid = exports.customFunctionError = exports.storagePathError = exports.storagePath404 = exports.storagePathDeleting = exports.storagePathDeleted = exports.storageNotConfigured = exports.storageDeleting = exports.storageDeleted = exports.start = exports.rtdbPathError = exports.rtdbPathDeleting = exports.rtdbNotConfigured = exports.rtdbPathDeleted = exports.rtdbDeleting = exports.rtdbDeleted = exports.init = exports.firestorePathError = exports.firestorePathDeleting = exports.firestorePathDeleted = exports.firestoreNotConfigured = exports.firestoreDeleting = exports.firestoreDeleted = exports.complete = void 0;
19
19
  exports.warnInvalidPaths = warnInvalidPaths;
20
20
  const firebase_functions_1 = require("firebase-functions");
21
21
  const complete = (uid) => {
@@ -110,6 +110,10 @@ const customFunctionError = (err) => {
110
110
  firebase_functions_1.logger.error(`Call to custom hook function threw an error`, err);
111
111
  };
112
112
  exports.customFunctionError = customFunctionError;
113
+ const deletionEventMissingUid = (eventId) => {
114
+ firebase_functions_1.logger.error(`Auth deletion event ${eventId} carried no user id, so no data was deleted`);
115
+ };
116
+ exports.deletionEventMissingUid = deletionEventMissingUid;
113
117
  function warnInvalidPaths(invalidPathCount, uid) {
114
118
  firebase_functions_1.logger.warn(`Attempted to delete ${invalidPathCount} invalid paths for deleted user ${uid}`);
115
119
  }
package/lib/logs.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"logs.js","sourceRoot":"","sources":["../src/logs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logs.js","sourceRoot":"","sources":["../src/logs.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;AAEH,2DAA4C;AAGrC,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAE,EAAE;IACtC,2BAAM,CAAC,GAAG,CAAC,uCAAuC,GAAG,EAAE,CAAC,CAAC;AAC3D,CAAC,CAAC;AAFW,QAAA,QAAQ,GAAR,QAAQ,CAEnB;AAEK,MAAM,gBAAgB,GAAG,GAAG,EAAE;IACnC,2BAAM,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;AACjE,CAAC,CAAC;AAFW,QAAA,gBAAgB,GAAhB,gBAAgB,CAE3B;AAEK,MAAM,iBAAiB,GAAG,GAAG,EAAE;IACpC,2BAAM,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;AACxD,CAAC,CAAC;AAFW,QAAA,iBAAiB,GAAjB,iBAAiB,CAE5B;AAEK,MAAM,sBAAsB,GAAG,GAAG,EAAE;IACzC,2BAAM,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;AACnE,CAAC,CAAC;AAFW,QAAA,sBAAsB,GAAtB,sBAAsB,CAEjC;AAEK,MAAM,oBAAoB,GAAG,CAAC,IAAY,EAAE,SAAkB,EAAE,EAAE;IACvE,2BAAM,CAAC,GAAG,CACR,aAAa,IAAI,0BACf,SAAS,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,EACxC,EAAE,CACH,CAAC;AACJ,CAAC,CAAC;AANW,QAAA,oBAAoB,GAApB,oBAAoB,CAM/B;AAEK,MAAM,qBAAqB,GAAG,CAAC,IAAY,EAAE,SAAkB,EAAE,EAAE;IACxE,2BAAM,CAAC,GAAG,CACR,cAAc,IAAI,0BAChB,SAAS,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,EACxC,EAAE,CACH,CAAC;AACJ,CAAC,CAAC;AANW,QAAA,qBAAqB,GAArB,qBAAqB,CAMhC;AAEK,MAAM,kBAAkB,GAAG,CAAC,IAAY,EAAE,GAAU,EAAE,EAAE;IAC7D,2BAAM,CAAC,KAAK,CAAC,yBAAyB,IAAI,wBAAwB,EAAE,GAAG,CAAC,CAAC;AAC3E,CAAC,CAAC;AAFW,QAAA,kBAAkB,GAAlB,kBAAkB,CAE7B;AAEK,MAAM,IAAI,GAAG,CAAC,MAAoC,EAAE,EAAE;IAC3D,2BAAM,CAAC,GAAG,CAAC,2CAA2C,EAAE,MAAM,CAAC,CAAC;AAClE,CAAC,CAAC;AAFW,QAAA,IAAI,GAAJ,IAAI,CAEf;AAEK,MAAM,WAAW,GAAG,GAAG,EAAE;IAC9B,2BAAM,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;AACvE,CAAC,CAAC;AAFW,QAAA,WAAW,GAAX,WAAW,CAEtB;AAEK,MAAM,YAAY,GAAG,GAAG,EAAE;IAC/B,2BAAM,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;AAC9D,CAAC,CAAC;AAFW,QAAA,YAAY,GAAZ,YAAY,CAEvB;AAEK,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,EAAE;IAC9C,2BAAM,CAAC,GAAG,CAAC,aAAa,IAAI,8BAA8B,CAAC,CAAC;AAC9D,CAAC,CAAC;AAFW,QAAA,eAAe,GAAf,eAAe,CAE1B;AAEK,MAAM,iBAAiB,GAAG,GAAG,EAAE;IACpC,2BAAM,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;AACrE,CAAC,CAAC;AAFW,QAAA,iBAAiB,GAAjB,iBAAiB,CAE5B;AAEK,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAE,EAAE;IAC/C,2BAAM,CAAC,GAAG,CAAC,cAAc,IAAI,8BAA8B,CAAC,CAAC;AAC/D,CAAC,CAAC;AAFW,QAAA,gBAAgB,GAAhB,gBAAgB,CAE3B;AAEK,MAAM,aAAa,GAAG,CAAC,IAAY,EAAE,GAAU,EAAE,EAAE;IACxD,2BAAM,CAAC,KAAK,CACV,yBAAyB,IAAI,8BAA8B,EAC3D,GAAG,CACJ,CAAC;AACJ,CAAC,CAAC;AALW,QAAA,aAAa,GAAb,aAAa,CAKxB;AAEK,MAAM,KAAK,GAAG,CAAC,MAAoC,EAAE,EAAE;IAC5D,2BAAM,CAAC,GAAG,CAAC,gDAAgD,EAAE,MAAM,CAAC,CAAC;AACvE,CAAC,CAAC;AAFW,QAAA,KAAK,GAAL,KAAK,CAEhB;AAEK,MAAM,cAAc,GAAG,GAAG,EAAE;IACjC,2BAAM,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;AAC/D,CAAC,CAAC;AAFW,QAAA,cAAc,GAAd,cAAc,CAEzB;AAEK,MAAM,eAAe,GAAG,GAAG,EAAE;IAClC,2BAAM,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;AACtD,CAAC,CAAC;AAFW,QAAA,eAAe,GAAf,eAAe,CAE1B;AAEK,MAAM,oBAAoB,GAAG,GAAG,EAAE;IACvC,2BAAM,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;AACjE,CAAC,CAAC;AAFW,QAAA,oBAAoB,GAApB,oBAAoB,CAE/B;AAEK,MAAM,kBAAkB,GAAG,CAAC,IAAY,EAAE,EAAE;IACjD,2BAAM,CAAC,GAAG,CAAC,aAAa,IAAI,sBAAsB,CAAC,CAAC;AACtD,CAAC,CAAC;AAFW,QAAA,kBAAkB,GAAlB,kBAAkB,CAE7B;AAEK,MAAM,mBAAmB,GAAG,CAAC,IAAY,EAAE,EAAE;IAClD,2BAAM,CAAC,GAAG,CAAC,cAAc,IAAI,sBAAsB,CAAC,CAAC;AACvD,CAAC,CAAC;AAFW,QAAA,mBAAmB,GAAnB,mBAAmB,CAE9B;AAEK,MAAM,cAAc,GAAG,CAAC,IAAY,EAAE,EAAE;IAC7C,2BAAM,CAAC,GAAG,CAAC,UAAU,IAAI,6CAA6C,CAAC,CAAC;AAC1E,CAAC,CAAC;AAFW,QAAA,cAAc,GAAd,cAAc,CAEzB;AAEK,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAE,GAAU,EAAE,EAAE;IAC3D,2BAAM,CAAC,KAAK,CAAC,oBAAoB,IAAI,sBAAsB,EAAE,GAAG,CAAC,CAAC;AACpE,CAAC,CAAC;AAFW,QAAA,gBAAgB,GAAhB,gBAAgB,CAE3B;AAEK,MAAM,mBAAmB,GAAG,CAAC,GAAU,EAAE,EAAE;IAChD,2BAAM,CAAC,KAAK,CAAC,6CAA6C,EAAE,GAAG,CAAC,CAAC;AACnE,CAAC,CAAC;AAFW,QAAA,mBAAmB,GAAnB,mBAAmB,CAE9B;AAEK,MAAM,uBAAuB,GAAG,CAAC,OAAe,EAAE,EAAE;IACzD,2BAAM,CAAC,KAAK,CACV,uBAAuB,OAAO,6CAA6C,CAC5E,CAAC;AACJ,CAAC,CAAC;AAJW,QAAA,uBAAuB,GAAvB,uBAAuB,CAIlC;AAEF,0BAAiC,gBAAwB,EAAE,GAAW;IACpE,2BAAM,CAAC,IAAI,CACT,uBAAuB,gBAAgB,mCAAmC,GAAG,EAAE,CAChF,CAAC;AACJ,CAAC"}