initiative-plugin-sdk 5.0.0 → 6.0.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/README.md CHANGED
@@ -14,6 +14,8 @@ holds its tokens, and builds its manifest.
14
14
  | `initiative-plugin-sdk/server` | `createPlugin`, `serve`, `EndpointError` |
15
15
  | `initiative-plugin-sdk/client` | `Initiative` and the `Client` it gives, acting as the community or a member; plug-in keys |
16
16
  | `initiative-plugin-sdk/widget` | What a widget is handed, and the scenes it returns |
17
+ | `initiative-plugin-sdk/parts` | The components a part's tree is built from: `Section`, `Stack`, `Field`, `Value`, `Text`, `Button` |
18
+ | `initiative-plugin-sdk/jsx-runtime` | JSX for a part's tree, with no React |
17
19
  | `initiative-plugin-sdk/testing` | A declarative plug-in's requests and maps, run against recorded vendor answers |
18
20
  | `initiative-plugin-sdk/plugin-api.json` | The plug-in API contract: the OpenAPI document of every route a plug-in may call |
19
21
  | bin `initiative-plugin` | `init`, `build`, `pack`, `dev`, `validate`, `keygen`, `uid`, `schema` |
@@ -74,12 +76,13 @@ export default definePlugin({
74
76
  does not compile either.
75
77
  - **Endpoints are named by their key.** The manifest id is
76
78
  `plugin.<publicId>.<key>`, and everywhere the definition refers to an endpoint
77
- (a widget, a sample, a parameter's `options_from`, a bundled dashboard) it
78
- uses the key.
79
+ (a widget, a sample, a parameter's `options_from`, a bundled dashboard, an
80
+ action) it uses the key.
79
81
  - **Everything else is the contract's own shape**, from
80
82
  [`manifest.contract.json`](manifest.contract.json): `vendor`, `connections`
81
83
  (keyed by id), `webhooks`, `pages` (keyed by id),
82
- `dashboards`. The types are generated from the contract, so every term the
84
+ `dashboards`, `fields` (keyed by metadata key), `parts` and `actions` (keyed
85
+ by id). The types are generated from the contract, so every term the
83
86
  contract declares has a type here.
84
87
  - **Features follow from what is filled in.** A plug-in with widgets declares
85
88
  `widgets`, and so on.
@@ -94,6 +97,8 @@ export default definePlugin({
94
97
  | `caller` | The plug-in that made the call through Initiative, or null for Initiative's own. |
95
98
  | `initiative` | The initiative the call is confined to, or null. |
96
99
  | `connections` | Connection id → the handle Initiative gives a vendor token for. |
100
+ | `viewer` | On a call one of the plug-in's actions made: the reader who ran it, by this installation's reference for them. Otherwise null. |
101
+ | `subject` | On a call one of the plug-in's actions made: the item it was run on, `{ type, id }`. Otherwise null. |
97
102
  | `client` | Initiative, already acting as `actor` and narrowed to `initiative`. |
98
103
  | `context` | What you gave `createPlugin` (below). |
99
104
 
@@ -102,9 +107,10 @@ credential than the call's own (a read that always uses the community's
102
107
  installation, say). To refuse, throw `new EndpointError(status, code, detail)`;
103
108
  anything else thrown is answered 500 and logged.
104
109
 
105
- A `write` is reachable only through another plug-in, as one of the actors it
106
- declares, and only when it is `public`. The SDK refuses anything else before
107
- the handler runs.
110
+ A `write` is reachable through another plug-in, as one of the actors it
111
+ declares, and only when it is `public`; or through one of the plug-in's own
112
+ actions, on an item kind the action is offered on, as the installation. The
113
+ SDK refuses anything else before the handler runs.
108
114
 
109
115
  ### Hooks
110
116
 
@@ -220,6 +226,107 @@ alpha-2 country, with `default` for every country not listed:
220
226
  `{ default: 16, US: 13 }`. It is a declaration; whether a deployment enforces
221
227
  it is the deployment's decision.
222
228
 
229
+ ### Fields, parts and actions
230
+
231
+ What a plug-in adds to the views and pages of Initiative's items: tasks,
232
+ calendar events, queue items, counters, gallery images and posts
233
+ (`ITEM_KINDS`). Initiative draws all of it with its own components, so no
234
+ plug-in code runs in a reader's browser, and the community's managers place
235
+ it; a plug-in never places itself. They are a container plug-in's: a declarative
236
+ plug-in holds no installation token to keep metadata with, and no handler to
237
+ run an action.
238
+
239
+ **Metadata** is what the plug-in keeps on an item or on its own install: values
240
+ by key (a lowercase letter, then lowercase letters, digits, `_` and `.`), held
241
+ by Initiative and written with the installation token (`client.metadata`,
242
+ below). Initiative enforces its sizes: a value of at most 8192 bytes as JSON,
243
+ 32 keys and 64 KiB on one item, and 256 keys and 1 MiB on the install. A
244
+ string of at most 255 characters can be found by.
245
+
246
+ **A field** says how one metadata key is shown. Initiative draws the value with
247
+ its own component for `kind` and computes its plain text itself, so a field
248
+ filters, sorts and exports with no call to the plug-in.
249
+
250
+ | `kind` | The value |
251
+ |---|---|
252
+ | `text` | a string |
253
+ | `number` | a number |
254
+ | `date` | `"YYYY-MM-DD"` |
255
+ | `datetime` | ISO 8601, with its offset |
256
+ | `link` | `{ url, text? }` |
257
+ | `badge` | `{ text, tone? }` |
258
+ | `progress` | `{ value, max }` |
259
+ | `checkbox` | a boolean |
260
+
261
+ ```ts
262
+ fields: {
263
+ "demo.link": { name: { en: "Demo" }, kind: "link", on: ["task"], description: { en: "The task's demo" } },
264
+ "demo.opened": { name: { en: "Opened" }, kind: "number", on: ["task"] },
265
+ },
266
+ ```
267
+
268
+ `on` is the item kinds it is offered on; `description` is the line the view
269
+ editor's Add picker shows; `tone` is a badge's tone when its value names none
270
+ (`accent`, `positive`, `negative`, `warning`, `neutral`, `muted`).
271
+
272
+ **An action** runs one of the plug-in's write endpoints on one item, from a
273
+ part's button, or from the item's own menu with `menu: true`. Initiative calls
274
+ the endpoint as the installation, with `viewer` and `subject` set, and the
275
+ handler does the work, usually writing metadata. Initiative then answers the
276
+ reader with the item's metadata as it stands. With `confirm`, Initiative asks
277
+ first.
278
+
279
+ ```ts
280
+ actions: {
281
+ "new-link": { name: { en: "New link" }, endpoint: "create-link", on: ["task"], menu: true },
282
+ },
283
+ ```
284
+
285
+ **A part** is a tree of Initiative's components bound to the plug-in's fields
286
+ and actions, at most 50 nodes and 4 deep. Initiative places at most 3 of a
287
+ plug-in's parts on one item.
288
+
289
+ | Component | Props | Holds nodes |
290
+ |---|---|---|
291
+ | `section` | `title?`, `collapsed?` | yes |
292
+ | `stack` | `direction?` (`row`, `column`), `gap?` (`none`, `small`, `medium`, `large`), `wrap?` | yes |
293
+ | `field` | `field`: a field's key. Its label and value. | no |
294
+ | `value` | `field`: a field's key. Its value alone. | no |
295
+ | `text` | `text`, `tone?` | no |
296
+ | `button` | `action`: an action's id; `variant?` (`primary`, `secondary`, `ghost`) | no |
297
+
298
+ Every field and action a part names must be offered on each kind in the
299
+ part's `on`. A tree is plain data, `{ type, props?, children? }`, or JSX through
300
+ the SDK's runtime, which the build turns into the same data:
301
+
302
+ ```tsx
303
+ /** @jsxImportSource initiative-plugin-sdk */
304
+ import { Button, Field, Section, Stack, Text, Value } from "initiative-plugin-sdk/parts";
305
+
306
+ parts: {
307
+ demo: {
308
+ name: { en: "Demo" },
309
+ on: ["task"],
310
+ tree: (
311
+ <Section title={{ en: "Demo" }}>
312
+ <Field field="demo.link" />
313
+ <Stack direction="row" gap="small">
314
+ <Value field="demo.opened" />
315
+ <Text text={{ en: "times opened" }} tone="muted" />
316
+ </Stack>
317
+ <Button action="new-link" />
318
+ </Section>
319
+ ),
320
+ },
321
+ },
322
+ ```
323
+
324
+ The pragma, or `"jsx": "react-jsx"` and `"jsxImportSource":
325
+ "initiative-plugin-sdk"` in `tsconfig.json`, selects the runtime. A fragment's
326
+ children join the node that holds it, and `null` and `false` children are left
327
+ out. `key` is JSX's own and is not passed on, which is why a field is named by
328
+ `field`.
329
+
223
330
  ## 2. Widgets
224
331
 
225
332
  A widget is a module exporting `render`, typed from the endpoint it draws:
@@ -379,6 +486,13 @@ for (const { installation, active } of await initiative.installations()) {
379
486
  - `client.callPlugin(publicId, endpointId, params)` calls another plug-in's public
380
487
  endpoint through Initiative. It needs `plugins:<publicId>` among the plug-in's
381
488
  scopes, granted by the community.
489
+ - `client.metadata`, the plug-in's metadata, always on the installation's
490
+ token: `get(itemKind, ids)` answers each item's values by id;
491
+ `set(itemKind, id, values)` writes some of one item's values, a null
492
+ removing its key, and answers them as they now stand; `find(key, value)`
493
+ answers the items holding `value` under `key`, as `{ type, id }`.
494
+ `metadata.install.get()` and `metadata.install.set(values)` do the same for
495
+ the install's own values.
382
496
  - The installation itself, on any installation token: `client.config()`,
383
497
  `client.connections()`, `client.connectionToken(ref)` for a usable vendor
384
498
  token, `client.reportConfigStatus({ state, detail })`, and
@@ -646,6 +760,7 @@ npx initiative-plugin schema # the JSON Schema it checks again
646
760
  `validateManifest` runs the bundled JSON Schema, then the checks a schema
647
761
  cannot express: features against the blocks present, ids that must name
648
762
  something the manifest declares, connection, vendor setup and schedule rules,
763
+ what a part's nodes and an action name, a part's size and depth,
649
764
  and every term the contract does not declare (a deployment discards those
650
765
  without saying so). The deployment also enforces byte-size caps.
651
766
 
package/dist/client.d.ts CHANGED
@@ -14,7 +14,8 @@
14
14
  * {@link Initiative.asMember} each give a {@link Client} acting that way; a
15
15
  * handler is handed one already acting for its call. {@link Client.api} holds
16
16
  * a typed method for every route Initiative's plug-in API describes, generated
17
- * from that description.
17
+ * from that description, and {@link Client.metadata} the values the plug-in
18
+ * keeps on Initiative's items.
18
19
  *
19
20
  * Tokens are opaque and never read. The token response says how long each
20
21
  * lives and which scopes it holds: a call needing a scope the token does not
@@ -23,8 +24,8 @@
23
24
  * call answered 401 is sent once more on a fresh token.
24
25
  */
25
26
  import { PluginApi } from "./plugin-api.generated.js";
26
- import type { ActorKind, PluginScope, Scope } from "./contract.js";
27
- import type { Actor } from "./define.js";
27
+ import type { ActorKind, ItemKind, PluginScope, Scope } from "./contract.js";
28
+ import type { Actor, ItemRef } from "./define.js";
28
29
  import { type PluginSigningKey } from "./keys.js";
29
30
  export { generatePluginKeys, jwkThumbprint, loadPrivateKey, publicJwks, type PluginKeyAlgorithm, type PluginSigningKey, type GeneratedPluginKeys, type Jwks, type PublicJwk, } from "./keys.js";
30
31
  export type { PluginApi, PluginApiSchemas } from "./plugin-api.generated.js";
@@ -144,6 +145,27 @@ export interface ConsentRequest {
144
145
  /** What the plug-in asks for. The member may grant less. */
145
146
  access: "read" | "read_write";
146
147
  }
148
+ /** The plug-in's values on one item or on its install, by metadata key. */
149
+ export type MetadataValues = Record<string, unknown>;
150
+ /**
151
+ * The values the plug-in keeps in Initiative, by metadata key: on items, which
152
+ * its manifest's fields show, and on its own install. Always on the
153
+ * installation's token, narrowed to the client's initiative.
154
+ */
155
+ export interface Metadata {
156
+ /** Each item's values, by id. An item holding none is left out. */
157
+ get(itemKind: ItemKind, ids: readonly number[]): Promise<Record<number, MetadataValues>>;
158
+ /** Writes some of one item's values; a null removes its key. Answers the item's values as they now stand. */
159
+ set(itemKind: ItemKind, id: number, values: MetadataValues): Promise<MetadataValues>;
160
+ /** The items holding `value` under `key`. */
161
+ find(key: string, value: string): Promise<ItemRef[]>;
162
+ /** The install's own values. */
163
+ install: {
164
+ get(): Promise<MetadataValues>;
165
+ /** Writes some of the install's values; a null removes its key. Answers them as they now stand. */
166
+ set(values: MetadataValues): Promise<MetadataValues>;
167
+ };
168
+ }
147
169
  /** The token endpoint refused (RFC 6749 §5.2). */
148
170
  export declare class InitiativeAuthError extends Error {
149
171
  /** `invalid_client`, `invalid_grant`, `invalid_scope`, … */
@@ -236,6 +258,7 @@ export declare class Client {
236
258
  private readonly tokens;
237
259
  private readonly grant;
238
260
  private pluginApi?;
261
+ private metadataStore?;
239
262
  constructor(tokens: Tokens, grant: Grant);
240
263
  /**
241
264
  * Every route Initiative's plug-in API describes, as a typed method on the
@@ -244,6 +267,11 @@ export declare class Client {
244
267
  * {@link Client.request}.
245
268
  */
246
269
  get api(): PluginApi;
270
+ /**
271
+ * The values the plug-in keeps on Initiative's items and on its install:
272
+ * `client.metadata.set("task", 7, { "demo.opened": 3 })`.
273
+ */
274
+ get metadata(): Metadata;
247
275
  get installation(): string;
248
276
  get actor(): Actor;
249
277
  get initiative(): number | null;
package/dist/client.js CHANGED
@@ -14,7 +14,8 @@
14
14
  * {@link Initiative.asMember} each give a {@link Client} acting that way; a
15
15
  * handler is handed one already acting for its call. {@link Client.api} holds
16
16
  * a typed method for every route Initiative's plug-in API describes, generated
17
- * from that description.
17
+ * from that description, and {@link Client.metadata} the values the plug-in
18
+ * keeps on Initiative's items.
18
19
  *
19
20
  * Tokens are opaque and never read. The token response says how long each
20
21
  * lives and which scopes it holds: a call needing a scope the token does not
@@ -282,6 +283,7 @@ export class Client {
282
283
  tokens;
283
284
  grant;
284
285
  pluginApi;
286
+ metadataStore;
285
287
  constructor(tokens, grant) {
286
288
  this.tokens = tokens;
287
289
  this.grant = grant;
@@ -295,6 +297,37 @@ export class Client {
295
297
  get api() {
296
298
  return (this.pluginApi ??= new PluginApi((operation, args) => this.operation(operation, args)));
297
299
  }
300
+ /**
301
+ * The values the plug-in keeps on Initiative's items and on its install:
302
+ * `client.metadata.set("task", 7, { "demo.opened": 3 })`.
303
+ */
304
+ get metadata() {
305
+ const read = async (entityType, ids) => {
306
+ const body = (await this.installationCall("GET", `/metadata${queryOf({ entity_type: entityType, entity_ids: ids })}`));
307
+ return Array.isArray(body.items) ? body.items : [];
308
+ };
309
+ const write = async (entity, values) => {
310
+ const body = (await this.installationCall("PUT", "/metadata", { ...entity, values }));
311
+ return isRecord(body.values) ? body.values : {};
312
+ };
313
+ const valuesOf = (item) => (isRecord(item?.values) ? item.values : {});
314
+ return (this.metadataStore ??= {
315
+ get: async (itemKind, ids) => ids.length
316
+ ? Object.fromEntries((await read(itemKind, ids)).map((item) => [Number(item.entity_id), valuesOf(item)]))
317
+ : {},
318
+ set: (itemKind, id, values) => write({ entity_type: itemKind, entity_id: id }, values),
319
+ find: async (key, value) => {
320
+ const body = (await this.installationCall("GET", `/metadata/lookup${queryOf({ key, value })}`));
321
+ return Array.isArray(body.items)
322
+ ? body.items.map((item) => ({ type: item.entity_type, id: Number(item.entity_id) }))
323
+ : [];
324
+ },
325
+ install: {
326
+ get: async () => valuesOf((await read("plugin", []))[0]),
327
+ set: (values) => write({ entity_type: "plugin" }, values),
328
+ },
329
+ });
330
+ }
298
331
  get installation() {
299
332
  return this.grant.installation;
300
333
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}