@openinc/parse-server-opendash 1.10.1 → 1.12.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/dist/functions/_init.js +11 -65
- package/dist/functions/getAdminConfig.js +38 -91
- package/dist/functions/getSchemaForAdmin.js +5 -54
- package/dist/functions/opendash-geo-features.js +13 -58
- package/dist/functions/opendash-geo-google-autocomplete.js +53 -112
- package/dist/functions/opendash-geo-graphhopper-geocode-reverse.js +30 -83
- package/dist/functions/opendash-geo-graphhopper-geocode.js +33 -86
- package/dist/helper/pdf2img.d.ts +12 -0
- package/dist/helper/pdf2img.js +111 -0
- package/dist/hooks/Alarm.d.ts +1 -1
- package/dist/hooks/Alarm.js +29 -95
- package/dist/hooks/AlarmAction.d.ts +1 -1
- package/dist/hooks/AlarmAction.js +9 -64
- package/dist/hooks/AlarmWebhook.d.ts +1 -1
- package/dist/hooks/AlarmWebhook.js +10 -64
- package/dist/hooks/Attachment.d.ts +1 -0
- package/dist/hooks/Attachment.js +18 -0
- package/dist/hooks/BDE_Form.d.ts +1 -1
- package/dist/hooks/BDE_Form.js +57 -114
- package/dist/hooks/BDE_List.d.ts +1 -1
- package/dist/hooks/BDE_List.js +11 -57
- package/dist/hooks/BDE_ListEntry.d.ts +1 -1
- package/dist/hooks/BDE_ListEntry.js +11 -57
- package/dist/hooks/BDE_Page.d.ts +1 -1
- package/dist/hooks/BDE_Page.js +19 -84
- package/dist/hooks/BDE_Result.d.ts +1 -1
- package/dist/hooks/BDE_Result.js +125 -177
- package/dist/hooks/BDE_Unit.d.ts +1 -1
- package/dist/hooks/BDE_Unit.js +11 -57
- package/dist/hooks/Config.d.ts +1 -1
- package/dist/hooks/Config.js +10 -64
- package/dist/hooks/Dashboard.d.ts +1 -1
- package/dist/hooks/Dashboard.js +26 -86
- package/dist/hooks/Group.d.ts +1 -0
- package/dist/hooks/Group.js +18 -0
- package/dist/hooks/Group_UserRelation.d.ts +1 -0
- package/dist/hooks/Group_UserRelation.js +18 -0
- package/dist/hooks/Knowledge_Article.d.ts +1 -0
- package/dist/hooks/Knowledge_Article.js +18 -0
- package/dist/hooks/Knowledge_Category.d.ts +1 -0
- package/dist/hooks/Knowledge_Category.js +18 -0
- package/dist/hooks/Knowledge_Document.d.ts +1 -0
- package/dist/hooks/Knowledge_Document.js +59 -0
- package/dist/hooks/Knowledge_DocumentPage.d.ts +1 -0
- package/dist/hooks/Knowledge_DocumentPage.js +22 -0
- package/dist/hooks/Knowledge_Video.d.ts +1 -0
- package/dist/hooks/Knowledge_Video.js +18 -0
- package/dist/hooks/Language.d.ts +1 -0
- package/dist/hooks/Language.js +18 -0
- package/dist/hooks/Maintenance_Article.d.ts +1 -0
- package/dist/hooks/Maintenance_Article.js +18 -0
- package/dist/hooks/Maintenance_Downtime.d.ts +1 -0
- package/dist/hooks/Maintenance_Downtime.js +18 -0
- package/dist/hooks/Maintenance_Duedate.d.ts +1 -0
- package/dist/hooks/Maintenance_Duedate.js +18 -0
- package/dist/hooks/Maintenance_Frequency.d.ts +1 -0
- package/dist/hooks/Maintenance_Frequency.js +18 -0
- package/dist/hooks/Maintenance_Issuecategory.d.ts +1 -0
- package/dist/hooks/Maintenance_Issuecategory.js +18 -0
- package/dist/hooks/Maintenance_Kanban_State.d.ts +1 -0
- package/dist/hooks/Maintenance_Kanban_State.js +18 -0
- package/dist/hooks/Maintenance_Media.d.ts +1 -0
- package/dist/hooks/Maintenance_Media.js +18 -0
- package/dist/hooks/Maintenance_Priority.d.ts +1 -0
- package/dist/hooks/Maintenance_Priority.js +18 -0
- package/dist/hooks/Maintenance_Restriction.d.ts +1 -0
- package/dist/hooks/Maintenance_Restriction.js +18 -0
- package/dist/hooks/Maintenance_Schedule.d.ts +1 -0
- package/dist/hooks/Maintenance_Schedule.js +18 -0
- package/dist/hooks/Maintenance_Schedule_Step.d.ts +1 -0
- package/dist/hooks/Maintenance_Schedule_Step.js +18 -0
- package/dist/hooks/Maintenance_Ticket.d.ts +1 -0
- package/dist/hooks/Maintenance_Ticket.js +18 -0
- package/dist/hooks/Maintenance_Ticket_Issuecategory.d.ts +1 -0
- package/dist/hooks/Maintenance_Ticket_Issuecategory.js +18 -0
- package/dist/hooks/Maintenance_Ticket_Kanban_State.d.ts +1 -0
- package/dist/hooks/Maintenance_Ticket_Kanban_State.js +18 -0
- package/dist/hooks/Maintenance_Ticket_Source.d.ts +1 -0
- package/dist/hooks/Maintenance_Ticket_Source.js +18 -0
- package/dist/hooks/NavigationGroup.d.ts +1 -1
- package/dist/hooks/NavigationGroup.js +9 -64
- package/dist/hooks/NavigationItem.d.ts +1 -1
- package/dist/hooks/NavigationItem.js +10 -64
- package/dist/hooks/Notification.d.ts +1 -1
- package/dist/hooks/Notification.js +55 -153
- package/dist/hooks/Permission.d.ts +1 -1
- package/dist/hooks/Permission.js +9 -64
- package/dist/hooks/Push.d.ts +1 -1
- package/dist/hooks/Push.js +24 -80
- package/dist/hooks/Report.d.ts +1 -1
- package/dist/hooks/Report.js +10 -64
- package/dist/hooks/Share.d.ts +1 -1
- package/dist/hooks/Share.js +10 -64
- package/dist/hooks/Source.d.ts +1 -1
- package/dist/hooks/Source.js +123 -240
- package/dist/hooks/SourceMeta.d.ts +1 -1
- package/dist/hooks/SourceMeta.js +36 -115
- package/dist/hooks/Tenant.d.ts +1 -1
- package/dist/hooks/Tenant.js +87 -168
- package/dist/hooks/TenantMeta.d.ts +1 -1
- package/dist/hooks/TenantMeta.js +6 -56
- package/dist/hooks/TenantTrustedDomain.d.ts +1 -1
- package/dist/hooks/TenantTrustedDomain.js +6 -56
- package/dist/hooks/UserData.d.ts +1 -1
- package/dist/hooks/UserData.js +10 -64
- package/dist/hooks/WebPush.d.ts +1 -1
- package/dist/hooks/WebPush.js +21 -77
- package/dist/hooks/Widget.d.ts +1 -1
- package/dist/hooks/Widget.js +10 -64
- package/dist/hooks/WidgetPreset.d.ts +1 -0
- package/dist/hooks/WidgetPreset.js +18 -0
- package/dist/hooks/_User.js +102 -208
- package/dist/hooks/_beforeLogin.js +16 -71
- package/dist/hooks/_init.js +15 -78
- package/dist/index.d.ts +4 -0
- package/dist/index.js +239 -487
- package/dist/ow.js +79 -137
- package/dist/types/Alarm.d.ts +25 -5
- package/dist/types/Alarm.js +57 -0
- package/dist/types/AlarmAction.d.ts +29 -7
- package/dist/types/AlarmAction.js +63 -0
- package/dist/types/AlarmWebhook.d.ts +30 -9
- package/dist/types/AlarmWebhook.js +63 -0
- package/dist/types/Attachment.d.ts +21 -0
- package/dist/types/Attachment.js +29 -0
- package/dist/types/BDE_Form.d.ts +14 -3
- package/dist/types/BDE_Form.js +33 -0
- package/dist/types/BDE_List.d.ts +6 -1
- package/dist/types/BDE_List.js +15 -0
- package/dist/types/BDE_ListEntry.d.ts +12 -4
- package/dist/types/BDE_ListEntry.js +27 -0
- package/dist/types/BDE_Page.d.ts +9 -2
- package/dist/types/BDE_Page.js +21 -0
- package/dist/types/BDE_Result.d.ts +11 -2
- package/dist/types/BDE_Result.js +27 -0
- package/dist/types/BDE_Unit.d.ts +14 -3
- package/dist/types/BDE_Unit.js +33 -0
- package/dist/types/Config.d.ts +14 -3
- package/dist/types/Config.js +33 -0
- package/dist/types/Dashboard.d.ts +24 -5
- package/dist/types/Dashboard.js +51 -0
- package/dist/types/Group.d.ts +18 -0
- package/dist/types/Group.js +23 -0
- package/dist/types/Group_UserRelation.d.ts +19 -0
- package/dist/types/Group_UserRelation.js +23 -0
- package/dist/types/Knowledge_Article.d.ts +29 -0
- package/dist/types/Knowledge_Article.js +41 -0
- package/dist/types/Knowledge_Category.d.ts +25 -0
- package/dist/types/Knowledge_Category.js +35 -0
- package/dist/types/Knowledge_Document.d.ts +29 -0
- package/dist/types/Knowledge_Document.js +41 -0
- package/dist/types/Knowledge_DocumentPage.d.ts +27 -0
- package/dist/types/Knowledge_DocumentPage.js +41 -0
- package/dist/types/Knowledge_Video.d.ts +35 -0
- package/dist/types/Knowledge_Video.js +53 -0
- package/dist/types/Language.d.ts +14 -0
- package/dist/types/Language.js +17 -0
- package/dist/types/Maintenance_Article.d.ts +33 -0
- package/dist/types/Maintenance_Article.js +47 -0
- package/dist/types/Maintenance_Downtime.d.ts +26 -0
- package/dist/types/Maintenance_Downtime.js +35 -0
- package/dist/types/Maintenance_Duedate.d.ts +35 -0
- package/dist/types/Maintenance_Duedate.js +53 -0
- package/dist/types/Maintenance_Frequency.d.ts +26 -0
- package/dist/types/Maintenance_Frequency.js +35 -0
- package/dist/types/Maintenance_Issuecategory.d.ts +34 -0
- package/dist/types/Maintenance_Issuecategory.js +53 -0
- package/dist/types/Maintenance_Kanban_State.d.ts +33 -0
- package/dist/types/Maintenance_Kanban_State.js +53 -0
- package/dist/types/Maintenance_Media.d.ts +21 -0
- package/dist/types/Maintenance_Media.js +29 -0
- package/dist/types/Maintenance_Priority.d.ts +26 -0
- package/dist/types/Maintenance_Priority.js +35 -0
- package/dist/types/Maintenance_Restriction.d.ts +26 -0
- package/dist/types/Maintenance_Restriction.js +35 -0
- package/dist/types/Maintenance_Schedule.d.ts +29 -0
- package/dist/types/Maintenance_Schedule.js +41 -0
- package/dist/types/Maintenance_Schedule_Step.d.ts +34 -0
- package/dist/types/Maintenance_Schedule_Step.js +53 -0
- package/dist/types/Maintenance_Ticket.d.ts +25 -0
- package/dist/types/Maintenance_Ticket.js +35 -0
- package/dist/types/Maintenance_Ticket_Issuecategory.d.ts +27 -0
- package/dist/types/Maintenance_Ticket_Issuecategory.js +35 -0
- package/dist/types/Maintenance_Ticket_Kanban_State.d.ts +27 -0
- package/dist/types/Maintenance_Ticket_Kanban_State.js +35 -0
- package/dist/types/Maintenance_Ticket_Source.d.ts +27 -0
- package/dist/types/Maintenance_Ticket_Source.js +35 -0
- package/dist/types/NavigationGroup.d.ts +14 -3
- package/dist/types/NavigationGroup.js +33 -0
- package/dist/types/NavigationItem.d.ts +36 -9
- package/dist/types/NavigationItem.js +81 -0
- package/dist/types/Notification.d.ts +20 -5
- package/dist/types/Notification.js +45 -0
- package/dist/types/Permission.d.ts +9 -2
- package/dist/types/Permission.js +21 -0
- package/dist/types/Push.d.ts +18 -5
- package/dist/types/Push.js +39 -0
- package/dist/types/Report.d.ts +16 -3
- package/dist/types/Report.js +39 -0
- package/dist/types/Share.d.ts +25 -8
- package/dist/types/Share.js +51 -0
- package/dist/types/Source.d.ts +20 -5
- package/dist/types/Source.js +45 -0
- package/dist/types/SourceMeta.d.ts +9 -2
- package/dist/types/SourceMeta.js +21 -0
- package/dist/types/Tenant.d.ts +20 -5
- package/dist/types/Tenant.js +45 -0
- package/dist/types/TenantMeta.d.ts +7 -2
- package/dist/types/TenantMeta.js +15 -0
- package/dist/types/TenantTrustedDomain.d.ts +10 -3
- package/dist/types/TenantTrustedDomain.js +21 -0
- package/dist/types/UserData.d.ts +12 -3
- package/dist/types/UserData.js +27 -0
- package/dist/types/WebPush.d.ts +13 -4
- package/dist/types/WebPush.js +27 -0
- package/dist/types/Widget.d.ts +14 -3
- package/dist/types/Widget.js +33 -0
- package/dist/types/WidgetPreset.d.ts +40 -0
- package/dist/types/WidgetPreset.js +65 -0
- package/dist/types/_Role.d.ts +3 -3
- package/dist/types/_Session.d.ts +5 -5
- package/dist/types/_User.d.ts +11 -9
- package/dist/types/index.d.ts +108 -29
- package/dist/types/index.js +104 -0
- package/package.json +3 -2
- package/schema/Alarm.json +4 -0
- package/schema/AlarmAction.json +5 -0
- package/schema/Attachment.json +44 -0
- package/schema/BDE_Form.json +9 -10
- package/schema/BDE_List.json +7 -9
- package/schema/BDE_ListEntry.json +7 -9
- package/schema/BDE_Page.json +7 -9
- package/schema/BDE_Result.json +7 -9
- package/schema/BDE_Unit.json +9 -8
- package/schema/Dashboard.json +9 -0
- package/schema/Group.json +39 -0
- package/schema/Group_UserRelation.json +40 -0
- package/schema/Knowledge_Article.json +54 -0
- package/schema/Knowledge_Category.json +50 -0
- package/schema/Knowledge_Document.json +54 -0
- package/schema/Knowledge_DocumentPage.json +53 -0
- package/schema/Knowledge_Video.json +62 -0
- package/schema/Language.json +35 -0
- package/schema/Maintenance_Article.json +56 -0
- package/schema/Maintenance_Downtime.json +48 -0
- package/schema/Maintenance_Duedate.json +61 -0
- package/schema/Maintenance_Frequency.json +48 -0
- package/schema/Maintenance_Issuecategory.json +60 -0
- package/schema/Maintenance_Kanban_State.json +60 -0
- package/schema/Maintenance_Media.json +43 -0
- package/schema/Maintenance_Priority.json +48 -0
- package/schema/Maintenance_Restriction.json +48 -0
- package/schema/Maintenance_Schedule.json +53 -0
- package/schema/Maintenance_Schedule_Step.json +60 -0
- package/schema/Maintenance_Ticket.json +47 -0
- package/schema/Maintenance_Ticket_Issuecategory.json +48 -0
- package/schema/Maintenance_Ticket_Kanban_State.json +48 -0
- package/schema/Maintenance_Ticket_Source.json +48 -0
- package/schema/Tenant.json +3 -0
- package/schema/WidgetPreset.json +79 -0
package/dist/functions/_init.js
CHANGED
|
@@ -1,73 +1,19 @@
|
|
|
1
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
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
-
function step(op) {
|
|
16
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (_) try {
|
|
18
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
-
switch (op[0]) {
|
|
21
|
-
case 0: case 1: t = op; break;
|
|
22
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
-
default:
|
|
26
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
-
if (t[2]) _.ops.pop();
|
|
31
|
-
_.trys.pop(); continue;
|
|
32
|
-
}
|
|
33
|
-
op = body.call(thisArg, _);
|
|
34
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
39
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
4
|
};
|
|
41
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
6
|
exports.init = void 0;
|
|
43
|
-
|
|
44
|
-
function init() {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
.map(function (filename) { return filename.replace(".js", ""); });
|
|
55
|
-
_i = 0, fns_1 = fns;
|
|
56
|
-
_a.label = 1;
|
|
57
|
-
case 1:
|
|
58
|
-
if (!(_i < fns_1.length)) return [3 /*break*/, 4];
|
|
59
|
-
name = fns_1[_i];
|
|
60
|
-
init_1 = require("./".concat(name)).init;
|
|
61
|
-
return [4 /*yield*/, init_1(name).catch(function (e) { return console.error(e); })];
|
|
62
|
-
case 2:
|
|
63
|
-
_a.sent();
|
|
64
|
-
_a.label = 3;
|
|
65
|
-
case 3:
|
|
66
|
-
_i++;
|
|
67
|
-
return [3 /*break*/, 1];
|
|
68
|
-
case 4: return [2 /*return*/];
|
|
69
|
-
}
|
|
70
|
-
});
|
|
71
|
-
});
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
async function init() {
|
|
9
|
+
const fns = fs_1.default
|
|
10
|
+
.readdirSync(__dirname)
|
|
11
|
+
.filter((filename) => !filename.startsWith("_"))
|
|
12
|
+
.filter((filename) => filename.endsWith(".js"))
|
|
13
|
+
.map((filename) => filename.replace(".js", ""));
|
|
14
|
+
for (const name of fns) {
|
|
15
|
+
const { init } = require(`./${name}`);
|
|
16
|
+
await init(name).catch((e) => console.error(e));
|
|
17
|
+
}
|
|
72
18
|
}
|
|
73
19
|
exports.init = init;
|
|
@@ -1,95 +1,43 @@
|
|
|
1
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
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
-
function step(op) {
|
|
16
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (_) try {
|
|
18
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
-
switch (op[0]) {
|
|
21
|
-
case 0: case 1: t = op; break;
|
|
22
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
-
default:
|
|
26
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
-
if (t[2]) _.ops.pop();
|
|
31
|
-
_.trys.pop(); continue;
|
|
32
|
-
}
|
|
33
|
-
op = body.call(thisArg, _);
|
|
34
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
3
|
exports.init = void 0;
|
|
40
|
-
function init(name) {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
count: evaluateClassLevelPermission(userId, roles, clp === null || clp === void 0 ? void 0 : clp.count),
|
|
72
|
-
get: evaluateClassLevelPermission(userId, roles, clp === null || clp === void 0 ? void 0 : clp.get),
|
|
73
|
-
create: evaluateClassLevelPermission(userId, roles, clp === null || clp === void 0 ? void 0 : clp.create),
|
|
74
|
-
update: evaluateClassLevelPermission(userId, roles, clp === null || clp === void 0 ? void 0 : clp.update),
|
|
75
|
-
delete: evaluateClassLevelPermission(userId, roles, clp === null || clp === void 0 ? void 0 : clp.delete),
|
|
76
|
-
},
|
|
77
|
-
};
|
|
78
|
-
})
|
|
79
|
-
.filter(function (s) {
|
|
80
|
-
var p = s.evaluatedClassLevelPermissions;
|
|
81
|
-
return Object.values(p).some(Boolean);
|
|
82
|
-
});
|
|
83
|
-
return [2 /*return*/, {
|
|
84
|
-
userId: userId,
|
|
85
|
-
roles: roles,
|
|
86
|
-
schema: schema,
|
|
87
|
-
}];
|
|
88
|
-
}
|
|
89
|
-
});
|
|
90
|
-
}); });
|
|
91
|
-
return [2 /*return*/];
|
|
4
|
+
async function init(name) {
|
|
5
|
+
Parse.Cloud.define(name, async (request) => {
|
|
6
|
+
const userId = request.user?.id;
|
|
7
|
+
let roles = [];
|
|
8
|
+
if (request.user) {
|
|
9
|
+
// TODO, search roles recursivly
|
|
10
|
+
const roleObjects = await new Parse.Query(Parse.Role)
|
|
11
|
+
.equalTo("users", request.user)
|
|
12
|
+
.find({ useMasterKey: true });
|
|
13
|
+
roles = roleObjects.map((role) => role.getName());
|
|
14
|
+
}
|
|
15
|
+
const parseSchema = await Parse.Schema.all();
|
|
16
|
+
const schema = parseSchema
|
|
17
|
+
.map((s) => {
|
|
18
|
+
const clp = s.classLevelPermissions;
|
|
19
|
+
return {
|
|
20
|
+
className: s.className,
|
|
21
|
+
fields: s.fields,
|
|
22
|
+
evaluatedClassLevelPermissions: {
|
|
23
|
+
find: evaluateClassLevelPermission(userId, roles, clp?.find),
|
|
24
|
+
count: evaluateClassLevelPermission(userId, roles, clp?.count),
|
|
25
|
+
get: evaluateClassLevelPermission(userId, roles, clp?.get),
|
|
26
|
+
create: evaluateClassLevelPermission(userId, roles, clp?.create),
|
|
27
|
+
update: evaluateClassLevelPermission(userId, roles, clp?.update),
|
|
28
|
+
delete: evaluateClassLevelPermission(userId, roles, clp?.delete),
|
|
29
|
+
},
|
|
30
|
+
};
|
|
31
|
+
})
|
|
32
|
+
.filter((s) => {
|
|
33
|
+
const p = s.evaluatedClassLevelPermissions;
|
|
34
|
+
return Object.values(p).some(Boolean);
|
|
92
35
|
});
|
|
36
|
+
return {
|
|
37
|
+
userId,
|
|
38
|
+
roles,
|
|
39
|
+
schema,
|
|
40
|
+
};
|
|
93
41
|
});
|
|
94
42
|
}
|
|
95
43
|
exports.init = init;
|
|
@@ -106,9 +54,8 @@ function evaluateClassLevelPermission(userId, roles, permissions) {
|
|
|
106
54
|
if (userId && permissions[userId]) {
|
|
107
55
|
return true;
|
|
108
56
|
}
|
|
109
|
-
for (
|
|
110
|
-
|
|
111
|
-
if (permissions["role:".concat(role)]) {
|
|
57
|
+
for (const role of roles) {
|
|
58
|
+
if (permissions[`role:${role}`]) {
|
|
112
59
|
return true;
|
|
113
60
|
}
|
|
114
61
|
}
|
|
@@ -1,60 +1,11 @@
|
|
|
1
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
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
-
function step(op) {
|
|
16
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (_) try {
|
|
18
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
-
switch (op[0]) {
|
|
21
|
-
case 0: case 1: t = op; break;
|
|
22
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
-
default:
|
|
26
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
-
if (t[2]) _.ops.pop();
|
|
31
|
-
_.trys.pop(); continue;
|
|
32
|
-
}
|
|
33
|
-
op = body.call(thisArg, _);
|
|
34
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
3
|
exports.init = void 0;
|
|
40
|
-
|
|
41
|
-
function init(name) {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
return
|
|
45
|
-
Parse.Cloud.define(name, function (request) { return __awaiter(_this, void 0, void 0, function () {
|
|
46
|
-
return __generator(this, function (_a) {
|
|
47
|
-
switch (_a.label) {
|
|
48
|
-
case 0: return [4 /*yield*/, (0, __1.requirePermission)(request, "parse-admin", "You are not allowed to fetch the schema")];
|
|
49
|
-
case 1:
|
|
50
|
-
_a.sent();
|
|
51
|
-
return [4 /*yield*/, Parse.Schema.all()];
|
|
52
|
-
case 2: return [2 /*return*/, _a.sent()];
|
|
53
|
-
}
|
|
54
|
-
});
|
|
55
|
-
}); });
|
|
56
|
-
return [2 /*return*/];
|
|
57
|
-
});
|
|
4
|
+
const __1 = require("..");
|
|
5
|
+
async function init(name) {
|
|
6
|
+
Parse.Cloud.define(name, async (request) => {
|
|
7
|
+
await (0, __1.requirePermission)(request, "parse-admin", "You are not allowed to fetch the schema");
|
|
8
|
+
return await Parse.Schema.all();
|
|
58
9
|
});
|
|
59
10
|
}
|
|
60
11
|
exports.init = init;
|
|
@@ -1,64 +1,19 @@
|
|
|
1
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
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
-
function step(op) {
|
|
16
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (_) try {
|
|
18
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
-
switch (op[0]) {
|
|
21
|
-
case 0: case 1: t = op; break;
|
|
22
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
-
default:
|
|
26
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
-
if (t[2]) _.ops.pop();
|
|
31
|
-
_.trys.pop(); continue;
|
|
32
|
-
}
|
|
33
|
-
op = body.call(thisArg, _);
|
|
34
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
3
|
exports.init = void 0;
|
|
40
|
-
|
|
41
|
-
function init(name) {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
"vector-style": style,
|
|
54
|
-
"opendash-geo-google-autocomplete": !!GoK,
|
|
55
|
-
"opendash-geo-graphhopper-geocode": !!(GHH && GHK),
|
|
56
|
-
"opendash-geo-graphhopper-geocode-reverse": !!(GHH && GHK),
|
|
57
|
-
}];
|
|
58
|
-
});
|
|
59
|
-
}); });
|
|
60
|
-
return [2 /*return*/];
|
|
61
|
-
});
|
|
4
|
+
const __1 = require("..");
|
|
5
|
+
async function init(name) {
|
|
6
|
+
Parse.Cloud.define(name, async (request) => {
|
|
7
|
+
const style = (0, __1.getEnv)("PARSE_SERVER_GEO_VECTOR_STYLE");
|
|
8
|
+
const GoK = (0, __1.getEnv)("PARSE_SERVER_GEO_GOOGLE_API_KEY");
|
|
9
|
+
const GHH = (0, __1.getEnv)("PARSE_SERVER_GEO_GRAPHHOPPER_HOST");
|
|
10
|
+
const GHK = (0, __1.getEnv)("PARSE_SERVER_GEO_GRAPHHOPPER_API_KEY");
|
|
11
|
+
return {
|
|
12
|
+
"vector-style": style,
|
|
13
|
+
"opendash-geo-google-autocomplete": !!GoK,
|
|
14
|
+
"opendash-geo-graphhopper-geocode": !!(GHH && GHK),
|
|
15
|
+
"opendash-geo-graphhopper-geocode-reverse": !!(GHH && GHK),
|
|
16
|
+
};
|
|
62
17
|
});
|
|
63
18
|
}
|
|
64
19
|
exports.init = init;
|
|
@@ -1,123 +1,64 @@
|
|
|
1
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
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
-
function step(op) {
|
|
16
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (_) try {
|
|
18
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
-
switch (op[0]) {
|
|
21
|
-
case 0: case 1: t = op; break;
|
|
22
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
-
default:
|
|
26
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
-
if (t[2]) _.ops.pop();
|
|
31
|
-
_.trys.pop(); continue;
|
|
32
|
-
}
|
|
33
|
-
op = body.call(thisArg, _);
|
|
34
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
3
|
exports.init = void 0;
|
|
40
|
-
|
|
41
|
-
function init(name) {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
Parse.
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
case 1:
|
|
58
|
-
_b.trys.push([1, 7, , 8]);
|
|
59
|
-
return [4 /*yield*/, Parse.Cloud.httpRequest({
|
|
60
|
-
url: "https://maps.googleapis.com/maps/api/place/autocomplete/json",
|
|
61
|
-
params: {
|
|
62
|
-
key: API_KEY,
|
|
63
|
-
input: input,
|
|
64
|
-
},
|
|
65
|
-
})];
|
|
66
|
-
case 2:
|
|
67
|
-
response = _b.sent();
|
|
68
|
-
result = [];
|
|
69
|
-
_i = 0, _a = response.data.predictions;
|
|
70
|
-
_b.label = 3;
|
|
71
|
-
case 3:
|
|
72
|
-
if (!(_i < _a.length)) return [3 /*break*/, 6];
|
|
73
|
-
prediction = _a[_i];
|
|
74
|
-
if (result.length >= limit) {
|
|
75
|
-
return [3 /*break*/, 6];
|
|
76
|
-
}
|
|
77
|
-
return [4 /*yield*/, Parse.Cloud.httpRequest({
|
|
78
|
-
url: "https://maps.googleapis.com/maps/api/place/details/json",
|
|
79
|
-
params: {
|
|
80
|
-
key: API_KEY,
|
|
81
|
-
fields: "name,formatted_address,geometry",
|
|
82
|
-
sensor: true,
|
|
83
|
-
reference: prediction.reference,
|
|
84
|
-
},
|
|
85
|
-
})];
|
|
86
|
-
case 4:
|
|
87
|
-
placeResponse = _b.sent();
|
|
88
|
-
place = placeResponse.data.result;
|
|
89
|
-
result.push({
|
|
90
|
-
ref: prediction.reference,
|
|
91
|
-
title: place.name,
|
|
92
|
-
titleFull: prediction.description,
|
|
93
|
-
description: removeTitle(place.name, prediction.description),
|
|
94
|
-
address: place.formatted_address,
|
|
95
|
-
latitude: place.geometry.location.lat,
|
|
96
|
-
longitude: place.geometry.location.lng,
|
|
97
|
-
});
|
|
98
|
-
_b.label = 5;
|
|
99
|
-
case 5:
|
|
100
|
-
_i++;
|
|
101
|
-
return [3 /*break*/, 3];
|
|
102
|
-
case 6: return [2 /*return*/, result];
|
|
103
|
-
case 7:
|
|
104
|
-
error_1 = _b.sent();
|
|
105
|
-
console.error(error_1);
|
|
106
|
-
return [2 /*return*/, []];
|
|
107
|
-
case 8: return [2 /*return*/];
|
|
108
|
-
}
|
|
109
|
-
});
|
|
110
|
-
}); }, {
|
|
111
|
-
requireUser: true,
|
|
112
|
-
fields: ["query", "limit", "latitude", "longitude"],
|
|
4
|
+
const __1 = require("..");
|
|
5
|
+
async function init(name) {
|
|
6
|
+
Parse.Cloud.define(name, async (request) => {
|
|
7
|
+
const API_KEY = (0, __1.getEnv)("PARSE_SERVER_GEO_GOOGLE_API_KEY");
|
|
8
|
+
if (!API_KEY) {
|
|
9
|
+
throw new Parse.Error(Parse.Error.INTERNAL_SERVER_ERROR, `Feature not enabled [${name}-1]`);
|
|
10
|
+
}
|
|
11
|
+
const limit = request.params.limit;
|
|
12
|
+
const input = request.params.query;
|
|
13
|
+
try {
|
|
14
|
+
// https://developers.google.com/maps/documentation/places/web-service/autocomplete
|
|
15
|
+
const response = await Parse.Cloud.httpRequest({
|
|
16
|
+
url: "https://maps.googleapis.com/maps/api/place/autocomplete/json",
|
|
17
|
+
params: {
|
|
18
|
+
key: API_KEY,
|
|
19
|
+
input,
|
|
20
|
+
},
|
|
113
21
|
});
|
|
114
|
-
|
|
115
|
-
|
|
22
|
+
const result = [];
|
|
23
|
+
for (const prediction of response.data.predictions) {
|
|
24
|
+
if (result.length >= limit) {
|
|
25
|
+
break;
|
|
26
|
+
}
|
|
27
|
+
// https://developers.google.com/maps/documentation/places/web-service/details
|
|
28
|
+
const placeResponse = await Parse.Cloud.httpRequest({
|
|
29
|
+
url: "https://maps.googleapis.com/maps/api/place/details/json",
|
|
30
|
+
params: {
|
|
31
|
+
key: API_KEY,
|
|
32
|
+
fields: "name,formatted_address,geometry",
|
|
33
|
+
sensor: true,
|
|
34
|
+
reference: prediction.reference,
|
|
35
|
+
},
|
|
36
|
+
});
|
|
37
|
+
const place = placeResponse.data.result;
|
|
38
|
+
result.push({
|
|
39
|
+
ref: prediction.reference,
|
|
40
|
+
title: place.name,
|
|
41
|
+
titleFull: prediction.description,
|
|
42
|
+
description: removeTitle(place.name, prediction.description),
|
|
43
|
+
address: place.formatted_address,
|
|
44
|
+
latitude: place.geometry.location.lat,
|
|
45
|
+
longitude: place.geometry.location.lng,
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
return result;
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
console.error(error);
|
|
52
|
+
return [];
|
|
53
|
+
}
|
|
54
|
+
}, {
|
|
55
|
+
requireUser: true,
|
|
56
|
+
fields: ["query", "limit", "latitude", "longitude"],
|
|
116
57
|
});
|
|
117
58
|
}
|
|
118
59
|
exports.init = init;
|
|
119
60
|
function removeTitle(title, description) {
|
|
120
|
-
|
|
61
|
+
const prefix = `${title}, `;
|
|
121
62
|
if (description.startsWith(prefix)) {
|
|
122
63
|
return description.replace(prefix, "");
|
|
123
64
|
}
|