@atproto/ozone 0.1.69 → 0.1.70

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 (121) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/api/moderation/queryStatuses.d.ts.map +1 -1
  3. package/dist/api/moderation/queryStatuses.js +1 -33
  4. package/dist/api/moderation/queryStatuses.js.map +1 -1
  5. package/dist/background.d.ts +49 -6
  6. package/dist/background.d.ts.map +1 -1
  7. package/dist/background.js +149 -14
  8. package/dist/background.js.map +1 -1
  9. package/dist/config/config.d.ts +1 -0
  10. package/dist/config/config.d.ts.map +1 -1
  11. package/dist/config/config.js +1 -0
  12. package/dist/config/config.js.map +1 -1
  13. package/dist/config/env.d.ts +1 -0
  14. package/dist/config/env.d.ts.map +1 -1
  15. package/dist/config/env.js +1 -0
  16. package/dist/config/env.js.map +1 -1
  17. package/dist/daemon/context.d.ts +9 -3
  18. package/dist/daemon/context.d.ts.map +1 -1
  19. package/dist/daemon/context.js +33 -3
  20. package/dist/daemon/context.js.map +1 -1
  21. package/dist/daemon/index.d.ts.map +1 -1
  22. package/dist/daemon/index.js +3 -6
  23. package/dist/daemon/index.js.map +1 -1
  24. package/dist/daemon/materialized-view-refresher.d.ts +5 -0
  25. package/dist/daemon/materialized-view-refresher.d.ts.map +1 -0
  26. package/dist/daemon/materialized-view-refresher.js +29 -0
  27. package/dist/daemon/materialized-view-refresher.js.map +1 -0
  28. package/dist/db/migrations/20241220T144630860Z-stats-materialized-views.d.ts +5 -0
  29. package/dist/db/migrations/20241220T144630860Z-stats-materialized-views.d.ts.map +1 -0
  30. package/dist/db/migrations/20241220T144630860Z-stats-materialized-views.js +158 -0
  31. package/dist/db/migrations/20241220T144630860Z-stats-materialized-views.js.map +1 -0
  32. package/dist/db/migrations/index.d.ts +1 -0
  33. package/dist/db/migrations/index.d.ts.map +1 -1
  34. package/dist/db/migrations/index.js +2 -1
  35. package/dist/db/migrations/index.js.map +1 -1
  36. package/dist/db/schema/account_events_stats.d.ts +15 -0
  37. package/dist/db/schema/account_events_stats.d.ts.map +1 -0
  38. package/dist/db/schema/account_events_stats.js +5 -0
  39. package/dist/db/schema/account_events_stats.js.map +1 -0
  40. package/dist/db/schema/account_record_events_stats.d.ts +15 -0
  41. package/dist/db/schema/account_record_events_stats.d.ts.map +1 -0
  42. package/dist/db/schema/account_record_events_stats.js +5 -0
  43. package/dist/db/schema/account_record_events_stats.js.map +1 -0
  44. package/dist/db/schema/account_record_status_stats.d.ts +15 -0
  45. package/dist/db/schema/account_record_status_stats.d.ts.map +1 -0
  46. package/dist/db/schema/account_record_status_stats.js +5 -0
  47. package/dist/db/schema/account_record_status_stats.js.map +1 -0
  48. package/dist/db/schema/index.d.ts +5 -1
  49. package/dist/db/schema/index.d.ts.map +1 -1
  50. package/dist/db/schema/record_events_stats.d.ts +14 -0
  51. package/dist/db/schema/record_events_stats.d.ts.map +1 -0
  52. package/dist/db/schema/record_events_stats.js +5 -0
  53. package/dist/db/schema/record_events_stats.js.map +1 -0
  54. package/dist/index.d.ts.map +1 -1
  55. package/dist/index.js +1 -4
  56. package/dist/index.js.map +1 -1
  57. package/dist/lexicon/lexicons.d.ts +174 -2
  58. package/dist/lexicon/lexicons.d.ts.map +1 -1
  59. package/dist/lexicon/lexicons.js +92 -1
  60. package/dist/lexicon/lexicons.js.map +1 -1
  61. package/dist/lexicon/types/tools/ozone/moderation/defs.d.ts +40 -0
  62. package/dist/lexicon/types/tools/ozone/moderation/defs.d.ts.map +1 -1
  63. package/dist/lexicon/types/tools/ozone/moderation/defs.js +20 -0
  64. package/dist/lexicon/types/tools/ozone/moderation/defs.js.map +1 -1
  65. package/dist/lexicon/types/tools/ozone/moderation/queryStatuses.d.ts +7 -1
  66. package/dist/lexicon/types/tools/ozone/moderation/queryStatuses.d.ts.map +1 -1
  67. package/dist/mod-service/index.d.ts +4 -62
  68. package/dist/mod-service/index.d.ts.map +1 -1
  69. package/dist/mod-service/index.js +80 -74
  70. package/dist/mod-service/index.js.map +1 -1
  71. package/dist/mod-service/status.d.ts +115 -4
  72. package/dist/mod-service/status.d.ts.map +1 -1
  73. package/dist/mod-service/status.js +51 -34
  74. package/dist/mod-service/status.js.map +1 -1
  75. package/dist/mod-service/types.d.ts +16 -1
  76. package/dist/mod-service/types.d.ts.map +1 -1
  77. package/dist/mod-service/views.d.ts.map +1 -1
  78. package/dist/mod-service/views.js +49 -41
  79. package/dist/mod-service/views.js.map +1 -1
  80. package/dist/util.d.ts +34 -0
  81. package/dist/util.d.ts.map +1 -1
  82. package/dist/util.js +132 -0
  83. package/dist/util.js.map +1 -1
  84. package/package.json +3 -3
  85. package/src/api/moderation/queryStatuses.ts +1 -63
  86. package/src/background.ts +140 -14
  87. package/src/config/config.ts +2 -0
  88. package/src/config/env.ts +4 -0
  89. package/src/daemon/context.ts +43 -5
  90. package/src/daemon/index.ts +3 -6
  91. package/src/daemon/materialized-view-refresher.ts +27 -0
  92. package/src/db/migrations/20241220T144630860Z-stats-materialized-views.ts +218 -0
  93. package/src/db/migrations/index.ts +1 -0
  94. package/src/db/schema/account_events_stats.ts +16 -0
  95. package/src/db/schema/account_record_events_stats.ts +15 -0
  96. package/src/db/schema/account_record_status_stats.ts +15 -0
  97. package/src/db/schema/index.ts +10 -1
  98. package/src/db/schema/record_events_stats.ts +15 -0
  99. package/src/index.ts +1 -7
  100. package/src/lexicon/lexicons.ts +100 -1
  101. package/src/lexicon/types/tools/ozone/moderation/defs.ts +62 -0
  102. package/src/lexicon/types/tools/ozone/moderation/queryStatuses.ts +11 -1
  103. package/src/mod-service/index.ts +181 -118
  104. package/src/mod-service/status.ts +55 -28
  105. package/src/mod-service/types.ts +22 -1
  106. package/src/mod-service/views.ts +64 -50
  107. package/src/util.ts +145 -0
  108. package/tests/__snapshots__/get-record.test.ts.snap +28 -0
  109. package/tests/__snapshots__/get-records.test.ts.snap +14 -0
  110. package/tests/__snapshots__/get-repo.test.ts.snap +11 -0
  111. package/tests/__snapshots__/get-repos.test.ts.snap +11 -0
  112. package/tests/__snapshots__/moderation-events.test.ts.snap +19 -0
  113. package/tests/__snapshots__/moderation-statuses.test.ts.snap +114 -0
  114. package/tests/get-record.test.ts +4 -0
  115. package/tests/get-records.test.ts +4 -0
  116. package/tests/get-repo.test.ts +4 -0
  117. package/tests/get-repos.test.ts +4 -0
  118. package/tests/moderation-events.test.ts +4 -0
  119. package/tests/moderation-statuses.test.ts +4 -0
  120. package/tests/query-labels.test.ts +1 -0
  121. package/tsconfig.build.tsbuildinfo +1 -1
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MaterializedViewRefresher = void 0;
4
+ const common_1 = require("@atproto/common");
5
+ const kysely_1 = require("kysely");
6
+ const background_1 = require("../background");
7
+ class MaterializedViewRefresher extends background_1.PeriodicBackgroundTask {
8
+ constructor(backgroundQueue, interval = 30 * common_1.MINUTE) {
9
+ super(backgroundQueue, interval, async ({ db }, signal) => {
10
+ for (const view of [
11
+ 'account_events_stats',
12
+ 'record_events_stats',
13
+ 'account_record_events_stats',
14
+ 'account_record_status_stats',
15
+ ]) {
16
+ if (signal.aborted)
17
+ break;
18
+ // Kysely does not provide a way to cancel a running query. Because of
19
+ // this, killing the process during a refresh will cause the process to
20
+ // wait for the current refresh to finish before exiting. This is not
21
+ // ideal, but it is the best we can do until Kysely provides a way to
22
+ // cancel a query.
23
+ await (0, kysely_1.sql) `REFRESH MATERIALIZED VIEW CONCURRENTLY ${kysely_1.sql.id(view)}`.execute(db);
24
+ }
25
+ });
26
+ }
27
+ }
28
+ exports.MaterializedViewRefresher = MaterializedViewRefresher;
29
+ //# sourceMappingURL=materialized-view-refresher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"materialized-view-refresher.js","sourceRoot":"","sources":["../../src/daemon/materialized-view-refresher.ts"],"names":[],"mappings":";;;AAAA,4CAAwC;AACxC,mCAA4B;AAC5B,8CAAuE;AAEvE,MAAa,yBAA0B,SAAQ,mCAAsB;IACnE,YAAY,eAAgC,EAAE,QAAQ,GAAG,EAAE,GAAG,eAAM;QAClE,KAAK,CAAC,eAAe,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE;YACxD,KAAK,MAAM,IAAI,IAAI;gBACjB,sBAAsB;gBACtB,qBAAqB;gBACrB,6BAA6B;gBAC7B,6BAA6B;aAC9B,EAAE,CAAC;gBACF,IAAI,MAAM,CAAC,OAAO;oBAAE,MAAK;gBAEzB,sEAAsE;gBACtE,uEAAuE;gBACvE,qEAAqE;gBACrE,qEAAqE;gBACrE,kBAAkB;gBAClB,MAAM,IAAA,YAAG,EAAA,0CAA0C,YAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CACvE,EAAE,CACH,CAAA;YACH,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;CACF;AAtBD,8DAsBC"}
@@ -0,0 +1,5 @@
1
+ import { Kysely } from 'kysely';
2
+ import { DatabaseSchemaType } from '../schema';
3
+ export declare function up(db: Kysely<any>): Promise<void>;
4
+ export declare function down(db: Kysely<DatabaseSchemaType>): Promise<void>;
5
+ //# sourceMappingURL=20241220T144630860Z-stats-materialized-views.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20241220T144630860Z-stats-materialized-views.d.ts","sourceRoot":"","sources":["../../../src/db/migrations/20241220T144630860Z-stats-materialized-views.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAO,MAAM,QAAQ,CAAA;AAGpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAU9C,wBAAsB,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAqMvD;AAED,wBAAsB,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAKxE"}
@@ -0,0 +1,158 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.up = up;
4
+ exports.down = down;
5
+ const kysely_1 = require("kysely");
6
+ const defs_1 = require("../../lexicon/types/com/atproto/moderation/defs");
7
+ const defs_2 = require("../../lexicon/types/tools/ozone/moderation/defs");
8
+ async function up(db) {
9
+ // Used by "tools.ozone.moderation.queryStatuses". Reduces query cost by two
10
+ // order of magnitudes when sorting using "reportedRecordsCount" or
11
+ // "takendownRecordsCount" and filtering by "reviewState".
12
+ await db.schema
13
+ .createIndex('moderation_subject_status_did_id_review_state_idx')
14
+ .on('moderation_subject_status')
15
+ .column('did')
16
+ .expression((0, kysely_1.sql) `"id" ASC NULLS FIRST`)
17
+ .column('reviewState')
18
+ .execute();
19
+ // ~6sec for 16M events
20
+ await db.schema
21
+ .createView('account_events_stats')
22
+ .materialized()
23
+ .ifNotExists()
24
+ .as(db
25
+ .selectFrom('moderation_event')
26
+ .where('subjectType', '=', 'com.atproto.admin.defs#repoRef')
27
+ .where('subjectUri', 'is', null)
28
+ .select('subjectDid')
29
+ .select([
30
+ (eb) => (0, kysely_1.sql) `COUNT(*) FILTER(
31
+ WHERE ${eb.ref('action')} = 'tools.ozone.moderation.defs#modEventTakedown'
32
+ AND ${eb.ref('durationInHours')} IS NULL
33
+ )`.as('takedownCount'),
34
+ (eb) => (0, kysely_1.sql) `COUNT(*) FILTER(
35
+ WHERE ${eb.ref('action')} = 'tools.ozone.moderation.defs#modEventTakedown'
36
+ AND ${eb.ref('durationInHours')} IS NOT NULL
37
+ )`.as('suspendCount'),
38
+ (eb) => (0, kysely_1.sql) `COUNT(*) FILTER(
39
+ WHERE ${eb.ref('action')} = 'tools.ozone.moderation.defs#modEventEscalate'
40
+ )`.as('escalateCount'),
41
+ (eb) => (0, kysely_1.sql) `COUNT(*) FILTER(
42
+ WHERE ${eb.ref('action')} = 'tools.ozone.moderation.defs#modEventReport'
43
+ AND ${eb.ref('meta')} ->> 'reportType' != ${defs_1.REASONAPPEAL}
44
+ )`.as('reportCount'),
45
+ (eb) => (0, kysely_1.sql) `COUNT(*) FILTER(
46
+ WHERE ${eb.ref('action')} = 'tools.ozone.moderation.defs#modEventReport'
47
+ AND ${eb.ref('meta')} ->> 'reportType' = ${defs_1.REASONAPPEAL}
48
+ )`.as('appealCount'),
49
+ ])
50
+ .groupBy('subjectDid'))
51
+ .execute();
52
+ await db.schema
53
+ .createIndex('account_events_stats_did_idx')
54
+ .unique()
55
+ .on('account_events_stats')
56
+ .column('subjectDid')
57
+ .execute();
58
+ await db.schema
59
+ .createIndex('account_events_stats_suspend_count_idx')
60
+ .on('account_events_stats')
61
+ .expression((0, kysely_1.sql) `"suspendCount" ASC NULLS FIRST`)
62
+ .column('subjectDid')
63
+ .execute();
64
+ // ~50sec for 16M events
65
+ await db.schema
66
+ .createView('record_events_stats')
67
+ .materialized()
68
+ .ifNotExists()
69
+ .as(db
70
+ .selectFrom('moderation_event')
71
+ .select([
72
+ 'subjectDid',
73
+ 'subjectUri',
74
+ (eb) => (0, kysely_1.sql) `COUNT(*) FILTER (WHERE ${eb.ref('action')} = 'tools.ozone.moderation.defs#modEventEscalate')`.as('escalateCount'),
75
+ (eb) => (0, kysely_1.sql) `COUNT(*) FILTER (WHERE ${eb.ref('action')} = 'tools.ozone.moderation.defs#modEventReport' AND ${eb.ref('meta')} ->> 'reportType' != 'com.atproto.moderation.defs#reasonAppeal')`.as('reportCount'),
76
+ (eb) => (0, kysely_1.sql) `COUNT(*) FILTER (WHERE ${eb.ref('action')} = 'tools.ozone.moderation.defs#modEventReport' AND ${eb.ref('meta')} ->> 'reportType' = 'com.atproto.moderation.defs#reasonAppeal')`.as('appealCount'),
77
+ ])
78
+ .where('subjectType', '=', 'com.atproto.repo.strongRef')
79
+ .where('subjectUri', 'is not', null)
80
+ .groupBy(['subjectDid', 'subjectUri']))
81
+ .execute();
82
+ await db.schema
83
+ .createIndex('record_events_stats_uri_idx')
84
+ .unique()
85
+ .on('record_events_stats')
86
+ .column('subjectUri')
87
+ .execute();
88
+ await db.schema
89
+ .createIndex('record_events_stats_did_idx')
90
+ .on('record_events_stats')
91
+ .column('subjectDid')
92
+ .execute();
93
+ await db.schema
94
+ .createView('account_record_events_stats')
95
+ .materialized()
96
+ .ifNotExists()
97
+ .as(db
98
+ .selectFrom('record_events_stats')
99
+ .select([
100
+ 'subjectDid',
101
+ (eb) =>
102
+ // Casting to "bigint" because "numeric" gets casted to a string
103
+ // by default by postgres-node.
104
+ (0, kysely_1.sql) `SUM(${eb.ref('reportCount')})::bigint`.as('totalReports'),
105
+ (eb) => (0, kysely_1.sql) `COUNT(*) FILTER (WHERE ${eb.ref('reportCount')} > 0)`.as('reportedCount'),
106
+ (eb) => (0, kysely_1.sql) `COUNT(*) FILTER (WHERE ${eb.ref('escalateCount')} > 0)`.as('escalatedCount'),
107
+ (eb) => (0, kysely_1.sql) `COUNT(*) FILTER (WHERE ${eb.ref('appealCount')} > 0)`.as('appealedCount'),
108
+ ])
109
+ .groupBy('subjectDid'))
110
+ .execute();
111
+ await db.schema
112
+ .createIndex('account_record_events_stats_did_idx')
113
+ .unique()
114
+ .on('account_record_events_stats')
115
+ .column('subjectDid')
116
+ .execute();
117
+ await db.schema
118
+ .createIndex('account_record_events_stats_reported_count_idx')
119
+ .on('account_record_events_stats')
120
+ .expression((0, kysely_1.sql) `"reportedCount" ASC NULLS FIRST`)
121
+ .column('subjectDid')
122
+ .execute();
123
+ await db.schema
124
+ .createView('account_record_status_stats')
125
+ .materialized()
126
+ .ifNotExists()
127
+ .as(db
128
+ .selectFrom('moderation_subject_status')
129
+ .select('did')
130
+ .select([
131
+ (0, kysely_1.sql) `COUNT(*)`.as('subjectCount'),
132
+ (eb) => (0, kysely_1.sql) `COUNT(*) FILTER (WHERE ${eb.ref('reviewState')} IN (${defs_2.REVIEWOPEN}, ${defs_2.REVIEWESCALATED}))`.as('pendingCount'),
133
+ (eb) => (0, kysely_1.sql) `COUNT(*) FILTER (WHERE ${eb.ref('reviewState')} NOT IN (${defs_2.REVIEWOPEN}, ${defs_2.REVIEWESCALATED}))`.as('processedCount'),
134
+ (eb) => (0, kysely_1.sql) `COUNT(*) FILTER (WHERE ${eb.ref('takendown')})`.as('takendownCount'),
135
+ ])
136
+ .where('recordPath', '!=', '')
137
+ .groupBy('did'))
138
+ .execute();
139
+ await db.schema
140
+ .createIndex('account_record_status_stats_did_idx')
141
+ .unique()
142
+ .on('account_record_status_stats')
143
+ .column('did')
144
+ .execute();
145
+ await db.schema
146
+ .createIndex('account_record_status_stats_takendown_count_idx')
147
+ .on('account_record_status_stats')
148
+ .expression((0, kysely_1.sql) `"takendownCount" ASC NULLS FIRST`)
149
+ .column('did')
150
+ .execute();
151
+ }
152
+ async function down(db) {
153
+ db.schema.dropView('account_record_status_stats').materialized().execute();
154
+ db.schema.dropView('account_record_events_stats').materialized().execute();
155
+ db.schema.dropView('record_events_stats').materialized().execute();
156
+ db.schema.dropView('account_events_stats').materialized().execute();
157
+ }
158
+ //# sourceMappingURL=20241220T144630860Z-stats-materialized-views.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20241220T144630860Z-stats-materialized-views.js","sourceRoot":"","sources":["../../../src/db/migrations/20241220T144630860Z-stats-materialized-views.ts"],"names":[],"mappings":"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"}
@@ -13,4 +13,5 @@ export * as _20241001T205730722Z from './20241001T205730722Z-subject-status-revi
13
13
  export * as _20241008T205730722Z from './20241008T205730722Z-sets';
