@vereign/core 1.0.0 → 1.1.0

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/README.md CHANGED
@@ -6,4 +6,5 @@ This project uses .nvmrc
6
6
 
7
7
  1. To switch to the proper nodejs version - `nvm use` or `nvm install`
8
8
  2. Build the library - `pnpm build`
9
- 3. Run test - `pnpm test`
9
+ 3. Run test - `pnpm test`
10
+ 4. To dun dev mode - `pnpm dev`
package/dist/index.js CHANGED
@@ -26,6 +26,26 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
26
  mod
27
27
  ));
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var __async = (__this, __arguments, generator) => {
30
+ return new Promise((resolve, reject) => {
31
+ var fulfilled = (value) => {
32
+ try {
33
+ step(generator.next(value));
34
+ } catch (e) {
35
+ reject(e);
36
+ }
37
+ };
38
+ var rejected = (value) => {
39
+ try {
40
+ step(generator.throw(value));
41
+ } catch (e) {
42
+ reject(e);
43
+ }
44
+ };
45
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
46
+ step((generator = generator.apply(__this, __arguments)).next());
47
+ });
48
+ };
29
49
 
30
50
  // src/index.ts
31
51
  var index_exports = {};
@@ -43,7 +63,7 @@ var HealthController = class {
43
63
  constructor(logger, appVersion) {
44
64
  this.check = (_, res) => {
45
65
  this.logger.info("Health check endpoint called");
46
- res.status(200).json({ status: "ok", appVersion: this.appVersion });
66
+ res.json({ status: "ok", appVersion: this.appVersion });
47
67
  };
48
68
  this.logger = logger;
49
69
  this.appVersion = appVersion;
@@ -64,15 +84,28 @@ var HealthRouter = class {
64
84
  var import_express2 = __toESM(require("express"));
65
85
 
66
86
  // src/chmed16/controller.ts
87
+ var import_chmed_parser = require("@vereign/chmed-parser");
88
+ var import_pdf_generator = require("@vereign/pdf-generator");
67
89
  var CHMED16AController = class {
68
90
  constructor(logger) {
69
- this.process = (req, res) => {
70
- const { chmed } = req.body;
71
- const { lang } = req.query;
72
- this.logger.info(`Processing CHMED16A string: ${chmed}, language: ${lang}`);
73
- res.status(200).json({ receivedString: chmed, language: lang, status: "processed" });
74
- };
91
+ this.process = (req, res) => __async(this, null, function* () {
92
+ const { chmed, lang } = req.body;
93
+ const start = Date.now();
94
+ this.logger.info(`Processing started`);
95
+ const parseStart = Date.now();
96
+ const json = yield this.parser.parse(chmed, lang, this.sds);
97
+ this.logger.info(`Parsing took ${Date.now() - parseStart} ms`);
98
+ res.setHeader("Content-Type", "application/pdf");
99
+ res.setHeader("Content-Disposition", 'inline; filename="chmed16a.pdf"');
100
+ const pdfStart = Date.now();
101
+ const pdf = new import_pdf_generator.PDFLib(this.logger);
102
+ pdf.generate(json, res);
103
+ this.logger.info(`PDF generation took ${Date.now() - pdfStart} ms`);
104
+ this.logger.info(`Total request time: ${Date.now() - start} ms`);
105
+ });
75
106
  this.logger = logger;
107
+ this.sds = new import_chmed_parser.SDS("https://sds-test.hin.ch", logger);
108
+ this.parser = new import_chmed_parser.CHMEDParser(logger);
76
109
  }
77
110
  };
78
111
 
@@ -131,10 +164,13 @@ var App = class {
131
164
  this.app.use("/v1", CHMED16ARouter.getRouter(this.logger));
132
165
  }
133
166
  initializeErrorHandling() {
134
- this.app.use((err, _, res) => {
135
- this.logger.error(err.stack);
136
- res.status(500).json({ error: "Internal Server Error" });
137
- });
167
+ this.app.use(
168
+ //eslint-disable-next-line
169
+ (err, req, res, next) => {
170
+ this.logger.error(err.stack);
171
+ res.status(500).json({ error: "Internal Server Error" });
172
+ }
173
+ );
138
174
  }
139
175
  listen(port) {
140
176
  this.app.listen(port, () => {
package/dist/index.mjs CHANGED
@@ -1,3 +1,24 @@
1
+ var __async = (__this, __arguments, generator) => {
2
+ return new Promise((resolve, reject) => {
3
+ var fulfilled = (value) => {
4
+ try {
5
+ step(generator.next(value));
6
+ } catch (e) {
7
+ reject(e);
8
+ }
9
+ };
10
+ var rejected = (value) => {
11
+ try {
12
+ step(generator.throw(value));
13
+ } catch (e) {
14
+ reject(e);
15
+ }
16
+ };
17
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
18
+ step((generator = generator.apply(__this, __arguments)).next());
19
+ });
20
+ };
21
+
1
22
  // src/index.ts
2
23
  import express3 from "express";
3
24
 
@@ -9,7 +30,7 @@ var HealthController = class {
9
30
  constructor(logger, appVersion) {
10
31
  this.check = (_, res) => {
11
32
  this.logger.info("Health check endpoint called");
12
- res.status(200).json({ status: "ok", appVersion: this.appVersion });
33
+ res.json({ status: "ok", appVersion: this.appVersion });
13
34
  };
14
35
  this.logger = logger;
15
36
  this.appVersion = appVersion;
@@ -30,15 +51,28 @@ var HealthRouter = class {
30
51
  import express2 from "express";
31
52
 
32
53
  // src/chmed16/controller.ts
54
+ import { CHMEDParser, SDS } from "@vereign/chmed-parser";
55
+ import { PDFLib } from "@vereign/pdf-generator";
33
56
  var CHMED16AController = class {
34
57
  constructor(logger) {
35
- this.process = (req, res) => {
36
- const { chmed } = req.body;
37
- const { lang } = req.query;
38
- this.logger.info(`Processing CHMED16A string: ${chmed}, language: ${lang}`);
39
- res.status(200).json({ receivedString: chmed, language: lang, status: "processed" });
40
- };
58
+ this.process = (req, res) => __async(this, null, function* () {
59
+ const { chmed, lang } = req.body;
60
+ const start = Date.now();
61
+ this.logger.info(`Processing started`);
62
+ const parseStart = Date.now();
63
+ const json = yield this.parser.parse(chmed, lang, this.sds);
64
+ this.logger.info(`Parsing took ${Date.now() - parseStart} ms`);
65
+ res.setHeader("Content-Type", "application/pdf");
66
+ res.setHeader("Content-Disposition", 'inline; filename="chmed16a.pdf"');
67
+ const pdfStart = Date.now();
68
+ const pdf = new PDFLib(this.logger);
69
+ pdf.generate(json, res);
70
+ this.logger.info(`PDF generation took ${Date.now() - pdfStart} ms`);
71
+ this.logger.info(`Total request time: ${Date.now() - start} ms`);
72
+ });
41
73
  this.logger = logger;
74
+ this.sds = new SDS("https://sds-test.hin.ch", logger);
75
+ this.parser = new CHMEDParser(logger);
42
76
  }
43
77
  };
44
78
 
@@ -97,10 +131,13 @@ var App = class {
97
131
  this.app.use("/v1", CHMED16ARouter.getRouter(this.logger));
98
132
  }
99
133
  initializeErrorHandling() {
100
- this.app.use((err, _, res) => {
101
- this.logger.error(err.stack);
102
- res.status(500).json({ error: "Internal Server Error" });
103
- });
134
+ this.app.use(
135
+ //eslint-disable-next-line
136
+ (err, req, res, next) => {
137
+ this.logger.error(err.stack);
138
+ res.status(500).json({ error: "Internal Server Error" });
139
+ }
140
+ );
104
141
  }
105
142
  listen(port) {
106
143
  this.app.listen(port, () => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vereign/core",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "description": "core api library for e prescription project",
5
5
  "repository": {
6
6
  "type": "git",
@@ -25,7 +25,8 @@
25
25
  "lint": "pnpm eslint",
26
26
  "test": "vitest run --coverage",
27
27
  "test:watch": "vitest --coverage",
28
- "semantic-release": "semantic-release"
28
+ "semantic-release": "semantic-release",
29
+ "dev": "ts-node-dev ./src/dev-server.ts"
29
30
  },
30
31
  "devDependencies": {
31
32
  "@commitlint/cli": "^19.8.1",
@@ -50,6 +51,7 @@
50
51
  "prettier": "^3.6.2",
51
52
  "semantic-release": "^24.2.7",
52
53
  "supertest": "^7.1.4",
54
+ "ts-node-dev": "^2.0.0",
53
55
  "tsup": "^8.5.0",
54
56
  "typescript": "^5.8.3",
55
57
  "typescript-eslint": "^8.37.0",
@@ -57,6 +59,8 @@
57
59
  "zod-to-openapi": "^0.2.1"
58
60
  },
59
61
  "dependencies": {
62
+ "@vereign/chmed-parser": "^1.4.1",
63
+ "@vereign/pdf-generator": "^1.1.7",
60
64
  "express": "^5.1.0",
61
65
  "pdfkit": "^0.17.1",
62
66
  "winston": "^3.17.0",