PM2 LOGS - Updated: 5/16/2026, 9:52:06 PM | Refresh: 15min | 500 lines
CLUB-AI
CLUB-APP
CLUB-MESSAGES
CLUB-PAYPAL
REPO-CHECK

ALL LOGS (newest at top)

(node:52321) DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead.
(node:52321) [MONGODB DRIVER] Warning: Current Server Discovery and Monitoring engine is deprecated, and will be removed in a future version. To use the new Server Discover and Monitoring engine, pass option { useUnifiedTopology: true } to the MongoClient constructor.
(Use `node --trace-deprecation ...` to show where the warning was created)
(node:52321) DeprecationWarning: current URL string parser is deprecated, and will be removed in a future version. To use the new parser, pass option { useNewUrlParser: true } to MongoClient.connect.
(node:52318) DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead.
(node:52316) DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead.
(node:52318) [MONGODB DRIVER] Warning: Current Server Discovery and Monitoring engine is deprecated, and will be removed in a future version. To use the new Server Discover and Monitoring engine, pass option { useUnifiedTopology: true } to the MongoClient constructor.
(Use `node --trace-deprecation ...` to show where the warning was created)
(node:52318) DeprecationWarning: current URL string parser is deprecated, and will be removed in a future version. To use the new parser, pass option { useNewUrlParser: true } to MongoClient.connect.
(node:52313) DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead.
(node:52316) [MONGODB DRIVER] Warning: Current Server Discovery and Monitoring engine is deprecated, and will be removed in a future version. To use the new Server Discover and Monitoring engine, pass option { useUnifiedTopology: true } to the MongoClient constructor.
(Use `node --trace-deprecation ...` to show where the warning was created)
(node:52316) DeprecationWarning: current URL string parser is deprecated, and will be removed in a future version. To use the new parser, pass option { useNewUrlParser: true } to MongoClient.connect.
(node:52355) DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead.
(node:52313) [MONGODB DRIVER] Warning: Current Server Discovery and Monitoring engine is deprecated, and will be removed in a future version. To use the new Server Discover and Monitoring engine, pass option { useUnifiedTopology: true } to the MongoClient constructor.
(Use `node --trace-deprecation ...` to show where the warning was created)
(node:52313) DeprecationWarning: current URL string parser is deprecated, and will be removed in a future version. To use the new parser, pass option { useNewUrlParser: true } to MongoClient.connect.
(node:52355) [MONGODB DRIVER] Warning: Current Server Discovery and Monitoring engine is deprecated, and will be removed in a future version. To use the new Server Discover and Monitoring engine, pass option { useUnifiedTopology: true } to the MongoClient constructor.
(Use `node --trace-deprecation ...` to show where the warning was created)
(node:52355) DeprecationWarning: current URL string parser is deprecated, and will be removed in a future version. To use the new parser, pass option { useNewUrlParser: true } to MongoClient.connect.
(node:52337) DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead.
(node:52337) [MONGODB DRIVER] Warning: Current Server Discovery and Monitoring engine is deprecated, and will be removed in a future version. To use the new Server Discover and Monitoring engine, pass option { useUnifiedTopology: true } to the MongoClient constructor.
(Use `node --trace-deprecation ...` to show where the warning was created)
(node:52337) DeprecationWarning: current URL string parser is deprecated, and will be removed in a future version. To use the new parser, pass option { useNewUrlParser: true } to MongoClient.connect.
(node:52332) DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead.
(node:52317) DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead.
(node:52317) [MONGODB DRIVER] Warning: Current Server Discovery and Monitoring engine is deprecated, and will be removed in a future version. To use the new Server Discover and Monitoring engine, pass option { useUnifiedTopology: true } to the MongoClient constructor.
(Use `node --trace-deprecation ...` to show where the warning was created)
(node:52317) DeprecationWarning: current URL string parser is deprecated, and will be removed in a future version. To use the new parser, pass option { useNewUrlParser: true } to MongoClient.connect.
(node:52332) [MONGODB DRIVER] Warning: Current Server Discovery and Monitoring engine is deprecated, and will be removed in a future version. To use the new Server Discover and Monitoring engine, pass option { useUnifiedTopology: true } to the MongoClient constructor.
(Use `node --trace-deprecation ...` to show where the warning was created)
(node:52332) DeprecationWarning: current URL string parser is deprecated, and will be removed in a future version. To use the new parser, pass option { useNewUrlParser: true } to MongoClient.connect.
(node:32964) DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead.
(node:32964) [MONGODB DRIVER] Warning: Current Server Discovery and Monitoring engine is deprecated, and will be removed in a future version. To use the new Server Discover and Monitoring engine, pass option { useUnifiedTopology: true } to the MongoClient constructor.
(Use `node --trace-deprecation ...` to show where the warning was created)
(node:32964) DeprecationWarning: current URL string parser is deprecated, and will be removed in a future version. To use the new parser, pass option { useNewUrlParser: true } to MongoClient.connect.
(node:32965) DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead.
(node:32969) DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead.
(node:32971) DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead.
(node:32970) DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead.
(node:32969) [MONGODB DRIVER] Warning: Current Server Discovery and Monitoring engine is deprecated, and will be removed in a future version. To use the new Server Discover and Monitoring engine, pass option { useUnifiedTopology: true } to the MongoClient constructor.
(Use `node --trace-deprecation ...` to show where the warning was created)
(node:32969) DeprecationWarning: current URL string parser is deprecated, and will be removed in a future version. To use the new parser, pass option { useNewUrlParser: true } to MongoClient.connect.
(node:32966) DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead.
(node:32968) DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead.
(node:32972) DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead.
(node:32965) [MONGODB DRIVER] Warning: Current Server Discovery and Monitoring engine is deprecated, and will be removed in a future version. To use the new Server Discover and Monitoring engine, pass option { useUnifiedTopology: true } to the MongoClient constructor.
(Use `node --trace-deprecation ...` to show where the warning was created)
(node:32965) DeprecationWarning: current URL string parser is deprecated, and will be removed in a future version. To use the new parser, pass option { useNewUrlParser: true } to MongoClient.connect.
(node:32968) [MONGODB DRIVER] Warning: Current Server Discovery and Monitoring engine is deprecated, and will be removed in a future version. To use the new Server Discover and Monitoring engine, pass option { useUnifiedTopology: true } to the MongoClient constructor.
(Use `node --trace-deprecation ...` to show where the warning was created)
(node:32968) DeprecationWarning: current URL string parser is deprecated, and will be removed in a future version. To use the new parser, pass option { useNewUrlParser: true } to MongoClient.connect.
(node:32971) [MONGODB DRIVER] Warning: Current Server Discovery and Monitoring engine is deprecated, and will be removed in a future version. To use the new Server Discover and Monitoring engine, pass option { useUnifiedTopology: true } to the MongoClient constructor.
(Use `node --trace-deprecation ...` to show where the warning was created)
(node:32971) DeprecationWarning: current URL string parser is deprecated, and will be removed in a future version. To use the new parser, pass option { useNewUrlParser: true } to MongoClient.connect.
(node:32972) [MONGODB DRIVER] Warning: Current Server Discovery and Monitoring engine is deprecated, and will be removed in a future version. To use the new Server Discover and Monitoring engine, pass option { useUnifiedTopology: true } to the MongoClient constructor.
(Use `node --trace-deprecation ...` to show where the warning was created)
(node:32972) DeprecationWarning: current URL string parser is deprecated, and will be removed in a future version. To use the new parser, pass option { useNewUrlParser: true } to MongoClient.connect.
(node:32970) [MONGODB DRIVER] Warning: Current Server Discovery and Monitoring engine is deprecated, and will be removed in a future version. To use the new Server Discover and Monitoring engine, pass option { useUnifiedTopology: true } to the MongoClient constructor.
(node:32966) [MONGODB DRIVER] Warning: Current Server Discovery and Monitoring engine is deprecated, and will be removed in a future version. To use the new Server Discover and Monitoring engine, pass option { useUnifiedTopology: true } to the MongoClient constructor.
(Use `node --trace-deprecation ...` to show where the warning was created)
(node:32966) DeprecationWarning: current URL string parser is deprecated, and will be removed in a future version. To use the new parser, pass option { useNewUrlParser: true } to MongoClient.connect.
(Use `node --trace-deprecation ...` to show where the warning was created)
(node:32970) DeprecationWarning: current URL string parser is deprecated, and will be removed in a future version. To use the new parser, pass option { useNewUrlParser: true } to MongoClient.connect.

ENSURE INDEX
ON INDEX
ON INDEX
HTTP server running on port 3010
[LOGGER INIT] logs dir already exists
[LOGGER INIT] logDir: /home/astromatrix-club/htdocs/club.astromatrix.org/routes/ai/logs
[LOGGER INIT] saveToFile: true
ENSURE INDEX
ON INDEX
ON INDEX
HTTP server running on port 3010
ENSURE INDEX
ON INDEX
ON INDEX
[LOGGER INIT] logs dir already exists
[LOGGER INIT] logDir: /home/astromatrix-club/htdocs/club.astromatrix.org/routes/ai/logs
[LOGGER INIT] saveToFile: true
ENSURE INDEX
ON INDEX
ON INDEX
HTTP server running on port 3010
ENSURE INDEX
ON INDEX
[LOGGER INIT] logs dir already exists
[LOGGER INIT] logDir: /home/astromatrix-club/htdocs/club.astromatrix.org/routes/ai/logs
[LOGGER INIT] saveToFile: true
ON INDEX
HTTP server running on port 3010
[LOGGER INIT] logs dir already exists
[LOGGER INIT] logDir: /home/astromatrix-club/htdocs/club.astromatrix.org/routes/ai/logs
[LOGGER INIT] saveToFile: true
HTTP server running on port 3010
[LOGGER INIT] logs dir already exists
[LOGGER INIT] logDir: /home/astromatrix-club/htdocs/club.astromatrix.org/routes/ai/logs
[LOGGER INIT] saveToFile: true
ENSURE INDEX
ON INDEX
ON INDEX
HTTP server running on port 3010
[LOGGER INIT] logs dir already exists
[LOGGER INIT] logDir: /home/astromatrix-club/htdocs/club.astromatrix.org/routes/ai/logs
[LOGGER INIT] saveToFile: true
ENSURE INDEX
ON INDEX
ON INDEX
ENSURE INDEX
ON INDEX
ON INDEX
HTTP server running on port 3010
HTTP server running on port 3010
[LOGGER INIT] logs dir already exists
[LOGGER INIT] logDir: /home/astromatrix-club/htdocs/club.astromatrix.org/routes/ai/logs
[LOGGER INIT] saveToFile: true
[LOGGER INIT] logs dir already exists
[LOGGER INIT] logDir: /home/astromatrix-club/htdocs/club.astromatrix.org/routes/ai/logs
[LOGGER INIT] saveToFile: true
[dotenv@17.2.3] injecting env (0) from .env -- tip: πŸ› οΈ  run anywhere with `dotenvx run -- yourcommand`
[dotenv@17.2.3] injecting env (0) from .env -- tip: πŸ” prevent building .env in docker: https://dotenvx.com/prebuild
[dotenv@17.2.3] injecting env (0) from .env -- tip: πŸ› οΈ  run anywhere with `dotenvx run -- yourcommand`
[dotenv@17.2.3] injecting env (0) from .env -- tip: πŸ” encrypt with Dotenvx: https://dotenvx.com
[dotenv@17.2.3] injecting env (0) from .env -- tip: πŸ”‘ add access controls to secrets: https://dotenvx.com/ops
[dotenv@17.2.3] injecting env (0) from .env -- tip: βš™οΈ  write to custom object with { processEnv: myObject }
[dotenv@17.2.3] injecting env (0) from .env -- tip: πŸ” prevent committing .env to code: https://dotenvx.com/precommit
[dotenv@17.2.3] injecting env (0) from .env -- tip: βš™οΈ  write to custom object with { processEnv: myObject }
[dotenv@17.2.3] injecting env (23) from .env -- tip: βš™οΈ  suppress all logs with { quiet: true }
ENSURE INDEX
ON INDEX
ON INDEX
HTTP server running on port 3010
[LOGGER INIT] logs dir already exists
[LOGGER INIT] logDir: /home/astromatrix-club/htdocs/club.astromatrix.org/routes/ai/logs
[LOGGER INIT] saveToFile: true
ENSURE INDEX
ON INDEX
ON INDEX
ENSURE INDEX
ON INDEX
ON INDEX
ENSURE INDEX
ENSURE INDEX
ON INDEX
ON INDEX
ON INDEX
ENSURE INDEX
ON INDEX
ENSURE INDEX
ON INDEX
ON INDEX
ON INDEX
ON INDEX
HTTP server running on port 3010
ENSURE INDEX
ON INDEX
[LOGGER INIT] logs dir already exists
[LOGGER INIT] logDir: /home/astromatrix-club/htdocs/club.astromatrix.org/routes/ai/logs
[LOGGER INIT] saveToFile: true
ON INDEX
HTTP server running on port 3010
HTTP server running on port 3010
HTTP server running on port 3010
HTTP server running on port 3010
HTTP server running on port 3010
HTTP server running on port 3010
[LOGGER INIT] logs dir already exists
[LOGGER INIT] logDir: /home/astromatrix-club/htdocs/club.astromatrix.org/routes/ai/logs
[LOGGER INIT] saveToFile: true
[LOGGER INIT] logs dir already exists
[LOGGER INIT] logDir: /home/astromatrix-club/htdocs/club.astromatrix.org/routes/ai/logs
[LOGGER INIT] saveToFile: true
[LOGGER INIT] logs dir already exists
[LOGGER INIT] logDir: /home/astromatrix-club/htdocs/club.astromatrix.org/routes/ai/logs
[LOGGER INIT] saveToFile: true
[LOGGER INIT] logs dir already exists
[LOGGER INIT] logDir: /home/astromatrix-club/htdocs/club.astromatrix.org/routes/ai/logs
[LOGGER INIT] saveToFile: true
[LOGGER INIT] logs dir already exists
[LOGGER INIT] logDir: /home/astromatrix-club/htdocs/club.astromatrix.org/routes/ai/logs
[LOGGER INIT] saveToFile: true
[LOGGER INIT] logs dir already exists
[LOGGER INIT] logDir: /home/astromatrix-club/htdocs/club.astromatrix.org/routes/ai/logs
[LOGGER INIT] saveToFile: true
[dotenv@17.2.3] injecting env (0) from .env -- tip: βš™οΈ  write to custom object with { processEnv: myObject }
[dotenv@17.2.3] injecting env (0) from .env -- tip: βš™οΈ  enable debug logging with { debug: true }
[dotenv@17.2.3] injecting env (0) from .env -- tip: πŸ” prevent building .env in docker: https://dotenvx.com/prebuild
[dotenv@17.2.3] injecting env (0) from .env -- tip: πŸ”‘ add access controls to secrets: https://dotenvx.com/ops
[dotenv@17.2.3] injecting env (0) from .env -- tip: βš™οΈ  enable debug logging with { debug: true }
[dotenv@17.2.3] injecting env (0) from .env -- tip: πŸ› οΈ  run anywhere with `dotenvx run -- yourcommand`
[dotenv@17.2.3] injecting env (0) from .env -- tip: βš™οΈ  write to custom object with { processEnv: myObject }
[dotenv@17.2.3] injecting env (0) from .env -- tip: βš™οΈ  enable debug logging with { debug: true }
[dotenv@17.2.3] injecting env (23) from .env -- tip: πŸ—‚οΈ backup and recover secrets: https://dotenvx.com/ops