14
14
  export * as _20241018T205730722Z from './20241018T205730722Z-setting';
15
15
  export * as _20241026T205730722Z from './20241026T205730722Z-add-hosting-status-to-subject-status';
16
+ export * as _20241220T144630860Z from './20241220T144630860Z-stats-materialized-views';
16
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/db/migrations/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,oBAAoB,MAAM,4BAA4B,CAAA;AAClE,OAAO,KAAK,oBAAoB,MAAM,8CAA8C,CAAA;AACpF,OAAO,KAAK,oBAAoB,MAAM,uCAAuC,CAAA;AAC7E,OAAO,KAAK,oBAAoB,MAAM,6DAA6D,CAAA;AACnG,OAAO,KAAK,oBAAoB,MAAM,sCAAsC,CAAA;AAC5E,OAAO,KAAK,oBAAoB,MAAM,sCAAsC,CAAA;AAC5E,OAAO,KAAK,oBAAoB,MAAM,uCAAuC,CAAA;AAC7E,OAAO,KAAK,oBAAoB,MAAM,8BAA8B,CAAA;AACpE,OAAO,KAAK,oBAAoB,MAAM,8CAA8C,CAAA;AACpF,OAAO,KAAK,oBAAoB,MAAM,yCAAyC,CAAA;AAC/E,OAAO,KAAK,oBAAoB,MAAM,6CAA6C,CAAA;AACnF,OAAO,KAAK,oBAAoB,MAAM,yDAAyD,CAAA;AAC/F,OAAO,KAAK,oBAAoB,MAAM,4BAA4B,CAAA;AAClE,OAAO,KAAK,oBAAoB,MAAM,+BAA+B,CAAA;AACrE,OAAO,KAAK,oBAAoB,MAAM,4DAA4D,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/db/migrations/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,oBAAoB,MAAM,4BAA4B,CAAA;AAClE,OAAO,KAAK,oBAAoB,MAAM,8CAA8C,CAAA;AACpF,OAAO,KAAK,oBAAoB,MAAM,uCAAuC,CAAA;AAC7E,OAAO,KAAK,oBAAoB,MAAM,6DAA6D,CAAA;AACnG,OAAO,KAAK,oBAAoB,MAAM,sCAAsC,CAAA;AAC5E,OAAO,KAAK,oBAAoB,MAAM,sCAAsC,CAAA;AAC5E,OAAO,KAAK,oBAAoB,MAAM,uCAAuC,CAAA;AAC7E,OAAO,KAAK,oBAAoB,MAAM,8BAA8B,CAAA;AACpE,OAAO,KAAK,oBAAoB,MAAM,8CAA8C,CAAA;AACpF,OAAO,KAAK,oBAAoB,MAAM,yCAAyC,CAAA;AAC/E,OAAO,KAAK,oBAAoB,MAAM,6CAA6C,CAAA;AACnF,OAAO,KAAK,oBAAoB,MAAM,yDAAyD,CAAA;AAC/F,OAAO,KAAK,oBAAoB,MAAM,4BAA4B,CAAA;AAClE,OAAO,KAAK,oBAAoB,MAAM,+BAA+B,CAAA;AACrE,OAAO,KAAK,oBAAoB,MAAM,4DAA4D,CAAA;AAClG,OAAO,KAAK,oBAAoB,MAAM,gDAAgD,CAAA"}
@@ -26,7 +26,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
26
26
  return result;
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports._20241026T205730722Z = exports._20241018T205730722Z = exports._20241008T205730722Z = exports._20241001T205730722Z = exports._20240904T205730722Z = exports._20240903T205730722Z = exports._20240814T003647759Z = exports._20240430T211332580Z = exports._20240506T225055595Z = exports._20240408T192432676Z = exports._20240228T003647759Z = exports._20240208T213404429Z = exports._20240201T051104136Z = exports._20240116T085607200Z = exports._20231219T205730722Z = void 0;
29
+ exports._20241220T144630860Z = exports._20241026T205730722Z = exports._20241018T205730722Z = exports._20241008T205730722Z = exports._20241001T205730722Z = exports._20240904T205730722Z = exports._20240903T205730722Z = exports._20240814T003647759Z = exports._20240430T211332580Z = exports._20240506T225055595Z = exports._20240408T192432676Z = exports._20240228T003647759Z = exports._20240208T213404429Z = exports._20240201T051104136Z = exports._20240116T085607200Z = exports._20231219T205730722Z = void 0;
30
30
  exports._20231219T205730722Z = __importStar(require("./20231219T205730722Z-init"));
