@atproto/ozone 0.1.50 → 0.1.51

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 (114) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/api/index.d.ts.map +1 -1
  3. package/dist/api/index.js +12 -0
  4. package/dist/api/index.js.map +1 -1
  5. package/dist/api/set/addValues.d.ts +4 -0
  6. package/dist/api/set/addValues.d.ts.map +1 -0
  7. package/dist/api/set/addValues.js +24 -0
  8. package/dist/api/set/addValues.js.map +1 -0
  9. package/dist/api/set/deleteSet.d.ts +4 -0
  10. package/dist/api/set/deleteSet.d.ts.map +1 -0
  11. package/dist/api/set/deleteSet.js +28 -0
  12. package/dist/api/set/deleteSet.js.map +1 -0
  13. package/dist/api/set/deleteValues.d.ts +4 -0
  14. package/dist/api/set/deleteValues.d.ts.map +1 -0
  15. package/dist/api/set/deleteValues.js +24 -0
  16. package/dist/api/set/deleteValues.js.map +1 -0
  17. package/dist/api/set/getValues.d.ts +4 -0
  18. package/dist/api/set/getValues.d.ts.map +1 -0
  19. package/dist/api/set/getValues.js +35 -0
  20. package/dist/api/set/getValues.js.map +1 -0
  21. package/dist/api/set/querySets.d.ts +4 -0
  22. package/dist/api/set/querySets.d.ts.map +1 -0
  23. package/dist/api/set/querySets.js +33 -0
  24. package/dist/api/set/querySets.js.map +1 -0
  25. package/dist/api/set/upsertSet.d.ts +4 -0
  26. package/dist/api/set/upsertSet.d.ts.map +1 -0
  27. package/dist/api/set/upsertSet.js +32 -0
  28. package/dist/api/set/upsertSet.js.map +1 -0
  29. package/dist/context.d.ts +3 -0
  30. package/dist/context.d.ts.map +1 -1
  31. package/dist/context.js +6 -0
  32. package/dist/context.js.map +1 -1
  33. package/dist/db/migrations/20241008T205730722Z-sets.d.ts +4 -0
  34. package/dist/db/migrations/20241008T205730722Z-sets.d.ts.map +1 -0
  35. package/dist/db/migrations/20241008T205730722Z-sets.js +46 -0
  36. package/dist/db/migrations/20241008T205730722Z-sets.js.map +1 -0
  37. package/dist/db/migrations/index.d.ts +1 -0
  38. package/dist/db/migrations/index.d.ts.map +1 -1
  39. package/dist/db/migrations/index.js +2 -1
  40. package/dist/db/migrations/index.js.map +1 -1
  41. package/dist/db/pagination.d.ts +1 -1
  42. package/dist/db/pagination.d.ts.map +1 -1
  43. package/dist/db/schema/index.d.ts +2 -1
  44. package/dist/db/schema/index.d.ts.map +1 -1
  45. package/dist/db/schema/ozone_set.d.ts +21 -0
  46. package/dist/db/schema/ozone_set.d.ts.map +1 -0
  47. package/dist/db/schema/ozone_set.js +6 -0
  48. package/dist/db/schema/ozone_set.js.map +1 -0
  49. package/dist/lexicon/index.d.ts +17 -0
  50. package/dist/lexicon/index.d.ts.map +1 -1
  51. package/dist/lexicon/index.js +44 -1
  52. package/dist/lexicon/index.js.map +1 -1
  53. package/dist/lexicon/lexicons.d.ts +292 -0
  54. package/dist/lexicon/lexicons.d.ts.map +1 -1
  55. package/dist/lexicon/lexicons.js +298 -0
  56. package/dist/lexicon/lexicons.js.map +1 -1
  57. package/dist/lexicon/types/tools/ozone/set/addValues.d.ts +32 -0
  58. package/dist/lexicon/types/tools/ozone/set/addValues.d.ts.map +1 -0
  59. package/dist/lexicon/types/tools/ozone/set/addValues.js +3 -0
  60. package/dist/lexicon/types/tools/ozone/set/addValues.js.map +1 -0
  61. package/dist/lexicon/types/tools/ozone/set/defs.d.ts +22 -0
  62. package/dist/lexicon/types/tools/ozone/set/defs.d.ts.map +1 -0
  63. package/dist/lexicon/types/tools/ozone/set/defs.js +24 -0
  64. package/dist/lexicon/types/tools/ozone/set/defs.js.map +1 -0
  65. package/dist/lexicon/types/tools/ozone/set/deleteSet.d.ts +41 -0
  66. package/dist/lexicon/types/tools/ozone/set/deleteSet.d.ts.map +1 -0
  67. package/dist/lexicon/types/tools/ozone/set/deleteSet.js +3 -0
  68. package/dist/lexicon/types/tools/ozone/set/deleteSet.js.map +1 -0
  69. package/dist/lexicon/types/tools/ozone/set/deleteValues.d.ts +33 -0
  70. package/dist/lexicon/types/tools/ozone/set/deleteValues.d.ts.map +1 -0
  71. package/dist/lexicon/types/tools/ozone/set/deleteValues.js +3 -0
  72. package/dist/lexicon/types/tools/ozone/set/deleteValues.js.map +1 -0
  73. package/dist/lexicon/types/tools/ozone/set/getValues.d.ts +41 -0
  74. package/dist/lexicon/types/tools/ozone/set/getValues.d.ts.map +1 -0
  75. package/dist/lexicon/types/tools/ozone/set/getValues.js +3 -0
  76. package/dist/lexicon/types/tools/ozone/set/getValues.js.map +1 -0
  77. package/dist/lexicon/types/tools/ozone/set/querySets.d.ts +42 -0
  78. package/dist/lexicon/types/tools/ozone/set/querySets.d.ts.map +1 -0
  79. package/dist/lexicon/types/tools/ozone/set/querySets.js +3 -0
  80. package/dist/lexicon/types/tools/ozone/set/querySets.js.map +1 -0
  81. package/dist/lexicon/types/tools/ozone/set/upsertSet.d.ts +35 -0
  82. package/dist/lexicon/types/tools/ozone/set/upsertSet.d.ts.map +1 -0
  83. package/dist/lexicon/types/tools/ozone/set/upsertSet.js +3 -0
  84. package/dist/lexicon/types/tools/ozone/set/upsertSet.js.map +1 -0
  85. package/dist/set/service.d.ts +46 -0
  86. package/dist/set/service.d.ts.map +1 -0
  87. package/dist/set/service.js +166 -0
  88. package/dist/set/service.js.map +1 -0
  89. package/package.json +3 -3
  90. package/src/api/index.ts +12 -0
  91. package/src/api/set/addValues.ts +28 -0
  92. package/src/api/set/deleteSet.ts +34 -0
  93. package/src/api/set/deleteValues.ts +31 -0
  94. package/src/api/set/getValues.ts +42 -0
  95. package/src/api/set/querySets.ts +36 -0
  96. package/src/api/set/upsertSet.ts +38 -0
  97. package/src/context.ts +8 -0
  98. package/src/db/migrations/20241008T205730722Z-sets.ts +53 -0
  99. package/src/db/migrations/index.ts +1 -0
  100. package/src/db/pagination.ts +1 -1
  101. package/src/db/schema/index.ts +2 -0
  102. package/src/db/schema/ozone_set.ts +24 -0
  103. package/src/lexicon/index.ts +82 -0
  104. package/src/lexicon/lexicons.ts +301 -0
  105. package/src/lexicon/types/tools/ozone/set/addValues.ts +41 -0
  106. package/src/lexicon/types/tools/ozone/set/defs.ts +44 -0
  107. package/src/lexicon/types/tools/ozone/set/deleteSet.ts +50 -0
  108. package/src/lexicon/types/tools/ozone/set/deleteValues.ts +42 -0
  109. package/src/lexicon/types/tools/ozone/set/getValues.ts +51 -0
  110. package/src/lexicon/types/tools/ozone/set/querySets.ts +52 -0
  111. package/src/lexicon/types/tools/ozone/set/upsertSet.ts +43 -0
  112. package/src/set/service.ts +227 -0
  113. package/tests/__snapshots__/sets.test.ts.snap +46 -0
  114. package/tests/sets.test.ts +246 -0
