@devvit/public-api 0.11.12-next-2025-03-27-16d09b321.0 → 0.11.12-next-2025-03-27-6ccc59480.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"BlocksHandler.d.ts","sourceRoot":"","sources":["../../../../../src/devvit/internals/blocks/handler/BlocksHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EAGb,KAAK,SAAS,EACd,KAAK,UAAU,EAChB,MAAM,gBAAgB,CAAC;AAOxB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,EAAgB,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,KAAK,EAAe,IAAI,EAAE,UAAU,EAAE,WAAW,EAAS,MAAM,YAAY,CAAC;AAGpF;;;;;;GAMG;AACH,eAAO,IAAI,oBAAoB,EAAE,aAAa,GAAG,IAAW,CAAC;AAE7D,wBAAgB,gBAAgB,IAAI,aAAa,CAKhD;AAED,wBAAgB,WAAW,IAAI,OAAO,CAErC;AAMD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CASxD;AAED,KAAK,mBAAmB,CAAC,CAAC,SAAS,IAAI,IAAI,WAAW,GAAG;IACvD;;;OAGG;IACH,WAAW,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,CAAC,CAAC;CACnC,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,IAAI,EAAE,EAC3C,WAAW,EACX,GAAG,WAAW,EACf,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,CAAC,CAiC5B;AAED,eAAO,IAAI,oBAAoB,EAAE,aAAa,GAAG,IAAW,CAAC;AAO7D;;;;GAIG;AACH,qBAAa,aAAa;;IAMxB,oBAAoB,EAAE,aAAa,GAAG,IAAI,CAAQ;gBAEtC,IAAI,EAAE,GAAG,CAAC,iBAAiB;IAMjC,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC;CAmY1E"}
1
+ {"version":3,"file":"BlocksHandler.d.ts","sourceRoot":"","sources":["../../../../../src/devvit/internals/blocks/handler/BlocksHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EAGb,KAAK,SAAS,EACd,KAAK,UAAU,EAChB,MAAM,gBAAgB,CAAC;AAOxB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,EAAgB,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,KAAK,EAAe,IAAI,EAAE,UAAU,EAAE,WAAW,EAAS,MAAM,YAAY,CAAC;AAGpF;;;;;;GAMG;AACH,eAAO,IAAI,oBAAoB,EAAE,aAAa,GAAG,IAAW,CAAC;AAE7D,wBAAgB,gBAAgB,IAAI,aAAa,CAKhD;AAED,wBAAgB,WAAW,IAAI,OAAO,CAErC;AAMD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CASxD;AAED,KAAK,mBAAmB,CAAC,CAAC,SAAS,IAAI,IAAI,WAAW,GAAG;IACvD;;;OAGG;IACH,WAAW,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,CAAC,CAAC;CACnC,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,IAAI,EAAE,EAC3C,WAAW,EACX,GAAG,WAAW,EACf,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,CAAC,CAiC5B;AAED,eAAO,IAAI,oBAAoB,EAAE,aAAa,GAAG,IAAW,CAAC;AAO7D;;;;GAIG;AACH,qBAAa,aAAa;;IAMxB,oBAAoB,EAAE,aAAa,GAAG,IAAI,CAAQ;gBAEtC,IAAI,EAAE,GAAG,CAAC,iBAAiB;IAMjC,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC;CAqZ1E"}
@@ -91,7 +91,7 @@ export let _latestBlocksHandler = null;
91
91
  /**
92
92
  * Limit the number of render cycles to prevent infinite loops.
93
93
  */
94
- const MaxIterations = 64;
94
+ const MaxIterations = 128;
95
95
  /**
96
96
  * Replacing BlocksReconciler, the model is now less of a "reconciliation", and more
97
97
  * of a handling a request/response lifecycle.
@@ -123,8 +123,26 @@ export class BlocksHandler {
123
123
  *
124
124
  * This also means we need to respect execution queues here, and not just in the platform.
125
125
  */
126
- const eventsToProcess = request.events;
127
- const noEvents = !request.events?.length;
126
+ const drop = request.events.length - MaxIterations;
127
+ let eventsToProcess = request.events;
128
+ if (drop > 0) {
129
+ eventsToProcess = [];
130
+ // Filter out old realtime messages until drop is met.
131
+ {
132
+ let dropped = 0;
133
+ for (const ev of request.events) {
134
+ if (dropped < drop && ev.realtimeEvent)
135
+ dropped++;
136
+ else
137
+ eventsToProcess.push(ev);
138
+ }
139
+ }
140
+ // Filter out _any_ old remaining messages until drop is met.
141
+ while (eventsToProcess.length > MaxIterations)
142
+ eventsToProcess.shift();
143
+ console.warn(`dropped ${drop} events`);
144
+ }
145
+ const noEvents = !eventsToProcess.length;
128
146
  const isMainQueue = noEvents || eventsToProcess.some((e) => !e.async);
129
147
  const isBlockingSSR = eventsToProcess.some((e) => e.blocking);
130
148
  let changed;
package/meta.json CHANGED
@@ -8674,7 +8674,7 @@
8674
8674
  "format": "esm"
8675
8675
  },
