@forumone/throughline 2.4.0 → 2.5.0-pr-320-1785374

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.
Files changed (47) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/authoring/descriptors.d.ts +1 -1
  3. package/dist/authoring/descriptors.js +1 -1
  4. package/dist/authoring/descriptors.js.map +1 -1
  5. package/dist/authoring/prompts.d.ts.map +1 -1
  6. package/dist/authoring/prompts.js +5 -0
  7. package/dist/authoring/prompts.js.map +1 -1
  8. package/dist/content/blocks.d.ts.map +1 -1
  9. package/dist/content/blocks.js +18 -4
  10. package/dist/content/blocks.js.map +1 -1
  11. package/dist/content/images.d.ts +66 -0
  12. package/dist/content/images.d.ts.map +1 -0
  13. package/dist/content/images.js +234 -0
  14. package/dist/content/images.js.map +1 -0
  15. package/dist/content/options.d.ts +12 -0
  16. package/dist/content/options.d.ts.map +1 -1
  17. package/dist/content/plugin.d.ts.map +1 -1
  18. package/dist/content/plugin.js +43 -0
  19. package/dist/content/plugin.js.map +1 -1
  20. package/dist/content/tools.d.ts +7 -0
  21. package/dist/content/tools.d.ts.map +1 -1
  22. package/dist/content/tools.js +14 -0
  23. package/dist/content/tools.js.map +1 -1
  24. package/dist/content/values.d.ts +8 -0
  25. package/dist/content/values.d.ts.map +1 -1
  26. package/dist/content/values.js +27 -1
  27. package/dist/content/values.js.map +1 -1
  28. package/dist/content/write.d.ts +8 -0
  29. package/dist/content/write.d.ts.map +1 -1
  30. package/dist/content/write.js +38 -5
  31. package/dist/content/write.js.map +1 -1
  32. package/dist/mcp/payload-mcp.js +2 -2
  33. package/dist/mcp/payload-mcp.js.map +1 -1
  34. package/dist/publishing/options.d.ts +10 -0
  35. package/dist/publishing/options.d.ts.map +1 -1
  36. package/dist/publishing/options.js.map +1 -1
  37. package/dist/publishing/pipeline/index.d.ts.map +1 -1
  38. package/dist/publishing/pipeline/index.js +2 -0
  39. package/dist/publishing/pipeline/index.js.map +1 -1
  40. package/dist/publishing/pipeline/steps/placeholder-images.d.ts +11 -0
  41. package/dist/publishing/pipeline/steps/placeholder-images.d.ts.map +1 -0
  42. package/dist/publishing/pipeline/steps/placeholder-images.js +106 -0
  43. package/dist/publishing/pipeline/steps/placeholder-images.js.map +1 -0
  44. package/dist/throughline.d.ts.map +1 -1
  45. package/dist/throughline.js +3 -0
  46. package/dist/throughline.js.map +1 -1
  47. package/package.json +3 -3
package/CHANGELOG.md CHANGED
@@ -1,5 +1,22 @@
1
1
  # @forumone/throughline
2
2
 
