@lssm/lib.identity-rbac 0.0.0-canary-20251206160926

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 (128) hide show
  1. package/README.md +99 -0
  2. package/dist/contracts/dist/capabilities/openbanking.js +1 -0
  3. package/dist/contracts/dist/client/index.js +1 -0
  4. package/dist/contracts/dist/client/react/feature-render.js +1 -0
  5. package/dist/contracts/dist/client/react/form-render.js +1 -0
  6. package/dist/contracts/dist/client/react/index.js +1 -0
  7. package/dist/contracts/dist/events.js +1 -0
  8. package/dist/contracts/dist/experiments/evaluator.js +1 -0
  9. package/dist/contracts/dist/graphql-federation/dist/index.js +1 -0
  10. package/dist/contracts/dist/index.js +1 -0
  11. package/dist/contracts/dist/install.js +1 -0
  12. package/dist/contracts/dist/integrations/contracts.js +1 -0
  13. package/dist/contracts/dist/integrations/index.js +1 -0
  14. package/dist/contracts/dist/integrations/openbanking/contracts/accounts.js +1 -0
  15. package/dist/contracts/dist/integrations/openbanking/contracts/balances.js +1 -0
  16. package/dist/contracts/dist/integrations/openbanking/contracts/index.js +1 -0
  17. package/dist/contracts/dist/integrations/openbanking/contracts/transactions.js +1 -0
  18. package/dist/contracts/dist/integrations/openbanking/models.js +1 -0
  19. package/dist/contracts/dist/integrations/openbanking/telemetry.js +1 -0
  20. package/dist/contracts/dist/integrations/providers/elevenlabs.js +1 -0
  21. package/dist/contracts/dist/integrations/providers/gcs-storage.js +1 -0
  22. package/dist/contracts/dist/integrations/providers/gmail.js +1 -0
  23. package/dist/contracts/dist/integrations/providers/google-calendar.js +1 -0
  24. package/dist/contracts/dist/integrations/providers/impls/elevenlabs-voice.js +1 -0
  25. package/dist/contracts/dist/integrations/providers/impls/gcs-storage.js +1 -0
  26. package/dist/contracts/dist/integrations/providers/impls/gmail-inbound.js +1 -0
  27. package/dist/contracts/dist/integrations/providers/impls/gmail-outbound.js +1 -0
  28. package/dist/contracts/dist/integrations/providers/impls/google-calendar.js +1 -0
  29. package/dist/contracts/dist/integrations/providers/impls/index.js +1 -0
  30. package/dist/contracts/dist/integrations/providers/impls/mistral-embedding.js +1 -0
  31. package/dist/contracts/dist/integrations/providers/impls/mistral-llm.js +1 -0
  32. package/dist/contracts/dist/integrations/providers/impls/postmark-email.js +1 -0
  33. package/dist/contracts/dist/integrations/providers/impls/powens-client.js +1 -0
  34. package/dist/contracts/dist/integrations/providers/impls/powens-openbanking.js +1 -0
  35. package/dist/contracts/dist/integrations/providers/impls/provider-factory.js +1 -0
  36. package/dist/contracts/dist/integrations/providers/impls/qdrant-vector.js +1 -0
  37. package/dist/contracts/dist/integrations/providers/impls/stripe-payments.js +1 -0
  38. package/dist/contracts/dist/integrations/providers/impls/twilio-sms.js +1 -0
  39. package/dist/contracts/dist/integrations/providers/index.js +1 -0
  40. package/dist/contracts/dist/integrations/providers/mistral.js +1 -0
  41. package/dist/contracts/dist/integrations/providers/postmark.js +1 -0
  42. package/dist/contracts/dist/integrations/providers/powens.js +1 -0
  43. package/dist/contracts/dist/integrations/providers/qdrant.js +1 -0
  44. package/dist/contracts/dist/integrations/providers/stripe.js +1 -0
  45. package/dist/contracts/dist/integrations/providers/twilio-sms.js +1 -0
  46. package/dist/contracts/dist/integrations/runtime.js +1 -0
  47. package/dist/contracts/dist/integrations/secrets/env-secret-provider.js +1 -0
  48. package/dist/contracts/dist/integrations/secrets/gcp-secret-manager.js +1 -0
  49. package/dist/contracts/dist/integrations/secrets/index.js +1 -0
  50. package/dist/contracts/dist/integrations/secrets/manager.js +1 -0
  51. package/dist/contracts/dist/integrations/secrets/provider.js +1 -0
  52. package/dist/contracts/dist/jsonschema.js +1 -0
  53. package/dist/contracts/dist/knowledge/contracts.js +1 -0
  54. package/dist/contracts/dist/knowledge/index.js +1 -0
  55. package/dist/contracts/dist/knowledge/spaces/email-threads.js +1 -0
  56. package/dist/contracts/dist/knowledge/spaces/financial-docs.js +1 -0
  57. package/dist/contracts/dist/knowledge/spaces/financial-overview.js +1 -0
  58. package/dist/contracts/dist/knowledge/spaces/index.js +1 -0
  59. package/dist/contracts/dist/knowledge/spaces/product-canon.js +1 -0
  60. package/dist/contracts/dist/knowledge/spaces/support-faq.js +1 -0
  61. package/dist/contracts/dist/knowledge/spaces/uploaded-docs.js +1 -0
  62. package/dist/contracts/dist/onboarding-base.js +1 -0
  63. package/dist/contracts/dist/ownership.js +1 -0
  64. package/dist/contracts/dist/presentations.js +1 -0
  65. package/dist/contracts/dist/presentations.v2.js +1 -0
  66. package/dist/contracts/dist/prompt.js +1 -0
  67. package/dist/contracts/dist/promptRegistry.js +1 -0
  68. package/dist/contracts/dist/regenerator/index.js +1 -0
  69. package/dist/contracts/dist/regenerator/service.js +1 -0
  70. package/dist/contracts/dist/registry.js +1 -0
  71. package/dist/contracts/dist/resources.js +1 -0
  72. package/dist/contracts/dist/schema/dist/EnumType.js +1 -0
  73. package/dist/contracts/dist/schema/dist/FieldType.js +1 -0
  74. package/dist/contracts/dist/schema/dist/ScalarTypeEnum.js +1 -0
  75. package/dist/contracts/dist/schema/dist/SchemaModel.js +1 -0
  76. package/dist/contracts/dist/schema/dist/entity/defineEntity.js +1 -0
  77. package/dist/contracts/dist/schema/dist/entity/index.js +1 -0
  78. package/dist/contracts/dist/schema/dist/entity/types.js +1 -0
  79. package/dist/contracts/dist/schema/dist/index.js +1 -0
  80. package/dist/contracts/dist/server/graphql-pothos.js +1 -0
  81. package/dist/contracts/dist/server/graphql-schema-export.js +1 -0
  82. package/dist/contracts/dist/server/index.js +1 -0
  83. package/dist/contracts/dist/server/provider-mcp.js +1 -0
  84. package/dist/contracts/dist/server/rest-elysia.js +1 -0
  85. package/dist/contracts/dist/server/rest-express.js +1 -0
  86. package/dist/contracts/dist/server/rest-generic.js +1 -0
  87. package/dist/contracts/dist/server/rest-next-app.js +1 -0
  88. package/dist/contracts/dist/server/rest-next-pages.js +1 -0
  89. package/dist/contracts/dist/spec.js +1 -0
  90. package/dist/contracts/dist/telemetry/index.js +1 -0
  91. package/dist/contracts/dist/telemetry/tracker.js +1 -0
  92. package/dist/contracts/dist/tests/index.js +1 -0
  93. package/dist/contracts/dist/tests/runner.js +1 -0
  94. package/dist/contracts/dist/workflow/index.js +1 -0
  95. package/dist/contracts/dist/workflow/runner.js +1 -0
  96. package/dist/contracts/index.d.ts +4 -0
  97. package/dist/contracts/index.js +1 -0
  98. package/dist/contracts/organization.d.ts +895 -0
  99. package/dist/contracts/organization.js +1 -0
  100. package/dist/contracts/rbac.d.ts +611 -0
  101. package/dist/contracts/rbac.js +1 -0
  102. package/dist/contracts/user.d.ts +610 -0
  103. package/dist/contracts/user.js +1 -0
  104. package/dist/entities/index.d.ts +176 -0
  105. package/dist/entities/index.js +1 -0
  106. package/dist/entities/organization.d.ts +86 -0
  107. package/dist/entities/organization.js +1 -0
  108. package/dist/entities/rbac.d.ts +87 -0
  109. package/dist/entities/rbac.js +1 -0
  110. package/dist/entities/user.d.ts +87 -0
  111. package/dist/entities/user.js +1 -0
  112. package/dist/events.d.ts +689 -0
  113. package/dist/events.js +1 -0
  114. package/dist/index.d.ts +10 -0
  115. package/dist/index.js +1 -0
  116. package/dist/policies/engine.d.ts +132 -0
  117. package/dist/policies/engine.js +1 -0
  118. package/dist/policies/index.d.ts +2 -0
  119. package/dist/policies/index.js +1 -0
  120. package/dist/schema/dist/EnumType.js +1 -0
  121. package/dist/schema/dist/FieldType.js +1 -0
  122. package/dist/schema/dist/ScalarTypeEnum.js +1 -0
  123. package/dist/schema/dist/SchemaModel.js +1 -0
  124. package/dist/schema/dist/entity/defineEntity.js +1 -0
  125. package/dist/schema/dist/entity/index.js +1 -0
  126. package/dist/schema/dist/entity/types.js +1 -0
  127. package/dist/schema/dist/index.js +1 -0
  128. package/package.json +52 -0
