nuudel-main 1.0.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/LICENSE +21 -0
- package/README.md +3 -0
- package/build/main/index.d.ts +6 -0
- package/build/main/index.js +19 -0
- package/build/main/lib/Types/Image.d.ts +10 -0
- package/build/main/lib/Types/Image.js +49 -0
- package/build/main/lib/Types/Link.d.ts +8 -0
- package/build/main/lib/Types/Link.js +23 -0
- package/build/main/lib/Types/Lookup.d.ts +8 -0
- package/build/main/lib/Types/Lookup.js +39 -0
- package/build/main/lib/Types/Note.d.ts +8 -0
- package/build/main/lib/Types/Note.js +29 -0
- package/build/main/lib/Types/index.d.ts +4 -0
- package/build/main/lib/Types/index.js +17 -0
- package/build/main/lib/controller/aws-s3.d.ts +2 -0
- package/build/main/lib/controller/aws-s3.js +64 -0
- package/build/main/lib/controller/imageResize.d.ts +2 -0
- package/build/main/lib/controller/imageResize.js +29 -0
- package/build/main/lib/controller/index.d.ts +5 -0
- package/build/main/lib/controller/index.js +13 -0
- package/build/main/lib/controller/profileCallback.d.ts +1 -0
- package/build/main/lib/controller/profileCallback.js +22 -0
- package/build/main/lib/controller/recapcha.d.ts +2 -0
- package/build/main/lib/controller/recapcha.js +44 -0
- package/build/main/lib/controller/sentNotification.d.ts +7 -0
- package/build/main/lib/controller/sentNotification.js +119 -0
- package/build/main/lib/controller/upload.d.ts +4 -0
- package/build/main/lib/controller/upload.js +90 -0
- package/build/main/lib/lib/ConnectDB.d.ts +1 -0
- package/build/main/lib/lib/ConnectDB.js +39 -0
- package/build/main/lib/lib/converter.d.ts +1 -0
- package/build/main/lib/lib/converter.js +104 -0
- package/build/main/lib/lib/index.d.ts +3 -0
- package/build/main/lib/lib/index.js +11 -0
- package/build/main/lib/loc/I18n.d.ts +5 -0
- package/build/main/lib/loc/I18n.js +37 -0
- package/build/main/lib/mailer/index.d.ts +2 -0
- package/build/main/lib/mailer/index.js +6 -0
- package/build/main/lib/mailer/sendmail.d.ts +2 -0
- package/build/main/lib/mailer/sendmail.js +52 -0
- package/build/main/lib/makeContext.d.ts +24 -0
- package/build/main/lib/makeContext.js +44 -0
- package/build/main/lib/makeSchema.d.ts +2 -0
- package/build/main/lib/makeSchema.js +46 -0
- package/build/main/lib/object-id.scalar.d.ts +11 -0
- package/build/main/lib/object-id.scalar.js +175 -0
- package/build/main/lib/permission.d.ts +8 -0
- package/build/main/lib/permission.js +89 -0
- package/build/main/lib/plugin/index.d.ts +3 -0
- package/build/main/lib/plugin/index.js +28 -0
- package/build/main/lib/plugin/next/NextPlugin.d.ts +2 -0
- package/build/main/lib/plugin/next/NextPlugin.js +30 -0
- package/build/main/lib/plugin/oauth/Ioauth.d.ts +36 -0
- package/build/main/lib/plugin/oauth/Ioauth.js +3 -0
- package/build/main/lib/plugin/oauth/coreProfile.d.ts +14 -0
- package/build/main/lib/plugin/oauth/coreProfile.js +44 -0
- package/build/main/lib/plugin/oauth/facebook.d.ts +9 -0
- package/build/main/lib/plugin/oauth/facebook.js +72 -0
- package/build/main/lib/plugin/oauth/oauthPlugin.d.ts +27 -0
- package/build/main/lib/plugin/oauth/oauthPlugin.js +150 -0
- package/build/main/lib/plugin/oauth/utils.d.ts +2 -0
- package/build/main/lib/plugin/oauth/utils.js +25 -0
- package/build/main/lib/service/core.model.d.ts +38 -0
- package/build/main/lib/service/core.model.js +483 -0
- package/build/main/lib/service/index.d.ts +6 -0
- package/build/main/lib/service/index.js +19 -0
- package/build/main/lib/service/makeContext.d.ts +24 -0
- package/build/main/lib/service/makeContext.js +44 -0
- package/build/main/lib/service/makeSchema.d.ts +2 -0
- package/build/main/lib/service/makeSchema.js +46 -0
- package/build/main/lib/service/object-id.scalar.d.ts +11 -0
- package/build/main/lib/service/object-id.scalar.js +175 -0
- package/build/main/lib/service/permission.d.ts +8 -0
- package/build/main/lib/service/permission.js +89 -0
- package/build/main/lib/service/typegoose-middleware.d.ts +2 -0
- package/build/main/lib/service/typegoose-middleware.js +23 -0
- package/build/main/lib/typegoose-middleware.d.ts +2 -0
- package/build/main/lib/typegoose-middleware.js +23 -0
- package/build/module/index.d.ts +6 -0
- package/build/module/index.js +7 -0
- package/build/module/lib/Types/Image.d.ts +10 -0
- package/build/module/lib/Types/Image.js +45 -0
- package/build/module/lib/Types/Link.d.ts +8 -0
- package/build/module/lib/Types/Link.js +20 -0
- package/build/module/lib/Types/Lookup.d.ts +8 -0
- package/build/module/lib/Types/Lookup.js +35 -0
- package/build/module/lib/Types/Note.d.ts +8 -0
- package/build/module/lib/Types/Note.js +26 -0
- package/build/module/lib/Types/index.d.ts +4 -0
- package/build/module/lib/Types/index.js +5 -0
- package/build/module/lib/controller/aws-s3.d.ts +2 -0
- package/build/module/lib/controller/aws-s3.js +56 -0
- package/build/module/lib/controller/imageResize.d.ts +2 -0
- package/build/module/lib/controller/imageResize.js +22 -0
- package/build/module/lib/controller/index.d.ts +5 -0
- package/build/module/lib/controller/index.js +6 -0
- package/build/module/lib/controller/profileCallback.d.ts +1 -0
- package/build/module/lib/controller/profileCallback.js +15 -0
- package/build/module/lib/controller/recapcha.d.ts +2 -0
- package/build/module/lib/controller/recapcha.js +37 -0
- package/build/module/lib/controller/sentNotification.d.ts +7 -0
- package/build/module/lib/controller/sentNotification.js +115 -0
- package/build/module/lib/controller/upload.d.ts +4 -0
- package/build/module/lib/controller/upload.js +82 -0
- package/build/module/lib/lib/ConnectDB.d.ts +1 -0
- package/build/module/lib/lib/ConnectDB.js +33 -0
- package/build/module/lib/lib/converter.d.ts +1 -0
- package/build/module/lib/lib/converter.js +100 -0
- package/build/module/lib/lib/index.d.ts +3 -0
- package/build/module/lib/lib/index.js +4 -0
- package/build/module/lib/loc/I18n.d.ts +5 -0
- package/build/module/lib/loc/I18n.js +30 -0
- package/build/module/lib/mailer/index.d.ts +2 -0
- package/build/module/lib/mailer/index.js +3 -0
- package/build/module/lib/mailer/sendmail.d.ts +2 -0
- package/build/module/lib/mailer/sendmail.js +44 -0
- package/build/module/lib/makeContext.d.ts +24 -0
- package/build/module/lib/makeContext.js +42 -0
- package/build/module/lib/makeSchema.d.ts +2 -0
- package/build/module/lib/makeSchema.js +41 -0
- package/build/module/lib/object-id.scalar.d.ts +11 -0
- package/build/module/lib/object-id.scalar.js +167 -0
- package/build/module/lib/permission.d.ts +8 -0
- package/build/module/lib/permission.js +85 -0
- package/build/module/lib/plugin/index.d.ts +3 -0
- package/build/module/lib/plugin/index.js +4 -0
- package/build/module/lib/plugin/next/NextPlugin.d.ts +2 -0
- package/build/module/lib/plugin/next/NextPlugin.js +23 -0
- package/build/module/lib/plugin/oauth/Ioauth.d.ts +36 -0
- package/build/module/lib/plugin/oauth/Ioauth.js +2 -0
- package/build/module/lib/plugin/oauth/coreProfile.d.ts +14 -0
- package/build/module/lib/plugin/oauth/coreProfile.js +40 -0
- package/build/module/lib/plugin/oauth/facebook.d.ts +9 -0
- package/build/module/lib/plugin/oauth/facebook.js +68 -0
- package/build/module/lib/plugin/oauth/oauthPlugin.d.ts +27 -0
- package/build/module/lib/plugin/oauth/oauthPlugin.js +143 -0
- package/build/module/lib/plugin/oauth/utils.d.ts +2 -0
- package/build/module/lib/plugin/oauth/utils.js +20 -0
- package/build/module/lib/service/core.model.d.ts +38 -0
- package/build/module/lib/service/core.model.js +500 -0
- package/build/module/lib/service/index.d.ts +6 -0
- package/build/module/lib/service/index.js +7 -0
- package/build/module/lib/service/lists/core.model.d.ts +38 -0
- package/build/module/lib/service/lists/core.model.js +500 -0
- package/build/module/lib/service/makeContext.d.ts +24 -0
- package/build/module/lib/service/makeContext.js +42 -0
- package/build/module/lib/service/makeSchema.d.ts +2 -0
- package/build/module/lib/service/makeSchema.js +41 -0
- package/build/module/lib/service/object-id.scalar.d.ts +11 -0
- package/build/module/lib/service/object-id.scalar.js +167 -0
- package/build/module/lib/service/permission.d.ts +8 -0
- package/build/module/lib/service/permission.js +85 -0
- package/build/module/lib/service/typegoose-middleware.d.ts +2 -0
- package/build/module/lib/service/typegoose-middleware.js +19 -0
- package/build/module/lib/typegoose-middleware.d.ts +2 -0
- package/build/module/lib/typegoose-middleware.js +19 -0
- package/package.json +127 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2019 Damdinsuren Dorjsuren
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
|
+
};
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
__exportStar(require("./lib/service"), exports);
|
|
14
|
+
__exportStar(require("./lib/controller"), exports);
|
|
15
|
+
__exportStar(require("./lib/lib"), exports);
|
|
16
|
+
__exportStar(require("./lib/loc/I18n"), exports);
|
|
17
|
+
__exportStar(require("./lib/mailer"), exports);
|
|
18
|
+
__exportStar(require("./lib/Types"), exports);
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsZ0RBQThCO0FBQzlCLG1EQUFpQztBQUNqQyw0Q0FBMEI7QUFDMUIsaURBQStCO0FBQy9CLCtDQUE2QjtBQUM3Qiw4Q0FBNEIifQ==
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare class Image {
|
|
2
|
+
constructor(value?: any);
|
|
3
|
+
protected uri: string;
|
|
4
|
+
protected width: number | undefined;
|
|
5
|
+
protected height: number | undefined;
|
|
6
|
+
static isValid(img: any): boolean;
|
|
7
|
+
equals(otherUri: string): boolean;
|
|
8
|
+
serialize(): object;
|
|
9
|
+
toString(): string;
|
|
10
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Image = void 0;
|
|
4
|
+
class Image {
|
|
5
|
+
constructor(value) {
|
|
6
|
+
this.uri = '';
|
|
7
|
+
this.width = undefined;
|
|
8
|
+
this.height = undefined;
|
|
9
|
+
if (typeof value === 'string' || value instanceof String) {
|
|
10
|
+
try {
|
|
11
|
+
value = JSON.parse(value.toString());
|
|
12
|
+
}
|
|
13
|
+
catch (_a) { }
|
|
14
|
+
}
|
|
15
|
+
if (typeof value === 'object') {
|
|
16
|
+
this.uri = !!value.uri ? value.uri : '';
|
|
17
|
+
this.width = (value === null || value === void 0 ? void 0 : value.width) || undefined;
|
|
18
|
+
this.height = (value === null || value === void 0 ? void 0 : value.height) || undefined;
|
|
19
|
+
}
|
|
20
|
+
else if (typeof value === 'string' || value instanceof String) {
|
|
21
|
+
this.uri = value.toString();
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
this.uri = '';
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
static isValid(img) {
|
|
28
|
+
return (typeof img === 'object' &&
|
|
29
|
+
Object.keys(img).filter(obj => obj === 'uri').length > 0);
|
|
30
|
+
}
|
|
31
|
+
equals(otherUri) {
|
|
32
|
+
return otherUri === this.uri;
|
|
33
|
+
}
|
|
34
|
+
serialize() {
|
|
35
|
+
let obj = { uri: this.uri };
|
|
36
|
+
if (!!this.width) {
|
|
37
|
+
obj['width'] = this.width;
|
|
38
|
+
}
|
|
39
|
+
if (!!this.height) {
|
|
40
|
+
obj['height'] = this.height;
|
|
41
|
+
}
|
|
42
|
+
return obj;
|
|
43
|
+
}
|
|
44
|
+
toString() {
|
|
45
|
+
return JSON.stringify(this.serialize());
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
exports.Image = Image;
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW1hZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL1R5cGVzL0ltYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLE1BQWEsS0FBSztJQUtoQixZQUFZLEtBQVc7UUFtQmIsUUFBRyxHQUFXLEVBQUUsQ0FBQztRQUNqQixVQUFLLEdBQXVCLFNBQVMsQ0FBQztRQUN0QyxXQUFNLEdBQXVCLFNBQVMsQ0FBQztRQW5CL0MsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxZQUFZLE1BQU0sRUFBRTtZQUN4RCxJQUFJO2dCQUNGLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO2FBQ3RDO1lBQUMsV0FBTSxHQUFFO1NBQ1g7UUFFRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtZQUM3QixJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDeEMsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFBLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxLQUFLLEtBQUksU0FBUyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsTUFBTSxLQUFJLFNBQVMsQ0FBQztTQUMxQzthQUFNLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssWUFBWSxNQUFNLEVBQUU7WUFDL0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDN0I7YUFBTTtZQUNMLElBQUksQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDO1NBQ2Y7SUFDSCxDQUFDO0lBVUQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFRO1FBQ3JCLE9BQU8sQ0FDTCxPQUFPLEdBQUcsS0FBSyxRQUFRO1lBQ3ZCLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLEtBQUssQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQ3pELENBQUM7SUFDSixDQUFDO0lBTUQsTUFBTSxDQUFDLFFBQWdCO1FBQ3JCLE9BQU8sUUFBUSxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDL0IsQ0FBQztJQUtELFNBQVM7UUFDUCxJQUFJLEdBQUcsR0FBUSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNoQixHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztTQUMzQjtRQUNELElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDakIsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7U0FDN0I7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFNRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7Q0FDRjtBQXBFRCxzQkFvRUMifQ==
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Link = void 0;
|
|
4
|
+
class Link extends String {
|
|
5
|
+
constructor(value) {
|
|
6
|
+
super(value);
|
|
7
|
+
this.text = value ? value : '';
|
|
8
|
+
}
|
|
9
|
+
static isValid(text) {
|
|
10
|
+
return typeof text === 'string' || text instanceof String;
|
|
11
|
+
}
|
|
12
|
+
equals(otherText) {
|
|
13
|
+
return otherText === this.toString();
|
|
14
|
+
}
|
|
15
|
+
serialize() {
|
|
16
|
+
return encodeURIComponent(this.text);
|
|
17
|
+
}
|
|
18
|
+
toString() {
|
|
19
|
+
return super.toString();
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
exports.Link = Link;
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGluay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvVHlwZXMvTGluay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxNQUFhLElBQUssU0FBUSxNQUFNO0lBSzlCLFlBQVksS0FBYztRQUN4QixLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDYixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDakMsQ0FBQztJQVFNLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBUztRQUM3QixPQUFPLE9BQU8sSUFBSSxLQUFLLFFBQVEsSUFBSSxJQUFJLFlBQVksTUFBTSxDQUFDO0lBQzVELENBQUM7SUFNTSxNQUFNLENBQUMsU0FBaUI7UUFDN0IsT0FBTyxTQUFTLEtBQUssSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFLTSxTQUFTO1FBQ2QsT0FBTyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQU1NLFFBQVE7UUFDYixPQUFPLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMxQixDQUFDO0NBQ0Y7QUExQ0Qsb0JBMENDIn0=
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Lookup = void 0;
|
|
4
|
+
class Lookup extends String {
|
|
5
|
+
constructor(value) {
|
|
6
|
+
super(value);
|
|
7
|
+
}
|
|
8
|
+
static isValid(data) {
|
|
9
|
+
return typeof data === 'string' || data instanceof String
|
|
10
|
+
? true
|
|
11
|
+
: data instanceof Array || typeof data.isArray !== 'undefined';
|
|
12
|
+
}
|
|
13
|
+
equals(otherText) {
|
|
14
|
+
return typeof otherText === 'string'
|
|
15
|
+
? otherText === super.toString()
|
|
16
|
+
: this.arraysEqual(otherText, super.toString());
|
|
17
|
+
}
|
|
18
|
+
arraysEqual(a, b) {
|
|
19
|
+
if (a === b)
|
|
20
|
+
return true;
|
|
21
|
+
if (a == null || b == null)
|
|
22
|
+
return false;
|
|
23
|
+
if (a.length != b.length)
|
|
24
|
+
return false;
|
|
25
|
+
for (var i = 0; i < a.length; ++i) {
|
|
26
|
+
if (a[i] !== b[i])
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
return true;
|
|
30
|
+
}
|
|
31
|
+
serialize() {
|
|
32
|
+
return super.toString();
|
|
33
|
+
}
|
|
34
|
+
toString() {
|
|
35
|
+
return super.toString();
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.Lookup = Lookup;
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9va3VwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9UeXBlcy9Mb29rdXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsTUFBYSxNQUFPLFNBQVEsTUFBTTtJQUtoQyxZQUFZLEtBQVc7UUFDckIsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBY2YsQ0FBQztJQVFELE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBUztRQUN0QixPQUFPLE9BQU8sSUFBSSxLQUFLLFFBQVEsSUFBSSxJQUFJLFlBQVksTUFBTTtZQUN2RCxDQUFDLENBQUMsSUFBSTtZQUNOLENBQUMsQ0FBQyxJQUFJLFlBQVksS0FBSyxJQUFJLE9BQU8sSUFBSSxDQUFDLE9BQU8sS0FBSyxXQUFXLENBQUM7SUFDbkUsQ0FBQztJQU1ELE1BQU0sQ0FBQyxTQUE0QjtRQUNqQyxPQUFPLE9BQU8sU0FBUyxLQUFLLFFBQVE7WUFDbEMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxLQUFLLENBQUMsUUFBUSxFQUFFO1lBQ2hDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBU08sV0FBVyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxLQUFLLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUk7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUN6QyxJQUFJLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLE1BQU07WUFBRSxPQUFPLEtBQUssQ0FBQztRQU92QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRTtZQUNqQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUFFLE9BQU8sS0FBSyxDQUFDO1NBQ2pDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBTUQsU0FBUztRQVlQLE9BQU8sS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFNRCxRQUFRO1FBQ04sT0FBTyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7SUFPMUIsQ0FBQztDQUNGO0FBbkdELHdCQW1HQyJ9
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Note = void 0;
|
|
4
|
+
class Note extends String {
|
|
5
|
+
constructor(value) {
|
|
6
|
+
super(value);
|
|
7
|
+
this.text = value;
|
|
8
|
+
}
|
|
9
|
+
static isValid(text) {
|
|
10
|
+
return typeof text === 'string' || text instanceof String;
|
|
11
|
+
}
|
|
12
|
+
equals(otherText) {
|
|
13
|
+
return otherText === this.toString();
|
|
14
|
+
}
|
|
15
|
+
serialize() {
|
|
16
|
+
if (typeof this.text === 'string') {
|
|
17
|
+
return this.text;
|
|
18
|
+
}
|
|
19
|
+
if (typeof this.text === 'boolean') {
|
|
20
|
+
return this.text ? 'true' : 'false';
|
|
21
|
+
}
|
|
22
|
+
return this.toString();
|
|
23
|
+
}
|
|
24
|
+
toString() {
|
|
25
|
+
return super.toString();
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.Note = Note;
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTm90ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvVHlwZXMvTm90ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxNQUFhLElBQUssU0FBUSxNQUFNO0lBSzlCLFlBQVksS0FBVztRQUNyQixLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDYixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBUU0sTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFTO1FBQzdCLE9BQU8sT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLElBQUksWUFBWSxNQUFNLENBQUM7SUFDNUQsQ0FBQztJQU1NLE1BQU0sQ0FBQyxTQUFpQjtRQUM3QixPQUFPLFNBQVMsS0FBSyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUtNLFNBQVM7UUFHZCxJQUFJLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUU7WUFDakMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQ2xCO1FBQ0QsSUFBSSxPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFO1lBQ2xDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7U0FDckM7UUFDRCxPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBTU0sUUFBUTtRQUNiLE9BQU8sS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzFCLENBQUM7Q0FDRjtBQWxERCxvQkFrREMifQ==
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
|
+
};
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
__exportStar(require("./Image"), exports);
|
|
14
|
+
__exportStar(require("./Link"), exports);
|
|
15
|
+
__exportStar(require("./Note"), exports);
|
|
16
|
+
__exportStar(require("./Lookup"), exports);
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL1R5cGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLDBDQUF3QjtBQUN4Qix5Q0FBdUI7QUFDdkIseUNBQXVCO0FBQ3ZCLDJDQUF5QiJ9
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.remove = exports.push = void 0;
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
const s3_1 = __importDefault(require("aws-sdk/clients/s3"));
|
|
9
|
+
const upload_1 = require("./upload");
|
|
10
|
+
const imageResize_1 = require("./imageResize");
|
|
11
|
+
const { DOMAIN, OBJECT_STORAGE_KEY_ID, OBJECT_STORAGE_SECRET, NEXT_PUBLIC_IMAGE_UPLOAD_URL, NEXT_PUBLIC_OBJECT_STORAGE_BUCKET, } = process.env;
|
|
12
|
+
let s3 = new s3_1.default({
|
|
13
|
+
endpoint: NEXT_PUBLIC_IMAGE_UPLOAD_URL || 'nyc3.digitaloceanspaces.com',
|
|
14
|
+
accessKeyId: OBJECT_STORAGE_KEY_ID,
|
|
15
|
+
secretAccessKey: OBJECT_STORAGE_SECRET,
|
|
16
|
+
});
|
|
17
|
+
async function push(path, encoding, mimetype) {
|
|
18
|
+
return new Promise(async (resolve, reject) => {
|
|
19
|
+
let filepath = upload_1.folder + path;
|
|
20
|
+
if (!fs_1.default.existsSync(filepath)) {
|
|
21
|
+
reject('File ' + filepath + ' does not exist');
|
|
22
|
+
}
|
|
23
|
+
let fileContent = undefined;
|
|
24
|
+
try {
|
|
25
|
+
fileContent = await (0, imageResize_1.imageResize)(filepath);
|
|
26
|
+
}
|
|
27
|
+
catch (ex) {
|
|
28
|
+
fileContent = fs_1.default.readFileSync(filepath);
|
|
29
|
+
}
|
|
30
|
+
const params = {
|
|
31
|
+
Bucket: NEXT_PUBLIC_OBJECT_STORAGE_BUCKET,
|
|
32
|
+
Key: DOMAIN +
|
|
33
|
+
'/' +
|
|
34
|
+
new Date().getFullYear().toString() +
|
|
35
|
+
'/' +
|
|
36
|
+
(new Date().getMonth() + 1).toString().padStart(2, '0') +
|
|
37
|
+
'/' +
|
|
38
|
+
path,
|
|
39
|
+
Body: fileContent,
|
|
40
|
+
ContentEncoding: encoding,
|
|
41
|
+
ContentType: mimetype,
|
|
42
|
+
ACL: 'public-read',
|
|
43
|
+
};
|
|
44
|
+
s3.upload(params, function (err, data) {
|
|
45
|
+
if (err || !data) {
|
|
46
|
+
return reject('');
|
|
47
|
+
}
|
|
48
|
+
console.log(`File uploaded successfully. ${data.Location}`);
|
|
49
|
+
resolve(data.Location);
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
exports.push = push;
|
|
54
|
+
async function remove(filename) {
|
|
55
|
+
var params = { Bucket: NEXT_PUBLIC_OBJECT_STORAGE_BUCKET, Key: filename };
|
|
56
|
+
s3.deleteObject(params, function (err, data) {
|
|
57
|
+
if (err)
|
|
58
|
+
console.log(err, err.stack);
|
|
59
|
+
else
|
|
60
|
+
console.log();
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
exports.remove = remove;
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLXMzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jb250cm9sbGVyL2F3cy1zMy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSw0Q0FBb0I7QUFDcEIsNERBQTBEO0FBQzFELHFDQUFrQztBQUNsQywrQ0FBNEM7QUFFNUMsTUFBTSxFQUNKLE1BQU0sRUFDTixxQkFBcUIsRUFDckIscUJBQXFCLEVBQ3JCLDRCQUE0QixFQUM1QixpQ0FBaUMsR0FDbEMsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDO0FBRWhCLElBQUksRUFBRSxHQUFPLElBQUksWUFBRSxDQUFDO0lBQ2xCLFFBQVEsRUFBRSw0QkFBNEIsSUFBSSw2QkFBNkI7SUFDdkUsV0FBVyxFQUFFLHFCQUFxQjtJQUNsQyxlQUFlLEVBQUUscUJBQXFCO0NBQ3ZDLENBQUMsQ0FBQztBQUVJLEtBQUssVUFBVSxJQUFJLENBQ3hCLElBQVksRUFDWixRQUFnQixFQUNoQixRQUFnQjtJQUVoQixPQUFPLElBQUksT0FBTyxDQUFTLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7UUFDbkQsSUFBSSxRQUFRLEdBQVcsZUFBTSxHQUFHLElBQUksQ0FBQztRQUNyQyxJQUFJLENBQUMsWUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUM1QixNQUFNLENBQUMsT0FBTyxHQUFHLFFBQVEsR0FBRyxpQkFBaUIsQ0FBQyxDQUFDO1NBQ2hEO1FBR0QsSUFBSSxXQUFXLEdBQVcsU0FBUyxDQUFDO1FBRXBDLElBQUk7WUFDRixXQUFXLEdBQUcsTUFBTSxJQUFBLHlCQUFXLEVBQUMsUUFBUSxDQUFDLENBQUM7U0FDM0M7UUFBQyxPQUFPLEVBQUUsRUFBRTtZQUNYLFdBQVcsR0FBRyxZQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3pDO1FBR0QsTUFBTSxNQUFNLEdBQXFCO1lBQy9CLE1BQU0sRUFBRSxpQ0FBaUM7WUFDekMsR0FBRyxFQUNELE1BQU07Z0JBQ04sR0FBRztnQkFDSCxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsRUFBRTtnQkFDbkMsR0FBRztnQkFDSCxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUM7Z0JBQ3ZELEdBQUc7Z0JBQ0gsSUFBSTtZQUNOLElBQUksRUFBRSxXQUFXO1lBQ2pCLGVBQWUsRUFBRSxRQUFRO1lBQ3pCLFdBQVcsRUFBRSxRQUFRO1lBQ3JCLEdBQUcsRUFBRSxhQUFhO1NBRW5CLENBQUM7UUFHRixFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxVQUFTLEdBQUcsRUFBRSxJQUFJO1lBQ2xDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFO2dCQUNoQixPQUFPLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUNuQjtZQUtELE9BQU8sQ0FBQyxHQUFHLENBQUMsK0JBQStCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQzVELE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFuREQsb0JBbURDO0FBRU0sS0FBSyxVQUFVLE1BQU0sQ0FBQyxRQUFnQjtJQUMzQyxJQUFJLE1BQU0sR0FBRyxFQUFFLE1BQU0sRUFBRSxpQ0FBaUMsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLENBQUM7SUFFMUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsVUFBUyxHQUFHLEVBQUUsSUFBSTtRQUN4QyxJQUFJLEdBQUc7WUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7O1lBRWhDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFSRCx3QkFRQyJ9
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.imageResize = void 0;
|
|
7
|
+
const sharp_1 = __importDefault(require("sharp"));
|
|
8
|
+
function imageResize(filepath, toWidth = 600, maxSize = 307200) {
|
|
9
|
+
return new Promise(async (resolve, reject) => {
|
|
10
|
+
const sharp = (0, sharp_1.default)(filepath);
|
|
11
|
+
const metadata = await sharp.metadata();
|
|
12
|
+
toWidth = metadata.width < toWidth ? metadata.width : toWidth;
|
|
13
|
+
let width = toWidth;
|
|
14
|
+
let height = Math.ceil((metadata.height * toWidth) / metadata.width);
|
|
15
|
+
if (metadata.width > toWidth || metadata.size > maxSize) {
|
|
16
|
+
console.log(width + '|' + height);
|
|
17
|
+
let options = { fit: 'contain', withoutEnlargement: true };
|
|
18
|
+
resolve(sharp
|
|
19
|
+
.resize(width, height, options)
|
|
20
|
+
.toBuffer()
|
|
21
|
+
.then((buffer) => buffer));
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
reject('');
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
exports.imageResize = imageResize;
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2VSZXNpemUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NvbnRyb2xsZXIvaW1hZ2VSZXNpemUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsa0RBQTZDO0FBRTdDLFNBQWdCLFdBQVcsQ0FDekIsUUFBZ0IsRUFDaEIsVUFBa0IsR0FBRyxFQUNyQixVQUFrQixNQUFNO0lBRXhCLE9BQU8sSUFBSSxPQUFPLENBQVMsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUNuRCxNQUFNLEtBQUssR0FBRyxJQUFBLGVBQUssRUFBQyxRQUFRLENBQUMsQ0FBQztRQUM5QixNQUFNLFFBQVEsR0FBRyxNQUFNLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN4QyxPQUFPLEdBQUcsUUFBUSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUM5RCxJQUFJLEtBQUssR0FBVyxPQUFPLENBQUM7UUFDNUIsSUFBSSxNQUFNLEdBQVcsSUFBSSxDQUFDLElBQUksQ0FDNUIsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQzdDLENBQUM7UUFFRixJQUFJLFFBQVEsQ0FBQyxLQUFLLEdBQUcsT0FBTyxJQUFJLFFBQVEsQ0FBQyxJQUFJLEdBQUcsT0FBTyxFQUFFO1lBQ3ZELE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLEdBQUcsR0FBRyxNQUFNLENBQUMsQ0FBQztZQUNsQyxJQUFJLE9BQU8sR0FBa0IsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLElBQUksRUFBRSxDQUFDO1lBRTFFLE9BQU8sQ0FDTCxLQUFLO2lCQUNGLE1BQU0sQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQztpQkFDOUIsUUFBUSxFQUFFO2lCQUNWLElBQUksQ0FBQyxDQUFDLE1BQWMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQ3BDLENBQUM7U0FDSDthQUFNO1lBQ0wsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ1o7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUE1QkQsa0NBNEJDIn0=
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Recapcha = exports.SentNotification = exports.Remove = exports.Upload = exports.ProfileCallback = void 0;
|
|
4
|
+
const profileCallback_1 = require("./profileCallback");
|
|
5
|
+
Object.defineProperty(exports, "ProfileCallback", { enumerable: true, get: function () { return profileCallback_1.ProfileCallback; } });
|
|
6
|
+
const upload_1 = require("./upload");
|
|
7
|
+
Object.defineProperty(exports, "Upload", { enumerable: true, get: function () { return upload_1.Upload; } });
|
|
8
|
+
Object.defineProperty(exports, "Remove", { enumerable: true, get: function () { return upload_1.Remove; } });
|
|
9
|
+
const sentNotification_1 = require("./sentNotification");
|
|
10
|
+
Object.defineProperty(exports, "SentNotification", { enumerable: true, get: function () { return sentNotification_1.SentNotification; } });
|
|
11
|
+
const recapcha_1 = require("./recapcha");
|
|
12
|
+
Object.defineProperty(exports, "Recapcha", { enumerable: true, get: function () { return recapcha_1.Recapcha; } });
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NvbnRyb2xsZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsdURBQW9EO0FBSzNDLGdHQUxBLGlDQUFlLE9BS0E7QUFKeEIscUNBQTBDO0FBSWhCLHVGQUpqQixlQUFNLE9BSWlCO0FBQUUsdUZBSmpCLGVBQU0sT0FJaUI7QUFIeEMseURBQXNEO0FBR1osaUdBSGpDLG1DQUFnQixPQUdpQztBQUYxRCx5Q0FBc0M7QUFFc0IseUZBRm5ELG1CQUFRLE9BRW1EIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const ProfileCallback: (request: any, reply: any) => void;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ProfileCallback = void 0;
|
|
7
|
+
const facebook_1 = __importDefault(require("../plugin/oauth/facebook"));
|
|
8
|
+
const ProfileCallback = function (request, reply) {
|
|
9
|
+
const self = this['facebookOAuth2'];
|
|
10
|
+
self.getAccessTokenFromAuthorizationCodeFlow(request, (err, accessToken, refreshToken, params) => {
|
|
11
|
+
if (err) {
|
|
12
|
+
reply.send(err);
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
self.oauth2.get('https://graph.facebook.com/v8.0/me?fields=id,name,last_name,first_name,birthday,email,picture,gender,link,short_name', accessToken, function (err, body, res) {
|
|
16
|
+
reply.send(facebook_1.default.callback(err, body, res));
|
|
17
|
+
return;
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
exports.ProfileCallback = ProfileCallback;
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZUNhbGxiYWNrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jb250cm9sbGVyL3Byb2ZpbGVDYWxsYmFjay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSx3RUFBK0M7QUFFeEMsTUFBTSxlQUFlLEdBQUcsVUFBUyxPQUFPLEVBQUUsS0FBSztJQUNwRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNwQyxJQUFJLENBQUMsdUNBQXVDLENBQzFDLE9BQU8sRUFDUCxDQUFDLEdBQUcsRUFBRSxXQUFXLEVBQUUsWUFBYSxFQUFFLE1BQU8sRUFBRSxFQUFFO1FBQzNDLElBQUksR0FBRyxFQUFFO1lBQ1AsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNoQixPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FDYixzSEFBc0gsRUFDdEgsV0FBVyxFQUNYLFVBQVMsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHO1lBQ3JCLEtBQUssQ0FBQyxJQUFJLENBQUMsa0JBQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQzdDLE9BQU87UUFDVCxDQUFDLENBQ0YsQ0FBQztJQUNKLENBQUMsQ0FDRixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBbkJXLFFBQUEsZUFBZSxtQkFtQjFCIn0=
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Recapcha = void 0;
|
|
7
|
+
const I18n_1 = require("../loc/I18n");
|
|
8
|
+
const axios_1 = __importDefault(require("axios"));
|
|
9
|
+
const sleep = () => new Promise(resolve => {
|
|
10
|
+
setTimeout(() => {
|
|
11
|
+
resolve('');
|
|
12
|
+
}, 350);
|
|
13
|
+
});
|
|
14
|
+
const Recapcha = async (req, reply) => {
|
|
15
|
+
const { body, method } = req;
|
|
16
|
+
const { captcha } = body;
|
|
17
|
+
if (!captcha) {
|
|
18
|
+
reply.send((0, I18n_1.t)('captcha does not exist'));
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
try {
|
|
22
|
+
const r = await axios_1.default.post(`https://www.google.com/recaptcha/api/siteverify?secret=${process.env.RECAPTCHA_SECRET_KEY}&response=${captcha}`, JSON.stringify({}), {
|
|
23
|
+
headers: {
|
|
24
|
+
'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8',
|
|
25
|
+
},
|
|
26
|
+
});
|
|
27
|
+
if (r.status === 200) {
|
|
28
|
+
await sleep();
|
|
29
|
+
return reply.status(200).send('OK');
|
|
30
|
+
}
|
|
31
|
+
return reply.code(422).send({
|
|
32
|
+
message: 'Unproccesable request, Invalid captcha code',
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
catch (error) {
|
|
36
|
+
console.log(error);
|
|
37
|
+
return reply.code(422).send({
|
|
38
|
+
message: 'Something went wrong',
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
exports.Recapcha = Recapcha;
|
|
43
|
+
exports.default = exports.Recapcha;
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjYXBjaGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NvbnRyb2xsZXIvcmVjYXBjaGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsc0NBQWdDO0FBQ2hDLGtEQUEwQjtBQUUxQixNQUFNLEtBQUssR0FBRyxHQUFHLEVBQUUsQ0FDakIsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7SUFDcEIsVUFBVSxDQUFDLEdBQUcsRUFBRTtRQUNkLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNkLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUNWLENBQUMsQ0FBQyxDQUFDO0FBRUUsTUFBTSxRQUFRLEdBQUcsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRTtJQUMzQyxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQztJQUU3QixNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDO0lBQ3pCLElBQUksQ0FBQyxPQUFPLEVBQUU7UUFDWixLQUFLLENBQUMsSUFBSSxDQUFDLElBQUEsUUFBQyxFQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQztRQUN4QyxPQUFPO0tBQ1I7SUFFRCxJQUFJO1FBRUYsTUFBTSxDQUFDLEdBQUcsTUFBTSxlQUFLLENBQUMsSUFBSSxDQUN4QiwwREFBMEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsYUFBYSxPQUFPLEVBQUUsRUFDaEgsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsRUFDbEI7WUFDRSxPQUFPLEVBQUU7Z0JBQ1AsY0FBYyxFQUFFLGtEQUFrRDthQUNuRTtTQUNGLENBQ0YsQ0FBQztRQVVGLElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUU7WUFHcEIsTUFBTSxLQUFLLEVBQUUsQ0FBQztZQUVkLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDckM7UUFFRCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQzFCLE9BQU8sRUFBRSw2Q0FBNkM7U0FDdkQsQ0FBQyxDQUFDO0tBQ0o7SUFBQyxPQUFPLEtBQUssRUFBRTtRQUNkLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkIsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUMxQixPQUFPLEVBQUUsc0JBQXNCO1NBQ2hDLENBQUMsQ0FBQztLQUNKO0FBQ0gsQ0FBQyxDQUFDO0FBOUNXLFFBQUEsUUFBUSxZQThDbkI7QUFFRixrQkFBZSxnQkFBUSxDQUFDIn0=
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import apn from 'apn';
|
|
2
|
+
export declare const FirebaseMessaging: (keys: string | string[], userId: string, title: string, message: string, icon?: string, id?: string, data?: object, badge?: number) => Promise<any>;
|
|
3
|
+
export declare const SentNotification: (req: any, rep: any) => void;
|
|
4
|
+
export default SentNotification;
|
|
5
|
+
export declare let apnProvider: any;
|
|
6
|
+
export declare const sendAPN: (deviceTokens: string | string[], userId: string, title: string, message: string, icon?: string, id?: string, data?: object, badge?: number) => Promise<apn.Responses>;
|
|
7
|
+
export declare const terminateAPN: () => void;
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.terminateAPN = exports.sendAPN = exports.apnProvider = exports.SentNotification = exports.FirebaseMessaging = void 0;
|
|
7
|
+
const axios_1 = __importDefault(require("axios"));
|
|
8
|
+
const apn_1 = __importDefault(require("apn"));
|
|
9
|
+
const I18n_1 = require("../loc/I18n");
|
|
10
|
+
const { FIREBASE_SERVER_KEY, TEAM_ID, KEY_ID, NODE_ENV } = process.env;
|
|
11
|
+
const FirebaseMessaging = (keys, userId, title, message, icon, id, data, badge = 1) => {
|
|
12
|
+
const to = keys instanceof Array && keys.length > 1 ? 'registration_ids' : 'to';
|
|
13
|
+
let key = FIREBASE_SERVER_KEY;
|
|
14
|
+
let notification = {
|
|
15
|
+
title: title || (0, I18n_1.t)('notification title'),
|
|
16
|
+
body: message || (0, I18n_1.t)('The notification'),
|
|
17
|
+
color: '#2777f7',
|
|
18
|
+
sound: 'default',
|
|
19
|
+
badge: badge,
|
|
20
|
+
};
|
|
21
|
+
if (icon) {
|
|
22
|
+
notification['icon'] = icon;
|
|
23
|
+
}
|
|
24
|
+
if (!data) {
|
|
25
|
+
data = {};
|
|
26
|
+
}
|
|
27
|
+
return axios_1.default.post('https://fcm.googleapis.com/fcm/send', JSON.stringify({
|
|
28
|
+
[to]: keys instanceof Array && keys.length === 1 ? keys[0] : keys,
|
|
29
|
+
notification: notification,
|
|
30
|
+
data: Object.assign(Object.assign({}, data), { _id: id, userId, type: 'new_message' }),
|
|
31
|
+
priority: 'high',
|
|
32
|
+
}), {
|
|
33
|
+
headers: {
|
|
34
|
+
Authorization: 'key=' + key,
|
|
35
|
+
'Content-Type': 'application/json',
|
|
36
|
+
},
|
|
37
|
+
});
|
|
38
|
+
};
|
|
39
|
+
exports.FirebaseMessaging = FirebaseMessaging;
|
|
40
|
+
const SentNotification = (req, rep) => {
|
|
41
|
+
const { body, user, headers } = req;
|
|
42
|
+
if (!!headers.token && !!user._id) {
|
|
43
|
+
if (headers.token.length < 100) {
|
|
44
|
+
(0, exports.sendAPN)(headers.token, user._id, body.title, body.message)
|
|
45
|
+
.then(response => {
|
|
46
|
+
rep.code(200).send({ data: response });
|
|
47
|
+
})
|
|
48
|
+
.catch(error => {
|
|
49
|
+
rep.code(303).send({ data: null, error });
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
(0, exports.FirebaseMessaging)(headers.token, user._id, body.title, body.message)
|
|
54
|
+
.then(response => {
|
|
55
|
+
if (response && response.status === 200) {
|
|
56
|
+
rep.code(200).send({ data: response.data });
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
rep
|
|
60
|
+
.code(response.status || 303)
|
|
61
|
+
.send({ data: response.data || null });
|
|
62
|
+
}
|
|
63
|
+
})
|
|
64
|
+
.catch(error => {
|
|
65
|
+
rep.code(303).send({ data: null, error });
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
rep.code(303).send({
|
|
71
|
+
data: null,
|
|
72
|
+
error: 'No Token',
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
exports.SentNotification = SentNotification;
|
|
77
|
+
exports.default = exports.SentNotification;
|
|
78
|
+
const apnProduction = NODE_ENV === 'production' ? true : false;
|
|
79
|
+
var options = {
|
|
80
|
+
token: {
|
|
81
|
+
key: './keys/AuthKey_XXXXXXXXX.p8',
|
|
82
|
+
keyId: KEY_ID,
|
|
83
|
+
teamId: TEAM_ID,
|
|
84
|
+
},
|
|
85
|
+
production: apnProduction,
|
|
86
|
+
};
|
|
87
|
+
try {
|
|
88
|
+
exports.apnProvider = new apn_1.default.Provider(options);
|
|
89
|
+
}
|
|
90
|
+
catch (_a) { }
|
|
91
|
+
const sendAPN = (deviceTokens, userId, title, message, icon, id, data, badge = 1) => {
|
|
92
|
+
let note = new apn_1.default.Notification();
|
|
93
|
+
let alert = {
|
|
94
|
+
title: title || '',
|
|
95
|
+
body: message || (0, I18n_1.t)('The notification'),
|
|
96
|
+
};
|
|
97
|
+
if (!!icon) {
|
|
98
|
+
alert['launch-image'] = icon;
|
|
99
|
+
}
|
|
100
|
+
if (!data) {
|
|
101
|
+
data = {};
|
|
102
|
+
}
|
|
103
|
+
note.expiry = Math.floor(Date.now() / 1000) + 3600 * 72;
|
|
104
|
+
note.badge = badge;
|
|
105
|
+
note.sound = 'ping.aiff';
|
|
106
|
+
note.alert = alert;
|
|
107
|
+
note.payload = Object.assign(Object.assign({}, data), { _id: id, userId, type: 'new_message' });
|
|
108
|
+
note.priority = 10;
|
|
109
|
+
note.topic = 'org.reactjs.native.App';
|
|
110
|
+
return exports.apnProvider.send(note, deviceTokens);
|
|
111
|
+
};
|
|
112
|
+
exports.sendAPN = sendAPN;
|
|
113
|
+
const terminateAPN = () => {
|
|
114
|
+
if (exports.apnProvider) {
|
|
115
|
+
exports.apnProvider.shutdown();
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
exports.terminateAPN = terminateAPN;
|
|
119
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VudE5vdGlmaWNhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY29udHJvbGxlci9zZW50Tm90aWZpY2F0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGtEQUEwQjtBQUMxQiw4Q0FBc0I7QUFDdEIsc0NBQWdDO0FBRWhDLE1BQU0sRUFBRSxtQkFBbUIsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUM7QUFHaEUsTUFBTSxpQkFBaUIsR0FBRyxDQUMvQixJQUF1QixFQUN2QixNQUFjLEVBQ2QsS0FBYSxFQUNiLE9BQWUsRUFDZixJQUFhLEVBQ2IsRUFBVyxFQUNYLElBQWEsRUFDYixRQUFnQixDQUFDLEVBQ0gsRUFBRTtJQUNoQixNQUFNLEVBQUUsR0FDTixJQUFJLFlBQVksS0FBSyxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3ZFLElBQUksR0FBRyxHQUFXLG1CQUFtQixDQUFDO0lBQ3RDLElBQUksWUFBWSxHQUFHO1FBQ2pCLEtBQUssRUFBRSxLQUFLLElBQUksSUFBQSxRQUFDLEVBQUMsb0JBQW9CLENBQUM7UUFDdkMsSUFBSSxFQUFFLE9BQU8sSUFBSSxJQUFBLFFBQUMsRUFBQyxrQkFBa0IsQ0FBQztRQUN0QyxLQUFLLEVBQUUsU0FBUztRQUNoQixLQUFLLEVBQUUsU0FBUztRQUNoQixLQUFLLEVBQUUsS0FBSztLQUdiLENBQUM7SUFDRixJQUFJLElBQUksRUFBRTtRQUNSLFlBQVksQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUM7S0FDN0I7SUFDRCxJQUFJLENBQUMsSUFBSSxFQUFFO1FBQ1QsSUFBSSxHQUFHLEVBQUUsQ0FBQztLQUNYO0lBRUQsT0FBTyxlQUFLLENBQUMsSUFBSSxDQUNmLHFDQUFxQyxF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
|