@forestadmin/agent 1.65.1 → 1.66.1
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/services/chart.d.ts +102 -0
- package/dist/agent/services/chart.js +114 -0
- package/dist/routes/access/api-chart.d.ts +16 -0
- package/dist/routes/access/api-chart.js +47 -0
- package/dist/routes/access/csv-related.js +2 -2
- package/dist/routes/access/csv.js +2 -2
- package/dist/routes/modification/action.d.ts +16 -0
- package/dist/routes/modification/action.js +121 -0
- package/dist/services/authorization/internal/action-permission.d.ts +20 -0
- package/dist/services/authorization/internal/action-permission.js +98 -0
- package/dist/services/authorization/internal/generate-action-identifier.d.ts +12 -0
- package/dist/services/authorization/internal/generate-action-identifier.js +15 -0
- package/dist/services/authorization/internal/generate-actions-from-permissions.d.ts +12 -0
- package/dist/services/authorization/internal/generate-actions-from-permissions.js +139 -0
- package/dist/services/authorization/internal/generate-user-scope.d.ts +10 -0
- package/dist/services/authorization/internal/generate-user-scope.js +45 -0
- package/dist/services/authorization/internal/hash-chart.d.ts +5 -0
- package/dist/services/authorization/internal/hash-chart.js +58 -0
- package/dist/services/authorization/internal/rendering-permission.d.ts +39 -0
- package/dist/services/authorization/internal/rendering-permission.js +121 -0
- package/dist/services/authorization/internal/types.d.ts +255 -0
- package/dist/services/authorization/internal/types.js +54 -0
- package/dist/services/authorization/internal/user-permission.d.ts +16 -0
- package/dist/services/authorization/internal/user-permission.js +46 -0
- package/dist/services/permissions.d.ts +19 -0
- package/dist/services/permissions.js +85 -0
- package/dist/types.d.ts +1 -0
- package/dist/types.js +1 -1
- package/dist/utils/csv-generator.d.ts +1 -1
- package/dist/utils/csv-generator.js +12 -5
- package/dist/utils/forest-http-api.d.ts +37 -0
- package/dist/utils/forest-http-api.js +100 -0
- package/dist/utils/forest-schema/column-schema-validation.d.ts +5 -0
- package/dist/utils/forest-schema/column-schema-validation.js +14 -0
- package/dist/utils/forest-schema/emitter.d.ts +17 -0
- package/dist/utils/forest-schema/emitter.js +38 -0
- package/dist/utils/forest-schema/schema-generator.d.ts +6 -0
- package/dist/utils/forest-schema/schema-generator.js +13 -0
- package/dist/utils/forest-schema/schema-serializer.d.ts +12 -0
- package/dist/utils/forest-schema/schema-serializer.js +35 -0
- package/dist/utils/forest-schema/types.d.ts +85 -0
- package/dist/utils/forest-schema/types.js +16 -0
- package/dist/utils/options-validator.js +2 -1
- package/package.json +9 -6
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const superagent_1 = __importDefault(require("superagent"));
|
|
7
|
+
class ForestHttpApi {
|
|
8
|
+
static async getIpWhitelistConfiguration(options) {
|
|
9
|
+
try {
|
|
10
|
+
const response = await superagent_1.default
|
|
11
|
+
.get(new URL('/liana/v1/ip-whitelist-rules', options.forestServerUrl).toString())
|
|
12
|
+
.set('forest-secret-key', options.envSecret);
|
|
13
|
+
const { attributes } = response.body.data;
|
|
14
|
+
return { isFeatureEnabled: attributes.use_ip_whitelist, ipRules: attributes.rules };
|
|
15
|
+
}
|
|
16
|
+
catch (e) {
|
|
17
|
+
this.handleResponseError(e);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
static async getOpenIdIssuerMetadata(options) {
|
|
21
|
+
try {
|
|
22
|
+
const response = await superagent_1.default
|
|
23
|
+
.get(new URL('/oidc/.well-known/openid-configuration', options.forestServerUrl).toString())
|
|
24
|
+
.set('forest-secret-key', options.envSecret);
|
|
25
|
+
return response.body;
|
|
26
|
+
}
|
|
27
|
+
catch (e) {
|
|
28
|
+
this.handleResponseError(e);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
static async getUserInformation(options, renderingId, accessToken) {
|
|
32
|
+
try {
|
|
33
|
+
const url = new URL(`/liana/v2/renderings/${renderingId}/authorization`, options.forestServerUrl);
|
|
34
|
+
const response = await superagent_1.default
|
|
35
|
+
.get(url.toString())
|
|
36
|
+
.set('forest-token', accessToken)
|
|
37
|
+
.set('forest-secret-key', options.envSecret);
|
|
38
|
+
const { attributes, id } = response.body.data;
|
|
39
|
+
return {
|
|
40
|
+
id: Number(id),
|
|
41
|
+
email: attributes.email,
|
|
42
|
+
firstName: attributes.first_name,
|
|
43
|
+
lastName: attributes.last_name,
|
|
44
|
+
team: attributes.teams[0],
|
|
45
|
+
role: attributes.role,
|
|
46
|
+
tags: attributes.tags?.reduce((memo, { key, value }) => ({ ...memo, [key]: value }), {}),
|
|
47
|
+
renderingId,
|
|
48
|
+
permissionLevel: attributes.permission_level,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
catch (e) {
|
|
52
|
+
this.handleResponseError(e);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
static async hasSchema(options, hash) {
|
|
56
|
+
try {
|
|
57
|
+
const response = await superagent_1.default
|
|
58
|
+
.post(new URL('/forest/apimaps/hashcheck', options.forestServerUrl).toString())
|
|
59
|
+
.send({ schemaFileHash: hash })
|
|
60
|
+
.set('forest-secret-key', options.envSecret);
|
|
61
|
+
return !response?.body?.sendSchema;
|
|
62
|
+
}
|
|
63
|
+
catch (e) {
|
|
64
|
+
this.handleResponseError(e);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
static async uploadSchema(options, apimap) {
|
|
68
|
+
try {
|
|
69
|
+
await superagent_1.default
|
|
70
|
+
.post(new URL('/forest/apimaps', options.forestServerUrl).toString())
|
|
71
|
+
.send(apimap)
|
|
72
|
+
.set('forest-secret-key', options.envSecret);
|
|
73
|
+
}
|
|
74
|
+
catch (e) {
|
|
75
|
+
this.handleResponseError(e);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
static handleResponseError(e) {
|
|
79
|
+
if (/certificate/i.test(e.message))
|
|
80
|
+
throw new Error('ForestAdmin server TLS certificate cannot be verified. ' +
|
|
81
|
+
'Please check that your system time is set properly.');
|
|
82
|
+
if (e.response) {
|
|
83
|
+
const status = e?.response?.status;
|
|
84
|
+
// 0 == offline, 502 == bad gateway from proxy
|
|
85
|
+
if (status === 0 || status === 502)
|
|
86
|
+
throw new Error('Failed to reach ForestAdmin server. Are you online?');
|
|
87
|
+
if (status === 404)
|
|
88
|
+
throw new Error('ForestAdmin server failed to find the project related to the envSecret you configured.' +
|
|
89
|
+
' Can you check that you copied it properly in the Forest initialization?');
|
|
90
|
+
if (status === 503)
|
|
91
|
+
throw new Error('Forest is in maintenance for a few minutes. We are upgrading your experience in ' +
|
|
92
|
+
'the forest. We just need a few more minutes to get it right.');
|
|
93
|
+
throw new Error('An unexpected error occurred while contacting the ForestAdmin server. ' +
|
|
94
|
+
'Please contact support@forestadmin.com for further investigations.');
|
|
95
|
+
}
|
|
96
|
+
throw e;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
exports.default = ForestHttpApi;
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yZXN0LWh0dHAtYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2ZvcmVzdC1odHRwLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUdBLDREQUFpRTtBQTZCakUsTUFBcUIsYUFBYTtJQUNoQyxNQUFNLENBQUMsS0FBSyxDQUFDLDJCQUEyQixDQUN0QyxPQUFvQjtRQUVwQixJQUFJO1lBQ0YsTUFBTSxRQUFRLEdBQWEsTUFBTSxvQkFBVTtpQkFDeEMsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLDhCQUE4QixFQUFFLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztpQkFDaEYsR0FBRyxDQUFDLG1CQUFtQixFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUUvQyxNQUFNLEVBQUUsVUFBVSxFQUFFLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7WUFFMUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ3JGO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDN0I7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxPQUFvQjtRQUN2RCxJQUFJO1lBQ0YsTUFBTSxRQUFRLEdBQWEsTUFBTSxvQkFBVTtpQkFDeEMsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLHdDQUF3QyxFQUFFLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztpQkFDMUYsR0FBRyxDQUFDLG1CQUFtQixFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUUvQyxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUM7U0FDdEI7UUFBQyxPQUFPLENBQUMsRUFBRTtZ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
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const datasource_toolkit_1 = require("@forestadmin/datasource-toolkit");
|
|
4
|
+
class ColumnSchemaValidation {
|
|
5
|
+
static validate(column, name) {
|
|
6
|
+
if (!column.enumValues)
|
|
7
|
+
return;
|
|
8
|
+
if (!Array.isArray(column.enumValues) || !column.enumValues.every(v => typeof v === 'string')) {
|
|
9
|
+
throw new datasource_toolkit_1.ValidationError(`The enumValues of column '${name}' must be an array of string instead of ${JSON.stringify(column.enumValues)}`);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.default = ColumnSchemaValidation;
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLXNjaGVtYS12YWxpZGF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL2ZvcmVzdC1zY2hlbWEvY29sdW1uLXNjaGVtYS12YWxpZGF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsd0VBQWdGO0FBRWhGLE1BQXFCLHNCQUFzQjtJQUN6QyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQW9CLEVBQUUsSUFBWTtRQUNoRCxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVU7WUFBRSxPQUFPO1FBRS9CLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssUUFBUSxDQUFDLEVBQUU7WUFDN0YsTUFBTSxJQUFJLG9DQUFlLENBQ3ZCLDZCQUE2QixJQUFJLDJDQUEyQyxJQUFJLENBQUMsU0FBUyxDQUN4RixNQUFNLENBQUMsVUFBVSxDQUNsQixFQUFFLENBQ0osQ0FBQztTQUNIO0lBQ0gsQ0FBQztDQUNGO0FBWkQseUNBWUMifQ==
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { DataSource } from '@forestadmin/datasource-toolkit';
|
|
2
|
+
import { AgentOptions } from '../../types';
|
|
3
|
+
declare type SerializedSchema = {
|
|
4
|
+
meta: {
|
|
5
|
+
schemaFileHash: string;
|
|
6
|
+
};
|
|
7
|
+
};
|
|
8
|
+
declare type Options = Pick<AgentOptions, 'isProduction' | 'schemaPath'>;
|
|
9
|
+
/**
|
|
10
|
+
* Generate and dispatch dataSource schema on agent start.
|
|
11
|
+
*/
|
|
12
|
+
export default class SchemaEmitter {
|
|
13
|
+
static getSerializedSchema(options: Options, dataSource: DataSource): Promise<SerializedSchema>;
|
|
14
|
+
private static loadFromDisk;
|
|
15
|
+
}
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=emitter.d.ts.map
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const promises_1 = require("fs/promises");
|
|
7
|
+
const json_stringify_pretty_compact_1 = __importDefault(require("json-stringify-pretty-compact"));
|
|
8
|
+
const schema_generator_1 = __importDefault(require("./schema-generator"));
|
|
9
|
+
const schema_serializer_1 = __importDefault(require("./schema-serializer"));
|
|
10
|
+
// Load version from package.json at startup
|
|
11
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
12
|
+
const { version } = require('../../../package.json');
|
|
13
|
+
/**
|
|
14
|
+
* Generate and dispatch dataSource schema on agent start.
|
|
15
|
+
*/
|
|
16
|
+
class SchemaEmitter {
|
|
17
|
+
static async getSerializedSchema(options, dataSource) {
|
|
18
|
+
const schema = options.isProduction
|
|
19
|
+
? await SchemaEmitter.loadFromDisk(options.schemaPath)
|
|
20
|
+
: await schema_generator_1.default.generate(dataSource);
|
|
21
|
+
if (!options.isProduction) {
|
|
22
|
+
const pretty = (0, json_stringify_pretty_compact_1.default)(schema, { maxLength: 80 });
|
|
23
|
+
await (0, promises_1.writeFile)(options.schemaPath, pretty, { encoding: 'utf-8' });
|
|
24
|
+
}
|
|
25
|
+
return schema_serializer_1.default.serialize(schema, version);
|
|
26
|
+
}
|
|
27
|
+
static async loadFromDisk(schemaPath) {
|
|
28
|
+
try {
|
|
29
|
+
const fileContent = await (0, promises_1.readFile)(schemaPath, { encoding: 'utf-8' });
|
|
30
|
+
return JSON.parse(fileContent);
|
|
31
|
+
}
|
|
32
|
+
catch (e) {
|
|
33
|
+
throw new Error(`Cannot load ${schemaPath}. Providing a schema is mandatory in production mode.`);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
exports.default = SchemaEmitter;
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1pdHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9mb3Jlc3Qtc2NoZW1hL2VtaXR0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSwwQ0FBa0Q7QUFDbEQsa0dBQXNEO0FBR3RELDBFQUFpRDtBQUNqRCw0RUFBbUQ7QUFPbkQsNENBQTRDO0FBQzVDLDhEQUE4RDtBQUM5RCxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsT0FBTyxDQUFDLHVCQUF1QixDQUFDLENBQUM7QUFFckQ7O0dBRUc7QUFDSCxNQUFxQixhQUFhO0lBQ2hDLE1BQU0sQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQzlCLE9BQWdCLEVBQ2hCLFVBQXNCO1FBRXRCLE1BQU0sTUFBTSxHQUFjLE9BQU8sQ0FBQyxZQUFZO1lBQzVDLENBQUMsQ0FBQyxNQUFNLGFBQWEsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztZQUN0RCxDQUFDLENBQUMsTUFBTSwwQkFBZSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUUvQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRTtZQUN6QixNQUFNLE1BQU0sR0FBRyxJQUFBLHVDQUFTLEVBQUMsTUFBTSxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDcEQsTUFBTSxJQUFBLG9CQUFTLEVBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztTQUNwRTtRQUVELE9BQU8sMkJBQWdCLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsVUFBa0I7UUFDbEQsSUFBSTtZQUNGLE1BQU0sV0FBVyxHQUFHLE1BQU0sSUFBQSxtQkFBUSxFQUFDLFVBQVUsRUFBRSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBRXRFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUNoQztRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsTUFBTSxJQUFJLEtBQUssQ0FDYixlQUFlLFVBQVUsdURBQXVELENBQ2pGLENBQUM7U0FDSDtJQUNILENBQUM7Q0FDRjtBQTVCRCxnQ0E0QkMifQ==
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { DataSource } from '@forestadmin/datasource-toolkit';
|
|
2
|
+
import { ForestServerCollection } from './types';
|
|
3
|
+
export default class SchemaGenerator {
|
|
4
|
+
static generate(dataSource: DataSource): Promise<ForestServerCollection[]>;
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=schema-generator.d.ts.map
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const generator_collection_1 = __importDefault(require("./generator-collection"));
|
|
7
|
+
class SchemaGenerator {
|
|
8
|
+
static async generate(dataSource) {
|
|
9
|
+
return Promise.all(dataSource.collections.map(collection => generator_collection_1.default.buildSchema(collection)));
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.default = SchemaGenerator;
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLWdlbmVyYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9mb3Jlc3Qtc2NoZW1hL3NjaGVtYS1nZW5lcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFQSxrRkFBK0Q7QUFHL0QsTUFBcUIsZUFBZTtJQUNsQyxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxVQUFzQjtRQUMxQyxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQ2hCLFVBQVUsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsOEJBQXlCLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQzVGLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFORCxrQ0FNQyJ9
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ForestServerCollection } from './types';
|
|
2
|
+
declare type SerializedSchema = {
|
|
3
|
+
meta: {
|
|
4
|
+
schemaFileHash: string;
|
|
5
|
+
};
|
|
6
|
+
};
|
|
7
|
+
export default class SchemaSerializer {
|
|
8
|
+
private static readonly meta;
|
|
9
|
+
static serialize(schema: ForestServerCollection[], lianaVersion: string): SerializedSchema;
|
|
10
|
+
}
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=schema-serializer.d.ts.map
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const crypto_1 = __importDefault(require("crypto"));
|
|
7
|
+
const json_api_serializer_1 = __importDefault(require("json-api-serializer"));
|
|
8
|
+
class SchemaSerializer {
|
|
9
|
+
static serialize(schema, lianaVersion) {
|
|
10
|
+
const hash = crypto_1.default.createHash('sha1').update(JSON.stringify(schema)).digest('hex');
|
|
11
|
+
// Build serializer
|
|
12
|
+
const serializer = new json_api_serializer_1.default();
|
|
13
|
+
serializer.register('collections', {
|
|
14
|
+
// Pass the metadata provided to the serialization fn
|
|
15
|
+
topLevelMeta: (extraData) => extraData,
|
|
16
|
+
relationships: {
|
|
17
|
+
segments: { type: 'segments' },
|
|
18
|
+
actions: { type: 'actions' },
|
|
19
|
+
},
|
|
20
|
+
});
|
|
21
|
+
serializer.register('segments', {});
|
|
22
|
+
serializer.register('actions', {});
|
|
23
|
+
// Serialize
|
|
24
|
+
return serializer.serialize('collections', schema.map(c => ({ id: c.name, ...c })), { ...SchemaSerializer.meta, liana_version: lianaVersion, schemaFileHash: hash });
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.default = SchemaSerializer;
|
|
28
|
+
SchemaSerializer.meta = {
|
|
29
|
+
liana: 'forest-nodejs-agent',
|
|
30
|
+
stack: {
|
|
31
|
+
engine: 'nodejs',
|
|
32
|
+
engine_version: process.versions && process.versions.node,
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLXNlcmlhbGl6ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvZm9yZXN0LXNjaGVtYS9zY2hlbWEtc2VyaWFsaXplci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG9EQUE0QjtBQUM1Qiw4RUFBb0Q7QUFNcEQsTUFBcUIsZ0JBQWdCO0lBU25DLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBZ0MsRUFBRSxZQUFvQjtRQUNyRSxNQUFNLElBQUksR0FBRyxnQkFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVwRixtQkFBbUI7UUFDbkIsTUFBTSxVQUFVLEdBQUcsSUFBSSw2QkFBaUIsRUFBRSxDQUFDO1FBRTNDLFVBQVUsQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFO1lBQ2pDLHFEQUFxRDtZQUNyRCxZQUFZLEVBQUUsQ0FBQyxTQUFrQixFQUFFLEVBQUUsQ0FBQyxTQUFTO1lBQy9DLGFBQWEsRUFBRTtnQkFDYixRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUM5QixPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO2FBQzdCO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsVUFBVSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDcEMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFbkMsWUFBWTtRQUNaLE9BQU8sVUFBVSxDQUFDLFNBQVMsQ0FDekIsYUFBYSxFQUNiLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQ3ZDLEVBQUUsR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLENBQzVELENBQUM7SUFDeEIsQ0FBQzs7QUFoQ0gsbUNBaUNDO0FBaEN5QixxQkFBSSxHQUFHO0lBQzdCLEtBQUssRUFBRSxxQkFBcUI7SUFDNUIsS0FBSyxFQUFFO1FBQ0wsTUFBTSxFQUFFLFFBQVE7UUFDaEIsY0FBYyxFQUFFLE9BQU8sQ0FBQyxRQUFRLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJO0tBQzFEO0NBQ0YsQ0FBQyJ9
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { PrimitiveTypes } from '@forestadmin/datasource-toolkit';
|
|
2
|
+
export declare type ForestServerColumnType = PrimitiveTypes | [ForestServerColumnType] | {
|
|
3
|
+
fields: Array<{
|
|
4
|
+
field: string;
|
|
5
|
+
type: ForestServerColumnType;
|
|
6
|
+
}>;
|
|
7
|
+
};
|
|
8
|
+
export declare type ForestServerCollection = {
|
|
9
|
+
name: string;
|
|
10
|
+
icon: null;
|
|
11
|
+
integration: null;
|
|
12
|
+
isReadOnly: boolean;
|
|
13
|
+
isSearchable: boolean;
|
|
14
|
+
isVirtual: false;
|
|
15
|
+
onlyForRelationships: boolean;
|
|
16
|
+
paginationType: 'page';
|
|
17
|
+
actions: Array<ForestServerAction>;
|
|
18
|
+
fields: Array<ForestServerField>;
|
|
19
|
+
segments: Array<ForestServerSegment>;
|
|
20
|
+
};
|
|
21
|
+
export declare type ForestServerAction = {
|
|
22
|
+
id: string;
|
|
23
|
+
name: string;
|
|
24
|
+
type: 'single' | 'bulk' | 'global';
|
|
25
|
+
baseUrl: string;
|
|
26
|
+
endpoint: string;
|
|
27
|
+
httpMethod: 'POST';
|
|
28
|
+
redirect: unknown;
|
|
29
|
+
download: boolean;
|
|
30
|
+
fields: ForestServerActionField[];
|
|
31
|
+
hooks: {
|
|
32
|
+
load: boolean;
|
|
33
|
+
change: Array<unknown>;
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
export declare type ForestServerActionField = {
|
|
37
|
+
value: unknown;
|
|
38
|
+
defaultValue: unknown;
|
|
39
|
+
description: string | null;
|
|
40
|
+
enums: string[];
|
|
41
|
+
field: string;
|
|
42
|
+
hook: string;
|
|
43
|
+
isReadOnly: boolean;
|
|
44
|
+
isRequired: boolean;
|
|
45
|
+
reference: string | null;
|
|
46
|
+
type: ForestServerColumnType;
|
|
47
|
+
widget: null | 'belongsto select' | 'file picker';
|
|
48
|
+
};
|
|
49
|
+
export declare type ForestServerField = Partial<{
|
|
50
|
+
field: string;
|
|
51
|
+
type: ForestServerColumnType;
|
|
52
|
+
defaultValue: unknown;
|
|
53
|
+
enums: null | string[];
|
|
54
|
+
integration: null;
|
|
55
|
+
isFilterable: boolean;
|
|
56
|
+
isPrimaryKey: boolean;
|
|
57
|
+
isReadOnly: boolean;
|
|
58
|
+
isRequired: boolean;
|
|
59
|
+
isSortable: boolean;
|
|
60
|
+
isVirtual: boolean;
|
|
61
|
+
reference: null | string;
|
|
62
|
+
inverseOf: null | string;
|
|
63
|
+
relationship: 'BelongsTo' | 'BelongsToMany' | 'HasMany' | 'HasOne';
|
|
64
|
+
validations: Array<{
|
|
65
|
+
message: string | null;
|
|
66
|
+
type: ValidationType;
|
|
67
|
+
value: unknown;
|
|
68
|
+
}>;
|
|
69
|
+
}>;
|
|
70
|
+
export declare type ForestServerSegment = {
|
|
71
|
+
id: string;
|
|
72
|
+
name: string;
|
|
73
|
+
};
|
|
74
|
+
export declare enum ValidationType {
|
|
75
|
+
Present = "is present",
|
|
76
|
+
GreaterThan = "is greater than",
|
|
77
|
+
LessThan = "is less than",
|
|
78
|
+
Before = "is before",
|
|
79
|
+
After = "is after",
|
|
80
|
+
LongerThan = "is longer than",
|
|
81
|
+
ShorterThan = "is shorter than",
|
|
82
|
+
Contains = "contains",
|
|
83
|
+
Like = "is like"
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ValidationType = void 0;
|
|
4
|
+
var ValidationType;
|
|
5
|
+
(function (ValidationType) {
|
|
6
|
+
ValidationType["Present"] = "is present";
|
|
7
|
+
ValidationType["GreaterThan"] = "is greater than";
|
|
8
|
+
ValidationType["LessThan"] = "is less than";
|
|
9
|
+
ValidationType["Before"] = "is before";
|
|
10
|
+
ValidationType["After"] = "is after";
|
|
11
|
+
ValidationType["LongerThan"] = "is longer than";
|
|
12
|
+
ValidationType["ShorterThan"] = "is shorter than";
|
|
13
|
+
ValidationType["Contains"] = "contains";
|
|
14
|
+
ValidationType["Like"] = "is like";
|
|
15
|
+
})(ValidationType = exports.ValidationType || (exports.ValidationType = {}));
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvZm9yZXN0LXNjaGVtYS90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUEwRUEsSUFBWSxjQVVYO0FBVkQsV0FBWSxjQUFjO0lBQ3hCLHdDQUFzQixDQUFBO0lBQ3RCLGlEQUErQixDQUFBO0lBQy9CLDJDQUF5QixDQUFBO0lBQ3pCLHNDQUFvQixDQUFBO0lBQ3BCLG9DQUFrQixDQUFBO0lBQ2xCLCtDQUE2QixDQUFBO0lBQzdCLGlEQUErQixDQUFBO0lBQy9CLHVDQUFxQixDQUFBO0lBQ3JCLGtDQUFnQixDQUFBO0FBQ2xCLENBQUMsRUFWVyxjQUFjLEdBQWQsc0JBQWMsS0FBZCxzQkFBYyxRQVV6QiJ9
|
|
@@ -23,6 +23,7 @@ class OptionsValidator {
|
|
|
23
23
|
copyOptions.schemaPath = copyOptions.schemaPath || '.forestadmin-schema.json';
|
|
24
24
|
copyOptions.forestServerUrl = copyOptions.forestServerUrl || 'https://api.forestadmin.com';
|
|
25
25
|
copyOptions.typingsMaxDepth = copyOptions.typingsMaxDepth ?? 5;
|
|
26
|
+
copyOptions.limitExportSize = copyOptions.limitExportSize ?? null;
|
|
26
27
|
copyOptions.prefix = copyOptions.prefix || '';
|
|
27
28
|
copyOptions.loggerLevel = copyOptions.loggerLevel || 'Info';
|
|
28
29
|
copyOptions.skipSchemaUpdate = copyOptions.skipSchemaUpdate || false;
|
|
@@ -125,4 +126,4 @@ OptionsValidator.loggerPrefix = {
|
|
|
125
126
|
Warn: '\x1b[33mwarning:\x1b[0m',
|
|
126
127
|
Error: '\x1b[31merror:\x1b[0m',
|
|
127
128
|
};
|
|
128
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
129
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy12YWxpZGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvb3B0aW9ucy12YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx5RkFBc0U7QUFDdEUsMkJBQWdDO0FBQ2hDLGdEQUF3QjtBQUl4QixNQUFNLDhCQUE4QixHQUFHLEVBQUUsQ0FBQztBQUMxQyw0Q0FBNEM7QUFDNUMsTUFBTSxrQ0FBa0MsR0FBRyxRQUFRLENBQUM7QUFFcEQsTUFBcUIsZ0JBQWdCO0lBUW5DLE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBcUI7UUFDdkMsTUFBTSxXQUFXLEdBQUcsRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDO1FBRW5DLE1BQU0sYUFBYSxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFO1lBQ3BDLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLElBQUksTUFBTSxDQUFDO1lBQ2xELE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBRTlDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFO2dCQUN4RCxPQUFPLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQzthQUMzRDtRQUNILENBQUMsQ0FBQztRQUVGLFdBQVcsQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDLE1BQU0sSUFBSSxhQUFhLENBQUM7UUFDekQsV0FBVyxDQUFDLFVBQVUsR0FBRyxXQUFXLENBQUMsVUFBVSxJQUFJLDBCQUEwQixDQUFDO1FBQzlFLFdBQVcsQ0FBQyxlQUFlLEdBQUcsV0FBVyxDQUFDLGVBQWUsSUFBSSw2QkFBNkIsQ0FBQztRQUMzRixXQUFXLENBQUMsZUFBZSxHQUFHLFdB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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@forestadmin/agent",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.66.1",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"license": "GPL-3.0",
|
|
6
6
|
"publishConfig": {
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"json-api-serializer": "^2.6.6",
|
|
25
25
|
"json-stringify-pretty-compact": "^3.0.0",
|
|
26
26
|
"jsonwebtoken": "^9.0.0",
|
|
27
|
-
"koa": "^
|
|
27
|
+
"koa": "^3.0.1",
|
|
28
28
|
"@koa/bodyparser": "^6.0.0",
|
|
29
29
|
"koa-jwt": "^4.0.4",
|
|
30
30
|
"luxon": "^3.2.1",
|
|
@@ -44,10 +44,10 @@
|
|
|
44
44
|
"test": "jest"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
|
-
"@nestjs/common": "^
|
|
48
|
-
"@nestjs/core": "^
|
|
49
|
-
"@nestjs/platform-express": "^
|
|
50
|
-
"@nestjs/platform-fastify": "^
|
|
47
|
+
"@nestjs/common": "^10.4.16",
|
|
48
|
+
"@nestjs/core": "^10.4.16",
|
|
49
|
+
"@nestjs/platform-express": "^10.4.16",
|
|
50
|
+
"@nestjs/platform-fastify": "^10.4.16",
|
|
51
51
|
"@shopify/jest-koa-mocks": "^3.1.0",
|
|
52
52
|
"@types/json-api-serializer": "^2.6.3",
|
|
53
53
|
"@types/jsonwebtoken": "^9.0.1",
|
|
@@ -60,5 +60,8 @@
|
|
|
60
60
|
"openid-client": "^5.7.1",
|
|
61
61
|
"reflect-metadata": "^0.1.13",
|
|
62
62
|
"rxjs": "^7.8.0"
|
|
63
|
+
},
|
|
64
|
+
"overrides": {
|
|
65
|
+
"@paralleldrive/cuid2": "2.2.2"
|
|
63
66
|
}
|
|
64
67
|
}
|