31
31
  exports._20240116T085607200Z = __importStar(require("./20240116T085607200Z-communication-template"));
32
32
  exports._20240201T051104136Z = __importStar(require("./20240201T051104136Z-mod-event-blobs"));
@@ -42,4 +42,5 @@ exports._20241001T205730722Z = __importStar(require("./20241001T205730722Z-subje
42
42
  exports._20241008T205730722Z = __importStar(require("./20241008T205730722Z-sets"));
43
43
  exports._20241018T205730722Z = __importStar(require("./20241018T205730722Z-setting"));
44
44
  exports._20241026T205730722Z = __importStar(require("./20241026T205730722Z-add-hosting-status-to-subject-status"));
45
+ exports._20241220T144630860Z = __importStar(require("./20241220T144630860Z-stats-materialized-views"));
45
46
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/db/migrations/index.ts"],"names":[],"mappings":";AAAA,oGAAoG;AACpG,gGAAgG;AAChG,+FAA+F;;;;;;;;;;;;;;;;;;;;;;;;;;AAE/F,mFAAkE;AAClE,qGAAoF;AACpF,8FAA6E;AAC7E,oHAAmG;AACnG,6FAA4E;AAC5E,6FAA4E;AAC5E,8FAA6E;AAC7E,qFAAoE;AACpE,qGAAoF;AACpF,gGAA+E;AAC/E,oGAAmF;AACnF,gHAA+F;AAC/F,mFAAkE;AAClE,sFAAqE;AACrE,mHAAkG"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/db/migrations/index.ts"],"names":[],"mappings":";AAAA,oGAAoG;AACpG,gGAAgG;AAChG,+FAA+F;;;;;;;;;;;;;;;;;;;;;;;;;;AAE/F,mFAAkE;AAClE,qGAAoF;AACpF,8FAA6E;AAC7E,oHAAmG;AACnG,6FAA4E;AAC5E,6FAA4E;AAC5E,8FAA6E;AAC7E,qFAAoE;AACpE,qGAAoF;AACpF,gGAA+E;AAC/E,oGAAmF;AACnF,gHAA+F;AAC/F,mFAAkE;AAClE,sFAAqE;AACrE,mHAAkG;AAClG,uGAAsF"}
@@ -0,0 +1,15 @@
1
+ import { GeneratedAlways, Selectable } from 'kysely';
2
+ export declare const tableName = "account_events_stats";
3
+ export type AccountEventsStats = {
4
+ subjectDid: GeneratedAlways<string>;
5
+ takedownCount: GeneratedAlways<number>;
6
+ suspendCount: GeneratedAlways<number>;
7
+ escalateCount: GeneratedAlways<number>;
8
+ reportCount: GeneratedAlways<number>;
9
+ appealCount: GeneratedAlways<number>;
10
+ };
11
+ export type AccountEventsStatsRow = Selectable<AccountEventsStats>;
12
+ export type PartialDB = {
13
+ [tableName]: AccountEventsStats;
14
+ };
15
+ //# sourceMappingURL=account_events_stats.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account_events_stats.d.ts","sourceRoot":"","sources":["../../../src/db/schema/account_events_stats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AAEpD,eAAO,MAAM,SAAS,yBAAyB,CAAA;AAE/C,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,EAAE,eAAe,CAAC,MAAM,CAAC,CAAA;IACnC,aAAa,EAAE,eAAe,CAAC,MAAM,CAAC,CAAA;IACtC,YAAY,EAAE,eAAe,CAAC,MAAM,CAAC,CAAA;IACrC,aAAa,EAAE,eAAe,CAAC,MAAM,CAAC,CAAA;IACtC,WAAW,EAAE,eAAe,CAAC,MAAM,CAAC,CAAA;IACpC,WAAW,EAAE,eAAe,CAAC,MAAM,CAAC,CAAA;CACrC,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAA;AAElE,MAAM,MAAM,SAAS,GAAG;IAAE,CAAC,SAAS,CAAC,EAAE,kBAAkB,CAAA;CAAE,CAAA"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.tableName = void 0;
4
+ exports.tableName = 'account_events_stats';
5
+ //# sourceMappingURL=account_events_stats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account_events_stats.js","sourceRoot":"","sources":["../../../src/db/schema/account_events_stats.ts"],"names":[],"mappings":";;;AAEa,QAAA,SAAS,GAAG,sBAAsB,CAAA"}
@@ -0,0 +1,15 @@
1
+ import { GeneratedAlways, Selectable } from 'kysely';
2
+ export declare const tableName = "account_record_events_stats";
3
+ type AccountRecordEventsStats = {
4
+ subjectDid: GeneratedAlways<string>;
5
+ totalReports: GeneratedAlways<number>;
6
+ reportedCount: GeneratedAlways<number>;
7
+ escalatedCount: GeneratedAlways<number>;
8
+ appealedCount: GeneratedAlways<number>;
9
+ };
10
+ export type AccountRecordEventsStatsRow = Selectable<AccountRecordEventsStats>;
11
+ export type PartialDB = {
12
+ [tableName]: AccountRecordEventsStats;
13
+ };
14
+ export {};
15
+ //# sourceMappingURL=account_record_events_stats.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account_record_events_stats.d.ts","sourceRoot":"","sources":["../../../src/db/schema/account_record_events_stats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AAEpD,eAAO,MAAM,SAAS,gCAAgC,CAAA;AAEtD,KAAK,wBAAwB,GAAG;IAC9B,UAAU,EAAE,eAAe,CAAC,MAAM,CAAC,CAAA;IACnC,YAAY,EAAE,eAAe,CAAC,MAAM,CAAC,CAAA;IACrC,aAAa,EAAE,eAAe,CAAC,MAAM,CAAC,CAAA;IACtC,cAAc,EAAE,eAAe,CAAC,MAAM,CAAC,CAAA;IACvC,aAAa,EAAE,eAAe,CAAC,MAAM,CAAC,CAAA;CACvC,CAAA;AAED,MAAM,MAAM,2BAA2B,GAAG,UAAU,CAAC,wBAAwB,CAAC,CAAA;AAE9E,MAAM,MAAM,SAAS,GAAG;IAAE,CAAC,SAAS,CAAC,EAAE,wBAAwB,CAAA;CAAE,CAAA"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.tableName = void 0;
4
+ exports.tableName = 'account_record_events_stats';
5
+ //# sourceMappingURL=account_record_events_stats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account_record_events_stats.js","sourceRoot":"","sources":["../../../src/db/schema/account_record_events_stats.ts"],"names":[],"mappings":";;;AAEa,QAAA,SAAS,GAAG,6BAA6B,CAAA"}
@@ -0,0 +1,15 @@
1
+ import { GeneratedAlways, Selectable } from 'kysely';
2
+ export declare const tableName = "account_record_status_stats";
3
+ type AccountRecordStatusStats = {
4
+ did: GeneratedAlways<string>;
5
+ subjectCount: GeneratedAlways<number>;
6
+ pendingCount: GeneratedAlways<number>;
7
+ processedCount: GeneratedAlways<number>;
8
+ takendownCount: GeneratedAlways<number>;
9
+ };
10
+ export type AccountRecordStatusStatsRow = Selectable<AccountRecordStatusStats>;
11
+ export type PartialDB = {
12
+ [tableName]: AccountRecordStatusStats;
13
+ };
14
+ export {};
15
+ //# sourceMappingURL=account_record_status_stats.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account_record_status_stats.d.ts","sourceRoot":"","sources":["../../../src/db/schema/account_record_status_stats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AAEpD,eAAO,MAAM,SAAS,gCAAgC,CAAA;AAEtD,KAAK,wBAAwB,GAAG;IAC9B,GAAG,EAAE,eAAe,CAAC,MAAM,CAAC,CAAA;IAC5B,YAAY,EAAE,eAAe,CAAC,MAAM,CAAC,CAAA;IACrC,YAAY,EAAE,eAAe,CAAC,MAAM,CAAC,CAAA;IACrC,cAAc,EAAE,eAAe,CAAC,MAAM,CAAC,CAAA;IACvC,cAAc,EAAE,eAAe,CAAC,MAAM,CAAC,CAAA;CACxC,CAAA;AAED,MAAM,MAAM,2BAA2B,GAAG,UAAU,CAAC,wBAAwB,CAAC,CAAA;AAE9E,MAAM,MAAM,SAAS,GAAG;IAAE,CAAC,SAAS,CAAC,EAAE,wBAAwB,CAAA;CAAE,CAAA"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.tableName = void 0;
4
+ exports.tableName = 'account_record_status_stats';
5
+ //# sourceMappingURL=account_record_status_stats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account_record_status_stats.js","sourceRoot":"","sources":["../../../src/db/schema/account_record_status_stats.ts"],"names":[],"mappings":";;;AAEa,QAAA,SAAS,GAAG,6BAA6B,CAAA"}
@@ -10,7 +10,11 @@ import * as communicationTemplate from './communication_template';
10
10
  import * as set from './ozone_set';
