@nextsparkjs/core 0.1.0-beta.176 → 0.1.0-beta.177
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/dist/components/permissions/PermissionsMatrix.d.ts.map +1 -1
- package/dist/components/permissions/PermissionsMatrix.js +5 -4
- package/dist/components/teams/InviteMemberDialog.js +1 -1
- package/dist/components/teams/TeamMembersList.js +1 -1
- package/dist/lib/actions/team.actions.d.ts.map +1 -1
- package/dist/lib/actions/team.actions.js +7 -5
- package/dist/lib/auth.d.ts.map +1 -1
- package/dist/lib/auth.js +3 -3
- package/dist/lib/config/app.config.js +60 -60
- package/dist/lib/config/config-sync.d.ts.map +1 -1
- package/dist/lib/config/config-sync.js +14 -9
- package/dist/lib/config/roles-merge.d.ts +0 -77
- package/dist/lib/config/roles-merge.d.ts.map +1 -1
- package/dist/lib/config/roles-merge.js +1 -98
- package/dist/lib/config/types.d.ts +6 -2
- package/dist/lib/config/types.d.ts.map +1 -1
- package/dist/lib/services/membership.service.js +2 -2
- package/dist/lib/services/team-member.service.d.ts +2 -2
- package/dist/lib/services/team-member.service.d.ts.map +1 -1
- package/dist/lib/services/team-member.service.js +4 -3
- package/dist/lib/teams/types.d.ts +2 -1
- package/dist/lib/teams/types.d.ts.map +1 -1
- package/dist/lib/teams/types.js +4 -4
- package/dist/styles/classes.json +1 -1
- package/dist/styles/ui.css +1 -1
- package/dist/templates/app/superadmin/team-roles/page.tsx +2 -2
- package/package.json +2 -2
- package/scripts/build/registry/__tests__/team-roles.test.mjs +192 -0
- package/scripts/build/registry/discovery/permissions.mjs +163 -1
- package/scripts/build/registry/generators/permissions-registry.mjs +95 -35
- package/templates/app/superadmin/team-roles/page.tsx +2 -2
- package/tests/jest/__mocks__/@nextsparkjs/registries/permissions-registry.ts +1 -0
|
@@ -283,8 +283,8 @@ class MembershipService {
|
|
|
283
283
|
* @private
|
|
284
284
|
*/
|
|
285
285
|
static getHierarchyForRole(role) {
|
|
286
|
-
var _a;
|
|
287
|
-
const hierarchyConfig = (_a = APP_CONFIG_MERGED.
|
|
286
|
+
var _a, _b;
|
|
287
|
+
const hierarchyConfig = (_b = (_a = APP_CONFIG_MERGED.teams) == null ? void 0 : _a.roles) == null ? void 0 : _b.hierarchy;
|
|
288
288
|
if (!hierarchyConfig) {
|
|
289
289
|
const defaultHierarchy = {
|
|
290
290
|
owner: 100,
|
|
@@ -68,11 +68,11 @@ export declare class TeamMemberService {
|
|
|
68
68
|
* Add user to the global team (for single-tenant invite flow)
|
|
69
69
|
*
|
|
70
70
|
* @param userId - User ID to add
|
|
71
|
-
* @param role - Role to assign (default:
|
|
71
|
+
* @param role - Role to assign (default: APP_CONFIG_MERGED.teams.roles.defaultTeamRole)
|
|
72
72
|
* @param invitedBy - User ID who invited them
|
|
73
73
|
*
|
|
74
74
|
* @example
|
|
75
|
-
* await TeamMemberService.addToGlobal('user-123',
|
|
75
|
+
* await TeamMemberService.addToGlobal('user-123', undefined, 'owner-id')
|
|
76
76
|
*/
|
|
77
77
|
static addToGlobal(userId: string, role?: TeamRole, invitedBy?: string): Promise<void>;
|
|
78
78
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"team-member.service.d.ts","sourceRoot":"","sources":["../../../src/lib/services/team-member.service.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"team-member.service.d.ts","sourceRoot":"","sources":["../../../src/lib/services/team-member.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { APP_CONFIG_MERGED } from "../config/config-sync.js";
|
|
1
2
|
import { queryOneWithRLS, queryWithRLS, mutateWithRLS } from "../db.js";
|
|
2
3
|
import { TeamService } from "./team.service.js";
|
|
3
4
|
class TeamMemberService {
|
|
@@ -129,13 +130,13 @@ class TeamMemberService {
|
|
|
129
130
|
* Add user to the global team (for single-tenant invite flow)
|
|
130
131
|
*
|
|
131
132
|
* @param userId - User ID to add
|
|
132
|
-
* @param role - Role to assign (default:
|
|
133
|
+
* @param role - Role to assign (default: APP_CONFIG_MERGED.teams.roles.defaultTeamRole)
|
|
133
134
|
* @param invitedBy - User ID who invited them
|
|
134
135
|
*
|
|
135
136
|
* @example
|
|
136
|
-
* await TeamMemberService.addToGlobal('user-123',
|
|
137
|
+
* await TeamMemberService.addToGlobal('user-123', undefined, 'owner-id')
|
|
137
138
|
*/
|
|
138
|
-
static async addToGlobal(userId, role =
|
|
139
|
+
static async addToGlobal(userId, role = APP_CONFIG_MERGED.teams.roles.defaultTeamRole, invitedBy) {
|
|
139
140
|
if (!userId || userId.trim() === "") {
|
|
140
141
|
throw new Error("User ID is required");
|
|
141
142
|
}
|
|
@@ -14,7 +14,8 @@ export type CoreTeamRole = 'owner' | 'admin' | 'member' | 'viewer';
|
|
|
14
14
|
/**
|
|
15
15
|
* Team member role - extensible type
|
|
16
16
|
*
|
|
17
|
-
* Themes
|
|
17
|
+
* Themes declare which team roles exist via app.config.ts teams.roles
|
|
18
|
+
* (REPLACE model); role definitions live in permissions.config.ts.
|
|
18
19
|
* The `& {}` trick allows string literals while maintaining autocomplete
|
|
19
20
|
* for the core roles.
|
|
20
21
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/teams/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAQH;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAElE
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/teams/types.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/teams/types.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { APP_CONFIG_MERGED } from "../config/config-sync.js";
|
|
2
2
|
function isValidTeamRole(role) {
|
|
3
|
-
var _a;
|
|
4
|
-
const availableRoles = ((_a = APP_CONFIG_MERGED.
|
|
3
|
+
var _a, _b;
|
|
4
|
+
const availableRoles = ((_b = (_a = APP_CONFIG_MERGED.teams) == null ? void 0 : _a.roles) == null ? void 0 : _b.availableTeamRoles) ?? [];
|
|
5
5
|
return availableRoles.includes(role);
|
|
6
6
|
}
|
|
7
7
|
function getAvailableTeamRoles() {
|
|
8
|
-
var _a;
|
|
9
|
-
return ((_a = APP_CONFIG_MERGED.
|
|
8
|
+
var _a, _b;
|
|
9
|
+
return ((_b = (_a = APP_CONFIG_MERGED.teams) == null ? void 0 : _a.roles) == null ? void 0 : _b.availableTeamRoles) ?? ["owner"];
|
|
10
10
|
}
|
|
11
11
|
export {
|
|
12
12
|
getAvailableTeamRoles,
|
package/dist/styles/classes.json
CHANGED