@mastra/server 0.0.0-default-storage-virtual-file-20250410035748

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/LICENSE +44 -0
  2. package/README.md +159 -0
  3. package/dist/_tsup-dts-rollup.d.cts +564 -0
  4. package/dist/_tsup-dts-rollup.d.ts +564 -0
  5. package/dist/chunk-2FJURXCL.cjs +213 -0
  6. package/dist/chunk-2JQC6JWP.js +46 -0
  7. package/dist/chunk-2YONKUWB.js +117 -0
  8. package/dist/chunk-3AHQ5RGN.js +11 -0
  9. package/dist/chunk-3RVHWGWO.js +95 -0
  10. package/dist/chunk-4C3EPMMF.cjs +122 -0
  11. package/dist/chunk-4JINXASC.js +120 -0
  12. package/dist/chunk-5JOF627H.cjs +123 -0
  13. package/dist/chunk-A7DF4ETD.cjs +100 -0
  14. package/dist/chunk-BMA2ORRT.js +152 -0
  15. package/dist/chunk-CWSDZEZG.cjs +139 -0
  16. package/dist/chunk-DVPP5S6I.js +135 -0
  17. package/dist/chunk-FV45V6WC.cjs +43 -0
  18. package/dist/chunk-GV52BII2.cjs +160 -0
  19. package/dist/chunk-ILW7XYNJ.js +296 -0
  20. package/dist/chunk-L7XE5QTW.js +16 -0
  21. package/dist/chunk-M56ECCHK.cjs +128 -0
  22. package/dist/chunk-QH6XWSXP.cjs +5579 -0
  23. package/dist/chunk-QN4KF3BH.cjs +18 -0
  24. package/dist/chunk-RBQASTUP.js +203 -0
  25. package/dist/chunk-TRDNDNGQ.js +40 -0
  26. package/dist/chunk-VB7KH62D.cjs +51 -0
  27. package/dist/chunk-VK6FX47H.js +5576 -0
  28. package/dist/chunk-X37I6GZT.cjs +308 -0
  29. package/dist/chunk-YNSGUC2O.js +116 -0
  30. package/dist/chunk-ZLBRQFDD.cjs +13 -0
  31. package/dist/index.cjs +2 -0
  32. package/dist/index.d.cts +1 -0
  33. package/dist/index.d.ts +1 -0
  34. package/dist/index.js +1 -0
  35. package/dist/server/handlers/agents.cjs +30 -0
  36. package/dist/server/handlers/agents.d.cts +6 -0
  37. package/dist/server/handlers/agents.d.ts +6 -0
  38. package/dist/server/handlers/agents.js +1 -0
  39. package/dist/server/handlers/error.cjs +10 -0
  40. package/dist/server/handlers/error.d.cts +1 -0
  41. package/dist/server/handlers/error.d.ts +1 -0
  42. package/dist/server/handlers/error.js +1 -0
  43. package/dist/server/handlers/logs.cjs +18 -0
  44. package/dist/server/handlers/logs.d.cts +3 -0
  45. package/dist/server/handlers/logs.d.ts +3 -0
  46. package/dist/server/handlers/logs.js +1 -0
  47. package/dist/server/handlers/memory.cjs +38 -0
  48. package/dist/server/handlers/memory.d.cts +8 -0
  49. package/dist/server/handlers/memory.d.ts +8 -0
  50. package/dist/server/handlers/memory.js +1 -0
  51. package/dist/server/handlers/network.cjs +22 -0
  52. package/dist/server/handlers/network.d.cts +4 -0
  53. package/dist/server/handlers/network.d.ts +4 -0
  54. package/dist/server/handlers/network.js +1 -0
  55. package/dist/server/handlers/telemetry.cjs +14 -0
  56. package/dist/server/handlers/telemetry.d.cts +2 -0
  57. package/dist/server/handlers/telemetry.d.ts +2 -0
  58. package/dist/server/handlers/telemetry.js +1 -0
  59. package/dist/server/handlers/tools.cjs +22 -0
  60. package/dist/server/handlers/tools.d.cts +4 -0
  61. package/dist/server/handlers/tools.d.ts +4 -0
  62. package/dist/server/handlers/tools.js +1 -0
  63. package/dist/server/handlers/utils.cjs +10 -0
  64. package/dist/server/handlers/utils.d.cts +1 -0
  65. package/dist/server/handlers/utils.d.ts +1 -0
  66. package/dist/server/handlers/utils.js +1 -0
  67. package/dist/server/handlers/vector.cjs +30 -0
  68. package/dist/server/handlers/vector.d.cts +6 -0
  69. package/dist/server/handlers/vector.d.ts +6 -0
  70. package/dist/server/handlers/vector.js +1 -0
  71. package/dist/server/handlers/voice.cjs +18 -0
  72. package/dist/server/handlers/voice.d.cts +3 -0
  73. package/dist/server/handlers/voice.d.ts +3 -0
  74. package/dist/server/handlers/voice.js +1 -0
  75. package/dist/server/handlers/workflows.cjs +46 -0
  76. package/dist/server/handlers/workflows.d.cts +10 -0
  77. package/dist/server/handlers/workflows.d.ts +10 -0
  78. package/dist/server/handlers/workflows.js +1 -0
  79. package/dist/server/handlers.cjs +50 -0
  80. package/dist/server/handlers.d.cts +9 -0
  81. package/dist/server/handlers.d.ts +9 -0
  82. package/dist/server/handlers.js +9 -0
  83. package/package.json +71 -0
