@serve.zone/dcrouter 17.7.1 → 17.8.0
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/deno.json +1 -1
- package/dist_serve/bundle.js +410 -410
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/classes.dcrouter.d.ts +2 -0
- package/dist_ts/classes.dcrouter.js +23 -1
- package/dist_ts/config/classes.gateway-client-manager.js +3 -1
- package/dist_ts/db/documents/classes.cached.email.d.ts +7 -0
- package/dist_ts/db/documents/classes.cached.email.js +52 -2
- package/dist_ts/db/documents/classes.webpush-admission.doc.d.ts +19 -0
- package/dist_ts/db/documents/classes.webpush-admission.doc.js +124 -0
- package/dist_ts/db/documents/classes.webpush-binding.doc.d.ts +65 -0
- package/dist_ts/db/documents/classes.webpush-binding.doc.js +205 -0
- package/dist_ts/db/documents/classes.webpush-spool.doc.d.ts +44 -0
- package/dist_ts/db/documents/classes.webpush-spool.doc.js +277 -0
- package/dist_ts/db/documents/index.d.ts +3 -0
- package/dist_ts/db/documents/index.js +5 -1
- package/dist_ts/email/classes.accepted-email-spool.d.ts +5 -0
- package/dist_ts/email/classes.accepted-email-spool.js +28 -3
- package/dist_ts/email/classes.workapp-mail-manager.d.ts +5 -1
- package/dist_ts/email/classes.workapp-mail-manager.js +87 -12
- package/dist_ts/index.d.ts +1 -0
- package/dist_ts/index.js +3 -1
- package/dist_ts/opsserver/classes.opsserver.d.ts +2 -0
- package/dist_ts/opsserver/classes.opsserver.js +5 -1
- package/dist_ts/opsserver/handlers/gatewayclient.handler.js +11 -5
- package/dist_ts/opsserver/handlers/index.d.ts +2 -0
- package/dist_ts/opsserver/handlers/index.js +3 -1
- package/dist_ts/opsserver/handlers/webpush-app.handler.d.ts +9 -0
- package/dist_ts/opsserver/handlers/webpush-app.handler.js +66 -0
- package/dist_ts/opsserver/handlers/webpush-control.handler.d.ts +14 -0
- package/dist_ts/opsserver/handlers/webpush-control.handler.js +163 -0
- package/dist_ts/plugins.d.ts +5 -2
- package/dist_ts/plugins.js +6 -3
- package/dist_ts/webpush/classes.webpush-crypto.d.ts +38 -0
- package/dist_ts/webpush/classes.webpush-crypto.js +231 -0
- package/dist_ts/webpush/classes.webpush-manager.d.ts +153 -0
- package/dist_ts/webpush/classes.webpush-manager.js +2374 -0
- package/dist_ts/webpush/classes.webpush-transport.d.ts +45 -0
- package/dist_ts/webpush/classes.webpush-transport.js +161 -0
- package/dist_ts/webpush/helpers.webpush-endpoint.d.ts +21 -0
- package/dist_ts/webpush/helpers.webpush-endpoint.js +111 -0
- package/dist_ts/webpush/index.d.ts +4 -0
- package/dist_ts/webpush/index.js +5 -0
- package/dist_ts/webpush/webpush-indexes.d.ts +11 -0
- package/dist_ts/webpush/webpush-indexes.js +123 -0
- package/dist_ts_interfaces/data/route-management.d.ts +2 -0
- package/dist_ts_interfaces/data/route-management.js +1 -1
- package/dist_ts_migrations/index.js +221 -11
- package/dist_ts_web/00_commitinfo_data.js +1 -1
- package/package.json +12 -8
- package/readme.md +27 -0
- package/third-party-notices.md +37 -0
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/classes.dcrouter.ts +29 -0
- package/ts/config/classes.gateway-client-manager.ts +2 -0
- package/ts/db/documents/classes.cached.email.ts +47 -0
- package/ts/db/documents/classes.webpush-admission.doc.ts +48 -0
- package/ts/db/documents/classes.webpush-binding.doc.ts +147 -0
- package/ts/db/documents/classes.webpush-spool.doc.ts +136 -0
- package/ts/db/documents/index.ts +5 -0
- package/ts/email/classes.accepted-email-spool.ts +41 -2
- package/ts/email/classes.workapp-mail-manager.ts +97 -10
- package/ts/index.ts +3 -0
- package/ts/opsserver/classes.opsserver.ts +4 -0
- package/ts/opsserver/handlers/gatewayclient.handler.ts +10 -3
- package/ts/opsserver/handlers/index.ts +2 -0
- package/ts/opsserver/handlers/webpush-app.handler.ts +105 -0
- package/ts/opsserver/handlers/webpush-control.handler.ts +257 -0
- package/ts/plugins.ts +6 -0
- package/ts/webpush/classes.webpush-crypto.ts +306 -0
- package/ts/webpush/classes.webpush-manager.ts +3173 -0
- package/ts/webpush/classes.webpush-transport.ts +241 -0
- package/ts/webpush/helpers.webpush-endpoint.ts +150 -0
- package/ts/webpush/index.ts +4 -0
- package/ts/webpush/webpush-indexes.ts +141 -0
- package/ts_web/00_commitinfo_data.ts +1 -1
- package/readme.plan.md +0 -22
|
@@ -10,6 +10,8 @@ const defaultCapabilities = {
|
|
|
10
10
|
manageMail: false,
|
|
11
11
|
readCertificates: false,
|
|
12
12
|
requestCertificates: false,
|
|
13
|
+
readWebPush: false,
|
|
14
|
+
manageWebPush: false,
|
|
13
15
|
};
|
|
14
16
|
export class GatewayClientManager {
|
|
15
17
|
async initialize() { }
|
|
@@ -462,4 +464,4 @@ export class GatewayClientManager {
|
|
|
462
464
|
};
|
|
463
465
|
}
|
|
464
466
|
}
|
|
465
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5nYXRld2F5LWNsaWVudC1tYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdHMvY29uZmlnL2NsYXNzZXMuZ2F0ZXdheS1jbGllbnQtbWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQ0wsZ0JBQWdCLEdBRWpCLE1BQU0sZ0JBQWdCLENBQUM7QUFxQnhCLE1BQU0sbUJBQW1CLEdBQW1DO0lBQzFELFdBQVcsRUFBRSxJQUFJO0lBQ2pCLGNBQWMsRUFBRSxJQUFJO0lBQ3BCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLGNBQWMsRUFBRSxLQUFLO0lBQ3JCLFFBQVEsRUFBRSxLQUFLO0lBQ2YsVUFBVSxFQUFFLEtBQUs7SUFDakIsZ0JBQWdCLEVBQUUsS0FBSztJQUN2QixtQkFBbUIsRUFBRSxLQUFLO0NBQzNCLENBQUM7QUFFRixNQUFNLE9BQU8sb0JBQW9CO0lBQ3hCLEtBQUssQ0FBQyxVQUFVLEtBQW1CLENBQUM7SUFFcEMsS0FBSyxDQUFDLFdBQVc7UUFDdEIsTUFBTSxJQUFJLEdBQUcsTUFBTSxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM5QyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRU0sS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFVO1FBQy9CLE1BQU0sR0FBRyxHQUFHLE1BQU0sZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2hELE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDL0MsQ0FBQztJQUVNLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FVekI7UUFDQyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2xGLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNSLE1BQU0sSUFBSSxLQUFLLENBQUMsK0JBQStCLENBQUMsQ0FBQztRQUNuRCxDQUFDO1FBQ0QsSUFBSSxNQUFNLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ3hDLE1BQU0sSUFBSSxLQUFLLENBQUMsK0JBQStCLENBQUMsQ0FBQztRQUNuRCxDQUFDO1FBRUQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sR0FBRyxHQUFHLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztRQUNuQyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNaLEdBQUcsQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztRQUN4QixHQUFHLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDL0IsR0FBRyxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxFQUFFLElBQUksRUFBRSxJQUFJLFNBQVMsQ0FBQztRQUMzRCxHQUFHLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN0RixHQUFHLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLDRCQUE0QixDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUMvRixHQUFHLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQyx1QkFBdUIsS0FBSyxLQUFLO1lBQzFELENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQyxFQUFFO1lBQ3JDLENBQUMsQ0FBQyxFQUFFLEdBQUcsbUJBQW1CLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUNoRSxHQUFHLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNuQixHQUFHLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDO1FBQ3pCLEdBQUcsQ0FBQyxrQkFBa0IsR0FBRyxDQUFDLENBQUM7UUFDM0IsR0FBRyxDQUFDLHdCQUF3QixHQUFHLENBQUMsQ0FBQztRQUNqQyxHQUFHLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDO1FBQ3pCLEdBQUcsQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7UUFDL0IsR0FBRyxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUM7UUFDcEIsR0FBRyxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUM7UUFDcEIsR0FBRyxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDO1FBQ2xDLE1BQU0sR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRU0sS0FBSyxDQUFDLFlBQVksQ0FDdkIsRUFBVSxFQUNWLEtBQXNJLEVBQ3RJLFVBQWlELEVBQUU7UUFFbkQsTUFBTSxHQUFHLEdBQUcsTUFBTSxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLEdBQUc7WUFBRSxPQUFPLElBQUksQ0FBQztRQUN0QixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM5RSxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ2pDLGdCQUFnQixFQUFFLEdBQUcsQ0FBQyxnQkFBZ0IsSUFBSSxFQUFFO1lBQzVDLG1CQUFtQixFQUFFLEdBQUcsQ0FBQyxtQkFBbUIsSUFBSSxFQUFFO1lBQ2xELFlBQVksRUFBRSxHQUFHLENBQUMsWUFBWSxJQUFJLEVBQUU7WUFDcEMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxPQUFPO1NBQ3JCLENBQUMsQ0FBQztRQUNILE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO1FBQ3pFLE1BQU0sZUFBZSxHQUFHLEtBQUssQ0FBQyxXQUFXLEtBQUssU0FBUztZQUNyRCxDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxTQUFTO1lBQ3ZDLENBQUMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDO1FBQ3BCLE1BQU0sb0JBQW9CLEdBQUcsS0FBSyxDQUFDLGdCQUFnQixLQUFLLFNBQVM7WUFDL0QsQ0FBQyxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUM7WUFDeEQsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsSUFBSSxFQUFFLENBQUM7UUFDL0IsTUFBTSx1QkFBdUIsR0FBRyxLQUFLLENBQUMsbUJBQW1CLEtBQUssU0FBUztZQUNyRSxDQUFDLENBQUMsSUFBSSxDQUFDLDRCQUE0QixDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQztZQUM5RCxDQUFDLENBQUMsR0FBRyxDQUFDLG1CQUFtQixJQUFJLEVBQUUsQ0FBQztRQUNsQyxNQUFNLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxZQUFZLEtBQUssU0FBUztZQUN2RCxDQUFDLENBQUMsT0FBTyxDQUFDLHVCQUF1QixLQUFLLEtBQUs7Z0JBQ3pDLENBQUMsQ0FBQyxFQUFFLEdBQUcsS0FBSyxDQUFDLFlBQVksRUFBRTtnQkFDM0IsQ0FBQyxDQUFDLEVBQUUsR0FBRyxtQkFBbUIsRUFBRSxHQUFHLEtBQUssQ0FBQyxZQUFZLEVBQUU7WUFDckQsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDO1FBQzNCLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDO1FBQzlFLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDaEMsZ0JBQWdCLEVBQUUsb0JBQW9CO1lBQ3RDLG1CQUFtQixFQUFFLHVCQUF1QjtZQUM1QyxZQUFZLEVBQUUsZ0JBQWdCO1lBQzlCLE9BQU8sRUFBRSxXQUFXO1NBQ3JCLENBQUMsQ0FBQztRQUNILE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQztjQUN6RSxDQUFDLFdBQVcsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzdCLE1BQU0sT0FBTyxHQUFHLE1BQU0sZ0JBQWdCLENBQUMsYUFBYSxDQUFDLEVBQUUsRUFBRSxnQkFBZ0IsRUFBRTtZQUN6RSxJQUFJLEVBQUUsUUFBUTtZQUNkLGdCQUFnQixFQUFFLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQztZQUN2RCxtQkFBbUIsRUFBRSxlQUFlLENBQUMsdUJBQXVCLENBQUM7WUFDN0QsWUFBWSxFQUFFLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQztZQUMvQyxPQUFPLEVBQUUsV0FBVztZQUNwQixnQkFBZ0I7WUFDaEIsbUJBQW1CLEVBQUUsSUFBSTtZQUN6QixTQUFTO1lBQ1QsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztTQUM3RCxFQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2IsSUFBSSxNQUFNLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7Z0JBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyx1REFBdUQsQ0FBQyxDQUFDO1lBQ2xILE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRU0sS0FBSyxDQUFDLFlBQVksQ0FBQyxFQUFVO1FBQ2xDLE1BQU0sR0FBRyxHQUFHLE1BQU0sZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxHQUFHO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDdkIsTUFBTSxPQUFPLEdBQUcsTUFBTSxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FDckQsRUFBRSxFQUNGLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FDckQsQ0FBQztRQUNGLElBQUksQ0FBQyxPQUFPLElBQUksTUFBTSxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNwRCxNQUFNLElBQUksS0FBSyxDQUFDLHlEQUF5RCxDQUFDLENBQUM7UUFDN0UsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFTSxLQUFLLENBQUMsWUFBWSxDQUN2QixJQUFxRSxFQUNyRSxTQUFpQjtRQUtqQixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsRUFBRTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsK0JBQStCLENBQUMsQ0FBQztRQUMxRCxNQUFNLFVBQVUsR0FBRztZQUNqQixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDdEIsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxFQUFFLElBQUksU0FBUztZQUNsRCxnQkFBZ0IsRUFBRSxJQUFJLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLGdCQUFnQixJQUFJLEVBQUUsQ0FBQztZQUM3RSxtQkFBbUIsRUFBRSxJQUFJLENBQUMsNEJBQTRCLENBQUMsSUFBSSxDQUFDLG1CQUFtQixJQUFJLEVBQUUsQ0FBQztZQUN0RixZQUFZLEVBQUUsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUMsRUFBRTtZQUM5QyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJO1NBQzlCLENBQUM7UUFDRixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUk7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7UUFFekUsTUFBTSxRQUFRLEdBQUcsTUFBTSxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2QsTUFBTSxhQUFhLEdBQUcsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDO2dCQUM1QyxFQUFFO2dCQUNGLElBQUksRUFBRSxVQUFVLENBQUMsSUFBSTtnQkFDckIsSUFBSSxFQUFFLFVBQVUsQ0FBQyxJQUFJO2dCQUNyQixXQUFXLEVBQUUsVUFBVSxDQUFDLFdBQVc7Z0JBQ25DLGdCQUFnQixFQUFFLFVBQVUsQ0FBQyxnQkFBZ0I7Z0JBQzdDLG1CQUFtQixFQUFFLFVBQVUsQ0FBQyxtQkFBbUI7Z0JBQ25ELFlBQVksRUFBRSxVQUFVLENBQUMsWUFBWTtnQkFDckMsU0FBUztnQkFDVCx1QkFBdUIsRUFBRSxLQUFLO2FBQy9CLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ3hCLE9BQU87b0JBQ0wsTUFBTSxFQUFFLFNBQVM7b0JBQ2pCLGFBQWEsRUFBRSxDQUFDLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBRTtpQkFDbEUsQ0FBQztZQUNKLENBQUM7WUFDRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsQ0FBQztRQUM5QyxDQUFDO1FBQ0QsSUFBSSxRQUFRLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN0QyxNQUFNLElBQUksS0FBSyxDQUFDLHVDQUF1QyxDQUFDLENBQUM7UUFDM0QsQ0FBQztRQUNELE1BQU0sT0FBTyxHQUFHO1lBQ2QsSUFBSSxFQUFFLFFBQVEsQ0FBQyxJQUFJO1lBQ25CLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSTtZQUNuQixXQUFXLEVBQUUsUUFBUSxDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsSUFBSSxTQUFTO1lBQ3RELGdCQUFnQixFQUFFLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLElBQUksRUFBRSxDQUFDO1lBQ2pGLG1CQUFtQixFQUFFLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxRQUFRLENBQUMsbUJBQW1CLElBQUksRUFBRSxDQUFDO1lBQzFGLFlBQVksRUFBRSxFQUFFLEdBQUcsQ0FBQyxRQUFRLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQyxFQUFFO1lBQ2xELE9BQU8sRUFBRSxRQUFRLENBQUMsT0FBTztTQUMxQixDQUFDO1FBQ0YsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUMzRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQy9FLENBQUM7UUFDRCxNQUFNLGFBQWEsR0FBRyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFLFVBQVUsRUFBRSxFQUFFLHVCQUF1QixFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDbEcsSUFBSSxDQUFDLGFBQWE7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGdEQUFnRCxDQUFDLENBQUM7UUFDdEYsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLENBQUM7SUFDOUMsQ0FBQztJQUVEOzs7T0FHRztJQUNJLEtBQUssQ0FBQyx1QkFBdUIsQ0FDbEMsSUFBcUUsRUFDckUsUUFBZ0I7UUFFaEIsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLEVBQUU7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLCtCQUErQixDQUFDLENBQUM7UUFDMUQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hELE1BQU0sUUFBUSxHQUFHLE1BQU0sZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3JELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUV2QixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDZCxNQUFNLEdBQUcsR0FBRyxJQUFJLGdCQUFnQixFQUFFLENBQUM7WUFDbkMsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7WUFDWixHQUFHLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUM7WUFDM0IsR0FBRyxDQUFDLElBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDO1lBQzNCLEdBQUcsQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDLFdBQVcsSUFBSSxTQUFTLENBQUM7WUFDdEQsR0FBRyxDQUFDLGdCQUFnQixHQUFHLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQztZQUNuRCxHQUFHLENBQUMsbUJBQW1CLEdBQUcsVUFBVSxDQUFDLG1CQUFtQixDQUFDO1lBQ3pELEdBQUcsQ0FBQyxZQUFZLEdBQUcsVUFBVSxDQUFDLFlBQVksQ0FBQztZQUMzQyxHQUFHLENBQUMsT0FBTyxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUM7WUFDakMsR0FBRyxDQUFDLGdCQUFnQixHQUFHLENBQUMsQ0FBQztZQUN6QixHQUFHLENBQUMsa0JBQWtCLEdBQUcsQ0FBQyxDQUFDO1lBQzNCLEdBQUcsQ0FBQyx3QkFBd0IsR0FBRyxDQUFDLENBQUM7WUFDakMsR0FBRyxDQUFDLGdCQUFnQixHQUFHLENBQUMsQ0FBQztZQUN6QixHQUFHLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQztZQUNwQixHQUFHLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQztZQUNwQixHQUFHLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztZQUN6QixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDMUQsR0FBRyxDQUFDLG1CQUFtQixHQUFHO2dCQUN4QixHQUFHLGVBQWUsQ0FBQyxVQUFVLENBQUM7Z0JBQzlCLGdCQUFnQixFQUFFLENBQUM7Z0JBQ25CLFlBQVk7Z0JBQ1osa0JBQWtCLEVBQUUsQ0FBQztnQkFDckIsUUFBUSxFQUFFLEdBQUc7Z0JBQ2IsUUFBUTthQUNULENBQUM7WUFDRixNQUFNLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNqQixPQUFPO2dCQUNMLE1BQU0sRUFBRSxTQUFTO2dCQUNqQixhQUFhLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsbUJBQW1CLENBQUM7Z0JBQ3ZFLGtCQUFrQixFQUFFLENBQUM7Z0JBQ3JCLFlBQVk7YUFDYixDQUFDO1FBQ0osQ0FBQztRQUNELElBQUksUUFBUSxDQUFDLElBQUksS0FBSyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDdEMsTUFBTSxJQUFJLEtBQUssQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO1FBQzNELENBQUM7UUFFRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbEQsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDbkYsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsMkJBQTJCLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzdGLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQztnQkFDakUsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDMUQsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLElBQUksS0FBSyxVQUFVLENBQUMsSUFBSTtlQUNsRCxNQUFNLENBQUMsV0FBVyxLQUFLLFVBQVUsQ0FBQyxXQUFXLENBQUM7UUFDbkQsTUFBTSxnQkFBZ0IsR0FBRyxlQUFlLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLENBQUM7UUFDbkYsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDekUsTUFBTSxtQkFBbUIsR0FBc0M7WUFDN0QsR0FBRyxlQUFlLENBQUMsVUFBVSxDQUFDO1lBQzlCLGdCQUFnQjtZQUNoQixZQUFZO1lBQ1osa0JBQWtCO1lBQ2xCLFFBQVEsRUFBRSxHQUFHO1lBQ2IsUUFBUTtTQUNULENBQUM7UUFDRixNQUFNLEdBQUcsR0FBNEI7WUFDbkMsa0JBQWtCO1lBQ2xCLG1CQUFtQjtZQUNuQixTQUFTLEVBQUUsR0FBRztTQUNmLENBQUM7UUFDRixNQUFNLEtBQUssR0FBYSxFQUFFLENBQUM7UUFDM0IsSUFBSSxlQUFlLEVBQUUsQ0FBQztZQUNwQixHQUFHLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUM7WUFDM0IsSUFBSSxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQzNCLEdBQUcsQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDLFdBQVcsQ0FBQztZQUMzQyxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUM1QixDQUFDO1FBQ0gsQ0FBQztRQUNELE1BQU0sT0FBTyxHQUFHLE1BQU0sZ0JBQWdCLENBQUMsYUFBYSxDQUNsRCxFQUFFLEVBQ0YsSUFBSSxDQUFDLHlCQUF5QixDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUN6RCxHQUFHLEVBQ0gsS0FBSyxDQUNOLENBQUM7UUFDRixJQUFJLENBQUMsT0FBTztZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMseURBQXlELENBQUMsQ0FBQztRQUV6RixPQUFPO1lBQ0wsTUFBTSxFQUFFLGVBQWUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxTQUFTO1lBQ3JFLGFBQWEsRUFBRSxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxtQkFBb0IsQ0FBQztZQUNoRixrQkFBa0I7WUFDbEIsWUFBWTtTQUNiLENBQUM7SUFDSixDQUFDO0lBRUQsZ0ZBQWdGO0lBQ3pFLEtBQUssQ0FBQyxpQ0FBaUMsQ0FDNUMsS0FBYSxFQUNiLE9BQStCLEVBQy9CLFlBQXlDO1FBRXpDLE1BQU0sR0FBRyxHQUFHLE1BQU0sZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxPQUFPO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDOUMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDOUUsSUFDRSxZQUFZLENBQUMsS0FBSyxLQUFLLFFBQVE7ZUFDNUIsWUFBWSxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsMkJBQTJCLENBQUMsR0FBRyxDQUFDLHdCQUF3QixDQUFDO2VBQ3hGLFlBQVksQ0FBQyxnQkFBZ0IsS0FBSyxnQkFBZ0I7ZUFDbEQsWUFBWSxDQUFDLFlBQVksS0FBSyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxFQUFFLGdCQUFnQixDQUFDLEVBQzNHLENBQUM7WUFDRCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbEMsQ0FBQztRQUNELE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQztRQUN4QyxJQUNFLFlBQVksQ0FBQyxLQUFLLEtBQUssV0FBVztlQUMvQixPQUFPO2VBQ1AsSUFBSSxDQUFDLDJCQUEyQixDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLFlBQVksQ0FBQyxRQUFRO2VBQ2xGLE9BQU8sQ0FBQyxrQkFBa0IsS0FBSyxZQUFZLENBQUMsUUFBUTtlQUNwRCxPQUFPLENBQUMsZ0JBQWdCLEtBQUssWUFBWSxDQUFDLGdCQUFnQjtlQUMxRCxPQUFPLENBQUMsWUFBWSxLQUFLLFlBQVksQ0FBQyxZQUFZLEVBQ3JELENBQUM7WUFDRCxPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDbEQsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELCtFQUErRTtJQUN4RSxLQUFLLENBQUMsd0JBQXdCLENBQ25DLEtBQWEsRUFDYixPQUErQixFQUMvQixZQUF5QztRQUV6QyxNQUFNLEdBQUcsR0FBRyxNQUFNLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFLENBQUM7WUFDakMsTUFBTSxJQUFJLEtBQUssQ0FBQyxpREFBaUQsQ0FBQyxDQUFDO1FBQ3JFLENBQUM7UUFDRCxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM5RSxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM5RSxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDaEcsSUFDRSxZQUFZLENBQUMsS0FBSyxLQUFLLFFBQVE7ZUFDNUIsWUFBWSxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsMkJBQTJCLENBQUMsR0FBRyxDQUFDLHdCQUF3QixDQUFDO2VBQ3hGLFlBQVksQ0FBQyxnQkFBZ0IsS0FBSyxnQkFBZ0I7ZUFDbEQsWUFBWSxDQUFDLFlBQVksS0FBSyxZQUFZLEVBQzdDLENBQUM7WUFDRCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbEMsQ0FBQztRQUNELE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQztRQUN4QyxJQUNFLENBQUMsWUFBWSxDQUFDLEtBQUssS0FBSyxXQUFXLElBQUksWUFBWSxDQUFDLEtBQUssS0FBSyxRQUFRLENBQUM7ZUFDcEUsQ0FBQyxPQUFPO2VBQ1IsSUFBSSxDQUFDLDJCQUEyQixDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLFlBQVksQ0FBQyxRQUFRO2VBQ2xGLE9BQU8sQ0FBQyxrQkFBa0IsS0FBSyxZQUFZLENBQUMsUUFBUTtlQUNwRCxPQUFPLENBQUMsZ0JBQWdCLEtBQUssWUFBWSxDQUFDLGdCQUFnQjtlQUMxRCxPQUFPLENBQUMsWUFBWSxLQUFLLFlBQVksQ0FBQyxZQUFZLEVBQ3JELENBQUM7WUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLDhEQUE4RCxDQUFDLENBQUM7UUFDbEYsQ0FBQztRQUVELE1BQU0sT0FBTyxHQUFHLE1BQU0sZ0JBQWdCLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxnQkFBZ0IsRUFBRTtZQUM1RSxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7WUFDbEIsZ0JBQWdCLEVBQUUsZUFBZSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQztZQUMzRCxtQkFBbUIsRUFBRSxlQUFlLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDO1lBQ2pFLFlBQVksRUFBRSxlQUFlLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQztZQUNuRCxPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU87WUFDeEIsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLGdCQUFnQjtZQUMxQyx3QkFBd0IsRUFBRSxPQUFPLENBQUMsa0JBQWtCO1lBQ3BELG1CQUFtQixFQUFFLElBQUk7WUFDekIsU0FBUyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDckIsR0FBRyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1NBQ3JFLEVBQUUsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBQyxvRUFBb0UsQ0FBQyxDQUFDO1FBQ3hGLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVNLHdCQUF3QixDQUFDLFNBQXlCO1FBQ3ZELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FDdEIsU0FBUyxDQUFDLEVBQUUsRUFDWjtZQUNFLElBQUksRUFBRSxTQUFTLENBQUMsSUFBSTtZQUNwQixJQUFJLEVBQUUsU0FBUyxDQUFDLElBQUk7WUFDcEIsV0FBVyxFQUFFLFNBQVMsQ0FBQyxXQUFXLElBQUksSUFBSTtZQUMxQyxnQkFBZ0IsRUFBRSxlQUFlLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDO1lBQzdELG1CQUFtQixFQUFFLGVBQWUsQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUM7WUFDbkUsWUFBWSxFQUFFLGVBQWUsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDO1lBQ3JELE9BQU8sRUFBRSxTQUFTLENBQUMsT0FBTztTQUMzQixFQUNELFNBQVMsQ0FBQyxnQkFBZ0IsQ0FDM0IsQ0FBQztJQUNKLENBQUM7SUFFTyxXQUFXLENBQUMsRUFBVTtRQUM1QixPQUFPLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN6RyxDQUFDO0lBRU8seUJBQXlCLENBQUMsTUFBZ0I7UUFDaEQsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxRixDQUFDO0lBRU8sd0JBQXdCLENBQUMsUUFBZ0I7UUFDL0MsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDaEUsSUFBSSxLQUFLLEtBQUssR0FBRztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ2hDLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEMsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDbkQsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDNUYsT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUN6QyxDQUFDO0lBRU8sNEJBQTRCLENBQUMsT0FBOEM7UUFDakYsT0FBTyxPQUFPO2FBQ1gsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ2hCLElBQUksRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztZQUMzQyxLQUFLLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLEdBQUcsQ0FBQyxJQUFJLElBQUksSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNwSSxHQUFHLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztTQUN2RCxDQUFDLENBQUM7YUFDRixNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekYsQ0FBQztJQUVPLG1CQUFtQixDQUFDLFFBQWdCO1FBQzFDLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2hFLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDMUMsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLEtBQUs7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLDhCQUE4QixRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3RFLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVPLHlCQUF5QixDQUMvQixPQUF3RTtRQUV4RSxNQUFNLFVBQVUsR0FBaUM7WUFDL0MsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO1lBQ2xCLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtZQUN6QixXQUFXLEVBQUUsT0FBTyxDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsSUFBSSxJQUFJO1lBQ2hELGdCQUFnQixFQUFFLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLElBQUksRUFBRSxDQUFDO1lBQ2hGLG1CQUFtQixFQUFFLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxPQUFPLENBQUMsbUJBQW1CLElBQUksRUFBRSxDQUFDO1lBQ3pGLFlBQVksRUFBRSxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQyxFQUFFO1lBQ2pELE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTyxJQUFJLElBQUk7U0FDakMsQ0FBQztRQUNGLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsaUNBQWlDLENBQUMsQ0FBQztRQUN6RSxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBRU8sbUJBQW1CLENBQUMsTUFBd0I7UUFDbEQsT0FBTztZQUNMLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtZQUNqQixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7WUFDakIsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXLEVBQUUsSUFBSSxFQUFFLElBQUksSUFBSTtZQUMvQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMseUJBQXlCLENBQUMsTUFBTSxDQUFDLGdCQUFnQixJQUFJLEVBQUUsQ0FBQztZQUMvRSxtQkFBbUIsRUFBRSxJQUFJLENBQUMsNEJBQTRCLENBQUMsTUFBTSxDQUFDLG1CQUFtQixJQUFJLEVBQUUsQ0FBQztZQUN4RixZQUFZLEVBQUUsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUMsRUFBRTtZQUNoRCxPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU87U0FDeEIsQ0FBQztJQUNKLENBQUM7SUFFTyxZQUFZLENBQ2xCLEtBQWEsRUFDYixTQUF1QyxFQUN2QyxhQUFxQjtRQUVyQixNQUFNLFlBQVksR0FBRyxDQUFDLFFBQWlCLEVBQVcsRUFBRTtZQUNsRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO2dCQUFFLE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDdkYsSUFBSSxRQUFRLElBQUksT0FBTyxRQUFRLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQzdDLE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQW1DLENBQUM7cUJBQ3ZFLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7cUJBQ2hELEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFFLFFBQW9DLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM3RixDQUFDO1lBQ0QsT0FBTyxRQUFRLENBQUM7UUFDbEIsQ0FBQyxDQUFDO1FBQ0YsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUM7WUFDNUUsRUFBRSxFQUFFLEtBQUs7WUFDVCxVQUFVLEVBQUUsYUFBYTtZQUN6QixNQUFNLEVBQUU7Z0JBQ04sSUFBSSxFQUFFLFNBQVMsQ0FBQyxJQUFJO2dCQUNwQixnQkFBZ0IsRUFBRSxTQUFTLENBQUMsZ0JBQWdCO2dCQUM1QyxtQkFBbUIsRUFBRSxTQUFTLENBQUMsbUJBQW1CO2dCQUNsRCxZQUFZLEVBQUUsU0FBUyxDQUFDLFlBQVk7Z0JBQ3BDLE9BQU8sRUFBRSxTQUFTLENBQUMsT0FBTzthQUMzQjtTQUNGLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFTywyQkFBMkIsQ0FBQyxRQUFpQjtRQUNuRCxPQUFPLE1BQU0sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEYsQ0FBQztJQUVPLHlCQUF5QixDQUFDLFFBQWlCO1FBQ2pELE9BQU8sTUFBTSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4RixDQUFDO0lBRU8seUJBQXlCLENBQUMsUUFBaUI7UUFDakQsT0FBTyxNQUFNLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hGLENBQUM7SUFFTyxxQkFBcUIsQ0FDM0IsTUFBd0IsRUFDeEIsVUFBNkM7UUFFN0MsT0FBTztZQUNMLEVBQUUsRUFBRSxNQUFNLENBQUMsRUFBRTtZQUNiLElBQUksRUFBRSxVQUFVLENBQUMsSUFBSTtZQUNyQixJQUFJLEVBQUUsVUFBVSxDQUFDLElBQUk7WUFDckIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxXQUFXLElBQUksU0FBUztZQUNoRCxnQkFBZ0IsRUFBRSxlQUFlLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDO1lBQzlELG1CQUFtQixFQUFFLGVBQWUsQ0FBQyxVQUFVLENBQUMsbUJBQW1CLENBQUM7WUFDcEUsWUFBWSxFQUFFLGVBQWUsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDO1lBQ3RELE9BQU8sRUFBRSxVQUFVLENBQUMsT0FBTztZQUMzQixnQkFBZ0IsRUFBRSxVQUFVLENBQUMsZ0JBQWdCO1lBQzdDLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUztZQUMzQixTQUFTLEVBQUUsVUFBVSxDQUFDLFFBQVE7WUFDOUIsU0FBUyxFQUFFLE1BQU0sQ0FBQyxTQUFTO1NBQzVCLENBQUM7SUFDSixDQUFDO0lBRU8sY0FBYyxDQUFDLEdBQXFCO1FBQzFDLE9BQU87WUFDTCxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUU7WUFDVixJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUk7WUFDZCxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUk7WUFDZCxXQUFXLEVBQUUsR0FBRyxDQUFDLFdBQVc7WUFDNUIsZ0JBQWdCLEVBQUUsR0FBRyxDQUFDLGdCQUFnQixJQUFJLEVBQUU7WUFDNUMsbUJBQW1CLEVBQUUsR0FBRyxDQUFDLG1CQUFtQixJQUFJLEVBQUU7WUFDbEQsWUFBWSxFQUFFLEdBQUcsQ0FBQyxZQUFZLElBQUksRUFBRTtZQUNwQyxPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU87WUFDcEIsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLHlCQUF5QixDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQztZQUN0RSxTQUFTLEVBQUUsR0FBRyxDQUFDLFNBQVM7WUFDeEIsU0FBUyxFQUFFLEdBQUcsQ0FBQyxTQUFTO1lBQ3hCLFNBQVMsRUFBRSxHQUFHLENBQUMsU0FBUztTQUN6QixDQUFDO0lBQ0osQ0FBQztDQUNGIn0=
|
|
467
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5nYXRld2F5LWNsaWVudC1tYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdHMvY29uZmlnL2NsYXNzZXMuZ2F0ZXdheS1jbGllbnQtbWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQ0wsZ0JBQWdCLEdBRWpCLE1BQU0sZ0JBQWdCLENBQUM7QUFxQnhCLE1BQU0sbUJBQW1CLEdBQW1DO0lBQzFELFdBQVcsRUFBRSxJQUFJO0lBQ2pCLGNBQWMsRUFBRSxJQUFJO0lBQ3BCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLGNBQWMsRUFBRSxLQUFLO0lBQ3JCLFFBQVEsRUFBRSxLQUFLO0lBQ2YsVUFBVSxFQUFFLEtBQUs7SUFDakIsZ0JBQWdCLEVBQUUsS0FBSztJQUN2QixtQkFBbUIsRUFBRSxLQUFLO0lBQzFCLFdBQVcsRUFBRSxLQUFLO0lBQ2xCLGFBQWEsRUFBRSxLQUFLO0NBQ3JCLENBQUM7QUFFRixNQUFNLE9BQU8sb0JBQW9CO0lBQ3hCLEtBQUssQ0FBQyxVQUFVLEtBQW1CLENBQUM7SUFFcEMsS0FBSyxDQUFDLFdBQVc7UUFDdEIsTUFBTSxJQUFJLEdBQUcsTUFBTSxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM5QyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRU0sS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFVO1FBQy9CLE1BQU0sR0FBRyxHQUFHLE1BQU0sZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2hELE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FB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
|
|
@@ -80,6 +80,12 @@ export declare class CachedEmail extends plugins.smartdata.SmartdataCachedDocume
|
|
|
80
80
|
rawContentObjectKey?: string;
|
|
81
81
|
/** Raw RFC822 message size in bytes. */
|
|
82
82
|
rawContentSize: number;
|
|
83
|
+
/** Resolved outbound identity id that scopes a service-mail replay key. */
|
|
84
|
+
submissionCredentialId?: string;
|
|
85
|
+
/** Caller-supplied replay key. It must remain absent for non-idempotent mail. */
|
|
86
|
+
submissionIdempotencyKey?: string;
|
|
87
|
+
/** Digest of the exact authenticated outbound submission semantics. */
|
|
88
|
+
submissionDigest?: string;
|
|
83
89
|
/** Bounded durable SMTP transaction history copied from SmartMTA. */
|
|
84
90
|
smtpTransactions: ICachedEmailSmtpTransaction[];
|
|
85
91
|
/**
|
|
@@ -148,6 +154,7 @@ export declare class CachedEmail extends plugins.smartdata.SmartdataCachedDocume
|
|
|
148
154
|
dkimSigned: boolean;
|
|
149
155
|
constructor();
|
|
150
156
|
createSavableObject(): Promise<CachedEmail>;
|
|
157
|
+
static findBySubmissionIdempotencyKey(credentialIdArg: string, idempotencyKeyArg: string): Promise<CachedEmail | null>;
|
|
151
158
|
/**
|
|
152
159
|
* Create a new CachedEmail with a unique ID
|
|
153
160
|
*/
|
|
@@ -81,6 +81,15 @@ let CachedEmail = (() => {
|
|
|
81
81
|
let _rawContentSize_decorators;
|
|
82
82
|
let _rawContentSize_initializers = [];
|
|
83
83
|
let _rawContentSize_extraInitializers = [];
|
|
84
|
+
let _submissionCredentialId_decorators;
|
|
85
|
+
let _submissionCredentialId_initializers = [];
|
|
86
|
+
let _submissionCredentialId_extraInitializers = [];
|
|
87
|
+
let _submissionIdempotencyKey_decorators;
|
|
88
|
+
let _submissionIdempotencyKey_initializers = [];
|
|
89
|
+
let _submissionIdempotencyKey_extraInitializers = [];
|
|
90
|
+
let _submissionDigest_decorators;
|
|
91
|
+
let _submissionDigest_initializers = [];
|
|
92
|
+
let _submissionDigest_extraInitializers = [];
|
|
84
93
|
let _smtpTransactions_decorators;
|
|
85
94
|
let _smtpTransactions_initializers = [];
|
|
86
95
|
let _smtpTransactions_extraInitializers = [];
|
|
@@ -146,6 +155,9 @@ let CachedEmail = (() => {
|
|
|
146
155
|
_rawContent_decorators = [plugins.smartdata.svDb()];
|
|
147
156
|
_rawContentObjectKey_decorators = [plugins.smartdata.svDb()];
|
|
148
157
|
_rawContentSize_decorators = [plugins.smartdata.svDb()];
|
|
158
|
+
_submissionCredentialId_decorators = [plugins.smartdata.svDb()];
|
|
159
|
+
_submissionIdempotencyKey_decorators = [plugins.smartdata.svDb()];
|
|
160
|
+
_submissionDigest_decorators = [plugins.smartdata.svDb()];
|
|
149
161
|
_smtpTransactions_decorators = [plugins.smartdata.svDb()];
|
|
150
162
|
_status_decorators = [plugins.smartdata.index(), plugins.smartdata.svDb()];
|
|
151
163
|
_attachmentCount_decorators = [plugins.smartdata.svDb()];
|
|
@@ -173,6 +185,9 @@ let CachedEmail = (() => {
|
|
|
173
185
|
__esDecorate(null, null, _rawContent_decorators, { kind: "field", name: "rawContent", static: false, private: false, access: { has: obj => "rawContent" in obj, get: obj => obj.rawContent, set: (obj, value) => { obj.rawContent = value; } }, metadata: _metadata }, _rawContent_initializers, _rawContent_extraInitializers);
|
|
174
186
|
__esDecorate(null, null, _rawContentObjectKey_decorators, { kind: "field", name: "rawContentObjectKey", static: false, private: false, access: { has: obj => "rawContentObjectKey" in obj, get: obj => obj.rawContentObjectKey, set: (obj, value) => { obj.rawContentObjectKey = value; } }, metadata: _metadata }, _rawContentObjectKey_initializers, _rawContentObjectKey_extraInitializers);
|
|
175
187
|
__esDecorate(null, null, _rawContentSize_decorators, { kind: "field", name: "rawContentSize", static: false, private: false, access: { has: obj => "rawContentSize" in obj, get: obj => obj.rawContentSize, set: (obj, value) => { obj.rawContentSize = value; } }, metadata: _metadata }, _rawContentSize_initializers, _rawContentSize_extraInitializers);
|
|
188
|
+
__esDecorate(null, null, _submissionCredentialId_decorators, { kind: "field", name: "submissionCredentialId", static: false, private: false, access: { has: obj => "submissionCredentialId" in obj, get: obj => obj.submissionCredentialId, set: (obj, value) => { obj.submissionCredentialId = value; } }, metadata: _metadata }, _submissionCredentialId_initializers, _submissionCredentialId_extraInitializers);
|
|
189
|
+
__esDecorate(null, null, _submissionIdempotencyKey_decorators, { kind: "field", name: "submissionIdempotencyKey", static: false, private: false, access: { has: obj => "submissionIdempotencyKey" in obj, get: obj => obj.submissionIdempotencyKey, set: (obj, value) => { obj.submissionIdempotencyKey = value; } }, metadata: _metadata }, _submissionIdempotencyKey_initializers, _submissionIdempotencyKey_extraInitializers);
|
|
190
|
+
__esDecorate(null, null, _submissionDigest_decorators, { kind: "field", name: "submissionDigest", static: false, private: false, access: { has: obj => "submissionDigest" in obj, get: obj => obj.submissionDigest, set: (obj, value) => { obj.submissionDigest = value; } }, metadata: _metadata }, _submissionDigest_initializers, _submissionDigest_extraInitializers);
|
|
176
191
|
__esDecorate(null, null, _smtpTransactions_decorators, { kind: "field", name: "smtpTransactions", static: false, private: false, access: { has: obj => "smtpTransactions" in obj, get: obj => obj.smtpTransactions, set: (obj, value) => { obj.smtpTransactions = value; } }, metadata: _metadata }, _smtpTransactions_initializers, _smtpTransactions_extraInitializers);
|
|
177
192
|
__esDecorate(null, null, _status_decorators, { kind: "field", name: "status", static: false, private: false, access: { has: obj => "status" in obj, get: obj => obj.status, set: (obj, value) => { obj.status = value; } }, metadata: _metadata }, _status_initializers, _status_extraInitializers);
|
|
178
193
|
__esDecorate(null, null, _attachmentCount_decorators, { kind: "field", name: "attachmentCount", static: false, private: false, access: { has: obj => "attachmentCount" in obj, get: obj => obj.attachmentCount, set: (obj, value) => { obj.attachmentCount = value; } }, metadata: _metadata }, _attachmentCount_initializers, _attachmentCount_extraInitializers);
|
|
@@ -229,8 +244,14 @@ let CachedEmail = (() => {
|
|
|
229
244
|
rawContentObjectKey = (__runInitializers(this, _rawContent_extraInitializers), __runInitializers(this, _rawContentObjectKey_initializers, void 0));
|
|
230
245
|
/** Raw RFC822 message size in bytes. */
|
|
231
246
|
rawContentSize = (__runInitializers(this, _rawContentObjectKey_extraInitializers), __runInitializers(this, _rawContentSize_initializers, 0));
|
|
247
|
+
/** Resolved outbound identity id that scopes a service-mail replay key. */
|
|
248
|
+
submissionCredentialId = (__runInitializers(this, _rawContentSize_extraInitializers), __runInitializers(this, _submissionCredentialId_initializers, void 0));
|
|
249
|
+
/** Caller-supplied replay key. It must remain absent for non-idempotent mail. */
|
|
250
|
+
submissionIdempotencyKey = (__runInitializers(this, _submissionCredentialId_extraInitializers), __runInitializers(this, _submissionIdempotencyKey_initializers, void 0));
|
|
251
|
+
/** Digest of the exact authenticated outbound submission semantics. */
|
|
252
|
+
submissionDigest = (__runInitializers(this, _submissionIdempotencyKey_extraInitializers), __runInitializers(this, _submissionDigest_initializers, void 0));
|
|
232
253
|
/** Bounded durable SMTP transaction history copied from SmartMTA. */
|
|
233
|
-
smtpTransactions = (__runInitializers(this,
|
|
254
|
+
smtpTransactions = (__runInitializers(this, _submissionDigest_extraInitializers), __runInitializers(this, _smtpTransactions_initializers, []));
|
|
234
255
|
/**
|
|
235
256
|
* Current status of the email
|
|
236
257
|
*/
|
|
@@ -306,11 +327,40 @@ let CachedEmail = (() => {
|
|
|
306
327
|
}
|
|
307
328
|
async createSavableObject() {
|
|
308
329
|
const savableObject = await super.createSavableObject();
|
|
330
|
+
const submissionFields = [
|
|
331
|
+
this.submissionCredentialId,
|
|
332
|
+
this.submissionIdempotencyKey,
|
|
333
|
+
this.submissionDigest,
|
|
334
|
+
];
|
|
335
|
+
if (submissionFields.every((valueArg) => valueArg === undefined)) {
|
|
336
|
+
delete savableObject.submissionCredentialId;
|
|
337
|
+
delete savableObject.submissionIdempotencyKey;
|
|
338
|
+
delete savableObject.submissionDigest;
|
|
339
|
+
}
|
|
340
|
+
else if (typeof this.submissionCredentialId !== 'string'
|
|
341
|
+
|| !/^[A-Za-z0-9][A-Za-z0-9._:-]{0,199}$/.test(this.submissionCredentialId)
|
|
342
|
+
|| typeof this.submissionIdempotencyKey !== 'string'
|
|
343
|
+
|| !/^[A-Za-z0-9][A-Za-z0-9:._/-]{0,199}$/.test(this.submissionIdempotencyKey)
|
|
344
|
+
|| typeof this.submissionDigest !== 'string'
|
|
345
|
+
|| !/^sha256:[a-f0-9]{64}$/.test(this.submissionDigest)) {
|
|
346
|
+
throw new Error('CachedEmail submission idempotency metadata is invalid');
|
|
347
|
+
}
|
|
309
348
|
if (this.rawContentObjectKey) {
|
|
310
349
|
delete savableObject.rawContent;
|
|
311
350
|
}
|
|
312
351
|
return savableObject;
|
|
313
352
|
}
|
|
353
|
+
static async findBySubmissionIdempotencyKey(credentialIdArg, idempotencyKeyArg) {
|
|
354
|
+
if (typeof credentialIdArg !== 'string'
|
|
355
|
+
|| !/^[A-Za-z0-9][A-Za-z0-9._:-]{0,199}$/.test(credentialIdArg)
|
|
356
|
+
|| typeof idempotencyKeyArg !== 'string'
|
|
357
|
+
|| !/^[A-Za-z0-9][A-Za-z0-9:._/-]{0,199}$/.test(idempotencyKeyArg))
|
|
358
|
+
throw new Error('CachedEmail submission idempotency selector is invalid');
|
|
359
|
+
return await CachedEmail.getInstance({
|
|
360
|
+
submissionCredentialId: credentialIdArg,
|
|
361
|
+
submissionIdempotencyKey: idempotencyKeyArg,
|
|
362
|
+
});
|
|
363
|
+
}
|
|
314
364
|
/**
|
|
315
365
|
* Create a new CachedEmail with a unique ID
|
|
316
366
|
*/
|
|
@@ -468,4 +518,4 @@ let CachedEmail = (() => {
|
|
|
468
518
|
return CachedEmail = _classThis;
|
|
469
519
|
})();
|
|
470
520
|
export { CachedEmail };
|
|
471
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5jYWNoZWQuZW1haWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90cy9kYi9kb2N1bWVudHMvY2xhc3Nlcy5jYWNoZWQuZW1haWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sa0JBQWtCLENBQUM7QUFDNUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXZELE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsa0JBQWtCLENBQUM7QUE2RGpEOztHQUVHO0FBQ0gsTUFBTSxLQUFLLEdBQUcsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO0FBRXJEOzs7OztHQUtHO0lBRVUsV0FBVzs0QkFEdkIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUM7Ozs7c0JBQ1gsT0FBTyxDQUFDLFNBQVMsQ0FBQyx1QkFBdUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7MkJBQWpELFNBQVEsV0FBc0Q7Ozs7OEJBSXBGLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLEVBQ3ZCLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFO3FDQU14QixPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRTtnQ0FNeEIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUU7OEJBTXhCLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFOzhCQU14QixPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRTsrQkFNeEIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUU7bUNBTXhC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
|
|
521
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5jYWNoZWQuZW1haWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90cy9kYi9kb2N1bWVudHMvY2xhc3Nlcy5jYWNoZWQuZW1haWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sa0JBQWtCLENBQUM7QUFDNUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXZELE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsa0JBQWtCLENBQUM7QUE2RGpEOztHQUVHO0FBQ0gsTUFBTSxLQUFLLEdBQUcsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO0FBRXJEOzs7OztHQUtHO0lBRVUsV0FBVzs0QkFEdkIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUM7Ozs7c0JBQ1gsT0FBTyxDQUFDLFNBQVMsQ0FBQyx1QkFBdUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7MkJBQWpELFNBQVEsV0FBc0Q7Ozs7OEJBSXBGLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLEVBQ3ZCLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFO3FDQU14QixPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRTtnQ0FNeEIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUU7OEJBTXhCLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFOzhCQU14QixPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRTsrQkFNeEIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUU7bUNBTXhCLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFO3NDQUl4QixPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRTsrQ0FJeEIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUU7MENBSXhCLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFO2tEQUl4QixPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRTtvREFJeEIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUU7NENBSXhCLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFOzRDQUl4QixPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRTtrQ0FNeEIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsRUFDekIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUU7MkNBSXhCLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFO2tEQUl4QixPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRTtvQ0FNeEIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUU7dUNBTXhCLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFO3VDQVN4QixPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRTsrQ0FPeEIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUU7cUNBTXhCLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFO3VDQU14QixPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRTt3Q0FNeEIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUU7cUNBTXhCLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFOzRDQU14QixPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRTtzQ0FNeEIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUU7b0NBTXhCLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFO3FDQU14QixPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRTtzQ0FNeEIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUU7WUFoS3pCLHdKQUFPLEVBQUUsNkJBQUYsRUFBRSwrRUFBVTtZQU1uQiw2S0FBTyxTQUFTLDZCQUFULFNBQVMsNkZBQVU7WUFNMUIsOEpBQU8sSUFBSSw2QkFBSixJQUFJLG1GQUFVO1lBTXJCLHdKQUFPLEVBQUUsNkJBQUYsRUFBRSwrRUFBWTtZQU1yQix3SkFBTyxFQUFFLDZCQUFGLEVBQUUsK0VBQVk7WUFNckIsMkpBQU8sR0FBRyw2QkFBSCxHQUFHLGlGQUFZO1lBTXRCLHVLQUFPLE9BQU8sNkJBQVAsT0FBTyx5RkFBVTtZQUl4QixnTEFBTyxVQUFVLDZCQUFWLFVBQVUsK0ZBQVU7WUFJM0IsMk1BQU8sbUJBQW1CLDZCQUFuQixtQkFBbUIsaUhBQVU7WUFJcEMsNExBQU8sY0FBYyw2QkFBZCxjQUFjLHVHQUFhO1lBSWxDLG9OQUFPLHNCQUFzQiw2QkFBdEIsc0JBQXNCLHVIQUFVO1lBSXZDLDBOQUFPLHdCQUF3Qiw2QkFBeEIsd0JBQXdCLDJIQUFVO1lBSXpDLGtNQUFPLGdCQUFnQiw2QkFBaEIsZ0JBQWdCLDJHQUFVO1lBSWpDLGtNQUFPLGdCQUFnQiw2QkFBaEIsZ0JBQWdCLDJHQUFxQztZQU81RCxvS0FBTyxNQUFNLDZCQUFOLE1BQU0sdUZBQXNCO1lBSW5DLCtMQUFPLGVBQWUsNkJBQWYsZUFBZSx5R0FBVTtZQUloQyxvTkFBTyxzQkFBc0IsNkJBQXRCLHNCQUFzQix1SEFBVTtZQU12QywwS0FBTyxRQUFRLDZCQUFSLFFBQVEsMkZBQWE7WUFNNUIsbUxBQU8sV0FBVyw2QkFBWCxXQUFXLGlHQUFhO1lBUy9CLG1MQUFPLFdBQVcsNkJBQVgsV0FBVyxpR0FBUTtZQU8xQiwyTUFBTyxtQkFBbUIsNkJBQW5CLG1CQUFtQixpSEFBUTtZQU1sQyw2S0FBTyxTQUFTLDZCQUFULFNBQVMsNkZBQVU7WUFNMUIsbUxBQU8sV0FBVyw2QkFBWCxXQUFXLGlHQUFRO1lBTTFCLHNMQUFPLFlBQVksNkJBQVosWUFBWSxtR0FBVTtZQU03Qiw2S0FBTyxTQUFTLDZCQUFULFNBQVMsNkZBQXFDO1lBTXJELGtNQUFPLGdCQUFnQiw2QkFBaEIsZ0JBQWdCLDJHQUFnQjtZQU12QyxnTEFBTyxVQUFVLDZCQUFWLFVBQVUsK0ZBQWE7WUFNOUIsMEtBQU8sUUFBUSw2QkFBUixRQUFRLDJGQUFhO1lBTTVCLDZLQUFPLFNBQVMsNkJBQVQsU0FBUyw2RkFBVTtZQU0xQixnTEFBTyxVQUFVLDZCQUFWLFVBQVUsK0ZBQWtCO1lBdktyQyw2S0FtWkM7OztZQW5aWSx1REFBVzs7UUFDdEI7O1dBRUc7UUFHSSxFQUFFLHFEQUFVO1FBRW5COztXQUVHO1FBRUksU0FBUyw4R0FBVTtRQUUxQjs7V0FFRztRQUVJLElBQUksZ0hBQVU7UUFFckI7O1dBRUc7UUFFSSxFQUFFLHlHQUFZO1FBRXJCOztXQUVHO1FBRUksRUFBRSx1R0FBWTtRQUVyQjs7V0FFRztRQUVJLEdBQUcsd0dBQVk7UUFFdEI7O1dBRUc7UUFFSSxPQUFPLDZHQUFVO1FBRXhCLDBFQUEwRTtRQUVuRSxVQUFVLG9IQUFVO1FBRTNCLGdFQUFnRTtRQUV6RCxtQkFBbUIsZ0lBQVU7UUFFcEMsd0NBQXdDO1FBRWpDLGNBQWMsMkhBQVcsQ0FBQyxHQUFDO1FBRWxDLDJFQUEyRTtRQUVwRSxzQkFBc0IsdUlBQVU7UUFFdkMsaUZBQWlGO1FBRTFFLHdCQUF3QixpSkFBVTtRQUV6Qyx1RUFBdUU7UUFFaEUsZ0JBQWdCLDJJQUFVO1FBRWpDLHFFQUFxRTtRQUU5RCxnQkFBZ0IsMEhBQWtDLEVBQUUsR0FBQztRQUU1RDs7V0FFRztRQUdJLE1BQU0seUhBQXNCO1FBRW5DLHNFQUFzRTtRQUUvRCxlQUFlLHdIQUFVO1FBRWhDLDZFQUE2RTtRQUV0RSxzQkFBc0Isd0lBQVU7UUFFdkM7O1dBRUc7UUFFSSxRQUFRLHdIQUFXLENBQUMsR0FBQztRQUU1Qjs7V0FFRztRQUVJLFdBQVcsNkdBQVcsQ0FBQyxHQUFDO1FBRS9COzs7OztXQUtHO1FBRUksV0FBVyx5SEFBUTtRQUUxQjs7O1dBR0c7UUFFSSxtQkFBbUIsaUlBQVE7UUFFbEM7O1dBRUc7UUFFSSxTQUFTLCtIQUFVO1FBRTFCOztXQUVHO1FBRUksV0FBVyx1SEFBUTtRQUUxQjs7V0FFRztRQUVJLFlBQVksMEhBQVU7UUFFN0I7O1dBRUc7UUFFSSxTQUFTLCtHQUEwQixVQUFVLEdBQUM7UUFFckQ7O1dBRUc7UUFFSSxnQkFBZ0IsbUhBQWEsRUFBRSxHQUFDO1FBRXZDOztXQUVHO1FBRUksVUFBVSxvSEFBVyxDQUFDLEdBQUM7UUFFOUI7O1dBRUc7UUFFSSxRQUFRLDRHQUFXLENBQUMsR0FBQztRQUU1Qjs7V0FFRztRQUVJLFNBQVMsb0hBQVU7UUFFMUI7O1dBRUc7UUFFSSxVQUFVLDZHQUFZLEtBQUssR0FBQztRQUVuQztZQUNFLEtBQUssRUFBRSxDQUFDOztZQUNSLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMscUJBQXFCO1lBQy9DLElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDO1lBQ3hCLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7WUFDYixJQUFJLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQztTQUNmO1FBRWUsS0FBSyxDQUFDLG1CQUFtQjtZQUN2QyxNQUFNLGFBQWEsR0FBRyxNQUFNLEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQ3hELE1BQU0sZ0JBQWdCLEdBQUc7Z0JBQ3ZCLElBQUksQ0FBQyxzQkFBc0I7Z0JBQzNCLElBQUksQ0FBQyx3QkFBd0I7Z0JBQzdCLElBQUksQ0FBQyxnQkFBZ0I7YUFDdEIsQ0FBQztZQUNGLElBQUksZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLEtBQUssU0FBUyxDQUFDLEVBQUUsQ0FBQztnQkFDakUsT0FBTyxhQUFhLENBQUMsc0JBQXNCLENBQUM7Z0JBQzVDLE9BQU8sYUFBYSxDQUFDLHdCQUF3QixDQUFDO2dCQUM5QyxPQUFPLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQztZQUN4QyxDQUFDO2lCQUFNLElBQ0wsT0FBTyxJQUFJLENBQUMsc0JBQXNCLEtBQUssUUFBUTttQkFDNUMsQ0FBQyxxQ0FBcUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDO21CQUN4RSxPQUFPLElBQUksQ0FBQyx3QkFBd0IsS0FBSyxRQUFRO21CQUNqRCxDQUFDLHNDQUFzQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsd0JBQXdCLENBQUM7bUJBQzNFLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixLQUFLLFFBQVE7bUJBQ3pDLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUN2RCxDQUFDO2dCQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsd0RBQXdELENBQUMsQ0FBQztZQUM1RSxDQUFDO1lBQ0QsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztnQkFDN0IsT0FBTyxhQUFhLENBQUMsVUFBVSxDQUFDO1lBQ2xDLENBQUM7WUFDRCxPQUFPLGFBQWEsQ0FBQztRQUN2QixDQUFDO1FBRU0sTUFBTSxDQUFDLEtBQUssQ0FBQyw4QkFBOEIsQ0FDaEQsZUFBdUIsRUFDdkIsaUJBQXlCO1lBRXpCLElBQ0UsT0FBTyxlQUFlLEtBQUssUUFBUTttQkFDaEMsQ0FBQyxxQ0FBcUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDO21CQUM1RCxPQUFPLGlCQUFpQixLQUFLLFFBQVE7bUJBQ3JDLENBQUMsc0NBQXNDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDO2dCQUNsRSxNQUFNLElBQUksS0FBSyxDQUFDLHdEQUF3RCxDQUFDLENBQUM7WUFDNUUsT0FBTyxNQUFNLFdBQVcsQ0FBQyxXQUFXLENBQUM7Z0JBQ25DLHNCQUFzQixFQUFFLGVBQWU7Z0JBQ3ZDLHdCQUF3QixFQUFFLGlCQUFpQjthQUM1QyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQ7O1dBRUc7UUFDSSxNQUFNLENBQUMsU0FBUztZQUNyQixNQUFNLEtBQUssR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ2hDLEtBQUssQ0FBQyxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUM3QixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFRDs7V0FFRztRQUNJLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQVU7WUFDckMsT0FBTyxNQUFNLFdBQVcsQ0FBQyxXQUFXLENBQUM7Z0JBQ25DLEVBQUU7YUFDSCxDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQ7O1dBRUc7UUFDSSxNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxNQUEwQjtZQUN6RCxPQUFPLE1BQU0sV0FBVyxDQUFDLFlBQVksQ0FBQztnQkFDcEMsTUFBTTthQUNQLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRDs7V0FFRztRQUNJLE1BQU0sQ0FBQyxLQUFLLENBQUMsc0JBQXNCLENBQUMsS0FBSyxHQUFHLEVBQUU7WUFDbkQsTUFBTSxHQUFHLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUN2QixPQUFPLE1BQU0sV0FBVyxDQUFDLFdBQVcsQ0FBQztnQkFDbkMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLENBQUMsRUFBRTtnQkFDdEQsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRTthQUMzQixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ1osQ0FBQztRQUVNLE1BQU0sQ0FBQyxLQUFLLENBQUMscUJBQXFCLENBQUMsS0FBSyxHQUFHLEVBQUU7WUFDbEQsT0FBTyxNQUFNLFdBQVcsQ0FBQyxXQUFXLENBQUM7Z0JBQ25DLE1BQU0sRUFBRSxRQUFRO2FBQ2pCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDWixDQUFDO1FBRU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQzlCLE1BQTJCLEVBQzNCLEtBQWEsRUFDYixJQUE2QjtZQUU3QixNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUMvRSxJQUFJLFNBQVMsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDcEIsT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDO1lBQ0QsTUFBTSxVQUFVLEdBQUksV0FFbEIsQ0FBQyxVQUFVLENBQUM7WUFDZCxNQUFNLE1BQU0sR0FBRyxNQUFNLFVBQVUsQ0FBQyxTQUFTLENBQ3ZDLE1BQU0sRUFDTixXQUFpRSxDQUNsRSxDQUFDO1lBQ0YsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDVCxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNsQyxDQUFDO1lBQ0QsTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDdEMsSUFBSSxDQUFDO2dCQUNILE9BQU8sTUFBTSxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDaEMsQ0FBQztvQkFBUyxDQUFDO2dCQUNULE1BQU0sTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3ZCLENBQUM7UUFDSCxDQUFDO1FBRUQ7O1dBRUc7UUFDSSxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FDNUIsS0FBSyxHQUFHLEdBQUcsRUFDWCxTQUEwRSxFQUFFO1lBRTVFLE1BQU0sS0FBSyxHQUF3QixFQUFFLENBQUM7WUFDdEMsSUFBSSxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ3JCLEtBQUssQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQztZQUNyQyxDQUFDO1lBQ0QsSUFBSSxNQUFNLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQzNCLEtBQUssQ0FBQyxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2hFLENBQUM7WUFDRCxPQUFPLE1BQU0sV0FBVyxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN6RSxDQUFDO1FBRUQ7O1dBRUc7UUFDSSxNQUFNLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUFDLE1BQWM7WUFDdEQsT0FBTyxNQUFNLFdBQVcsQ0FBQyxZQUFZLENBQUM7Z0JBQ3BDLGdCQUFnQixFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLEVBQUU7YUFDbkQsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVEOztXQUVHO1FBQ0ksTUFBTSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxNQUFjO1lBQ25ELE9BQU8sTUFBTSxXQUFXLENBQUMsWUFBWSxDQUFDO2dCQUNwQyxZQUFZLEVBQUUsTUFBTTthQUNyQixDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQ7O1dBRUc7UUFDSSxhQUFhO1lBQ2xCLElBQUksQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDO1lBQzFCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNoQyxDQUFDO1FBRUQ7OztXQUdHO1FBQ0ksVUFBVSxDQUFDLFdBQW1CO1lBQ25DLElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUM5QixzRUFBc0U7WUFDdEUsd0NBQXdDO1lBQ3hDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDM0IsQ0FBQztRQUVEOztXQUVHO1FBQ0ksVUFBVSxDQUFDLEtBQWE7WUFDN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUM7WUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDekIsQ0FBQztRQUVNLHFCQUFxQixDQUFDLGNBQTJDO1lBQ3RFLE1BQU0sWUFBWSxHQUFHLENBQUMsSUFBSSxDQUFDLGdCQUFnQixJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FDdkQsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxFQUFFLEtBQUssY0FBYyxDQUFDLEVBQUUsQ0FDdEQsQ0FBQztZQUNGLFlBQVksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7WUFDbkQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNsRCxDQUFDO1FBRUQ7O1dBRUc7UUFDSSxhQUFhLENBQUMsVUFBa0IsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJO1lBQ2xELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQztZQUN6QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQztZQUVsRCwwQ0FBMEM7WUFDMUMsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDdEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsaUJBQWlCLElBQUksQ0FBQyxXQUFXLFdBQVcsQ0FBQztZQUNoRSxDQUFDO1FBQ0gsQ0FBQztRQUVEOztXQUVHO1FBQ0ksa0JBQWtCO1lBQ3ZCLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNkLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO2dCQUM3QyxJQUFJLEtBQUssRUFBRSxDQUFDO29CQUNWLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUM3QyxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFFRDs7V0FFRztRQUNJLHNCQUFzQjtZQUMzQixNQUFNLE9BQU8sR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO1lBQ2xDLEtBQUssTUFBTSxPQUFPLElBQUksSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQztnQkFDcEMsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDM0MsSUFBSSxLQUFLLEVBQUUsQ0FBQztvQkFDVixPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO2dCQUN0QyxDQUFDO1lBQ0gsQ0FBQztZQUNELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUM7UUFDdkMsQ0FBQzs7OztTQWxaVSxXQUFXIn0=
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import * as plugins from '../../plugins.js';
|
|
2
|
+
/**
|
|
3
|
+
* Durable, binding-scoped Web Push admission counters.
|
|
4
|
+
*
|
|
5
|
+
* A credential rotation must not reset these counters, so the stable binding
|
|
6
|
+
* id and lifecycle generation are the authority rather than a credential id.
|
|
7
|
+
*/
|
|
8
|
+
export declare class WebPushAdmissionDoc extends plugins.smartdata.SmartDataDbDoc<WebPushAdmissionDoc, WebPushAdmissionDoc> {
|
|
9
|
+
bindingId: string;
|
|
10
|
+
lifecycleGeneration: number;
|
|
11
|
+
shortWindowStartedAt: number;
|
|
12
|
+
shortWindowCount: number;
|
|
13
|
+
longWindowStartedAt: number;
|
|
14
|
+
longWindowCount: number;
|
|
15
|
+
revision: number;
|
|
16
|
+
updatedAt: number;
|
|
17
|
+
purgeAt: Date;
|
|
18
|
+
static getNativeCollection(): plugins.smartdata.SmartdataCollection<WebPushAdmissionDoc>['mongoDbCollection'];
|
|
19
|
+
}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
|
2
|
+
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
|
|
3
|
+
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
4
|
+
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
|
5
|
+
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
|
6
|
+
var _, done = false;
|
|
7
|
+
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
8
|
+
var context = {};
|
|
9
|
+
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
|
|
10
|
+
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
|
|
11
|
+
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
|
|
12
|
+
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
|
|
13
|
+
if (kind === "accessor") {
|
|
14
|
+
if (result === void 0) continue;
|
|
15
|
+
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
|
|
16
|
+
if (_ = accept(result.get)) descriptor.get = _;
|
|
17
|
+
if (_ = accept(result.set)) descriptor.set = _;
|
|
18
|
+
if (_ = accept(result.init)) initializers.unshift(_);
|
|
19
|
+
}
|
|
20
|
+
else if (_ = accept(result)) {
|
|
21
|
+
if (kind === "field") initializers.unshift(_);
|
|
22
|
+
else descriptor[key] = _;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
26
|
+
done = true;
|
|
27
|
+
};
|
|
28
|
+
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
|
|
29
|
+
var useValue = arguments.length > 2;
|
|
30
|
+
for (var i = 0; i < initializers.length; i++) {
|
|
31
|
+
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
|
32
|
+
}
|
|
33
|
+
return useValue ? value : void 0;
|
|
34
|
+
};
|
|
35
|
+
import * as plugins from '../../plugins.js';
|
|
36
|
+
import { DcRouterDb } from '../classes.dcrouter-db.js';
|
|
37
|
+
const getDb = () => DcRouterDb.getInstance().getDb();
|
|
38
|
+
/**
|
|
39
|
+
* Durable, binding-scoped Web Push admission counters.
|
|
40
|
+
*
|
|
41
|
+
* A credential rotation must not reset these counters, so the stable binding
|
|
42
|
+
* id and lifecycle generation are the authority rather than a credential id.
|
|
43
|
+
*/
|
|
44
|
+
let WebPushAdmissionDoc = (() => {
|
|
45
|
+
let _classDecorators = [plugins.smartdata.Collection(() => getDb())];
|
|
46
|
+
let _classDescriptor;
|
|
47
|
+
let _classExtraInitializers = [];
|
|
48
|
+
let _classThis;
|
|
49
|
+
let _classSuper = plugins.smartdata.SmartDataDbDoc;
|
|
50
|
+
let _bindingId_decorators;
|
|
51
|
+
let _bindingId_initializers = [];
|
|
52
|
+
let _bindingId_extraInitializers = [];
|
|
53
|
+
let _lifecycleGeneration_decorators;
|
|
54
|
+
let _lifecycleGeneration_initializers = [];
|
|
55
|
+
let _lifecycleGeneration_extraInitializers = [];
|
|
56
|
+
let _shortWindowStartedAt_decorators;
|
|
57
|
+
let _shortWindowStartedAt_initializers = [];
|
|
58
|
+
let _shortWindowStartedAt_extraInitializers = [];
|
|
59
|
+
let _shortWindowCount_decorators;
|
|
60
|
+
let _shortWindowCount_initializers = [];
|
|
61
|
+
let _shortWindowCount_extraInitializers = [];
|
|
62
|
+
let _longWindowStartedAt_decorators;
|
|
63
|
+
let _longWindowStartedAt_initializers = [];
|
|
64
|
+
let _longWindowStartedAt_extraInitializers = [];
|
|
65
|
+
let _longWindowCount_decorators;
|
|
66
|
+
let _longWindowCount_initializers = [];
|
|
67
|
+
let _longWindowCount_extraInitializers = [];
|
|
68
|
+
let _revision_decorators;
|
|
69
|
+
let _revision_initializers = [];
|
|
70
|
+
let _revision_extraInitializers = [];
|
|
71
|
+
let _updatedAt_decorators;
|
|
72
|
+
let _updatedAt_initializers = [];
|
|
73
|
+
let _updatedAt_extraInitializers = [];
|
|
74
|
+
let _purgeAt_decorators;
|
|
75
|
+
let _purgeAt_initializers = [];
|
|
76
|
+
let _purgeAt_extraInitializers = [];
|
|
77
|
+
var WebPushAdmissionDoc = class extends _classSuper {
|
|
78
|
+
static { _classThis = this; }
|
|
79
|
+
static {
|
|
80
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
81
|
+
_bindingId_decorators = [plugins.smartdata.svDb()];
|
|
82
|
+
_lifecycleGeneration_decorators = [plugins.smartdata.svDb()];
|
|
83
|
+
_shortWindowStartedAt_decorators = [plugins.smartdata.svDb()];
|
|
84
|
+
_shortWindowCount_decorators = [plugins.smartdata.svDb()];
|
|
85
|
+
_longWindowStartedAt_decorators = [plugins.smartdata.svDb()];
|
|
86
|
+
_longWindowCount_decorators = [plugins.smartdata.svDb()];
|
|
87
|
+
_revision_decorators = [plugins.smartdata.svDb()];
|
|
88
|
+
_updatedAt_decorators = [plugins.smartdata.svDb()];
|
|
89
|
+
_purgeAt_decorators = [plugins.smartdata.svDb()];
|
|
90
|
+
__esDecorate(null, null, _bindingId_decorators, { kind: "field", name: "bindingId", static: false, private: false, access: { has: obj => "bindingId" in obj, get: obj => obj.bindingId, set: (obj, value) => { obj.bindingId = value; } }, metadata: _metadata }, _bindingId_initializers, _bindingId_extraInitializers);
|
|
91
|
+
__esDecorate(null, null, _lifecycleGeneration_decorators, { kind: "field", name: "lifecycleGeneration", static: false, private: false, access: { has: obj => "lifecycleGeneration" in obj, get: obj => obj.lifecycleGeneration, set: (obj, value) => { obj.lifecycleGeneration = value; } }, metadata: _metadata }, _lifecycleGeneration_initializers, _lifecycleGeneration_extraInitializers);
|
|
92
|
+
__esDecorate(null, null, _shortWindowStartedAt_decorators, { kind: "field", name: "shortWindowStartedAt", static: false, private: false, access: { has: obj => "shortWindowStartedAt" in obj, get: obj => obj.shortWindowStartedAt, set: (obj, value) => { obj.shortWindowStartedAt = value; } }, metadata: _metadata }, _shortWindowStartedAt_initializers, _shortWindowStartedAt_extraInitializers);
|
|
93
|
+
__esDecorate(null, null, _shortWindowCount_decorators, { kind: "field", name: "shortWindowCount", static: false, private: false, access: { has: obj => "shortWindowCount" in obj, get: obj => obj.shortWindowCount, set: (obj, value) => { obj.shortWindowCount = value; } }, metadata: _metadata }, _shortWindowCount_initializers, _shortWindowCount_extraInitializers);
|
|
94
|
+
__esDecorate(null, null, _longWindowStartedAt_decorators, { kind: "field", name: "longWindowStartedAt", static: false, private: false, access: { has: obj => "longWindowStartedAt" in obj, get: obj => obj.longWindowStartedAt, set: (obj, value) => { obj.longWindowStartedAt = value; } }, metadata: _metadata }, _longWindowStartedAt_initializers, _longWindowStartedAt_extraInitializers);
|
|
95
|
+
__esDecorate(null, null, _longWindowCount_decorators, { kind: "field", name: "longWindowCount", static: false, private: false, access: { has: obj => "longWindowCount" in obj, get: obj => obj.longWindowCount, set: (obj, value) => { obj.longWindowCount = value; } }, metadata: _metadata }, _longWindowCount_initializers, _longWindowCount_extraInitializers);
|
|
96
|
+
__esDecorate(null, null, _revision_decorators, { kind: "field", name: "revision", static: false, private: false, access: { has: obj => "revision" in obj, get: obj => obj.revision, set: (obj, value) => { obj.revision = value; } }, metadata: _metadata }, _revision_initializers, _revision_extraInitializers);
|
|
97
|
+
__esDecorate(null, null, _updatedAt_decorators, { kind: "field", name: "updatedAt", static: false, private: false, access: { has: obj => "updatedAt" in obj, get: obj => obj.updatedAt, set: (obj, value) => { obj.updatedAt = value; } }, metadata: _metadata }, _updatedAt_initializers, _updatedAt_extraInitializers);
|
|
98
|
+
__esDecorate(null, null, _purgeAt_decorators, { kind: "field", name: "purgeAt", static: false, private: false, access: { has: obj => "purgeAt" in obj, get: obj => obj.purgeAt, set: (obj, value) => { obj.purgeAt = value; } }, metadata: _metadata }, _purgeAt_initializers, _purgeAt_extraInitializers);
|
|
99
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
100
|
+
WebPushAdmissionDoc = _classThis = _classDescriptor.value;
|
|
101
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
102
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
103
|
+
}
|
|
104
|
+
bindingId = __runInitializers(this, _bindingId_initializers, void 0);
|
|
105
|
+
lifecycleGeneration = (__runInitializers(this, _bindingId_extraInitializers), __runInitializers(this, _lifecycleGeneration_initializers, void 0));
|
|
106
|
+
shortWindowStartedAt = (__runInitializers(this, _lifecycleGeneration_extraInitializers), __runInitializers(this, _shortWindowStartedAt_initializers, void 0));
|
|
107
|
+
shortWindowCount = (__runInitializers(this, _shortWindowStartedAt_extraInitializers), __runInitializers(this, _shortWindowCount_initializers, void 0));
|
|
108
|
+
longWindowStartedAt = (__runInitializers(this, _shortWindowCount_extraInitializers), __runInitializers(this, _longWindowStartedAt_initializers, void 0));
|
|
109
|
+
longWindowCount = (__runInitializers(this, _longWindowStartedAt_extraInitializers), __runInitializers(this, _longWindowCount_initializers, void 0));
|
|
110
|
+
revision = (__runInitializers(this, _longWindowCount_extraInitializers), __runInitializers(this, _revision_initializers, void 0));
|
|
111
|
+
updatedAt = (__runInitializers(this, _revision_extraInitializers), __runInitializers(this, _updatedAt_initializers, void 0));
|
|
112
|
+
purgeAt = (__runInitializers(this, _updatedAt_extraInitializers), __runInitializers(this, _purgeAt_initializers, void 0));
|
|
113
|
+
static getNativeCollection() {
|
|
114
|
+
return getDb().mongoDb.collection('WebPushAdmissionDoc');
|
|
115
|
+
}
|
|
116
|
+
constructor() {
|
|
117
|
+
super(...arguments);
|
|
118
|
+
__runInitializers(this, _purgeAt_extraInitializers);
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
return WebPushAdmissionDoc = _classThis;
|
|
122
|
+
})();
|
|
123
|
+
export { WebPushAdmissionDoc };
|
|
124
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy53ZWJwdXNoLWFkbWlzc2lvbi5kb2MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90cy9kYi9kb2N1bWVudHMvY2xhc3Nlcy53ZWJwdXNoLWFkbWlzc2lvbi5kb2MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sa0JBQWtCLENBQUM7QUFDNUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXZELE1BQU0sS0FBSyxHQUFHLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztBQUVyRDs7Ozs7R0FLRztJQUVVLG1CQUFtQjs0QkFEL0IsT0FBTyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUM7Ozs7c0JBQ0gsT0FBTyxDQUFDLFNBQVMsQ0FBQyxjQUFjOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O21DQUF4QyxTQUFRLFdBR3hDOzs7O3FDQUNFLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFOytDQUd4QixPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRTtnREFHeEIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUU7NENBR3hCLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFOytDQUd4QixPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRTsyQ0FHeEIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUU7b0NBR3hCLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFO3FDQUd4QixPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRTttQ0FHeEIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUU7WUF2QnpCLDZLQUFPLFNBQVMsNkJBQVQsU0FBUyw2RkFBVTtZQUcxQiwyTUFBTyxtQkFBbUIsNkJBQW5CLG1CQUFtQixpSEFBVTtZQUdwQyw4TUFBTyxvQkFBb0IsNkJBQXBCLG9CQUFvQixtSEFBVTtZQUdyQyxrTUFBTyxnQkFBZ0IsNkJBQWhCLGdCQUFnQiwyR0FBVTtZQUdqQywyTUFBTyxtQkFBbUIsNkJBQW5CLG1CQUFtQixpSEFBVTtZQUdwQywrTEFBTyxlQUFlLDZCQUFmLGVBQWUseUdBQVU7WUFHaEMsMEtBQU8sUUFBUSw2QkFBUixRQUFRLDJGQUFVO1lBR3pCLDZLQUFPLFNBQVMsNkJBQVQsU0FBUyw2RkFBVTtZQUcxQix1S0FBTyxPQUFPLDZCQUFQLE9BQU8seUZBQVE7WUE3QnhCLDZLQW1DQzs7O1lBbkNZLHVEQUFtQjs7UUFLdkIsU0FBUyw0REFBVTtRQUduQixtQkFBbUIsK0hBQVU7UUFHN0Isb0JBQW9CLDBJQUFVO1FBRzlCLGdCQUFnQix1SUFBVTtRQUcxQixtQkFBbUIsc0lBQVU7UUFHN0IsZUFBZSxxSUFBVTtRQUd6QixRQUFRLDBIQUFVO1FBR2xCLFNBQVMsb0hBQVU7UUFHbkIsT0FBTyxtSEFBUTtRQUVmLE1BQU0sQ0FBQyxtQkFBbUI7WUFFL0IsT0FBTyxLQUFLLEVBQUUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDM0QsQ0FBQzs7Ozs7Ozs7U0FsQ1UsbUJBQW1CIn0=
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import * as plugins from '../../plugins.js';
|
|
2
|
+
import type { IWebPushEncryptedEnvelope } from '../../webpush/classes.webpush-crypto.js';
|
|
3
|
+
export interface IWebPushStoredCredential {
|
|
4
|
+
id: string;
|
|
5
|
+
status: plugins.servezoneInterfaces.data.TWebPushCredentialStatus;
|
|
6
|
+
hmacKeyId: string;
|
|
7
|
+
secretHash?: string;
|
|
8
|
+
createdAt: number;
|
|
9
|
+
updatedAt: number;
|
|
10
|
+
lastRotatedAt: number | null;
|
|
11
|
+
validUntil: number | null;
|
|
12
|
+
}
|
|
13
|
+
export interface IWebPushStoredVapidKey {
|
|
14
|
+
id: string;
|
|
15
|
+
publicKey: string;
|
|
16
|
+
status: plugins.servezoneInterfaces.data.TWebPushVapidKeyStatus;
|
|
17
|
+
createdAt: number;
|
|
18
|
+
activatedAt: number | null;
|
|
19
|
+
retireAfter: number | null;
|
|
20
|
+
retiredAt: number | null;
|
|
21
|
+
privateKeyEnvelope?: IWebPushEncryptedEnvelope;
|
|
22
|
+
}
|
|
23
|
+
export interface IWebPushCredentialRotationRecovery {
|
|
24
|
+
requestedCredentialId: string;
|
|
25
|
+
resultingCredentialId: string;
|
|
26
|
+
lifecycleGeneration: number;
|
|
27
|
+
secretEnvelope: IWebPushEncryptedEnvelope;
|
|
28
|
+
createdAt: number;
|
|
29
|
+
expiresAt: number;
|
|
30
|
+
}
|
|
31
|
+
export type TWebPushControllerIntent = 'enabled' | 'disabled' | 'deleted';
|
|
32
|
+
export interface IWebPushStoredControllerFence {
|
|
33
|
+
id: string;
|
|
34
|
+
epoch: string;
|
|
35
|
+
generation: number;
|
|
36
|
+
operationId: string;
|
|
37
|
+
intent: TWebPushControllerIntent;
|
|
38
|
+
requestDigest: string;
|
|
39
|
+
appliedAt: number;
|
|
40
|
+
}
|
|
41
|
+
export declare class WebPushBindingDoc extends plugins.smartdata.SmartDataDbDoc<WebPushBindingDoc, WebPushBindingDoc> {
|
|
42
|
+
id: string;
|
|
43
|
+
ownerGatewayClientType: plugins.servezoneInterfaces.data.TGatewayClientType;
|
|
44
|
+
ownerGatewayClientId: string;
|
|
45
|
+
ownerAppInstanceId: string;
|
|
46
|
+
enabled: boolean;
|
|
47
|
+
status: plugins.servezoneInterfaces.data.TWebPushBindingStatus;
|
|
48
|
+
credential: IWebPushStoredCredential;
|
|
49
|
+
/** At most one still-valid overlap credential; expired entries are scrubbed. */
|
|
50
|
+
previousCredentials: IWebPushStoredCredential[];
|
|
51
|
+
/** MUST BE ABSENT outside the bounded idempotent credential-rotation replay window. */
|
|
52
|
+
credentialRotationRecovery?: IWebPushCredentialRotationRecovery;
|
|
53
|
+
vapidKeys: IWebPushStoredVapidKey[];
|
|
54
|
+
createdAt: number;
|
|
55
|
+
updatedAt: number;
|
|
56
|
+
createdBy: string;
|
|
57
|
+
mutationRevision: number;
|
|
58
|
+
lifecycleGeneration: number;
|
|
59
|
+
/** Highest durably applied controller mutation for this owner-reserving binding. */
|
|
60
|
+
controllerFence?: IWebPushStoredControllerFence;
|
|
61
|
+
/** MUST BE ABSENT unless this owner-reserving binding is a deletion tombstone. */
|
|
62
|
+
deletedAt?: number;
|
|
63
|
+
static getNativeCollection(): plugins.smartdata.SmartdataCollection<WebPushBindingDoc>['mongoDbCollection'];
|
|
64
|
+
createSavableObject(): Promise<WebPushBindingDoc>;
|
|
65
|
+
}
|