@fonoster/sipnet 0.7.5 → 0.7.7

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.
Files changed (36) hide show
  1. package/dist/acls/buildService.d.ts +2 -2
  2. package/dist/acls/operations.d.ts +3 -3
  3. package/dist/acls/operations.js +21 -2
  4. package/dist/agents/buildService.d.ts +2 -2
  5. package/dist/agents/operations.d.ts +3 -3
  6. package/dist/agents/operations.js +21 -2
  7. package/dist/constants.js +0 -1
  8. package/dist/credentials/buildService.d.ts +2 -2
  9. package/dist/credentials/operations.d.ts +3 -3
  10. package/dist/credentials/operations.js +21 -2
  11. package/dist/domains/buildService.d.ts +2 -2
  12. package/dist/domains/operations.d.ts +3 -3
  13. package/dist/domains/operations.js +21 -2
  14. package/dist/numbers/buildService.d.ts +8 -8
  15. package/dist/numbers/createNumber.d.ts +3 -3
  16. package/dist/numbers/createNumber.js +8 -14
  17. package/dist/numbers/getNumber.d.ts +3 -3
  18. package/dist/numbers/getNumber.js +7 -10
  19. package/dist/numbers/listNumbers.d.ts +3 -3
  20. package/dist/numbers/listNumbers.js +8 -12
  21. package/dist/numbers/updateNumber.d.ts +3 -3
  22. package/dist/numbers/updateNumber.js +7 -13
  23. package/dist/resources/createResource.d.ts +4 -3
  24. package/dist/resources/createResource.js +7 -11
  25. package/dist/resources/deleteResource.js +1 -1
  26. package/dist/resources/getResource.js +1 -1
  27. package/dist/resources/listResources.d.ts +1 -1
  28. package/dist/resources/listResources.js +1 -1
  29. package/dist/resources/updateResource.d.ts +2 -1
  30. package/dist/resources/updateResource.js +2 -2
  31. package/dist/trunks/buildService.d.ts +2 -2
  32. package/dist/trunks/operations.d.ts +3 -3
  33. package/dist/trunks/operations.js +22 -2
  34. package/package.json +4 -4
  35. package/dist/numbers/validation.d.ts +0 -39
  36. package/dist/numbers/validation.js +0 -51
@@ -8,8 +8,8 @@ declare function buildService(clientOptions: ClientOptions): {
8
8
  };
