@devvit/public-api 0.10.23-next-2024-06-14-fba191bb3.0 → 0.10.23-next-2024-06-17-b2cea50bb.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;AAM7F,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,CA8BH;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;CA6U1E"}
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;AAM7F,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;;;;;;;;;;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;;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;CA6U1E"}
@@ -13,7 +13,7 @@ var _BlocksHandler_instances, _BlocksHandler_root, _BlocksHandler_contextBuilder
13
13
  import isEqual from 'lodash.isequal';
14
14
  import { BlocksTransformer } from '../BlocksTransformer.js';
15
15
  import { ContextBuilder } from './ContextBuilder.js';
16
- import { RenderContext } from './RenderContext.js';
16
+ import { _isTombstone, RenderContext } from './RenderContext.js';
17
17
  import { RenderInterruptError } from './types.js';
18
18
  /**
19
19
  * This can be a global/singleton because render is synchronous.
@@ -62,10 +62,11 @@ export function registerHook(options, initializer) {
62
62
  },
63
63
  context: _activeRenderContext,
64
64
  };
65
- const fromNull = _activeRenderContext._state[hookId] === undefined;
65
+ const fromNull = _activeRenderContext._state[hookId] === undefined ||
66
+ _isTombstone(_activeRenderContext._state[hookId]);
66
67
  _activeRenderContext._hooks[hookId] = _activeRenderContext._hooks[hookId] ?? initializer(params);
67
68
  const hook = _activeRenderContext._hooks[hookId];
68
- if (_activeRenderContext._state[hookId] !== undefined) {
69
+ if (!fromNull) {
69
70
  hook.state = _activeRenderContext._state[hookId];
70
71
  }
71
72
  hook.onStateLoaded?.();
@@ -1 +1 @@
1
- {"version":3,"file":"RenderContext.d.ts","sourceRoot":"","sources":["../../../../../src/devvit/internals/blocks/handler/RenderContext.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RenderContext.d.ts","sourceRoot":"","sources":["../../../../../src/devvit/internals/blocks/handler/RenderContext.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,10 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
10
10
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
11
  };
12
12
  var _RenderContext_state;
13
+ /** @internal */
14
+ export function _isTombstone(value) {
15
+ return typeof value === 'object' && value !== null && '__deleted' in value;
16
+ }
13
17
  /**
14
18
  * The RenderContext is a class that holds the state of the rendering process.
15
19
  *
@@ -53,6 +57,14 @@ export class RenderContext {
53
57
  const changed = {};
54
58
  for (const key in this._changed)
55
59
  changed[key] = this._state[key];
60
+ const unmounted = new Set(Object.keys(this._state));
61
+ Object.keys(this._hooks).forEach((key) => {
62
+ unmounted.delete(key);
63
+ });
64
+ unmounted.forEach((key) => {
65
+ const t = { __deleted: true };
66
+ this._state[key] = changed[key] = t;
67
+ });
56
68
  return changed;
57
69
  }
58
70
  get hooks() {
@@ -65,6 +77,7 @@ export class RenderContext {
65
77
  /** Replacing state resets the delta for the next render. */
66
78
  set _state(state) {
67
79
  this._changed = {};
80
+ this._hooks = {};
68
81
  __classPrivateFieldSet(this, _RenderContext_state, state, "f");
69
82
  }
