@devvit/ui-renderer 0.10.23-next-2024-06-27-77cc6e9eb.0 → 0.10.23-next-2024-06-27-fc813f15b.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.
- package/client/devvit-surface.d.ts.map +1 -1
- package/client/devvit-surface.js +10 -3
- package/client/effects/realtime-effect-handler.d.ts +6 -0
- package/client/effects/realtime-effect-handler.d.ts.map +1 -1
- package/client/effects/realtime-effect-handler.js +10 -0
- package/client/runtimes.d.ts +3 -1
- package/client/runtimes.d.ts.map +1 -1
- package/client/runtimes.js +10 -6
- package/client/webDispatcher.d.ts +2 -0
- package/client/webDispatcher.d.ts.map +1 -1
- package/client/webDispatcher.js +4 -1
- package/devvit-surface-meta.min.json +28 -23
- package/devvit-surface.min.js +107 -107
- package/devvit-surface.min.js.map +4 -4
- package/package.json +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devvit-surface.d.ts","sourceRoot":"","sources":["../../library/src/client/devvit-surface.ts"],"names":[],"mappings":"AAAA,OAAO,kEAAkE,CAAC;AAE1E,OAAO,KAAK,EAEV,MAAM,EACN,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,OAAO,EAEP,UAAU,EACX,MAAM,gBAAgB,CAAC;AACxB,OAAO,
|
|
1
|
+
{"version":3,"file":"devvit-surface.d.ts","sourceRoot":"","sources":["../../library/src/client/devvit-surface.ts"],"names":[],"mappings":"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"}
|
package/client/devvit-surface.js
CHANGED
|
@@ -18,17 +18,17 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
|
|
|
18
18
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
19
19
|
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
20
20
|
};
|
|
21
|
-
var _DevvitSurface_instances, _DevvitSurface_rootHeight, _DevvitSurface_resizeObserver, _DevvitSurface_intersectionObserver, _DevvitSurface_dispatcher, _DevvitSurface_newRenderContext, _DevvitSurface_onRender, _DevvitSurface_bubble, _DevvitSurface_onUserActionEffect;
|
|
21
|
+
var _DevvitSurface_instances, _DevvitSurface_rootHeight, _DevvitSurface_resizeObserver, _DevvitSurface_intersectionObserver, _DevvitSurface_dispatcher, _DevvitSurface_newRenderContext, _DevvitSurface_onPluginCall, _DevvitSurface_onRender, _DevvitSurface_bubble, _DevvitSurface_onUserActionEffect;
|
|
22
22
|
import '@reddit/faceplate-ui/templateRenderingStrategy/clientStrategy.js';
|
|
23
|
-
import { BlockConfig_Root, BlockStackDirection, UIDimensions } from '@devvit/protos';
|
|
23
|
+
import { BlockConfig_Root, BlockStackDirection, RealtimeDefinition, UIDimensions, } from '@devvit/protos';
|
|
24
24
|
import { throttle } from '@devvit/shared-types/throttle.js';
|
|
25
25
|
import { asT3ID } from '@devvit/shared-types/tid.js';
|
|
26
|
+
import { customEvent } from '@reddit/faceplate/lib/custom-event.js';
|
|
26
27
|
import { LitElement, html } from 'lit';
|
|
27
28
|
import { customElement, property, state } from 'lit/decorators.js';
|
|
28
29
|
import { DEFAULT_ROOT_HEIGHT } from '../blocks/templates/renderBlock.js';
|
|
29
30
|
import { styles } from '../styles.js';
|
|
30
31
|
import { WebDispatcher } from './webDispatcher.js';
|
|
31
|
-
import { customEvent } from '@reddit/faceplate/lib/custom-event.js';
|
|
32
32
|
import '../blocks/components/devvit-blocks-renderer.js';
|
|
33
33
|
import '../blocks/components/devvit-blocks-webview.js';
|
|
34
34
|
import './devvit-animation-player.js';
|
|
@@ -81,6 +81,11 @@ let DevvitSurface = class DevvitSurface extends LitElement {
|
|
|
81
81
|
// if (!isCircuitBreaker(err)) console.error(err);
|
|
82
82
|
// this.#bubble<DevvitUIError>('devvit-ui-error', { err, type });
|
|
83
83
|
// };
|
|
84
|
+
_DevvitSurface_onPluginCall.set(this, (_id, serviceName, method, args, _meta) => {
|
|
85
|
+
if (serviceName === RealtimeDefinition.fullName &&
|
|
86
|
+
method === RealtimeDefinition.methods.send.name)
|
|
87
|
+
__classPrivateFieldGet(this, _DevvitSurface_instances, "m", _DevvitSurface_bubble).call(this, 'devvit-realtime-send', { event: args });
|
|
88
|
+
});
|
|
84
89
|
_DevvitSurface_onRender.set(this, ({ response }) => {
|
|
85
90
|
var _a, _b;
|
|
86
91
|
this.renderResponse = response;
|
|
@@ -118,6 +123,7 @@ let DevvitSurface = class DevvitSurface extends LitElement {
|
|
|
118
123
|
}, {
|
|
119
124
|
useSpeculativeExecution: this.useSpeculativeExecution,
|
|
120
125
|
}), "f");
|
|
126
|
+
__classPrivateFieldGet(this, _DevvitSurface_dispatcher, "f").onPluginCall = __classPrivateFieldGet(this, _DevvitSurface_onPluginCall, "f");
|
|
121
127
|
__classPrivateFieldGet(this, _DevvitSurface_dispatcher, "f").onUserAction = __classPrivateFieldGet(this, _DevvitSurface_onUserActionEffect, "f");
|
|
122
128
|
__classPrivateFieldGet(this, _DevvitSurface_dispatcher, "f").subscribe((params) => {
|
|
123
129
|
__classPrivateFieldGet(this, _DevvitSurface_onRender, "f").call(this, {
|
|
@@ -230,6 +236,7 @@ _DevvitSurface_resizeObserver = new WeakMap();
|
|
|
230
236
|
_DevvitSurface_intersectionObserver = new WeakMap();
|
|
231
237
|
_DevvitSurface_dispatcher = new WeakMap();
|
|
232
238
|
_DevvitSurface_newRenderContext = new WeakMap();
|
|
239
|
+
_DevvitSurface_onPluginCall = new WeakMap();
|
|
233
240
|
_DevvitSurface_onRender = new WeakMap();
|
|
234
241
|
_DevvitSurface_onUserActionEffect = new WeakMap();
|
|
235
242
|
_DevvitSurface_instances = new WeakSet();
|
|
@@ -28,4 +28,10 @@ export declare class DisabledRealtimeEffectHandler extends EffectHandler {
|
|
|
28
28
|
constructor(host: ReactiveElement);
|
|
29
29
|
protected onEvent(ev: DevvitUIEffectEvent): void;
|
|
30
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* Converts a UIEvent.RealtimeSubscriptionEvent.channel to UIEvent.hook. Eg:
|
|
33
|
+
* `snntest20240521a:4feabe7a-fe98-47fa-97b5-ebc03e126918:locations` becomes
|
|
34
|
+
* `useChannel:locations`. Maintain compatiblity with useChannel().
|
|
35
|
+
*/
|
|
36
|
+
export declare function realtimeChannelToHookID(channel: string): string;
|
|
31
37
|
//# sourceMappingURL=realtime-effect-handler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"realtime-effect-handler.d.ts","sourceRoot":"","sources":["../../../library/src/client/effects/realtime-effect-handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,KAAK,CAAC;AAE3C,OAAO,KAAK,EAA2B,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC7F,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,MAAM,SAAS,GAAG,CAAC,EAAE,EAAE,OAAO,KAAK,IAAI,CAAC;AAoB9C;;;;GAIG;AACH,8BAAsB,qBAAsB,SAAQ,aAAa;;IAE/D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuD;IAExE,aAAa,IAAI,IAAI;IAQrB,gBAAgB,IAAI,IAAI;IAQjC,+DAA+D;IAC/D,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,IAAI;IACvF,8DAA8D;IAC9D,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;cAEvC,OAAO,CAAC,EAAE,EAAE,mBAAmB,GAAG,IAAI;IAqBzD,kCAAkC;IAClC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IACpD,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"realtime-effect-handler.d.ts","sourceRoot":"","sources":["../../../library/src/client/effects/realtime-effect-handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,KAAK,CAAC;AAE3C,OAAO,KAAK,EAA2B,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC7F,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,MAAM,SAAS,GAAG,CAAC,EAAE,EAAE,OAAO,KAAK,IAAI,CAAC;AAoB9C;;;;GAIG;AACH,8BAAsB,qBAAsB,SAAQ,aAAa;;IAE/D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuD;IAExE,aAAa,IAAI,IAAI;IAQrB,gBAAgB,IAAI,IAAI;IAQjC,+DAA+D;IAC/D,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,IAAI;IACvF,8DAA8D;IAC9D,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;cAEvC,OAAO,CAAC,EAAE,EAAE,mBAAmB,GAAG,IAAI;IAqBzD,kCAAkC;IAClC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IACpD,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAqC5E,sCAAsC;IAEtC,OAAO,CAAC,SAAS,CAWf;CACH;AAED,qBAAa,6BAA8B,SAAQ,aAAa;gBAClD,IAAI,EAAE,eAAe;cAKd,OAAO,CAAC,EAAE,EAAE,mBAAmB,GAAG,IAAI;CAK1D;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE/D"}
|
|
@@ -81,6 +81,7 @@ _RealtimeEffectHandler_instances = new WeakSet(), _RealtimeEffectHandler_connect
|
|
|
81
81
|
// used to manage unwanted disconnects by the host.
|
|
82
82
|
this._channels[channel] = 'Connected';
|
|
83
83
|
onEvent?.({
|
|
84
|
+
hook: realtimeChannelToHookID(channel),
|
|
84
85
|
realtimeEvent: {
|
|
85
86
|
event: { channel },
|
|
86
87
|
status: RealtimeSubscriptionStatus.REALTIME_SUBSCRIBED,
|
|
@@ -98,6 +99,7 @@ _RealtimeEffectHandler_instances = new WeakSet(), _RealtimeEffectHandler_connect
|
|
|
98
99
|
console.log(`[realtime] ${channel} disconnected`);
|
|
99
100
|
this.onDisconnectSock(channel);
|
|
100
101
|
onEvent?.({
|
|
102
|
+
hook: realtimeChannelToHookID(channel),
|
|
101
103
|
realtimeEvent: {
|
|
102
104
|
event: { channel },
|
|
103
105
|
status: RealtimeSubscriptionStatus.REALTIME_UNSUBSCRIBED,
|
|
@@ -119,3 +121,11 @@ export class DisabledRealtimeEffectHandler extends EffectHandler {
|
|
|
119
121
|
throw Error('realtime permission required to un/subscribe');
|
|
120
122
|
}
|
|
121
123
|
}
|
|
124
|
+
/**
|
|
125
|
+
* Converts a UIEvent.RealtimeSubscriptionEvent.channel to UIEvent.hook. Eg:
|
|
126
|
+
* `snntest20240521a:4feabe7a-fe98-47fa-97b5-ebc03e126918:locations` becomes
|
|
127
|
+
* `useChannel:locations`. Maintain compatiblity with useChannel().
|
|
128
|
+
*/
|
|
129
|
+
export function realtimeChannelToHookID(channel) {
|
|
130
|
+
return `useChannel:${channel.replace(/^.+:/, '')}`;
|
|
131
|
+
}
|
package/client/runtimes.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { JsRequestBuilder, Response, Runtime } from '@devvit/multiplatform/ui-shared-shared.js';
|
|
2
|
-
import type
|
|
2
|
+
import { type Block, type Effect, type LinkedBundle, type Metadata, type UIEnvironment, type UIEvent, type UIRequest, type UIResponse } from '@devvit/protos';
|
|
3
|
+
import type { PluginCallback } from '@devvit/runtime-lite/runtime/RuntimeLite.js';
|
|
3
4
|
import type { UIApp } from './remote-app.js';
|
|
4
5
|
export declare const RenderPostContent = "RenderPostContent";
|
|
5
6
|
export declare const supportedMethods: Set<"RenderPostContent">;
|
|
@@ -30,6 +31,7 @@ export declare class ReplayUIResponse implements UIResponse, Response<UIState |
|
|
|
30
31
|
export declare class LocalRuntime implements Runtime<UIState, UIEvent, unknown> {
|
|
31
32
|
#private;
|
|
32
33
|
metadata: Readonly<Metadata> | undefined;
|
|
34
|
+
onPluginCall?: PluginCallback | undefined;
|
|
33
35
|
isReady(): boolean;
|
|
34
36
|
set runtimeDebugLogging(on: boolean);
|
|
35
37
|
/** Set the runtime source code. */
|
package/client/runtimes.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtimes.d.ts","sourceRoot":"","sources":["../../library/src/client/runtimes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,QAAQ,EACR,OAAO,EACR,MAAM,2CAA2C,CAAC;AACnD,OAAO,KAAK,EACV,KAAK,
|
|
1
|
+
{"version":3,"file":"runtimes.d.ts","sourceRoot":"","sources":["../../library/src/client/runtimes.ts"],"names":[],"mappings":"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"}
|
package/client/runtimes.js
CHANGED
|
@@ -9,7 +9,8 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
9
9
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
10
10
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
11
|
};
|
|
12
|
-
var _UIRequestBuilder_env, _UIRequestBuilder_props, _LocalRuntime_local, _LocalRuntime_runtimeDebugLogging;
|
|
12
|
+
var _UIRequestBuilder_env, _UIRequestBuilder_props, _LocalRuntime_local, _LocalRuntime_runtimeDebugLogging, _LocalRuntime_onPluginCall;
|
|
13
|
+
import { RealtimeDefinition, } from '@devvit/protos';
|
|
13
14
|
import { BrowserLiteClient } from '@devvit/runtime-lite/client/BrowserLiteClient.js';
|
|
14
15
|
// eslint-disable-next-line @reddit/i18n-shreddit/no-unwrapped-strings
|
|
15
16
|
export const RenderPostContent = 'RenderPostContent';
|
|
@@ -63,6 +64,12 @@ export class LocalRuntime {
|
|
|
63
64
|
*/
|
|
64
65
|
_LocalRuntime_local.set(this, void 0);
|
|
65
66
|
_LocalRuntime_runtimeDebugLogging.set(this, false);
|
|
67
|
+
_LocalRuntime_onPluginCall.set(this, (id, serviceName, method, args, meta) => {
|
|
68
|
+
this.onPluginCall?.(id, serviceName, method, args, meta);
|
|
69
|
+
if (serviceName === RealtimeDefinition.fullName &&
|
|
70
|
+
method === RealtimeDefinition.methods.send.name)
|
|
71
|
+
__classPrivateFieldGet(this, _LocalRuntime_local, "f")?.onPluginResponse(id, { error: undefined, success: true, value: {} });
|
|
72
|
+
});
|
|
66
73
|
}
|
|
67
74
|
isReady() {
|
|
68
75
|
return !!__classPrivateFieldGet(this, _LocalRuntime_local, "f")?.ready;
|
|
@@ -80,10 +87,7 @@ export class LocalRuntime {
|
|
|
80
87
|
// There are unknown and unhandled errors that means the system is in a very unexpected spot.
|
|
81
88
|
// We just log these for now do not forward them to KMP.
|
|
82
89
|
(type, err) => console.error(type, err), {
|
|
83
|
-
callback: (
|
|
84
|
-
if (devvit?.debug.runtime)
|
|
85
|
-
console.debug('[runtime] on plugin call', ...args);
|
|
86
|
-
},
|
|
90
|
+
callback: __classPrivateFieldGet(this, _LocalRuntime_onPluginCall, "f"),
|
|
87
91
|
plugins: [],
|
|
88
92
|
})
|
|
89
93
|
: undefined, "f");
|
|
@@ -127,7 +131,7 @@ export class LocalRuntime {
|
|
|
127
131
|
return {};
|
|
128
132
|
}
|
|
129
133
|
}
|
|
130
|
-
_LocalRuntime_local = new WeakMap(), _LocalRuntime_runtimeDebugLogging = new WeakMap();
|
|
134
|
+
_LocalRuntime_local = new WeakMap(), _LocalRuntime_runtimeDebugLogging = new WeakMap(), _LocalRuntime_onPluginCall = new WeakMap();
|
|
131
135
|
export class RemoteRuntime {
|
|
132
136
|
// TODO: Note that while this is called, it doesn't prevent the KMP dispatcher from
|
|
133
137
|
// calling the associated handle method. This feels like a bug in KMP?
|
|
@@ -2,6 +2,7 @@ import type { Dispatcher, SubscribeCallbackParams } from '@devvit/multiplatform/
|
|
|
2
2
|
import { JsDispatcherImpl } from '@devvit/multiplatform/ui-shared-shared.js';
|
|
3
3
|
import type { Effect, UIRequest } from '@devvit/protos';
|
|
4
4
|
import { type Metadata, type UIEnvironment, type UIEvent } from '@devvit/protos';
|
|
5
|
+
import type { PluginCallback } from '@devvit/runtime-lite/runtime/RuntimeLite.js';
|
|
5
6
|
import type { ReplayUIResponse, UIProps, UIState } from './runtimes.js';
|
|
6
7
|
import { LocalRuntime, RemoteRuntime } from './runtimes.js';
|
|
7
8
|
type KMPDispatcher = JsDispatcherImpl<UIEvent>;
|
|
@@ -21,6 +22,7 @@ export declare class WebDispatcher {
|
|
|
21
22
|
useSpeculativeExecution: boolean;
|
|
22
23
|
});
|
|
23
24
|
set metadata(metadata: Readonly<Metadata> | undefined);
|
|
25
|
+
set onPluginCall(cb: PluginCallback);
|
|
24
26
|
set runtimeDebugLogging(runtimeDebugLogging: boolean);
|
|
25
27
|
subscribe(cb: (p: SubscribeCallbackParams<UIRequest, ReplayUIResponse>) => void): void;
|
|
26
28
|
submit(...args: Parameters<Dispatcher<UIState, UIEvent, unknown>['submit']>): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webDispatcher.d.ts","sourceRoot":"","sources":["../../library/src/client/webDispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EAGV,uBAAuB,EAExB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAmB,MAAM,2CAA2C,CAAC;AAC9F,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,aAAa,EAAE,KAAK,OAAO,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"webDispatcher.d.ts","sourceRoot":"","sources":["../../library/src/client/webDispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EAGV,uBAAuB,EAExB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAmB,MAAM,2CAA2C,CAAC;AAC9F,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,aAAa,EAAE,KAAK,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACjF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAGlF,OAAO,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAuC,MAAM,eAAe,CAAC;AAkBjG,KAAK,aAAa,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;AA2C/C,qBAAa,aAAa;;IAOxB;;;;;;OAMG;IACH,WAAW,UAAS;IAKpB,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAElD,IAAI,KAAK,IAAI,aAAa,CAAC,OAAO,CAAC,CAElC;gBAGC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,GAAG,EAAE,aAAa,EAClB,MAAM,EAAE;QAAE,uBAAuB,EAAE,OAAO,CAAA;KAAE;IAkC9C,IAAI,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,SAAS,EAOpD;IAED,IAAI,YAAY,CAAC,EAAE,EAAE,cAAc,EAElC;IAED,IAAI,mBAAmB,CAAC,mBAAmB,EAAE,OAAO,EAEnD;IAED,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,uBAAuB,CAAC,SAAS,EAAE,gBAAgB,CAAC,KAAK,IAAI,GAAG,IAAI;IA+CtF,MAAM,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI;IAIlF,WAAW,IAAI,IAAI;IAInB,IAAI,IAAI,IAAI;IAIZ,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAUjC,aAAa,IAAI,IAAI;IAKrB,MAAM,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI;IAIhC,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAI9B,UAAU,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI;IAItD,SAAS,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAKzE,eAAe,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,GAAG,IAAI;CAGxE"}
|
package/client/webDispatcher.js
CHANGED
|
@@ -110,6 +110,9 @@ export class WebDispatcher {
|
|
|
110
110
|
__classPrivateFieldGet(this, _WebDispatcher_localRuntime, "f").metadata = copy;
|
|
111
111
|
__classPrivateFieldGet(this, _WebDispatcher_remoteRuntime, "f").metadata = copy;
|
|
112
112
|
}
|
|
113
|
+
set onPluginCall(cb) {
|
|
114
|
+
__classPrivateFieldGet(this, _WebDispatcher_localRuntime, "f").onPluginCall = cb;
|
|
115
|
+
}
|
|
113
116
|
set runtimeDebugLogging(runtimeDebugLogging) {
|
|
114
117
|
__classPrivateFieldGet(this, _WebDispatcher_localRuntime, "f").runtimeDebugLogging = runtimeDebugLogging;
|
|
115
118
|
}
|
|
@@ -120,7 +123,7 @@ export class WebDispatcher {
|
|
|
120
123
|
console.debug(`[runtime] dispatcher got a new event from subscribe`, args[0]);
|
|
121
124
|
const [{ response }] = args;
|
|
122
125
|
response.effects.forEach((effect) => {
|
|
123
|
-
if (userActionEffects.some((type) => effect[type])) {
|
|
126
|
+
if (userActionEffects.some((type) => effect[type]) || effect.realtimeSubscriptions) {
|
|
124
127
|
this.onUserAction?.(effect);
|
|
125
128
|
return;
|
|
126
129
|
}
|
|
@@ -9062,6 +9062,11 @@
|
|
|
9062
9062
|
],
|
|
9063
9063
|
"format": "esm"
|
|
9064
9064
|
},
|
|
9065
|
+
"../../node_modules/@reddit/faceplate/lib/custom-event.js": {
|
|
9066
|
+
"bytes": 787,
|
|
9067
|
+
"imports": [],
|
|
9068
|
+
"format": "esm"
|
|
9069
|
+
},
|
|
9065
9070
|
"../../node_modules/@lit/reactive-element/decorators/custom-element.js": {
|
|
9066
9071
|
"bytes": 350,
|
|
9067
9072
|
"imports": [],
|
|
@@ -9685,11 +9690,6 @@
|
|
|
9685
9690
|
],
|
|
9686
9691
|
"format": "esm"
|
|
9687
9692
|
},
|
|
9688
|
-
"../../node_modules/@reddit/faceplate/lib/custom-event.js": {
|
|
9689
|
-
"bytes": 787,
|
|
9690
|
-
"imports": [],
|
|
9691
|
-
"format": "esm"
|
|
9692
|
-
},
|
|
9693
9693
|
"library/src/blocks/components/devvit-blocks-webview.ts": {
|
|
9694
9694
|
"bytes": 2357,
|
|
9695
9695
|
"imports": [
|
|
@@ -10032,8 +10032,13 @@
|
|
|
10032
10032
|
"format": "esm"
|
|
10033
10033
|
},
|
|
10034
10034
|
"library/src/client/runtimes.ts": {
|
|
10035
|
-
"bytes":
|
|
10035
|
+
"bytes": 6538,
|
|
10036
10036
|
"imports": [
|
|
10037
|
+
{
|
|
10038
|
+
"path": "../protos/dist/index.js",
|
|
10039
|
+
"kind": "import-statement",
|
|
10040
|
+
"original": "@devvit/protos"
|
|
10041
|
+
},
|
|
10037
10042
|
{
|
|
10038
10043
|
"path": "../runtime-lite/dist/client/BrowserLiteClient.js",
|
|
10039
10044
|
"kind": "import-statement",
|
|
@@ -10059,7 +10064,7 @@
|
|
|
10059
10064
|
"format": "esm"
|
|
10060
10065
|
},
|
|
10061
10066
|
"library/src/client/webDispatcher.ts": {
|
|
10062
|
-
"bytes":
|
|
10067
|
+
"bytes": 8141,
|
|
10063
10068
|
"imports": [
|
|
10064
10069
|
{
|
|
10065
10070
|
"path": "../../node_modules/@devvit/multiplatform/kotlin/ui-shared-shared.js",
|
|
@@ -10700,7 +10705,7 @@
|
|
|
10700
10705
|
"format": "esm"
|
|
10701
10706
|
},
|
|
10702
10707
|
"library/src/client/devvit-surface.ts": {
|
|
10703
|
-
"bytes":
|
|
10708
|
+
"bytes": 11794,
|
|
10704
10709
|
"imports": [
|
|
10705
10710
|
{
|
|
10706
10711
|
"path": "../../node_modules/@reddit/faceplate-ui/templateRenderingStrategy/clientStrategy.js",
|
|
@@ -10727,6 +10732,11 @@
|
|
|
10727
10732
|
"kind": "import-statement",
|
|
10728
10733
|
"original": "@devvit/shared-types/tid.js"
|
|
10729
10734
|
},
|
|
10735
|
+
{
|
|
10736
|
+
"path": "../../node_modules/@reddit/faceplate/lib/custom-event.js",
|
|
10737
|
+
"kind": "import-statement",
|
|
10738
|
+
"original": "@reddit/faceplate/lib/custom-event.js"
|
|
10739
|
+
},
|
|
10730
10740
|
{
|
|
10731
10741
|
"path": "../../node_modules/lit/index.js",
|
|
10732
10742
|
"kind": "import-statement",
|
|
@@ -10752,11 +10762,6 @@
|
|
|
10752
10762
|
"kind": "import-statement",
|
|
10753
10763
|
"original": "./webDispatcher.js"
|
|
10754
10764
|
},
|
|
10755
|
-
{
|
|
10756
|
-
"path": "../../node_modules/@reddit/faceplate/lib/custom-event.js",
|
|
10757
|
-
"kind": "import-statement",
|
|
10758
|
-
"original": "@reddit/faceplate/lib/custom-event.js"
|
|
10759
|
-
},
|
|
10760
10765
|
{
|
|
10761
10766
|
"path": "library/src/blocks/components/devvit-blocks-renderer.ts",
|
|
10762
10767
|
"kind": "import-statement",
|
|
@@ -10786,7 +10791,7 @@
|
|
|
10786
10791
|
"imports": [],
|
|
10787
10792
|
"exports": [],
|
|
10788
10793
|
"inputs": {},
|
|
10789
|
-
"bytes":
|
|
10794
|
+
"bytes": 12026949
|
|
10790
10795
|
},
|
|
10791
10796
|
"dist/devvit-surface.min.js": {
|
|
10792
10797
|
"imports": [
|
|
@@ -11089,7 +11094,7 @@
|
|
|
11089
11094
|
"bytesInOutput": 2465
|
|
11090
11095
|
},
|
|
11091
11096
|
"../protos/dist/types/devvit/events/v1alpha/realtime.js": {
|
|
11092
|
-
"bytesInOutput":
|
|
11097
|
+
"bytesInOutput": 2051
|
|
11093
11098
|
},
|
|
11094
11099
|
"../protos/dist/types/devvit/ui/effects/v1alpha/reload_part.js": {
|
|
11095
11100
|
"bytesInOutput": 4677
|
|
@@ -11424,6 +11429,9 @@
|
|
|
11424
11429
|
"../shared-types/dist/tid.js": {
|
|
11425
11430
|
"bytesInOutput": 282
|
|
11426
11431
|
},
|
|
11432
|
+
"../../node_modules/@reddit/faceplate/lib/custom-event.js": {
|
|
11433
|
+
"bytesInOutput": 95
|
|
11434
|
+
},
|
|
11427
11435
|
"../../node_modules/@lit/reactive-element/decorators/custom-element.js": {
|
|
11428
11436
|
"bytesInOutput": 186
|
|
11429
11437
|
},
|
|
@@ -11526,9 +11534,6 @@
|
|
|
11526
11534
|
"library/src/blocks/templates/renderButtonBlock.ts": {
|
|
11527
11535
|
"bytesInOutput": 964
|
|
11528
11536
|
},
|
|
11529
|
-
"../../node_modules/@reddit/faceplate/lib/custom-event.js": {
|
|
11530
|
-
"bytesInOutput": 95
|
|
11531
|
-
},
|
|
11532
11537
|
"library/src/blocks/components/devvit-blocks-webview.ts": {
|
|
11533
11538
|
"bytesInOutput": 1177
|
|
11534
11539
|
},
|
|
@@ -11554,7 +11559,7 @@
|
|
|
11554
11559
|
"bytesInOutput": 20
|
|
11555
11560
|
},
|
|
11556
11561
|
"../../node_modules/@devvit/multiplatform/kotlin/kotlin-kotlin-stdlib.js": {
|
|
11557
|
-
"bytesInOutput":
|
|
11562
|
+
"bytesInOutput": 40874
|
|
11558
11563
|
},
|
|
11559
11564
|
"../../node_modules/@devvit/multiplatform/kotlin/ui-shared-shared.js": {
|
|
11560
11565
|
"bytesInOutput": 12453
|
|
@@ -11584,13 +11589,13 @@
|
|
|
11584
11589
|
"bytesInOutput": 4850
|
|
11585
11590
|
},
|
|
11586
11591
|
"library/src/client/runtimes.ts": {
|
|
11587
|
-
"bytesInOutput":
|
|
11592
|
+
"bytesInOutput": 1845
|
|
11588
11593
|
},
|
|
11589
11594
|
"library/src/client/timers.ts": {
|
|
11590
11595
|
"bytesInOutput": 1178
|
|
11591
11596
|
},
|
|
11592
11597
|
"library/src/client/webDispatcher.ts": {
|
|
11593
|
-
"bytesInOutput":
|
|
11598
|
+
"bytesInOutput": 2583
|
|
11594
11599
|
},
|
|
11595
11600
|
"../../node_modules/@lit/localize/internal/str-tag.js": {
|
|
11596
11601
|
"bytesInOutput": 131
|
|
@@ -11650,10 +11655,10 @@
|
|
|
11650
11655
|
"bytesInOutput": 1710
|
|
11651
11656
|
},
|
|
11652
11657
|
"library/src/client/devvit-surface.ts": {
|
|
11653
|
-
"bytesInOutput":
|
|
11658
|
+
"bytesInOutput": 4556
|
|
11654
11659
|
}
|
|
11655
11660
|
},
|
|
11656
|
-
"bytes":
|
|
11661
|
+
"bytes": 4361218
|
|
11657
11662
|
}
|
|
11658
11663
|
}
|
|
11659
11664
|
}
|