@devvit/public-api 0.10.21-next-2024-05-17-3085e1307.0 → 0.10.21-next-2024-05-17-f326cdddc.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1 +1 @@
1
- {"version":3,"file":"BlocksHandler.d.ts","sourceRoot":"","sources":["../../../../../src/devvit/internals/blocks/handler/BlocksHandler.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,KAAK,QAAQ,EAAE,KAAK,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAK7F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,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;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,IAAI,EACzC,OAAO,EAAE,WAAW,EACpB,WAAW,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,CAAC,GAChC,CAAC,CAgCH;AAED,eAAO,IAAI,oBAAoB,EAAE,aAAa,GAAG,IAAW,CAAC;AAE7D;;;;GAIG;AACH,qBAAa,aAAa;;IAIxB,oBAAoB,EAAE,aAAa,GAAG,IAAI,CAAQ;gBAEtC,IAAI,EAAE,GAAG,CAAC,iBAAiB;IAKjC,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC;CAgR3E"}
1
+ {"version":3,"file":"BlocksHandler.d.ts","sourceRoot":"","sources":["../../../../../src/devvit/internals/blocks/handler/BlocksHandler.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,KAAK,QAAQ,EAAE,KAAK,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAK7F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAe,IAAI,EAAE,UAAU,EAAE,WAAW,EAAS,MAAM,YAAY,CAAC;AAIpF;;;;;;GAMG;AACH,eAAO,IAAI,oBAAoB,EAAE,aAAa,GAAG,IAAW,CAAC;AAE7D,wBAAgB,gBAAgB,IAAI,aAAa,CAKhD;AAED,wBAAgB,WAAW,IAAI,OAAO,CAErC;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,IAAI,EACzC,OAAO,EAAE,WAAW,EACpB,WAAW,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,CAAC,GAChC,CAAC,CAgCH;AAED,eAAO,IAAI,oBAAoB,EAAE,aAAa,GAAG,IAAW,CAAC;AAE7D;;;;GAIG;AACH,qBAAa,aAAa;;IAIxB,oBAAoB,EAAE,aAAa,GAAG,IAAI,CAAQ;gBAEtC,IAAI,EAAE,GAAG,CAAC,iBAAiB;IAMjC,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC;CA+S3E"}
@@ -14,6 +14,7 @@ import { BlocksTransformer } from '../BlocksTransformer.js';
14
14
  import { ContextBuilder } from './ContextBuilder.js';
15
15
  import { RenderContext } from './RenderContext.js';
16
16
  import { RenderInterruptError } from './types.js';
17
+ import isEqual from 'lodash.isequal';
17
18
  /**
18
19
  * This can be a global/singleton because render is synchronous.
19
20
  *
@@ -88,6 +89,7 @@ export class BlocksHandler {
88
89
  _BlocksHandler_contextBuilder.set(this, new ContextBuilder());
89
90
  _BlocksHandler_blocksTransformer.set(this, new BlocksTransformer());
90
91
  this._latestRenderContext = null;
92
+ console.log('BlocksHandler v1');
91
93
  __classPrivateFieldSet(this, _BlocksHandler_root, root, "f");
92
94
  _latestBlocksHandler = this;
93
95
  }
@@ -140,6 +142,7 @@ export class BlocksHandler {
140
142
  }
141
143
  }
142
144
  catch (e) {
145
+ console.debug('caught in handler', e);
143
146
  /**
144
147
  * If we have a progress, we can recover from an error by rolling back to the last progress, and then letting the
145
148
  * remaining events be reprocessed.
@@ -148,35 +151,39 @@ export class BlocksHandler {
148
151
  context._state = progress._state;
149
152
  context._changed = changed;
150
153
  context._effects = progress._effects;
151
- remaining.forEach((e) => {
152
- // e.retry = true;
154
+ const requeueable = remaining.map((e) => {
153
155
  const requeueEvent = { ...e };
154
156
  requeueEvent.retry = true;
155
- context.addToRequeueEvents(requeueEvent);
157
+ return requeueEvent;
156
158
  });
159
+ context.addToRequeueEvents(...requeueable);
157
160
  break;
158
161
  }
159
162
  else {
160
163
  throw e;
161
164
  }
162
165
  }
166
+ console.debug('remaining events', context._requeueEvents);
163
167
  const remainingRequeueEvents = [];
164
168
  for (const event of context._requeueEvents) {
165
169
  if (!isMainQueue && !event.async) {
170
+ console.debug('NOT reprocessing event in BlocksHandler, sync mismatch A', event);
166
171
  // We're async, this is a main queue event. We need to send it back to the platform to let
167
172
  // the platform synchronize it.
168
173
  remainingRequeueEvents.push(event);
169
174
  continue;
170
175
  }
171
176
  if (isMainQueue && event.async && !isBlockingSSR) {
177
+ console.debug('NOT reprocessing event in BlocksHandler, sync mismatch B', event);
172
178
  // We're main queue, and this is an async event. We're not in SSR mode, so let's prioritize
173
179
  // returning control quickly to the platform so we don't block event loops.
174
180
  remainingRequeueEvents.push(event);
175
181
  continue;
176
182
  }
183
+ console.debug('reprocessing event in BlocksHandler', event);
177
184
  eventsToProcess.push(event);
178
185
  }
179
- context._requeueEvents = remainingRequeueEvents;
186
+ context._requeueEvents = remainingRequeueEvents; //
180
187
  /**
181
188
  * If we're going back through this again, we need to capture the progress, and the remaining events.
182
189
  */
@@ -190,8 +197,26 @@ export class BlocksHandler {
190
197
  }
191
198
  } // End of while loop
192
199
  if (isMainQueue) {
200
+ const stateCopy = _structuredClone(context._state);
201
+ const eventsCopy = [...context._requeueEvents];
202
+ const effectsCopy = { ...context._effects };
193
203
  // Rendering only happens on the main queue.
194
204
  const tags = __classPrivateFieldGet(this, _BlocksHandler_instances, "m", _BlocksHandler_renderRoot).call(this, __classPrivateFieldGet(this, _BlocksHandler_root, "f"), context._rootProps ?? {}, context);
205
+ /**
206
+ * It's technically ok for renderRoot to mutate, but that's only in the context of loadHooks. This render should
207
+ * be idempotent, so we're going to enforce that it doesn't mutate state.
208
+ *
209
+ * TODO: hide this behind a flag, because it's possibly expensive.
210
+ */
211
+ if (!isEqual(context._state, stateCopy)) {
212
+ console.error('State was mutated during rendering', context._state, stateCopy);
213
+ }
214
+ if (!isEqual(context._requeueEvents, eventsCopy)) {
215
+ console.error('Events were mutated during rendering', context._requeueEvents, eventsCopy);
216
+ }
217
+ if (!isEqual(context._effects, effectsCopy)) {
218
+ console.error('Effects were mutated during rendering', context._effects, effectsCopy);
219
+ }
195
220
  if (tags) {
196
221
  blocks = await __classPrivateFieldGet(this, _BlocksHandler_blocksTransformer, "f").createBlocksElementOrThrow(tags);
197
222
  blocks = await __classPrivateFieldGet(this, _BlocksHandler_blocksTransformer, "f").ensureRootBlock(blocks);
@@ -240,7 +265,10 @@ async function _BlocksHandler_handleAsyncQueues(context, ...batch) {
240
265
  __classPrivateFieldGet(this, _BlocksHandler_instances, "m", _BlocksHandler_loadHooks).call(this, context, event);
241
266
  await __classPrivateFieldGet(this, _BlocksHandler_instances, "m", _BlocksHandler_attemptHook).call(this, context, event);
242
267
  }
268
+ // TODO: Decide whether this is excessive. It doesn't hurt anything besides performance.
269
+ __classPrivateFieldGet(this, _BlocksHandler_instances, "m", _BlocksHandler_loadHooks).call(this, context);
243
270
  }, _BlocksHandler_renderRoot = function _BlocksHandler_renderRoot(component, props, context) {
271
+ console.debug('renderRoot');
244
272
  context._generated = {};
245
273
  _activeRenderContext = context;
246
274
  this._latestRenderContext = context;
@@ -61,9 +61,9 @@ export declare class RenderContext implements EffectEmitter {
61
61
  handleUndeliveredEvent(ev: UIEvent): Promise<Effect[] | void>;
62
62
  emitEffect(dedupeKey: string, effect: Effect): void;
63
63
  /**
64
- * Adds event that will re-enter the dispatcher queue
64
+ * Adds event that will re-enter the dispatcher queue.
65
65
  */
66
- addToRequeueEvents(event: UIEvent): void;
66
+ addToRequeueEvents(...events: UIEvent[]): void;
67
67
  get effects(): Effect[];
68
68
  nextHookId(options: HookSegment): string;
69
69
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RenderContext.d.ts","sourceRoot":"","sources":["../../../../../src/devvit/internals/blocks/handler/RenderContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAExF;;;;;;;;;GASG;AACH,qBAAa,aAAc,YAAW,aAAa;;IA2B9B,OAAO,EAAE,SAAS;IAzBrC,SAAS,EAAE,CAAC,WAAW,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,CAAM;IACnD,MAAM,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAM;IACrC,WAAW,EAAE,MAAM,CAAM;IACzB,QAAQ,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAM;IACzC,QAAQ,EAAE;QAAE,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAM;IAC1C,qDAAqD;IACrD,cAAc,EAAE,OAAO,EAAE,CAAM;IAE/B,UAAU,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAM;IACxC,UAAU,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAM;IAC5C,MAAM,CAAC,0BAA0B,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAAA;KAAE,CAAM;IACxE,oBAAoB,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAAA;KAAE,CAAM;IAC3D,cAAc,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC;IAEhC,IAAI,aAAa,IAAI,MAAM,CAAC,OAAO,CAKlC;IAED,IAAI,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,EAExC;gBAEkB,OAAO,EAAE,SAAS;IAKrC,0CAA0C;IAC1C,IAAI,aAAa,IAAI,WAAW,CAI/B;IAED,iCAAiC;IACjC,IAAI,MAAM,IAAI,WAAW,CAExB;IAED,4DAA4D;IAC5D,IAAI,MAAM,CAAC,KAAK,EAAE,WAAW,EAG5B;IAED,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAIhC,GAAG,IAAI,IAAI;IAIX,0BAA0B,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI;IAInE,gCAAgC,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI;IAIzE,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAI3B,MAAM,CAAC,gCAAgC,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI;IAI1E,sBAAsB,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;IAUnE,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAInD;;OAEG;IACH,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAIxC,IAAI,OAAO,IAAI,MAAM,EAAE,CAEtB;IAED,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM;CA0CzC"}
1
+ {"version":3,"file":"RenderContext.d.ts","sourceRoot":"","sources":["../../../../../src/devvit/internals/blocks/handler/RenderContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAExF;;;;;;;;;GASG;AACH,qBAAa,aAAc,YAAW,aAAa;;IA2B9B,OAAO,EAAE,SAAS;IAzBrC,SAAS,EAAE,CAAC,WAAW,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,CAAM;IACnD,MAAM,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAM;IACrC,WAAW,EAAE,MAAM,CAAM;IACzB,QAAQ,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAM;IACzC,QAAQ,EAAE;QAAE,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAM;IAC1C,qDAAqD;IACrD,cAAc,EAAE,OAAO,EAAE,CAAM;IAE/B,UAAU,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAM;IACxC,UAAU,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAM;IAC5C,MAAM,CAAC,0BAA0B,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAAA;KAAE,CAAM;IACxE,oBAAoB,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAAA;KAAE,CAAM;IAC3D,cAAc,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC;IAEhC,IAAI,aAAa,IAAI,MAAM,CAAC,OAAO,CAKlC;IAED,IAAI,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,EAExC;gBAEkB,OAAO,EAAE,SAAS;IAKrC,0CAA0C;IAC1C,IAAI,aAAa,IAAI,WAAW,CAI/B;IAED,iCAAiC;IACjC,IAAI,MAAM,IAAI,WAAW,CAExB;IAED,4DAA4D;IAC5D,IAAI,MAAM,CAAC,KAAK,EAAE,WAAW,EAG5B;IAED,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAIhC,GAAG,IAAI,IAAI;IAIX,0BAA0B,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI;IAInE,gCAAgC,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI;IAIzE,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAI3B,MAAM,CAAC,gCAAgC,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI;IAI1E,sBAAsB,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;IAUnE,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAInD;;OAEG;IACH,kBAAkB,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI;IAmB9C,IAAI,OAAO,IAAI,MAAM,EAAE,CAEtB;IAED,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM;CA0CzC"}
@@ -94,10 +94,21 @@ export class RenderContext {
94
94
  this._effects[dedupeKey] = effect;
95
95
  }
96
96
  /**
97
- * Adds event that will re-enter the dispatcher queue
97
+ * Adds event that will re-enter the dispatcher queue.
98
98
  */
99
- addToRequeueEvents(event) {
100
- this._requeueEvents.push(event);
99
+ addToRequeueEvents(...events) {
100
+ console.debug('requeueing events', events);
101
+ const grouped = events.reduce((acc, event) => {
102
+ if (event.retry) {
103
+ acc.retry.push(event);
104
+ }
105
+ else {
106
+ acc.normal.push(event);
107
+ }
108
+ return acc;
109
+ }, { retry: [], normal: [] });
110
+ // We need to maintain the order of the events, so we need to add the retry events first
111
+ this._requeueEvents = [...grouped.retry, ...this._requeueEvents, ...grouped.normal];
101
112
  }
102
113
  get effects() {
103
114
  return Object.values(this._effects);
@@ -1 +1 @@
1
- {"version":3,"file":"useAsync.d.ts","sourceRoot":"","sources":["../../../../../src/devvit/internals/blocks/handler/useAsync.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,KAAK,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AA6E3F;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,SAAS,EAC1C,WAAW,EAAE,wBAAwB,CAAC,CAAC,CAAC,GACvC,cAAc,CAAC,CAAC,CAAC,CAMnB"}
1
+ {"version":3,"file":"useAsync.d.ts","sourceRoot":"","sources":["../../../../../src/devvit/internals/blocks/handler/useAsync.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,KAAK,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAiF3F;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,SAAS,EAC1C,WAAW,EAAE,wBAAwB,CAAC,CAAC,CAAC,GACvC,cAAc,CAAC,CAAC,CAAC,CAMnB"}
@@ -16,6 +16,7 @@ class AsyncHook {
16
16
  _AsyncHook_hookId.set(this, void 0);
17
17
  _AsyncHook_initializer.set(this, void 0);
18
18
  _AsyncHook_changed.set(this, void 0);
19
+ console.debug('useAsync v1');
19
20
  this.state = { data: null, loading: false, error: null };
20
21
  __classPrivateFieldSet(this, _AsyncHook_hookId, params.hookId, "f");
21
22
  __classPrivateFieldSet(this, _AsyncHook_initializer, initializer, "f");
@@ -25,6 +26,7 @@ class AsyncHook {
25
26
  * After we look at our state, we need to decide if we need to dispatch a request to load the data.
26
27
  */
27
28
  onLoad(context) {
29
+ console.debug('async onLoad ', __classPrivateFieldGet(this, _AsyncHook_hookId, "f"), this.state);
28
30
  if (this.state.data === null && this.state.error === null && this.state.loading === false) {
29
31
  this.state.loading = true;
30
32
  __classPrivateFieldGet(this, _AsyncHook_changed, "f").call(this);
@@ -33,6 +35,7 @@ class AsyncHook {
33
35
  async: true,
34
36
  asyncRequest: { requestId: __classPrivateFieldGet(this, _AsyncHook_hookId, "f") },
35
37
  };
38
+ console.debug('onLoad requeue');
36
39
  context.addToRequeueEvents(requeueEvent);
37
40
  }
38
41
  }
@@ -62,6 +65,7 @@ class AsyncHook {
62
65
  asyncResponse: asyncResponse,
63
66
  hook: __classPrivateFieldGet(this, _AsyncHook_hookId, "f"),
64
67
  };
68
+ console.debug('onReq requeue');
65
69
  context.addToRequeueEvents(requeueEvent);
66
70
  }
67
71
  else if (event.asyncResponse) {
package/index.d.ts CHANGED
@@ -6,4 +6,8 @@ export { RichTextBuilder } from '@devvit/shared-types/richtext/RichTextBuilder.j
6
6
  export * from './types/index.js';
7
7
  export * from '@devvit/shared-types/json.js';
8
8
  export * from './apis/ui/helpers/svg.js';
9
+ export { useAsync } from './devvit/internals/blocks/handler/useAsync.js';
10
+ export { useState, useAsyncState } from './devvit/internals/blocks/handler/useState.js';
11
+ export { useForm } from './devvit/internals/blocks/handler/useForm.js';
12
+ export { useInterval } from './devvit/internals/blocks/handler/useInterval.js';
9
13
  //# sourceMappingURL=index.d.ts.map
package/index.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,CAAC;AAE5B,cAAc,+BAA+B,CAAC;AAC9C,YAAY,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACxE,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,kDAAkD,CAAC;AACnF,cAAc,kBAAkB,CAAC;AACjC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,CAAC;AAE5B,cAAc,+BAA+B,CAAC;AAC9C,YAAY,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACxE,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,kDAAkD,CAAC;AACnF,cAAc,kBAAkB,CAAC;AACjC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,+CAA+C,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,+CAA+C,CAAC;AACxF,OAAO,EAAE,OAAO,EAAE,MAAM,8CAA8C,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,kDAAkD,CAAC"}
package/index.js CHANGED
@@ -5,3 +5,7 @@ export { RichTextBuilder } from '@devvit/shared-types/richtext/RichTextBuilder.j
5
5
  export * from './types/index.js';
6
6
  export * from '@devvit/shared-types/json.js';
7
7
  export * from './apis/ui/helpers/svg.js';
8
+ export { useAsync } from './devvit/internals/blocks/handler/useAsync.js';
9
+ export { useState, useAsyncState } from './devvit/internals/blocks/handler/useState.js';
10
+ export { useForm } from './devvit/internals/blocks/handler/useForm.js';
11
+ export { useInterval } from './devvit/internals/blocks/handler/useInterval.js';
package/meta.json CHANGED
@@ -12580,7 +12580,7 @@
12580
12580
  "format": "esm"
12581
12581
  },
12582
12582
  "src/devvit/internals/blocks/handler/RenderContext.ts": {
12583
- "bytes": 4807,
12583
+ "bytes": 5300,
12584
12584
  "imports": [
12585
12585
  {
12586
12586
  "path": "<runtime>",
@@ -12750,7 +12750,7 @@
12750
12750
  "format": "esm"
12751
12751
  },
12752
12752
  "src/devvit/internals/blocks/handler/BlocksHandler.ts": {
12753
- "bytes": 13136,
12753
+ "bytes": 14690,
12754
12754
  "imports": [
12755
12755
  {
12756
12756
  "path": "@devvit/protos",
@@ -12777,6 +12777,11 @@
12777
12777
  "kind": "import-statement",
12778
12778
  "original": "./types.js"
12779
12779
  },
12780
+ {
12781
+ "path": "../../node_modules/lodash.isequal/index.js",
12782
+ "kind": "import-statement",
12783
+ "original": "lodash.isequal"
12784
+ },
12780
12785
  {
12781
12786
  "path": "<runtime>",
12782
12787
  "kind": "import-statement",
@@ -13573,8 +13578,24 @@
13573
13578
  ],
13574
13579
  "format": "esm"
13575
13580
  },
13581
+ "src/devvit/internals/blocks/handler/useAsync.ts": {
13582
+ "bytes": 3293,
13583
+ "imports": [
13584
+ {
13585
+ "path": "src/devvit/internals/blocks/handler/BlocksHandler.ts",
13586
+ "kind": "import-statement",
13587
+ "original": "./BlocksHandler.js"
13588
+ },
13589
+ {
13590
+ "path": "<runtime>",
13591
+ "kind": "import-statement",
13592
+ "external": true
13593
+ }
13594
+ ],
13595
+ "format": "esm"
13596
+ },
13576
13597
  "src/index.ts": {
13577
- "bytes": 392,
13598
+ "bytes": 707,
13578
13599
  "imports": [
13579
13600
  {
13580
13601
  "path": "../../node_modules/core-js/web/url.js",
@@ -13610,6 +13631,26 @@
13610
13631
  "path": "src/apis/ui/helpers/svg.ts",
13611
13632
  "kind": "import-statement",
13612
13633
  "original": "./apis/ui/helpers/svg.js"
13634
+ },
13635
+ {
13636
+ "path": "src/devvit/internals/blocks/handler/useAsync.ts",
13637
+ "kind": "import-statement",
13638
+ "original": "./devvit/internals/blocks/handler/useAsync.js"
13639
+ },
13640
+ {
13641
+ "path": "src/devvit/internals/blocks/handler/useState.ts",
13642
+ "kind": "import-statement",
13643
+ "original": "./devvit/internals/blocks/handler/useState.js"
13644
+ },
13645
+ {
13646
+ "path": "src/devvit/internals/blocks/handler/useForm.ts",
13647
+ "kind": "import-statement",
13648
+ "original": "./devvit/internals/blocks/handler/useForm.js"
13649
+ },
13650
+ {
13651
+ "path": "src/devvit/internals/blocks/handler/useInterval.ts",
13652
+ "kind": "import-statement",
13653
+ "original": "./devvit/internals/blocks/handler/useInterval.js"
13613
13654
  }
13614
13655
  ],
13615
13656
  "format": "esm"
@@ -14039,7 +14080,7 @@
14039
14080
  "bytesInOutput": 3912
14040
14081
  },
14041
14082
  "src/index.ts": {
14042
- "bytesInOutput": 1662
14083
+ "bytesInOutput": 1826
14043
14084
  },
14044
14085
  "../shared-types/dist/NonNull.js": {
14045
14086
  "bytesInOutput": 118
@@ -14648,13 +14689,13 @@
14648
14689
  "bytesInOutput": 56
14649
14690
  },
14650
14691
  "src/devvit/internals/blocks/handler/useState.ts": {
14651
- "bytesInOutput": 567
14692
+ "bytesInOutput": 2196
14652
14693
  },
14653
14694
  "src/devvit/internals/blocks/handler/RenderContext.ts": {
14654
- "bytesInOutput": 3675
14695
+ "bytesInOutput": 4052
14655
14696
  },
14656
14697
  "src/devvit/internals/blocks/handler/useInterval.ts": {
14657
- "bytesInOutput": 2317
14698
+ "bytesInOutput": 2331
14658
14699
  },
14659
14700
  "src/devvit/internals/blocks/handler/useForm.ts": {
14660
14701
  "bytesInOutput": 915
@@ -14666,7 +14707,7 @@
14666
14707
  "bytesInOutput": 1372
14667
14708
  },
14668
14709
  "src/devvit/internals/blocks/handler/BlocksHandler.ts": {
14669
- "bytesInOutput": 10925
14710
+ "bytesInOutput": 12262
14670
14711
  },
14671
14712
  "src/devvit/internals/ui-request-handler.ts": {
14672
14713
  "bytesInOutput": 618
@@ -14748,9 +14789,12 @@
14748
14789
  },
14749
14790
  "src/apis/ui/helpers/svg.ts": {
14750
14791
  "bytesInOutput": 370
14792
+ },
14793
+ "src/devvit/internals/blocks/handler/useAsync.ts": {
14794
+ "bytesInOutput": 2583
14751
14795
  }
14752
14796
  },
14753
- "bytes": 14812175
14797
+ "bytes": 14830913
14754
14798
  }
14755
14799
  }
14756
14800
  }
package/meta.min.json CHANGED
@@ -3496,7 +3496,7 @@
3496
3496
  "format": "esm"
3497
3497
  },
3498
3498
  "src/devvit/internals/blocks/handler/RenderContext.ts": {
3499
- "bytes": 4807,
3499
+ "bytes": 5300,
3500
3500
  "imports": [
3501
3501
  {
3502
3502
  "path": "<runtime>",
@@ -3666,7 +3666,7 @@
3666
3666
  "format": "esm"
3667
3667
  },
3668
3668
  "src/devvit/internals/blocks/handler/BlocksHandler.ts": {
3669
- "bytes": 13136,
3669
+ "bytes": 14690,
3670
3670
  "imports": [
3671
3671
  {
3672
3672
  "path": "@devvit/protos",
@@ -3693,6 +3693,11 @@
3693
3693
  "kind": "import-statement",
3694
3694
  "original": "./types.js"
3695
3695
  },
3696
+ {
3697
+ "path": "../../node_modules/lodash.isequal/index.js",
3698
+ "kind": "import-statement",
3699
+ "original": "lodash.isequal"
3700
+ },
3696
3701
  {
3697
3702
  "path": "<runtime>",
3698
3703
  "kind": "import-statement",
@@ -4489,8 +4494,24 @@
4489
4494
  ],
4490
4495
  "format": "esm"
4491
4496
  },
4497
+ "src/devvit/internals/blocks/handler/useAsync.ts": {
4498
+ "bytes": 3293,
4499
+ "imports": [
4500
+ {
4501
+ "path": "src/devvit/internals/blocks/handler/BlocksHandler.ts",
4502
+ "kind": "import-statement",
4503
+ "original": "./BlocksHandler.js"
4504
+ },
4505
+ {
4506
+ "path": "<runtime>",
4507
+ "kind": "import-statement",
4508
+ "external": true
4509
+ }
4510
+ ],
4511
+ "format": "esm"
4512
+ },
4492
4513
  "src/index.ts": {
4493
- "bytes": 392,
4514
+ "bytes": 707,
4494
4515
  "imports": [
4495
4516
  {
4496
4517
  "path": "../../node_modules/core-js/web/url.js",
@@ -4526,6 +4547,26 @@
4526
4547
  "path": "src/apis/ui/helpers/svg.ts",
4527
4548
  "kind": "import-statement",
4528
4549
  "original": "./apis/ui/helpers/svg.js"
4550
+ },
4551
+ {
4552
+ "path": "src/devvit/internals/blocks/handler/useAsync.ts",
4553
+ "kind": "import-statement",
4554
+ "original": "./devvit/internals/blocks/handler/useAsync.js"
4555
+ },
4556
+ {
4557
+ "path": "src/devvit/internals/blocks/handler/useState.ts",
4558
+ "kind": "import-statement",
4559
+ "original": "./devvit/internals/blocks/handler/useState.js"
4560
+ },
4561
+ {
4562
+ "path": "src/devvit/internals/blocks/handler/useForm.ts",
4563
+ "kind": "import-statement",
4564
+ "original": "./devvit/internals/blocks/handler/useForm.js"
4565
+ },
4566
+ {
4567
+ "path": "src/devvit/internals/blocks/handler/useInterval.ts",
4568
+ "kind": "import-statement",
4569
+ "original": "./devvit/internals/blocks/handler/useInterval.js"
4529
4570
  }
4530
4571
  ],
4531
4572
  "format": "esm"
@@ -4536,7 +4577,7 @@
4536
4577
  "imports": [],
4537
4578
  "exports": [],
4538
4579
  "inputs": {},
4539
- "bytes": 1107636
4580
+ "bytes": 1117182
4540
4581
  },
4541
4582
  "dist/public-api.min.js": {
4542
4583
  "imports": [
@@ -4685,7 +4726,12 @@
4685
4726
  "getModerationLog",
4686
4727
  "getVaultByAddress",
4687
4728
  "getVaultByUserId",
4688
- "svg"
4729
+ "svg",
4730
+ "useAsync",
4731
+ "useAsyncState",
4732
+ "useForm",
4733
+ "useInterval",
4734
+ "useState"
4689
4735
  ],
4690
4736
  "entryPoint": "src/index.ts",
4691
4737
  "inputs": {
@@ -5206,13 +5252,13 @@
5206
5252
  "bytesInOutput": 29
5207
5253
  },
5208
5254
  "src/devvit/internals/blocks/handler/useState.ts": {
5209
- "bytesInOutput": 313
5255
+ "bytesInOutput": 1077
5210
5256
  },
5211
5257
  "src/devvit/internals/blocks/handler/useInterval.ts": {
5212
5258
  "bytesInOutput": 1174
5213
5259
  },
5214
5260
  "src/devvit/internals/blocks/handler/RenderContext.ts": {
5215
- "bytesInOutput": 1824
5261
+ "bytesInOutput": 1993
5216
5262
  },
5217
5263
  "src/devvit/internals/blocks/handler/UIClient.ts": {
5218
5264
  "bytesInOutput": 974
@@ -5224,7 +5270,7 @@
5224
5270
  "bytesInOutput": 496
5225
5271
  },
5226
5272
  "src/devvit/internals/blocks/handler/BlocksHandler.ts": {
5227
- "bytesInOutput": 4461
5273
+ "bytesInOutput": 5233
5228
5274
  },
5229
5275
  "src/apis/reddit/helpers/makeGettersEnumerable.ts": {
5230
5276
  "bytesInOutput": 166
@@ -5300,9 +5346,12 @@
5300
5346
  },
5301
5347
  "src/apis/ui/helpers/svg.ts": {
5302
5348
  "bytesInOutput": 178
5349
+ },
5350
+ "src/devvit/internals/blocks/handler/useAsync.ts": {
5351
+ "bytesInOutput": 1190
5303
5352
  }
5304
5353
  },
5305
- "bytes": 233939
5354
+ "bytes": 236916
5306
5355
  }
5307
5356
  }
5308
5357
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@devvit/public-api",
3
- "version": "0.10.21-next-2024-05-17-3085e1307.0",
3
+ "version": "0.10.21-next-2024-05-17-f326cdddc.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.10.21-next-2024-05-17-3085e1307.0",
34
- "@devvit/shared-types": "0.10.21-next-2024-05-17-3085e1307.0",
33
+ "@devvit/protos": "0.10.21-next-2024-05-17-f326cdddc.0",
34
+ "@devvit/shared-types": "0.10.21-next-2024-05-17-f326cdddc.0",
35
35
  "base64-js": "1.5.1",
36
36
  "clone-deep": "4.0.1",
37
37
  "core-js": "3.27.2",
@@ -41,7 +41,7 @@
41
41
  "@ampproject/filesize": "4.3.0",
42
42
  "@devvit/eslint-config": "0.10.20",
43
43
  "@devvit/repo-tools": "0.10.20",
44
- "@devvit/tsconfig": "0.10.21-next-2024-05-17-3085e1307.0",
44
+ "@devvit/tsconfig": "0.10.21-next-2024-05-17-f326cdddc.0",
45
45
  "@microsoft/api-extractor": "7.41.0",
46
46
  "@reddit/faceplate-ui": "11.1.0",
47
47
  "@types/clone-deep": "4.0.1",
@@ -64,5 +64,5 @@
64
64
  }
65
65
  },
66
66
  "source": "./src/index.ts",
67
- "gitHead": "2e73a021646801fa4a8296aa97ad68d4297bc19f"
67
+ "gitHead": "729ce044ff780938d1ec021564150a652801648e"
68
68
  }