3
+ ## 2.5.0-pr-320-1785374
4
+
5
+ ### Minor Changes
6
+
7
+ - 1785374: An agent can fill an image slot it has no image for (forumone-2026#845).
8
+
9
+ - **Three new image values.** Wherever `save_draft`, `edit_blocks`, `create_draft`, `update_draft` or the block tools take an image, they also take `{ importUrl, alt }` (fetch a public image), `{ file: { base64, filename }, alt }` (upload a file the agent can read) or `{ placeholder: { alt, label } }` (a generated PLACEHOLDER image).
10
+ - Each becomes a media document, created as the person, after every other check passes.
11
+ - The result lists them under `imagesCreated`.
12
+ - **`uploadUrl` in `get`.** It's the media collection's create screen, so the person can upload the image there and hand back its address. It's made absolute like `previewUrl`.
13
+ - **`placeholderImages: { collection, field? }`** (content plugin, passed on by `throughline()`) flags placeholders with a checkbox. The publishing pipeline's new `placeholder-images` step refuses a page that still uses one, naming each place. The checkbox is a migration in the host.
14
+ - **Prompts.** The authoring prompts tell the agent to offer upload, link or placeholder instead of leaving an image slot empty.
15
+
16
+ ### Patch Changes
17
+
18
+ - @forumone/throughline-design-system@2.5.0-pr-320-1785374
19
+
3
20
  ## 2.4.0
4
21
 
5
22
  ### Minor Changes
@@ -10,7 +10,7 @@ export declare const AUTHORING_TOOLS: {
10
10
  };
11
11
  readonly saveDraft: {
12
12
  readonly name: "save_draft";
13
- readonly description: "Saves a draft. Without `id` it creates one: a new document from `data`, with a slug made from the title if none is given. With `id` it changes only the fields in `data` (a group is merged, an array or blocks field is replaced) and leaves the published version alone. Never publishes. Rich text takes { markdown } or { html }. Returns the id and a preview link.";
13
+ readonly description: "Saves a draft. Without `id` it creates one: a new document from `data`, with a slug made from the title if none is given. With `id` it changes only the fields in `data` (a group is merged, an array or blocks field is replaced) and leaves the published version alone. Never publishes. Rich text takes { markdown } or { html }. An image takes a media id, or { importUrl, alt }, { file: { base64, filename }, alt } or { placeholder: { alt, label } }, which become media. Returns the id and a preview link.";
14
14
  };
15
15
  readonly editBlocks: {
16
16
  readonly name: "edit_blocks";
@@ -20,7 +20,7 @@ export const AUTHORING_TOOLS = {
20
20
  },
21
21
  saveDraft: {
22
22
  name: 'save_draft',
23
- description: 'Saves a draft. Without `id` it creates one: a new document from `data`, with a slug made from the title if none is given. With `id` it changes only the fields in `data` (a group is merged, an array or blocks field is replaced) and leaves the published version alone. Never publishes. Rich text takes { markdown } or { html }. Returns the id and a preview link.',
23
+ description: 'Saves a draft. Without `id` it creates one: a new document from `data`, with a slug made from the title if none is given. With `id` it changes only the fields in `data` (a group is merged, an array or blocks field is replaced) and leaves the published version alone. Never publishes. Rich text takes { markdown } or { html }. An image takes a media id, or { importUrl, alt }, { file: { base64, filename }, alt } or { placeholder: { alt, label } }, which become media. Returns the id and a preview link.',
24
24
  },
25
25
  editBlocks: {
26
26
  name: 'edit_blocks',
@@ -1 +1 @@
1
- {"version":3,"file":"descriptors.js","sourceRoot":"","sources":["../../src/authoring/descriptors.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;EAUE;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,WAAW,EACT,iUAAiU;KACpU;IACD,GAAG,EAAE;QACH,IAAI,EAAE,KAAK;QACX,WAAW,EACT,8XAA8X;KACjY;IACD,SAAS,EAAE;QACT,IAAI,EAAE,YAAY;QAClB,WAAW,EACT,0WAA0W;KAC7W;IACD,UAAU,EAAE;QACV,IAAI,EAAE,aAAa;QACnB,WAAW,EACT,kYAAkY;KACrY;IACD,KAAK,EAAE;QACL,IAAI,EAAE,OAAO;QACb,WAAW,EACT,mQAAmQ;KACtQ;IACD,OAAO,EAAE;QACP,IAAI,EAAE,SAAS;QACf,WAAW,EACT,4gBAA4gB;KAC/gB;IACD,WAAW,EAAE;QACX,IAAI,EAAE,cAAc;QACpB,WAAW,EACT,2WAA2W;KAC9W;IACD,cAAc,EAAE;QACd,IAAI,EAAE,iBAAiB;QACvB,WAAW,EACT,uVAAuV;KAC1V;CACmD,CAAA;AAEtD,MAAM,CAAC,MAAM,0BAA0B,GACrC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAA;AAEhC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAsB;IAC/C,QAAQ;IACR,aAAa;IACb,oBAAoB;IACpB,kBAAkB;IAClB,uBAAuB;IACvB,qBAAqB;IACrB,eAAe;IACf,mBAAmB;IACnB,wBAAwB;IACxB,cAAc;IACd,kBAAkB;IAClB,wBAAwB;IACxB,gBAAgB;IAChB,mBAAmB;IACnB,mCAAmC;IACnC,qBAAqB;IACrB,qBAAqB;IACrB,wBAAwB;IACxB,kBAAkB;IAClB,sBAAsB;IACtB,sBAAsB;IACtB,gCAAgC;IAChC,aAAa;IACb,iBAAiB;IACjB,YAAY;CACb,CAAA"}
1
+ {"version":3,"file":"descriptors.js","sourceRoot":"","sources":["../../src/authoring/descriptors.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;EAUE;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,WAAW,EACT,iUAAiU;KACpU;IACD,GAAG,EAAE;QACH,IAAI,EAAE,KAAK;QACX,WAAW,EACT,8XAA8X;KACjY;IACD,SAAS,EAAE;QACT,IAAI,EAAE,YAAY;QAClB,WAAW,EACT,wfAAwf;KAC3f;IACD,UAAU,EAAE;QACV,IAAI,EAAE,aAAa;QACnB,WAAW,EACT,kYAAkY;KACrY;IACD,KAAK,EAAE;QACL,IAAI,EAAE,OAAO;QACb,WAAW,EACT,mQAAmQ;KACtQ;IACD,OAAO,EAAE;QACP,IAAI,EAAE,SAAS;QACf,WAAW,EACT,4gBAA4gB;KAC/gB;IACD,WAAW,EAAE;QACX,IAAI,EAAE,cAAc;QACpB,WAAW,EACT,2WAA2W;KAC9W;IACD,cAAc,EAAE;QACd,IAAI,EAAE,iBAAiB;QACvB,WAAW,EACT,uVAAuV;KAC1V;CACmD,CAAA;AAEtD,MAAM,CAAC,MAAM,0BAA0B,GACrC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAA;AAEhC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAsB;IAC/C,QAAQ;IACR,aAAa;IACb,oBAAoB;IACpB,kBAAkB;IAClB,uBAAuB;IACvB,qBAAqB;IACrB,eAAe;IACf,mBAAmB;IACnB,wBAAwB;IACxB,cAAc;IACd,kBAAkB;IAClB,wBAAwB;IACxB,gBAAgB;IAChB,mBAAmB;IACnB,mCAAmC;IACnC,qBAAqB;IACrB,qBAAqB;IACrB,wBAAwB;IACxB,kBAAkB;IAClB,sBAAsB;IACtB,sBAAsB;IACtB,gCAAgC;IAChC,aAAa;IACb,iBAAiB;IACjB,YAAY;CACb,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/authoring/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAYvB,iEAAiE;AACjE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,CAAC,CAAC,WAAW,CAAA;IACzB,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK;QAC1C,QAAQ,EAAE;YAAE,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;YAAC,OAAO,EAAE;gBAAE,IAAI,EAAE,MAAM,CAAC;gBAAC,IAAI,EAAE,MAAM,CAAA;aAAE,CAAA;SAAE,EAAE,CAAA;KACpF,CAAA;CACF;AAeD,eAAO,MAAM,iBAAiB,EAAE,gBAAgB,EA+D/C,CAAA"}
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/authoring/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAYvB,iEAAiE;AACjE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,CAAC,CAAC,WAAW,CAAA;IACzB,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK;QAC1C,QAAQ,EAAE;YAAE,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;YAAC,OAAO,EAAE;gBAAE,IAAI,EAAE,MAAM,CAAC;gBAAC,IAAI,EAAE,MAAM,CAAA;aAAE,CAAA;SAAE,EAAE,CAAA;KACpF,CAAA;CACF;AAoBD,eAAO,MAAM,iBAAiB,EAAE,gBAAgB,EA+D/C,CAAA"}
@@ -7,6 +7,11 @@ const ALWAYS = [
7
7
  'Nothing goes live without my say-so: save drafts, run `check`, show me the preview link, and ask before calling `publish`.',
8
8
  'Use only fields and blocks `get` lists for the content type, and fill each block from its contract in `design_guide`.',
9
9
  'If `check` reports blockers, fix them all, then run it again.',
10
+ /*
11
+ An empty image slot no longer publishes, and an agent with no image used to
12
+ leave it empty and say nothing. forumone-2026#845.
13
+ */
14
+ 'When a block needs an image, look for one with `find` (kind "media"). If there is none that fits, ask me rather than leave it empty, and offer three choices: I upload it (give me `uploadUrl` from `get`, then ask for the address of the saved image), I give you a link to it (use { importUrl, alt }), or you put in a placeholder ({ placeholder: { alt, label } }), which I replace before it can be published.',
10
15
  ].join(' ');
11
16
  export const AUTHORING_PROMPTS = [
12
17
  {
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/authoring/prompts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/authoring/prompts.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../src/content/blocks.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,KAAK,EAAyB,KAAK,EAAE,MAAM,SAAS,CAAA;AAC3D,OAAO,KAAK,EAAkB,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AACpF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAO5D,OAAO,EAA2B,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAe3E,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;CA0BsB,CAAA;AAEtD,eAAO,MAAM,8BAA8B,EAAE,SAAS,iBAAiB,EACnC,CAAA;AAEpC,KAAK,WAAW,GAAG,OAAO,CAAC,KAAK,EAAE;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC,CAAA;AAErD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,KAAK,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAWlF;AAqBD,yEAAyE;AACzE,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AA4BD,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOf,CAAA;AACF,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIf,CAAA;AACF,QAAA,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIb,CAAA;AACF,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGf,CAAA;AAwOF,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,gBAAgB,GACrB,iBAAiB,CAAC,OAAO,WAAW,CAAC,CAUvC;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,gBAAgB,GACrB,iBAAiB,CAAC,OAAO,WAAW,CAAC,CAUvC;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,gBAAgB,GAAG,iBAAiB,CAAC,OAAO,SAAS,CAAC,CAU/F;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,gBAAgB,GACrB,iBAAiB,CAAC,OAAO,WAAW,CAAC,CAUvC;AA6BD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAS1B,CAAA;AAEF;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,gBAAgB,GACrB,iBAAiB,CAAC,OAAO,eAAe,CAAC,CAyB3C;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,gBAAgB,GAAG,iBAAiB,EAAE,CAQnF"}
1
+ {"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../src/content/blocks.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,KAAK,EAAyB,KAAK,EAAE,MAAM,SAAS,CAAA;AAC3D,OAAO,KAAK,EAAkB,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AACpF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAQ5D,OAAO,EAAyC,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAezF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;CA0BsB,CAAA;AAEtD,eAAO,MAAM,8BAA8B,EAAE,SAAS,iBAAiB,EACnC,CAAA;AAEpC,KAAK,WAAW,GAAG,OAAO,CAAC,KAAK,EAAE;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC,CAAA;AAErD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,KAAK,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAWlF;AAqBD,yEAAyE;AACzE,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AA4BD,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOf,CAAA;AACF,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIf,CAAA;AACF,QAAA,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIb,CAAA;AACF,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGf,CAAA;AAqPF,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,gBAAgB,GACrB,iBAAiB,CAAC,OAAO,WAAW,CAAC,CAUvC;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,gBAAgB,GACrB,iBAAiB,CAAC,OAAO,WAAW,CAAC,CAUvC;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,gBAAgB,GAAG,iBAAiB,CAAC,OAAO,SAAS,CAAC,CAU/F;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,gBAAgB,GACrB,iBAAiB,CAAC,OAAO,WAAW,CAAC,CAUvC;AA6BD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAS1B,CAAA;AAEF;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,gBAAgB,GACrB,iBAAiB,CAAC,OAAO,eAAe,CAAC,CAyB3C;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,gBAAgB,GAAG,iBAAiB,EAAE,CAQnF"}
@@ -6,7 +6,7 @@ import { compositionErrors, disallowedBlocks, mergePatch } from './guards.js';
6
6
  import { blockRegistry, defaultCanUse, refusal, requestAs, unknownCollection } from './tools.js';
7
7
  import { validateBlock } from './validate.js';
8
8
  import { checkValues, valueRefusal } from './values.js';
9
- import { openForWrite, saveDraft } from './write.js';
9
+ import { createImages, openForWrite, saveDraft } from './write.js';
10
10
  /*
11
11
  One block at a time: insert, change, move or remove a block in a blocks field,
12
12
  without resending the whole layout.
@@ -174,14 +174,27 @@ async function operate(deps, ctx, input, tool, changes) {
174
174
  const registry = blockRegistry(deps.payload);
175
175
  const kept = [...touched.values()].filter((row) => rows.some((r) => r['id'] === row['id']));
176
176
  // Each new or changed block's values in the shape their fields take, converting nested rich text. #832.
177
+ const images = [];
177
178
  for (const row of kept) {
178
179
  const config = blockConfig(field, String(row['blockType']), registry);
179
180
  if (!config)
180
181
  continue;
181
- const problems = await checkValues(config.fields, row, { registry, ...(deps.blockRichText ? { blockRichText: deps.blockRichText } : {}) }, `${input.field}[${rows.findIndex((r) => r['id'] === row['id'])}]`);
182
+ const problems = await checkValues(config.fields, row, {
183
+ registry,
184
+ images,
185
+ ...(deps.blockRichText ? { blockRichText: deps.blockRichText } : {}),
186
+ }, `${input.field}[${rows.findIndex((r) => r['id'] === row['id'])}]`);
182
187
  if (problems.length > 0)
183
188
  return valueRefusal(problems);
184
189
  }
190
+ /*
191
+ Image instructions become media here, before the blocks' own validators run:
192
+ Payload's upload validator would refuse an instruction where it expects an
193
+ id. #845.
194
+ */
195
+ const made = await createImages(deps, ctx, images);
196
+ if ('error' in made)
197
+ return made;
185
198
  for (const row of kept) {
186
199
  const disallowed = await disallowedBlocks(field, [row], before, registry, req);
187
200
  if (disallowed.length > 0) {
@@ -223,9 +236,10 @@ async function operate(deps, ctx, input, tool, changes) {
223
236
  });
224
237
  if ('error' in saved)
225
238
  return saved;
239
+ const imagesCreated = made.created.length > 0 ? { imagesCreated: made.created } : {};
226
240
  return changes.length === 1
227
- ? { ...saved, field: input.field, blockId: blockIds[0] }
228
- : { ...saved, field: input.field, blockIds };
241
+ ? { ...saved, field: input.field, blockId: blockIds[0], ...imagesCreated }
242
+ : { ...saved, field: input.field, blockIds, ...imagesCreated };
229
243
  }
230
244
  function indexOf(rows, blockId) {
231
245
  return rows.findIndex((row) => row['id'] === blockId);
@@ -1 +1 @@
1
- {"version":3,"file":"blocks.js","sourceRoot":"","sources":["../../src/content/blocks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"blocks.js","sourceRoot":"","sources":["../../src/content/blocks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ import type { Payload } from 'payload';
2
+ export interface ImageRequest {
3
+ /** The object the value sits in, which is rewritten to the new media id. */
4
+ holder: Record<string, unknown>;
5
+ name: string;
6
+ path: string;
7
+ /** The upload field's collection. */
8
+ collection: string;
9
+ directive: ImageDirective;
10
+ }
11
+ export type ImageDirective = {
12
+ importUrl: string;
13
+ alt: string;
14
+ } | {
15
+ file: {
16
+ base64: string;
17
+ filename: string;
18
+ };
19
+ alt: string;
20
+ } | {
21
+ placeholder: {
22
+ alt: string;
23
+ label?: string;
24
+ };
25
+ };
26
+ /** Whether a value is one of the three instructions rather than an id. */
27
+ export declare function isImageDirective(value: unknown): boolean;
28
+ /** What an image field takes, for a refusal and for `valueShapes`. */
29
+ export declare const IMAGE_SHAPE = "the media document's id, from find with kind \"media\". Without one: { importUrl: \"https://\u2026\", alt } imports a public image; { file: { base64, filename }, alt } uploads a file you can read; { placeholder: { alt, label } } makes an obvious placeholder, which must be replaced before the page can publish. To have the person upload one, give them `uploadUrl` from get and ask for the address of the saved image: its id is the last part.";
30
+ /** The problem with an instruction, or `undefined` when it is well formed. */
31
+ export declare function imageDirectiveProblem(value: Record<string, unknown>, path: string): string | undefined;
32
+ /** HTTPS on the default port, a host name rather than an address on this network. */
33
+ export declare function isPublicHttpsUrl(value: string): boolean;
34
+ export type FetchLike = (url: string, init: RequestInit) => Promise<Response>;
35
+ /**
36
+ * The placeholder's picture: unmistakably not a real image at any size. Gray,
37
+ * hatched, the word PLACEHOLDER and what the real image is meant to show.
38
+ */
39
+ export declare function placeholderSvg(label: string, width?: number, height?: number): string;
40
+ export interface MaterializeOptions {
41
+ /** The person the write runs as; the upload is theirs, under the media collection's access. */
42
+ user: Record<string, unknown> | undefined;
43
+ /** The field that marks a placeholder, on the collections it is configured for. */
44
+ placeholders?: {
45
+ collection: string;
46
+ field: string;
47
+ } | undefined;
48
+ fetch?: FetchLike;
49
+ }
50
+ export interface CreatedImage {
51
+ path: string;
52
+ id: number | string;
53
+ kind: 'import' | 'file' | 'placeholder';
54
+ }
55
+ /**
56
+ * Turns each instruction into a media document and puts its id where the
57
+ * instruction was. Stops at the first that fails; the images already made stay
58
+ * in the library, named in the refusal so the agent can use them.
59
+ */
60
+ export declare function materializeImages(payload: Payload, requests: readonly ImageRequest[], options: MaterializeOptions): Promise<{
61
+ created: CreatedImage[];
62
+ } | {
63
+ error: string;
64
+ created: CreatedImage[];
65
+ }>;
66
+ //# sourceMappingURL=images.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"images.d.ts","sourceRoot":"","sources":["../../src/content/images.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AA4BtC,MAAM,WAAW,YAAY;IAC3B,4EAA4E;IAC5E,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,qCAAqC;IACrC,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,cAAc,CAAA;CAC1B;AAED,MAAM,MAAM,cAAc,GACtB;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAC3D;IAAE,WAAW,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAA;AASpD,0EAA0E;AAC1E,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAExD;AAED,sEAAsE;AACtE,eAAO,MAAM,WAAW,8bAC6Z,CAAA;AAKrb,8EAA8E;AAC9E,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,IAAI,EAAE,MAAM,GACX,MAAM,GAAG,SAAS,CA2BpB;AAED,qFAAqF;AACrF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAavD;AAED,MAAM,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;AA+F7E;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,SAAO,EAAE,MAAM,SAAM,GAAG,MAAM,CAShF;AA2BD,MAAM,WAAW,kBAAkB;IACjC,+FAA+F;IAC/F,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;IACzC,mFAAmF;IACnF,YAAY,CAAC,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAA;IAChE,KAAK,CAAC,EAAE,SAAS,CAAA;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,aAAa,CAAA;CACxC;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,SAAS,YAAY,EAAE,EACjC,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC;IAAE,OAAO,EAAE,YAAY,EAAE,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,YAAY,EAAE,CAAA;CAAE,CAAC,CAsDnF"}
@@ -0,0 +1,234 @@
1
+ const MAX_BYTES = 15 * 1024 * 1024;
2
+ const FETCH_TIMEOUT_MS = 15_000;
3
+ function isObject(value) {
4
+ return Boolean(value) && typeof value === 'object' && !Array.isArray(value);
5
+ }
6
+ /** Whether a value is one of the three instructions rather than an id. */
7
+ export function isImageDirective(value) {
8
+ return isObject(value) && ('importUrl' in value || 'file' in value || 'placeholder' in value);
9
+ }
10
+ /** What an image field takes, for a refusal and for `valueShapes`. */
11
+ export const IMAGE_SHAPE = 'the media document\'s id, from find with kind "media". Without one: { importUrl: "https://…", alt } imports a public image; { file: { base64, filename }, alt } uploads a file you can read; { placeholder: { alt, label } } makes an obvious placeholder, which must be replaced before the page can publish. To have the person upload one, give them `uploadUrl` from get and ask for the address of the saved image: its id is the last part.';
12
+ const nonEmpty = (value) => typeof value === 'string' && value.trim() !== '';
13
+ /** The problem with an instruction, or `undefined` when it is well formed. */
14
+ export function imageDirectiveProblem(value, path) {
15
+ const keys = ['importUrl', 'file', 'placeholder'].filter((key) => key in value);
16
+ if (keys.length !== 1)
17
+ return `${path} takes one of importUrl, file or placeholder, not ${keys.join(' and ')}.`;
18
+ if ('placeholder' in value) {
19
+ const placeholder = value['placeholder'];
20
+ if (!isObject(placeholder) || !nonEmpty(placeholder['alt'])) {
21
+ return `${path}.placeholder takes { alt, label? }: alt says what the real image will show.`;
22
+ }
23
+ return undefined;
24
+ }
25
+ if (!nonEmpty(value['alt'])) {
26
+ return `${path} needs alt: what the image shows, for a reader who cannot see it.`;
27
+ }
28
+ if ('importUrl' in value) {
29
+ const url = value['importUrl'];
30
+ if (!nonEmpty(url) || !isPublicHttpsUrl(url)) {
31
+ return `${path}.importUrl must be a public https:// address of the image itself.`;
32
+ }
33
+ return undefined;
34
+ }
35
+ const file = value['file'];
36
+ if (!isObject(file) || !nonEmpty(file['base64']) || !nonEmpty(file['filename'])) {
37
+ return `${path}.file takes { base64, filename }.`;
38
+ }
39
+ return undefined;
40
+ }
41
+ /** HTTPS on the default port, a host name rather than an address on this network. */
42
+ export function isPublicHttpsUrl(value) {
43
+ let url;
44
+ try {
45
+ url = new URL(value);
46
+ }
47
+ catch {
48
+ return false;
49
+ }
50
+ if (url.protocol !== 'https:' || url.port !== '' || url.username || url.password)
51
+ return false;
52
+ const host = url.hostname;
53
+ if (host === 'localhost' || host.endsWith('.localhost') || host.endsWith('.internal'))
54
+ return false;
55
+ if (/^\d+(\.\d+){3}$/.test(host) || host.startsWith('['))
56
+ return false;
57
+ return host.includes('.');
58
+ }
59
+ const EXTENSIONS = {
60
+ 'image/jpeg': 'jpg',
61
+ 'image/png': 'png',
62
+ 'image/webp': 'webp',
63
+ 'image/gif': 'gif',
64
+ 'image/avif': 'avif',
65
+ 'image/svg+xml': 'svg',
66
+ };
67
+ function sniffType(data, filename) {
68
+ if (data.subarray(0, 3).equals(Buffer.from([0xff, 0xd8, 0xff])))
69
+ return 'image/jpeg';
70
+ if (data.subarray(0, 8).equals(Buffer.from([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]))) {
71
+ return 'image/png';
72
+ }
73
+ if (data.subarray(0, 4).toString('ascii') === 'RIFF' &&
74
+ data.subarray(8, 12).toString('ascii') === 'WEBP') {
75
+ return 'image/webp';
76
+ }
77
+ if (data.subarray(0, 4).toString('ascii') === 'GIF8')
78
+ return 'image/gif';
79
+ const extension = filename.toLowerCase().split('.').pop();
80
+ return Object.entries(EXTENSIONS).find(([, ext]) => ext === extension)?.[0];
81
+ }
82
+ function baseName(source) {
83
+ const last = source.split(/[\\/]/).pop() ?? 'image';
84
+ const clean = last
85
+ .split('?')[0]
86
+ .replace(/[^A-Za-z0-9._-]+/g, '-')
87
+ .replace(/^-+|-+$/g, '');
88
+ return clean || 'image';
89
+ }
90
+ async function fetchImage(url, fetchImpl) {
91
+ let response;
92
+ try {
93
+ response = await fetchImpl(url, {
94
+ redirect: 'follow',
95
+ headers: { accept: 'image/*' },
96
+ signal: AbortSignal.timeout(FETCH_TIMEOUT_MS),
97
+ });
98
+ }
99
+ catch {
100
+ return { error: `${url} could not be fetched.` };
101
+ }
102
+ if (!response.ok)
103
+ return { error: `${url} answered ${response.status}.` };
104
+ if (response.url && !isPublicHttpsUrl(response.url)) {
105
+ return { error: `${url} redirected somewhere this server will not fetch from.` };
106
+ }
107
+ const declared = Number(response.headers.get('content-length') ?? '0');
108
+ if (declared > MAX_BYTES)
109
+ return { error: `${url} is larger than 15 MB.` };
110
+ const data = Buffer.from(await response.arrayBuffer());
111
+ if (data.length > MAX_BYTES)
112
+ return { error: `${url} is larger than 15 MB.` };
113
+ const name = baseName(new URL(url).pathname);
114
+ const mimetype = sniffType(data, name);
115
+ if (!mimetype)
116
+ return { error: `${url} is not an image this site takes (JPEG, PNG, WebP, GIF or AVIF).` };
117
+ const extension = EXTENSIONS[mimetype];
118
+ return {
119
+ data,
120
+ mimetype,
121
+ name: name.toLowerCase().endsWith(`.${extension}`) ? name : `${name}.${extension}`,
122
+ size: data.length,
123
+ };
124
+ }
125
+ function decodeFile(file) {
126
+ const data = Buffer.from(file.base64.replace(/^data:[^,]*,/, ''), 'base64');
127
+ if (data.length === 0)
128
+ return { error: `${file.filename} is empty, or not base64.` };
129
+ if (data.length > MAX_BYTES)
130
+ return { error: `${file.filename} is larger than 15 MB.` };
131
+ const name = baseName(file.filename);
132
+ const mimetype = sniffType(data, name);
133
+ if (!mimetype)
134
+ return {
135
+ error: `${file.filename} is not an image this site takes (JPEG, PNG, WebP, GIF or AVIF).`,
136
+ };
137
+ return { data, mimetype, name, size: data.length };
138
+ }
139
+ function escapeXml(value) {
140
+ return value.replace(/[<>&"']/g, (char) => `&#${char.charCodeAt(0)};`);
141
+ }
142
+ /**
143
+ * The placeholder's picture: unmistakably not a real image at any size. Gray,
144
+ * hatched, the word PLACEHOLDER and what the real image is meant to show.
145
+ */
146
+ export function placeholderSvg(label, width = 1600, height = 900) {
147
+ const short = label.length > 70 ? `${label.slice(0, 67)}…` : label;
148
+ return `<svg xmlns="http://www.w3.org/2000/svg" width="${width}" height="${height}" viewBox="0 0 ${width} ${height}">
149
+ <defs><pattern id="h" width="40" height="40" patternUnits="userSpaceOnUse" patternTransform="rotate(45)"><rect width="40" height="40" fill="#d9d9d9"/><rect width="20" height="40" fill="#cfcfcf"/></pattern></defs>
150
+ <rect width="100%" height="100%" fill="url(#h)"/>
151
+ <rect x="${width * 0.1}" y="${height * 0.32}" width="${width * 0.8}" height="${height * 0.36}" fill="#ffffff" stroke="#333333" stroke-width="6" stroke-dasharray="24 16"/>
152
+ <text x="50%" y="${height * 0.48}" text-anchor="middle" font-family="Helvetica, Arial, sans-serif" font-size="${Math.round(height * 0.09)}" font-weight="700" fill="#222222">PLACEHOLDER</text>
153
+ <text x="50%" y="${height * 0.6}" text-anchor="middle" font-family="Helvetica, Arial, sans-serif" font-size="${Math.round(height * 0.04)}" fill="#444444">${escapeXml(short)}</text>
154
+ </svg>`;
155
+ }
156
+ async function placeholderFile(payload, label) {
157
+ const sharp = payload.config.sharp;
158
+ if (typeof sharp !== 'function') {
159
+ return {
160
+ error: 'This site cannot make placeholder images: Payload has no image processor (sharp) configured.',
161
+ };
162
+ }
163
+ const data = await sharp(Buffer.from(placeholderSvg(label)))
164
+ .png()
165
+ .toBuffer();
166
+ const slug = label
167
+ .toLowerCase()
168
+ .replace(/[^a-z0-9]+/g, '-')
169
+ .replace(/^-+|-+$/g, '')
170
+ .slice(0, 40) || 'image';
171
+ return { data, mimetype: 'image/png', name: `placeholder-${slug}.png`, size: data.length };
172
+ }
173
+ /**
174
+ * Turns each instruction into a media document and puts its id where the
175
+ * instruction was. Stops at the first that fails; the images already made stay
176
+ * in the library, named in the refusal so the agent can use them.
177
+ */
178
+ export async function materializeImages(payload, requests, options) {
179
+ const created = [];
180
+ for (const request of requests) {
181
+ const directive = request.directive;
182
+ let file;
183
+ let alt;
184
+ let kind;
185
+ let placeholder = false;
186
+ if ('placeholder' in directive) {
187
+ const spec = directive['placeholder'];
188
+ if (options.placeholders?.collection !== request.collection) {
189
+ return {
190
+ error: `${request.path}: this site has not set up placeholder images for ${request.collection}.`,
191
+ created,
192
+ };
193
+ }
194
+ alt = `Placeholder: ${spec.alt}`;
195
+ file = await placeholderFile(payload, spec.label ?? spec.alt);
196
+ kind = 'placeholder';
197
+ placeholder = true;
198
+ }
199
+ else if ('importUrl' in directive) {
200
+ alt = String(directive['alt']);
201
+ file = await fetchImage(String(directive['importUrl']), options.fetch ?? fetch);
202
+ kind = 'import';
203
+ }
204
+ else {
205
+ alt = String(directive['alt']);
206
+ file = decodeFile(directive['file']);
207
+ kind = 'file';
208
+ }
209
+ if ('error' in file)
210
+ return { error: `${request.path}: ${file.error} Nothing was saved.`, created };
211
+ try {
212
+ const doc = await payload.create({
213
+ collection: request.collection,
214
+ data: {
215
+ alt,
216
+ ...(placeholder && options.placeholders ? { [options.placeholders.field]: true } : {}),
217
+ },
218
+ file,
219
+ ...(options.user ? { user: options.user, overrideAccess: false } : {}),
220
+ });
221
+ const id = doc.id;
222
+ request.holder[request.name] = id;
223
+ created.push({ path: request.path, id, kind });
224
+ }
225
+ catch (error) {
226
+ return {
227
+ error: `${request.path}: the image could not be saved to the library: ${error.message} Nothing was saved.`,
228
+ created,
229
+ };
230
+ }
231
+ }
232
+ return { created };
233
+ }
234
+ //# sourceMappingURL=images.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"images.js","sourceRoot":"","sources":["../../src/content/images.ts"],"names":[],"mappings":"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"}
@@ -87,5 +87,17 @@ export interface ContentPluginOptions {
87
87
  * Top-level fields keep their own converters, in `collections[slug].richText`.
88
88
  */
89
89
  blockRichText?: RichTextConverter;
90
+ /**
91
+ * The media collection an agent may make placeholder images in, and the
92
+ * checkbox that marks one (default `placeholder`, which this plugin adds to
93
+ * that collection, so a host migration follows). An image field then also
94
+ * takes `{ placeholder: { alt, label } }`. Pass the same to
95
+ * `publishingPlugin`'s `placeholderImages` so a page using one cannot
96
+ * publish; `throughline()` does. forumone-2026#845.
97
+ */
98
+ placeholderImages?: {
99
+ collection: string;
100
+ field?: string;
101
+ };
90
102
  }
91
103
  //# sourceMappingURL=options.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/content/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAa3D,MAAM,WAAW,wBAAwB;IACvC;;;;;;;;OAQG;IACH,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;IACzB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACjC,+FAA+F;IAC/F,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACnC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAA;CACvD;AAED,wEAAwE;AACxE,MAAM,MAAM,cAAc,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAEpE;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAC9B,MAAM,EAAE,cAAc,KACnB,OAAO,CAAC;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAAA;AAGzE,MAAM,WAAW,kBAAkB;IACjC,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAAA;IAClB,2EAA2E;IAC3E,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAC3B;;;OAGG;IACH,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAChC,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,yDAAyD;IACzD,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC,CAAA;IAC/D;;;;OAIG;IACH,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAA;IACtD,uEAAuE;IACvE,QAAQ,CAAC,EAAE,gBAAgB,CAAA;IAC3B,4EAA4E;IAC5E,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,OAAO,CAAA;IACzC;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,iBAAiB,CAAA;CAClC"}
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/content/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAa3D,MAAM,WAAW,wBAAwB;IACvC;;;;;;;;OAQG;IACH,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;IACzB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACjC,+FAA+F;IAC/F,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACnC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAA;CACvD;AAED,wEAAwE;AACxE,MAAM,MAAM,cAAc,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAEpE;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAC9B,MAAM,EAAE,cAAc,KACnB,OAAO,CAAC;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAAA;AAGzE,MAAM,WAAW,kBAAkB;IACjC,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAAA;IAClB,2EAA2E;IAC3E,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAC3B;;;OAGG;IACH,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAChC,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,yDAAyD;IACzD,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC,CAAA;IAC/D;;;;OAIG;IACH,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAA;IACtD,uEAAuE;IACvE,QAAQ,CAAC,EAAE,gBAAgB,CAAA;IAC3B,4EAA4E;IAC5E,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,OAAO,CAAA;IACzC;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,iBAAiB,CAAA;IACjC;;;;;;;OAOG;IACH,iBAAiB,CAAC,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAC3D"}
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/content/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAU,MAAM,EAAE,MAAM,SAAS,CAAA;AAG/D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAKxD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,MAAM,CA2CnE;AAOD,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,IAAI,CAAC,oBAAoB,EAAE,aAAa,GAAG,SAAS,CAAC,EAC9D,WAAW,EAAE,SAAS,IAAI,CAAC,gBAAgB,EAAE,MAAM,GAAG,QAAQ,CAAC,EAAE,GAChE,IAAI,CAsBN"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/content/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAU,MAAM,EAAE,MAAM,SAAS,CAAA;AAG/D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAKxD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,MAAM,CA4DnE;AAOD,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,IAAI,CAAC,oBAAoB,EAAE,aAAa,GAAG,SAAS,CAAC,EAC9D,WAAW,EAAE,SAAS,IAAI,CAAC,gBAAgB,EAAE,MAAM,GAAG,QAAQ,CAAC,EAAE,GAChE,IAAI,CAsBN"}