@vertesia/tools-sdk 1.6.0-dev.20260918.115658Z → 1.6.0-dev.20261004.085740Z
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/lib/RenderingTemplateCollection.d.ts +1 -10
- package/lib/RenderingTemplateCollection.d.ts.map +1 -1
- package/lib/server/app-package.d.ts.map +1 -1
- package/lib/server/app-package.js +3 -1
- package/lib/server/app-package.js.map +1 -1
- package/lib/server/types.d.ts +2 -0
- package/lib/server/types.d.ts.map +1 -1
- package/package.json +13 -12
- package/src/server/app-package.ts +3 -1
- package/src/server/types.ts +2 -0
- package/src/ActivityCollection.test.ts +0 -162
- package/src/server/activities.test.ts +0 -168
- package/src/server/app-package.test.ts +0 -268
- package/src/server/content-types.test.ts +0 -64
- package/src/server/hooks.test.ts +0 -158
- package/src/server/views.test.ts +0 -45
|
@@ -9,16 +9,7 @@ export declare class RenderingTemplateCollection implements ICollection<Renderin
|
|
|
9
9
|
icon?: string;
|
|
10
10
|
description?: string;
|
|
11
11
|
constructor({ name, title, icon, description, templates }: RenderingTemplateCollectionProps);
|
|
12
|
-
getTemplateDefinitions():
|
|
13
|
-
id: string;
|
|
14
|
-
name: string;
|
|
15
|
-
title?: string | undefined;
|
|
16
|
-
description: string;
|
|
17
|
-
type: "document" | "presentation";
|
|
18
|
-
tags?: string[] | undefined;
|
|
19
|
-
assets: string[];
|
|
20
|
-
instructions: string;
|
|
21
|
-
}[];
|
|
12
|
+
getTemplateDefinitions(): import("@vertesia/common/wire-types").RenderingTemplateDefinition[];
|
|
22
13
|
getTemplate(name: string): RenderingTemplateDefinition | undefined;
|
|
23
14
|
[Symbol.iterator](): Iterator<RenderingTemplateDefinition>;
|
|
24
15
|
map<U>(callback: (template: RenderingTemplateDefinition, index: number) => U): U[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderingTemplateCollection.d.ts","sourceRoot":"","sources":["../src/RenderingTemplateCollection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAGjG,MAAM,WAAW,gCAAiC,SAAQ,oBAAoB;IAC1E,SAAS,EAAE,2BAA2B,EAAE,CAAC;CAC5C;AAED,qBAAa,2BAA4B,YAAW,WAAW,CAAC,2BAA2B,CAAC;IACxF,SAAS,EAAE,2BAA2B,EAAE,CAAC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,gCAAgC,EAM1F;IAED,sBAAsB
|
|
1
|
+
{"version":3,"file":"RenderingTemplateCollection.d.ts","sourceRoot":"","sources":["../src/RenderingTemplateCollection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAGjG,MAAM,WAAW,gCAAiC,SAAQ,oBAAoB;IAC1E,SAAS,EAAE,2BAA2B,EAAE,CAAC;CAC5C;AAED,qBAAa,2BAA4B,YAAW,WAAW,CAAC,2BAA2B,CAAC;IACxF,SAAS,EAAE,2BAA2B,EAAE,CAAC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,gCAAgC,EAM1F;IAED,sBAAsB,wEAErB;IAED,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,2BAA2B,GAAG,SAAS,CAEjE;IAED,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,2BAA2B,CAAC,CAazD;IAED,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,2BAA2B,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAEjF;CACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-package.d.ts","sourceRoot":"","sources":["../../src/server/app-package.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAER,UAAU,EACV,eAAe,EAMlB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAW,IAAI,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAMnD,MAAM,WAAW,sBAAsB;IACnC,KAAK,CAAC,EAAE,eAAe,GAAG,eAAe,EAAE,GAAG,MAAM,CAAC;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,cAAc,CAAC;CACnC;AAoMD,wBAAsB,eAAe,CACjC,MAAM,EAAE,gBAAgB,EACxB,OAAO,GAAE,sBAA2B,GACrC,OAAO,CAAC,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"app-package.d.ts","sourceRoot":"","sources":["../../src/server/app-package.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAER,UAAU,EACV,eAAe,EAMlB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAW,IAAI,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAMnD,MAAM,WAAW,sBAAsB;IACnC,KAAK,CAAC,EAAE,eAAe,GAAG,eAAe,EAAE,GAAG,MAAM,CAAC;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,cAAc,CAAC;CACnC;AAoMD,wBAAsB,eAAe,CACjC,MAAM,EAAE,gBAAgB,EACxB,OAAO,GAAE,sBAA2B,GACrC,OAAO,CAAC,UAAU,CAAC,CA+DrB;AAWD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,QAQvF"}
|
|
@@ -173,7 +173,9 @@ function normalizeScopes(scope) {
|
|
|
173
173
|
return new Set(values.filter(Boolean));
|
|
174
174
|
}
|
|
175
175
|
export async function buildAppPackage(config, options = {}) {
|
|
176
|
-
const pkg = {
|
|
176
|
+
const pkg = {
|
|
177
|
+
oauth_scopes: config.oauth_scopes ? [...config.oauth_scopes] : undefined,
|
|
178
|
+
};
|
|
177
179
|
const scopes = normalizeScopes(options.scope);
|
|
178
180
|
if (scopes.has('all')) {
|
|
179
181
|
await builders.tools(pkg, config, options);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-package.js","sourceRoot":"","sources":["../../src/server/app-package.ts"],"names":[],"mappings":"AAcA,SAAS,iBAAiB,CAAI,CAAU;IACpC,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAK,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAClF,CAAC;AAUD,MAAM,QAAQ,GAA+D;IACzE,KAAK,CAAC,KAAK,CAAC,GAAe,EAAE,MAAwB,EAAE,OAA+B;QAClF,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,EAAE,EAAE,MAAM,EAAE,gBAAgB,GAAG,EAAE,EAAE,GAAG,MAAM,CAAC;QAE9E,MAAM,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;QAE7C,2CAA2C;QAC3C,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC,CAAC;QAEvG,kBAAkB;QAClB,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC,CAAC;QAEzG,+DAA+D;QAC/D,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC5C,GAAG,CAAC,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YACjC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtB,OAAO,CAAC,IAAI,CAAC,sCAAsC,IAAI,CAAC,IAAI,aAAa,CAAC,CAAC;gBAC3E,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpB,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC,CAAC;IACP,CAAC;IACD,KAAK,CAAC,YAAY,CAAC,GAAe,EAAE,MAAwB;QACxD,MAAM,eAAe,GAA4B,EAAE,CAAC;QACpD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,YAAY,IAAI,EAAE,EAAE,CAAC;YAC3C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACpC,eAAe,CAAC,IAAI,CAAC;oBACjB,IAAI,EAAE,KAAK;oBACX,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE;oBAChC,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI;oBAChC,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;iBACzB,CAAC,CAAC;YACP,CAAC;QACL,CAAC;QACD,GAAG,CAAC,YAAY,GAAG,eAAe,CAAC;IACvC,CAAC;IACD,KAAK,CAAC,KAAK,CAAC,GAAe,EAAE,MAAwB;QACjD,mFAAmF;QACnF,sFAAsF;QACtF,+EAA+E;QAC/E,wFAAwF;QACxF,MAAM,QAAQ,GAA2B,EAAE,CAAC;QAC5C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAC;QACvC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;YACpC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACrC,IAAI,QAAQ,EAAE,CAAC;oBACX,MAAM,IAAI,KAAK,CACX,gCAAgC,IAAI,CAAC,IAAI,mBAAmB,QAAQ,UAAU,IAAI,CAAC,IAAI,MAAM;wBACzF,2EAA2E,IAAI,CAAC,IAAI,iBAAiB,CAC5G,CAAC;gBACN,CAAC;gBACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC/B,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAC9C,CAAC;QACL,CAAC;QACD,GAAG,CAAC,KAAK,GAAG,QAAQ,CAAC;IACzB,CAAC;IACD,KAAK,CAAC,SAAS,CAAC,GAAe,EAAE,MAAwB;QACrD,MAAM,YAAY,GAA8B,EAAE,CAAC;QACnD,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC;YAC3C,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC;QACD,GAAG,CAAC,SAAS,GAAG,YAAY,CAAC;IACjC,CAAC;IACD,KAAK,CAAC,KAAK,CAAC,GAAe,EAAE,MAAwB;QACjD,GAAG,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;IAC1C,CAAC;IACD,KAAK,CAAC,SAAS,CAAC,GAAe,EAAE,MAAwB;QACrD,MAAM,QAAQ,GAAG,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,YAAY,CAAC;QACxD,GAAG,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CACtD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;YACjD,GAAG,GAAG;YACN,IAAI,EAAE,GAAG,QAAQ,IAAI,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,EAAE;SAC/C,CAAC,CAAC,CACN,CAAC;IACN,CAAC;IACD,KAAK,CAAC,UAAU,CAAC,GAAe,EAAE,MAAwB;QACtD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,MAAM,UAAU,GAA6B,EAAE,CAAC;QAChD,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,UAAU,IAAI,EAAE,EAAE,CAAC;YAC9C,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;gBACzB,OAAO,CAAC,IAAI,CAAC,yCAAyC,SAAS,CAAC,EAAE,aAAa,CAAC,CAAC;gBACjF,SAAS;YACb,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YACvB,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/B,CAAC;QACD,GAAG,CAAC,UAAU,GAAG,UAAU,CAAC;IAChC,CAAC;IACD,KAAK,CAAC,OAAO,CAAC,GAAe,EAAE,MAAwB;QACnD,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAG,EAAE,EAAE,GAAG,MAAM,CAAC;QACjD,MAAM,OAAO,GAAkC,EAAE,CAAC;QAClD,KAAK,MAAM,IAAI,IAAI,gBAAgB,EAAE,CAAC;YAClC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,mBAAmB,EAAE,EAAE,CAAC;gBAC7C,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC5C,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG;wBAClB,KAAK,EAAE,KAAK,CAAC,IAAI;wBACjB,UAAU,EAAE,IAAI,CAAC,IAAI;wBACrB,GAAG,EAAE,YAAY,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;qBACjB,CAAC;gBAC9B,CAAC;YACL,CAAC;QACL,CAAC;QACD,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;IAC1B,CAAC;IACD,KAAK,CAAC,EAAE,CAAC,GAAe,EAAE,MAAwB,EAAE,OAA+B;QAC/E,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YAClB,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;YAChC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,kBAAkB,CAAC;YACpD,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;YACpD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC;gBACpB,GAAG,CAAC,EAAE,CAAC,SAAS,GAAG,QAAQ,CAAC;YAChC,CAAC;QACL,CAAC;IACL,CAAC;IACD,KAAK,CAAC,QAAQ,CAAC,GAAe,EAAE,MAAwB;QACpD,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YAClB,GAAG,CAAC,eAAe,GAAG,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QACjD,CAAC;IACL,CAAC;IACD,KAAK,CAAC,UAAU,CAAC,GAAe,EAAE,MAAwB;QACtD,MAAM,aAAa,GAA+B,EAAE,CAAC;QACrD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,UAAU,IAAI,EAAE,EAAE,CAAC;YACzC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,sBAAsB,EAAE,EAAE,CAAC;gBAC9C,aAAa,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAC1D,CAAC;QACL,CAAC;QACD,GAAG,CAAC,UAAU,GAAG,aAAa,CAAC;IACnC,CAAC;IACD,KAAK,CAAC,KAAK,CAAC,GAAe,EAAE,MAAwB;QACjD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC;QACvC,MAAM,cAAc,GAAG,IAAI,GAAG,CAC1B,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CACrF,CAAC;QACF,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;aAClC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC;aACvC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACZ,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,GAAG,MAAM,UAAU,IAAI,CAAC,IAAI,EAAE;YACpC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACjE,CAAC,CAAC,CAAC;QACR,IAAI,cAAc,CAAC,IAAI,GAAG,CAAC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnD,GAAG,CAAC,KAAK,GAAG;gBACR,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,gBAAgB,EAAE,CAAC;gBAC5E,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,MAAM,kBAAkB,EAAE,CAAC;gBAClF,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;aACvD,CAAC;QACN,CAAC;IACL,CAAC;IACD,KAAK,CAAC,aAAa,CAAC,GAAe,EAAE,MAAwB;QACzD,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,EAAE,CAAC;QACjD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAClC,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QAEnF,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;YACvC,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC;gBACtD,MAAM,IAAI,KAAK,CACX,sCAAsC,YAAY,CAAC,EAAE,yCAAyC,CACjG,CAAC;YACN,CAAC;YACD,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC/B,MAAM,IAAI,KAAK,CAAC,wCAAwC,YAAY,CAAC,EAAE,IAAI,CAAC,CAAC;YACjF,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YAE7B,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YAChD,IAAI,CAAC,IAAI,EAAE,CAAC;gBACR,MAAM,IAAI,KAAK,CACX,2BAA2B,YAAY,CAAC,EAAE,8BAA8B,YAAY,CAAC,IAAI,IAAI,CAChG,CAAC;YACN,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CACX,2BAA2B,YAAY,CAAC,EAAE,oCAAoC,YAAY,CAAC,IAAI,wBAAwB,CAC1H,CAAC;YACN,CAAC;QACL,CAAC;QAED,GAAG,CAAC,aAAa,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,YAAY,EAAE,CAAC,CAAC,CAAC;IACnF,CAAC;CACJ,CAAC;AAEF,SAAS,eAAe,CAAC,KAAsC;IAC3D,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC;IAC9G,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAsB,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACjC,MAAwB,EACxB,OAAO,GAA2B,EAAE;IAEpC,MAAM,GAAG,GAAe,EAAE,CAAC;IAE3B,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC9C,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACpB,MAAM,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAC3C,MAAM,QAAQ,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAClD,MAAM,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAC3C,MAAM,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAC/C,MAAM,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAC3C,MAAM,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAC/C,MAAM,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAChD,MAAM,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAC7C,MAAM,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QACxC,MAAM,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAC9C,MAAM,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAChD,MAAM,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAC3C,MAAM,QAAQ,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;SAAM,CAAC;QACJ,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACtB,MAAM,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAC/C,CAAC;QACD,IAAI,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;YAC7B,MAAM,QAAQ,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QACtD,CAAC;QACD,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACtB,MAAM,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAC/C,CAAC;QACD,IAAI,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YAC1B,MAAM,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACtB,MAAM,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAC/C,CAAC;QACD,IAAI,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YAC1B,MAAM,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;YAC3B,MAAM,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACxB,MAAM,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACnB,MAAM,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YACzB,MAAM,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;YAC3B,MAAM,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACtB,MAAM,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAC/C,CAAC;QACD,IAAI,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC;YAC9B,MAAM,QAAQ,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QACvD,CAAC;IACL,CAAC;IAED,OAAO,GAAG,CAAC;AACf,CAAC;AAED,KAAK,UAAU,oBAAoB,CAAC,CAAU,EAAE,MAAwB;IACpE,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE;QACtC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK;QACpC,MAAM,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM;QACjC,cAAc,EAAE,MAAM,iBAAiB,CAAiB,CAAC,CAAC;KAC7D,CAAC,CAAC;IACH,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,GAAS,EAAE,QAAgB,EAAE,MAAwB;IACpF,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAU,EAAE,EAAE;QAC7B,OAAO,oBAAoB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAU,EAAE,EAAE;QAC9B,OAAO,oBAAoB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
1
|
+
{"version":3,"file":"app-package.js","sourceRoot":"","sources":["../../src/server/app-package.ts"],"names":[],"mappings":"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"}
|
package/lib/server/types.d.ts
CHANGED
|
@@ -34,6 +34,8 @@ export interface MCPProviderConfig {
|
|
|
34
34
|
* Server configuration options
|
|
35
35
|
*/
|
|
36
36
|
export interface ToolServerConfig {
|
|
37
|
+
/** OAuth scopes requested by the app; project permissions must be explicitly declared. */
|
|
38
|
+
oauth_scopes?: string[];
|
|
37
39
|
/**
|
|
38
40
|
* Server title for HTML pages (default: 'Tools Server')
|
|
39
41
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/server/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/server/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vertesia/tools-sdk",
|
|
3
|
-
"version": "1.6.0-dev.
|
|
3
|
+
"version": "1.6.0-dev.20261004.085740Z",
|
|
4
4
|
"description": "Tools SDK - utilities for building remote tools",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./lib/index.js",
|
|
7
7
|
"types": "./lib/index.d.ts",
|
|
8
8
|
"files": [
|
|
9
9
|
"lib",
|
|
10
|
-
"src"
|
|
10
|
+
"src",
|
|
11
|
+
"!src/**/*.test.*"
|
|
11
12
|
],
|
|
12
13
|
"license": "Apache-2.0",
|
|
13
14
|
"exports": {
|
|
@@ -17,20 +18,20 @@
|
|
|
17
18
|
}
|
|
18
19
|
},
|
|
19
20
|
"devDependencies": {
|
|
20
|
-
"@types/node": "^24.13.
|
|
21
|
+
"@types/node": "^24.13.6",
|
|
21
22
|
"@vertesia/tsconfig": "0.1.0",
|
|
22
23
|
"typescript": "7.0.2",
|
|
23
|
-
"vitest": "5.0.
|
|
24
|
+
"vitest": "5.0.1"
|
|
24
25
|
},
|
|
25
26
|
"peerDependencies": {
|
|
26
|
-
"hono": "^4.13.
|
|
27
|
+
"hono": "^4.13.8"
|
|
27
28
|
},
|
|
28
29
|
"dependencies": {
|
|
29
|
-
"@llumiverse/common": "1.6.0-dev.
|
|
30
|
-
"@vertesia/client": "1.6.0-dev.
|
|
31
|
-
"@vertesia/common": "1.6.0-dev.
|
|
30
|
+
"@llumiverse/common": "1.6.0-dev.20261004.083934Z",
|
|
31
|
+
"@vertesia/client": "1.6.0-dev.20261004.085740Z",
|
|
32
|
+
"@vertesia/common": "1.6.0-dev.20261004.085740Z",
|
|
32
33
|
"jose": "^6.2.12",
|
|
33
|
-
"zod": "
|
|
34
|
+
"zod": "4.6.5"
|
|
34
35
|
},
|
|
35
36
|
"repository": {
|
|
36
37
|
"type": "git",
|
|
@@ -46,13 +47,13 @@
|
|
|
46
47
|
"agents",
|
|
47
48
|
"typescript"
|
|
48
49
|
],
|
|
49
|
-
"gitHead": "
|
|
50
|
+
"gitHead": "b51b6dc9262f81f55e2424d1e57190060f6068d7",
|
|
50
51
|
"scripts": {
|
|
51
52
|
"lint": "biome lint src",
|
|
52
53
|
"test": "vitest run",
|
|
53
|
-
"typecheck:test": "tsc -p tsconfig.test.json --noEmit",
|
|
54
|
+
"typecheck:test": "tsc --checkers 1 -p tsconfig.test.json --noEmit",
|
|
54
55
|
"clean:lib": "rimraf ./lib ./tsconfig.tsbuildinfo",
|
|
55
|
-
"build": "pnpm run clean:lib && tsc -p tsconfig.json",
|
|
56
|
+
"build": "pnpm run clean:lib && tsc --checkers 1 -p tsconfig.json",
|
|
56
57
|
"clean": "rimraf ./node_modules ./lib ./tsconfig.tsbuildinfo"
|
|
57
58
|
}
|
|
58
59
|
}
|
|
@@ -220,7 +220,9 @@ export async function buildAppPackage(
|
|
|
220
220
|
config: ToolServerConfig,
|
|
221
221
|
options: BuildAppPackageOptions = {},
|
|
222
222
|
): Promise<AppPackage> {
|
|
223
|
-
const pkg: AppPackage = {
|
|
223
|
+
const pkg: AppPackage = {
|
|
224
|
+
oauth_scopes: config.oauth_scopes ? [...config.oauth_scopes] : undefined,
|
|
225
|
+
};
|
|
224
226
|
|
|
225
227
|
const scopes = normalizeScopes(options.scope);
|
|
226
228
|
if (scopes.has('all')) {
|
package/src/server/types.ts
CHANGED
|
@@ -48,6 +48,8 @@ export interface MCPProviderConfig {
|
|
|
48
48
|
* Server configuration options
|
|
49
49
|
*/
|
|
50
50
|
export interface ToolServerConfig {
|
|
51
|
+
/** OAuth scopes requested by the app; project permissions must be explicitly declared. */
|
|
52
|
+
oauth_scopes?: string[];
|
|
51
53
|
/**
|
|
52
54
|
* Server title for HTML pages (default: 'Tools Server')
|
|
53
55
|
*/
|
|
@@ -1,162 +0,0 @@
|
|
|
1
|
-
import type { RemoteActivityExecutionPayload } from '@vertesia/common';
|
|
2
|
-
import type { Context } from 'hono';
|
|
3
|
-
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
|
4
|
-
import { ActivityCollection, type ActivityDefinition } from './ActivityCollection.js';
|
|
5
|
-
|
|
6
|
-
type MockContext = Context & {
|
|
7
|
-
json: ReturnType<typeof vi.fn>;
|
|
8
|
-
req: { header: ReturnType<typeof vi.fn>; url: string };
|
|
9
|
-
set: ReturnType<typeof vi.fn>;
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
vi.mock('./auth.js', () => ({
|
|
13
|
-
authorize: vi.fn().mockResolvedValue({ token: 'test-token' }),
|
|
14
|
-
}));
|
|
15
|
-
|
|
16
|
-
const mockActivity: ActivityDefinition = {
|
|
17
|
-
name: 'analyze_sentiment',
|
|
18
|
-
title: 'Analyze Sentiment',
|
|
19
|
-
description: 'Analyzes text sentiment',
|
|
20
|
-
input_schema: {
|
|
21
|
-
type: 'object',
|
|
22
|
-
properties: { text: { type: 'string' } },
|
|
23
|
-
required: ['text'],
|
|
24
|
-
},
|
|
25
|
-
output_schema: {
|
|
26
|
-
type: 'object',
|
|
27
|
-
properties: { score: { type: 'number' } },
|
|
28
|
-
},
|
|
29
|
-
run: vi.fn().mockResolvedValue({ score: 0.95 }),
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
const mockFailingActivity: ActivityDefinition = {
|
|
33
|
-
name: 'fail_always',
|
|
34
|
-
description: 'Always fails',
|
|
35
|
-
run: vi.fn().mockRejectedValue(new Error('Intentional failure')),
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
function createCollection(activities: ActivityDefinition[] = [mockActivity]) {
|
|
39
|
-
return new ActivityCollection({
|
|
40
|
-
name: 'test-collection',
|
|
41
|
-
title: 'Test Collection',
|
|
42
|
-
description: 'A test collection',
|
|
43
|
-
activities,
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
beforeEach(() => {
|
|
48
|
-
vi.clearAllMocks();
|
|
49
|
-
});
|
|
50
|
-
|
|
51
|
-
describe('ActivityCollection', () => {
|
|
52
|
-
describe('getActivityDefinitions', () => {
|
|
53
|
-
it('returns correct metadata for all registered activities', () => {
|
|
54
|
-
const coll = createCollection([mockActivity, mockFailingActivity]);
|
|
55
|
-
const defs = coll.getActivityDefinitions();
|
|
56
|
-
|
|
57
|
-
expect(defs).toHaveLength(2);
|
|
58
|
-
expect(defs[0]).toEqual({
|
|
59
|
-
name: 'analyze_sentiment',
|
|
60
|
-
title: 'Analyze Sentiment',
|
|
61
|
-
description: 'Analyzes text sentiment',
|
|
62
|
-
input_schema: mockActivity.input_schema,
|
|
63
|
-
output_schema: mockActivity.output_schema,
|
|
64
|
-
});
|
|
65
|
-
expect(defs[1]).toEqual({
|
|
66
|
-
name: 'fail_always',
|
|
67
|
-
title: undefined,
|
|
68
|
-
description: 'Always fails',
|
|
69
|
-
input_schema: undefined,
|
|
70
|
-
output_schema: undefined,
|
|
71
|
-
});
|
|
72
|
-
});
|
|
73
|
-
|
|
74
|
-
it('returns empty array when no activities registered', () => {
|
|
75
|
-
const coll = createCollection([]);
|
|
76
|
-
expect(coll.getActivityDefinitions()).toEqual([]);
|
|
77
|
-
});
|
|
78
|
-
});
|
|
79
|
-
|
|
80
|
-
describe('getActivity', () => {
|
|
81
|
-
it('returns the activity by name', () => {
|
|
82
|
-
const coll = createCollection();
|
|
83
|
-
const activity = coll.getActivity('analyze_sentiment');
|
|
84
|
-
expect(activity.name).toBe('analyze_sentiment');
|
|
85
|
-
expect(activity.run).toBeDefined();
|
|
86
|
-
});
|
|
87
|
-
|
|
88
|
-
it('throws 404 for unknown activity name', () => {
|
|
89
|
-
const coll = createCollection();
|
|
90
|
-
expect(() => coll.getActivity('nonexistent')).toThrow();
|
|
91
|
-
});
|
|
92
|
-
});
|
|
93
|
-
|
|
94
|
-
describe('iterator', () => {
|
|
95
|
-
it('iterates over all activities', () => {
|
|
96
|
-
const coll = createCollection([mockActivity, mockFailingActivity]);
|
|
97
|
-
const names = [...coll].map((a) => a.name);
|
|
98
|
-
expect(names).toEqual(['analyze_sentiment', 'fail_always']);
|
|
99
|
-
});
|
|
100
|
-
});
|
|
101
|
-
|
|
102
|
-
describe('execute', () => {
|
|
103
|
-
const createMockContext = (): MockContext => {
|
|
104
|
-
const jsonFn = vi.fn().mockReturnThis();
|
|
105
|
-
return {
|
|
106
|
-
json: jsonFn,
|
|
107
|
-
req: {
|
|
108
|
-
header: vi.fn().mockReturnValue('Bearer test-token'),
|
|
109
|
-
url: 'http://localhost/api/activities',
|
|
110
|
-
},
|
|
111
|
-
set: vi.fn(),
|
|
112
|
-
} as unknown as MockContext;
|
|
113
|
-
};
|
|
114
|
-
|
|
115
|
-
const payload: RemoteActivityExecutionPayload = {
|
|
116
|
-
activity_name: 'analyze_sentiment',
|
|
117
|
-
params: { text: 'Hello world' },
|
|
118
|
-
metadata: {
|
|
119
|
-
app_install_id: 'install-1',
|
|
120
|
-
},
|
|
121
|
-
};
|
|
122
|
-
|
|
123
|
-
it('calls the correct activity handler and returns result', async () => {
|
|
124
|
-
const coll = createCollection();
|
|
125
|
-
const ctx = createMockContext();
|
|
126
|
-
|
|
127
|
-
await coll.execute(ctx, payload);
|
|
128
|
-
|
|
129
|
-
expect(mockActivity.run).toHaveBeenCalledWith(payload, expect.objectContaining({ token: 'test-token' }));
|
|
130
|
-
expect(ctx.json).toHaveBeenCalledWith({
|
|
131
|
-
result: { score: 0.95 },
|
|
132
|
-
is_error: false,
|
|
133
|
-
});
|
|
134
|
-
});
|
|
135
|
-
|
|
136
|
-
it('returns is_error with message when activity throws', async () => {
|
|
137
|
-
const coll = createCollection([mockFailingActivity]);
|
|
138
|
-
const ctx = createMockContext();
|
|
139
|
-
|
|
140
|
-
const failPayload: RemoteActivityExecutionPayload = {
|
|
141
|
-
...payload,
|
|
142
|
-
activity_name: 'fail_always',
|
|
143
|
-
};
|
|
144
|
-
|
|
145
|
-
await coll.execute(ctx, failPayload);
|
|
146
|
-
|
|
147
|
-
expect(ctx.json).toHaveBeenCalledWith({ result: null, is_error: true, error: 'Intentional failure' }, 500);
|
|
148
|
-
});
|
|
149
|
-
|
|
150
|
-
it('throws 404 when activity_name is not found', async () => {
|
|
151
|
-
const coll = createCollection();
|
|
152
|
-
const ctx = createMockContext();
|
|
153
|
-
|
|
154
|
-
const unknownPayload: RemoteActivityExecutionPayload = {
|
|
155
|
-
...payload,
|
|
156
|
-
activity_name: 'nonexistent',
|
|
157
|
-
};
|
|
158
|
-
|
|
159
|
-
await expect(coll.execute(ctx, unknownPayload)).rejects.toThrow();
|
|
160
|
-
});
|
|
161
|
-
});
|
|
162
|
-
});
|
|
@@ -1,168 +0,0 @@
|
|
|
1
|
-
import { Hono } from 'hono';
|
|
2
|
-
import { describe, expect, it, vi } from 'vitest';
|
|
3
|
-
import { ActivityCollection, type ActivityDefinition } from '../ActivityCollection.js';
|
|
4
|
-
import { createActivitiesRoute } from './activities.js';
|
|
5
|
-
import type { ToolServerConfig } from './types.js';
|
|
6
|
-
|
|
7
|
-
/** Permissive recursive type for navigating JSON response bodies in tests. */
|
|
8
|
-
type Tree = { readonly [key: string]: Tree };
|
|
9
|
-
|
|
10
|
-
// Mock authorize to avoid JWT verification
|
|
11
|
-
vi.mock('../auth.js', () => ({
|
|
12
|
-
authorize: vi.fn().mockResolvedValue({ token: 'test-token' }),
|
|
13
|
-
AuthSession: vi.fn(),
|
|
14
|
-
}));
|
|
15
|
-
|
|
16
|
-
const mockActivity: ActivityDefinition = {
|
|
17
|
-
name: 'analyze_sentiment',
|
|
18
|
-
title: 'Analyze Sentiment',
|
|
19
|
-
description: 'Analyzes text sentiment',
|
|
20
|
-
input_schema: { type: 'object', properties: { text: { type: 'string' } } },
|
|
21
|
-
run: vi.fn().mockResolvedValue({ score: 0.95 }),
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
const mockActivity2: ActivityDefinition = {
|
|
25
|
-
name: 'extract_entities',
|
|
26
|
-
description: 'Extracts entities',
|
|
27
|
-
run: vi.fn().mockResolvedValue({ entities: ['foo'] }),
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
function createApp(activities: ActivityCollection[] = []) {
|
|
31
|
-
const app = new Hono();
|
|
32
|
-
const config = { activities } as ToolServerConfig;
|
|
33
|
-
createActivitiesRoute(app, '/api/activities', config);
|
|
34
|
-
return app;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
function createTestCollections() {
|
|
38
|
-
const coll1 = new ActivityCollection({
|
|
39
|
-
name: 'nlp',
|
|
40
|
-
description: 'NLP activities',
|
|
41
|
-
activities: [mockActivity],
|
|
42
|
-
});
|
|
43
|
-
const coll2 = new ActivityCollection({
|
|
44
|
-
name: 'extraction',
|
|
45
|
-
description: 'Extraction activities',
|
|
46
|
-
activities: [mockActivity2],
|
|
47
|
-
});
|
|
48
|
-
return [coll1, coll2];
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
describe('Activities server routes', () => {
|
|
52
|
-
describe('GET /api/activities', () => {
|
|
53
|
-
it('returns all activity definitions across collections', async () => {
|
|
54
|
-
const app = createApp(createTestCollections());
|
|
55
|
-
const res = await app.request('/api/activities');
|
|
56
|
-
const body = (await res.json()) as unknown as Tree;
|
|
57
|
-
|
|
58
|
-
expect(res.status).toBe(200);
|
|
59
|
-
expect(body.activities).toHaveLength(2);
|
|
60
|
-
expect(body.activities[0].name).toBe('analyze_sentiment');
|
|
61
|
-
expect(body.activities[1].name).toBe('extract_entities');
|
|
62
|
-
expect(body.collections).toHaveLength(2);
|
|
63
|
-
});
|
|
64
|
-
|
|
65
|
-
it('returns empty when no collections configured', async () => {
|
|
66
|
-
const app = createApp([]);
|
|
67
|
-
const res = await app.request('/api/activities');
|
|
68
|
-
const body = (await res.json()) as unknown as Tree;
|
|
69
|
-
|
|
70
|
-
expect(res.status).toBe(200);
|
|
71
|
-
expect(body.activities).toHaveLength(0);
|
|
72
|
-
});
|
|
73
|
-
});
|
|
74
|
-
|
|
75
|
-
describe('GET /api/activities/{collection}', () => {
|
|
76
|
-
it('returns activities for a specific collection', async () => {
|
|
77
|
-
const app = createApp(createTestCollections());
|
|
78
|
-
const res = await app.request('/api/activities/nlp');
|
|
79
|
-
const body = (await res.json()) as unknown as Tree;
|
|
80
|
-
|
|
81
|
-
expect(res.status).toBe(200);
|
|
82
|
-
expect(body.name).toBe('nlp');
|
|
83
|
-
expect(body.activities).toHaveLength(1);
|
|
84
|
-
expect(body.activities[0].name).toBe('analyze_sentiment');
|
|
85
|
-
});
|
|
86
|
-
});
|
|
87
|
-
|
|
88
|
-
describe('POST /api/activities', () => {
|
|
89
|
-
it('executes activity by name', async () => {
|
|
90
|
-
const app = createApp(createTestCollections());
|
|
91
|
-
const res = await app.request('/api/activities', {
|
|
92
|
-
method: 'POST',
|
|
93
|
-
headers: {
|
|
94
|
-
'Content-Type': 'application/json',
|
|
95
|
-
Authorization: 'Bearer test-token',
|
|
96
|
-
},
|
|
97
|
-
body: JSON.stringify({
|
|
98
|
-
activity_name: 'analyze_sentiment',
|
|
99
|
-
params: { text: 'hello' },
|
|
100
|
-
metadata: {
|
|
101
|
-
workflow_name: 'wf',
|
|
102
|
-
account_id: 'acc',
|
|
103
|
-
project_id: 'proj',
|
|
104
|
-
},
|
|
105
|
-
}),
|
|
106
|
-
});
|
|
107
|
-
|
|
108
|
-
expect(res.status).toBe(200);
|
|
109
|
-
const body = (await res.json()) as unknown as Tree;
|
|
110
|
-
expect(body.result).toEqual({ score: 0.95 });
|
|
111
|
-
expect(body.is_error).toBe(false);
|
|
112
|
-
});
|
|
113
|
-
|
|
114
|
-
it('returns 404 for unknown activity name', async () => {
|
|
115
|
-
const app = createApp(createTestCollections());
|
|
116
|
-
const res = await app.request('/api/activities', {
|
|
117
|
-
method: 'POST',
|
|
118
|
-
headers: {
|
|
119
|
-
'Content-Type': 'application/json',
|
|
120
|
-
Authorization: 'Bearer test-token',
|
|
121
|
-
},
|
|
122
|
-
body: JSON.stringify({
|
|
123
|
-
activity_name: 'nonexistent',
|
|
124
|
-
params: {},
|
|
125
|
-
metadata: {},
|
|
126
|
-
}),
|
|
127
|
-
});
|
|
128
|
-
|
|
129
|
-
expect(res.status).toBe(404);
|
|
130
|
-
});
|
|
131
|
-
|
|
132
|
-
it('returns 400 for missing activity_name', async () => {
|
|
133
|
-
const app = createApp(createTestCollections());
|
|
134
|
-
const res = await app.request('/api/activities', {
|
|
135
|
-
method: 'POST',
|
|
136
|
-
headers: {
|
|
137
|
-
'Content-Type': 'application/json',
|
|
138
|
-
Authorization: 'Bearer test-token',
|
|
139
|
-
},
|
|
140
|
-
body: JSON.stringify({ params: {} }),
|
|
141
|
-
});
|
|
142
|
-
|
|
143
|
-
expect(res.status).toBe(400);
|
|
144
|
-
});
|
|
145
|
-
});
|
|
146
|
-
|
|
147
|
-
describe('POST /api/activities/{collection}', () => {
|
|
148
|
-
it('routes to correct collection', async () => {
|
|
149
|
-
const app = createApp(createTestCollections());
|
|
150
|
-
const res = await app.request('/api/activities/extraction', {
|
|
151
|
-
method: 'POST',
|
|
152
|
-
headers: {
|
|
153
|
-
'Content-Type': 'application/json',
|
|
154
|
-
Authorization: 'Bearer test-token',
|
|
155
|
-
},
|
|
156
|
-
body: JSON.stringify({
|
|
157
|
-
activity_name: 'extract_entities',
|
|
158
|
-
params: {},
|
|
159
|
-
metadata: {},
|
|
160
|
-
}),
|
|
161
|
-
});
|
|
162
|
-
|
|
163
|
-
expect(res.status).toBe(200);
|
|
164
|
-
const body = (await res.json()) as unknown as Tree;
|
|
165
|
-
expect(body.result).toEqual({ entities: ['foo'] });
|
|
166
|
-
});
|
|
167
|
-
});
|
|
168
|
-
});
|
|
@@ -1,268 +0,0 @@
|
|
|
1
|
-
import { PromptRole } from '@llumiverse/common';
|
|
2
|
-
import { PROCESS_DEFINITION_FORMAT_VERSION, SystemRoles, TemplateType } from '@vertesia/common';
|
|
3
|
-
import { describe, expect, it } from 'vitest';
|
|
4
|
-
import { ContentTypesCollection } from '../ContentTypesCollection.js';
|
|
5
|
-
import { InteractionCollection } from '../InteractionCollection.js';
|
|
6
|
-
import { buildAppPackage } from './app-package.js';
|
|
7
|
-
import type { ToolServerConfig } from './types.js';
|
|
8
|
-
|
|
9
|
-
describe('buildAppPackage', () => {
|
|
10
|
-
it('builds the same package artifact inventory used by the package route', async () => {
|
|
11
|
-
const config = {
|
|
12
|
-
interactions: [
|
|
13
|
-
new InteractionCollection({
|
|
14
|
-
name: 'claims',
|
|
15
|
-
interactions: [
|
|
16
|
-
{
|
|
17
|
-
name: 'review',
|
|
18
|
-
title: 'Review Claim',
|
|
19
|
-
prompts: [
|
|
20
|
-
{
|
|
21
|
-
role: PromptRole.user,
|
|
22
|
-
content: '{{user_prompt}}',
|
|
23
|
-
content_type: TemplateType.handlebars,
|
|
24
|
-
},
|
|
25
|
-
],
|
|
26
|
-
},
|
|
27
|
-
],
|
|
28
|
-
}),
|
|
29
|
-
],
|
|
30
|
-
types: [
|
|
31
|
-
new ContentTypesCollection({
|
|
32
|
-
name: 'claims',
|
|
33
|
-
types: [
|
|
34
|
-
{
|
|
35
|
-
name: 'claim',
|
|
36
|
-
object_schema: {
|
|
37
|
-
type: 'object',
|
|
38
|
-
properties: {
|
|
39
|
-
status: { type: 'string' },
|
|
40
|
-
},
|
|
41
|
-
},
|
|
42
|
-
},
|
|
43
|
-
],
|
|
44
|
-
}),
|
|
45
|
-
],
|
|
46
|
-
processes: [
|
|
47
|
-
{
|
|
48
|
-
id: 'claims:intake',
|
|
49
|
-
name: 'Claims Intake',
|
|
50
|
-
definition: {
|
|
51
|
-
format_version: PROCESS_DEFINITION_FORMAT_VERSION,
|
|
52
|
-
process: 'claims_intake',
|
|
53
|
-
initial: 'done',
|
|
54
|
-
context: {
|
|
55
|
-
schema: {
|
|
56
|
-
type: 'object',
|
|
57
|
-
additionalProperties: true,
|
|
58
|
-
},
|
|
59
|
-
initial: {},
|
|
60
|
-
},
|
|
61
|
-
nodes: {
|
|
62
|
-
done: { type: 'final', title: 'Done' },
|
|
63
|
-
},
|
|
64
|
-
},
|
|
65
|
-
},
|
|
66
|
-
],
|
|
67
|
-
dashboards: [
|
|
68
|
-
{
|
|
69
|
-
id: 'claims:ops',
|
|
70
|
-
title: 'Claims Ops',
|
|
71
|
-
spec: {},
|
|
72
|
-
},
|
|
73
|
-
],
|
|
74
|
-
uiConfig: {
|
|
75
|
-
src: '/lib/plugin.js',
|
|
76
|
-
available_in: ['app_portal'],
|
|
77
|
-
},
|
|
78
|
-
hooks: [{ kind: 'lifecycle', name: 'install', handler: async () => undefined }],
|
|
79
|
-
} satisfies ToolServerConfig;
|
|
80
|
-
|
|
81
|
-
const pkg = await buildAppPackage(config, {
|
|
82
|
-
origin: 'https://apps.example.test',
|
|
83
|
-
scope: 'all',
|
|
84
|
-
});
|
|
85
|
-
|
|
86
|
-
expect(pkg.interactions?.map((interaction) => interaction.id)).toEqual(['claims:review']);
|
|
87
|
-
expect(pkg.types?.map((type) => type.id)).toEqual(['claim']);
|
|
88
|
-
expect(pkg.processes?.map((process) => process.id)).toEqual(['claims:intake']);
|
|
89
|
-
expect(pkg.dashboards?.map((dashboard) => dashboard.id)).toEqual(['claims:ops']);
|
|
90
|
-
expect(pkg.ui?.src).toBe('https://apps.example.test/lib/plugin.js');
|
|
91
|
-
expect(pkg.hooks).toEqual({ install: '/api/hooks/install' });
|
|
92
|
-
});
|
|
93
|
-
|
|
94
|
-
it('honors package scopes', async () => {
|
|
95
|
-
const config = {
|
|
96
|
-
interactions: [
|
|
97
|
-
new InteractionCollection({
|
|
98
|
-
name: 'claims',
|
|
99
|
-
interactions: [{ name: 'review', prompts: [] }],
|
|
100
|
-
}),
|
|
101
|
-
],
|
|
102
|
-
types: [
|
|
103
|
-
new ContentTypesCollection({
|
|
104
|
-
name: 'claims',
|
|
105
|
-
types: [{ name: 'claim' }],
|
|
106
|
-
}),
|
|
107
|
-
],
|
|
108
|
-
} satisfies ToolServerConfig;
|
|
109
|
-
|
|
110
|
-
const pkg = await buildAppPackage(config, { scope: 'types' });
|
|
111
|
-
|
|
112
|
-
expect(pkg.types?.map((type) => type.id)).toEqual(['claim']);
|
|
113
|
-
expect(pkg.interactions).toBeUndefined();
|
|
114
|
-
});
|
|
115
|
-
|
|
116
|
-
it('returns lifecycle and event hook metadata for the hooks scope', async () => {
|
|
117
|
-
const config = {
|
|
118
|
-
interactions: [
|
|
119
|
-
new InteractionCollection({
|
|
120
|
-
name: 'claims',
|
|
121
|
-
interactions: [{ name: 'review', prompts: [] }],
|
|
122
|
-
}),
|
|
123
|
-
],
|
|
124
|
-
hooks: [
|
|
125
|
-
{ kind: 'lifecycle', name: 'install', handler: async () => undefined },
|
|
126
|
-
{ kind: 'lifecycle', name: 'uninstall', handler: async () => undefined },
|
|
127
|
-
{
|
|
128
|
-
kind: 'event',
|
|
129
|
-
name: 'content-updated',
|
|
130
|
-
description: 'Processes updated content.',
|
|
131
|
-
handler: async () => undefined,
|
|
132
|
-
},
|
|
133
|
-
],
|
|
134
|
-
} satisfies ToolServerConfig;
|
|
135
|
-
|
|
136
|
-
const pkg = await buildAppPackage(config, { scope: 'hooks' });
|
|
137
|
-
|
|
138
|
-
expect(pkg.hooks).toEqual({
|
|
139
|
-
install: '/api/hooks/install',
|
|
140
|
-
uninstall: '/api/hooks/uninstall',
|
|
141
|
-
events: [
|
|
142
|
-
{
|
|
143
|
-
name: 'content-updated',
|
|
144
|
-
path: '/api/hooks/content-updated',
|
|
145
|
-
description: 'Processes updated content.',
|
|
146
|
-
},
|
|
147
|
-
],
|
|
148
|
-
});
|
|
149
|
-
expect(pkg.interactions).toBeUndefined();
|
|
150
|
-
});
|
|
151
|
-
|
|
152
|
-
it('returns subscriptions that reference registered event hooks', async () => {
|
|
153
|
-
const config = {
|
|
154
|
-
hooks: [
|
|
155
|
-
{
|
|
156
|
-
kind: 'event',
|
|
157
|
-
name: 'content-updated',
|
|
158
|
-
handler: async () => undefined,
|
|
159
|
-
},
|
|
160
|
-
],
|
|
161
|
-
subscriptions: [
|
|
162
|
-
{
|
|
163
|
-
id: 'content-updated',
|
|
164
|
-
name: 'Content updated',
|
|
165
|
-
description: 'Refresh app-owned projections after content changes.',
|
|
166
|
-
hook: 'content-updated',
|
|
167
|
-
filter: { action: ['update'], resource_type: ['content_object'] },
|
|
168
|
-
run_as_role: SystemRoles.automation,
|
|
169
|
-
priority: 'normal',
|
|
170
|
-
},
|
|
171
|
-
],
|
|
172
|
-
} satisfies ToolServerConfig;
|
|
173
|
-
|
|
174
|
-
const pkg = await buildAppPackage(config, { scope: 'subscriptions' });
|
|
175
|
-
|
|
176
|
-
expect(pkg.subscriptions).toEqual(config.subscriptions);
|
|
177
|
-
expect(pkg.hooks).toBeUndefined();
|
|
178
|
-
});
|
|
179
|
-
|
|
180
|
-
it('rejects subscriptions that reference missing or lifecycle hooks', async () => {
|
|
181
|
-
const missingHook = {
|
|
182
|
-
subscriptions: [
|
|
183
|
-
{
|
|
184
|
-
id: 'content-updated',
|
|
185
|
-
name: 'Content updated',
|
|
186
|
-
hook: 'content-updated',
|
|
187
|
-
filter: { action: ['update'] },
|
|
188
|
-
run_as_role: SystemRoles.automation,
|
|
189
|
-
},
|
|
190
|
-
],
|
|
191
|
-
} satisfies ToolServerConfig;
|
|
192
|
-
await expect(buildAppPackage(missingHook, { scope: 'subscriptions' })).rejects.toThrow(
|
|
193
|
-
/references missing hook 'content-updated'/,
|
|
194
|
-
);
|
|
195
|
-
|
|
196
|
-
const lifecycleHook = {
|
|
197
|
-
hooks: [{ kind: 'lifecycle', name: 'install', handler: async () => undefined }],
|
|
198
|
-
subscriptions: [
|
|
199
|
-
{
|
|
200
|
-
id: 'on-install',
|
|
201
|
-
name: 'On install',
|
|
202
|
-
hook: 'install',
|
|
203
|
-
filter: { action: ['installed'] },
|
|
204
|
-
run_as_role: SystemRoles.automation,
|
|
205
|
-
},
|
|
206
|
-
],
|
|
207
|
-
} satisfies ToolServerConfig;
|
|
208
|
-
await expect(buildAppPackage(lifecycleHook, { scope: 'subscriptions' })).rejects.toThrow(
|
|
209
|
-
/must reference an event hook/,
|
|
210
|
-
);
|
|
211
|
-
});
|
|
212
|
-
|
|
213
|
-
it('rejects duplicate or non-kebab-case subscription ids', async () => {
|
|
214
|
-
const eventHook = {
|
|
215
|
-
kind: 'event' as const,
|
|
216
|
-
name: 'content-updated',
|
|
217
|
-
handler: async () => undefined,
|
|
218
|
-
};
|
|
219
|
-
const subscription = {
|
|
220
|
-
id: 'content-updated',
|
|
221
|
-
name: 'Content updated',
|
|
222
|
-
hook: 'content-updated',
|
|
223
|
-
filter: { action: ['update'] },
|
|
224
|
-
run_as_role: SystemRoles.automation,
|
|
225
|
-
};
|
|
226
|
-
|
|
227
|
-
await expect(
|
|
228
|
-
buildAppPackage(
|
|
229
|
-
{ hooks: [eventHook], subscriptions: [subscription, { ...subscription }] },
|
|
230
|
-
{ scope: 'subscriptions' },
|
|
231
|
-
),
|
|
232
|
-
).rejects.toThrow(/Duplicate app event subscription id 'content-updated'/);
|
|
233
|
-
|
|
234
|
-
await expect(
|
|
235
|
-
buildAppPackage(
|
|
236
|
-
{ hooks: [eventHook], subscriptions: [{ ...subscription, id: 'Content Updated' }] },
|
|
237
|
-
{ scope: 'subscriptions' },
|
|
238
|
-
),
|
|
239
|
-
).rejects.toThrow(/must be kebab case/);
|
|
240
|
-
});
|
|
241
|
-
});
|
|
242
|
-
|
|
243
|
-
describe('buildAppPackage type identity', () => {
|
|
244
|
-
it('exposes the bare type name as the public id (collections are code organization only)', async () => {
|
|
245
|
-
const config = {
|
|
246
|
-
types: [
|
|
247
|
-
new ContentTypesCollection({ name: 'claims', types: [{ name: 'claim' }] }),
|
|
248
|
-
new ContentTypesCollection({ name: 'audit', types: [{ name: 'audit_event' }] }),
|
|
249
|
-
],
|
|
250
|
-
} satisfies ToolServerConfig;
|
|
251
|
-
|
|
252
|
-
const pkg = await buildAppPackage(config, { scope: 'types' });
|
|
253
|
-
expect(pkg.types?.map((type) => type.id)).toEqual(['claim', 'audit_event']);
|
|
254
|
-
});
|
|
255
|
-
|
|
256
|
-
it('fails the package build when a type name is duplicated across collections', async () => {
|
|
257
|
-
const config = {
|
|
258
|
-
types: [
|
|
259
|
-
new ContentTypesCollection({ name: 'claims', types: [{ name: 'claim' }] }),
|
|
260
|
-
new ContentTypesCollection({ name: 'legacy', types: [{ name: 'claim' }] }),
|
|
261
|
-
],
|
|
262
|
-
} satisfies ToolServerConfig;
|
|
263
|
-
|
|
264
|
-
await expect(buildAppPackage(config, { scope: 'types' })).rejects.toThrow(
|
|
265
|
-
/Duplicate content type name 'claim'/,
|
|
266
|
-
);
|
|
267
|
-
});
|
|
268
|
-
});
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import { Hono } from 'hono';
|
|
2
|
-
import { describe, expect, it } from 'vitest';
|
|
3
|
-
import { ContentTypesCollection } from '../ContentTypesCollection.js';
|
|
4
|
-
import { createContentTypesRoute } from './content-types.js';
|
|
5
|
-
import type { ToolServerConfig } from './types.js';
|
|
6
|
-
|
|
7
|
-
function makeApp(config: ToolServerConfig): Hono {
|
|
8
|
-
const app = new Hono();
|
|
9
|
-
createContentTypesRoute(app, '/api/types', config);
|
|
10
|
-
return app;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
const config = {
|
|
14
|
-
types: [
|
|
15
|
-
new ContentTypesCollection({
|
|
16
|
-
name: 'contracts',
|
|
17
|
-
types: [{ name: 'contract' }, { name: 'review_note' }],
|
|
18
|
-
}),
|
|
19
|
-
new ContentTypesCollection({
|
|
20
|
-
name: 'audit',
|
|
21
|
-
types: [{ name: 'audit_event' }],
|
|
22
|
-
}),
|
|
23
|
-
],
|
|
24
|
-
} satisfies ToolServerConfig;
|
|
25
|
-
|
|
26
|
-
describe('content types route', () => {
|
|
27
|
-
it('lists all types with bare ids (collection is not part of the type identity)', async () => {
|
|
28
|
-
const res = await makeApp(config).request('/api/types');
|
|
29
|
-
expect(res.status).toBe(200);
|
|
30
|
-
const body = (await res.json()) as { types: Array<{ id: string }> };
|
|
31
|
-
expect(body.types.map((t) => t.id)).toEqual(['contract', 'review_note', 'audit_event']);
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
it('resolves the canonical bare type name (the app:<app>:<type> ref convention)', async () => {
|
|
35
|
-
const res = await makeApp(config).request('/api/types/contract');
|
|
36
|
-
expect(res.status).toBe(200);
|
|
37
|
-
const body = (await res.json()) as { id: string; name: string };
|
|
38
|
-
expect(body.id).toBe('contract');
|
|
39
|
-
expect(body.name).toBe('contract');
|
|
40
|
-
});
|
|
41
|
-
|
|
42
|
-
it('still resolves the legacy collection:type alias, returning the bare id', async () => {
|
|
43
|
-
const res = await makeApp(config).request('/api/types/contracts:contract');
|
|
44
|
-
expect(res.status).toBe(200);
|
|
45
|
-
const body = (await res.json()) as { id: string };
|
|
46
|
-
expect(body.id).toBe('contract');
|
|
47
|
-
});
|
|
48
|
-
|
|
49
|
-
it('409s on an ambiguous bare name so the collision is loud, not silent', async () => {
|
|
50
|
-
const ambiguous = {
|
|
51
|
-
types: [
|
|
52
|
-
new ContentTypesCollection({ name: 'a', types: [{ name: 'note' }] }),
|
|
53
|
-
new ContentTypesCollection({ name: 'b', types: [{ name: 'note' }] }),
|
|
54
|
-
],
|
|
55
|
-
} satisfies ToolServerConfig;
|
|
56
|
-
const res = await makeApp(ambiguous).request('/api/types/note');
|
|
57
|
-
expect(res.status).toBe(409);
|
|
58
|
-
});
|
|
59
|
-
|
|
60
|
-
it('404s for an unknown type name', async () => {
|
|
61
|
-
const res = await makeApp(config).request('/api/types/nope');
|
|
62
|
-
expect(res.status).toBe(404);
|
|
63
|
-
});
|
|
64
|
-
});
|
package/src/server/hooks.test.ts
DELETED
|
@@ -1,158 +0,0 @@
|
|
|
1
|
-
import type { AuthTokenPayload, PlatformEvent } from '@vertesia/common';
|
|
2
|
-
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
|
3
|
-
import type { AppEventHookPayload, AppLifecycleHookContext } from '../types.js';
|
|
4
|
-
|
|
5
|
-
const authorizeMock = vi.hoisted(() => vi.fn());
|
|
6
|
-
|
|
7
|
-
vi.mock('../auth.js', () => ({ authorize: authorizeMock }));
|
|
8
|
-
|
|
9
|
-
import { createToolServer } from '../server.js';
|
|
10
|
-
|
|
11
|
-
const event = {
|
|
12
|
-
event_id: 'event-1',
|
|
13
|
-
root_event_id: 'event-1',
|
|
14
|
-
hop_count: 0,
|
|
15
|
-
event_category: 'content',
|
|
16
|
-
action: 'updated',
|
|
17
|
-
resource_type: 'content_object',
|
|
18
|
-
resource_id: 'object-1',
|
|
19
|
-
account_id: 'account-1',
|
|
20
|
-
project_id: 'project-1',
|
|
21
|
-
tenant_id: 'account-1_project-1',
|
|
22
|
-
timestamp: '2026-08-05T10:00:00.000Z',
|
|
23
|
-
source: 'zeno-server',
|
|
24
|
-
} satisfies PlatformEvent;
|
|
25
|
-
|
|
26
|
-
const eventPayload = {
|
|
27
|
-
event,
|
|
28
|
-
delivery: {
|
|
29
|
-
id: 'delivery-1',
|
|
30
|
-
subscription_id: 'subscription-1',
|
|
31
|
-
attempt: 1,
|
|
32
|
-
},
|
|
33
|
-
} satisfies AppEventHookPayload;
|
|
34
|
-
|
|
35
|
-
describe('app hooks', () => {
|
|
36
|
-
beforeEach(() => {
|
|
37
|
-
authorizeMock.mockReset();
|
|
38
|
-
authorizeMock.mockResolvedValue({
|
|
39
|
-
token: 'project-token',
|
|
40
|
-
payload: { project: { id: 'project-1' } } as AuthTokenPayload,
|
|
41
|
-
getClient: vi.fn(),
|
|
42
|
-
});
|
|
43
|
-
});
|
|
44
|
-
|
|
45
|
-
it('executes a registered hook with authenticated context and metadata', async () => {
|
|
46
|
-
const install = vi.fn(async (_context: AppLifecycleHookContext) => ({ message: 'installed' }));
|
|
47
|
-
const app = createToolServer({
|
|
48
|
-
disableHtml: true,
|
|
49
|
-
hooks: [{ kind: 'lifecycle', name: 'install', handler: install }],
|
|
50
|
-
});
|
|
51
|
-
|
|
52
|
-
const response = await app.request('/api/hooks/install', {
|
|
53
|
-
method: 'POST',
|
|
54
|
-
headers: { Authorization: 'Bearer project-token', 'Content-Type': 'application/json' },
|
|
55
|
-
body: JSON.stringify({ metadata: { app_install_id: 'install-1', app_settings: { locale: 'en' } } }),
|
|
56
|
-
});
|
|
57
|
-
|
|
58
|
-
expect(response.status).toBe(200);
|
|
59
|
-
await expect(response.json()).resolves.toEqual({ ok: true, message: 'installed' });
|
|
60
|
-
expect(install).toHaveBeenCalledWith(
|
|
61
|
-
expect.objectContaining({
|
|
62
|
-
token: 'project-token',
|
|
63
|
-
metadata: { app_install_id: 'install-1', app_settings: { locale: 'en' } },
|
|
64
|
-
}),
|
|
65
|
-
);
|
|
66
|
-
});
|
|
67
|
-
|
|
68
|
-
it('returns 404 when the hook is not registered', async () => {
|
|
69
|
-
const app = createToolServer({ disableHtml: true });
|
|
70
|
-
|
|
71
|
-
const response = await app.request('/api/hooks/uninstall', {
|
|
72
|
-
method: 'POST',
|
|
73
|
-
headers: { Authorization: 'Bearer project-token', 'Content-Type': 'application/json' },
|
|
74
|
-
body: '{}',
|
|
75
|
-
});
|
|
76
|
-
|
|
77
|
-
expect(response.status).toBe(404);
|
|
78
|
-
expect(authorizeMock).not.toHaveBeenCalled();
|
|
79
|
-
});
|
|
80
|
-
|
|
81
|
-
it('executes an event hook with the canonical delivery envelope and authenticated context', async () => {
|
|
82
|
-
const contentUpdated = vi.fn(async (_payload: AppEventHookPayload) => ({ message: 'processed' }));
|
|
83
|
-
const app = createToolServer({
|
|
84
|
-
disableHtml: true,
|
|
85
|
-
hooks: [
|
|
86
|
-
{
|
|
87
|
-
kind: 'event',
|
|
88
|
-
name: 'content-updated',
|
|
89
|
-
description: 'Processes updated content.',
|
|
90
|
-
handler: contentUpdated,
|
|
91
|
-
},
|
|
92
|
-
],
|
|
93
|
-
});
|
|
94
|
-
|
|
95
|
-
const response = await app.request('/api/hooks/content-updated', {
|
|
96
|
-
method: 'POST',
|
|
97
|
-
headers: { Authorization: 'Bearer project-token', 'Content-Type': 'application/json' },
|
|
98
|
-
body: JSON.stringify(eventPayload),
|
|
99
|
-
});
|
|
100
|
-
|
|
101
|
-
expect(response.status).toBe(200);
|
|
102
|
-
await expect(response.json()).resolves.toEqual({ ok: true, message: 'processed' });
|
|
103
|
-
expect(contentUpdated).toHaveBeenCalledWith(
|
|
104
|
-
eventPayload,
|
|
105
|
-
expect.objectContaining({ token: 'project-token', payload: { project: { id: 'project-1' } } }),
|
|
106
|
-
);
|
|
107
|
-
});
|
|
108
|
-
|
|
109
|
-
it('rejects malformed event hook payloads before authentication', async () => {
|
|
110
|
-
const handler = vi.fn(async () => undefined);
|
|
111
|
-
const app = createToolServer({
|
|
112
|
-
disableHtml: true,
|
|
113
|
-
hooks: [{ kind: 'event', name: 'content-updated', handler }],
|
|
114
|
-
});
|
|
115
|
-
|
|
116
|
-
const response = await app.request('/api/hooks/content-updated', {
|
|
117
|
-
method: 'POST',
|
|
118
|
-
headers: { Authorization: 'Bearer project-token', 'Content-Type': 'application/json' },
|
|
119
|
-
body: JSON.stringify({ event: eventPayload.event }),
|
|
120
|
-
});
|
|
121
|
-
|
|
122
|
-
expect(response.status).toBe(400);
|
|
123
|
-
expect(handler).not.toHaveBeenCalled();
|
|
124
|
-
expect(authorizeMock).not.toHaveBeenCalled();
|
|
125
|
-
});
|
|
126
|
-
|
|
127
|
-
it.each(['install', 'uninstall'])('reserves the lifecycle hook name %s', (name) => {
|
|
128
|
-
expect(() =>
|
|
129
|
-
createToolServer({
|
|
130
|
-
disableHtml: true,
|
|
131
|
-
hooks: [{ kind: 'event', name, handler: async () => undefined }],
|
|
132
|
-
}),
|
|
133
|
-
).toThrow(`App event hook name is reserved: ${name}`);
|
|
134
|
-
});
|
|
135
|
-
|
|
136
|
-
it('rejects event hook names that are not safe path segments', () => {
|
|
137
|
-
expect(() =>
|
|
138
|
-
createToolServer({
|
|
139
|
-
disableHtml: true,
|
|
140
|
-
hooks: [{ kind: 'event', name: 'content/updated', handler: async () => undefined }],
|
|
141
|
-
}),
|
|
142
|
-
).toThrow('Invalid app event hook name: content/updated');
|
|
143
|
-
});
|
|
144
|
-
|
|
145
|
-
it('rejects duplicate lifecycle hook registrations', () => {
|
|
146
|
-
const handler = vi.fn(async () => undefined);
|
|
147
|
-
|
|
148
|
-
expect(() =>
|
|
149
|
-
createToolServer({
|
|
150
|
-
disableHtml: true,
|
|
151
|
-
hooks: [
|
|
152
|
-
{ kind: 'lifecycle', name: 'install', handler },
|
|
153
|
-
{ kind: 'lifecycle', name: 'install', handler },
|
|
154
|
-
],
|
|
155
|
-
}),
|
|
156
|
-
).toThrow('Duplicate app hook: install');
|
|
157
|
-
});
|
|
158
|
-
});
|
package/src/server/views.test.ts
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import type { InCodeViewDefinition } from '@vertesia/common';
|
|
2
|
-
import { describe, expect, it } from 'vitest';
|
|
3
|
-
import { createToolServer } from '../server.js';
|
|
4
|
-
|
|
5
|
-
const view: InCodeViewDefinition = {
|
|
6
|
-
id: 'document-library',
|
|
7
|
-
name: 'document-library',
|
|
8
|
-
title: 'Document Library',
|
|
9
|
-
tags: ['content'],
|
|
10
|
-
definition: {
|
|
11
|
-
name: 'Document Library',
|
|
12
|
-
layout: { mode: 'browse' },
|
|
13
|
-
results: {
|
|
14
|
-
default_display: 'list',
|
|
15
|
-
displays: [
|
|
16
|
-
{
|
|
17
|
-
id: 'list',
|
|
18
|
-
label: 'List',
|
|
19
|
-
type: 'list',
|
|
20
|
-
title: { field: 'name' },
|
|
21
|
-
},
|
|
22
|
-
],
|
|
23
|
-
},
|
|
24
|
-
},
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
describe('in-code View app package', () => {
|
|
28
|
-
it('exposes Views through the package scope and direct resource route', async () => {
|
|
29
|
-
const app = createToolServer({ views: [view], disableHtml: true });
|
|
30
|
-
const packageResponse = await app.request('/api/package?scope=views');
|
|
31
|
-
const directResponse = await app.request('/api/views/document-library');
|
|
32
|
-
|
|
33
|
-
expect(packageResponse.status).toBe(200);
|
|
34
|
-
expect(await packageResponse.json()).toEqual({ views: [view] });
|
|
35
|
-
expect(directResponse.status).toBe(200);
|
|
36
|
-
expect(await directResponse.json()).toEqual(view);
|
|
37
|
-
});
|
|
38
|
-
|
|
39
|
-
it('returns 404 for an unknown View', async () => {
|
|
40
|
-
const app = createToolServer({ views: [view], disableHtml: true });
|
|
41
|
-
const response = await app.request('/api/views/missing');
|
|
42
|
-
|
|
43
|
-
expect(response.status).toBe(404);
|
|
44
|
-
});
|
|
45
|
-
});
|