@@ -0,0 +1,2 @@
1
+ export { getTelemetryHandler } from '../../_tsup-dts-rollup.js';
2
+ export { storeTelemetryHandler } from '../../_tsup-dts-rollup.js';
@@ -0,0 +1 @@
1
+ export { getTelemetryHandler, storeTelemetryHandler } from '../../chunk-DVPP5S6I.js';
@@ -0,0 +1,22 @@
1
+ 'use strict';
2
+
3
+ var chunk4C3EPMMF_cjs = require('../../chunk-4C3EPMMF.cjs');
4
+
5
+
6
+
7
+ Object.defineProperty(exports, "executeAgentToolHandler", {
8
+ enumerable: true,
9
+ get: function () { return chunk4C3EPMMF_cjs.executeAgentToolHandler; }
10
+ });
11
+ Object.defineProperty(exports, "executeToolHandler", {
12
+ enumerable: true,
13
+ get: function () { return chunk4C3EPMMF_cjs.executeToolHandler; }
14
+ });
15
+ Object.defineProperty(exports, "getToolByIdHandler", {
16
+ enumerable: true,
17
+ get: function () { return chunk4C3EPMMF_cjs.getToolByIdHandler; }
18
+ });
19
+ Object.defineProperty(exports, "getToolsHandler", {
20
+ enumerable: true,
21
+ get: function () { return chunk4C3EPMMF_cjs.getToolsHandler; }
22
+ });
@@ -0,0 +1,4 @@
1
+ export { getToolsHandler } from '../../_tsup-dts-rollup.cjs';
2
+ export { getToolByIdHandler } from '../../_tsup-dts-rollup.cjs';
3
+ export { executeToolHandler } from '../../_tsup-dts-rollup.cjs';
4
+ export { executeAgentToolHandler } from '../../_tsup-dts-rollup.cjs';
@@ -0,0 +1,4 @@
1
+ export { getToolsHandler } from '../../_tsup-dts-rollup.js';
2
+ export { getToolByIdHandler } from '../../_tsup-dts-rollup.js';
3
+ export { executeToolHandler } from '../../_tsup-dts-rollup.js';
4
+ export { executeAgentToolHandler } from '../../_tsup-dts-rollup.js';
@@ -0,0 +1 @@
1
+ export { executeAgentToolHandler, executeToolHandler, getToolByIdHandler, getToolsHandler } from '../../chunk-YNSGUC2O.js';
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+
3
+ var chunkQN4KF3BH_cjs = require('../../chunk-QN4KF3BH.cjs');
4
+
5
+
6
+
7
+ Object.defineProperty(exports, "validateBody", {
8
+ enumerable: true,
9
+ get: function () { return chunkQN4KF3BH_cjs.validateBody; }
10
+ });
@@ -0,0 +1 @@
1
+ export { validateBody } from '../../_tsup-dts-rollup.cjs';
@@ -0,0 +1 @@
1
+ export { validateBody } from '../../_tsup-dts-rollup.js';
@@ -0,0 +1 @@
1
+ export { validateBody } from '../../chunk-L7XE5QTW.js';
@@ -0,0 +1,30 @@
1
+ 'use strict';
2
+
3
+ var chunkM56ECCHK_cjs = require('../../chunk-M56ECCHK.cjs');
4
+
5
+
6
+
7
+ Object.defineProperty(exports, "createIndex", {
8
+ enumerable: true,
9
+ get: function () { return chunkM56ECCHK_cjs.createIndex; }
10
+ });
11
+ Object.defineProperty(exports, "deleteIndex", {
12
+ enumerable: true,
13
+ get: function () { return chunkM56ECCHK_cjs.deleteIndex; }
14
+ });
15
+ Object.defineProperty(exports, "describeIndex", {
16
+ enumerable: true,
17
+ get: function () { return chunkM56ECCHK_cjs.describeIndex; }
18
+ });
19
+ Object.defineProperty(exports, "listIndexes", {
20
+ enumerable: true,
21
+ get: function () { return chunkM56ECCHK_cjs.listIndexes; }
22
+ });
23
+ Object.defineProperty(exports, "queryVectors", {
24
+ enumerable: true,
25
+ get: function () { return chunkM56ECCHK_cjs.queryVectors; }
26
+ });
27
+ Object.defineProperty(exports, "upsertVectors", {
28
+ enumerable: true,
29
+ get: function () { return chunkM56ECCHK_cjs.upsertVectors; }
30
+ });
@@ -0,0 +1,6 @@
1
+ export { upsertVectors } from '../../_tsup-dts-rollup.cjs';
2
+ export { createIndex } from '../../_tsup-dts-rollup.cjs';
3
+ export { queryVectors } from '../../_tsup-dts-rollup.cjs';
4
+ export { listIndexes } from '../../_tsup-dts-rollup.cjs';
5
+ export { describeIndex } from '../../_tsup-dts-rollup.cjs';
6
+ export { deleteIndex } from '../../_tsup-dts-rollup.cjs';
@@ -0,0 +1,6 @@
1
+ export { upsertVectors } from '../../_tsup-dts-rollup.js';
2
+ export { createIndex } from '../../_tsup-dts-rollup.js';
3
+ export { queryVectors } from '../../_tsup-dts-rollup.js';
4
+ export { listIndexes } from '../../_tsup-dts-rollup.js';
5
+ export { describeIndex } from '../../_tsup-dts-rollup.js';
6
+ export { deleteIndex } from '../../_tsup-dts-rollup.js';
@@ -0,0 +1 @@
1
+ export { createIndex, deleteIndex, describeIndex, listIndexes, queryVectors, upsertVectors } from '../../chunk-4JINXASC.js';
@@ -0,0 +1,18 @@
1
+ 'use strict';
2
+
3
+ var chunkA7DF4ETD_cjs = require('../../chunk-A7DF4ETD.cjs');
4
+
5
+
6
+
7
+ Object.defineProperty(exports, "generateSpeechHandler", {
8
+ enumerable: true,
9
+ get: function () { return chunkA7DF4ETD_cjs.generateSpeechHandler; }
10
+ });
11
+ Object.defineProperty(exports, "getSpeakersHandler", {
12
+ enumerable: true,
13
+ get: function () { return chunkA7DF4ETD_cjs.getSpeakersHandler; }
14
+ });
15
+ Object.defineProperty(exports, "transcribeSpeechHandler", {
16
+ enumerable: true,
17
+ get: function () { return chunkA7DF4ETD_cjs.transcribeSpeechHandler; }
18
+ });
@@ -0,0 +1,3 @@
1
+ export { getSpeakersHandler } from '../../_tsup-dts-rollup.cjs';
2
+ export { generateSpeechHandler } from '../../_tsup-dts-rollup.cjs';
3
+ export { transcribeSpeechHandler } from '../../_tsup-dts-rollup.cjs';
@@ -0,0 +1,3 @@
1
+ export { getSpeakersHandler } from '../../_tsup-dts-rollup.js';
2
+ export { generateSpeechHandler } from '../../_tsup-dts-rollup.js';
3
+ export { transcribeSpeechHandler } from '../../_tsup-dts-rollup.js';
@@ -0,0 +1 @@
1
+ export { generateSpeechHandler, getSpeakersHandler, transcribeSpeechHandler } from '../../chunk-3RVHWGWO.js';
@@ -0,0 +1,46 @@
1
+ 'use strict';
2
+
3
+ var chunkX37I6GZT_cjs = require('../../chunk-X37I6GZT.cjs');
4
+
5
+
6
+
7
+ Object.defineProperty(exports, "createRunHandler", {
8
+ enumerable: true,
9
+ get: function () { return chunkX37I6GZT_cjs.createRunHandler; }
10
+ });
11
+ Object.defineProperty(exports, "getWorkflowByIdHandler", {
12
+ enumerable: true,
13
+ get: function () { return chunkX37I6GZT_cjs.getWorkflowByIdHandler; }
14
+ });
15
+ Object.defineProperty(exports, "getWorkflowRunHandler", {
16
+ enumerable: true,
17
+ get: function () { return chunkX37I6GZT_cjs.getWorkflowRunHandler; }
18
+ });
19
+ Object.defineProperty(exports, "getWorkflowRunsHandler", {
20
+ enumerable: true,
21
+ get: function () { return chunkX37I6GZT_cjs.getWorkflowRunsHandler; }
22
+ });
23
+ Object.defineProperty(exports, "getWorkflowsHandler", {
24
+ enumerable: true,
25
+ get: function () { return chunkX37I6GZT_cjs.getWorkflowsHandler; }
26
+ });
27
+ Object.defineProperty(exports, "resumeAsyncWorkflowHandler", {
28
+ enumerable: true,
29
+ get: function () { return chunkX37I6GZT_cjs.resumeAsyncWorkflowHandler; }
30
+ });
31
+ Object.defineProperty(exports, "resumeWorkflowHandler", {
32
+ enumerable: true,
33
+ get: function () { return chunkX37I6GZT_cjs.resumeWorkflowHandler; }
34
+ });
35
+ Object.defineProperty(exports, "startAsyncWorkflowHandler", {
36
+ enumerable: true,
37
+ get: function () { return chunkX37I6GZT_cjs.startAsyncWorkflowHandler; }
38
+ });
39
+ Object.defineProperty(exports, "startWorkflowRunHandler", {
40
+ enumerable: true,
41
+ get: function () { return chunkX37I6GZT_cjs.startWorkflowRunHandler; }
42
+ });
43
+ Object.defineProperty(exports, "watchWorkflowHandler", {
44
+ enumerable: true,
45
+ get: function () { return chunkX37I6GZT_cjs.watchWorkflowHandler; }
46
+ });
@@ -0,0 +1,10 @@
1
+ export { getWorkflowsHandler } from '../../_tsup-dts-rollup.cjs';
2
+ export { getWorkflowByIdHandler } from '../../_tsup-dts-rollup.cjs';
3
+ export { startAsyncWorkflowHandler } from '../../_tsup-dts-rollup.cjs';
4
+ export { getWorkflowRunHandler } from '../../_tsup-dts-rollup.cjs';
5
+ export { createRunHandler } from '../../_tsup-dts-rollup.cjs';
6
+ export { startWorkflowRunHandler } from '../../_tsup-dts-rollup.cjs';
7
+ export { watchWorkflowHandler } from '../../_tsup-dts-rollup.cjs';
8
+ export { resumeAsyncWorkflowHandler } from '../../_tsup-dts-rollup.cjs';
9
+ export { resumeWorkflowHandler } from '../../_tsup-dts-rollup.cjs';
10
+ export { getWorkflowRunsHandler } from '../../_tsup-dts-rollup.cjs';
@@ -0,0 +1,10 @@
1
+ export { getWorkflowsHandler } from '../../_tsup-dts-rollup.js';
2
+ export { getWorkflowByIdHandler } from '../../_tsup-dts-rollup.js';
3
+ export { startAsyncWorkflowHandler } from '../../_tsup-dts-rollup.js';
4
+ export { getWorkflowRunHandler } from '../../_tsup-dts-rollup.js';
5
+ export { createRunHandler } from '../../_tsup-dts-rollup.js';
6
+ export { startWorkflowRunHandler } from '../../_tsup-dts-rollup.js';
7
+ export { watchWorkflowHandler } from '../../_tsup-dts-rollup.js';
8
+ export { resumeAsyncWorkflowHandler } from '../../_tsup-dts-rollup.js';
9
+ export { resumeWorkflowHandler } from '../../_tsup-dts-rollup.js';
10
+ export { getWorkflowRunsHandler } from '../../_tsup-dts-rollup.js';
@@ -0,0 +1 @@
1
+ export { createRunHandler, getWorkflowByIdHandler, getWorkflowRunHandler, getWorkflowRunsHandler, getWorkflowsHandler, resumeAsyncWorkflowHandler, resumeWorkflowHandler, startAsyncWorkflowHandler, startWorkflowRunHandler, watchWorkflowHandler } from '../../chunk-ILW7XYNJ.js';
@@ -0,0 +1,50 @@
1
+ 'use strict';
2
+
3
+ var chunk4C3EPMMF_cjs = require('../chunk-4C3EPMMF.cjs');
4
+ var chunkM56ECCHK_cjs = require('../chunk-M56ECCHK.cjs');
5
+ var chunkA7DF4ETD_cjs = require('../chunk-A7DF4ETD.cjs');
6
+ var chunkX37I6GZT_cjs = require('../chunk-X37I6GZT.cjs');
7
+ var chunkGV52BII2_cjs = require('../chunk-GV52BII2.cjs');
8
+ var chunkVB7KH62D_cjs = require('../chunk-VB7KH62D.cjs');
9
+ var chunk2FJURXCL_cjs = require('../chunk-2FJURXCL.cjs');
10
+ var chunk5JOF627H_cjs = require('../chunk-5JOF627H.cjs');
11
+ var chunkCWSDZEZG_cjs = require('../chunk-CWSDZEZG.cjs');
12
+
13
+
14
+
15
+ Object.defineProperty(exports, "tools", {
16
+ enumerable: true,
17
+ get: function () { return chunk4C3EPMMF_cjs.tools_exports; }
18
+ });
19
+ Object.defineProperty(exports, "vector", {
20
+ enumerable: true,
21
+ get: function () { return chunkM56ECCHK_cjs.vector_exports; }
22
+ });
23
+ Object.defineProperty(exports, "voice", {
24
+ enumerable: true,
25
+ get: function () { return chunkA7DF4ETD_cjs.voice_exports; }
26
+ });
27
+ Object.defineProperty(exports, "workflows", {
28
+ enumerable: true,
29
+ get: function () { return chunkX37I6GZT_cjs.workflows_exports; }
30
+ });
31
+ Object.defineProperty(exports, "agents", {
32
+ enumerable: true,
33
+ get: function () { return chunkGV52BII2_cjs.agents_exports; }
34
+ });
35
+ Object.defineProperty(exports, "logs", {
36
+ enumerable: true,
37
+ get: function () { return chunkVB7KH62D_cjs.logs_exports; }
38
+ });
39
+ Object.defineProperty(exports, "memory", {
40
+ enumerable: true,
41
+ get: function () { return chunk2FJURXCL_cjs.memory_exports; }
42
+ });
43
+ Object.defineProperty(exports, "network", {
44
+ enumerable: true,
45
+ get: function () { return chunk5JOF627H_cjs.network_exports; }
46
+ });
47
+ Object.defineProperty(exports, "telemetry", {
48
+ enumerable: true,
49
+ get: function () { return chunkCWSDZEZG_cjs.telemetry_exports; }
50
+ });
@@ -0,0 +1,9 @@
1
+ export { agents } from '../_tsup-dts-rollup.cjs';
2
+ export { logs } from '../_tsup-dts-rollup.cjs';
3
+ export { memory } from '../_tsup-dts-rollup.cjs';
4
+ export { network } from '../_tsup-dts-rollup.cjs';
5
+ export { telemetry } from '../_tsup-dts-rollup.cjs';
6
+ export { tools } from '../_tsup-dts-rollup.cjs';
7
+ export { workflows } from '../_tsup-dts-rollup.cjs';
8
+ export { vector } from '../_tsup-dts-rollup.cjs';
9
+ export { voice } from '../_tsup-dts-rollup.cjs';
@@ -0,0 +1,9 @@
1
+ export { agents } from '../_tsup-dts-rollup.js';
2
+ export { logs } from '../_tsup-dts-rollup.js';
3
+ export { memory } from '../_tsup-dts-rollup.js';
4
+ export { network } from '../_tsup-dts-rollup.js';
5
+ export { telemetry } from '../_tsup-dts-rollup.js';
6
+ export { tools } from '../_tsup-dts-rollup.js';
7
+ export { workflows } from '../_tsup-dts-rollup.js';
8
+ export { vector } from '../_tsup-dts-rollup.js';
9
+ export { voice } from '../_tsup-dts-rollup.js';
@@ -0,0 +1,9 @@
1
+ export { tools_exports as tools } from '../chunk-YNSGUC2O.js';
2
+ export { vector_exports as vector } from '../chunk-4JINXASC.js';
3
+ export { voice_exports as voice } from '../chunk-3RVHWGWO.js';
4
+ export { workflows_exports as workflows } from '../chunk-ILW7XYNJ.js';
5
+ export { agents_exports as agents } from '../chunk-BMA2ORRT.js';
6
+ export { logs_exports as logs } from '../chunk-2JQC6JWP.js';
7
+ export { memory_exports as memory } from '../chunk-RBQASTUP.js';
8
+ export { network_exports as network } from '../chunk-2YONKUWB.js';
9
+ export { telemetry_exports as telemetry } from '../chunk-DVPP5S6I.js';
package/package.json ADDED
@@ -0,0 +1,71 @@
1
+ {
2
+ "name": "@mastra/server",
3
+ "version": "0.0.0-default-storage-virtual-file-20250410035748",
4
+ "description": "",
5
+ "type": "module",
6
+ "files": [
7
+ "dist"
8
+ ],
9
+ "main": "dist/index.js",
10
+ "types": "dist/index.d.ts",
11
+ "exports": {
12
+ ".": {
13
+ "import": {
14
+ "types": "./dist/index.d.ts",
15
+ "default": "./dist/index.js"
16
+ },
17
+ "require": {
18
+ "types": "./dist/index.d.cts",
19
+ "default": "./dist/index.cjs"
20
+ }
21
+ },
22
+ "./handlers": {
23
+ "import": {
24
+ "types": "./dist/server/handlers.d.ts",
25
+ "default": "./dist/server/handlers.js"
26
+ },
27
+ "require": {
28
+ "types": "./dist/server/handlers.d.cts",
29
+ "default": "./dist/server/handlers.cjs"
30
+ }
31
+ },
32
+ "./handlers/*": {
33
+ "import": {
34
+ "types": "./dist/server/handlers/*.d.ts",
35
+ "default": "./dist/server/handlers/*.js"
36
+ },
37
+ "require": {
38
+ "types": "./dist/server/handlers/*.d.cts",
39
+ "default": "./dist/server/handlers/*.cjs"
40
+ }
41
+ },
42
+ "./package.json": "./package.json"
43
+ },
44
+ "keywords": [],
45
+ "author": "",
46
+ "license": "ISC",
47
+ "dependencies": {},
48
+ "peerDependencies": {
49
+ "@mastra/core": "0.0.0-default-storage-virtual-file-20250410035748"
50
+ },
51
+ "devDependencies": {
52
+ "@ai-sdk/openai": "^1.3.2",
53
+ "@microsoft/api-extractor": "^7.52.1",
54
+ "@types/node": "^20.17.27",
55
+ "eslint": "^9.23.0",
56
+ "superjson": "^2.2.2",
57
+ "tsup": "^8.4.0",
58
+ "typescript": "^5.8.2",
59
+ "vitest": "^2.1.9",
60
+ "zod-to-json-schema": "^3.24.3",
61
+ "@internal/lint": "0.0.1",
62
+ "@mastra/core": "0.0.0-default-storage-virtual-file-20250410035748"
63
+ },
64
+ "scripts": {
65
+ "build": "tsup src/index.ts src/server/handlers.ts src/server/handlers/*.ts !src/server/handlers/*.test.ts --format esm,cjs --clean --experimental-dts --treeshake=smallest --splitting",
66
+ "build:watch": "pnpm build --watch",
67
+ "pull:openapispec": "node src/server/openapi.script.js",
68
+ "test": "vitest run",
69
+ "lint": "eslint ."
70
+ }
71
+ }