70
83
  push(options) {
@@ -1,8 +1,8 @@
1
1
  import type { UIEvent } from '@devvit/protos';
2
2
  import type { JSONValue } from '@devvit/shared-types/json.js';
3
- import type { RenderContext } from './RenderContext.js';
3
+ import type { RenderContext, Tombstone } from './RenderContext.js';
4
4
  export type BlocksState = {
5
- [hookID: string]: JSONValue;
5
+ [hookID: string]: JSONValue | Tombstone;
6
6
  };
7
7
  export type Props = {
8
8
  [key: string]: unknown;
@@ -49,7 +49,7 @@ export type Hook = {
49
49
  * render but state may be passed in the render request and used to prime that
50
50
  * render's hook before onLoad().
51
51
  */
52
- state: JSONValue;
52
+ state: JSONValue | Tombstone;
53
53
  /**
54
54
  * What event callbacks want to hit.
55
55
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/devvit/internals/blocks/handler/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,MAAM,WAAW,GAAG;IAAE,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAE1D,MAAM,MAAM,KAAK,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAC;AAE/C,MAAM,MAAM,WAAW,GAAG;IACxB;;;;;;;;;;OAUG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;OAKG;IAEH,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAErB;;;OAGG;IAEH,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAErF;;;GAGG;AACH,MAAM,MAAM,IAAI,GAAG;IACjB;;;;OAIG;IACH,KAAK,EAAE,SAAS,CAAC;IAEjB;;OAEG;IACH,SAAS,CAAC,EAAE,YAAY,CAAC;IAEzB;;;;;;;;;OASG;IACH,aAAa,CAAC,IAAI,IAAI,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IAAE,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtC,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,UAAU,IAAI,IAAI,CAAC;IACnB,OAAO,EAAE,aAAa,CAAC;CACxB,CAAC;AAEF;;;;;;;GAOG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;CAAG"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/devvit/internals/blocks/handler/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEnE,MAAM,MAAM,WAAW,GAAG;IAAE,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAA;CAAE,CAAC;AAEtE,MAAM,MAAM,KAAK,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAC;AAE/C,MAAM,MAAM,WAAW,GAAG;IACxB;;;;;;;;;;OAUG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;OAKG;IAEH,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAErB;;;OAGG;IAEH,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAErF;;;GAGG;AACH,MAAM,MAAM,IAAI,GAAG;IACjB;;;;OAIG;IACH,KAAK,EAAE,SAAS,GAAG,SAAS,CAAC;IAE7B;;OAEG;IACH,SAAS,CAAC,EAAE,YAAY,CAAC;IAEzB;;;;;;;;;OASG;IACH,aAAa,CAAC,IAAI,IAAI,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IAAE,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtC,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,UAAU,IAAI,IAAI,CAAC;IACnB,OAAO,EAAE,aAAa,CAAC;CACxB,CAAC;AAEF;;;;;;;GAOG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;CAAG"}
package/meta.json CHANGED
@@ -7489,7 +7489,7 @@
7489
7489
  "format": "esm"
7490
7490
  },
7491
7491
  "../protos/dist/types/devvit/plugin/redditapi/common/common_msg.js": {
7492
- "bytes": 163351,
7492
+ "bytes": 164964,
7493
7493
  "imports": [
7494
7494
  {
7495
7495
  "path": "../../node_modules/protobufjs/minimal.js",
@@ -10009,7 +10009,7 @@
10009
10009
  "format": "esm"
10010
10010
  },
10011
10011
  "../protos/dist/types/devvit/plugin/redditapi/moderation/moderation_svc.js": {
10012
- "bytes": 61572,
10012
+ "bytes": 65760,
10013
10013
  "imports": [
10014
10014
  {
10015
10015
  "path": "../../node_modules/protobufjs/minimal.js",
@@ -12306,7 +12306,7 @@
12306
12306
  "format": "esm"
12307
12307
  },
12308
12308
  "src/devvit/internals/blocks/handler/RenderContext.ts": {
12309
- "bytes": 5690,
12309
+ "bytes": 6340,
12310
12310
  "imports": [
12311
12311
  {
12312
12312
  "path": "<runtime>",
@@ -12379,7 +12379,7 @@
12379
12379
  "format": "esm"
12380
12380
  },
12381
12381
  "src/devvit/internals/blocks/handler/types.ts": {
12382
- "bytes": 3147,
12382
+ "bytes": 3182,
12383
12383
  "imports": [],
12384
12384
  "format": "esm"
12385
12385
  },
@@ -12491,7 +12491,7 @@
12491
12491
  "format": "esm"
12492
12492
  },
12493
12493
  "src/devvit/internals/blocks/handler/BlocksHandler.ts": {
12494
- "bytes": 15808,
12494
+ "bytes": 15843,
12495
12495
  "imports": [
12496
12496
  {
12497
12497
  "path": "@devvit/protos",
@@ -13939,7 +13939,7 @@
13939
13939
  "bytesInOutput": 22818
13940
13940
  },
13941
13941
  "../protos/dist/types/devvit/plugin/redditapi/common/common_msg.js": {
13942
- "bytesInOutput": 145209
13942
+ "bytesInOutput": 146607
13943
13943
  },
13944
13944
  "../protos/dist/types/devvit/ui/effects/v1alpha/effect.js": {
13945
13945
  "bytesInOutput": 9025
@@ -14236,7 +14236,7 @@
14236
14236
  "bytesInOutput": 36842
14237
14237
  },
14238
14238
  "../protos/dist/types/devvit/plugin/redditapi/moderation/moderation_svc.js": {
14239
- "bytesInOutput": 35869
14239
+ "bytesInOutput": 38509
14240
14240
  },
14241
14241
  "../protos/dist/types/devvit/plugin/redditapi/moderation/moderation_msg.js": {
14242
14242
  "bytesInOutput": 43555
@@ -14425,7 +14425,7 @@
14425
14425
  "bytesInOutput": 3085
14426
14426
  },
14427
14427
  "src/devvit/internals/blocks/handler/BlocksHandler.ts": {
14428
- "bytesInOutput": 13799
14428
+ "bytesInOutput": 13815
14429
14429
  },
14430
14430
  "src/devvit/internals/blocks/handler/useForm.ts": {
14431
14431
  "bytesInOutput": 915
@@ -14434,7 +14434,7 @@
14434
14434
  "bytesInOutput": 2049
14435
14435
  },
14436
14436
  "src/devvit/internals/blocks/handler/RenderContext.ts": {
14437
- "bytesInOutput": 4301
14437
+ "bytesInOutput": 4721
14438
14438
  },
14439
14439
  "src/devvit/internals/blocks/handler/useChannel.ts": {
14440
14440
  "bytesInOutput": 5176
@@ -14539,7 +14539,7 @@
14539
14539
  "bytesInOutput": 4450
14540
14540
  }
14541
14541
  },
14542
- "bytes": 14986465
14542
+ "bytes": 15003247
14543
14543
  }
14544
14544
  }
14545
14545
  }
package/meta.min.json CHANGED
@@ -3536,7 +3536,7 @@
3536
3536
  "format": "esm"
3537
3537
  },
3538
3538
  "src/devvit/internals/blocks/handler/RenderContext.ts": {
3539
- "bytes": 5690,
3539
+ "bytes": 6340,
3540
3540
  "imports": [
3541
3541
  {
3542
3542
  "path": "<runtime>",
@@ -3609,7 +3609,7 @@
3609
3609
  "format": "esm"
3610
3610
  },
3611
3611
  "src/devvit/internals/blocks/handler/types.ts": {
3612
- "bytes": 3147,
3612
+ "bytes": 3182,
3613
3613
  "imports": [],
3614
3614
  "format": "esm"
3615
3615
  },
@@ -3721,7 +3721,7 @@
3721
3721
  "format": "esm"
3722
3722
  },
3723
3723
  "src/devvit/internals/blocks/handler/BlocksHandler.ts": {
3724
- "bytes": 15808,
3724
+ "bytes": 15843,
3725
3725
  "imports": [
3726
3726
  {
3727
3727
  "path": "@devvit/protos",
@@ -4657,7 +4657,7 @@
4657
4657
  "imports": [],
4658
4658
  "exports": [],
4659
4659
  "inputs": {},
4660
- "bytes": 1144290
4660
+ "bytes": 1145437
4661
4661
  },
4662
4662
  "dist/public-api.min.js": {
4663
4663
  "imports": [
@@ -5336,7 +5336,7 @@
5336
5336
  "bytesInOutput": 260
5337
5337
  },
5338
5338
  "src/devvit/internals/blocks/handler/BlocksHandler.ts": {
5339
- "bytesInOutput": 5958
5339
+ "bytesInOutput": 5956
5340
5340
  },
5341
5341
  "src/devvit/internals/blocks/handler/UIClient.ts": {
5342
5342
  "bytesInOutput": 974
@@ -5348,7 +5348,7 @@
5348
5348
  "bytesInOutput": 2903
5349
5349
  },
5350
5350
  "src/devvit/internals/blocks/handler/RenderContext.ts": {
5351
- "bytesInOutput": 2082
5351
+ "bytesInOutput": 2315
5352
5352
  },
5353
5353
  "src/devvit/internals/blocks/handler/useInterval.ts": {
5354
5354
  "bytesInOutput": 1184
@@ -5444,7 +5444,7 @@
5444
5444
  "bytesInOutput": 2135
5445
5445
  }
5446
5446
  },
5447
- "bytes": 245307
5447
+ "bytes": 245538
5448
5448
  }
5449
5449
  }
5450
5450
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@devvit/public-api",
3
- "version": "0.10.23-next-2024-06-14-fba191bb3.0",
3
+ "version": "0.10.23-next-2024-06-17-b2cea50bb.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.23-next-2024-06-14-fba191bb3.0",
34
- "@devvit/shared-types": "0.10.23-next-2024-06-14-fba191bb3.0",
33
+ "@devvit/protos": "0.10.23-next-2024-06-17-b2cea50bb.0",
34
+ "@devvit/shared-types": "0.10.23-next-2024-06-17-b2cea50bb.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.22",
43
43
  "@devvit/repo-tools": "0.10.22",
44
- "@devvit/tsconfig": "0.10.23-next-2024-06-14-fba191bb3.0",
44
+ "@devvit/tsconfig": "0.10.23-next-2024-06-17-b2cea50bb.0",
45
45
  "@microsoft/api-extractor": "7.41.0",
46
46
  "@reddit/faceplate-ui": "11.3.3",
47
47
  "@types/clone-deep": "4.0.1",
@@ -64,5 +64,5 @@
64
64
  }
65
65
  },
66
66
  "source": "./src/index.ts",
67
- "gitHead": "bdb524219f988bc6962e5ed5aa7707f9e10d3e4e"
67
+ "gitHead": "c038a10118c3bb88eb285384a1cbab84f5f975fa"
68
68
  }
package/public-api.d.ts CHANGED
@@ -804,6 +804,26 @@ declare interface ApiClientConfig {
804
804
  * request message. If this field is specified, that will be included in the request.
805
805
  */
806
806
  requestKindValue: string;
807
+ /**
808
+ * If set, the thing specified in the input message's field specified by `validate_content_id_context`
809
+ * must belong to the subreddit in the call's metadata before the call is allowed to proceed.
810
+ *
811
+ * For example, setting:
812
+ * option (devvit.plugin.redditapi.common.api_client_config).validate_content_id_context = 'id';
813
+ * will test that the input message's `id` field contains a thing (post/comment) that belongs
814
+ * to the subreddit in the call's metadata.
815
+ */
816
+ validateContentIdContext: string;
817
+ /**
818
+ * If set, the subreddit specified in the input message's field specified by `validate_subreddit_context`
819
+ * must match the subreddit in the call's metadata before the call is allowed to proceed.
820
+ *
821
+ * For example, setting:
822
+ * option (devvit.plugin.redditapi.common.api_client_config).validate_subreddit_context = 'subreddit';
823
+ * will test that the input message's `subreddit` field contains a subreddit *name* matches the subreddit
824
+ * in the call's metadata.
825
+ */
826
+ validateSubredditContext: string;
807
827
  }
808
828
 
809
829
  declare const ApiClientConfig: {
@@ -65274,6 +65294,9 @@ declare interface UIResponse {
65274
65294
  * Stateful data to be sent back. Event responses only contain state deltas to
65275
65295
  * allow the requester to aggregate and reconcile local and remote state. This
65276
65296
  * will be sent back to you in the next request.
65297
+ *
65298
+ * Note that the deltas also may include "tombstones" which must be used to delete
65299
+ * keys from the state. This is useful for cleaning up state that is no longer needed.
65277
65300
  */
65278
65301
  state?: {
65279
65302
  [key: string]: any;