@runnerpro/backend 1.19.2 → 1.19.5

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
@@ -63,20 +63,3 @@ Wait X miliseconds to execute next line
63
63
  3. Change the version number of the package ([using this convenction](https://docs.npmjs.com/about-semantic-versioning))
64
64
  4. Run `npm login`
65
65
  5. Run `npm run publish`
66
-
67
- ### Testing
68
-
69
- 1. Install developer dependencies using the following command in your terminal `npm i -D mocha @types/mocha chai @types/chai ts-node`
70
- 1. Create a new file `.mocharc.json` in the root directory with the following contents:
71
- ```json
72
- {
73
- "extension": ["ts"],
74
- "spec": "./**/*.spec.ts",
75
- "require": "ts-node/register"
76
- }
77
- ```
78
- 1. Create a `tests` folder
79
- 1. Create an `index.spec.ts` file in the `tests` folder
80
- 1. Write unit tests in the `index.spec.ts` file to test the code in `index.ts`
81
- 1. Add a `"test"` property in the `package.json` file and give it a value of `"mocha"`
82
- 1. Run `npm test` in your terminal from the root folder of the project
@@ -66,23 +66,23 @@ exports.conversationRoute = conversationRoute;
66
66
  const getConversation = (req, res, { isClient }) => __awaiter(void 0, void 0, void 0, function* () {
67
67
  const idCliente = isClient ? req.session.userid : req.query.id;
68
68
  const [header] = yield (0, index_1.query)('SELECT [NAME], [PREFERRED LANGUAGE] FROM [CLIENTE] WHERE [ID] = ?', [idCliente]);
69
- let messages = yield (0, index_1.query)(`SELECT "CHAT MESSAGE".*,
70
- "WORKOUT"."DATE" AS "WORKOUT DATE", "WORKOUT"."TYPE" AS "WORKOUT TYPE", "WORKOUT"."TITLE" AS "WORKOUT TITLE", "WORKOUT"."TITLE PREFERRED LANGUAGE" AS "WORKOUT TITLE",
71
- "WORKOUT"."DURATION" AS "WORKOUT DURATION", "WORKOUT"."DISTANCE" AS "WORKOUT DISTANCE", "WORKOUT"."RESUMEN" AS "WORKOUT RESUMEN",
72
- "WORKOUT"."PHOTO URL SHARE" AS "WORKOUT PHOTO URL SHARE", "WORKOUT"."PHOTO URL" AS "WORKOUT PHOTO URL", "FEELINGS", "FEELINGS DESCRIPTION", "FEELINGS PACE", "FEELINGS PACE VALUE",
73
- "ENTRENADOR"."NAME" AS "ENTRENADOR NAME", "ENTRENADOR"."PHOTO" AS "ENTRENADOR PHOTO",
74
- (SELECT "NAME" FROM "ENTRENADOR" WHERE "ID" = "CHAT MESSAGE"."ID SENDER") AS "ENTRENADOR REAL NAME"
75
- FROM "CHAT MESSAGE"
76
- LEFT JOIN "WORKOUT" ON "WORKOUT"."ID" = "CHAT MESSAGE"."ID WORKOUT"
77
- LEFT JOIN "CLIENTE" ON "CLIENTE"."ID" = "CHAT MESSAGE"."ID CLIENTE"
78
- LEFT JOIN "ENTRENADOR" ON "ENTRENADOR"."ID" = COALESCE("CHAT MESSAGE"."ID SENDER VIEW", "CLIENTE"."ID ENTRENADOR PRINCIPAL")
79
- AND "CHAT MESSAGE"."ID CLIENTE" != "CHAT MESSAGE"."ID SENDER"
80
- WHERE "CHAT MESSAGE"."ID CLIENTE" = ? AND (${isClient} = FALSE OR "CHAT MESSAGE"."SHOW CLIENT" = TRUE)
81
- ORDER BY "CHAT MESSAGE"."DATE" DESC
69
+ let messages = yield (0, index_1.query)(`SELECT "CHAT MESSAGE".*,
70
+ "WORKOUT"."DATE" AS "WORKOUT DATE", "WORKOUT"."TYPE" AS "WORKOUT TYPE", "WORKOUT"."TITLE" AS "WORKOUT TITLE", "WORKOUT"."TITLE PREFERRED LANGUAGE" AS "WORKOUT TITLE",
71
+ "WORKOUT"."DURATION" AS "WORKOUT DURATION", "WORKOUT"."DISTANCE" AS "WORKOUT DISTANCE", "WORKOUT"."RESUMEN" AS "WORKOUT RESUMEN",
72
+ "WORKOUT"."PHOTO URL SHARE" AS "WORKOUT PHOTO URL SHARE", "WORKOUT"."PHOTO URL" AS "WORKOUT PHOTO URL", "FEELINGS", "FEELINGS DESCRIPTION", "FEELINGS PACE", "FEELINGS PACE VALUE",
73
+ "ENTRENADOR"."NAME" AS "ENTRENADOR NAME", "ENTRENADOR"."PHOTO" AS "ENTRENADOR PHOTO",
74
+ (SELECT "NAME" FROM "ENTRENADOR" WHERE "ID" = "CHAT MESSAGE"."ID SENDER") AS "ENTRENADOR REAL NAME"
75
+ FROM "CHAT MESSAGE"
76
+ LEFT JOIN "WORKOUT" ON "WORKOUT"."ID" = "CHAT MESSAGE"."ID WORKOUT"
77
+ LEFT JOIN "CLIENTE" ON "CLIENTE"."ID" = "CHAT MESSAGE"."ID CLIENTE"
78
+ LEFT JOIN "ENTRENADOR" ON "ENTRENADOR"."ID" = COALESCE("CHAT MESSAGE"."ID SENDER VIEW", "CLIENTE"."ID ENTRENADOR PRINCIPAL")
79
+ AND "CHAT MESSAGE"."ID CLIENTE" != "CHAT MESSAGE"."ID SENDER"
80
+ WHERE "CHAT MESSAGE"."ID CLIENTE" = ? AND (${isClient} = FALSE OR "CHAT MESSAGE"."SHOW CLIENT" = TRUE)
81
+ ORDER BY "CHAT MESSAGE"."DATE" DESC
82
82
  LIMIT 100`, [idCliente]);
83
- const reacciones = messages.length > 0 ? yield (0, index_1.query)('SELECT [ID], [EMOJI], [ID CHAT], [ID SENDER] FROM [CHAT MESSAGE REACCION] WHERE [ID CHAT] IN (?)', [
84
- messages.map((m) => m.id),
85
- ]) : [];
83
+ const reacciones = messages.length > 0
84
+ ? yield (0, index_1.query)('SELECT [ID], [EMOJI], [ID CHAT], [ID SENDER] FROM [CHAT MESSAGE REACCION] WHERE [ID CHAT] IN (?)', [messages.map((m) => m.id)])
85
+ : [];
86
86
  messages = messages.reverse();
87
87
  // Si el cliente no habla español, se muestran los mensajes en el idioma del cliente. El entrenador siempre ve los mensajes en español que están en la columna [TEXT]
88
88
  if (header.preferredLanguage !== common_1.LANGUAGES.ES && isClient) {
@@ -577,9 +577,34 @@ const markReadMessage = ({ isClient, idCliente }) => __awaiter(void 0, void 0, v
577
577
  if (!isClient)
578
578
  yield (0, saveResponseTime_1.saveResponseTime)(idCliente);
579
579
  });
580
+ const EMOJI_REGEX = /\p{Extended_Pictographic}/gu;
580
581
  /**
581
- * Corrige la ortografía del texto y adapta español latinoamericano a español de España
582
- * NO modifica el tono, significado ni estructura de las frases
582
+ * Elimina de forma determinista los emojis que aparecen en `corregido` pero no estaban en `original`.
583
+ * Respeta la cantidad exacta de cada emoji del texto original.
584
+ *
585
+ * @param original - Texto antes de la corrección
586
+ * @param corregido - Texto después de la corrección (puede contener emojis añadidos por el modelo)
587
+ * @returns Texto corregido sin emojis nuevos
588
+ */
589
+ const eliminarEmojisNuevos = (original, corregido) => {
590
+ const emojisOriginales = original.match(EMOJI_REGEX) || [];
591
+ const inventario = new Map();
592
+ for (const emoji of emojisOriginales) {
593
+ inventario.set(emoji, (inventario.get(emoji) || 0) + 1);
594
+ }
595
+ return corregido.replace(EMOJI_REGEX, (emoji) => {
596
+ const count = inventario.get(emoji) || 0;
597
+ if (count > 0) {
598
+ inventario.set(emoji, count - 1);
599
+ return emoji;
600
+ }
601
+ return '';
602
+ });
603
+ };
604
+ /**
605
+ * Corrige la ortografía del texto y adapta español latinoamericano a español de España.
606
+ * NO modifica el tono, significado ni estructura de las frases.
607
+ * Garantiza que no se añadan emojis nuevos respecto al texto original.
583
608
  *
584
609
  * @param text - Texto a corregir
585
610
  * @returns Promise<string> - Texto con ortografía corregida
@@ -594,18 +619,19 @@ const corregirOrtografia = (text) => __awaiter(void 0, void 0, void 0, function*
594
619
  try {
595
620
  let { text: textCorregido } = yield (0, prompt_1.generateText)({
596
621
  model: (0, prompt_1.createGoogleModel)('LITE'),
597
- system: `Actúa como un corrector de estilo nativo de España (castellano).
598
- Instrucciones estrictas:
599
- - Vocabulario: Sustituye términos latinos por sus equivalentes en España (ej: celular -> móvil, computadora -> ordenador, video -> vídeo, costo -> coste, chequear -> comprobar, entreno -> entrenamiento).
600
- - Ortografía: Corrige cualquier falta ortográfica o de acentuación.
601
- - URLs: Copia los links exactos. NO los abras, NO los leas y NO añadas resúmenes.
602
- - Formato: Entrega texto plano y limpio. NO uses asteriscos (*), negritas, ni símbolos de Markdown. Solo texto y emojis.
603
- - Tono: Mantén la energía y la intención del entrenador, pero asegúrate de que suene 100% nativo de España.
604
- - Emojis: Mantén los emojis tal cual, no añadas ni quites ninguno.
605
-
606
- Devuelve SOLO el texto corregido final.`,
622
+ system: `Eres un corrector ortográfico. Tu única tarea es corregir errores de ortografía y acentuación, y sustituir vocabulario latinoamericano por su equivalente en España.
623
+
624
+ Reglas:
625
+ 1. Cambia lo MÍNIMO posible. Si el texto ya es correcto, devuélvelo IDÉNTICO.
626
+ 2. Solo corrige: faltas de ortografía, tildes incorrectas/ausentes, y vocabulario latam (celular->móvil, computadora->ordenador, video->vídeo, costo->coste, chequear->comprobar, entreno->entrenamiento).
627
+ 3. NO reformules frases. NO cambies el orden de las palabras. NO añadas ni quites palabras.
628
+ 4. NO añadas banderas, códigos de país, etiquetas como "ES", ni ningún contenido que no estuviera en el original.
629
+ 5. URLs: cópialas exactas, sin modificar.
630
+ 6. Formato: texto plano. Sin Markdown, sin asteriscos, sin negritas.
631
+ 7. Devuelve SOLO el texto corregido, nada más.`,
607
632
  prompt: text,
608
633
  });
634
+ textCorregido = eliminarEmojisNuevos(text, textCorregido);
609
635
  textCorregido = textCorregido.replace(/[¡¿]/g, '');
610
636
  textCorregido = textCorregido.trim().replace(/\.$/, '');
611
637
  return textCorregido;
@@ -20,13 +20,12 @@ const pool = new Pool({
20
20
  database: process.env.DB_NAME,
21
21
  password: process.env.DB_PASSWORD,
22
22
  host: process.env.DB_HOST,
23
- port: 5432,
24
- max: 10,
23
+ port: Number(process.env.DB_PORT) || 5432,
24
+ max: 20,
25
25
  idleTimeoutMillis: 30000,
26
26
  connectionTimeoutMillis: 30000, // Aumentado a 30 segundos
27
27
  keepAlive: true,
28
28
  keepAliveInitialDelayMillis: 0,
29
- statement_timeout: 30000, // Timeout para queries
30
29
  query_timeout: 30000,
31
30
  });
32
31
  exports.pool = pool;
package/lib/cjs/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.reprocessRecentMedia = exports.processMediaFile = exports.describeImage = exports.transcribeAudio = exports.updateSenderView = exports.createGoogleModel = exports.generateText = exports.saveResponseTime = exports.getPlanificacionPrueba7dias = exports.sendWorkoutToWatch = exports.getDefaultWorkoutImage = exports.generateShareMap = exports.reduceSizeImage = exports.getLetter = exports.getNumberByLetter = exports.appendSheet = exports.writeSheet = exports.findCellByValue = exports.readSheet = exports.NOTION_DATABASES_ID = exports.notionEditPage = exports.notionAddPage = exports.notionGetDatabase = exports.notionGetUsers = exports.getCountNotificaciones = exports.chatExposed = exports.chatApi = exports.chat = exports.getExerciseTranslatedDescription = exports.useTranslation = exports.LANGUAGES = exports.translate = exports.CHANNEL_SLACK = exports.notifySlack = exports.fetchIA = exports.err = exports.sendMail = exports.pool = exports.toPgArray = exports.batchQuery = exports.longRunningQuery = exports.queryWithClient = exports.query = exports.sleep = exports.sendNotification = void 0;
3
+ exports.reprocessRecentMedia = exports.processMediaFile = exports.describeImage = exports.transcribeAudio = exports.updateSenderView = exports.saveResponseTime = exports.getPlanificacionPrueba7dias = exports.sendWorkoutToWatch = exports.getDefaultWorkoutImage = exports.generateShareMap = exports.reduceSizeImage = exports.getLetter = exports.getNumberByLetter = exports.appendSheet = exports.writeSheet = exports.findCellByValue = exports.readSheet = exports.NOTION_DATABASES_ID = exports.notionEditPage = exports.notionAddPage = exports.notionGetDatabase = exports.notionGetUsers = exports.getCountNotificaciones = exports.chatExposed = exports.chatApi = exports.chat = exports.getExerciseTranslatedDescription = exports.useTranslation = exports.LANGUAGES = exports.translate = exports.CHANNEL_SLACK = exports.notifySlack = exports.fetchIA = exports.err = exports.sendMail = exports.pool = exports.toPgArray = exports.batchQuery = exports.longRunningQuery = exports.queryWithClient = exports.query = exports.sleep = exports.sendNotification = void 0;
4
4
  const sendNotification_1 = require("./sendNotification");
5
5
  Object.defineProperty(exports, "sendNotification", { enumerable: true, get: function () { return sendNotification_1.sendNotification; } });
6
6
  const sleep_1 = require("./sleep");
@@ -56,9 +56,6 @@ const planificacionPrueba7dias_1 = require("./workout/planificacionPrueba7dias")
56
56
  Object.defineProperty(exports, "getPlanificacionPrueba7dias", { enumerable: true, get: function () { return planificacionPrueba7dias_1.getPlanificacionPrueba7dias; } });
57
57
  const saveResponseTime_1 = require("./chat/saveResponseTime");
58
58
  Object.defineProperty(exports, "saveResponseTime", { enumerable: true, get: function () { return saveResponseTime_1.saveResponseTime; } });
59
- const prompt_1 = require("./prompt");
60
- Object.defineProperty(exports, "generateText", { enumerable: true, get: function () { return prompt_1.generateText; } });
61
- Object.defineProperty(exports, "createGoogleModel", { enumerable: true, get: function () { return prompt_1.createGoogleModel; } });
62
59
  const conversation_1 = require("./chat/api/conversation");
63
60
  Object.defineProperty(exports, "updateSenderView", { enumerable: true, get: function () { return conversation_1.updateSenderView; } });
64
61
  const mediaProcessing_1 = require("./mediaProcessing");
@@ -1 +1 @@
1
- {"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../../../../src/chat/api/conversation.ts"],"names":[],"mappings":"AAmBA,QAAA,MAAM,iBAAiB,0BAA2B,GAAG,SA0BpD,CAAC;AA0EF;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,QAAA,MAAM,uBAAuB,qCAAkC,GAAG,iBAwCjE,CAAC;AAmGF;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,QAAA,MAAM,WAAW,0EAAuE,GAAG,kBAkE1F,CAAC;AAEF,QAAA,MAAM,gBAAgB;;;;mBAqBrB,CAAC;AAsRF,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,WAAW,EAAE,uBAAuB,EAAE,CAAC"}
1
+ {"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../../../../src/chat/api/conversation.ts"],"names":[],"mappings":"AAmBA,QAAA,MAAM,iBAAiB,0BAA2B,GAAG,SA0BpD,CAAC;AA2EF;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,QAAA,MAAM,uBAAuB,qCAAkC,GAAG,iBAwCjE,CAAC;AAmGF;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,QAAA,MAAM,WAAW,0EAAuE,GAAG,kBAkE1F,CAAC;AAEF,QAAA,MAAM,gBAAgB;;;;mBAqBrB,CAAC;AAmTF,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,WAAW,EAAE,uBAAuB,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/db/index.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,IAAI,CAAC;AAI5B,QAAA,MAAM,IAAI,iBAaR,CAAC;AASH,QAAA,MAAM,KAAK,cAAqB,MAAM,WAAU,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EAAE,iBAyB5E,CAAC;AAGF,QAAA,MAAM,eAAe,cAAqB,MAAM,WAAU,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EAAE,0BAmDtF,CAAC;AAGF,QAAA,MAAM,UAAU,YAAmB,GAAG,EAAE,uCAmBvC,CAAC;AAGF,QAAA,MAAM,gBAAgB,cACT,MAAM,WACT,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EAAE,qCAyBtC,CAAC;AAGF,QAAA,MAAM,SAAS,QAAS,MAAM,EAAE,WAM/B,CAAC;AAoJF,OAAO,EACL,KAAK,EAAE,oCAAoC;AAC3C,eAAe,EAAE,wBAAwB;AACzC,gBAAgB,EAAE,uBAAuB;AACzC,UAAU,EAAE,aAAa;AACzB,SAAS,EAAE,WAAW;AACtB,IAAI,GACL,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/db/index.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,IAAI,CAAC;AAI5B,QAAA,MAAM,IAAI,iBAYR,CAAC;AASH,QAAA,MAAM,KAAK,cAAqB,MAAM,WAAU,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EAAE,iBAyB5E,CAAC;AAGF,QAAA,MAAM,eAAe,cAAqB,MAAM,WAAU,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EAAE,0BAmDtF,CAAC;AAGF,QAAA,MAAM,UAAU,YAAmB,GAAG,EAAE,uCAmBvC,CAAC;AAGF,QAAA,MAAM,gBAAgB,cACT,MAAM,WACT,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EAAE,qCAyBtC,CAAC;AAGF,QAAA,MAAM,SAAS,QAAS,MAAM,EAAE,WAM/B,CAAC;AAoJF,OAAO,EACL,KAAK,EAAE,oCAAoC;AAC3C,eAAe,EAAE,wBAAwB;AACzC,gBAAgB,EAAE,uBAAuB;AACzC,UAAU,EAAE,aAAa;AACzB,SAAS,EAAE,WAAW;AACtB,IAAI,GACL,CAAC"}
@@ -15,8 +15,7 @@ import { getDefaultWorkoutImage } from './image/getDefaultWorkoutImage';
15
15
  import { sendWorkoutToWatch } from './workout/sendToWatch';
16
16
  import { getPlanificacionPrueba7dias } from './workout/planificacionPrueba7dias';
17
17
  import { saveResponseTime } from './chat/saveResponseTime';
18
- import { generateText, createGoogleModel } from './prompt';
19
18
  import { updateSenderView } from './chat/api/conversation';
20
19
  import { transcribeAudio, describeImage, processMediaFile, reprocessRecentMedia } from './mediaProcessing';
21
- export { sendNotification, sleep, query, queryWithClient, longRunningQuery, batchQuery, toPgArray, pool, sendMail, err, fetchIA, notifySlack, CHANNEL_SLACK, translate, LANGUAGES, useTranslation, getExerciseTranslatedDescription, chat, chatApi, chatExposed, getCountNotificaciones, notionGetUsers, notionGetDatabase, notionAddPage, notionEditPage, NOTION_DATABASES_ID, readSheet, findCellByValue, writeSheet, appendSheet, getNumberByLetter, getLetter, reduceSizeImage, generateShareMap, getDefaultWorkoutImage, sendWorkoutToWatch, getPlanificacionPrueba7dias, saveResponseTime, generateText, createGoogleModel, updateSenderView, transcribeAudio, describeImage, processMediaFile, reprocessRecentMedia, };
20
+ export { sendNotification, sleep, query, queryWithClient, longRunningQuery, batchQuery, toPgArray, pool, sendMail, err, fetchIA, notifySlack, CHANNEL_SLACK, translate, LANGUAGES, useTranslation, getExerciseTranslatedDescription, chat, chatApi, chatExposed, getCountNotificaciones, notionGetUsers, notionGetDatabase, notionAddPage, notionEditPage, NOTION_DATABASES_ID, readSheet, findCellByValue, writeSheet, appendSheet, getNumberByLetter, getLetter, reduceSizeImage, generateShareMap, getDefaultWorkoutImage, sendWorkoutToWatch, getPlanificacionPrueba7dias, saveResponseTime, updateSenderView, transcribeAudio, describeImage, processMediaFile, reprocessRecentMedia, };
22
21
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC7F,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,gCAAgC,EAAE,MAAM,eAAe,CAAC;AACvG,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,QAAQ,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,aAAa,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AACjH,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAClH,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE3G,OAAO,EACL,gBAAgB,EAChB,KAAK,EACL,KAAK,EACL,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,SAAS,EACT,IAAI,EACJ,QAAQ,EACR,GAAG,EACH,OAAO,EACP,WAAW,EACX,aAAa,EACb,SAAS,EACT,SAAS,EACT,cAAc,EACd,gCAAgC,EAChC,IAAI,EACJ,OAAO,EACP,WAAW,EACX,sBAAsB,EACtB,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,mBAAmB,EACnB,SAAS,EACT,eAAe,EACf,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,SAAS,EACT,eAAe,EACf,gBAAgB,EAChB,sBAAsB,EACtB,kBAAkB,EAClB,2BAA2B,EAC3B,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,oBAAoB,GACrB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC7F,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,gCAAgC,EAAE,MAAM,eAAe,CAAC;AACvG,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,QAAQ,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,aAAa,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AACjH,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAClH,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE3G,OAAO,EACL,gBAAgB,EAChB,KAAK,EACL,KAAK,EACL,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,SAAS,EACT,IAAI,EACJ,QAAQ,EACR,GAAG,EACH,OAAO,EACP,WAAW,EACX,aAAa,EACb,SAAS,EACT,SAAS,EACT,cAAc,EACd,gCAAgC,EAChC,IAAI,EACJ,OAAO,EACP,WAAW,EACX,sBAAsB,EACtB,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,mBAAmB,EACnB,SAAS,EACT,eAAe,EACf,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,SAAS,EACT,eAAe,EACf,gBAAgB,EAChB,sBAAsB,EACtB,kBAAkB,EAClB,2BAA2B,EAC3B,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,oBAAoB,GACrB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@runnerpro/backend",
3
- "version": "1.19.2",
3
+ "version": "1.19.5",
4
4
  "description": "A collection of common backend functions",
5
5
  "exports": {
6
6
  ".": "./lib/cjs/index.js"
@@ -17,8 +17,7 @@
17
17
  "semantic-release": "semantic-release",
18
18
  "lint": "eslint --ext .ts --ignore-path .gitignore .",
19
19
  "format": "prettier --write \"src/**/*.{js,jsx,ts,tsx,json,css,scss,md}\"",
20
- "prepare": "husky",
21
- "test": "jest"
20
+ "prepare": "husky"
22
21
  },
23
22
  "release": {
24
23
  "branches": [
@@ -37,7 +36,6 @@
37
36
  "devDependencies": {
38
37
  "@eslint/js": "^9.6.0",
39
38
  "@types/eslint__js": "^8.42.3",
40
- "@types/jest": "^30.0.0",
41
39
  "@types/nodemailer": "^6.4.15",
42
40
  "@types/pg": "^8.11.3",
43
41
  "del-cli": "5.1.0",
@@ -47,9 +45,7 @@
47
45
  "eslint-plugin-exception-handling": "^1.0.2",
48
46
  "eslint-plugin-sonarjs": "^1.0.3",
49
47
  "husky": "^9.0.11",
50
- "jest": "^29.7.0",
51
48
  "semantic-release": "23.0.2",
52
- "ts-jest": "^29.4.6",
53
49
  "ts-node": "10.9.2",
54
50
  "typescript": "5.3.3",
55
51
  "typescript-eslint": "^7.15.0"