@degenerate/endpoints 0.0.13 → 0.0.15

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 (57) hide show
  1. package/dist/cors/endpoints/helpers/validate-incoming-request-data.d.ts +1 -1
  2. package/dist/cors/endpoints/helpers/validate-incoming-request-data.d.ts.map +1 -1
  3. package/dist/cors/endpoints/helpers/validate-incoming-request-data.js +1 -1
  4. package/dist/cors/endpoints/helpers/validate-request-body.js +0 -1
  5. package/dist/cors/index.d.ts +0 -5
  6. package/dist/cors/index.d.ts.map +1 -1
  7. package/dist/cors/index.js +0 -7
  8. package/dist/examples/express-server/app.d.ts.map +1 -1
  9. package/dist/examples/express-server/app.js +7 -5
  10. package/dist/routes/authorities/v1.routes.d.ts.map +1 -0
  11. package/dist/{cors/routes → routes}/authorities/v1.routes.js +3 -3
  12. package/dist/routes/authorities.routes.d.ts.map +1 -0
  13. package/dist/{cors/routes → routes}/authorities.routes.js +3 -3
  14. package/dist/routes/events.routes.d.ts.map +1 -0
  15. package/dist/{cors/routes → routes}/events.routes.js +1 -1
  16. package/dist/routes/functions.routes.d.ts.map +1 -0
  17. package/dist/{cors/routes → routes}/functions.routes.js +1 -1
  18. package/dist/routes/index.d.ts +7 -0
  19. package/dist/routes/index.d.ts.map +1 -0
  20. package/dist/routes/index.js +22 -0
  21. package/dist/routes/rules/v1/rule-set.routes.d.ts.map +1 -0
  22. package/dist/routes/rules/v1/rule-set.routes.js +126 -0
  23. package/dist/routes/rules/v1.routes.d.ts.map +1 -0
  24. package/dist/{cors/routes → routes}/rules/v1.routes.js +1 -1
  25. package/dist/routes/rules.routes.d.ts.map +1 -0
  26. package/dist/{cors/routes → routes}/rules.routes.js +3 -3
  27. package/dist/routes/share-data.routes.d.ts.map +1 -0
  28. package/dist/{cors/routes → routes}/share-data.routes.js +1 -1
  29. package/dist/routes/validation/rules/validate-rules.routes.d.ts +2 -0
  30. package/dist/routes/validation/rules/validate-rules.routes.d.ts.map +1 -0
  31. package/dist/{cors/routes/rules/v1/rule-set.routes.js → routes/validation/rules/validate-rules.routes.js} +20 -29
  32. package/dist/routes/validation/v1.routes.d.ts +2 -0
  33. package/dist/routes/validation/v1.routes.d.ts.map +1 -0
  34. package/dist/routes/validation/v1.routes.js +44 -0
  35. package/dist/routes/validation.routes.d.ts +2 -0
  36. package/dist/routes/validation.routes.d.ts.map +1 -0
  37. package/dist/routes/validation.routes.js +17 -0
  38. package/dist/server-objects/ruleset-manager.d.ts +40 -0
  39. package/dist/server-objects/ruleset-manager.d.ts.map +1 -0
  40. package/dist/server-objects/ruleset-manager.js +75 -0
  41. package/package.json +3 -3
  42. package/dist/cors/routes/authorities/v1.routes.d.ts.map +0 -1
  43. package/dist/cors/routes/authorities.routes.d.ts.map +0 -1
  44. package/dist/cors/routes/events.routes.d.ts.map +0 -1
  45. package/dist/cors/routes/functions.routes.d.ts.map +0 -1
  46. package/dist/cors/routes/rules/v1/rule-set.routes.d.ts.map +0 -1
  47. package/dist/cors/routes/rules/v1.routes.d.ts.map +0 -1
  48. package/dist/cors/routes/rules.routes.d.ts.map +0 -1
  49. package/dist/cors/routes/share-data.routes.d.ts.map +0 -1
  50. /package/dist/{cors/routes → routes}/authorities/v1.routes.d.ts +0 -0
  51. /package/dist/{cors/routes → routes}/authorities.routes.d.ts +0 -0
  52. /package/dist/{cors/routes → routes}/events.routes.d.ts +0 -0
  53. /package/dist/{cors/routes → routes}/functions.routes.d.ts +0 -0
  54. /package/dist/{cors/routes → routes}/rules/v1/rule-set.routes.d.ts +0 -0
  55. /package/dist/{cors/routes → routes}/rules/v1.routes.d.ts +0 -0
  56. /package/dist/{cors/routes → routes}/rules.routes.d.ts +0 -0
  57. /package/dist/{cors/routes → routes}/share-data.routes.d.ts +0 -0
@@ -6,5 +6,5 @@ import { Request, Response, NextFunction } from 'express';
6
6
  * @param schema the schema to validate against
7
7
  * @returns a middleware function that will validate the incoming request data
8
8
  */