11
11
  import * as member from './member';
12
12
  import * as setting from './setting';
13
- export type DatabaseSchemaType = modEvent.PartialDB & modSubjectStatus.PartialDB & label.PartialDB & signingKey.PartialDB & repoPushEvent.PartialDB & recordPushEvent.PartialDB & blobPushEvent.PartialDB & communicationTemplate.PartialDB & set.PartialDB & member.PartialDB & setting.PartialDB;
13
+ import * as recordEventsStats from './record_events_stats';
14
+ import * as accountEventsStats from './account_events_stats';
15
+ import * as accountRecordEventsStats from './account_record_events_stats';
16
+ import * as accountRecordStatusStats from './account_record_status_stats';
17
+ export type DatabaseSchemaType = modEvent.PartialDB & modSubjectStatus.PartialDB & label.PartialDB & signingKey.PartialDB & repoPushEvent.PartialDB & recordPushEvent.PartialDB & blobPushEvent.PartialDB & communicationTemplate.PartialDB & set.PartialDB & member.PartialDB & setting.PartialDB & accountEventsStats.PartialDB & recordEventsStats.PartialDB & accountRecordEventsStats.PartialDB & accountRecordStatusStats.PartialDB;
14
18
  export type DatabaseSchema = Kysely<DatabaseSchemaType>;