8676
8676
  "src/devvit/internals/blocks/handler/BlocksHandler.ts": {
8677
- "bytes": 18658,
8677
+ "bytes": 19219,
8678
8678
  "imports": [
8679
8679
  {
8680
8680
  "path": "../protos/dist/index.js",
@@ -10242,7 +10242,7 @@
10242
10242
  "bytesInOutput": 1411
10243
10243
  },
10244
10244
  "src/devvit/internals/blocks/handler/BlocksHandler.ts": {
10245
- "bytesInOutput": 15083
10245
+ "bytesInOutput": 15538
10246
10246
  },
10247
10247
  "src/devvit/internals/upgrade-app-shim.tsx": {
10248
10248
  "bytesInOutput": 4017
@@ -10335,7 +10335,7 @@
10335
10335
  "bytesInOutput": 4058
10336
10336
  }
10337
10337
  },
10338
- "bytes": 12461982
10338
+ "bytes": 12463577
10339
10339
  }
10340
10340
  }
10341
10341
  }
package/meta.min.json CHANGED
@@ -1514,7 +1514,7 @@
1514
1514
  "format": "esm"
1515
1515
  },
1516
1516
  "src/devvit/internals/blocks/handler/BlocksHandler.ts": {
1517
- "bytes": 18658,
1517
+ "bytes": 19219,
1518
1518
  "imports": [
1519
1519
  {
1520
1520
  "path": "@devvit/protos",
@@ -2516,7 +2516,7 @@
2516
2516
  "imports": [],
2517
2517
  "exports": [],
2518
2518
  "inputs": {},
2519
- "bytes": 1060005
2519
+ "bytes": 1060867
2520
2520
  },
2521
2521
  "dist/public-api.min.js": {
2522
2522
  "imports": [
@@ -2935,7 +2935,7 @@
2935
2935
  "bytesInOutput": 665
2936
2936
  },
2937
2937
  "src/devvit/internals/blocks/handler/BlocksHandler.ts": {
2938
- "bytesInOutput": 6831
2938
+ "bytesInOutput": 6994
2939
2939
  },
2940
2940
  "../shared-types/dist/CircuitBreaker.js": {
2941
2941
  "bytesInOutput": 66
@@ -3064,7 +3064,7 @@
3064
3064
  "bytesInOutput": 1684
3065
3065
  }
3066
3066
  },
3067
- "bytes": 218990
3067
+ "bytes": 219153
3068
3068
  }
3069
3069
  }
3070
3070
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@devvit/public-api",
3
- "version": "0.11.12-next-2025-03-27-16d09b321.0",
3
+ "version": "0.11.12-next-2025-03-27-6ccc59480.0",
4
4
  "license": "BSD-3-Clause",
5
5
  "repository": {
6
6
  "type": "git",
@@ -30,17 +30,17 @@
30
30
  },
31
31
  "types": "./index.d.ts",
32
32
  "dependencies": {
33
- "@devvit/metrics": "0.11.12-next-2025-03-27-16d09b321.0",
34
- "@devvit/protos": "0.11.12-next-2025-03-27-16d09b321.0",
35
- "@devvit/shared-types": "0.11.12-next-2025-03-27-16d09b321.0",
33
+ "@devvit/metrics": "0.11.12-next-2025-03-27-6ccc59480.0",
34
+ "@devvit/protos": "0.11.12-next-2025-03-27-6ccc59480.0",
35
+ "@devvit/shared-types": "0.11.12-next-2025-03-27-6ccc59480.0",
36
36
  "base64-js": "1.5.1",
37
37
  "clone-deep": "4.0.1",
38
38
  "moderndash": "4.0.0"
39
39
  },
40
40
  "devDependencies": {
41
41
  "@ampproject/filesize": "4.3.0",
42
- "@devvit/repo-tools": "0.11.12-next-2025-03-27-16d09b321.0",
43
- "@devvit/tsconfig": "0.11.12-next-2025-03-27-16d09b321.0",
42
+ "@devvit/repo-tools": "0.11.12-next-2025-03-27-6ccc59480.0",
43
+ "@devvit/tsconfig": "0.11.12-next-2025-03-27-6ccc59480.0",
44
44
  "@microsoft/api-extractor": "7.41.0",
45
45
  "@reddit/faceplate-ui": "18.0.1",
46
46
  "@types/clone-deep": "4.0.1",
@@ -57,9 +57,9 @@
57
57
  "filesize": {
58
58
  "dist/public-api.min.js": {
59
59
  "gzip": "61 KB",
60
- "none": "214 KB"
60
+ "none": "215 KB"
61
61
  }
62
62
  },
63
63
  "source": "./src/index.ts",
64
- "gitHead": "3c87e126af570f4796da72762c8bd8ccd7e855a9"
64
+ "gitHead": "b83957d971341926971823fae7a5208cf8956de1"
65
65
  }