@skillcdn/console 0.4.0 → 0.4.2
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/README.md +20 -2
- package/SKILLCDN.md +7 -5
- package/dist/api.d.ts +5 -4
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +5 -4
- package/dist/api.js.map +1 -1
- package/dist/cli/cli.d.ts.map +1 -1
- package/dist/cli/cli.js +579 -45
- package/dist/cli/cli.js.map +1 -1
- package/dist/cli/format.d.ts +34 -3
- package/dist/cli/format.d.ts.map +1 -1
- package/dist/cli/format.js +277 -6
- package/dist/cli/format.js.map +1 -1
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +60 -7
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/plugin-check.d.ts +21 -0
- package/dist/cli/plugin-check.d.ts.map +1 -0
- package/dist/cli/plugin-check.js +374 -0
- package/dist/cli/plugin-check.js.map +1 -0
- package/dist/cli/plugin-cli.d.ts +20 -0
- package/dist/cli/plugin-cli.d.ts.map +1 -0
- package/dist/cli/plugin-cli.js +123 -0
- package/dist/cli/plugin-cli.js.map +1 -0
- package/dist/cli/plugin-init.d.ts +20 -0
- package/dist/cli/plugin-init.d.ts.map +1 -0
- package/dist/cli/plugin-init.js +74 -0
- package/dist/cli/plugin-init.js.map +1 -0
- package/dist/cli/plugin-main.d.ts +3 -0
- package/dist/cli/plugin-main.d.ts.map +1 -0
- package/dist/cli/plugin-main.js +28 -0
- package/dist/cli/plugin-main.js.map +1 -0
- package/dist/client.d.ts +109 -2
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +67 -2
- package/dist/client.js.map +1 -1
- package/dist/compat.d.ts +1 -1
- package/dist/compat.js +2 -2
- package/dist/components/board.d.ts +8 -0
- package/dist/components/board.d.ts.map +1 -1
- package/dist/components/board.js +59 -15
- package/dist/components/board.js.map +1 -1
- package/dist/components/event-feed.d.ts +1 -1
- package/dist/components/event-feed.d.ts.map +1 -1
- package/dist/components/event-feed.js +33 -1
- package/dist/components/event-feed.js.map +1 -1
- package/dist/components/markdown.d.ts.map +1 -1
- package/dist/components/markdown.js +6 -3
- package/dist/components/markdown.js.map +1 -1
- package/dist/components/pack-connect.d.ts +3 -1
- package/dist/components/pack-connect.d.ts.map +1 -1
- package/dist/components/pack-connect.js +4 -4
- package/dist/components/pack-connect.js.map +1 -1
- package/dist/components/pack-token.d.ts +3 -1
- package/dist/components/pack-token.d.ts.map +1 -1
- package/dist/components/pack-token.js +1 -1
- package/dist/components/pack-token.js.map +1 -1
- package/dist/components/people.d.ts.map +1 -1
- package/dist/components/people.js +14 -3
- package/dist/components/people.js.map +1 -1
- package/dist/components/plugin-frame.d.ts +52 -0
- package/dist/components/plugin-frame.d.ts.map +1 -0
- package/dist/components/plugin-frame.js +314 -0
- package/dist/components/plugin-frame.js.map +1 -0
- package/dist/components/plugin-settings.d.ts +38 -0
- package/dist/components/plugin-settings.d.ts.map +1 -0
- package/dist/components/plugin-settings.js +348 -0
- package/dist/components/plugin-settings.js.map +1 -0
- package/dist/components/remote-pictures.d.ts +6 -0
- package/dist/components/remote-pictures.d.ts.map +1 -0
- package/dist/components/remote-pictures.js +8 -0
- package/dist/components/remote-pictures.js.map +1 -0
- package/dist/components/shell.d.ts +2 -0
- package/dist/components/shell.d.ts.map +1 -1
- package/dist/components/shell.js +26 -1
- package/dist/components/shell.js.map +1 -1
- package/dist/components/sign-in.d.ts.map +1 -1
- package/dist/components/sign-in.js +49 -2
- package/dist/components/sign-in.js.map +1 -1
- package/dist/components/ui.d.ts +3 -2
- package/dist/components/ui.d.ts.map +1 -1
- package/dist/components/ui.js +6 -3
- package/dist/components/ui.js.map +1 -1
- package/dist/components/workspace.d.ts +7 -1
- package/dist/components/workspace.d.ts.map +1 -1
- package/dist/components/workspace.js +1 -1
- package/dist/components/workspace.js.map +1 -1
- package/dist/console.css +384 -5
- package/dist/console.d.ts.map +1 -1
- package/dist/console.js +146 -29
- package/dist/console.js.map +1 -1
- package/dist/data.d.ts +11 -2
- package/dist/data.d.ts.map +1 -1
- package/dist/data.js +35 -21
- package/dist/data.js.map +1 -1
- package/dist/i18n/en.d.ts +163 -1
- package/dist/i18n/en.d.ts.map +1 -1
- package/dist/i18n/en.js +174 -1
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/ko.d.ts.map +1 -1
- package/dist/i18n/ko.js +154 -1
- package/dist/i18n/ko.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/limits.d.ts +14 -0
- package/dist/limits.d.ts.map +1 -1
- package/dist/limits.js +14 -0
- package/dist/limits.js.map +1 -1
- package/dist/plugin/args.d.ts +148 -0
- package/dist/plugin/args.d.ts.map +1 -0
- package/dist/plugin/args.js +369 -0
- package/dist/plugin/args.js.map +1 -0
- package/dist/plugin/bridge.d.ts +146 -0
- package/dist/plugin/bridge.d.ts.map +1 -0
- package/dist/plugin/bridge.js +125 -0
- package/dist/plugin/bridge.js.map +1 -0
- package/dist/plugin/capabilities.d.ts +20 -0
- package/dist/plugin/capabilities.d.ts.map +1 -0
- package/dist/plugin/capabilities.js +133 -0
- package/dist/plugin/capabilities.js.map +1 -0
- package/dist/plugin/context.d.ts +374 -0
- package/dist/plugin/context.d.ts.map +1 -0
- package/dist/plugin/context.js +2 -0
- package/dist/plugin/context.js.map +1 -0
- package/dist/plugin/define.d.ts +208 -0
- package/dist/plugin/define.d.ts.map +1 -0
- package/dist/plugin/define.js +482 -0
- package/dist/plugin/define.js.map +1 -0
- package/dist/plugin/definition-error.d.ts +11 -0
- package/dist/plugin/definition-error.d.ts.map +1 -0
- package/dist/plugin/definition-error.js +17 -0
- package/dist/plugin/definition-error.js.map +1 -0
- package/dist/plugin/limits.d.ts +67 -0
- package/dist/plugin/limits.d.ts.map +1 -0
- package/dist/plugin/limits.js +70 -0
- package/dist/plugin/limits.js.map +1 -0
- package/dist/plugin/load-worker.d.ts +7 -0
- package/dist/plugin/load-worker.d.ts.map +1 -0
- package/dist/plugin/load-worker.js +41 -0
- package/dist/plugin/load-worker.js.map +1 -0
- package/dist/plugin/load.d.ts +18 -0
- package/dist/plugin/load.d.ts.map +1 -0
- package/dist/plugin/load.js +62 -0
- package/dist/plugin/load.js.map +1 -0
- package/dist/plugin/manifest.d.ts +237 -0
- package/dist/plugin/manifest.d.ts.map +1 -0
- package/dist/plugin/manifest.js +411 -0
- package/dist/plugin/manifest.js.map +1 -0
- package/dist/plugin/refusals.d.ts +49 -0
- package/dist/plugin/refusals.d.ts.map +1 -0
- package/dist/plugin/refusals.js +79 -0
- package/dist/plugin/refusals.js.map +1 -0
- package/dist/plugin/rest-schemas.d.ts +556 -0
- package/dist/plugin/rest-schemas.d.ts.map +1 -0
- package/dist/plugin/rest-schemas.js +262 -0
- package/dist/plugin/rest-schemas.js.map +1 -0
- package/dist/plugin/sandbox.d.ts +23 -0
- package/dist/plugin/sandbox.d.ts.map +1 -0
- package/dist/plugin/sandbox.js +99 -0
- package/dist/plugin/sandbox.js.map +1 -0
- package/dist/plugin/testing.d.ts +45 -0
- package/dist/plugin/testing.d.ts.map +1 -0
- package/dist/plugin/testing.js +420 -0
- package/dist/plugin/testing.js.map +1 -0
- package/dist/plugin/web-react.d.ts +11 -0
- package/dist/plugin/web-react.d.ts.map +1 -0
- package/dist/plugin/web-react.js +34 -0
- package/dist/plugin/web-react.js.map +1 -0
- package/dist/plugin/web.d.ts +95 -0
- package/dist/plugin/web.d.ts.map +1 -0
- package/dist/plugin/web.js +245 -0
- package/dist/plugin/web.js.map +1 -0
- package/dist/plugin-nav.d.ts +29 -0
- package/dist/plugin-nav.d.ts.map +1 -0
- package/dist/plugin-nav.js +92 -0
- package/dist/plugin-nav.js.map +1 -0
- package/dist/plugin-testing.d.ts +2 -0
- package/dist/plugin-testing.d.ts.map +1 -0
- package/dist/plugin-testing.js +4 -0
- package/dist/plugin-testing.js.map +1 -0
- package/dist/plugin-web-react.d.ts +3 -0
- package/dist/plugin-web-react.d.ts.map +1 -0
- package/dist/plugin-web-react.js +3 -0
- package/dist/plugin-web-react.js.map +1 -0
- package/dist/plugin-web.d.ts +4 -0
- package/dist/plugin-web.d.ts.map +1 -0
- package/dist/plugin-web.js +5 -0
- package/dist/plugin-web.js.map +1 -0
- package/dist/plugin.d.ts +11 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/plugin.js +15 -0
- package/dist/plugin.js.map +1 -0
- package/dist/router.d.ts +28 -0
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +47 -0
- package/dist/router.js.map +1 -1
- package/dist/routes.d.ts +6 -0
- package/dist/routes.d.ts.map +1 -1
- package/dist/routes.js +8 -0
- package/dist/routes.js.map +1 -1
- package/dist/schemas.d.ts +147 -1
- package/dist/schemas.d.ts.map +1 -1
- package/dist/schemas.js +55 -5
- package/dist/schemas.js.map +1 -1
- package/dist/tokens.d.ts +2 -0
- package/dist/tokens.d.ts.map +1 -0
- package/dist/tokens.js +101 -0
- package/dist/tokens.js.map +1 -0
- package/dist/vocabulary.d.ts +11 -1
- package/dist/vocabulary.d.ts.map +1 -1
- package/dist/vocabulary.js +24 -0
- package/dist/vocabulary.js.map +1 -1
- package/dist/web.d.ts.map +1 -1
- package/dist/web.js +5 -2
- package/dist/web.js.map +1 -1
- package/docs/specs/cli.md +16 -9
- package/docs/specs/plugins.md +487 -0
- package/docs/specs/rest.md +25 -13
- package/package.json +21 -3
- package/skills/building-a-console/SKILL.md +25 -26
- package/skills/building-a-console/references/configuring.md +40 -0
- package/skills/building-a-console/references/the-default-console.md +1 -1
- package/skills/building-a-console/references/the-look-from-a-website.md +5 -5
- package/skills/building-a-plugin/SKILL.md +137 -0
- package/skills/deploying-a-console/SKILL.md +24 -26
- package/skills/deploying-a-console/references/access.md +13 -9
- package/skills/deploying-a-console/references/resources.md +25 -10
- package/skills/deploying-a-console/references/running-it-again.md +15 -0
- package/skills/deploying-a-console/references/sizing.md +2 -0
- package/skills/planning-the-board/SKILL.md +96 -0
- package/skills/planning-the-board/references/a-task.md +36 -0
- package/skills/planning-the-board/references/setting-up.md +44 -0
- package/skills/working-the-board/SKILL.md +43 -34
- package/skills/working-the-board/references/the-pack.md +19 -0
- package/src/api.ts +16 -0
- package/src/cli/cli.ts +736 -45
- package/src/cli/format.ts +356 -9
- package/src/cli/help.ts +71 -6
- package/src/cli/plugin-check.ts +470 -0
- package/src/cli/plugin-cli.ts +148 -0
- package/src/cli/plugin-init.ts +90 -0
- package/src/cli/plugin-main.ts +30 -0
- package/src/client.ts +324 -1
- package/src/compat.ts +2 -2
- package/src/components/board.tsx +62 -14
- package/src/components/event-feed.tsx +42 -1
- package/src/components/markdown.tsx +6 -3
- package/src/components/pack-connect.tsx +10 -7
- package/src/components/pack-token.tsx +4 -1
- package/src/components/people.tsx +17 -7
- package/src/components/plugin-frame.tsx +437 -0
- package/src/components/plugin-settings.tsx +1111 -0
- package/src/components/remote-pictures.ts +19 -0
- package/src/components/shell.tsx +82 -14
- package/src/components/sign-in.tsx +114 -13
- package/src/components/ui.tsx +6 -3
- package/src/components/workspace.tsx +18 -0
- package/src/console.tsx +309 -23
- package/src/data.ts +47 -22
- package/src/i18n/en.ts +183 -1
- package/src/i18n/ko.ts +159 -1
- package/src/index.ts +12 -0
- package/src/limits.ts +14 -0
- package/src/plugin/args.ts +526 -0
- package/src/plugin/bridge.ts +314 -0
- package/src/plugin/capabilities.ts +150 -0
- package/src/plugin/context.ts +416 -0
- package/src/plugin/define.ts +792 -0
- package/src/plugin/definition-error.ts +19 -0
- package/src/plugin/limits.ts +70 -0
- package/src/plugin/load-worker.ts +50 -0
- package/src/plugin/load.ts +82 -0
- package/src/plugin/manifest.ts +561 -0
- package/src/plugin/refusals.ts +94 -0
- package/src/plugin/rest-schemas.ts +354 -0
- package/src/plugin/sandbox.ts +123 -0
- package/src/plugin/testing.ts +612 -0
- package/src/plugin/web-react.ts +45 -0
- package/src/plugin/web.ts +403 -0
- package/src/plugin-nav.ts +132 -0
- package/src/plugin-testing.ts +10 -0
- package/src/plugin-web-react.ts +4 -0
- package/src/plugin-web.ts +35 -0
- package/src/plugin.ts +126 -0
- package/src/router.ts +73 -0
- package/src/routes.ts +9 -0
- package/src/schemas.ts +60 -4
- package/src/styles/console.css +384 -5
- package/src/tokens.ts +101 -0
- package/src/vocabulary.ts +30 -0
- package/src/web.ts +5 -2
- package/template/plugin/.gitignore +2 -0
- package/template/plugin/README.md +26 -0
- package/template/plugin/SKILLCDN.md +13 -0
- package/template/plugin/build.mjs +40 -0
- package/template/plugin/console-plugin.json +50 -0
- package/template/plugin/package.json +27 -0
- package/template/plugin/skills/__key__/SKILL.md +23 -0
- package/template/plugin/src/check.test.ts +34 -0
- package/template/plugin/src/server/index.test.ts +41 -0
- package/template/plugin/src/server/index.ts +72 -0
- package/template/plugin/src/web/index.css +51 -0
- package/template/plugin/src/web/index.ts +115 -0
- package/template/plugin/tsconfig.json +17 -0
- package/skills/working-the-board/references/setting-up.md +0 -3
- /package/skills/{working-the-board → planning-the-board}/references/project-rules.md +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../src/plugin/bridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/** The capabilities that take no parameter. */
|
|
2
|
+
export declare const PLUGIN_CAPABILITIES: readonly ["files", "people:read", "people:read:all", "projects:read", "projects:read:all", "board:read", "board:tasks", "board:decisions", "board:documents", "events:console", "events:plugins", "jobs", "endpoints", "storage:sql"];
|
|
3
|
+
export type PluginCapability = (typeof PLUGIN_CAPABILITIES)[number];
|
|
4
|
+
/** The capabilities that carry a parameter: a host to reach, a plugin to call. */
|
|
5
|
+
export declare const PLUGIN_CAPABILITY_PREFIXES: readonly ["outbound:", "plugins:"];
|
|
6
|
+
export interface CapabilityWords {
|
|
7
|
+
/** What it opens, as the administrator reads it before consenting. */
|
|
8
|
+
readonly opens: string;
|
|
9
|
+
/** The reach of a plugin that turns out malicious and holds it. */
|
|
10
|
+
readonly reach: string;
|
|
11
|
+
}
|
|
12
|
+
/** What each capability opens and what it risks, in the words of the specification. */
|
|
13
|
+
export declare const CAPABILITY_WORDS: Readonly<Record<PluginCapability, CapabilityWords>>;
|
|
14
|
+
/** True for a capability the catalogue knows, parameter included. */
|
|
15
|
+
export declare function isPluginCapability(value: string): boolean;
|
|
16
|
+
/** The sentences for a capability, parameter included; nothing for one the catalogue does not know. */
|
|
17
|
+
export declare function capabilityWords(capability: string): CapabilityWords | undefined;
|
|
18
|
+
/** True when the request's host is within what `outbound:<host>` names: the host itself, or a subdomain where the capability starts with `*.`. */
|
|
19
|
+
export declare function outboundAllows(capability: string, host: string): boolean;
|
|
20
|
+
//# sourceMappingURL=capabilities.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../src/plugin/capabilities.ts"],"names":[],"mappings":"AAKA,+CAA+C;AAC/C,eAAO,MAAM,mBAAmB,YAC9B,OAAO,EACP,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,MAAM,EACN,WAAW,EACX,aAAa,CACL,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpE,kFAAkF;AAClF,eAAO,MAAM,0BAA0B,YAAI,WAAW,EAAE,UAAU,CAAU,CAAC;AAO7E,MAAM,WAAW,eAAe;IAC9B,sEAAsE;IACtE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,mEAAmE;IACnE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,uFAAuF;AACvF,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,gBAAgB,EAAE,eAAe,CAAC,CA0DhF,CAAC;AAEF,qEAAqE;AACrE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAWzD;AAED,uGAAuG;AACvG,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAmB/E;AAED,kJAAkJ;AAClJ,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAWxE"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
// The catalogue of what a plugin may ask of a console (docs/specs/plugins.md, "Capabilities"):
|
|
2
|
+
// declared in the manifest, consented to by an administrator when the plugin is enabled, enforced
|
|
3
|
+
// by the parent on every call. Each carries the sentence an administrator reads before consenting,
|
|
4
|
+
// and the reach of a plugin that turns out malicious and holds it.
|
|
5
|
+
/** The capabilities that take no parameter. */
|
|
6
|
+
export const PLUGIN_CAPABILITIES = [
|
|
7
|
+
"files",
|
|
8
|
+
"people:read",
|
|
9
|
+
"people:read:all",
|
|
10
|
+
"projects:read",
|
|
11
|
+
"projects:read:all",
|
|
12
|
+
"board:read",
|
|
13
|
+
"board:tasks",
|
|
14
|
+
"board:decisions",
|
|
15
|
+
"board:documents",
|
|
16
|
+
"events:console",
|
|
17
|
+
"events:plugins",
|
|
18
|
+
"jobs",
|
|
19
|
+
"endpoints",
|
|
20
|
+
"storage:sql",
|
|
21
|
+
];
|
|
22
|
+
/** The capabilities that carry a parameter: a host to reach, a plugin to call. */
|
|
23
|
+
export const PLUGIN_CAPABILITY_PREFIXES = ["outbound:", "plugins:"];
|
|
24
|
+
/** A host as `outbound:<host>` names one: a name, or `*.` before a name for its subdomains. Never a port, never a path. */
|
|
25
|
+
const OUTBOUND_HOST = /^(?:\*\.)?(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z]{2,63}$/;
|
|
26
|
+
const PLUGIN_KEY = /^[a-z][a-z0-9-]{1,31}$/;
|
|
27
|
+
/** What each capability opens and what it risks, in the words of the specification. */
|
|
28
|
+
export const CAPABILITY_WORDS = {
|
|
29
|
+
files: {
|
|
30
|
+
opens: "files on its records, within the bytes the deployment allows a plugin",
|
|
31
|
+
reach: "storage filled to the bound",
|
|
32
|
+
},
|
|
33
|
+
"people:read": {
|
|
34
|
+
opens: "the people the caller may see, as the person",
|
|
35
|
+
reach: "the names and logins its role holders may see anyway",
|
|
36
|
+
},
|
|
37
|
+
"people:read:all": {
|
|
38
|
+
opens: "everyone in the workspace, for its jobs and hooks too",
|
|
39
|
+
reach: "the directory",
|
|
40
|
+
},
|
|
41
|
+
"projects:read": {
|
|
42
|
+
opens: "the projects and members the caller may see",
|
|
43
|
+
reach: "what the person sees",
|
|
44
|
+
},
|
|
45
|
+
"projects:read:all": {
|
|
46
|
+
opens: "every project and its members",
|
|
47
|
+
reach: "the projects and who is in them",
|
|
48
|
+
},
|
|
49
|
+
"board:read": {
|
|
50
|
+
opens: "the tasks, decisions, runs, documents and events of its board projects, and of the project a call is on",
|
|
51
|
+
reach: "the content of those boards, to its role holders",
|
|
52
|
+
},
|
|
53
|
+
"board:tasks": {
|
|
54
|
+
opens: "tasks created in its projects; its own changed, closed and commented",
|
|
55
|
+
reach: "tasks that mislead; each marked as the plugin's, put away by anyone",
|
|
56
|
+
},
|
|
57
|
+
"board:decisions": {
|
|
58
|
+
opens: "decisions raised in its projects; the answers to its own read",
|
|
59
|
+
reach: "questions that mislead; never an answer",
|
|
60
|
+
},
|
|
61
|
+
"board:documents": {
|
|
62
|
+
opens: "pages written under plugins/<key>/ in its projects",
|
|
63
|
+
reach: "pages that mislead, in its folder",
|
|
64
|
+
},
|
|
65
|
+
"events:console": {
|
|
66
|
+
opens: "hooks on the console's events of its board projects",
|
|
67
|
+
reach: "when things happen on those boards",
|
|
68
|
+
},
|
|
69
|
+
"events:plugins": {
|
|
70
|
+
opens: "hooks on the events other plugins emit",
|
|
71
|
+
reach: "what they publish",
|
|
72
|
+
},
|
|
73
|
+
jobs: {
|
|
74
|
+
opens: "runs on a schedule",
|
|
75
|
+
reach: "time, within the bound",
|
|
76
|
+
},
|
|
77
|
+
endpoints: {
|
|
78
|
+
opens: "inbound requests under its path, a person's or a webhook's",
|
|
79
|
+
reach: "input it accepts without verifying; the rate limit holds",
|
|
80
|
+
},
|
|
81
|
+
"storage:sql": {
|
|
82
|
+
opens: "a schema and a login role of its own in the console's database",
|
|
83
|
+
reach: "statements up to the timeout, within its schema",
|
|
84
|
+
},
|
|
85
|
+
};
|
|
86
|
+
/** True for a capability the catalogue knows, parameter included. */
|
|
87
|
+
export function isPluginCapability(value) {
|
|
88
|
+
if (PLUGIN_CAPABILITIES.includes(value)) {
|
|
89
|
+
return true;
|
|
90
|
+
}
|
|
91
|
+
if (value.startsWith("outbound:")) {
|
|
92
|
+
return OUTBOUND_HOST.test(value.slice("outbound:".length));
|
|
93
|
+
}
|
|
94
|
+
if (value.startsWith("plugins:")) {
|
|
95
|
+
return PLUGIN_KEY.test(value.slice("plugins:".length));
|
|
96
|
+
}
|
|
97
|
+
return false;
|
|
98
|
+
}
|
|
99
|
+
/** The sentences for a capability, parameter included; nothing for one the catalogue does not know. */
|
|
100
|
+
export function capabilityWords(capability) {
|
|
101
|
+
if (PLUGIN_CAPABILITIES.includes(capability)) {
|
|
102
|
+
return CAPABILITY_WORDS[capability];
|
|
103
|
+
}
|
|
104
|
+
if (capability.startsWith("outbound:") && isPluginCapability(capability)) {
|
|
105
|
+
const host = capability.slice("outbound:".length);
|
|
106
|
+
return {
|
|
107
|
+
opens: `requests to ${host}, a public address, over https`,
|
|
108
|
+
reach: `what it may read, sent to ${host}; a cost there`,
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
if (capability.startsWith("plugins:") && isPluginCapability(capability)) {
|
|
112
|
+
const key = capability.slice("plugins:".length);
|
|
113
|
+
return {
|
|
114
|
+
opens: `the API of the plugin ${key}, as the caller`,
|
|
115
|
+
reach: "what that API gives the caller",
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
return undefined;
|
|
119
|
+
}
|
|
120
|
+
/** True when the request's host is within what `outbound:<host>` names: the host itself, or a subdomain where the capability starts with `*.`. */
|
|
121
|
+
export function outboundAllows(capability, host) {
|
|
122
|
+
if (!capability.startsWith("outbound:") || !isPluginCapability(capability)) {
|
|
123
|
+
return false;
|
|
124
|
+
}
|
|
125
|
+
const named = capability.slice("outbound:".length);
|
|
126
|
+
const lower = host.toLowerCase();
|
|
127
|
+
if (named.startsWith("*.")) {
|
|
128
|
+
const domain = named.slice(2);
|
|
129
|
+
return lower.endsWith(`.${domain}`) && lower.length > domain.length + 1;
|
|
130
|
+
}
|
|
131
|
+
return lower === named;
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=capabilities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../src/plugin/capabilities.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,374 @@
|
|
|
1
|
+
import type { TaskFilter } from "../client.js";
|
|
2
|
+
import type { RestComment, RestDecision, RestDocument, RestDocumentSummary, RestMember, RestPerson, RestProject, RestRun, RestTask, RestTaskInput, RestTaskPatch } from "../schemas.js";
|
|
3
|
+
import type { PluginFileHandle } from "./args.js";
|
|
4
|
+
/** A schema as the Standard Schema interface spells one: what every build of zod implements, so that a plugin's own copy validates its records. */
|
|
5
|
+
export interface RecordSchema<T = unknown> {
|
|
6
|
+
readonly "~standard": {
|
|
7
|
+
readonly version: 1;
|
|
8
|
+
readonly vendor: string;
|
|
9
|
+
readonly validate: (value: unknown) => RecordSchemaResult<T> | Promise<RecordSchemaResult<T>>;
|
|
10
|
+
readonly types?: {
|
|
11
|
+
readonly input: unknown;
|
|
12
|
+
readonly output: T;
|
|
13
|
+
} | undefined;
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
export type RecordSchemaResult<T> = {
|
|
17
|
+
readonly value: T;
|
|
18
|
+
readonly issues?: undefined;
|
|
19
|
+
} | {
|
|
20
|
+
readonly issues: readonly {
|
|
21
|
+
readonly message: string;
|
|
22
|
+
readonly path?: readonly (PropertyKey | {
|
|
23
|
+
readonly key: PropertyKey;
|
|
24
|
+
})[] | undefined;
|
|
25
|
+
}[];
|
|
26
|
+
};
|
|
27
|
+
/** The data a record of a collection holds, from its schema. */
|
|
28
|
+
export type RecordData<S> = S extends RecordSchema<infer T> ? T : never;
|
|
29
|
+
/** A collection as `defineCollection` yields it: the name, the schema, and what the console indexes and who reads. */
|
|
30
|
+
export interface CollectionDefinition<S extends RecordSchema = RecordSchema> {
|
|
31
|
+
readonly name: string;
|
|
32
|
+
readonly schema: S;
|
|
33
|
+
readonly indexes: readonly string[];
|
|
34
|
+
readonly search: readonly string[];
|
|
35
|
+
readonly owner: string | null;
|
|
36
|
+
readonly project: "none" | "optional" | "required";
|
|
37
|
+
readonly read: readonly string[];
|
|
38
|
+
readonly readOwn: readonly string[];
|
|
39
|
+
readonly history: boolean;
|
|
40
|
+
}
|
|
41
|
+
export interface PluginRecord<T = Record<string, unknown>> {
|
|
42
|
+
readonly id: string;
|
|
43
|
+
readonly collection: string;
|
|
44
|
+
/** The id of the project the record is linked to, or none. */
|
|
45
|
+
readonly project: string | null;
|
|
46
|
+
/** The id of the person the record is about, where the collection has an `owner`. */
|
|
47
|
+
readonly owner: string | null;
|
|
48
|
+
readonly data: T;
|
|
49
|
+
readonly version: number;
|
|
50
|
+
readonly createdAt: string;
|
|
51
|
+
readonly updatedAt: string;
|
|
52
|
+
/** The person who caused the write, or none for the console. */
|
|
53
|
+
readonly createdBy: string | null;
|
|
54
|
+
readonly updatedBy: string | null;
|
|
55
|
+
readonly archivedAt: string | null;
|
|
56
|
+
}
|
|
57
|
+
export interface RecordVersion<T = Record<string, unknown>> {
|
|
58
|
+
readonly version: number;
|
|
59
|
+
readonly data: T;
|
|
60
|
+
readonly at: string;
|
|
61
|
+
readonly by: string | null;
|
|
62
|
+
}
|
|
63
|
+
export type WhereScalar = string | number | boolean | null;
|
|
64
|
+
/** One condition on an indexed field: equal, one of, within bounds, or present at all. */
|
|
65
|
+
export type WhereValue = WhereScalar | {
|
|
66
|
+
readonly in: readonly WhereScalar[];
|
|
67
|
+
} | {
|
|
68
|
+
readonly gte?: WhereScalar;
|
|
69
|
+
readonly gt?: WhereScalar;
|
|
70
|
+
readonly lte?: WhereScalar;
|
|
71
|
+
readonly lt?: WhereScalar;
|
|
72
|
+
} | {
|
|
73
|
+
readonly exists: boolean;
|
|
74
|
+
};
|
|
75
|
+
export type Where = Readonly<Record<string, WhereValue>>;
|
|
76
|
+
export interface RecordOrder {
|
|
77
|
+
readonly field: string;
|
|
78
|
+
readonly descending?: boolean;
|
|
79
|
+
}
|
|
80
|
+
export interface RecordQuery {
|
|
81
|
+
readonly where?: Where;
|
|
82
|
+
readonly order?: RecordOrder;
|
|
83
|
+
/** Up to the list bound; the bound when left out. */
|
|
84
|
+
readonly limit?: number;
|
|
85
|
+
/** The cursor the last page answered with. */
|
|
86
|
+
readonly after?: string;
|
|
87
|
+
/** The key of a project the records are linked to. */
|
|
88
|
+
readonly project?: string;
|
|
89
|
+
/** Archived records too; left out, they are not listed. */
|
|
90
|
+
readonly archived?: boolean;
|
|
91
|
+
}
|
|
92
|
+
export interface RecordPage<T> {
|
|
93
|
+
readonly items: readonly PluginRecord<T>[];
|
|
94
|
+
/** The cursor for the next page, or none when this was the last. */
|
|
95
|
+
readonly after: string | null;
|
|
96
|
+
}
|
|
97
|
+
export interface RecordAggregation {
|
|
98
|
+
readonly where?: Where;
|
|
99
|
+
/** Up to two indexed fields. */
|
|
100
|
+
readonly groupBy?: readonly string[];
|
|
101
|
+
readonly count?: boolean;
|
|
102
|
+
readonly sum?: readonly string[];
|
|
103
|
+
readonly min?: readonly string[];
|
|
104
|
+
readonly max?: readonly string[];
|
|
105
|
+
}
|
|
106
|
+
export interface RecordAggregate {
|
|
107
|
+
readonly group: Readonly<Record<string, WhereScalar>>;
|
|
108
|
+
readonly count?: number;
|
|
109
|
+
readonly sum?: Readonly<Record<string, number>>;
|
|
110
|
+
readonly min?: Readonly<Record<string, WhereScalar>>;
|
|
111
|
+
readonly max?: Readonly<Record<string, WhereScalar>>;
|
|
112
|
+
}
|
|
113
|
+
/** What a record may be linked to: an item of the board, a project, or a record of any plugin. */
|
|
114
|
+
export type LinkTarget = {
|
|
115
|
+
readonly kind: "task" | "decision" | "document" | "run" | "project";
|
|
116
|
+
readonly id: string;
|
|
117
|
+
} | {
|
|
118
|
+
readonly kind: "record";
|
|
119
|
+
readonly plugin?: string;
|
|
120
|
+
readonly collection: string;
|
|
121
|
+
readonly id: string;
|
|
122
|
+
};
|
|
123
|
+
export interface RecordFile {
|
|
124
|
+
readonly id: string;
|
|
125
|
+
readonly name: string;
|
|
126
|
+
readonly type: string;
|
|
127
|
+
readonly bytes: number;
|
|
128
|
+
readonly sha256: string;
|
|
129
|
+
readonly createdAt: string;
|
|
130
|
+
}
|
|
131
|
+
export interface RecordFiles {
|
|
132
|
+
/** A handle a command received or a page uploaded, kept on the record; `files` capability. */
|
|
133
|
+
attach(handle: PluginFileHandle | string, options?: {
|
|
134
|
+
readonly name?: string;
|
|
135
|
+
readonly type?: string;
|
|
136
|
+
}): Promise<RecordFile>;
|
|
137
|
+
list(): Promise<readonly RecordFile[]>;
|
|
138
|
+
remove(fileId: string): Promise<void>;
|
|
139
|
+
}
|
|
140
|
+
/** A plugin's records of one collection. */
|
|
141
|
+
export interface PluginRecords<T = Record<string, unknown>> {
|
|
142
|
+
create(data: T, options?: {
|
|
143
|
+
readonly project?: string;
|
|
144
|
+
readonly owner?: string;
|
|
145
|
+
}): Promise<PluginRecord<T>>;
|
|
146
|
+
/** The record, or none when there is no such record in this collection. */
|
|
147
|
+
get(id: string): Promise<PluginRecord<T> | null>;
|
|
148
|
+
/** The fields given replace those of the record; `baseVersion` refuses with `plugin.conflict` when the record moved on. */
|
|
149
|
+
update(id: string, patch: Partial<T>, options?: {
|
|
150
|
+
readonly baseVersion?: number;
|
|
151
|
+
}): Promise<PluginRecord<T>>;
|
|
152
|
+
archive(id: string): Promise<void>;
|
|
153
|
+
restore(id: string): Promise<void>;
|
|
154
|
+
list(query?: RecordQuery): Promise<RecordPage<T>>;
|
|
155
|
+
search(words: string, options?: Pick<RecordQuery, "where" | "limit" | "project">): Promise<RecordPage<T>>;
|
|
156
|
+
aggregate(aggregation: RecordAggregation): Promise<readonly RecordAggregate[]>;
|
|
157
|
+
versions(id: string): Promise<readonly RecordVersion<T>[]>;
|
|
158
|
+
link(id: string, target: LinkTarget): Promise<void>;
|
|
159
|
+
unlink(id: string, target: LinkTarget): Promise<void>;
|
|
160
|
+
links(id: string): Promise<readonly LinkTarget[]>;
|
|
161
|
+
files(id: string): RecordFiles;
|
|
162
|
+
}
|
|
163
|
+
export interface PluginInfo {
|
|
164
|
+
readonly key: string;
|
|
165
|
+
readonly version: string;
|
|
166
|
+
readonly dataVersion: number;
|
|
167
|
+
/** The settings as the administrator set them, by key, without the secrets. */
|
|
168
|
+
readonly settings: Readonly<Record<string, unknown>>;
|
|
169
|
+
/** The board project, or none. */
|
|
170
|
+
readonly board: {
|
|
171
|
+
readonly id: string;
|
|
172
|
+
readonly key: string;
|
|
173
|
+
} | null;
|
|
174
|
+
/** The projects the plugin is on: all, or their keys. */
|
|
175
|
+
readonly projects: "all" | readonly string[];
|
|
176
|
+
}
|
|
177
|
+
export interface CallerPerson {
|
|
178
|
+
readonly id: string;
|
|
179
|
+
readonly login: string;
|
|
180
|
+
readonly name: string | null;
|
|
181
|
+
readonly language: string;
|
|
182
|
+
readonly admin: boolean;
|
|
183
|
+
}
|
|
184
|
+
export interface CallerProject {
|
|
185
|
+
readonly id: string;
|
|
186
|
+
readonly key: string;
|
|
187
|
+
readonly name: string;
|
|
188
|
+
}
|
|
189
|
+
/** Who a command, a query or a person's endpoint acts as, and with which roles in this plugin. */
|
|
190
|
+
export interface PersonCaller {
|
|
191
|
+
readonly kind: "person";
|
|
192
|
+
readonly person: CallerPerson;
|
|
193
|
+
/** The agent's name where a token acts, or none for a person on the pages. */
|
|
194
|
+
readonly agent: string | null;
|
|
195
|
+
readonly roles: readonly string[];
|
|
196
|
+
/** The caller's open run in the board project, if any. */
|
|
197
|
+
readonly run: {
|
|
198
|
+
readonly id: string;
|
|
199
|
+
readonly taskNumber: number | null;
|
|
200
|
+
} | null;
|
|
201
|
+
/** The project the call is on, if any. */
|
|
202
|
+
readonly project: CallerProject | null;
|
|
203
|
+
}
|
|
204
|
+
/** The console itself: a job, a hook, an upgrade or a webhook, with every role. */
|
|
205
|
+
export interface ConsoleCaller {
|
|
206
|
+
readonly kind: "console";
|
|
207
|
+
readonly roles: readonly string[];
|
|
208
|
+
readonly project: CallerProject | null;
|
|
209
|
+
}
|
|
210
|
+
export type PluginCaller = PersonCaller | ConsoleCaller;
|
|
211
|
+
export interface PluginWorkspace {
|
|
212
|
+
readonly name: string;
|
|
213
|
+
readonly languages: readonly string[];
|
|
214
|
+
readonly timeZone: string;
|
|
215
|
+
readonly categories: readonly {
|
|
216
|
+
readonly key: string;
|
|
217
|
+
readonly name: string;
|
|
218
|
+
readonly color: string;
|
|
219
|
+
}[];
|
|
220
|
+
}
|
|
221
|
+
export interface DecisionAsk {
|
|
222
|
+
readonly question: string;
|
|
223
|
+
readonly body?: string;
|
|
224
|
+
readonly options: readonly {
|
|
225
|
+
readonly label: string;
|
|
226
|
+
}[];
|
|
227
|
+
/** Who is to answer: a person who may work in the project; the project's owners when left out. */
|
|
228
|
+
readonly deciderId?: string;
|
|
229
|
+
readonly taskId?: string;
|
|
230
|
+
/** The record the decision is for, by which the plugin maps the answer back. */
|
|
231
|
+
readonly about: {
|
|
232
|
+
readonly collection: string;
|
|
233
|
+
readonly id: string;
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
/** The console's board, as a plugin reaches it with the `board:*` capabilities, each read the caller's own. */
|
|
237
|
+
export interface PluginConsole {
|
|
238
|
+
workspace(): Promise<PluginWorkspace>;
|
|
239
|
+
people: {
|
|
240
|
+
list(options?: {
|
|
241
|
+
readonly q?: string;
|
|
242
|
+
}): Promise<readonly RestPerson[]>;
|
|
243
|
+
get(id: string): Promise<RestPerson | null>;
|
|
244
|
+
};
|
|
245
|
+
projects: {
|
|
246
|
+
list(): Promise<readonly RestProject[]>;
|
|
247
|
+
get(key: string): Promise<RestProject | null>;
|
|
248
|
+
members(key: string): Promise<readonly RestMember[]>;
|
|
249
|
+
};
|
|
250
|
+
tasks: {
|
|
251
|
+
list(project: string, filter?: TaskFilter): Promise<readonly RestTask[]>;
|
|
252
|
+
get(project: string, number: number): Promise<RestTask | null>;
|
|
253
|
+
create(project: string, task: RestTaskInput): Promise<RestTask>;
|
|
254
|
+
update(project: string, number: number, patch: RestTaskPatch): Promise<RestTask>;
|
|
255
|
+
comment(project: string, number: number, body: string): Promise<RestComment>;
|
|
256
|
+
};
|
|
257
|
+
decisions: {
|
|
258
|
+
list(project: string): Promise<readonly RestDecision[]>;
|
|
259
|
+
get(id: string): Promise<RestDecision | null>;
|
|
260
|
+
ask(project: string, decision: DecisionAsk): Promise<RestDecision>;
|
|
261
|
+
};
|
|
262
|
+
documents: {
|
|
263
|
+
list(project: string, folder?: string): Promise<readonly RestDocumentSummary[]>;
|
|
264
|
+
read(project: string, path: string): Promise<RestDocument | null>;
|
|
265
|
+
/** Under `plugins/<key>/`; anywhere else is `plugin.forbidden`. */
|
|
266
|
+
write(project: string, path: string, document: {
|
|
267
|
+
readonly title: string;
|
|
268
|
+
readonly body: string;
|
|
269
|
+
readonly baseVersion?: number;
|
|
270
|
+
}): Promise<RestDocument>;
|
|
271
|
+
};
|
|
272
|
+
runs: {
|
|
273
|
+
list(project: string): Promise<readonly RestRun[]>;
|
|
274
|
+
get(id: string): Promise<RestRun | null>;
|
|
275
|
+
};
|
|
276
|
+
}
|
|
277
|
+
export interface PluginSqlResult<Row> {
|
|
278
|
+
readonly rows: readonly Row[];
|
|
279
|
+
readonly rowCount: number;
|
|
280
|
+
}
|
|
281
|
+
export interface PluginSqlClient {
|
|
282
|
+
query<Row = Record<string, unknown>>(text: string, params?: readonly unknown[]): Promise<PluginSqlResult<Row>>;
|
|
283
|
+
}
|
|
284
|
+
/** SQL on the plugin's own schema and role, with `storage:sql`. */
|
|
285
|
+
export interface PluginSql extends PluginSqlClient {
|
|
286
|
+
transaction<T>(work: (tx: PluginSqlClient) => Promise<T>): Promise<T>;
|
|
287
|
+
}
|
|
288
|
+
/** Where the console puts a secret into an outbound request. */
|
|
289
|
+
export type SecretPlacement = `header:${string}` | `query:${string}` | "basic";
|
|
290
|
+
export interface PluginFetchInit {
|
|
291
|
+
readonly method?: string;
|
|
292
|
+
readonly headers?: Readonly<Record<string, string>>;
|
|
293
|
+
readonly body?: string | Uint8Array;
|
|
294
|
+
/** A secret setting, put where `as` says: a header, a query parameter, or as basic authentication (`user:password`). */
|
|
295
|
+
readonly secret?: {
|
|
296
|
+
readonly name: string;
|
|
297
|
+
readonly as: SecretPlacement;
|
|
298
|
+
};
|
|
299
|
+
}
|
|
300
|
+
/** An outbound answer, whole: the host reads it to the bound before handing it over. */
|
|
301
|
+
export interface PluginFetchResponse {
|
|
302
|
+
readonly status: number;
|
|
303
|
+
readonly headers: Readonly<Record<string, string>>;
|
|
304
|
+
readonly bytes: Uint8Array;
|
|
305
|
+
text(): string;
|
|
306
|
+
json(): unknown;
|
|
307
|
+
}
|
|
308
|
+
export interface PluginSecrets {
|
|
309
|
+
has(name: string): Promise<boolean>;
|
|
310
|
+
sign(name: string, payload: string | Uint8Array, algorithm: "hmac-sha256"): Promise<string>;
|
|
311
|
+
verify(name: string, payload: string | Uint8Array, signature: string, algorithm: "hmac-sha256"): Promise<boolean>;
|
|
312
|
+
}
|
|
313
|
+
export interface OtherPlugin {
|
|
314
|
+
readonly version: string;
|
|
315
|
+
readonly api: Readonly<Record<string, (input: unknown) => Promise<unknown>>>;
|
|
316
|
+
}
|
|
317
|
+
export interface PluginLog {
|
|
318
|
+
info(message: string, fields?: Readonly<Record<string, unknown>>): void;
|
|
319
|
+
warn(message: string, fields?: Readonly<Record<string, unknown>>): void;
|
|
320
|
+
error(message: string, fields?: Readonly<Record<string, unknown>>): void;
|
|
321
|
+
}
|
|
322
|
+
/** Everything a plugin does to the console: one object, handed to every function the plugin defines. */
|
|
323
|
+
export interface PluginContext {
|
|
324
|
+
readonly plugin: PluginInfo;
|
|
325
|
+
readonly caller: PluginCaller;
|
|
326
|
+
/** The records of a collection, typed by its definition, or by name. */
|
|
327
|
+
records<S extends RecordSchema>(collection: CollectionDefinition<S>): PluginRecords<RecordData<S>>;
|
|
328
|
+
records(collection: string): PluginRecords<Record<string, unknown>>;
|
|
329
|
+
readonly sql: PluginSql;
|
|
330
|
+
readonly console: PluginConsole;
|
|
331
|
+
readonly events: {
|
|
332
|
+
emit(kind: string, data: unknown): Promise<void>;
|
|
333
|
+
};
|
|
334
|
+
fetch(url: string, init?: PluginFetchInit): Promise<PluginFetchResponse>;
|
|
335
|
+
readonly secrets: PluginSecrets;
|
|
336
|
+
readonly plugins: {
|
|
337
|
+
get(key: string): Promise<OtherPlugin>;
|
|
338
|
+
};
|
|
339
|
+
readonly log: PluginLog;
|
|
340
|
+
now(): Date;
|
|
341
|
+
/** The caller's language, `en` for the console. */
|
|
342
|
+
readonly language: string;
|
|
343
|
+
/** Fires when the call's time is up; the thread is ended soon after. */
|
|
344
|
+
readonly signal: AbortSignal;
|
|
345
|
+
}
|
|
346
|
+
/** An event a hook receives: the console's, of the plugin's board projects, or another plugin's. */
|
|
347
|
+
export interface PluginHookEvent {
|
|
348
|
+
readonly source: "console" | "plugin";
|
|
349
|
+
/** `console:<kind>` or `plugin:<key>:<kind>`, as the hook was named. */
|
|
350
|
+
readonly kind: string;
|
|
351
|
+
readonly at: string;
|
|
352
|
+
/** The plugin that emitted or caused it, or none. */
|
|
353
|
+
readonly plugin: string | null;
|
|
354
|
+
readonly project: {
|
|
355
|
+
readonly id: string;
|
|
356
|
+
readonly key: string;
|
|
357
|
+
} | null;
|
|
358
|
+
readonly data: unknown;
|
|
359
|
+
}
|
|
360
|
+
/** What an endpoint receives: the request, bounded, with the headers the definition named. */
|
|
361
|
+
export interface EndpointRequest {
|
|
362
|
+
readonly method: string;
|
|
363
|
+
/** What followed the endpoint's name. */
|
|
364
|
+
readonly path: string;
|
|
365
|
+
readonly query: Readonly<Record<string, string>>;
|
|
366
|
+
readonly headers: Readonly<Record<string, string>>;
|
|
367
|
+
readonly body: string;
|
|
368
|
+
}
|
|
369
|
+
export interface EndpointResponse {
|
|
370
|
+
readonly status: number;
|
|
371
|
+
readonly headers?: Readonly<Partial<Record<"content-type" | "location" | "cache-control", string>>>;
|
|
372
|
+
readonly body?: string | Readonly<Record<string, unknown>> | readonly unknown[];
|
|
373
|
+
}
|
|
374
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/plugin/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/plugin/context.ts"],"names":[],"mappings":""}
|