9
- export declare function validateIncomingRequestData<T extends ZodSchema<any>>(schema: T): (req: Request, res: Response, next: NextFunction) => void;
9
+ export declare function validateIncomingRequestData<T extends ZodSchema<unknown>>(schema: T): (req: Request, res: Response, next: NextFunction) => void;
10
10
  //# sourceMappingURL=validate-incoming-request-data.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate-incoming-request-data.d.ts","sourceRoot":"","sources":["../../../../src/cors/endpoints/helpers/validate-incoming-request-data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,SAAS,EAAE,MAAM,KAAK,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAG1D;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,CAAC,SAAS,SAAS,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,SAC9D,OAAO,OAAO,QAAQ,QAAQ,YAAY,UAc1D"}
1
+ {"version":3,"file":"validate-incoming-request-data.d.ts","sourceRoot":"","sources":["../../../../src/cors/endpoints/helpers/validate-incoming-request-data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,SAAS,EAAE,MAAM,KAAK,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAG1D;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,CAAC,SAAS,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,SAClE,OAAO,OAAO,QAAQ,QAAQ,YAAY,UAc1D"}
@@ -34,5 +34,5 @@ function validateIncomingRequestData(schema) {
34
34
  * @returns an array of formatted error messages
35
35
  */
36
36
  function formatZodErrors(error) {
37
- return error.errors.map(issue => `${issue.path.join('.')} is ${issue.message}`);
37
+ return error.errors.map((issue) => `${issue.path.join('.')} is ${issue.message}`);
38
38
  }
@@ -29,4 +29,3 @@ function validateRequestBody(req, res, next) {
29
29
  next();
30
30
  return;
31
31
  }
32
- ;
@@ -12,9 +12,4 @@ export * from './errors/bad-request-handler';
12
12
  export * from './errors/unauthorized-handler';
13
13
  export * from './logging/add-unique-tracking';
14
14
  export * from './logging/request-logging';
15
- export * from './routes/authorities.routes';
16
- export * from './routes/events.routes';
17
- export * from './routes/functions.routes';
18
- export * from './routes/rules.routes';
19
- export * from './routes/share-data.routes';
20
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cors/index.ts"],"names":[],"mappings":"AAAA,cAAc,wCAAwC,CAAC;AACvD,cAAc,0CAA0C,CAAC;AACzD,cAAc,wCAAwC,CAAC;AACvD,cAAc,qCAAqC,CAAC;AACpD,cAAc,wCAAwC,CAAC;AACvD,cAAc,oCAAoC,CAAC;AACnD,cAAc,yCAAyC,CAAC;AAGxD,cAAc,oDAAoD,CAAC;AAEnE,cAAc,2CAA2C,CAAC;AAI1D,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAI9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAI1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cors/index.ts"],"names":[],"mappings":"AAAA,cAAc,wCAAwC,CAAC;AACvD,cAAc,0CAA0C,CAAC;AACzD,cAAc,wCAAwC,CAAC;AACvD,cAAc,qCAAqC,CAAC;AACpD,cAAc,wCAAwC,CAAC;AACvD,cAAc,oCAAoC,CAAC;AACnD,cAAc,yCAAyC,CAAC;AAGxD,cAAc,oDAAoD,CAAC;AAEnE,cAAc,2CAA2C,CAAC;AAI1D,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAI9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC"}
@@ -36,10 +36,3 @@ __exportStar(require("./errors/unauthorized-handler"), exports);
36
36
  __exportStar(require("./logging/add-unique-tracking"), exports);
37
37
  __exportStar(require("./logging/request-logging"), exports);
38
38
  //#endregion logging
39
- //#region routes
40
- __exportStar(require("./routes/authorities.routes"), exports);
41
- __exportStar(require("./routes/events.routes"), exports);
42
- __exportStar(require("./routes/functions.routes"), exports);
43
- __exportStar(require("./routes/rules.routes"), exports);
44
- __exportStar(require("./routes/share-data.routes"), exports);
45
- //#endregion routes
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../src/examples/express-server/app.ts"],"names":[],"mappings":"AAaA,QAAA,MAAM,GAAG,6CAAY,CAAC;AAqBtB,eAAe,GAAG,CAAC"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../src/examples/express-server/app.ts"],"names":[],"mappings":"AAeA,QAAA,MAAM,GAAG,6CAAY,CAAC;AAsBtB,eAAe,GAAG,CAAC"}
@@ -5,11 +5,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const express_1 = __importDefault(require("express"));
7
7
  //#region Route Imports
