@tearleads/client-sdk 0.1.39 → 0.1.40

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 (38) hide show
  1. package/client/organizations/organizationGroupPresentation.d.ts +1 -12
  2. package/data/persistence/organizations/organizationReadModelGrantPersistence.js +2 -1
  3. package/data/persistence/organizations/organizationReadModelGrantPersistence.js.map +1 -1
  4. package/data/persistence/organizations/organizationReadModelMemberLoad.d.ts +9 -0
  5. package/data/persistence/organizations/organizationReadModelMemberLoad.js +29 -21
  6. package/data/persistence/organizations/organizationReadModelMemberLoad.js.map +1 -1
  7. package/data/persistence/organizations/organizationReadModelMembershipPersistence.js +91 -46
  8. package/data/persistence/organizations/organizationReadModelMembershipPersistence.js.map +1 -1
  9. package/data/persistence/organizations/organizationReadModelPersistence.js +95 -73
  10. package/data/persistence/organizations/organizationReadModelPersistence.js.map +1 -1
  11. package/data/persistence/organizations/organizationReadModelProjection.js +78 -89
  12. package/data/persistence/organizations/organizationReadModelProjection.js.map +1 -1
  13. package/data/persistence/organizations/organizationReadModelPurge.js +14 -15
  14. package/data/persistence/organizations/organizationReadModelPurge.js.map +1 -1
  15. package/data/sqlite/organizationReadModelSchema.js +23 -28
  16. package/data/sqlite/organizationReadModelSchema.js.map +1 -1
  17. package/data/sqlite/organizationReadModelTableRegistry.d.ts +116 -263
  18. package/data/sqlite/organizationReadModelTableRegistry.js +10 -7
  19. package/data/sqlite/organizationReadModelTableRegistry.js.map +1 -1
  20. package/data/sqlite/schema.d.ts +116 -263
  21. package/data/sqlite/sqliteBindBudget.js +30 -0
  22. package/data/sqlite/sqliteBindBudget.js.map +1 -0
  23. package/internal/validators/operation/organizations.d.ts +0 -16
  24. package/internal/validators/response/index.d.ts +1 -1
  25. package/internal/validators/response/index.js.map +1 -1
  26. package/internal/validators/response/organizationReadModel.d.ts +10 -48
  27. package/internal/validators/response/organizationReadModel.js +9 -1
  28. package/internal/validators/response/organizationReadModel.js.map +1 -1
  29. package/package.json +1 -1
  30. package/workflows/organizations/readModel.d.ts +8 -3
  31. package/workflows/organizations/readModel.js.map +1 -1
  32. package/workflows/organizations/readModelProjection.d.ts +2 -12
  33. package/workflows/organizations/readModelProjection.js +1 -1
  34. package/workflows/organizations/readModelProjection.js.map +1 -1
  35. package/workflows/sync/remoteReset.js +1 -3
  36. package/workflows/sync/remoteReset.js.map +1 -1
  37. package/data/persistence/organizations/organizationReadModelPolicyHeadPersistence.js +0 -64
  38. package/data/persistence/organizations/organizationReadModelPolicyHeadPersistence.js.map +0 -1
