@devvit/public-api 0.11.4-next-2024-11-20-a7a45fe6c.0 → 0.11.4-next-2024-11-21-bbaab2dc3.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;AAE7D;;;;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;CA8X1E"}
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"}
@@ -88,6 +88,10 @@ export function registerHook({ initializer, ...hookSegment }) {
88
88
  return hook;
89
89
  }
90
90
  export let _latestBlocksHandler = null;
91
+ /**
92
+ * Limit the number of render cycles to prevent infinite loops.
93
+ */
94
+ const MaxIterations = 64;
91
95
  /**
92
96
  * Replacing BlocksReconciler, the model is now less of a "reconciliation", and more
93
97
  * of a handling a request/response lifecycle.
@@ -137,7 +141,11 @@ export class BlocksHandler {
137
141
  }
138
142
  if (__classPrivateFieldGet(this, _BlocksHandler_instances, "a", _BlocksHandler_debug_get))
139
143
  console.debug('[blocks] starting processing events');
144
+ let iterations = 0;
140
145
  while (eventsToProcess.length > 0) {
146
+ if (iterations++ > MaxIterations) {
147
+ throw new Error(`Exceeded maximum iterations of ${MaxIterations}`);
148
+ }
141
149
  if (__classPrivateFieldGet(this, _BlocksHandler_instances, "a", _BlocksHandler_debug_get))
142
150
  console.debug('[blocks] processing events loop iteration', eventsToProcess.length);
143
151
  /**
@@ -5,7 +5,7 @@ export declare const findHookId: (ref: HookRef) => string;
5
5
  export declare const findHookState: (ref: HookRef) => JSONValue;
6
6
  export declare const findHookValue: (ref: HookRef) => JSONValue;
7
7
  export declare const getLatestBlocksState: () => BlocksState;
8
- export declare const EmptyRequest: UIRequest;
8
+ export declare function getEmptyRequest(): UIRequest;
9
9
  export declare const generatePressRequest: (ref: HookRef) => UIRequest;
10
10
  export declare const generateTimerRequest: (ref: HookRef) => UIRequest;
11
11
  export declare const mockMetadata: {
@@ -1 +1 @@
1
- {"version":3,"file":"test-helpers.d.ts","sourceRoot":"","sources":["../../../../../src/devvit/internals/blocks/handler/test-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE5E,OAAO,KAAK,EAAc,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAG1E,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAEvD,eAAO,MAAM,UAAU,QAAS,OAAO,KAAG,MAEzC,CAAC;AAEF,eAAO,MAAM,aAAa,QAAS,OAAO,KAAG,SAE5C,CAAC;AAEF,eAAO,MAAM,aAAa,QAAS,OAAO,KAAG,SAE5C,CAAC;AAEF,eAAO,MAAM,oBAAoB,QAAO,WAEvC,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,SAA0B,CAAC;AAEtD,eAAO,MAAM,oBAAoB,QAAS,OAAO,KAAG,SAYnD,CAAC;AAEF,eAAO,MAAM,oBAAoB,QAAS,OAAO,KAAG,SAUnD,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;CAUxB,CAAC"}
1
+ {"version":3,"file":"test-helpers.d.ts","sourceRoot":"","sources":["../../../../../src/devvit/internals/blocks/handler/test-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE5E,OAAO,KAAK,EAAc,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAG1E,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAEvD,eAAO,MAAM,UAAU,QAAS,OAAO,KAAG,MAEzC,CAAC;AAEF,eAAO,MAAM,aAAa,QAAS,OAAO,KAAG,SAE5C,CAAC;AAEF,eAAO,MAAM,aAAa,QAAS,OAAO,KAAG,SAE5C,CAAC;AAEF,eAAO,MAAM,oBAAoB,QAAO,WAEvC,CAAC;AAEF,wBAAgB,eAAe,IAAI,SAAS,CAE3C;AAED,eAAO,MAAM,oBAAoB,QAAS,OAAO,KAAG,SAYnD,CAAC;AAEF,eAAO,MAAM,oBAAoB,QAAS,OAAO,KAAG,SAUnD,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;CAUxB,CAAC"}
@@ -13,7 +13,9 @@ export const findHookValue = (ref) => {
13
13
  export const getLatestBlocksState = () => {
14
14
  return _latestBlocksHandler?._latestRenderContext?._state ?? {};
15
15
  };
16
- export const EmptyRequest = { events: [] };
16
+ export function getEmptyRequest() {
17
+ return { events: [] };
18
+ }
17
19
  export const generatePressRequest = (ref) => {
18
20
  const event = {
19
21
  scope: UIEventScope.ALL,
@@ -1 +1 @@
1
- {"version":3,"file":"useAsync.d.ts","sourceRoot":"","sources":["../../../../../src/devvit/internals/blocks/handler/useAsync.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAI9D,OAAO,KAAK,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAK3F,MAAM,MAAM,YAAY,GAAG;IACzB;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,CAAC;AAEhF;;;;;;GAMG;AACH,wBAAgB,iCAAiC,CAAC,CAAC,EAAE,OAAO,GAAG;IAC7D,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB,CAYA;AAqGD;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,SAAS,EAC1C,WAAW,EAAE,wBAAwB,CAAC,CAAC,CAAC,EACxC,OAAO,GAAE,YAAiB,GACzB,cAAc,CAAC,CAAC,CAAC,CAanB"}
1
+ {"version":3,"file":"useAsync.d.ts","sourceRoot":"","sources":["../../../../../src/devvit/internals/blocks/handler/useAsync.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAI9D,OAAO,KAAK,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAK3F,MAAM,MAAM,YAAY,GAAG;IACzB;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,CAAC;AAEhF;;;;;;GAMG;AACH,wBAAgB,iCAAiC,CAAC,CAAC,EAAE,OAAO,GAAG;IAC7D,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB,CAYA;AA2GD;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,SAAS,EAC1C,WAAW,EAAE,wBAAwB,CAAC,CAAC,CAAC,EACxC,OAAO,GAAE,YAAiB,GACzB,cAAc,CAAC,CAAC,CAAC,CAanB"}
@@ -113,7 +113,7 @@ class AsyncHook {
113
113
  if (event.asyncResponse.requestId === anticipatedRequestId) {
114
114
  this.state = {
115
115
  ...this.state,
116
- data: event.asyncResponse.data?.value,
116
+ data: event.asyncResponse.data?.value ?? null,
117
117
  error: event.asyncResponse.error ?? null,
118
118
  load_state: event.asyncResponse.error ? 'error' : 'loaded',
119
119
  };
@@ -121,7 +121,7 @@ class AsyncHook {
121
121
  }
122
122
  else {
123
123
  if (__classPrivateFieldGet(this, _AsyncHook_debug, "f"))
124
- console.debug('[useAsync] onResp skip, stale event');
124
+ console.debug('[useAsync] onResp skip, stale event', event.asyncResponse.requestId, ' !== ', anticipatedRequestId);
125
125
  }
126
126
  }
127
127
  else {
package/meta.json CHANGED
@@ -10825,7 +10825,7 @@
10825
10825
  "format": "esm"
10826
10826
  },
10827
10827
  "src/devvit/internals/blocks/handler/useAsync.ts": {
10828
- "bytes": 5783,
10828
+ "bytes": 5930,
10829
10829
  "imports": [
10830
10830
  {
10831
10831
  "path": "../protos/dist/index.js",
@@ -10983,7 +10983,7 @@
10983
10983
  "format": "esm"
10984
10984
  },
10985
10985
  "src/devvit/internals/blocks/handler/BlocksHandler.ts": {
10986
- "bytes": 18408,
10986
+ "bytes": 18658,
10987
10987
  "imports": [
10988
10988
  {
10989
10989
  "path": "../protos/dist/index.js",
@@ -12869,7 +12869,7 @@
12869
12869
  "bytesInOutput": 56
12870
12870
  },
12871
12871
  "src/devvit/internals/blocks/handler/useAsync.ts": {
12872
- "bytesInOutput": 4323
12872
+ "bytesInOutput": 4475
12873
12873
  },
12874
12874
  "src/devvit/internals/blocks/handler/useState.ts": {
12875
12875
  "bytesInOutput": 3770
@@ -12878,7 +12878,7 @@
12878
12878
  "bytesInOutput": 1362
12879
12879
  },
12880
12880
  "src/devvit/internals/blocks/handler/BlocksHandler.ts": {
12881
- "bytesInOutput": 14899
12881
+ "bytesInOutput": 15083
12882
12882
  },
12883
12883
  "src/devvit/internals/upgrade-app-shim.tsx": {
12884
12884
  "bytesInOutput": 4017
@@ -12971,7 +12971,7 @@
12971
12971
  "bytesInOutput": 370
12972
12972
  }
12973
12973
  },
12974
- "bytes": 12838184
12974
+ "bytes": 12839284
12975
12975
  }
12976
12976
  }
12977
12977
  }
package/meta.min.json CHANGED
@@ -3685,7 +3685,7 @@
3685
3685
  "format": "esm"
3686
3686
  },
3687
3687
  "src/devvit/internals/blocks/handler/useAsync.ts": {
3688
- "bytes": 5783,
3688
+ "bytes": 5930,
3689
3689
  "imports": [
3690
3690
  {
3691
3691
  "path": "@devvit/protos",
@@ -3843,7 +3843,7 @@
3843
3843
  "format": "esm"
3844
3844
  },
3845
3845
  "src/devvit/internals/blocks/handler/BlocksHandler.ts": {
3846
- "bytes": 18408,
3846
+ "bytes": 18658,
3847
3847
  "imports": [
3848
3848
  {
3849
3849
  "path": "@devvit/protos",
@@ -4789,7 +4789,7 @@
4789
4789
  "imports": [],
4790
4790
  "exports": [],
4791
4791
  "inputs": {},
4792
- "bytes": 1233156
4792
+ "bytes": 1233726
4793
4793
  },
4794
4794
  "dist/public-api.min.js": {
4795
4795
  "imports": [
@@ -5514,7 +5514,7 @@
5514
5514
  "bytesInOutput": 665
5515
5515
  },
5516
5516
  "src/devvit/internals/blocks/handler/BlocksHandler.ts": {
5517
- "bytesInOutput": 6748
5517
+ "bytesInOutput": 6831
5518
5518
  },
5519
5519
  "../shared-types/dist/CircuitBreaker.js": {
5520
5520
  "bytesInOutput": 66
@@ -5550,7 +5550,7 @@
5550
5550
  "bytesInOutput": 29
5551
5551
  },
5552
5552
  "src/devvit/internals/blocks/handler/useAsync.ts": {
5553
- "bytesInOutput": 2255
5553
+ "bytesInOutput": 2297
5554
5554
  },
5555
5555
  "src/devvit/internals/blocks/handler/ContextBuilder.ts": {
5556
5556
  "bytesInOutput": 530
@@ -5634,7 +5634,7 @@
5634
5634
  "bytesInOutput": 178
5635
5635
  }
5636
5636
  },
5637
- "bytes": 263353
5637
+ "bytes": 263478
5638
5638
  }
5639
5639
  }
5640
5640
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@devvit/public-api",
3
- "version": "0.11.4-next-2024-11-20-a7a45fe6c.0",
3
+ "version": "0.11.4-next-2024-11-21-bbaab2dc3.0",
4
4
  "license": "BSD-3-Clause",
5
5
  "repository": {
6
6
  "type": "git",
@@ -30,8 +30,8 @@
30
30
  },
31
31
  "types": "./index.d.ts",
32
32
  "dependencies": {
33
- "@devvit/protos": "0.11.4-next-2024-11-20-a7a45fe6c.0",
34
- "@devvit/shared-types": "0.11.4-next-2024-11-20-a7a45fe6c.0",
33
+ "@devvit/protos": "0.11.4-next-2024-11-21-bbaab2dc3.0",
34
+ "@devvit/shared-types": "0.11.4-next-2024-11-21-bbaab2dc3.0",
35
35
  "base64-js": "1.5.1",
36
36
  "clone-deep": "4.0.1",
37
37
  "core-js": "3.27.2",
@@ -39,8 +39,8 @@
39
39
  },
40
40
  "devDependencies": {
41
41
  "@ampproject/filesize": "4.3.0",
42
- "@devvit/repo-tools": "0.11.4-next-2024-11-20-a7a45fe6c.0",
43
- "@devvit/tsconfig": "0.11.4-next-2024-11-20-a7a45fe6c.0",
42
+ "@devvit/repo-tools": "0.11.4-next-2024-11-21-bbaab2dc3.0",
43
+ "@devvit/tsconfig": "0.11.4-next-2024-11-21-bbaab2dc3.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",
@@ -58,10 +58,10 @@
58
58
  },
59
59
  "filesize": {
60
60
  "dist/public-api.min.js": {
61
- "gzip": "78 KB",
62
- "none": "258 KB"
61
+ "gzip": "80 KB",
62
+ "none": "260 KB"
63
63
  }
64
64
  },
65
65
  "source": "./src/index.ts",
66
- "gitHead": "bd703d941b4736b553294977718384f9fcbba4ea"
66
+ "gitHead": "79ea6d10fec7fb730eb34404a433c1a110cfcea8"
67
67
  }