8
- const authorities_routes_1 = require("../../cors/routes/authorities.routes");
9
- const events_routes_1 = require("../../cors/routes/events.routes");
10
- const functions_routes_1 = require("../../cors/routes/functions.routes");
11
- const rules_routes_1 = require("../../cors/routes/rules.routes");
12
- const share_data_routes_1 = require("../../cors/routes/share-data.routes");
8
+ const authorities_routes_1 = require("../../routes/authorities.routes");
9
+ const events_routes_1 = require("../../routes/events.routes");
10
+ const functions_routes_1 = require("../../routes/functions.routes");
11
+ const rules_routes_1 = require("../../routes/rules.routes");
12
+ const share_data_routes_1 = require("../../routes/share-data.routes");
13
+ const validation_routes_1 = require("../../routes/validation.routes");
13
14
  const generic_1 = require("@degenerate/generic");
14
15
  const cors_1 = require("../../cors");
15
16
  //#endregion Route Imports
@@ -27,6 +28,7 @@ app.use('/events', events_routes_1.events); // add the events routes
27
28
  app.use('/functions', functions_routes_1.functions); // add the functions routes
28
29
  app.use('/rules', rules_routes_1.rules); // add the rules routes
29
30
  app.use('/share-data', share_data_routes_1.shareData); // add the share data routes
31
+ app.use('/validation', validation_routes_1.validation); // add the validation routes
30
32
  app.use(cors_1.unauthorizedHandler); // the unauthorized handler should be the first error handler
31
33
  app.use(cors_1.badRequestHandler); // the bad request handler should be the second error handler
32
34
  app.use(cors_1.allErrorHandler); // the all error handler catches all remaining errors
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v1.routes.d.ts","sourceRoot":"","sources":["../../../src/routes/authorities/v1.routes.ts"],"names":[],"mappings":"AAkGA,eAAO,MAAM,EAAE,4CAAS,CAAC"}
@@ -28,14 +28,14 @@ exports.v1 = void 0;
28
28
  const express = __importStar(require("express"));
29
29
  //#endregion Package Imports
30
30
  // #region Middleware Protections
31
- const validate_request_body_1 = require("../../endpoints/helpers/validate-request-body");
32
- const validate_incoming_request_data_1 = require("../../endpoints/helpers/validate-incoming-request-data");
31
+ const validate_request_body_1 = require("../../cors/endpoints/helpers/validate-request-body");
32
+ const validate_incoming_request_data_1 = require("../../cors/endpoints/helpers/validate-incoming-request-data");
33
33
  // #endregion Middleware Protections
34
34
  //#region Incoming Shape Validations
35
35
  const generic_1 = require("@degenerate/generic");
36
36
  //#endregion Incoming Shape Validations
37
37
  //#region Functions and Models
38
- const add_unique_tracking_1 = require("../../logging/add-unique-tracking");
38
+ const add_unique_tracking_1 = require("../../cors/logging/add-unique-tracking");
39
39
  //#endregion Functions and Models
40
40
  //#region Route Imports
41
41
  //#endregion Route Imports
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authorities.routes.d.ts","sourceRoot":"","sources":["../../src/routes/authorities.routes.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,WAAW,4CAAS,CAAC"}
@@ -5,9 +5,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.authorities = void 0;
7
7
  const express_1 = __importDefault(require("express"));
8
- const get_set_audiences_1 = require("../authority/audience/get-set-audiences");
9
- const validate_jwt_authorities_1 = require("../authority/jwt/validate-jwt-authorities");
10
- const request_logging_1 = require("../logging/request-logging");
8
+ const get_set_audiences_1 = require("../cors/authority/audience/get-set-audiences");
9
+ const validate_jwt_authorities_1 = require("../cors/authority/jwt/validate-jwt-authorities");
10
+ const request_logging_1 = require("../cors/logging/request-logging");
11
11
  const v1_routes_1 = require("./authorities/v1.routes");
12
12
  // eslint-disable-next-line new-cap
13
13
  const router = express_1.default.Router({ mergeParams: true });
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.routes.d.ts","sourceRoot":"","sources":["../../src/routes/events.routes.ts"],"names":[],"mappings":"AAoCA,eAAO,MAAM,MAAM,4CAAS,CAAC"}
@@ -25,7 +25,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.events = void 0;
27
27
  const express = __importStar(require("express"));
28
- const get_set_audiences_1 = require("../authority/audience/get-set-audiences");
28
+ const get_set_audiences_1 = require("../cors/authority/audience/get-set-audiences");
29
29
  // eslint-disable-next-line new-cap
30
30
  const router = express.Router({ mergeParams: true });
31
31
  router.use(get_set_audiences_1.setAudienceEvents); // set the audience to events (this will throw an error if the audience is not set)
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functions.routes.d.ts","sourceRoot":"","sources":["../../src/routes/functions.routes.ts"],"names":[],"mappings":"AAmCA,eAAO,MAAM,SAAS,4CAAS,CAAC"}
@@ -25,7 +25,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.functions = void 0;
27
27
  const express = __importStar(require("express"));
28
- const get_set_audiences_1 = require("../authority/audience/get-set-audiences");
28
+ const get_set_audiences_1 = require("../cors/authority/audience/get-set-audiences");
29
29
  // eslint-disable-next-line new-cap
