@intentic/extension-manifest 1.287.0 → 1.288.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.
@@ -353,9 +353,11 @@ export declare const ExtensionManifestSchema: z.ZodObject<{
353
353
  extensions: z.ZodArray<z.ZodString>;
354
354
  fetch: z.ZodEnum<{
355
355
  blob: "blob";
356
+ path: "path";
356
357
  text: "text";
357
358
  url: "url";
358
359
  }>;
360
+ edit: z.ZodOptional<z.ZodBoolean>;
359
361
  }, z.core.$strip>>>;
360
362
  views: z.ZodOptional<z.ZodArray<z.ZodObject<{
361
363
  id: z.ZodString;
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA6DlC,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAIxE,eAAO,MAAM,aAAa,aAAc,IAAI,CAAC,iBAAiB,EAAE,WAAW,GAAG,MAAM,CAAC,KAAG,MAAkD,CAAC"}
1
+ {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA6DlC,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAIxE,eAAO,MAAM,aAAa,aAAc,IAAI,CAAC,iBAAiB,EAAE,WAAW,GAAG,MAAM,CAAC,KAAG,MAAkD,CAAC"}
@@ -40,9 +40,11 @@ export declare const CONTRIBUTION_POINTS: readonly [{
40
40
  extensions: z.ZodArray<z.ZodString>;
41
41
  fetch: z.ZodEnum<{
42
42
  blob: "blob";
43
+ path: "path";
43
44
  text: "text";
44
45
  url: "url";
45
46
  }>;
47
+ edit: z.ZodOptional<z.ZodBoolean>;
46
48
  }, z.core.$strip>>;
47
49
  }, {
48
50
  readonly name: "documents";
@@ -737,9 +739,11 @@ export declare const contributesSchema: z.ZodObject<{
737
739
  extensions: z.ZodArray<z.ZodString>;
738
740
  fetch: z.ZodEnum<{
739
741
  blob: "blob";
742
+ path: "path";
740
743
  text: "text";
741
744
  url: "url";
742
745
  }>;
746
+ edit: z.ZodOptional<z.ZodBoolean>;
743
747
  }, z.core.$strip>>>;
744
748
  views: z.ZodOptional<z.ZodArray<z.ZodObject<{
745
749
  id: z.ZodString;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/points/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAgBxB,cAAc,YAAY,CAAC;AAC3B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAK3B,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAciB,CAAC;AAUlD,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAE7B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/points/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAgBxB,cAAc,YAAY,CAAC;AAC3B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAK3B,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAciB,CAAC;AAUlD,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAE7B,CAAC"}
@@ -4,9 +4,11 @@ export declare const ViewerContributionSchema: z.ZodObject<{
4
4
  extensions: z.ZodArray<z.ZodString>;
5
5
  fetch: z.ZodEnum<{
6
6
  blob: "blob";
7
+ path: "path";
7
8
  text: "text";
8
9
  url: "url";
9
10
  }>;
11
+ edit: z.ZodOptional<z.ZodBoolean>;
10
12
  }, z.core.$strip>;
11
13
  export type ViewerContribution = z.infer<typeof ViewerContributionSchema>;
12
14
  export declare const viewersPoint: {
@@ -17,9 +19,11 @@ export declare const viewersPoint: {
17
19
  extensions: z.ZodArray<z.ZodString>;
18
20
  fetch: z.ZodEnum<{
19
21
  blob: "blob";
22
+ path: "path";
20
23
  text: "text";
21
24
  url: "url";
22
25
  }>;
26
+ edit: z.ZodOptional<z.ZodBoolean>;
23
27
  }, z.core.$strip>>;
24
28
  };
25
29
  //# sourceMappingURL=viewers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"viewers.d.ts","sourceRoot":"","sources":["../../src/points/viewers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,wBAAwB;;;;;;;;iBAiBnC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,eAAO,MAAM,YAAY;mBACf,SAAS;0BAEX,6OAA6O;;;;;;;;;;CAE/M,CAAC"}
1
+ {"version":3,"file":"viewers.d.ts","sourceRoot":"","sources":["../../src/points/viewers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,wBAAwB;;;;;;;;;;iBA2BnC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,eAAO,MAAM,YAAY;mBACf,SAAS;0BAEX,6OAA6O;;;;;;;;;;;;CAE/M,CAAC"}
@@ -6,8 +6,12 @@ export const ViewerContributionSchema = z.object({
6
6
  .min(1)
7
7
  .describe('Bare file extensions, no dot: e.g. ["docx", "xlsx"].'),
8
8
  fetch: z
9
- .enum(["text", "blob", "url"])
10
- .describe("How much of the file the host hands you. `text` for a format that is text (svg, a subtitle track). `blob` for one that must be parsed end to end before any of it shows (a .docx, a spreadsheet), bounded by the daemon's raw-read cap. `url` for anything range-read rather than parsed (audio, video): your component gets a streaming URL to point an element at, never the bytes."),
9
+ .enum(["text", "blob", "url", "path"])
10
+ .describe("How much of the file the host hands you. `text` for a format that is text (svg, a subtitle track). `blob` for one that must be parsed end to end before any of it shows (a .docx, a spreadsheet), bounded by the daemon's raw-read cap. `url` for anything range-read rather than parsed (audio, video): your component gets a streaming URL to point an element at, never the bytes. `path` for a viewer whose own backend reads and writes the file: you get the workspace path and the scope it is viewed in, nothing else."),
11
+ edit: z
12
+ .boolean()
13
+ .optional()
14
+ .describe("Whether this viewer writes the file back. An editing viewer is chosen over a render-only viewer claiming the same extension, whatever order the two activated in."),
11
15
  });
12
16
  export const viewersPoint = {
13
17
  name: "viewers",
@@ -1 +1 @@
1
- {"version":3,"file":"viewers.js","sourceRoot":"","sources":["../../src/points/viewers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,sBAAsB,CAAC;IAC5C,UAAU,EAAE,CAAC;SACR,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;SACtC,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CAAC,sDAAsD,CAAC;IAOrE,KAAK,EAAE,CAAC;SACH,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;SAC7B,QAAQ,CACL,uXAAuX,CAC1X;CACR,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,YAAY,GAAG;IACxB,IAAI,EAAE,SAAS;IACf,WAAW,EACP,6OAA6O;IACjP,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,wBAAwB,CAAC;CACP,CAAC"}
1
+ {"version":3,"file":"viewers.js","sourceRoot":"","sources":["../../src/points/viewers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,sBAAsB,CAAC;IAC5C,UAAU,EAAE,CAAC;SACR,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;SACtC,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CAAC,sDAAsD,CAAC;IASrE,KAAK,EAAE,CAAC;SACH,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;SACrC,QAAQ,CACL,ggBAAggB,CACngB;IAGL,IAAI,EAAE,CAAC;SACF,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CACL,mKAAmK,CACtK;CACR,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,YAAY,GAAG;IACxB,IAAI,EAAE,SAAS;IACf,WAAW,EACP,6OAA6O;IACjP,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,wBAAwB,CAAC;CACP,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"powers-diff.d.ts","sourceRoot":"","sources":["../src/powers-diff.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAOvD,MAAM,WAAW,UAAU;IAEvB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;CAChC;AAiED,eAAO,MAAM,UAAU,WAAY,iBAAiB,GAAG,SAAS,SAAS,iBAAiB,KAAG,UAe5F,CAAC"}
1
+ {"version":3,"file":"powers-diff.d.ts","sourceRoot":"","sources":["../src/powers-diff.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAOvD,MAAM,WAAW,UAAU;IAEvB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;CAChC;AAoED,eAAO,MAAM,UAAU,WAAY,iBAAiB,GAAG,SAAS,SAAS,iBAAiB,KAAG,UAe5F,CAAC"}
@@ -1,3 +1,4 @@
1
+ const viewerPower = (viewer) => `${viewer.edit === true ? "opens and edits" : "opens"} .${viewer.extensions.join(", .")} files (${viewer.fetch})`;
1
2
  const powersOf = (manifest) => {
2
3
  const powers = new Map();
3
4
  if (manifest.entry !== undefined) {
@@ -19,7 +20,7 @@ const powersOf = (manifest) => {
19
20
  }
20
21
  }
21
22
  for (const viewer of manifest.contributes?.viewers ?? []) {
22
- powers.set(`viewer:${viewer.id}`, `opens .${viewer.extensions.join(", .")} files (${viewer.fetch})`);
23
+ powers.set(`viewer:${viewer.id}`, viewerPower(viewer));
23
24
  }
24
25
  for (const document of manifest.contributes?.documents ?? []) {
25
26
  powers.set(`document:${document.id}`, `marks workspace directories ("${document.label}")`);
@@ -1 +1 @@
1
- {"version":3,"file":"powers-diff.js","sourceRoot":"","sources":["../src/powers-diff.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"powers-diff.js","sourceRoot":"","sources":["../src/powers-diff.ts"],"names":[],"mappings":"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"}
@@ -173,9 +173,14 @@
173
173
  "enum": [
174
174
  "text",
175
175
  "blob",
176
- "url"
176
+ "url",
177
+ "path"
177
178
  ],
178
- "description": "How much of the file the host hands you. `text` for a format that is text (svg, a subtitle track). `blob` for one that must be parsed end to end before any of it shows (a .docx, a spreadsheet), bounded by the daemon's raw-read cap. `url` for anything range-read rather than parsed (audio, video): your component gets a streaming URL to point an element at, never the bytes."
179
+ "description": "How much of the file the host hands you. `text` for a format that is text (svg, a subtitle track). `blob` for one that must be parsed end to end before any of it shows (a .docx, a spreadsheet), bounded by the daemon's raw-read cap. `url` for anything range-read rather than parsed (audio, video): your component gets a streaming URL to point an element at, never the bytes. `path` for a viewer whose own backend reads and writes the file: you get the workspace path and the scope it is viewed in, nothing else."
180
+ },
181
+ "edit": {
182
+ "description": "Whether this viewer writes the file back. An editing viewer is chosen over a render-only viewer claiming the same extension, whatever order the two activated in.",
183
+ "type": "boolean"
179
184
  }
180
185
  },
181
186
  "required": [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@intentic/extension-manifest",
3
- "version": "1.287.0",
3
+ "version": "1.288.0",
4
4
  "description": "What an intentic extension DECLARES, the intentic-extension.json schema and the sandbox-route allowlist rule",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -32,7 +32,7 @@
32
32
  }
33
33
  },
34
34
  "dependencies": {
35
- "@intentic/base": "1.287.0",
35
+ "@intentic/base": "1.288.0",
36
36
  "tslib": "2.8.1",
37
37
  "zod": "4.5.4"
38
38
  },
@@ -16,10 +16,20 @@ export const ViewerContributionSchema = z.object({
16
16
  // the daemon's raw-read cap.
17
17
  // url - a streaming URL the component points an element at, for anything range-read rather than parsed (audio,
18
18
  // video); the host mints the credential and keeps it out of the extension.
19
+ // path - nothing but the path (and the scope it is viewed in): the viewer reaches the file through its own backend,
20
+ // which is how an editor served by a separate process (a document server) gets to read and write it.
19
21
  fetch: z
20
- .enum(["text", "blob", "url"])
22
+ .enum(["text", "blob", "url", "path"])
21
23
  .describe(
22
- "How much of the file the host hands you. `text` for a format that is text (svg, a subtitle track). `blob` for one that must be parsed end to end before any of it shows (a .docx, a spreadsheet), bounded by the daemon's raw-read cap. `url` for anything range-read rather than parsed (audio, video): your component gets a streaming URL to point an element at, never the bytes.",
24
+ "How much of the file the host hands you. `text` for a format that is text (svg, a subtitle track). `blob` for one that must be parsed end to end before any of it shows (a .docx, a spreadsheet), bounded by the daemon's raw-read cap. `url` for anything range-read rather than parsed (audio, video): your component gets a streaming URL to point an element at, never the bytes. `path` for a viewer whose own backend reads and writes the file: you get the workspace path and the scope it is viewed in, nothing else.",
25
+ ),
26
+ // An editing viewer outranks a render-only one claiming the same extension; among equals the later registration
27
+ // wins. Declared, not timed: activation order is not stable across extensions.
28
+ edit: z
29
+ .boolean()
30
+ .optional()
31
+ .describe(
32
+ "Whether this viewer writes the file back. An editing viewer is chosen over a render-only viewer claiming the same extension, whatever order the two activated in.",
23
33
  ),
24
34
  });
25
35
  export type ViewerContribution = z.infer<typeof ViewerContributionSchema>;
@@ -12,6 +12,9 @@ export interface PowersDiff {
12
12
  readonly unchanged: string[];
13
13
  }
14
14
 
15
+ const viewerPower = (viewer: { edit?: boolean | undefined; extensions: readonly string[]; fetch: string }): string =>
16
+ `${viewer.edit === true ? "opens and edits" : "opens"} .${viewer.extensions.join(", .")} files (${viewer.fetch})`;
17
+
15
18
  const powersOf = (manifest: ExtensionManifest): Map<string, string> => {
16
19
  const powers = new Map<string, string>();
17
20
  if (manifest.entry !== undefined) {
@@ -33,7 +36,7 @@ const powersOf = (manifest: ExtensionManifest): Map<string, string> => {
33
36
  }
34
37
  }
35
38
  for (const viewer of manifest.contributes?.viewers ?? []) {
36
- powers.set(`viewer:${viewer.id}`, `opens .${viewer.extensions.join(", .")} files (${viewer.fetch})`);
39
+ powers.set(`viewer:${viewer.id}`, viewerPower(viewer));
37
40
  }
38
41
  for (const document of manifest.contributes?.documents ?? []) {
39
42
  powers.set(`document:${document.id}`, `marks workspace directories ("${document.label}")`);