@runnerpro/backend 1.33.1 → 1.34.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/lib/cjs/almacenamiento/index.js +153 -0
- package/lib/cjs/index.js +9 -2
- package/lib/cjs/types/almacenamiento/index.d.ts +65 -0
- package/lib/cjs/types/almacenamiento/index.d.ts.map +1 -0
- package/lib/cjs/types/index.d.ts +1 -0
- package/lib/cjs/types/index.d.ts.map +1 -1
- package/lib/cjs/types/workout/saveWorkoutAplication.d.ts.map +1 -1
- package/lib/cjs/workout/saveWorkoutAplication.js +5 -9
- package/package.json +2 -1
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.urlPublica = exports.Storage = exports.Contenedor = exports.Archivo = exports.TIPO_POR_DEFECTO = void 0;
|
|
13
|
+
/**
|
|
14
|
+
* Almacenamiento de archivos en Azure Blob Storage.
|
|
15
|
+
*
|
|
16
|
+
* Expone la MISMA forma que el cliente de `@google-cloud/storage` que había antes
|
|
17
|
+
* (`storage.bucket(nombre).file(ruta).save()/download()/exists()/delete()`), para que los
|
|
18
|
+
* puntos de llamada no cambien más allá del import. Se migró el 19-ago-2026: los servicios
|
|
19
|
+
* ya corrían en Azure pero seguían escribiendo en los cubos de Google, así que cada archivo
|
|
20
|
+
* nuevo nacía en la nube que estábamos apagando.
|
|
21
|
+
*
|
|
22
|
+
* El "nombre de cubo" es ahora `cuenta/contenedor` (p.ej. `rppublicprod/public`), que es lo
|
|
23
|
+
* que llevan las variables CLOUD_STORAGE_BUCKET y CLOUD_STORAGE_BUCKET_PUBLIC. La clave de
|
|
24
|
+
* cada cuenta se lee de `AZURE_STORAGE_KEY_<CUENTA EN MAYÚSCULAS>`.
|
|
25
|
+
*
|
|
26
|
+
* Gemelo de `Cliente-backend/src/utils/almacenamiento.js`: si cambias uno, cambia el otro.
|
|
27
|
+
*/
|
|
28
|
+
const storage_blob_1 = require("@azure/storage-blob");
|
|
29
|
+
/**
|
|
30
|
+
* Tipo por defecto cuando quien sube no dice cuál es. Es exactamente lo que ponía Google en
|
|
31
|
+
* los archivos sin extensión (los mapas de entreno no la tienen), así que respetarlo evita
|
|
32
|
+
* que un archivo servido cambie de tipo al migrar.
|
|
33
|
+
*/
|
|
34
|
+
exports.TIPO_POR_DEFECTO = 'application/octet-stream';
|
|
35
|
+
/** Reintentos por defecto del SDK de Azure si nadie pide otra cosa. Son los suyos. */
|
|
36
|
+
const REINTENTOS_POR_DEFECTO = 4;
|
|
37
|
+
/** Clientes ya construidos, por cuenta+presupuesto. Uno por petición sería tirar conexiones. */
|
|
38
|
+
const clientesPorCuenta = new Map();
|
|
39
|
+
/**
|
|
40
|
+
* Nombres de los cubos viejos de Google y dónde viven ahora en Azure.
|
|
41
|
+
*
|
|
42
|
+
* Está aquí para que el despliegue no tenga que ser coordinado: los consumidores piden el
|
|
43
|
+
* paquete con `^1.31`, así que cualquier servicio que se redespliegue por un motivo ajeno se
|
|
44
|
+
* trae esta versión. Si además hubiera que haber cambiado sus variables a mano y en el mismo
|
|
45
|
+
* momento, ese servicio subiría a ninguna parte hasta que alguien se diera cuenta. Con la
|
|
46
|
+
* traducción aquí, la configuración vieja sigue funcionando y cambiar las variables pasa a ser
|
|
47
|
+
* limpieza, no un requisito.
|
|
48
|
+
*/
|
|
49
|
+
const CUBOS_ANTIGUOS = {
|
|
50
|
+
web_runnerpro: 'rpwebprod/web',
|
|
51
|
+
runnerpro_public_prod: 'rppublicprod/public',
|
|
52
|
+
assets_runnerpro: 'rppublicprod/assets',
|
|
53
|
+
};
|
|
54
|
+
const partirNombre = (nombre) => {
|
|
55
|
+
if (!nombre) {
|
|
56
|
+
throw new Error('almacenamiento: falta el nombre del contenedor (cuenta/contenedor)');
|
|
57
|
+
}
|
|
58
|
+
const [cuenta, contenedor] = (CUBOS_ANTIGUOS[nombre] || nombre).split('/');
|
|
59
|
+
if (!cuenta || !contenedor) {
|
|
60
|
+
throw new Error(`almacenamiento: "${nombre}" no tiene la forma cuenta/contenedor (p.ej. rppublicprod/public)`);
|
|
61
|
+
}
|
|
62
|
+
return { cuenta, contenedor };
|
|
63
|
+
};
|
|
64
|
+
const clienteDeCuenta = (cuenta, presupuestoS) => {
|
|
65
|
+
const llave = `${cuenta}|${presupuestoS || 0}`;
|
|
66
|
+
const yaEsta = clientesPorCuenta.get(llave);
|
|
67
|
+
if (yaEsta)
|
|
68
|
+
return yaEsta;
|
|
69
|
+
const clave = process.env[`AZURE_STORAGE_KEY_${cuenta.toUpperCase()}`];
|
|
70
|
+
if (!clave) {
|
|
71
|
+
throw new Error(`almacenamiento: falta la variable AZURE_STORAGE_KEY_${cuenta.toUpperCase()}`);
|
|
72
|
+
}
|
|
73
|
+
const opciones = presupuestoS
|
|
74
|
+
? {
|
|
75
|
+
retryOptions: {
|
|
76
|
+
maxTries: REINTENTOS_POR_DEFECTO,
|
|
77
|
+
tryTimeoutInMs: Math.floor((presupuestoS * 1000) / REINTENTOS_POR_DEFECTO),
|
|
78
|
+
},
|
|
79
|
+
}
|
|
80
|
+
: undefined;
|
|
81
|
+
const cliente = new storage_blob_1.BlobServiceClient(`https://${cuenta}.blob.core.windows.net`, new storage_blob_1.StorageSharedKeyCredential(cuenta, clave), opciones);
|
|
82
|
+
clientesPorCuenta.set(llave, cliente);
|
|
83
|
+
return cliente;
|
|
84
|
+
};
|
|
85
|
+
/**
|
|
86
|
+
* Un archivo dentro de un contenedor. `download()` y `exists()` devuelven ARRAY porque así
|
|
87
|
+
* lo desestructura el código que ya existe (`const [data] = await ....download()`).
|
|
88
|
+
*/
|
|
89
|
+
class Archivo {
|
|
90
|
+
constructor(contenedor, ruta) {
|
|
91
|
+
this.ruta = ruta;
|
|
92
|
+
this.blob = contenedor.getBlockBlobClient(ruta);
|
|
93
|
+
}
|
|
94
|
+
save(datos, opciones = {}) {
|
|
95
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
96
|
+
const buffer = Buffer.isBuffer(datos) ? datos : Buffer.from(datos);
|
|
97
|
+
yield this.blob.uploadData(buffer, {
|
|
98
|
+
blobHTTPHeaders: { blobContentType: opciones.contentType || exports.TIPO_POR_DEFECTO },
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
download() {
|
|
103
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
104
|
+
return [yield this.blob.downloadToBuffer()];
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
exists() {
|
|
108
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
109
|
+
return [yield this.blob.exists()];
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
delete() {
|
|
113
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
114
|
+
yield this.blob.deleteIfExists();
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
exports.Archivo = Archivo;
|
|
119
|
+
/** Un contenedor. Equivale al `Bucket` de Google. */
|
|
120
|
+
class Contenedor {
|
|
121
|
+
constructor(nombre, presupuestoS) {
|
|
122
|
+
const { cuenta, contenedor } = partirNombre(nombre);
|
|
123
|
+
this.contenedor = clienteDeCuenta(cuenta, presupuestoS).getContainerClient(contenedor);
|
|
124
|
+
}
|
|
125
|
+
file(ruta) {
|
|
126
|
+
return new Archivo(this.contenedor, ruta);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
exports.Contenedor = Contenedor;
|
|
130
|
+
/** Equivale al `Storage` de Google: `new Storage().bucket(nombre)`. */
|
|
131
|
+
class Storage {
|
|
132
|
+
/**
|
|
133
|
+
* Acepta el mismo objeto de opciones que el cliente de Google. `keyFilename` se ignora (la
|
|
134
|
+
* credencial de Azure va por variable de entorno); `retryOptions.totalTimeout` sí se respeta.
|
|
135
|
+
*/
|
|
136
|
+
constructor(opciones = {}) {
|
|
137
|
+
var _a;
|
|
138
|
+
this.presupuestoS = (_a = opciones === null || opciones === void 0 ? void 0 : opciones.retryOptions) === null || _a === void 0 ? void 0 : _a.totalTimeout;
|
|
139
|
+
}
|
|
140
|
+
bucket(nombre) {
|
|
141
|
+
return new Contenedor(nombre, this.presupuestoS);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
exports.Storage = Storage;
|
|
145
|
+
/**
|
|
146
|
+
* Dirección pública de un archivo. Sustituye a los
|
|
147
|
+
* `https://storage.googleapis.com/${bucket}/${ruta}` que se construían a mano.
|
|
148
|
+
*/
|
|
149
|
+
const urlPublica = (nombre, ruta) => {
|
|
150
|
+
const { cuenta, contenedor } = partirNombre(nombre);
|
|
151
|
+
return `https://${cuenta}.blob.core.windows.net/${contenedor}/${ruta}`;
|
|
152
|
+
};
|
|
153
|
+
exports.urlPublica = urlPublica;
|
package/lib/cjs/index.js
CHANGED
|
@@ -23,8 +23,9 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.
|
|
27
|
-
exports.
|
|
26
|
+
exports.saveDoneStructuraWorkout = exports.computeStreakStats = exports.getUnlockedAchievements = exports.evaluateAchievementsBounded = exports.evaluateAchievements = exports.saveWorkoutLaps = exports.saveWorkoutAplication = 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 = exports.TIPO_POR_DEFECTO = exports.urlPublica = exports.Archivo = exports.Contenedor = exports.StorageAzure = exports.achievementsCatalog = void 0;
|
|
27
|
+
exports.BEDROCK_CLAUDE_SONNET_4 = exports.BEDROCK_CLAUDE_SONNET_4_5 = exports.BEDROCK_CLAUDE_OPUS_4_1 = exports.BEDROCK_CLAUDE_OPUS_4_5 = exports.BEDROCK_CLAUDE_SONNET = exports.BEDROCK_CLAUDE_OPUS = exports.FALLBACK_MODELS = exports.PRODUCTION_MODELS = exports.AZURE_FALLBACK_MODELS = exports.AZURE_PRIMARY_MODELS = exports.AZURE_DEEPSEEK_V4_FLASH = exports.AZURE_DEEPSEEK_V4_PRO = exports.AZURE_GPT_5_4_NANO = exports.AZURE_GPT_5_4_MINI = exports.AZURE_GPT_5_6_LUNA = exports.AZURE_GPT_5_6_TERRA = exports.AZURE_GPT_5_6_SOL = exports.AZURE_GPT_5_5 = exports.AZURE_DEEPSEEK_V4_FLASH_DEPLOYMENT = exports.AZURE_DEEPSEEK_V4_PRO_DEPLOYMENT = exports.AZURE_GPT_5_4_NANO_DEPLOYMENT = exports.AZURE_GPT_5_4_MINI_DEPLOYMENT = exports.AZURE_GPT_5_6_LUNA_DEPLOYMENT = exports.AZURE_GPT_5_6_TERRA_DEPLOYMENT = exports.AZURE_GPT_5_6_SOL_DEPLOYMENT = exports.AZURE_GPT_5_5_DEPLOYMENT = exports.AZURE_PREFIX = exports.GOOGLE_MODELS = exports.AI_MODELS = exports.MODEL_TIER = exports.runWithModels = exports.runWithCostTracking = exports.createModelFromString = exports.createAzureModelFromString = exports.createBedrockModelFromString = exports.createGoogleModelFromString = exports.createGoogleModel = exports.generateText = exports.generateObject = exports.reprocessRecentMedia = exports.processMediaFile = exports.analyzeFile = exports.describeTextFile = exports.describePdf = exports.describeVideo = exports.describeImage = exports.transcribeAudio = exports.updateSenderView = exports.saveResponseTime = exports.getZone = void 0;
|
|
28
|
+
exports.calculateCost = exports.MODEL_PRICING = exports.AISTUDIO_PREFIX = exports.BEDROCK_CLAUDE_HAIKU = void 0;
|
|
28
29
|
const sendNotification_1 = require("./sendNotification");
|
|
29
30
|
Object.defineProperty(exports, "sendNotification", { enumerable: true, get: function () { return sendNotification_1.sendNotification; } });
|
|
30
31
|
const sleep_1 = require("./sleep");
|
|
@@ -152,3 +153,9 @@ Object.defineProperty(exports, "BEDROCK_CLAUDE_HAIKU", { enumerable: true, get:
|
|
|
152
153
|
Object.defineProperty(exports, "AISTUDIO_PREFIX", { enumerable: true, get: function () { return prompt_1.AISTUDIO_PREFIX; } });
|
|
153
154
|
Object.defineProperty(exports, "MODEL_PRICING", { enumerable: true, get: function () { return prompt_1.MODEL_PRICING; } });
|
|
154
155
|
Object.defineProperty(exports, "calculateCost", { enumerable: true, get: function () { return prompt_1.calculateCost; } });
|
|
156
|
+
var almacenamiento_1 = require("./almacenamiento");
|
|
157
|
+
Object.defineProperty(exports, "StorageAzure", { enumerable: true, get: function () { return almacenamiento_1.Storage; } });
|
|
158
|
+
Object.defineProperty(exports, "Contenedor", { enumerable: true, get: function () { return almacenamiento_1.Contenedor; } });
|
|
159
|
+
Object.defineProperty(exports, "Archivo", { enumerable: true, get: function () { return almacenamiento_1.Archivo; } });
|
|
160
|
+
Object.defineProperty(exports, "urlPublica", { enumerable: true, get: function () { return almacenamiento_1.urlPublica; } });
|
|
161
|
+
Object.defineProperty(exports, "TIPO_POR_DEFECTO", { enumerable: true, get: function () { return almacenamiento_1.TIPO_POR_DEFECTO; } });
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
/**
|
|
3
|
+
* Almacenamiento de archivos en Azure Blob Storage.
|
|
4
|
+
*
|
|
5
|
+
* Expone la MISMA forma que el cliente de `@google-cloud/storage` que había antes
|
|
6
|
+
* (`storage.bucket(nombre).file(ruta).save()/download()/exists()/delete()`), para que los
|
|
7
|
+
* puntos de llamada no cambien más allá del import. Se migró el 19-ago-2026: los servicios
|
|
8
|
+
* ya corrían en Azure pero seguían escribiendo en los cubos de Google, así que cada archivo
|
|
9
|
+
* nuevo nacía en la nube que estábamos apagando.
|
|
10
|
+
*
|
|
11
|
+
* El "nombre de cubo" es ahora `cuenta/contenedor` (p.ej. `rppublicprod/public`), que es lo
|
|
12
|
+
* que llevan las variables CLOUD_STORAGE_BUCKET y CLOUD_STORAGE_BUCKET_PUBLIC. La clave de
|
|
13
|
+
* cada cuenta se lee de `AZURE_STORAGE_KEY_<CUENTA EN MAYÚSCULAS>`.
|
|
14
|
+
*
|
|
15
|
+
* Gemelo de `Cliente-backend/src/utils/almacenamiento.js`: si cambias uno, cambia el otro.
|
|
16
|
+
*/
|
|
17
|
+
import { ContainerClient } from '@azure/storage-blob';
|
|
18
|
+
/**
|
|
19
|
+
* Tipo por defecto cuando quien sube no dice cuál es. Es exactamente lo que ponía Google en
|
|
20
|
+
* los archivos sin extensión (los mapas de entreno no la tienen), así que respetarlo evita
|
|
21
|
+
* que un archivo servido cambie de tipo al migrar.
|
|
22
|
+
*/
|
|
23
|
+
export declare const TIPO_POR_DEFECTO = "application/octet-stream";
|
|
24
|
+
/**
|
|
25
|
+
* Un archivo dentro de un contenedor. `download()` y `exists()` devuelven ARRAY porque así
|
|
26
|
+
* lo desestructura el código que ya existe (`const [data] = await ....download()`).
|
|
27
|
+
*/
|
|
28
|
+
export declare class Archivo {
|
|
29
|
+
ruta: string;
|
|
30
|
+
private blob;
|
|
31
|
+
constructor(contenedor: ContainerClient, ruta: string);
|
|
32
|
+
save(datos: Buffer | string, opciones?: {
|
|
33
|
+
contentType?: string;
|
|
34
|
+
}): Promise<void>;
|
|
35
|
+
download(): Promise<[Buffer]>;
|
|
36
|
+
exists(): Promise<[boolean]>;
|
|
37
|
+
delete(): Promise<void>;
|
|
38
|
+
}
|
|
39
|
+
/** Un contenedor. Equivale al `Bucket` de Google. */
|
|
40
|
+
export declare class Contenedor {
|
|
41
|
+
private contenedor;
|
|
42
|
+
constructor(nombre?: string, presupuestoS?: number);
|
|
43
|
+
file(ruta: string): Archivo;
|
|
44
|
+
}
|
|
45
|
+
/** Equivale al `Storage` de Google: `new Storage().bucket(nombre)`. */
|
|
46
|
+
export declare class Storage {
|
|
47
|
+
private presupuestoS?;
|
|
48
|
+
/**
|
|
49
|
+
* Acepta el mismo objeto de opciones que el cliente de Google. `keyFilename` se ignora (la
|
|
50
|
+
* credencial de Azure va por variable de entorno); `retryOptions.totalTimeout` sí se respeta.
|
|
51
|
+
*/
|
|
52
|
+
constructor(opciones?: {
|
|
53
|
+
keyFilename?: string;
|
|
54
|
+
retryOptions?: {
|
|
55
|
+
totalTimeout?: number;
|
|
56
|
+
};
|
|
57
|
+
});
|
|
58
|
+
bucket(nombre?: string): Contenedor;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Dirección pública de un archivo. Sustituye a los
|
|
62
|
+
* `https://storage.googleapis.com/${bucket}/${ruta}` que se construían a mano.
|
|
63
|
+
*/
|
|
64
|
+
export declare const urlPublica: (nombre: string | undefined, ruta: string) => string;
|
|
65
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/almacenamiento/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAiD,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAErG;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,6BAA6B,CAAC;AAiE3D;;;GAGG;AACH,qBAAa,OAAO;IAG8B,IAAI,EAAE,MAAM;IAF5D,OAAO,CAAC,IAAI,CAAC;gBAED,UAAU,EAAE,eAAe,EAAS,IAAI,EAAE,MAAM;IAItD,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,GAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAOpF,QAAQ,IAAI,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;IAI7B,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;IAI5B,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAG9B;AAED,qDAAqD;AACrD,qBAAa,UAAU;IACrB,OAAO,CAAC,UAAU,CAAkB;gBAExB,MAAM,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;IAKlD,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAG5B;AAED,uEAAuE;AACvE,qBAAa,OAAO;IAClB,OAAO,CAAC,YAAY,CAAC,CAAS;IAE9B;;;OAGG;gBACS,QAAQ,GAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE;YAAE,YAAY,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAO;IAI7F,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,UAAU;CAGpC;AAED;;;GAGG;AACH,eAAO,MAAM,UAAU,WAAY,MAAM,GAAG,SAAS,QAAQ,MAAM,KAAG,MAGrE,CAAC"}
|
package/lib/cjs/types/index.d.ts
CHANGED
|
@@ -24,5 +24,6 @@ import { saveResponseTime } from './chat/saveResponseTime';
|
|
|
24
24
|
import { updateSenderView } from './chat/api/conversation';
|
|
25
25
|
import { transcribeAudio, describeImage, describeVideo, describePdf, describeTextFile, analyzeFile, processMediaFile, reprocessRecentMedia } from './mediaProcessing';
|
|
26
26
|
import { generateObject, generateText, createGoogleModel, createGoogleModelFromString, createBedrockModelFromString, createAzureModelFromString, createModelFromString, runWithCostTracking, runWithModels, MODEL_TIER, AI_MODELS, GOOGLE_MODELS, AZURE_PREFIX, AZURE_GPT_5_5_DEPLOYMENT, AZURE_GPT_5_6_SOL_DEPLOYMENT, AZURE_GPT_5_6_TERRA_DEPLOYMENT, AZURE_GPT_5_6_LUNA_DEPLOYMENT, AZURE_GPT_5_4_MINI_DEPLOYMENT, AZURE_GPT_5_4_NANO_DEPLOYMENT, AZURE_DEEPSEEK_V4_PRO_DEPLOYMENT, AZURE_DEEPSEEK_V4_FLASH_DEPLOYMENT, AZURE_GPT_5_5, AZURE_GPT_5_6_SOL, AZURE_GPT_5_6_TERRA, AZURE_GPT_5_6_LUNA, AZURE_GPT_5_4_MINI, AZURE_GPT_5_4_NANO, AZURE_DEEPSEEK_V4_PRO, AZURE_DEEPSEEK_V4_FLASH, AZURE_PRIMARY_MODELS, AZURE_FALLBACK_MODELS, PRODUCTION_MODELS, FALLBACK_MODELS, BEDROCK_CLAUDE_OPUS, BEDROCK_CLAUDE_SONNET, BEDROCK_CLAUDE_OPUS_4_5, BEDROCK_CLAUDE_OPUS_4_1, BEDROCK_CLAUDE_SONNET_4_5, BEDROCK_CLAUDE_SONNET_4, BEDROCK_CLAUDE_HAIKU, AISTUDIO_PREFIX, MODEL_PRICING, calculateCost } from './prompt';
|
|
27
|
+
export { Storage as StorageAzure, Contenedor, Archivo, urlPublica, TIPO_POR_DEFECTO, } from './almacenamiento';
|
|
27
28
|
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, saveWorkoutAplication, saveWorkoutLaps, evaluateAchievements, evaluateAchievementsBounded, getUnlockedAchievements, computeStreakStats, saveDoneStructuraWorkout, getZone, saveResponseTime, updateSenderView, transcribeAudio, describeImage, describeVideo, describePdf, describeTextFile, analyzeFile, processMediaFile, reprocessRecentMedia, generateObject, generateText, createGoogleModel, createGoogleModelFromString, createBedrockModelFromString, createAzureModelFromString, createModelFromString, runWithCostTracking, runWithModels, MODEL_TIER, AI_MODELS, GOOGLE_MODELS, AZURE_PREFIX, AZURE_GPT_5_5_DEPLOYMENT, AZURE_GPT_5_6_SOL_DEPLOYMENT, AZURE_GPT_5_6_TERRA_DEPLOYMENT, AZURE_GPT_5_6_LUNA_DEPLOYMENT, AZURE_GPT_5_4_MINI_DEPLOYMENT, AZURE_GPT_5_4_NANO_DEPLOYMENT, AZURE_DEEPSEEK_V4_PRO_DEPLOYMENT, AZURE_DEEPSEEK_V4_FLASH_DEPLOYMENT, AZURE_GPT_5_5, AZURE_GPT_5_6_SOL, AZURE_GPT_5_6_TERRA, AZURE_GPT_5_6_LUNA, AZURE_GPT_5_4_MINI, AZURE_GPT_5_4_NANO, AZURE_DEEPSEEK_V4_PRO, AZURE_DEEPSEEK_V4_FLASH, AZURE_PRIMARY_MODELS, AZURE_FALLBACK_MODELS, PRODUCTION_MODELS, FALLBACK_MODELS, BEDROCK_CLAUDE_OPUS, BEDROCK_CLAUDE_SONNET, BEDROCK_CLAUDE_OPUS_4_5, BEDROCK_CLAUDE_OPUS_4_1, BEDROCK_CLAUDE_SONNET_4_5, BEDROCK_CLAUDE_SONNET_4, BEDROCK_CLAUDE_HAIKU, AISTUDIO_PREFIX, MODEL_PRICING, calculateCost, };
|
|
28
29
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"saveWorkoutAplication.d.ts","sourceRoot":"","sources":["../../../../src/workout/saveWorkoutAplication.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"saveWorkoutAplication.d.ts","sourceRoot":"","sources":["../../../../src/workout/saveWorkoutAplication.ts"],"names":[],"mappings":"AAqTA;;;;;;;;;;GAUG;AACH,QAAA,MAAM,qBAAqB,SACnB,GAAG,UAED,GAAG,KACV,QAAQ,MAAM,GAAG,IAAI,CAqFvB,CAAC;AAuGF,OAAO,EAAE,qBAAqB,EAAE,CAAC"}
|
|
@@ -14,8 +14,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.saveWorkoutAplication = void 0;
|
|
16
16
|
const db_1 = require("../db");
|
|
17
|
-
const
|
|
18
|
-
const path_1 = __importDefault(require("path"));
|
|
17
|
+
const almacenamiento_1 = require("../almacenamiento");
|
|
19
18
|
const axios_1 = __importDefault(require("axios"));
|
|
20
19
|
const generateShareMap_1 = require("../image/generateShareMap");
|
|
21
20
|
const getDefaultWorkoutImage_1 = require("../image/getDefaultWorkoutImage");
|
|
@@ -440,8 +439,7 @@ const saveMap = (idWorkout, polyline) => __awaiter(void 0, void 0, void 0, funct
|
|
|
440
439
|
if (!polyline)
|
|
441
440
|
return;
|
|
442
441
|
// @ts-ignore
|
|
443
|
-
const
|
|
444
|
-
const storage = new storage_1.Storage({ keyFilename: serviceKey });
|
|
442
|
+
const storage = new almacenamiento_1.Storage();
|
|
445
443
|
const encodedPolyline = encodeURIComponent(typeof polyline === 'string' ? polyline : getPolyline(polyline) || '');
|
|
446
444
|
if (!encodedPolyline)
|
|
447
445
|
return;
|
|
@@ -449,7 +447,7 @@ const saveMap = (idWorkout, polyline) => __awaiter(void 0, void 0, void 0, funct
|
|
|
449
447
|
const imageBuffer = Buffer.from(result.data, 'binary');
|
|
450
448
|
// @ts-ignore
|
|
451
449
|
yield storage.bucket(process.env.CLOUD_STORAGE_BUCKET_PUBLIC).file(`Workout/${idWorkout}`).save(imageBuffer);
|
|
452
|
-
const urlMap =
|
|
450
|
+
const urlMap = (0, almacenamiento_1.urlPublica)(process.env.CLOUD_STORAGE_BUCKET_PUBLIC, `Workout/${idWorkout}`);
|
|
453
451
|
try {
|
|
454
452
|
yield (0, db_1.query)('UPDATE "WORKOUT" SET "HAVE MAP IMAGE" = TRUE, "PHOTO URL" = ? WHERE "ID" = ?', [urlMap, idWorkout]);
|
|
455
453
|
}
|
|
@@ -461,9 +459,7 @@ const saveMap = (idWorkout, polyline) => __awaiter(void 0, void 0, void 0, funct
|
|
|
461
459
|
}
|
|
462
460
|
});
|
|
463
461
|
const saveShareWorkoutImage = (id, type) => __awaiter(void 0, void 0, void 0, function* () {
|
|
464
|
-
|
|
465
|
-
const serviceKey = path_1.default.join(process.cwd(), process.env.FIREBASE_STORAGE_CREDENTIALS);
|
|
466
|
-
const storage = new storage_1.Storage({ keyFilename: serviceKey });
|
|
462
|
+
const storage = new almacenamiento_1.Storage();
|
|
467
463
|
// @ts-ignore
|
|
468
464
|
const [exists] = yield storage.bucket(process.env.CLOUD_STORAGE_BUCKET_PUBLIC).file(`Workout/${id}`).exists();
|
|
469
465
|
let image;
|
|
@@ -479,7 +475,7 @@ const saveShareWorkoutImage = (id, type) => __awaiter(void 0, void 0, void 0, fu
|
|
|
479
475
|
return;
|
|
480
476
|
// @ts-ignore
|
|
481
477
|
yield storage.bucket(process.env.CLOUD_STORAGE_BUCKET_PUBLIC).file(`Workout/${id}-share`).save(shareMap);
|
|
482
|
-
const urlShare =
|
|
478
|
+
const urlShare = (0, almacenamiento_1.urlPublica)(process.env.CLOUD_STORAGE_BUCKET_PUBLIC, `Workout/${id}-share`);
|
|
483
479
|
try {
|
|
484
480
|
yield (0, db_1.query)('UPDATE "WORKOUT" SET "PHOTO URL SHARE" = ? WHERE "ID" = ?', [urlShare, id]);
|
|
485
481
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@runnerpro/backend",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.34.0",
|
|
4
4
|
"description": "A collection of common backend functions",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./lib/cjs/index.js"
|
|
@@ -68,6 +68,7 @@
|
|
|
68
68
|
"@ai-sdk/azure": "^3.0.74",
|
|
69
69
|
"@ai-sdk/google": "^3.0.43",
|
|
70
70
|
"@ai-sdk/google-vertex": "^4.0.102",
|
|
71
|
+
"@azure/storage-blob": "^12.32.0",
|
|
71
72
|
"@google-cloud/speech": "^7.2.1",
|
|
72
73
|
"@google-cloud/storage": "^7.11.3",
|
|
73
74
|
"@google-cloud/translate": "^8.3.0",
|