Files
Laca-City/backend/node_modules/@redis/client/dist/lib/client/socket.js
PhongPham c65cc97a33 🎯 MapView v2.0 - Global Deployment Ready
 MAJOR FEATURES:
• Auto-zoom intelligence với smart bounds fitting
• Enhanced 3D GPS markers với pulsing effects
• Professional route display với 6-layer rendering
• Status-based parking icons với availability indicators
• Production-ready build optimizations

🗺️ AUTO-ZOOM FEATURES:
• Smart bounds fitting cho GPS + selected parking
• Adaptive padding (50px) cho visual balance
• Max zoom control (level 16) để tránh quá gần
• Dynamic centering khi không có selection

🎨 ENHANCED VISUALS:
• 3D GPS marker với multi-layer pulse effects
• Advanced parking icons với status colors
• Selection highlighting với animation
• Dimming system cho non-selected items

🛣️ ROUTE SYSTEM:
• OpenRouteService API integration
• Multi-layer route rendering (glow, shadow, main, animated)
• Real-time distance & duration calculation
• Visual route info trong popup

📱 PRODUCTION READY:
• SSR safe với dynamic imports
• Build errors resolved
• Global deployment via Vercel
• Optimized performance

🌍 DEPLOYMENT:
• Vercel: https://whatever-ctk2auuxr-phong12hexdockworks-projects.vercel.app
• Bundle size: 22.8 kB optimized
• Global CDN distribution
• HTTPS enabled

💾 VERSION CONTROL:
• MapView-v2.0.tsx backup created
• MAPVIEW_VERSIONS.md documentation
• Full version history tracking
2025-07-20 19:52:16 +07:00

234 lines
13 KiB
JavaScript