ALL LOGS (newest at top)

}
  source: undefined
  setup_intent: undefined,
  payment_method_type: undefined,
  payment_method: undefined,
  payment_intent: undefined,
  decline_code: undefined,
  charge: undefined,
  userMessage: undefined,
  statusCode: 401,
  requestId: undefined,
  },
    'strict-transport-security': 'max-age=63072000; includeSubDomains; preload'
    'x-wc': '383',
    'x-robots-tag': 'none',
    vary: 'Origin',
    'content-security-policy': "base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; upgrade-insecure-requests",
    'cache-control': 'no-cache, no-store',
    'access-control-max-age': '300',
    'access-control-expose-headers': 'Request-Id, Stripe-Manage-Version, Stripe-Should-Retry, X-Stripe-External-Auth-Required, X-Stripe-Privileged-Session-Required',
    'access-control-allow-origin': '*',
    'access-control-allow-methods': 'GET, HEAD, PUT, PATCH, POST, DELETE',
    'access-control-allow-credentials': 'true',
    connection: 'keep-alive',
    'content-length': '266',
    'content-type': 'application/json',
    date: 'Fri, 01 May 2026 09:36:33 GMT',
    server: 'nginx',
  headers: {
  detail: undefined,
  param: undefined,
  doc_url: 'https://stripe.com/docs/error-codes/api-key-expired',
  code: 'api_key_expired',
  rawType: 'api_error',
  },
    requestId: undefined
    statusCode: 401,
    },
      'strict-transport-security': 'max-age=63072000; includeSubDomains; preload'
      'x-wc': '383',
      'x-robots-tag': 'none',
      vary: 'Origin',
      'content-security-policy': "base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; upgrade-insecure-requests",
      'cache-control': 'no-cache, no-store',
      'access-control-max-age': '300',
      'access-control-expose-headers': 'Request-Id, Stripe-Manage-Version, Stripe-Should-Retry, X-Stripe-External-Auth-Required, X-Stripe-Privileged-Session-Required',
      'access-control-allow-origin': '*',
      'access-control-allow-methods': 'GET, HEAD, PUT, PATCH, POST, DELETE',
      'access-control-allow-credentials': 'true',
      connection: 'keep-alive',
      'content-length': '266',
      'content-type': 'application/json',
      date: 'Fri, 01 May 2026 09:36:33 GMT',
      server: 'nginx',
    headers: {
    doc_url: 'https://stripe.com/docs/error-codes/api-key-expired',
    code: 'api_key_expired',
    type: 'api_error',
    message: 'Expired API Key provided: sk_live_***********************************************************************************************bRyX',
  raw: {
  type: 'StripeAuthenticationError',
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
    at res.toJSON.then.Error_js_1.StripeAPIError.message (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/stripe/cjs/RequestSender.js:96:31)
Stripe /get error: StripeAuthenticationError: Expired API Key provided: sk_live_***********************************************************************************************bRyX
(node:52768) DeprecationWarning: Mongoose: `findOneAndUpdate()` and `findOneAndDelete()` without the `useFindAndModify` option set to false are deprecated. See: https://mongoosejs.com/docs/5.x/docs/deprecations.html#findandmodify
(node:52733) DeprecationWarning: Mongoose: `findOneAndUpdate()` and `findOneAndDelete()` without the `useFindAndModify` option set to false are deprecated. See: https://mongoosejs.com/docs/5.x/docs/deprecations.html#findandmodify
}
  source: undefined
  setup_intent: undefined,
  payment_method_type: undefined,
  payment_method: undefined,
  payment_intent: undefined,
  decline_code: undefined,
  charge: undefined,
  userMessage: undefined,
  statusCode: 401,
  requestId: undefined,
  },
    'strict-transport-security': 'max-age=63072000; includeSubDomains; preload'
    'x-wc': '383',
    'x-robots-tag': 'none',
    vary: 'Origin',
    'content-security-policy': "base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; upgrade-insecure-requests",
    'cache-control': 'no-cache, no-store',
    'access-control-max-age': '300',
    'access-control-expose-headers': 'Request-Id, Stripe-Manage-Version, Stripe-Should-Retry, X-Stripe-External-Auth-Required, X-Stripe-Privileged-Session-Required',
    'access-control-allow-origin': '*',
    'access-control-allow-methods': 'GET, HEAD, PUT, PATCH, POST, DELETE',
    'access-control-allow-credentials': 'true',
    connection: 'keep-alive',
    'content-length': '266',
    'content-type': 'application/json',
    date: 'Fri, 01 May 2026 09:35:50 GMT',
    server: 'nginx',
  headers: {
  detail: undefined,
  param: undefined,
  doc_url: 'https://stripe.com/docs/error-codes/api-key-expired',
  code: 'api_key_expired',
  rawType: 'api_error',
  },
    requestId: undefined
    statusCode: 401,
    },
      'strict-transport-security': 'max-age=63072000; includeSubDomains; preload'
      'x-wc': '383',
      'x-robots-tag': 'none',
      vary: 'Origin',
      'content-security-policy': "base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; upgrade-insecure-requests",
      'cache-control': 'no-cache, no-store',
      'access-control-max-age': '300',
      'access-control-expose-headers': 'Request-Id, Stripe-Manage-Version, Stripe-Should-Retry, X-Stripe-External-Auth-Required, X-Stripe-Privileged-Session-Required',
      'access-control-allow-origin': '*',
      'access-control-allow-methods': 'GET, HEAD, PUT, PATCH, POST, DELETE',
      'access-control-allow-credentials': 'true',
      connection: 'keep-alive',
      'content-length': '266',
      'content-type': 'application/json',
      date: 'Fri, 01 May 2026 09:35:50 GMT',
      server: 'nginx',
    headers: {
    doc_url: 'https://stripe.com/docs/error-codes/api-key-expired',
    code: 'api_key_expired',
    type: 'api_error',
    message: 'Expired API Key provided: sk_live_***********************************************************************************************bRyX',
  raw: {
  type: 'StripeAuthenticationError',
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
    at res.toJSON.then.Error_js_1.StripeAPIError.message (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/stripe/cjs/RequestSender.js:96:31)
Stripe /get error: StripeAuthenticationError: Expired API Key provided: sk_live_***********************************************************************************************bRyX
(node:52739) DeprecationWarning: Mongoose: `findOneAndUpdate()` and `findOneAndDelete()` without the `useFindAndModify` option set to false are deprecated. See: https://mongoosejs.com/docs/5.x/docs/deprecations.html#findandmodify
}
  source: undefined
  setup_intent: undefined,
  payment_method_type: undefined,
  payment_method: undefined,
  payment_intent: undefined,
  decline_code: undefined,
  charge: undefined,
  userMessage: undefined,
  statusCode: 401,
  requestId: undefined,
  },
    'strict-transport-security': 'max-age=63072000; includeSubDomains; preload'
    'x-wc': '3c3',
    vary: 'Origin',
    'stripe-version': '2025-08-27.basil',
    'reporting-endpoints': 'csp="https://q.stripe.com/csp-report-v2?q=PvguJ_CzmChEomN7hDUp5VYhtcg2MLJBN7-BamPa-OKzPCIxbB5ZvqNKfl0zr3mFA2rPGLAGrDrKnsFf&t=1"',
    'report-to': '{"group":"csp","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/csp-report-v2?q=PvguJ_CzmChEomN7hDUp5VYhtcg2MLJBN7-BamPa-OKzPCIxbB5ZvqNKfl0zr3mFA2rPGLAGrDrKnsFf&t=1"}],"include_subdomains":true}',
    'content-security-policy': "base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PvguJ_CzmChEomN7hDUp5VYhtcg2MLJBN7-BamPa-OKzPCIxbB5ZvqNKfl0zr3mFA2rPGLAGrDrKnsFf",
    'access-control-max-age': '300',
    'access-control-expose-headers': 'Request-Id, Stripe-Manage-Version, Stripe-Should-Retry, X-Stripe-External-Auth-Required, X-Stripe-Privileged-Session-Required',
    'access-control-allow-origin': '*',
    'access-control-allow-methods': 'GET, HEAD, PUT, PATCH, POST, DELETE',
    'access-control-allow-credentials': 'true',
    connection: 'keep-alive',
    'content-length': '297',
    'content-type': 'application/json',
    date: 'Fri, 01 May 2026 09:35:35 GMT',
    server: 'nginx',
  headers: {
  detail: undefined,
  param: undefined,
  doc_url: 'https://stripe.com/docs/error-codes/api-key-expired',
  code: 'api_key_expired',
  rawType: 'api_error',
  },
    requestId: undefined
    statusCode: 401,
    },
      'strict-transport-security': 'max-age=63072000; includeSubDomains; preload'
      'x-wc': '3c3',
      vary: 'Origin',
      'stripe-version': '2025-08-27.basil',
      'reporting-endpoints': 'csp="https://q.stripe.com/csp-report-v2?q=PvguJ_CzmChEomN7hDUp5VYhtcg2MLJBN7-BamPa-OKzPCIxbB5ZvqNKfl0zr3mFA2rPGLAGrDrKnsFf&t=1"',
      'report-to': '{"group":"csp","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/csp-report-v2?q=PvguJ_CzmChEomN7hDUp5VYhtcg2MLJBN7-BamPa-OKzPCIxbB5ZvqNKfl0zr3mFA2rPGLAGrDrKnsFf&t=1"}],"include_subdomains":true}',
      'content-security-policy': "base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=PvguJ_CzmChEomN7hDUp5VYhtcg2MLJBN7-BamPa-OKzPCIxbB5ZvqNKfl0zr3mFA2rPGLAGrDrKnsFf",
      'access-control-max-age': '300',
      'access-control-expose-headers': 'Request-Id, Stripe-Manage-Version, Stripe-Should-Retry, X-Stripe-External-Auth-Required, X-Stripe-Privileged-Session-Required',
      'access-control-allow-origin': '*',
      'access-control-allow-methods': 'GET, HEAD, PUT, PATCH, POST, DELETE',
      'access-control-allow-credentials': 'true',
      connection: 'keep-alive',
      'content-length': '297',
      'content-type': 'application/json',
      date: 'Fri, 01 May 2026 09:35:35 GMT',
      server: 'nginx',
    headers: {
    doc_url: 'https://stripe.com/docs/error-codes/api-key-expired',
    code: 'api_key_expired',
    type: 'api_error',
    message: 'Expired API Key provided: sk_live_*********************************************************************************************vabRyX',
  raw: {
  type: 'StripeAuthenticationError',
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
    at res.toJSON.then.Error_js_1.StripeAPIError.message (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/stripe/cjs/RequestSender.js:96:31)
Stripe /get error: StripeAuthenticationError: Expired API Key provided: sk_live_*********************************************************************************************vabRyX
}
  source: undefined
  setup_intent: undefined,
  payment_method_type: undefined,
  payment_method: undefined,
  payment_intent: undefined,
  decline_code: undefined,
  charge: undefined,
  userMessage: undefined,
  statusCode: 401,
  requestId: undefined,
  },
    'strict-transport-security': 'max-age=63072000; includeSubDomains; preload'
    'x-wc': '3c3',
    vary: 'Origin',
    'stripe-version': '2025-08-27.basil',
    'reporting-endpoints': 'csp="https://q.stripe.com/csp-report-v2?q=XuH5FpOTr5TXm8INyaQkTAatDT_upgZaWaYS-jlC5GQh3fra7W9EUD9xwEjGh9KWrmdsdp8s_-WmxqMK&t=1"',
    'report-to': '{"group":"csp","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/csp-report-v2?q=XuH5FpOTr5TXm8INyaQkTAatDT_upgZaWaYS-jlC5GQh3fra7W9EUD9xwEjGh9KWrmdsdp8s_-WmxqMK&t=1"}],"include_subdomains":true}',
    'content-security-policy': "base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=XuH5FpOTr5TXm8INyaQkTAatDT_upgZaWaYS-jlC5GQh3fra7W9EUD9xwEjGh9KWrmdsdp8s_-WmxqMK",
    'access-control-max-age': '300',
    'access-control-expose-headers': 'Request-Id, Stripe-Manage-Version, Stripe-Should-Retry, X-Stripe-External-Auth-Required, X-Stripe-Privileged-Session-Required',
    'access-control-allow-origin': '*',
    'access-control-allow-methods': 'GET, HEAD, PUT, PATCH, POST, DELETE',
    'access-control-allow-credentials': 'true',
    connection: 'keep-alive',
    'content-length': '297',
    'content-type': 'application/json',
    date: 'Fri, 01 May 2026 09:35:26 GMT',
    server: 'nginx',
  headers: {
  detail: undefined,
  param: undefined,
  doc_url: 'https://stripe.com/docs/error-codes/api-key-expired',
  code: 'api_key_expired',
  rawType: 'api_error',
  },
    requestId: undefined
    statusCode: 401,
    },
      'strict-transport-security': 'max-age=63072000; includeSubDomains; preload'
      'x-wc': '3c3',
      vary: 'Origin',
      'stripe-version': '2025-08-27.basil',
      'reporting-endpoints': 'csp="https://q.stripe.com/csp-report-v2?q=XuH5FpOTr5TXm8INyaQkTAatDT_upgZaWaYS-jlC5GQh3fra7W9EUD9xwEjGh9KWrmdsdp8s_-WmxqMK&t=1"',
      'report-to': '{"group":"csp","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/csp-report-v2?q=XuH5FpOTr5TXm8INyaQkTAatDT_upgZaWaYS-jlC5GQh3fra7W9EUD9xwEjGh9KWrmdsdp8s_-WmxqMK&t=1"}],"include_subdomains":true}',
      'content-security-policy': "base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=XuH5FpOTr5TXm8INyaQkTAatDT_upgZaWaYS-jlC5GQh3fra7W9EUD9xwEjGh9KWrmdsdp8s_-WmxqMK",
      'access-control-max-age': '300',
      'access-control-expose-headers': 'Request-Id, Stripe-Manage-Version, Stripe-Should-Retry, X-Stripe-External-Auth-Required, X-Stripe-Privileged-Session-Required',
      'access-control-allow-origin': '*',
      'access-control-allow-methods': 'GET, HEAD, PUT, PATCH, POST, DELETE',
      'access-control-allow-credentials': 'true',
      connection: 'keep-alive',
      'content-length': '297',
      'content-type': 'application/json',
      date: 'Fri, 01 May 2026 09:35:26 GMT',
      server: 'nginx',
    headers: {
    doc_url: 'https://stripe.com/docs/error-codes/api-key-expired',
    code: 'api_key_expired',
    type: 'api_error',
    message: 'Expired API Key provided: sk_live_*********************************************************************************************vabRyX',
  raw: {
  type: 'StripeAuthenticationError',
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
    at res.toJSON.then.Error_js_1.StripeAPIError.message (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/stripe/cjs/RequestSender.js:96:31)
Stripe /get error: StripeAuthenticationError: Expired API Key provided: sk_live_*********************************************************************************************vabRyX
(node:52764) DeprecationWarning: Mongoose: `findOneAndUpdate()` and `findOneAndDelete()` without the `useFindAndModify` option set to false are deprecated. See: https://mongoosejs.com/docs/5.x/docs/deprecations.html#findandmodify
(node:52729) DeprecationWarning: Mongoose: `findOneAndUpdate()` and `findOneAndDelete()` without the `useFindAndModify` option set to false are deprecated. See: https://mongoosejs.com/docs/5.x/docs/deprecations.html#findandmodify
}
  source: undefined
  setup_intent: undefined,
  payment_method_type: undefined,
  payment_method: undefined,
  payment_intent: undefined,
  decline_code: undefined,
  charge: undefined,
  userMessage: undefined,
  statusCode: 401,
  requestId: undefined,
  },
    'strict-transport-security': 'max-age=63072000; includeSubDomains; preload'
    'x-wc': '3c3',
    vary: 'Origin',
    'stripe-version': '2025-08-27.basil',
    'reporting-endpoints': 'csp="https://q.stripe.com/csp-report-v2?q=4qDRoJdvVUtS4hVV9NXdmvcnnxTwuLNfQr6z5v516-e57S8eEDNCQEQHCr-11imzz_wb2js1OUKwQrw7&t=1"',
    'report-to': '{"group":"csp","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/csp-report-v2?q=4qDRoJdvVUtS4hVV9NXdmvcnnxTwuLNfQr6z5v516-e57S8eEDNCQEQHCr-11imzz_wb2js1OUKwQrw7&t=1"}],"include_subdomains":true}',
    'content-security-policy': "base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=4qDRoJdvVUtS4hVV9NXdmvcnnxTwuLNfQr6z5v516-e57S8eEDNCQEQHCr-11imzz_wb2js1OUKwQrw7",
    'access-control-max-age': '300',
    'access-control-expose-headers': 'Request-Id, Stripe-Manage-Version, Stripe-Should-Retry, X-Stripe-External-Auth-Required, X-Stripe-Privileged-Session-Required',
    'access-control-allow-origin': '*',
    'access-control-allow-methods': 'GET, HEAD, PUT, PATCH, POST, DELETE',
    'access-control-allow-credentials': 'true',
    connection: 'keep-alive',
    'content-length': '297',
    'content-type': 'application/json',
    date: 'Fri, 01 May 2026 09:33:56 GMT',
    server: 'nginx',
  headers: {
  detail: undefined,
  param: undefined,
  doc_url: 'https://stripe.com/docs/error-codes/api-key-expired',
  code: 'api_key_expired',
  rawType: 'api_error',
  },
    requestId: undefined
    statusCode: 401,
    },
      'strict-transport-security': 'max-age=63072000; includeSubDomains; preload'
      'x-wc': '3c3',
      vary: 'Origin',
      'stripe-version': '2025-08-27.basil',
      'reporting-endpoints': 'csp="https://q.stripe.com/csp-report-v2?q=4qDRoJdvVUtS4hVV9NXdmvcnnxTwuLNfQr6z5v516-e57S8eEDNCQEQHCr-11imzz_wb2js1OUKwQrw7&t=1"',
      'report-to': '{"group":"csp","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/csp-report-v2?q=4qDRoJdvVUtS4hVV9NXdmvcnnxTwuLNfQr6z5v516-e57S8eEDNCQEQHCr-11imzz_wb2js1OUKwQrw7&t=1"}],"include_subdomains":true}',
      'content-security-policy': "base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=4qDRoJdvVUtS4hVV9NXdmvcnnxTwuLNfQr6z5v516-e57S8eEDNCQEQHCr-11imzz_wb2js1OUKwQrw7",
      'access-control-max-age': '300',
      'access-control-expose-headers': 'Request-Id, Stripe-Manage-Version, Stripe-Should-Retry, X-Stripe-External-Auth-Required, X-Stripe-Privileged-Session-Required',
      'access-control-allow-origin': '*',
      'access-control-allow-methods': 'GET, HEAD, PUT, PATCH, POST, DELETE',
      'access-control-allow-credentials': 'true',
      connection: 'keep-alive',
      'content-length': '297',
      'content-type': 'application/json',
      date: 'Fri, 01 May 2026 09:33:56 GMT',
      server: 'nginx',
    headers: {
    doc_url: 'https://stripe.com/docs/error-codes/api-key-expired',
    code: 'api_key_expired',
    type: 'api_error',
    message: 'Expired API Key provided: sk_live_*********************************************************************************************vabRyX',
  raw: {
  type: 'StripeAuthenticationError',
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
    at res.toJSON.then.Error_js_1.StripeAPIError.message (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/stripe/cjs/RequestSender.js:96:31)
Stripe /get error: StripeAuthenticationError: Expired API Key provided: sk_live_*********************************************************************************************vabRyX
(node:52754) DeprecationWarning: Mongoose: `findOneAndUpdate()` and `findOneAndDelete()` without the `useFindAndModify` option set to false are deprecated. See: https://mongoosejs.com/docs/5.x/docs/deprecations.html#findandmodify
(Use `node --trace-deprecation ...` to show where the warning was created)
(node:52756) DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
(node:52761) DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
(node:52768) DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
(node:52739) DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
(node:52754) DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
(node:52729) DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
(node:52764) DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
(node:52733) DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead.
}
  source: undefined
  setup_intent: undefined,
  payment_method_type: undefined,
  payment_method: undefined,
  payment_intent: undefined,
  decline_code: undefined,
  charge: undefined,
  userMessage: undefined,
  statusCode: 401,
  requestId: undefined,
  },
    'strict-transport-security': 'max-age=63072000; includeSubDomains; preload'
    'x-wc': '3c3',
    vary: 'Origin',
    'stripe-version': '2025-08-27.basil',
    'reporting-endpoints': 'csp="https://q.stripe.com/csp-report-v2?q=HrAv8e3HFkn8_zdnPc5zYiFwPfVshymYDIowdSQ0bwT6hYwF34jLXiShTjoHlfOfUYnGq31N3eVqpI_8&t=1"',
    'report-to': '{"group":"csp","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/csp-report-v2?q=HrAv8e3HFkn8_zdnPc5zYiFwPfVshymYDIowdSQ0bwT6hYwF34jLXiShTjoHlfOfUYnGq31N3eVqpI_8&t=1"}],"include_subdomains":true}',
    'content-security-policy': "base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=HrAv8e3HFkn8_zdnPc5zYiFwPfVshymYDIowdSQ0bwT6hYwF34jLXiShTjoHlfOfUYnGq31N3eVqpI_8",
    'access-control-max-age': '300',
    'access-control-expose-headers': 'Request-Id, Stripe-Manage-Version, Stripe-Should-Retry, X-Stripe-External-Auth-Required, X-Stripe-Privileged-Session-Required',
    'access-control-allow-origin': '*',
    'access-control-allow-methods': 'GET, HEAD, PUT, PATCH, POST, DELETE',
    'access-control-allow-credentials': 'true',
    connection: 'keep-alive',
    'content-length': '297',
    'content-type': 'application/json',
    date: 'Fri, 01 May 2026 09:27:13 GMT',
    server: 'nginx',
  headers: {
  detail: undefined,
  param: undefined,
  doc_url: 'https://stripe.com/docs/error-codes/api-key-expired',
  code: 'api_key_expired',
  rawType: 'api_error',
  },
    requestId: undefined
    statusCode: 401,
    },
      'strict-transport-security': 'max-age=63072000; includeSubDomains; preload'
      'x-wc': '3c3',
      vary: 'Origin',
      'stripe-version': '2025-08-27.basil',
      'reporting-endpoints': 'csp="https://q.stripe.com/csp-report-v2?q=HrAv8e3HFkn8_zdnPc5zYiFwPfVshymYDIowdSQ0bwT6hYwF34jLXiShTjoHlfOfUYnGq31N3eVqpI_8&t=1"',
      'report-to': '{"group":"csp","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/csp-report-v2?q=HrAv8e3HFkn8_zdnPc5zYiFwPfVshymYDIowdSQ0bwT6hYwF34jLXiShTjoHlfOfUYnGq31N3eVqpI_8&t=1"}],"include_subdomains":true}',
      'content-security-policy': "base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=HrAv8e3HFkn8_zdnPc5zYiFwPfVshymYDIowdSQ0bwT6hYwF34jLXiShTjoHlfOfUYnGq31N3eVqpI_8",
      'access-control-max-age': '300',
      'access-control-expose-headers': 'Request-Id, Stripe-Manage-Version, Stripe-Should-Retry, X-Stripe-External-Auth-Required, X-Stripe-Privileged-Session-Required',
      'access-control-allow-origin': '*',
      'access-control-allow-methods': 'GET, HEAD, PUT, PATCH, POST, DELETE',
      'access-control-allow-credentials': 'true',
      connection: 'keep-alive',
      'content-length': '297',
      'content-type': 'application/json',
      date: 'Fri, 01 May 2026 09:27:13 GMT',
      server: 'nginx',
    headers: {
    doc_url: 'https://stripe.com/docs/error-codes/api-key-expired',
    code: 'api_key_expired',
    type: 'api_error',
    message: 'Expired API Key provided: sk_live_*********************************************************************************************vabRyX',
  raw: {
  type: 'StripeAuthenticationError',
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
    at res.toJSON.then.Error_js_1.StripeAPIError.message (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/stripe/cjs/RequestSender.js:96:31)
Stripe /get error: StripeAuthenticationError: Expired API Key provided: sk_live_*********************************************************************************************vabRyX
}
  source: undefined
  setup_intent: undefined,
  payment_method_type: undefined,
  payment_method: undefined,
  payment_intent: undefined,
  decline_code: undefined,
  charge: undefined,
  userMessage: undefined,
  statusCode: 401,
  requestId: undefined,
  },
    'strict-transport-security': 'max-age=63072000; includeSubDomains; preload'
    'x-wc': '3c3',
    vary: 'Origin',
    'stripe-version': '2025-08-27.basil',
    'reporting-endpoints': 'csp="https://q.stripe.com/csp-report-v2?q=9wsTI0ddL0s-6WNLuIRPxcE6LvOWJONq0JOotwbYu8bE0YMyGM8FCIWCzmv8lG3p6qtUSCi2psU5lruE&t=1"',
    'report-to': '{"group":"csp","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/csp-report-v2?q=9wsTI0ddL0s-6WNLuIRPxcE6LvOWJONq0JOotwbYu8bE0YMyGM8FCIWCzmv8lG3p6qtUSCi2psU5lruE&t=1"}],"include_subdomains":true}',
    'content-security-policy': "base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=9wsTI0ddL0s-6WNLuIRPxcE6LvOWJONq0JOotwbYu8bE0YMyGM8FCIWCzmv8lG3p6qtUSCi2psU5lruE",
    'access-control-max-age': '300',
    'access-control-expose-headers': 'Request-Id, Stripe-Manage-Version, Stripe-Should-Retry, X-Stripe-External-Auth-Required, X-Stripe-Privileged-Session-Required',
    'access-control-allow-origin': '*',
    'access-control-allow-methods': 'GET, HEAD, PUT, PATCH, POST, DELETE',
    'access-control-allow-credentials': 'true',
    connection: 'keep-alive',
    'content-length': '297',
    'content-type': 'application/json',
    date: 'Fri, 01 May 2026 08:53:32 GMT',
    server: 'nginx',
  headers: {
  detail: undefined,
  param: undefined,
  doc_url: 'https://stripe.com/docs/error-codes/api-key-expired',
  code: 'api_key_expired',
  rawType: 'api_error',
  },
    requestId: undefined
    statusCode: 401,
    },
      'strict-transport-security': 'max-age=63072000; includeSubDomains; preload'
      'x-wc': '3c3',
      vary: 'Origin',
      'stripe-version': '2025-08-27.basil',
      'reporting-endpoints': 'csp="https://q.stripe.com/csp-report-v2?q=9wsTI0ddL0s-6WNLuIRPxcE6LvOWJONq0JOotwbYu8bE0YMyGM8FCIWCzmv8lG3p6qtUSCi2psU5lruE&t=1"',
      'report-to': '{"group":"csp","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/csp-report-v2?q=9wsTI0ddL0s-6WNLuIRPxcE6LvOWJONq0JOotwbYu8bE0YMyGM8FCIWCzmv8lG3p6qtUSCi2psU5lruE&t=1"}],"include_subdomains":true}',
      'content-security-policy': "base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=9wsTI0ddL0s-6WNLuIRPxcE6LvOWJONq0JOotwbYu8bE0YMyGM8FCIWCzmv8lG3p6qtUSCi2psU5lruE",
      'access-control-max-age': '300',
      'access-control-expose-headers': 'Request-Id, Stripe-Manage-Version, Stripe-Should-Retry, X-Stripe-External-Auth-Required, X-Stripe-Privileged-Session-Required',
      'access-control-allow-origin': '*',
      'access-control-allow-methods': 'GET, HEAD, PUT, PATCH, POST, DELETE',
      'access-control-allow-credentials': 'true',
      connection: 'keep-alive',
      'content-length': '297',
      'content-type': 'application/json',
      date: 'Fri, 01 May 2026 08:53:32 GMT',
      server: 'nginx',
    headers: {
    doc_url: 'https://stripe.com/docs/error-codes/api-key-expired',
    code: 'api_key_expired',
    type: 'api_error',
    message: 'Expired API Key provided: sk_live_*********************************************************************************************vabRyX',
  raw: {
  type: 'StripeAuthenticationError',
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
    at res.toJSON.then.Error_js_1.StripeAPIError.message (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/stripe/cjs/RequestSender.js:96:31)
Stripe /get error: StripeAuthenticationError: Expired API Key provided: sk_live_*********************************************************************************************vabRyX
}
  source: undefined
  setup_intent: undefined,
  payment_method_type: undefined,
  payment_method: undefined,
  payment_intent: undefined,
  decline_code: undefined,
  charge: undefined,
  userMessage: undefined,
  statusCode: 401,
  requestId: undefined,
  },
    'strict-transport-security': 'max-age=63072000; includeSubDomains; preload'
    'x-wc': '3c3',
    vary: 'Origin',
    'stripe-version': '2025-08-27.basil',
    'reporting-endpoints': 'csp="https://q.stripe.com/csp-report-v2?q=syXfrDIWjknd7gJyq2c8hsC-cuZKohwQSj_XICsAQYW55CjHXOClNe8ZOP5Q6U8zP5XgkvuR1FCSD4CT&t=1"',
    'report-to': '{"group":"csp","max_age":8640,"endpoints":[{"url":"https://q.stripe.com/csp-report-v2?q=syXfrDIWjknd7gJyq2c8hsC-cuZKohwQSj_XICsAQYW55CjHXOClNe8ZOP5Q6U8zP5XgkvuR1FCSD4CT&t=1"}],"include_subdomains":true}',
    'content-security-policy': "base-uri 'none'; default-src 'none'; form-action 'none'; frame-ancestors 'none'; img-src 'self'; script-src 'self' 'report-sample'; style-src 'self'; worker-src 'none'; upgrade-insecure-requests; report-uri https://q.stripe.com/csp-violation?q=syXfrDIWjknd7gJyq2c8hsC-cuZKohwQSj_XICsAQYW55CjHXOClNe8ZOP5Q6U8zP5XgkvuR1FCSD4CT",
    'access-control-max-age': '300',

}
  }
    last_profile_name: 'as'
    chart_service_transit_location_v1: '{"town":"Sydney, New South Wales, Australia","lat":-33.86785,"lng":151.20732,"timeOffset":"600","zoneName":"Australia/Sydney","dst":false}',
    chart_service_user2_id: '69a9700cd35359c86668be47',
    last_profile_big_three: '{"sun":{"sign":"Capricorn","degree":9,"minutes":54,"house":"10"},"moon":{"sign":"Scorpio","degree":7,"minutes":48,"house":"8"},"ascendant":{"sign":"Pisces","degree":23,"minutes":50,"house":"1"}}',
    darkMode: 'classic',
    theme: 'classic',
    chart_service_user1_id: '69d8d52e81a47c4ec41b0cd5',
    bg_scroll_with_content: true,
    bg_flush: 0.05,
    bg_opacity: 0.25,
    bg_source: '',
    isReward: false,
    isInterstitial: false,
    isAddEnable: true,
    notifyTransits: false,
    notifyForecasts: 'none',
    astrotarot: 'astrotarot',
    language: 'en',
    showForecastDuration: false,
    saveJournals: true,
    useOldUI: false,
    themeMode: 'light',
    showPsyche: false,
    showEros: false,
    showFortune: false,
    showEris: false,
    showVesta: false,
    showLilith: true,
    showPallas: true,
    showJuno: true,
    showCeres: true,
    showChiron: true,
    coord_display_format: 'decimals',
    overlap: false,
    isMinor: true,
    showAspects: true,
    showPlanets: true,
    isSmart: false,
    horoscopeOrb: 2,
    relationshipOrb: 3.4011087057473777,
    orb: 8.565518978092221,
    timeSystem: 'W',
    houseSystem: 'P',
  settings: {
  __v: 0,
  data: null,
  mainUserId: 'usman@testing.com',
  lng: 74.35071,
  lat: 31.558,
  birthLocation: 'Lahore, Punjab, Pakistan',
  timezone: '360',
  time: '6:00 PM',
  name: 'oldAstro',
  profileId: '69d8d52e81a47c4ec41b0cd5',
  uid: 'usman@testing.com',
  _id: 69d8d52e81a47c4ec41b0cd5,
  },
    avgs: { chartpickuser: 8.28, chartview: 5.41 }
    pagecounts: { chartpickuser: 1, chartview: 1 },
  stats: {
  isMigrated: false,
  isDeleted: false,
  mainUser: false,
  manual: false,
  year: 2002,
  month: 6,
  day: 12,
Updated data: {
}
  }
    last_profile_name: 'as'
    chart_service_transit_location_v1: '{"town":"Sydney, New South Wales, Australia","lat":-33.86785,"lng":151.20732,"timeOffset":"600","zoneName":"Australia/Sydney","dst":false}',
    chart_service_user2_id: '69a9700cd35359c86668be47',
    last_profile_big_three: '{"sun":{"sign":"Capricorn","degree":9,"minutes":54,"house":"10"},"moon":{"sign":"Scorpio","degree":7,"minutes":48,"house":"8"},"ascendant":{"sign":"Pisces","degree":23,"minutes":50,"house":"1"}}',
    darkMode: 'classic',
    theme: 'classic',
    chart_service_user1_id: '69d8d52e81a47c4ec41b0cd5',
    bg_scroll_with_content: true,
    bg_flush: 0.05,
    bg_opacity: 0.25,
    bg_source: '',
    isReward: false,
    isInterstitial: false,
    isAddEnable: true,
    notifyTransits: false,
    notifyForecasts: 'none',
    astrotarot: 'astrotarot',
    language: 'en',
    showForecastDuration: false,
    saveJournals: true,
    useOldUI: false,
    themeMode: 'light',
    showPsyche: false,
    showEros: false,
    showFortune: false,
    showEris: false,
    showVesta: false,
    showLilith: true,
    showPallas: true,
    showJuno: true,
    showCeres: true,
    showChiron: true,
    coord_display_format: 'decimals',
    overlap: false,
    isMinor: true,
    showAspects: true,
    showPlanets: true,
    isSmart: false,
    horoscopeOrb: 2,
    relationshipOrb: 3.4011087057473777,
    orb: 8.565518978092221,
    timeSystem: 'W',
    houseSystem: 'P',
  settings: {
  __v: 0,
  data: null,
  mainUserId: 'usman@testing.com',
  lng: 74.35071,
  lat: 31.558,
  birthLocation: 'Lahore, Punjab, Pakistan',
  timezone: '360',
  time: '6:00 PM',
  name: 'oldAstro',
  profileId: '69d8d52e81a47c4ec41b0cd5',
  uid: 'usman@testing.com',
  _id: 69d8d52e81a47c4ec41b0cd5,
  stats: { pagecounts: { chartpickuser: 1 }, avgs: { chartpickuser: 8.28 } },
  isMigrated: false,
  isDeleted: false,
  mainUser: false,
  manual: false,
  year: 2002,
  month: 6,
  day: 12,
Updated data: {
}
  }
    last_profile_name: 'as'
    chart_service_transit_location_v1: '{"town":"Sydney, New South Wales, Australia","lat":-33.86785,"lng":151.20732,"timeOffset":"600","zoneName":"Australia/Sydney","dst":false}',
    chart_service_user2_id: '69a9700cd35359c86668be47',
    last_profile_big_three: '{"sun":{"sign":"Capricorn","degree":9,"minutes":54,"house":"10"},"moon":{"sign":"Scorpio","degree":7,"minutes":48,"house":"8"},"ascendant":{"sign":"Pisces","degree":23,"minutes":50,"house":"1"}}',
    darkMode: 'classic',
    theme: 'classic',
    chart_service_user1_id: '69d8d52e81a47c4ec41b0cd5',
    bg_scroll_with_content: true,
    bg_flush: 0.05,
    bg_opacity: 0.25,
    bg_source: '',
    isReward: false,
    isInterstitial: false,
    isAddEnable: true,
    notifyTransits: false,
    notifyForecasts: 'none',
    astrotarot: 'astrotarot',
    language: 'en',
    showForecastDuration: false,
    saveJournals: true,
    useOldUI: false,
    themeMode: 'light',
    showPsyche: false,
    showEros: false,
    showFortune: false,
    showEris: false,
    showVesta: false,
    showLilith: true,
    showPallas: true,
    showJuno: true,
    showCeres: true,
    showChiron: true,
    coord_display_format: 'decimals',
    overlap: false,
    isMinor: true,
    showAspects: true,
    showPlanets: true,
    isSmart: false,
    horoscopeOrb: 2,
    relationshipOrb: 3.4011087057473777,
    orb: 8.565518978092221,
    timeSystem: 'W',
    houseSystem: 'P',
  settings: {
  __v: 0,
  data: null,
  mainUserId: 'usman@testing.com',
  lng: 74.35071,
  lat: 31.558,
  birthLocation: 'Lahore, Punjab, Pakistan',
  timezone: '360',
  time: '6:00 PM',
  name: 'oldAstro',
  profileId: '69d8d52e81a47c4ec41b0cd5',
  uid: 'usman@testing.com',
  _id: 69d8d52e81a47c4ec41b0cd5,
  isMigrated: false,
  isDeleted: false,
  mainUser: false,
  manual: false,
  year: 2002,
  month: 6,
  day: 12,
Updated data: {
[PAYMENT] No payment found for uid: usman@testing.com
}
  __v: 0
  data: '{"big3":{"sun":{"sign":"Capricorn","degree":9,"minutes":54,"house":"10"},"moon":{"sign":"Scorpio","degree":7,"minutes":48,"house":"8"},"ascendant":{"sign":"Pisces","degree":23,"minutes":50,"house":"1"}}}',
  },
    last_profile_name: 'as'
    chart_service_transit_location_v1: '{"town":"Sydney, New South Wales, Australia","lat":-33.86785,"lng":151.20732,"timeOffset":"600","zoneName":"Australia/Sydney","dst":false}',
    chart_service_user2_id: '69a9700cd35359c86668be47',
    last_profile_big_three: '{"sun":{"sign":"Capricorn","degree":9,"minutes":54,"house":"10"},"moon":{"sign":"Scorpio","degree":7,"minutes":48,"house":"8"},"ascendant":{"sign":"Pisces","degree":23,"minutes":50,"house":"1"}}',
    darkMode: 'classic',
    theme: 'classic',
    chart_service_user1_id: '69dcf6bfb3b1db1fcf95e5d0',
    bg_scroll_with_content: true,
    bg_flush: 0.05,
    bg_opacity: 0.25,
    bg_source: '',
    isReward: false,
    isInterstitial: false,
    isAddEnable: true,
    notifyTransits: false,
    notifyForecasts: 'none',
    astrotarot: 'astrotarot',
    language: 'en',
    showForecastDuration: false,
    saveJournals: true,
    useOldUI: false,
    themeMode: 'light',
    showPsyche: false,
    showEros: false,
    showFortune: false,
    showEris: false,
    showVesta: false,
    showLilith: true,
    showPallas: true,
    showJuno: true,
    showCeres: true,
    showChiron: true,
    coord_display_format: 'decimals',
    overlap: false,
    isMinor: true,
    showAspects: true,
    showPlanets: true,
    isSmart: false,
    horoscopeOrb: 2,
    relationshipOrb: 3.4011087057473777,
    orb: 8.565518978092221,
    timeSystem: 'W',
    houseSystem: 'P',
  settings: {
  mainUserId: 'usman@testing.com',
  lng: 147.16,
  lat: -41.44,
  birthLocation: 'Newstead, Tasmania, Australia',
  timezone: '660',
  time: '12:00',
  name: 'this is new new',
  profileId: '69dcf6bfb3b1db1fcf95e5d0',
  uid: 'usman@testing.com',
  _id: 69dcf6bfb3b1db1fcf95e5d0,
  },
    }
      html_report: 11.368
      profile: 17.8915,
      calendars: 128.473,
      chartview: 56.13400000000001,
      journal_chart: 12.567666666666668,
      journal: 53.110571428571426,
      chartdaily: 29.822416666666665,
      tarot: 7.33,
      home: 44.60929999999999,
      facets: 98.31133333333334,
      login: 92.00204347826084,
      chartpickuser: 144.9905,
    avgs: {
    },
      html_report: 1
      profile: 2,
      calendars: 1,
      chartview: 3,
      journal_chart: 3,
      journal: 7,
      chartdaily: 12,
      tarot: 1,
      home: 10,
      facets: 6,
      login: 23,
      chartpickuser: 4,
    pagecounts: {
  stats: {
  isMigrated: false,
  isDeleted: false,
  mainUser: true,
  manual: false,
  year: 2000,
  month: 1,
  day: 1,
Updated data: {
[PAYMENT] No payment found for uid: usman@testing.com
C# API returned: OK
}
  }
    last_profile_name: 'as'
    chart_service_transit_location_v1: '{"town":"Sydney, New South Wales, Australia","lat":-33.86785,"lng":151.20732,"timeOffset":"600","zoneName":"Australia/Sydney","dst":false}',
    chart_service_user2_id: '69a9700cd35359c86668be47',
    last_profile_big_three: '{"sun":{"sign":"Capricorn","degree":9,"minutes":54,"house":"10"},"moon":{"sign":"Scorpio","degree":7,"minutes":48,"house":"8"},"ascendant":{"sign":"Pisces","degree":23,"minutes":50,"house":"1"}}',
    darkMode: 'classic',
    theme: 'classic',
    chart_service_user1_id: '69d8d52e81a47c4ec41b0cd5',
    bg_scroll_with_content: true,
    bg_flush: 0.05,
    bg_opacity: 0.25,
    bg_source: '',
    isReward: false,
    isInterstitial: false,
    isAddEnable: true,
    notifyTransits: false,
    notifyForecasts: 'none',
    astrotarot: 'astrotarot',
    language: 'en',
    showForecastDuration: false,
    saveJournals: true,
    useOldUI: false,
    themeMode: 'light',
    showPsyche: false,
    showEros: false,
    showFortune: false,
    showEris: false,
    showVesta: false,
    showLilith: true,
    showPallas: true,
    showJuno: true,
    showCeres: true,
    showChiron: true,
    coord_display_format: 'decimals',
    overlap: false,
    isMinor: true,
    showAspects: true,
    showPlanets: true,
    isSmart: false,
    horoscopeOrb: 2,
    relationshipOrb: 3.4011087057473777,
    orb: 8.565518978092221,
    timeSystem: 'W',
    houseSystem: 'P',
  settings: {
  __v: 0,
  data: null,
  mainUserId: 'usman@testing.com',
  lng: 74.35071,
  lat: 31.558,
  birthLocation: 'Lahore, Punjab, Pakistan',
  timezone: '360',
  time: '6:00 PM',
  name: 'oldAstro',
  profileId: '69d8d52e81a47c4ec41b0cd5',
  uid: 'usman@testing.com',
  _id: 69d8d52e81a47c4ec41b0cd5,
  },
    avgs: { home: 0.00175, journal: 53.848, facets: 21.175 }
    pagecounts: { home: 4, journal: 1, facets: 1 },
  stats: {
  isMigrated: false,
  isDeleted: false,
  mainUser: false,
  manual: false,
  year: 2002,
  month: 6,
  day: 12,
Updated data: {
}
  }
    last_profile_name: 'as'
    chart_service_transit_location_v1: '{"town":"Sydney, New South Wales, Australia","lat":-33.86785,"lng":151.20732,"timeOffset":"600","zoneName":"Australia/Sydney","dst":false}',
    chart_service_user2_id: '69a9700cd35359c86668be47',
    last_profile_big_three: '{"sun":{"sign":"Capricorn","degree":9,"minutes":54,"house":"10"},"moon":{"sign":"Scorpio","degree":7,"minutes":48,"house":"8"},"ascendant":{"sign":"Pisces","degree":23,"minutes":50,"house":"1"}}',
    darkMode: 'classic',
    theme: 'classic',
    chart_service_user1_id: '69d8d52e81a47c4ec41b0cd5',
    bg_scroll_with_content: true,
    bg_flush: 0.05,
    bg_opacity: 0.25,
    bg_source: '',
    isReward: false,
    isInterstitial: false,
    isAddEnable: true,
    notifyTransits: false,
    notifyForecasts: 'none',
    astrotarot: 'astrotarot',
    language: 'en',
    showForecastDuration: false,
    saveJournals: true,
    useOldUI: false,
    themeMode: 'light',
    showPsyche: false,
    showEros: false,
    showFortune: false,
    showEris: false,
    showVesta: false,
    showLilith: true,
    showPallas: true,
    showJuno: true,
    showCeres: true,
    showChiron: true,
    coord_display_format: 'decimals',
    overlap: false,
    isMinor: true,
    showAspects: true,
    showPlanets: true,
    isSmart: false,
    horoscopeOrb: 2,
    relationshipOrb: 3.4011087057473777,
    orb: 8.565518978092221,
    timeSystem: 'W',
    houseSystem: 'P',
  settings: {
  __v: 0,
  data: null,
  mainUserId: 'usman@testing.com',
  lng: 74.35071,
  lat: 31.558,
  birthLocation: 'Lahore, Punjab, Pakistan',
  timezone: '360',
  time: '6:00 PM',
  name: 'oldAstro',
  profileId: '69d8d52e81a47c4ec41b0cd5',
  uid: 'usman@testing.com',
  _id: 69d8d52e81a47c4ec41b0cd5,
  },
    avgs: { home: 0.00175, journal: 53.848, facets: 21.175 }
    pagecounts: { home: 4, journal: 1, facets: 1 },
  stats: {
  isMigrated: false,
  isDeleted: false,
  mainUser: false,
  manual: false,
  year: 2002,
  month: 6,
  day: 12,
Updated data: {
}
  }
    last_profile_name: 'as'
    chart_service_transit_location_v1: '{"town":"Sydney, New South Wales, Australia","lat":-33.86785,"lng":151.20732,"timeOffset":"600","zoneName":"Australia/Sydney","dst":false}',
    chart_service_user2_id: '69a9700cd35359c86668be47',
    last_profile_big_three: '{"sun":{"sign":"Capricorn","degree":9,"minutes":54,"house":"10"},"moon":{"sign":"Scorpio","degree":7,"minutes":48,"house":"8"},"ascendant":{"sign":"Pisces","degree":23,"minutes":50,"house":"1"}}',
    darkMode: 'classic',
    theme: 'classic',
    chart_service_user1_id: '69d8d52e81a47c4ec41b0cd5',
    bg_scroll_with_content: true,
    bg_flush: 0.05,
    bg_opacity: 0.25,
    bg_source: '',
    isReward: false,
    isInterstitial: false,
    isAddEnable: true,
    notifyTransits: false,
    notifyForecasts: 'none',
    astrotarot: 'astrotarot',
    language: 'en',
    showForecastDuration: false,
    saveJournals: true,
    useOldUI: false,
    themeMode: 'light',
    showPsyche: false,
    showEros: false,
    showFortune: false,
    showEris: false,
    showVesta: false,
    showLilith: true,
    showPallas: true,
    showJuno: true,
    showCeres: true,
    showChiron: true,
    coord_display_format: 'decimals',
    overlap: false,
    isMinor: true,
    showAspects: true,
    showPlanets: true,
    isSmart: false,
    horoscopeOrb: 2,
    relationshipOrb: 3.4011087057473777,
    orb: 8.565518978092221,
    timeSystem: 'W',
    houseSystem: 'P',
  settings: {
  __v: 0,
  data: null,
  mainUserId: 'usman@testing.com',
  lng: 74.35071,
  lat: 31.558,
  birthLocation: 'Lahore, Punjab, Pakistan',
  timezone: '360',
  time: '6:00 PM',
  name: 'oldAstro',
  profileId: '69d8d52e81a47c4ec41b0cd5',
  uid: 'usman@testing.com',
  _id: 69d8d52e81a47c4ec41b0cd5,

ALL LOGS (newest at top)

}
  }
    commonWireVersion: 13
    localThresholdMS: 15,
    heartbeatFrequencyMS: 10000,
    logicalSessionTimeoutMinutes: null,
    compatibilityError: null,
    compatible: true,
    stale: false,
    servers: Map(0) {},
    maxElectionId: null,
    maxSetVersion: null,
    setName: null,
    type: 'ReplicaSetNoPrimary',
  reason: TopologyDescription {
    at Module.load (node:internal/modules/cjs/loader:1197:32) {
    at Module._extensions..js (node:internal/modules/cjs/loader:1414:10)
    at Module._compile (node:internal/modules/cjs/loader:1356:14)
    at Object. (/usr/local/lib/node_modules/pm2/lib/ProcessContainerFork.js:33:23)
    at Module._load (node:internal/modules/cjs/loader:1013:12)
    at Module.load (node:internal/modules/cjs/loader:1197:32)
    at Module._extensions..js (node:internal/modules/cjs/loader:1414:10)
    at Module._compile (node:internal/modules/cjs/loader:1356:14)
    at Object. (/home/astromatrix-club/htdocs/club.astromatrix.org/message.js:58:13)
    at Mongoose.connect (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/index.js:350:20)
    at Mongoose._promiseOrCallback (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/index.js:1149:10)
    at promiseOrCallback (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/helpers/promiseOrCallback.js:31:10)
    at new Promise ()
    at /home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/helpers/promiseOrCallback.js:32:5
    at /home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/index.js:351:10
    at Connection.openUri (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/connection.js:847:32)
MongooseServerSelectionError: Server selection timed out after 30000 ms
}
  }
    commonWireVersion: 13
    localThresholdMS: 15,
    heartbeatFrequencyMS: 10000,
    logicalSessionTimeoutMinutes: null,
    compatibilityError: null,
    compatible: true,
    stale: false,
    servers: Map(0) {},
    maxElectionId: null,
    maxSetVersion: null,
    setName: null,
    type: 'ReplicaSetNoPrimary',
  reason: TopologyDescription {
    at Module.load (node:internal/modules/cjs/loader:1197:32) {
    at Module._extensions..js (node:internal/modules/cjs/loader:1414:10)
    at Module._compile (node:internal/modules/cjs/loader:1356:14)
    at Object. (/usr/local/lib/node_modules/pm2/lib/ProcessContainerFork.js:33:23)
    at Module._load (node:internal/modules/cjs/loader:1013:12)
    at Module.load (node:internal/modules/cjs/loader:1197:32)
    at Module._extensions..js (node:internal/modules/cjs/loader:1414:10)
    at Module._compile (node:internal/modules/cjs/loader:1356:14)
    at Object. (/home/astromatrix-club/htdocs/club.astromatrix.org/message.js:58:13)
    at Mongoose.connect (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/index.js:350:20)
    at Mongoose._promiseOrCallback (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/index.js:1149:10)
    at promiseOrCallback (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/helpers/promiseOrCallback.js:31:10)
    at new Promise ()
    at /home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/helpers/promiseOrCallback.js:32:5
    at /home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/index.js:351:10
    at Connection.openUri (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/connection.js:847:32)
MongooseServerSelectionError: Server selection timed out after 30000 ms
}
  }
    commonWireVersion: 13
    localThresholdMS: 15,
    heartbeatFrequencyMS: 10000,
    logicalSessionTimeoutMinutes: null,
    compatibilityError: null,
    compatible: true,
    stale: false,
    servers: Map(0) {},
    maxElectionId: null,
    maxSetVersion: null,
    setName: null,
    type: 'ReplicaSetNoPrimary',
  reason: TopologyDescription {
    at Module.load (node:internal/modules/cjs/loader:1197:32) {
    at Module._extensions..js (node:internal/modules/cjs/loader:1414:10)
    at Module._compile (node:internal/modules/cjs/loader:1356:14)
    at Object. (/usr/local/lib/node_modules/pm2/lib/ProcessContainerFork.js:33:23)
    at Module._load (node:internal/modules/cjs/loader:1013:12)
    at Module.load (node:internal/modules/cjs/loader:1197:32)
    at Module._extensions..js (node:internal/modules/cjs/loader:1414:10)
    at Module._compile (node:internal/modules/cjs/loader:1356:14)
    at Object. (/home/astromatrix-club/htdocs/club.astromatrix.org/message.js:58:13)
    at Mongoose.connect (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/index.js:350:20)
    at Mongoose._promiseOrCallback (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/index.js:1149:10)
    at promiseOrCallback (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/helpers/promiseOrCallback.js:31:10)
    at new Promise ()
    at /home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/helpers/promiseOrCallback.js:32:5
    at /home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/index.js:351:10
    at Connection.openUri (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/connection.js:847:32)
MongooseServerSelectionError: Server selection timed out after 30000 ms
}
  }
    commonWireVersion: 13
    localThresholdMS: 15,
    heartbeatFrequencyMS: 10000,
    logicalSessionTimeoutMinutes: null,
    compatibilityError: null,
    compatible: true,
    stale: false,
    servers: Map(0) {},
    maxElectionId: null,
    maxSetVersion: null,
    setName: null,
    type: 'ReplicaSetNoPrimary',
  reason: TopologyDescription {
    at Module.load (node:internal/modules/cjs/loader:1197:32) {
    at Module._extensions..js (node:internal/modules/cjs/loader:1414:10)
    at Module._compile (node:internal/modules/cjs/loader:1356:14)
    at Object. (/usr/local/lib/node_modules/pm2/lib/ProcessContainerFork.js:33:23)
    at Module._load (node:internal/modules/cjs/loader:1013:12)
    at Module.load (node:internal/modules/cjs/loader:1197:32)
    at Module._extensions..js (node:internal/modules/cjs/loader:1414:10)
    at Module._compile (node:internal/modules/cjs/loader:1356:14)
    at Object. (/home/astromatrix-club/htdocs/club.astromatrix.org/message.js:58:13)
    at Mongoose.connect (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/index.js:350:20)
    at Mongoose._promiseOrCallback (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/index.js:1149:10)
    at promiseOrCallback (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/helpers/promiseOrCallback.js:31:10)
    at new Promise ()
    at /home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/helpers/promiseOrCallback.js:32:5
    at /home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/index.js:351:10
    at Connection.openUri (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/connection.js:847:32)
MongooseServerSelectionError: Server selection timed out after 30000 ms
}
  }
    commonWireVersion: 13
    localThresholdMS: 15,
    heartbeatFrequencyMS: 10000,
    logicalSessionTimeoutMinutes: null,
    compatibilityError: null,
    compatible: true,
    stale: false,
    servers: Map(0) {},
    maxElectionId: null,
    maxSetVersion: null,
    setName: null,
    type: 'ReplicaSetNoPrimary',
  reason: TopologyDescription {
    at Module.load (node:internal/modules/cjs/loader:1197:32) {
    at Module._extensions..js (node:internal/modules/cjs/loader:1414:10)
    at Module._compile (node:internal/modules/cjs/loader:1356:14)
    at Object. (/usr/local/lib/node_modules/pm2/lib/ProcessContainerFork.js:33:23)
    at Module._load (node:internal/modules/cjs/loader:1013:12)
    at Module.load (node:internal/modules/cjs/loader:1197:32)
    at Module._extensions..js (node:internal/modules/cjs/loader:1414:10)
    at Module._compile (node:internal/modules/cjs/loader:1356:14)
    at Object. (/home/astromatrix-club/htdocs/club.astromatrix.org/message.js:58:13)
    at Mongoose.connect (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/index.js:350:20)
    at Mongoose._promiseOrCallback (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/index.js:1149:10)
    at promiseOrCallback (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/helpers/promiseOrCallback.js:31:10)
    at new Promise ()
    at /home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/helpers/promiseOrCallback.js:32:5
    at /home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/index.js:351:10
    at Connection.openUri (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/connection.js:847:32)
MongooseServerSelectionError: Server selection timed out after 30000 ms
}
  }
    commonWireVersion: 13
    localThresholdMS: 15,
    heartbeatFrequencyMS: 10000,
    logicalSessionTimeoutMinutes: null,
    compatibilityError: null,
    compatible: true,
    stale: false,
    servers: Map(0) {},
    maxElectionId: null,
    maxSetVersion: null,
    setName: null,
    type: 'ReplicaSetNoPrimary',
  reason: TopologyDescription {
    at Module.load (node:internal/modules/cjs/loader:1197:32) {
    at Module._extensions..js (node:internal/modules/cjs/loader:1414:10)
    at Module._compile (node:internal/modules/cjs/loader:1356:14)
    at Object. (/usr/local/lib/node_modules/pm2/lib/ProcessContainerFork.js:33:23)
    at Module._load (node:internal/modules/cjs/loader:1013:12)
    at Module.load (node:internal/modules/cjs/loader:1197:32)
    at Module._extensions..js (node:internal/modules/cjs/loader:1414:10)
    at Module._compile (node:internal/modules/cjs/loader:1356:14)
    at Object. (/home/astromatrix-club/htdocs/club.astromatrix.org/message.js:58:13)
    at Mongoose.connect (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/index.js:350:20)
    at Mongoose._promiseOrCallback (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/index.js:1149:10)
    at promiseOrCallback (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/helpers/promiseOrCallback.js:31:10)
    at new Promise ()
    at /home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/helpers/promiseOrCallback.js:32:5
    at /home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/index.js:351:10
    at Connection.openUri (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/connection.js:847:32)
MongooseServerSelectionError: Server selection timed out after 30000 ms
}
  }
    commonWireVersion: 13
    localThresholdMS: 15,
    heartbeatFrequencyMS: 10000,
    logicalSessionTimeoutMinutes: null,
    compatibilityError: null,
    compatible: true,
    stale: false,
    servers: Map(0) {},
    maxElectionId: null,
    maxSetVersion: null,
    setName: null,
    type: 'ReplicaSetNoPrimary',
  reason: TopologyDescription {
    at Module.load (node:internal/modules/cjs/loader:1197:32) {
    at Module._extensions..js (node:internal/modules/cjs/loader:1414:10)
    at Module._compile (node:internal/modules/cjs/loader:1356:14)
    at Object. (/usr/local/lib/node_modules/pm2/lib/ProcessContainerFork.js:33:23)
    at Module._load (node:internal/modules/cjs/loader:1013:12)
    at Module.load (node:internal/modules/cjs/loader:1197:32)
    at Module._extensions..js (node:internal/modules/cjs/loader:1414:10)
    at Module._compile (node:internal/modules/cjs/loader:1356:14)
    at Object. (/home/astromatrix-club/htdocs/club.astromatrix.org/message.js:58:13)
    at Mongoose.connect (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/index.js:350:20)
    at Mongoose._promiseOrCallback (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/index.js:1149:10)
    at promiseOrCallback (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/helpers/promiseOrCallback.js:31:10)
    at new Promise ()
    at /home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/helpers/promiseOrCallback.js:32:5
    at /home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/index.js:351:10
    at Connection.openUri (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/connection.js:847:32)
MongooseServerSelectionError: Server selection timed out after 30000 ms
}
  }
    commonWireVersion: 13
    localThresholdMS: 15,
    heartbeatFrequencyMS: 10000,
    logicalSessionTimeoutMinutes: null,
    compatibilityError: null,
    compatible: true,
    stale: false,
    servers: Map(0) {},
    maxElectionId: null,
    maxSetVersion: null,
    setName: null,
    type: 'ReplicaSetNoPrimary',
  reason: TopologyDescription {
    at Module.load (node:internal/modules/cjs/loader:1197:32) {
    at Module._extensions..js (node:internal/modules/cjs/loader:1414:10)
    at Module._compile (node:internal/modules/cjs/loader:1356:14)
    at Object. (/usr/local/lib/node_modules/pm2/lib/ProcessContainerFork.js:33:23)
    at Module._load (node:internal/modules/cjs/loader:1013:12)
    at Module.load (node:internal/modules/cjs/loader:1197:32)
    at Module._extensions..js (node:internal/modules/cjs/loader:1414:10)
    at Module._compile (node:internal/modules/cjs/loader:1356:14)
    at Object. (/home/astromatrix-club/htdocs/club.astromatrix.org/message.js:58:13)
    at Mongoose.connect (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/index.js:350:20)
    at Mongoose._promiseOrCallback (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/index.js:1149:10)
    at promiseOrCallback (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/helpers/promiseOrCallback.js:31:10)
    at new Promise ()
    at /home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/helpers/promiseOrCallback.js:32:5
    at /home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/index.js:351:10
    at Connection.openUri (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/connection.js:847:32)
MongooseServerSelectionError: Server selection timed out after 30000 ms
}
  }
    commonWireVersion: 13
    localThresholdMS: 15,
    heartbeatFrequencyMS: 10000,
    logicalSessionTimeoutMinutes: null,
    compatibilityError: null,
    compatible: true,
    stale: false,
    servers: Map(0) {},
    maxElectionId: null,
    maxSetVersion: null,
    setName: null,
    type: 'ReplicaSetNoPrimary',
  reason: TopologyDescription {
    at Module.load (node:internal/modules/cjs/loader:1197:32) {
    at Module._extensions..js (node:internal/modules/cjs/loader:1414:10)
    at Module._compile (node:internal/modules/cjs/loader:1356:14)
    at Object. (/usr/local/lib/node_modules/pm2/lib/ProcessContainerFork.js:33:23)
    at Module._load (node:internal/modules/cjs/loader:1013:12)
    at Module.load (node:internal/modules/cjs/loader:1197:32)
    at Module._extensions..js (node:internal/modules/cjs/loader:1414:10)
    at Module._compile (node:internal/modules/cjs/loader:1356:14)
    at Object. (/home/astromatrix-club/htdocs/club.astromatrix.org/message.js:58:13)
    at Mongoose.connect (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/index.js:350:20)
    at Mongoose._promiseOrCallback (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/index.js:1149:10)
    at promiseOrCallback (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/helpers/promiseOrCallback.js:31:10)
    at new Promise ()
    at /home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/helpers/promiseOrCallback.js:32:5
    at /home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/index.js:351:10
    at Connection.openUri (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/connection.js:847:32)
MongooseServerSelectionError: Server selection timed out after 30000 ms
}
  }
    commonWireVersion: 13
    localThresholdMS: 15,
    heartbeatFrequencyMS: 10000,
    logicalSessionTimeoutMinutes: null,
    compatibilityError: null,
    compatible: true,
    stale: false,
    servers: Map(0) {},
    maxElectionId: null,
    maxSetVersion: null,
    setName: null,
    type: 'ReplicaSetNoPrimary',
  reason: TopologyDescription {
    at Module.load (node:internal/modules/cjs/loader:1197:32) {
    at Module._extensions..js (node:internal/modules/cjs/loader:1414:10)
    at Module._compile (node:internal/modules/cjs/loader:1356:14)
    at Object. (/usr/local/lib/node_modules/pm2/lib/ProcessContainerFork.js:33:23)
    at Module._load (node:internal/modules/cjs/loader:1013:12)
    at Module.load (node:internal/modules/cjs/loader:1197:32)
    at Module._extensions..js (node:internal/modules/cjs/loader:1414:10)
    at Module._compile (node:internal/modules/cjs/loader:1356:14)
    at Object. (/home/astromatrix-club/htdocs/club.astromatrix.org/message.js:58:13)
    at Mongoose.connect (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/index.js:350:20)
    at Mongoose._promiseOrCallback (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/index.js:1149:10)
    at promiseOrCallback (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/helpers/promiseOrCallback.js:31:10)
    at new Promise ()
    at /home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/helpers/promiseOrCallback.js:32:5
    at /home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/index.js:351:10
    at Connection.openUri (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/connection.js:847:32)
MongooseServerSelectionError: Server selection timed out after 30000 ms
}
  }
    commonWireVersion: 13
    localThresholdMS: 15,
    heartbeatFrequencyMS: 10000,
    logicalSessionTimeoutMinutes: null,
    compatibilityError: null,
    compatible: true,
    stale: false,
    servers: Map(0) {},
    maxElectionId: null,
    maxSetVersion: null,
    setName: null,
    type: 'ReplicaSetNoPrimary',
  reason: TopologyDescription {
    at Module.load (node:internal/modules/cjs/loader:1197:32) {
    at Module._extensions..js (node:internal/modules/cjs/loader:1414:10)
    at Module._compile (node:internal/modules/cjs/loader:1356:14)
    at Object. (/usr/local/lib/node_modules/pm2/lib/ProcessContainerFork.js:33:23)
    at Module._load (node:internal/modules/cjs/loader:1013:12)
    at Module.load (node:internal/modules/cjs/loader:1197:32)
    at Module._extensions..js (node:internal/modules/cjs/loader:1414:10)
    at Module._compile (node:internal/modules/cjs/loader:1356:14)
    at Object. (/home/astromatrix-club/htdocs/club.astromatrix.org/message.js:58:13)
    at Mongoose.connect (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/index.js:350:20)
    at Mongoose._promiseOrCallback (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/index.js:1149:10)
    at promiseOrCallback (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/helpers/promiseOrCallback.js:31:10)
    at new Promise ()
    at /home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/helpers/promiseOrCallback.js:32:5
    at /home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/index.js:351:10
    at Connection.openUri (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/connection.js:847:32)
MongooseServerSelectionError: Server selection timed out after 30000 ms
}
  }
    commonWireVersion: 13
    localThresholdMS: 15,
    heartbeatFrequencyMS: 10000,
    logicalSessionTimeoutMinutes: null,
    compatibilityError: null,
    compatible: true,
    stale: false,
    servers: Map(0) {},
    maxElectionId: null,
    maxSetVersion: null,
    setName: null,
    type: 'ReplicaSetNoPrimary',
  reason: TopologyDescription {
    at Module.load (node:internal/modules/cjs/loader:1197:32) {
    at Module._extensions..js (node:internal/modules/cjs/loader:1414:10)
    at Module._compile (node:internal/modules/cjs/loader:1356:14)
    at Object. (/usr/local/lib/node_modules/pm2/lib/ProcessContainerFork.js:33:23)
    at Module._load (node:internal/modules/cjs/loader:1013:12)
    at Module.load (node:internal/modules/cjs/loader:1197:32)
    at Module._extensions..js (node:internal/modules/cjs/loader:1414:10)
    at Module._compile (node:internal/modules/cjs/loader:1356:14)
    at Object. (/home/astromatrix-club/htdocs/club.astromatrix.org/message.js:58:13)
    at Mongoose.connect (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/index.js:350:20)
    at Mongoose._promiseOrCallback (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/index.js:1149:10)
    at promiseOrCallback (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/helpers/promiseOrCallback.js:31:10)
    at new Promise ()
    at /home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/helpers/promiseOrCallback.js:32:5
    at /home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/index.js:351:10
    at Connection.openUri (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/connection.js:847:32)
MongooseServerSelectionError: Server selection timed out after 30000 ms
}
  }
    commonWireVersion: 13
    localThresholdMS: 15,
    heartbeatFrequencyMS: 10000,
    logicalSessionTimeoutMinutes: null,
    compatibilityError: null,
    compatible: true,
    stale: false,
    servers: Map(0) {},
    maxElectionId: null,
    maxSetVersion: null,
    setName: null,
    type: 'ReplicaSetNoPrimary',
  reason: TopologyDescription {
    at Module.load (node:internal/modules/cjs/loader:1197:32) {
    at Module._extensions..js (node:internal/modules/cjs/loader:1414:10)
    at Module._compile (node:internal/modules/cjs/loader:1356:14)
    at Object. (/usr/local/lib/node_modules/pm2/lib/ProcessContainerFork.js:33:23)
    at Module._load (node:internal/modules/cjs/loader:1013:12)
    at Module.load (node:internal/modules/cjs/loader:1197:32)
    at Module._extensions..js (node:internal/modules/cjs/loader:1414:10)
    at Module._compile (node:internal/modules/cjs/loader:1356:14)
    at Object. (/home/astromatrix-club/htdocs/club.astromatrix.org/message.js:58:13)
    at Mongoose.connect (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/index.js:350:20)
    at Mongoose._promiseOrCallback (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/index.js:1149:10)
    at promiseOrCallback (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/helpers/promiseOrCallback.js:31:10)
    at new Promise ()
    at /home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/helpers/promiseOrCallback.js:32:5
    at /home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/index.js:351:10
    at Connection.openUri (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/connection.js:847:32)
MongooseServerSelectionError: Server selection timed out after 30000 ms
}
  }
    commonWireVersion: 13
    localThresholdMS: 15,
    heartbeatFrequencyMS: 10000,
    logicalSessionTimeoutMinutes: null,
    compatibilityError: null,
    compatible: true,
    stale: false,
    servers: Map(0) {},
    maxElectionId: null,
    maxSetVersion: null,
    setName: null,
    type: 'ReplicaSetNoPrimary',
  reason: TopologyDescription {
    at Module.load (node:internal/modules/cjs/loader:1197:32) {
    at Module._extensions..js (node:internal/modules/cjs/loader:1414:10)
    at Module._compile (node:internal/modules/cjs/loader:1356:14)
    at Object. (/usr/local/lib/node_modules/pm2/lib/ProcessContainerFork.js:33:23)
    at Module._load (node:internal/modules/cjs/loader:1013:12)
    at Module.load (node:internal/modules/cjs/loader:1197:32)
    at Module._extensions..js (node:internal/modules/cjs/loader:1414:10)
    at Module._compile (node:internal/modules/cjs/loader:1356:14)
    at Object. (/home/astromatrix-club/htdocs/club.astromatrix.org/message.js:58:13)
    at Mongoose.connect (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/index.js:350:20)
    at Mongoose._promiseOrCallback (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/index.js:1149:10)
    at promiseOrCallback (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/helpers/promiseOrCallback.js:31:10)
    at new Promise ()
    at /home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/helpers/promiseOrCallback.js:32:5
    at /home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/index.js:351:10
    at Connection.openUri (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/connection.js:847:32)
MongooseServerSelectionError: Server selection timed out after 30000 ms
}
  }
    commonWireVersion: 13
    localThresholdMS: 15,
    heartbeatFrequencyMS: 10000,
    logicalSessionTimeoutMinutes: null,
    compatibilityError: null,
    compatible: true,
    stale: false,
    servers: Map(0) {},
    maxElectionId: null,
    maxSetVersion: null,
    setName: null,
    type: 'ReplicaSetNoPrimary',
  reason: TopologyDescription {
    at Module.load (node:internal/modules/cjs/loader:1197:32) {
    at Module._extensions..js (node:internal/modules/cjs/loader:1414:10)
    at Module._compile (node:internal/modules/cjs/loader:1356:14)
    at Object. (/usr/local/lib/node_modules/pm2/lib/ProcessContainerFork.js:33:23)
    at Module._load (node:internal/modules/cjs/loader:1013:12)
    at Module.load (node:internal/modules/cjs/loader:1197:32)
    at Module._extensions..js (node:internal/modules/cjs/loader:1414:10)
    at Module._compile (node:internal/modules/cjs/loader:1356:14)
    at Object. (/home/astromatrix-club/htdocs/club.astromatrix.org/message.js:58:13)
    at Mongoose.connect (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/index.js:350:20)
    at Mongoose._promiseOrCallback (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/index.js:1149:10)
    at promiseOrCallback (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/helpers/promiseOrCallback.js:31:10)
    at new Promise ()
    at /home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/helpers/promiseOrCallback.js:32:5
    at /home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/index.js:351:10
    at Connection.openUri (/home/astromatrix-club/htdocs/club.astromatrix.org/node_modules/mongoose/lib/connection.js:847:32)
MongooseServerSelectionError: Server selection timed out after 30000 ms
}
  }
    commonWireVersion: 13
    localThresholdMS: 15,
    heartbeatFrequencyMS: 10000,
    logicalSessionTimeoutMinutes: null,
    compatibilityError: null,
    compatible: true,
    stale: false,
    servers: Map(0) {},
    maxElectionId: null,
    maxSetVersion: null,
    setName: null,
    type: 'ReplicaSetNoPrimary',
  reason: TopologyDescription {
    at Module.load (node:internal/modules/cjs/loader:1197:32) {
    at Module._extensions..js (node:internal/modules/cjs/loader:1414:10)
    at Module._compile (node:internal/modules/cjs/loader:1356:14)
    at Object. (/usr/local/lib/node_modules/pm2/lib/ProcessContainerFork.js:33:23)
    at Module._load (node:internal/modules/cjs/loader:1013:12)

Http server is running on port 3012
Socket initialized
Socket event handlers initialized successfully
Socket.IO server created successfully
Starting socket initialization...
Http server is running on port 3012
Http server is running on port 3012
Socket initialized
Socket initialized
Socket event handlers initialized successfully
Socket.IO server created successfully
Socket event handlers initialized successfully
Socket.IO server created successfully
Starting socket initialization...
Starting socket initialization...
Http server is running on port 3012
Socket initialized
Socket event handlers initialized successfully
Socket.IO server created successfully
Starting socket initialization...
Http server is running on port 3012
Socket initialized
Socket event handlers initialized successfully
Socket.IO server created successfully
Starting socket initialization...
Http server is running on port 3012
Socket initialized
Socket event handlers initialized successfully
Socket.IO server created successfully
Starting socket initialization...
Http server is running on port 3012
Socket initialized
Socket event handlers initialized successfully
Socket.IO server created successfully
Starting socket initialization...
Http server is running on port 3012
Socket initialized
Socket event handlers initialized successfully
Socket.IO server created successfully
Starting socket initialization...
Http server is running on port 3012
Http server is running on port 3012
Socket initialized
Socket event handlers initialized successfully
Socket.IO server created successfully
Starting socket initialization...
Socket initialized
Socket event handlers initialized successfully
Socket.IO server created successfully
Starting socket initialization...
Http server is running on port 3012
Socket initialized
Socket event handlers initialized successfully
Socket.IO server created successfully
Starting socket initialization...
Http server is running on port 3012
Socket initialized
Socket event handlers initialized successfully
Socket.IO server created successfully
Starting socket initialization...
Http server is running on port 3012
Socket initialized
Socket event handlers initialized successfully
Socket.IO server created successfully
Http server is running on port 3012
Starting socket initialization...
Socket initialized
Socket event handlers initialized successfully
Socket.IO server created successfully
Starting socket initialization...
Http server is running on port 3012
Socket initialized
Socket event handlers initialized successfully
Socket.IO server created successfully
Starting socket initialization...
Http server is running on port 3012
Socket initialized
Socket event handlers initialized successfully
Socket.IO server created successfully
Starting socket initialization...

ALL LOGS (newest at top)

(node:52214) [MONGODB DRIVER] Warning: Current Server Discovery and Monitoring engine is deprecated, and will be removed in a future version. To use the new Server Discover and Monitoring engine, pass option { useUnifiedTopology: true } to the MongoClient constructor.
(Use `node --trace-deprecation ...` to show where the warning was created)
(node:52214) DeprecationWarning: current URL string parser is deprecated, and will be removed in a future version. To use the new parser, pass option { useNewUrlParser: true } to MongoClient.connect.
(node:32889) [MONGODB DRIVER] Warning: Current Server Discovery and Monitoring engine is deprecated, and will be removed in a future version. To use the new Server Discover and Monitoring engine, pass option { useUnifiedTopology: true } to the MongoClient constructor.
(Use `node --trace-deprecation ...` to show where the warning was created)
(node:32889) DeprecationWarning: current URL string parser is deprecated, and will be removed in a future version. To use the new parser, pass option { useNewUrlParser: true } to MongoClient.connect.

Listening at http://localhost:3111
Listening at http://localhost:3111

ALL LOGS (newest at top)


πŸ“Š History: /home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/reports/violations-history.json
πŸ“‚ Reports: /home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/reports
πŸ“‚ JSON: /home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/json
πŸ“‚ Repos: /home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos
πŸ“‚ Root: /home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org
πŸš€ Repo-check server running at http://localhost:5010
[dotenv@17.2.3] injecting env (5) from .env -- tip: βš™οΈ  override existing env vars with { override: true }
πŸ“Š History: /home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/reports/violations-history.json
πŸ“‚ Reports: /home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/reports
πŸ“‚ JSON: /home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/json
πŸ“‚ Repos: /home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos
πŸ“‚ Root: /home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org
πŸš€ Repo-check server running at http://localhost:5010
[dotenv@17.2.3] injecting env (5) from .env -- tip: βš™οΈ  override existing env vars with { override: true }

======================================================================
βœ… PIPELINE COMPLETE: astromatrix-flutter
======================================================================

βœ… All steps complete!

   βœ… tests complete
      ^
class MockComponentService extends ComponentService {
test/widgets/matrix_item_card_test.dart:11:7: Error: The superclass, 'ComponentService', has no unnamed constructor that takes no arguments.
        ^^^^^^^^^^^^^^
        MatrixItemCard(
test/widgets/matrix_item_card_test.dart:123:9: Error: Method not found: 'MatrixItemCard'.
        ^^^^^^^^^^^^^^
        MatrixItemCard(item: transitItem, isGrid: false),
test/widgets/matrix_item_card_test.dart:108:9: Error: Method not found: 'MatrixItemCard'.
        ^^^^^^^^^^^^^^
        MatrixItemCard(item: sampleItem, isGrid: false),
test/widgets/matrix_item_card_test.dart:91:9: Error: Method not found: 'MatrixItemCard'.
        ^^^^^^^^^^^^^^
        MatrixItemCard(item: sampleItem, isGrid: true),
test/widgets/matrix_item_card_test.dart:74:9: Error: Method not found: 'MatrixItemCard'.
         ^
  String getImageUrl(String imagePath, {String? category, String? componentName}) {
lib/services/component_service.dart:507:10: Context: This is the overridden method ('getImageUrl').
         ^
  String getImageUrl(String path) => 'https://mock.url/$path';
test/widgets/matrix_item_card_test.dart:13:10: Error: The method 'MockComponentService.getImageUrl' has fewer named arguments than those of overridden method 'ComponentService.getImageUrl'.
       ^
import 'package:astromatrix/widgets/matrix/matrix_item_card.dart';
test/widgets/matrix_item_card_test.dart:3:8: Error: Error when reading 'lib/widgets/matrix/matrix_item_card.dart': No such file or directory
        ^^^^^^^^^^^^^^^^^
        MatrixSummaryCard(
test/widgets/matrix_summary_card_test.dart:139:9: Error: Method not found: 'MatrixSummaryCard'.
        ^^^^^^^^^^^^^^^^^
        MatrixSummaryCard(
test/widgets/matrix_summary_card_test.dart:122:9: Error: Method not found: 'MatrixSummaryCard'.
        ^^^^^^^^^^^^^^^^^
        MatrixSummaryCard(
test/widgets/matrix_summary_card_test.dart:105:9: Error: Method not found: 'MatrixSummaryCard'.
        ^^^^^^^^^^^^^^^^^
        MatrixSummaryCard(
test/widgets/matrix_summary_card_test.dart:84:9: Error: Method not found: 'MatrixSummaryCard'.
                                   ^^^^^^^^^^^^^^^^^
      await tester.tap(find.byType(MatrixSummaryCard));
test/widgets/matrix_summary_card_test.dart:74:36: Error: Undefined name 'MatrixSummaryCard'.
        ^^^^^^^^^^^^^^^^^
        MatrixSummaryCard(
test/widgets/matrix_summary_card_test.dart:65:9: Error: Method not found: 'MatrixSummaryCard'.
        ^^^^^^^^^^^^^^^^^
        MatrixSummaryCard(
test/widgets/matrix_summary_card_test.dart:46:9: Error: Method not found: 'MatrixSummaryCard'.
        ^^^^^^^^^^^^^^^^^
        MatrixSummaryCard(
test/widgets/matrix_summary_card_test.dart:23:9: Error: Method not found: 'MatrixSummaryCard'.
      ^
class MockComponentService extends ComponentService {
test/widgets/pattern_card_test.dart:10:7: Error: The superclass, 'ComponentService', has no unnamed constructor that takes no arguments.
πŸ“Ž
  /
   We strongly recommend running the flutter tool without superuser privileges.
   Woah! You appear to be trying to run flutter as root.
πŸ“Ž
  /
   We strongly recommend running the flutter tool without superuser privileges.
   Woah! You appear to be trying to run flutter as root.
πŸ“Ž
  /
   We strongly recommend running the flutter tool without superuser privileges.
   Stderr: Woah! You appear to be trying to run flutter as root.
πŸŽ‰ Done!
βœ… Report generated at: reports/astromatrix-flutter-tests.html

πŸ“Š Parsing output...

πŸ§ͺ Running flutter tests (--machine)...

  Built with build_runner in 11s; wrote 0 outputs.
  Writing the asset graph.
  Running the post build.
  1s source_gen:combining_builder on 798 inputs: 798 skipped; spent 1sΒ tracking
  1s source_gen:combining_builder on 798 inputs: 563 skipped; spent 1sΒ tracking; lib/widgets/inhouse_ad_widget.freezed.dart
  0s source_gen:combining_builder on 798 inputs: 91 skipped; lib/di/service_locator.freezed.dart
  0s source_gen:combining_builder on 798 inputs; lib/config/chart_categories_config.dart
  3s json_serializable on 798 inputs: 798 skipped; spent 3sΒ tracking
  3s json_serializable on 798 inputs: 733 skipped; spent 3sΒ tracking; test/tarot_deeplink_coverage_test.freezed.dart
  2s json_serializable on 798 inputs: 641 skipped; spent 2sΒ tracking; test/component_deep_link_handler_test.freezed.dart
  1s json_serializable on 798 inputs: 315 skipped; lib/utils/affiliate_helper_mobile.freezed.dart
  0s json_serializable on 798 inputs; lib/config/chart_categories_config.dart
  0s freezed on 399 inputs: 399 skipped
  0s freezed on 399 inputs: 1 skipped; lib/config/chart_display_config.dart
  0s freezed on 399 inputs; lib/config/chart_categories_config.dart
  Building, incremental build.
  Updating the asset graph.
  Checking for updates.
  Reading the asset graph.
  Generating the build script.
βš™οΈ Running build_runner...

Try `flutter pub outdated` for more information.
121 packages have newer versions incompatible with dependency constraints.
Got dependencies!
  xml 6.5.0 (7.0.1 available)
  win32_registry 2.1.0 (3.0.3 available)
  win32 5.15.0 (6.1.0 available)
  webview_flutter_wkwebview 3.22.0 (3.25.1 available)
  webview_flutter_platform_interface 2.13.0 (2.15.1 available)
  webview_flutter_android 4.7.0 (4.12.0 available)
  webview_flutter 4.12.0 (4.13.1 available)
  watcher 1.1.4 (1.2.1 available)
  vm_service 14.3.0 (15.2.0 available)
  vector_math 2.2.0 (2.3.0 available)
  vector_graphics_compiler 1.1.19 (1.2.0 available)
  vector_graphics 1.1.19 (1.2.0 available)
  uuid 4.5.1 (4.5.3 available)
  url_launcher_windows 3.1.4 (3.1.5 available)
  url_launcher_web 2.4.1 (2.4.2 available)
  url_launcher_macos 3.2.2 (3.2.5 available)
  url_launcher_linux 3.2.1 (3.2.2 available)
  url_launcher_ios 6.3.3 (6.4.1 available)
  url_launcher_android 6.3.16 (6.3.29 available)
  timezone 0.10.1 (0.11.0 available)
  test_api 0.7.7 (0.7.12 available)
  term_glyph 1.2.1 (1.2.2 available)
  synchronized 3.4.0 (3.4.0+1 available)
  string_scanner 1.3.0 (1.4.1 available)
  sqflite_common 2.5.6 (2.5.6+1 available)
  sqflite_android 2.4.2+2 (2.4.2+3 available)
  sqflite 2.4.2 (2.4.2+1 available)
  source_span 1.10.0 (1.10.2 available)
  source_helper 1.3.7 (1.3.12 available)
  source_gen 2.0.0 (4.2.3 available)
  socket_io_client 3.1.2 (3.1.4 available)
  shared_preferences_platform_interface 2.4.1 (2.4.2 available)
  shared_preferences_foundation 2.5.4 (2.5.6 available)
  shared_preferences_android 2.4.10 (2.4.23 available)
  shared_preferences 2.5.3 (2.5.5 available)
  share_plus_platform_interface 6.1.0 (7.1.0 available)
  share_plus 12.0.0 (13.1.0 available)
  posix 6.0.2 (6.5.0 available)
  petitparser 6.0.2 (7.0.2 available)
! permission_handler 12.0.1 (overridden)
  path_provider_foundation 2.4.1 (2.6.0 available)
  path_provider_android 2.2.17 (2.3.1 available)
  package_info_plus_platform_interface 3.2.1 (4.1.0 available)
  package_info_plus 8.3.1 (10.1.0 available)
  mobile_scanner 6.0.11 (7.2.0 available)
  meta 1.17.0 (1.18.2 available)
  material_color_utilities 0.11.1 (0.13.0 available)
  matcher 0.12.17 (0.12.20 available)
  lottie 3.3.2 (3.3.3 available)
  lints 6.0.0 (6.1.0 available)
  json_serializable 6.9.5 (6.13.2 available)
  json_annotation 4.9.0 (4.11.0 available)
  js 0.6.7 (0.7.2 available)
  in_app_purchase_storekit 0.4.6 (0.4.8+1 available)
  in_app_purchase_android 0.4.0+5 (0.4.0+10 available)
  image 4.5.4 (4.8.0 available)
  http 1.5.0 (1.6.0 available)
  google_mobile_ads 6.0.0 (8.0.0 available)
  google_fonts 6.3.3 (8.1.0 available)
  get_it 7.7.0 (9.2.1 available)
  geolocator_linux 0.2.3 (0.2.4 available)
  geocoding_platform_interface 3.2.0 (5.0.0 available)
  geocoding_ios 3.0.1 (3.1.0 available)
  geocoding_android 4.0.1 (5.0.1 available)
  freezed_annotation 2.4.4 (3.1.0 available)
  freezed 2.5.8 (3.2.5 available)
  flutter_svg 2.2.3 (2.2.4 available)
  flutter_local_notifications_windows 1.0.3 (3.0.0 available)
  flutter_local_notifications_platform_interface 9.1.0 (11.0.0 available)
  flutter_local_notifications_linux 6.0.0 (8.0.0 available)
  flutter_local_notifications 19.4.2 (21.0.0 available)
  flutter_link_previewer 3.2.2 (4.2.0 available)
  flutter_inappwebview_internal_annotations 1.2.0 (1.3.0 available)
  flutter_chat_ui 1.6.15 (2.11.1 available)
  fl_chart 0.68.0 (1.2.0 available)
  firebase_messaging_web 4.0.2 (4.1.5 available)
  firebase_messaging_platform_interface 4.7.2 (4.7.9 available)
  firebase_messaging 16.0.2 (16.2.0 available)
  firebase_core_web 3.1.1 (3.6.0 available)
  firebase_core_platform_interface 6.0.1 (6.0.3 available)
  firebase_core 4.1.1 (4.7.0 available)
  firebase_analytics_web 0.6.0+2 (0.6.1+5 available)
  firebase_analytics_platform_interface 5.0.2 (5.1.1 available)
  firebase_analytics 12.0.2 (12.3.0 available)
  ffi 2.1.4 (2.2.0 available)
  equatable 2.0.7 (2.0.8 available)
  device_info_plus_platform_interface 7.0.3 (8.1.0 available)
  device_info_plus 12.1.0 (13.1.0 available)
  dbus 0.7.11 (0.7.12 available)
  dart_style 3.1.1 (3.1.9 available)
  cupertino_icons 1.0.8 (1.0.9 available)
  crypto 3.0.6 (3.0.7 available)
  cross_file 0.3.4+2 (0.3.5+2 available)
  connectivity_plus_platform_interface 1.2.4 (2.1.0 available)
  connectivity_plus 5.0.2 (7.1.1 available)
  code_builder 4.11.0 (4.11.1 available)
  clipboard 2.0.2 (3.0.14 available)
  cli_util 0.4.2 (0.5.0 available)
  checked_yaml 2.0.3 (2.0.4 available)
  characters 1.4.0 (1.4.1 available)
  built_value 8.12.0 (8.12.6 available)
  build_runner_core 9.1.2 (9.3.2 available)
  build_runner 2.5.4 (2.15.0 available)
  build_resolvers 2.5.4 (3.0.4 available)
  build_daemon 4.1.0 (4.1.1 available)
  build_config 1.1.2 (1.3.0 available)
  build 2.5.4 (4.0.6 available)
  boolean_selector 2.1.1 (2.1.2 available)
  audioplayers_windows 3.1.0 (4.3.0 available)
  audioplayers_web 4.1.0 (5.2.0 available)
  audioplayers_platform_interface 6.1.0 (7.1.1 available)
  audioplayers_linux 3.1.0 (4.2.1 available)
  audioplayers_darwin 5.0.2 (6.4.0 available)
  audioplayers_android 4.0.3 (5.2.1 available)
  audioplayers 5.2.1 (6.6.0 available)
  async 2.11.0 (2.13.1 available)
  archive 4.0.7 (4.0.9 available)
  app_links 6.4.1 (7.0.0 available)
  android_id 0.4.0 (0.5.1 available)
  analyzer 7.7.1 (13.0.0 available)
  _flutterfire_internals 1.3.62 (1.3.69 available)
  _fe_analyzer_shared 85.0.0 (100.0.0 available)
Downloading packages...
Resolving dependencies...
πŸ“₯ Running flutter pub get...

πŸ“‚ Repo path: repos/astromatrix-flutter
πŸ” Running tests for: astromatrix-flutter
   Output: ➑ Using Flutter binary: flutter
   Running: node check/run-tests.js "repos/astromatrix-flutter"
πŸ“š STEP 7: Run flutter tests

   βœ… doc-html complete
   Functions: 200
   Enums: 14
   Utilities: 19
   Models: 35
   Widgets: 184 (with 0 methods)
   Services: 68 (with 580 methods)
πŸ“Š Documentation includes:

βœ… reports/astromatrix-flutter-documentation.html
   Output: πŸ“„ Generating Flutter documentation HTML...
   Running: node check/generate-misc-html.js "astromatrix-flutter"
πŸ“š STEP 6: Generate Flutter Documentation

   βœ… smart-analyze complete
   API endpoints found: 11
   Methods with parsed @params: 50
πŸ“‹ Tag Extraction:

   Example: β†’ WebViewService, AppReviewService
   Uses Models: 2
   Example: β†’ WebViewService, AppReviewService
   Uses Services: 2
πŸ“ Sample Widget: MyApp

   Used By Widgets: 0
   Example: ← GPTBackend.prompt(), GPTBackend.ask(), GPTBackend.temperature()
   Used By Services: 15
πŸ“ Sample Model: GPTResult

   Used By Widgets: 0
   Example: β†’ LocationSuggestion, ChartPayload
   Uses Models: 2
   Methods: 14
πŸ“ Sample Service: AstroApiService

   Fields tracked: 575
   Widget usages: 0
   Service usages: 14
   Model usages: 73
πŸ”— Cross-References Generated:

   Functions: 200
   Classes: 140
   Enums: 14
   Utilities: 19
   Widgets: 184
   Services: 68
   Models: 35
πŸ“Š Flutter Documentation Summary:

βœ… json/astromatrix-flutter/documentation.json

πŸ”— Building cross-references...
   Output: πŸ” Analyzing Flutter docblocks...
   Running: node check/flutter-analyze.js "astromatrix-flutter"
πŸ” STEP 3: Analysis for flutter

   πŸ“Š Saved violations to history
   βœ… violations-report complete
   πŸ“„ Total: 2349
   🟒 Low: 1868
   🟑 Medium: 320
   🟠 High: 161
   πŸ”΄ Critical: 0
πŸ“Š Summary:

βœ… Violations report generated: reports/astromatrix-flutter-violations.html

πŸ“˜ Updated violations-history.json
   Output: πŸ“Š Generating violations report for astromatrix-flutter...
   Running: node check/generate-violations-report.js "astromatrix-flutter"
πŸ“Š STEP 5: Generate Violations Report

   βœ… extract-violations complete
βœ… Violations saved to json/astromatrix-flutter/violations.json

======================================================================

  🟒 Low: 1868
  🟑 Medium: 320
  🟠 High: 161

Total violations found: 2349

======================================================================
⚠️  VIOLATIONS SUMMARY
======================================================================


Found 333 code files. Analyzing...

πŸ” Scanning repository for violations...
πŸ“‚ JSON_DIR: json/astromatrix-flutter
   Output: πŸ“¦ Repo: astromatrix-flutter
   Running: node check/extract-violations.js "/home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-flutter"
⚠️ STEP 4: Extract Violations

   βœ… extract-blocks complete
2733 docblocks from 444 files
   Output: βœ“ json/astromatrix-flutter/docblocks.json
   Running: node check/extract-docblocks.js "/home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-flutter"
πŸ“ STEP 2: Extract Docblocks

   βœ… Update complete - master branch is now at latest commit
   πŸ”– Current commit (master): 12ca6ae0
HEAD is now at 12ca6ae Merge conflict resolved
   πŸ“₯ Git output: Your branch is up to date with 'origin/master'.
   Updating existing repo (master branch only)...
πŸ“₯ STEP 1: Git Clone/Update

======================================================================
πŸš€ STARTING FULL PIPELINE: astromatrix-flutter
======================================================================


======================================================================
βœ… PIPELINE COMPLETE: astromatrix-engine
======================================================================

βœ… All steps complete!

   βœ… doc-html complete
Open reports/astromatrix-engine-documentation.html in your browser to view the documentation.

πŸ“„ HTML documentation generated successfully!

   Output: βœ“ reports/astromatrix-engine-documentation.html
   Running: node check/generate-doc-html.js "astromatrix-engine"
πŸ“š STEP 6: Generate Documentation

   βœ… smart-analyze complete
   C Field Comments: 0
   C Structs/Enums: 0
   Dart Services: 0
   Dart Classes: 0
   Go Functions: 0
   Go Packages: 0
   Sockets: 0
   Clusters: 0
   Databases: 0
   Middleware: 0
   Functions: 0
   APIs: 0
   Classes: 0
   Enums: 0
   Utilities: 0
   Widgets: 0
   Services: 0
   Models: 0
   Routes: 0
   Mounts: 0
   Servers: 0
πŸ“Š Summary:

βœ“ json/astromatrix-engine/documentation.json

πŸ”— Building cross-references...
   Output: πŸ” Analyzing docblocks...
   Running: node check/smart-analyze.js "astromatrix-engine"
πŸ” STEP 3: Smart Analysis

   πŸ“Š Saved violations to history
   βœ… violations-report complete
   πŸ“„ Total: 21
   🟒 Low: 2
   🟑 Medium: 4
   🟠 High: 15
   πŸ”΄ Critical: 0
πŸ“Š Summary:

βœ… Violations report generated: reports/astromatrix-engine-violations.html

πŸ“˜ Updated violations-history.json
   Output: πŸ“Š Generating violations report for astromatrix-engine...
   Running: node check/generate-violations-report.js "astromatrix-engine"
πŸ“Š STEP 5: Generate Violations Report

   βœ… extract-violations complete
βœ… Violations saved to json/astromatrix-engine/violations.json

======================================================================

  🟒 Low: 2
  🟑 Medium: 4
  🟠 High: 15

Total violations found: 21

======================================================================
⚠️  VIOLATIONS SUMMARY
======================================================================


Found 29 code files. Analyzing...

πŸ” Scanning repository for violations...
πŸ“‚ JSON_DIR: json/astromatrix-engine
   Output: πŸ“¦ Repo: astromatrix-engine
   Running: node check/extract-violations.js "/home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-engine"
⚠️ STEP 4: Extract Violations

   βœ… extract-blocks complete
2 docblocks from 29 files
   Output: βœ“ json/astromatrix-engine/docblocks.json
   Running: node check/extract-docblocks.js "/home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-engine"
πŸ“ STEP 2: Extract Docblocks

   βœ… Update complete - master branch is now at latest commit
   πŸ”– Current commit (master): 79053a9b
HEAD is now at 79053a9 Fix Dev-84 Bug
   πŸ“₯ Git output: Your branch is up to date with 'origin/master'.
   Updating existing repo (master branch only)...
πŸ“₯ STEP 1: Git Clone/Update

======================================================================
πŸš€ STARTING FULL PIPELINE: astromatrix-engine
======================================================================


======================================================================
βœ… PIPELINE COMPLETE: astromatrix-nodejs
======================================================================

βœ… All steps complete!

   βœ… doc-html complete
Open reports/astromatrix-nodejs-documentation.html in your browser to view the documentation.

πŸ“„ HTML documentation generated successfully!

   Output: βœ“ reports/astromatrix-nodejs-documentation.html
   Running: node check/generate-doc-html.js "astromatrix-nodejs"
πŸ“š STEP 6: Generate Documentation

   βœ… smart-analyze complete
   C Field Comments: 0
   C Structs/Enums: 0
   Dart Services: 0
   Dart Classes: 0
   Go Functions: 0
   Go Packages: 0
   Sockets: 2
   Clusters: 2
   Databases: 1
   Middleware: 29
   Functions: 114
   APIs: 5
   Classes: 0
   Enums: 0
   Utilities: 0