@jskit-ai/workspaces-core 0.1.33 → 0.1.34
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/package.descriptor.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export default Object.freeze({
|
|
2
2
|
packageVersion: 1,
|
|
3
3
|
packageId: "@jskit-ai/workspaces-core",
|
|
4
|
-
version: "0.1.
|
|
4
|
+
version: "0.1.34",
|
|
5
5
|
kind: "runtime",
|
|
6
6
|
description: "Workspace tenancy runtime plus HTTP routes, role catalog, and workspace config scaffolding.",
|
|
7
7
|
dependsOn: [
|
|
@@ -116,10 +116,10 @@ export default Object.freeze({
|
|
|
116
116
|
mutations: {
|
|
117
117
|
dependencies: {
|
|
118
118
|
runtime: {
|
|
119
|
-
"@jskit-ai/json-rest-api-core": "0.1.
|
|
120
|
-
"@jskit-ai/resource-core": "0.1.
|
|
121
|
-
"@jskit-ai/resource-crud-core": "0.1.
|
|
122
|
-
"@jskit-ai/users-core": "0.1.
|
|
119
|
+
"@jskit-ai/json-rest-api-core": "0.1.3",
|
|
120
|
+
"@jskit-ai/resource-core": "0.1.3",
|
|
121
|
+
"@jskit-ai/resource-crud-core": "0.1.3",
|
|
122
|
+
"@jskit-ai/users-core": "0.1.68"
|
|
123
123
|
},
|
|
124
124
|
dev: {}
|
|
125
125
|
},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jskit-ai/workspaces-core",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.34",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"test": "node --test"
|
|
@@ -17,14 +17,14 @@
|
|
|
17
17
|
"./shared/resources/workspaceSettingsResource": "./src/shared/resources/workspaceSettingsResource.js"
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@jskit-ai/auth-core": "0.1.
|
|
21
|
-
"@jskit-ai/database-runtime": "0.1.
|
|
22
|
-
"@jskit-ai/http-runtime": "0.1.
|
|
23
|
-
"@jskit-ai/json-rest-api-core": "0.1.
|
|
24
|
-
"@jskit-ai/kernel": "0.1.
|
|
25
|
-
"@jskit-ai/resource-crud-core": "0.1.
|
|
26
|
-
"@jskit-ai/resource-core": "0.1.
|
|
27
|
-
"@jskit-ai/users-core": "0.1.
|
|
20
|
+
"@jskit-ai/auth-core": "0.1.57",
|
|
21
|
+
"@jskit-ai/database-runtime": "0.1.58",
|
|
22
|
+
"@jskit-ai/http-runtime": "0.1.57",
|
|
23
|
+
"@jskit-ai/json-rest-api-core": "0.1.3",
|
|
24
|
+
"@jskit-ai/kernel": "0.1.58",
|
|
25
|
+
"@jskit-ai/resource-crud-core": "0.1.3",
|
|
26
|
+
"@jskit-ai/resource-core": "0.1.3",
|
|
27
|
+
"@jskit-ai/users-core": "0.1.68",
|
|
28
28
|
"json-rest-schema": "1.x.x"
|
|
29
29
|
}
|
|
30
30
|
}
|
|
@@ -84,12 +84,19 @@ function createRepository({ api, knex } = {}) {
|
|
|
84
84
|
|
|
85
85
|
const withTransaction = createWithTransaction(knex);
|
|
86
86
|
|
|
87
|
-
async function queryMemberships(filters = {}, options = {}, {
|
|
87
|
+
async function queryMemberships(filters = {}, options = {}, { include = [] } = {}) {
|
|
88
|
+
const normalizedInclude = Array.from(
|
|
89
|
+
new Set(
|
|
90
|
+
(Array.isArray(include) ? include : [])
|
|
91
|
+
.map((entry) => normalizeText(entry))
|
|
92
|
+
.filter(Boolean)
|
|
93
|
+
)
|
|
94
|
+
);
|
|
88
95
|
const result = await api.resources.workspaceMemberships.query(
|
|
89
96
|
{
|
|
90
97
|
queryParams: {
|
|
91
98
|
filters,
|
|
92
|
-
...(
|
|
99
|
+
...(normalizedInclude.length > 0 ? { include: normalizedInclude } : {})
|
|
93
100
|
},
|
|
94
101
|
transaction: options?.trx || null,
|
|
95
102
|
simplified: false
|
|
@@ -263,7 +270,7 @@ function createRepository({ api, knex } = {}) {
|
|
|
263
270
|
status: "active"
|
|
264
271
|
},
|
|
265
272
|
options,
|
|
266
|
-
{
|
|
273
|
+
{ include: ["user"] }
|
|
267
274
|
);
|
|
268
275
|
|
|
269
276
|
const members = rows
|
|
@@ -48,13 +48,15 @@ function createWorkspaceMembershipsApiStub({
|
|
|
48
48
|
} = {}) {
|
|
49
49
|
const state = {
|
|
50
50
|
postPayload: null,
|
|
51
|
-
patchPayload: null
|
|
51
|
+
patchPayload: null,
|
|
52
|
+
queryCalls: []
|
|
52
53
|
};
|
|
53
54
|
|
|
54
55
|
const api = {
|
|
55
56
|
resources: {
|
|
56
57
|
workspaceMemberships: {
|
|
57
58
|
async query({ queryParams }) {
|
|
59
|
+
state.queryCalls.push(queryParams || {});
|
|
58
60
|
const filters = queryParams?.filters || {};
|
|
59
61
|
const includeUser = Array.isArray(queryParams?.include) && queryParams.include.includes("user");
|
|
60
62
|
|
|
@@ -250,3 +252,23 @@ test("workspaceMembershipsRepository.listActiveByWorkspaceId keeps summary rows
|
|
|
250
252
|
}
|
|
251
253
|
]);
|
|
252
254
|
});
|
|
255
|
+
|
|
256
|
+
test("workspaceMembershipsRepository.listActiveWorkspaceIdsByUserId returns normalized workspace ids from the canonical resource", async () => {
|
|
257
|
+
const membershipRow = {
|
|
258
|
+
id: "11",
|
|
259
|
+
workspace: { id: "7" },
|
|
260
|
+
user: { id: "9" },
|
|
261
|
+
roleSid: "owner",
|
|
262
|
+
status: "active",
|
|
263
|
+
createdAt: "2026-03-09 00:26:35.710",
|
|
264
|
+
updatedAt: "2026-03-10 00:26:35.710"
|
|
265
|
+
};
|
|
266
|
+
const { api } = createWorkspaceMembershipsApiStub({
|
|
267
|
+
rowByComposite: new Map([["7:9", membershipRow]])
|
|
268
|
+
});
|
|
269
|
+
const repository = createRepository({ api, knex: createKnexStub() });
|
|
270
|
+
|
|
271
|
+
const workspaceIds = await repository.listActiveWorkspaceIdsByUserId("9");
|
|
272
|
+
|
|
273
|
+
assert.deepEqual(workspaceIds, ["7"]);
|
|
274
|
+
});
|