@@ -0,0 +1 @@
1
+ import{l as e}from"../schema/dist/ScalarTypeEnum.js";import{t}from"../schema/dist/SchemaModel.js";import"../schema/dist/index.js";import{n,t as r}from"./dist/spec.js";import"./dist/index.js";import{SuccessResultModel as i}from"./user.js";const a=[`platform.identity-rbac`],o=new t({name:`Organization`,description:`Organization details`,fields:{id:{type:e.String_unsecure(),isOptional:!1},name:{type:e.String_unsecure(),isOptional:!1},slug:{type:e.String_unsecure(),isOptional:!0},logo:{type:e.URL(),isOptional:!0},description:{type:e.String_unsecure(),isOptional:!0},type:{type:e.String_unsecure(),isOptional:!1},onboardingCompleted:{type:e.Boolean(),isOptional:!1},createdAt:{type:e.DateTime(),isOptional:!1}}}),s=new t({name:`MemberUser`,description:`Basic user info within a member`,fields:{id:{type:e.String_unsecure(),isOptional:!1},email:{type:e.EmailAddress(),isOptional:!1},name:{type:e.String_unsecure(),isOptional:!0}}}),c=new t({name:`Member`,description:`Organization member`,fields:{id:{type:e.String_unsecure(),isOptional:!1},userId:{type:e.String_unsecure(),isOptional:!1},organizationId:{type:e.String_unsecure(),isOptional:!1},role:{type:e.String_unsecure(),isOptional:!1},createdAt:{type:e.DateTime(),isOptional:!1},user:{type:s,isOptional:!1}}}),l=new t({name:`Invitation`,description:`Organization invitation`,fields:{id:{type:e.String_unsecure(),isOptional:!1},email:{type:e.EmailAddress(),isOptional:!1},role:{type:e.String_unsecure(),isOptional:!0},status:{type:e.String_unsecure(),isOptional:!1},expiresAt:{type:e.DateTime(),isOptional:!0},createdAt:{type:e.DateTime(),isOptional:!1}}}),u=new t({name:`CreateOrgInput`,description:`Input for creating an organization`,fields:{name:{type:e.NonEmptyString(),isOptional:!1},slug:{type:e.String_unsecure(),isOptional:!0},description:{type:e.String_unsecure(),isOptional:!0},type:{type:e.String_unsecure(),isOptional:!0}}}),d=new t({name:`GetOrgInput`,description:`Input for getting an organization`,fields:{orgId:{type:e.String_unsecure(),isOptional:!1}}}),f=new t({name:`UpdateOrgInput`,description:`Input for updating an organization`,fields:{orgId:{type:e.String_unsecure(),isOptional:!1},name:{type:e.String_unsecure(),isOptional:!0},slug:{type:e.String_unsecure(),isOptional:!0},logo:{type:e.URL(),isOptional:!0},description:{type:e.String_unsecure(),isOptional:!0}}}),p=new t({name:`InviteMemberInput`,description:`Input for inviting a member`,fields:{orgId:{type:e.String_unsecure(),isOptional:!1},email:{type:e.EmailAddress(),isOptional:!1},role:{type:e.String_unsecure(),isOptional:!1},teamId:{type:e.String_unsecure(),isOptional:!0}}}),m=new t({name:`AcceptInviteInput`,description:`Input for accepting an invitation`,fields:{invitationId:{type:e.String_unsecure(),isOptional:!1}}}),h=new t({name:`RemoveMemberInput`,description:`Input for removing a member`,fields:{orgId:{type:e.String_unsecure(),isOptional:!1},userId:{type:e.String_unsecure(),isOptional:!1}}}),g=new t({name:`MemberRemovedPayload`,description:`Payload for member removed event`,fields:{orgId:{type:e.String_unsecure(),isOptional:!1},userId:{type:e.String_unsecure(),isOptional:!1}}}),_=new t({name:`ListMembersInput`,description:`Input for listing members`,fields:{orgId:{type:e.String_unsecure(),isOptional:!1},limit:{type:e.Int_unsecure(),isOptional:!0},offset:{type:e.Int_unsecure(),isOptional:!0}}}),v=new t({name:`ListMembersOutput`,description:`Output for listing members`,fields:{members:{type:c,isOptional:!1,isArray:!0},total:{type:e.Int_unsecure(),isOptional:!1}}}),y=new t({name:`OrganizationWithRole`,description:`Organization with user role`,fields:{id:{type:e.String_unsecure(),isOptional:!1},name:{type:e.String_unsecure(),isOptional:!1},slug:{type:e.String_unsecure(),isOptional:!0},logo:{type:e.URL(),isOptional:!0},description:{type:e.String_unsecure(),isOptional:!0},type:{type:e.String_unsecure(),isOptional:!1},onboardingCompleted:{type:e.Boolean(),isOptional:!1},createdAt:{type:e.DateTime(),isOptional:!1},role:{type:e.String_unsecure(),isOptional:!1}}}),b=new t({name:`ListUserOrgsOutput`,description:`Output for listing user organizations`,fields:{organizations:{type:y,isOptional:!1,isArray:!0}}}),x=r({meta:{name:`identity.org.create`,version:1,stability:`stable`,owners:[...a],tags:[`identity`,`org`,`create`],description:`Create a new organization.`,goal:`Allow users to create new organizations/workspaces.`,context:`Called during onboarding or when creating additional workspaces.`},io:{input:u,output:o,errors:{SLUG_EXISTS:{description:`An organization with this slug already exists`,http:409,gqlCode:`SLUG_EXISTS`,when:`Slug is already taken`}}},policy:{auth:`user`},sideEffects:{emits:[{name:`org.created`,version:1,when:`Organization is created`,payload:o}],audit:[`org.created`]}}),S=n({meta:{name:`identity.org.get`,version:1,stability:`stable`,owners:[...a],tags:[`identity`,`org`,`get`],description:`Get organization details.`,goal:`Retrieve organization information.`,context:`Called when viewing organization settings or dashboard.`},io:{input:d,output:o},policy:{auth:`user`}}),C=r({meta:{name:`identity.org.update`,version:1,stability:`stable`,owners:[...a],tags:[`identity`,`org`,`update`],description:`Update organization details.`,goal:`Allow org admins to update organization settings.`,context:`Organization settings page.`},io:{input:f,output:o},policy:{auth:`user`},sideEffects:{emits:[{name:`org.updated`,version:1,when:`Organization is updated`,payload:o}],audit:[`org.updated`]}}),w=r({meta:{name:`identity.org.invite`,version:1,stability:`stable`,owners:[...a],tags:[`identity`,`org`,`invite`,`member`],description:`Invite a user to join the organization.`,goal:`Allow org admins to invite new members.`,context:`Team management. Sends invitation email.`},io:{input:p,output:l,errors:{ALREADY_MEMBER:{description:`User is already a member of this organization`,http:409,gqlCode:`ALREADY_MEMBER`,when:`Invitee is already a member`},INVITE_PENDING:{description:`An invitation for this email is already pending`,http:409,gqlCode:`INVITE_PENDING`,when:`Active invitation exists`}}},policy:{auth:`user`},sideEffects:{emits:[{name:`org.invite.sent`,version:1,when:`Invitation is sent`,payload:l}],audit:[`org.invite.sent`]}}),T=r({meta:{name:`identity.org.invite.accept`,version:1,stability:`stable`,owners:[...a],tags:[`identity`,`org`,`invite`,`accept`],description:`Accept an organization invitation.`,goal:`Allow users to join organizations via invitation.`,context:`Called from invitation email link.`},io:{input:m,output:c,errors:{INVITE_EXPIRED:{description:`The invitation has expired`,http:410,gqlCode:`INVITE_EXPIRED`,when:`Invitation is past expiry date`},INVITE_USED:{description:`The invitation has already been used`,http:409,gqlCode:`INVITE_USED`,when:`Invitation was already accepted`}}},policy:{auth:`user`},sideEffects:{emits:[{name:`org.member.added`,version:1,when:`Member joins org`,payload:c}],audit:[`org.member.added`]}}),E=r({meta:{name:`identity.org.member.remove`,version:1,stability:`stable`,owners:[...a],tags:[`identity`,`org`,`member`,`remove`],description:`Remove a member from the organization.`,goal:`Allow org admins to remove members.`,context:`Team management.`},io:{input:h,output:i,errors:{CANNOT_REMOVE_OWNER:{description:`Cannot remove the organization owner`,http:403,gqlCode:`CANNOT_REMOVE_OWNER`,when:`Target is the org owner`}}},policy:{auth:`user`},sideEffects:{emits:[{name:`org.member.removed`,version:1,when:`Member is removed`,payload:g}],audit:[`org.member.removed`]}}),D=n({meta:{name:`identity.org.members.list`,version:1,stability:`stable`,owners:[...a],tags:[`identity`,`org`,`member`,`list`],description:`List organization members.`,goal:`View all members of an organization.`,context:`Team management page.`},io:{input:_,output:v},policy:{auth:`user`}}),O=n({meta:{name:`identity.org.list`,version:1,stability:`stable`,owners:[...a],tags:[`identity`,`org`,`list`],description:`List organizations the current user belongs to.`,goal:`Show user their organizations for workspace switching.`,context:`Workspace switcher, org selection.`},io:{input:null,output:b},policy:{auth:`user`}});export{T as AcceptInviteContract,m as AcceptInviteInputModel,x as CreateOrgContract,u as CreateOrgInputModel,S as GetOrgContract,d as GetOrgInputModel,l as InvitationModel,w as InviteMemberContract,p as InviteMemberInputModel,D as ListMembersContract,_ as ListMembersInputModel,v as ListMembersOutputModel,O as ListUserOrgsContract,b as ListUserOrgsOutputModel,c as MemberModel,g as MemberRemovedPayloadModel,s as MemberUserModel,o as OrganizationModel,y as OrganizationWithRoleModel,E as RemoveMemberContract,h as RemoveMemberInputModel,C as UpdateOrgContract,f as UpdateOrgInputModel};
@@ -0,0 +1,611 @@
1
+ import * as _lssm_lib_schema300 from "@lssm/lib.schema";
2
+ import { SchemaModel } from "@lssm/lib.schema";
3
+ import * as _lssm_lib_contracts29 from "@lssm/lib.contracts";
4
+
5
+ //#region src/contracts/rbac.d.ts
6
+ declare const RoleModel: SchemaModel<{
7
+ id: {
8
+ type: _lssm_lib_schema300.FieldType<string, string>;
9
+ isOptional: false;
10
+ };
11
+ name: {
12
+ type: _lssm_lib_schema300.FieldType<string, string>;
13
+ isOptional: false;
14
+ };
15
+ description: {
16
+ type: _lssm_lib_schema300.FieldType<string, string>;
17
+ isOptional: true;
18
+ };
19
+ permissions: {
20
+ type: _lssm_lib_schema300.FieldType<string, string>;
21
+ isOptional: false;
22
+ isArray: true;
23
+ };
24
+ createdAt: {
25
+ type: _lssm_lib_schema300.FieldType<Date, string>;
26
+ isOptional: false;
27
+ };
28
+ }>;
29
+ declare const PolicyBindingModel: SchemaModel<{
30
+ id: {
31
+ type: _lssm_lib_schema300.FieldType<string, string>;
32
+ isOptional: false;
33
+ };
34
+ roleId: {
35
+ type: _lssm_lib_schema300.FieldType<string, string>;
36
+ isOptional: false;
37
+ };
38
+ targetType: {
39
+ type: _lssm_lib_schema300.FieldType<string, string>;
40
+ isOptional: false;
41
+ };
42
+ targetId: {
43
+ type: _lssm_lib_schema300.FieldType<string, string>;
44
+ isOptional: false;
45
+ };
46
+ expiresAt: {
47
+ type: _lssm_lib_schema300.FieldType<Date, string>;
48
+ isOptional: true;
49
+ };
50
+ createdAt: {
51
+ type: _lssm_lib_schema300.FieldType<Date, string>;
52
+ isOptional: false;
53
+ };
54
+ role: {
55
+ type: SchemaModel<{
56
+ id: {
57
+ type: _lssm_lib_schema300.FieldType<string, string>;
58
+ isOptional: false;
59
+ };
60
+ name: {
61
+ type: _lssm_lib_schema300.FieldType<string, string>;
62
+ isOptional: false;
63
+ };
64
+ description: {
65
+ type: _lssm_lib_schema300.FieldType<string, string>;
66
+ isOptional: true;
67
+ };
68
+ permissions: {
69
+ type: _lssm_lib_schema300.FieldType<string, string>;
70
+ isOptional: false;
71
+ isArray: true;
72
+ };
73
+ createdAt: {
74
+ type: _lssm_lib_schema300.FieldType<Date, string>;
75
+ isOptional: false;
76
+ };
77
+ }>;
78
+ isOptional: false;
79
+ };
80
+ }>;
81
+ declare const PermissionCheckResultModel: SchemaModel<{
82
+ allowed: {
83
+ type: _lssm_lib_schema300.FieldType<boolean, boolean>;
84
+ isOptional: false;
85
+ };
86
+ reason: {
87
+ type: _lssm_lib_schema300.FieldType<string, string>;
88
+ isOptional: true;
89
+ };
90
+ matchedRole: {
91
+ type: _lssm_lib_schema300.FieldType<string, string>;
92
+ isOptional: true;
93
+ };
94
+ }>;
95
+ declare const CreateRoleInputModel: SchemaModel<{
96
+ name: {
97
+ type: _lssm_lib_schema300.FieldType<string, string>;
98
+ isOptional: false;
99
+ };
100
+ description: {
101
+ type: _lssm_lib_schema300.FieldType<string, string>;
102
+ isOptional: true;
103
+ };
104
+ permissions: {
105
+ type: _lssm_lib_schema300.FieldType<string, string>;
106
+ isOptional: false;
107
+ isArray: true;
108
+ };
109
+ }>;
110
+ declare const UpdateRoleInputModel: SchemaModel<{
111
+ roleId: {
112
+ type: _lssm_lib_schema300.FieldType<string, string>;
113
+ isOptional: false;
114
+ };
115
+ name: {
116
+ type: _lssm_lib_schema300.FieldType<string, string>;
117
+ isOptional: true;
118
+ };
119
+ description: {
120
+ type: _lssm_lib_schema300.FieldType<string, string>;
121
+ isOptional: true;
122
+ };
123
+ permissions: {
124
+ type: _lssm_lib_schema300.FieldType<string, string>;
125
+ isOptional: true;
126
+ isArray: true;
127
+ };
128
+ }>;
129
+ declare const DeleteRoleInputModel: SchemaModel<{
130
+ roleId: {
131
+ type: _lssm_lib_schema300.FieldType<string, string>;
132
+ isOptional: false;
133
+ };
134
+ }>;
135
+ declare const ListRolesOutputModel: SchemaModel<{
136
+ roles: {
137
+ type: SchemaModel<{
138
+ id: {
139
+ type: _lssm_lib_schema300.FieldType<string, string>;
140
+ isOptional: false;
141
+ };
142
+ name: {
143
+ type: _lssm_lib_schema300.FieldType<string, string>;
144
+ isOptional: false;
145
+ };
146
+ description: {
147
+ type: _lssm_lib_schema300.FieldType<string, string>;
148
+ isOptional: true;
149
+ };
150
+ permissions: {
151
+ type: _lssm_lib_schema300.FieldType<string, string>;
152
+ isOptional: false;
153
+ isArray: true;
154
+ };
155
+ createdAt: {
156
+ type: _lssm_lib_schema300.FieldType<Date, string>;
157
+ isOptional: false;
158
+ };
159
+ }>;
160
+ isOptional: false;
161
+ isArray: true;
162
+ };
163
+ }>;
164
+ declare const AssignRoleInputModel: SchemaModel<{
165
+ roleId: {
166
+ type: _lssm_lib_schema300.FieldType<string, string>;
167
+ isOptional: false;
168
+ };
169
+ targetType: {
170
+ type: _lssm_lib_schema300.FieldType<string, string>;
171
+ isOptional: false;
172
+ };
173
+ targetId: {
174
+ type: _lssm_lib_schema300.FieldType<string, string>;
175
+ isOptional: false;
176
+ };
177
+ expiresAt: {
178
+ type: _lssm_lib_schema300.FieldType<Date, string>;
179
+ isOptional: true;
180
+ };
181
+ }>;
182
+ declare const RevokeRoleInputModel: SchemaModel<{
183
+ bindingId: {
184
+ type: _lssm_lib_schema300.FieldType<string, string>;
185
+ isOptional: false;
186
+ };
187
+ }>;
188
+ declare const BindingIdPayloadModel: SchemaModel<{
189
+ bindingId: {
190
+ type: _lssm_lib_schema300.FieldType<string, string>;
191
+ isOptional: false;
192
+ };
193
+ }>;
194
+ declare const CheckPermissionInputModel: SchemaModel<{
195
+ userId: {
196
+ type: _lssm_lib_schema300.FieldType<string, string>;
197
+ isOptional: false;
198
+ };
199
+ orgId: {
200
+ type: _lssm_lib_schema300.FieldType<string, string>;
201
+ isOptional: true;
202
+ };
203
+ permission: {
204
+ type: _lssm_lib_schema300.FieldType<string, string>;
205
+ isOptional: false;
206
+ };
207
+ }>;
208
+ declare const ListUserPermissionsInputModel: SchemaModel<{
209
+ userId: {
210
+ type: _lssm_lib_schema300.FieldType<string, string>;
211
+ isOptional: false;
212
+ };
213
+ orgId: {
214
+ type: _lssm_lib_schema300.FieldType<string, string>;
215
+ isOptional: true;
216
+ };
217
+ }>;
218
+ declare const ListUserPermissionsOutputModel: SchemaModel<{
219
+ permissions: {
220
+ type: _lssm_lib_schema300.FieldType<string, string>;
221
+ isOptional: false;
222
+ isArray: true;
223
+ };
224
+ roles: {
225
+ type: SchemaModel<{
226
+ id: {
227
+ type: _lssm_lib_schema300.FieldType<string, string>;
228
+ isOptional: false;
229
+ };
230
+ name: {
231
+ type: _lssm_lib_schema300.FieldType<string, string>;
232
+ isOptional: false;
233
+ };
234
+ description: {
235
+ type: _lssm_lib_schema300.FieldType<string, string>;
236
+ isOptional: true;
237
+ };
238
+ permissions: {
239
+ type: _lssm_lib_schema300.FieldType<string, string>;
240
+ isOptional: false;
241
+ isArray: true;
242
+ };
243
+ createdAt: {
244
+ type: _lssm_lib_schema300.FieldType<Date, string>;
245
+ isOptional: false;
246
+ };
247
+ }>;
248
+ isOptional: false;
249
+ isArray: true;
250
+ };
251
+ }>;
252
+ /**
253
+ * Create a new role.
254
+ */
255
+ declare const CreateRoleContract: _lssm_lib_contracts29.ContractSpec<SchemaModel<{
256
+ name: {
257
+ type: _lssm_lib_schema300.FieldType<string, string>;
258
+ isOptional: false;
259
+ };
260
+ description: {
261
+ type: _lssm_lib_schema300.FieldType<string, string>;
262
+ isOptional: true;
263
+ };
264
+ permissions: {
265
+ type: _lssm_lib_schema300.FieldType<string, string>;
266
+ isOptional: false;
267
+ isArray: true;
268
+ };
269
+ }>, SchemaModel<{
270
+ id: {
271
+ type: _lssm_lib_schema300.FieldType<string, string>;
272
+ isOptional: false;
273
+ };
274
+ name: {
275
+ type: _lssm_lib_schema300.FieldType<string, string>;
276
+ isOptional: false;
277
+ };
278
+ description: {
279
+ type: _lssm_lib_schema300.FieldType<string, string>;
280
+ isOptional: true;
281
+ };
282
+ permissions: {
283
+ type: _lssm_lib_schema300.FieldType<string, string>;
284
+ isOptional: false;
285
+ isArray: true;
286
+ };
287
+ createdAt: {
288
+ type: _lssm_lib_schema300.FieldType<Date, string>;
289
+ isOptional: false;
290
+ };
291
+ }>, undefined>;
292
+ /**
293
+ * Update a role.
294
+ */
295
+ declare const UpdateRoleContract: _lssm_lib_contracts29.ContractSpec<SchemaModel<{
296
+ roleId: {
297
+ type: _lssm_lib_schema300.FieldType<string, string>;
298
+ isOptional: false;
299
+ };
300
+ name: {
301
+ type: _lssm_lib_schema300.FieldType<string, string>;
302
+ isOptional: true;
303
+ };
304
+ description: {
305
+ type: _lssm_lib_schema300.FieldType<string, string>;
306
+ isOptional: true;
307
+ };
308
+ permissions: {
309
+ type: _lssm_lib_schema300.FieldType<string, string>;
310
+ isOptional: true;
311
+ isArray: true;
312
+ };
313
+ }>, SchemaModel<{
314
+ id: {
315
+ type: _lssm_lib_schema300.FieldType<string, string>;
316
+ isOptional: false;
317
+ };
318
+ name: {
319
+ type: _lssm_lib_schema300.FieldType<string, string>;
320
+ isOptional: false;
321
+ };
322
+ description: {
323
+ type: _lssm_lib_schema300.FieldType<string, string>;
324
+ isOptional: true;
325
+ };
326
+ permissions: {
327
+ type: _lssm_lib_schema300.FieldType<string, string>;
328
+ isOptional: false;
329
+ isArray: true;
330
+ };
331
+ createdAt: {
332
+ type: _lssm_lib_schema300.FieldType<Date, string>;
333
+ isOptional: false;
334
+ };
335
+ }>, undefined>;
336
+ /**
337
+ * Delete a role.
338
+ */
339
+ declare const DeleteRoleContract: _lssm_lib_contracts29.ContractSpec<SchemaModel<{
340
+ roleId: {
341
+ type: _lssm_lib_schema300.FieldType<string, string>;
342
+ isOptional: false;
343
+ };
344
+ }>, SchemaModel<{
345
+ success: {
346
+ type: _lssm_lib_schema300.FieldType<boolean, boolean>;
347
+ isOptional: false;
348
+ };
349
+ }>, undefined>;
350
+ /**
351
+ * List all roles.
352
+ */
353
+ declare const ListRolesContract: _lssm_lib_contracts29.ContractSpec<_lssm_lib_schema300.AnySchemaModel, SchemaModel<{
354
+ roles: {
355
+ type: SchemaModel<{
356
+ id: {
357
+ type: _lssm_lib_schema300.FieldType<string, string>;
358
+ isOptional: false;
359
+ };
360
+ name: {
361
+ type: _lssm_lib_schema300.FieldType<string, string>;
362
+ isOptional: false;
363
+ };
364
+ description: {
365
+ type: _lssm_lib_schema300.FieldType<string, string>;
366
+ isOptional: true;
367
+ };
368
+ permissions: {
369
+ type: _lssm_lib_schema300.FieldType<string, string>;
370
+ isOptional: false;
371
+ isArray: true;
372
+ };
373
+ createdAt: {
374
+ type: _lssm_lib_schema300.FieldType<Date, string>;
375
+ isOptional: false;
376
+ };
377
+ }>;
378
+ isOptional: false;
379
+ isArray: true;
380
+ };
381
+ }>, undefined>;
382
+ /**
383
+ * Assign a role to a user or organization.
384
+ */
385
+ declare const AssignRoleContract: _lssm_lib_contracts29.ContractSpec<SchemaModel<{
386
+ roleId: {
387
+ type: _lssm_lib_schema300.FieldType<string, string>;
388
+ isOptional: false;
389
+ };
390
+ targetType: {
391
+ type: _lssm_lib_schema300.FieldType<string, string>;
392
+ isOptional: false;
393
+ };
394
+ targetId: {
395
+ type: _lssm_lib_schema300.FieldType<string, string>;
396
+ isOptional: false;
397
+ };
398
+ expiresAt: {
399
+ type: _lssm_lib_schema300.FieldType<Date, string>;
400
+ isOptional: true;
401
+ };
402
+ }>, SchemaModel<{
403
+ id: {
404
+ type: _lssm_lib_schema300.FieldType<string, string>;
405
+ isOptional: false;
406
+ };
407
+ roleId: {
408
+ type: _lssm_lib_schema300.FieldType<string, string>;
409
+ isOptional: false;
410
+ };
411
+ targetType: {
412
+ type: _lssm_lib_schema300.FieldType<string, string>;
413
+ isOptional: false;
414
+ };
415
+ targetId: {
416
+ type: _lssm_lib_schema300.FieldType<string, string>;
417
+ isOptional: false;
418
+ };
419
+ expiresAt: {
420
+ type: _lssm_lib_schema300.FieldType<Date, string>;
421
+ isOptional: true;
422
+ };
423
+ createdAt: {
424
+ type: _lssm_lib_schema300.FieldType<Date, string>;
425
+ isOptional: false;
426
+ };
427
+ role: {
428
+ type: SchemaModel<{
429
+ id: {
430
+ type: _lssm_lib_schema300.FieldType<string, string>;
431
+ isOptional: false;
432
+ };
433
+ name: {
434
+ type: _lssm_lib_schema300.FieldType<string, string>;
435
+ isOptional: false;
436
+ };
437
+ description: {
438
+ type: _lssm_lib_schema300.FieldType<string, string>;
439
+ isOptional: true;
440
+ };
441
+ permissions: {
442
+ type: _lssm_lib_schema300.FieldType<string, string>;
443
+ isOptional: false;
444
+ isArray: true;
445
+ };
446
+ createdAt: {
447
+ type: _lssm_lib_schema300.FieldType<Date, string>;
448
+ isOptional: false;
449
+ };
450
+ }>;
451
+ isOptional: false;
452
+ };
453
+ }>, {
454
+ name: string;
455
+ version: number;
456
+ when: string;
457
+ payload: SchemaModel<{
458
+ id: {
459
+ type: _lssm_lib_schema300.FieldType<string, string>;
460
+ isOptional: false;
461
+ };
462
+ roleId: {
463
+ type: _lssm_lib_schema300.FieldType<string, string>;
464
+ isOptional: false;
465
+ };
466
+ targetType: {
467
+ type: _lssm_lib_schema300.FieldType<string, string>;
468
+ isOptional: false;
469
+ };
470
+ targetId: {
471
+ type: _lssm_lib_schema300.FieldType<string, string>;
472
+ isOptional: false;
473
+ };
474
+ expiresAt: {
475
+ type: _lssm_lib_schema300.FieldType<Date, string>;
476
+ isOptional: true;
477
+ };
478
+ createdAt: {
479
+ type: _lssm_lib_schema300.FieldType<Date, string>;
480
+ isOptional: false;
481
+ };
482
+ role: {
483
+ type: SchemaModel<{
484
+ id: {
485
+ type: _lssm_lib_schema300.FieldType<string, string>;
486
+ isOptional: false;
487
+ };
488
+ name: {
489
+ type: _lssm_lib_schema300.FieldType<string, string>;
490
+ isOptional: false;
491
+ };
492
+ description: {
493
+ type: _lssm_lib_schema300.FieldType<string, string>;
494
+ isOptional: true;
495
+ };
496
+ permissions: {
497
+ type: _lssm_lib_schema300.FieldType<string, string>;
498
+ isOptional: false;
499
+ isArray: true;
500
+ };
501
+ createdAt: {
502
+ type: _lssm_lib_schema300.FieldType<Date, string>;
503
+ isOptional: false;
504
+ };
505
+ }>;
506
+ isOptional: false;
507
+ };
508
+ }>;
509
+ }[]>;
510
+ /**
511
+ * Revoke a role from a user or organization.
512
+ */
513
+ declare const RevokeRoleContract: _lssm_lib_contracts29.ContractSpec<SchemaModel<{
514
+ bindingId: {
515
+ type: _lssm_lib_schema300.FieldType<string, string>;
516
+ isOptional: false;
517
+ };
518
+ }>, SchemaModel<{
519
+ success: {
520
+ type: _lssm_lib_schema300.FieldType<boolean, boolean>;
521
+ isOptional: false;
522
+ };
523
+ }>, {
524
+ name: string;
525
+ version: number;
526
+ when: string;
527
+ payload: SchemaModel<{
528
+ bindingId: {
529
+ type: _lssm_lib_schema300.FieldType<string, string>;
530
+ isOptional: false;
531
+ };
532
+ }>;
533
+ }[]>;
534
+ /**
535
+ * Check if a user has a specific permission.
536
+ */
537
+ declare const CheckPermissionContract: _lssm_lib_contracts29.ContractSpec<SchemaModel<{
538
+ userId: {
539
+ type: _lssm_lib_schema300.FieldType<string, string>;
540
+ isOptional: false;
541
+ };
542
+ orgId: {
543
+ type: _lssm_lib_schema300.FieldType<string, string>;
544
+ isOptional: true;
545
+ };
546
+ permission: {
547
+ type: _lssm_lib_schema300.FieldType<string, string>;
548
+ isOptional: false;
549
+ };
550
+ }>, SchemaModel<{
551
+ allowed: {
552
+ type: _lssm_lib_schema300.FieldType<boolean, boolean>;
553
+ isOptional: false;
554
+ };
555
+ reason: {
556
+ type: _lssm_lib_schema300.FieldType<string, string>;
557
+ isOptional: true;
558
+ };
559
+ matchedRole: {
560
+ type: _lssm_lib_schema300.FieldType<string, string>;
561
+ isOptional: true;
562
+ };
563
+ }>, undefined>;
564
+ /**
565
+ * List permissions for a user.
566
+ */
567
+ declare const ListUserPermissionsContract: _lssm_lib_contracts29.ContractSpec<SchemaModel<{
568
+ userId: {
569
+ type: _lssm_lib_schema300.FieldType<string, string>;
570
+ isOptional: false;
571
+ };
572
+ orgId: {
573
+ type: _lssm_lib_schema300.FieldType<string, string>;
574
+ isOptional: true;
575
+ };
576
+ }>, SchemaModel<{
577
+ permissions: {
578
+ type: _lssm_lib_schema300.FieldType<string, string>;
579
+ isOptional: false;
580
+ isArray: true;
581
+ };
582
+ roles: {
583
+ type: SchemaModel<{
584
+ id: {
585
+ type: _lssm_lib_schema300.FieldType<string, string>;
586
+ isOptional: false;
587
+ };
588
+ name: {
589
+ type: _lssm_lib_schema300.FieldType<string, string>;
590
+ isOptional: false;
591
+ };
592
+ description: {
593
+ type: _lssm_lib_schema300.FieldType<string, string>;
594
+ isOptional: true;
595
+ };
596
+ permissions: {
597
+ type: _lssm_lib_schema300.FieldType<string, string>;
598
+ isOptional: false;
599
+ isArray: true;
600
+ };
601
+ createdAt: {
602
+ type: _lssm_lib_schema300.FieldType<Date, string>;
603
+ isOptional: false;
604
+ };
605
+ }>;
606
+ isOptional: false;
607
+ isArray: true;
608
+ };
609
+ }>, undefined>;
610
+ //#endregion
611
+ export { AssignRoleContract, AssignRoleInputModel, BindingIdPayloadModel, CheckPermissionContract, CheckPermissionInputModel, CreateRoleContract, CreateRoleInputModel, DeleteRoleContract, DeleteRoleInputModel, ListRolesContract, ListRolesOutputModel, ListUserPermissionsContract, ListUserPermissionsInputModel, ListUserPermissionsOutputModel, PermissionCheckResultModel, PolicyBindingModel, RevokeRoleContract, RevokeRoleInputModel, RoleModel, UpdateRoleContract, UpdateRoleInputModel };
@@ -0,0 +1 @@
1
+ import{l as e}from"../schema/dist/ScalarTypeEnum.js";import{t}from"../schema/dist/SchemaModel.js";import"../schema/dist/index.js";import{n,t as r}from"./dist/spec.js";import"./dist/index.js";import{SuccessResultModel as i}from"./user.js";const a=[`platform.identity-rbac`],o=new t({name:`Role`,description:`RBAC role definition`,fields:{id:{type:e.String_unsecure(),isOptional:!1},name:{type:e.String_unsecure(),isOptional:!1},description:{type:e.String_unsecure(),isOptional:!0},permissions:{type:e.String_unsecure(),isOptional:!1,isArray:!0},createdAt:{type:e.DateTime(),isOptional:!1}}}),s=new t({name:`PolicyBinding`,description:`Role assignment to a target`,fields:{id:{type:e.String_unsecure(),isOptional:!1},roleId:{type:e.String_unsecure(),isOptional:!1},targetType:{type:e.String_unsecure(),isOptional:!1},targetId:{type:e.String_unsecure(),isOptional:!1},expiresAt:{type:e.DateTime(),isOptional:!0},createdAt:{type:e.DateTime(),isOptional:!1},role:{type:o,isOptional:!1}}}),c=new t({name:`PermissionCheckResult`,description:`Result of a permission check`,fields:{allowed:{type:e.Boolean(),isOptional:!1},reason:{type:e.String_unsecure(),isOptional:!0},matchedRole:{type:e.String_unsecure(),isOptional:!0}}}),l=new t({name:`CreateRoleInput`,description:`Input for creating a role`,fields:{name:{type:e.NonEmptyString(),isOptional:!1},description:{type:e.String_unsecure(),isOptional:!0},permissions:{type:e.String_unsecure(),isOptional:!1,isArray:!0}}}),u=new t({name:`UpdateRoleInput`,description:`Input for updating a role`,fields:{roleId:{type:e.String_unsecure(),isOptional:!1},name:{type:e.String_unsecure(),isOptional:!0},description:{type:e.String_unsecure(),isOptional:!0},permissions:{type:e.String_unsecure(),isOptional:!0,isArray:!0}}}),d=new t({name:`DeleteRoleInput`,description:`Input for deleting a role`,fields:{roleId:{type:e.String_unsecure(),isOptional:!1}}}),f=new t({name:`ListRolesOutput`,description:`Output for listing roles`,fields:{roles:{type:o,isOptional:!1,isArray:!0}}}),p=new t({name:`AssignRoleInput`,description:`Input for assigning a role`,fields:{roleId:{type:e.String_unsecure(),isOptional:!1},targetType:{type:e.String_unsecure(),isOptional:!1},targetId:{type:e.String_unsecure(),isOptional:!1},expiresAt:{type:e.DateTime(),isOptional:!0}}}),m=new t({name:`RevokeRoleInput`,description:`Input for revoking a role`,fields:{bindingId:{type:e.String_unsecure(),isOptional:!1}}}),h=new t({name:`BindingIdPayload`,description:`Payload with binding ID`,fields:{bindingId:{type:e.String_unsecure(),isOptional:!1}}}),g=new t({name:`CheckPermissionInput`,description:`Input for checking a permission`,fields:{userId:{type:e.String_unsecure(),isOptional:!1},orgId:{type:e.String_unsecure(),isOptional:!0},permission:{type:e.String_unsecure(),isOptional:!1}}}),_=new t({name:`ListUserPermissionsInput`,description:`Input for listing user permissions`,fields:{userId:{type:e.String_unsecure(),isOptional:!1},orgId:{type:e.String_unsecure(),isOptional:!0}}}),v=new t({name:`ListUserPermissionsOutput`,description:`Output for listing user permissions`,fields:{permissions:{type:e.String_unsecure(),isOptional:!1,isArray:!0},roles:{type:o,isOptional:!1,isArray:!0}}}),y=r({meta:{name:`identity.rbac.role.create`,version:1,stability:`stable`,owners:[...a],tags:[`identity`,`rbac`,`role`,`create`],description:`Create a new role with permissions.`,goal:`Allow admins to define custom roles.`,context:`Role management in admin settings.`},io:{input:l,output:o,errors:{ROLE_EXISTS:{description:`A role with this name already exists`,http:409,gqlCode:`ROLE_EXISTS`,when:`Role name is taken`}}},policy:{auth:`admin`},sideEffects:{audit:[`role.created`]}}),b=r({meta:{name:`identity.rbac.role.update`,version:1,stability:`stable`,owners:[...a],tags:[`identity`,`rbac`,`role`,`update`],description:`Update an existing role.`,goal:`Allow admins to modify role permissions.`,context:`Role management in admin settings.`},io:{input:u,output:o},policy:{auth:`admin`},sideEffects:{audit:[`role.updated`]}}),x=r({meta:{name:`identity.rbac.role.delete`,version:1,stability:`stable`,owners:[...a],tags:[`identity`,`rbac`,`role`,`delete`],description:`Delete an existing role.`,goal:`Allow admins to remove unused roles.`,context:`Role management. Removes all policy bindings using this role.`},io:{input:d,output:i,errors:{ROLE_IN_USE:{description:`Role is still assigned to users or organizations`,http:409,gqlCode:`ROLE_IN_USE`,when:`Role has active bindings`}}},policy:{auth:`admin`},sideEffects:{audit:[`role.deleted`]}}),S=n({meta:{name:`identity.rbac.role.list`,version:1,stability:`stable`,owners:[...a],tags:[`identity`,`rbac`,`role`,`list`],description:`List all available roles.`,goal:`Show available roles for assignment.`,context:`Role assignment UI.`},io:{input:null,output:f},policy:{auth:`user`}}),C=r({meta:{name:`identity.rbac.assign`,version:1,stability:`stable`,owners:[...a],tags:[`identity`,`rbac`,`assign`],description:`Assign a role to a user or organization.`,goal:`Grant permissions via role assignment.`,context:`User/org permission management.`},io:{input:p,output:s,errors:{ROLE_NOT_FOUND:{description:`The specified role does not exist`,http:404,gqlCode:`ROLE_NOT_FOUND`,when:`Role ID is invalid`},ALREADY_ASSIGNED:{description:`This role is already assigned to the target`,http:409,gqlCode:`ALREADY_ASSIGNED`,when:`Binding already exists`}}},policy:{auth:`admin`},sideEffects:{emits:[{name:`role.assigned`,version:1,when:`Role is assigned`,payload:s}],audit:[`role.assigned`]}}),w=r({meta:{name:`identity.rbac.revoke`,version:1,stability:`stable`,owners:[...a],tags:[`identity`,`rbac`,`revoke`],description:`Revoke a role from a user or organization.`,goal:`Remove permissions via role revocation.`,context:`User/org permission management.`},io:{input:m,output:i,errors:{BINDING_NOT_FOUND:{description:`The policy binding does not exist`,http:404,gqlCode:`BINDING_NOT_FOUND`,when:`Binding ID is invalid`}}},policy:{auth:`admin`},sideEffects:{emits:[{name:`role.revoked`,version:1,when:`Role is revoked`,payload:h}],audit:[`role.revoked`]}}),T=n({meta:{name:`identity.rbac.check`,version:1,stability:`stable`,owners:[...a],tags:[`identity`,`rbac`,`check`,`permission`],description:`Check if a user has a specific permission.`,goal:`Authorization check before sensitive operations.`,context:`Called by other services to verify permissions.`},io:{input:g,output:c},policy:{auth:`user`}}),E=n({meta:{name:`identity.rbac.permissions`,version:1,stability:`stable`,owners:[...a],tags:[`identity`,`rbac`,`permissions`,`user`],description:`List all permissions for a user in a context.`,goal:`Show what a user can do in an org.`,context:`UI permission display, debugging.`},io:{input:_,output:v},policy:{auth:`user`}});export{C as AssignRoleContract,p as AssignRoleInputModel,h as BindingIdPayloadModel,T as CheckPermissionContract,g as CheckPermissionInputModel,y as CreateRoleContract,l as CreateRoleInputModel,x as DeleteRoleContract,d as DeleteRoleInputModel,S as ListRolesContract,f as ListRolesOutputModel,E as ListUserPermissionsContract,_ as ListUserPermissionsInputModel,v as ListUserPermissionsOutputModel,c as PermissionCheckResultModel,s as PolicyBindingModel,w as RevokeRoleContract,m as RevokeRoleInputModel,o as RoleModel,b as UpdateRoleContract,u as UpdateRoleInputModel};