weave-typescript 0.51.3 → 0.53.0

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 (185) hide show
  1. package/dist/google/protobuf/duration.pb.d.ts +99 -0
  2. package/dist/google/protobuf/duration.pb.js +93 -0
  3. package/dist/index.d.ts +1 -0
  4. package/dist/index.js +2 -1
  5. package/dist/weave/authz/v1/index.d.ts +1 -0
  6. package/dist/weave/authz/v1/index.js +38 -0
  7. package/dist/weave/authz/v1/options.pb.d.ts +52 -0
  8. package/dist/weave/authz/v1/options.pb.js +403 -0
  9. package/dist/weave/filter/v1/index.d.ts +1 -0
  10. package/dist/weave/filter/v1/index.js +38 -0
  11. package/dist/{weaveapi/atc/v1/message.pb.d.ts → weave/filter/v1/options.pb.d.ts} +33 -21
  12. package/dist/weave/filter/v1/options.pb.js +417 -0
  13. package/dist/weave/index.d.ts +2 -0
  14. package/dist/weave/index.js +39 -0
  15. package/dist/weaveapi/agent/v1/agent.pb.d.ts +137 -188
  16. package/dist/weaveapi/agent/v1/agent.pb.js +891 -2151
  17. package/dist/weaveapi/agent/v1/index.d.ts +1 -1
  18. package/dist/weaveapi/agent/v1/index.js +2 -2
  19. package/dist/weaveapi/agent/v1/run.pb.d.ts +289 -0
  20. package/dist/weaveapi/agent/v1/run.pb.js +2763 -0
  21. package/dist/weaveapi/auth/v1/auth.pb.d.ts +67 -14
  22. package/dist/weaveapi/auth/v1/auth.pb.js +829 -89
  23. package/dist/weaveapi/auth/v1/index.d.ts +4 -1
  24. package/dist/weaveapi/auth/v1/index.js +5 -2
  25. package/dist/weaveapi/auth/v1/{service.pb.d.ts → organization_admin.pb.d.ts} +39 -530
  26. package/dist/weaveapi/auth/v1/{service.pb.js → organization_admin.pb.js} +2978 -5812
  27. package/dist/weaveapi/auth/v1/personal_access_token.pb.d.ts +114 -0
  28. package/dist/weaveapi/auth/v1/personal_access_token.pb.js +750 -0
  29. package/dist/weaveapi/auth/v1/profile.pb.d.ts +161 -0
  30. package/dist/weaveapi/auth/v1/profile.pb.js +1007 -0
  31. package/dist/weaveapi/auth/v1/session.pb.d.ts +460 -0
  32. package/dist/weaveapi/auth/v1/session.pb.js +3544 -0
  33. package/dist/weaveapi/chat/v1/chat.pb.d.ts +377 -149
  34. package/dist/weaveapi/chat/v1/chat.pb.js +3492 -1614
  35. package/dist/weaveapi/chat/v1/index.d.ts +0 -1
  36. package/dist/weaveapi/chat/v1/index.js +1 -2
  37. package/dist/weaveapi/consolidation/v1/consolidation.pb.d.ts +95 -0
  38. package/dist/weaveapi/consolidation/v1/consolidation.pb.js +770 -1
  39. package/dist/weaveapi/consolidation/v1/index.d.ts +0 -1
  40. package/dist/weaveapi/consolidation/v1/index.js +1 -2
  41. package/dist/weaveapi/content/v1/content.pb.d.ts +63 -0
  42. package/dist/weaveapi/content/v1/content.pb.js +470 -0
  43. package/dist/weaveapi/content/v1/index.d.ts +1 -0
  44. package/dist/weaveapi/content/v1/index.js +38 -0
  45. package/dist/weaveapi/gateway/v1/gateway.pb.d.ts +247 -523
  46. package/dist/weaveapi/gateway/v1/gateway.pb.js +1648 -5783
  47. package/dist/weaveapi/gateway/v1/index.d.ts +0 -1
  48. package/dist/weaveapi/gateway/v1/index.js +1 -2
  49. package/dist/weaveapi/index.d.ts +5 -5
  50. package/dist/weaveapi/index.js +6 -6
  51. package/dist/weaveapi/inference/v1/generate.pb.d.ts +120 -0
  52. package/dist/weaveapi/inference/v1/generate.pb.js +1159 -0
  53. package/dist/weaveapi/inference/v1/index.d.ts +4 -0
  54. package/dist/weaveapi/{provider → inference}/v1/index.js +4 -2
  55. package/dist/weaveapi/{model → inference}/v1/model.pb.d.ts +54 -15
  56. package/dist/weaveapi/{model → inference}/v1/model.pb.js +573 -116
  57. package/dist/weaveapi/{model/v1/service.pb.d.ts → inference/v1/model_route.pb.d.ts} +184 -110
  58. package/dist/weaveapi/{model/v1/service.pb.js → inference/v1/model_route.pb.js} +2240 -1061
  59. package/dist/weaveapi/inference/v1/provider.pb.d.ts +264 -0
  60. package/dist/weaveapi/inference/v1/provider.pb.js +2590 -0
  61. package/dist/weaveapi/ingestion/v1/index.d.ts +0 -2
  62. package/dist/weaveapi/ingestion/v1/index.js +1 -3
  63. package/dist/weaveapi/ingestion/v1/ingestion.pb.d.ts +543 -0
  64. package/dist/weaveapi/ingestion/v1/ingestion.pb.js +5550 -16
  65. package/dist/weaveapi/initialization/v1/index.d.ts +1 -0
  66. package/dist/weaveapi/initialization/v1/index.js +38 -0
  67. package/dist/weaveapi/initialization/v1/initialization.pb.d.ts +99 -0
  68. package/dist/weaveapi/initialization/v1/initialization.pb.js +510 -0
  69. package/dist/weaveapi/organization/v1/index.d.ts +0 -1
  70. package/dist/weaveapi/organization/v1/index.js +1 -2
  71. package/dist/weaveapi/organization/v1/organization.pb.d.ts +241 -0
  72. package/dist/weaveapi/organization/v1/organization.pb.js +1838 -1
  73. package/dist/weaveapi/reporting/index.d.ts +1 -0
  74. package/dist/weaveapi/reporting/index.js +38 -0
  75. package/dist/weaveapi/{task → reporting}/v1/index.d.ts +1 -1
  76. package/dist/weaveapi/{model → reporting}/v1/index.js +2 -2
  77. package/dist/weaveapi/reporting/v1/service.pb.d.ts +38 -0
  78. package/dist/weaveapi/reporting/v1/service.pb.js +167 -0
  79. package/dist/weaveapi/reporting/v1/usage.pb.d.ts +150 -0
  80. package/dist/weaveapi/reporting/v1/usage.pb.js +1837 -0
  81. package/dist/weaveapi/retrieval/v1/index.d.ts +0 -1
  82. package/dist/weaveapi/retrieval/v1/index.js +1 -2
  83. package/dist/weaveapi/retrieval/v1/retrieval.pb.d.ts +96 -2
  84. package/dist/weaveapi/retrieval/v1/retrieval.pb.js +690 -10
  85. package/dist/weaveapi/tool/index.d.ts +1 -0
  86. package/dist/weaveapi/tool/index.js +38 -0
  87. package/dist/weaveapi/tool/v1/index.d.ts +1 -0
  88. package/dist/weaveapi/tool/v1/index.js +38 -0
  89. package/dist/weaveapi/tool/v1/tool.pb.d.ts +370 -0
  90. package/dist/weaveapi/tool/v1/tool.pb.js +2717 -0
  91. package/dist/weaveapi/workflow/v1/index.d.ts +1 -1
  92. package/dist/weaveapi/workflow/v1/index.js +2 -2
  93. package/dist/weaveapi/workflow/v1/run.pb.d.ts +244 -0
  94. package/dist/weaveapi/workflow/v1/run.pb.js +2084 -0
  95. package/dist/weaveapi/workflow/v1/workflow.pb.d.ts +122 -275
  96. package/dist/weaveapi/workflow/v1/workflow.pb.js +790 -3261
  97. package/dist/weavesql/weavedb/agent_sql.d.ts +173 -477
  98. package/dist/weavesql/weavedb/agent_sql.js +281 -758
  99. package/dist/weavesql/weavedb/authorization_outbox_sql.d.ts +261 -0
  100. package/dist/weavesql/weavedb/authorization_outbox_sql.js +445 -0
  101. package/dist/weavesql/weavedb/chat_sql.d.ts +103 -345
  102. package/dist/weavesql/weavedb/chat_sql.js +312 -597
  103. package/dist/weavesql/weavedb/document_consolidation_sql.d.ts +217 -0
  104. package/dist/weavesql/weavedb/document_consolidation_sql.js +486 -0
  105. package/dist/weavesql/weavedb/document_ingestion_sql.d.ts +1433 -0
  106. package/dist/weavesql/weavedb/document_ingestion_sql.js +3488 -0
  107. package/dist/weavesql/weavedb/document_retrieval_sql.d.ts +314 -0
  108. package/dist/weavesql/weavedb/document_retrieval_sql.js +965 -0
  109. package/dist/weavesql/weavedb/document_table_sql.d.ts +6 -6
  110. package/dist/weavesql/weavedb/document_table_sql.js +12 -12
  111. package/dist/weavesql/weavedb/identity_sql.d.ts +1021 -0
  112. package/dist/weavesql/weavedb/identity_sql.js +1818 -0
  113. package/dist/weavesql/weavedb/inference_model_route_sql.d.ts +167 -0
  114. package/dist/weavesql/weavedb/inference_model_route_sql.js +483 -0
  115. package/dist/weavesql/weavedb/inference_provider_sql.d.ts +125 -0
  116. package/dist/weavesql/weavedb/inference_provider_sql.js +228 -0
  117. package/dist/weavesql/weavedb/initialization_sql.d.ts +15 -0
  118. package/dist/weavesql/weavedb/initialization_sql.js +33 -0
  119. package/dist/weavesql/weavedb/model_catalog_sql.d.ts +6 -6
  120. package/dist/weavesql/weavedb/model_catalog_sql.js +6 -6
  121. package/dist/weavesql/weavedb/organization_sql.d.ts +24 -102
  122. package/dist/weavesql/weavedb/organization_sql.js +56 -262
  123. package/dist/weavesql/weavedb/tool_sql.d.ts +209 -0
  124. package/dist/weavesql/weavedb/tool_sql.js +407 -0
  125. package/dist/weavesql/weavedb/usage_sql.d.ts +356 -0
  126. package/dist/weavesql/weavedb/usage_sql.js +568 -0
  127. package/dist/weavesql/weavedb/workflow_sql.d.ts +159 -546
  128. package/dist/weavesql/weavedb/workflow_sql.js +281 -909
  129. package/package.json +1 -1
  130. package/dist/weaveapi/agent/v1/service.pb.d.ts +0 -397
  131. package/dist/weaveapi/agent/v1/service.pb.js +0 -3152
  132. package/dist/weaveapi/atc/v1/event.pb.d.ts +0 -134
  133. package/dist/weaveapi/atc/v1/event.pb.js +0 -1124
  134. package/dist/weaveapi/atc/v1/index.d.ts +0 -5
  135. package/dist/weaveapi/atc/v1/index.js +0 -42
  136. package/dist/weaveapi/atc/v1/message.pb.js +0 -287
  137. package/dist/weaveapi/atc/v1/process.pb.d.ts +0 -91
  138. package/dist/weaveapi/atc/v1/process.pb.js +0 -658
  139. package/dist/weaveapi/atc/v1/run.pb.d.ts +0 -71
  140. package/dist/weaveapi/atc/v1/run.pb.js +0 -525
  141. package/dist/weaveapi/atc/v1/service.pb.d.ts +0 -472
  142. package/dist/weaveapi/atc/v1/service.pb.js +0 -3093
  143. package/dist/weaveapi/chat/v1/service.pb.d.ts +0 -345
  144. package/dist/weaveapi/chat/v1/service.pb.js +0 -2545
  145. package/dist/weaveapi/consolidation/v1/service.pb.d.ts +0 -93
  146. package/dist/weaveapi/consolidation/v1/service.pb.js +0 -427
  147. package/dist/weaveapi/gateway/v1/service.pb.d.ts +0 -235
  148. package/dist/weaveapi/gateway/v1/service.pb.js +0 -651
  149. package/dist/weaveapi/ingestion/v1/service.pb.d.ts +0 -420
  150. package/dist/weaveapi/ingestion/v1/service.pb.js +0 -2311
  151. package/dist/weaveapi/ingestion/v1/table.pb.d.ts +0 -121
  152. package/dist/weaveapi/ingestion/v1/table.pb.js +0 -1478
  153. package/dist/weaveapi/model/v1/index.d.ts +0 -2
  154. package/dist/weaveapi/organization/v1/service.pb.d.ts +0 -261
  155. package/dist/weaveapi/organization/v1/service.pb.js +0 -1561
  156. package/dist/weaveapi/project/v1/index.d.ts +0 -2
  157. package/dist/weaveapi/project/v1/index.js +0 -39
  158. package/dist/weaveapi/project/v1/project.pb.d.ts +0 -105
  159. package/dist/weaveapi/project/v1/project.pb.js +0 -1004
  160. package/dist/weaveapi/project/v1/service.pb.d.ts +0 -247
  161. package/dist/weaveapi/project/v1/service.pb.js +0 -1994
  162. package/dist/weaveapi/provider/v1/index.d.ts +0 -2
  163. package/dist/weaveapi/provider/v1/provider.pb.d.ts +0 -137
  164. package/dist/weaveapi/provider/v1/provider.pb.js +0 -1000
  165. package/dist/weaveapi/provider/v1/service.pb.d.ts +0 -223
  166. package/dist/weaveapi/provider/v1/service.pb.js +0 -1888
  167. package/dist/weaveapi/retrieval/v1/service.pb.d.ts +0 -93
  168. package/dist/weaveapi/retrieval/v1/service.pb.js +0 -385
  169. package/dist/weaveapi/task/v1/index.js +0 -39
  170. package/dist/weaveapi/task/v1/service.pb.d.ts +0 -172
  171. package/dist/weaveapi/task/v1/service.pb.js +0 -1436
  172. package/dist/weaveapi/task/v1/task.pb.d.ts +0 -85
  173. package/dist/weaveapi/task/v1/task.pb.js +0 -802
  174. package/dist/weaveapi/workflow/v1/service.pb.d.ts +0 -392
  175. package/dist/weaveapi/workflow/v1/service.pb.js +0 -3146
  176. /package/dist/{weaveapi/atc → weave/authz}/index.d.ts +0 -0
  177. /package/dist/{weaveapi/atc → weave/authz}/index.js +0 -0
  178. /package/dist/{weaveapi/model → weave/filter}/index.d.ts +0 -0
  179. /package/dist/{weaveapi/model → weave/filter}/index.js +0 -0
  180. /package/dist/weaveapi/{project → content}/index.d.ts +0 -0
  181. /package/dist/weaveapi/{project → content}/index.js +0 -0
  182. /package/dist/weaveapi/{provider → inference}/index.d.ts +0 -0
  183. /package/dist/weaveapi/{provider → inference}/index.js +0 -0
  184. /package/dist/weaveapi/{task → initialization}/index.d.ts +0 -0
  185. /package/dist/weaveapi/{task → initialization}/index.js +0 -0
