@lunora/server 1.0.0-alpha.105 → 1.0.0-alpha.106

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/types.d.mts CHANGED
@@ -2246,10 +2246,18 @@ interface QueryCtx {
2246
2246
  */
2247
2247
  readonly env?: Record<string, unknown>;
2248
2248
  /**
2249
- * The caller's IP for this request Cloudflare's trusted `CF-Connecting-IP`,
2250
- * forwarded server-side (never read from a client header). `undefined` when
2251
- * unknown: a live-subscription re-run, a server-initiated dispatch, or
2252
- * non-Cloudflare hosting. A convenient rate-limit key for anonymous traffic.
2249
+ * The caller's IP for this request, or `undefined` when nothing trustworthy
2250
+ * says who called.
2251
+ *
2252
+ * Populated only from Cloudflare's `CF-Connecting-IP`, forwarded server-side,
2253
+ * and only while running ON Cloudflare — that is the one place the edge stamps
2254
+ * the header over anything the client sent. On any other host it is a header
2255
+ * the caller typed, so the runtime resolves nothing rather than hand a handler
2256
+ * an attacker-chosen address; a rate limit keyed on a forgeable `ip` is worse
2257
+ * than no limit, because it reads as enforced. `undefined` therefore covers: a
2258
+ * live-subscription re-run, a server-initiated dispatch, and ANY non-Cloudflare
2259
+ * host. A convenient rate-limit key for anonymous traffic on Cloudflare;
2260
+ * elsewhere, key on something the caller cannot choose.
2253
2261
  */
2254
2262
  readonly ip?: string;
2255
2263
  /** Structured, function-attributed logger; see {@link LunoraLogger}. */
@@ -2302,10 +2310,9 @@ interface MutationCtx {
2302
2310
  */
2303
2311
  readonly env?: Record<string, unknown>;
2304
2312
  /**
2305
- * The caller's IP for this request Cloudflare's trusted `CF-Connecting-IP`,
2306
- * forwarded server-side (never read from a client header). `undefined` when
2307
- * unknown: a live-subscription re-run, a server-initiated dispatch, or
2308
- * non-Cloudflare hosting. A convenient rate-limit key for anonymous traffic.
2313
+ * The caller's IP for this request, or `undefined` when nothing trustworthy
2314
+ * says who called. Identical to {@link QueryCtx.ip} see there for which
2315
+ * host populates it and why every other one deliberately does not.
2309
2316
  */
2310
2317
  readonly ip?: string;
2311
2318
  /** Structured, function-attributed logger; see {@link LunoraLogger}. */
@@ -2380,10 +2387,9 @@ interface ActionCtx {
2380
2387
  readonly env?: Record<string, unknown>;
2381
2388
  readonly fetch: typeof globalThis.fetch;
2382
2389
  /**
2383
- * The caller's IP for this request Cloudflare's trusted `CF-Connecting-IP`,
2384
- * forwarded server-side (never read from a client header). `undefined` when
2385
- * unknown: a live-subscription re-run, a server-initiated dispatch, or
2386
- * non-Cloudflare hosting. A convenient rate-limit key for anonymous traffic.
2390
+ * The caller's IP for this request, or `undefined` when nothing trustworthy
2391
+ * says who called. Identical to {@link QueryCtx.ip} see there for which
2392
+ * host populates it and why every other one deliberately does not.
2387
2393
  */
2388
2394
  readonly ip?: string;
2389
2395
  /** Structured, function-attributed logger; see {@link LunoraLogger}. */
package/dist/types.d.ts CHANGED
@@ -2246,10 +2246,18 @@ interface QueryCtx {
2246
2246
  */
2247
2247
  readonly env?: Record<string, unknown>;
2248
2248
  /**
2249
- * The caller's IP for this request Cloudflare's trusted `CF-Connecting-IP`,
2250
- * forwarded server-side (never read from a client header). `undefined` when
2251
- * unknown: a live-subscription re-run, a server-initiated dispatch, or
2252
- * non-Cloudflare hosting. A convenient rate-limit key for anonymous traffic.
2249
+ * The caller's IP for this request, or `undefined` when nothing trustworthy
2250
+ * says who called.
2251
+ *
2252
+ * Populated only from Cloudflare's `CF-Connecting-IP`, forwarded server-side,
2253
+ * and only while running ON Cloudflare — that is the one place the edge stamps
2254
+ * the header over anything the client sent. On any other host it is a header
2255
+ * the caller typed, so the runtime resolves nothing rather than hand a handler
2256
+ * an attacker-chosen address; a rate limit keyed on a forgeable `ip` is worse
2257
+ * than no limit, because it reads as enforced. `undefined` therefore covers: a
2258
+ * live-subscription re-run, a server-initiated dispatch, and ANY non-Cloudflare
2259
+ * host. A convenient rate-limit key for anonymous traffic on Cloudflare;
2260
+ * elsewhere, key on something the caller cannot choose.
2253
2261
  */
2254
2262
  readonly ip?: string;
2255
2263
  /** Structured, function-attributed logger; see {@link LunoraLogger}. */
@@ -2302,10 +2310,9 @@ interface MutationCtx {
2302
2310
  */
2303
2311
  readonly env?: Record<string, unknown>;
2304
2312
  /**
2305
- * The caller's IP for this request Cloudflare's trusted `CF-Connecting-IP`,
2306
- * forwarded server-side (never read from a client header). `undefined` when
2307
- * unknown: a live-subscription re-run, a server-initiated dispatch, or
2308
- * non-Cloudflare hosting. A convenient rate-limit key for anonymous traffic.
2313
+ * The caller's IP for this request, or `undefined` when nothing trustworthy
2314
+ * says who called. Identical to {@link QueryCtx.ip} see there for which
2315
+ * host populates it and why every other one deliberately does not.
2309
2316
  */
2310
2317
  readonly ip?: string;
2311
2318
  /** Structured, function-attributed logger; see {@link LunoraLogger}. */
@@ -2380,10 +2387,9 @@ interface ActionCtx {
2380
2387
  readonly env?: Record<string, unknown>;
2381
2388
  readonly fetch: typeof globalThis.fetch;
2382
2389
  /**
2383
- * The caller's IP for this request Cloudflare's trusted `CF-Connecting-IP`,
2384
- * forwarded server-side (never read from a client header). `undefined` when
2385
- * unknown: a live-subscription re-run, a server-initiated dispatch, or
2386
- * non-Cloudflare hosting. A convenient rate-limit key for anonymous traffic.
2390
+ * The caller's IP for this request, or `undefined` when nothing trustworthy
2391
+ * says who called. Identical to {@link QueryCtx.ip} see there for which
2392
+ * host populates it and why every other one deliberately does not.
2387
2393
  */
2388
2394
  readonly ip?: string;
2389
2395
  /** Structured, function-attributed logger; see {@link LunoraLogger}. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lunora/server",
3
- "version": "1.0.0-alpha.105",
3
+ "version": "1.0.0-alpha.106",
4
4
  "description": "Server primitives for Lunora: defineSchema, defineTable, query, mutation, and action",
5
5
  "keywords": [
6
6
  "backend",
@@ -66,9 +66,9 @@
66
66
  "access": "public"
67
67
  },
68
68
  "dependencies": {
69
- "@lunora/errors": "1.0.0-alpha.33",
70
- "@lunora/scheduler": "1.0.0-alpha.54",
71
- "@lunora/values": "1.0.0-alpha.41",
69
+ "@lunora/errors": "1.0.0-alpha.34",
70
+ "@lunora/scheduler": "1.0.0-alpha.56",
71
+ "@lunora/values": "1.0.0-alpha.42",
72
72
  "drizzle-orm": "^0.45.2",
73
73
  "hono": "^4.13.1"
74
74
  },