@sudobility/entity_service 1.0.11 → 1.0.12
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/CLAUDE.md +3 -3
- package/dist/helpers/EntityHelper.js +4 -4
- package/dist/helpers/EntityHelper.js.map +1 -1
- package/dist/helpers/InvitationHelper.d.ts +1 -1
- package/dist/helpers/InvitationHelper.js +1 -1
- package/dist/helpers/PermissionHelper.d.ts +3 -3
- package/dist/helpers/PermissionHelper.d.ts.map +1 -1
- package/dist/helpers/PermissionHelper.js +5 -5
- package/dist/helpers/PermissionHelper.js.map +1 -1
- package/dist/middleware/hono.d.ts +6 -6
- package/dist/middleware/hono.js +7 -7
- package/dist/middleware/hono.js.map +1 -1
- package/dist/migrations/001_add_entities.js +12 -12
- package/dist/migrations/001_add_entities.js.map +1 -1
- package/dist/schema/entities.d.ts +2 -2
- package/dist/schema/entities.js +4 -4
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +3 -3
package/CLAUDE.md
CHANGED
|
@@ -55,10 +55,10 @@ bun run clean # Remove dist/
|
|
|
55
55
|
|
|
56
56
|
### Roles & Permissions
|
|
57
57
|
|
|
58
|
-
| Permission |
|
|
58
|
+
| Permission | Owner | Manager | Member |
|
|
59
59
|
|------------|-------|---------|--------|
|
|
60
60
|
| View entity | Yes | Yes | Yes |
|
|
61
|
-
| Edit entity | Yes |
|
|
61
|
+
| Edit entity | Yes | Yes | No |
|
|
62
62
|
| Delete entity | Yes | No | No |
|
|
63
63
|
| Manage members | Yes | No | No |
|
|
64
64
|
| Invite members | Yes | No | No |
|
|
@@ -67,7 +67,7 @@ bun run clean # Remove dist/
|
|
|
67
67
|
| View projects | Yes | Yes | Yes |
|
|
68
68
|
|
|
69
69
|
### Invitation Flow
|
|
70
|
-
1.
|
|
70
|
+
1. Owner creates invitation with email + role
|
|
71
71
|
2. Invitation stored with entity reference
|
|
72
72
|
3. On user signup, pending invitations auto-accepted
|
|
73
73
|
4. User becomes member of invited entities
|
|
@@ -29,11 +29,11 @@ export class EntityHelper {
|
|
|
29
29
|
display_name: displayName,
|
|
30
30
|
})
|
|
31
31
|
.returning();
|
|
32
|
-
// Add user as
|
|
32
|
+
// Add user as manager (personal entities use manager role, not owner)
|
|
33
33
|
await this.config.db.insert(this.config.membersTable).values({
|
|
34
34
|
entity_id: entity.id,
|
|
35
35
|
user_id: firebaseUid,
|
|
36
|
-
role: EntityRole.
|
|
36
|
+
role: EntityRole.MANAGER,
|
|
37
37
|
is_active: true,
|
|
38
38
|
});
|
|
39
39
|
return this.mapRecordToEntity(entity);
|
|
@@ -45,12 +45,12 @@ export class EntityHelper {
|
|
|
45
45
|
* @param email - Optional email for display name
|
|
46
46
|
*/
|
|
47
47
|
async getOrCreatePersonalEntity(firebaseUid, email) {
|
|
48
|
-
// Check for existing personal entity where user is
|
|
48
|
+
// Check for existing personal entity where user is manager
|
|
49
49
|
const existing = await this.config.db
|
|
50
50
|
.select({ entity: this.config.entitiesTable })
|
|
51
51
|
.from(this.config.membersTable)
|
|
52
52
|
.innerJoin(this.config.entitiesTable, eq(this.config.membersTable.entity_id, this.config.entitiesTable.id))
|
|
53
|
-
.where(and(eq(this.config.membersTable.user_id, firebaseUid), eq(this.config.membersTable.role, EntityRole.
|
|
53
|
+
.where(and(eq(this.config.membersTable.user_id, firebaseUid), eq(this.config.membersTable.role, EntityRole.MANAGER), eq(this.config.membersTable.is_active, true), eq(this.config.entitiesTable.entity_type, EntityType.PERSONAL)))
|
|
54
54
|
.limit(1);
|
|
55
55
|
if (existing.length > 0) {
|
|
56
56
|
return this.mapRecordToEntity(existing[0].entity);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityHelper.js","sourceRoot":"","sources":["../../src/helpers/EntityHelper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EACL,UAAU,EACV,UAAU,GAMX,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE3E;;GAEG;AACH,MAAM,OAAO,YAAY;IACvB,YAA6B,MAA0B;QAA1B,WAAM,GAAN,MAAM,CAAoB;IAAG,CAAC;IAE3D;;;;;OAKG;IACH,KAAK,CAAC,oBAAoB,CACxB,WAAmB,EACnB,KAAc;QAEd,MAAM,IAAI,GAAG,kBAAkB,EAAE,CAAC;QAClC,MAAM,WAAW,GAAG,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC;QAEvD,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE;aAClC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;aACjC,MAAM,CAAC;YACN,WAAW,EAAE,IAAI;YACjB,WAAW,EAAE,UAAU,CAAC,QAAQ;YAChC,YAAY,EAAE,WAAW;SAC1B,CAAC;aACD,SAAS,EAAE,CAAC;QAEf,
|
|
1
|
+
{"version":3,"file":"EntityHelper.js","sourceRoot":"","sources":["../../src/helpers/EntityHelper.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,7 +40,7 @@ export declare class InvitationHelper {
|
|
|
40
40
|
*/
|
|
41
41
|
declineInvitation(token: string): Promise<void>;
|
|
42
42
|
/**
|
|
43
|
-
* Cancel an invitation (by entity
|
|
43
|
+
* Cancel an invitation (by entity owner).
|
|
44
44
|
*/
|
|
45
45
|
cancelInvitation(invitationId: string): Promise<void>;
|
|
46
46
|
/**
|
|
@@ -190,7 +190,7 @@ export class InvitationHelper {
|
|
|
190
190
|
.where(eq(this.config.invitationsTable.id, invitation.id));
|
|
191
191
|
}
|
|
192
192
|
/**
|
|
193
|
-
* Cancel an invitation (by entity
|
|
193
|
+
* Cancel an invitation (by entity owner).
|
|
194
194
|
*/
|
|
195
195
|
async cancelInvitation(invitationId) {
|
|
196
196
|
await this.config.db
|
|
@@ -27,10 +27,10 @@ export declare class PermissionHelper {
|
|
|
27
27
|
*/
|
|
28
28
|
isMember(entityId: string, userId: string): Promise<boolean>;
|
|
29
29
|
/**
|
|
30
|
-
* Check if user is
|
|
31
|
-
* Owner also has
|
|
30
|
+
* Check if user is a manager of an entity.
|
|
31
|
+
* Owner also has manager privileges.
|
|
32
32
|
*/
|
|
33
|
-
|
|
33
|
+
isManager(entityId: string, userId: string): Promise<boolean>;
|
|
34
34
|
/**
|
|
35
35
|
* Check if user is the owner of an entity.
|
|
36
36
|
* Determined by role = 'owner' in entity_members.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PermissionHelper.d.ts","sourceRoot":"","sources":["../../src/helpers/PermissionHelper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,UAAU,EAGV,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACxB,MAAM,UAAU,CAAC;AAElB;;GAEG;AACH,qBAAa,gBAAgB;IACf,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,kBAAkB;IAEvD;;;OAGG;IACG,WAAW,CACf,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAoB7B;;OAEG;IACH,qBAAqB,CAAC,IAAI,EAAE,UAAU,GAAG,iBAAiB;IAI1D;;OAEG;IACG,kBAAkB,CACtB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAQpC;;OAEG;IACG,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKlE;;;OAGG;IACG,
|
|
1
|
+
{"version":3,"file":"PermissionHelper.d.ts","sourceRoot":"","sources":["../../src/helpers/PermissionHelper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,UAAU,EAGV,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACxB,MAAM,UAAU,CAAC;AAElB;;GAEG;AACH,qBAAa,gBAAgB;IACf,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,kBAAkB;IAEvD;;;OAGG;IACG,WAAW,CACf,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAoB7B;;OAEG;IACH,qBAAqB,CAAC,IAAI,EAAE,UAAU,GAAG,iBAAiB;IAI1D;;OAEG;IACG,kBAAkB,CACtB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAQpC;;OAEG;IACG,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKlE;;;OAGG;IACG,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKnE;;;OAGG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKjE;;OAEG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKvE;;OAEG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKvE;;OAEG;IACG,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAoBzE;;OAEG;IACG,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK1E;;OAEG;IACG,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAoB1E;;OAEG;IACG,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK3E;;OAEG;IACG,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK3E;;OAEG;IACG,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKzE;;OAEG;IACG,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK1E;;OAEG;IACG,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKxE;;;OAGG;IACG,gBAAgB,CACpB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,iBAAiB,EACnC,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC;IAchB;;OAEG;IACH,2BAA2B,CACzB,UAAU,EAAE,MAAM,iBAAiB,GAClC,UAAU,GAAG,IAAI;CAYrB"}
|
|
@@ -50,12 +50,12 @@ export class PermissionHelper {
|
|
|
50
50
|
return role !== null;
|
|
51
51
|
}
|
|
52
52
|
/**
|
|
53
|
-
* Check if user is
|
|
54
|
-
* Owner also has
|
|
53
|
+
* Check if user is a manager of an entity.
|
|
54
|
+
* Owner also has manager privileges.
|
|
55
55
|
*/
|
|
56
|
-
async
|
|
56
|
+
async isManager(entityId, userId) {
|
|
57
57
|
const role = await this.getUserRole(entityId, userId);
|
|
58
|
-
return role === EntityRole.
|
|
58
|
+
return role === EntityRole.MANAGER || role === EntityRole.OWNER;
|
|
59
59
|
}
|
|
60
60
|
/**
|
|
61
61
|
* Check if user is the owner of an entity.
|
|
@@ -177,7 +177,7 @@ export class PermissionHelper {
|
|
|
177
177
|
*/
|
|
178
178
|
getMinimumRoleForPermission(permission) {
|
|
179
179
|
// Check from lowest to highest privilege
|
|
180
|
-
const roles = [EntityRole.MEMBER, EntityRole.
|
|
180
|
+
const roles = [EntityRole.MEMBER, EntityRole.MANAGER, EntityRole.OWNER];
|
|
181
181
|
for (const role of roles) {
|
|
182
182
|
if (ROLE_PERMISSIONS[role][permission]) {
|
|
183
183
|
return role;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PermissionHelper.js","sourceRoot":"","sources":["../../src/helpers/PermissionHelper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EACL,UAAU,EACV,UAAU,EACV,gBAAgB,GAGjB,MAAM,UAAU,CAAC;AAElB;;GAEG;AACH,MAAM,OAAO,gBAAgB;IAC3B,YAA6B,MAA0B;QAA1B,WAAM,GAAN,MAAM,CAAoB;IAAG,CAAC;IAE3D;;;OAGG;IACH,KAAK,CAAC,WAAW,CACf,QAAgB,EAChB,MAAc;QAEd,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE;aACjC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;aAC/C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;aAC9B,KAAK,CACJ,GAAG,CACD,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,QAAQ,CAAC,EAChD,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,EAC5C,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,CAC7C,CACF;aACA,KAAK,CAAC,CAAC,CAAC,CAAC;QAEZ,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,IAAkB,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,qBAAqB,CAAC,IAAgB;QACpC,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB,CACtB,QAAgB,EAChB,MAAc;QAEd,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACtD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,QAAgB,EAAE,MAAc;QAC7C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACtD,OAAO,IAAI,KAAK,IAAI,CAAC;IACvB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"PermissionHelper.js","sourceRoot":"","sources":["../../src/helpers/PermissionHelper.ts"],"names":[],"mappings":"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"}
|
|
@@ -51,10 +51,10 @@ export declare function createEntityContextMiddleware(config: InvitationHelperCo
|
|
|
51
51
|
*
|
|
52
52
|
* Usage:
|
|
53
53
|
* ```typescript
|
|
54
|
-
* const
|
|
54
|
+
* const requireOwner = createRequirePermissionMiddleware('canManageMembers');
|
|
55
55
|
*
|
|
56
|
-
* app.post('/api/v1/entities/:entitySlug/members',
|
|
57
|
-
* // Only
|
|
56
|
+
* app.post('/api/v1/entities/:entitySlug/members', requireOwner, (c) => {
|
|
57
|
+
* // Only owners can reach here
|
|
58
58
|
* });
|
|
59
59
|
* ```
|
|
60
60
|
*/
|
|
@@ -64,10 +64,10 @@ export declare function createRequirePermissionMiddleware(permission: keyof Enti
|
|
|
64
64
|
*
|
|
65
65
|
* Usage:
|
|
66
66
|
* ```typescript
|
|
67
|
-
* const
|
|
67
|
+
* const requireManager = createRequireRoleMiddleware(EntityRole.MANAGER);
|
|
68
68
|
*
|
|
69
|
-
* app.post('/api/v1/entities/:entitySlug/projects',
|
|
70
|
-
* // Only
|
|
69
|
+
* app.post('/api/v1/entities/:entitySlug/projects', requireManager, (c) => {
|
|
70
|
+
* // Only managers and owners can reach here
|
|
71
71
|
* });
|
|
72
72
|
* ```
|
|
73
73
|
*/
|
package/dist/middleware/hono.js
CHANGED
|
@@ -73,10 +73,10 @@ export function createEntityContextMiddleware(config, options) {
|
|
|
73
73
|
*
|
|
74
74
|
* Usage:
|
|
75
75
|
* ```typescript
|
|
76
|
-
* const
|
|
76
|
+
* const requireOwner = createRequirePermissionMiddleware('canManageMembers');
|
|
77
77
|
*
|
|
78
|
-
* app.post('/api/v1/entities/:entitySlug/members',
|
|
79
|
-
* // Only
|
|
78
|
+
* app.post('/api/v1/entities/:entitySlug/members', requireOwner, (c) => {
|
|
79
|
+
* // Only owners can reach here
|
|
80
80
|
* });
|
|
81
81
|
* ```
|
|
82
82
|
*/
|
|
@@ -97,17 +97,17 @@ export function createRequirePermissionMiddleware(permission) {
|
|
|
97
97
|
*
|
|
98
98
|
* Usage:
|
|
99
99
|
* ```typescript
|
|
100
|
-
* const
|
|
100
|
+
* const requireManager = createRequireRoleMiddleware(EntityRole.MANAGER);
|
|
101
101
|
*
|
|
102
|
-
* app.post('/api/v1/entities/:entitySlug/projects',
|
|
103
|
-
* // Only
|
|
102
|
+
* app.post('/api/v1/entities/:entitySlug/projects', requireManager, (c) => {
|
|
103
|
+
* // Only managers and owners can reach here
|
|
104
104
|
* });
|
|
105
105
|
* ```
|
|
106
106
|
*/
|
|
107
107
|
export function createRequireRoleMiddleware(minimumRole) {
|
|
108
108
|
const roleHierarchy = {
|
|
109
109
|
[EntityRole.MEMBER]: 0,
|
|
110
|
-
[EntityRole.
|
|
110
|
+
[EntityRole.MANAGER]: 1,
|
|
111
111
|
[EntityRole.OWNER]: 2,
|
|
112
112
|
};
|
|
113
113
|
return async (c, next) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hono.js","sourceRoot":"","sources":["../../src/middleware/hono.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"hono.js","sourceRoot":"","sources":["../../src/middleware/hono.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EACL,UAAU,GAIX,MAAM,UAAU,CAAC;AAuBlB;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,6BAA6B,CAC3C,MAA8B,EAC9B,OAAuC;IAEvC,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,OAAO,CAAC,eAAe,IAAI,YAAY,CAAC;IAE1D,OAAO,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;QACvB,MAAM,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAE1C,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,yBAAyB,EAAE,EAAE,GAAG,CAAC,CAAC;QAC3D,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAEpC,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC;YAC7C,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,yBAAyB,EAAE,EAAE,GAAG,CAAC,CAAC;QAC3D,CAAC;QAED,qBAAqB;QACrB,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QAE9D,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAAE,GAAG,CAAC,CAAC;QACpD,CAAC;QAED,0EAA0E;QAC1E,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;YAC5C,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YACxB,MAAM,IAAI,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QAED,kCAAkC;QAClC,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,EAAE,MAAO,CAAC,CAAC;QAExE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,EAAE,GAAG,CAAC,CAAC;QACjD,CAAC;QAED,MAAM,WAAW,GAAG,gBAAgB,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAErE,qBAAqB;QACrB,MAAM,aAAa,GAAkB;YACnC,MAAM;YACN,QAAQ;YACR,WAAW;SACZ,CAAC;QAEF,CAAC,CAAC,GAAG,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;QACtC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACxB,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC5B,CAAC,CAAC,GAAG,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;QAElC,MAAM,IAAI,EAAE,CAAC;IACf,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,iCAAiC,CAC/C,UAAmC;IAEnC,OAAO,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;QACvB,MAAM,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,CAAkC,CAAC;QAE1E,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,0BAA0B,EAAE,EAAE,GAAG,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,0BAA0B,EAAE,EAAE,GAAG,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,IAAI,EAAE,CAAC;IACf,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,2BAA2B,CACzC,WAAuB;IAEvB,MAAM,aAAa,GAA+B;QAChD,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACtB,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACvB,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;KACtB,CAAC;IAEF,OAAO,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;QACvB,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,CAA2B,CAAC;QAE7D,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,0BAA0B,EAAE,EAAE,GAAG,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,aAAa,CAAC,QAAQ,CAAC,GAAG,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC;YACzD,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAE,GAAG,CAAC,CAAC;QACrD,CAAC;QAED,MAAM,IAAI,EAAE,CAAC;IACf,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAA8B;IAChE,OAAO;QACL,MAAM,EAAE,IAAI,YAAY,CAAC,MAAM,CAAC;QAChC,OAAO,EAAE,IAAI,kBAAkB,CAAC,MAAM,CAAC;QACvC,WAAW,EAAE,IAAI,gBAAgB,CAAC,MAAM,CAAC;QACzC,WAAW,EAAE,IAAI,gBAAgB,CAAC,MAAM,CAAC;KAC1C,CAAC;AACJ,CAAC"}
|
|
@@ -64,7 +64,7 @@ async function createEntityTables(client, prefix, indexPrefix) {
|
|
|
64
64
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
65
65
|
entity_id UUID NOT NULL REFERENCES ${prefix}entities(id) ON DELETE CASCADE,
|
|
66
66
|
user_id VARCHAR(128) NOT NULL,
|
|
67
|
-
role VARCHAR(20) NOT NULL CHECK (role IN ('owner', '
|
|
67
|
+
role VARCHAR(20) NOT NULL CHECK (role IN ('owner', 'manager', 'member')),
|
|
68
68
|
is_active BOOLEAN NOT NULL DEFAULT true,
|
|
69
69
|
joined_at TIMESTAMPTZ DEFAULT NOW(),
|
|
70
70
|
created_at TIMESTAMPTZ DEFAULT NOW(),
|
|
@@ -109,7 +109,7 @@ async function createEntityTables(client, prefix, indexPrefix) {
|
|
|
109
109
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
110
110
|
entity_id UUID NOT NULL REFERENCES ${prefix}entities(id) ON DELETE CASCADE,
|
|
111
111
|
email VARCHAR(255) NOT NULL,
|
|
112
|
-
role VARCHAR(20) NOT NULL CHECK (role IN ('
|
|
112
|
+
role VARCHAR(20) NOT NULL CHECK (role IN ('manager', 'member')),
|
|
113
113
|
status VARCHAR(20) NOT NULL DEFAULT 'pending' CHECK (status IN ('pending', 'accepted', 'declined', 'expired')),
|
|
114
114
|
invited_by_user_id VARCHAR(128) NOT NULL,
|
|
115
115
|
token VARCHAR(64) NOT NULL UNIQUE,
|
|
@@ -171,7 +171,7 @@ async function addEntityIdToProjects(client, prefix, indexPrefix) {
|
|
|
171
171
|
/**
|
|
172
172
|
* Create personal entities for existing users.
|
|
173
173
|
* Uses firebase_uid as the user identifier.
|
|
174
|
-
* Personal entities use role = '
|
|
174
|
+
* Personal entities use role = 'manager' (not 'owner' - owner role is for organizations).
|
|
175
175
|
*/
|
|
176
176
|
async function migrateUsersToPersonalEntities(client, prefix) {
|
|
177
177
|
console.log('Migrating users to personal entities...');
|
|
@@ -199,7 +199,7 @@ async function migrateUsersToPersonalEntities(client, prefix) {
|
|
|
199
199
|
SELECT 1 FROM ${prefix}entity_members em
|
|
200
200
|
INNER JOIN ${prefix}entities e ON em.entity_id = e.id
|
|
201
201
|
WHERE em.user_id = u.firebase_uid
|
|
202
|
-
AND em.role = '
|
|
202
|
+
AND em.role = 'manager'
|
|
203
203
|
AND em.is_active = true
|
|
204
204
|
AND e.entity_type = 'personal'
|
|
205
205
|
)
|
|
@@ -216,13 +216,13 @@ async function migrateUsersToPersonalEntities(client, prefix) {
|
|
|
216
216
|
SELECT 1 FROM ${prefix}entity_members em
|
|
217
217
|
INNER JOIN ${prefix}entities e ON em.entity_id = e.id
|
|
218
218
|
WHERE em.user_id = u.firebase_uid
|
|
219
|
-
AND em.role = '
|
|
219
|
+
AND em.role = 'manager'
|
|
220
220
|
AND em.is_active = true
|
|
221
221
|
AND e.entity_type = 'personal'
|
|
222
222
|
)
|
|
223
223
|
`;
|
|
224
224
|
}
|
|
225
|
-
// Get users without personal entities (check via entity_members with role = '
|
|
225
|
+
// Get users without personal entities (check via entity_members with role = 'manager')
|
|
226
226
|
const usersWithoutEntities = await client.unsafe(usersQuery);
|
|
227
227
|
let migratedCount = 0;
|
|
228
228
|
for (const user of usersWithoutEntities) {
|
|
@@ -237,10 +237,10 @@ async function migrateUsersToPersonalEntities(client, prefix) {
|
|
|
237
237
|
VALUES ('${slug}', 'personal', '${displayName.replace(/'/g, "''")}')
|
|
238
238
|
RETURNING id
|
|
239
239
|
`);
|
|
240
|
-
// Add user as
|
|
240
|
+
// Add user as manager (personal entities use 'manager' role, not 'owner')
|
|
241
241
|
await client.unsafe(`
|
|
242
242
|
INSERT INTO ${prefix}entity_members (entity_id, user_id, role, is_active)
|
|
243
|
-
VALUES ('${entity.id}', '${firebaseUid}', '
|
|
243
|
+
VALUES ('${entity.id}', '${firebaseUid}', 'manager', true)
|
|
244
244
|
`);
|
|
245
245
|
migratedCount++;
|
|
246
246
|
}
|
|
@@ -255,7 +255,7 @@ async function migrateUsersToPersonalEntities(client, prefix) {
|
|
|
255
255
|
`);
|
|
256
256
|
await client.unsafe(`
|
|
257
257
|
INSERT INTO ${prefix}entity_members (entity_id, user_id, role, is_active)
|
|
258
|
-
VALUES ('${entity.id}', '${firebaseUid}', '
|
|
258
|
+
VALUES ('${entity.id}', '${firebaseUid}', 'manager', true)
|
|
259
259
|
`);
|
|
260
260
|
migratedCount++;
|
|
261
261
|
}
|
|
@@ -268,18 +268,18 @@ async function migrateUsersToPersonalEntities(client, prefix) {
|
|
|
268
268
|
}
|
|
269
269
|
/**
|
|
270
270
|
* Populate entity_id for existing projects.
|
|
271
|
-
* Uses entity_members with role = '
|
|
271
|
+
* Uses entity_members with role = 'manager' to find personal entity membership.
|
|
272
272
|
*/
|
|
273
273
|
async function populateProjectEntityIds(client, prefix) {
|
|
274
274
|
console.log('Populating entity_id for existing projects...');
|
|
275
|
-
// Update projects to use user's personal entity (via entity_members with
|
|
275
|
+
// Update projects to use user's personal entity (via entity_members with manager role)
|
|
276
276
|
const result = await client.unsafe(`
|
|
277
277
|
UPDATE ${prefix}projects p
|
|
278
278
|
SET entity_id = e.id
|
|
279
279
|
FROM ${prefix}entities e
|
|
280
280
|
INNER JOIN ${prefix}entity_members em ON em.entity_id = e.id
|
|
281
281
|
WHERE p.user_id = em.user_id
|
|
282
|
-
AND em.role = '
|
|
282
|
+
AND em.role = 'manager'
|
|
283
283
|
AND em.is_active = true
|
|
284
284
|
AND e.entity_type = 'personal'
|
|
285
285
|
AND p.entity_id IS NULL
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"001_add_entities.js","sourceRoot":"","sources":["../../src/migrations/001_add_entities.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"001_add_entities.js","sourceRoot":"","sources":["../../src/migrations/001_add_entities.ts"],"names":[],"mappings":"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"}
|
|
@@ -172,13 +172,13 @@ export declare function createEntitiesTablePublic(indexPrefix: string): import("
|
|
|
172
172
|
/**
|
|
173
173
|
* Create an entity_members table for a specific PostgreSQL schema.
|
|
174
174
|
* This table manages all user-entity relationships including ownership.
|
|
175
|
-
* Role can be: owner,
|
|
175
|
+
* Role can be: owner, manager, member
|
|
176
176
|
*/
|
|
177
177
|
export declare function createEntityMembersTable(schema: any, indexPrefix: string): any;
|
|
178
178
|
/**
|
|
179
179
|
* Create an entity_members table for the public schema.
|
|
180
180
|
* This table manages all user-entity relationships including ownership.
|
|
181
|
-
* Role can be: owner,
|
|
181
|
+
* Role can be: owner, manager, member
|
|
182
182
|
*/
|
|
183
183
|
export declare function createEntityMembersTablePublic(indexPrefix: string): import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
184
184
|
name: "entity_members";
|
package/dist/schema/entities.js
CHANGED
|
@@ -59,7 +59,7 @@ export function createEntitiesTablePublic(indexPrefix) {
|
|
|
59
59
|
/**
|
|
60
60
|
* Create an entity_members table for a specific PostgreSQL schema.
|
|
61
61
|
* This table manages all user-entity relationships including ownership.
|
|
62
|
-
* Role can be: owner,
|
|
62
|
+
* Role can be: owner, manager, member
|
|
63
63
|
*/
|
|
64
64
|
export function createEntityMembersTable(schema, indexPrefix) {
|
|
65
65
|
return schema.table('entity_members', {
|
|
@@ -81,7 +81,7 @@ export function createEntityMembersTable(schema, indexPrefix) {
|
|
|
81
81
|
/**
|
|
82
82
|
* Create an entity_members table for the public schema.
|
|
83
83
|
* This table manages all user-entity relationships including ownership.
|
|
84
|
-
* Role can be: owner,
|
|
84
|
+
* Role can be: owner, manager, member
|
|
85
85
|
*/
|
|
86
86
|
export function createEntityMembersTablePublic(indexPrefix) {
|
|
87
87
|
return pgTable('entity_members', {
|
|
@@ -241,7 +241,7 @@ export async function initEntityTables(client, schemaName, indexPrefix) {
|
|
|
241
241
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
242
242
|
entity_id UUID NOT NULL REFERENCES ${prefix}entities(id) ON DELETE CASCADE,
|
|
243
243
|
user_id VARCHAR(128) NOT NULL,
|
|
244
|
-
role VARCHAR(20) NOT NULL CHECK (role IN ('owner', '
|
|
244
|
+
role VARCHAR(20) NOT NULL CHECK (role IN ('owner', 'manager', 'member')),
|
|
245
245
|
is_active BOOLEAN NOT NULL DEFAULT true,
|
|
246
246
|
joined_at TIMESTAMPTZ DEFAULT NOW(),
|
|
247
247
|
created_at TIMESTAMPTZ DEFAULT NOW(),
|
|
@@ -271,7 +271,7 @@ export async function initEntityTables(client, schemaName, indexPrefix) {
|
|
|
271
271
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
272
272
|
entity_id UUID NOT NULL REFERENCES ${prefix}entities(id) ON DELETE CASCADE,
|
|
273
273
|
email VARCHAR(255) NOT NULL,
|
|
274
|
-
role VARCHAR(20) NOT NULL CHECK (role IN ('
|
|
274
|
+
role VARCHAR(20) NOT NULL CHECK (role IN ('manager', 'member')),
|
|
275
275
|
status VARCHAR(20) NOT NULL DEFAULT 'pending' CHECK (status IN ('pending', 'accepted', 'declined', 'expired')),
|
|
276
276
|
invited_by_user_id VARCHAR(128) NOT NULL,
|
|
277
277
|
token VARCHAR(64) NOT NULL UNIQUE,
|
package/dist/types/index.d.ts
CHANGED
|
@@ -51,7 +51,7 @@ export interface ListEntitiesOptions {
|
|
|
51
51
|
*/
|
|
52
52
|
export interface ListMembersOptions {
|
|
53
53
|
/** Filter by role */
|
|
54
|
-
role?: 'owner' | '
|
|
54
|
+
role?: 'owner' | 'manager' | 'member';
|
|
55
55
|
/** Filter by active status */
|
|
56
56
|
isActive?: boolean;
|
|
57
57
|
/** Maximum number of results */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAGlE,OAAO,EACL,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAG3B,YAAY,EACV,MAAM,EACN,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,mBAAmB,CAAC;AAM3B;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,gCAAgC;IAChC,EAAE,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC;IAC5B,+BAA+B;IAC/B,aAAa,EAAE,GAAG,CAAC;IACnB,qCAAqC;IACrC,YAAY,EAAE,GAAG,CAAC;IAClB,wCAAwC;IACxC,UAAU,EAAE,GAAG,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAuB,SAAQ,kBAAkB;IAChE,yCAAyC;IACzC,gBAAgB,EAAE,GAAG,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB,CAAC,CAAC;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,yCAAyC;IACzC,UAAU,CAAC,EAAE,UAAU,GAAG,cAAc,CAAC;IACzC,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,qBAAqB;IACrB,IAAI,CAAC,EAAE,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAGlE,OAAO,EACL,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAG3B,YAAY,EACV,MAAM,EACN,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,mBAAmB,CAAC;AAM3B;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,gCAAgC;IAChC,EAAE,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC;IAC5B,+BAA+B;IAC/B,aAAa,EAAE,GAAG,CAAC;IACnB,qCAAqC;IACrC,YAAY,EAAE,GAAG,CAAC;IAClB,wCAAwC;IACxC,UAAU,EAAE,GAAG,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAuB,SAAQ,kBAAkB;IAChE,yCAAyC;IACzC,gBAAgB,EAAE,GAAG,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB,CAAC,CAAC;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,yCAAyC;IACzC,UAAU,CAAC,EAAE,UAAU,GAAG,cAAc,CAAC;IACzC,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,qBAAqB;IACrB,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC;IACtC,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,uBAAuB;IACvB,MAAM,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;IACzD,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sudobility/entity_service",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.12",
|
|
4
4
|
"description": "Shared entity/organization management library for multi-tenant workspaces",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -48,13 +48,13 @@
|
|
|
48
48
|
"author": "Sudobility",
|
|
49
49
|
"license": "MIT",
|
|
50
50
|
"peerDependencies": {
|
|
51
|
-
"@sudobility/types": "^1.9.
|
|
51
|
+
"@sudobility/types": "^1.9.45",
|
|
52
52
|
"drizzle-orm": "^0.45.0",
|
|
53
53
|
"hono": "^4.0.0"
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|
|
56
56
|
"vitest": "^4.0.4",
|
|
57
|
-
"@sudobility/types": "^1.9.
|
|
57
|
+
"@sudobility/types": "^1.9.45",
|
|
58
58
|
"@types/bun": "latest",
|
|
59
59
|
"@types/node": "^24.0.0",
|
|
60
60
|
"@typescript-eslint/eslint-plugin": "^8.50.0",
|