@webda/core 1.6.0-beta.1 → 2.0.0-beta.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/lib/application.d.ts +317 -195
- package/lib/application.js +171 -674
- package/lib/application.js.map +1 -1
- package/lib/application.spec.js +97 -289
- package/lib/application.spec.js.map +1 -1
- package/lib/core.d.ts +102 -214
- package/lib/core.js +146 -70
- package/lib/core.js.map +1 -1
- package/lib/core.spec.js +80 -17
- package/lib/core.spec.js.map +1 -1
- package/lib/index.d.ts +14 -9
- package/lib/index.js +19 -10
- package/lib/index.js.map +1 -1
- package/lib/models/aclmodel.d.ts +29 -8
- package/lib/models/aclmodel.js +68 -18
- package/lib/models/aclmodel.js.map +1 -1
- package/lib/models/aclmodel.spec.js +56 -19
- package/lib/models/aclmodel.spec.js.map +1 -1
- package/lib/models/coremodel.d.ts +9 -17
- package/lib/models/coremodel.js +36 -36
- package/lib/models/coremodel.js.map +1 -1
- package/lib/models/ident.d.ts +8 -3
- package/lib/models/ident.js +8 -1
- package/lib/models/ident.js.map +1 -1
- package/lib/models/ident.spec.js +3 -0
- package/lib/models/ident.spec.js.map +1 -1
- package/lib/models/ownermodel.d.ts +8 -4
- package/lib/models/ownermodel.js +10 -6
- package/lib/models/ownermodel.js.map +1 -1
- package/lib/models/rolemodel.js.map +1 -1
- package/lib/models/rolemodel.spec.js +4 -1
- package/lib/models/rolemodel.spec.js.map +1 -1
- package/lib/models/user.d.ts +32 -3
- package/lib/models/user.js +31 -0
- package/lib/models/user.js.map +1 -1
- package/lib/models/user.spec.js +11 -0
- package/lib/models/user.spec.js.map +1 -1
- package/lib/queues/filequeue.d.ts +2 -7
- package/lib/queues/filequeue.js +2 -11
- package/lib/queues/filequeue.js.map +1 -1
- package/lib/queues/filequeue.spec.js +0 -1
- package/lib/queues/filequeue.spec.js.map +1 -1
- package/lib/queues/memoryqueue.d.ts +2 -7
- package/lib/queues/memoryqueue.js +1 -11
- package/lib/queues/memoryqueue.js.map +1 -1
- package/lib/queues/memoryqueue.spec.js +0 -1
- package/lib/queues/memoryqueue.spec.js.map +1 -1
- package/lib/queues/queue.spec.d.ts +1 -1
- package/lib/queues/queue.spec.js +11 -9
- package/lib/queues/queue.spec.js.map +1 -1
- package/lib/queues/queueservice.js +1 -1
- package/lib/queues/queueservice.js.map +1 -1
- package/lib/router.d.ts +46 -1
- package/lib/router.js +89 -51
- package/lib/router.js.map +1 -1
- package/lib/router.spec.js +19 -2
- package/lib/router.spec.js.map +1 -1
- package/lib/services/asyncevents.d.ts +1 -0
- package/lib/services/asyncevents.js +4 -3
- package/lib/services/asyncevents.js.map +1 -1
- package/lib/services/authentication.d.ts +47 -5
- package/lib/services/authentication.js +99 -40
- package/lib/services/authentication.js.map +1 -1
- package/lib/services/authentication.spec.js +10 -0
- package/lib/services/authentication.spec.js.map +1 -1
- package/lib/services/binary.d.ts +126 -64
- package/lib/services/binary.js +247 -96
- package/lib/services/binary.js.map +1 -1
- package/lib/services/binary.spec.d.ts +1 -0
- package/lib/services/binary.spec.js +96 -25
- package/lib/services/binary.spec.js.map +1 -1
- package/lib/services/cloudbinary.d.ts +67 -0
- package/lib/services/cloudbinary.js +178 -0
- package/lib/services/cloudbinary.js.map +1 -0
- package/lib/services/cloudbinary.spec.d.ts +13 -0
- package/lib/services/cloudbinary.spec.js +205 -0
- package/lib/services/cloudbinary.spec.js.map +1 -0
- package/lib/services/configuration.d.ts +7 -2
- package/lib/services/configuration.js +4 -3
- package/lib/services/configuration.js.map +1 -1
- package/lib/services/configuration.spec.js +1 -0
- package/lib/services/configuration.spec.js.map +1 -1
- package/lib/services/cron.d.ts +5 -6
- package/lib/services/cron.js +4 -11
- package/lib/services/cron.js.map +1 -1
- package/lib/services/cron.spec.js +2 -3
- package/lib/services/cron.spec.js.map +1 -1
- package/lib/services/debugmailer.d.ts +11 -6
- package/lib/services/debugmailer.js +20 -14
- package/lib/services/debugmailer.js.map +1 -1
- package/lib/services/debugmailer.spec.js +1 -0
- package/lib/services/debugmailer.spec.js.map +1 -1
- package/lib/services/echo.d.ts +2 -6
- package/lib/services/echo.js +1 -11
- package/lib/services/echo.js.map +1 -1
- package/lib/services/echo.spec.js +1 -0
- package/lib/services/echo.spec.js.map +1 -1
- package/lib/services/filebinary.d.ts +36 -12
- package/lib/services/filebinary.js +123 -38
- package/lib/services/filebinary.js.map +1 -1
- package/lib/services/filebinary.spec.d.ts +4 -2
- package/lib/services/filebinary.spec.js +48 -8
- package/lib/services/filebinary.spec.js.map +1 -1
- package/lib/services/fileconfiguration.d.ts +1 -5
- package/lib/services/fileconfiguration.js +1 -10
- package/lib/services/fileconfiguration.js.map +1 -1
- package/lib/services/invitationservice.d.ts +198 -0
- package/lib/services/invitationservice.js +443 -0
- package/lib/services/invitationservice.js.map +1 -0
- package/lib/services/invitationservice.spec.d.ts +1 -0
- package/lib/services/invitationservice.spec.js +517 -0
- package/lib/services/invitationservice.spec.js.map +1 -0
- package/lib/services/kubernetesconfiguration.d.ts +3 -5
- package/lib/services/kubernetesconfiguration.js +5 -12
- package/lib/services/kubernetesconfiguration.js.map +1 -1
- package/lib/services/kubernetesconfiguration.spec.js +1 -1
- package/lib/services/kubernetesconfiguration.spec.js.map +1 -1
- package/lib/services/mailer.d.ts +44 -7
- package/lib/services/mailer.js +34 -14
- package/lib/services/mailer.js.map +1 -1
- package/lib/services/mailer.spec.js +29 -0
- package/lib/services/mailer.spec.js.map +1 -1
- package/lib/services/notificationservice.d.ts +76 -0
- package/lib/services/notificationservice.js +91 -0
- package/lib/services/notificationservice.js.map +1 -0
- package/lib/services/notificationservice.spec.d.ts +1 -0
- package/lib/services/notificationservice.spec.js +104 -0
- package/lib/services/notificationservice.spec.js.map +1 -0
- package/lib/services/oauth.d.ts +6 -4
- package/lib/services/oauth.js +28 -11
- package/lib/services/oauth.js.map +1 -1
- package/lib/services/oauth.spec.js +7 -10
- package/lib/services/oauth.spec.js.map +1 -1
- package/lib/services/resource.d.ts +1 -5
- package/lib/services/resource.js +22 -17
- package/lib/services/resource.js.map +1 -1
- package/lib/services/resource.spec.js +0 -1
- package/lib/services/resource.spec.js.map +1 -1
- package/lib/services/service.d.ts +29 -26
- package/lib/services/service.js +16 -22
- package/lib/services/service.js.map +1 -1
- package/lib/services/service.spec.js +3 -0
- package/lib/services/service.spec.js.map +1 -1
- package/lib/services/version.d.ts +2 -5
- package/lib/services/version.js +1 -10
- package/lib/services/version.js.map +1 -1
- package/lib/stores/aggregator.d.ts +3 -5
- package/lib/stores/aggregator.js +3 -10
- package/lib/stores/aggregator.js.map +1 -1
- package/lib/stores/file.d.ts +7 -8
- package/lib/stores/file.js +18 -18
- package/lib/stores/file.js.map +1 -1
- package/lib/stores/file.spec.js +8 -6
- package/lib/stores/file.spec.js.map +1 -1
- package/lib/stores/mapper.d.ts +1 -5
- package/lib/stores/mapper.js +56 -39
- package/lib/stores/mapper.js.map +1 -1
- package/lib/stores/mapper.spec.js +120 -1
- package/lib/stores/mapper.spec.js.map +1 -1
- package/lib/stores/memory.d.ts +5 -9
- package/lib/stores/memory.js +5 -17
- package/lib/stores/memory.js.map +1 -1
- package/lib/stores/memory.spec.d.ts +1 -0
- package/lib/stores/memory.spec.js +32 -0
- package/lib/stores/memory.spec.js.map +1 -1
- package/lib/stores/store.d.ts +131 -26
- package/lib/stores/store.js +399 -80
- package/lib/stores/store.js.map +1 -1
- package/lib/stores/store.spec.d.ts +29 -2
- package/lib/stores/store.spec.js +204 -31
- package/lib/stores/store.spec.js.map +1 -1
- package/lib/stores/webdaql/WebdaQLLexer.d.ts +53 -0
- package/lib/stores/webdaql/WebdaQLLexer.js +290 -0
- package/lib/stores/webdaql/WebdaQLLexer.js.map +1 -0
- package/lib/stores/webdaql/WebdaQLParserLexer.d.ts +53 -0
- package/lib/stores/webdaql/WebdaQLParserLexer.js +290 -0
- package/lib/stores/webdaql/WebdaQLParserLexer.js.map +1 -0
- package/lib/stores/webdaql/WebdaQLParserListener.d.ts +308 -0
- package/lib/stores/webdaql/WebdaQLParserListener.js +4 -0
- package/lib/stores/webdaql/WebdaQLParserListener.js.map +1 -0
- package/lib/stores/webdaql/WebdaQLParserParser.d.ts +301 -0
- package/lib/stores/webdaql/WebdaQLParserParser.js +1781 -0
- package/lib/stores/webdaql/WebdaQLParserParser.js.map +1 -0
- package/lib/stores/webdaql/WebdaQLParserVisitor.d.ts +198 -0
- package/lib/stores/webdaql/WebdaQLParserVisitor.js +4 -0
- package/lib/stores/webdaql/WebdaQLParserVisitor.js.map +1 -0
- package/lib/stores/webdaql/query.d.ts +300 -0
- package/lib/stores/webdaql/query.js +471 -0
- package/lib/stores/webdaql/query.js.map +1 -0
- package/lib/stores/webdaql/query.spec.d.ts +1 -0
- package/lib/stores/webdaql/query.spec.js +136 -0
- package/lib/stores/webdaql/query.spec.js.map +1 -0
- package/lib/test.d.ts +50 -2
- package/lib/test.js +161 -16
- package/lib/test.js.map +1 -1
- package/lib/unpackedapplication.d.ts +66 -0
- package/lib/unpackedapplication.js +202 -0
- package/lib/unpackedapplication.js.map +1 -0
- package/lib/utils/context.d.ts +14 -12
- package/lib/utils/context.js +14 -9
- package/lib/utils/context.js.map +1 -1
- package/lib/utils/context.spec.js +1 -1
- package/lib/utils/context.spec.js.map +1 -1
- package/lib/utils/cookie.d.ts +6 -3
- package/lib/utils/cookie.js +22 -20
- package/lib/utils/cookie.js.map +1 -1
- package/lib/utils/cookie.spec.js +0 -1
- package/lib/utils/cookie.spec.js.map +1 -1
- package/lib/utils/logger.d.ts +16 -3
- package/lib/utils/logger.js +16 -3
- package/lib/utils/logger.js.map +1 -1
- package/lib/utils/logger.spec.js.map +1 -1
- package/lib/utils/serializers.js +5 -1
- package/lib/utils/serializers.js.map +1 -1
- package/lib/utils/waiter.d.ts +1 -1
- package/lib/utils/waiter.js.map +1 -1
- package/package.json +25 -18
- package/test/config-file-no-reload.json +2 -1
- package/test/config-file-reload.json +2 -1
- package/test/config-invitation.json +63 -0
- package/test/config-kube-reload.json +2 -1
- package/test/config-reload.json +1 -1
- package/test/config.json +6 -10
- package/test/config.old.json +1 -1
- package/test/moddas/annotatedservice.js +1 -3
- package/test/moddas/debugmailer.js +2 -7
- package/test/moddas/fakeservice.js +1 -1
- package/test/moddas/voidstore.js +2 -4
- package/test/models/ident.js +1 -1
- package/test/models/task.js +1 -5
- package/webda.module.json +1124 -0
- package/test/config.old-default.json +0 -151
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kubernetesconfiguration.spec.js","sourceRoot":"","sources":["../../src/services/kubernetesconfiguration.spec.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"kubernetesconfiguration.spec.js","sourceRoot":"","sources":["../../src/services/kubernetesconfiguration.spec.ts"],"names":[],"mappings":"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"}
|
package/lib/services/mailer.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Ident, User } from "..";
|
|
2
|
+
import { NotificationService } from "./notificationservice";
|
|
2
3
|
import { Service, ServiceParameters } from "./service";
|
|
3
4
|
interface IEmailTemplate {
|
|
4
5
|
renderAll(file: string, options: any): any;
|
|
@@ -6,6 +7,17 @@ interface IEmailTemplate {
|
|
|
6
7
|
interface TemplatesMap {
|
|
7
8
|
[key: string]: IEmailTemplate;
|
|
8
9
|
}
|
|
10
|
+
/**
|
|
11
|
+
* Represent a mailer service
|
|
12
|
+
*/
|
|
13
|
+
export interface MailerService extends NotificationService {
|
|
14
|
+
/**
|
|
15
|
+
*
|
|
16
|
+
* @params options Options to pass to the sendMail option of the nodemailer module
|
|
17
|
+
* @params callback to pass to the sendMail
|
|
18
|
+
*/
|
|
19
|
+
send(options: MailerSendOptions, callback: () => void): Promise<any>;
|
|
20
|
+
}
|
|
9
21
|
interface MailerSendOptions {
|
|
10
22
|
/**
|
|
11
23
|
* Sender of the email
|
|
@@ -65,8 +77,36 @@ export declare class MailerParameters extends ServiceParameters {
|
|
|
65
77
|
* @see https://www.npmjs.com/package/email-templates
|
|
66
78
|
*/
|
|
67
79
|
emailTemplateOptions?: any;
|
|
80
|
+
/**
|
|
81
|
+
* Define the type of transport to use
|
|
82
|
+
*/
|
|
83
|
+
transport?: string;
|
|
84
|
+
/**
|
|
85
|
+
* SES AWS Bean if transport === "ses"
|
|
86
|
+
*/
|
|
87
|
+
SES: any;
|
|
68
88
|
constructor(params: any);
|
|
69
89
|
}
|
|
90
|
+
export declare abstract class AbstractMailer<T extends ServiceParameters = ServiceParameters> extends Service<T> implements MailerService {
|
|
91
|
+
/**
|
|
92
|
+
* @inheritdoc
|
|
93
|
+
*/
|
|
94
|
+
abstract send(options: MailerSendOptions, callback?: () => void): Promise<any>;
|
|
95
|
+
/**
|
|
96
|
+
* @inheritdoc
|
|
97
|
+
*/
|
|
98
|
+
abstract hasNotification(notification: string): any;
|
|
99
|
+
/**
|
|
100
|
+
* If user has an email
|
|
101
|
+
* @param user
|
|
102
|
+
* @returns
|
|
103
|
+
*/
|
|
104
|
+
handleNotificationFor(user: User | Ident): Promise<boolean>;
|
|
105
|
+
/**
|
|
106
|
+
* @override
|
|
107
|
+
*/
|
|
108
|
+
sendNotification(user: User | Ident, notification: string, replacements: any): Promise<void>;
|
|
109
|
+
}
|
|
70
110
|
/**
|
|
71
111
|
* A basic Mailer based on the nodemailer module
|
|
72
112
|
*
|
|
@@ -77,8 +117,9 @@ export declare class MailerParameters extends ServiceParameters {
|
|
|
77
117
|
* Parameters
|
|
78
118
|
* config: { ... }
|
|
79
119
|
* @category CoreServices
|
|
120
|
+
* @WebdaModda
|
|
80
121
|
*/
|
|
81
|
-
declare class Mailer<T extends MailerParameters = MailerParameters> extends
|
|
122
|
+
declare class Mailer<T extends MailerParameters = MailerParameters> extends AbstractMailer<T> {
|
|
82
123
|
_transporter: any;
|
|
83
124
|
_templates: TemplatesMap;
|
|
84
125
|
/**
|
|
@@ -105,16 +146,12 @@ declare class Mailer<T extends MailerParameters = MailerParameters> extends Serv
|
|
|
105
146
|
* @param name
|
|
106
147
|
* @returns
|
|
107
148
|
*/
|
|
108
|
-
|
|
149
|
+
hasNotification(name: string): boolean;
|
|
109
150
|
/**
|
|
110
151
|
*
|
|
111
152
|
* @params options Options to pass to the sendMail option of the nodemailer module
|
|
112
153
|
* @params callback to pass to the sendMail
|
|
113
154
|
*/
|
|
114
155
|
send(options: MailerSendOptions, callback?: any): Promise<any>;
|
|
115
|
-
/**
|
|
116
|
-
* @inheritdoc
|
|
117
|
-
*/
|
|
118
|
-
static getModda(): ModdaDefinition;
|
|
119
156
|
}
|
|
120
157
|
export { Mailer, TemplatesMap, IEmailTemplate };
|
package/lib/services/mailer.js
CHANGED
|
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.Mailer = exports.MailerParameters = void 0;
|
|
12
|
+
exports.Mailer = exports.AbstractMailer = exports.MailerParameters = void 0;
|
|
13
13
|
const Email = require("email-templates");
|
|
14
14
|
const fs = require("fs");
|
|
15
15
|
const nodemailer = require("nodemailer");
|
|
@@ -32,6 +32,35 @@ class MailerParameters extends service_1.ServiceParameters {
|
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
exports.MailerParameters = MailerParameters;
|
|
35
|
+
class AbstractMailer extends service_1.Service {
|
|
36
|
+
/**
|
|
37
|
+
* If user has an email
|
|
38
|
+
* @param user
|
|
39
|
+
* @returns
|
|
40
|
+
*/
|
|
41
|
+
handleNotificationFor(user) {
|
|
42
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
43
|
+
return user.getEmail() !== null;
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* @override
|
|
48
|
+
*/
|
|
49
|
+
sendNotification(user, notification, replacements) {
|
|
50
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
51
|
+
let email = user.getEmail();
|
|
52
|
+
if (!email) {
|
|
53
|
+
throw new Error(`Cannot find a valid email for ${user.__type} '${user.getUuid()}'`);
|
|
54
|
+
}
|
|
55
|
+
return this.send({
|
|
56
|
+
template: notification,
|
|
57
|
+
replacements: Object.assign({}, replacements),
|
|
58
|
+
to: email
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
exports.AbstractMailer = AbstractMailer;
|
|
35
64
|
/**
|
|
36
65
|
* A basic Mailer based on the nodemailer module
|
|
37
66
|
*
|
|
@@ -42,8 +71,9 @@ exports.MailerParameters = MailerParameters;
|
|
|
42
71
|
* Parameters
|
|
43
72
|
* config: { ... }
|
|
44
73
|
* @category CoreServices
|
|
74
|
+
* @WebdaModda
|
|
45
75
|
*/
|
|
46
|
-
class Mailer extends
|
|
76
|
+
class Mailer extends AbstractMailer {
|
|
47
77
|
constructor() {
|
|
48
78
|
super(...arguments);
|
|
49
79
|
this._templates = {};
|
|
@@ -80,7 +110,7 @@ class Mailer extends service_1.Service {
|
|
|
80
110
|
*/
|
|
81
111
|
_getTemplate(name) {
|
|
82
112
|
if (!this._templates[name]) {
|
|
83
|
-
if (!this.
|
|
113
|
+
if (!this.hasNotification(name)) {
|
|
84
114
|
this._webda.log("WARN", "No template found for", name);
|
|
85
115
|
return;
|
|
86
116
|
}
|
|
@@ -99,7 +129,7 @@ class Mailer extends service_1.Service {
|
|
|
99
129
|
* @param name
|
|
100
130
|
* @returns
|
|
101
131
|
*/
|
|
102
|
-
|
|
132
|
+
hasNotification(name) {
|
|
103
133
|
// Load template
|
|
104
134
|
return fs.existsSync(this.parameters.templates + name);
|
|
105
135
|
}
|
|
@@ -142,16 +172,6 @@ class Mailer extends service_1.Service {
|
|
|
142
172
|
return this._transporter.sendMail(options, callback);
|
|
143
173
|
});
|
|
144
174
|
}
|
|
145
|
-
/**
|
|
146
|
-
* @inheritdoc
|
|
147
|
-
*/
|
|
148
|
-
static getModda() {
|
|
149
|
-
return {
|
|
150
|
-
uuid: "Webda/Mailer",
|
|
151
|
-
label: "Mailer",
|
|
152
|
-
description: "Allow your application to send email including a templating system"
|
|
153
|
-
};
|
|
154
|
-
}
|
|
155
175
|
}
|
|
156
176
|
exports.Mailer = Mailer;
|
|
157
177
|
//# sourceMappingURL=mailer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mailer.js","sourceRoot":"","sources":["../../src/services/mailer.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;;;;;;;;AACb,yCAAyC;AACzC,yBAAyB;AACzB,yCAAyC;AACzC,6BAA8B;
|
|
1
|
+
{"version":3,"file":"mailer.js","sourceRoot":"","sources":["../../src/services/mailer.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,6 +20,7 @@ const mocha_1 = require("@testdeck/mocha");
|
|
|
20
20
|
const test_1 = require("../test");
|
|
21
21
|
const __1 = require("..");
|
|
22
22
|
const mailer_1 = require("./mailer");
|
|
23
|
+
const sinon = require("sinon");
|
|
23
24
|
let MailerTest = class MailerTest extends test_1.WebdaTest {
|
|
24
25
|
before() {
|
|
25
26
|
const _super = Object.create(null, {
|
|
@@ -117,6 +118,28 @@ let MailerTest = class MailerTest extends test_1.WebdaTest {
|
|
|
117
118
|
}), /Cannot send email as no transporter is defined/);
|
|
118
119
|
});
|
|
119
120
|
}
|
|
121
|
+
handleNotificationFor() {
|
|
122
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
123
|
+
const user = new __1.User();
|
|
124
|
+
assert.strictEqual(yield this.mailer.handleNotificationFor(user), false);
|
|
125
|
+
user.load({ email: "test@test.com" });
|
|
126
|
+
assert.strictEqual(yield this.mailer.handleNotificationFor(user), true);
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
sendNotification() {
|
|
130
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
131
|
+
let stub = sinon.stub(this.mailer, "send").callsFake(() => __awaiter(this, void 0, void 0, function* () { }));
|
|
132
|
+
try {
|
|
133
|
+
const user = new __1.User();
|
|
134
|
+
assert.rejects(() => this.mailer.sendNotification(user, "", undefined, undefined), /Cannot find a valid email for user/);
|
|
135
|
+
user.load({ email: "test@test.com" });
|
|
136
|
+
yield this.mailer.sendNotification(user, "", undefined, undefined);
|
|
137
|
+
}
|
|
138
|
+
finally {
|
|
139
|
+
stub.restore();
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
}
|
|
120
143
|
};
|
|
121
144
|
__decorate([
|
|
122
145
|
mocha_1.test
|
|
@@ -142,6 +165,12 @@ __decorate([
|
|
|
142
165
|
__decorate([
|
|
143
166
|
mocha_1.test
|
|
144
167
|
], MailerTest.prototype, "noTransporter", null);
|
|
168
|
+
__decorate([
|
|
169
|
+
mocha_1.test
|
|
170
|
+
], MailerTest.prototype, "handleNotificationFor", null);
|
|
171
|
+
__decorate([
|
|
172
|
+
mocha_1.test
|
|
173
|
+
], MailerTest.prototype, "sendNotification", null);
|
|
145
174
|
MailerTest = __decorate([
|
|
146
175
|
mocha_1.suite
|
|
147
176
|
], MailerTest);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mailer.spec.js","sourceRoot":"","sources":["../../src/services/mailer.spec.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;;;;;;;;;;;;;AAEb,iCAAiC;AACjC,2CAA8C;AAC9C,kCAAoC;AAEpC,
|
|
1
|
+
{"version":3,"file":"mailer.spec.js","sourceRoot":"","sources":["../../src/services/mailer.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { Ident } from "../models/ident";
|
|
2
|
+
import { User } from "../models/user";
|
|
3
|
+
import { Service, ServiceParameters } from "./service";
|
|
4
|
+
/**
|
|
5
|
+
* Define a service that can notify a user based on his info
|
|
6
|
+
* It can use email or SMS or any other media
|
|
7
|
+
*/
|
|
8
|
+
export interface NotificationService {
|
|
9
|
+
/**
|
|
10
|
+
* Check if this type of notification is available
|
|
11
|
+
*/
|
|
12
|
+
hasNotification(notification: string): Promise<boolean>;
|
|
13
|
+
/**
|
|
14
|
+
* Check if the service can deliver notification to this user
|
|
15
|
+
* @param user
|
|
16
|
+
*/
|
|
17
|
+
handleNotificationFor(userOrIdent: User | Ident): Promise<boolean>;
|
|
18
|
+
/**
|
|
19
|
+
* Send the notification to the user
|
|
20
|
+
* @param user
|
|
21
|
+
* @param notification
|
|
22
|
+
* @param replacements
|
|
23
|
+
*/
|
|
24
|
+
sendNotification(user: User | Ident, notification: string, replacements: any): Promise<void>;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Parameters for multi notification service
|
|
28
|
+
*/
|
|
29
|
+
export declare class MultiNotificationParameters extends ServiceParameters {
|
|
30
|
+
/**
|
|
31
|
+
* Notification service that will send
|
|
32
|
+
* The order of the array is important if multiple is false
|
|
33
|
+
* When multiple is `false` the first available NotificationService will
|
|
34
|
+
* be used, otherwise every available NotificationService will be used
|
|
35
|
+
*/
|
|
36
|
+
senders: string[];
|
|
37
|
+
/**
|
|
38
|
+
* Define if it sends one or several notification per user
|
|
39
|
+
* @default false
|
|
40
|
+
*/
|
|
41
|
+
multiple?: boolean;
|
|
42
|
+
/**
|
|
43
|
+
* @override
|
|
44
|
+
*/
|
|
45
|
+
constructor(params: any);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Allow an aggregation of Notification to send via multiple media
|
|
49
|
+
* like SMS and Email
|
|
50
|
+
*
|
|
51
|
+
* @WebdaModda
|
|
52
|
+
*/
|
|
53
|
+
export default class MultiNotificationService<T extends MultiNotificationParameters = MultiNotificationParameters> extends Service<T> implements NotificationService {
|
|
54
|
+
senders: NotificationService[];
|
|
55
|
+
/**
|
|
56
|
+
* @override
|
|
57
|
+
*/
|
|
58
|
+
loadParameters(params: any): MultiNotificationParameters;
|
|
59
|
+
/**
|
|
60
|
+
* @override
|
|
61
|
+
*/
|
|
62
|
+
resolve(): void;
|
|
63
|
+
/**
|
|
64
|
+
* @override
|
|
65
|
+
*/
|
|
66
|
+
sendNotification(user: User | Ident, notification: string, replacements: any): Promise<void>;
|
|
67
|
+
/**
|
|
68
|
+
* @override
|
|
69
|
+
*/
|
|
70
|
+
handleNotificationFor(user: User | Ident): Promise<boolean>;
|
|
71
|
+
/**
|
|
72
|
+
* @override
|
|
73
|
+
*/
|
|
74
|
+
hasNotification(notification: string): Promise<boolean>;
|
|
75
|
+
}
|
|
76
|
+
export { MultiNotificationService };
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.MultiNotificationService = exports.MultiNotificationParameters = void 0;
|
|
13
|
+
const service_1 = require("./service");
|
|
14
|
+
/**
|
|
15
|
+
* Parameters for multi notification service
|
|
16
|
+
*/
|
|
17
|
+
class MultiNotificationParameters extends service_1.ServiceParameters {
|
|
18
|
+
/**
|
|
19
|
+
* @override
|
|
20
|
+
*/
|
|
21
|
+
constructor(params) {
|
|
22
|
+
var _a;
|
|
23
|
+
super(params);
|
|
24
|
+
(_a = this.senders) !== null && _a !== void 0 ? _a : (this.senders = []);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.MultiNotificationParameters = MultiNotificationParameters;
|
|
28
|
+
/**
|
|
29
|
+
* Allow an aggregation of Notification to send via multiple media
|
|
30
|
+
* like SMS and Email
|
|
31
|
+
*
|
|
32
|
+
* @WebdaModda
|
|
33
|
+
*/
|
|
34
|
+
class MultiNotificationService extends service_1.Service {
|
|
35
|
+
/**
|
|
36
|
+
* @override
|
|
37
|
+
*/
|
|
38
|
+
loadParameters(params) {
|
|
39
|
+
return new MultiNotificationParameters(params);
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* @override
|
|
43
|
+
*/
|
|
44
|
+
resolve() {
|
|
45
|
+
this.senders = this.parameters.senders.map(s => {
|
|
46
|
+
let service = this.getService(s);
|
|
47
|
+
if (!service) {
|
|
48
|
+
throw new Error(`Unknown service '${s}'`);
|
|
49
|
+
}
|
|
50
|
+
return service;
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* @override
|
|
55
|
+
*/
|
|
56
|
+
sendNotification(user, notification, replacements) {
|
|
57
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
58
|
+
const selectedSenders = (yield Promise.all(this.senders.map((s) => __awaiter(this, void 0, void 0, function* () {
|
|
59
|
+
if ((yield s.hasNotification(notification)) && (yield s.handleNotificationFor(user))) {
|
|
60
|
+
return s;
|
|
61
|
+
}
|
|
62
|
+
})))).filter(s => s !== undefined);
|
|
63
|
+
if (!selectedSenders.length) {
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
if (!this.parameters.multiple) {
|
|
67
|
+
return selectedSenders.shift().sendNotification(user, notification, replacements);
|
|
68
|
+
}
|
|
69
|
+
yield Promise.all(selectedSenders.map(s => s.sendNotification(user, notification, replacements)));
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* @override
|
|
74
|
+
*/
|
|
75
|
+
handleNotificationFor(user) {
|
|
76
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
77
|
+
return (yield Promise.all(this.senders.map(s => s.handleNotificationFor(user)))).some(s => s);
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* @override
|
|
82
|
+
*/
|
|
83
|
+
hasNotification(notification) {
|
|
84
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
85
|
+
return (yield Promise.all(this.senders.map(s => s.hasNotification(notification)))).some(s => s);
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
exports.default = MultiNotificationService;
|
|
90
|
+
exports.MultiNotificationService = MultiNotificationService;
|
|
91
|
+
//# sourceMappingURL=notificationservice.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notificationservice.js","sourceRoot":"","sources":["../../src/services/notificationservice.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,uCAAuD;AAyBvD;;GAEG;AACH,MAAa,2BAA4B,SAAQ,2BAAiB;IAchE;;OAEG;IACH,YAAY,MAAW;;QACrB,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,MAAA,IAAI,CAAC,OAAO,oCAAZ,IAAI,CAAC,OAAO,GAAK,EAAE,EAAC;IACtB,CAAC;CACF;AArBD,kEAqBC;AAED;;;;;GAKG;AACH,MAAqB,wBACnB,SAAQ,iBAAU;IAKlB;;OAEG;IACH,cAAc,CAAC,MAAW;QACxB,OAAO,IAAI,2BAA2B,CAAC,MAAM,CAAC,CAAC;IACjD,CAAC;IAED;;OAEG;IACH,OAAO;QACL,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YAC7C,IAAI,OAAO,GAAkC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC;YACjE,IAAI,CAAC,OAAO,EAAE;gBACZ,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;aAC3C;YACD,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACG,gBAAgB,CAAC,IAAkB,EAAE,YAAoB,EAAE,YAAiB;;YAChF,MAAM,eAAe,GAAG,CACtB,MAAM,OAAO,CAAC,GAAG,CACf,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAM,CAAC,EAAC,EAAE;gBACzB,IAAI,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,EAAE;oBACpF,OAAO,CAAC,CAAC;iBACV;YACH,CAAC,CAAA,CAAC,CACH,CACF,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;YAC/B,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;gBAC3B,OAAO;aACR;YACD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE;gBAC7B,OAAO,eAAe,CAAC,KAAK,EAAE,CAAC,gBAAgB,CAAC,IAAI,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;aACnF;YACD,MAAM,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;QACpG,CAAC;KAAA;IAED;;OAEG;IACG,qBAAqB,CAAC,IAAkB;;YAC5C,OAAO,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAChG,CAAC;KAAA;IAED;;OAEG;IACG,eAAe,CAAC,YAAoB;;YACxC,OAAO,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAClG,CAAC;KAAA;CACF;AA7DD,2CA6DC;AAEQ,4DAAwB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
9
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
10
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
11
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
12
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
13
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
14
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
15
|
+
});
|
|
16
|
+
};
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
const assert = require("assert");
|
|
19
|
+
const mocha_1 = require("@testdeck/mocha");
|
|
20
|
+
const test_1 = require("../test");
|
|
21
|
+
const notificationservice_1 = require("./notificationservice");
|
|
22
|
+
const __1 = require("..");
|
|
23
|
+
class FakeNotification extends __1.Service {
|
|
24
|
+
constructor() {
|
|
25
|
+
super(...arguments);
|
|
26
|
+
this.template = false;
|
|
27
|
+
this.user = false;
|
|
28
|
+
this.sent = 0;
|
|
29
|
+
}
|
|
30
|
+
hasNotification(notification) {
|
|
31
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
32
|
+
return this.template;
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
handleNotificationFor(user) {
|
|
36
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
37
|
+
return this.user;
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
sendNotification(user, notification, replacements) {
|
|
41
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
42
|
+
this.sent++;
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
let NotificationServiceTest = class NotificationServiceTest extends test_1.WebdaTest {
|
|
47
|
+
getTestConfiguration() {
|
|
48
|
+
return process.cwd() + "/test/config-invitation.json";
|
|
49
|
+
}
|
|
50
|
+
before() {
|
|
51
|
+
const _super = Object.create(null, {
|
|
52
|
+
before: { get: () => super.before }
|
|
53
|
+
});
|
|
54
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
55
|
+
yield _super.before.call(this);
|
|
56
|
+
this.service = new notificationservice_1.MultiNotificationService(this.webda, "notif", {
|
|
57
|
+
senders: ["notifA", "notifB"]
|
|
58
|
+
});
|
|
59
|
+
this.fakeA = new FakeNotification(this.webda, "notifA", {});
|
|
60
|
+
this.fakeB = new FakeNotification(this.webda, "notifB", {});
|
|
61
|
+
this.registerService(this.fakeA);
|
|
62
|
+
this.registerService(this.fakeB);
|
|
63
|
+
this.registerService(this.service);
|
|
64
|
+
this.service.resolve();
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
cov() {
|
|
68
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
69
|
+
assert.strictEqual(yield this.service.handleNotificationFor(undefined), false);
|
|
70
|
+
assert.strictEqual(yield this.service.hasNotification(undefined), false);
|
|
71
|
+
this.fakeB.user = true;
|
|
72
|
+
assert.strictEqual(yield this.service.handleNotificationFor(undefined), true);
|
|
73
|
+
this.fakeA.template = true;
|
|
74
|
+
assert.strictEqual(yield this.service.hasNotification(undefined), true);
|
|
75
|
+
yield this.service.sendNotification(undefined, undefined, undefined);
|
|
76
|
+
assert.strictEqual(this.fakeA.sent + this.fakeB.sent, 0);
|
|
77
|
+
this.fakeA.user = true;
|
|
78
|
+
yield this.service.sendNotification(undefined, undefined, undefined);
|
|
79
|
+
assert.strictEqual(this.fakeA.sent + this.fakeB.sent, 1);
|
|
80
|
+
this.fakeB.template = true;
|
|
81
|
+
yield this.service.sendNotification(undefined, undefined, undefined);
|
|
82
|
+
assert.strictEqual(this.fakeA.sent + this.fakeB.sent, 2);
|
|
83
|
+
this.service.getParameters().multiple = true;
|
|
84
|
+
yield this.service.sendNotification(undefined, undefined, undefined);
|
|
85
|
+
assert.strictEqual(this.fakeA.sent + this.fakeB.sent, 4);
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
exception() {
|
|
89
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
90
|
+
this.service.getParameters().senders.push("unknown");
|
|
91
|
+
assert.throws(() => this.service.resolve(), /Unknown service 'unknown'/);
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
__decorate([
|
|
96
|
+
mocha_1.test
|
|
97
|
+
], NotificationServiceTest.prototype, "cov", null);
|
|
98
|
+
__decorate([
|
|
99
|
+
mocha_1.test
|
|
100
|
+
], NotificationServiceTest.prototype, "exception", null);
|
|
101
|
+
NotificationServiceTest = __decorate([
|
|
102
|
+
mocha_1.suite
|
|
103
|
+
], NotificationServiceTest);
|
|
104
|
+
//# sourceMappingURL=notificationservice.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notificationservice.spec.js","sourceRoot":"","sources":["../../src/services/notificationservice.spec.ts"],"names":[],"mappings":"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"}
|
package/lib/services/oauth.d.ts
CHANGED
|
@@ -12,8 +12,6 @@ export interface EventOAuthToken extends EventWithContext {
|
|
|
12
12
|
*/
|
|
13
13
|
[key: string]: any;
|
|
14
14
|
}
|
|
15
|
-
export interface EventOAuthCallback extends EventOAuthToken {
|
|
16
|
-
}
|
|
17
15
|
/**
|
|
18
16
|
* OAuth return definition
|
|
19
17
|
*/
|
|
@@ -70,11 +68,15 @@ export declare class OAuthServiceParameters extends ServiceParameters {
|
|
|
70
68
|
authenticationService: string;
|
|
71
69
|
constructor(params: any);
|
|
72
70
|
}
|
|
71
|
+
export declare type OAuthEvents = {
|
|
72
|
+
"OAuth.Callback": EventOAuthToken;
|
|
73
|
+
"OAuth.Token": EventOAuthToken;
|
|
74
|
+
};
|
|
73
75
|
/**
|
|
74
76
|
* OAuth service implementing the default OAuth workflow
|
|
75
77
|
* It is abstract as it does not manage any provider as is
|
|
76
78
|
*/
|
|
77
|
-
export declare abstract class OAuthService<T extends OAuthServiceParameters = OAuthServiceParameters> extends Service<T> implements RequestFilter<Context> {
|
|
79
|
+
export declare abstract class OAuthService<T extends OAuthServiceParameters = OAuthServiceParameters, E extends OAuthEvents = OAuthEvents> extends Service<T, E> implements RequestFilter<Context> {
|
|
78
80
|
_authenticationService: Authentication;
|
|
79
81
|
/**
|
|
80
82
|
* Ensure default parameter url
|
|
@@ -137,7 +139,7 @@ export declare abstract class OAuthService<T extends OAuthServiceParameters = OA
|
|
|
137
139
|
* @param identId
|
|
138
140
|
* @param profile
|
|
139
141
|
*/
|
|
140
|
-
handleReturn(ctx: Context, identId: string, profile: any,
|
|
142
|
+
handleReturn(ctx: Context, identId: string, profile: any, _tokens?: any): Promise<void>;
|
|
141
143
|
/**
|
|
142
144
|
* Return default url for the provider
|
|
143
145
|
*/
|