30
30
  const router = express.Router({ mergeParams: true });
31
31
  router.use(get_set_audiences_1.setAudienceFunctions); // set the audience to share data (this will throw an error if the audience is not set)
@@ -0,0 +1,7 @@
1
+ export * from './authorities.routes';
2
+ export * from './events.routes';
3
+ export * from './functions.routes';
4
+ export * from './rules.routes';
5
+ export * from './share-data.routes';
6
+ export * from './validation.routes';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/routes/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./authorities.routes"), exports);
18
+ __exportStar(require("./events.routes"), exports);
19
+ __exportStar(require("./functions.routes"), exports);
20
+ __exportStar(require("./rules.routes"), exports);
21
+ __exportStar(require("./share-data.routes"), exports);
22
+ __exportStar(require("./validation.routes"), exports);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule-set.routes.d.ts","sourceRoot":"","sources":["../../../../src/routes/rules/v1/rule-set.routes.ts"],"names":[],"mappings":"AAmIA,eAAO,MAAM,QAAQ,4CAAS,CAAC"}
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+ //#region Package Imports
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || function (mod) {
20
+ if (mod && mod.__esModule) return mod;
21
+ var result = {};
22
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
23
+ __setModuleDefault(result, mod);
24
+ return result;
25
+ };
26
+ Object.defineProperty(exports, "__esModule", { value: true });
27
+ exports.ruleSets = void 0;
28
+ const express = __importStar(require("express"));
29
+ //#endregion Package Imports
30
+ // #region Middleware Protections
31
+ // #endregion Middleware Protections
32
+ //#region Incoming Shape Validations
33
+ const validate_incoming_request_data_1 = require("../../../cors/endpoints/helpers/validate-incoming-request-data");
34
+ const validate_request_body_1 = require("../../../cors/endpoints/helpers/validate-request-body");
35
+ //#endregion Incoming Shape Validations
36
+ //#region Functions and Models
37
+ const generic_1 = require("@degenerate/generic");
38
+ const ruleset_manager_1 = require("../../../server-objects/ruleset-manager");
39
+ const ruleSetManager = new ruleset_manager_1.RuleSetManager();
40
+ //#endregion Functions and Models
41
+ //#region Route Imports
42
+ //#endregion Route Imports
43
+ // eslint-disable-next-line new-cap
44
+ const router = express.Router({ mergeParams: true });
45
+ /**
46
+ * This creates a new rules set object.
47
+ */
48
+ router.post(// https://{hostname}/rules/v1/rule-sets
49
+ '/', validate_request_body_1.validateRequestBody, // make sure this is a valid request body
50
+ (0, validate_incoming_request_data_1.validateIncomingRequestData)(generic_1.ISAFETransactionRuleSetAddSchema), async (req, res, next) => {
51
+ try {
52
+ const ruleSet = req.body.transaction.data.ruleSet; // get the rule set;
53
+ ruleSetManager.addRuleSet(ruleSet); // add the rule set to the rule set manager
54
+ return res.status(200).send({ successful: true });
55
+ }
56
+ catch (err) {
57
+ next(err);
58
+ }
59
+ });
60
+ /**
61
+ * This gets all the rules set objects.
62
+ */
63
+ router.get('/', async (req, res, next) => {
64
+ try {
65
+ const lastId = (0, generic_1.getQueryLastId)(req); // get the last id from the query object
66
+ const ruleSets = ruleSetManager.getRuleSets(lastId); // add the rule set to the rule set manager
67
+ return res.status(200).send({ successful: true, ruleSets: ruleSets });
68
+ }
69
+ catch (err) {
70
+ next(err);
71
+ }
72
+ });
73
+ /**
74
+ * This gets the rules set object by id
75
+ */
76
+ router.get('/:rulesetsid', async (req, res, next) => {
77
+ try {
78
+ const rulesSetsId = (0, generic_1.getParamRuleSetsId)(req); // get the rules id.
79
+ const ruleSets = ruleSetManager.getRuleSetById(rulesSetsId); // add the rule set to the rule set manager
80
+ const returnItem = { successful: true };
81
+ if (ruleSets) {
82
+ returnItem.ruleSet = ruleSets;
83
+ }
84
+ return res.status(200).send(returnItem);
85
+ }
86
+ catch (err) {
87
+ next(err);
88
+ }
89
+ });
90
+ /**
91
+ * This updates the rules set object by id
92
+ */
93
+ router.patch('/:rulesetsid', validate_request_body_1.validateRequestBody, // make sure this is a valid request body
94
+ (0, validate_incoming_request_data_1.validateIncomingRequestData)(generic_1.ISAFETransactionRuleSetUpdateSchema), async (req, res, next) => {
95
+ try {
96
+ const rulesId = (0, generic_1.getParamRuleSetsId)(req); // get the rules id.
97
+ const ruleSet = req.body.transaction.data.ruleSet; // get the rule set;
98
+ if (ruleSet.id !== rulesId) {
99
+ throw new Error('Rule set id does not match');
100
+ }
101
+ ruleSetManager.updateRuleSet(ruleSet); // add the rule set to the rule set manager
102
+ return res.status(200).send({ successful: true, rulesId });
103
+ }
104
+ catch (err) {
105
+ next(err);
106
+ }
107
+ });
108
+ /**
109
+ * This deletes the rules object by id
110
+ */
111
+ router.delete('/:rulesetsid', validate_request_body_1.validateRequestBody, // make sure this is a valid request body
112
+ (0, validate_incoming_request_data_1.validateIncomingRequestData)(generic_1.ISAFETransactionRuleSetDeleteSchema), async (req, res, next) => {
113
+ try {
114
+ const rulesId = (0, generic_1.getParamRuleSetsId)(req); // get the rules id.
115
+ const ruleSet = req.body.transaction.data.ruleSet; // get the rule set;
116
+ if (ruleSet.id !== rulesId) {
117
+ throw new Error('Rule set id does not match');
118
+ }
119
+ ruleSetManager.removeRuleSetById(ruleSet.id); // add the rule set to the rule set manager
120
+ return res.status(200).send({ successful: true, rulesId });
121
+ }
122
+ catch (err) {
123
+ next(err);
124
+ }
125
+ });
126
+ exports.ruleSets = router; // https://{hostname}/rules/v1/rule-sets
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v1.routes.d.ts","sourceRoot":"","sources":["../../../src/routes/rules/v1.routes.ts"],"names":[],"mappings":"AA6BA,eAAO,MAAM,EAAE,4CAAS,CAAC"}
@@ -28,7 +28,7 @@ exports.v1 = void 0;
28
28
  const express = __importStar(require("express"));
