@openinc/parse-server-opendash 1.9.0 → 1.10.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/functions/opendash-geo-features.d.ts +1 -0
- package/dist/functions/opendash-geo-features.js +64 -0
- package/dist/functions/opendash-geo-google-autocomplete.d.ts +1 -0
- package/dist/functions/opendash-geo-google-autocomplete.js +125 -0
- package/dist/functions/opendash-geo-graphhopper-geocode-reverse.d.ts +1 -0
- package/dist/functions/opendash-geo-graphhopper-geocode-reverse.js +90 -0
- package/dist/functions/opendash-geo-graphhopper-geocode.d.ts +2 -0
- package/dist/functions/opendash-geo-graphhopper-geocode.js +118 -0
- package/dist/hooks/Alarm.js +8 -3
- package/dist/hooks/AlarmAction.js +8 -3
- package/dist/hooks/AlarmWebhook.js +8 -3
- package/dist/hooks/Config.js +8 -3
- package/dist/hooks/Dashboard.js +34 -19
- package/dist/hooks/NavigationGroup.js +8 -3
- package/dist/hooks/NavigationItem.js +8 -3
- package/dist/hooks/Notification.js +8 -3
- package/dist/hooks/Permission.js +8 -3
- package/dist/hooks/Push.js +22 -17
- package/dist/hooks/Report.js +8 -3
- package/dist/hooks/Share.js +8 -3
- package/dist/hooks/Source.js +95 -13
- package/dist/hooks/SourceMeta.js +8 -3
- package/dist/hooks/Tenant.js +28 -13
- package/dist/hooks/TenantMeta.js +6 -2
- package/dist/hooks/TenantTrustedDomain.js +6 -2
- package/dist/hooks/UserData.js +8 -3
- package/dist/hooks/WebPush.js +19 -14
- package/dist/hooks/Widget.js +8 -3
- package/dist/types/Tenant.d.ts +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function init(name: string): Promise<void>;
|
|
@@ -0,0 +1,64 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.init = void 0;
|
|
40
|
+
var __1 = require("..");
|
|
41
|
+
function init(name) {
|
|
42
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
43
|
+
var _this = this;
|
|
44
|
+
return __generator(this, function (_a) {
|
|
45
|
+
Parse.Cloud.define(name, function (request) { return __awaiter(_this, void 0, void 0, function () {
|
|
46
|
+
var style, GoK, GHH, GHK;
|
|
47
|
+
return __generator(this, function (_a) {
|
|
48
|
+
style = (0, __1.getEnv)("PARSE_SERVER_GEO_VECTOR_STYLE");
|
|
49
|
+
GoK = (0, __1.getEnv)("PARSE_SERVER_GEO_GOOGLE_API_KEY");
|
|
50
|
+
GHH = (0, __1.getEnv)("PARSE_SERVER_GEO_GRAPHHOPPER_HOST");
|
|
51
|
+
GHK = (0, __1.getEnv)("PARSE_SERVER_GEO_GRAPHHOPPER_API_KEY");
|
|
52
|
+
return [2 /*return*/, {
|
|
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
|
+
});
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
exports.init = init;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function init(name: string): Promise<void>;
|
|
@@ -0,0 +1,125 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.init = void 0;
|
|
40
|
+
var __1 = require("..");
|
|
41
|
+
function init(name) {
|
|
42
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
43
|
+
var _this = this;
|
|
44
|
+
return __generator(this, function (_a) {
|
|
45
|
+
Parse.Cloud.define(name, function (request) { return __awaiter(_this, void 0, void 0, function () {
|
|
46
|
+
var API_KEY, limit, input, response, result, _i, _a, prediction, placeResponse, place, error_1;
|
|
47
|
+
return __generator(this, function (_b) {
|
|
48
|
+
switch (_b.label) {
|
|
49
|
+
case 0:
|
|
50
|
+
API_KEY = (0, __1.getEnv)("PARSE_SERVER_GEO_GOOGLE_API_KEY");
|
|
51
|
+
if (!API_KEY) {
|
|
52
|
+
throw new Parse.Error(Parse.Error.INTERNAL_SERVER_ERROR, "Feature not enabled [".concat(name, "-1]"));
|
|
53
|
+
}
|
|
54
|
+
limit = request.params.limit;
|
|
55
|
+
input = request.params.query;
|
|
56
|
+
_b.label = 1;
|
|
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"],
|
|
113
|
+
});
|
|
114
|
+
return [2 /*return*/];
|
|
115
|
+
});
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
exports.init = init;
|
|
119
|
+
function removeTitle(title, description) {
|
|
120
|
+
var prefix = "".concat(title, ", ");
|
|
121
|
+
if (description.startsWith(prefix)) {
|
|
122
|
+
return description.replace(prefix, "");
|
|
123
|
+
}
|
|
124
|
+
return description;
|
|
125
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function init(name: string): Promise<void>;
|
|
@@ -0,0 +1,90 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.init = void 0;
|
|
40
|
+
var __1 = require("..");
|
|
41
|
+
var opendash_geo_graphhopper_geocode_1 = require("./opendash-geo-graphhopper-geocode");
|
|
42
|
+
function init(name) {
|
|
43
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
44
|
+
return __generator(this, function (_a) {
|
|
45
|
+
Parse.Cloud.define(name, function (request) {
|
|
46
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
47
|
+
var GRAPHHOPPER_HOST, GRAPHHOPPER_API_KEY, response, error_1;
|
|
48
|
+
return __generator(this, function (_a) {
|
|
49
|
+
switch (_a.label) {
|
|
50
|
+
case 0:
|
|
51
|
+
GRAPHHOPPER_HOST = (0, __1.getEnv)("PARSE_SERVER_GEO_GRAPHHOPPER_HOST");
|
|
52
|
+
if (!GRAPHHOPPER_HOST) {
|
|
53
|
+
throw new Parse.Error(Parse.Error.INTERNAL_SERVER_ERROR, "Feature not enabled [".concat(name, "-1]"));
|
|
54
|
+
}
|
|
55
|
+
GRAPHHOPPER_API_KEY = (0, __1.getEnv)("PARSE_SERVER_GEO_GRAPHHOPPER_API_KEY");
|
|
56
|
+
if (!GRAPHHOPPER_API_KEY) {
|
|
57
|
+
throw new Parse.Error(Parse.Error.INTERNAL_SERVER_ERROR, "Feature not enabled [".concat(name, "-2]"));
|
|
58
|
+
}
|
|
59
|
+
_a.label = 1;
|
|
60
|
+
case 1:
|
|
61
|
+
_a.trys.push([1, 3, , 4]);
|
|
62
|
+
return [4 /*yield*/, Parse.Cloud.httpRequest({
|
|
63
|
+
url: GRAPHHOPPER_HOST + "/geocode",
|
|
64
|
+
params: {
|
|
65
|
+
key: GRAPHHOPPER_API_KEY,
|
|
66
|
+
locale: "de",
|
|
67
|
+
reverse: "true",
|
|
68
|
+
point: request.params.latitude + "," + request.params.longitude,
|
|
69
|
+
},
|
|
70
|
+
})];
|
|
71
|
+
case 2:
|
|
72
|
+
response = _a.sent();
|
|
73
|
+
return [2 /*return*/, (0, opendash_geo_graphhopper_geocode_1.getGeoCodingResult)(response.data.hits)];
|
|
74
|
+
case 3:
|
|
75
|
+
error_1 = _a.sent();
|
|
76
|
+
console.error(error_1);
|
|
77
|
+
return [2 /*return*/, []];
|
|
78
|
+
case 4: return [2 /*return*/];
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
}, {
|
|
83
|
+
requireUser: true,
|
|
84
|
+
fields: ["latitude", "longitude"],
|
|
85
|
+
});
|
|
86
|
+
return [2 /*return*/];
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
exports.init = init;
|
|
@@ -0,0 +1,118 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.getGeoCodingResult = exports.init = void 0;
|
|
40
|
+
var __1 = require("..");
|
|
41
|
+
function init(name) {
|
|
42
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
43
|
+
return __generator(this, function (_a) {
|
|
44
|
+
Parse.Cloud.define(name, function (request) {
|
|
45
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
46
|
+
var GRAPHHOPPER_HOST, GRAPHHOPPER_API_KEY, response, error_1;
|
|
47
|
+
return __generator(this, function (_a) {
|
|
48
|
+
switch (_a.label) {
|
|
49
|
+
case 0:
|
|
50
|
+
GRAPHHOPPER_HOST = (0, __1.getEnv)("PARSE_SERVER_GEO_GRAPHHOPPER_HOST");
|
|
51
|
+
if (!GRAPHHOPPER_HOST) {
|
|
52
|
+
throw new Parse.Error(Parse.Error.INTERNAL_SERVER_ERROR, "Feature not enabled [".concat(name, "-1]"));
|
|
53
|
+
}
|
|
54
|
+
GRAPHHOPPER_API_KEY = (0, __1.getEnv)("PARSE_SERVER_GEO_GRAPHHOPPER_API_KEY");
|
|
55
|
+
if (!GRAPHHOPPER_API_KEY) {
|
|
56
|
+
throw new Parse.Error(Parse.Error.INTERNAL_SERVER_ERROR, "Feature not enabled [".concat(name, "-2]"));
|
|
57
|
+
}
|
|
58
|
+
_a.label = 1;
|
|
59
|
+
case 1:
|
|
60
|
+
_a.trys.push([1, 3, , 4]);
|
|
61
|
+
return [4 /*yield*/, Parse.Cloud.httpRequest({
|
|
62
|
+
url: GRAPHHOPPER_HOST + "/geocode",
|
|
63
|
+
params: {
|
|
64
|
+
key: GRAPHHOPPER_API_KEY,
|
|
65
|
+
locale: "de",
|
|
66
|
+
limit: "3",
|
|
67
|
+
q: request.params.query,
|
|
68
|
+
point: request.params.latitude + "," + request.params.longitude,
|
|
69
|
+
},
|
|
70
|
+
})];
|
|
71
|
+
case 2:
|
|
72
|
+
response = _a.sent();
|
|
73
|
+
return [2 /*return*/, getGeoCodingResult(response.data.hits)];
|
|
74
|
+
case 3:
|
|
75
|
+
error_1 = _a.sent();
|
|
76
|
+
console.error(error_1);
|
|
77
|
+
return [2 /*return*/, []];
|
|
78
|
+
case 4: return [2 /*return*/];
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
}, {
|
|
83
|
+
requireUser: true,
|
|
84
|
+
fields: ["query", "latitude", "longitude"],
|
|
85
|
+
});
|
|
86
|
+
return [2 /*return*/];
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
exports.init = init;
|
|
91
|
+
function getGeoCodingResult(hits) {
|
|
92
|
+
return hits.map(function (hit) { return ({
|
|
93
|
+
title: getGeoCodingTitle(hit),
|
|
94
|
+
description: getGeoCodingDescription(hit),
|
|
95
|
+
latitude: hit.point.lat,
|
|
96
|
+
longitude: hit.point.lng,
|
|
97
|
+
}); });
|
|
98
|
+
}
|
|
99
|
+
exports.getGeoCodingResult = getGeoCodingResult;
|
|
100
|
+
function getGeoCodingTitle(hit) {
|
|
101
|
+
if (hit.name && hit.housenumber) {
|
|
102
|
+
return hit.name + " " + hit.housenumber;
|
|
103
|
+
}
|
|
104
|
+
return hit.name;
|
|
105
|
+
}
|
|
106
|
+
function getGeoCodingDescription(hit) {
|
|
107
|
+
var country = hit.country ? ", ".concat(hit.country) : "";
|
|
108
|
+
if (hit.city && hit.postcode) {
|
|
109
|
+
return hit.postcode + " " + hit.city + country;
|
|
110
|
+
}
|
|
111
|
+
if (hit.city) {
|
|
112
|
+
return hit.city + country;
|
|
113
|
+
}
|
|
114
|
+
if (hit.postcode) {
|
|
115
|
+
return hit.postcode + country;
|
|
116
|
+
}
|
|
117
|
+
return "";
|
|
118
|
+
}
|
package/dist/hooks/Alarm.js
CHANGED
|
@@ -60,9 +60,14 @@ function init(className) {
|
|
|
60
60
|
(0, __1.beforeSaveHook)(className, function (request) { return __awaiter(_this, void 0, void 0, function () {
|
|
61
61
|
var object, original, user;
|
|
62
62
|
return __generator(this, function (_a) {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
63
|
+
switch (_a.label) {
|
|
64
|
+
case 0:
|
|
65
|
+
object = request.object, original = request.original, user = request.user;
|
|
66
|
+
return [4 /*yield*/, (0, __1.defaultHandler)(request)];
|
|
67
|
+
case 1:
|
|
68
|
+
_a.sent();
|
|
69
|
+
return [2 /*return*/];
|
|
70
|
+
}
|
|
66
71
|
});
|
|
67
72
|
}); });
|
|
68
73
|
(0, __1.afterSaveHook)(className, function (_a) {
|
|
@@ -45,9 +45,14 @@ function init(className) {
|
|
|
45
45
|
(0, __1.beforeSaveHook)(className, function (request) { return __awaiter(_this, void 0, void 0, function () {
|
|
46
46
|
var object, original, user;
|
|
47
47
|
return __generator(this, function (_a) {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
48
|
+
switch (_a.label) {
|
|
49
|
+
case 0:
|
|
50
|
+
object = request.object, original = request.original, user = request.user;
|
|
51
|
+
return [4 /*yield*/, (0, __1.defaultHandler)(request)];
|
|
52
|
+
case 1:
|
|
53
|
+
_a.sent();
|
|
54
|
+
return [2 /*return*/];
|
|
55
|
+
}
|
|
51
56
|
});
|
|
52
57
|
}); });
|
|
53
58
|
(0, __1.afterSaveHook)(className, function (_a) {
|
|
@@ -45,9 +45,14 @@ function init(className) {
|
|
|
45
45
|
(0, __1.beforeSaveHook)(className, function (request) { return __awaiter(_this, void 0, void 0, function () {
|
|
46
46
|
var object, original, user;
|
|
47
47
|
return __generator(this, function (_a) {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
48
|
+
switch (_a.label) {
|
|
49
|
+
case 0:
|
|
50
|
+
object = request.object, original = request.original, user = request.user;
|
|
51
|
+
return [4 /*yield*/, (0, __1.defaultHandler)(request)];
|
|
52
|
+
case 1:
|
|
53
|
+
_a.sent();
|
|
54
|
+
return [2 /*return*/];
|
|
55
|
+
}
|
|
51
56
|
});
|
|
52
57
|
}); });
|
|
53
58
|
(0, __1.afterSaveHook)(className, function (_a) {
|
package/dist/hooks/Config.js
CHANGED
|
@@ -45,9 +45,14 @@ function init(className) {
|
|
|
45
45
|
(0, __1.beforeSaveHook)(className, function (request) { return __awaiter(_this, void 0, void 0, function () {
|
|
46
46
|
var object, original, user;
|
|
47
47
|
return __generator(this, function (_a) {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
48
|
+
switch (_a.label) {
|
|
49
|
+
case 0:
|
|
50
|
+
object = request.object, original = request.original, user = request.user;
|
|
51
|
+
return [4 /*yield*/, (0, __1.defaultHandler)(request)];
|
|
52
|
+
case 1:
|
|
53
|
+
_a.sent();
|
|
54
|
+
return [2 /*return*/];
|
|
55
|
+
}
|
|
51
56
|
});
|
|
52
57
|
}); });
|
|
53
58
|
(0, __1.afterSaveHook)(className, function (_a) {
|
package/dist/hooks/Dashboard.js
CHANGED
|
@@ -45,38 +45,53 @@ function init(className) {
|
|
|
45
45
|
(0, __1.beforeSaveHook)(className, function (request) { return __awaiter(_this, void 0, void 0, function () {
|
|
46
46
|
var object, original, user;
|
|
47
47
|
return __generator(this, function (_a) {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
48
|
+
switch (_a.label) {
|
|
49
|
+
case 0:
|
|
50
|
+
object = request.object, original = request.original, user = request.user;
|
|
51
|
+
return [4 /*yield*/, (0, __1.defaultHandler)(request)];
|
|
52
|
+
case 1:
|
|
53
|
+
_a.sent();
|
|
54
|
+
return [2 /*return*/];
|
|
55
|
+
}
|
|
51
56
|
});
|
|
52
57
|
}); });
|
|
53
58
|
(0, __1.afterSaveHook)(className, function (_a) {
|
|
54
59
|
var object = _a.object, original = _a.original, user = _a.user;
|
|
55
60
|
return __awaiter(_this, void 0, void 0, function () {
|
|
56
|
-
var acl, widgetIds,
|
|
61
|
+
var acl, widgetIds, _i, widgetIds_1, widgetId, widget, error_1;
|
|
57
62
|
return __generator(this, function (_b) {
|
|
58
63
|
switch (_b.label) {
|
|
59
64
|
case 0:
|
|
60
65
|
acl = object.getACL();
|
|
61
66
|
widgetIds = object.get("widgets");
|
|
62
|
-
if (!(acl && Array.isArray(widgetIds) && widgetIds.length > 0)) return [3 /*break*/,
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
objectId: id,
|
|
66
|
-
});
|
|
67
|
-
});
|
|
68
|
-
return [4 /*yield*/, Parse.Object.fetchAll(widgets, { useMasterKey: true })];
|
|
67
|
+
if (!(acl && Array.isArray(widgetIds) && widgetIds.length > 0)) return [3 /*break*/, 7];
|
|
68
|
+
_i = 0, widgetIds_1 = widgetIds;
|
|
69
|
+
_b.label = 1;
|
|
69
70
|
case 1:
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
widget.setACL(acl);
|
|
74
|
-
}
|
|
75
|
-
return [4 /*yield*/, Parse.Object.saveAll(widgets, { useMasterKey: true })];
|
|
71
|
+
if (!(_i < widgetIds_1.length)) return [3 /*break*/, 7];
|
|
72
|
+
widgetId = widgetIds_1[_i];
|
|
73
|
+
_b.label = 2;
|
|
76
74
|
case 2:
|
|
75
|
+
_b.trys.push([2, 5, , 6]);
|
|
76
|
+
widget = new Parse.Object("".concat(__1.PREFIX, "Widget"), {
|
|
77
|
+
objectId: widgetId,
|
|
78
|
+
});
|
|
79
|
+
return [4 /*yield*/, widget.fetch({ useMasterKey: true })];
|
|
80
|
+
case 3:
|
|
81
|
+
_b.sent();
|
|
82
|
+
widget.setACL(acl);
|
|
83
|
+
return [4 /*yield*/, widget.save(null, { useMasterKey: true })];
|
|
84
|
+
case 4:
|
|
77
85
|
_b.sent();
|
|
78
|
-
|
|
79
|
-
case
|
|
86
|
+
return [3 /*break*/, 6];
|
|
87
|
+
case 5:
|
|
88
|
+
error_1 = _b.sent();
|
|
89
|
+
console.error("Error: Update widget permission from dashboard:", object.id, widgetId, error_1);
|
|
90
|
+
return [3 /*break*/, 6];
|
|
91
|
+
case 6:
|
|
92
|
+
_i++;
|
|
93
|
+
return [3 /*break*/, 1];
|
|
94
|
+
case 7: return [2 /*return*/];
|
|
80
95
|
}
|
|
81
96
|
});
|
|
82
97
|
});
|
|
@@ -45,9 +45,14 @@ function init(className) {
|
|
|
45
45
|
(0, __1.beforeSaveHook)(className, function (request) { return __awaiter(_this, void 0, void 0, function () {
|
|
46
46
|
var object, original, user;
|
|
47
47
|
return __generator(this, function (_a) {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
48
|
+
switch (_a.label) {
|
|
49
|
+
case 0:
|
|
50
|
+
object = request.object, original = request.original, user = request.user;
|
|
51
|
+
return [4 /*yield*/, (0, __1.defaultHandler)(request)];
|
|
52
|
+
case 1:
|
|
53
|
+
_a.sent();
|
|
54
|
+
return [2 /*return*/];
|
|
55
|
+
}
|
|
51
56
|
});
|
|
52
57
|
}); });
|
|
53
58
|
(0, __1.afterSaveHook)(className, function (_a) {
|
|
@@ -45,9 +45,14 @@ function init(className) {
|
|
|
45
45
|
(0, __1.beforeSaveHook)(className, function (request) { return __awaiter(_this, void 0, void 0, function () {
|
|
46
46
|
var object, original, user;
|
|
47
47
|
return __generator(this, function (_a) {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
48
|
+
switch (_a.label) {
|
|
49
|
+
case 0:
|
|
50
|
+
object = request.object, original = request.original, user = request.user;
|
|
51
|
+
return [4 /*yield*/, (0, __1.defaultHandler)(request)];
|
|
52
|
+
case 1:
|
|
53
|
+
_a.sent();
|
|
54
|
+
return [2 /*return*/];
|
|
55
|
+
}
|
|
51
56
|
});
|
|
52
57
|
}); });
|
|
53
58
|
(0, __1.afterSaveHook)(className, function (_a) {
|
|
@@ -49,9 +49,14 @@ function init(className) {
|
|
|
49
49
|
(0, __1.beforeSaveHook)(className, function (request) { return __awaiter(_this, void 0, void 0, function () {
|
|
50
50
|
var object, original, user;
|
|
51
51
|
return __generator(this, function (_a) {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
52
|
+
switch (_a.label) {
|
|
53
|
+
case 0:
|
|
54
|
+
object = request.object, original = request.original, user = request.user;
|
|
55
|
+
return [4 /*yield*/, (0, __1.defaultHandler)(request)];
|
|
56
|
+
case 1:
|
|
57
|
+
_a.sent();
|
|
58
|
+
return [2 /*return*/];
|
|
59
|
+
}
|
|
55
60
|
});
|
|
56
61
|
}); });
|
|
57
62
|
(0, __1.afterSaveHook)(className, function (_a) {
|
package/dist/hooks/Permission.js
CHANGED
|
@@ -45,9 +45,14 @@ function init(className) {
|
|
|
45
45
|
(0, __1.beforeSaveHook)(className, function (request) { return __awaiter(_this, void 0, void 0, function () {
|
|
46
46
|
var object, original, user;
|
|
47
47
|
return __generator(this, function (_a) {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
48
|
+
switch (_a.label) {
|
|
49
|
+
case 0:
|
|
50
|
+
object = request.object, original = request.original, user = request.user;
|
|
51
|
+
return [4 /*yield*/, (0, __1.defaultHandler)(request)];
|
|
52
|
+
case 1:
|
|
53
|
+
_a.sent();
|
|
54
|
+
return [2 /*return*/];
|
|
55
|
+
}
|
|
51
56
|
});
|
|
52
57
|
}); });
|
|
53
58
|
(0, __1.afterSaveHook)(className, function (_a) {
|
package/dist/hooks/Push.js
CHANGED
|
@@ -46,24 +46,29 @@ function init(className) {
|
|
|
46
46
|
var object, installationId, user;
|
|
47
47
|
var _a;
|
|
48
48
|
return __generator(this, function (_b) {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
49
|
+
switch (_b.label) {
|
|
50
|
+
case 0:
|
|
51
|
+
object = request.object, installationId = request.installationId, user = request.user;
|
|
52
|
+
return [4 /*yield*/, (0, __1.defaultHandler)(request)];
|
|
53
|
+
case 1:
|
|
54
|
+
_b.sent();
|
|
55
|
+
if (!user && !object.get("user")) {
|
|
56
|
+
throw new Parse.Error(142, "User Missing");
|
|
57
|
+
}
|
|
58
|
+
if (user && object.get("user") && user.id !== object.get("user").id) {
|
|
59
|
+
throw new Parse.Error(142, "Invalid User");
|
|
60
|
+
}
|
|
61
|
+
if (user) {
|
|
62
|
+
object.set("user", user);
|
|
63
|
+
}
|
|
64
|
+
if (installationId) {
|
|
65
|
+
object.set("installationId", installationId);
|
|
66
|
+
}
|
|
67
|
+
object.setACL(new Parse.ACL((_a = {},
|
|
68
|
+
_a[object.get("user").id] = { read: true, write: true },
|
|
69
|
+
_a)));
|
|
70
|
+
return [2 /*return*/];
|
|
53
71
|
}
|
|
54
|
-
if (user && object.get("user") && user.id !== object.get("user").id) {
|
|
55
|
-
throw new Parse.Error(142, "Invalid User");
|
|
56
|
-
}
|
|
57
|
-
if (user) {
|
|
58
|
-
object.set("user", user);
|
|
59
|
-
}
|
|
60
|
-
if (installationId) {
|
|
61
|
-
object.set("installationId", installationId);
|
|
62
|
-
}
|
|
63
|
-
object.setACL(new Parse.ACL((_a = {},
|
|
64
|
-
_a[object.get("user").id] = { read: true, write: true },
|
|
65
|
-
_a)));
|
|
66
|
-
return [2 /*return*/];
|
|
67
72
|
});
|
|
68
73
|
}); });
|
|
69
74
|
(0, __1.afterSaveHook)(className, function (_a) {
|
package/dist/hooks/Report.js
CHANGED
|
@@ -45,9 +45,14 @@ function init(className) {
|
|
|
45
45
|
(0, __1.beforeSaveHook)(className, function (request) { return __awaiter(_this, void 0, void 0, function () {
|
|
46
46
|
var object, original, user;
|
|
47
47
|
return __generator(this, function (_a) {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
48
|
+
switch (_a.label) {
|
|
49
|
+
case 0:
|
|
50
|
+
object = request.object, original = request.original, user = request.user;
|
|
51
|
+
return [4 /*yield*/, (0, __1.defaultHandler)(request)];
|
|
52
|
+
case 1:
|
|
53
|
+
_a.sent();
|
|
54
|
+
return [2 /*return*/];
|
|
55
|
+
}
|
|
51
56
|
});
|
|
52
57
|
}); });
|
|
53
58
|
(0, __1.afterSaveHook)(className, function (_a) {
|
package/dist/hooks/Share.js
CHANGED
|
@@ -45,9 +45,14 @@ function init(className) {
|
|
|
45
45
|
(0, __1.beforeSaveHook)(className, function (request) { return __awaiter(_this, void 0, void 0, function () {
|
|
46
46
|
var object, original, user;
|
|
47
47
|
return __generator(this, function (_a) {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
48
|
+
switch (_a.label) {
|
|
49
|
+
case 0:
|
|
50
|
+
object = request.object, original = request.original, user = request.user;
|
|
51
|
+
return [4 /*yield*/, (0, __1.defaultHandler)(request)];
|
|
52
|
+
case 1:
|
|
53
|
+
_a.sent();
|
|
54
|
+
return [2 /*return*/];
|
|
55
|
+
}
|
|
51
56
|
});
|
|
52
57
|
}); });
|
|
53
58
|
(0, __1.afterSaveHook)(className, function (_a) {
|
package/dist/hooks/Source.js
CHANGED
|
@@ -43,16 +43,46 @@ function init(className) {
|
|
|
43
43
|
var _this = this;
|
|
44
44
|
return __generator(this, function (_a) {
|
|
45
45
|
(0, __1.beforeSaveHook)(className, function (request) { return __awaiter(_this, void 0, void 0, function () {
|
|
46
|
-
var object, original, user, acl, tenant, meta;
|
|
47
|
-
|
|
48
|
-
|
|
46
|
+
var object, original, user, acl, tenant_1, duplicates, tenant, meta;
|
|
47
|
+
var _a, _b, _c;
|
|
48
|
+
return __generator(this, function (_d) {
|
|
49
|
+
switch (_d.label) {
|
|
49
50
|
case 0:
|
|
50
51
|
object = request.object, original = request.original, user = request.user;
|
|
51
|
-
(0, __1.defaultHandler)(request);
|
|
52
|
+
return [4 /*yield*/, (0, __1.defaultHandler)(request)];
|
|
53
|
+
case 1:
|
|
54
|
+
_d.sent();
|
|
52
55
|
acl = object.getACL();
|
|
53
56
|
if (!acl) {
|
|
54
57
|
acl = new Parse.ACL();
|
|
55
58
|
}
|
|
59
|
+
if (!(object.get("tag") && object.get("tag") !== (original === null || original === void 0 ? void 0 : original.get("tag")))) return [3 /*break*/, 9];
|
|
60
|
+
if (!((_a = object.get("tag")) === null || _a === void 0 ? void 0 : _a.startsWith("group:"))) return [3 /*break*/, 3];
|
|
61
|
+
return [4 /*yield*/, (0, __1.requirePermission)(request, "opendash:source:write-tag-group", "User is not allowed to write sources with a tag starting with 'group:'")];
|
|
62
|
+
case 2:
|
|
63
|
+
_d.sent();
|
|
64
|
+
_d.label = 3;
|
|
65
|
+
case 3: return [4 /*yield*/, ((_b = object.get("tenant")) === null || _b === void 0 ? void 0 : _b.fetch({ useMasterKey: true }))];
|
|
66
|
+
case 4:
|
|
67
|
+
tenant_1 = _d.sent();
|
|
68
|
+
if (!(tenant_1 && tenant_1.get("tagPrefix"))) return [3 /*break*/, 6];
|
|
69
|
+
if (!!((_c = object.get("tag")) === null || _c === void 0 ? void 0 : _c.startsWith(tenant_1.get("tagPrefix")))) return [3 /*break*/, 6];
|
|
70
|
+
return [4 /*yield*/, (0, __1.requirePermission)(request, "opendash:source:write-tag-ignore-tenant-prefix", "User is not allowed to use tag which ignores tenant prefix")];
|
|
71
|
+
case 5:
|
|
72
|
+
_d.sent();
|
|
73
|
+
_d.label = 6;
|
|
74
|
+
case 6: return [4 /*yield*/, new Parse.Query(className)
|
|
75
|
+
.notEqualTo("id", object.id)
|
|
76
|
+
.equalTo("tag", object.get("tag"))
|
|
77
|
+
.find({ useMasterKey: true })];
|
|
78
|
+
case 7:
|
|
79
|
+
duplicates = _d.sent();
|
|
80
|
+
if (!(duplicates.length > 0)) return [3 /*break*/, 9];
|
|
81
|
+
return [4 /*yield*/, (0, __1.requirePermission)(request, "opendash:source:write-tag-duplicate", "User is not allowed to write sources with a duplicate tag")];
|
|
82
|
+
case 8:
|
|
83
|
+
_d.sent();
|
|
84
|
+
_d.label = 9;
|
|
85
|
+
case 9:
|
|
56
86
|
acl.setRoleReadAccess("od-admin", true);
|
|
57
87
|
acl.setRoleWriteAccess("od-admin", true);
|
|
58
88
|
tenant = object.get("tenant");
|
|
@@ -69,8 +99,8 @@ function init(className) {
|
|
|
69
99
|
meta === null || meta === void 0 ? void 0 : meta.setACL(object.getACL());
|
|
70
100
|
meta === null || meta === void 0 ? void 0 : meta.set("name", object.get("name"));
|
|
71
101
|
return [4 /*yield*/, (meta === null || meta === void 0 ? void 0 : meta.save(null, { useMasterKey: true }))];
|
|
72
|
-
case
|
|
73
|
-
|
|
102
|
+
case 10:
|
|
103
|
+
_d.sent();
|
|
74
104
|
return [2 /*return*/];
|
|
75
105
|
}
|
|
76
106
|
});
|
|
@@ -119,13 +149,13 @@ function init(className) {
|
|
|
119
149
|
console.log(error_1);
|
|
120
150
|
return [3 /*break*/, 8];
|
|
121
151
|
case 8:
|
|
122
|
-
_c.trys.push([8,
|
|
152
|
+
_c.trys.push([8, 17, , 18]);
|
|
123
153
|
return [4 /*yield*/, new Parse.Query("AccessPermissions")
|
|
124
154
|
.equalTo("source", object)
|
|
125
155
|
.find({ useMasterKey: true })];
|
|
126
156
|
case 9:
|
|
127
157
|
permissions = _c.sent();
|
|
128
|
-
if (permissions.length === 0) {
|
|
158
|
+
if (object.get("tag") && permissions.length === 0) {
|
|
129
159
|
permissions.push(new Parse.Object("AccessPermissions", {
|
|
130
160
|
source: object,
|
|
131
161
|
read: ".*",
|
|
@@ -133,6 +163,7 @@ function init(className) {
|
|
|
133
163
|
delete: ".*",
|
|
134
164
|
}));
|
|
135
165
|
}
|
|
166
|
+
if (!object.get("tag")) return [3 /*break*/, 14];
|
|
136
167
|
_b = 0, permissions_1 = permissions;
|
|
137
168
|
_c.label = 10;
|
|
138
169
|
case 10:
|
|
@@ -140,20 +171,71 @@ function init(className) {
|
|
|
140
171
|
permission = permissions_1[_b];
|
|
141
172
|
permission.set("owner", object.get("tag"));
|
|
142
173
|
permission.setACL(object.getACL());
|
|
143
|
-
return [4 /*yield*/, permission.save(null, {
|
|
174
|
+
return [4 /*yield*/, permission.save(null, {
|
|
175
|
+
useMasterKey: true,
|
|
176
|
+
cascadeSave: false,
|
|
177
|
+
})];
|
|
144
178
|
case 11:
|
|
145
179
|
_c.sent();
|
|
146
180
|
_c.label = 12;
|
|
147
181
|
case 12:
|
|
148
182
|
_b++;
|
|
149
183
|
return [3 /*break*/, 10];
|
|
150
|
-
case 13: return [3 /*break*/,
|
|
151
|
-
case 14:
|
|
184
|
+
case 13: return [3 /*break*/, 16];
|
|
185
|
+
case 14: return [4 /*yield*/, Parse.Object.destroyAll(permissions, { useMasterKey: true })];
|
|
186
|
+
case 15:
|
|
187
|
+
_c.sent();
|
|
188
|
+
_c.label = 16;
|
|
189
|
+
case 16: return [3 /*break*/, 18];
|
|
190
|
+
case 17:
|
|
152
191
|
error_2 = _c.sent();
|
|
153
192
|
console.log("[@openinc/parse-server-opendash][Source] open.WARE AccessPermissions were not saved.");
|
|
154
193
|
console.log(error_2);
|
|
155
|
-
return [3 /*break*/,
|
|
156
|
-
case
|
|
194
|
+
return [3 /*break*/, 18];
|
|
195
|
+
case 18: return [2 /*return*/];
|
|
196
|
+
}
|
|
197
|
+
});
|
|
198
|
+
});
|
|
199
|
+
});
|
|
200
|
+
(0, __1.beforeDeleteHook)(className, function (_a) {
|
|
201
|
+
var object = _a.object, original = _a.original, user = _a.user;
|
|
202
|
+
return __awaiter(_this, void 0, void 0, function () {
|
|
203
|
+
var locations, error_3, permissions, error_4;
|
|
204
|
+
return __generator(this, function (_b) {
|
|
205
|
+
switch (_b.label) {
|
|
206
|
+
case 0:
|
|
207
|
+
_b.trys.push([0, 3, , 4]);
|
|
208
|
+
return [4 /*yield*/, new Parse.Query("Locations")
|
|
209
|
+
.equalTo("source", object)
|
|
210
|
+
.find({ useMasterKey: true })];
|
|
211
|
+
case 1:
|
|
212
|
+
locations = _b.sent();
|
|
213
|
+
return [4 /*yield*/, Parse.Object.destroyAll(locations, { useMasterKey: true })];
|
|
214
|
+
case 2:
|
|
215
|
+
_b.sent();
|
|
216
|
+
return [3 /*break*/, 4];
|
|
217
|
+
case 3:
|
|
218
|
+
error_3 = _b.sent();
|
|
219
|
+
console.log("[@openinc/parse-server-opendash][Source] open.DASH 2 Compatibility not saved.");
|
|
220
|
+
console.log(error_3);
|
|
221
|
+
return [3 /*break*/, 4];
|
|
222
|
+
case 4:
|
|
223
|
+
_b.trys.push([4, 7, , 8]);
|
|
224
|
+
return [4 /*yield*/, new Parse.Query("AccessPermissions")
|
|
225
|
+
.equalTo("source", object)
|
|
226
|
+
.find({ useMasterKey: true })];
|
|
227
|
+
case 5:
|
|
228
|
+
permissions = _b.sent();
|
|
229
|
+
return [4 /*yield*/, Parse.Object.destroyAll(permissions, { useMasterKey: true })];
|
|
230
|
+
case 6:
|
|
231
|
+
_b.sent();
|
|
232
|
+
return [3 /*break*/, 8];
|
|
233
|
+
case 7:
|
|
234
|
+
error_4 = _b.sent();
|
|
235
|
+
console.log("[@openinc/parse-server-opendash][Source] open.WARE AccessPermissions were not saved.");
|
|
236
|
+
console.log(error_4);
|
|
237
|
+
return [3 /*break*/, 8];
|
|
238
|
+
case 8: return [2 /*return*/];
|
|
157
239
|
}
|
|
158
240
|
});
|
|
159
241
|
});
|
package/dist/hooks/SourceMeta.js
CHANGED
|
@@ -45,9 +45,14 @@ function init(className) {
|
|
|
45
45
|
(0, __1.beforeSaveHook)(className, function (request) { return __awaiter(_this, void 0, void 0, function () {
|
|
46
46
|
var object, original, user;
|
|
47
47
|
return __generator(this, function (_a) {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
48
|
+
switch (_a.label) {
|
|
49
|
+
case 0:
|
|
50
|
+
object = request.object, original = request.original, user = request.user;
|
|
51
|
+
return [4 /*yield*/, (0, __1.defaultHandler)(request)];
|
|
52
|
+
case 1:
|
|
53
|
+
_a.sent();
|
|
54
|
+
return [2 /*return*/];
|
|
55
|
+
}
|
|
51
56
|
});
|
|
52
57
|
}); });
|
|
53
58
|
(0, __1.afterSaveHook)(className, function (_a) {
|
package/dist/hooks/Tenant.js
CHANGED
|
@@ -49,8 +49,13 @@ function init(className) {
|
|
|
49
49
|
switch (_c.label) {
|
|
50
50
|
case 0:
|
|
51
51
|
object = request.object, original = request.original, user = request.user;
|
|
52
|
-
(0, __1.defaultHandler)(request);
|
|
53
|
-
|
|
52
|
+
return [4 /*yield*/, (0, __1.defaultHandler)(request)];
|
|
53
|
+
case 1:
|
|
54
|
+
_c.sent();
|
|
55
|
+
return [4 /*yield*/, (0, __1.immutableField)(request, "tagPrefix", "opendash:tenant:change-tag-prefix")];
|
|
56
|
+
case 2:
|
|
57
|
+
_c.sent();
|
|
58
|
+
if (!object.id) return [3 /*break*/, 7];
|
|
54
59
|
object.setACL(new Parse.ACL((_a = {},
|
|
55
60
|
_a["role:od-tenant-user-".concat(object.id)] = {
|
|
56
61
|
read: true,
|
|
@@ -64,19 +69,24 @@ function init(className) {
|
|
|
64
69
|
write: true,
|
|
65
70
|
},
|
|
66
71
|
_a)));
|
|
67
|
-
if (!!object.get("meta")) return [3 /*break*/,
|
|
72
|
+
if (!!object.get("meta")) return [3 /*break*/, 4];
|
|
68
73
|
meta = new Parse.Object("".concat(__1.PREFIX, "TenantMeta"), {
|
|
69
74
|
tenant: object,
|
|
70
75
|
});
|
|
71
76
|
return [4 /*yield*/, meta.save(null, { useMasterKey: true, cascadeSave: false })];
|
|
72
|
-
case
|
|
77
|
+
case 3:
|
|
73
78
|
_c.sent();
|
|
74
79
|
object.set("meta", meta);
|
|
75
|
-
_c.label =
|
|
76
|
-
case
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
+
_c.label = 4;
|
|
81
|
+
case 4:
|
|
82
|
+
// Handle default tag prefix
|
|
83
|
+
if (request.context.beforeSaveAfterCreation) {
|
|
84
|
+
object.set("tagPrefix", "tenant-".concat(object.id, "-"));
|
|
85
|
+
}
|
|
86
|
+
return [4 /*yield*/, new Parse.Query("".concat(__1.PREFIX, "Source"))
|
|
87
|
+
.equalTo("tag", "tenant-root-source")
|
|
88
|
+
.first({ useMasterKey: true })];
|
|
89
|
+
case 5:
|
|
80
90
|
rootSource = _c.sent();
|
|
81
91
|
sourceACL = new Parse.ACL((_b = {},
|
|
82
92
|
_b["role:od-tenant-user-".concat(object.id)] = {
|
|
@@ -94,11 +104,11 @@ function init(className) {
|
|
|
94
104
|
dataSource.set("name", object.get("label"));
|
|
95
105
|
dataSource.set("tag", "tenant-data-".concat(object.id));
|
|
96
106
|
return [4 /*yield*/, dataSource.save(null, { useMasterKey: true })];
|
|
97
|
-
case
|
|
107
|
+
case 6:
|
|
98
108
|
_c.sent();
|
|
99
109
|
object.set("dataSource", dataSource);
|
|
100
|
-
_c.label =
|
|
101
|
-
case
|
|
110
|
+
_c.label = 7;
|
|
111
|
+
case 7: return [2 /*return*/];
|
|
102
112
|
}
|
|
103
113
|
});
|
|
104
114
|
}); });
|
|
@@ -126,7 +136,12 @@ function init(className) {
|
|
|
126
136
|
_c.sent();
|
|
127
137
|
if (!!original) return [3 /*break*/, 4];
|
|
128
138
|
// trigger beforeSave after creation
|
|
129
|
-
return [4 /*yield*/, object.save(null, {
|
|
139
|
+
return [4 /*yield*/, object.save(null, {
|
|
140
|
+
useMasterKey: true,
|
|
141
|
+
context: {
|
|
142
|
+
beforeSaveAfterCreation: true,
|
|
143
|
+
},
|
|
144
|
+
})];
|
|
130
145
|
case 3:
|
|
131
146
|
// trigger beforeSave after creation
|
|
132
147
|
_c.sent();
|
package/dist/hooks/TenantMeta.js
CHANGED
|
@@ -44,8 +44,12 @@ function init(className) {
|
|
|
44
44
|
return __generator(this, function (_a) {
|
|
45
45
|
(0, __1.beforeSaveHook)(className, function (request) { return __awaiter(_this, void 0, void 0, function () {
|
|
46
46
|
return __generator(this, function (_a) {
|
|
47
|
-
(
|
|
48
|
-
|
|
47
|
+
switch (_a.label) {
|
|
48
|
+
case 0: return [4 /*yield*/, (0, __1.defaultHandler)(request)];
|
|
49
|
+
case 1:
|
|
50
|
+
_a.sent();
|
|
51
|
+
return [2 /*return*/];
|
|
52
|
+
}
|
|
49
53
|
});
|
|
50
54
|
}); });
|
|
51
55
|
(0, __1.afterSaveHook)(className, function (request) { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
|
|
@@ -44,8 +44,12 @@ function init(className) {
|
|
|
44
44
|
return __generator(this, function (_a) {
|
|
45
45
|
(0, __1.beforeSaveHook)(className, function (request) { return __awaiter(_this, void 0, void 0, function () {
|
|
46
46
|
return __generator(this, function (_a) {
|
|
47
|
-
(
|
|
48
|
-
|
|
47
|
+
switch (_a.label) {
|
|
48
|
+
case 0: return [4 /*yield*/, (0, __1.defaultHandler)(request)];
|
|
49
|
+
case 1:
|
|
50
|
+
_a.sent();
|
|
51
|
+
return [2 /*return*/];
|
|
52
|
+
}
|
|
49
53
|
});
|
|
50
54
|
}); });
|
|
51
55
|
(0, __1.afterSaveHook)(className, function (request) { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
|
package/dist/hooks/UserData.js
CHANGED
|
@@ -45,9 +45,14 @@ function init(className) {
|
|
|
45
45
|
(0, __1.beforeSaveHook)(className, function (request) { return __awaiter(_this, void 0, void 0, function () {
|
|
46
46
|
var object, original, user;
|
|
47
47
|
return __generator(this, function (_a) {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
48
|
+
switch (_a.label) {
|
|
49
|
+
case 0:
|
|
50
|
+
object = request.object, original = request.original, user = request.user;
|
|
51
|
+
return [4 /*yield*/, (0, __1.defaultHandler)(request)];
|
|
52
|
+
case 1:
|
|
53
|
+
_a.sent();
|
|
54
|
+
return [2 /*return*/];
|
|
55
|
+
}
|
|
51
56
|
});
|
|
52
57
|
}); });
|
|
53
58
|
(0, __1.afterSaveHook)(className, function (_a) {
|
package/dist/hooks/WebPush.js
CHANGED
|
@@ -46,21 +46,26 @@ function init(className) {
|
|
|
46
46
|
var object, original, user;
|
|
47
47
|
var _a;
|
|
48
48
|
return __generator(this, function (_b) {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
49
|
+
switch (_b.label) {
|
|
50
|
+
case 0:
|
|
51
|
+
object = request.object, original = request.original, user = request.user;
|
|
52
|
+
return [4 /*yield*/, (0, __1.defaultHandler)(request)];
|
|
53
|
+
case 1:
|
|
54
|
+
_b.sent();
|
|
55
|
+
if (!user && !object.get("user")) {
|
|
56
|
+
throw new Parse.Error(142, "User Missing");
|
|
57
|
+
}
|
|
58
|
+
if (user && object.get("user") && user.id !== object.get("user").id) {
|
|
59
|
+
throw new Parse.Error(142, "Invalid User");
|
|
60
|
+
}
|
|
61
|
+
if (user) {
|
|
62
|
+
object.set("user", user);
|
|
63
|
+
}
|
|
64
|
+
object.setACL(new Parse.ACL((_a = {},
|
|
65
|
+
_a[object.get("user").id] = { read: true, write: true },
|
|
66
|
+
_a)));
|
|
67
|
+
return [2 /*return*/];
|
|
53
68
|
}
|
|
54
|
-
if (user && object.get("user") && user.id !== object.get("user").id) {
|
|
55
|
-
throw new Parse.Error(142, "Invalid User");
|
|
56
|
-
}
|
|
57
|
-
if (user) {
|
|
58
|
-
object.set("user", user);
|
|
59
|
-
}
|
|
60
|
-
object.setACL(new Parse.ACL((_a = {},
|
|
61
|
-
_a[object.get("user").id] = { read: true, write: true },
|
|
62
|
-
_a)));
|
|
63
|
-
return [2 /*return*/];
|
|
64
69
|
});
|
|
65
70
|
}); });
|
|
66
71
|
(0, __1.afterSaveHook)(className, function (_a) {
|
package/dist/hooks/Widget.js
CHANGED
|
@@ -45,9 +45,14 @@ function init(className) {
|
|
|
45
45
|
(0, __1.beforeSaveHook)(className, function (request) { return __awaiter(_this, void 0, void 0, function () {
|
|
46
46
|
var object, original, user;
|
|
47
47
|
return __generator(this, function (_a) {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
48
|
+
switch (_a.label) {
|
|
49
|
+
case 0:
|
|
50
|
+
object = request.object, original = request.original, user = request.user;
|
|
51
|
+
return [4 /*yield*/, (0, __1.defaultHandler)(request)];
|
|
52
|
+
case 1:
|
|
53
|
+
_a.sent();
|
|
54
|
+
return [2 /*return*/];
|
|
55
|
+
}
|
|
51
56
|
});
|
|
52
57
|
}); });
|
|
53
58
|
(0, __1.afterSaveHook)(className, function (_a) {
|
package/dist/types/Tenant.d.ts
CHANGED