@@ -0,0 +1,1818 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getPersonalAccessTokenQuery = exports.createPersonalAccessTokenQuery = exports.revokeAuthInviteSessionQuery = exports.completeAuthInviteSessionQuery = exports.updateAuthInviteSessionOAuthQuery = exports.getAuthInviteSessionByMembershipQuery = exports.getAuthInviteSessionQuery = exports.updateAuthInviteSessionTokenQuery = exports.createAuthInviteSessionQuery = exports.deleteExpiredApplicationSessionsQuery = exports.revokeApplicationSessionQuery = exports.updateApplicationSessionOrganizationQuery = exports.getPrincipalByApplicationSessionQuery = exports.getApplicationSessionQuery = exports.createApplicationSessionQuery = exports.getOrganizationIdentityLinkByOrganizationIDQuery = exports.updateOrganizationScimGroupMappingQuery = exports.listOrganizationScimGroupMappingsQuery = exports.upsertOrganizationScimGroupMappingQuery = exports.listOrganizationTeamRoleGrantsQuery = exports.addOrganizationTeamRoleGrantQuery = exports.deleteOrganizationTeamRoleGrantsQuery = exports.listOrganizationTeamMembersQuery = exports.addOrganizationTeamMembershipQuery = exports.deleteOrganizationTeamMembershipsQuery = exports.deleteOrganizationTeamQuery = exports.updateOrganizationTeamQuery = exports.listOrganizationTeamsQuery = exports.getOrganizationTeamQuery = exports.createOrganizationTeamQuery = exports.updateOrganizationMembershipByIDQuery = exports.listOrganizationMembersQuery = exports.getOrganizationMemberQuery = exports.getOrganizationMembershipQuery = exports.upsertOrganizationMembershipQuery = exports.upsertUserIdentityLinkQuery = exports.getPrincipalByExternalIdentityQuery = exports.updateUserPreferencesQuery = exports.updateUserProfileQuery = exports.getUserQuery = exports.getUserByExternalIdentityQuery = exports.upsertUserQuery = exports.upsertOrganizationIdentityLinkQuery = exports.getOrganizationByExternalIdentityQuery = exports.getOrganizationForUserBySlugQuery = exports.listOrganizationsForUserQuery = exports.listOrganizationsQuery = exports.getOrganizationBySlugQuery = exports.getOrganizationQuery = exports.createOrganizationQuery = void 0;
4
+ exports.revokePersonalAccessTokenForUserQuery = exports.revokePersonalAccessTokenQuery = exports.markPersonalAccessTokenUsedQuery = exports.getPrincipalByPersonalAccessTokenQuery = exports.listPersonalAccessTokensQuery = void 0;
5
+ exports.createOrganization = createOrganization;
6
+ exports.getOrganization = getOrganization;
7
+ exports.getOrganizationBySlug = getOrganizationBySlug;
8
+ exports.listOrganizations = listOrganizations;
9
+ exports.listOrganizationsForUser = listOrganizationsForUser;
10
+ exports.getOrganizationForUserBySlug = getOrganizationForUserBySlug;
11
+ exports.getOrganizationByExternalIdentity = getOrganizationByExternalIdentity;
12
+ exports.upsertOrganizationIdentityLink = upsertOrganizationIdentityLink;
13
+ exports.upsertUser = upsertUser;
14
+ exports.getUserByExternalIdentity = getUserByExternalIdentity;
15
+ exports.getUser = getUser;
16
+ exports.updateUserProfile = updateUserProfile;
17
+ exports.updateUserPreferences = updateUserPreferences;
18
+ exports.getPrincipalByExternalIdentity = getPrincipalByExternalIdentity;
19
+ exports.upsertUserIdentityLink = upsertUserIdentityLink;
20
+ exports.upsertOrganizationMembership = upsertOrganizationMembership;
21
+ exports.getOrganizationMembership = getOrganizationMembership;
22
+ exports.getOrganizationMember = getOrganizationMember;
23
+ exports.listOrganizationMembers = listOrganizationMembers;
24
+ exports.updateOrganizationMembershipByID = updateOrganizationMembershipByID;
25
+ exports.createOrganizationTeam = createOrganizationTeam;
26
+ exports.getOrganizationTeam = getOrganizationTeam;
27
+ exports.listOrganizationTeams = listOrganizationTeams;
28
+ exports.updateOrganizationTeam = updateOrganizationTeam;
29
+ exports.addOrganizationTeamMembership = addOrganizationTeamMembership;
30
+ exports.listOrganizationTeamMembers = listOrganizationTeamMembers;
31
+ exports.addOrganizationTeamRoleGrant = addOrganizationTeamRoleGrant;
32
+ exports.listOrganizationTeamRoleGrants = listOrganizationTeamRoleGrants;
33
+ exports.upsertOrganizationScimGroupMapping = upsertOrganizationScimGroupMapping;
34
+ exports.listOrganizationScimGroupMappings = listOrganizationScimGroupMappings;
35
+ exports.updateOrganizationScimGroupMapping = updateOrganizationScimGroupMapping;
36
+ exports.getOrganizationIdentityLinkByOrganizationID = getOrganizationIdentityLinkByOrganizationID;
37
+ exports.createApplicationSession = createApplicationSession;
38
+ exports.getApplicationSession = getApplicationSession;
39
+ exports.getPrincipalByApplicationSession = getPrincipalByApplicationSession;
40
+ exports.updateApplicationSessionOrganization = updateApplicationSessionOrganization;
41
+ exports.createAuthInviteSession = createAuthInviteSession;
42
+ exports.updateAuthInviteSessionToken = updateAuthInviteSessionToken;
43
+ exports.getAuthInviteSession = getAuthInviteSession;
44
+ exports.getAuthInviteSessionByMembership = getAuthInviteSessionByMembership;
45
+ exports.updateAuthInviteSessionOAuth = updateAuthInviteSessionOAuth;
46
+ exports.completeAuthInviteSession = completeAuthInviteSession;
47
+ exports.revokeAuthInviteSession = revokeAuthInviteSession;
48
+ exports.createPersonalAccessToken = createPersonalAccessToken;
49
+ exports.getPersonalAccessToken = getPersonalAccessToken;
50
+ exports.listPersonalAccessTokens = listPersonalAccessTokens;
51
+ exports.getPrincipalByPersonalAccessToken = getPrincipalByPersonalAccessToken;
52
+ exports.revokePersonalAccessTokenForUser = revokePersonalAccessTokenForUser;
53
+ exports.createOrganizationQuery = `-- name: CreateOrganization :one
54
+ INSERT INTO weave.organization (
55
+ slug,
56
+ name,
57
+ description,
58
+ primary_color,
59
+ logo,
60
+ logo_content_type,
61
+ timezone,
62
+ location,
63
+ status
64
+ ) VALUES (
65
+ $1,
66
+ $2,
67
+ COALESCE($3::text, ''),
68
+ COALESCE($4::text, '#22d3ee'),
69
+ $5,
70
+ $6,
71
+ COALESCE($7::text, 'UTC'),
72
+ COALESCE($8::text, ''),
73
+ COALESCE($9::text, 'active')
74
+ )
75
+ RETURNING id, slug, name, description, primary_color, logo, logo_content_type, timezone, location, status, default_chat_agent_id, default_chat_model_route_id, created_at, updated_at, default_fast_model_route_id`;
76
+ async function createOrganization(client, args) {
77
+ const result = await client.query({
78
+ text: exports.createOrganizationQuery,
79
+ values: [args.slug, args.name, args.description, args.primaryColor, args.logo, args.logoContentType, args.timezone, args.location, args.status],
80
+ rowMode: "array"
81
+ });
82
+ if (result.rows.length !== 1) {
83
+ return null;
84
+ }
85
+ const row = result.rows[0];
86
+ return {
87
+ id: row[0],
88
+ slug: row[1],
89
+ name: row[2],
90
+ description: row[3],
91
+ primaryColor: row[4],
92
+ logo: row[5],
93
+ logoContentType: row[6],
94
+ timezone: row[7],
95
+ location: row[8],
96
+ status: row[9],
97
+ defaultChatAgentId: row[10],
98
+ defaultChatModelRouteId: row[11],
99
+ createdAt: row[12],
100
+ updatedAt: row[13],
101
+ defaultFastModelRouteId: row[14]
102
+ };
103
+ }
104
+ exports.getOrganizationQuery = `-- name: GetOrganization :one
105
+ SELECT id, slug, name, description, primary_color, logo, logo_content_type, timezone, location, status, default_chat_agent_id, default_chat_model_route_id, created_at, updated_at, default_fast_model_route_id
106
+ FROM weave.organization
107
+ WHERE id = $1`;
108
+ async function getOrganization(client, args) {
109
+ const result = await client.query({
110
+ text: exports.getOrganizationQuery,
111
+ values: [args.organizationId],
112
+ rowMode: "array"
113
+ });
114
+ if (result.rows.length !== 1) {
115
+ return null;
116
+ }
117
+ const row = result.rows[0];
118
+ return {
119
+ id: row[0],
120
+ slug: row[1],
121
+ name: row[2],
122
+ description: row[3],
123
+ primaryColor: row[4],
124
+ logo: row[5],
125
+ logoContentType: row[6],
126
+ timezone: row[7],
127
+ location: row[8],
128
+ status: row[9],
129
+ defaultChatAgentId: row[10],
130
+ defaultChatModelRouteId: row[11],
131
+ createdAt: row[12],
132
+ updatedAt: row[13],
133
+ defaultFastModelRouteId: row[14]
134
+ };
135
+ }
136
+ exports.getOrganizationBySlugQuery = `-- name: GetOrganizationBySlug :one
137
+ SELECT id, slug, name, description, primary_color, logo, logo_content_type, timezone, location, status, default_chat_agent_id, default_chat_model_route_id, created_at, updated_at, default_fast_model_route_id
138
+ FROM weave.organization
139
+ WHERE slug = $1`;
140
+ async function getOrganizationBySlug(client, args) {
141
+ const result = await client.query({
142
+ text: exports.getOrganizationBySlugQuery,
143
+ values: [args.slug],
144
+ rowMode: "array"
145
+ });
146
+ if (result.rows.length !== 1) {
147
+ return null;
148
+ }
149
+ const row = result.rows[0];
150
+ return {
151
+ id: row[0],
152
+ slug: row[1],
153
+ name: row[2],
154
+ description: row[3],
155
+ primaryColor: row[4],
156
+ logo: row[5],
157
+ logoContentType: row[6],
158
+ timezone: row[7],
159
+ location: row[8],
160
+ status: row[9],
161
+ defaultChatAgentId: row[10],
162
+ defaultChatModelRouteId: row[11],
163
+ createdAt: row[12],
164
+ updatedAt: row[13],
165
+ defaultFastModelRouteId: row[14]
166
+ };
167
+ }
168
+ exports.listOrganizationsQuery = `-- name: ListOrganizations :many
169
+ SELECT id, slug, name, description, primary_color, logo, logo_content_type, timezone, location, status, default_chat_agent_id, default_chat_model_route_id, created_at, updated_at, default_fast_model_route_id
170
+ FROM weave.organization
171
+ WHERE status = 'active'
172
+ ORDER BY created_at DESC, id DESC`;
173
+ async function listOrganizations(client) {
174
+ const result = await client.query({
175
+ text: exports.listOrganizationsQuery,
176
+ values: [],
177
+ rowMode: "array"
178
+ });
179
+ return result.rows.map(row => {
180
+ return {
181
+ id: row[0],
182
+ slug: row[1],
183
+ name: row[2],
184
+ description: row[3],
185
+ primaryColor: row[4],
186
+ logo: row[5],
187
+ logoContentType: row[6],
188
+ timezone: row[7],
189
+ location: row[8],
190
+ status: row[9],
191
+ defaultChatAgentId: row[10],
192
+ defaultChatModelRouteId: row[11],
193
+ createdAt: row[12],
194
+ updatedAt: row[13],
195
+ defaultFastModelRouteId: row[14]
196
+ };
197
+ });
198
+ }
199
+ exports.listOrganizationsForUserQuery = `-- name: ListOrganizationsForUser :many
200
+ SELECT o.id, o.slug, o.name, o.description, o.primary_color, o.logo, o.logo_content_type, o.timezone, o.location, o.status, o.default_chat_agent_id, o.default_chat_model_route_id, o.created_at, o.updated_at, o.default_fast_model_route_id
201
+ FROM weave.organization o
202
+ JOIN weave.organization_membership om
203
+ ON om.organization_id = o.id
204
+ WHERE om.user_id = $1
205
+ AND om.status = 'active'
206
+ AND o.status = 'active'
207
+ ORDER BY o.created_at DESC, o.id DESC`;
208
+ async function listOrganizationsForUser(client, args) {
209
+ const result = await client.query({
210
+ text: exports.listOrganizationsForUserQuery,
211
+ values: [args.userId],
212
+ rowMode: "array"
213
+ });
214
+ return result.rows.map(row => {
215
+ return {
216
+ id: row[0],
217
+ slug: row[1],
218
+ name: row[2],
219
+ description: row[3],
220
+ primaryColor: row[4],
221
+ logo: row[5],
222
+ logoContentType: row[6],
223
+ timezone: row[7],
224
+ location: row[8],
225
+ status: row[9],
226
+ defaultChatAgentId: row[10],
227
+ defaultChatModelRouteId: row[11],
228
+ createdAt: row[12],
229
+ updatedAt: row[13],
230
+ defaultFastModelRouteId: row[14]
231
+ };
232
+ });
233
+ }
234
+ exports.getOrganizationForUserBySlugQuery = `-- name: GetOrganizationForUserBySlug :one
235
+ SELECT o.id, o.slug, o.name, o.description, o.primary_color, o.logo, o.logo_content_type, o.timezone, o.location, o.status, o.default_chat_agent_id, o.default_chat_model_route_id, o.created_at, o.updated_at, o.default_fast_model_route_id
236
+ FROM weave.organization o
237
+ JOIN weave.organization_membership om
238
+ ON om.organization_id = o.id
239
+ WHERE o.slug = $1
240
+ AND om.user_id = $2
241
+ AND om.status = 'active'
242
+ AND o.status = 'active'`;
243
+ async function getOrganizationForUserBySlug(client, args) {
244
+ const result = await client.query({
245
+ text: exports.getOrganizationForUserBySlugQuery,
246
+ values: [args.slug, args.userId],
247
+ rowMode: "array"
248
+ });
249
+ if (result.rows.length !== 1) {
250
+ return null;
251
+ }
252
+ const row = result.rows[0];
253
+ return {
254
+ id: row[0],
255
+ slug: row[1],
256
+ name: row[2],
257
+ description: row[3],
258
+ primaryColor: row[4],
259
+ logo: row[5],
260
+ logoContentType: row[6],
261
+ timezone: row[7],
262
+ location: row[8],
263
+ status: row[9],
264
+ defaultChatAgentId: row[10],
265
+ defaultChatModelRouteId: row[11],
266
+ createdAt: row[12],
267
+ updatedAt: row[13],
268
+ defaultFastModelRouteId: row[14]
269
+ };
270
+ }
271
+ exports.getOrganizationByExternalIdentityQuery = `-- name: GetOrganizationByExternalIdentity :one
272
+ SELECT o.id, o.slug, o.name, o.description, o.primary_color, o.logo, o.logo_content_type, o.timezone, o.location, o.status, o.default_chat_agent_id, o.default_chat_model_route_id, o.created_at, o.updated_at, o.default_fast_model_route_id
273
+ FROM weave.organization o
274
+ JOIN weave.organization_identity_link oil
275
+ ON oil.organization_id = o.id
276
+ WHERE oil.auth_provider = $1
277
+ AND oil.external_organization_id = $2`;
278
+ async function getOrganizationByExternalIdentity(client, args) {
279
+ const result = await client.query({
280
+ text: exports.getOrganizationByExternalIdentityQuery,
281
+ values: [args.authProvider, args.externalOrganizationId],
282
+ rowMode: "array"
283
+ });
284
+ if (result.rows.length !== 1) {
285
+ return null;
286
+ }
287
+ const row = result.rows[0];
288
+ return {
289
+ id: row[0],
290
+ slug: row[1],
291
+ name: row[2],
292
+ description: row[3],
293
+ primaryColor: row[4],
294
+ logo: row[5],
295
+ logoContentType: row[6],
296
+ timezone: row[7],
297
+ location: row[8],
298
+ status: row[9],
299
+ defaultChatAgentId: row[10],
300
+ defaultChatModelRouteId: row[11],
301
+ createdAt: row[12],
302
+ updatedAt: row[13],
303
+ defaultFastModelRouteId: row[14]
304
+ };
305
+ }
306
+ exports.upsertOrganizationIdentityLinkQuery = `-- name: UpsertOrganizationIdentityLink :one
307
+ INSERT INTO weave.organization_identity_link (
308
+ organization_id,
309
+ auth_provider,
310
+ external_organization_id,
311
+ last_seen_at
312
+ ) VALUES (
313
+ $1,
314
+ $2,
315
+ $3,
316
+ now()
317
+ )
318
+ ON CONFLICT (auth_provider, external_organization_id)
319
+ DO UPDATE SET
320
+ last_seen_at = EXCLUDED.last_seen_at
321
+ RETURNING id, organization_id, auth_provider, external_organization_id, last_seen_at, created_at, updated_at`;
322
+ async function upsertOrganizationIdentityLink(client, args) {
323
+ const result = await client.query({
324
+ text: exports.upsertOrganizationIdentityLinkQuery,
325
+ values: [args.organizationId, args.authProvider, args.externalOrganizationId],
326
+ rowMode: "array"
327
+ });
328
+ if (result.rows.length !== 1) {
329
+ return null;
330
+ }
331
+ const row = result.rows[0];
332
+ return {
333
+ id: row[0],
334
+ organizationId: row[1],
335
+ authProvider: row[2],
336
+ externalOrganizationId: row[3],
337
+ lastSeenAt: row[4],
338
+ createdAt: row[5],
339
+ updatedAt: row[6]
340
+ };
341
+ }
342
+ exports.upsertUserQuery = `-- name: UpsertUser :one
343
+ INSERT INTO weave.user (
344
+ email,
345
+ name,
346
+ job_title,
347
+ avatar_url,
348
+ status
349
+ ) VALUES (
350
+ $1,
351
+ $2,
352
+ COALESCE($3::text, ''),
353
+ COALESCE($4::text, ''),
354
+ COALESCE($5::text, 'active')
355
+ )
356
+ ON CONFLICT (email)
357
+ DO UPDATE SET
358
+ name = EXCLUDED.name,
359
+ status = EXCLUDED.status
360
+ RETURNING id, email, name, job_title, avatar_url, preferences, status, created_at, updated_at`;
361
+ async function upsertUser(client, args) {
362
+ const result = await client.query({
363
+ text: exports.upsertUserQuery,
364
+ values: [args.email, args.name, args.jobTitle, args.avatarUrl, args.status],
365
+ rowMode: "array"
366
+ });
367
+ if (result.rows.length !== 1) {
368
+ return null;
369
+ }
370
+ const row = result.rows[0];
371
+ return {
372
+ id: row[0],
373
+ email: row[1],
374
+ name: row[2],
375
+ jobTitle: row[3],
376
+ avatarUrl: row[4],
377
+ preferences: row[5],
378
+ status: row[6],
379
+ createdAt: row[7],
380
+ updatedAt: row[8]
381
+ };
382
+ }
383
+ exports.getUserByExternalIdentityQuery = `-- name: GetUserByExternalIdentity :one
384
+ SELECT u.id, u.email, u.name, u.job_title, u.avatar_url, u.preferences, u.status, u.created_at, u.updated_at
385
+ FROM weave.user u
386
+ JOIN weave.user_identity_link uil
387
+ ON uil.user_id = u.id
388
+ JOIN weave.organization_identity_link oil
389
+ ON oil.id = uil.organization_identity_link_id
390
+ WHERE oil.auth_provider = $1
391
+ AND oil.external_organization_id = $2
392
+ AND uil.external_subject_id = $3`;
393
+ async function getUserByExternalIdentity(client, args) {
394
+ const result = await client.query({
395
+ text: exports.getUserByExternalIdentityQuery,
396
+ values: [args.authProvider, args.externalOrganizationId, args.externalSubjectId],
397
+ rowMode: "array"
398
+ });
399
+ if (result.rows.length !== 1) {
400
+ return null;
401
+ }
402
+ const row = result.rows[0];
403
+ return {
404
+ id: row[0],
405
+ email: row[1],
406
+ name: row[2],
407
+ jobTitle: row[3],
408
+ avatarUrl: row[4],
409
+ preferences: row[5],
410
+ status: row[6],
411
+ createdAt: row[7],
412
+ updatedAt: row[8]
413
+ };
414
+ }
415
+ exports.getUserQuery = `-- name: GetUser :one
416
+ SELECT id, email, name, job_title, avatar_url, preferences, status, created_at, updated_at
417
+ FROM weave.user
418
+ WHERE id = $1`;
419
+ async function getUser(client, args) {
420
+ const result = await client.query({
421
+ text: exports.getUserQuery,
422
+ values: [args.userId],
423
+ rowMode: "array"
424
+ });
425
+ if (result.rows.length !== 1) {
426
+ return null;
427
+ }
428
+ const row = result.rows[0];
429
+ return {
430
+ id: row[0],
431
+ email: row[1],
432
+ name: row[2],
433
+ jobTitle: row[3],
434
+ avatarUrl: row[4],
435
+ preferences: row[5],
436
+ status: row[6],
437
+ createdAt: row[7],
438
+ updatedAt: row[8]
439
+ };
440
+ }
441
+ exports.updateUserProfileQuery = `-- name: UpdateUserProfile :one
442
+ UPDATE weave.user
443
+ SET
444
+ name = COALESCE($1::text, name),
445
+ job_title = COALESCE($2::text, job_title),
446
+ avatar_url = COALESCE($3::text, avatar_url)
447
+ WHERE id = $4
448
+ RETURNING id, email, name, job_title, avatar_url, preferences, status, created_at, updated_at`;
449
+ async function updateUserProfile(client, args) {
450
+ const result = await client.query({
451
+ text: exports.updateUserProfileQuery,
452
+ values: [args.name, args.jobTitle, args.avatarUrl, args.userId],
453
+ rowMode: "array"
454
+ });
455
+ if (result.rows.length !== 1) {
456
+ return null;
457
+ }
458
+ const row = result.rows[0];
459
+ return {
460
+ id: row[0],
461
+ email: row[1],
462
+ name: row[2],
463
+ jobTitle: row[3],
464
+ avatarUrl: row[4],
465
+ preferences: row[5],
466
+ status: row[6],
467
+ createdAt: row[7],
468
+ updatedAt: row[8]
469
+ };
470
+ }
471
+ exports.updateUserPreferencesQuery = `-- name: UpdateUserPreferences :one
472
+ UPDATE weave.user
473
+ SET preferences = $1::jsonb
474
+ WHERE id = $2
475
+ RETURNING id, email, name, job_title, avatar_url, preferences, status, created_at, updated_at`;
476
+ async function updateUserPreferences(client, args) {
477
+ const result = await client.query({
478
+ text: exports.updateUserPreferencesQuery,
479
+ values: [args.preferences, args.userId],
480
+ rowMode: "array"
481
+ });
482
+ if (result.rows.length !== 1) {
483
+ return null;
484
+ }
485
+ const row = result.rows[0];
486
+ return {
487
+ id: row[0],
488
+ email: row[1],
489
+ name: row[2],
490
+ jobTitle: row[3],
491
+ avatarUrl: row[4],
492
+ preferences: row[5],
493
+ status: row[6],
494
+ createdAt: row[7],
495
+ updatedAt: row[8]
496
+ };
497
+ }
498
+ exports.getPrincipalByExternalIdentityQuery = `-- name: GetPrincipalByExternalIdentity :one
499
+ SELECT
500
+ o.id AS organization_id,
501
+ o.slug AS organization_slug,
502
+ o.name AS organization_name,
503
+ o.status AS organization_status,
504
+ u.id AS user_id,
505
+ u.email AS user_email,
506
+ u.name AS user_name,
507
+ u.job_title AS user_job_title,
508
+ u.avatar_url AS user_avatar_url,
509
+ u.preferences AS user_preferences,
510
+ u.status AS user_status,
511
+ om.id AS organization_membership_id,
512
+ om.role AS organization_membership_role,
513
+ om.status AS organization_membership_status,
514
+ oil.id AS organization_identity_link_id,
515
+ uil.id AS user_identity_link_id
516
+ FROM weave.organization_identity_link oil
517
+ JOIN weave.organization o
518
+ ON o.id = oil.organization_id
519
+ JOIN weave.user_identity_link uil
520
+ ON uil.organization_identity_link_id = oil.id
521
+ JOIN weave.user u
522
+ ON u.id = uil.user_id
523
+ JOIN weave.organization_membership om
524
+ ON om.organization_id = o.id
525
+ AND om.user_id = u.id
526
+ WHERE oil.auth_provider = $1
527
+ AND oil.external_organization_id = $2
528
+ AND uil.external_subject_id = $3`;
529
+ async function getPrincipalByExternalIdentity(client, args) {
530
+ const result = await client.query({
531
+ text: exports.getPrincipalByExternalIdentityQuery,
532
+ values: [args.authProvider, args.externalOrganizationId, args.externalSubjectId],
533
+ rowMode: "array"
534
+ });
535
+ if (result.rows.length !== 1) {
536
+ return null;
537
+ }
538
+ const row = result.rows[0];
539
+ return {
540
+ organizationId: row[0],
541
+ organizationSlug: row[1],
542
+ organizationName: row[2],
543
+ organizationStatus: row[3],
544
+ userId: row[4],
545
+ userEmail: row[5],
546
+ userName: row[6],
547
+ userJobTitle: row[7],
548
+ userAvatarUrl: row[8],
549
+ userPreferences: row[9],
550
+ userStatus: row[10],
551
+ organizationMembershipId: row[11],
552
+ organizationMembershipRole: row[12],
553
+ organizationMembershipStatus: row[13],
554
+ organizationIdentityLinkId: row[14],
555
+ userIdentityLinkId: row[15]
556
+ };
557
+ }
558
+ exports.upsertUserIdentityLinkQuery = `-- name: UpsertUserIdentityLink :one
559
+ INSERT INTO weave.user_identity_link (
560
+ user_id,
561
+ organization_identity_link_id,
562
+ external_subject_id,
563
+ last_seen_at
564
+ ) VALUES (
565
+ $1,
566
+ $2,
567
+ $3,
568
+ now()
569
+ )
570
+ ON CONFLICT (organization_identity_link_id, external_subject_id)
571
+ DO UPDATE SET
572
+ user_id = EXCLUDED.user_id,
573
+ last_seen_at = EXCLUDED.last_seen_at
574
+ RETURNING id, user_id, organization_identity_link_id, external_subject_id, last_seen_at, created_at, updated_at`;
575
+ async function upsertUserIdentityLink(client, args) {
576
+ const result = await client.query({
577
+ text: exports.upsertUserIdentityLinkQuery,
578
+ values: [args.userId, args.organizationIdentityLinkId, args.externalSubjectId],
579
+ rowMode: "array"
580
+ });
581
+ if (result.rows.length !== 1) {
582
+ return null;
583
+ }
584
+ const row = result.rows[0];
585
+ return {
586
+ id: row[0],
587
+ userId: row[1],
588
+ organizationIdentityLinkId: row[2],
589
+ externalSubjectId: row[3],
590
+ lastSeenAt: row[4],
591
+ createdAt: row[5],
592
+ updatedAt: row[6]
593
+ };
594
+ }
595
+ exports.upsertOrganizationMembershipQuery = `-- name: UpsertOrganizationMembership :one
596
+ INSERT INTO weave.organization_membership (
597
+ organization_id,
598
+ user_id,
599
+ status,
600
+ role
601
+ ) VALUES (
602
+ $1,
603
+ $2,
604
+ COALESCE($3::text, 'active'),
605
+ COALESCE($4::text, 'member')
606
+ )
607
+ ON CONFLICT (user_id, organization_id)
608
+ DO UPDATE SET
609
+ status = EXCLUDED.status,
610
+ role = EXCLUDED.role
611
+ RETURNING id, organization_id, user_id, status, role, created_at, updated_at`;
612
+ async function upsertOrganizationMembership(client, args) {
613
+ const result = await client.query({
614
+ text: exports.upsertOrganizationMembershipQuery,
615
+ values: [args.organizationId, args.userId, args.status, args.role],
616
+ rowMode: "array"
617
+ });
618
+ if (result.rows.length !== 1) {
619
+ return null;
620
+ }
621
+ const row = result.rows[0];
622
+ return {
623
+ id: row[0],
624
+ organizationId: row[1],
625
+ userId: row[2],
626
+ status: row[3],
627
+ role: row[4],
628
+ createdAt: row[5],
629
+ updatedAt: row[6]
630
+ };
631
+ }
632
+ exports.getOrganizationMembershipQuery = `-- name: GetOrganizationMembership :one
633
+ SELECT id, organization_id, user_id, status, role, created_at, updated_at
634
+ FROM weave.organization_membership
635
+ WHERE organization_id = $1
636
+ AND user_id = $2`;
637
+ async function getOrganizationMembership(client, args) {
638
+ const result = await client.query({
639
+ text: exports.getOrganizationMembershipQuery,
640
+ values: [args.organizationId, args.userId],
641
+ rowMode: "array"
642
+ });
643
+ if (result.rows.length !== 1) {
644
+ return null;
645
+ }
646
+ const row = result.rows[0];
647
+ return {
648
+ id: row[0],
649
+ organizationId: row[1],
650
+ userId: row[2],
651
+ status: row[3],
652
+ role: row[4],
653
+ createdAt: row[5],
654
+ updatedAt: row[6]
655
+ };
656
+ }
657
+ exports.getOrganizationMemberQuery = `-- name: GetOrganizationMember :one
658
+ SELECT
659
+ om.id,
660
+ om.organization_id,
661
+ om.user_id,
662
+ om.status,
663
+ om.role,
664
+ om.created_at,
665
+ om.updated_at,
666
+ u.email,
667
+ u.name,
668
+ u.job_title,
669
+ u.avatar_url
670
+ FROM weave.organization_membership om
671
+ JOIN weave.user u
672
+ ON u.id = om.user_id
673
+ WHERE om.organization_id = $1
674
+ AND om.id = $2`;
675
+ async function getOrganizationMember(client, args) {
676
+ const result = await client.query({
677
+ text: exports.getOrganizationMemberQuery,
678
+ values: [args.organizationId, args.organizationMembershipId],
679
+ rowMode: "array"
680
+ });
681
+ if (result.rows.length !== 1) {
682
+ return null;
683
+ }
684
+ const row = result.rows[0];
685
+ return {
686
+ id: row[0],
687
+ organizationId: row[1],
688
+ userId: row[2],
689
+ status: row[3],
690
+ role: row[4],
691
+ createdAt: row[5],
692
+ updatedAt: row[6],
693
+ email: row[7],
694
+ name: row[8],
695
+ jobTitle: row[9],
696
+ avatarUrl: row[10]
697
+ };
698
+ }
699
+ exports.listOrganizationMembersQuery = `-- name: ListOrganizationMembers :many
700
+ SELECT
701
+ om.id,
702
+ om.organization_id,
703
+ om.user_id,
704
+ om.status,
705
+ om.role,
706
+ om.created_at,
707
+ om.updated_at,
708
+ u.email,
709
+ u.name,
710
+ u.job_title,
711
+ u.avatar_url
712
+ FROM weave.organization_membership om
713
+ JOIN weave.user u
714
+ ON u.id = om.user_id
715
+ WHERE om.organization_id = $1
716
+ AND ($2::text IS NULL OR om.status = $2::text)
717
+ AND (
718
+ COALESCE($3::text, '') = ''
719
+ OR u.email ILIKE '%' || $3::text || '%'
720
+ OR u.name ILIKE '%' || $3::text || '%'
721
+ )
722
+ ORDER BY u.email ASC, om.id ASC
723
+ LIMIT $5
724
+ OFFSET $4`;
725
+ async function listOrganizationMembers(client, args) {
726
+ const result = await client.query({
727
+ text: exports.listOrganizationMembersQuery,
728
+ values: [args.organizationId, args.statusFilter, args.search, args.offsetCount, args.limitCount],
729
+ rowMode: "array"
730
+ });
731
+ return result.rows.map(row => {
732
+ return {
733
+ id: row[0],
734
+ organizationId: row[1],
735
+ userId: row[2],
736
+ status: row[3],
737
+ role: row[4],
738
+ createdAt: row[5],
739
+ updatedAt: row[6],
740
+ email: row[7],
741
+ name: row[8],
742
+ jobTitle: row[9],
743
+ avatarUrl: row[10]
744
+ };
745
+ });
746
+ }
747
+ exports.updateOrganizationMembershipByIDQuery = `-- name: UpdateOrganizationMembershipByID :one
748
+ UPDATE weave.organization_membership
749
+ SET
750
+ status = COALESCE($1::text, status),
751
+ role = COALESCE($2::text, role)
752
+ WHERE organization_id = $3
753
+ AND id = $4
754
+ RETURNING id, organization_id, user_id, status, role, created_at, updated_at`;
755
+ async function updateOrganizationMembershipByID(client, args) {
756
+ const result = await client.query({
757
+ text: exports.updateOrganizationMembershipByIDQuery,
758
+ values: [args.status, args.role, args.organizationId, args.organizationMembershipId],
759
+ rowMode: "array"
760
+ });
761
+ if (result.rows.length !== 1) {
762
+ return null;
763
+ }
764
+ const row = result.rows[0];
765
+ return {
766
+ id: row[0],
767
+ organizationId: row[1],
768
+ userId: row[2],
769
+ status: row[3],
770
+ role: row[4],
771
+ createdAt: row[5],
772
+ updatedAt: row[6]
773
+ };
774
+ }
775
+ exports.createOrganizationTeamQuery = `-- name: CreateOrganizationTeam :one
776
+ INSERT INTO weave.organization_team (
777
+ organization_id,
778
+ slug,
779
+ name,
780
+ description
781
+ ) VALUES (
782
+ $1,
783
+ $2,
784
+ $3,
785
+ COALESCE($4::text, '')
786
+ )
787
+ RETURNING id, organization_id, slug, name, description, created_at, updated_at`;
788
+ async function createOrganizationTeam(client, args) {
789
+ const result = await client.query({
790
+ text: exports.createOrganizationTeamQuery,
791
+ values: [args.organizationId, args.slug, args.name, args.description],
792
+ rowMode: "array"
793
+ });
794
+ if (result.rows.length !== 1) {
795
+ return null;
796
+ }
797
+ const row = result.rows[0];
798
+ return {
799
+ id: row[0],
800
+ organizationId: row[1],
801
+ slug: row[2],
802
+ name: row[3],
803
+ description: row[4],
804
+ createdAt: row[5],
805
+ updatedAt: row[6]
806
+ };
807
+ }
808
+ exports.getOrganizationTeamQuery = `-- name: GetOrganizationTeam :one
809
+ SELECT id, organization_id, slug, name, description, created_at, updated_at
810
+ FROM weave.organization_team
811
+ WHERE organization_id = $1
812
+ AND id = $2`;
813
+ async function getOrganizationTeam(client, args) {
814
+ const result = await client.query({
815
+ text: exports.getOrganizationTeamQuery,
816
+ values: [args.organizationId, args.organizationTeamId],
817
+ rowMode: "array"
818
+ });
819
+ if (result.rows.length !== 1) {
820
+ return null;
821
+ }
822
+ const row = result.rows[0];
823
+ return {
824
+ id: row[0],
825
+ organizationId: row[1],
826
+ slug: row[2],
827
+ name: row[3],
828
+ description: row[4],
829
+ createdAt: row[5],
830
+ updatedAt: row[6]
831
+ };
832
+ }
833
+ exports.listOrganizationTeamsQuery = `-- name: ListOrganizationTeams :many
834
+ SELECT id, organization_id, slug, name, description, created_at, updated_at
835
+ FROM weave.organization_team
836
+ WHERE organization_id = $1
837
+ ORDER BY name ASC, slug ASC, id ASC`;
838
+ async function listOrganizationTeams(client, args) {
839
+ const result = await client.query({
840
+ text: exports.listOrganizationTeamsQuery,
841
+ values: [args.organizationId],
842
+ rowMode: "array"
843
+ });
844
+ return result.rows.map(row => {
845
+ return {
846
+ id: row[0],
847
+ organizationId: row[1],
848
+ slug: row[2],
849
+ name: row[3],
850
+ description: row[4],
851
+ createdAt: row[5],
852
+ updatedAt: row[6]
853
+ };
854
+ });
855
+ }
856
+ exports.updateOrganizationTeamQuery = `-- name: UpdateOrganizationTeam :one
857
+ UPDATE weave.organization_team
858
+ SET
859
+ slug = $1,
860
+ name = $2,
861
+ description = COALESCE($3::text, '')
862
+ WHERE organization_id = $4
863
+ AND id = $5
864
+ RETURNING id, organization_id, slug, name, description, created_at, updated_at`;
865
+ async function updateOrganizationTeam(client, args) {
866
+ const result = await client.query({
867
+ text: exports.updateOrganizationTeamQuery,
868
+ values: [args.slug, args.name, args.description, args.organizationId, args.organizationTeamId],
869
+ rowMode: "array"
870
+ });
871
+ if (result.rows.length !== 1) {
872
+ return null;
873
+ }
874
+ const row = result.rows[0];
875
+ return {
876
+ id: row[0],
877
+ organizationId: row[1],
878
+ slug: row[2],
879
+ name: row[3],
880
+ description: row[4],
881
+ createdAt: row[5],
882
+ updatedAt: row[6]
883
+ };
884
+ }
885
+ exports.deleteOrganizationTeamQuery = `-- name: DeleteOrganizationTeam :execrows
886
+ DELETE FROM weave.organization_team
887
+ WHERE organization_id = $1
888
+ AND id = $2`;
889
+ exports.deleteOrganizationTeamMembershipsQuery = `-- name: DeleteOrganizationTeamMemberships :execrows
890
+ DELETE FROM weave.organization_team_membership
891
+ WHERE organization_id = $1
892
+ AND organization_team_id = $2`;
893
+ exports.addOrganizationTeamMembershipQuery = `-- name: AddOrganizationTeamMembership :one
894
+ INSERT INTO weave.organization_team_membership (
895
+ organization_id,
896
+ organization_team_id,
897
+ organization_membership_id,
898
+ user_id
899
+ ) VALUES (
900
+ $1,
901
+ $2,
902
+ $3,
903
+ $4
904
+ )
905
+ RETURNING organization_id, organization_team_id, organization_membership_id, user_id, created_at`;
906
+ async function addOrganizationTeamMembership(client, args) {
907
+ const result = await client.query({
908
+ text: exports.addOrganizationTeamMembershipQuery,
909
+ values: [args.organizationId, args.organizationTeamId, args.organizationMembershipId, args.userId],
910
+ rowMode: "array"
911
+ });
912
+ if (result.rows.length !== 1) {
913
+ return null;
914
+ }
915
+ const row = result.rows[0];
916
+ return {
917
+ organizationId: row[0],
918
+ organizationTeamId: row[1],
919
+ organizationMembershipId: row[2],
920
+ userId: row[3],
921
+ createdAt: row[4]
922
+ };
923
+ }
924
+ exports.listOrganizationTeamMembersQuery = `-- name: ListOrganizationTeamMembers :many
925
+ SELECT
926
+ otm.organization_id,
927
+ otm.organization_team_id,
928
+ otm.organization_membership_id,
929
+ otm.user_id,
930
+ otm.created_at,
931
+ u.email,
932
+ u.name,
933
+ u.avatar_url,
934
+ om.status
935
+ FROM weave.organization_team_membership otm
936
+ JOIN weave.organization_membership om
937
+ ON om.organization_id = otm.organization_id
938
+ AND om.id = otm.organization_membership_id
939
+ AND om.user_id = otm.user_id
940
+ JOIN weave.user u
941
+ ON u.id = otm.user_id
942
+ WHERE otm.organization_id = $1
943
+ AND otm.organization_team_id = $2
944
+ ORDER BY u.name ASC, u.email ASC, otm.organization_membership_id ASC`;
945
+ async function listOrganizationTeamMembers(client, args) {
946
+ const result = await client.query({
947
+ text: exports.listOrganizationTeamMembersQuery,
948
+ values: [args.organizationId, args.organizationTeamId],
949
+ rowMode: "array"
950
+ });
951
+ return result.rows.map(row => {
952
+ return {
953
+ organizationId: row[0],
954
+ organizationTeamId: row[1],
955
+ organizationMembershipId: row[2],
956
+ userId: row[3],
957
+ createdAt: row[4],
958
+ email: row[5],
959
+ name: row[6],
960
+ avatarUrl: row[7],
961
+ status: row[8]
962
+ };
963
+ });
964
+ }
965
+ exports.deleteOrganizationTeamRoleGrantsQuery = `-- name: DeleteOrganizationTeamRoleGrants :execrows
966
+ DELETE FROM weave.organization_team_role_grant
967
+ WHERE organization_id = $1
968
+ AND organization_team_id = $2`;
969
+ exports.addOrganizationTeamRoleGrantQuery = `-- name: AddOrganizationTeamRoleGrant :one
970
+ INSERT INTO weave.organization_team_role_grant (
971
+ organization_id,
972
+ organization_team_id,
973
+ role_id
974
+ ) VALUES (
975
+ $1,
976
+ $2,
977
+ $3
978
+ )
979
+ RETURNING organization_id, organization_team_id, role_id, created_at`;
980
+ async function addOrganizationTeamRoleGrant(client, args) {
981
+ const result = await client.query({
982
+ text: exports.addOrganizationTeamRoleGrantQuery,
983
+ values: [args.organizationId, args.organizationTeamId, args.roleId],
984
+ rowMode: "array"
985
+ });
986
+ if (result.rows.length !== 1) {
987
+ return null;
988
+ }
989
+ const row = result.rows[0];
990
+ return {
991
+ organizationId: row[0],
992
+ organizationTeamId: row[1],
993
+ roleId: row[2],
994
+ createdAt: row[3]
995
+ };
996
+ }
997
+ exports.listOrganizationTeamRoleGrantsQuery = `-- name: ListOrganizationTeamRoleGrants :many
998
+ SELECT organization_id, organization_team_id, role_id, created_at
999
+ FROM weave.organization_team_role_grant
1000
+ WHERE organization_id = $1
1001
+ AND organization_team_id = $2
1002
+ ORDER BY role_id ASC`;
1003
+ async function listOrganizationTeamRoleGrants(client, args) {
1004
+ const result = await client.query({
1005
+ text: exports.listOrganizationTeamRoleGrantsQuery,
1006
+ values: [args.organizationId, args.organizationTeamId],
1007
+ rowMode: "array"
1008
+ });
1009
+ return result.rows.map(row => {
1010
+ return {
1011
+ organizationId: row[0],
1012
+ organizationTeamId: row[1],
1013
+ roleId: row[2],
1014
+ createdAt: row[3]
1015
+ };
1016
+ });
1017
+ }
1018
+ exports.upsertOrganizationScimGroupMappingQuery = `-- name: UpsertOrganizationScimGroupMapping :one
1019
+ INSERT INTO weave.organization_scim_group_mapping (
1020
+ organization_id,
1021
+ scim_group_id,
1022
+ scim_group_name,
1023
+ mapping_status
1024
+ ) VALUES (
1025
+ $1,
1026
+ $2,
1027
+ $3,
1028
+ COALESCE($4::text, 'unmapped')
1029
+ )
1030
+ ON CONFLICT (organization_id, scim_group_id)
1031
+ DO UPDATE SET
1032
+ scim_group_name = EXCLUDED.scim_group_name
1033
+ RETURNING id, organization_id, scim_group_id, scim_group_name, organization_team_id, mapping_status, created_at, updated_at`;
1034
+ async function upsertOrganizationScimGroupMapping(client, args) {
1035
+ const result = await client.query({
1036
+ text: exports.upsertOrganizationScimGroupMappingQuery,
1037
+ values: [args.organizationId, args.scimGroupId, args.scimGroupName, args.mappingStatus],
1038
+ rowMode: "array"
1039
+ });
1040
+ if (result.rows.length !== 1) {
1041
+ return null;
1042
+ }
1043
+ const row = result.rows[0];
1044
+ return {
1045
+ id: row[0],
1046
+ organizationId: row[1],
1047
+ scimGroupId: row[2],
1048
+ scimGroupName: row[3],
1049
+ organizationTeamId: row[4],
1050
+ mappingStatus: row[5],
1051
+ createdAt: row[6],
1052
+ updatedAt: row[7]
1053
+ };
1054
+ }
1055
+ exports.listOrganizationScimGroupMappingsQuery = `-- name: ListOrganizationScimGroupMappings :many
1056
+ SELECT id, organization_id, scim_group_id, scim_group_name, organization_team_id, mapping_status, created_at, updated_at
1057
+ FROM weave.organization_scim_group_mapping
1058
+ WHERE organization_id = $1
1059
+ ORDER BY scim_group_name ASC, scim_group_id ASC, id ASC`;
1060
+ async function listOrganizationScimGroupMappings(client, args) {
1061
+ const result = await client.query({
1062
+ text: exports.listOrganizationScimGroupMappingsQuery,
1063
+ values: [args.organizationId],
1064
+ rowMode: "array"
1065
+ });
1066
+ return result.rows.map(row => {
1067
+ return {
1068
+ id: row[0],
1069
+ organizationId: row[1],
1070
+ scimGroupId: row[2],
1071
+ scimGroupName: row[3],
1072
+ organizationTeamId: row[4],
1073
+ mappingStatus: row[5],
1074
+ createdAt: row[6],
1075
+ updatedAt: row[7]
1076
+ };
1077
+ });
1078
+ }
1079
+ exports.updateOrganizationScimGroupMappingQuery = `-- name: UpdateOrganizationScimGroupMapping :one
1080
+ UPDATE weave.organization_scim_group_mapping
1081
+ SET
1082
+ organization_team_id = $1,
1083
+ mapping_status = COALESCE($2::text, mapping_status)
1084
+ WHERE organization_id = $3
1085
+ AND id = $4
1086
+ RETURNING id, organization_id, scim_group_id, scim_group_name, organization_team_id, mapping_status, created_at, updated_at`;
1087
+ async function updateOrganizationScimGroupMapping(client, args) {
1088
+ const result = await client.query({
1089
+ text: exports.updateOrganizationScimGroupMappingQuery,
1090
+ values: [args.organizationTeamId, args.mappingStatus, args.organizationId, args.organizationScimGroupMappingId],
1091
+ rowMode: "array"
1092
+ });
1093
+ if (result.rows.length !== 1) {
1094
+ return null;
1095
+ }
1096
+ const row = result.rows[0];
1097
+ return {
1098
+ id: row[0],
1099
+ organizationId: row[1],
1100
+ scimGroupId: row[2],
1101
+ scimGroupName: row[3],
1102
+ organizationTeamId: row[4],
1103
+ mappingStatus: row[5],
1104
+ createdAt: row[6],
1105
+ updatedAt: row[7]
1106
+ };
1107
+ }
1108
+ exports.getOrganizationIdentityLinkByOrganizationIDQuery = `-- name: GetOrganizationIdentityLinkByOrganizationID :one
1109
+ SELECT id, organization_id, auth_provider, external_organization_id, last_seen_at, created_at, updated_at
1110
+ FROM weave.organization_identity_link
1111
+ WHERE organization_id = $1
1112
+ AND auth_provider = $2`;
1113
+ async function getOrganizationIdentityLinkByOrganizationID(client, args) {
1114
+ const result = await client.query({
1115
+ text: exports.getOrganizationIdentityLinkByOrganizationIDQuery,
1116
+ values: [args.organizationId, args.authProvider],
1117
+ rowMode: "array"
1118
+ });
1119
+ if (result.rows.length !== 1) {
1120
+ return null;
1121
+ }
1122
+ const row = result.rows[0];
1123
+ return {
1124
+ id: row[0],
1125
+ organizationId: row[1],
1126
+ authProvider: row[2],
1127
+ externalOrganizationId: row[3],
1128
+ lastSeenAt: row[4],
1129
+ createdAt: row[5],
1130
+ updatedAt: row[6]
1131
+ };
1132
+ }
1133
+ exports.createApplicationSessionQuery = `-- name: CreateApplicationSession :one
1134
+ INSERT INTO weave.application_session (
1135
+ user_id,
1136
+ active_organization_id,
1137
+ identity_link_id,
1138
+ external_session_id,
1139
+ session_token_box,
1140
+ last_validated_at,
1141
+ expires_at
1142
+ ) VALUES (
1143
+ $1,
1144
+ $2,
1145
+ $3,
1146
+ COALESCE($4::text, ''),
1147
+ $5,
1148
+ $6,
1149
+ $7
1150
+ )
1151
+ RETURNING id, user_id, active_organization_id, identity_link_id, external_session_id, session_token_box, last_validated_at, status, expires_at, revoked_at, created_at, updated_at`;
1152
+ async function createApplicationSession(client, args) {
1153
+ const result = await client.query({
1154
+ text: exports.createApplicationSessionQuery,
1155
+ values: [args.userId, args.activeOrganizationId, args.identityLinkId, args.externalSessionId, args.sessionTokenBox, args.lastValidatedAt, args.expiresAt],
1156
+ rowMode: "array"
1157
+ });
1158
+ if (result.rows.length !== 1) {
1159
+ return null;
1160
+ }
1161
+ const row = result.rows[0];
1162
+ return {
1163
+ id: row[0],
1164
+ userId: row[1],
1165
+ activeOrganizationId: row[2],
1166
+ identityLinkId: row[3],
1167
+ externalSessionId: row[4],
1168
+ sessionTokenBox: row[5],
1169
+ lastValidatedAt: row[6],
1170
+ status: row[7],
1171
+ expiresAt: row[8],
1172
+ revokedAt: row[9],
1173
+ createdAt: row[10],
1174
+ updatedAt: row[11]
1175
+ };
1176
+ }
1177
+ exports.getApplicationSessionQuery = `-- name: GetApplicationSession :one
1178
+ SELECT id, user_id, active_organization_id, identity_link_id, external_session_id, session_token_box, last_validated_at, status, expires_at, revoked_at, created_at, updated_at
1179
+ FROM weave.application_session
1180
+ WHERE id = $1`;
1181
+ async function getApplicationSession(client, args) {
1182
+ const result = await client.query({
1183
+ text: exports.getApplicationSessionQuery,
1184
+ values: [args.applicationSessionId],
1185
+ rowMode: "array"
1186
+ });
1187
+ if (result.rows.length !== 1) {
1188
+ return null;
1189
+ }
1190
+ const row = result.rows[0];
1191
+ return {
1192
+ id: row[0],
1193
+ userId: row[1],
1194
+ activeOrganizationId: row[2],
1195
+ identityLinkId: row[3],
1196
+ externalSessionId: row[4],
1197
+ sessionTokenBox: row[5],
1198
+ lastValidatedAt: row[6],
1199
+ status: row[7],
1200
+ expiresAt: row[8],
1201
+ revokedAt: row[9],
1202
+ createdAt: row[10],
1203
+ updatedAt: row[11]
1204
+ };
1205
+ }
1206
+ exports.getPrincipalByApplicationSessionQuery = `-- name: GetPrincipalByApplicationSession :one
1207
+ SELECT
1208
+ s.id AS application_session_id,
1209
+ s.status AS application_session_status,
1210
+ s.expires_at AS application_session_expires_at,
1211
+ s.identity_link_id AS application_session_identity_link_id,
1212
+ s.external_session_id AS application_session_external_session_id,
1213
+ s.session_token_box AS application_session_token_box,
1214
+ o.id AS organization_id,
1215
+ o.slug AS organization_slug,
1216
+ o.name AS organization_name,
1217
+ o.status AS organization_status,
1218
+ u.id AS user_id,
1219
+ u.email AS user_email,
1220
+ u.name AS user_name,
1221
+ u.job_title AS user_job_title,
1222
+ u.avatar_url AS user_avatar_url,
1223
+ u.preferences AS user_preferences,
1224
+ u.status AS user_status,
1225
+ om.id AS organization_membership_id,
1226
+ om.role AS organization_membership_role,
1227
+ om.status AS organization_membership_status
1228
+ FROM weave.application_session s
1229
+ JOIN weave.organization o
1230
+ ON o.id = s.active_organization_id
1231
+ JOIN weave.user u
1232
+ ON u.id = s.user_id
1233
+ JOIN weave.organization_membership om
1234
+ ON om.organization_id = o.id
1235
+ AND om.user_id = u.id
1236
+ WHERE s.id = $1`;
1237
+ async function getPrincipalByApplicationSession(client, args) {
1238
+ const result = await client.query({
1239
+ text: exports.getPrincipalByApplicationSessionQuery,
1240
+ values: [args.applicationSessionId],
1241
+ rowMode: "array"
1242
+ });
1243
+ if (result.rows.length !== 1) {
1244
+ return null;
1245
+ }
1246
+ const row = result.rows[0];
1247
+ return {
1248
+ applicationSessionId: row[0],
1249
+ applicationSessionStatus: row[1],
1250
+ applicationSessionExpiresAt: row[2],
1251
+ applicationSessionIdentityLinkId: row[3],
1252
+ applicationSessionExternalSessionId: row[4],
1253
+ applicationSessionTokenBox: row[5],
1254
+ organizationId: row[6],
1255
+ organizationSlug: row[7],
1256
+ organizationName: row[8],
1257
+ organizationStatus: row[9],
1258
+ userId: row[10],
1259
+ userEmail: row[11],
1260
+ userName: row[12],
1261
+ userJobTitle: row[13],
1262
+ userAvatarUrl: row[14],
1263
+ userPreferences: row[15],
1264
+ userStatus: row[16],
1265
+ organizationMembershipId: row[17],
1266
+ organizationMembershipRole: row[18],
1267
+ organizationMembershipStatus: row[19]
1268
+ };
1269
+ }
1270
+ exports.updateApplicationSessionOrganizationQuery = `-- name: UpdateApplicationSessionOrganization :one
1271
+ UPDATE weave.application_session
1272
+ SET
1273
+ active_organization_id = $1,
1274
+ identity_link_id = $2,
1275
+ external_session_id = COALESCE($3::text, ''),
1276
+ session_token_box = $4,
1277
+ last_validated_at = $5
1278
+ WHERE id = $6
1279
+ AND user_id = $7
1280
+ AND status = 'active'
1281
+ RETURNING id, user_id, active_organization_id, identity_link_id, external_session_id, session_token_box, last_validated_at, status, expires_at, revoked_at, created_at, updated_at`;
1282
+ async function updateApplicationSessionOrganization(client, args) {
1283
+ const result = await client.query({
1284
+ text: exports.updateApplicationSessionOrganizationQuery,
1285
+ values: [args.activeOrganizationId, args.identityLinkId, args.externalSessionId, args.sessionTokenBox, args.lastValidatedAt, args.applicationSessionId, args.userId],
1286
+ rowMode: "array"
1287
+ });
1288
+ if (result.rows.length !== 1) {
1289
+ return null;
1290
+ }
1291
+ const row = result.rows[0];
1292
+ return {
1293
+ id: row[0],
1294
+ userId: row[1],
1295
+ activeOrganizationId: row[2],
1296
+ identityLinkId: row[3],
1297
+ externalSessionId: row[4],
1298
+ sessionTokenBox: row[5],
1299
+ lastValidatedAt: row[6],
1300
+ status: row[7],
1301
+ expiresAt: row[8],
1302
+ revokedAt: row[9],
1303
+ createdAt: row[10],
1304
+ updatedAt: row[11]
1305
+ };
1306
+ }
1307
+ exports.revokeApplicationSessionQuery = `-- name: RevokeApplicationSession :execrows
1308
+ UPDATE weave.application_session
1309
+ SET
1310
+ status = 'revoked',
1311
+ revoked_at = now()
1312
+ WHERE id = $1
1313
+ AND status = 'active'`;
1314
+ exports.deleteExpiredApplicationSessionsQuery = `-- name: DeleteExpiredApplicationSessions :execrows
1315
+ DELETE FROM weave.application_session
1316
+ WHERE expires_at <= now()
1317
+ OR status IN ('revoked', 'expired')`;
1318
+ exports.createAuthInviteSessionQuery = `-- name: CreateAuthInviteSession :one
1319
+ INSERT INTO weave.auth_invite_session (
1320
+ organization_id,
1321
+ user_id,
1322
+ organization_membership_id,
1323
+ organization_identity_link_id,
1324
+ external_subject_id,
1325
+ session_token_box,
1326
+ email,
1327
+ name,
1328
+ status,
1329
+ recovery_reason,
1330
+ recovery_hint,
1331
+ expires_at
1332
+ ) VALUES (
1333
+ $1,
1334
+ $2,
1335
+ $3,
1336
+ $4,
1337
+ $5,
1338
+ $6,
1339
+ $7,
1340
+ $8,
1341
+ COALESCE($9::text, 'ready'),
1342
+ COALESCE($10::text, ''),
1343
+ COALESCE($11::text, ''),
1344
+ $12
1345
+ )
1346
+ RETURNING id, organization_id, user_id, organization_membership_id, organization_identity_link_id, external_subject_id, session_token_box, email, name, status, recovery_reason, recovery_hint, oauth_provider, oauth_state, oauth_return_url, expires_at, completed_at, revoked_at, created_at, updated_at`;
1347
+ async function createAuthInviteSession(client, args) {
1348
+ const result = await client.query({
1349
+ text: exports.createAuthInviteSessionQuery,
1350
+ values: [args.organizationId, args.userId, args.organizationMembershipId, args.organizationIdentityLinkId, args.externalSubjectId, args.sessionTokenBox, args.email, args.name, args.status, args.recoveryReason, args.recoveryHint, args.expiresAt],
1351
+ rowMode: "array"
1352
+ });
1353
+ if (result.rows.length !== 1) {
1354
+ return null;
1355
+ }
1356
+ const row = result.rows[0];
1357
+ return {
1358
+ id: row[0],
1359
+ organizationId: row[1],
1360
+ userId: row[2],
1361
+ organizationMembershipId: row[3],
1362
+ organizationIdentityLinkId: row[4],
1363
+ externalSubjectId: row[5],
1364
+ sessionTokenBox: row[6],
1365
+ email: row[7],
1366
+ name: row[8],
1367
+ status: row[9],
1368
+ recoveryReason: row[10],
1369
+ recoveryHint: row[11],
1370
+ oauthProvider: row[12],
1371
+ oauthState: row[13],
1372
+ oauthReturnUrl: row[14],
1373
+ expiresAt: row[15],
1374
+ completedAt: row[16],
1375
+ revokedAt: row[17],
1376
+ createdAt: row[18],
1377
+ updatedAt: row[19]
1378
+ };
1379
+ }
1380
+ exports.updateAuthInviteSessionTokenQuery = `-- name: UpdateAuthInviteSessionToken :one
1381
+ UPDATE weave.auth_invite_session
1382
+ SET session_token_box = $1
1383
+ WHERE id = $2
1384
+ AND status <> 'completed'
1385
+ AND status <> 'revoked'
1386
+ RETURNING id, organization_id, user_id, organization_membership_id, organization_identity_link_id, external_subject_id, session_token_box, email, name, status, recovery_reason, recovery_hint, oauth_provider, oauth_state, oauth_return_url, expires_at, completed_at, revoked_at, created_at, updated_at`;
1387
+ async function updateAuthInviteSessionToken(client, args) {
1388
+ const result = await client.query({
1389
+ text: exports.updateAuthInviteSessionTokenQuery,
1390
+ values: [args.sessionTokenBox, args.authInviteSessionId],
1391
+ rowMode: "array"
1392
+ });
1393
+ if (result.rows.length !== 1) {
1394
+ return null;
1395
+ }
1396
+ const row = result.rows[0];
1397
+ return {
1398
+ id: row[0],
1399
+ organizationId: row[1],
1400
+ userId: row[2],
1401
+ organizationMembershipId: row[3],
1402
+ organizationIdentityLinkId: row[4],
1403
+ externalSubjectId: row[5],
1404
+ sessionTokenBox: row[6],
1405
+ email: row[7],
1406
+ name: row[8],
1407
+ status: row[9],
1408
+ recoveryReason: row[10],
1409
+ recoveryHint: row[11],
1410
+ oauthProvider: row[12],
1411
+ oauthState: row[13],
1412
+ oauthReturnUrl: row[14],
1413
+ expiresAt: row[15],
1414
+ completedAt: row[16],
1415
+ revokedAt: row[17],
1416
+ createdAt: row[18],
1417
+ updatedAt: row[19]
1418
+ };
1419
+ }
1420
+ exports.getAuthInviteSessionQuery = `-- name: GetAuthInviteSession :one
1421
+ SELECT id, organization_id, user_id, organization_membership_id, organization_identity_link_id, external_subject_id, session_token_box, email, name, status, recovery_reason, recovery_hint, oauth_provider, oauth_state, oauth_return_url, expires_at, completed_at, revoked_at, created_at, updated_at
1422
+ FROM weave.auth_invite_session
1423
+ WHERE id = $1`;
1424
+ async function getAuthInviteSession(client, args) {
1425
+ const result = await client.query({
1426
+ text: exports.getAuthInviteSessionQuery,
1427
+ values: [args.authInviteSessionId],
1428
+ rowMode: "array"
1429
+ });
1430
+ if (result.rows.length !== 1) {
1431
+ return null;
1432
+ }
1433
+ const row = result.rows[0];
1434
+ return {
1435
+ id: row[0],
1436
+ organizationId: row[1],
1437
+ userId: row[2],
1438
+ organizationMembershipId: row[3],
1439
+ organizationIdentityLinkId: row[4],
1440
+ externalSubjectId: row[5],
1441
+ sessionTokenBox: row[6],
1442
+ email: row[7],
1443
+ name: row[8],
1444
+ status: row[9],
1445
+ recoveryReason: row[10],
1446
+ recoveryHint: row[11],
1447
+ oauthProvider: row[12],
1448
+ oauthState: row[13],
1449
+ oauthReturnUrl: row[14],
1450
+ expiresAt: row[15],
1451
+ completedAt: row[16],
1452
+ revokedAt: row[17],
1453
+ createdAt: row[18],
1454
+ updatedAt: row[19]
1455
+ };
1456
+ }
1457
+ exports.getAuthInviteSessionByMembershipQuery = `-- name: GetAuthInviteSessionByMembership :one
1458
+ SELECT id, organization_id, user_id, organization_membership_id, organization_identity_link_id, external_subject_id, session_token_box, email, name, status, recovery_reason, recovery_hint, oauth_provider, oauth_state, oauth_return_url, expires_at, completed_at, revoked_at, created_at, updated_at
1459
+ FROM weave.auth_invite_session
1460
+ WHERE organization_id = $1
1461
+ AND organization_membership_id = $2
1462
+ AND status <> 'completed'
1463
+ ORDER BY created_at DESC
1464
+ LIMIT 1`;
1465
+ async function getAuthInviteSessionByMembership(client, args) {
1466
+ const result = await client.query({
1467
+ text: exports.getAuthInviteSessionByMembershipQuery,
1468
+ values: [args.organizationId, args.organizationMembershipId],
1469
+ rowMode: "array"
1470
+ });
1471
+ if (result.rows.length !== 1) {
1472
+ return null;
1473
+ }
1474
+ const row = result.rows[0];
1475
+ return {
1476
+ id: row[0],
1477
+ organizationId: row[1],
1478
+ userId: row[2],
1479
+ organizationMembershipId: row[3],
1480
+ organizationIdentityLinkId: row[4],
1481
+ externalSubjectId: row[5],
1482
+ sessionTokenBox: row[6],
1483
+ email: row[7],
1484
+ name: row[8],
1485
+ status: row[9],
1486
+ recoveryReason: row[10],
1487
+ recoveryHint: row[11],
1488
+ oauthProvider: row[12],
1489
+ oauthState: row[13],
1490
+ oauthReturnUrl: row[14],
1491
+ expiresAt: row[15],
1492
+ completedAt: row[16],
1493
+ revokedAt: row[17],
1494
+ createdAt: row[18],
1495
+ updatedAt: row[19]
1496
+ };
1497
+ }
1498
+ exports.updateAuthInviteSessionOAuthQuery = `-- name: UpdateAuthInviteSessionOAuth :one
1499
+ UPDATE weave.auth_invite_session
1500
+ SET
1501
+ oauth_provider = $1,
1502
+ oauth_state = $2,
1503
+ oauth_return_url = $3
1504
+ WHERE id = $4
1505
+ AND status <> 'completed'
1506
+ AND status <> 'revoked'
1507
+ RETURNING id, organization_id, user_id, organization_membership_id, organization_identity_link_id, external_subject_id, session_token_box, email, name, status, recovery_reason, recovery_hint, oauth_provider, oauth_state, oauth_return_url, expires_at, completed_at, revoked_at, created_at, updated_at`;
1508
+ async function updateAuthInviteSessionOAuth(client, args) {
1509
+ const result = await client.query({
1510
+ text: exports.updateAuthInviteSessionOAuthQuery,
1511
+ values: [args.oauthProvider, args.oauthState, args.oauthReturnUrl, args.authInviteSessionId],
1512
+ rowMode: "array"
1513
+ });
1514
+ if (result.rows.length !== 1) {
1515
+ return null;
1516
+ }
1517
+ const row = result.rows[0];
1518
+ return {
1519
+ id: row[0],
1520
+ organizationId: row[1],
1521
+ userId: row[2],
1522
+ organizationMembershipId: row[3],
1523
+ organizationIdentityLinkId: row[4],
1524
+ externalSubjectId: row[5],
1525
+ sessionTokenBox: row[6],
1526
+ email: row[7],
1527
+ name: row[8],
1528
+ status: row[9],
1529
+ recoveryReason: row[10],
1530
+ recoveryHint: row[11],
1531
+ oauthProvider: row[12],
1532
+ oauthState: row[13],
1533
+ oauthReturnUrl: row[14],
1534
+ expiresAt: row[15],
1535
+ completedAt: row[16],
1536
+ revokedAt: row[17],
1537
+ createdAt: row[18],
1538
+ updatedAt: row[19]
1539
+ };
1540
+ }
1541
+ exports.completeAuthInviteSessionQuery = `-- name: CompleteAuthInviteSession :one
1542
+ UPDATE weave.auth_invite_session
1543
+ SET
1544
+ status = 'completed',
1545
+ completed_at = now()
1546
+ WHERE id = $1
1547
+ AND status <> 'completed'
1548
+ AND status <> 'revoked'
1549
+ RETURNING id, organization_id, user_id, organization_membership_id, organization_identity_link_id, external_subject_id, session_token_box, email, name, status, recovery_reason, recovery_hint, oauth_provider, oauth_state, oauth_return_url, expires_at, completed_at, revoked_at, created_at, updated_at`;
1550
+ async function completeAuthInviteSession(client, args) {
1551
+ const result = await client.query({
1552
+ text: exports.completeAuthInviteSessionQuery,
1553
+ values: [args.authInviteSessionId],
1554
+ rowMode: "array"
1555
+ });
1556
+ if (result.rows.length !== 1) {
1557
+ return null;
1558
+ }
1559
+ const row = result.rows[0];
1560
+ return {
1561
+ id: row[0],
1562
+ organizationId: row[1],
1563
+ userId: row[2],
1564
+ organizationMembershipId: row[3],
1565
+ organizationIdentityLinkId: row[4],
1566
+ externalSubjectId: row[5],
1567
+ sessionTokenBox: row[6],
1568
+ email: row[7],
1569
+ name: row[8],
1570
+ status: row[9],
1571
+ recoveryReason: row[10],
1572
+ recoveryHint: row[11],
1573
+ oauthProvider: row[12],
1574
+ oauthState: row[13],
1575
+ oauthReturnUrl: row[14],
1576
+ expiresAt: row[15],
1577
+ completedAt: row[16],
1578
+ revokedAt: row[17],
1579
+ createdAt: row[18],
1580
+ updatedAt: row[19]
1581
+ };
1582
+ }
1583
+ exports.revokeAuthInviteSessionQuery = `-- name: RevokeAuthInviteSession :one
1584
+ UPDATE weave.auth_invite_session
1585
+ SET
1586
+ status = 'revoked',
1587
+ revoked_at = now()
1588
+ WHERE id = $1
1589
+ AND status <> 'completed'
1590
+ AND status <> 'revoked'
1591
+ RETURNING id, organization_id, user_id, organization_membership_id, organization_identity_link_id, external_subject_id, session_token_box, email, name, status, recovery_reason, recovery_hint, oauth_provider, oauth_state, oauth_return_url, expires_at, completed_at, revoked_at, created_at, updated_at`;
1592
+ async function revokeAuthInviteSession(client, args) {
1593
+ const result = await client.query({
1594
+ text: exports.revokeAuthInviteSessionQuery,
1595
+ values: [args.authInviteSessionId],
1596
+ rowMode: "array"
1597
+ });
1598
+ if (result.rows.length !== 1) {
1599
+ return null;
1600
+ }
1601
+ const row = result.rows[0];
1602
+ return {
1603
+ id: row[0],
1604
+ organizationId: row[1],
1605
+ userId: row[2],
1606
+ organizationMembershipId: row[3],
1607
+ organizationIdentityLinkId: row[4],
1608
+ externalSubjectId: row[5],
1609
+ sessionTokenBox: row[6],
1610
+ email: row[7],
1611
+ name: row[8],
1612
+ status: row[9],
1613
+ recoveryReason: row[10],
1614
+ recoveryHint: row[11],
1615
+ oauthProvider: row[12],
1616
+ oauthState: row[13],
1617
+ oauthReturnUrl: row[14],
1618
+ expiresAt: row[15],
1619
+ completedAt: row[16],
1620
+ revokedAt: row[17],
1621
+ createdAt: row[18],
1622
+ updatedAt: row[19]
1623
+ };
1624
+ }
1625
+ exports.createPersonalAccessTokenQuery = `-- name: CreatePersonalAccessToken :one
1626
+ INSERT INTO weave.personal_access_token (
1627
+ organization_id,
1628
+ user_id,
1629
+ name,
1630
+ token_hash,
1631
+ expires_at
1632
+ ) VALUES (
1633
+ $1,
1634
+ $2,
1635
+ $3,
1636
+ $4,
1637
+ $5
1638
+ )
1639
+ RETURNING id, organization_id, user_id, name, token_hash, status, expires_at, last_used_at, revoked_at, created_at, updated_at`;
1640
+ async function createPersonalAccessToken(client, args) {
1641
+ const result = await client.query({
1642
+ text: exports.createPersonalAccessTokenQuery,
1643
+ values: [args.organizationId, args.userId, args.name, args.tokenHash, args.expiresAt],
1644
+ rowMode: "array"
1645
+ });
1646
+ if (result.rows.length !== 1) {
1647
+ return null;
1648
+ }
1649
+ const row = result.rows[0];
1650
+ return {
1651
+ id: row[0],
1652
+ organizationId: row[1],
1653
+ userId: row[2],
1654
+ name: row[3],
1655
+ tokenHash: row[4],
1656
+ status: row[5],
1657
+ expiresAt: row[6],
1658
+ lastUsedAt: row[7],
1659
+ revokedAt: row[8],
1660
+ createdAt: row[9],
1661
+ updatedAt: row[10]
1662
+ };
1663
+ }
1664
+ exports.getPersonalAccessTokenQuery = `-- name: GetPersonalAccessToken :one
1665
+ SELECT id, organization_id, user_id, name, token_hash, status, expires_at, last_used_at, revoked_at, created_at, updated_at
1666
+ FROM weave.personal_access_token
1667
+ WHERE id = $1`;
1668
+ async function getPersonalAccessToken(client, args) {
1669
+ const result = await client.query({
1670
+ text: exports.getPersonalAccessTokenQuery,
1671
+ values: [args.personalAccessTokenId],
1672
+ rowMode: "array"
1673
+ });
1674
+ if (result.rows.length !== 1) {
1675
+ return null;
1676
+ }
1677
+ const row = result.rows[0];
1678
+ return {
1679
+ id: row[0],
1680
+ organizationId: row[1],
1681
+ userId: row[2],
1682
+ name: row[3],
1683
+ tokenHash: row[4],
1684
+ status: row[5],
1685
+ expiresAt: row[6],
1686
+ lastUsedAt: row[7],
1687
+ revokedAt: row[8],
1688
+ createdAt: row[9],
1689
+ updatedAt: row[10]
1690
+ };
1691
+ }
1692
+ exports.listPersonalAccessTokensQuery = `-- name: ListPersonalAccessTokens :many
1693
+ SELECT id, organization_id, user_id, name, token_hash, status, expires_at, last_used_at, revoked_at, created_at, updated_at
1694
+ FROM weave.personal_access_token
1695
+ WHERE organization_id = $1
1696
+ AND user_id = $2
1697
+ ORDER BY created_at DESC, id DESC
1698
+ LIMIT $4
1699
+ OFFSET $3`;
1700
+ async function listPersonalAccessTokens(client, args) {
1701
+ const result = await client.query({
1702
+ text: exports.listPersonalAccessTokensQuery,
1703
+ values: [args.organizationId, args.userId, args.offsetCount, args.limitCount],
1704
+ rowMode: "array"
1705
+ });
1706
+ return result.rows.map(row => {
1707
+ return {
1708
+ id: row[0],
1709
+ organizationId: row[1],
1710
+ userId: row[2],
1711
+ name: row[3],
1712
+ tokenHash: row[4],
1713
+ status: row[5],
1714
+ expiresAt: row[6],
1715
+ lastUsedAt: row[7],
1716
+ revokedAt: row[8],
1717
+ createdAt: row[9],
1718
+ updatedAt: row[10]
1719
+ };
1720
+ });
1721
+ }
1722
+ exports.getPrincipalByPersonalAccessTokenQuery = `-- name: GetPrincipalByPersonalAccessToken :one
1723
+ SELECT
1724
+ pat.id AS personal_access_token_id,
1725
+ pat.status AS personal_access_token_status,
1726
+ pat.expires_at AS personal_access_token_expires_at,
1727
+ o.id AS organization_id,
1728
+ o.slug AS organization_slug,
1729
+ o.name AS organization_name,
1730
+ o.status AS organization_status,
1731
+ u.id AS user_id,
1732
+ u.email AS user_email,
1733
+ u.name AS user_name,
1734
+ u.status AS user_status,
1735
+ om.id AS organization_membership_id,
1736
+ om.role AS organization_membership_role,
1737
+ om.status AS organization_membership_status
1738
+ FROM weave.personal_access_token pat
1739
+ JOIN weave.organization o
1740
+ ON o.id = pat.organization_id
1741
+ JOIN weave.user u
1742
+ ON u.id = pat.user_id
1743
+ JOIN weave.organization_membership om
1744
+ ON om.organization_id = o.id
1745
+ AND om.user_id = u.id
1746
+ WHERE pat.token_hash = $1`;
1747
+ async function getPrincipalByPersonalAccessToken(client, args) {
1748
+ const result = await client.query({
1749
+ text: exports.getPrincipalByPersonalAccessTokenQuery,
1750
+ values: [args.tokenHash],
1751
+ rowMode: "array"
1752
+ });
1753
+ if (result.rows.length !== 1) {
1754
+ return null;
1755
+ }
1756
+ const row = result.rows[0];
1757
+ return {
1758
+ personalAccessTokenId: row[0],
1759
+ personalAccessTokenStatus: row[1],
1760
+ personalAccessTokenExpiresAt: row[2],
1761
+ organizationId: row[3],
1762
+ organizationSlug: row[4],
1763
+ organizationName: row[5],
1764
+ organizationStatus: row[6],
1765
+ userId: row[7],
1766
+ userEmail: row[8],
1767
+ userName: row[9],
1768
+ userStatus: row[10],
1769
+ organizationMembershipId: row[11],
1770
+ organizationMembershipRole: row[12],
1771
+ organizationMembershipStatus: row[13]
1772
+ };
1773
+ }
1774
+ exports.markPersonalAccessTokenUsedQuery = `-- name: MarkPersonalAccessTokenUsed :execrows
1775
+ UPDATE weave.personal_access_token
1776
+ SET last_used_at = now()
1777
+ WHERE id = $1`;
1778
+ exports.revokePersonalAccessTokenQuery = `-- name: RevokePersonalAccessToken :execrows
1779
+ UPDATE weave.personal_access_token
1780
+ SET
1781
+ status = 'revoked',
1782
+ revoked_at = now()
1783
+ WHERE id = $1
1784
+ AND status = 'active'`;
1785
+ exports.revokePersonalAccessTokenForUserQuery = `-- name: RevokePersonalAccessTokenForUser :one
1786
+ UPDATE weave.personal_access_token
1787
+ SET
1788
+ status = 'revoked',
1789
+ revoked_at = now()
1790
+ WHERE id = $1
1791
+ AND organization_id = $2
1792
+ AND user_id = $3
1793
+ AND status = 'active'
1794
+ RETURNING id, organization_id, user_id, name, token_hash, status, expires_at, last_used_at, revoked_at, created_at, updated_at`;
1795
+ async function revokePersonalAccessTokenForUser(client, args) {
1796
+ const result = await client.query({
1797
+ text: exports.revokePersonalAccessTokenForUserQuery,
1798
+ values: [args.personalAccessTokenId, args.organizationId, args.userId],
1799
+ rowMode: "array"
1800
+ });
1801
+ if (result.rows.length !== 1) {
1802
+ return null;
1803
+ }
1804
+ const row = result.rows[0];
1805
+ return {
1806
+ id: row[0],
1807
+ organizationId: row[1],
1808
+ userId: row[2],
1809
+ name: row[3],
1810
+ tokenHash: row[4],
1811
+ status: row[5],
1812
+ expiresAt: row[6],
1813
+ lastUsedAt: row[7],
1814
+ revokedAt: row[8],
1815
+ createdAt: row[9],
1816
+ updatedAt: row[10]
1817
+ };
1818
+ }