9
9
  handlers: {
10
10
  createAcl: (call: {
11
- request: import("@fonoster/types").CreateAclRequest;
12
- }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: import("@fonoster/types").AclExtended) => void) => Promise<void>;
11
+ request: unknown;
12
+ }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
13
13
  updateAcl: (call: {
14
14
  request: unknown;
15
15
  }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
@@ -1,7 +1,7 @@
1
- import { AclExtended, AclsApi, CreateAclRequest } from "@fonoster/types";
1
+ import { AclsApi } from "@fonoster/types";
2
2
  declare function createAcl(acls: AclsApi): (call: {
3
- request: CreateAclRequest;
4
- }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: AclExtended) => void) => Promise<void>;
3
+ request: unknown;
4
+ }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
5
5
  declare function updateAcl(acls: AclsApi): (call: {
6
6
  request: unknown;
7
7
  }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
@@ -5,6 +5,25 @@ exports.deleteAcl = deleteAcl;
5
5
  exports.getAcl = getAcl;
6
6
  exports.listAcls = listAcls;
7
7
  exports.updateAcl = updateAcl;
8
+ /*
9
+ * Copyright (C) 2024 by Fonoster Inc (https://fonoster.com)
10
+ * http://github.com/fonoster/fonoster
11
+ *
12
+ * This file is part of Fonoster
13
+ *
14
+ * Licensed under the MIT License (the "License");
15
+ * you may not use this file except in compliance with
16
+ * the License. You may obtain a copy of the License at
17
+ *
18
+ * https://opensource.org/licenses/MIT
19
+ *
20
+ * Unless required by applicable law or agreed to in writing, software
21
+ * distributed under the License is distributed on an "AS IS" BASIS,
22
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
23
+ * See the License for the specific language governing permissions and
24
+ * limitations under the License.
25
+ */
26
+ const common_1 = require("@fonoster/common");
8
27
  const createResource_1 = require("../resources/createResource");
9
28
  const deleteResource_1 = require("../resources/deleteResource");
10
29
  const getResource_1 = require("../resources/getResource");
@@ -12,10 +31,10 @@ const listResources_1 = require("../resources/listResources");
12
31
  const updateResource_1 = require("../resources/updateResource");
13
32
  const RESOURCE = "Acl";
14
33
  function createAcl(acls) {
15
- return (0, createResource_1.createResource)(acls, RESOURCE);
34
+ return (0, createResource_1.createResource)(acls, RESOURCE, common_1.Validators.createAclRequestSchema);
16
35
  }
17
36
  function updateAcl(acls) {
18
- return (0, updateResource_1.updateResource)(acls, RESOURCE);
37
+ return (0, updateResource_1.updateResource)(acls, RESOURCE, common_1.Validators.updateAclRequestSchema);
19
38
  }
20
39
  function getAcl(acls) {
21
40
  return (0, getResource_1.getResource)(acls, RESOURCE);
@@ -8,8 +8,8 @@ declare function buildService(clientOptions: ClientOptions): {
8
8
  };
9
9
  handlers: {
10
10
  createAgent: (call: {
11
- request: import("@fonoster/types").CreateAgentRequestExtended;
12
- }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: import("@fonoster/types").AgentExtended) => void) => Promise<void>;
11
+ request: unknown;
12
+ }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
13
13
  updateAgent: (call: {
14
14
  request: unknown;
15
15
  }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
@@ -1,7 +1,7 @@
1
- import { AgentExtended, AgentsApi, CreateAgentRequestExtended } from "@fonoster/types";
1
+ import { AgentsApi } from "@fonoster/types";
2
2
  declare function createAgent(agents: AgentsApi): (call: {
3
- request: CreateAgentRequestExtended;
4
- }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: AgentExtended) => void) => Promise<void>;
3
+ request: unknown;
4
+ }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
5
5
  declare function updateAgent(agents: AgentsApi): (call: {
6
6
  request: unknown;
7
7
  }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
@@ -5,6 +5,25 @@ exports.deleteAgent = deleteAgent;
5
5
  exports.getAgent = getAgent;
6
6
  exports.listAgents = listAgents;
7
7
  exports.updateAgent = updateAgent;
8
+ /*
9
+ * Copyright (C) 2024 by Fonoster Inc (https://fonoster.com)
10
+ * http://github.com/fonoster/fonoster
11
+ *
12
+ * This file is part of Fonoster
13
+ *
14
+ * Licensed under the MIT License (the "License");
15
+ * you may not use this file except in compliance with
16
+ * the License. You may obtain a copy of the License at
17
+ *
18
+ * https://opensource.org/licenses/MIT
19
+ *
20
+ * Unless required by applicable law or agreed to in writing, software
21
+ * distributed under the License is distributed on an "AS IS" BASIS,
22
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
23
+ * See the License for the specific language governing permissions and
24
+ * limitations under the License.
25
+ */
26
+ const common_1 = require("@fonoster/common");
8
27
  const createResource_1 = require("../resources/createResource");
9
28
  const deleteResource_1 = require("../resources/deleteResource");
10
29
  const getResource_1 = require("../resources/getResource");
@@ -12,10 +31,10 @@ const listResources_1 = require("../resources/listResources");
12
31
  const updateResource_1 = require("../resources/updateResource");
13
32
  const RESOURCE = "Agent";
14
33
  function createAgent(agents) {
15
- return (0, createResource_1.createResource)(agents, RESOURCE);
34
+ return (0, createResource_1.createResource)(agents, RESOURCE, common_1.Validators.createAgentRequestSchema);
16
35
  }
17
36
  function updateAgent(agents) {
18
- return (0, updateResource_1.updateResource)(agents, RESOURCE);
37
+ return (0, updateResource_1.updateResource)(agents, RESOURCE, common_1.Validators.updateAgentRequestSchema);
19
38
  }
20
39
  function getAgent(agents) {
21
40
  return (0, getResource_1.getResource)(agents, RESOURCE);
package/dist/constants.js CHANGED
@@ -21,6 +21,5 @@ exports.ROUTR_DEFAULT_PEER_AOR = exports.APP_REF_HEADER = void 0;
21
21
  */
22
22
  const APP_REF_HEADER = "x-app-ref";
23
23
  exports.APP_REF_HEADER = APP_REF_HEADER;
24
- // TODO: Fix duplicated constant (exist in the apiserver)
25
24
  const ROUTR_DEFAULT_PEER_AOR = "sip:voice@default";
26
25
  exports.ROUTR_DEFAULT_PEER_AOR = ROUTR_DEFAULT_PEER_AOR;
@@ -8,8 +8,8 @@ declare function buildService(clientOptions: ClientOptions): {
8
8
  };
9
9
  handlers: {
10
10
  createCredentials: (call: {
11
- request: import("@fonoster/types").CreateCredentialsRequestExtended;
12
- }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: import("@fonoster/types").CredentialsExtended) => void) => Promise<void>;
11
+ request: unknown;
12
+ }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
13
13
  updateCredentials: (call: {
14
14
  request: unknown;
15
15
  }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
@@ -1,7 +1,7 @@
1
- import { CreateCredentialsRequestExtended, CredentialsApi, CredentialsExtended } from "@fonoster/types";
1
+ import { CredentialsApi } from "@fonoster/types";
2
2
  declare function createCredentials(credentials: CredentialsApi): (call: {
3
- request: CreateCredentialsRequestExtended;
4
- }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: CredentialsExtended) => void) => Promise<void>;
3
+ request: unknown;
4
+ }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
5
5
  declare function updateCredentials(credentials: CredentialsApi): (call: {
6
6
  request: unknown;
7
7
  }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
@@ -5,6 +5,25 @@ exports.deleteCredentials = deleteCredentials;
5
5
  exports.getCredentials = getCredentials;
6
6
  exports.listCredentials = listCredentials;
7
7
  exports.updateCredentials = updateCredentials;
8
+ /*
9
+ * Copyright (C) 2024 by Fonoster Inc (https://fonoster.com)
10
+ * http://github.com/fonoster/fonoster
11
+ *
12
+ * This file is part of Fonoster
13
+ *
14
+ * Licensed under the MIT License (the "License");
15
+ * you may not use this file except in compliance with
16
+ * the License. You may obtain a copy of the License at
17
+ *
18
+ * https://opensource.org/licenses/MIT
19
+ *
20
+ * Unless required by applicable law or agreed to in writing, software
21
+ * distributed under the License is distributed on an "AS IS" BASIS,
22
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
23
+ * See the License for the specific language governing permissions and
24
+ * limitations under the License.
25
+ */
26
+ const common_1 = require("@fonoster/common");
8
27
  const createResource_1 = require("../resources/createResource");
9
28
  const deleteResource_1 = require("../resources/deleteResource");
10
29
  const getResource_1 = require("../resources/getResource");
@@ -12,10 +31,10 @@ const listResources_1 = require("../resources/listResources");
12
31
  const updateResource_1 = require("../resources/updateResource");
13
32
  const RESOURCE = "Credentials";
14
33
  function createCredentials(credentials) {
15
- return (0, createResource_1.createResource)(credentials, RESOURCE);
34
+ return (0, createResource_1.createResource)(credentials, RESOURCE, common_1.Validators.createCredentialsRequestSchema);
16
35
  }
17
36
  function updateCredentials(credentials) {
18
- return (0, updateResource_1.updateResource)(credentials, RESOURCE);
37
+ return (0, updateResource_1.updateResource)(credentials, RESOURCE, common_1.Validators.updateCredentialsRequestSchema);
19
38
  }
20
39
  function getCredentials(credentials) {
21
40
  return (0, getResource_1.getResource)(credentials, RESOURCE);
@@ -8,8 +8,8 @@ declare function buildService(clientOptions: ClientOptions): {
8
8
  };
9
9
  handlers: {
10
10
  createDomain: (call: {
11
- request: import("@fonoster/types").CreateDomainRequestExtended;
12
- }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: import("@fonoster/types").DomainExtended) => void) => Promise<void>;
11
+ request: unknown;
12
+ }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
13
13
  updateDomain: (call: {
14
14
  request: unknown;
15
15
  }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
@@ -1,7 +1,7 @@
1
- import { CreateDomainRequestExtended, DomainExtended, DomainsApi } from "@fonoster/types";
1
+ import { DomainsApi } from "@fonoster/types";
2
2
  declare function createDomain(domains: DomainsApi): (call: {
3
- request: CreateDomainRequestExtended;
4
- }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: DomainExtended) => void) => Promise<void>;
3
+ request: unknown;
4
+ }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
5
5
  declare function updateDomain(domains: DomainsApi): (call: {
6
6
  request: unknown;
7
7
  }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
@@ -5,6 +5,25 @@ exports.deleteDomain = deleteDomain;
5
5
  exports.getDomain = getDomain;
6
6
  exports.listDomains = listDomains;
7
7
  exports.updateDomain = updateDomain;
8
+ /*
9
+ * Copyright (C) 2024 by Fonoster Inc (https://fonoster.com)
10
+ * http://github.com/fonoster/fonoster
11
+ *
12
+ * This file is part of Fonoster
13
+ *
14
+ * Licensed under the MIT License (the "License");
15
+ * you may not use this file except in compliance with
16
+ * the License. You may obtain a copy of the License at
17
+ *
18
+ * https://opensource.org/licenses/MIT
19
+ *
20
+ * Unless required by applicable law or agreed to in writing, software
21
+ * distributed under the License is distributed on an "AS IS" BASIS,
22
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
23
+ * See the License for the specific language governing permissions and
24
+ * limitations under the License.
25
+ */
26
+ const common_1 = require("@fonoster/common");
8
27
  const createResource_1 = require("../resources/createResource");
9
28
  const deleteResource_1 = require("../resources/deleteResource");
10
29
  const getResource_1 = require("../resources/getResource");
@@ -12,10 +31,10 @@ const listResources_1 = require("../resources/listResources");
12
31
  const updateResource_1 = require("../resources/updateResource");
13
32
  const RESOURCE = "Domain";
14
33
  function createDomain(domains) {
15
- return (0, createResource_1.createResource)(domains, RESOURCE);
34
+ return (0, createResource_1.createResource)(domains, RESOURCE, common_1.Validators.createDomainRequestSchema);
16
35
  }
17
36
  function updateDomain(domains) {
18
- return (0, updateResource_1.updateResource)(domains, RESOURCE);
37
+ return (0, updateResource_1.updateResource)(domains, RESOURCE, common_1.Validators.updateDomainRequestSchema);
19
38
  }
20
39
  function getDomain(domains) {
21
40
  return (0, getResource_1.getResource)(domains, RESOURCE);
@@ -9,17 +9,17 @@ declare function buildService(clientOptions: ClientOptions, checkNumberPrecondit
9
9
  };
10
10
  handlers: {
11
11
  createNumber: (call: {
12
- request: import("@fonoster/types").CreateNumberRequest;
13
- }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: import("@fonoster/types").BaseApiObject) => void) => Promise<void>;
12
+ request: unknown;
13
+ }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
14
14
  updateNumber: (call: {
15
- request: import("@fonoster/types").UpdateNumberRequest;
16
- }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: import("@fonoster/types").BaseApiObject) => void) => Promise<void>;
15
+ request: unknown;
16
+ }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
17
17
  getNumber: (call: {
18
- request: import("@fonoster/types").BaseApiObject;
19
- }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: import("@fonoster/types").BaseApiObject) => void) => Promise<void>;
18
+ request: unknown;
19
+ }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
20
20
  listNumbers: (call: {
21
- request: import("@fonoster/types").ListNumbersRequest;
22
- }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: import("@fonoster/types").ListNumbersResponse) => void) => Promise<void>;
21
+ request: unknown;
22
+ }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
23
23
  deleteNumber: (call: {
24
24
  request: unknown;
25
25
  }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
@@ -1,6 +1,6 @@
1
1
  import { GrpcErrorMessage, NumberPreconditionsCheck } from "@fonoster/common";
2
- import { BaseApiObject, CreateNumberRequest, NumbersApi } from "@fonoster/types";
2
+ import { NumbersApi } from "@fonoster/types";
3
3
  declare function createNumber(api: NumbersApi, checkNumberPreconditions: NumberPreconditionsCheck): (call: {
4
- request: CreateNumberRequest;
5
- }, callback: (error?: GrpcErrorMessage, response?: BaseApiObject) => void) => Promise<void>;
4
+ request: unknown;
5
+ }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
6
6
  export { createNumber };