@@ -1,64 +0,0 @@
1
- import { and, eq } from "drizzle-orm";
2
- import { organizationReadModelPolicyHeads } from "../../sqlite/organizationReadModelSchema.js";
3
- const POLICY_HEAD_INSERT_BATCH_SIZE = 100;
4
- function toPolicyHeadRow(input) {
5
- return {
6
- organizationId: input.organizationId,
7
- principalType: input.principalType,
8
- principalId: input.principalId,
9
- stateHash: input.currentState.stateHash,
10
- stateVersion: input.currentState.version,
11
- keyEpoch: input.currentState.keyEpoch,
12
- keyFingerprint: input.currentState.keyFingerprint,
13
- memberCount: input.currentState.memberCount,
14
- };
15
- }
16
- export async function replaceGroupPolicyHeads(input) {
17
- await input.tx
18
- .delete(organizationReadModelPolicyHeads)
19
- .where(and(eq(organizationReadModelPolicyHeads.organizationId, input.organizationId), eq(organizationReadModelPolicyHeads.principalType, "group")))
20
- .run();
21
- const rows = input.groups.groups.flatMap((group) => group.currentState
22
- ? [
23
- toPolicyHeadRow({
24
- currentState: group.currentState,
25
- organizationId: input.organizationId,
26
- principalId: group.groupId,
27
- principalType: "group",
28
- }),
29
- ]
30
- : []);
31
- for (let index = 0; index < rows.length; index += POLICY_HEAD_INSERT_BATCH_SIZE) {
32
- await input.tx
33
- .insert(organizationReadModelPolicyHeads)
34
- .values(rows.slice(index, index + POLICY_HEAD_INSERT_BATCH_SIZE))
35
- .run();
36
- }
37
- }
38
- export async function applyOrganizationPolicyLane(input) {
39
- const row = toPolicyHeadRow({
40
- currentState: input.organizationPolicy.currentState,
41
- organizationId: input.organizationId,
42
- principalId: input.organizationId,
43
- principalType: "organization",
44
- });
45
- await input.tx
46
- .insert(organizationReadModelPolicyHeads)
47
- .values(row)
48
- .onConflictDoUpdate({
49
- target: [
50
- organizationReadModelPolicyHeads.organizationId,
51
- organizationReadModelPolicyHeads.principalType,
52
- organizationReadModelPolicyHeads.principalId,
53
- ],
54
- set: {
55
- stateHash: row.stateHash,
56
- stateVersion: row.stateVersion,
57
- keyEpoch: row.keyEpoch,
58
- keyFingerprint: row.keyFingerprint,
59
- memberCount: row.memberCount,
60
- },
61
- })
62
- .run();
63
- }
64
- //# sourceMappingURL=organizationReadModelPolicyHeadPersistence.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"organizationReadModelPolicyHeadPersistence.js","sourceRoot":"","sources":["organizationReadModelPolicyHeadPersistence.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,gCAAgC,EAAE,MAAM,0CAA0C,CAAC;AAI5F,MAAM,6BAA6B,GAAG,GAAG,CAAC;AAE1C,SAAS,eAAe,CAAC,KAKxB;IACC,OAAO;QACL,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC,SAAS;QACvC,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,OAAO;QACxC,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,QAAQ;QACrC,cAAc,EAAE,KAAK,CAAC,YAAY,CAAC,cAAc;QACjD,WAAW,EAAE,KAAK,CAAC,YAAY,CAAC,WAAW;KAC5C,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,KAI7C;IACC,MAAM,KAAK,CAAC,EAAE;SACX,MAAM,CAAC,gCAAgC,CAAC;SACxC,KAAK,CACJ,GAAG,CACD,EAAE,CACA,gCAAgC,CAAC,cAAc,EAC/C,KAAK,CAAC,cAAc,CACrB,EACD,EAAE,CAAC,gCAAgC,CAAC,aAAa,EAAE,OAAO,CAAC,CAC5D,CACF;SACA,GAAG,EAAE,CAAC;IAET,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CACjD,KAAK,CAAC,YAAY;QAChB,CAAC,CAAC;YACE,eAAe,CAAC;gBACd,YAAY,EAAE,KAAK,CAAC,YAAY;gBAChC,cAAc,EAAE,KAAK,CAAC,cAAc;gBACpC,WAAW,EAAE,KAAK,CAAC,OAAO;gBAC1B,aAAa,EAAE,OAAO;aACvB,CAAC;SACH;QACH,CAAC,CAAC,EAAE,CACP,CAAC;IACF,KACE,IAAI,KAAK,GAAG,CAAC,EACb,KAAK,GAAG,IAAI,CAAC,MAAM,EACnB,KAAK,IAAI,6BAA6B,EACtC,CAAC;QACD,MAAM,KAAK,CAAC,EAAE;aACX,MAAM,CAAC,gCAAgC,CAAC;aACxC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,6BAA6B,CAAC,CAAC;aAChE,GAAG,EAAE,CAAC;IACX,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,KAIjD;IACC,MAAM,GAAG,GAAG,eAAe,CAAC;QAC1B,YAAY,EAAE,KAAK,CAAC,kBAAkB,CAAC,YAAY;QACnD,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,WAAW,EAAE,KAAK,CAAC,cAAc;QACjC,aAAa,EAAE,cAAc;KAC9B,CAAC,CAAC;IACH,MAAM,KAAK,CAAC,EAAE;SACX,MAAM,CAAC,gCAAgC,CAAC;SACxC,MAAM,CAAC,GAAG,CAAC;SACX,kBAAkB,CAAC;QAClB,MAAM,EAAE;YACN,gCAAgC,CAAC,cAAc;YAC/C,gCAAgC,CAAC,aAAa;YAC9C,gCAAgC,CAAC,WAAW;SAC7C;QACD,GAAG,EAAE;YACH,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,YAAY,EAAE,GAAG,CAAC,YAAY;YAC9B,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,cAAc,EAAE,GAAG,CAAC,cAAc;YAClC,WAAW,EAAE,GAAG,CAAC,WAAW;SAC7B;KACF,CAAC;SACD,GAAG,EAAE,CAAC;AACX,CAAC","sourcesContent":["import type {\n ListOrganizationGroupsResponse,\n OrganizationGroupCurrentStateResponse,\n OrganizationReadModelOrganizationPolicyResponse,\n} from \"@tearleads/validators/response\";\nimport { and, eq } from \"drizzle-orm\";\nimport { organizationReadModelPolicyHeads } from \"../../sqlite/organizationReadModelSchema\";\nimport type { ClientSQLiteTransactionScope } from \"../../sqlite/sqlitePersistenceRuntime\";\nimport type { OrganizationReadModelPolicyHead } from \"./organizationReadModelProjection\";\n\nconst POLICY_HEAD_INSERT_BATCH_SIZE = 100;\n\nfunction toPolicyHeadRow(input: {\n readonly currentState: OrganizationGroupCurrentStateResponse;\n readonly organizationId: string;\n readonly principalId: string;\n readonly principalType: OrganizationReadModelPolicyHead[\"principalType\"];\n}) {\n return {\n organizationId: input.organizationId,\n principalType: input.principalType,\n principalId: input.principalId,\n stateHash: input.currentState.stateHash,\n stateVersion: input.currentState.version,\n keyEpoch: input.currentState.keyEpoch,\n keyFingerprint: input.currentState.keyFingerprint,\n memberCount: input.currentState.memberCount,\n };\n}\n\nexport async function replaceGroupPolicyHeads(input: {\n readonly groups: ListOrganizationGroupsResponse;\n readonly organizationId: string;\n readonly tx: ClientSQLiteTransactionScope;\n}): Promise<void> {\n await input.tx\n .delete(organizationReadModelPolicyHeads)\n .where(\n and(\n eq(\n organizationReadModelPolicyHeads.organizationId,\n input.organizationId,\n ),\n eq(organizationReadModelPolicyHeads.principalType, \"group\"),\n ),\n )\n .run();\n\n const rows = input.groups.groups.flatMap((group) =>\n group.currentState\n ? [\n toPolicyHeadRow({\n currentState: group.currentState,\n organizationId: input.organizationId,\n principalId: group.groupId,\n principalType: \"group\",\n }),\n ]\n : [],\n );\n for (\n let index = 0;\n index < rows.length;\n index += POLICY_HEAD_INSERT_BATCH_SIZE\n ) {\n await input.tx\n .insert(organizationReadModelPolicyHeads)\n .values(rows.slice(index, index + POLICY_HEAD_INSERT_BATCH_SIZE))\n .run();\n }\n}\n\nexport async function applyOrganizationPolicyLane(input: {\n readonly organizationId: string;\n readonly organizationPolicy: OrganizationReadModelOrganizationPolicyResponse;\n readonly tx: ClientSQLiteTransactionScope;\n}): Promise<void> {\n const row = toPolicyHeadRow({\n currentState: input.organizationPolicy.currentState,\n organizationId: input.organizationId,\n principalId: input.organizationId,\n principalType: \"organization\",\n });\n await input.tx\n .insert(organizationReadModelPolicyHeads)\n .values(row)\n .onConflictDoUpdate({\n target: [\n organizationReadModelPolicyHeads.organizationId,\n organizationReadModelPolicyHeads.principalType,\n organizationReadModelPolicyHeads.principalId,\n ],\n set: {\n stateHash: row.stateHash,\n stateVersion: row.stateVersion,\n keyEpoch: row.keyEpoch,\n keyFingerprint: row.keyFingerprint,\n memberCount: row.memberCount,\n },\n })\n .run();\n}\n"]}