@@ -0,0 +1,32 @@
1
+ /**
2
+ * GENERATED CODE - DO NOT MODIFY
3
+ */
4
+ import express from 'express';
5
+ import { HandlerAuth } from '@atproto/xrpc-server';
6
+ export interface QueryParams {
7
+ }
8
+ export interface InputSchema {
9
+ /** Name of the set to add values to */
10
+ name: string;
11
+ /** Array of string values to add to the set */
12
+ values: string[];
13
+ [k: string]: unknown;
14
+ }
15
+ export interface HandlerInput {
16
+ encoding: 'application/json';
17
+ body: InputSchema;
18
+ }
19
+ export interface HandlerError {
20
+ status: number;
21
+ message?: string;
22
+ }
23
+ export type HandlerOutput = HandlerError | void;
24
+ export type HandlerReqCtx<HA extends HandlerAuth = never> = {
25
+ auth: HA;
26
+ params: QueryParams;
27
+ input: HandlerInput;
28
+ req: express.Request;
29
+ res: express.Response;
30
+ };
31
+ export type Handler<HA extends HandlerAuth = never> = (ctx: HandlerReqCtx<HA>) => Promise<HandlerOutput> | HandlerOutput;
32
+ //# sourceMappingURL=addValues.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addValues.d.ts","sourceRoot":"","sources":["../../../../../../src/lexicon/types/tools/ozone/set/addValues.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,OAAO,MAAM,SAAS,CAAA;AAK7B,OAAO,EAAE,WAAW,EAAsB,MAAM,sBAAsB,CAAA;AAEtE,MAAM,WAAW,WAAW;CAAG;AAE/B,MAAM,WAAW,WAAW;IAC1B,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAA;IACZ,+CAA+C;IAC/C,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,kBAAkB,CAAA;IAC5B,IAAI,EAAE,WAAW,CAAA;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,IAAI,CAAA;AAC/C,MAAM,MAAM,aAAa,CAAC,EAAE,SAAS,WAAW,GAAG,KAAK,IAAI;IAC1D,IAAI,EAAE,EAAE,CAAA;IACR,MAAM,EAAE,WAAW,CAAA;IACnB,KAAK,EAAE,YAAY,CAAA;IACnB,GAAG,EAAE,OAAO,CAAC,OAAO,CAAA;IACpB,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAA;CACtB,CAAA;AACD,MAAM,MAAM,OAAO,CAAC,EAAE,SAAS,WAAW,GAAG,KAAK,IAAI,CACpD,GAAG,EAAE,aAAa,CAAC,EAAE,CAAC,KACnB,OAAO,CAAC,aAAa,CAAC,GAAG,aAAa,CAAA"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=addValues.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addValues.js","sourceRoot":"","sources":["../../../../../../src/lexicon/types/tools/ozone/set/addValues.ts"],"names":[],"mappings":""}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * GENERATED CODE - DO NOT MODIFY
3
+ */
4
+ import { ValidationResult } from '@atproto/lexicon';
5
+ export interface Set {
6
+ name: string;
7
+ description?: string;
8
+ [k: string]: unknown;
9
+ }
10
+ export declare function isSet(v: unknown): v is Set;
11
+ export declare function validateSet(v: unknown): ValidationResult;
12
+ export interface SetView {
13
+ name: string;
14
+ description?: string;
15
+ setSize: number;
16
+ createdAt: string;
17
+ updatedAt: string;
18
+ [k: string]: unknown;
19
+ }
20
+ export declare function isSetView(v: unknown): v is SetView;
21
+ export declare function validateSetView(v: unknown): ValidationResult;
22
+ //# sourceMappingURL=defs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defs.d.ts","sourceRoot":"","sources":["../../../../../../src/lexicon/types/tools/ozone/set/defs.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,gBAAgB,EAAW,MAAM,kBAAkB,CAAA;AAK5D,MAAM,WAAW,GAAG;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CACrB;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,GAAG,CAI1C;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAExD;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CACrB;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,OAAO,CAMlD;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAE5D"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateSetView = exports.isSetView = exports.validateSet = exports.isSet = void 0;
4
+ const lexicons_1 = require("../../../../lexicons");
5
+ const util_1 = require("../../../../util");
6
+ function isSet(v) {
7
+ return ((0, util_1.isObj)(v) && (0, util_1.hasProp)(v, '$type') && v.$type === 'tools.ozone.set.defs#set');
8
+ }
9
+ exports.isSet = isSet;
10
+ function validateSet(v) {
11
+ return lexicons_1.lexicons.validate('tools.ozone.set.defs#set', v);
12
+ }
13
+ exports.validateSet = validateSet;
14
+ function isSetView(v) {
15
+ return ((0, util_1.isObj)(v) &&
16
+ (0, util_1.hasProp)(v, '$type') &&
17
+ v.$type === 'tools.ozone.set.defs#setView');
18
+ }
19
+ exports.isSetView = isSetView;
20
+ function validateSetView(v) {
21
+ return lexicons_1.lexicons.validate('tools.ozone.set.defs#setView', v);
22
+ }
23
+ exports.validateSetView = validateSetView;
24
+ //# sourceMappingURL=defs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defs.js","sourceRoot":"","sources":["../../../../../../src/lexicon/types/tools/ozone/set/defs.ts"],"names":[],"mappings":";;;AAIA,mDAA+C;AAC/C,2CAAiD;AASjD,SAAgB,KAAK,CAAC,CAAU;IAC9B,OAAO,CACL,IAAA,YAAK,EAAC,CAAC,CAAC,IAAI,IAAA,cAAO,EAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,0BAA0B,CAC1E,CAAA;AACH,CAAC;AAJD,sBAIC;AAED,SAAgB,WAAW,CAAC,CAAU;IACpC,OAAO,mBAAQ,CAAC,QAAQ,CAAC,0BAA0B,EAAE,CAAC,CAAC,CAAA;AACzD,CAAC;AAFD,kCAEC;AAWD,SAAgB,SAAS,CAAC,CAAU;IAClC,OAAO,CACL,IAAA,YAAK,EAAC,CAAC,CAAC;QACR,IAAA,cAAO,EAAC,CAAC,EAAE,OAAO,CAAC;QACnB,CAAC,CAAC,KAAK,KAAK,8BAA8B,CAC3C,CAAA;AACH,CAAC;AAND,8BAMC;AAED,SAAgB,eAAe,CAAC,CAAU;IACxC,OAAO,mBAAQ,CAAC,QAAQ,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAA;AAC7D,CAAC;AAFD,0CAEC"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * GENERATED CODE - DO NOT MODIFY
3
+ */
4
+ import express from 'express';
5
+ import { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server';
6
+ export interface QueryParams {
7
+ }
8
+ export interface InputSchema {
9
+ /** Name of the set to delete */
10
+ name: string;
11
+ [k: string]: unknown;
12
+ }
13
+ export interface OutputSchema {
14
+ [k: string]: unknown;
15
+ }
16
+ export interface HandlerInput {
17
+ encoding: 'application/json';
18
+ body: InputSchema;
19
+ }
20
+ export interface HandlerSuccess {
21
+ encoding: 'application/json';
22
+ body: OutputSchema;
23
+ headers?: {
24
+ [key: string]: string;
25
+ };
26
+ }
27
+ export interface HandlerError {
28
+ status: number;
29
+ message?: string;
30
+ error?: 'SetNotFound';
31
+ }
32
+ export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough;
33
+ export type HandlerReqCtx<HA extends HandlerAuth = never> = {
34
+ auth: HA;
35
+ params: QueryParams;
36
+ input: HandlerInput;
37
+ req: express.Request;
38
+ res: express.Response;
39
+ };
40
+ export type Handler<HA extends HandlerAuth = never> = (ctx: HandlerReqCtx<HA>) => Promise<HandlerOutput> | HandlerOutput;
41
+ //# sourceMappingURL=deleteSet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deleteSet.d.ts","sourceRoot":"","sources":["../../../../../../src/lexicon/types/tools/ozone/set/deleteSet.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,OAAO,MAAM,SAAS,CAAA;AAK7B,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAEtE,MAAM,WAAW,WAAW;CAAG;AAE/B,MAAM,WAAW,WAAW;IAC1B,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,kBAAkB,CAAA;IAC5B,IAAI,EAAE,WAAW,CAAA;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,kBAAkB,CAAA;IAC5B,IAAI,EAAE,YAAY,CAAA;IAClB,OAAO,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAA;CACpC;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,aAAa,CAAA;CACtB;AAED,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,cAAc,GAAG,kBAAkB,CAAA;AAC9E,MAAM,MAAM,aAAa,CAAC,EAAE,SAAS,WAAW,GAAG,KAAK,IAAI;IAC1D,IAAI,EAAE,EAAE,CAAA;IACR,MAAM,EAAE,WAAW,CAAA;IACnB,KAAK,EAAE,YAAY,CAAA;IACnB,GAAG,EAAE,OAAO,CAAC,OAAO,CAAA;IACpB,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAA;CACtB,CAAA;AACD,MAAM,MAAM,OAAO,CAAC,EAAE,SAAS,WAAW,GAAG,KAAK,IAAI,CACpD,GAAG,EAAE,aAAa,CAAC,EAAE,CAAC,KACnB,OAAO,CAAC,aAAa,CAAC,GAAG,aAAa,CAAA"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=deleteSet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deleteSet.js","sourceRoot":"","sources":["../../../../../../src/lexicon/types/tools/ozone/set/deleteSet.ts"],"names":[],"mappings":""}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * GENERATED CODE - DO NOT MODIFY
3
+ */
4
+ import express from 'express';
5
+ import { HandlerAuth } from '@atproto/xrpc-server';
6
+ export interface QueryParams {
7
+ }
8
+ export interface InputSchema {
9
+ /** Name of the set to delete values from */
10
+ name: string;
11
+ /** Array of string values to delete from the set */
12
+ values: string[];
13
+ [k: string]: unknown;
14
+ }
15
+ export interface HandlerInput {
16
+ encoding: 'application/json';
17
+ body: InputSchema;
18
+ }
19
+ export interface HandlerError {
20
+ status: number;
21
+ message?: string;
22
+ error?: 'SetNotFound';
23
+ }
24
+ export type HandlerOutput = HandlerError | void;
25
+ export type HandlerReqCtx<HA extends HandlerAuth = never> = {
26
+ auth: HA;
27
+ params: QueryParams;
28
+ input: HandlerInput;
29
+ req: express.Request;
30
+ res: express.Response;
31
+ };
32
+ export type Handler<HA extends HandlerAuth = never> = (ctx: HandlerReqCtx<HA>) => Promise<HandlerOutput> | HandlerOutput;
33
+ //# sourceMappingURL=deleteValues.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deleteValues.d.ts","sourceRoot":"","sources":["../../../../../../src/lexicon/types/tools/ozone/set/deleteValues.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,OAAO,MAAM,SAAS,CAAA;AAK7B,OAAO,EAAE,WAAW,EAAsB,MAAM,sBAAsB,CAAA;AAEtE,MAAM,WAAW,WAAW;CAAG;AAE/B,MAAM,WAAW,WAAW;IAC1B,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAA;IACZ,oDAAoD;IACpD,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,kBAAkB,CAAA;IAC5B,IAAI,EAAE,WAAW,CAAA;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,aAAa,CAAA;CACtB;AAED,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,IAAI,CAAA;AAC/C,MAAM,MAAM,aAAa,CAAC,EAAE,SAAS,WAAW,GAAG,KAAK,IAAI;IAC1D,IAAI,EAAE,EAAE,CAAA;IACR,MAAM,EAAE,WAAW,CAAA;IACnB,KAAK,EAAE,YAAY,CAAA;IACnB,GAAG,EAAE,OAAO,CAAC,OAAO,CAAA;IACpB,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAA;CACtB,CAAA;AACD,MAAM,MAAM,OAAO,CAAC,EAAE,SAAS,WAAW,GAAG,KAAK,IAAI,CACpD,GAAG,EAAE,aAAa,CAAC,EAAE,CAAC,KACnB,OAAO,CAAC,aAAa,CAAC,GAAG,aAAa,CAAA"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=deleteValues.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deleteValues.js","sourceRoot":"","sources":["../../../../../../src/lexicon/types/tools/ozone/set/deleteValues.ts"],"names":[],"mappings":""}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * GENERATED CODE - DO NOT MODIFY
3
+ */
4
+ import express from 'express';
5
+ import { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server';
6
+ import * as ToolsOzoneSetDefs from './defs';
7
+ export interface QueryParams {
8
+ name: string;
9
+ limit: number;
10
+ cursor?: string;
11
+ }
12
+ export type InputSchema = undefined;
13
+ export interface OutputSchema {
14
+ set: ToolsOzoneSetDefs.SetView;
15
+ values: string[];
16
+ cursor?: string;
17
+ [k: string]: unknown;
18
+ }
19
+ export type HandlerInput = undefined;
20
+ export interface HandlerSuccess {
21
+ encoding: 'application/json';
22
+ body: OutputSchema;
23
+ headers?: {
24
+ [key: string]: string;
25
+ };
26
+ }
27
+ export interface HandlerError {
28
+ status: number;
29
+ message?: string;
30
+ error?: 'SetNotFound';
31
+ }
32
+ export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough;
33
+ export type HandlerReqCtx<HA extends HandlerAuth = never> = {
34
+ auth: HA;
35
+ params: QueryParams;
36
+ input: HandlerInput;
37
+ req: express.Request;
38
+ res: express.Response;
39
+ };
40
+ export type Handler<HA extends HandlerAuth = never> = (ctx: HandlerReqCtx<HA>) => Promise<HandlerOutput> | HandlerOutput;
41
+ //# sourceMappingURL=getValues.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getValues.d.ts","sourceRoot":"","sources":["../../../../../../src/lexicon/types/tools/ozone/set/getValues.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,OAAO,MAAM,SAAS,CAAA;AAK7B,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACtE,OAAO,KAAK,iBAAiB,MAAM,QAAQ,CAAA;AAE3C,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,MAAM,WAAW,GAAG,SAAS,CAAA;AAEnC,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,iBAAiB,CAAC,OAAO,CAAA;IAC9B,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CACrB;AAED,MAAM,MAAM,YAAY,GAAG,SAAS,CAAA;AAEpC,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,kBAAkB,CAAA;IAC5B,IAAI,EAAE,YAAY,CAAA;IAClB,OAAO,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAA;CACpC;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,aAAa,CAAA;CACtB;AAED,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,cAAc,GAAG,kBAAkB,CAAA;AAC9E,MAAM,MAAM,aAAa,CAAC,EAAE,SAAS,WAAW,GAAG,KAAK,IAAI;IAC1D,IAAI,EAAE,EAAE,CAAA;IACR,MAAM,EAAE,WAAW,CAAA;IACnB,KAAK,EAAE,YAAY,CAAA;IACnB,GAAG,EAAE,OAAO,CAAC,OAAO,CAAA;IACpB,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAA;CACtB,CAAA;AACD,MAAM,MAAM,OAAO,CAAC,EAAE,SAAS,WAAW,GAAG,KAAK,IAAI,CACpD,GAAG,EAAE,aAAa,CAAC,EAAE,CAAC,KACnB,OAAO,CAAC,aAAa,CAAC,GAAG,aAAa,CAAA"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=getValues.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getValues.js","sourceRoot":"","sources":["../../../../../../src/lexicon/types/tools/ozone/set/getValues.ts"],"names":[],"mappings":""}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * GENERATED CODE - DO NOT MODIFY
3
+ */
4
+ import express from 'express';
5
+ import { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server';
6
+ import * as ToolsOzoneSetDefs from './defs';
7
+ export interface QueryParams {
8
+ limit: number;
9
+ cursor?: string;
10
+ namePrefix?: string;
11
+ sortBy: 'name' | 'createdAt' | 'updatedAt';
12
+ /** Defaults to ascending order of name field. */
13
+ sortDirection: 'asc' | 'desc';
14
+ }
15
+ export type InputSchema = undefined;
16
+ export interface OutputSchema {
17
+ sets: ToolsOzoneSetDefs.SetView[];
18
+ cursor?: string;
19
+ [k: string]: unknown;
20
+ }
21
+ export type HandlerInput = undefined;
22
+ export interface HandlerSuccess {
23
+ encoding: 'application/json';
24
+ body: OutputSchema;
25
+ headers?: {
26
+ [key: string]: string;
27
+ };
28
+ }
29
+ export interface HandlerError {
30
+ status: number;
31
+ message?: string;
32
+ }
33
+ export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough;
34
+ export type HandlerReqCtx<HA extends HandlerAuth = never> = {
35
+ auth: HA;
36
+ params: QueryParams;
37
+ input: HandlerInput;
38
+ req: express.Request;
39
+ res: express.Response;
40
+ };
41
+ export type Handler<HA extends HandlerAuth = never> = (ctx: HandlerReqCtx<HA>) => Promise<HandlerOutput> | HandlerOutput;
42
+ //# sourceMappingURL=querySets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"querySets.d.ts","sourceRoot":"","sources":["../../../../../../src/lexicon/types/tools/ozone/set/querySets.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,OAAO,MAAM,SAAS,CAAA;AAK7B,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACtE,OAAO,KAAK,iBAAiB,MAAM,QAAQ,CAAA;AAE3C,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,WAAW,CAAA;IAC1C,iDAAiD;IACjD,aAAa,EAAE,KAAK,GAAG,MAAM,CAAA;CAC9B;AAED,MAAM,MAAM,WAAW,GAAG,SAAS,CAAA;AAEnC,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,iBAAiB,CAAC,OAAO,EAAE,CAAA;IACjC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CACrB;AAED,MAAM,MAAM,YAAY,GAAG,SAAS,CAAA;AAEpC,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,kBAAkB,CAAA;IAC5B,IAAI,EAAE,YAAY,CAAA;IAClB,OAAO,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAA;CACpC;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,cAAc,GAAG,kBAAkB,CAAA;AAC9E,MAAM,MAAM,aAAa,CAAC,EAAE,SAAS,WAAW,GAAG,KAAK,IAAI;IAC1D,IAAI,EAAE,EAAE,CAAA;IACR,MAAM,EAAE,WAAW,CAAA;IACnB,KAAK,EAAE,YAAY,CAAA;IACnB,GAAG,EAAE,OAAO,CAAC,OAAO,CAAA;IACpB,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAA;CACtB,CAAA;AACD,MAAM,MAAM,OAAO,CAAC,EAAE,SAAS,WAAW,GAAG,KAAK,IAAI,CACpD,GAAG,EAAE,aAAa,CAAC,EAAE,CAAC,KACnB,OAAO,CAAC,aAAa,CAAC,GAAG,aAAa,CAAA"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=querySets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"querySets.js","sourceRoot":"","sources":["../../../../../../src/lexicon/types/tools/ozone/set/querySets.ts"],"names":[],"mappings":""}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * GENERATED CODE - DO NOT MODIFY
3
+ */
4
+ import express from 'express';
5
+ import { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server';
6
+ import * as ToolsOzoneSetDefs from './defs';
7
+ export interface QueryParams {
8
+ }
9
+ export type InputSchema = ToolsOzoneSetDefs.Set;
10
+ export type OutputSchema = ToolsOzoneSetDefs.SetView;
11
+ export interface HandlerInput {
12
+ encoding: 'application/json';
13
+ body: InputSchema;
14
+ }
15
+ export interface HandlerSuccess {
16
+ encoding: 'application/json';
17
+ body: OutputSchema;
18
+ headers?: {
19
+ [key: string]: string;
20
+ };
21
+ }
22
+ export interface HandlerError {
23
+ status: number;
24
+ message?: string;
25
+ }
26
+ export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough;
27
+ export type HandlerReqCtx<HA extends HandlerAuth = never> = {
28
+ auth: HA;
29
+ params: QueryParams;
30
+ input: HandlerInput;
31
+ req: express.Request;
32
+ res: express.Response;
33
+ };
34
+ export type Handler<HA extends HandlerAuth = never> = (ctx: HandlerReqCtx<HA>) => Promise<HandlerOutput> | HandlerOutput;
35
+ //# sourceMappingURL=upsertSet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upsertSet.d.ts","sourceRoot":"","sources":["../../../../../../src/lexicon/types/tools/ozone/set/upsertSet.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,OAAO,MAAM,SAAS,CAAA;AAK7B,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACtE,OAAO,KAAK,iBAAiB,MAAM,QAAQ,CAAA;AAE3C,MAAM,WAAW,WAAW;CAAG;AAE/B,MAAM,MAAM,WAAW,GAAG,iBAAiB,CAAC,GAAG,CAAA;AAC/C,MAAM,MAAM,YAAY,GAAG,iBAAiB,CAAC,OAAO,CAAA;AAEpD,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,kBAAkB,CAAA;IAC5B,IAAI,EAAE,WAAW,CAAA;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,kBAAkB,CAAA;IAC5B,IAAI,EAAE,YAAY,CAAA;IAClB,OAAO,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAA;CACpC;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,cAAc,GAAG,kBAAkB,CAAA;AAC9E,MAAM,MAAM,aAAa,CAAC,EAAE,SAAS,WAAW,GAAG,KAAK,IAAI;IAC1D,IAAI,EAAE,EAAE,CAAA;IACR,MAAM,EAAE,WAAW,CAAA;IACnB,KAAK,EAAE,YAAY,CAAA;IACnB,GAAG,EAAE,OAAO,CAAC,OAAO,CAAA;IACpB,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAA;CACtB,CAAA;AACD,MAAM,MAAM,OAAO,CAAC,EAAE,SAAS,WAAW,GAAG,KAAK,IAAI,CACpD,GAAG,EAAE,aAAa,CAAC,EAAE,CAAC,KACnB,OAAO,CAAC,aAAa,CAAC,GAAG,aAAa,CAAA"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=upsertSet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upsertSet.js","sourceRoot":"","sources":["../../../../../../src/lexicon/types/tools/ozone/set/upsertSet.ts"],"names":[],"mappings":""}
@@ -0,0 +1,46 @@
1
+ import Database from '../db';
2
+ import { Selectable } from 'kysely';
3
+ import { SetDetail } from '../db/schema/ozone_set';
4
+ import { SetView } from '../lexicon/types/tools/ozone/set/defs';
5
+ export type SetServiceCreator = (db: Database) => SetService;
6
+ export declare class SetService {
7
+ db: Database;
8
+ constructor(db: Database);
9
+ static creator(): (db: Database) => SetService;
10
+ buildQueryForSetWithSize(): import("kysely/dist/cjs/parser/select-parser").QueryBuilderWithSelection<import("kysely/dist/cjs/parser/table-parser").From<import("../db/schema").DatabaseSchemaType, "set_detail as s">, "s", {}, "s.id" | "s.name" | "s.description" | "s.createdAt" | "s.updatedAt" | ((eb: import("kysely").ExpressionBuilder<import("kysely/dist/cjs/parser/table-parser").From<import("../db/schema").DatabaseSchemaType, "set_detail as s">, "s">) => import("kysely").AliasedQueryBuilder<import("kysely/dist/cjs/parser/table-parser").From<import("kysely/dist/cjs/parser/table-parser").From<import("../db/schema").DatabaseSchemaType, "set_detail as s">, "set_value">, import("kysely/dist/cjs/parser/table-parser").FromTables<import("kysely/dist/cjs/parser/table-parser").From<import("../db/schema").DatabaseSchemaType, "set_detail as s">, "s", "set_value">, import("kysely").Selection<import("kysely/dist/cjs/parser/table-parser").From<import("kysely/dist/cjs/parser/table-parser").From<import("../db/schema").DatabaseSchemaType, "set_detail as s">, "set_value">, import("kysely/dist/cjs/parser/table-parser").FromTables<import("kysely/dist/cjs/parser/table-parser").From<import("../db/schema").DatabaseSchemaType, "set_detail as s">, "s", "set_value">, (e: import("kysely").ExpressionBuilder<import("kysely/dist/cjs/parser/table-parser").From<import("kysely/dist/cjs/parser/table-parser").From<import("../db/schema").DatabaseSchemaType, "set_detail as s">, "set_value">, import("kysely/dist/cjs/parser/table-parser").FromTables<import("kysely/dist/cjs/parser/table-parser").From<import("../db/schema").DatabaseSchemaType, "set_detail as s">, "s", "set_value">>) => import("kysely").AliasedAggregateFunctionBuilder<import("kysely/dist/cjs/parser/table-parser").From<import("kysely/dist/cjs/parser/table-parser").From<import("../db/schema").DatabaseSchemaType, "set_detail as s">, "set_value">, import("kysely/dist/cjs/parser/table-parser").FromTables<import("kysely/dist/cjs/parser/table-parser").From<import("../db/schema").DatabaseSchemaType, "set_detail as s">, "s", "set_value">, number, "count">>, "setSize">)>;
11
+ query({ limit, cursor, namePrefix, sortBy, sortDirection, }: {
12
+ limit: number;
13
+ cursor?: string;
14
+ namePrefix?: string;
15
+ sortBy: 'name' | 'createdAt' | 'updatedAt';
16
+ sortDirection: 'asc' | 'desc';
17
+ }): Promise<{
18
+ sets: Selectable<SetDetail & {
19
+ setSize: number;
20
+ }>[];
21
+ cursor?: string;
22
+ }>;
23
+ getByName(name: string): Promise<Selectable<SetDetail> | undefined>;
24
+ getByNameWithSize(name: string): Promise<Selectable<SetDetail & {
25
+ setSize: number;
26
+ }> | undefined>;
27
+ getSetWithValues({ name, limit, cursor, }: {
28
+ name: string;
29
+ limit: number;
30
+ cursor?: string;
31
+ }): Promise<{
32
+ set: Selectable<SetDetail & {
33
+ setSize: number;
34
+ }>;
35
+ values: string[];
36
+ cursor?: string;
37
+ } | undefined>;
38
+ upsert({ name, description, }: Pick<SetDetail, 'name' | 'description'>): Promise<void>;
39
+ addValues(setId: number, values: string[]): Promise<void>;
40
+ removeValues(setId: number, values: string[]): Promise<void>;
41
+ removeSet(setId: number): Promise<void>;
42
+ view(set: Selectable<SetDetail> & {
43
+ setSize: number;
44
+ }): SetView;
45
+ }
46
+ //# sourceMappingURL=service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/set/service.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,OAAO,CAAA;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,uCAAuC,CAAA;AAG/D,MAAM,MAAM,iBAAiB,GAAG,CAAC,EAAE,EAAE,QAAQ,KAAK,UAAU,CAAA;AAE5D,qBAAa,UAAU;IACF,EAAE,EAAE,QAAQ;gBAAZ,EAAE,EAAE,QAAQ;IAE/B,MAAM,CAAC,OAAO,SACA,QAAQ;IAGtB,wBAAwB;IAgBlB,KAAK,CAAC,EACV,KAAK,EACL,MAAM,EACN,UAAU,EACV,MAAM,EACN,aAAa,GACd,EAAE;QACD,KAAK,EAAE,MAAM,CAAA;QACb,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,WAAW,CAAA;QAC1C,aAAa,EAAE,KAAK,GAAG,MAAM,CAAA;KAC9B,GAAG,OAAO,CAAC;QACV,IAAI,EAAE,UAAU,CAAC,SAAS,GAAG;YAAE,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC,EAAE,CAAA;QACnD,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,CAAC;IAkCI,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;IASnE,iBAAiB,CACrB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,UAAU,CAAC,SAAS,GAAG;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,SAAS,CAAC;IAM7D,gBAAgB,CAAC,EACrB,IAAI,EACJ,KAAK,EACL,MAAM,GACP,EAAE;QACD,IAAI,EAAE,MAAM,CAAA;QACZ,KAAK,EAAE,MAAM,CAAA;QACb,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,GAAG,OAAO,CACP;QACE,GAAG,EAAE,UAAU,CAAC,SAAS,GAAG;YAAE,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;QAChD,MAAM,EAAE,MAAM,EAAE,CAAA;QAChB,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,GACD,SAAS,CACZ;IA0BK,MAAM,CAAC,EACX,IAAI,EACJ,WAAW,GACZ,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBpD,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBzD,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB5D,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO7C,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,SAAS,CAAC,GAAG;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO;CAShE"}
@@ -0,0 +1,166 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SetService = void 0;
4
+ const pagination_1 = require("../db/pagination");
5
+ class SetService {
6
+ constructor(db) {
7
+ Object.defineProperty(this, "db", {
8
+ enumerable: true,
9
+ configurable: true,
10
+ writable: true,
11
+ value: db
12
+ });
13
+ }
14
+ static creator() {
15
+ return (db) => new SetService(db);
16
+ }
17
+ buildQueryForSetWithSize() {
18
+ return this.db.db.selectFrom('set_detail as s').select([
19
+ 's.id',
20
+ 's.name',
21
+ 's.description',
22
+ 's.createdAt',
23
+ 's.updatedAt',
24
+ (eb) => eb
25
+ .selectFrom('set_value')
26
+ .select((e) => e.fn.count('setId').as('count'))
27
+ .whereRef('setId', '=', 's.id')
28
+ .as('setSize'),
29
+ ]);
30
+ }
31
+ async query({ limit, cursor, namePrefix, sortBy, sortDirection, }) {
32
+ let qb = this.buildQueryForSetWithSize().limit(limit);
33
+ if (namePrefix) {
34
+ qb = qb.where('s.name', 'like', `${namePrefix}%`);
35
+ }
36
+ if (cursor) {
37
+ if (sortBy === 'name') {
38
+ qb = qb.where('s.name', sortDirection === 'asc' ? '>' : '<', cursor);
39
+ }
40
+ else {
41
+ qb = qb.where(`s.${sortBy}`, sortDirection === 'asc' ? '>' : '<', new Date(cursor));
42
+ }
43
+ }
44
+ qb = qb.orderBy(`s.${sortBy}`, sortDirection);
45
+ const sets = await qb.execute();
46
+ const lastItem = sets.at(-1);
47
+ return {
48
+ sets,
49
+ cursor: lastItem
50
+ ? sortBy === 'name'
51
+ ? lastItem?.name
52
+ : lastItem?.[sortBy].toISOString()
53
+ : undefined,
54
+ };
55
+ }
56
+ async getByName(name) {
57
+ const query = this.db.db
58
+ .selectFrom('set_detail')
59
+ .selectAll()
60
+ .where('name', '=', name);
61
+ return await query.executeTakeFirst();
62
+ }
63
+ async getByNameWithSize(name) {
64
+ return await this.buildQueryForSetWithSize()
65
+ .where('s.name', '=', name)
66
+ .executeTakeFirst();
67
+ }
68
+ async getSetWithValues({ name, limit, cursor, }) {
69
+ const set = await this.getByNameWithSize(name);
70
+ if (!set)
71
+ return undefined;
72
+ const { ref } = this.db.db.dynamic;
73
+ const qb = this.db.db
74
+ .selectFrom('set_value')
75
+ .selectAll()
76
+ .where('setId', '=', set.id);
77
+ const keyset = new pagination_1.TimeIdKeyset(ref(`createdAt`), ref('id'));
78
+ const paginatedBuilder = (0, pagination_1.paginate)(qb, {
79
+ limit,
80
+ cursor,
81
+ keyset,
82
+ direction: 'asc',
83
+ });
84
+ const result = await paginatedBuilder.execute();
85
+ return {
86
+ set,
87
+ values: result.map((v) => v.value),
88
+ cursor: keyset.packFromResult(result),
89
+ };
90
+ }
91
+ async upsert({ name, description, }) {
92
+ await this.db.db
93
+ .insertInto('set_detail')
94
+ .values({
95
+ name,
96
+ description,
97
+ updatedAt: new Date(),
98
+ })
99
+ .onConflict((oc) => {
100
+ // if description is provided as a string, even an empty one, update it
101
+ // otherwise, just update the updatedAt timestamp
102
+ return oc.column('name').doUpdateSet(typeof description === 'string'
103
+ ? {
104
+ description,
105
+ updatedAt: new Date(),
106
+ }
107
+ : { updatedAt: new Date() });
108
+ })
109
+ .execute();
110
+ }
111
+ async addValues(setId, values) {
112
+ await this.db.transaction(async (txn) => {
113
+ const now = new Date();
114
+ const query = txn.db
115
+ .insertInto('set_value')
116
+ .values(values.map((value) => ({
117
+ setId,
118
+ value,
119
+ createdAt: now,
120
+ })))
121
+ .onConflict((oc) => oc.columns(['setId', 'value']).doNothing());
122
+ await query.execute();
123
+ // Update the set's updatedAt timestamp
124
+ await txn.db
125
+ .updateTable('set_detail')
126
+ .set({ updatedAt: now })
127
+ .where('id', '=', setId)
128
+ .execute();
129
+ });
130
+ }
131
+ async removeValues(setId, values) {
132
+ if (values.length < 1) {
133
+ return;
134
+ }
135
+ await this.db.transaction(async (txn) => {
136
+ const query = txn.db
137
+ .deleteFrom('set_value')
138
+ .where('setId', '=', setId)
139
+ .where('value', 'in', values);
140
+ await query.execute();
141
+ // Update the set's updatedAt timestamp
142
+ await txn.db
143
+ .updateTable('set_detail')
144
+ .set({ updatedAt: new Date() })
145
+ .where('id', '=', setId)
146
+ .execute();
147
+ });
148
+ }
149
+ async removeSet(setId) {
150
+ await this.db.transaction(async (txn) => {
151
+ await txn.db.deleteFrom('set_value').where('setId', '=', setId).execute();
152
+ await txn.db.deleteFrom('set_detail').where('id', '=', setId).execute();
153
+ });
154
+ }
155
+ view(set) {
156
+ return {
157
+ name: set.name,
158
+ description: set.description || undefined,
159
+ setSize: set.setSize,
160
+ createdAt: set.createdAt.toISOString(),
161
+ updatedAt: set.updatedAt.toISOString(),
162
+ };
163
+ }
164
+ }
165
+ exports.SetService = SetService;
166
+ //# sourceMappingURL=service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/set/service.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atproto/ozone",
3
- "version": "0.1.50",
3
+ "version": "0.1.51",
4
4
  "license": "MIT",
5
5
  "description": "Backend service for moderating the Bluesky network.",
6
6
  "keywords": [
@@ -32,7 +32,7 @@
32
32
  "structured-headers": "^1.0.1",
33
33
  "typed-emitter": "^2.1.0",
34
34
  "uint8arrays": "3.0.0",
35
- "@atproto/api": "^0.13.11",
35
+ "@atproto/api": "^0.13.12",
36
36
  "@atproto/common": "^0.4.4",
37
37
  "@atproto/crypto": "^0.4.1",
38
38
  "@atproto/identity": "^0.4.2",
@@ -52,7 +52,7 @@
52
52
  "jest": "^28.1.2",
53
53
  "ts-node": "^10.8.2",
54
54
  "@atproto/lex-cli": "^0.5.1",
55
- "@atproto/pds": "^0.4.64"
55
+ "@atproto/pds": "^0.4.65"
56
56
  },
57
57
  "scripts": {
58
58
  "codegen": "lex gen-server --yes ./src/lexicon ../../lexicons/com/atproto/*/* ../../lexicons/app/bsky/*/* ../../lexicons/chat/bsky/*/* ../../lexicons/tools/ozone/*/*",