- ✅ Ticket 1.1: Estructura Clean Architecture en backend - ✅ Ticket 1.2: Schemas Zod compartidos - ✅ Ticket 1.3: Refactorización drugs.ts (1362 → 8 archivos modulares) - ✅ Ticket 1.4: Refactorización procedures.ts (3583 → 6 archivos modulares) - ✅ Ticket 1.5: Eliminación de duplicidades (~50 líneas) Cambios principales: - Creada estructura Clean Architecture en backend/src/ - Schemas Zod compartidos en backend/src/shared/schemas/ - Refactorización modular de drugs y procedures - Utilidades genéricas en src/utils/ (filter, validation) - Eliminados scripts obsoletos y documentación antigua - Corregidos errores: QueryClient, import test-error-handling - Build verificado y funcionando correctamente
21 lines
558 B
JavaScript
21 lines
558 B
JavaScript
'use strict';
|
|
|
|
// https://mathiasbynens.be/notes/javascript-encoding
|
|
// https://github.com/bestiejs/punycode.js - punycode.ucs2.decode
|
|
module.exports = function ucs2length(str) {
|
|
var length = 0
|
|
, len = str.length
|
|
, pos = 0
|
|
, value;
|
|
while (pos < len) {
|
|
length++;
|
|
value = str.charCodeAt(pos++);
|
|
if (value >= 0xD800 && value <= 0xDBFF && pos < len) {
|
|
// high surrogate, and there is a next character
|
|
value = str.charCodeAt(pos);
|
|
if ((value & 0xFC00) == 0xDC00) pos++; // low surrogate
|
|
}
|
|
}
|
|
return length;
|
|
};
|