@routr/simpledata 2.0.8-alpha.12 → 2.0.8-alpha.14
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/api.d.ts +1 -1
- package/dist/api.js +1 -1
- package/dist/runner.js +2 -2
- package/dist/utils.d.ts +2 -11
- package/dist/utils.js +13 -32
- package/package.json +4 -4
package/dist/api.d.ts
CHANGED
|
@@ -11,6 +11,6 @@ export declare function get(resources: CC.Resource[]): (call: CT.GrpcCall, callb
|
|
|
11
11
|
* Enclosure with method to obtain a resource with a query.
|
|
12
12
|
*
|
|
13
13
|
* @param {Resource[]} resources - the resources to search from
|
|
14
|
-
* @return {Function
|
|
14
|
+
* @return {Function} enclosed method with actual "find" logic
|
|
15
15
|
*/
|
|
16
16
|
export declare function findBy(resources: CC.Resource[]): (call: CT.GrpcCall, callback: CT.GrpcCallback) => void;
|
package/dist/api.js
CHANGED
|
@@ -79,7 +79,7 @@ exports.get = get;
|
|
|
79
79
|
* Enclosure with method to obtain a resource with a query.
|
|
80
80
|
*
|
|
81
81
|
* @param {Resource[]} resources - the resources to search from
|
|
82
|
-
* @return {Function
|
|
82
|
+
* @return {Function} enclosed method with actual "find" logic
|
|
83
83
|
*/
|
|
84
84
|
function findBy(resources) {
|
|
85
85
|
return (call, callback) => {
|
package/dist/runner.js
CHANGED
|
@@ -30,8 +30,8 @@ const utils_1 = __importDefault(require("./utils"));
|
|
|
30
30
|
const common_1 = require("@routr/common");
|
|
31
31
|
const logger_1 = require("@fonoster/logger");
|
|
32
32
|
const logger = (0, logger_1.getLogger)({ service: "simpledata", filePath: __filename });
|
|
33
|
-
common_1.Assertions.assertEnvsAreSet(["
|
|
34
|
-
const resources = (0, utils_1.default)(process.env.
|
|
33
|
+
common_1.Assertions.assertEnvsAreSet(["PATH_TO_RESOURCES"]);
|
|
34
|
+
const resources = (0, utils_1.default)(process.env.PATH_TO_RESOURCES);
|
|
35
35
|
try {
|
|
36
36
|
(0, service_1.default)({
|
|
37
37
|
bindAddr: (_a = process.env.BIND_ADDR) !== null && _a !== void 0 ? _a : "0.0.0.0:51907",
|
package/dist/utils.d.ts
CHANGED
|
@@ -1,21 +1,12 @@
|
|
|
1
1
|
import { BadRequest } from "./errors";
|
|
2
|
-
import { CommonTypes as CT } from "@routr/common";
|
|
3
|
-
import { CommonConnect as CC } from "@routr/common";
|
|
4
|
-
/**
|
|
5
|
-
* Creates a list of validators from the given schemas.
|
|
6
|
-
*
|
|
7
|
-
* @param {string} path - the path to the resource
|
|
8
|
-
* @return {Validator} - a list of validators from the path
|
|
9
|
-
*/
|
|
10
|
-
export declare function createValidators(path: string): Map<string, (resource: CC.Resource) => unknown>;
|
|
2
|
+
import { CommonConnect as CC, CommonTypes as CT } from "@routr/common";
|
|
11
3
|
/**
|
|
12
4
|
* Loads a list of resources from a file.
|
|
13
5
|
*
|
|
14
|
-
* @param {string} validatorsPath - the path to the validators
|
|
15
6
|
* @param {string} resourcesPath - the path to the resources
|
|
16
7
|
* @return {Resource[]} the loaded resources
|
|
17
8
|
*/
|
|
18
|
-
export default function loadResources(
|
|
9
|
+
export default function loadResources(resourcesPath: string): CC.Resource[];
|
|
19
10
|
export declare function createQuery(request: CC.FindParameters): {
|
|
20
11
|
request: CC.FindParameters;
|
|
21
12
|
query: string;
|
package/dist/utils.js
CHANGED
|
@@ -22,11 +22,8 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
22
22
|
__setModuleDefault(result, mod);
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
-
};
|
|
28
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.nyi = exports.createQuery =
|
|
26
|
+
exports.nyi = exports.createQuery = void 0;
|
|
30
27
|
/*
|
|
31
28
|
* Copyright (C) 2022 by Fonoster Inc (https://fonoster.com)
|
|
32
29
|
* http://github.com/fonoster/routr
|
|
@@ -46,7 +43,6 @@ exports.nyi = exports.createQuery = exports.createValidators = void 0;
|
|
|
46
43
|
* limitations under the License.
|
|
47
44
|
*/
|
|
48
45
|
const errors_1 = require("./errors");
|
|
49
|
-
const ajv_1 = __importDefault(require("ajv"));
|
|
50
46
|
const logger_1 = require("@fonoster/logger");
|
|
51
47
|
const common_1 = require("@routr/common");
|
|
52
48
|
const protobufUtil = __importStar(require("pb-util"));
|
|
@@ -55,38 +51,18 @@ const logger = (0, logger_1.getLogger)({ service: "simpledata", filePath: __file
|
|
|
55
51
|
const findCriteriaMap = {};
|
|
56
52
|
findCriteriaMap[common_1.CommonConnect.FindCriteria.FIND_AGENT_BY_USERNAME] = (parameters) => `$..[?(@.spec.username=='${parameters.username}')]`;
|
|
57
53
|
findCriteriaMap[common_1.CommonConnect.FindCriteria.FIND_PEER_BY_USERNAME] = (parameters) => `$..[?(@.spec.username=='${parameters.username}')]`;
|
|
58
|
-
findCriteriaMap[common_1.CommonConnect.FindCriteria.
|
|
54
|
+
findCriteriaMap[common_1.CommonConnect.FindCriteria.FIND_CREDENTIALS_BY_REFERENCE] = (parameters) => `$..[?(@.ref=='${parameters.ref}')]`;
|
|
59
55
|
findCriteriaMap[common_1.CommonConnect.FindCriteria.FIND_DOMAIN_BY_DOMAINURI] = (parameters) => `$..[?(@.spec.context.domainUri=='${parameters.domainUri}')]`;
|
|
60
56
|
findCriteriaMap[common_1.CommonConnect.FindCriteria.FIND_NUMBER_BY_TELURL] = (parameters) => `$..[?(@.spec.location.telUrl=="${parameters.telUrl}")]`;
|
|
61
57
|
findCriteriaMap[common_1.CommonConnect.FindCriteria.FIND_TRUNKS_WITH_SEND_REGISTER] = () => "$..[?(@.spec.outbound.sendRegister==true)]";
|
|
62
58
|
findCriteriaMap[common_1.CommonConnect.FindCriteria.FIND_TRUNK_BY_REQUEST_URI] = (parameters) => `$..[?(@.spec.inbound.uri=="${parameters.requestUri}")]`;
|
|
63
|
-
/**
|
|
64
|
-
* Creates a list of validators from the given schemas.
|
|
65
|
-
*
|
|
66
|
-
* @param {string} path - the path to the resource
|
|
67
|
-
* @return {Validator} - a list of validators from the path
|
|
68
|
-
*/
|
|
69
|
-
function createValidators(path) {
|
|
70
|
-
const validators = new Map();
|
|
71
|
-
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
72
|
-
const files = require("fs").readdirSync(path);
|
|
73
|
-
files.forEach((file) => {
|
|
74
|
-
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
75
|
-
const schema = require(`${path}/${file}`);
|
|
76
|
-
const ajv = new ajv_1.default();
|
|
77
|
-
const validator = ajv.compile(schema);
|
|
78
|
-
validators.set(schema.properties.kind.enum[0].toLowerCase(), validator);
|
|
79
|
-
});
|
|
80
|
-
return validators;
|
|
81
|
-
}
|
|
82
|
-
exports.createValidators = createValidators;
|
|
83
59
|
// Create function to validate reference exists for Agent
|
|
84
60
|
const checkReferences = (resources) => {
|
|
85
61
|
const referenceExist = (ref) => resources.filter((r) => r.ref === ref)[0];
|
|
86
62
|
// For every resource, check that the reference exists using a switch
|
|
87
63
|
resources.forEach((resource) => {
|
|
88
64
|
var _a;
|
|
89
|
-
switch (resource.kind.
|
|
65
|
+
switch (resource.kind.toLowerCase()) {
|
|
90
66
|
case common_1.CommonConnect.Kind.AGENT:
|
|
91
67
|
if (resource.spec.credentialsRef) {
|
|
92
68
|
if (!referenceExist(resource.spec.credentialsRef)) {
|
|
@@ -149,22 +125,27 @@ const checkReferences = (resources) => {
|
|
|
149
125
|
break;
|
|
150
126
|
}
|
|
151
127
|
});
|
|
128
|
+
// Check that reference have not been duplicated
|
|
129
|
+
const references = resources.map((r) => r.ref);
|
|
130
|
+
const duplicates = references.filter((ref, index) => references.indexOf(ref) !== index);
|
|
131
|
+
if (duplicates.length > 0) {
|
|
132
|
+
logger.error(`found duplicated references: ${duplicates}; exiting`);
|
|
133
|
+
process.exit(1);
|
|
134
|
+
}
|
|
152
135
|
};
|
|
153
136
|
/**
|
|
154
137
|
* Loads a list of resources from a file.
|
|
155
138
|
*
|
|
156
|
-
* @param {string} validatorsPath - the path to the validators
|
|
157
139
|
* @param {string} resourcesPath - the path to the resources
|
|
158
140
|
* @return {Resource[]} the loaded resources
|
|
159
141
|
*/
|
|
160
|
-
function loadResources(
|
|
161
|
-
const validators = createValidators(validatorsPath);
|
|
142
|
+
function loadResources(resourcesPath) {
|
|
162
143
|
const all = [];
|
|
163
144
|
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
164
145
|
const files = require("fs").readdirSync(resourcesPath);
|
|
165
146
|
files.forEach((file) => {
|
|
166
147
|
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
167
|
-
const resources =
|
|
148
|
+
const resources = common_1.Helper.readConfigFile(`${resourcesPath}/${file}`);
|
|
168
149
|
resources.forEach((resource) => {
|
|
169
150
|
// Assert the reference has no spaces
|
|
170
151
|
if (resource.ref.includes(" ")) {
|
|
@@ -172,7 +153,7 @@ function loadResources(validatorsPath, resourcesPath) {
|
|
|
172
153
|
process.exit(1);
|
|
173
154
|
}
|
|
174
155
|
// Check if is valid using jsonschema
|
|
175
|
-
const validate =
|
|
156
|
+
const validate = common_1.ConnectSchemas.schemaValidators.get(resource.kind.toLowerCase());
|
|
176
157
|
if (!validate) {
|
|
177
158
|
logger.error(`unable to find validator for ${resource.kind}; exiting`);
|
|
178
159
|
process.exit(1);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@routr/simpledata",
|
|
3
|
-
"version": "2.0.8-alpha.
|
|
3
|
+
"version": "2.0.8-alpha.14",
|
|
4
4
|
"description": "Files-based API Server for Routr Connect",
|
|
5
5
|
"author": "Pedro Sanders <psanders@fonoster.com>",
|
|
6
6
|
"homepage": "https://github.com/fonoster/routr#readme",
|
|
@@ -29,8 +29,8 @@
|
|
|
29
29
|
"@opentelemetry/sdk-trace-base": "^1.0.4",
|
|
30
30
|
"@opentelemetry/sdk-trace-node": "^1.0.4",
|
|
31
31
|
"@opentelemetry/semantic-conventions": "^1.0.4",
|
|
32
|
-
"@routr/common": "^2.0.8-alpha.
|
|
33
|
-
"@routr/processor": "^2.0.8-alpha.
|
|
32
|
+
"@routr/common": "^2.0.8-alpha.14",
|
|
33
|
+
"@routr/processor": "^2.0.8-alpha.14",
|
|
34
34
|
"ajv": "^6.12.6",
|
|
35
35
|
"google-protobuf": "^3.9.2",
|
|
36
36
|
"jsonpath": "^1.1.1",
|
|
@@ -53,5 +53,5 @@
|
|
|
53
53
|
"@types/google-protobuf": "^3.15.6",
|
|
54
54
|
"@types/jsonpath": "^0.2.0"
|
|
55
55
|
},
|
|
56
|
-
"gitHead": "
|
|
56
|
+
"gitHead": "e91abb1fd9bc49ede80dd7fc8a13f97362f4c1f1"
|
|
57
57
|
}
|