single snapshot test
This commit is contained in:
58
dist/schema.js
vendored
Normal file
58
dist/schema.js
vendored
Normal file
@@ -0,0 +1,58 @@
|
||||
const hookNames = [
|
||||
"mail.compose.toolbar",
|
||||
"mail.compose.attachments",
|
||||
"mail.sidebar.apps",
|
||||
"admin.settings.panels",
|
||||
"auth.post_login",
|
||||
"message.pre_send",
|
||||
];
|
||||
export const pluginManifestSchema = {
|
||||
type: "object",
|
||||
required: ["id", "name", "version"],
|
||||
additionalProperties: true,
|
||||
properties: {
|
||||
id: { type: "string", minLength: 1 },
|
||||
name: { type: "string", minLength: 1 },
|
||||
version: { type: "string", minLength: 1 },
|
||||
description: { type: "string" },
|
||||
enabledByDefault: { type: "boolean" },
|
||||
permissions: { type: "array", items: { type: "string" } },
|
||||
hooks: { type: "array", items: { enum: [...hookNames] } },
|
||||
entrypoints: {
|
||||
type: "object",
|
||||
additionalProperties: false,
|
||||
properties: {
|
||||
menu: { type: "string" },
|
||||
api: { type: "string" },
|
||||
ui: { type: "string" },
|
||||
},
|
||||
},
|
||||
contributions: {
|
||||
type: "object",
|
||||
additionalProperties: false,
|
||||
properties: Object.fromEntries(hookNames.map((hook) => [
|
||||
hook,
|
||||
{
|
||||
type: "array",
|
||||
items: {
|
||||
type: "object",
|
||||
required: ["hook", "type", "id", "label"],
|
||||
additionalProperties: true,
|
||||
properties: {
|
||||
hook: { const: hook },
|
||||
type: { enum: ["button", "panel", "modal", "script"] },
|
||||
id: { type: "string", minLength: 1 },
|
||||
label: { type: "string", minLength: 1 },
|
||||
icon: { type: "string" },
|
||||
description: { type: "string" },
|
||||
order: { type: "number" },
|
||||
mount: { type: "string" },
|
||||
css: { type: "string" },
|
||||
permissions: { type: "array", items: { type: "string" } },
|
||||
},
|
||||
},
|
||||
},
|
||||
])),
|
||||
},
|
||||
},
|
||||
};
|
||||
Reference in New Issue
Block a user