@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.
- package/dist/manifest.d.ts +2 -0
- package/dist/manifest.d.ts.map +1 -1
- package/dist/points/index.d.ts +4 -0
- package/dist/points/index.d.ts.map +1 -1
- package/dist/points/viewers.d.ts +4 -0
- package/dist/points/viewers.d.ts.map +1 -1
- package/dist/points/viewers.js +6 -2
- package/dist/points/viewers.js.map +1 -1
- package/dist/powers-diff.d.ts.map +1 -1
- package/dist/powers-diff.js +2 -1
- package/dist/powers-diff.js.map +1 -1
- package/intentic-extension.schema.json +7 -2
- package/package.json +2 -2
- package/src/points/viewers.ts +12 -2
- package/src/powers-diff.ts +4 -1
package/dist/manifest.d.ts
CHANGED
|
@@ -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;
|
package/dist/manifest.d.ts.map
CHANGED
|
@@ -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
|
|
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"}
|
package/dist/points/index.d.ts
CHANGED
|
@@ -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
|
|
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"}
|
package/dist/points/viewers.d.ts
CHANGED
|
@@ -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
|
|
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"}
|
package/dist/points/viewers.js
CHANGED
|
@@ -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;
|
|
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;
|
|
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"}
|
package/dist/powers-diff.js
CHANGED
|
@@ -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}`,
|
|
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}")`);
|
package/dist/powers-diff.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"powers-diff.js","sourceRoot":"","sources":["../src/powers-diff.ts"],"names":[],"mappings":"AAcA,MAAM,QAAQ,GAAG,CAAC,QAA2B,EAAuB,EAAE;IAClE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,kCAAkC,CAAC,CAAC;IAC5D,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,0DAA0D,CAAC,CAAC;IACrF,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,WAAW,EAAE,OAAO,IAAI,EAAE,EAAE,CAAC;QACtD,MAAM,CAAC,GAAG,CAAC,WAAW,KAAK,EAAE,EAAE,kCAAkC,KAAK,EAAE,CAAC,CAAC;IAC9E,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,WAAW,EAAE,MAAM,IAAI,EAAE,EAAE,CAAC;QACrD,MAAM,CAAC,GAAG,CAAC,UAAU,KAAK,EAAE,EAAE,sCAAsC,KAAK,EAAE,CAAC,CAAC;IACjF,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC;QACnD,MAAM,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,IAAI,CAAC,OAAO,UAAU,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QACxE,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,EAAE,EAAE,EAAE,kBAAkB,IAAI,CAAC,KAAK,wBAAwB,CAAC,CAAC;QAC9F,CAAC;IACL,CAAC;IACD,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,WAAW,EAAE,OAAO,IAAI,EAAE,EAAE,CAAC;QACvD,MAAM,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,EAAE,EAAE,EAAE,
|
|
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.
|
|
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.
|
|
35
|
+
"@intentic/base": "1.288.0",
|
|
36
36
|
"tslib": "2.8.1",
|
|
37
37
|
"zod": "4.5.4"
|
|
38
38
|
},
|
package/src/points/viewers.ts
CHANGED
|
@@ -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>;
|
package/src/powers-diff.ts
CHANGED
|
@@ -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}`,
|
|
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}")`);
|