"use strict";
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
};
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
if (kind === "m") throw new TypeError("Private method is not writable");
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
};
var _RedisSocket_instances, _a, _RedisSocket_initiateOptions, _RedisSocket_isTlsSocket, _RedisSocket_initiator, _RedisSocket_options, _RedisSocket_socket, _RedisSocket_isOpen, _RedisSocket_isReady, _RedisSocket_writableNeedDrain, _RedisSocket_isSocketUnrefed, _RedisSocket_reconnectStrategy, _RedisSocket_shouldReconnect, _RedisSocket_connect, _RedisSocket_createSocket, _RedisSocket_createNetSocket, _RedisSocket_createTlsSocket, _RedisSocket_onSocketError, _RedisSocket_disconnect, _RedisSocket_isCorked;
Object.defineProperty(exports, "__esModule", { value: true });
const events_1 = require("events");
const net = require("net");
const tls = require("tls");
const errors_1 = require("../errors");
const utils_1 = require("../utils");
class RedisSocket extends events_1.EventEmitter {
get isOpen() {
return __classPrivateFieldGet(this, _RedisSocket_isOpen, "f");
}
get isReady() {
return __classPrivateFieldGet(this, _RedisSocket_isReady, "f");
}
get writableNeedDrain() {
return __classPrivateFieldGet(this, _RedisSocket_writableNeedDrain, "f");
}
constructor(initiator, options) {
super();
_RedisSocket_instances.add(this);
_RedisSocket_initiator.set(this, void 0);
_RedisSocket_options.set(this, void 0);
_RedisSocket_socket.set(this, void 0);
_RedisSocket_isOpen.set(this, false);
_RedisSocket_isReady.set(this, false);
// `writable.writableNeedDrain` was added in v15.2.0 and therefore can't be used
// https://nodejs.org/api/stream.html#stream_writable_writableneeddrain
_RedisSocket_writableNeedDrain.set(this, false);
_RedisSocket_isSocketUnrefed.set(this, false);
_RedisSocket_isCorked.set(this, false);
__classPrivateFieldSet(this, _RedisSocket_initiator, initiator, "f");
__classPrivateFieldSet(this, _RedisSocket_options, __classPrivateFieldGet(_a, _a, "m", _RedisSocket_initiateOptions).call(_a, options), "f");
}
async connect() {
if (__classPrivateFieldGet(this, _RedisSocket_isOpen, "f")) {
throw new Error('Socket already opened');
}
__classPrivateFieldSet(this, _RedisSocket_isOpen, true, "f");
return __classPrivateFieldGet(this, _RedisSocket_instances, "m", _RedisSocket_connect).call(this);
}
writeCommand(args) {
if (!__classPrivateFieldGet(this, _RedisSocket_socket, "f")) {
throw new errors_1.ClientClosedError();
}
for (const toWrite of args) {
__classPrivateFieldSet(this, _RedisSocket_writableNeedDrain, !__classPrivateFieldGet(this, _RedisSocket_socket, "f").write(toWrite), "f");
}
}
disconnect() {
if (!__classPrivateFieldGet(this, _RedisSocket_isOpen, "f")) {
throw new errors_1.ClientClosedError();
}
__classPrivateFieldSet(this, _RedisSocket_isOpen, false, "f");
__classPrivateFieldGet(this, _RedisSocket_instances, "m", _RedisSocket_disconnect).call(this);
}
async quit(fn) {
if (!__classPrivateFieldGet(this, _RedisSocket_isOpen, "f")) {
throw new errors_1.ClientClosedError();
}
__classPrivateFieldSet(this, _RedisSocket_isOpen, false, "f");
const reply = await fn();
__classPrivateFieldGet(this, _RedisSocket_instances, "m", _RedisSocket_disconnect).call(this);
return reply;
}
cork() {
if (!__classPrivateFieldGet(this, _RedisSocket_socket, "f") || __classPrivateFieldGet(this, _RedisSocket_isCorked, "f")) {
return;
}
__classPrivateFieldGet(this, _RedisSocket_socket, "f").cork();
__classPrivateFieldSet(this, _RedisSocket_isCorked, true, "f");
setImmediate(() => {
__classPrivateFieldGet(this, _RedisSocket_socket, "f")?.uncork();
__classPrivateFieldSet(this, _RedisSocket_isCorked, false, "f");
});
}
ref() {
__classPrivateFieldSet(this, _RedisSocket_isSocketUnrefed, false, "f");
__classPrivateFieldGet(this, _RedisSocket_socket, "f")?.ref();
}
unref() {
__classPrivateFieldSet(this, _RedisSocket_isSocketUnrefed, true, "f");
__classPrivateFieldGet(this, _RedisSocket_socket, "f")?.unref();
}
}
_a = RedisSocket, _RedisSocket_initiator = new WeakMap(), _RedisSocket_options = new WeakMap(), _RedisSocket_socket = new WeakMap(), _RedisSocket_isOpen = new WeakMap(), _RedisSocket_isReady = new WeakMap(), _RedisSocket_writableNeedDrain = new WeakMap(), _RedisSocket_isSocketUnrefed = new WeakMap(), _RedisSocket_isCorked = new WeakMap(), _RedisSocket_instances = new WeakSet(), _RedisSocket_initiateOptions = function _RedisSocket_initiateOptions(options) {
var _b, _c;
options ?? (options = {});
if (!options.path) {
(_b = options).port ?? (_b.port = 6379);
(_c = options).host ?? (_c.host = 'localhost');
}
options.connectTimeout ?? (options.connectTimeout = 5000);
options.keepAlive ?? (options.keepAlive = 5000);
options.noDelay ?? (options.noDelay = true);
return options;
}, _RedisSocket_isTlsSocket = function _RedisSocket_isTlsSocket(options) {
return options.tls === true;
}, _RedisSocket_reconnectStrategy = function _RedisSocket_reconnectStrategy(retries, cause) {
if (__classPrivateFieldGet(this, _RedisSocket_options, "f").reconnectStrategy === false) {
return false;
}
else if (typeof __classPrivateFieldGet(this, _RedisSocket_options, "f").reconnectStrategy === 'number') {
return __classPrivateFieldGet(this, _RedisSocket_options, "f").reconnectStrategy;
}
else if (__classPrivateFieldGet(this, _RedisSocket_options, "f").reconnectStrategy) {
try {
const retryIn = __classPrivateFieldGet(this, _RedisSocket_options, "f").reconnectStrategy(retries, cause);
if (retryIn !== false && !(retryIn instanceof Error) && typeof retryIn !== 'number') {
throw new TypeError(`Reconnect strategy should return \`false | Error | number\`, got ${retryIn} instead`);
}
return retryIn;
}
catch (err) {
this.emit('error', err);
}
}
return Math.min(retries * 50, 500);
}, _RedisSocket_shouldReconnect = function _RedisSocket_shouldReconnect(retries, cause) {
const retryIn = __classPrivateFieldGet(this, _RedisSocket_instances, "m", _RedisSocket_reconnectStrategy).call(this, retries, cause);
if (retryIn === false) {
__classPrivateFieldSet(this, _RedisSocket_isOpen, false, "f");
this.emit('error', cause);
return cause;
}
else if (retryIn instanceof Error) {
__classPrivateFieldSet(this, _RedisSocket_isOpen, false, "f");
this.emit('error', cause);
return new errors_1.ReconnectStrategyError(retryIn, cause);
}
return retryIn;
}, _RedisSocket_connect = async function _RedisSocket_connect() {
let retries = 0;
do {
try {
__classPrivateFieldSet(this, _RedisSocket_socket, await __classPrivateFieldGet(this, _RedisSocket_instances, "m", _RedisSocket_createSocket).call(this), "f");
__classPrivateFieldSet(this, _RedisSocket_writableNeedDrain, false, "f");
this.emit('connect');
try {
await __classPrivateFieldGet(this, _RedisSocket_initiator, "f").call(this);
}
catch (err) {
__classPrivateFieldGet(this, _RedisSocket_socket, "f").destroy();
__classPrivateFieldSet(this, _RedisSocket_socket, undefined, "f");
throw err;
}
__classPrivateFieldSet(this, _RedisSocket_isReady, true, "f");
this.emit('ready');
}
catch (err) {
const retryIn = __classPrivateFieldGet(this, _RedisSocket_instances, "m", _RedisSocket_shouldReconnect).call(this, retries++, err);
if (typeof retryIn !== 'number') {
throw retryIn;
}
this.emit('error', err);
await (0, utils_1.promiseTimeout)(retryIn);
this.emit('reconnecting');
}
} while (__classPrivateFieldGet(this, _RedisSocket_isOpen, "f") && !__classPrivateFieldGet(this, _RedisSocket_isReady, "f"));
}, _RedisSocket_createSocket = function _RedisSocket_createSocket() {
return new Promise((resolve, reject) => {
const { connectEvent, socket } = __classPrivateFieldGet(_a, _a, "m", _RedisSocket_isTlsSocket).call(_a, __classPrivateFieldGet(this, _RedisSocket_options, "f")) ?
__classPrivateFieldGet(this, _RedisSocket_instances, "m", _RedisSocket_createTlsSocket).call(this) :
__classPrivateFieldGet(this, _RedisSocket_instances, "m", _RedisSocket_createNetSocket).call(this);
if (__classPrivateFieldGet(this, _RedisSocket_options, "f").connectTimeout) {
socket.setTimeout(__classPrivateFieldGet(this, _RedisSocket_options, "f").connectTimeout, () => socket.destroy(new errors_1.ConnectionTimeoutError()));
}
if (__classPrivateFieldGet(this, _RedisSocket_isSocketUnrefed, "f")) {
socket.unref();
}
socket
.setNoDelay(__classPrivateFieldGet(this, _RedisSocket_options, "f").noDelay)
.once('error', reject)
.once(connectEvent, () => {
socket
.setTimeout(0)
// https://github.com/nodejs/node/issues/31663
.setKeepAlive(__classPrivateFieldGet(this, _RedisSocket_options, "f").keepAlive !== false, __classPrivateFieldGet(this, _RedisSocket_options, "f").keepAlive || 0)
.off('error', reject)
.once('error', (err) => __classPrivateFieldGet(this, _RedisSocket_instances, "m", _RedisSocket_onSocketError).call(this, err))
.once('close', hadError => {
if (!hadError && __classPrivateFieldGet(this, _RedisSocket_isOpen, "f") && __classPrivateFieldGet(this, _RedisSocket_socket, "f") === socket) {
__classPrivateFieldGet(this, _RedisSocket_instances, "m", _RedisSocket_onSocketError).call(this, new errors_1.SocketClosedUnexpectedlyError());
}
})
.on('drain', () => {
__classPrivateFieldSet(this, _RedisSocket_writableNeedDrain, false, "f");
this.emit('drain');
})
.on('data', data => this.emit('data', data));
resolve(socket);
});
});
}, _RedisSocket_createNetSocket = function _RedisSocket_createNetSocket() {
return {
connectEvent: 'connect',
socket: net.connect(__classPrivateFieldGet(this, _RedisSocket_options, "f")) // TODO
};
}, _RedisSocket_createTlsSocket = function _RedisSocket_createTlsSocket() {
return {
connectEvent: 'secureConnect',
socket: tls.connect(__classPrivateFieldGet(this, _RedisSocket_options, "f")) // TODO
};
}, _RedisSocket_onSocketError = function _RedisSocket_onSocketError(err) {
const wasReady = __classPrivateFieldGet(this, _RedisSocket_isReady, "f");
__classPrivateFieldSet(this, _RedisSocket_isReady, false, "f");
this.emit('error', err);
if (!wasReady || !__classPrivateFieldGet(this, _RedisSocket_isOpen, "f") || typeof __classPrivateFieldGet(this, _RedisSocket_instances, "m", _RedisSocket_shouldReconnect).call(this, 0, err) !== 'number')
return;
this.emit('reconnecting');
__classPrivateFieldGet(this, _RedisSocket_instances, "m", _RedisSocket_connect).call(this).catch(() => {
// the error was already emitted, silently ignore it
});
}, _RedisSocket_disconnect = function _RedisSocket_disconnect() {
__classPrivateFieldSet(this, _RedisSocket_isReady, false, "f");
if (__classPrivateFieldGet(this, _RedisSocket_socket, "f")) {
__classPrivateFieldGet(this, _RedisSocket_socket, "f").destroy();
__classPrivateFieldSet(this, _RedisSocket_socket, undefined, "f");
}
this.emit('end');
};
exports.default = RedisSocket;