@devvit/public-api 0.10.22-next-2024-06-06-0f86ae113.0 → 0.10.22-next-2024-06-10-a7341f40e.0
Sign up to get free protection for your applications and to get access to all the features.
- package/apis/AssetsClient/AssetsClient.d.ts +3 -4
- package/apis/AssetsClient/AssetsClient.d.ts.map +1 -1
- package/apis/AssetsClient/AssetsClient.js +22 -35
- package/apis/makeAPIClients.d.ts.map +1 -1
- package/apis/makeAPIClients.js +1 -2
- package/devvit/Devvit.d.ts +0 -9
- package/devvit/Devvit.d.ts.map +1 -1
- package/devvit/Devvit.js +8 -11
- package/devvit/internals/blocks/BlocksReconciler.d.ts.map +1 -1
- package/devvit/internals/blocks/BlocksReconciler.js +3 -37
- package/devvit/internals/blocks/BlocksTransformer.d.ts +16 -12
- package/devvit/internals/blocks/BlocksTransformer.d.ts.map +1 -1
- package/devvit/internals/blocks/BlocksTransformer.js +43 -29
- package/devvit/internals/blocks/handler/BlocksHandler.d.ts.map +1 -1
- package/devvit/internals/blocks/handler/BlocksHandler.js +7 -23
- package/devvit/internals/blocks/handler/ContextBuilder.d.ts +1 -1
- package/devvit/internals/blocks/handler/ContextBuilder.d.ts.map +1 -1
- package/devvit/internals/blocks/handler/ContextBuilder.js +1 -2
- package/meta.json +62 -90
- package/meta.min.json +60 -88
- package/package.json +5 -5
- package/public-api.d.ts +4 -22
- package/public-api.iife.js +549 -705
- package/public-api.min.js +5 -5
- package/public-api.min.js.map +4 -4
@@ -1,19 +1,18 @@
|
|
1
|
-
import type { AssetResolver, Metadata } from '@devvit/protos';
|
2
1
|
import type { AssetMap } from '@devvit/shared-types/Assets.js';
|
3
2
|
export declare class AssetsClient {
|
4
3
|
#private;
|
5
|
-
constructor(
|
4
|
+
constructor();
|
6
5
|
/**
|
7
6
|
* Gets the public URLs for an asset.
|
8
7
|
* @param assetPath A path, relative to the 'assets/' folder.
|
9
8
|
* @returns The public URL for that asset (https://i.redd.it/<id>.<ext>)
|
10
9
|
*/
|
11
|
-
getURL(assetPath: string):
|
10
|
+
getURL(assetPath: string): string;
|
12
11
|
/**
|
13
12
|
* Gets the public URLs for multiple assets.
|
14
13
|
* @param assetPaths An array of paths, relative to the 'assets/' folder.
|
15
14
|
* @returns A map of each asset path to its public URL (https://i.redd.it/<id>.<ext>)
|
16
15
|
*/
|
17
|
-
getURL(assetPaths: string[]):
|
16
|
+
getURL(assetPaths: string[]): AssetMap;
|
18
17
|
}
|
19
18
|
//# sourceMappingURL=AssetsClient.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"AssetsClient.d.ts","sourceRoot":"","sources":["../../../src/apis/AssetsClient/AssetsClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
1
|
+
{"version":3,"file":"AssetsClient.d.ts","sourceRoot":"","sources":["../../../src/apis/AssetsClient/AssetsClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAG/D,qBAAa,YAAY;;;IAOvB;;;;OAIG;IACH,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAEjC;;;;OAIG;IACH,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,QAAQ;CA4DvC"}
|
@@ -9,14 +9,13 @@ 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 _AssetsClient_instances,
|
12
|
+
var _AssetsClient_instances, _AssetsClient_assetMap, _AssetsClient_getURL, _AssetsClient_getURLs;
|
13
|
+
import { Devvit } from '../../devvit/Devvit.js';
|
13
14
|
export class AssetsClient {
|
14
|
-
constructor(
|
15
|
+
constructor() {
|
15
16
|
_AssetsClient_instances.add(this);
|
16
|
-
|
17
|
-
|
18
|
-
__classPrivateFieldSet(this, _AssetsClient_metadata, metadata, "f");
|
19
|
-
__classPrivateFieldSet(this, _AssetsClient_assetsPluginFetcher, assetsPluginFetcher, "f");
|
17
|
+
_AssetsClient_assetMap.set(this, {});
|
18
|
+
__classPrivateFieldSet(this, _AssetsClient_assetMap, Devvit.assets, "f");
|
20
19
|
}
|
21
20
|
/**
|
22
21
|
* Takes one or more asset names, relative to the 'assets/' folder, and returns either the
|
@@ -24,35 +23,38 @@ export class AssetsClient {
|
|
24
23
|
* @param assetPathOrPaths - Either the path you need the public URL for, or an array of paths.
|
25
24
|
* @returns Either the public URL for the one asset you asked for, or a map of assets to their URLs.
|
26
25
|
*/
|
27
|
-
|
26
|
+
getURL(assetPathOrPaths) {
|
28
27
|
if (typeof assetPathOrPaths === 'string') {
|
29
28
|
return __classPrivateFieldGet(this, _AssetsClient_instances, "m", _AssetsClient_getURL).call(this, assetPathOrPaths);
|
30
29
|
}
|
31
30
|
return __classPrivateFieldGet(this, _AssetsClient_instances, "m", _AssetsClient_getURLs).call(this, assetPathOrPaths);
|
32
31
|
}
|
33
32
|
}
|
34
|
-
|
35
|
-
//
|
36
|
-
const localUrl =
|
33
|
+
_AssetsClient_assetMap = new WeakMap(), _AssetsClient_instances = new WeakSet(), _AssetsClient_getURL = function _AssetsClient_getURL(assetPath) {
|
34
|
+
// Has the assetPath already been resolved?
|
35
|
+
const localUrl = __classPrivateFieldGet(this, _AssetsClient_assetMap, "f")[assetPath];
|
37
36
|
if (localUrl) {
|
38
37
|
return localUrl;
|
39
38
|
}
|
40
|
-
|
41
|
-
|
42
|
-
|
39
|
+
try {
|
40
|
+
// This will throw an exception if it's an invalid URL such as a relative path
|
41
|
+
new URL(assetPath);
|
42
|
+
// URL is valid
|
43
|
+
return assetPath;
|
43
44
|
}
|
44
|
-
|
45
|
-
|
45
|
+
catch {
|
46
|
+
// Not a fully qualified URL, not an asset, return an empty string
|
47
|
+
return '';
|
48
|
+
}
|
49
|
+
}, _AssetsClient_getURLs = function _AssetsClient_getURLs(assetPaths) {
|
46
50
|
const retval = {};
|
47
51
|
let missingPaths = [];
|
48
52
|
// Try and short circuit using the locally available assets list if possible, keeping a list
|
49
53
|
// of all the paths that we couldn't find locally to ask the backend about
|
50
|
-
|
51
|
-
const localAssets = globalThis.devvit?.config?.assets;
|
52
|
-
if (localAssets) {
|
54
|
+
if (__classPrivateFieldGet(this, _AssetsClient_assetMap, "f")) {
|
53
55
|
for (const path of assetPaths) {
|
54
|
-
if (
|
55
|
-
retval[path] =
|
56
|
+
if (__classPrivateFieldGet(this, _AssetsClient_assetMap, "f")[path]) {
|
57
|
+
retval[path] = __classPrivateFieldGet(this, _AssetsClient_assetMap, "f")[path];
|
56
58
|
}
|
57
59
|
else {
|
58
60
|
missingPaths.push(path);
|
@@ -63,21 +65,6 @@ _AssetsClient_metadata = new WeakMap(), _AssetsClient_assetsPluginFetcher = new
|
|
63
65
|
// No local assets - everything is missing
|
64
66
|
missingPaths = assetPaths;
|
65
67
|
}
|
66
|
-
if (missingPaths.length === 0) {
|
67
|
-
// Found everything - don't bother the backend
|
68
|
-
return retval;
|
69
|
-
}
|
70
|
-
const response = await __classPrivateFieldGet(this, _AssetsClient_assetsPluginFetcher, "f").call(this).GetAssetURLs({ paths: missingPaths }, __classPrivateFieldGet(this, _AssetsClient_metadata, "f"));
|
71
|
-
missingPaths = [];
|
72
|
-
for (const [path, result] of Object.entries(response.urls)) {
|
73
|
-
if (result.found) {
|
74
|
-
// This will only contain one value when being used like this, because we don't allow globbing
|
75
|
-
retval[path] = result.paths[0];
|
76
|
-
}
|
77
|
-
else {
|
78
|
-
missingPaths.push(path);
|
79
|
-
}
|
80
|
-
}
|
81
68
|
if (missingPaths.length > 0) {
|
82
69
|
throw new Error(`The following assets were missing from the assets list: ${missingPaths.join(', ')}`);
|
83
70
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"makeAPIClients.d.ts","sourceRoot":"","sources":["../../src/apis/makeAPIClients.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gDAAgD,CAAC;AAKvF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;
|
1
|
+
{"version":3,"file":"makeAPIClients.d.ts","sourceRoot":"","sources":["../../src/apis/makeAPIClients.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gDAAgD,CAAC;AAKvF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAarD,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,EAAE,QAAQ,CAAC;IACnB,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,gBAAgB,CAAC;CAC/B,CAAC;AAEF,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,EAAE,EACF,KAAK,EACL,UAAU,GACX,EAAE,qBAAqB,GAAG,iBAAiB,CA0E3C"}
|
package/apis/makeAPIClients.js
CHANGED
@@ -2,7 +2,6 @@ import { makeUseChannelHook } from '../devvit/internals/blocks/useChannel.js';
|
|
2
2
|
import { makeUseFormHook } from '../devvit/internals/blocks/useForm.js';
|
3
3
|
import { makeUseIntervalHook } from '../devvit/internals/blocks/useInterval.js';
|
4
4
|
import { makeUseStateHook } from '../devvit/internals/blocks/useState.js';
|
5
|
-
import { Devvit } from '../index.js';
|
6
5
|
import { AssetsClient } from './AssetsClient/AssetsClient.js';
|
7
6
|
import { KeyValueStorage } from './key-value-storage/KeyValueStorage.js';
|
8
7
|
import { MediaClient } from './media/MediaClient.js';
|
@@ -24,7 +23,7 @@ export function makeAPIClients({ metadata, ui, hooks, reconciler, }) {
|
|
24
23
|
const settings = new SettingsClient(metadata);
|
25
24
|
const uiClient = ui ? new UIClient(reconciler) : undefined;
|
26
25
|
const media = new MediaClient(metadata);
|
27
|
-
const assets = new AssetsClient(
|
26
|
+
const assets = new AssetsClient();
|
28
27
|
const realtime = new RealtimeClient(metadata);
|
29
28
|
const useState = hooks && reconciler ? makeUseStateHook(reconciler) : undefined;
|
30
29
|
const useInterval = hooks && reconciler ? makeUseIntervalHook(reconciler) : undefined;
|
package/devvit/Devvit.d.ts
CHANGED
@@ -477,13 +477,4 @@ declare global {
|
|
477
477
|
type ComponentFunction = (props: JSX.Props, context: Devvit.Context) => JSX.Element;
|
478
478
|
}
|
479
479
|
}
|
480
|
-
export type DevvitGlobalScope = WindowOrWorkerGlobalScope & {
|
481
|
-
devvit?: {
|
482
|
-
config?: {
|
483
|
-
assets: {
|
484
|
-
readonly [path: string]: string;
|
485
|
-
};
|
486
|
-
};
|
487
|
-
};
|
488
|
-
};
|
489
480
|
//# sourceMappingURL=Devvit.d.ts.map
|
package/devvit/Devvit.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Devvit.d.ts","sourceRoot":"","sources":["../../src/devvit/Devvit.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAItD,OAAO,KAAK,EACV,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,IAAI,EACJ,IAAI,EAEJ,YAAY,EACZ,OAAO,EACP,wBAAwB,EACxB,QAAQ,EACR,QAAQ,EACR,sBAAsB,EAGtB,gBAAgB,EAChB,iBAAiB,EAGjB,YAAY,EACZ,gBAAgB,EAChB,qBAAqB,EACtB,MAAM,mBAAmB,CAAC;AA4C3B,qBAAa,MAAO,SAAQ,KAAK;;IAC/B;;OAEG;IACH,MAAM,CAAC,KAAK;QACV;;;;;WAKG;;QAGH;;;WAGG;;MAEH;IAYF;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IA4C7C;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAI5C;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,MAAM,CAAC,iBAAiB,CAAC,cAAc,EAAE,cAAc,GAAG,IAAI;IAI9D;;;;;OAKG;IACH,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,YAAY,EAAE,QAAQ,EAAE,wBAAwB,GAAG,OAAO;IASzF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACH,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,gBAAgB,GAAG,IAAI;IAYnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+CG;IACH,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,iBAAiB,EAAE,GAAG,IAAI;IAsBrD;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,MAAM,gBAAgB,EAAE,UAAU,EAAE;QAC9D,KAAK,EAAE,CAAC,CAAC;QACT,OAAO,EAAE,qBAAqB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;KACrD,GAAG,OAAO,MAAM;IACjB,MAAM,CAAC,UAAU,CAAC,KAAK,SAAS,YAAY,EAC1C,iBAAiB,EAAE,sBAAsB,CAAC,KAAK,CAAC,GAC/C,OAAO,MAAM;
|
1
|
+
{"version":3,"file":"Devvit.d.ts","sourceRoot":"","sources":["../../src/devvit/Devvit.ts"],"names":[],"mappings":"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"}
|
package/devvit/Devvit.js
CHANGED
@@ -9,7 +9,7 @@ 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 _a, _Devvit_configuration, _Devvit_menuItems, _Devvit_customPostType, _Devvit_formDefintions, _Devvit_scheduledJobHandlers, _Devvit_installationSettings, _Devvit_appSettings, _Devvit_triggerOnEventHandlers, _Devvit_uses, _Devvit_pluginClients, _Devvit_use;
|
12
|
+
var _a, _Devvit_configuration, _Devvit_menuItems, _Devvit_customPostType, _Devvit_formDefintions, _Devvit_scheduledJobHandlers, _Devvit_installationSettings, _Devvit_appSettings, _Devvit_triggerOnEventHandlers, _Devvit_uses, _Devvit_pluginClients, _Devvit_use, _Devvit_assets;
|
13
13
|
import * as protos from '@devvit/protos';
|
14
14
|
import { Actor } from '@devvit/shared-types/Actor.js';
|
15
15
|
import { assertValidFormFields } from '../apis/ui/helpers/assertValidFormFields.js';
|
@@ -336,14 +336,6 @@ export class Devvit extends Actor {
|
|
336
336
|
return apiV2;
|
337
337
|
}
|
338
338
|
/** @internal */
|
339
|
-
static get assetsPlugin() {
|
340
|
-
const assets = __classPrivateFieldGet(this, _a, "f", _Devvit_pluginClients)[protos.AssetResolverDefinition.fullName];
|
341
|
-
if (!assets) {
|
342
|
-
throw new Error('AssetsService is not available. This should not happen, and indicates a setup problem with the runtime.');
|
343
|
-
}
|
344
|
-
return assets;
|
345
|
-
}
|
346
|
-
/** @internal */
|
347
339
|
static get settingsPlugin() {
|
348
340
|
const settings = __classPrivateFieldGet(this, _a, "f", _Devvit_pluginClients)[protos.SettingsDefinition.fullName];
|
349
341
|
if (!settings) {
|
@@ -388,10 +380,13 @@ export class Devvit extends Actor {
|
|
388
380
|
return __classPrivateFieldGet(this, _a, "f", _Devvit_triggerOnEventHandlers);
|
389
381
|
}
|
390
382
|
/** @internal */
|
383
|
+
static get assets() {
|
384
|
+
return __classPrivateFieldGet(_a, _a, "f", _Devvit_assets);
|
385
|
+
}
|
386
|
+
/** @internal */
|
391
387
|
constructor(config) {
|
392
388
|
super(config);
|
393
|
-
|
394
|
-
__classPrivateFieldGet(_a, _a, "m", _Devvit_use).call(_a, protos.AssetResolverDefinition);
|
389
|
+
__classPrivateFieldSet(_a, _a, config.assets ?? {}, "f", _Devvit_assets);
|
395
390
|
for (const fullName in __classPrivateFieldGet(_a, _a, "f", _Devvit_uses)) {
|
396
391
|
const use = __classPrivateFieldGet(_a, _a, "f", _Devvit_uses)[fullName];
|
397
392
|
use.handler = config.use(use.def, use.options);
|
@@ -467,6 +462,8 @@ _Devvit_triggerOnEventHandlers = { value: new Map() };
|
|
467
462
|
_Devvit_uses = { value: {} };
|
468
463
|
/** @internal */
|
469
464
|
_Devvit_pluginClients = { value: {} };
|
465
|
+
/** @internal */
|
466
|
+
_Devvit_assets = { value: {} };
|
470
467
|
(function (Devvit) {
|
471
468
|
function createElement(type, props, ...children) {
|
472
469
|
const blockElement = {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"BlocksReconciler.d.ts","sourceRoot":"","sources":["../../../../src/devvit/internals/blocks/BlocksReconciler.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"BlocksReconciler.d.ts","sourceRoot":"","sources":["../../../../src/devvit/internals/blocks/BlocksReconciler.ts"],"names":[],"mappings":"AA6CA,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,MAAM,CAAC;IAEb,KAAK,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,GAAG,SAAS,CAAC;IAC9C,QAAQ,EAAE,4BAA4B,EAAE,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG,mBAAmB,GAAG,MAAM,CAAC;AAUxE,wBAAgB,eAAe,CAC7B,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,OAAO,IAAI,mBAAmB,CAIxC"}
|
@@ -12,7 +12,6 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
|
|
12
12
|
var _BlocksReconciler_instances, _BlocksReconciler_reset, _BlocksReconciler_makeContextProps, _BlocksReconciler_flatten, _BlocksReconciler_rerenderAlreadyScheduled;
|
13
13
|
import { BlockRenderEventType, EffectType } from '@devvit/protos';
|
14
14
|
import { Header } from '@devvit/shared-types/Header.js';
|
15
|
-
import { isValidImageURL } from '@devvit/shared-types/imageUtil.js';
|
16
15
|
import { makeAPIClients } from '../../../apis/makeAPIClients.js';
|
17
16
|
import { getEffectsFromUIClient } from '../../../apis/ui/helpers/getEffectsFromUIClient.js';
|
18
17
|
import { Devvit } from '../../Devvit.js';
|
@@ -102,7 +101,7 @@ export class BlocksReconciler {
|
|
102
101
|
this.realtimeUpdated = false;
|
103
102
|
this.pendingHooks = [];
|
104
103
|
this.isRendering = false;
|
105
|
-
this.transformer = new BlocksTransformer();
|
104
|
+
this.transformer = new BlocksTransformer(() => this.assets);
|
106
105
|
this.effects = [];
|
107
106
|
_BlocksReconciler_rerenderAlreadyScheduled.set(this, false);
|
108
107
|
this.component = component;
|
@@ -163,7 +162,7 @@ export class BlocksReconciler {
|
|
163
162
|
};
|
164
163
|
const reified = await this.processBlock(blockElement);
|
165
164
|
assertNotString(reified);
|
166
|
-
|
165
|
+
this.transformer.createBlocksElementOrThrow(reified);
|
167
166
|
if (this.isUserActionRender && this.blockRenderEventId) {
|
168
167
|
const handler = this.actions.get(this.blockRenderEventId);
|
169
168
|
if (handler) {
|
@@ -194,7 +193,7 @@ export class BlocksReconciler {
|
|
194
193
|
if (Devvit.debug.emitState) {
|
195
194
|
console.log(JSON.stringify(this.state, null, 2));
|
196
195
|
}
|
197
|
-
return
|
196
|
+
return this.transformer.createBlocksElementOrThrow(reified);
|
198
197
|
}
|
199
198
|
async processProps(block) {
|
200
199
|
const props = block.props ?? {};
|
@@ -208,39 +207,6 @@ export class BlocksReconciler {
|
|
208
207
|
props[action] = id;
|
209
208
|
}
|
210
209
|
}
|
211
|
-
if (props.url) {
|
212
|
-
props.url = await this.getAssetUrl(props.url);
|
213
|
-
}
|
214
|
-
}
|
215
|
-
async getAssetUrl(asset) {
|
216
|
-
// If this image exactly matches an asset, use the public URL for the asset instead
|
217
|
-
let assetUrl = undefined;
|
218
|
-
const assets = globalThis.devvit?.config?.assets;
|
219
|
-
if (assets) {
|
220
|
-
assetUrl = assets[asset];
|
221
|
-
}
|
222
|
-
/**
|
223
|
-
* This block triggers a circuit breaker that we bypass if the image is:
|
224
|
-
* 1. An asset that is already hosted on a verified image host
|
225
|
-
* 2. A data url of a valid mimetype
|
226
|
-
*/
|
227
|
-
if (!assetUrl && !isValidImageURL(asset)) {
|
228
|
-
// This should not happen if we've set config.assets everywhere correctly, but it's good to
|
229
|
-
// keep it around in case we missed something - instead of crashing & burning, we'll just
|
230
|
-
// see some image flicker instead.
|
231
|
-
console.log('No assets loaded on the config - falling back to plugin');
|
232
|
-
try {
|
233
|
-
assetUrl = await this.assets.getURL(asset);
|
234
|
-
if (assets && assetUrl) {
|
235
|
-
// Save resolved URL
|
236
|
-
assets[asset] = assetUrl;
|
237
|
-
}
|
238
|
-
}
|
239
|
-
catch {
|
240
|
-
// nop - this is fine, just means this isn't an asset
|
241
|
-
}
|
242
|
-
}
|
243
|
-
return assetUrl ?? asset;
|
244
210
|
}
|
245
211
|
async processBlock(element, idGenerator = makeUniqueIdGenerator(), path = []) {
|
246
212
|
const blockElement = element;
|
@@ -2,10 +2,13 @@ import type { Block, BlockAction, BlockAlignment, BlockBorder, BlockColor, Block
|
|
2
2
|
import { BlockAnimationDirection, BlockAnimationLoopMode, BlockAnimationType, BlockAvatarBackground, BlockAvatarFacing, BlockAvatarSize, BlockButtonAppearance, BlockButtonSize, BlockFullSnooSize, BlockGap, BlockIconSize, BlockImageResizeMode, BlockPadding, BlockRadius, BlockSpacerShape, BlockSpacerSize, BlockStackDirection, BlockTextOutline, BlockTextOverflow, BlockTextSize, BlockTextStyle, BlockTextWeight, BlockType } from '@devvit/protos';
|
3
3
|
import { Devvit } from '../../Devvit.js';
|
4
4
|
import type { ReifiedBlockElement, ReifiedBlockElementOrLiteral } from './BlocksReconciler.js';
|
5
|
+
import type { AssetsClient } from '../../../apis/AssetsClient/AssetsClient.js';
|
5
6
|
type DataSet = Record<string, unknown>;
|
6
7
|
export declare class BlocksTransformer {
|
7
|
-
|
8
|
-
|
8
|
+
#private;
|
9
|
+
constructor(getAssetsClient?: () => AssetsClient | undefined);
|
10
|
+
createBlocksElementOrThrow({ type, props, children }: ReifiedBlockElement): Block;
|
11
|
+
createBlocksElement({ type, props, children }: ReifiedBlockElement): Block | undefined;
|
9
12
|
makeRootHeight(height: Devvit.Blocks.RootHeight): number;
|
10
13
|
makeBlockPadding(padding: Devvit.Blocks.ContainerPadding | undefined): BlockPadding | undefined;
|
11
14
|
makeBlockRadius(radius: Devvit.Blocks.ContainerCornerRadius | undefined): BlockRadius | undefined;
|
@@ -38,27 +41,28 @@ export declare class BlocksTransformer {
|
|
38
41
|
[key: string]: unknown;
|
39
42
|
}): BlockAction[];
|
40
43
|
blockColorToHex(color: Devvit.Blocks.ColorString | undefined, theme?: 'light' | 'dark'): Devvit.Blocks.ColorString | undefined;
|
41
|
-
childrenToBlocks(children: ReifiedBlockElementOrLiteral[]):
|
44
|
+
childrenToBlocks(children: ReifiedBlockElementOrLiteral[]): Block[];
|
42
45
|
getThemedColors(color: Devvit.Blocks.ColorString | undefined, light?: Devvit.Blocks.ColorString | undefined, dark?: Devvit.Blocks.ColorString | undefined): BlockColor | undefined;
|
43
46
|
parsePixels(input: Devvit.Blocks.SizePixels | number): number;
|
47
|
+
resolveAssetUrl(url: string): string;
|
44
48
|
childrenToString(children: ReifiedBlockElementOrLiteral[]): string;
|
45
|
-
makeRoot(props: Devvit.Blocks.BaseProps | undefined, ...children: ReifiedBlockElementOrLiteral[]):
|
46
|
-
wrapRoot(props: Devvit.Blocks.BaseProps | undefined, children: Block[]):
|
47
|
-
makeStackBlock(direction: BlockStackDirection, props: Devvit.Blocks.StackProps | undefined, children: ReifiedBlockElementOrLiteral[]):
|
48
|
-
makeHStack(props: Devvit.Blocks.StackProps | undefined, ...children: ReifiedBlockElementOrLiteral[]):
|
49
|
-
makeVStack(props: Devvit.Blocks.StackProps | undefined, ...children: ReifiedBlockElementOrLiteral[]):
|
50
|
-
makeZStack(props: Devvit.Blocks.StackProps | undefined, ...children: ReifiedBlockElementOrLiteral[]):
|
49
|
+
makeRoot(props: Devvit.Blocks.BaseProps | undefined, ...children: ReifiedBlockElementOrLiteral[]): Block;
|
50
|
+
wrapRoot(props: Devvit.Blocks.BaseProps | undefined, children: Block[]): Block;
|
51
|
+
makeStackBlock(direction: BlockStackDirection, props: Devvit.Blocks.StackProps | undefined, children: ReifiedBlockElementOrLiteral[]): Block;
|
52
|
+
makeHStack(props: Devvit.Blocks.StackProps | undefined, ...children: ReifiedBlockElementOrLiteral[]): Block;
|
53
|
+
makeVStack(props: Devvit.Blocks.StackProps | undefined, ...children: ReifiedBlockElementOrLiteral[]): Block;
|
54
|
+
makeZStack(props: Devvit.Blocks.StackProps | undefined, ...children: ReifiedBlockElementOrLiteral[]): Block;
|
51
55
|
makeText(props: Devvit.Blocks.TextProps | undefined, ...children: ReifiedBlockElementOrLiteral[]): Block;
|
52
56
|
makeButton(props: Devvit.Blocks.ButtonProps | undefined, ...children: ReifiedBlockElementOrLiteral[]): Block;
|
53
|
-
makeImage(props: Devvit.Blocks.ImageProps | undefined):
|
57
|
+
makeImage(props: Devvit.Blocks.ImageProps | undefined): Block | undefined;
|
54
58
|
makeSpacer(props: Devvit.Blocks.SpacerProps | undefined): Block;
|
55
59
|
makeIcon(props: Devvit.Blocks.IconProps | undefined): Block | undefined;
|
56
60
|
makeAvatar(props: Devvit.Blocks.AvatarProps | undefined): Block | undefined;
|
57
61
|
makeFullSnoo(props: Devvit.Blocks.FullSnooProps | undefined): Block | undefined;
|
58
|
-
makeAnimation(props: Devvit.Blocks.AnimationProps | undefined):
|
62
|
+
makeAnimation(props: Devvit.Blocks.AnimationProps | undefined): Block | undefined;
|
59
63
|
makeWebView(props: Devvit.Blocks.WebViewProps | undefined): Block | undefined;
|
60
64
|
makeBlock(type: BlockType, props: Devvit.Blocks.BaseProps | undefined, config?: BlockConfig | undefined): Block;
|
61
|
-
ensureRootBlock(b: Block):
|
65
|
+
ensureRootBlock(b: Block): Block;
|
62
66
|
}
|
63
67
|
export {};
|
64
68
|
//# sourceMappingURL=BlocksTransformer.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"BlocksTransformer.d.ts","sourceRoot":"","sources":["../../../../src/devvit/internals/blocks/BlocksTransformer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,WAAW,EACX,cAAc,EACd,WAAW,EACX,UAAU,EACV,WAAW,EACX,SAAS,EACT,UAAU,EACV,0BAA0B,EAC3B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAEL,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,EAClB,qBAAqB,EACrB,iBAAiB,EACjB,eAAe,EAEf,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EACjB,QAAQ,EAER,aAAa,EACb,oBAAoB,EACpB,YAAY,EACZ,WAAW,EAEX,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,eAAe,EACf,SAAS,EAEV,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,KAAK,EAAE,mBAAmB,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;
|
1
|
+
{"version":3,"file":"BlocksTransformer.d.ts","sourceRoot":"","sources":["../../../../src/devvit/internals/blocks/BlocksTransformer.ts"],"names":[],"mappings":"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"}
|
@@ -1,3 +1,15 @@
|
|
1
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
2
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
3
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
4
|
+
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");
|
5
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
6
|
+
};
|
7
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
8
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
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
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
11
|
+
};
|
12
|
+
var _BlocksTransformer_assetsClient;
|
1
13
|
import { BlockActionType, BlockAnimationDirection, BlockAnimationLoopMode, BlockAnimationType, BlockAvatarBackground, BlockAvatarFacing, BlockAvatarSize, BlockBorderWidth, BlockButtonAppearance, BlockButtonSize, BlockFullSnooSize, BlockGap, BlockHorizontalAlignment, BlockIconSize, BlockImageResizeMode, BlockPadding, BlockRadius, BlockSizeUnit, BlockSpacerShape, BlockSpacerSize, BlockStackDirection, BlockTextOutline, BlockTextOverflow, BlockTextSize, BlockTextStyle, BlockTextWeight, BlockType, BlockVerticalAlignment, } from '@devvit/protos';
|
2
14
|
import { Devvit } from '../../Devvit.js';
|
3
15
|
import { getHexFromNamedHTMLColor, getHexFromRgbaColor, getHexFromRPLColor, isHexColor, isHslColor, isNamedHTMLColor, isRgbaColor, isRPLColor, } from '../helpers/color.js';
|
@@ -8,14 +20,18 @@ const ACTION_TYPES = new Map([
|
|
8
20
|
['onMessage', BlockActionType.ACTION_WEBVIEW],
|
9
21
|
]);
|
10
22
|
export class BlocksTransformer {
|
11
|
-
|
12
|
-
|
23
|
+
constructor(getAssetsClient = () => undefined) {
|
24
|
+
_BlocksTransformer_assetsClient.set(this, void 0);
|
25
|
+
__classPrivateFieldSet(this, _BlocksTransformer_assetsClient, getAssetsClient, "f");
|
26
|
+
}
|
27
|
+
createBlocksElementOrThrow({ type, props, children }) {
|
28
|
+
const block = this.createBlocksElement({ type, props, children });
|
13
29
|
if (!block) {
|
14
30
|
throw new Error(`Could not create block of type ${type}`);
|
15
31
|
}
|
16
32
|
return block;
|
17
33
|
}
|
18
|
-
|
34
|
+
createBlocksElement({ type, props, children }) {
|
19
35
|
switch (type) {
|
20
36
|
case 'blocks':
|
21
37
|
return this.makeRoot(props, ...children);
|
@@ -30,7 +46,7 @@ export class BlocksTransformer {
|
|
30
46
|
case 'button':
|
31
47
|
return this.makeButton(props, ...children);
|
32
48
|
case 'image':
|
33
|
-
return
|
49
|
+
return this.makeImage(props);
|
34
50
|
case 'spacer':
|
35
51
|
return this.makeSpacer(props);
|
36
52
|
case 'icon':
|
@@ -40,7 +56,7 @@ export class BlocksTransformer {
|
|
40
56
|
case 'fullsnoo':
|
41
57
|
return this.makeFullSnoo(props);
|
42
58
|
case 'animation':
|
43
|
-
return
|
59
|
+
return this.makeAnimation(props);
|
44
60
|
case 'webview':
|
45
61
|
return this.makeWebView(props);
|
46
62
|
case '__fragment':
|
@@ -485,15 +501,8 @@ export class BlocksTransformer {
|
|
485
501
|
console.warn(`Could not parse color: ${color}.`);
|
486
502
|
return getHexFromNamedHTMLColor('red');
|
487
503
|
}
|
488
|
-
|
489
|
-
|
490
|
-
if (typeof child === 'string') {
|
491
|
-
return undefined;
|
492
|
-
}
|
493
|
-
return this.createBlocksElement(child);
|
494
|
-
});
|
495
|
-
const out = await Promise.all(promises);
|
496
|
-
return out.filter((b) => b !== undefined);
|
504
|
+
childrenToBlocks(children) {
|
505
|
+
return children.flatMap((child) => (typeof child !== 'string' ? this.createBlocksElement(child) : undefined) ?? []);
|
497
506
|
}
|
498
507
|
getThemedColors(color, light, dark) {
|
499
508
|
let lightColor = this.blockColorToHex(light, 'light');
|
@@ -526,13 +535,17 @@ export class BlocksTransformer {
|
|
526
535
|
}
|
527
536
|
return input;
|
528
537
|
}
|
538
|
+
resolveAssetUrl(url) {
|
539
|
+
// try and resolve the URL but allow the client to decide if unknown URLs are allowed
|
540
|
+
return __classPrivateFieldGet(this, _BlocksTransformer_assetsClient, "f").call(this)?.getURL(url) ?? url;
|
541
|
+
}
|
529
542
|
childrenToString(children) {
|
530
543
|
return children.map((c) => c.toString()).join('');
|
531
544
|
}
|
532
|
-
|
533
|
-
return this.wrapRoot(props,
|
545
|
+
makeRoot(props, ...children) {
|
546
|
+
return this.wrapRoot(props, this.childrenToBlocks(children));
|
534
547
|
}
|
535
|
-
|
548
|
+
wrapRoot(props, children) {
|
536
549
|
return this.makeBlock(BlockType.BLOCK_ROOT, {}, {
|
537
550
|
rootConfig: {
|
538
551
|
children: children,
|
@@ -542,7 +555,7 @@ export class BlocksTransformer {
|
|
542
555
|
},
|
543
556
|
});
|
544
557
|
}
|
545
|
-
|
558
|
+
makeStackBlock(direction, props, children) {
|
546
559
|
const backgroundColors = this.getThemedColors(props?.backgroundColor, props?.lightBackgroundColor, props?.darkBackgroundColor);
|
547
560
|
return this.makeBlock(BlockType.BLOCK_STACK, props, {
|
548
561
|
stackConfig: {
|
@@ -550,7 +563,7 @@ export class BlocksTransformer {
|
|
550
563
|
backgroundColor: backgroundColors?.light,
|
551
564
|
backgroundColors,
|
552
565
|
border: this.makeBlockBorder(props?.border, props?.borderColor, props?.lightBorderColor, props?.darkBorderColor),
|
553
|
-
children:
|
566
|
+
children: this.childrenToBlocks(children),
|
554
567
|
cornerRadius: this.makeBlockRadius(props?.cornerRadius),
|
555
568
|
direction: direction,
|
556
569
|
gap: this.makeBlockGap(props?.gap),
|
@@ -559,13 +572,13 @@ export class BlocksTransformer {
|
|
559
572
|
},
|
560
573
|
});
|
561
574
|
}
|
562
|
-
|
575
|
+
makeHStack(props, ...children) {
|
563
576
|
return this.makeStackBlock(BlockStackDirection.STACK_HORIZONTAL, props, children);
|
564
577
|
}
|
565
|
-
|
578
|
+
makeVStack(props, ...children) {
|
566
579
|
return this.makeStackBlock(BlockStackDirection.STACK_VERTICAL, props, children);
|
567
580
|
}
|
568
|
-
|
581
|
+
makeZStack(props, ...children) {
|
569
582
|
return this.makeStackBlock(BlockStackDirection.STACK_DEPTH, props, children);
|
570
583
|
}
|
571
584
|
makeText(props, ...children) {
|
@@ -602,13 +615,13 @@ export class BlocksTransformer {
|
|
602
615
|
},
|
603
616
|
});
|
604
617
|
}
|
605
|
-
|
618
|
+
makeImage(props) {
|
606
619
|
return (props &&
|
607
620
|
this.makeBlock(BlockType.BLOCK_IMAGE, props, {
|
608
621
|
imageConfig: {
|
609
622
|
description: props?.description,
|
610
623
|
resizeMode: this.makeBlockImageResizeMode(props.resizeMode),
|
611
|
-
url: props.url,
|
624
|
+
url: this.resolveAssetUrl(props.url),
|
612
625
|
width: this.parsePixels(props.imageWidth),
|
613
626
|
height: this.parsePixels(props.imageHeight),
|
614
627
|
},
|
@@ -655,12 +668,12 @@ export class BlocksTransformer {
|
|
655
668
|
},
|
656
669
|
}));
|
657
670
|
}
|
658
|
-
|
671
|
+
makeAnimation(props) {
|
659
672
|
return (props &&
|
660
673
|
this.makeBlock(BlockType.BLOCK_ANIMATION, props, {
|
661
674
|
animationConfig: {
|
662
675
|
type: this.makeBlockAnimationType(props.type),
|
663
|
-
url: props.url,
|
676
|
+
url: this.resolveAssetUrl(props.url),
|
664
677
|
loop: props.loop,
|
665
678
|
loopMode: this.makeBlockLoopMode(props.loopMode),
|
666
679
|
autoplay: props.autoplay,
|
@@ -675,7 +688,7 @@ export class BlocksTransformer {
|
|
675
688
|
return (props &&
|
676
689
|
this.makeBlock(BlockType.BLOCK_WEBVIEW, props, {
|
677
690
|
webviewConfig: {
|
678
|
-
url: props.url,
|
691
|
+
url: this.resolveAssetUrl(props.url),
|
679
692
|
state: props.state,
|
680
693
|
},
|
681
694
|
}));
|
@@ -692,7 +705,7 @@ export class BlocksTransformer {
|
|
692
705
|
key: props?.key,
|
693
706
|
};
|
694
707
|
}
|
695
|
-
|
708
|
+
ensureRootBlock(b) {
|
696
709
|
const block = b;
|
697
710
|
if (block.type === BlockType.BLOCK_ROOT) {
|
698
711
|
if (block.config?.rootConfig && Devvit.customPostType?.height) {
|
@@ -700,10 +713,11 @@ export class BlocksTransformer {
|
|
700
713
|
}
|
701
714
|
return block;
|
702
715
|
}
|
703
|
-
const root =
|
716
|
+
const root = this.wrapRoot(undefined, [block]);
|
704
717
|
if (!root) {
|
705
718
|
throw new Error('Could not create root block');
|
706
719
|
}
|
707
720
|
return root;
|
708
721
|
}
|
709
722
|
}
|
723
|
+
_BlocksTransformer_assetsClient = new WeakMap();
|
@@ -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;
|
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;CAsT1E"}
|