@intentic/extension-manifest 1.336.0 → 1.338.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 +10 -0
- package/dist/bundle.d.ts +12 -1
- package/dist/bundle.d.ts.map +1 -1
- package/dist/bundle.js +82 -21
- package/dist/bundle.js.map +1 -1
- package/dist/manifest.d.ts +8 -0
- package/dist/manifest.d.ts.map +1 -1
- package/dist/points/capabilities.d.ts +16 -0
- package/dist/points/capabilities.d.ts.map +1 -1
- package/dist/points/capabilities.js +30 -0
- package/dist/points/capabilities.js.map +1 -1
- package/dist/points/index.d.ts +16 -0
- package/dist/points/index.d.ts.map +1 -1
- package/intentic-extension.schema.json +48 -0
- package/package.json +2 -2
- package/src/bundle.test.ts +60 -1
- package/src/bundle.ts +130 -28
- package/src/points/capabilities.ts +41 -0
package/README.md
CHANGED
|
@@ -16,6 +16,10 @@ flowchart LR
|
|
|
16
16
|
- The runtime parse is lenient and the authoring schema strict, since an unknown key in an author's file is a typo.
|
|
17
17
|
The generated schema is committed twice, here and in the site's `public/` behind `MANIFEST_SCHEMA_URL`, and the
|
|
18
18
|
editor's `manifest-schema.test.ts` fails when either copy is stale.
|
|
19
|
+
- A cli card whose credential is a delegated OAuth sign-in declares `refreshToken` (the secret field it lives in and
|
|
20
|
+
the fields it is bound to), so its own CLI and listener can store a new or rotated token through the daemon's
|
|
21
|
+
write-only oauth-token route instead of printing it for someone to paste, and `probe.oauth`, which trades the token
|
|
22
|
+
for an access token before the card's connection test (Microsoft's identity platform only, today).
|
|
19
23
|
- `sandboxRouteAllowed` is the permission rule: an entry is `"<METHOD> <path-glob>"`, and each `*` stands alone
|
|
20
24
|
between slashes and matches one whole path segment, never a `.` or `..` the URL would resolve away. A malformed entry
|
|
21
25
|
(`**`, a `*` inside a segment, an unknown method, a relative path) fails the manifest parse rather than the first
|
|
@@ -35,6 +39,12 @@ flowchart LR
|
|
|
35
39
|
- `HOST_PUBLISHED_SPECIFIERS` lists the only bare imports a published bundle may use: the modules the shell's import
|
|
36
40
|
map provides. `bundleProblem` finds a bundle's imports with a small tokenizer rather than a line regex, since a
|
|
37
41
|
minified bundle puts them all on one line and a string or comment may spell the word.
|
|
42
|
+
- The same reading names what each static import takes (`bundleImportedNames`: `RepoRail` of
|
|
43
|
+
`import { RepoRail as e }`, `default` of a default import). `missingImports` compares that with what a host's modules
|
|
44
|
+
export, which the caller hands in, and `bundleProblem` says it in words when given them. The editor's loader runs it
|
|
45
|
+
before linking a bundle, over only the imports at the bundle's head (`leading`), where a bundler puts them all. That
|
|
46
|
+
takes a fraction of a millisecond where reading a 700 KB bundle whole took about 20 (2026-10-15), and an import it
|
|
47
|
+
does not reach fails to link as it would have.
|
|
38
48
|
|
|
39
49
|
## Key files
|
|
40
50
|
|
package/dist/bundle.d.ts
CHANGED
|
@@ -1,4 +1,15 @@
|
|
|
1
1
|
export declare const HOST_PUBLISHED_SPECIFIERS: readonly ["vue", "@intentic/extension-api", "@intentic/extension-ui", "@tanstack/vue-query"];
|
|
2
2
|
export declare const bundleSpecifiers: (source: string) => string[];
|
|
3
|
-
export
|
|
3
|
+
export type HostExports = Readonly<Partial<Record<string, readonly string[]>>>;
|
|
4
|
+
export interface MissingImport {
|
|
5
|
+
readonly specifier: string;
|
|
6
|
+
readonly names: readonly string[];
|
|
7
|
+
}
|
|
8
|
+
export declare const bundleImportedNames: (source: string, options?: {
|
|
9
|
+
readonly leading?: boolean;
|
|
10
|
+
}) => Map<string, string[]>;
|
|
11
|
+
export declare const missingImports: (source: string, host: HostExports, options?: {
|
|
12
|
+
readonly leading?: boolean;
|
|
13
|
+
}) => MissingImport[];
|
|
14
|
+
export declare const bundleProblem: (source: string, host?: HostExports) => string | undefined;
|
|
4
15
|
//# sourceMappingURL=bundle.d.ts.map
|
package/dist/bundle.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../src/bundle.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,yBAAyB,YAAI,KAAK,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,qBAAqB,CAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../src/bundle.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,yBAAyB,YAAI,KAAK,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,qBAAqB,CAAU,CAAC;AAmWtI,eAAO,MAAM,gBAAgB,WAAY,MAAM,KAAG,MAAM,EAAwC,CAAC;AAIjG,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;AAG/E,MAAM,WAAW,aAAa;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAMD,eAAO,MAAM,mBAAmB,WAAY,MAAM,YAAW;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,KAAQ,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CACP,CAAC;AAIjH,eAAO,MAAM,cAAc,WAAY,MAAM,QAAQ,WAAW,YAAW;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,KAAQ,aAAa,EASxH,CAAC;AAIP,eAAO,MAAM,aAAa,WAAY,MAAM,SAAS,WAAW,KAAG,MAAM,GAAG,SAiB3E,CAAC"}
|
package/dist/bundle.js
CHANGED
|
@@ -146,28 +146,71 @@ const tokenize = (source, emit) => {
|
|
|
146
146
|
const lexer = { at: source.startsWith("#!") ? lineEnd(source, 0) : 0, last: undefined, braces: 0, holes: [] };
|
|
147
147
|
for (skipTrivia(source, lexer); lexer.at < source.length; skipTrivia(source, lexer)) {
|
|
148
148
|
lexer.last = readToken(source, lexer);
|
|
149
|
-
emit(lexer.last)
|
|
149
|
+
if (!emit(lexer.last)) {
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
150
152
|
}
|
|
151
153
|
};
|
|
152
154
|
const isPunct = (token, text) => token.kind === "punct" && token.text === text;
|
|
153
155
|
const IDLE = { at: "idle" };
|
|
154
|
-
const
|
|
156
|
+
const clauseNames = (clause) => {
|
|
157
|
+
const names = [];
|
|
158
|
+
let depth = 0;
|
|
159
|
+
let entry = true;
|
|
160
|
+
for (const token of clause.tokens) {
|
|
161
|
+
if (isPunct(token, "{") || isPunct(token, ",")) {
|
|
162
|
+
depth += isPunct(token, "{") ? 1 : 0;
|
|
163
|
+
entry = true;
|
|
164
|
+
}
|
|
165
|
+
else if (isPunct(token, "}")) {
|
|
166
|
+
depth--;
|
|
167
|
+
entry = false;
|
|
168
|
+
}
|
|
169
|
+
else if (entry && (token.kind === "ident" || token.kind === "string")) {
|
|
170
|
+
entry = false;
|
|
171
|
+
if (depth > 0) {
|
|
172
|
+
names.push(token.kind === "string" ? token.value : token.text);
|
|
173
|
+
}
|
|
174
|
+
else if (clause.keyword === "import") {
|
|
175
|
+
names.push("default");
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
else {
|
|
179
|
+
entry = false;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
return names;
|
|
183
|
+
};
|
|
184
|
+
const record = (found, specifier, clause) => {
|
|
185
|
+
found.specifiers.add(specifier);
|
|
186
|
+
if (clause === undefined) {
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
const names = found.names.get(specifier) ?? new Set();
|
|
190
|
+
for (const name of clauseNames(clause)) {
|
|
191
|
+
names.add(name);
|
|
192
|
+
}
|
|
193
|
+
found.names.set(specifier, names);
|
|
194
|
+
};
|
|
195
|
+
const clauseNext = (depth, closed, clause, token) => {
|
|
155
196
|
if (depth === 0 && token.kind === "ident" && token.text === "from") {
|
|
156
|
-
return { at: "from" };
|
|
197
|
+
return { at: "from", clause };
|
|
157
198
|
}
|
|
158
199
|
if (closed) {
|
|
159
200
|
return undefined;
|
|
160
201
|
}
|
|
202
|
+
const next = { ...clause, tokens: [...clause.tokens, token] };
|
|
161
203
|
if (isPunct(token, "{")) {
|
|
162
|
-
return { at: "clause", depth: depth + 1, closed: false };
|
|
204
|
+
return { at: "clause", depth: depth + 1, closed: false, clause: next };
|
|
163
205
|
}
|
|
164
206
|
if (isPunct(token, "}") && depth > 0) {
|
|
165
|
-
return { at: "clause", depth: depth - 1, closed: depth === 1 };
|
|
207
|
+
return { at: "clause", depth: depth - 1, closed: depth === 1, clause: next };
|
|
166
208
|
}
|
|
167
209
|
const bindingPart = token.kind === "ident" || token.kind === "string" || isPunct(token, ",") || isPunct(token, "*");
|
|
168
|
-
return bindingPart ? { at: "clause", depth, closed } : undefined;
|
|
210
|
+
return bindingPart ? { at: "clause", depth, closed, clause: next } : undefined;
|
|
169
211
|
};
|
|
170
212
|
const literalOf = (token) => (token.kind === "string" || token.kind === "template" ? token.value : undefined);
|
|
213
|
+
const FROM = { kind: "ident", text: "from" };
|
|
171
214
|
const transition = (state, token, found) => {
|
|
172
215
|
switch (state.at) {
|
|
173
216
|
case "idle":
|
|
@@ -177,48 +220,61 @@ const transition = (state, token, found) => {
|
|
|
177
220
|
return { at: "dynamic" };
|
|
178
221
|
}
|
|
179
222
|
if (token.kind === "string") {
|
|
180
|
-
found
|
|
223
|
+
record(found, token.value);
|
|
181
224
|
return IDLE;
|
|
182
225
|
}
|
|
183
|
-
return clauseNext(0, false, token);
|
|
226
|
+
return clauseNext(0, false, { keyword: "import", tokens: [] }, token);
|
|
184
227
|
case "export":
|
|
185
|
-
return isPunct(token, "*") || isPunct(token, "{") ? clauseNext(0, false, token) : undefined;
|
|
228
|
+
return isPunct(token, "*") || isPunct(token, "{") ? clauseNext(0, false, { keyword: "export", tokens: [] }, token) : undefined;
|
|
186
229
|
case "dynamic": {
|
|
187
230
|
const value = literalOf(token);
|
|
188
231
|
return value === undefined ? undefined : { at: "argument", value };
|
|
189
232
|
}
|
|
190
233
|
case "argument":
|
|
191
234
|
if (isPunct(token, ")") || isPunct(token, ",")) {
|
|
192
|
-
found
|
|
235
|
+
record(found, state.value);
|
|
193
236
|
}
|
|
194
237
|
return undefined;
|
|
195
238
|
case "from":
|
|
196
239
|
if (token.kind === "string") {
|
|
197
|
-
found
|
|
240
|
+
record(found, token.value, state.clause);
|
|
198
241
|
return IDLE;
|
|
199
242
|
}
|
|
200
|
-
return clauseNext(0, false, token);
|
|
243
|
+
return clauseNext(0, false, { ...state.clause, tokens: [...state.clause.tokens, FROM] }, token);
|
|
201
244
|
case "clause":
|
|
202
|
-
return clauseNext(state.depth, state.closed, token);
|
|
245
|
+
return clauseNext(state.depth, state.closed, state.clause, token);
|
|
203
246
|
}
|
|
204
247
|
};
|
|
205
|
-
const specifierReader = (found) => {
|
|
248
|
+
const specifierReader = (found, leading) => {
|
|
206
249
|
let state = IDLE;
|
|
207
250
|
let previous;
|
|
208
251
|
return (token) => {
|
|
209
252
|
const member = previous !== undefined && (isPunct(previous, ".") || isPunct(previous, "?."));
|
|
210
253
|
previous = token;
|
|
211
|
-
if (
|
|
212
|
-
|
|
254
|
+
if (member) {
|
|
255
|
+
return true;
|
|
213
256
|
}
|
|
257
|
+
state = transition(state, token, found) ?? transition(IDLE, token, found) ?? IDLE;
|
|
258
|
+
return !leading || state.at !== "idle" || isPunct(token, ";") || token.kind === "string";
|
|
214
259
|
};
|
|
215
260
|
};
|
|
216
|
-
|
|
217
|
-
const found = new Set();
|
|
218
|
-
tokenize(source, specifierReader(found));
|
|
219
|
-
return
|
|
261
|
+
const readBundle = (source, leading = false) => {
|
|
262
|
+
const found = { specifiers: new Set(), names: new Map() };
|
|
263
|
+
tokenize(source, specifierReader(found, leading));
|
|
264
|
+
return found;
|
|
220
265
|
};
|
|
221
|
-
export const
|
|
266
|
+
export const bundleSpecifiers = (source) => [...readBundle(source).specifiers];
|
|
267
|
+
export const bundleImportedNames = (source, options = {}) => new Map([...readBundle(source, options.leading).names].map(([specifier, names]) => [specifier, [...names]]));
|
|
268
|
+
export const missingImports = (source, host, options = {}) => [...bundleImportedNames(source, options)].flatMap(([specifier, names]) => {
|
|
269
|
+
const exported = host[specifier];
|
|
270
|
+
if (exported === undefined) {
|
|
271
|
+
return [];
|
|
272
|
+
}
|
|
273
|
+
const has = new Set(exported);
|
|
274
|
+
const missing = names.filter((name) => !has.has(name));
|
|
275
|
+
return missing.length === 0 ? [] : [{ specifier, names: missing }];
|
|
276
|
+
});
|
|
277
|
+
export const bundleProblem = (source, host) => {
|
|
222
278
|
const specifiers = bundleSpecifiers(source);
|
|
223
279
|
const relative = specifiers.filter((specifier) => specifier.startsWith(".") || specifier.startsWith("/"));
|
|
224
280
|
if (relative.length > 0) {
|
|
@@ -229,6 +285,11 @@ export const bundleProblem = (source) => {
|
|
|
229
285
|
if (unpublished.length > 0) {
|
|
230
286
|
return `imports ${unpublished.join(", ")}, which the host does not publish, bundle it in, or use one of: ${HOST_PUBLISHED_SPECIFIERS.join(", ")}`;
|
|
231
287
|
}
|
|
288
|
+
const missing = host === undefined ? [] : missingImports(source, host);
|
|
289
|
+
if (missing.length > 0) {
|
|
290
|
+
const named = missing.map((entry) => `${entry.names.join(", ")} from ${entry.specifier}`).join("; ");
|
|
291
|
+
return `imports ${named}, which this version of the app does not export: it was built against a different version, and the extension needs updating`;
|
|
292
|
+
}
|
|
232
293
|
return undefined;
|
|
233
294
|
};
|
|
234
295
|
//# sourceMappingURL=bundle.js.map
|
package/dist/bundle.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundle.js","sourceRoot":"","sources":["../src/bundle.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bundle.js","sourceRoot":"","sources":["../src/bundle.ts"],"names":[],"mappings":"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"}
|
package/dist/manifest.d.ts
CHANGED
|
@@ -98,6 +98,10 @@ export declare const ExtensionManifestSchema: z.ZodObject<{
|
|
|
98
98
|
fragment: z.ZodOptional<z.ZodString>;
|
|
99
99
|
pack: z.ZodOptional<z.ZodString>;
|
|
100
100
|
probe: z.ZodOptional<z.ZodObject<{
|
|
101
|
+
oauth: z.ZodOptional<z.ZodObject<{
|
|
102
|
+
tokenUrl: z.ZodString;
|
|
103
|
+
form: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
104
|
+
}, z.core.$strip>>;
|
|
101
105
|
url: z.ZodString;
|
|
102
106
|
method: z.ZodOptional<z.ZodEnum<{
|
|
103
107
|
GET: "GET";
|
|
@@ -108,6 +112,10 @@ export declare const ExtensionManifestSchema: z.ZodObject<{
|
|
|
108
112
|
identity: z.ZodOptional<z.ZodString>;
|
|
109
113
|
insecure: z.ZodOptional<z.ZodBoolean>;
|
|
110
114
|
}, z.core.$strip>>;
|
|
115
|
+
refreshToken: z.ZodOptional<z.ZodObject<{
|
|
116
|
+
field: z.ZodString;
|
|
117
|
+
boundTo: z.ZodArray<z.ZodString>;
|
|
118
|
+
}, z.core.$strip>>;
|
|
111
119
|
hosts: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
112
120
|
broker: z.ZodOptional<z.ZodObject<{
|
|
113
121
|
routes: z.ZodArray<z.ZodObject<{
|
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;AAqHxB,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;AAqHxB,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAyC,CAAC;AAC9E,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"}
|
|
@@ -116,6 +116,10 @@ export declare const CapabilityContributionSchema: z.ZodDiscriminatedUnion<[z.Zo
|
|
|
116
116
|
fragment: z.ZodOptional<z.ZodString>;
|
|
117
117
|
pack: z.ZodOptional<z.ZodString>;
|
|
118
118
|
probe: z.ZodOptional<z.ZodObject<{
|
|
119
|
+
oauth: z.ZodOptional<z.ZodObject<{
|
|
120
|
+
tokenUrl: z.ZodString;
|
|
121
|
+
form: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
122
|
+
}, z.core.$strip>>;
|
|
119
123
|
url: z.ZodString;
|
|
120
124
|
method: z.ZodOptional<z.ZodEnum<{
|
|
121
125
|
GET: "GET";
|
|
@@ -126,6 +130,10 @@ export declare const CapabilityContributionSchema: z.ZodDiscriminatedUnion<[z.Zo
|
|
|
126
130
|
identity: z.ZodOptional<z.ZodString>;
|
|
127
131
|
insecure: z.ZodOptional<z.ZodBoolean>;
|
|
128
132
|
}, z.core.$strip>>;
|
|
133
|
+
refreshToken: z.ZodOptional<z.ZodObject<{
|
|
134
|
+
field: z.ZodString;
|
|
135
|
+
boundTo: z.ZodArray<z.ZodString>;
|
|
136
|
+
}, z.core.$strip>>;
|
|
129
137
|
hosts: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
130
138
|
broker: z.ZodOptional<z.ZodObject<{
|
|
131
139
|
routes: z.ZodArray<z.ZodObject<{
|
|
@@ -418,6 +426,10 @@ export declare const capabilitiesPoint: {
|
|
|
418
426
|
fragment: z.ZodOptional<z.ZodString>;
|
|
419
427
|
pack: z.ZodOptional<z.ZodString>;
|
|
420
428
|
probe: z.ZodOptional<z.ZodObject<{
|
|
429
|
+
oauth: z.ZodOptional<z.ZodObject<{
|
|
430
|
+
tokenUrl: z.ZodString;
|
|
431
|
+
form: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
432
|
+
}, z.core.$strip>>;
|
|
421
433
|
url: z.ZodString;
|
|
422
434
|
method: z.ZodOptional<z.ZodEnum<{
|
|
423
435
|
GET: "GET";
|
|
@@ -428,6 +440,10 @@ export declare const capabilitiesPoint: {
|
|
|
428
440
|
identity: z.ZodOptional<z.ZodString>;
|
|
429
441
|
insecure: z.ZodOptional<z.ZodBoolean>;
|
|
430
442
|
}, z.core.$strip>>;
|
|
443
|
+
refreshToken: z.ZodOptional<z.ZodObject<{
|
|
444
|
+
field: z.ZodString;
|
|
445
|
+
boundTo: z.ZodArray<z.ZodString>;
|
|
446
|
+
}, z.core.$strip>>;
|
|
431
447
|
hosts: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
432
448
|
broker: z.ZodOptional<z.ZodObject<{
|
|
433
449
|
routes: z.ZodArray<z.ZodObject<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../src/points/capabilities.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,EAAE,KAAK,aAAa,EAAgC,MAAM,eAAe,CAAC;AAIjF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;iBAkEhC,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAIpE,eAAO,MAAM,YAAY,UAAW,eAAe,UAAU,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KAAG,OACtB,CAAC;
|
|
1
|
+
{"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../src/points/capabilities.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,EAAE,KAAK,aAAa,EAAgC,MAAM,eAAe,CAAC;AAIjF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;iBAkEhC,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAIpE,eAAO,MAAM,YAAY,UAAW,eAAe,UAAU,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KAAG,OACtB,CAAC;AA8C5E,QAAA,MAAM,iBAAiB;;;;;;;;;;;iBA6CrB,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,gBAAgB;;;;;;;;;iBAa3B,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;iBAQvB,CAAC;AACH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AA8ClD,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAkKiE,CAAC;AAC3G,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,sBAAsB,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAYnF,eAAO,MAAM,yBAAyB,SAAU,MAAM,KAAG,MAAM,GAAG,SAA8D,CAAC;AAKjI,eAAO,MAAM,kBAAkB,kBACZ,SAAS,sBAAsB,EAAE,cACpC;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CAAE,KAC1F,sBAAsB,GAAG,SAM3B,CAAC;AAEF,eAAO,MAAM,iBAAiB;mBACpB,cAAc;0BAEhB,kYAAkY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAEpW,CAAC;AAKvC,eAAO,MAAM,6BAA6B,QAAO,WAAW,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAiB1F,CAAC;AAIF,eAAO,MAAM,qBAAqB,iBAAkB,sBAAsB,KAAG,WAAW,CAAC,aAAa,CAarG,CAAC"}
|
|
@@ -47,6 +47,18 @@ export const CapabilityFieldSchema = z.object({
|
|
|
47
47
|
});
|
|
48
48
|
export const fieldApplies = (field, values) => field.when === undefined || evaluateWhen(parseWhen(field.when), values);
|
|
49
49
|
const ProbeSchema = z.object({
|
|
50
|
+
oauth: z
|
|
51
|
+
.object({
|
|
52
|
+
tokenUrl: z
|
|
53
|
+
.string()
|
|
54
|
+
.min(1)
|
|
55
|
+
.describe("The token endpoint, templated like `url`. Only Microsoft identity platform hosts are served today."),
|
|
56
|
+
form: z
|
|
57
|
+
.record(z.string(), z.string())
|
|
58
|
+
.describe("The refresh-token grant's form fields, templated like `url`; a field that comes out empty is left out."),
|
|
59
|
+
})
|
|
60
|
+
.optional()
|
|
61
|
+
.describe("Trade the card's refresh token for an access token before the request, sent as `Authorization: Bearer`. For Microsoft's identity platform the request goes to the Graph cloud paired with the token endpoint's host, whatever host `url` names."),
|
|
50
62
|
url: z
|
|
51
63
|
.string()
|
|
52
64
|
.min(1)
|
|
@@ -171,6 +183,15 @@ export const CapabilityContributionSchema = z
|
|
|
171
183
|
.describe("A sandbox feature pack name (whisper, llamacpp, browser, …) supplying this tool. Preferred over `fragment`: an image that already bakes the pack needs no rebuild, and there is no copy to drift.")
|
|
172
184
|
.meta({ effect: "image" }),
|
|
173
185
|
probe: ProbeSchema.optional().describe("One authenticated request that tests this card's settings before they are saved, so a wrong token or an unreachable host is answered on the form rather than by a card that says 'not connected' afterwards."),
|
|
186
|
+
refreshToken: z
|
|
187
|
+
.object({
|
|
188
|
+
field: z.string().describe("The secret field the refresh token is kept in."),
|
|
189
|
+
boundTo: z
|
|
190
|
+
.array(z.string())
|
|
191
|
+
.describe("Fields a token is only good for as filled in at sign-in (tenant, client, cloud, access level); a token arriving after one of them changed is refused."),
|
|
192
|
+
})
|
|
193
|
+
.optional()
|
|
194
|
+
.describe("This card's credential is a delegated OAuth refresh token the extension's own CLI or process obtains and rotates. They store it through `POST /capabilities/{id}/oauth-token` (an extension process also needs that route in `permissions.daemon`) instead of printing it for someone to paste."),
|
|
174
195
|
hosts: z
|
|
175
196
|
.array(z.string().min(1))
|
|
176
197
|
.optional()
|
|
@@ -235,6 +256,15 @@ export const CapabilityContributionSchema = z
|
|
|
235
256
|
if (spec.kind !== "cli") {
|
|
236
257
|
return;
|
|
237
258
|
}
|
|
259
|
+
if (spec.refreshToken !== undefined) {
|
|
260
|
+
const declared = new Map(spec.fields.map((field) => [field.key, field]));
|
|
261
|
+
if (declared.get(spec.refreshToken.field)?.secret !== true) {
|
|
262
|
+
ctx.addIssue({ code: "custom", message: `refreshToken.field "${spec.refreshToken.field}" must name a secret field` });
|
|
263
|
+
}
|
|
264
|
+
for (const key of spec.refreshToken.boundTo.filter((candidate) => !declared.has(candidate) || candidate === spec.refreshToken?.field)) {
|
|
265
|
+
ctx.addIssue({ code: "custom", message: `refreshToken.boundTo names "${key}", which is not another field of this card` });
|
|
266
|
+
}
|
|
267
|
+
}
|
|
238
268
|
for (const field of spec.fields.filter((candidate) => candidate.totp === true)) {
|
|
239
269
|
if (Object.values(spec.env).some((template) => template.includes(`\${${field.key}}`) || template.includes(`\${${field.key}:uri}`))) {
|
|
240
270
|
ctx.addIssue({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../src/points/capabilities.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../src/points/capabilities.ts"],"names":[],"mappings":"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"}
|
package/dist/points/index.d.ts
CHANGED
|
@@ -164,6 +164,10 @@ export declare const CONTRIBUTION_POINTS: readonly [{
|
|
|
164
164
|
fragment: z.ZodOptional<z.ZodString>;
|
|
165
165
|
pack: z.ZodOptional<z.ZodString>;
|
|
166
166
|
probe: z.ZodOptional<z.ZodObject<{
|
|
167
|
+
oauth: z.ZodOptional<z.ZodObject<{
|
|
168
|
+
tokenUrl: z.ZodString;
|
|
169
|
+
form: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
170
|
+
}, z.core.$strip>>;
|
|
167
171
|
url: z.ZodString;
|
|
168
172
|
method: z.ZodOptional<z.ZodEnum<{
|
|
169
173
|
GET: "GET";
|
|
@@ -174,6 +178,10 @@ export declare const CONTRIBUTION_POINTS: readonly [{
|
|
|
174
178
|
identity: z.ZodOptional<z.ZodString>;
|
|
175
179
|
insecure: z.ZodOptional<z.ZodBoolean>;
|
|
176
180
|
}, z.core.$strip>>;
|
|
181
|
+
refreshToken: z.ZodOptional<z.ZodObject<{
|
|
182
|
+
field: z.ZodString;
|
|
183
|
+
boundTo: z.ZodArray<z.ZodString>;
|
|
184
|
+
}, z.core.$strip>>;
|
|
177
185
|
hosts: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
178
186
|
broker: z.ZodOptional<z.ZodObject<{
|
|
179
187
|
routes: z.ZodArray<z.ZodObject<{
|
|
@@ -572,6 +580,10 @@ export declare const contributesSchema: z.ZodObject<{
|
|
|
572
580
|
fragment: z.ZodOptional<z.ZodString>;
|
|
573
581
|
pack: z.ZodOptional<z.ZodString>;
|
|
574
582
|
probe: z.ZodOptional<z.ZodObject<{
|
|
583
|
+
oauth: z.ZodOptional<z.ZodObject<{
|
|
584
|
+
tokenUrl: z.ZodString;
|
|
585
|
+
form: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
586
|
+
}, z.core.$strip>>;
|
|
575
587
|
url: z.ZodString;
|
|
576
588
|
method: z.ZodOptional<z.ZodEnum<{
|
|
577
589
|
GET: "GET";
|
|
@@ -582,6 +594,10 @@ export declare const contributesSchema: z.ZodObject<{
|
|
|
582
594
|
identity: z.ZodOptional<z.ZodString>;
|
|
583
595
|
insecure: z.ZodOptional<z.ZodBoolean>;
|
|
584
596
|
}, z.core.$strip>>;
|
|
597
|
+
refreshToken: z.ZodOptional<z.ZodObject<{
|
|
598
|
+
field: z.ZodString;
|
|
599
|
+
boundTo: z.ZodArray<z.ZodString>;
|
|
600
|
+
}, z.core.$strip>>;
|
|
585
601
|
hosts: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
586
602
|
broker: z.ZodOptional<z.ZodObject<{
|
|
587
603
|
routes: z.ZodArray<z.ZodObject<{
|
|
@@ -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;AAkBxB,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,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,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;AAkBxB,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,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAK3B,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgBiB,CAAC;AAUlD,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAE7B,CAAC"}
|
|
@@ -684,6 +684,32 @@
|
|
|
684
684
|
"description": "One authenticated request that tests this card's settings before they are saved, so a wrong token or an unreachable host is answered on the form rather than by a card that says 'not connected' afterwards.",
|
|
685
685
|
"type": "object",
|
|
686
686
|
"properties": {
|
|
687
|
+
"oauth": {
|
|
688
|
+
"description": "Trade the card's refresh token for an access token before the request, sent as `Authorization: Bearer`. For Microsoft's identity platform the request goes to the Graph cloud paired with the token endpoint's host, whatever host `url` names.",
|
|
689
|
+
"type": "object",
|
|
690
|
+
"properties": {
|
|
691
|
+
"tokenUrl": {
|
|
692
|
+
"type": "string",
|
|
693
|
+
"minLength": 1,
|
|
694
|
+
"description": "The token endpoint, templated like `url`. Only Microsoft identity platform hosts are served today."
|
|
695
|
+
},
|
|
696
|
+
"form": {
|
|
697
|
+
"type": "object",
|
|
698
|
+
"propertyNames": {
|
|
699
|
+
"type": "string"
|
|
700
|
+
},
|
|
701
|
+
"additionalProperties": {
|
|
702
|
+
"type": "string"
|
|
703
|
+
},
|
|
704
|
+
"description": "The refresh-token grant's form fields, templated like `url`; a field that comes out empty is left out."
|
|
705
|
+
}
|
|
706
|
+
},
|
|
707
|
+
"required": [
|
|
708
|
+
"tokenUrl",
|
|
709
|
+
"form"
|
|
710
|
+
],
|
|
711
|
+
"additionalProperties": false
|
|
712
|
+
},
|
|
687
713
|
"url": {
|
|
688
714
|
"type": "string",
|
|
689
715
|
"minLength": 1,
|
|
@@ -722,6 +748,28 @@
|
|
|
722
748
|
],
|
|
723
749
|
"additionalProperties": false
|
|
724
750
|
},
|
|
751
|
+
"refreshToken": {
|
|
752
|
+
"description": "This card's credential is a delegated OAuth refresh token the extension's own CLI or process obtains and rotates. They store it through `POST /capabilities/{id}/oauth-token` (an extension process also needs that route in `permissions.daemon`) instead of printing it for someone to paste.",
|
|
753
|
+
"type": "object",
|
|
754
|
+
"properties": {
|
|
755
|
+
"field": {
|
|
756
|
+
"type": "string",
|
|
757
|
+
"description": "The secret field the refresh token is kept in."
|
|
758
|
+
},
|
|
759
|
+
"boundTo": {
|
|
760
|
+
"type": "array",
|
|
761
|
+
"items": {
|
|
762
|
+
"type": "string"
|
|
763
|
+
},
|
|
764
|
+
"description": "Fields a token is only good for as filled in at sign-in (tenant, client, cloud, access level); a token arriving after one of them changed is refused."
|
|
765
|
+
}
|
|
766
|
+
},
|
|
767
|
+
"required": [
|
|
768
|
+
"field",
|
|
769
|
+
"boundTo"
|
|
770
|
+
],
|
|
771
|
+
"additionalProperties": false
|
|
772
|
+
},
|
|
725
773
|
"hosts": {
|
|
726
774
|
"description": "The hosts this card's credential is meant for, as templates over the fields like `env` (`api.github.com`, `*.githubusercontent.com`, `${url}`); a value that comes out as a URL counts as its host. The sandbox limits the credential's `{{secret:…}}` reference to them by default, so a use aimed anywhere else asks a person first. The owner can change or lift the list on the Secrets view.",
|
|
727
775
|
"type": "array",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@intentic/extension-manifest",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.338.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",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
}
|
|
44
44
|
},
|
|
45
45
|
"dependencies": {
|
|
46
|
-
"@intentic/base": "1.
|
|
46
|
+
"@intentic/base": "1.338.0",
|
|
47
47
|
"tslib": "2.8.1",
|
|
48
48
|
"zod": "4.6.5"
|
|
49
49
|
},
|
package/src/bundle.test.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { bundleProblem, bundleSpecifiers, HOST_PUBLISHED_SPECIFIERS } from "./bundle.js";
|
|
1
|
+
import { bundleImportedNames, bundleProblem, bundleSpecifiers, HOST_PUBLISHED_SPECIFIERS, missingImports } from "./bundle.js";
|
|
2
2
|
|
|
3
3
|
// Every case is a whole bundle and the specifiers it names, in source order. The minified ones are how a bundler
|
|
4
4
|
// actually emits: no whitespace a line-anchored scan could lean on.
|
|
@@ -83,9 +83,68 @@ describe("bundleProblem", () => {
|
|
|
83
83
|
);
|
|
84
84
|
});
|
|
85
85
|
|
|
86
|
+
test("an import the host does not export is named, with what to do about it", () => {
|
|
87
|
+
const host = { "@intentic/extension-ui": ["RepoPicker"] };
|
|
88
|
+
expect(bundleProblem(`import{RepoRail as e,RepoPicker as t}from"@intentic/extension-ui";`, host)).toBe(
|
|
89
|
+
"imports RepoRail from @intentic/extension-ui, which this version of the app does not export: it was built against a different version, and the extension needs updating",
|
|
90
|
+
);
|
|
91
|
+
expect(bundleProblem(`import{RepoPicker as t}from"@intentic/extension-ui";`, host)).toBe(undefined);
|
|
92
|
+
});
|
|
93
|
+
|
|
86
94
|
test("a published package's subpath is not the package", () => {
|
|
87
95
|
expect(bundleProblem(`import{h}from"vue/dist/vue.esm-bundler.js"`)).toBe(
|
|
88
96
|
"imports vue/dist/vue.esm-bundler.js, which the host does not publish, bundle it in, or use one of: vue, @intentic/extension-api, @intentic/extension-ui, @tanstack/vue-query",
|
|
89
97
|
);
|
|
90
98
|
});
|
|
91
99
|
});
|
|
100
|
+
|
|
101
|
+
// A bundle links its static imports by name, so each name it asks of a host module is read off the clause: the
|
|
102
|
+
// module's own name, never the local alias a minifier gave it.
|
|
103
|
+
const NAMED: readonly (readonly [string, string, Record<string, string[]>])[] = [
|
|
104
|
+
[
|
|
105
|
+
"a minified named import",
|
|
106
|
+
`import{RepoRail as e,Button as t}from"@intentic/extension-ui";`,
|
|
107
|
+
{ "@intentic/extension-ui": ["RepoRail", "Button"] },
|
|
108
|
+
],
|
|
109
|
+
["a default import beside named ones", `import d,{a as b}from"z";`, { z: ["default", "a"] }],
|
|
110
|
+
["a default import named `default`", `import{default as d}from"z";`, { z: ["default"] }],
|
|
111
|
+
["a namespace import names nothing", `import*as n from"z";import d,*as m from"y";`, { z: [], y: ["default"] }],
|
|
112
|
+
["a quoted name", `import{"a-b"as c}from"q";`, { q: ["a-b"] }],
|
|
113
|
+
["bindings called from", `import from from"f";import{from}from"g";`, { f: ["default"], g: ["from"] }],
|
|
114
|
+
["a re-export names what it takes", `export{a as b,c}from"r";export*from"s";export*as t from"u";`, { r: ["a", "c"], s: [], u: [] }],
|
|
115
|
+
["one module imported twice", `import{a}from"x";import{b,a as c}from"x";`, { x: ["a", "b"] }],
|
|
116
|
+
["a side-effect or dynamic import names nothing", `import"x";const m=await import("y");`, {}],
|
|
117
|
+
];
|
|
118
|
+
|
|
119
|
+
describe("bundleImportedNames", () => {
|
|
120
|
+
test.each(NAMED)("%s", (_name, source, expected) => {
|
|
121
|
+
expect(Object.fromEntries(bundleImportedNames(source))).toEqual(expected);
|
|
122
|
+
});
|
|
123
|
+
|
|
124
|
+
test("leading reads up to the first statement that is not an import, where a bundler has put them all", () => {
|
|
125
|
+
const source = `"use strict";import{a}from"x";\nimport{b}from"y";var e=1;import{c}from"z";`;
|
|
126
|
+
expect(Object.fromEntries(bundleImportedNames(source, { leading: true }))).toEqual({ x: ["a"], y: ["b"] });
|
|
127
|
+
expect(Object.fromEntries(bundleImportedNames(source))).toEqual({ x: ["a"], y: ["b"], z: ["c"] });
|
|
128
|
+
});
|
|
129
|
+
});
|
|
130
|
+
|
|
131
|
+
describe("missingImports", () => {
|
|
132
|
+
const host = { "@intentic/extension-ui": ["Button", "RepoPicker", "RepoRail"], "@intentic/extension-api": ["sandboxPoll"] };
|
|
133
|
+
|
|
134
|
+
test("names present on the host pass", () => {
|
|
135
|
+
const source = `import{sandboxPoll as n}from"@intentic/extension-api";import{RepoRail as a,RepoPicker as b}from"@intentic/extension-ui";`;
|
|
136
|
+
expect(missingImports(source, host)).toEqual([]);
|
|
137
|
+
});
|
|
138
|
+
|
|
139
|
+
test("a name the host lacks is named with its module", () => {
|
|
140
|
+
const source = `import{Button as a,Gone as b,AlsoGone as c}from"@intentic/extension-ui";import{sandboxPoll,retired}from"@intentic/extension-api";`;
|
|
141
|
+
expect(missingImports(source, host)).toEqual([
|
|
142
|
+
{ specifier: "@intentic/extension-ui", names: ["Gone", "AlsoGone"] },
|
|
143
|
+
{ specifier: "@intentic/extension-api", names: ["retired"] },
|
|
144
|
+
]);
|
|
145
|
+
});
|
|
146
|
+
|
|
147
|
+
test("a module the host map leaves out is not judged", () => {
|
|
148
|
+
expect(missingImports(`import{whatever}from"vue";`, host)).toEqual([]);
|
|
149
|
+
});
|
|
150
|
+
});
|
package/src/bundle.ts
CHANGED
|
@@ -190,50 +190,109 @@ const readToken = (source: string, lexer: Lexer): Token => {
|
|
|
190
190
|
};
|
|
191
191
|
|
|
192
192
|
// Tokenizes an ES module just far enough to see its imports: string, template, comment and regex contents are skipped
|
|
193
|
-
// rather than read as code, and a template's `${}` holes are read as code again.
|
|
194
|
-
const tokenize = (source: string, emit: (token: Token) =>
|
|
193
|
+
// rather than read as code, and a template's `${}` holes are read as code again. Stops early when `emit` answers false.
|
|
194
|
+
const tokenize = (source: string, emit: (token: Token) => boolean): void => {
|
|
195
195
|
const lexer: Lexer = { at: source.startsWith("#!") ? lineEnd(source, 0) : 0, last: undefined, braces: 0, holes: [] };
|
|
196
196
|
for (skipTrivia(source, lexer); lexer.at < source.length; skipTrivia(source, lexer)) {
|
|
197
197
|
lexer.last = readToken(source, lexer);
|
|
198
|
-
emit(lexer.last)
|
|
198
|
+
if (!emit(lexer.last)) {
|
|
199
|
+
return;
|
|
200
|
+
}
|
|
199
201
|
}
|
|
200
202
|
};
|
|
201
203
|
|
|
202
204
|
const isPunct = (token: Token, text: string): boolean => token.kind === "punct" && token.text === text;
|
|
203
205
|
|
|
206
|
+
// What an import or re-export has read between its keyword and `from`, kept to name its bindings once the module is
|
|
207
|
+
// known.
|
|
208
|
+
interface Clause {
|
|
209
|
+
readonly keyword: "import" | "export";
|
|
210
|
+
readonly tokens: readonly Token[];
|
|
211
|
+
}
|
|
212
|
+
|
|
204
213
|
// Where the reading of an import or re-export stands. A clause is what sits between `import`/`export` and `from`:
|
|
205
214
|
// bindings, braces, `*`, `as`, commas, quoted names; `closed` once its braces have closed, when only `from` may follow.
|
|
206
215
|
type State =
|
|
207
|
-
| { readonly at: "idle" | "import" | "export" | "dynamic"
|
|
216
|
+
| { readonly at: "idle" | "import" | "export" | "dynamic" }
|
|
217
|
+
| { readonly at: "from"; readonly clause: Clause }
|
|
208
218
|
| { readonly at: "argument"; readonly value: string }
|
|
209
|
-
| { readonly at: "clause"; readonly depth: number; readonly closed: boolean };
|
|
219
|
+
| { readonly at: "clause"; readonly depth: number; readonly closed: boolean; readonly clause: Clause };
|
|
210
220
|
|
|
211
221
|
const IDLE: State = { at: "idle" };
|
|
212
222
|
|
|
223
|
+
// What a reading collects: every specifier, and the names each static import or re-export links by.
|
|
224
|
+
interface Found {
|
|
225
|
+
readonly specifiers: Set<string>;
|
|
226
|
+
readonly names: Map<string, Set<string>>;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
// The names a clause links by, once read whole. Inside braces each entry's first word is the module's own name (`a` of
|
|
230
|
+
// `a as b`, `default` of `default as d`, a quoted `"a-b"`); a bare binding before them is the default export. A
|
|
231
|
+
// namespace (`* as n`, `export *`) takes whatever the module has, so it names nothing a module can lack.
|
|
232
|
+
const clauseNames = (clause: Clause): string[] => {
|
|
233
|
+
const names: string[] = [];
|
|
234
|
+
let depth = 0;
|
|
235
|
+
let entry = true;
|
|
236
|
+
for (const token of clause.tokens) {
|
|
237
|
+
if (isPunct(token, "{") || isPunct(token, ",")) {
|
|
238
|
+
depth += isPunct(token, "{") ? 1 : 0;
|
|
239
|
+
entry = true;
|
|
240
|
+
} else if (isPunct(token, "}")) {
|
|
241
|
+
depth--;
|
|
242
|
+
entry = false;
|
|
243
|
+
} else if (entry && (token.kind === "ident" || token.kind === "string")) {
|
|
244
|
+
entry = false;
|
|
245
|
+
if (depth > 0) {
|
|
246
|
+
names.push(token.kind === "string" ? token.value : token.text);
|
|
247
|
+
} else if (clause.keyword === "import") {
|
|
248
|
+
names.push("default");
|
|
249
|
+
}
|
|
250
|
+
} else {
|
|
251
|
+
entry = false;
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
return names;
|
|
255
|
+
};
|
|
256
|
+
|
|
257
|
+
const record = (found: Found, specifier: string, clause?: Clause): void => {
|
|
258
|
+
found.specifiers.add(specifier);
|
|
259
|
+
if (clause === undefined) {
|
|
260
|
+
return;
|
|
261
|
+
}
|
|
262
|
+
const names = found.names.get(specifier) ?? new Set<string>();
|
|
263
|
+
for (const name of clauseNames(clause)) {
|
|
264
|
+
names.add(name);
|
|
265
|
+
}
|
|
266
|
+
found.names.set(specifier, names);
|
|
267
|
+
};
|
|
268
|
+
|
|
213
269
|
// The state a clause moves to on `token`, or undefined when the token cannot sit in the clause.
|
|
214
|
-
const clauseNext = (depth: number, closed: boolean, token: Token): State | undefined => {
|
|
270
|
+
const clauseNext = (depth: number, closed: boolean, clause: Clause, token: Token): State | undefined => {
|
|
215
271
|
if (depth === 0 && token.kind === "ident" && token.text === "from") {
|
|
216
|
-
return { at: "from" };
|
|
272
|
+
return { at: "from", clause };
|
|
217
273
|
}
|
|
218
274
|
if (closed) {
|
|
219
275
|
return undefined;
|
|
220
276
|
}
|
|
277
|
+
const next = { ...clause, tokens: [...clause.tokens, token] };
|
|
221
278
|
if (isPunct(token, "{")) {
|
|
222
|
-
return { at: "clause", depth: depth + 1, closed: false };
|
|
279
|
+
return { at: "clause", depth: depth + 1, closed: false, clause: next };
|
|
223
280
|
}
|
|
224
281
|
if (isPunct(token, "}") && depth > 0) {
|
|
225
|
-
return { at: "clause", depth: depth - 1, closed: depth === 1 };
|
|
282
|
+
return { at: "clause", depth: depth - 1, closed: depth === 1, clause: next };
|
|
226
283
|
}
|
|
227
284
|
const bindingPart = token.kind === "ident" || token.kind === "string" || isPunct(token, ",") || isPunct(token, "*");
|
|
228
|
-
return bindingPart ? { at: "clause", depth, closed } : undefined;
|
|
285
|
+
return bindingPart ? { at: "clause", depth, closed, clause: next } : undefined;
|
|
229
286
|
};
|
|
230
287
|
|
|
231
288
|
// A literal module name: a string, or a template with no hole (which only `import()` accepts).
|
|
232
289
|
const literalOf = (token: Token): string | undefined => (token.kind === "string" || token.kind === "template" ? token.value : undefined);
|
|
233
290
|
|
|
291
|
+
const FROM: Token = { kind: "ident", text: "from" };
|
|
292
|
+
|
|
234
293
|
// The state after `token`, recording what it completes into `found`, or undefined when the token breaks the pattern
|
|
235
294
|
// under way (and must be read again from idle, since it may start the next one).
|
|
236
|
-
const transition = (state: State, token: Token, found:
|
|
295
|
+
const transition = (state: State, token: Token, found: Found): State | undefined => {
|
|
237
296
|
switch (state.at) {
|
|
238
297
|
case "idle":
|
|
239
298
|
return token.kind === "ident" && (token.text === "import" || token.text === "export") ? { at: token.text } : IDLE;
|
|
@@ -242,12 +301,12 @@ const transition = (state: State, token: Token, found: Set<string>): State | und
|
|
|
242
301
|
return { at: "dynamic" };
|
|
243
302
|
}
|
|
244
303
|
if (token.kind === "string") {
|
|
245
|
-
found
|
|
304
|
+
record(found, token.value);
|
|
246
305
|
return IDLE;
|
|
247
306
|
}
|
|
248
|
-
return clauseNext(0, false, token);
|
|
307
|
+
return clauseNext(0, false, { keyword: "import", tokens: [] }, token);
|
|
249
308
|
case "export":
|
|
250
|
-
return isPunct(token, "*") || isPunct(token, "{") ? clauseNext(0, false, token) : undefined;
|
|
309
|
+
return isPunct(token, "*") || isPunct(token, "{") ? clauseNext(0, false, { keyword: "export", tokens: [] }, token) : undefined;
|
|
251
310
|
case "dynamic": {
|
|
252
311
|
const value = literalOf(token);
|
|
253
312
|
return value === undefined ? undefined : { at: "argument", value };
|
|
@@ -255,23 +314,25 @@ const transition = (state: State, token: Token, found: Set<string>): State | und
|
|
|
255
314
|
case "argument":
|
|
256
315
|
// `import("x")` or `import("x", { with: … })`; `import("x" + y)` names no one module.
|
|
257
316
|
if (isPunct(token, ")") || isPunct(token, ",")) {
|
|
258
|
-
found
|
|
317
|
+
record(found, state.value);
|
|
259
318
|
}
|
|
260
319
|
return undefined;
|
|
261
320
|
case "from":
|
|
262
321
|
if (token.kind === "string") {
|
|
263
|
-
found
|
|
322
|
+
record(found, token.value, state.clause);
|
|
264
323
|
return IDLE;
|
|
265
324
|
}
|
|
266
325
|
// `import from from "x"`: the first `from` was a binding.
|
|
267
|
-
return clauseNext(0, false, token);
|
|
326
|
+
return clauseNext(0, false, { ...state.clause, tokens: [...state.clause.tokens, FROM] }, token);
|
|
268
327
|
case "clause":
|
|
269
|
-
return clauseNext(state.depth, state.closed, token);
|
|
328
|
+
return clauseNext(state.depth, state.closed, state.clause, token);
|
|
270
329
|
}
|
|
271
330
|
};
|
|
272
331
|
|
|
273
332
|
// Reads the specifiers off a token stream: `import … from "x"`, `import "x"`, `export … from "x"` and `import("x")`.
|
|
274
|
-
|
|
333
|
+
// `leading` stops at the first statement that is none of these, which is where every bundler has put its static
|
|
334
|
+
// imports by then; answering false ends the scan.
|
|
335
|
+
const specifierReader = (found: Found, leading: boolean): ((token: Token) => boolean) => {
|
|
275
336
|
let state: State = IDLE;
|
|
276
337
|
let previous: Token | undefined;
|
|
277
338
|
return (token) => {
|
|
@@ -279,23 +340,59 @@ const specifierReader = (found: Set<string>): ((token: Token) => void) => {
|
|
|
279
340
|
// before this token has already left the reader idle.
|
|
280
341
|
const member = previous !== undefined && (isPunct(previous, ".") || isPunct(previous, "?."));
|
|
281
342
|
previous = token;
|
|
282
|
-
if (
|
|
283
|
-
|
|
343
|
+
if (member) {
|
|
344
|
+
return true;
|
|
284
345
|
}
|
|
346
|
+
state = transition(state, token, found) ?? transition(IDLE, token, found) ?? IDLE;
|
|
347
|
+
// Past the leading imports: anything but the start of another, a `;`, or a directive's string.
|
|
348
|
+
return !leading || state.at !== "idle" || isPunct(token, ";") || token.kind === "string";
|
|
285
349
|
};
|
|
286
350
|
};
|
|
287
351
|
|
|
352
|
+
const readBundle = (source: string, leading = false): Found => {
|
|
353
|
+
const found: Found = { specifiers: new Set(), names: new Map() };
|
|
354
|
+
tokenize(source, specifierReader(found, leading));
|
|
355
|
+
return found;
|
|
356
|
+
};
|
|
357
|
+
|
|
288
358
|
// Every specifier a single-file ESM bundle names, in source order: static imports, re-exports, bare side-effect
|
|
289
359
|
// imports and dynamic import() of a literal, wherever they sit (a minified bundle puts them all on one line), never
|
|
290
360
|
// counting the word inside a string, a template, a comment or a regex.
|
|
291
|
-
export const bundleSpecifiers = (source: string): string[] =>
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
361
|
+
export const bundleSpecifiers = (source: string): string[] => [...readBundle(source).specifiers];
|
|
362
|
+
|
|
363
|
+
// What a host's published modules export, by specifier: the names the import map's shim for each re-exports. A
|
|
364
|
+
// specifier left out is not checked.
|
|
365
|
+
export type HostExports = Readonly<Partial<Record<string, readonly string[]>>>;
|
|
296
366
|
|
|
297
|
-
//
|
|
298
|
-
export
|
|
367
|
+
// Names a bundle imports that a host module does not export, by specifier.
|
|
368
|
+
export interface MissingImport {
|
|
369
|
+
readonly specifier: string;
|
|
370
|
+
readonly names: readonly string[];
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
// The names a bundle links against, by specifier: `import { a, b as c } from "x"` and `export { a } from "x"` name `a`
|
|
374
|
+
// (and `b`), a default import names `default`. Only static imports link, so a dynamic import() names none.
|
|
375
|
+
// `leading` reads only the imports before the first other statement, which is where a bundler puts them all: cheap
|
|
376
|
+
// enough to run on every load, and a check built on it can only miss an import, never invent one.
|
|
377
|
+
export const bundleImportedNames = (source: string, options: { readonly leading?: boolean } = {}): Map<string, string[]> =>
|
|
378
|
+
new Map([...readBundle(source, options.leading).names].map(([specifier, names]) => [specifier, [...names]]));
|
|
379
|
+
|
|
380
|
+
// The imports in `source` that `host` cannot satisfy: each is a SyntaxError when the bundle links ("does not provide
|
|
381
|
+
// an export named …"), before a line of the extension runs and without naming the extension or what to do.
|
|
382
|
+
export const missingImports = (source: string, host: HostExports, options: { readonly leading?: boolean } = {}): MissingImport[] =>
|
|
383
|
+
[...bundleImportedNames(source, options)].flatMap(([specifier, names]) => {
|
|
384
|
+
const exported = host[specifier];
|
|
385
|
+
if (exported === undefined) {
|
|
386
|
+
return [];
|
|
387
|
+
}
|
|
388
|
+
const has = new Set(exported);
|
|
389
|
+
const missing = names.filter((name) => !has.has(name));
|
|
390
|
+
return missing.length === 0 ? [] : [{ specifier, names: missing }];
|
|
391
|
+
});
|
|
392
|
+
|
|
393
|
+
// Why this bundle cannot load, or undefined when it can, naming the offending specifiers. Given what the host exports,
|
|
394
|
+
// it also names each import the host lacks, which only a newer or older build of the extension would ask for.
|
|
395
|
+
export const bundleProblem = (source: string, host?: HostExports): string | undefined => {
|
|
299
396
|
const specifiers = bundleSpecifiers(source);
|
|
300
397
|
const relative = specifiers.filter((specifier) => specifier.startsWith(".") || specifier.startsWith("/"));
|
|
301
398
|
if (relative.length > 0) {
|
|
@@ -306,5 +403,10 @@ export const bundleProblem = (source: string): string | undefined => {
|
|
|
306
403
|
if (unpublished.length > 0) {
|
|
307
404
|
return `imports ${unpublished.join(", ")}, which the host does not publish, bundle it in, or use one of: ${HOST_PUBLISHED_SPECIFIERS.join(", ")}`;
|
|
308
405
|
}
|
|
406
|
+
const missing = host === undefined ? [] : missingImports(source, host);
|
|
407
|
+
if (missing.length > 0) {
|
|
408
|
+
const named = missing.map((entry) => `${entry.names.join(", ")} from ${entry.specifier}`).join("; ");
|
|
409
|
+
return `imports ${named}, which this version of the app does not export: it was built against a different version, and the extension needs updating`;
|
|
410
|
+
}
|
|
309
411
|
return undefined;
|
|
310
412
|
};
|
|
@@ -84,6 +84,22 @@ export const fieldApplies = (field: CapabilityField, values: Readonly<Record<str
|
|
|
84
84
|
// One authenticated request the daemon makes on the form's behalf, declared as data since the check is per-service.
|
|
85
85
|
// Worth declaring on any card whose failure is otherwise silent.
|
|
86
86
|
const ProbeSchema = z.object({
|
|
87
|
+
// A delegated sign-in's card keeps only a refresh token, so its test first trades that for an access token. The
|
|
88
|
+
// trade is held in memory for this one request; neither token is stored or shown.
|
|
89
|
+
oauth: z
|
|
90
|
+
.object({
|
|
91
|
+
tokenUrl: z
|
|
92
|
+
.string()
|
|
93
|
+
.min(1)
|
|
94
|
+
.describe("The token endpoint, templated like `url`. Only Microsoft identity platform hosts are served today."),
|
|
95
|
+
form: z
|
|
96
|
+
.record(z.string(), z.string())
|
|
97
|
+
.describe("The refresh-token grant's form fields, templated like `url`; a field that comes out empty is left out."),
|
|
98
|
+
})
|
|
99
|
+
.optional()
|
|
100
|
+
.describe(
|
|
101
|
+
"Trade the card's refresh token for an access token before the request, sent as `Authorization: Bearer`. For Microsoft's identity platform the request goes to the Graph cloud paired with the token endpoint's host, whatever host `url` names.",
|
|
102
|
+
),
|
|
87
103
|
url: z
|
|
88
104
|
.string()
|
|
89
105
|
.min(1)
|
|
@@ -264,6 +280,22 @@ export const CapabilityContributionSchema = z
|
|
|
264
280
|
probe: ProbeSchema.optional().describe(
|
|
265
281
|
"One authenticated request that tests this card's settings before they are saved, so a wrong token or an unreachable host is answered on the form rather than by a card that says 'not connected' afterwards.",
|
|
266
282
|
),
|
|
283
|
+
// Lets a sign-in on the agent's side store what it got without printing it: the daemon's oauth-token route
|
|
284
|
+
// writes `field` and nothing else, for a caller holding the card's current token, while every `boundTo`
|
|
285
|
+
// field still holds what the sign-in was made against.
|
|
286
|
+
refreshToken: z
|
|
287
|
+
.object({
|
|
288
|
+
field: z.string().describe("The secret field the refresh token is kept in."),
|
|
289
|
+
boundTo: z
|
|
290
|
+
.array(z.string())
|
|
291
|
+
.describe(
|
|
292
|
+
"Fields a token is only good for as filled in at sign-in (tenant, client, cloud, access level); a token arriving after one of them changed is refused.",
|
|
293
|
+
),
|
|
294
|
+
})
|
|
295
|
+
.optional()
|
|
296
|
+
.describe(
|
|
297
|
+
"This card's credential is a delegated OAuth refresh token the extension's own CLI or process obtains and rotates. They store it through `POST /capabilities/{id}/oauth-token` (an extension process also needs that route in `permissions.daemon`) instead of printing it for someone to paste.",
|
|
298
|
+
),
|
|
267
299
|
// Only narrows what the credential may do, so it carries no effect: nothing here grants the extension reach.
|
|
268
300
|
hosts: z
|
|
269
301
|
.array(z.string().min(1))
|
|
@@ -356,6 +388,15 @@ export const CapabilityContributionSchema = z
|
|
|
356
388
|
if (spec.kind !== "cli") {
|
|
357
389
|
return;
|
|
358
390
|
}
|
|
391
|
+
if (spec.refreshToken !== undefined) {
|
|
392
|
+
const declared = new Map(spec.fields.map((field) => [field.key, field]));
|
|
393
|
+
if (declared.get(spec.refreshToken.field)?.secret !== true) {
|
|
394
|
+
ctx.addIssue({ code: "custom", message: `refreshToken.field "${spec.refreshToken.field}" must name a secret field` });
|
|
395
|
+
}
|
|
396
|
+
for (const key of spec.refreshToken.boundTo.filter((candidate) => !declared.has(candidate) || candidate === spec.refreshToken?.field)) {
|
|
397
|
+
ctx.addIssue({ code: "custom", message: `refreshToken.boundTo names "${key}", which is not another field of this card` });
|
|
398
|
+
}
|
|
399
|
+
}
|
|
359
400
|
for (const field of spec.fields.filter((candidate) => candidate.totp === true)) {
|
|
360
401
|
if (Object.values(spec.env).some((template) => template.includes(`\${${field.key}}`) || template.includes(`\${${field.key}:uri}`))) {
|
|
361
402
|
ctx.addIssue({
|