@devvit/build-pack 0.11.20-next-2025-08-07-20-20-55-19fc2869c.0 → 0.11.20-next-2025-08-08-16-39-07-0861787df.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dependency-spec-util.d.ts","sourceRoot":"","sources":["../../src/esbuild/dependency-spec-util.ts"],"names":[],"mappings":"AAgDA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAK7E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gDAAgD,CAAC;AAEhF;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,EAC9B,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,EACzC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,GAC7B,cAAc,
|
|
1
|
+
{"version":3,"file":"dependency-spec-util.d.ts","sourceRoot":"","sources":["../../src/esbuild/dependency-spec-util.ts"],"names":[],"mappings":"AAgDA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAK7E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gDAAgD,CAAC;AAEhF;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,EAC9B,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,EACzC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,GAC7B,cAAc,CAgHhB"}
|
|
@@ -108,7 +108,15 @@ export function createDependencySpec(actorSpec, config, namespace) {
|
|
|
108
108
|
if (config.triggers.onPostUpdate)
|
|
109
109
|
provide(spec, OnPostUpdateDefinition);
|
|
110
110
|
}
|
|
111
|
-
|
|
111
|
+
if (config.settings) {
|
|
112
|
+
use(spec, SettingsDefinition);
|
|
113
|
+
if (config.settings.global) {
|
|
114
|
+
provide(spec, AppSettingsDefinition);
|
|
115
|
+
}
|
|
116
|
+
if (config.settings.subreddit) {
|
|
117
|
+
provide(spec, InstallationSettingsDefinition);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
112
120
|
return spec;
|
|
113
121
|
}
|
|
114
122
|
function provide(spec, ...definitions) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blocks.template.d.ts","sourceRoot":"","sources":["../../../src/esbuild/templatizer/blocks.template.tsx"],"names":[],"mappings":"AAMA,OAAO,EAEL,MAAM,EACN,KAAK,OAAO,
|
|
1
|
+
{"version":3,"file":"blocks.template.d.ts","sourceRoot":"","sources":["../../../src/esbuild/templatizer/blocks.template.tsx"],"names":[],"mappings":"AAMA,OAAO,EAEL,MAAM,EACN,KAAK,OAAO,EAOb,MAAM,oBAAoB,CAAC;AAG5B,OAAO,KAAK,EAA8C,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAuB7F,oFAAoF;AACpF,eAAO,MAAM,UAAU,EAAE;IAAE,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAA;CAAO,CAAC;AAmH7D,gBAAgB;AAChB,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CA4D/D;AA4OD,eAAe,MAAM,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { LoggerDefinition, Severity } from '@devvit/protos';
|
|
2
2
|
import { Height, } from '@devvit/protos/json/devvit/ui/effects/web_view/v1alpha/context.js';
|
|
3
|
-
import { Devvit, } from '@devvit/public-api';
|
|
3
|
+
import { Devvit, SettingScope, } from '@devvit/public-api';
|
|
4
4
|
import { getServerPort } from '@devvit/server';
|
|
5
5
|
import { Header } from '@devvit/shared-types/Header.js';
|
|
6
6
|
import { getDevvitConfig } from '@devvit/shared-types/server/get-devvit-config.js';
|
|
@@ -147,6 +147,17 @@ export function validateUiResponse(uiResponse) {
|
|
|
147
147
|
throw new Error('navigateTo and showForm cannot be used together in UiResponse');
|
|
148
148
|
}
|
|
149
149
|
}
|
|
150
|
+
function validateSettingsValidationResponse(response) {
|
|
151
|
+
if (typeof response !== 'object' || response === null) {
|
|
152
|
+
throw new Error('SettingsValidationResponse must be an object');
|
|
153
|
+
}
|
|
154
|
+
if (!('success' in response) || typeof response.success !== 'boolean') {
|
|
155
|
+
throw new Error('SettingsValidationResponse must have a boolean "success" field');
|
|
156
|
+
}
|
|
157
|
+
if ('error' in response && typeof response.error !== 'string') {
|
|
158
|
+
throw new Error('"error" field in SettingsValidationResponse must be a string');
|
|
159
|
+
}
|
|
160
|
+
}
|
|
150
161
|
/**
|
|
151
162
|
* Handle a UiResponse from a Webbit handler (menu action or form handler).
|
|
152
163
|
* This is used to create client-side UI effects in Reddit clients as responses
|
|
@@ -262,6 +273,54 @@ function configureScheduler(schedulerConfig) {
|
|
|
262
273
|
});
|
|
263
274
|
}
|
|
264
275
|
}
|
|
276
|
+
function configureSettings(settings) {
|
|
277
|
+
const classicSettings = [];
|
|
278
|
+
for (const config of Object.values(settings?.global || {})) {
|
|
279
|
+
classicSettings.push(coerceSettingForClassic(config, SettingScope.App));
|
|
280
|
+
}
|
|
281
|
+
for (const config of Object.values(settings?.subreddit || {})) {
|
|
282
|
+
classicSettings.push(coerceSettingForClassic(config, SettingScope.Installation));
|
|
283
|
+
}
|
|
284
|
+
Devvit.addSettings(classicSettings);
|
|
285
|
+
}
|
|
286
|
+
function coerceSettingForClassic(setting, scope) {
|
|
287
|
+
let classicSetting;
|
|
288
|
+
if (setting.type === 'select') {
|
|
289
|
+
const { defaultValue, ...settingWithoutDefault } = setting;
|
|
290
|
+
classicSetting = {
|
|
291
|
+
...settingWithoutDefault,
|
|
292
|
+
scope,
|
|
293
|
+
};
|
|
294
|
+
if (defaultValue) {
|
|
295
|
+
classicSetting.defaultValue = [defaultValue];
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
else if (setting.type === 'multiSelect') {
|
|
299
|
+
classicSetting = {
|
|
300
|
+
...setting,
|
|
301
|
+
type: 'select',
|
|
302
|
+
multiSelect: true,
|
|
303
|
+
scope,
|
|
304
|
+
};
|
|
305
|
+
}
|
|
306
|
+
else {
|
|
307
|
+
classicSetting = {
|
|
308
|
+
...setting,
|
|
309
|
+
scope,
|
|
310
|
+
};
|
|
311
|
+
}
|
|
312
|
+
if (setting.validationEndpoint) {
|
|
313
|
+
classicSetting.onValidate = async function validateSettingsField(event, context) {
|
|
314
|
+
const responseJson = await callWebbitEndpoint(setting.validationEndpoint, { value: event.value, isEditing: event.isEditing }, context.metadata);
|
|
315
|
+
validateSettingsValidationResponse(responseJson);
|
|
316
|
+
if (responseJson.success) {
|
|
317
|
+
return;
|
|
318
|
+
}
|
|
319
|
+
return responseJson.error;
|
|
320
|
+
};
|
|
321
|
+
}
|
|
322
|
+
return classicSetting;
|
|
323
|
+
}
|
|
265
324
|
if (config2) {
|
|
266
325
|
configurePermissions(config2.permissions);
|
|
267
326
|
if (config2.post)
|
|
@@ -275,5 +334,7 @@ if (config2) {
|
|
|
275
334
|
configureForms(config2.forms);
|
|
276
335
|
if (config2.triggers)
|
|
277
336
|
configureTriggers(config2.triggers);
|
|
337
|
+
if (config2.settings)
|
|
338
|
+
configureSettings(config2.settings);
|
|
278
339
|
}
|
|
279
340
|
export default Devvit;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@devvit/build-pack",
|
|
3
|
-
"version": "0.11.20-next-2025-08-
|
|
3
|
+
"version": "0.11.20-next-2025-08-08-16-39-07-0861787df.0",
|
|
4
4
|
"license": "BSD-3-Clause",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -31,9 +31,9 @@
|
|
|
31
31
|
},
|
|
32
32
|
"types": "./dist/index.d.ts",
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@devvit/protos": "0.11.20-next-2025-08-
|
|
35
|
-
"@devvit/shared-types": "0.11.20-next-2025-08-
|
|
36
|
-
"@devvit/splash": "0.11.20-next-2025-08-
|
|
34
|
+
"@devvit/protos": "0.11.20-next-2025-08-08-16-39-07-0861787df.0",
|
|
35
|
+
"@devvit/shared-types": "0.11.20-next-2025-08-08-16-39-07-0861787df.0",
|
|
36
|
+
"@devvit/splash": "0.11.20-next-2025-08-08-16-39-07-0861787df.0",
|
|
37
37
|
"esbuild": "0.23.0",
|
|
38
38
|
"rxjs": "7.8.1",
|
|
39
39
|
"tsv": "0.2.0",
|
|
@@ -44,16 +44,16 @@
|
|
|
44
44
|
"@devvit/shared": "*"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
|
-
"@devvit/public-api": "0.11.20-next-2025-08-
|
|
48
|
-
"@devvit/repo-tools": "0.11.20-next-2025-08-
|
|
49
|
-
"@devvit/scheduler": "0.11.20-next-2025-08-
|
|
50
|
-
"@devvit/server": "0.11.20-next-2025-08-
|
|
51
|
-
"@devvit/shared": "0.11.20-next-2025-08-
|
|
52
|
-
"@devvit/tsconfig": "0.11.20-next-2025-08-
|
|
47
|
+
"@devvit/public-api": "0.11.20-next-2025-08-08-16-39-07-0861787df.0",
|
|
48
|
+
"@devvit/repo-tools": "0.11.20-next-2025-08-08-16-39-07-0861787df.0",
|
|
49
|
+
"@devvit/scheduler": "0.11.20-next-2025-08-08-16-39-07-0861787df.0",
|
|
50
|
+
"@devvit/server": "0.11.20-next-2025-08-08-16-39-07-0861787df.0",
|
|
51
|
+
"@devvit/shared": "0.11.20-next-2025-08-08-16-39-07-0861787df.0",
|
|
52
|
+
"@devvit/tsconfig": "0.11.20-next-2025-08-08-16-39-07-0861787df.0",
|
|
53
53
|
"@types/tsv": "0.2.1",
|
|
54
54
|
"eslint": "9.11.1",
|
|
55
55
|
"vitest": "1.6.1"
|
|
56
56
|
},
|
|
57
57
|
"source": "./src/index.ts",
|
|
58
|
-
"gitHead": "
|
|
58
|
+
"gitHead": "e89245b07b63e23988c43c7e00455b1f29d102dd"
|
|
59
59
|
}
|