@forestadmin/agent 1.0.0-beta.6 → 1.0.0-beta.60
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/agent/forestadmin-http-driver.d.ts +5 -27
- package/dist/agent/forestadmin-http-driver.js +17 -47
- package/dist/agent/routes/access/api-chart.d.ts +16 -0
- package/dist/agent/routes/access/api-chart.js +47 -0
- package/dist/agent/routes/access/chart.d.ts +1 -0
- package/dist/agent/routes/access/chart.js +26 -11
- package/dist/agent/routes/access/count-related.js +13 -6
- package/dist/agent/routes/access/count.js +14 -7
- package/dist/agent/routes/access/csv-related.js +3 -3
- package/dist/agent/routes/access/csv.js +4 -3
- package/dist/agent/routes/access/get.js +3 -2
- package/dist/agent/routes/access/list-related.js +2 -3
- package/dist/agent/routes/access/list.js +2 -3
- package/dist/agent/routes/base-route.d.ts +0 -1
- package/dist/agent/routes/base-route.js +1 -4
- package/dist/agent/routes/index.js +20 -2
- package/dist/agent/routes/modification/action.d.ts +0 -1
- package/dist/agent/routes/modification/action.js +14 -13
- package/dist/agent/routes/modification/associate-related.d.ts +3 -3
- package/dist/agent/routes/modification/associate-related.js +13 -11
- package/dist/agent/routes/modification/create.js +14 -12
- package/dist/agent/routes/modification/delete.js +3 -2
- package/dist/agent/routes/modification/dissociate-delete-related.js +19 -18
- package/dist/agent/routes/modification/update-field.d.ts +9 -0
- package/dist/agent/routes/modification/update-field.js +39 -0
- package/dist/agent/routes/modification/update-relation.js +19 -13
- package/dist/agent/routes/modification/update.js +5 -3
- package/dist/agent/routes/security/authentication.d.ts +1 -3
- package/dist/agent/routes/security/authentication.js +9 -21
- package/dist/agent/routes/system/error-handling.d.ts +2 -0
- package/dist/agent/routes/system/error-handling.js +28 -9
- package/dist/agent/routes/system/logger.js +4 -5
- package/dist/agent/services/index.js +2 -2
- package/dist/agent/services/permissions.js +8 -2
- package/dist/agent/services/serializer.d.ts +0 -5
- package/dist/agent/services/serializer.js +4 -4
- package/dist/agent/types.d.ts +2 -1
- package/dist/agent/types.js +2 -1
- package/dist/agent/utils/condition-tree-parser.d.ts +11 -0
- package/dist/agent/utils/condition-tree-parser.js +53 -0
- package/dist/agent/utils/context-filter-factory.js +1 -2
- package/dist/agent/utils/csv-generator.d.ts +2 -2
- package/dist/agent/utils/csv-generator.js +3 -3
- package/dist/agent/utils/forest-http-api.d.ts +4 -2
- package/dist/agent/utils/forest-http-api.js +60 -53
- package/dist/agent/utils/forest-schema/action-values.d.ts +2 -2
- package/dist/agent/utils/forest-schema/action-values.js +2 -2
- package/dist/agent/utils/forest-schema/emitter.d.ts +1 -1
- package/dist/agent/utils/forest-schema/emitter.js +4 -4
- package/dist/agent/utils/forest-schema/generator-actions.d.ts +1 -1
- package/dist/agent/utils/forest-schema/generator-actions.js +4 -4
- package/dist/agent/utils/forest-schema/generator-collection.d.ts +1 -1
- package/dist/agent/utils/forest-schema/generator-collection.js +9 -4
- package/dist/agent/utils/forest-schema/generator-fields.d.ts +1 -0
- package/dist/agent/utils/forest-schema/generator-fields.js +56 -27
- package/dist/agent/utils/forest-schema/types.d.ts +10 -4
- package/dist/agent/utils/forest-schema/types.js +1 -1
- package/dist/agent/utils/forest-schema/validation.d.ts +1 -1
- package/dist/agent/utils/forest-schema/validation.js +9 -7
- package/dist/agent/utils/query-string.d.ts +2 -2
- package/dist/agent/utils/query-string.js +8 -4
- package/dist/builder/agent.d.ts +33 -43
- package/dist/builder/agent.js +59 -58
- package/dist/builder/collection.d.ts +161 -53
- package/dist/builder/collection.js +233 -61
- package/dist/builder/decorators-stack.d.ts +25 -0
- package/dist/builder/decorators-stack.js +40 -0
- package/dist/builder/framework-mounter.d.ts +43 -0
- package/dist/builder/framework-mounter.js +157 -0
- package/dist/builder/types.d.ts +15 -2
- package/dist/{agent/utils/http-driver-options.d.ts → builder/utils/options-validator.d.ts} +4 -4
- package/dist/builder/utils/options-validator.js +92 -0
- package/dist/builder/utils/typing-generator.d.ts +15 -0
- package/dist/builder/utils/typing-generator.js +125 -0
- package/dist/index.d.ts +5 -2
- package/dist/index.js +14 -6
- package/dist/types.d.ts +5 -10
- package/dist/types.js +1 -9
- package/package.json +15 -5
- package/CHANGELOG.md +0 -435
- package/dist/agent/utils/http-driver-options.js +0 -86
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const fs_1 = require("fs");
|
|
4
|
-
const path_1 = require("path");
|
|
5
|
-
const types_1 = require("../../types");
|
|
6
|
-
class OptionsUtils {
|
|
7
|
-
static withDefaults(options) {
|
|
8
|
-
return Object.freeze({
|
|
9
|
-
clientId: null,
|
|
10
|
-
forestServerUrl: 'https://api.forestadmin.com',
|
|
11
|
-
logger: (level, data) => console.error(OptionsUtils.loggerPrefix[level], data),
|
|
12
|
-
prefix: '/forest',
|
|
13
|
-
schemaPath: '.forestadmin-schema.json',
|
|
14
|
-
permissionsCacheDurationInSeconds: 15 * 60,
|
|
15
|
-
...options,
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
static validate(options) {
|
|
19
|
-
OptionsUtils.checkForestServerOptions(options);
|
|
20
|
-
OptionsUtils.checkAuthOptions(options);
|
|
21
|
-
OptionsUtils.checkOtherOptions(options);
|
|
22
|
-
}
|
|
23
|
-
static checkForestServerOptions(options) {
|
|
24
|
-
if (typeof options.envSecret !== 'string' || !/^[0-9a-f]{64}$/.test(options.envSecret)) {
|
|
25
|
-
throw new Error('options.envSecret is invalid. You can retrieve its value from ' +
|
|
26
|
-
'https://www.forestadmin.com');
|
|
27
|
-
}
|
|
28
|
-
if (!OptionsUtils.isUrl(options.forestServerUrl)) {
|
|
29
|
-
throw new Error('options.forestServerUrl is invalid. It should contain an URL ' +
|
|
30
|
-
'(i.e. "https://api.forestadmin.com")');
|
|
31
|
-
}
|
|
32
|
-
if (!OptionsUtils.isExistingPath(options.schemaPath)) {
|
|
33
|
-
throw new Error('options.schemaPath is invalid. It should contain a relative filepath ' +
|
|
34
|
-
'where the schema should be loaded/updated (i.e. "./.forestadmin-schema.json")');
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
static checkAuthOptions(options) {
|
|
38
|
-
if (!OptionsUtils.isUrl(options.agentUrl)) {
|
|
39
|
-
throw new Error('options.agentUrl is invalid. It should contain an url where your agent is reachable ' +
|
|
40
|
-
'(i.e. "https://api-forestadmin.mycompany.com")');
|
|
41
|
-
}
|
|
42
|
-
if (typeof options.authSecret !== 'string') {
|
|
43
|
-
throw new Error('options.authSecret is invalid. Any long random string should work ' +
|
|
44
|
-
'(i.e. "OfpssLrbgF3P4vHJTTpb"');
|
|
45
|
-
}
|
|
46
|
-
if (options.clientId === null) {
|
|
47
|
-
options.logger?.(types_1.LoggerLevel.Warn, 'options.clientId was not provided. Using NodeJS cluster mode, ' +
|
|
48
|
-
'or multiple instances of the agent will break authentication');
|
|
49
|
-
}
|
|
50
|
-
else if (typeof options.clientId !== 'string') {
|
|
51
|
-
throw new Error('options.clientId is invalid.');
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
static checkOtherOptions(options) {
|
|
55
|
-
if (typeof options.prefix !== 'string' || !/[-/a-z+]/.test(options.prefix)) {
|
|
56
|
-
throw new Error('options.prefix is invalid. It should contain the prefix on which ' +
|
|
57
|
-
'forest admin routes should be mounted (i.e. "/forest")');
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
static isExistingPath(string) {
|
|
61
|
-
if (typeof string !== 'string') {
|
|
62
|
-
return false;
|
|
63
|
-
}
|
|
64
|
-
const parsed = (0, path_1.parse)(string);
|
|
65
|
-
return parsed.dir.length ? (0, fs_1.existsSync)(parsed.dir) : true;
|
|
66
|
-
}
|
|
67
|
-
static isUrl(string) {
|
|
68
|
-
if (typeof string !== 'string') {
|
|
69
|
-
return false;
|
|
70
|
-
}
|
|
71
|
-
try {
|
|
72
|
-
const url = new URL(string);
|
|
73
|
-
return url.protocol === 'http:' || url.protocol === 'https:';
|
|
74
|
-
}
|
|
75
|
-
catch (_) {
|
|
76
|
-
return false;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
exports.default = OptionsUtils;
|
|
81
|
-
OptionsUtils.loggerPrefix = {
|
|
82
|
-
[types_1.LoggerLevel.Info]: '\x1b[34minfo:\x1b[0m',
|
|
83
|
-
[types_1.LoggerLevel.Warn]: '\x1b[33mwarning:\x1b[0m',
|
|
84
|
-
[types_1.LoggerLevel.Error]: '\x1b[31merror:\x1b[0m',
|
|
85
|
-
};
|
|
86
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1kcml2ZXItb3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hZ2VudC91dGlscy9odHRwLWRyaXZlci1vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsMkJBQWdDO0FBQ2hDLCtCQUEwQztBQUUxQyx1Q0FBd0Q7QUFHeEQsTUFBcUIsWUFBWTtJQU8vQixNQUFNLENBQUMsWUFBWSxDQUFDLE9BQXFCO1FBQ3ZDLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQztZQUNuQixRQUFRLEVBQUUsSUFBSTtZQUNkLGVBQWUsRUFBRSw2QkFBNkI7WUFDOUMsTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksQ0FBQztZQUM5RSxNQUFNLEVBQUUsU0FBUztZQUNqQixVQUFVLEVBQUUsMEJBQTBCO1lBQ3RDLGlDQUFpQyxFQUFFLEVBQUUsR0FBRyxFQUFFO1lBQzFDLEdBQUcsT0FBTztTQUNYLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsUUFBUSxDQUFDLE9BQWlDO1FBQy9DLFlBQVksQ0FBQyx3QkFBd0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMvQyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFTyxNQUFNLENBQUMsd0JBQXdCLENBQUMsT0FBaUM7UUFDdkUsSUFBSSxPQUFPLE9BQU8sQ0FBQyxTQUFTLEtBQUssUUFBUSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUN0RixNQUFNLElBQUksS0FBSyxDQUNiLGdFQUFnRTtnQkFDOUQsNkJBQTZCLENBQ2hDLENB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
|