15
19
  export default DatabaseSchema;
16
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/db/schema/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,KAAK,QAAQ,MAAM,oBAAoB,CAAA;AAC9C,OAAO,KAAK,gBAAgB,MAAM,6BAA6B,CAAA;AAC/D,OAAO,KAAK,aAAa,MAAM,mBAAmB,CAAA;AAClD,OAAO,KAAK,eAAe,MAAM,qBAAqB,CAAA;AACtD,OAAO,KAAK,aAAa,MAAM,mBAAmB,CAAA;AAClD,OAAO,KAAK,KAAK,MAAM,SAAS,CAAA;AAChC,OAAO,KAAK,UAAU,MAAM,eAAe,CAAA;AAC3C,OAAO,KAAK,qBAAqB,MAAM,0BAA0B,CAAA;AACjE,OAAO,KAAK,GAAG,MAAM,aAAa,CAAA;AAClC,OAAO,KAAK,MAAM,MAAM,UAAU,CAAA;AAClC,OAAO,KAAK,OAAO,MAAM,WAAW,CAAA;AAEpC,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAC,SAAS,GACjD,gBAAgB,CAAC,SAAS,GAC1B,KAAK,CAAC,SAAS,GACf,UAAU,CAAC,SAAS,GACpB,aAAa,CAAC,SAAS,GACvB,eAAe,CAAC,SAAS,GACzB,aAAa,CAAC,SAAS,GACvB,qBAAqB,CAAC,SAAS,GAC/B,GAAG,CAAC,SAAS,GACb,MAAM,CAAC,SAAS,GAChB,OAAO,CAAC,SAAS,CAAA;AAEnB,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAA;AAEvD,eAAe,cAAc,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/db/schema/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,KAAK,QAAQ,MAAM,oBAAoB,CAAA;AAC9C,OAAO,KAAK,gBAAgB,MAAM,6BAA6B,CAAA;AAC/D,OAAO,KAAK,aAAa,MAAM,mBAAmB,CAAA;AAClD,OAAO,KAAK,eAAe,MAAM,qBAAqB,CAAA;AACtD,OAAO,KAAK,aAAa,MAAM,mBAAmB,CAAA;AAClD,OAAO,KAAK,KAAK,MAAM,SAAS,CAAA;AAChC,OAAO,KAAK,UAAU,MAAM,eAAe,CAAA;AAC3C,OAAO,KAAK,qBAAqB,MAAM,0BAA0B,CAAA;AACjE,OAAO,KAAK,GAAG,MAAM,aAAa,CAAA;AAClC,OAAO,KAAK,MAAM,MAAM,UAAU,CAAA;AAClC,OAAO,KAAK,OAAO,MAAM,WAAW,CAAA;AAEpC,OAAO,KAAK,iBAAiB,MAAM,uBAAuB,CAAA;AAC1D,OAAO,KAAK,kBAAkB,MAAM,wBAAwB,CAAA;AAC5D,OAAO,KAAK,wBAAwB,MAAM,+BAA+B,CAAA;AACzE,OAAO,KAAK,wBAAwB,MAAM,+BAA+B,CAAA;AAEzE,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAC,SAAS,GACjD,gBAAgB,CAAC,SAAS,GAC1B,KAAK,CAAC,SAAS,GACf,UAAU,CAAC,SAAS,GACpB,aAAa,CAAC,SAAS,GACvB,eAAe,CAAC,SAAS,GACzB,aAAa,CAAC,SAAS,GACvB,qBAAqB,CAAC,SAAS,GAC/B,GAAG,CAAC,SAAS,GACb,MAAM,CAAC,SAAS,GAChB,OAAO,CAAC,SAAS,GACjB,kBAAkB,CAAC,SAAS,GAC5B,iBAAiB,CAAC,SAAS,GAC3B,wBAAwB,CAAC,SAAS,GAClC,wBAAwB,CAAC,SAAS,CAAA;AAEpC,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAA;AAEvD,eAAe,cAAc,CAAA"}
@@ -0,0 +1,14 @@
1
+ import { GeneratedAlways, Selectable } from 'kysely';
2
+ export declare const tableName = "record_events_stats";
3
+ export type RecordEventsStats = {
4
+ subjectDid: GeneratedAlways<string>;
5
+ subjectUri: GeneratedAlways<string>;
6
+ escalateCount: GeneratedAlways<number>;
7
+ reportCount: GeneratedAlways<number>;
8
+ appealCount: GeneratedAlways<number>;
9
+ };
10
+ export type RecordEventsStatsRow = Selectable<RecordEventsStats>;
11
+ export type PartialDB = {
12
+ [tableName]: RecordEventsStats;
13
+ };
14
+ //# sourceMappingURL=record_events_stats.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"record_events_stats.d.ts","sourceRoot":"","sources":["../../../src/db/schema/record_events_stats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AAEpD,eAAO,MAAM,SAAS,wBAAwB,CAAA;AAE9C,MAAM,MAAM,iBAAiB,GAAG;IAC9B,UAAU,EAAE,eAAe,CAAC,MAAM,CAAC,CAAA;IACnC,UAAU,EAAE,eAAe,CAAC,MAAM,CAAC,CAAA;IACnC,aAAa,EAAE,eAAe,CAAC,MAAM,CAAC,CAAA;IACtC,WAAW,EAAE,eAAe,CAAC,MAAM,CAAC,CAAA;IACpC,WAAW,EAAE,eAAe,CAAC,MAAM,CAAC,CAAA;CACrC,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAA;AAEhE,MAAM,MAAM,SAAS,GAAG;IAAE,CAAC,SAAS,CAAC,EAAE,iBAAiB,CAAA;CAAE,CAAA"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.tableName = void 0;
4
+ exports.tableName = 'record_events_stats';
5
+ //# sourceMappingURL=record_events_stats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"record_events_stats.js","sourceRoot":"","sources":["../../../src/db/schema/record_events_stats.ts"],"names":[],"mappings":";;;AAEa,QAAA,SAAS,GAAG,qBAAqB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAA;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAA;AAUvB,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAEpD,OAAO,UAAU,EAAE,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAGzD,cAAc,UAAU,CAAA;AACxB,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AAC/B,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAErC,qBAAa,YAAY;IAChB,GAAG,EAAE,UAAU,CAAA;IACf,GAAG,EAAE,OAAO,CAAC,WAAW,CAAA;IACxB,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAA;IAC3B,OAAO,CAAC,UAAU,CAAC,CAAgB;IACnC,OAAO,CAAC,eAAe,CAAC,CAAgB;gBAE5B,IAAI,EAAE;QAAE,GAAG,EAAE,UAAU,CAAC;QAAC,GAAG,EAAE,OAAO,CAAC,WAAW,CAAA;KAAE;WAKlD,MAAM,CACjB,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,YAAY,EACrB,SAAS,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,GACrC,OAAO,CAAC,YAAY,CAAC;IA4BlB,kBAAkB;IA8BlB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;IAsC7B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAQ/B;AAED,eAAe,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAA;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAA;AAUvB,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAEpD,OAAO,UAAU,EAAE,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAGzD,cAAc,UAAU,CAAA;AACxB,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AAC/B,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAErC,qBAAa,YAAY;IAChB,GAAG,EAAE,UAAU,CAAA;IACf,GAAG,EAAE,OAAO,CAAC,WAAW,CAAA;IACxB,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAA;IAC3B,OAAO,CAAC,UAAU,CAAC,CAAgB;IACnC,OAAO,CAAC,eAAe,CAAC,CAAgB;gBAE5B,IAAI,EAAE;QAAE,GAAG,EAAE,UAAU,CAAC;QAAC,GAAG,EAAE,OAAO,CAAC,WAAW,CAAA;KAAE;WAKlD,MAAM,CACjB,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,YAAY,EACrB,SAAS,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,GACrC,OAAO,CAAC,YAAY,CAAC;IA4BlB,kBAAkB;IA8BlB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;IAgC7B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAQ/B;AAED,eAAe,YAAY,CAAA"}
package/dist/index.js CHANGED
@@ -145,10 +145,7 @@ class OzoneService {
145
145
  totalCount: db.pool.totalCount,
146
146
  waitingCount: db.pool.waitingCount,
147
147
  }, 'db pool stats');
148
- logger_1.dbLogger.info({
149
- runningCount: backgroundQueue.queue.pending,
150
- waitingCount: backgroundQueue.queue.size,
151
- }, 'background queue stats');
148
+ logger_1.dbLogger.info(backgroundQueue.getStats(), 'background queue stats');
152
149
  }, 10000);
153
150
  await this.ctx.sequencer.start();
154
151
  const server = this.app.listen(this.ctx.cfg.service.port);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}