@@ -32,22 +32,16 @@ const common_1 = require("@fonoster/common");
32
32
  const identity_1 = require("@fonoster/identity");
33
33
  const logger_1 = require("@fonoster/logger");
34
34
  const convertToRoutrNumber_1 = require("./convertToRoutrNumber");
35
- const validation_1 = require("./validation");
36
35
  const logger = (0, logger_1.getLogger)({ service: "sipnet", filePath: __filename });
37
36
  function createNumber(api, checkNumberPreconditions) {
38
- return (call, callback) => __awaiter(this, void 0, void 0, function* () {
37
+ const fn = (call, callback) => __awaiter(this, void 0, void 0, function* () {
39
38
  const { request } = call;
40
- try {
41
- validation_1.createNumberRequestSchema.parse(request);
42
- // Validates that the appRef or agentAor exists in the system
43
- yield checkNumberPreconditions(request);
44
- const accessKeyId = (0, identity_1.getAccessKeyIdFromCall)(call);
45
- logger.verbose("call to createNumber", Object.assign(Object.assign({}, request), { accessKeyId }));
46
- const response = yield api.createNumber((0, convertToRoutrNumber_1.convertToRoutrNumber)(request, accessKeyId));
47
- callback(null, response);
48
- }
49
- catch (e) {
50
- (0, common_1.handleError)(e, callback);
51
- }
39
+ // Validates that the appRef or agentAor exists in the system
40
+ yield checkNumberPreconditions(request);
41
+ const accessKeyId = (0, identity_1.getAccessKeyIdFromCall)(call);
42
+ logger.verbose("call to createNumber", Object.assign(Object.assign({}, request), { accessKeyId }));
43
+ const response = yield api.createNumber((0, convertToRoutrNumber_1.convertToRoutrNumber)(request, accessKeyId));
44
+ callback(null, response);
52
45
  });
46
+ return (0, common_1.withErrorHandlingAndValidation)(fn, common_1.Validators.createNumberRequestSchema);
53
47
  }
@@ -1,6 +1,6 @@
1
1
  import { GrpcErrorMessage } from "@fonoster/common";
2
- import { BaseApiObject, NumbersApi } from "@fonoster/types";
2
+ import { NumbersApi } from "@fonoster/types";
3
3
  declare function getNumber(api: NumbersApi): (call: {
4
- request: BaseApiObject;
5
- }, callback: (error?: GrpcErrorMessage, response?: BaseApiObject) => void) => Promise<void>;
4
+ request: unknown;
5
+ }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
6
6
  export { getNumber };
@@ -33,15 +33,12 @@ const logger_1 = require("@fonoster/logger");
33
33
  const convertToFonosterNumber_1 = require("./convertToFonosterNumber");
34
34
  const logger = (0, logger_1.getLogger)({ service: "sipnet", filePath: __filename });
35
35
  function getNumber(api) {
36
- return (call, callback) => __awaiter(this, void 0, void 0, function* () {
37
- const { ref } = call.request;
38
- try {
39
- logger.verbose("call to getNumber", { ref });
40
- const response = yield api.getNumber(ref);
41
- callback(null, (0, convertToFonosterNumber_1.convertToFonosterNumber)(response));
42
- }
43
- catch (e) {
44
- (0, common_1.handleError)(e, callback);
45
- }
36
+ const fn = (call, callback) => __awaiter(this, void 0, void 0, function* () {
37
+ const { request } = call;
38
+ const { ref } = request;
39
+ logger.verbose("call to getNumber", { ref });
40
+ const response = yield api.getNumber(ref);
41
+ callback(null, (0, convertToFonosterNumber_1.convertToFonosterNumber)(response));
46
42
  });
43
+ return (0, common_1.withErrorHandlingAndValidation)(fn, common_1.Validators.baseApiObjectSchema);
47
44
  }
@@ -1,6 +1,6 @@
1
1
  import { GrpcErrorMessage } from "@fonoster/common";
2
- import { ListNumbersRequest, ListNumbersResponse, NumbersApi } from "@fonoster/types";
2
+ import { NumbersApi } from "@fonoster/types";
3
3
  declare function listNumbers(api: NumbersApi): (call: {
4
- request: ListNumbersRequest;
5
- }, callback: (error?: GrpcErrorMessage, response?: ListNumbersResponse) => void) => Promise<void>;
4
+ request: unknown;
5
+ }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
6
6
  export { listNumbers };
@@ -33,19 +33,15 @@ const logger_1 = require("@fonoster/logger");
33
33
  const convertToFonosterNumber_1 = require("./convertToFonosterNumber");
34
34
  const logger = (0, logger_1.getLogger)({ service: "sipnet", filePath: __filename });
35
35
  function listNumbers(api) {
36
- return (call, callback) => __awaiter(this, void 0, void 0, function* () {
36
+ const fn = (call, callback) => __awaiter(this, void 0, void 0, function* () {
37
37
  const { request } = call;
38
38
  logger.verbose("call to listNumbers", Object.assign({}, request));
39
- try {
40
- const response = yield api.listNumbers(request);
41
- const items = response.items.map(convertToFonosterNumber_1.convertToFonosterNumber);
42
- callback(null, {
43
- items: items,
44
- nextPageToken: response.nextPageToken
45
- });
46
- }
47
- catch (e) {
48
- (0, common_1.handleError)(e, callback);
49
- }
39
+ const response = yield api.listNumbers(request);
40
+ const items = response.items.map(convertToFonosterNumber_1.convertToFonosterNumber);
41
+ callback(null, {
42
+ items: items,
43
+ nextPageToken: response.nextPageToken
44
+ });
50
45
  });
46
+ return (0, common_1.withErrorHandlingAndValidation)(fn, common_1.Validators.listRequestSchema);
51
47
  }
@@ -1,6 +1,6 @@
1
1
  import { GrpcErrorMessage, NumberPreconditionsCheck } from "@fonoster/common";
2
- import { BaseApiObject, NumbersApi, UpdateNumberRequest } from "@fonoster/types";
2
+ import { NumbersApi } from "@fonoster/types";
3
3
  declare function updateNumber(api: NumbersApi, checkNumberPreconditions: NumberPreconditionsCheck): (call: {
4
- request: UpdateNumberRequest;
5
- }, callback: (error?: GrpcErrorMessage, response?: BaseApiObject) => void) => Promise<void>;
4
+ request: unknown;
5
+ }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
6
6
  export { updateNumber };
@@ -31,21 +31,15 @@ exports.updateNumber = updateNumber;
31
31
  const common_1 = require("@fonoster/common");
32
32
  const logger_1 = require("@fonoster/logger");
33
33
  const convertToRoutrNumber_1 = require("./convertToRoutrNumber");
34
- const validation_1 = require("./validation");
35
34
  const logger = (0, logger_1.getLogger)({ service: "sipnet", filePath: __filename });
36
35
  function updateNumber(api, checkNumberPreconditions) {
37
- return (call, callback) => __awaiter(this, void 0, void 0, function* () {
36
+ const fn = (call, callback) => __awaiter(this, void 0, void 0, function* () {
38
37
  const { request } = call;
39
- try {
40
- validation_1.updateNumberRequestSchema.parse(request);
41
- // Validates that the appRef or agentAor exists in the system
42
- yield checkNumberPreconditions(request);
43
- logger.verbose("call to updateNumber", Object.assign({}, request));
44
- const response = yield api.updateNumber((0, convertToRoutrNumber_1.convertToRoutrNumberUpdate)(request));
45
- callback(null, response);
46
- }
47
- catch (e) {
48
- (0, common_1.handleError)(e, callback);
49
- }
38
+ // Validates that the appRef or agentAor exists in the system
39
+ yield checkNumberPreconditions(request);
40
+ logger.verbose("call to updateNumber", Object.assign({}, request));
41
+ const response = yield api.updateNumber((0, convertToRoutrNumber_1.convertToRoutrNumberUpdate)(request));
42
+ callback(null, response);
50
43
  });
44
+ return (0, common_1.withErrorHandlingAndValidation)(fn, common_1.Validators.updateNumberRequestSchema);
51
45
  }
@@ -1,5 +1,6 @@
1
1
  import { GrpcErrorMessage } from "@fonoster/common";
2
- declare function createResource<T, R, U>(api: U, resource: string): (call: {
3
- request: R;
4
- }, callback: (error?: GrpcErrorMessage, response?: T) => void) => Promise<void>;
2
+ import { z } from "zod";
3
+ declare function createResource<T, R, U>(api: U, resource: string, schema: z.ZodSchema): (call: {
4
+ request: unknown;
5
+ }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
5
6
  export { createResource };
@@ -32,19 +32,15 @@ const common_1 = require("@fonoster/common");
32
32
  const identity_1 = require("@fonoster/identity");
33
33
  const logger_1 = require("@fonoster/logger");
34
34
  const logger = (0, logger_1.getLogger)({ service: "sipnet", filePath: __filename });
35
- function createResource(api, resource) {
36
- return (call, callback) => __awaiter(this, void 0, void 0, function* () {
35
+ function createResource(api, resource, schema) {
36
+ const fn = (call, callback) => __awaiter(this, void 0, void 0, function* () {
37
37
  const { request } = call;
38
38
  const accessKeyId = (0, identity_1.getAccessKeyIdFromCall)(call);
39
39
  logger.verbose(`call to create${resource}`, Object.assign(Object.assign({}, request), { accessKeyId }));
40
- try {
41
- const response = yield api[`create${resource}`](Object.assign(Object.assign({}, request), { extended: {
42
- accessKeyId
43
- } }));
44
- callback(null, response);
45
- }
46
- catch (e) {
47
- (0, common_1.handleError)(e, callback);
48
- }
40
+ const response = yield api[`create${resource}`](Object.assign(Object.assign({}, request), { extended: {
41
+ accessKeyId
42
+ } }));
43
+ callback(null, response);
49
44
  });
45
+ return (0, common_1.withErrorHandlingAndValidation)(fn, schema);
50
46
  }
@@ -39,5 +39,5 @@ function deleteResource(api, resource) {
39
39
  yield api[`delete${resource}`](request.ref);
40
40
  return { ref: request.ref };
41
41
  });
42
- return (0, common_1.withErrorHandling)((0, identity_1.withAccess)(fn, (ref) => api[`get${resource}`](ref)));
42
+ return (0, common_1.withErrorHandlingAndValidation)((0, identity_1.withAccess)(fn, (ref) => api[`get${resource}`](ref)), common_1.Validators.baseApiObjectSchema);
43
43
  }
@@ -38,5 +38,5 @@ function getResource(api, resource) {
38
38
  logger.verbose(`call to get${resource}`, { request, resource });
39
39
  return yield api[`get${resource}`](request.ref);
40
40
  });
41
- return (0, common_1.withErrorHandling)((0, identity_1.withAccess)(fn, (ref) => api[`get${resource}`](ref)));
41
+ return (0, common_1.withErrorHandlingAndValidation)((0, identity_1.withAccess)(fn, (ref) => api[`get${resource}`](ref)), common_1.Validators.baseApiObjectSchema);
42
42
  }
@@ -1,5 +1,5 @@
1
1
  import { GrpcErrorMessage } from "@fonoster/common";
2
2
  declare function listResources<T, R, U>(api: U, resource: string): (call: {
3
3
  request: unknown;
4
- }, callback: (error?: GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
4
+ }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
5
5
  export { listResources };
@@ -42,5 +42,5 @@ function listResources(api, resource) {
42
42
  nextPageToken: response.nextPageToken
43
43
  });
44
44
  });
45
- return (0, common_1.withErrorHandling)(fn);
45
+ return (0, common_1.withErrorHandlingAndValidation)(fn, common_1.Validators.listRequestSchema);
46
46
  }
@@ -1,4 +1,5 @@
1
- declare function updateResource<T, R, U>(api: U, resource: string): (call: {
1
+ import { z } from "zod";
2
+ declare function updateResource<T, R, U>(api: U, resource: string, schema: z.ZodSchema): (call: {
2
3
  request: unknown;
3
4
  }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
4
5
  export { updateResource };
@@ -32,11 +32,11 @@ const common_1 = require("@fonoster/common");
32
32
  const identity_1 = require("@fonoster/identity");
33
33
  const logger_1 = require("@fonoster/logger");
34
34
  const logger = (0, logger_1.getLogger)({ service: "sipnet", filePath: __filename });
35
- function updateResource(api, resource) {
35
+ function updateResource(api, resource, schema) {
36
36
  const fn = (call) => __awaiter(this, void 0, void 0, function* () {
37
37
  const { request } = call;
38
38
  logger.verbose(`call to update${resource}`, Object.assign({}, request));
39
39
  return yield api[`update${resource}`](request);
40
40
  });
41
- return (0, common_1.withErrorHandling)((0, identity_1.withAccess)(fn, (ref) => api[`get${resource}`](ref)));
41
+ return (0, common_1.withErrorHandlingAndValidation)((0, identity_1.withAccess)(fn, (ref) => api[`get${resource}`](ref)), schema);
42
42
  }
@@ -8,8 +8,8 @@ declare function buildService(clientOptions: ClientOptions): {
8
8
  };
9
9
  handlers: {
10
10
  createTrunk: (call: {
11
- request: import("@fonoster/types").CreateTrunkRequestExtended;
12
- }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: import("@fonoster/types").TrunkExtended) => void) => Promise<void>;
11
+ request: unknown;
12
+ }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
13
13
  updateTrunk: (call: {
14
14
  request: unknown;
15
15
  }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
@@ -1,7 +1,7 @@
1
- import { CreateTrunkRequestExtended, TrunkApi, TrunkExtended } from "@fonoster/types";
1
+ import { TrunkApi } from "@fonoster/types";
2
2
  declare function createTrunk(trunks: TrunkApi): (call: {
3
- request: CreateTrunkRequestExtended;
4
- }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: TrunkExtended) => void) => Promise<void>;
3
+ request: unknown;
4
+ }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
5
5
  declare function updateTrunk(trunks: TrunkApi): (call: {
6
6
  request: unknown;
7
7
  }, callback: (error?: import("@fonoster/common").GrpcErrorMessage, response?: unknown) => void) => Promise<void>;
@@ -5,6 +5,26 @@ exports.deleteTrunk = deleteTrunk;
5
5
  exports.getTrunk = getTrunk;
6
6
  exports.listTrunks = listTrunks;
7
7
  exports.updateTrunk = updateTrunk;
8
+ /* eslint-disable @typescript-eslint/ban-types */
9
+ /*
10
+ * Copyright (C) 2024 by Fonoster Inc (https://fonoster.com)
11
+ * http://github.com/fonoster/fonoster
12
+ *
13
+ * This file is part of Fonoster
14
+ *
15
+ * Licensed under the MIT License (the "License");
16
+ * you may not use this file except in compliance with
17
+ * the License. You may obtain a copy of the License at
18
+ *
19
+ * https://opensource.org/licenses/MIT
20
+ *
21
+ * Unless required by applicable law or agreed to in writing, software
22
+ * distributed under the License is distributed on an "AS IS" BASIS,
23
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
24
+ * See the License for the specific language governing permissions and
25
+ * limitations under the License.
26
+ */
27
+ const common_1 = require("@fonoster/common");
8
28
  const createResource_1 = require("../resources/createResource");
9
29
  const deleteResource_1 = require("../resources/deleteResource");
10
30
  const getResource_1 = require("../resources/getResource");
@@ -12,10 +32,10 @@ const listResources_1 = require("../resources/listResources");
12
32
  const updateResource_1 = require("../resources/updateResource");
13
33
  const RESOURCE = "Trunk";
14
34
  function createTrunk(trunks) {
15
- return (0, createResource_1.createResource)(trunks, RESOURCE);
35
+ return (0, createResource_1.createResource)(trunks, RESOURCE, common_1.Validators.createTrunkRequestSchema);
16
36
  }
17
37
  function updateTrunk(trunks) {
18
- return (0, updateResource_1.updateResource)(trunks, RESOURCE);
38
+ return (0, updateResource_1.updateResource)(trunks, RESOURCE, common_1.Validators.updateTrunkRequestSchema);
19
39
  }
20
40
  function getTrunk(trunks) {
21
41
  return (0, getResource_1.getResource)(trunks, RESOURCE);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fonoster/sipnet",
3
- "version": "0.7.5",
3
+ "version": "0.7.7",
4
4
  "description": "Routr-based SIP stack",
5
5
  "author": "Pedro Sanders <psanders@fonoster.com>",
6
6
  "homepage": "https://github.com/fonoster/fonoster#readme",
@@ -20,8 +20,8 @@
20
20
  "fonoster": "./dist/index.js"
21
21
  },
22
22
  "dependencies": {
23
- "@fonoster/common": "^0.7.5",
24
- "@fonoster/identity": "^0.7.5",
23
+ "@fonoster/common": "^0.7.7",
24
+ "@fonoster/identity": "^0.7.7",
25
25
  "@fonoster/logger": "^0.7.5",
26
26
  "@fonoster/types": "^0.7.5",
27
27
  "@grpc/grpc-js": "~1.10.6",
@@ -41,5 +41,5 @@
41
41
  "bugs": {
42
42
  "url": "https://github.com/fonoster/fonoster/issues"
43
43
  },
44
- "gitHead": "cf28444503e4e698ccc001e061c7c918a4204757"
44
+ "gitHead": "f1cfa987ec4221dad9900bc377cccee49221164a"
45
45
  }
@@ -1,39 +0,0 @@
1
- import { z } from "zod";
2
- declare const createNumberRequestSchema: z.ZodEffects<z.ZodObject<{
3
- agentAor: z.ZodOptional<z.ZodString>;
4
- appRef: z.ZodOptional<z.ZodString>;
5
- countryIsoCode: z.ZodEffects<z.ZodString, string, string>;
6
- }, "strip", z.ZodTypeAny, {
7
- countryIsoCode?: string;
8
- appRef?: string;
9
- agentAor?: string;
10
- }, {
11
- countryIsoCode?: string;
12
- appRef?: string;
13
- agentAor?: string;
14
- }>, {
15
- countryIsoCode?: string;
16
- appRef?: string;
17
- agentAor?: string;
18
- }, {
19
- countryIsoCode?: string;
20
- appRef?: string;
21
- agentAor?: string;
22
- }>;
23
- declare const updateNumberRequestSchema: z.ZodEffects<z.ZodObject<{
24
- agentAor: z.ZodOptional<z.ZodString>;
25
- appRef: z.ZodOptional<z.ZodString>;
26
- }, "strip", z.ZodTypeAny, {
27
- appRef?: string;
28
- agentAor?: string;
29
- }, {
30
- appRef?: string;
31
- agentAor?: string;
32
- }>, {
33
- appRef?: string;
34
- agentAor?: string;
35
- }, {
36
- appRef?: string;
37
- agentAor?: string;
38
- }>;
39
- export { createNumberRequestSchema, updateNumberRequestSchema };
@@ -1,51 +0,0 @@
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
- exports.updateNumberRequestSchema = exports.createNumberRequestSchema = void 0;
7
- /*
8
- * Copyright (C) 2024 by Fonoster Inc (https://fonoster.com)
9
- * http://github.com/fonoster/fonoster
10
- *
11
- * This file is part of Fonoster
12
- *
13
- * Licensed under the MIT License (the "License");
14
- * you may not use this file except in compliance with
15
- * the License. You may obtain a copy of the License at
16
- *
17
- * https://opensource.org/licenses/MIT
18
- *
19
- * Unless required by applicable law or agreed to in writing, software
20
- * distributed under the License is distributed on an "AS IS" BASIS,
21
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
22
- * See the License for the specific language governing permissions and
23
- * limitations under the License.
24
- */
25
- const isISO31661Alpha2_1 = __importDefault(require("validator/lib/isISO31661Alpha2"));
26
- const zod_1 = require("zod");
27
- const sipUriRegex = /^sip:[a-zA-Z0-9_.-]+@[a-zA-Z0-9_.-]+$/;
28
- const sipUriSchema = zod_1.z.string().regex(sipUriRegex, "Invalid SIP URI");
29
- const countryIsoCodeSchema = zod_1.z.string().refine((val) => (0, isISO31661Alpha2_1.default)(val), {
30
- message: "Invalid country ISO code"
31
- });
32
- const createNumberRequestSchema = zod_1.z
33
- .object({
34
- // TODO: Add validation for telUrl (perhaps using the "phone" package)
35
- agentAor: sipUriSchema.optional(),
36
- appRef: zod_1.z.string().optional(),
37
- countryIsoCode: countryIsoCodeSchema
38
- })
39
- .refine(({ agentAor, appRef }) => !(agentAor !== undefined && appRef !== undefined), {
40
- message: "You can only provide one of the following fields: 'agentAor' or 'appRef'"
41
- });
42
- exports.createNumberRequestSchema = createNumberRequestSchema;
43
- const updateNumberRequestSchema = zod_1.z
44
- .object({
45
- agentAor: sipUriSchema.optional(),
46
- appRef: zod_1.z.string().optional()
47
- })
48
- .refine(({ agentAor, appRef }) => !(agentAor !== undefined && appRef !== undefined), {
49
- message: "You can only provide one of the following fields: 'agentAor' or 'appRef'"
50
- });
51
- exports.updateNumberRequestSchema = updateNumberRequestSchema;