29
29
  //#endregion Package Imports
30
30
  // #region Middleware Protections
31
- const add_unique_tracking_1 = require("../../logging/add-unique-tracking");
31
+ const add_unique_tracking_1 = require("../../cors/logging/add-unique-tracking");
32
32
  // #endregion Middleware Protections
33
33
  //#region Incoming Shape Validations
34
34
  //#endregion Incoming Shape Validations
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rules.routes.d.ts","sourceRoot":"","sources":["../../src/routes/rules.routes.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,KAAK,4CAAS,CAAC"}
@@ -25,9 +25,9 @@ var __importStar = (this && this.__importStar) || function (mod) {
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.rules = void 0;
27
27
  const express = __importStar(require("express"));
28
- const get_set_audiences_1 = require("../authority/audience/get-set-audiences");
29
- const request_logging_1 = require("../logging/request-logging");
30
- const validate_jwt_rules_1 = require("../authority/jwt/validate-jwt-rules");
28
+ const get_set_audiences_1 = require("../cors/authority/audience/get-set-audiences");
29
+ const request_logging_1 = require("../cors/logging/request-logging");
30
+ const validate_jwt_rules_1 = require("../cors/authority/jwt/validate-jwt-rules");
31
31
  const v1_routes_1 = require("./rules/v1.routes");
32
32
  // eslint-disable-next-line new-cap
33
33
  const router = express.Router({ mergeParams: true });
@@ -0,0 +1 @@
1
+ {"version":3,"file":"share-data.routes.d.ts","sourceRoot":"","sources":["../../src/routes/share-data.routes.ts"],"names":[],"mappings":"AAmCA,eAAO,MAAM,SAAS,4CAAS,CAAC"}
@@ -25,7 +25,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.shareData = void 0;
27
27
  const express = __importStar(require("express"));
28
- const get_set_audiences_1 = require("../authority/audience/get-set-audiences");
28
+ const get_set_audiences_1 = require("../cors/authority/audience/get-set-audiences");
29
29
  // eslint-disable-next-line new-cap
30
30
  const router = express.Router({ mergeParams: true });
31
31
  router.use(get_set_audiences_1.setAudienceShareData); // set the audience to share data (this will throw an error if the audience is not set)
@@ -0,0 +1,2 @@
1
+ export declare const validateRules: import("express-serve-static-core").Router;
2
+ //# sourceMappingURL=validate-rules.routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-rules.routes.d.ts","sourceRoot":"","sources":["../../../../src/routes/validation/rules/validate-rules.routes.ts"],"names":[],"mappings":"AAuGA,eAAO,MAAM,aAAa,4CAAS,CAAC"}
@@ -24,13 +24,14 @@ var __importStar = (this && this.__importStar) || function (mod) {
24
24
  return result;
25
25
  };
26
26
  Object.defineProperty(exports, "__esModule", { value: true });
27
- exports.ruleSets = void 0;
27
+ exports.validateRules = void 0;
28
28
  const express = __importStar(require("express"));
29
29
  //#endregion Package Imports
30
30
  // #region Middleware Protections
31
- // #endregion Middleware Protections
31
+ const validate_request_body_1 = require("../../../cors/endpoints/helpers/validate-request-body");
32
+ const validate_incoming_request_data_1 = require("../../../cors/endpoints/helpers/validate-incoming-request-data");
33
+ // #endregion Middleware Protections
32
34
  //#region Incoming Shape Validations
33
- const validate_incoming_request_data_1 = require("../../../endpoints/helpers/validate-incoming-request-data");
34
35
  //#endregion Incoming Shape Validations
35
36
  //#region Functions and Models
36
37
  const generic_1 = require("@degenerate/generic");
@@ -39,11 +40,9 @@ const generic_1 = require("@degenerate/generic");
39
40
  //#endregion Route Imports
40
41
  // eslint-disable-next-line new-cap
41
42
  const router = express.Router({ mergeParams: true });
42
- /**
43
- * This creates a new rules set object.
44
- */
45
- router.post(// https://{hostname}/rules/v1/rule-sets
46
- '/', (0, validate_incoming_request_data_1.validateIncomingRequestData)(generic_1.ISAFETransactionRuleSetAddSchema), async (req, res, next) => {
43
+ // https://{hostname}/validation/v1/validate-rules/rule-set
44
+ router.post('/rule-set', validate_request_body_1.validateRequestBody, // make sure this is a valid request body
45
+ (0, validate_incoming_request_data_1.validateIncomingRequestData)(generic_1.IShareRuleSetSchema), async (req, res, next) => {
47
46
  try {
48
47
  return res.status(200).send({ successful: true });
49
48
  }
@@ -51,52 +50,44 @@ router.post(// https://{hostname}/rules/v1/rule-sets
51
50
  next(err);
52
51
  }
53
52
  });
54
- /**
55
- * This gets all the rules set objects.
56
- */
57
- router.get('/', async (req, res, next) => {
53
+ // https://{hostname}/validation/v1/validate-rules/rule-group
54
+ router.post('/rule-group', validate_request_body_1.validateRequestBody, // make sure this is a valid request body
55
+ (0, validate_incoming_request_data_1.validateIncomingRequestData)(generic_1.IShareRuleGroupSchema), async (req, res, next) => {
58
56
  try {
59
- const lastId = (0, generic_1.getQueryLastId)(req); // get the last id from the query object
60
57
  return res.status(200).send({ successful: true });
61
58
  }
62
59
  catch (err) {
63
60
  next(err);
64
61
  }
65
62
  });
66
- /**
67
- * This gets the rules set object by id
68
- */
69
- router.get('/:rulesetsid', async (req, res, next) => {
63
+ // https://{hostname}/validation/v1/validate-rules/rule-applied
64
+ router.post('/rule-applied', validate_request_body_1.validateRequestBody, // make sure this is a valid request body
65
+ (0, validate_incoming_request_data_1.validateIncomingRequestData)(generic_1.IShareRuleAppliedSchema), async (req, res, next) => {
70
66
  try {
71
- const rulesId = (0, generic_1.getParamRuleSetsId)(req); // get the rules id.
72
67
  return res.status(200).send({ successful: true });
73
68
  }
74
69
  catch (err) {
75
70
  next(err);
76
71
  }
77
72
  });
78
- /**
79
- * This updates the rules set object by id
80
- */
81
- router.patch('/:rulesetsid', async (req, res, next) => {
73
+ // https://{hostname}/validation/v1/validate-rules/rule
74
+ router.post('/rule', validate_request_body_1.validateRequestBody, // make sure this is a valid request body
75
+ (0, validate_incoming_request_data_1.validateIncomingRequestData)(generic_1.IShareRuleSchema), async (req, res, next) => {
82
76
  try {
83
- const rulesId = (0, generic_1.getParamRuleSetsId)(req); // get the rules id.
84
77
  return res.status(200).send({ successful: true });
85
78
  }
86
79
  catch (err) {
87
80
  next(err);
88
81
  }
89
82
  });
90
- /**
91
- * This deletes the rules object by id
92
- */
93
- router.delete('/:rulesetsid', async (req, res, next) => {
83
+ // https://{hostname}/validation/v1/validate-rules/condition
84
+ router.post('/condition', validate_request_body_1.validateRequestBody, // make sure this is a valid request body
85
+ (0, validate_incoming_request_data_1.validateIncomingRequestData)(generic_1.IConditionSchema), async (req, res, next) => {
94
86
  try {
95
- const rulesId = (0, generic_1.getParamRuleSetsId)(req); // get the rules id.
96
87
  return res.status(200).send({ successful: true });
97
88
  }
98
89
  catch (err) {
99
90
  next(err);
100
91
  }
101
92
  });
102
- exports.ruleSets = router; // https://{hostname}/rules/v1/rule-sets
93
+ exports.validateRules = router; // https://{hostname}/validation/v1/validate-rules
@@ -0,0 +1,2 @@
1
+ export declare const v1: import("express-serve-static-core").Router;
2
+ //# sourceMappingURL=v1.routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v1.routes.d.ts","sourceRoot":"","sources":["../../../src/routes/validation/v1.routes.ts"],"names":[],"mappings":"AAgCA,eAAO,MAAM,EAAE,4CAAS,CAAC"}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ //#region Package Imports
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || function (mod) {
20
+ if (mod && mod.__esModule) return mod;
21
+ var result = {};
22
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
23
+ __setModuleDefault(result, mod);
24
+ return result;
25
+ };
26
+ Object.defineProperty(exports, "__esModule", { value: true });
27
+ exports.v1 = void 0;
28
+ const express = __importStar(require("express"));
29
+ //#endregion Package Imports
30
+ // #region Middleware Protections
31
+ const add_unique_tracking_1 = require("../../cors/logging/add-unique-tracking");
32
+ const validate_rules_routes_1 = require("./rules/validate-rules.routes");
33
+ // #endregion Middleware Protections
34
+ //#region Incoming Shape Validations
35
+ //#endregion Incoming Shape Validations
36
+ //#region Functions and Models
37
+ //#endregion Functions and Models
38
+ //#region Route Imports
39
+ //#endregion Route Imports
40
+ // eslint-disable-next-line new-cap
41
+ const router = express.Router({ mergeParams: true });
42
+ router.use(add_unique_tracking_1.addUniqueTracking); // add the unique tracking id to the request
43
+ router.use('/validate-rules', validate_rules_routes_1.validateRules); // https://{hostname}/validation/v1/validate-rules
44
+ exports.v1 = router; // https://{hostname}/validation/v1/
@@ -0,0 +1,2 @@
1
+ export declare const validation: import("express-serve-static-core").Router;
2
+ //# sourceMappingURL=validation.routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.routes.d.ts","sourceRoot":"","sources":["../../src/routes/validation.routes.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,UAAU,4CAAS,CAAC"}
@@ -0,0 +1,17 @@
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.validation = void 0;
7
+ const express_1 = __importDefault(require("express"));
8
+ const request_logging_1 = require("../cors/logging/request-logging");
9
+ const v1_routes_1 = require("./validation/v1.routes");
10
+ // eslint-disable-next-line new-cap
11
+ const router = express_1.default.Router({ mergeParams: true });
12
+ router.use(request_logging_1.requestLogging); // log the request
13
+ router.use('/v1', v1_routes_1.v1); // use the v1 routes
14
+ router.get('/', async (req, res) => {
15
+ return res.status(200).send({ successful: true });
16
+ });
17
+ exports.validation = router;
@@ -0,0 +1,40 @@
1
+ import { IShareRuleSet } from '@degenerate/generic';
2
+ /**
3
+ * This class is used to host a rule set manager for the rule sets
4
+ */
5
+ export declare class RuleSetManager {
6
+ _ruleSets: IShareRuleSet[];
7
+ constructor(ruleSets?: IShareRuleSet[]);
8
+ /**
9
+ * this adds a rule set to the rule set manager
10
+ *
11
+ * @param ruleSet the rule set to add
12
+ */
13
+ addRuleSet(ruleSet: IShareRuleSet): void;
14
+ /**
15
+ * This gets a rule set by id
16
+ * @param id the id of the rule set
17
+ * @returns
18
+ */
19
+ getRuleSetById(id: string): IShareRuleSet | undefined;
20
+ /**
21
+ * This gets the rule sets by last id and ruleSetSize
22
+ *
23
+ * @param lastId the last id
24
+ * @param ruleSetSize the rule set size default is 25
25
+ * @returns
26
+ */
27
+ getRuleSets(lastId: string, ruleSetSize?: number): IShareRuleSet[];
28
+ /**
29
+ * This updates the rule set
30
+ * @param ruleSet the rule set to update
31
+ * @returns
32
+ */
33
+ updateRuleSet(ruleSet: IShareRuleSet): void;
34
+ /**
35
+ * This removes a rule set by id
36
+ * @param id the id of the rule set to remove
37
+ */
38
+ removeRuleSetById(id: string): void;
39
+ }
40
+ //# sourceMappingURL=ruleset-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ruleset-manager.d.ts","sourceRoot":"","sources":["../../src/server-objects/ruleset-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD;;GAEG;AACH,qBAAa,cAAc;IACvB,SAAS,EAAE,aAAa,EAAE,CAAC;gBACf,QAAQ,GAAE,aAAa,EAAO;IAI1C;;;;OAIG;IACH,UAAU,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IASxC;;;;OAIG;IACH,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAIrD;;;;;;OAMG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,GAAE,MAAW;IASpD;;;;OAIG;IACH,aAAa,CAAC,OAAO,EAAE,aAAa;IAapC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,EAAE,MAAM;CAO/B"}
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RuleSetManager = void 0;
4
+ /**
5
+ * This class is used to host a rule set manager for the rule sets
6
+ */
7
+ class RuleSetManager {
8
+ constructor(ruleSets = []) {
9
+ this._ruleSets = ruleSets; // set the rule sets
10
+ }
11
+ /**
12
+ * this adds a rule set to the rule set manager
13
+ *
14
+ * @param ruleSet the rule set to add
15
+ */
16
+ addRuleSet(ruleSet) {
17
+ // make sure the rule set does not already exist
18
+ const existingRuleSet = this.getRuleSetById(ruleSet.id);
19
+ if (existingRuleSet) {
20
+ throw new Error('Rule set already exists');
21
+ }
22
+ this._ruleSets.push(ruleSet);
23
+ }
24
+ /**
25
+ * This gets a rule set by id
26
+ * @param id the id of the rule set
27
+ * @returns
28
+ */
29
+ getRuleSetById(id) {
30
+ return this._ruleSets.find((ruleSet) => ruleSet.id === id);
31
+ }
32
+ /**
33
+ * This gets the rule sets by last id and ruleSetSize
34
+ *
35
+ * @param lastId the last id
36
+ * @param ruleSetSize the rule set size default is 25
37
+ * @returns
38
+ */
39
+ getRuleSets(lastId, ruleSetSize = 25) {
40
+ let nextIndex = 0;
41
+ if (lastId) {
42
+ const lastIndex = this._ruleSets.findIndex((ruleSet) => ruleSet.id === lastId);
43
+ nextIndex = lastIndex + 1;
44
+ }
45
+ return this._ruleSets.slice(nextIndex, nextIndex + ruleSetSize);
46
+ }
47
+ /**
48
+ * This updates the rule set
49
+ * @param ruleSet the rule set to update
50
+ * @returns
51
+ */
52
+ updateRuleSet(ruleSet) {
53
+ // find the rule set and update it
54
+ if (!this.getRuleSetById(ruleSet.id)) {
55
+ throw new Error('Rule set not found');
56
+ }
57
+ this._ruleSets = this._ruleSets.map((rs) => {
58
+ if (rs.id === ruleSet.id) {
59
+ return ruleSet;
60
+ }
61
+ return rs;
62
+ });
63
+ }
64
+ /**
65
+ * This removes a rule set by id
66
+ * @param id the id of the rule set to remove
67
+ */
68
+ removeRuleSetById(id) {
69
+ if (!this.getRuleSetById(id)) {
70
+ throw new Error('Rule set not found');
71
+ }
72
+ this._ruleSets = this._ruleSets.filter((ruleSet) => ruleSet.id !== id);
73
+ }
74
+ }
75
+ exports.RuleSetManager = RuleSetManager;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@degenerate/endpoints",
3
- "version": "0.0.13",
3
+ "version": "0.0.15",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "devDependencies": {
@@ -39,9 +39,9 @@
39
39
  "author": "Degenerate Inc.",
40
40
  "license": "ISC",
41
41
  "dependencies": {
42
- "@degenerate/generic": "^0.1.12",
42
+ "@degenerate/generic": "^0.1.14",
43
43
  "express": "^4.21.1",
44
44
  "zod": "^3.23.8"
45
45
  },
46
- "gitHead": "4e03fc84a8e12c1afb93df57e8da0bb02f932792"
46
+ "gitHead": "b8f9a0c671efadbfe465b4672b60480bdada5323"
47
47
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"v1.routes.d.ts","sourceRoot":"","sources":["../../../../src/cors/routes/authorities/v1.routes.ts"],"names":[],"mappings":"AAkGA,eAAO,MAAM,EAAE,4CAAS,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"authorities.routes.d.ts","sourceRoot":"","sources":["../../../src/cors/routes/authorities.routes.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,WAAW,4CAAS,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"events.routes.d.ts","sourceRoot":"","sources":["../../../src/cors/routes/events.routes.ts"],"names":[],"mappings":"AAoCA,eAAO,MAAM,MAAM,4CAAS,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"functions.routes.d.ts","sourceRoot":"","sources":["../../../src/cors/routes/functions.routes.ts"],"names":[],"mappings":"AAmCA,eAAO,MAAM,SAAS,4CAAS,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"rule-set.routes.d.ts","sourceRoot":"","sources":["../../../../../src/cors/routes/rules/v1/rule-set.routes.ts"],"names":[],"mappings":"AAkGA,eAAO,MAAM,QAAQ,4CAAS,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"v1.routes.d.ts","sourceRoot":"","sources":["../../../../src/cors/routes/rules/v1.routes.ts"],"names":[],"mappings":"AA6BA,eAAO,MAAM,EAAE,4CAAS,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"rules.routes.d.ts","sourceRoot":"","sources":["../../../src/cors/routes/rules.routes.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,KAAK,4CAAS,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"share-data.routes.d.ts","sourceRoot":"","sources":["../../../src/cors/routes/share-data.routes.ts"],"names":[],"mappings":"AAmCA,eAAO,MAAM,SAAS,4CAAS,CAAC"}
File without changes
File without changes