@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 +1 -1
- package/README.md +71 -0
- package/lib/config.d.ts.map +1 -1
- package/lib/config.js +75 -8
- package/lib/config.js.map +1 -1
- package/lib/index.d.ts +1 -2
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +10 -3
- package/lib/index.js.map +1 -1
- package/lib/logs.d.ts +1 -0
- package/lib/logs.d.ts.map +1 -1
- package/lib/logs.js +5 -1
- package/lib/logs.js.map +1 -1
- package/npm-shrinkwrap.json +4167 -0
- package/package.json +1 -1
- package/src/config.ts +98 -8
- package/src/identity-shim.d.ts +32 -0
- package/src/index.ts +10 -3
- package/src/logs.ts +6 -0
- package/tests/config.test.ts +2 -2
- package/tests/index.test.ts +70 -0
- package/tsconfig.tsbuildinfo +1 -1
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`,
|
package/lib/config.d.ts.map
CHANGED
|
@@ -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;
|
|
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", {
|
|
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)(
|
|
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)(
|
|
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", {
|
|
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", {
|
|
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":";AAAA;;;;;;;;;;;;;;GAcG;;;;AAEH,sDAQmC;AAGnC,MAAM,UAAU,GAAG,IAAA,qBAAY,EAAC,aAAa,CAAC,CAAC;AAE/C,MAAM,MAAM,GAAG;IACb,UAAU;IACV,cAAc,EAAE,IAAA,qBAAY,EAAC,iBAAiB,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;
|
|
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:
|
|
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
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
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 =
|
|
104
|
-
|
|
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;
|
|
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":";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;AAEF,0BAAiC,gBAAwB,EAAE,GAAW;IACpE,2BAAM,CAAC,IAAI,CACT,uBAAuB,gBAAgB,mCAAmC,GAAG,EAAE,CAChF,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"logs.js","sourceRoot":"","sources":["../src/logs.ts"],"names":[],"mappings":"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"}
|