@mongoosejs/studio 0.2.8 → 0.2.9
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.
|
@@ -66,7 +66,7 @@ module.exports = ({ db }) => async function getDashboard(params) {
|
|
|
66
66
|
);
|
|
67
67
|
});
|
|
68
68
|
|
|
69
|
-
return { dashboard, dashboardResult };
|
|
69
|
+
return { dashboard, dashboardResult, result };
|
|
70
70
|
} catch (error) {
|
|
71
71
|
return { dashboard, error: { message: error.message } };
|
|
72
72
|
}
|
package/backend/next.js
CHANGED
|
@@ -5,9 +5,66 @@ const Backend = require('./');
|
|
|
5
5
|
module.exports = function next(conn, options) {
|
|
6
6
|
const backend = Backend(conn, options?.studioConnection, options);
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
const mothershipUrl = options?._mothershipUrl || 'https://mongoose-js.netlify.app/.netlify/functions';
|
|
9
|
+
let workspace = null;
|
|
10
|
+
|
|
11
|
+
return async function wrappedNextJSFunction(req, res) {
|
|
12
|
+
const params = { ...req.query, ...req.body, ...req.params, authorization: req.headers.authorization };
|
|
10
13
|
const actionName = params?.action;
|
|
14
|
+
|
|
15
|
+
const authorization = params?.authorization;
|
|
16
|
+
if (options?.apiKey) {
|
|
17
|
+
if (!authorization) {
|
|
18
|
+
throw new Error('Not authorized');
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
if (workspace == null) {
|
|
22
|
+
({ workspace } = await fetch(`${mothershipUrl}/getWorkspace`, {
|
|
23
|
+
method: 'POST',
|
|
24
|
+
body: JSON.stringify({ apiKey: options.apiKey }),
|
|
25
|
+
headers: {
|
|
26
|
+
Authorization: `Bearer ${options.apiKey}`,
|
|
27
|
+
'Content-Type': 'application/json'
|
|
28
|
+
}
|
|
29
|
+
})
|
|
30
|
+
.then(response => {
|
|
31
|
+
if (response.status < 200 || response.status >= 400) {
|
|
32
|
+
return response.json().then(data => {
|
|
33
|
+
throw new Error(`Error getting workspace ${response.status}: ${require('util').inspect(data)}`);
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
return response;
|
|
37
|
+
})
|
|
38
|
+
.then(res => res.json()));
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
const { user, roles } = await fetch(`${mothershipUrl}/me?`, {
|
|
42
|
+
method: 'POST',
|
|
43
|
+
body: JSON.stringify({ workspaceId: workspace._id }),
|
|
44
|
+
headers: {
|
|
45
|
+
Authorization: authorization,
|
|
46
|
+
'Content-Type': 'application/json'
|
|
47
|
+
}
|
|
48
|
+
})
|
|
49
|
+
.then(response => {
|
|
50
|
+
if (response.status < 200 || response.status >= 400) {
|
|
51
|
+
return response.json().then(data => {
|
|
52
|
+
throw new Error(`Mongoose Studio API Key Error ${response.status}: ${require('util').inspect(data)}`);
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
return response;
|
|
56
|
+
})
|
|
57
|
+
.then(res => res.json());
|
|
58
|
+
if (!user || !roles) {
|
|
59
|
+
throw new Error('Not authorized');
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
params.$workspaceId = workspace._id;
|
|
63
|
+
params.roles = roles;
|
|
64
|
+
params.userId = user._id;
|
|
65
|
+
params.initiatedById = user._id;
|
|
66
|
+
}
|
|
67
|
+
|
|
11
68
|
if (typeof actionName !== 'string') {
|
|
12
69
|
throw new Error('No action specified');
|
|
13
70
|
}
|
|
@@ -24,7 +81,10 @@ module.exports = function next(conn, options) {
|
|
|
24
81
|
}
|
|
25
82
|
|
|
26
83
|
return actionFn(params)
|
|
27
|
-
.then(result =>
|
|
84
|
+
.then(result => {
|
|
85
|
+
res.status(200).json(result);
|
|
86
|
+
return result;
|
|
87
|
+
})
|
|
28
88
|
.catch(error => res.status(500).json({ message: error.message }));
|
|
29
89
|
};
|
|
30
90
|
};
|
package/frontend/public/app.js
CHANGED
|
@@ -35732,7 +35732,7 @@ module.exports = FilterXSS;
|
|
|
35732
35732
|
(module) {
|
|
35733
35733
|
|
|
35734
35734
|
"use strict";
|
|
35735
|
-
module.exports = /*#__PURE__*/JSON.parse('{"name":"@mongoosejs/studio","version":"0.2.
|
|
35735
|
+
module.exports = /*#__PURE__*/JSON.parse('{"name":"@mongoosejs/studio","version":"0.2.9","description":"A Mongoose-native MongoDB UI with schema-aware autocomplete, AI-assisted queries, and dashboards that understand your models - not just your data.","homepage":"https://mongoosestudio.app/","repository":{"type":"git","url":"https://github.com/mongoosejs/studio"},"license":"Apache-2.0","dependencies":{"@ai-sdk/anthropic":"2.x","@ai-sdk/google":"2.x","@ai-sdk/openai":"2.x","ai":"5.x","archetype":"0.13.1","csv-stringify":"6.3.0","ejson":"^2.2.3","extrovert":"^0.2.0","marked":"15.0.12","node-inspect-extracted":"3.x","tailwindcss":"3.4.0","vue":"3.x","vue-toastification":"^2.0.0-rc.5","webpack":"5.x","xss":"^1.0.15"},"peerDependencies":{"mongoose":"7.x || 8.x || ^9.0.0"},"devDependencies":{"@masteringjs/eslint-config":"0.1.1","axios":"1.2.2","dedent":"^1.6.0","eslint":"9.30.0","express":"4.x","mocha":"10.2.0","mongoose":"9.x","sinon":"^21.0.1"},"scripts":{"lint":"eslint .","tailwind":"tailwindcss -o ./frontend/public/tw.css","tailwind:watch":"tailwindcss -o ./frontend/public/tw.css --watch","test":"mocha test/*.test.js","test:frontend":"mocha test/frontend/*.test.js"}}');
|
|
35736
35736
|
|
|
35737
35737
|
/***/ }
|
|
35738
35738
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mongoosejs/studio",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.9",
|
|
4
4
|
"description": "A Mongoose-native MongoDB UI with schema-aware autocomplete, AI-assisted queries, and dashboards that understand your models - not just your data.",
|
|
5
5
|
"homepage": "https://mongoosestudio.app/",
|
|
6
6
|
"repository": {
|