@shipfox/api-workspaces 10.1.0 → 10.2.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 (56) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +19 -0
  3. package/README.md +7 -1
  4. package/dist/core/admin-workspaces.d.ts +16 -0
  5. package/dist/core/admin-workspaces.d.ts.map +1 -1
  6. package/dist/core/admin-workspaces.js +52 -0
  7. package/dist/core/admin-workspaces.js.map +1 -1
  8. package/dist/core/errors.d.ts +12 -0
  9. package/dist/core/errors.d.ts.map +1 -1
  10. package/dist/core/errors.js +24 -0
  11. package/dist/core/errors.js.map +1 -1
  12. package/dist/core/index.d.ts +2 -2
  13. package/dist/core/index.d.ts.map +1 -1
  14. package/dist/core/index.js +2 -2
  15. package/dist/core/index.js.map +1 -1
  16. package/dist/db/admin-workspace-commands.d.ts +17 -0
  17. package/dist/db/admin-workspace-commands.d.ts.map +1 -0
  18. package/dist/db/admin-workspace-commands.js +86 -0
  19. package/dist/db/admin-workspace-commands.js.map +1 -0
  20. package/dist/db/db.d.ts +256 -0
  21. package/dist/db/db.d.ts.map +1 -1
  22. package/dist/db/db.js +2 -0
  23. package/dist/db/db.js.map +1 -1
  24. package/dist/db/index.d.ts +1 -0
  25. package/dist/db/index.d.ts.map +1 -1
  26. package/dist/db/index.js +1 -0
  27. package/dist/db/index.js.map +1 -1
  28. package/dist/db/schema/admin-command-results.d.ts +135 -0
  29. package/dist/db/schema/admin-command-results.d.ts.map +1 -0
  30. package/dist/db/schema/admin-command-results.js +18 -0
  31. package/dist/db/schema/admin-command-results.js.map +1 -0
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +7 -2
  34. package/dist/index.js.map +1 -1
  35. package/dist/presentation/routes/admin-workspaces.d.ts.map +1 -1
  36. package/dist/presentation/routes/admin-workspaces.js +119 -14
  37. package/dist/presentation/routes/admin-workspaces.js.map +1 -1
  38. package/dist/tsconfig.test.tsbuildinfo +1 -1
  39. package/drizzle/0002_wide_enchantress.sql +11 -0
  40. package/drizzle/meta/0002_snapshot.json +555 -0
  41. package/drizzle/meta/_journal.json +7 -0
  42. package/package.json +5 -5
  43. package/src/core/admin-workspaces.ts +102 -0
  44. package/src/core/errors.ts +28 -0
  45. package/src/core/index.ts +8 -0
  46. package/src/db/admin-workspace-commands.ts +169 -0
  47. package/src/db/db.ts +2 -0
  48. package/src/db/index.ts +1 -0
  49. package/src/db/schema/admin-command-results.ts +30 -0
  50. package/src/index.test.ts +3 -1
  51. package/src/index.ts +17 -2
  52. package/src/presentation/routes/admin-workspaces.test.ts +273 -3
  53. package/src/presentation/routes/admin-workspaces.ts +143 -13
  54. package/test/globalSetup.ts +3 -1
  55. package/tsconfig.build.tsbuildinfo +1 -1
  56. package/vitest.config.ts +3 -0
package/dist/db/db.d.ts CHANGED
@@ -1,5 +1,133 @@
1
1
  import { type NodePgDatabase } from '@shipfox/node-drizzle';
2
2
  export declare const schema: {
3
+ workspacesAdminCommandResults: import("drizzle-orm/pg-core").PgTableWithColumns<{
4
+ name: "admin_command_results";
5
+ schema: undefined;
6
+ columns: {
7
+ id: import("drizzle-orm/pg-core").PgColumn<{
8
+ name: "id";
9
+ tableName: "admin_command_results";
10
+ dataType: "string";
11
+ columnType: "PgUUID";
12
+ data: string;
13
+ driverParam: string;
14
+ notNull: true;
15
+ hasDefault: true;
16
+ isPrimaryKey: true;
17
+ isAutoincrement: false;
18
+ hasRuntimeDefault: false;
19
+ enumValues: undefined;
20
+ baseColumn: never;
21
+ identity: undefined;
22
+ generated: undefined;
23
+ }, {}, {}>;
24
+ actorId: import("drizzle-orm/pg-core").PgColumn<{
25
+ name: "actor_id";
26
+ tableName: "admin_command_results";
27
+ dataType: "string";
28
+ columnType: "PgUUID";
29
+ data: string;
30
+ driverParam: string;
31
+ notNull: true;
32
+ hasDefault: false;
33
+ isPrimaryKey: false;
34
+ isAutoincrement: false;
35
+ hasRuntimeDefault: false;
36
+ enumValues: undefined;
37
+ baseColumn: never;
38
+ identity: undefined;
39
+ generated: undefined;
40
+ }, {}, {}>;
41
+ idempotencyKeyFingerprint: import("drizzle-orm/pg-core").PgColumn<{
42
+ name: "idempotency_key_fingerprint";
43
+ tableName: "admin_command_results";
44
+ dataType: "string";
45
+ columnType: "PgText";
46
+ data: string;
47
+ driverParam: string;
48
+ notNull: true;
49
+ hasDefault: false;
50
+ isPrimaryKey: false;
51
+ isAutoincrement: false;
52
+ hasRuntimeDefault: false;
53
+ enumValues: [string, ...string[]];
54
+ baseColumn: never;
55
+ identity: undefined;
56
+ generated: undefined;
57
+ }, {}, {}>;
58
+ command: import("drizzle-orm/pg-core").PgColumn<{
59
+ name: "command";
60
+ tableName: "admin_command_results";
61
+ dataType: "string";
62
+ columnType: "PgText";
63
+ data: string;
64
+ driverParam: string;
65
+ notNull: true;
66
+ hasDefault: false;
67
+ isPrimaryKey: false;
68
+ isAutoincrement: false;
69
+ hasRuntimeDefault: false;
70
+ enumValues: [string, ...string[]];
71
+ baseColumn: never;
72
+ identity: undefined;
73
+ generated: undefined;
74
+ }, {}, {}>;
75
+ requestFingerprint: import("drizzle-orm/pg-core").PgColumn<{
76
+ name: "request_fingerprint";
77
+ tableName: "admin_command_results";
78
+ dataType: "string";
79
+ columnType: "PgText";
80
+ data: string;
81
+ driverParam: string;
82
+ notNull: true;
83
+ hasDefault: false;
84
+ isPrimaryKey: false;
85
+ isAutoincrement: false;
86
+ hasRuntimeDefault: false;
87
+ enumValues: [string, ...string[]];
88
+ baseColumn: never;
89
+ identity: undefined;
90
+ generated: undefined;
91
+ }, {}, {}>;
92
+ result: import("drizzle-orm/pg-core").PgColumn<{
93
+ name: "result";
94
+ tableName: "admin_command_results";
95
+ dataType: "json";
96
+ columnType: "PgJsonb";
97
+ data: import("./schema/admin-command-results.js").StoredWorkspaceAdministrationResult;
98
+ driverParam: unknown;
99
+ notNull: true;
100
+ hasDefault: false;
101
+ isPrimaryKey: false;
102
+ isAutoincrement: false;
103
+ hasRuntimeDefault: false;
104
+ enumValues: undefined;
105
+ baseColumn: never;
106
+ identity: undefined;
107
+ generated: undefined;
108
+ }, {}, {
109
+ $type: import("./schema/admin-command-results.js").StoredWorkspaceAdministrationResult;
110
+ }>;
111
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
112
+ name: "created_at";
113
+ tableName: "admin_command_results";
114
+ dataType: "date";
115
+ columnType: "PgTimestamp";
116
+ data: Date;
117
+ driverParam: string;
118
+ notNull: true;
119
+ hasDefault: true;
120
+ isPrimaryKey: false;
121
+ isAutoincrement: false;
122
+ hasRuntimeDefault: false;
123
+ enumValues: undefined;
124
+ baseColumn: never;
125
+ identity: undefined;
126
+ generated: undefined;
127
+ }, {}, {}>;
128
+ };
129
+ dialect: "pg";
130
+ }>;
3
131
  workspaces: import("drizzle-orm/pg-core").PgTableWithColumns<{
4
132
  name: "workspaces";
5
133
  schema: undefined;
@@ -659,6 +787,134 @@ export declare const schema: {
659
787
  }>;
660
788
  };
