@bonginkan/maria 4.3.41 → 4.3.43

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.
@@ -6913,14 +6913,21 @@ async function rateLimitMiddleware(req, res, next) {
6913
6913
  const userRecord = rateLimitStore.get(rateLimitKey);
6914
6914
  if (!userRecord || typeof userRecord.lastAt !== "number") {
6915
6915
  rateLimitStore.set(rateLimitKey, { lastAt: now });
6916
- return next();
6916
+ next();
6917
+ return;
6917
6918
  }
6918
6919
  const elapsedMs = now - userRecord.lastAt;
6919
6920
  const remainingMs = Math.max(0, config.windowMs - elapsedMs);
6920
6921
  if (remainingMs > 0) {
6921
6922
  const retryAfterSeconds = Math.max(1, Math.ceil(remainingMs / 1e3));
6922
6923
  const resetAt = new Date(now + remainingMs);
6923
- return res.status(429).json({
6924
+ try {
6925
+ res.setHeader("Retry-After", String(retryAfterSeconds));
6926
+ res.setHeader("X-RateLimit-Reset", String(resetAt.getTime()));
6927
+ res.setHeader("RateLimit-Reset", String(resetAt.getTime()));
6928
+ } catch {
6929
+ }
6930
+ res.status(429).json({
6924
6931
  error: "rate_limit_exceeded",
6925
6932
  message: `Rate limit exceeded for ${endpoint} endpoint`,
6926
6933
  details: {
@@ -6930,14 +6937,17 @@ async function rateLimitMiddleware(req, res, next) {
6930
6937
  retryAfterSeconds,
6931
6938
  resetAt: resetAt.toISOString()
6932
6939
  },
6933
- hint: userPlan === "FREE" ? `Free plan limit: ${config.requests} request per ${config.windowMs / 1e3}s. Upgrade at https://maria.ai/upgrade` : `Please wait ${retryAfterSeconds} seconds before retrying.`
6940
+ hint: userPlan === "FREE" ? `Free plan limit: ${config.requests} request per ${config.windowMs / 1e3}s. Upgrade at https://maria-code.ai/manage` : `Please wait ${retryAfterSeconds} seconds before retrying.`
6934
6941
  });
6942
+ return;
6935
6943
  }
6936
6944
  rateLimitStore.set(rateLimitKey, { lastAt: now });
6937
- return next();
6945
+ next();
6946
+ return;
6938
6947
  } catch (error) {
6939
6948
  console.error("[RateLimit] Error in middleware:", error);
6940
- return next();
6949
+ next();
6950
+ return;
6941
6951
  }
6942
6952
  }
6943
6953
  function startRateLimitCleanup() {
@@ -9437,7 +9447,7 @@ app.get("/api/status", (req, res) => {
9437
9447
  app.get("/", (req, res) => {
9438
9448
  res.json({
9439
9449
  name: "MARIA CODE API",
9440
- version: "4.3.41",
9450
+ version: "4.3.43",
9441
9451
  status: "running",
9442
9452
  environment: process.env.NODE_ENV || "development",
9443
9453
  endpoints: {
@@ -6913,14 +6913,21 @@ async function rateLimitMiddleware(req, res, next) {
6913
6913
  const userRecord = rateLimitStore.get(rateLimitKey);
6914
6914
  if (!userRecord || typeof userRecord.lastAt !== "number") {
6915
6915
  rateLimitStore.set(rateLimitKey, { lastAt: now });
6916
- return next();
6916
+ next();
6917
+ return;
6917
6918
  }
6918
6919
  const elapsedMs = now - userRecord.lastAt;
6919
6920
  const remainingMs = Math.max(0, config.windowMs - elapsedMs);
6920
6921
  if (remainingMs > 0) {
6921
6922
  const retryAfterSeconds = Math.max(1, Math.ceil(remainingMs / 1e3));
6922
6923
  const resetAt = new Date(now + remainingMs);
6923
- return res.status(429).json({
6924
+ try {
6925
+ res.setHeader("Retry-After", String(retryAfterSeconds));
6926
+ res.setHeader("X-RateLimit-Reset", String(resetAt.getTime()));
6927
+ res.setHeader("RateLimit-Reset", String(resetAt.getTime()));
6928
+ } catch {
6929
+ }
6930
+ res.status(429).json({
6924
6931
  error: "rate_limit_exceeded",
6925
6932
  message: `Rate limit exceeded for ${endpoint} endpoint`,
6926
6933
  details: {
@@ -6930,14 +6937,17 @@ async function rateLimitMiddleware(req, res, next) {
6930
6937
  retryAfterSeconds,
6931
6938
  resetAt: resetAt.toISOString()
6932
6939
  },
6933
- hint: userPlan === "FREE" ? `Free plan limit: ${config.requests} request per ${config.windowMs / 1e3}s. Upgrade at https://maria.ai/upgrade` : `Please wait ${retryAfterSeconds} seconds before retrying.`
6940
+ hint: userPlan === "FREE" ? `Free plan limit: ${config.requests} request per ${config.windowMs / 1e3}s. Upgrade at https://maria-code.ai/manage` : `Please wait ${retryAfterSeconds} seconds before retrying.`
6934
6941
  });
6942
+ return;
6935
6943
  }
6936
6944
  rateLimitStore.set(rateLimitKey, { lastAt: now });
6937
- return next();
6945
+ next();
6946
+ return;
6938
6947
  } catch (error) {
6939
6948
  console.error("[RateLimit] Error in middleware:", error);
6940
- return next();
6949
+ next();
6950
+ return;
6941
6951
  }
6942
6952
  }
6943
6953
  function startRateLimitCleanup() {
@@ -9437,7 +9447,7 @@ app.get("/api/status", (req, res) => {
9437
9447
  app.get("/", (req, res) => {
9438
9448
  res.json({
9439
9449
  name: "MARIA CODE API",
9440
- version: "4.3.41",
9450
+ version: "4.3.43",
9441
9451
  status: "running",
9442
9452
  environment: process.env.NODE_ENV || "development",
9443
9453
  endpoints: {
@@ -6913,14 +6913,21 @@ async function rateLimitMiddleware(req, res, next) {
6913
6913
  const userRecord = rateLimitStore.get(rateLimitKey);
6914
6914
  if (!userRecord || typeof userRecord.lastAt !== "number") {
6915
6915
  rateLimitStore.set(rateLimitKey, { lastAt: now });
6916
- return next();
6916
+ next();
6917
+ return;
6917
6918
  }
6918
6919
  const elapsedMs = now - userRecord.lastAt;
6919
6920
  const remainingMs = Math.max(0, config.windowMs - elapsedMs);
6920
6921
  if (remainingMs > 0) {
6921
6922
  const retryAfterSeconds = Math.max(1, Math.ceil(remainingMs / 1e3));
6922
6923
  const resetAt = new Date(now + remainingMs);
6923
- return res.status(429).json({
6924
+ try {
6925
+ res.setHeader("Retry-After", String(retryAfterSeconds));
6926
+ res.setHeader("X-RateLimit-Reset", String(resetAt.getTime()));
6927
+ res.setHeader("RateLimit-Reset", String(resetAt.getTime()));
6928
+ } catch {
6929
+ }
6930
+ res.status(429).json({
6924
6931
  error: "rate_limit_exceeded",
6925
6932
  message: `Rate limit exceeded for ${endpoint} endpoint`,
6926
6933
  details: {
@@ -6930,14 +6937,17 @@ async function rateLimitMiddleware(req, res, next) {
6930
6937
  retryAfterSeconds,
6931
6938
  resetAt: resetAt.toISOString()
6932
6939
  },
6933
- hint: userPlan === "FREE" ? `Free plan limit: ${config.requests} request per ${config.windowMs / 1e3}s. Upgrade at https://maria.ai/upgrade` : `Please wait ${retryAfterSeconds} seconds before retrying.`
6940
+ hint: userPlan === "FREE" ? `Free plan limit: ${config.requests} request per ${config.windowMs / 1e3}s. Upgrade at https://maria-code.ai/manage` : `Please wait ${retryAfterSeconds} seconds before retrying.`
6934
6941
  });
6942
+ return;
6935
6943
  }
6936
6944
  rateLimitStore.set(rateLimitKey, { lastAt: now });
6937
- return next();
6945
+ next();
6946
+ return;
6938
6947
  } catch (error) {
6939
6948
  console.error("[RateLimit] Error in middleware:", error);
6940
- return next();
6949
+ next();
6950
+ return;
6941
6951
  }
6942
6952
  }
6943
6953
  function startRateLimitCleanup() {
@@ -9437,7 +9447,7 @@ app.get("/api/status", (req, res) => {
9437
9447
  app.get("/", (req, res) => {
9438
9448
  res.json({
9439
9449
  name: "MARIA CODE API",
9440
- version: "4.3.41",
9450
+ version: "4.3.43",
9441
9451
  status: "running",
9442
9452
  environment: process.env.NODE_ENV || "development",
9443
9453
  endpoints: {