@myxtra/microservice 0.1.0 → 0.1.2

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/index.d.mts CHANGED
@@ -1,5 +1,12 @@
1
- import { FastifyPluginAsync, FastifyPluginCallback, FastifyInstance } from 'fastify';
1
+ import { FastifyPluginAsync, FastifyPluginCallback, FastifyRequest, FastifyInstance } from 'fastify';
2
2
  import { z } from 'zod';
3
+ import { BaseApi, Api } from '@myxtra/api';
4
+
5
+ declare const MOCKED_JWT_NAME = "toolkit@systemtest.dcs";
6
+ declare const MOCKED_JWT_HEADER: string;
7
+ declare const MOCKED_JWT_PAYLOAD: string;
8
+ declare const MOCKED_JWT_SIGNATURE: string;
9
+ declare const MOCKED_BEARER_TOKEN: string;
3
10
 
4
11
  declare const _default$1: FastifyPluginAsync<never>;
5
12
 
@@ -39,7 +46,21 @@ declare const validationError: z.ZodObject<{
39
46
  }>;
40
47
  declare const _default: FastifyPluginCallback<never>;
41
48
 
49
+ declare const createApi: <T extends BaseApi>(Api: Api<T>, request: FastifyRequest) => T;
50
+
51
+ type Language = 'nl' | 'fr';
52
+ declare const getLanguage: (acceptLanguage?: string) => Language;
53
+
42
54
  declare const DEFAULT_SPEC_FILE_URL = "../.azure/apim/swagger.json";
43
55
  declare const generateSwagger: (app: FastifyInstance, specFile: URL) => void;
44
56
 
45
- export { DEFAULT_SPEC_FILE_URL, generateSwagger, _default$1 as swagger, validationError, _default as zod };
57
+ declare const getTechnicalContext: (request: FastifyRequest) => {
58
+ webSignature: {
59
+ userAgent: string;
60
+ originUrl: string;
61
+ remoteIPAddress: string;
62
+ signatureDate: string;
63
+ };
64
+ };
65
+
66
+ export { DEFAULT_SPEC_FILE_URL, MOCKED_BEARER_TOKEN, MOCKED_JWT_HEADER, MOCKED_JWT_NAME, MOCKED_JWT_PAYLOAD, MOCKED_JWT_SIGNATURE, createApi, generateSwagger, getLanguage, getTechnicalContext, _default$1 as swagger, validationError, _default as zod };
package/dist/index.mjs CHANGED
@@ -5321,6 +5321,14 @@ var require_dist = __commonJS({
5321
5321
  }
5322
5322
  });
5323
5323
 
5324
+ // src/mocks/jwt.ts
5325
+ import { createHmac } from "crypto";
5326
+ var MOCKED_JWT_NAME = "toolkit@systemtest.dcs";
5327
+ var MOCKED_JWT_HEADER = btoa(JSON.stringify({ alg: "HS256" }));
5328
+ var MOCKED_JWT_PAYLOAD = btoa(JSON.stringify({ name: MOCKED_JWT_NAME }));
5329
+ var MOCKED_JWT_SIGNATURE = createHmac("sha256", "").update(MOCKED_JWT_HEADER + "." + MOCKED_JWT_PAYLOAD).digest("base64").replace("=", "");
5330
+ var MOCKED_BEARER_TOKEN = `Bearer ${MOCKED_JWT_HEADER}.${MOCKED_JWT_PAYLOAD}.${MOCKED_JWT_SIGNATURE}`;
5331
+
5324
5332
  // src/plugins/swagger.ts
5325
5333
  var import_fastify_type_provider_zod = __toESM(require_dist());
5326
5334
  import swagger from "@fastify/swagger";
@@ -9097,7 +9105,7 @@ var zod = (app, options, done) => {
9097
9105
  app.setValidatorCompiler(import_fastify_type_provider_zod2.validatorCompiler);
9098
9106
  app.setSerializerCompiler(import_fastify_type_provider_zod2.serializerCompiler);
9099
9107
  app.setErrorHandler((error, request, reply) => {
9100
- if (error instanceof ZodError) {
9108
+ if (error.name === "ZodError") {
9101
9109
  const problemJson = error.flatten();
9102
9110
  return reply.status(400).send({
9103
9111
  url: request.url,
@@ -9114,6 +9122,26 @@ var zod = (app, options, done) => {
9114
9122
  };
9115
9123
  var zod_default = fp2(zod);
9116
9124
 
9125
+ // src/utils/api.ts
9126
+ import "@myxtra/api";
9127
+ import config from "config";
9128
+ import "fastify";
9129
+
9130
+ // src/utils/language.ts
9131
+ var getLanguage = (acceptLanguage) => {
9132
+ if (acceptLanguage !== "nl" && acceptLanguage !== "fr") {
9133
+ return "nl";
9134
+ }
9135
+ return acceptLanguage;
9136
+ };
9137
+
9138
+ // src/utils/api.ts
9139
+ var createApi = (Api, request) => {
9140
+ const acceptLanguage = getLanguage(request.headers["accept-language"]);
9141
+ const authorization = request.headers.authorization ?? "";
9142
+ return new Api({ acceptLanguage, authorization, config });
9143
+ };
9144
+
9117
9145
  // src/utils/swagger.ts
9118
9146
  import { writeFile } from "fs";
9119
9147
  import "fastify";
@@ -9131,9 +9159,30 @@ var generateSwagger = (app, specFile) => {
9131
9159
  return app.log.info(`Saved api spec to ${specFile.href}`);
9132
9160
  });
9133
9161
  };
9162
+
9163
+ // src/utils/technicalContext.ts
9164
+ import "@myxtra/api";
9165
+ import "fastify";
9166
+ var getTechnicalContext = (request) => {
9167
+ const userAgent = request.headers["user-agent"] ?? "";
9168
+ const originUrl = request.url;
9169
+ const remoteIPAddress = request.ip;
9170
+ const signatureDate = (/* @__PURE__ */ new Date()).toISOString();
9171
+ return {
9172
+ webSignature: { userAgent, originUrl, remoteIPAddress, signatureDate }
9173
+ };
9174
+ };
9134
9175
  export {
9135
9176
  DEFAULT_SPEC_FILE_URL,
9177
+ MOCKED_BEARER_TOKEN,
9178
+ MOCKED_JWT_HEADER,
9179
+ MOCKED_JWT_NAME,
9180
+ MOCKED_JWT_PAYLOAD,
9181
+ MOCKED_JWT_SIGNATURE,
9182
+ createApi,
9136
9183
  generateSwagger,
9184
+ getLanguage,
9185
+ getTechnicalContext,
9137
9186
  swagger_default as swagger,
9138
9187
  validationError,
9139
9188
  zod_default as zod
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@myxtra/microservice",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "main": "./dist/index.mjs",
5
5
  "license": "Apache-2.0",
6
6
  "publishConfig": {
@@ -20,7 +20,7 @@
20
20
  "typecheck": "tsc --noEmit"
21
21
  },
22
22
  "dependencies": {
23
- "@myxtra/api": "0.1.0"
23
+ "@myxtra/api": "0.1.2"
24
24
  },
25
25
  "devDependencies": {
26
26
  "@myxtra/eslint-config": "1.12.0",
@@ -33,6 +33,7 @@
33
33
  "peerDependencies": {
34
34
  "@fastify/swagger": ">=8.0.0",
35
35
  "@fastify/swagger-ui": ">=1.0.0",
36
+ "config": ">=3.0.0",
36
37
  "fastify": ">=4.0.0",
37
38
  "fastify-plugin": ">=4.0.0"
38
39
  }