661
789
  export declare function db(): NodePgDatabase<{
790
+ workspacesAdminCommandResults: import("drizzle-orm/pg-core").PgTableWithColumns<{
791
+ name: "admin_command_results";
792
+ schema: undefined;
793
+ columns: {
794
+ id: import("drizzle-orm/pg-core").PgColumn<{
795
+ name: "id";
796
+ tableName: "admin_command_results";
797
+ dataType: "string";
798
+ columnType: "PgUUID";
799
+ data: string;
800
+ driverParam: string;
801
+ notNull: true;
802
+ hasDefault: true;
803
+ isPrimaryKey: true;
804
+ isAutoincrement: false;
805
+ hasRuntimeDefault: false;
806
+ enumValues: undefined;
807
+ baseColumn: never;
808
+ identity: undefined;
809
+ generated: undefined;
810
+ }, {}, {}>;
811
+ actorId: import("drizzle-orm/pg-core").PgColumn<{
812
+ name: "actor_id";
813
+ tableName: "admin_command_results";
814
+ dataType: "string";
815
+ columnType: "PgUUID";
816
+ data: string;
817
+ driverParam: string;
818
+ notNull: true;
819
+ hasDefault: false;
820
+ isPrimaryKey: false;
821
+ isAutoincrement: false;
822
+ hasRuntimeDefault: false;
823
+ enumValues: undefined;
824
+ baseColumn: never;
825
+ identity: undefined;
826
+ generated: undefined;
827
+ }, {}, {}>;
828
+ idempotencyKeyFingerprint: import("drizzle-orm/pg-core").PgColumn<{
829
+ name: "idempotency_key_fingerprint";
830
+ tableName: "admin_command_results";
831
+ dataType: "string";
832
+ columnType: "PgText";
833
+ data: string;
834
+ driverParam: string;
835
+ notNull: true;
836
+ hasDefault: false;
837
+ isPrimaryKey: false;
838
+ isAutoincrement: false;
839
+ hasRuntimeDefault: false;
840
+ enumValues: [string, ...string[]];
841
+ baseColumn: never;
842
+ identity: undefined;
843
+ generated: undefined;
844
+ }, {}, {}>;
845
+ command: import("drizzle-orm/pg-core").PgColumn<{
846
+ name: "command";
847
+ tableName: "admin_command_results";
848
+ dataType: "string";
849
+ columnType: "PgText";
850
+ data: string;
851
+ driverParam: string;
852
+ notNull: true;
853
+ hasDefault: false;
854
+ isPrimaryKey: false;
855
+ isAutoincrement: false;
856
+ hasRuntimeDefault: false;
857
+ enumValues: [string, ...string[]];
858
+ baseColumn: never;
859
+ identity: undefined;
860
+ generated: undefined;
861
+ }, {}, {}>;
862
+ requestFingerprint: import("drizzle-orm/pg-core").PgColumn<{
863
+ name: "request_fingerprint";
864
+ tableName: "admin_command_results";
865
+ dataType: "string";
866
+ columnType: "PgText";
867
+ data: string;
868
+ driverParam: string;
869
+ notNull: true;
870
+ hasDefault: false;
871
+ isPrimaryKey: false;
872
+ isAutoincrement: false;
873
+ hasRuntimeDefault: false;
874
+ enumValues: [string, ...string[]];
875
+ baseColumn: never;
876
+ identity: undefined;
877
+ generated: undefined;
878
+ }, {}, {}>;
879
+ result: import("drizzle-orm/pg-core").PgColumn<{
880
+ name: "result";
881
+ tableName: "admin_command_results";
882
+ dataType: "json";
883
+ columnType: "PgJsonb";
884
+ data: import("./schema/admin-command-results.js").StoredWorkspaceAdministrationResult;
885
+ driverParam: unknown;
886
+ notNull: true;
887
+ hasDefault: false;
888
+ isPrimaryKey: false;
889
+ isAutoincrement: false;
890
+ hasRuntimeDefault: false;
891
+ enumValues: undefined;
892
+ baseColumn: never;
893
+ identity: undefined;
894
+ generated: undefined;
895
+ }, {}, {
896
+ $type: import("./schema/admin-command-results.js").StoredWorkspaceAdministrationResult;
897
+ }>;
898
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
899
+ name: "created_at";
900
+ tableName: "admin_command_results";
901
+ dataType: "date";
902
+ columnType: "PgTimestamp";
903
+ data: Date;
904
+ driverParam: string;
905
+ notNull: true;
906
+ hasDefault: true;
907
+ isPrimaryKey: false;
908
+ isAutoincrement: false;
909
+ hasRuntimeDefault: false;
910
+ enumValues: undefined;
911
+ baseColumn: never;
912
+ identity: undefined;
913
+ generated: undefined;
914
+ }, {}, {}>;
915
+ };
916
+ dialect: "pg";
917
+ }>;
662
918
  workspaces: import("drizzle-orm/pg-core").PgTableWithColumns<{
663
919
  name: "workspaces";
664
920
  schema: undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/db/db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,cAAc,EAAC,MAAM,uBAAuB,CAAC;AAOnE,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKlB,CAAC;AAIF,wBAAgB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAGjB;AAED,wBAAgB,OAAO,IAAI,IAAI,CAE9B"}
1
+ {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/db/db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,cAAc,EAAC,MAAM,uBAAuB,CAAC;AAQnE,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMlB,CAAC;AAIF,wBAAgB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAGjB;AAED,wBAAgB,OAAO,IAAI,IAAI,CAE9B"}
package/dist/db/db.js CHANGED
@@ -1,10 +1,12 @@
1
1
  import { drizzle } from '@shipfox/node-drizzle';
2
2
  import { pgClient } from '@shipfox/node-postgres';
3
+ import { workspacesAdminCommandResults } from './schema/admin-command-results.js';
3
4
  import { invitations } from './schema/invitations.js';
4
5
  import { memberships } from './schema/memberships.js';
5
6
  import { workspacesOutbox } from './schema/outbox.js';
6
7
  import { workspaces } from './schema/workspaces.js';
7
8
  export const schema = {
9
+ workspacesAdminCommandResults,
8
10
  workspaces,
9
11
  memberships,
10
12
  invitations,
package/dist/db/db.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/db/db.ts"],"sourcesContent":["import {drizzle, type NodePgDatabase} from '@shipfox/node-drizzle';\nimport {pgClient} from '@shipfox/node-postgres';\nimport {invitations} from './schema/invitations.js';\nimport {memberships} from './schema/memberships.js';\nimport {workspacesOutbox} from './schema/outbox.js';\nimport {workspaces} from './schema/workspaces.js';\n\nexport const schema = {\n workspaces,\n memberships,\n invitations,\n workspacesOutbox,\n};\n\nlet _db: NodePgDatabase<typeof schema> | undefined;\n\nexport function db() {\n if (!_db) _db = drizzle(pgClient(), {schema});\n return _db;\n}\n\nexport function closeDb(): void {\n _db = undefined;\n}\n"],"names":["drizzle","pgClient","invitations","memberships","workspacesOutbox","workspaces","schema","_db","db","closeDb","undefined"],"mappings":"AAAA,SAAQA,OAAO,QAA4B,wBAAwB;AACnE,SAAQC,QAAQ,QAAO,yBAAyB;AAChD,SAAQC,WAAW,QAAO,0BAA0B;AACpD,SAAQC,WAAW,QAAO,0BAA0B;AACpD,SAAQC,gBAAgB,QAAO,qBAAqB;AACpD,SAAQC,UAAU,QAAO,yBAAyB;AAElD,OAAO,MAAMC,SAAS;IACpBD;IACAF;IACAD;IACAE;AACF,EAAE;AAEF,IAAIG;AAEJ,OAAO,SAASC;IACd,IAAI,CAACD,KAAKA,MAAMP,QAAQC,YAAY;QAACK;IAAM;IAC3C,OAAOC;AACT;AAEA,OAAO,SAASE;IACdF,MAAMG;AACR"}
1
+ {"version":3,"sources":["../../src/db/db.ts"],"sourcesContent":["import {drizzle, type NodePgDatabase} from '@shipfox/node-drizzle';\nimport {pgClient} from '@shipfox/node-postgres';\nimport {workspacesAdminCommandResults} from './schema/admin-command-results.js';\nimport {invitations} from './schema/invitations.js';\nimport {memberships} from './schema/memberships.js';\nimport {workspacesOutbox} from './schema/outbox.js';\nimport {workspaces} from './schema/workspaces.js';\n\nexport const schema = {\n workspacesAdminCommandResults,\n workspaces,\n memberships,\n invitations,\n workspacesOutbox,\n};\n\nlet _db: NodePgDatabase<typeof schema> | undefined;\n\nexport function db() {\n if (!_db) _db = drizzle(pgClient(), {schema});\n return _db;\n}\n\nexport function closeDb(): void {\n _db = undefined;\n}\n"],"names":["drizzle","pgClient","workspacesAdminCommandResults","invitations","memberships","workspacesOutbox","workspaces","schema","_db","db","closeDb","undefined"],"mappings":"AAAA,SAAQA,OAAO,QAA4B,wBAAwB;AACnE,SAAQC,QAAQ,QAAO,yBAAyB;AAChD,SAAQC,6BAA6B,QAAO,oCAAoC;AAChF,SAAQC,WAAW,QAAO,0BAA0B;AACpD,SAAQC,WAAW,QAAO,0BAA0B;AACpD,SAAQC,gBAAgB,QAAO,qBAAqB;AACpD,SAAQC,UAAU,QAAO,yBAAyB;AAElD,OAAO,MAAMC,SAAS;IACpBL;IACAI;IACAF;IACAD;IACAE;AACF,EAAE;AAEF,IAAIG;AAEJ,OAAO,SAASC;IACd,IAAI,CAACD,KAAKA,MAAMR,QAAQC,YAAY;QAACM;IAAM;IAC3C,OAAOC;AACT;AAEA,OAAO,SAASE;IACdF,MAAMG;AACR"}
@@ -3,6 +3,7 @@ export type { CreateInvitationParams } from './invitations.js';
3
3
  export { createInvitation, findInvitationByToken, listOpenInvitationsByWorkspace, revokeInvitation, } from './invitations.js';
4
4
  export type { CreateMembershipParams, MembershipWithUser, MembershipWithWorkspace, RemoveMembershipParams, } from './memberships.js';
5
5
  export { createMembership, findMembership, listMembershipsByUser, listMembershipsByWorkspace, removeMembership, } from './memberships.js';
6
+ export { workspacesAdminCommandResults } from './schema/admin-command-results.js';
6
7
  export { workspacesOutbox } from './schema/outbox.js';
7
8
  export type { AdminWorkspaceRow, CreateWorkspaceParams, ListAdminWorkspaceParams, ListAdminWorkspaceResult, UpdateWorkspaceParams, WorkspaceServiceMetrics, } from './workspaces.js';
8
9
  export { createWorkspace, getWorkspaceById, getWorkspaceServiceMetrics, listAdminWorkspaces, updateWorkspace, } from './workspaces.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,OAAO,EAAE,EAAE,EAAE,MAAM,EAAC,MAAM,SAAS,CAAC;AAC5C,YAAY,EAAC,sBAAsB,EAAC,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,8BAA8B,EAC9B,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,sBAAsB,EACtB,kBAAkB,EAClB,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,qBAAqB,EACrB,0BAA0B,EAC1B,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAC,gBAAgB,EAAC,MAAM,oBAAoB,CAAC;AACpD,YAAY,EACV,iBAAiB,EACjB,qBAAqB,EACrB,wBAAwB,EACxB,wBAAwB,EACxB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,0BAA0B,EAC1B,mBAAmB,EACnB,eAAe,GAChB,MAAM,iBAAiB,CAAC;AAEzB,eAAO,MAAM,cAAc,QAAoE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,OAAO,EAAE,EAAE,EAAE,MAAM,EAAC,MAAM,SAAS,CAAC;AAC5C,YAAY,EAAC,sBAAsB,EAAC,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,8BAA8B,EAC9B,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,sBAAsB,EACtB,kBAAkB,EAClB,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,qBAAqB,EACrB,0BAA0B,EAC1B,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAC,6BAA6B,EAAC,MAAM,mCAAmC,CAAC;AAChF,OAAO,EAAC,gBAAgB,EAAC,MAAM,oBAAoB,CAAC;AACpD,YAAY,EACV,iBAAiB,EACjB,qBAAqB,EACrB,wBAAwB,EACxB,wBAAwB,EACxB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,0BAA0B,EAC1B,mBAAmB,EACnB,eAAe,GAChB,MAAM,iBAAiB,CAAC;AAEzB,eAAO,MAAM,cAAc,QAAoE,CAAC"}
package/dist/db/index.js CHANGED
@@ -3,6 +3,7 @@ import { fileURLToPath } from 'node:url';
3
3
  export { closeDb, db, schema } from './db.js';
4
4
  export { createInvitation, findInvitationByToken, listOpenInvitationsByWorkspace, revokeInvitation } from './invitations.js';
5
5
  export { createMembership, findMembership, listMembershipsByUser, listMembershipsByWorkspace, removeMembership } from './memberships.js';
6
+ export { workspacesAdminCommandResults } from './schema/admin-command-results.js';
6
7
  export { workspacesOutbox } from './schema/outbox.js';
7
8
  export { createWorkspace, getWorkspaceById, getWorkspaceServiceMetrics, listAdminWorkspaces, updateWorkspace } from './workspaces.js';
8
9
  export const migrationsPath = resolve(dirname(fileURLToPath(import.meta.url)), '../../drizzle');
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/db/index.ts"],"sourcesContent":["import {dirname, resolve} from 'node:path';\nimport {fileURLToPath} from 'node:url';\n\nexport {closeDb, db, schema} from './db.js';\nexport type {CreateInvitationParams} from './invitations.js';\nexport {\n createInvitation,\n findInvitationByToken,\n listOpenInvitationsByWorkspace,\n revokeInvitation,\n} from './invitations.js';\nexport type {\n CreateMembershipParams,\n MembershipWithUser,\n MembershipWithWorkspace,\n RemoveMembershipParams,\n} from './memberships.js';\nexport {\n createMembership,\n findMembership,\n listMembershipsByUser,\n listMembershipsByWorkspace,\n removeMembership,\n} from './memberships.js';\nexport {workspacesOutbox} from './schema/outbox.js';\nexport type {\n AdminWorkspaceRow,\n CreateWorkspaceParams,\n ListAdminWorkspaceParams,\n ListAdminWorkspaceResult,\n UpdateWorkspaceParams,\n WorkspaceServiceMetrics,\n} from './workspaces.js';\nexport {\n createWorkspace,\n getWorkspaceById,\n getWorkspaceServiceMetrics,\n listAdminWorkspaces,\n updateWorkspace,\n} from './workspaces.js';\n\nexport const migrationsPath = resolve(dirname(fileURLToPath(import.meta.url)), '../../drizzle');\n"],"names":["dirname","resolve","fileURLToPath","closeDb","db","schema","createInvitation","findInvitationByToken","listOpenInvitationsByWorkspace","revokeInvitation","createMembership","findMembership","listMembershipsByUser","listMembershipsByWorkspace","removeMembership","workspacesOutbox","createWorkspace","getWorkspaceById","getWorkspaceServiceMetrics","listAdminWorkspaces","updateWorkspace","migrationsPath","url"],"mappings":"AAAA,SAAQA,OAAO,EAAEC,OAAO,QAAO,YAAY;AAC3C,SAAQC,aAAa,QAAO,WAAW;AAEvC,SAAQC,OAAO,EAAEC,EAAE,EAAEC,MAAM,QAAO,UAAU;AAE5C,SACEC,gBAAgB,EAChBC,qBAAqB,EACrBC,8BAA8B,EAC9BC,gBAAgB,QACX,mBAAmB;AAO1B,SACEC,gBAAgB,EAChBC,cAAc,EACdC,qBAAqB,EACrBC,0BAA0B,EAC1BC,gBAAgB,QACX,mBAAmB;AAC1B,SAAQC,gBAAgB,QAAO,qBAAqB;AASpD,SACEC,eAAe,EACfC,gBAAgB,EAChBC,0BAA0B,EAC1BC,mBAAmB,EACnBC,eAAe,QACV,kBAAkB;AAEzB,OAAO,MAAMC,iBAAiBpB,QAAQD,QAAQE,cAAc,YAAYoB,GAAG,IAAI,iBAAiB"}
1
+ {"version":3,"sources":["../../src/db/index.ts"],"sourcesContent":["import {dirname, resolve} from 'node:path';\nimport {fileURLToPath} from 'node:url';\n\nexport {closeDb, db, schema} from './db.js';\nexport type {CreateInvitationParams} from './invitations.js';\nexport {\n createInvitation,\n findInvitationByToken,\n listOpenInvitationsByWorkspace,\n revokeInvitation,\n} from './invitations.js';\nexport type {\n CreateMembershipParams,\n MembershipWithUser,\n MembershipWithWorkspace,\n RemoveMembershipParams,\n} from './memberships.js';\nexport {\n createMembership,\n findMembership,\n listMembershipsByUser,\n listMembershipsByWorkspace,\n removeMembership,\n} from './memberships.js';\nexport {workspacesAdminCommandResults} from './schema/admin-command-results.js';\nexport {workspacesOutbox} from './schema/outbox.js';\nexport type {\n AdminWorkspaceRow,\n CreateWorkspaceParams,\n ListAdminWorkspaceParams,\n ListAdminWorkspaceResult,\n UpdateWorkspaceParams,\n WorkspaceServiceMetrics,\n} from './workspaces.js';\nexport {\n createWorkspace,\n getWorkspaceById,\n getWorkspaceServiceMetrics,\n listAdminWorkspaces,\n updateWorkspace,\n} from './workspaces.js';\n\nexport const migrationsPath = resolve(dirname(fileURLToPath(import.meta.url)), '../../drizzle');\n"],"names":["dirname","resolve","fileURLToPath","closeDb","db","schema","createInvitation","findInvitationByToken","listOpenInvitationsByWorkspace","revokeInvitation","createMembership","findMembership","listMembershipsByUser","listMembershipsByWorkspace","removeMembership","workspacesAdminCommandResults","workspacesOutbox","createWorkspace","getWorkspaceById","getWorkspaceServiceMetrics","listAdminWorkspaces","updateWorkspace","migrationsPath","url"],"mappings":"AAAA,SAAQA,OAAO,EAAEC,OAAO,QAAO,YAAY;AAC3C,SAAQC,aAAa,QAAO,WAAW;AAEvC,SAAQC,OAAO,EAAEC,EAAE,EAAEC,MAAM,QAAO,UAAU;AAE5C,SACEC,gBAAgB,EAChBC,qBAAqB,EACrBC,8BAA8B,EAC9BC,gBAAgB,QACX,mBAAmB;AAO1B,SACEC,gBAAgB,EAChBC,cAAc,EACdC,qBAAqB,EACrBC,0BAA0B,EAC1BC,gBAAgB,QACX,mBAAmB;AAC1B,SAAQC,6BAA6B,QAAO,oCAAoC;AAChF,SAAQC,gBAAgB,QAAO,qBAAqB;AASpD,SACEC,eAAe,EACfC,gBAAgB,EAChBC,0BAA0B,EAC1BC,mBAAmB,EACnBC,eAAe,QACV,kBAAkB;AAEzB,OAAO,MAAMC,iBAAiBrB,QAAQD,QAAQE,cAAc,YAAYqB,GAAG,IAAI,iBAAiB"}
@@ -0,0 +1,135 @@
1
+ export interface StoredWorkspaceAdministrationResult {
2
+ workspaceId: string;
3
+ status: 'active' | 'suspended';
4
+ correlationId: string;
5
+ }
6
+ export declare const workspacesAdminCommandResults: import("drizzle-orm/pg-core").PgTableWithColumns<{
7
+ name: "admin_command_results";
8
+ schema: undefined;
9
+ columns: {
10
+ id: import("drizzle-orm/pg-core").PgColumn<{
11
+ name: "id";
12
+ tableName: "admin_command_results";
13
+ dataType: "string";
14
+ columnType: "PgUUID";
15
+ data: string;
16
+ driverParam: string;
17
+ notNull: true;
18
+ hasDefault: true;
19
+ isPrimaryKey: true;
20
+ isAutoincrement: false;
21
+ hasRuntimeDefault: false;
22
+ enumValues: undefined;
23
+ baseColumn: never;
24
+ identity: undefined;
25
+ generated: undefined;
26
+ }, {}, {}>;
27
+ actorId: import("drizzle-orm/pg-core").PgColumn<{
28
+ name: "actor_id";
29
+ tableName: "admin_command_results";
30
+ dataType: "string";
31
+ columnType: "PgUUID";
32
+ data: string;
33
+ driverParam: string;
34
+ notNull: true;
35
+ hasDefault: false;
36
+ isPrimaryKey: false;
37
+ isAutoincrement: false;
38
+ hasRuntimeDefault: false;
39
+ enumValues: undefined;
40
+ baseColumn: never;
41
+ identity: undefined;
42
+ generated: undefined;
43
+ }, {}, {}>;
44
+ idempotencyKeyFingerprint: import("drizzle-orm/pg-core").PgColumn<{
45
+ name: "idempotency_key_fingerprint";
46
+ tableName: "admin_command_results";
47
+ dataType: "string";
48
+ columnType: "PgText";
49
+ data: string;
50
+ driverParam: string;
51
+ notNull: true;
52
+ hasDefault: false;
53
+ isPrimaryKey: false;
54
+ isAutoincrement: false;
55
+ hasRuntimeDefault: false;
56
+ enumValues: [string, ...string[]];
57
+ baseColumn: never;
58
+ identity: undefined;
59
+ generated: undefined;
60
+ }, {}, {}>;
61
+ command: import("drizzle-orm/pg-core").PgColumn<{
62
+ name: "command";
63
+ tableName: "admin_command_results";
64
+ dataType: "string";
65
+ columnType: "PgText";
66
+ data: string;
67
+ driverParam: string;
68
+ notNull: true;
69
+ hasDefault: false;
70
+ isPrimaryKey: false;
71
+ isAutoincrement: false;
72
+ hasRuntimeDefault: false;
73
+ enumValues: [string, ...string[]];
74
+ baseColumn: never;
75
+ identity: undefined;
76
+ generated: undefined;
77
+ }, {}, {}>;
78
+ requestFingerprint: import("drizzle-orm/pg-core").PgColumn<{
79
+ name: "request_fingerprint";
80
+ tableName: "admin_command_results";
81
+ dataType: "string";
82
+ columnType: "PgText";
83
+ data: string;
84
+ driverParam: string;
85
+ notNull: true;
86
+ hasDefault: false;
87
+ isPrimaryKey: false;
88
+ isAutoincrement: false;
89
+ hasRuntimeDefault: false;
90
+ enumValues: [string, ...string[]];
91
+ baseColumn: never;
92
+ identity: undefined;
93
+ generated: undefined;
94
+ }, {}, {}>;
95
+ result: import("drizzle-orm/pg-core").PgColumn<{
96
+ name: "result";
97
+ tableName: "admin_command_results";
98
+ dataType: "json";
99
+ columnType: "PgJsonb";
100
+ data: StoredWorkspaceAdministrationResult;
101
+ driverParam: unknown;
102
+ notNull: true;
103
+ hasDefault: false;
104
+ isPrimaryKey: false;
105
+ isAutoincrement: false;
106
+ hasRuntimeDefault: false;
107
+ enumValues: undefined;
108
+ baseColumn: never;
109
+ identity: undefined;
110
+ generated: undefined;
111
+ }, {}, {
112
+ $type: StoredWorkspaceAdministrationResult;
113
+ }>;
114
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
115
+ name: "created_at";
116
+ tableName: "admin_command_results";
117
+ dataType: "date";
118
+ columnType: "PgTimestamp";
119
+ data: Date;
120
+ driverParam: string;
121
+ notNull: true;
122
+ hasDefault: true;
123
+ isPrimaryKey: false;
124
+ isAutoincrement: false;
125
+ hasRuntimeDefault: false;
126
+ enumValues: undefined;
127
+ baseColumn: never;
128
+ identity: undefined;
129
+ generated: undefined;
130
+ }, {}, {}>;
131
+ };
132
+ dialect: "pg";
133
+ }>;
134
+ export type WorkspaceAdminCommandResultDb = typeof workspacesAdminCommandResults.$inferSelect;
135
+ //# sourceMappingURL=admin-command-results.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin-command-results.d.ts","sourceRoot":"","sources":["../../../src/db/schema/admin-command-results.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,mCAAmC;IAClD,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,QAAQ,GAAG,WAAW,CAAC;IAC/B,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiBzC,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG,OAAO,6BAA6B,CAAC,YAAY,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { uuidv7PrimaryKey } from '@shipfox/node-drizzle';
2
+ import { jsonb, text, timestamp, uniqueIndex, uuid } from 'drizzle-orm/pg-core';
3
+ import { pgTable } from './common.js';
4
+ export const workspacesAdminCommandResults = pgTable('admin_command_results', {
5
+ id: uuidv7PrimaryKey(),
6
+ actorId: uuid('actor_id').notNull(),
7
+ idempotencyKeyFingerprint: text('idempotency_key_fingerprint').notNull(),
8
+ command: text('command').notNull(),
9
+ requestFingerprint: text('request_fingerprint').notNull(),
10
+ result: jsonb('result').$type().notNull(),
11
+ createdAt: timestamp('created_at', {
12
+ withTimezone: true
13
+ }).notNull().defaultNow()
14
+ }, (table)=>[
15
+ uniqueIndex('workspaces_admin_command_results_actor_key_unique').on(table.actorId, table.idempotencyKeyFingerprint)
16
+ ]);
17
+
18
+ //# sourceMappingURL=admin-command-results.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/db/schema/admin-command-results.ts"],"sourcesContent":["import {uuidv7PrimaryKey} from '@shipfox/node-drizzle';\nimport {jsonb, text, timestamp, uniqueIndex, uuid} from 'drizzle-orm/pg-core';\nimport {pgTable} from './common.js';\n\nexport interface StoredWorkspaceAdministrationResult {\n workspaceId: string;\n status: 'active' | 'suspended';\n correlationId: string;\n}\n\nexport const workspacesAdminCommandResults = pgTable(\n 'admin_command_results',\n {\n id: uuidv7PrimaryKey(),\n actorId: uuid('actor_id').notNull(),\n idempotencyKeyFingerprint: text('idempotency_key_fingerprint').notNull(),\n command: text('command').notNull(),\n requestFingerprint: text('request_fingerprint').notNull(),\n result: jsonb('result').$type<StoredWorkspaceAdministrationResult>().notNull(),\n createdAt: timestamp('created_at', {withTimezone: true}).notNull().defaultNow(),\n },\n (table) => [\n uniqueIndex('workspaces_admin_command_results_actor_key_unique').on(\n table.actorId,\n table.idempotencyKeyFingerprint,\n ),\n ],\n);\n\nexport type WorkspaceAdminCommandResultDb = typeof workspacesAdminCommandResults.$inferSelect;\n"],"names":["uuidv7PrimaryKey","jsonb","text","timestamp","uniqueIndex","uuid","pgTable","workspacesAdminCommandResults","id","actorId","notNull","idempotencyKeyFingerprint","command","requestFingerprint","result","$type","createdAt","withTimezone","defaultNow","table","on"],"mappings":"AAAA,SAAQA,gBAAgB,QAAO,wBAAwB;AACvD,SAAQC,KAAK,EAAEC,IAAI,EAAEC,SAAS,EAAEC,WAAW,EAAEC,IAAI,QAAO,sBAAsB;AAC9E,SAAQC,OAAO,QAAO,cAAc;AAQpC,OAAO,MAAMC,gCAAgCD,QAC3C,yBACA;IACEE,IAAIR;IACJS,SAASJ,KAAK,YAAYK,OAAO;IACjCC,2BAA2BT,KAAK,+BAA+BQ,OAAO;IACtEE,SAASV,KAAK,WAAWQ,OAAO;IAChCG,oBAAoBX,KAAK,uBAAuBQ,OAAO;IACvDI,QAAQb,MAAM,UAAUc,KAAK,GAAwCL,OAAO;IAC5EM,WAAWb,UAAU,cAAc;QAACc,cAAc;IAAI,GAAGP,OAAO,GAAGQ,UAAU;AAC/E,GACA,CAACC,QAAU;QACTf,YAAY,qDAAqDgB,EAAE,CACjED,MAAMV,OAAO,EACbU,MAAMR,yBAAyB;KAElC,EACD"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,oCAAoC,CAAC;AAC9E,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,wCAAwC,CAAC;AACjF,OAAO,KAAK,EAAC,wBAAwB,EAAC,MAAM,uCAAuC,CAAC;AAMpF,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,sBAAsB,CAAC;AASxD,YAAY,EAAC,UAAU,EAAC,MAAM,8BAA8B,CAAC;AAC7D,YAAY,EAAC,UAAU,EAAC,MAAM,8BAA8B,CAAC;AAC7D,YAAY,EAAC,SAAS,EAAE,eAAe,EAAC,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EACL,4BAA4B,EAC5B,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,yBAAyB,EACzB,wBAAwB,EACxB,sCAAsC,EACtC,KAAK,iCAAiC,GACvC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAC,KAAK,sBAAsB,EAAE,gBAAgB,EAAC,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAC,YAAY,EAAE,0BAA0B,EAAC,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAC,EAAE,EAAE,cAAc,EAAC,MAAM,cAAc,CAAC;AAChD,OAAO,EAAC,qBAAqB,EAAC,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAC,sBAAsB,EAAE,gBAAgB,IAAI,MAAM,EAAC,MAAM,+BAA+B,CAAC;AAIjG,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,qBAAqB,CAAC;IAC5B,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,OAAO,EAAE,wBAAwB,CAAC;CACnC;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,uBAAuB,GAAG,aAAa,CAatF;AAED,oFAAoF;AACpF,eAAO,MAAM,gBAAgB,EAAE,aAW9B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,oCAAoC,CAAC;AAE9E,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,wCAAwC,CAAC;AACjF,OAAO,KAAK,EAAC,wBAAwB,EAAC,MAAM,uCAAuC,CAAC;AAMpF,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,sBAAsB,CAAC;AASxD,YAAY,EAAC,UAAU,EAAC,MAAM,8BAA8B,CAAC;AAC7D,YAAY,EAAC,UAAU,EAAC,MAAM,8BAA8B,CAAC;AAC7D,YAAY,EAAC,SAAS,EAAE,eAAe,EAAC,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EACL,4BAA4B,EAC5B,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,yBAAyB,EACzB,wBAAwB,EACxB,sCAAsC,EACtC,KAAK,iCAAiC,GACvC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAC,KAAK,sBAAsB,EAAE,gBAAgB,EAAC,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAC,YAAY,EAAE,0BAA0B,EAAC,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAC,EAAE,EAAE,cAAc,EAAC,MAAM,cAAc,CAAC;AAChD,OAAO,EAAC,qBAAqB,EAAC,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAC,sBAAsB,EAAE,gBAAgB,IAAI,MAAM,EAAC,MAAM,+BAA+B,CAAC;AAQjG,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,qBAAqB,CAAC;IAC5B,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,OAAO,EAAE,wBAAwB,CAAC;CACnC;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,uBAAuB,GAAG,aAAa,CAkBtF;AAED,oFAAoF;AACpF,eAAO,MAAM,gBAAgB,EAAE,aAgB9B,CAAC"}
package/dist/index.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { administrationActionEventSchemas } from '@shipfox/api-common-dto';
1
2
  import { WORKSPACES_INVITATION_SEND_REQUESTED, workspacesEventSchemas } from '@shipfox/api-workspaces-dto';
2
3
  import { subscriberFactory } from '@shipfox/node-module';
3
4
  import { db, migrationsPath, workspacesOutbox } from '#db/index.js';
@@ -14,6 +15,10 @@ export { db, migrationsPath } from '#db/index.js';
14
15
  export { listMembershipsByUser } from '#db/memberships.js';
15
16
  export { createWorkspacesRoutes, workspacesRoutes as routes } from '#presentation/routes/index.js';
16
17
  const subscriber = subscriberFactory();
18
+ const workspacesPublisherEventSchemas = {
19
+ ...workspacesEventSchemas,
20
+ ...administrationActionEventSchemas
21
+ };
17
22
  export function createWorkspacesModule(options) {
18
23
  return {
19
24
  name: 'workspaces',
@@ -31,7 +36,7 @@ export function createWorkspacesModule(options) {
31
36
  name: 'workspaces',
32
37
  table: workspacesOutbox,
33
38
  db,
34
- eventSchemas: workspacesEventSchemas
39
+ eventSchemas: workspacesPublisherEventSchemas
35
40
  }
36
41
  ],
37
42
  subscribers: [
@@ -59,7 +64,7 @@ export function createWorkspacesModule(options) {
59
64
  name: 'workspaces',
60
65
  table: workspacesOutbox,
61
66
  db,
62
- eventSchemas: workspacesEventSchemas
67
+ eventSchemas: workspacesPublisherEventSchemas
63
68
  }
64
69
  ],
65
70
  subscribers: [
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["import type {AuthInterModuleClient} from '@shipfox/api-auth-dto/inter-module';\nimport type {ProjectsModuleClient} from '@shipfox/api-projects-dto/inter-module';\nimport type {RunnersInterModuleClient} from '@shipfox/api-runners-dto/inter-module';\nimport {\n WORKSPACES_INVITATION_SEND_REQUESTED,\n type WorkspacesEventMap,\n workspacesEventSchemas,\n} from '@shipfox/api-workspaces-dto';\nimport type {ShipfoxModule} from '@shipfox/node-module';\nimport {subscriberFactory} from '@shipfox/node-module';\nimport {db, migrationsPath, workspacesOutbox} from '#db/index.js';\nimport {registerWorkspacesServiceMetrics} from '#metrics/index.js';\nimport {workspacesE2eRoutes} from '#presentation/e2eRoutes/index.js';\nimport {createWorkspacesInterModulePresentation} from '#presentation/inter-module.js';\nimport {createWorkspacesRoutes, workspacesRoutes} from '#presentation/routes/index.js';\nimport {onInvitationSendRequested} from '#presentation/subscribers/index.js';\n\nexport type {Invitation} from '#core/entities/invitation.js';\nexport type {Membership} from '#core/entities/membership.js';\nexport type {Workspace, WorkspaceStatus} from '#core/entities/workspace.js';\nexport {\n InvitationEmailMismatchError,\n TokenAlreadyUsedError,\n TokenExpiredError,\n TokenInvalidError,\n WorkspaceNotFoundError,\n} from '#core/errors.js';\nexport {\n acceptWorkspaceInvitation,\n peekInvitationByRawToken,\n reconcileWorkspaceInvitationAcceptance,\n type WorkspaceInvitationReconciliation,\n} from '#core/invitations.js';\nexport {type EnsureMembershipParams, ensureMembership} from '#core/memberships.js';\nexport {getWorkspace, requireWorkspaceMembership} from '#core/workspaces.js';\nexport {db, migrationsPath} from '#db/index.js';\nexport {listMembershipsByUser} from '#db/memberships.js';\nexport {createWorkspacesRoutes, workspacesRoutes as routes} from '#presentation/routes/index.js';\n\nconst subscriber = subscriberFactory<WorkspacesEventMap>();\n\nexport interface WorkspacesModuleOptions {\n auth: AuthInterModuleClient;\n projects: ProjectsModuleClient;\n runners: RunnersInterModuleClient;\n}\n\nexport function createWorkspacesModule(options: WorkspacesModuleOptions): ShipfoxModule {\n return {\n name: 'workspaces',\n database: {db, migrationsPath, databaseNamespace: 'workspaces'},\n routes: createWorkspacesRoutes(options),\n e2eRoutes: [workspacesE2eRoutes],\n publishers: [\n {name: 'workspaces', table: workspacesOutbox, db, eventSchemas: workspacesEventSchemas},\n ],\n subscribers: [subscriber(WORKSPACES_INVITATION_SEND_REQUESTED, onInvitationSendRequested)],\n metrics: registerWorkspacesServiceMetrics,\n interModulePresentations: [createWorkspacesInterModulePresentation()],\n };\n}\n\n/** @deprecated Use createWorkspacesModule from the application composition root. */\nexport const workspacesModule: ShipfoxModule = {\n name: 'workspaces',\n database: {db, migrationsPath, databaseNamespace: 'workspaces'},\n routes: workspacesRoutes,\n e2eRoutes: [workspacesE2eRoutes],\n publishers: [\n {name: 'workspaces', table: workspacesOutbox, db, eventSchemas: workspacesEventSchemas},\n ],\n subscribers: [subscriber(WORKSPACES_INVITATION_SEND_REQUESTED, onInvitationSendRequested)],\n metrics: registerWorkspacesServiceMetrics,\n interModulePresentations: [createWorkspacesInterModulePresentation()],\n};\n"],"names":["WORKSPACES_INVITATION_SEND_REQUESTED","workspacesEventSchemas","subscriberFactory","db","migrationsPath","workspacesOutbox","registerWorkspacesServiceMetrics","workspacesE2eRoutes","createWorkspacesInterModulePresentation","createWorkspacesRoutes","workspacesRoutes","onInvitationSendRequested","InvitationEmailMismatchError","TokenAlreadyUsedError","TokenExpiredError","TokenInvalidError","WorkspaceNotFoundError","acceptWorkspaceInvitation","peekInvitationByRawToken","reconcileWorkspaceInvitationAcceptance","ensureMembership","getWorkspace","requireWorkspaceMembership","listMembershipsByUser","routes","subscriber","createWorkspacesModule","options","name","database","databaseNamespace","e2eRoutes","publishers","table","eventSchemas","subscribers","metrics","interModulePresentations","workspacesModule"],"mappings":"AAGA,SACEA,oCAAoC,EAEpCC,sBAAsB,QACjB,8BAA8B;AAErC,SAAQC,iBAAiB,QAAO,uBAAuB;AACvD,SAAQC,EAAE,EAAEC,cAAc,EAAEC,gBAAgB,QAAO,eAAe;AAClE,SAAQC,gCAAgC,QAAO,oBAAoB;AACnE,SAAQC,mBAAmB,QAAO,mCAAmC;AACrE,SAAQC,uCAAuC,QAAO,gCAAgC;AACtF,SAAQC,sBAAsB,EAAEC,gBAAgB,QAAO,gCAAgC;AACvF,SAAQC,yBAAyB,QAAO,qCAAqC;AAK7E,SACEC,4BAA4B,EAC5BC,qBAAqB,EACrBC,iBAAiB,EACjBC,iBAAiB,EACjBC,sBAAsB,QACjB,kBAAkB;AACzB,SACEC,yBAAyB,EACzBC,wBAAwB,EACxBC,sCAAsC,QAEjC,uBAAuB;AAC9B,SAAqCC,gBAAgB,QAAO,uBAAuB;AACnF,SAAQC,YAAY,EAAEC,0BAA0B,QAAO,sBAAsB;AAC7E,SAAQnB,EAAE,EAAEC,cAAc,QAAO,eAAe;AAChD,SAAQmB,qBAAqB,QAAO,qBAAqB;AACzD,SAAQd,sBAAsB,EAAEC,oBAAoBc,MAAM,QAAO,gCAAgC;AAEjG,MAAMC,aAAavB;AAQnB,OAAO,SAASwB,uBAAuBC,OAAgC;IACrE,OAAO;QACLC,MAAM;QACNC,UAAU;YAAC1B;YAAIC;YAAgB0B,mBAAmB;QAAY;QAC9DN,QAAQf,uBAAuBkB;QAC/BI,WAAW;YAACxB;SAAoB;QAChCyB,YAAY;YACV;gBAACJ,MAAM;gBAAcK,OAAO5B;gBAAkBF;gBAAI+B,cAAcjC;YAAsB;SACvF;QACDkC,aAAa;YAACV,WAAWzB,sCAAsCW;SAA2B;QAC1FyB,SAAS9B;QACT+B,0BAA0B;YAAC7B;SAA0C;IACvE;AACF;AAEA,kFAAkF,GAClF,OAAO,MAAM8B,mBAAkC;IAC7CV,MAAM;IACNC,UAAU;QAAC1B;QAAIC;QAAgB0B,mBAAmB;IAAY;IAC9DN,QAAQd;IACRqB,WAAW;QAACxB;KAAoB;IAChCyB,YAAY;QACV;YAACJ,MAAM;YAAcK,OAAO5B;YAAkBF;YAAI+B,cAAcjC;QAAsB;KACvF;IACDkC,aAAa;QAACV,WAAWzB,sCAAsCW;KAA2B;IAC1FyB,SAAS9B;IACT+B,0BAA0B;QAAC7B;KAA0C;AACvE,EAAE"}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["import type {AuthInterModuleClient} from '@shipfox/api-auth-dto/inter-module';\nimport {administrationActionEventSchemas} from '@shipfox/api-common-dto';\nimport type {ProjectsModuleClient} from '@shipfox/api-projects-dto/inter-module';\nimport type {RunnersInterModuleClient} from '@shipfox/api-runners-dto/inter-module';\nimport {\n WORKSPACES_INVITATION_SEND_REQUESTED,\n type WorkspacesEventMap,\n workspacesEventSchemas,\n} from '@shipfox/api-workspaces-dto';\nimport type {ShipfoxModule} from '@shipfox/node-module';\nimport {subscriberFactory} from '@shipfox/node-module';\nimport {db, migrationsPath, workspacesOutbox} from '#db/index.js';\nimport {registerWorkspacesServiceMetrics} from '#metrics/index.js';\nimport {workspacesE2eRoutes} from '#presentation/e2eRoutes/index.js';\nimport {createWorkspacesInterModulePresentation} from '#presentation/inter-module.js';\nimport {createWorkspacesRoutes, workspacesRoutes} from '#presentation/routes/index.js';\nimport {onInvitationSendRequested} from '#presentation/subscribers/index.js';\n\nexport type {Invitation} from '#core/entities/invitation.js';\nexport type {Membership} from '#core/entities/membership.js';\nexport type {Workspace, WorkspaceStatus} from '#core/entities/workspace.js';\nexport {\n InvitationEmailMismatchError,\n TokenAlreadyUsedError,\n TokenExpiredError,\n TokenInvalidError,\n WorkspaceNotFoundError,\n} from '#core/errors.js';\nexport {\n acceptWorkspaceInvitation,\n peekInvitationByRawToken,\n reconcileWorkspaceInvitationAcceptance,\n type WorkspaceInvitationReconciliation,\n} from '#core/invitations.js';\nexport {type EnsureMembershipParams, ensureMembership} from '#core/memberships.js';\nexport {getWorkspace, requireWorkspaceMembership} from '#core/workspaces.js';\nexport {db, migrationsPath} from '#db/index.js';\nexport {listMembershipsByUser} from '#db/memberships.js';\nexport {createWorkspacesRoutes, workspacesRoutes as routes} from '#presentation/routes/index.js';\n\nconst subscriber = subscriberFactory<WorkspacesEventMap>();\nconst workspacesPublisherEventSchemas = {\n ...workspacesEventSchemas,\n ...administrationActionEventSchemas,\n};\n\nexport interface WorkspacesModuleOptions {\n auth: AuthInterModuleClient;\n projects: ProjectsModuleClient;\n runners: RunnersInterModuleClient;\n}\n\nexport function createWorkspacesModule(options: WorkspacesModuleOptions): ShipfoxModule {\n return {\n name: 'workspaces',\n database: {db, migrationsPath, databaseNamespace: 'workspaces'},\n routes: createWorkspacesRoutes(options),\n e2eRoutes: [workspacesE2eRoutes],\n publishers: [\n {\n name: 'workspaces',\n table: workspacesOutbox,\n db,\n eventSchemas: workspacesPublisherEventSchemas,\n },\n ],\n subscribers: [subscriber(WORKSPACES_INVITATION_SEND_REQUESTED, onInvitationSendRequested)],\n metrics: registerWorkspacesServiceMetrics,\n interModulePresentations: [createWorkspacesInterModulePresentation()],\n };\n}\n\n/** @deprecated Use createWorkspacesModule from the application composition root. */\nexport const workspacesModule: ShipfoxModule = {\n name: 'workspaces',\n database: {db, migrationsPath, databaseNamespace: 'workspaces'},\n routes: workspacesRoutes,\n e2eRoutes: [workspacesE2eRoutes],\n publishers: [\n {\n name: 'workspaces',\n table: workspacesOutbox,\n db,\n eventSchemas: workspacesPublisherEventSchemas,\n },\n ],\n subscribers: [subscriber(WORKSPACES_INVITATION_SEND_REQUESTED, onInvitationSendRequested)],\n metrics: registerWorkspacesServiceMetrics,\n interModulePresentations: [createWorkspacesInterModulePresentation()],\n};\n"],"names":["administrationActionEventSchemas","WORKSPACES_INVITATION_SEND_REQUESTED","workspacesEventSchemas","subscriberFactory","db","migrationsPath","workspacesOutbox","registerWorkspacesServiceMetrics","workspacesE2eRoutes","createWorkspacesInterModulePresentation","createWorkspacesRoutes","workspacesRoutes","onInvitationSendRequested","InvitationEmailMismatchError","TokenAlreadyUsedError","TokenExpiredError","TokenInvalidError","WorkspaceNotFoundError","acceptWorkspaceInvitation","peekInvitationByRawToken","reconcileWorkspaceInvitationAcceptance","ensureMembership","getWorkspace","requireWorkspaceMembership","listMembershipsByUser","routes","subscriber","workspacesPublisherEventSchemas","createWorkspacesModule","options","name","database","databaseNamespace","e2eRoutes","publishers","table","eventSchemas","subscribers","metrics","interModulePresentations","workspacesModule"],"mappings":"AACA,SAAQA,gCAAgC,QAAO,0BAA0B;AAGzE,SACEC,oCAAoC,EAEpCC,sBAAsB,QACjB,8BAA8B;AAErC,SAAQC,iBAAiB,QAAO,uBAAuB;AACvD,SAAQC,EAAE,EAAEC,cAAc,EAAEC,gBAAgB,QAAO,eAAe;AAClE,SAAQC,gCAAgC,QAAO,oBAAoB;AACnE,SAAQC,mBAAmB,QAAO,mCAAmC;AACrE,SAAQC,uCAAuC,QAAO,gCAAgC;AACtF,SAAQC,sBAAsB,EAAEC,gBAAgB,QAAO,gCAAgC;AACvF,SAAQC,yBAAyB,QAAO,qCAAqC;AAK7E,SACEC,4BAA4B,EAC5BC,qBAAqB,EACrBC,iBAAiB,EACjBC,iBAAiB,EACjBC,sBAAsB,QACjB,kBAAkB;AACzB,SACEC,yBAAyB,EACzBC,wBAAwB,EACxBC,sCAAsC,QAEjC,uBAAuB;AAC9B,SAAqCC,gBAAgB,QAAO,uBAAuB;AACnF,SAAQC,YAAY,EAAEC,0BAA0B,QAAO,sBAAsB;AAC7E,SAAQnB,EAAE,EAAEC,cAAc,QAAO,eAAe;AAChD,SAAQmB,qBAAqB,QAAO,qBAAqB;AACzD,SAAQd,sBAAsB,EAAEC,oBAAoBc,MAAM,QAAO,gCAAgC;AAEjG,MAAMC,aAAavB;AACnB,MAAMwB,kCAAkC;IACtC,GAAGzB,sBAAsB;IACzB,GAAGF,gCAAgC;AACrC;AAQA,OAAO,SAAS4B,uBAAuBC,OAAgC;IACrE,OAAO;QACLC,MAAM;QACNC,UAAU;YAAC3B;YAAIC;YAAgB2B,mBAAmB;QAAY;QAC9DP,QAAQf,uBAAuBmB;QAC/BI,WAAW;YAACzB;SAAoB;QAChC0B,YAAY;YACV;gBACEJ,MAAM;gBACNK,OAAO7B;gBACPF;gBACAgC,cAAcT;YAChB;SACD;QACDU,aAAa;YAACX,WAAWzB,sCAAsCW;SAA2B;QAC1F0B,SAAS/B;QACTgC,0BAA0B;YAAC9B;SAA0C;IACvE;AACF;AAEA,kFAAkF,GAClF,OAAO,MAAM+B,mBAAkC;IAC7CV,MAAM;IACNC,UAAU;QAAC3B;QAAIC;QAAgB2B,mBAAmB;IAAY;IAC9DP,QAAQd;IACRsB,WAAW;QAACzB;KAAoB;IAChC0B,YAAY;QACV;YACEJ,MAAM;YACNK,OAAO7B;YACPF;YACAgC,cAAcT;QAChB;KACD;IACDU,aAAa;QAACX,WAAWzB,sCAAsCW;KAA2B;IAC1F0B,SAAS/B;IACTgC,0BAA0B;QAAC9B;KAA0C;AACvE,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"file":"admin-workspaces.d.ts","sourceRoot":"","sources":["../../../src/presentation/routes/admin-workspaces.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,qBAAqB,EAE3B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,wCAAwC,CAAC;AACjF,OAAO,KAAK,EAAC,wBAAwB,EAAC,MAAM,uCAAuC,CAAC;AAOpF,OAAO,EAA2B,KAAK,UAAU,EAAC,MAAM,uBAAuB,CAAC;AAmBhF,wBAAgB,2BAA2B,CAAC,MAAM,EAAE;IAClD,IAAI,EAAE,qBAAqB,CAAC;IAC5B,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,OAAO,EAAE,wBAAwB,CAAC;CACnC,GAAG,UAAU,CAwDb"}
1
+ {"version":3,"file":"admin-workspaces.d.ts","sourceRoot":"","sources":["../../../src/presentation/routes/admin-workspaces.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,qBAAqB,EAE3B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,wCAAwC,CAAC;AACjF,OAAO,KAAK,EAAC,wBAAwB,EAAC,MAAM,uCAAuC,CAAC;AASpF,OAAO,EAA2B,KAAK,UAAU,EAAC,MAAM,uBAAuB,CAAC;AA6GhF,wBAAgB,2BAA2B,CAAC,MAAM,EAAE;IAClD,IAAI,EAAE,qBAAqB,CAAC;IAC5B,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,OAAO,EAAE,wBAAwB,CAAC;CACnC,GAAG,UAAU,CA8Fb"}