@dereekb/firebase-server 13.4.1 → 13.4.2

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 (101) hide show
  1. package/index.cjs.js +455 -113
  2. package/index.esm.js +456 -114
  3. package/mailgun/package.json +9 -9
  4. package/model/index.cjs.js +645 -350
  5. package/model/index.esm.js +646 -351
  6. package/model/package.json +9 -9
  7. package/model/src/lib/mailgun/notification.send.service.mailgun.d.ts +1 -0
  8. package/model/src/lib/notification/index.d.ts +2 -2
  9. package/model/src/lib/notification/{notification.action.service.d.ts → notification.action.server.d.ts} +53 -1
  10. package/model/src/lib/notification/{notification.action.init.service.d.ts → notification.action.server.init.d.ts} +20 -0
  11. package/model/src/lib/notification/notification.config.service.d.ts +2 -0
  12. package/model/src/lib/notification/notification.create.run.d.ts +1 -0
  13. package/model/src/lib/notification/notification.error.d.ts +16 -0
  14. package/model/src/lib/notification/notification.expedite.service.d.ts +11 -3
  15. package/model/src/lib/notification/notification.module.d.ts +19 -6
  16. package/model/src/lib/notification/notification.send.service.notificationsummary.d.ts +1 -0
  17. package/model/src/lib/notification/notification.send.service.text.d.ts +2 -0
  18. package/model/src/lib/notification/notification.task.service.handler.d.ts +1 -0
  19. package/model/src/lib/notification/notification.task.service.util.d.ts +1 -0
  20. package/model/src/lib/notification/notification.task.subtask.handler.d.ts +3 -0
  21. package/model/src/lib/notification/notification.util.d.ts +4 -2
  22. package/model/src/lib/storagefile/index.d.ts +1 -1
  23. package/model/src/lib/storagefile/storagefile.action.server.d.ts +98 -1
  24. package/model/src/lib/storagefile/{storagefile.action.init.service.d.ts → storagefile.action.server.init.d.ts} +13 -2
  25. package/model/src/lib/storagefile/storagefile.error.d.ts +27 -0
  26. package/model/src/lib/storagefile/storagefile.module.d.ts +14 -4
  27. package/model/src/lib/storagefile/storagefile.task.service.handler.d.ts +29 -7
  28. package/model/src/lib/storagefile/storagefile.upload.service.initializer.d.ts +2 -0
  29. package/oidc/index.cjs.js +150 -32
  30. package/oidc/index.esm.js +150 -32
  31. package/oidc/package.json +10 -10
  32. package/oidc/src/lib/controller/oidc.interaction.controller.d.ts +12 -0
  33. package/oidc/src/lib/controller/oidc.wellknown.controller.d.ts +6 -0
  34. package/oidc/src/lib/model/jwks/jwks.d.ts +9 -0
  35. package/oidc/src/lib/model/jwks/jwks.query.d.ts +9 -0
  36. package/oidc/src/lib/model/oidc/oidcmodel.action.server.d.ts +13 -0
  37. package/oidc/src/lib/model/oidc/oidcmodel.module.d.ts +5 -1
  38. package/oidc/src/lib/oidc.config.d.ts +2 -1
  39. package/oidc/src/lib/oidc.module.d.ts +9 -2
  40. package/oidc/src/lib/service/oidc.account.service.d.ts +7 -0
  41. package/oidc/src/lib/service/oidc.adapter.service.d.ts +1 -0
  42. package/oidc/src/lib/service/oidc.config.service.d.ts +1 -0
  43. package/oidc/src/lib/service/oidc.encryption.service.d.ts +6 -0
  44. package/oidc/src/lib/service/oidc.interaction.service.d.ts +15 -0
  45. package/oidc/src/lib/service/oidc.jwks.service.d.ts +18 -2
  46. package/oidc/src/lib/service/oidc.service.d.ts +7 -3
  47. package/package.json +10 -10
  48. package/src/lib/auth/auth.context.d.ts +1 -0
  49. package/src/lib/auth/auth.service.d.ts +13 -0
  50. package/src/lib/env/env.config.d.ts +2 -0
  51. package/src/lib/env/env.service.d.ts +21 -7
  52. package/src/lib/firestore/array.d.ts +1 -0
  53. package/src/lib/firestore/driver.accessor.batch.d.ts +4 -0
  54. package/src/lib/firestore/driver.accessor.d.ts +4 -0
  55. package/src/lib/firestore/driver.accessor.default.d.ts +5 -1
  56. package/src/lib/firestore/driver.accessor.transaction.d.ts +4 -0
  57. package/src/lib/firestore/driver.d.ts +2 -0
  58. package/src/lib/firestore/driver.query.d.ts +4 -0
  59. package/src/lib/firestore/increment.d.ts +1 -0
  60. package/src/lib/function/assert.d.ts +7 -0
  61. package/src/lib/function/context.d.ts +4 -0
  62. package/src/lib/function/error.auth.d.ts +2 -0
  63. package/src/lib/function/error.d.ts +86 -11
  64. package/src/lib/index.d.ts +0 -1
  65. package/src/lib/nest/analytics/analytics.service.listener.d.ts +2 -0
  66. package/src/lib/nest/app.d.ts +6 -3
  67. package/src/lib/nest/auth/auth.module.d.ts +6 -0
  68. package/src/lib/nest/auth/auth.util.d.ts +19 -1
  69. package/src/lib/nest/development/development.app.function.d.ts +12 -4
  70. package/src/lib/nest/development/development.assert.function.d.ts +6 -2
  71. package/src/lib/nest/development/development.function.d.ts +6 -1
  72. package/src/lib/nest/development/development.schedule.function.d.ts +3 -1
  73. package/src/lib/nest/development/development.schedule.function.error.d.ts +8 -0
  74. package/src/lib/nest/env/env.service.d.ts +2 -0
  75. package/src/lib/nest/env/env.util.d.ts +6 -0
  76. package/src/lib/nest/firebase/firebase.module.d.ts +1 -0
  77. package/src/lib/nest/firestore/firestore.module.d.ts +8 -0
  78. package/src/lib/nest/function/context.d.ts +2 -0
  79. package/src/lib/nest/model/analytics.details.d.ts +21 -7
  80. package/src/lib/nest/model/analytics.emit.d.ts +3 -0
  81. package/src/lib/nest/model/analytics.handler.d.ts +30 -10
  82. package/src/lib/nest/model/api.details.d.ts +34 -1
  83. package/src/lib/nest/model/call.model.function.d.ts +20 -4
  84. package/src/lib/nest/model/create.model.function.d.ts +6 -1
  85. package/src/lib/nest/model/crud.assert.function.d.ts +12 -4
  86. package/src/lib/nest/model/delete.model.function.d.ts +6 -1
  87. package/src/lib/nest/model/permission.error.d.ts +7 -0
  88. package/src/lib/nest/model/read.model.function.d.ts +6 -1
  89. package/src/lib/nest/model/specifier.function.d.ts +3 -0
  90. package/src/lib/nest/model/update.model.function.d.ts +6 -1
  91. package/src/lib/nest/nest.provider.d.ts +10 -0
  92. package/src/lib/nest/storage/storage.module.d.ts +9 -0
  93. package/src/lib/storage/driver.accessor.d.ts +22 -0
  94. package/src/lib/storage/driver.d.ts +2 -0
  95. package/src/lib/storage/storage.d.ts +1 -0
  96. package/test/package.json +10 -10
  97. package/zoho/index.cjs.js +8 -6
  98. package/zoho/index.esm.js +8 -6
  99. package/zoho/package.json +9 -9
  100. package/zoho/src/lib/zoho.accounts.firebase.d.ts +2 -1
  101. package/zoho/src/lib/zoho.accounts.firebase.system.d.ts +2 -1
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "@dereekb/firebase-server/model",
3
- "version": "13.4.1",
3
+ "version": "13.4.2",
4
4
  "peerDependencies": {
5
- "@dereekb/analytics": "13.4.1",
6
- "@dereekb/date": "13.4.1",
7
- "@dereekb/firebase": "13.4.1",
8
- "@dereekb/firebase-server": "13.4.1",
9
- "@dereekb/model": "13.4.1",
10
- "@dereekb/nestjs": "13.4.1",
11
- "@dereekb/rxjs": "13.4.1",
12
- "@dereekb/util": "13.4.1",
5
+ "@dereekb/analytics": "13.4.2",
6
+ "@dereekb/date": "13.4.2",
7
+ "@dereekb/firebase": "13.4.2",
8
+ "@dereekb/firebase-server": "13.4.2",
9
+ "@dereekb/model": "13.4.2",
10
+ "@dereekb/nestjs": "13.4.2",
11
+ "@dereekb/rxjs": "13.4.2",
12
+ "@dereekb/util": "13.4.2",
13
13
  "@nestjs/common": "^11.1.16",
14
14
  "@nestjs/config": "^4.0.3",
15
15
  "archiver": "^7.0.0",
@@ -59,6 +59,7 @@ export type MailgunNotificationEmailSendService = NotificationEmailSendService;
59
59
  * and dispatches them through the Mailgun API.
60
60
  *
61
61
  * @param config - service configuration including the Mailgun service, template builders, and batch size
62
+ * @returns a {@link NotificationEmailSendService} that batches and sends emails through Mailgun
62
63
  *
63
64
  * @example
64
65
  * ```ts
@@ -1,5 +1,5 @@
1
- export * from './notification.action.service';
2
- export * from './notification.action.init.service';
1
+ export * from './notification.action.server';
2
+ export * from './notification.action.server.init';
3
3
  export * from './notification.config.service';
4
4
  export * from './notification.config';
5
5
  export * from './notification.create.run';
@@ -64,6 +64,7 @@ export declare abstract class NotificationServerActions {
64
64
  * to its factory function using the provided context.
65
65
  *
66
66
  * @param context - the fully assembled notification server actions context
67
+ * @returns a fully wired {@link NotificationServerActions} instance
67
68
  *
68
69
  * @example
69
70
  * ```ts
@@ -78,6 +79,9 @@ export declare function notificationServerActions(context: NotificationServerAct
78
79
  *
79
80
  * Validates the UID exists in Firebase Auth, then creates a new {@link NotificationUser} document
80
81
  * with empty default and global configs. Throws if the UID is not found in Auth.
82
+ *
83
+ * @param context - the notification server actions context with auth and collection access
84
+ * @returns a transform-and-validate function that creates a new notification user document
81
85
  */
82
86
  export declare function createNotificationUserFactory(context: NotificationServerActionsContext): import("@dereekb/model").TransformAndValidateFunctionResultFunction<CreateNotificationUserParams, () => Promise<NotificationUserDocument>, object, unknown>;
83
87
  /**
@@ -86,6 +90,9 @@ export declare function createNotificationUserFactory(context: NotificationServe
86
90
  * Updates a {@link NotificationUser}'s default config (`dc`), global config (`gc`), and/or
87
91
  * box configs (`bc`). When the global config changes, iterates all box configs to propagate
88
92
  * effective recipient changes and marks affected entries for sync.
93
+ *
94
+ * @param context - the notification server actions context with Firestore and collection access
95
+ * @returns a transform-and-validate function that updates an existing notification user document
89
96
  */
90
97
  export declare function updateNotificationUserFactory(context: NotificationServerActionsContext): import("@dereekb/model").TransformAndValidateFunctionResultFunction<UpdateNotificationUserParams, (notificationUserDocument: NotificationUserDocument) => Promise<NotificationUserDocument>, object, unknown>;
91
98
  /**
@@ -95,6 +102,9 @@ export declare function updateNotificationUserFactory(context: NotificationServe
95
102
  * entries flagged with `ns=true` (needs-sync), loading the corresponding {@link NotificationBox},
96
103
  * and merging the user's preferences back into the box's recipient list. Handles removed entries
97
104
  * and cleans up stale box references.
105
+ *
106
+ * @param context - the notification server actions context with Firestore and collection access
107
+ * @returns a transform-and-validate function that resyncs a notification user's box configurations
98
108
  */
99
109
  export declare function resyncNotificationUserFactory(context: NotificationServerActionsContext): import("@dereekb/model").TransformAndValidateFunctionResultFunction<import("@dereekb/firebase").TargetModelParams, (notificationUserDocument: NotificationUserDocument) => Promise<ResyncNotificationUserResult>, object, unknown>;
100
110
  /**
@@ -103,6 +113,9 @@ export declare function resyncNotificationUserFactory(context: NotificationServe
103
113
  * Batch-processes all {@link NotificationUser} documents flagged for sync by querying
104
114
  * for entries with `ns=true`, then calling the resync logic for each in parallel
105
115
  * (up to 5 concurrent tasks). Loops until no more flagged users are found.
116
+ *
117
+ * @param context - the notification server actions context with collection access
118
+ * @returns an async function that resyncs all flagged notification users and returns aggregate results
106
119
  */
107
120
  export declare function resyncAllNotificationUsersFactory(context: NotificationServerActionsContext): () => Promise<ResyncAllNotificationUsersResult>;
108
121
  /**
@@ -110,6 +123,9 @@ export declare function resyncAllNotificationUsersFactory(context: NotificationS
110
123
  *
111
124
  * Creates a new {@link NotificationSummary} document for a model, generating the summary ID
112
125
  * from the model key and initializing it with a blank template.
126
+ *
127
+ * @param context - the notification server actions context with collection access
128
+ * @returns a transform-and-validate function that creates a new notification summary document
113
129
  */
114
130
  export declare function createNotificationSummaryFactory(context: NotificationServerActionsContext): import("@dereekb/model").TransformAndValidateFunctionResultFunction<CreateNotificationSummaryParams, () => Promise<NotificationSummaryDocument>, object, unknown>;
115
131
  /**
@@ -117,6 +133,9 @@ export declare function createNotificationSummaryFactory(context: NotificationSe
117
133
  *
118
134
  * Updates an existing {@link NotificationSummary} document's owner or setup flag.
119
135
  * Runs within a Firestore transaction to ensure consistency.
136
+ *
137
+ * @param context - the notification server actions context
138
+ * @returns a transform-and-validate function that updates an existing notification summary document
120
139
  */
121
140
  export declare function updateNotificationSummaryFactory(context: NotificationServerActionsContext): import("@dereekb/model").TransformAndValidateFunctionResultFunction<UpdateNotificationSummaryParams, (notificationSummaryDocument: NotificationSummaryDocument) => Promise<NotificationSummaryDocument>, object, unknown>;
122
141
  /**
@@ -139,6 +158,9 @@ export interface CreateNotificationBoxInTransactionInput extends NotificationBox
139
158
  *
140
159
  * Checks for existing boxes and throws if one already exists for the model.
141
160
  * Also syncs initial recipients with their corresponding {@link NotificationUser} documents.
161
+ *
162
+ * @param context - the base notification server actions context with collection access
163
+ * @returns an async function that creates a notification box within a transaction and returns the document and template
142
164
  */
143
165
  export declare function createNotificationBoxInTransactionFactory(context: BaseNotificationServerActionsContext): (params: CreateNotificationBoxInTransactionInput, transaction: Transaction) => Promise<{
144
166
  notificationBoxTemplate: NotificationBox;
@@ -149,9 +171,21 @@ export declare function createNotificationBoxInTransactionFactory(context: BaseN
149
171
  *
150
172
  * Wraps {@link createNotificationBoxInTransactionFactory} in a Firestore transaction
151
173
  * and follows the transform-and-validate pattern.
174
+ *
175
+ * @param context - the notification server actions context with Firestore and collection access
176
+ * @returns a transform-and-validate function that creates a new notification box document
152
177
  */
153
178
  export declare function createNotificationBoxFactory(context: NotificationServerActionsContext): import("@dereekb/model").TransformAndValidateFunctionResultFunction<CreateNotificationBoxParams, () => Promise<NotificationBoxDocument>, object, unknown>;
154
- export declare function updateNotificationBoxFactory({ firebaseServerActionTransformFunctionFactory }: NotificationServerActionsContext): import("@dereekb/model").TransformAndValidateFunctionResultFunction<import("@dereekb/firebase").TargetModelParams, (notificationBoxDocument: NotificationBoxDocument) => Promise<NotificationBoxDocument>, object, unknown>;
179
+ /**
180
+ * Factory for the `updateNotificationBox` action.
181
+ *
182
+ * Currently a no-op placeholder that returns the document unchanged.
183
+ * Reserved for future box-level update logic.
184
+ *
185
+ * @param context - the notification server actions context (destructured for the transform factory)
186
+ * @returns a transform-and-validate function that returns the notification box document unchanged
187
+ */
188
+ export declare function updateNotificationBoxFactory(context: NotificationServerActionsContext): import("@dereekb/model").TransformAndValidateFunctionResultFunction<import("@dereekb/firebase").TargetModelParams, (notificationBoxDocument: NotificationBoxDocument) => Promise<NotificationBoxDocument>, object, unknown>;
155
189
  export interface UpdateNotificationBoxRecipientExclusionInTransactionInput extends NotificationBoxDocumentReferencePair {
156
190
  readonly params: UpdateNotificationBoxRecipientParams;
157
191
  }
@@ -163,6 +197,9 @@ export interface UpdateNotificationBoxRecipientExclusionInTransactionResult {
163
197
  *
164
198
  * Manages the exclusion list (`x`) on both the box recipient and the corresponding
165
199
  * {@link NotificationUser}'s send exclusion array, keeping them in sync.
200
+ *
201
+ * @param context - the base notification server actions context with collection access
202
+ * @returns an async function that updates recipient exclusions within a transaction
166
203
  */
167
204
  export declare function updateNotificationBoxRecipientExclusionInTransactionFactory(context: BaseNotificationServerActionsContext): (input: UpdateNotificationBoxRecipientExclusionInTransactionInput, transaction: Transaction) => Promise<Maybe<UpdateNotificationBoxRecipientExclusionInTransactionResult>>;
168
205
  export interface UpdateNotificationBoxRecipientInTransactionInput extends NotificationBoxDocumentReferencePair {
@@ -192,6 +229,9 @@ export interface UpdateNotificationBoxRecipientInTransactionResult {
192
229
  * Handles inserting new recipients, updating existing ones, and removing recipients.
193
230
  * Syncs changes with the recipient's {@link NotificationUser} document and manages
194
231
  * recipient index assignment via a sorted-values free-index calculator.
232
+ *
233
+ * @param context - the base notification server actions context with auth and collection access
234
+ * @returns an async function that updates a recipient on a notification box within a transaction
195
235
  */
196
236
  export declare function updateNotificationBoxRecipientInTransactionFactory(context: BaseNotificationServerActionsContext): (input: UpdateNotificationBoxRecipientInTransactionInput, transaction: Transaction) => Promise<Maybe<UpdateNotificationBoxRecipientInTransactionResult>>;
197
237
  /**
@@ -199,6 +239,9 @@ export declare function updateNotificationBoxRecipientInTransactionFactory(conte
199
239
  *
200
240
  * Wraps the in-transaction recipient update logic, handling both recipient changes
201
241
  * and send exclusion updates in a single Firestore transaction.
242
+ *
243
+ * @param context - the notification server actions context with Firestore and collection access
244
+ * @returns a transform-and-validate function that updates a recipient on a notification box
202
245
  */
203
246
  export declare function updateNotificationBoxRecipientFactory(context: NotificationServerActionsContext): import("@dereekb/model").TransformAndValidateFunctionResultFunction<UpdateNotificationBoxRecipientParams, (notificationBoxDocument: NotificationBoxDocument) => Promise<NotificationBoxDocument>, object, unknown>;
204
247
  export declare const UNKNOWN_NOTIFICATION_TEMPLATE_TYPE_HOURS_DELAY = 8;
@@ -229,6 +272,9 @@ export declare const NOTIFICATION_TASK_TYPE_FAILURE_DELAY_MS: number;
229
272
  *
230
273
  * Supports throttling via `sendAt` time, configurable send flags, and task-based
231
274
  * async workflows for notifications that require multi-step processing.
275
+ *
276
+ * @param context - the notification server actions context with template, send, and task services
277
+ * @returns a transform-and-validate function that processes and sends a notification document
232
278
  */
233
279
  export declare function sendNotificationFactory(context: NotificationServerActionsContext): import("@dereekb/model").TransformAndValidateFunctionResultFunction<SendNotificationParams, (inputNotificationDocument: NotificationDocument) => Promise<SendNotificationResult>, object, unknown>;
234
280
  /**
@@ -252,6 +298,9 @@ export interface SendQueuedNotificationsInput {
252
298
  * and an optional {@link NotificationExpediteService} for immediate delivery.
253
299
  * Continues processing batches until no more queued notifications are found
254
300
  * or the time budget is exhausted.
301
+ *
302
+ * @param context - the notification server actions context with collection group and send factory access
303
+ * @returns a transform-and-validate function that processes all queued notifications and returns aggregate results
255
304
  */
256
305
  export declare function sendQueuedNotificationsFactory(context: NotificationServerActionsContext): import("@dereekb/model").TransformAndValidateFunctionResultFunction<SendQueuedNotificationsParams, (input?: Maybe<SendQueuedNotificationsInput>) => Promise<SendQueuedNotificationsResult>, object, unknown>;
257
306
  /**
@@ -260,5 +309,8 @@ export declare function sendQueuedNotificationsFactory(context: NotificationServ
260
309
  * Queries for {@link Notification} documents that are ready for cleanup (fully sent,
261
310
  * past the retention window) and deletes them in batches. Continues until no more
262
311
  * cleanup-eligible notifications are found.
312
+ *
313
+ * @param context - the notification server actions context with Firestore and collection access
314
+ * @returns a transform-and-validate function that cleans up sent notification documents and returns aggregate results
263
315
  */
264
316
  export declare function cleanupSentNotificationsFactory(context: NotificationServerActionsContext): import("@dereekb/model").TransformAndValidateFunctionResultFunction<CleanupSentNotificationsParams, () => Promise<CleanupSentNotificationsResult>, object, unknown>;
@@ -75,6 +75,7 @@ export declare abstract class NotificationInitServerActions {
75
75
  * initialization action to its factory function.
76
76
  *
77
77
  * @param context - the initialization context with template functions and Firestore access
78
+ * @returns a fully wired {@link NotificationInitServerActions} instance
78
79
  *
79
80
  * @example
80
81
  * ```ts
@@ -106,6 +107,7 @@ export interface InitializeNotificationModelInTransactionInput<D extends Firesto
106
107
  * Skips initialization if the model is already initialized, optionally throwing an error.
107
108
  *
108
109
  * @param input - the document, transaction, template function, and options
110
+ * @returns an object with `initialized` and `alreadyInitialized` boolean flags
109
111
  * @throws notificationModelAlreadyInitializedError when `throwErrorIfAlreadyInitialized` is true
110
112
  */
111
113
  export declare function initializeNotificationModelInTransaction<D extends FirestoreDocument<InitializedNotificationModel, any>>(input: InitializeNotificationModelInTransactionInput<D>): Promise<{
@@ -117,6 +119,9 @@ export declare function initializeNotificationModelInTransaction<D extends Fires
117
119
  *
118
120
  * Loads the box document in the transaction, reads its current data, and delegates
119
121
  * to {@link initializeNotificationModelInTransaction} with the box-specific template function.
122
+ *
123
+ * @param context - the initialization context with collection references and template functions
124
+ * @returns an async function that initializes a notification box given params, document, and transaction
120
125
  */
121
126
  export declare function initializeNotificationBoxInTransactionFactory(context: NotificationInitServerActionsContext): (params: InitializeNotificationModelParams, notificationBoxDocument: NotificationBoxDocument, transaction: Transaction) => Promise<{
122
127
  initialized: boolean;
@@ -127,6 +132,9 @@ export declare function initializeNotificationBoxInTransactionFactory(context: N
127
132
  *
128
133
  * Wraps the in-transaction initialization in a Firestore transaction
129
134
  * and follows the transform-and-validate pattern.
135
+ *
136
+ * @param context - the initialization context with Firestore access and template functions
137
+ * @returns a transform-and-validate function that initializes a single notification box
130
138
  */
131
139
  export declare function initializeNotificationBoxFactory(context: NotificationInitServerActionsContext): import("@dereekb/model").TransformAndValidateFunctionResultFunction<InitializeNotificationModelParams, (notificationBoxDocument: NotificationBoxDocument) => Promise<NotificationBoxDocument>, object, unknown>;
132
140
  /**
@@ -135,6 +143,9 @@ export declare function initializeNotificationBoxFactory(context: NotificationIn
135
143
  * Batch-processes all {@link NotificationBox} documents flagged for initialization
136
144
  * by querying for entries with `s=true` (setup needed), then initializing each in
137
145
  * parallel (up to 5 concurrent tasks). Loops until no more flagged boxes are found.
146
+ *
147
+ * @param context - the initialization context with Firestore access and collection references
148
+ * @returns a transform-and-validate function that batch-initializes all applicable notification boxes
138
149
  */
139
150
  export declare function initializeAllApplicableNotificationBoxesFactory(context: NotificationInitServerActionsContext): import("@dereekb/model").TransformAndValidateFunctionResultFunction<InitializeAllApplicableNotificationBoxesParams, () => Promise<InitializeAllApplicableNotificationBoxesResult>, object, unknown>;
140
151
  /**
@@ -142,6 +153,9 @@ export declare function initializeAllApplicableNotificationBoxesFactory(context:
142
153
  *
143
154
  * Loads the summary document in the transaction, reads its current data, and delegates
144
155
  * to {@link initializeNotificationModelInTransaction} with the summary-specific template function.
156
+ *
157
+ * @param context - the initialization context with collection references and template functions
158
+ * @returns an async function that initializes a notification summary given params, document, and transaction
145
159
  */
146
160
  export declare function initializeNotificationSummaryInTransactionFactory(context: NotificationInitServerActionsContext): (params: InitializeNotificationModelParams, notificationSummaryDocument: NotificationSummaryDocument, transaction: Transaction) => Promise<{
147
161
  initialized: boolean;
@@ -152,6 +166,9 @@ export declare function initializeNotificationSummaryInTransactionFactory(contex
152
166
  *
153
167
  * Wraps the in-transaction summary initialization in a Firestore transaction
154
168
  * and follows the transform-and-validate pattern.
169
+ *
170
+ * @param context - the initialization context with Firestore access and template functions
171
+ * @returns a transform-and-validate function that initializes a single notification summary
155
172
  */
156
173
  export declare function initializeNotificationSummaryFactory(context: NotificationInitServerActionsContext): import("@dereekb/model").TransformAndValidateFunctionResultFunction<InitializeNotificationModelParams, (notificationSummaryDocument: NotificationSummaryDocument) => Promise<NotificationSummaryDocument>, object, unknown>;
157
174
  /**
@@ -160,5 +177,8 @@ export declare function initializeNotificationSummaryFactory(context: Notificati
160
177
  * Batch-processes all {@link NotificationSummary} documents flagged for initialization
161
178
  * by querying for entries with `s=true` (setup needed), then initializing each in
162
179
  * parallel (up to 5 concurrent tasks). Loops until no more flagged summaries are found.
180
+ *
181
+ * @param context - the initialization context with Firestore access and collection references
182
+ * @returns a transform-and-validate function that batch-initializes all applicable notification summaries
163
183
  */
164
184
  export declare function initializeAllApplicableNotificationSummariesFactory(context: NotificationInitServerActionsContext): import("@dereekb/model").TransformAndValidateFunctionResultFunction<InitializeAllApplicableNotificationSummariesParams, () => Promise<InitializeAllApplicableNotificationSummariesResult>, object, unknown>;
@@ -36,6 +36,7 @@ export declare class NotificationTemplateService {
36
36
  * pre-wired with the resolved factory for that type.
37
37
  *
38
38
  * @param type - the notification template type
39
+ * @returns a new {@link NotificationTemplateServiceInstance} bound to the given type
39
40
  */
40
41
  templateInstanceForType(type: NotificationTemplateType): NotificationTemplateServiceInstance;
41
42
  }
@@ -75,6 +76,7 @@ export interface NotificationTemplateServiceInstance {
75
76
  *
76
77
  * @param service - the parent template service
77
78
  * @param type - the template type to bind
79
+ * @returns a {@link NotificationTemplateServiceInstance} with the resolved factory for the type
78
80
  *
79
81
  * @example
80
82
  * ```ts
@@ -65,6 +65,7 @@ export interface CreateOrRunUniqueNotificationDocumentRunResult extends CreateNo
65
65
  * Does not support Firestore transactions, as running should occur outside of a transaction.
66
66
  *
67
67
  * @param input - creation and run configuration
68
+ * @returns the creation pair result with optional send/enqueue outcomes
68
69
  * @throws Error if the notification template is not flagged as unique
69
70
  *
70
71
  * @example
@@ -3,6 +3,8 @@ import { type FirestoreModelKey, type FirebaseAuthUserId } from '@dereekb/fireba
3
3
  * Creates an error indicating that a required notification ID was missing during creation.
4
4
  *
5
5
  * Thrown when attempting to create a {@link Notification} document without providing the mandatory ID field.
6
+ *
7
+ * @returns a precondition conflict error with the notification ID required error code
6
8
  */
7
9
  export declare function createNotificationIdRequiredError(): import("firebase-functions/https").HttpsError;
8
10
  /**
@@ -10,6 +12,8 @@ export declare function createNotificationIdRequiredError(): import("firebase-fu
10
12
  *
11
13
  * Thrown during initialization when `throwErrorIfAlreadyInitialized` is true and the model's
12
14
  * setup flag (`s`) indicates it was previously initialized.
15
+ *
16
+ * @returns a precondition conflict error with the already-initialized error code
13
17
  */
14
18
  export declare function notificationModelAlreadyInitializedError(): import("firebase-functions/https").HttpsError;
15
19
  /**
@@ -18,12 +22,15 @@ export declare function notificationModelAlreadyInitializedError(): import("fire
18
22
  * Thrown when the model key's collection name does not match any registered notification model type.
19
23
  *
20
24
  * @param key - the Firestore model key that has no registered notification model type
25
+ * @returns a precondition conflict error with the unregistered model type error code
21
26
  */
22
27
  export declare function notificationBoxUnregistredModelTypeInitializationError(key: FirestoreModelKey): import("firebase-functions/https").HttpsError;
23
28
  /**
24
29
  * Creates an error indicating that no {@link NotificationBox} exists for the target model.
25
30
  *
26
31
  * Thrown when an operation requires a NotificationBox but none has been created for the given model key.
32
+ *
33
+ * @returns a precondition conflict error with the box-not-found error code
27
34
  */
28
35
  export declare function notificationBoxDoesNotExist(): import("firebase-functions/https").HttpsError;
29
36
  /**
@@ -31,12 +38,16 @@ export declare function notificationBoxDoesNotExist(): import("firebase-function
31
38
  *
32
39
  * Thrown when the target recipient on the {@link NotificationBox} does not exist on the box
33
40
  * or does not have a UID, making it ineligible for exclusion.
41
+ *
42
+ * @returns a precondition conflict error with the invalid exclusion target error code
34
43
  */
35
44
  export declare function notificationBoxExclusionTargetInvalidError(): import("firebase-functions/https").HttpsError;
36
45
  /**
37
46
  * Creates an error indicating that a {@link NotificationBox} already exists for this model.
38
47
  *
39
48
  * Thrown when attempting to create a duplicate NotificationBox for a model that already has one.
49
+ *
50
+ * @returns a precondition conflict error with the box-exists error code
40
51
  */
41
52
  export declare function notificationBoxExistsForModelError(): import("firebase-functions/https").HttpsError;
42
53
  /**
@@ -44,6 +55,8 @@ export declare function notificationBoxExistsForModelError(): import("firebase-f
44
55
  *
45
56
  * Thrown when attempting to update a recipient that is not registered on the box
46
57
  * and `insert=true` was not passed to allow creating a new recipient entry.
58
+ *
59
+ * @returns a precondition conflict error with the recipient-not-found error code
47
60
  */
48
61
  export declare function notificationBoxRecipientDoesNotExistsError(): import("firebase-functions/https").HttpsError;
49
62
  /**
@@ -52,6 +65,7 @@ export declare function notificationBoxRecipientDoesNotExistsError(): import("fi
52
65
  * Thrown during {@link NotificationUser} creation when the provided UID cannot be found in Firebase Auth.
53
66
  *
54
67
  * @param uid - the Firebase Auth user ID that was not found
68
+ * @returns a precondition conflict error with the invalid-uid error code
55
69
  */
56
70
  export declare function notificationUserInvalidUidForCreateError(uid: FirebaseAuthUserId): import("firebase-functions/https").HttpsError;
57
71
  /**
@@ -61,6 +75,7 @@ export declare function notificationUserInvalidUidForCreateError(uid: FirebaseAu
61
75
  * and an operation attempts to insert them into a {@link NotificationBox}'s recipient list.
62
76
  *
63
77
  * @param uid - the Firebase Auth user ID of the blocked user
78
+ * @returns a precondition conflict error with the blocked-from-add error code
64
79
  */
65
80
  export declare function notificationUserBlockedFromBeingAddedToRecipientsError(uid: FirebaseAuthUserId): import("firebase-functions/https").HttpsError;
66
81
  /**
@@ -70,5 +85,6 @@ export declare function notificationUserBlockedFromBeingAddedToRecipientsError(u
70
85
  * and an operation attempts to modify their recipient settings on a {@link NotificationBox}.
71
86
  *
72
87
  * @param uid - the Firebase Auth user ID of the locked user
88
+ * @returns a precondition conflict error with the locked-config error code
73
89
  */
74
90
  export declare function notificationUserLockedConfigFromBeingUpdatedError(uid: FirebaseAuthUserId): import("firebase-functions/https").HttpsError;
@@ -1,5 +1,5 @@
1
1
  import { type CreateNotificationDocumentPairResult, type NotificationDocument, type SendNotificationParams, type SendNotificationResult } from '@dereekb/firebase';
2
- import { type NotificationServerActions } from './notification.action.service';
2
+ import { type NotificationServerActions } from './notification.action.server';
3
3
  import { type Abstract, type Provider } from '@nestjs/common';
4
4
  import { type Maybe } from '@dereekb/util';
5
5
  export type NotificationExpediteServiceSendNotificationOptions = Pick<SendNotificationParams, 'ignoreSendAtThrottle' | 'throwErrorIfSent'>;
@@ -48,8 +48,8 @@ export interface NotificationExpediteServiceInstance {
48
48
  /**
49
49
  * Creates a new NotificationExpediteServiceInstance with the input NotificationExpediteService.
50
50
 
51
- * @param notificationExpediteService
52
- * @returns
51
+ * @param notificationExpediteService - the expedite service to use for sending
52
+ * @returns a new {@link NotificationExpediteServiceInstance} with an internal queue
53
53
  */
54
54
  export declare function notificationExpediteServiceInstance(notificationExpediteService: NotificationExpediteService): NotificationExpediteServiceInstance;
55
55
  /**
@@ -70,10 +70,14 @@ export declare class MutableNotificationExpediteService implements NotificationE
70
70
  private _notificationServerActions;
71
71
  /**
72
72
  * Returns the configured NotificationServerActions instance.
73
+ *
74
+ * @returns the current {@link NotificationServerActions} instance
73
75
  */
74
76
  getNotificationServerActions(): NotificationServerActions;
75
77
  /**
76
78
  * Sets the NotificationServerActions instance to use.
79
+ *
80
+ * @param notificationServerActions - the actions instance to configure
77
81
  */
78
82
  setNotificationServerActions(notificationServerActions: NotificationServerActions): void;
79
83
  sendNotification(notificationDocument: NotificationDocument, options?: NotificationExpediteServiceSendNotificationOptions): Promise<SendNotificationResult>;
@@ -83,11 +87,15 @@ export declare class MutableNotificationExpediteService implements NotificationE
83
87
  * Provides an instance of MutableNotificationExpediteService and NotificationExpediteService.
84
88
  *
85
89
  * This should generally be used in the global module of an app.
90
+ *
91
+ * @returns an array of NestJS providers for both MutableNotificationExpediteService and NotificationExpediteService
86
92
  */
87
93
  export declare function provideMutableNotificationExpediteService(): Provider[];
88
94
  /**
89
95
  * Convenience function that exports NotificationExpediteService and MutableNotificationExpediteService.
90
96
  *
91
97
  * This should generally be used in the global module of an app.
98
+ *
99
+ * @returns an array of abstract classes to export from the NestJS module
92
100
  */
93
101
  export declare function exportMutableNotificationExpediteService(): Abstract<any>[];
@@ -1,6 +1,6 @@
1
1
  import { type ModuleMetadata } from '@nestjs/common';
2
- import { NotificationInitServerActions, type NotificationInitServerActionsContextConfig } from './notification.action.init.service';
3
- import { type BaseNotificationServerActionsContext, NotificationServerActions, type NotificationServerActionsContext } from './notification.action.service';
2
+ import { NotificationInitServerActions, type NotificationInitServerActionsContextConfig } from './notification.action.server.init';
3
+ import { type BaseNotificationServerActionsContext, NotificationServerActions, type NotificationServerActionsContext } from './notification.action.server';
4
4
  import { NotificationTemplateService } from './notification.config.service';
5
5
  import { type Maybe } from '@dereekb/util';
6
6
  import { NotificationSendService } from './notification.send.service';
@@ -9,6 +9,13 @@ import { MutableNotificationExpediteService, NotificationExpediteService } from
9
9
  /**
10
10
  * Factory that assembles the full {@link NotificationServerActionsContext} by combining
11
11
  * the base context with the template, send, task, and expedite services.
12
+ *
13
+ * @param context - the base server actions context
14
+ * @param notificationTemplateService - resolves message factories for notification template types
15
+ * @param notificationSendService - handles sending notification messages
16
+ * @param notificationTaskService - handles notification task dispatch
17
+ * @param notificationsExpediteService - expedites immediate notification delivery
18
+ * @returns the assembled {@link NotificationServerActionsContext}
12
19
  */
13
20
  export declare function notificationServerActionsContextFactory(context: BaseNotificationServerActionsContext, notificationTemplateService: NotificationTemplateService, notificationSendService: NotificationSendService, notificationTaskService: NotificationTaskService, notificationsExpediteService: NotificationExpediteService): {
14
21
  notificationTemplateService: NotificationTemplateService;
@@ -29,11 +36,18 @@ export declare function notificationServerActionsContextFactory(context: BaseNot
29
36
  };
30
37
  /**
31
38
  * Factory that creates a {@link NotificationServerActions} instance from the assembled context.
39
+ *
40
+ * @param context - the assembled notification server actions context
41
+ * @returns a new {@link NotificationServerActions} instance
32
42
  */
33
- export declare function notificationServerActionsFactory(context: NotificationServerActionsContext, mutableNotificationExpediteService: MutableNotificationExpediteService): NotificationServerActions;
43
+ export declare function notificationServerActionsFactory(context: NotificationServerActionsContext): NotificationServerActions;
34
44
  /**
35
45
  * Factory that creates a {@link NotificationInitServerActions} instance by merging the
36
46
  * server actions context with the init-specific configuration.
47
+ *
48
+ * @param context - the assembled notification server actions context
49
+ * @param notificationInitServerActionsContextConfig - init-specific configuration
50
+ * @returns a new {@link NotificationInitServerActions} instance
37
51
  */
38
52
  export declare function notificationInitServerActionsFactory(context: NotificationServerActionsContext, notificationInitServerActionsContextConfig: NotificationInitServerActionsContextConfig): NotificationInitServerActions;
39
53
  export interface ProvideAppNotificationMetadataConfig extends Pick<ModuleMetadata, 'imports' | 'exports' | 'providers'> {
@@ -62,9 +76,8 @@ export interface ProvideAppNotificationMetadataConfig extends Pick<ModuleMetadat
62
76
  *
63
77
  * Be sure the class that delares the module using this function also extends AbstractAppNotificationModule.
64
78
  *
65
- * @param provide
66
- * @param useFactory
67
- * @returns
79
+ * @param config - module metadata configuration including dependency module and additional providers
80
+ * @returns the assembled {@link ModuleMetadata} for the notification module
68
81
  */
69
82
  export declare function appNotificationModuleMetadata(config: ProvideAppNotificationMetadataConfig): ModuleMetadata;
70
83
  /**
@@ -33,6 +33,7 @@ export type FirestoreNotificationSummarySendService = NotificationSummarySendSer
33
33
  * Each summary update runs in a Firestore transaction to prevent concurrent write conflicts.
34
34
  *
35
35
  * @param config - service configuration including Firestore context and collection references
36
+ * @returns a {@link NotificationSummarySendService} backed by Firestore
36
37
  *
37
38
  * @example
38
39
  * ```ts
@@ -6,6 +6,8 @@ import { type NotificationTextSendService } from './notification.send.service';
6
6
  * Useful as a placeholder when your app's notification pipeline is fully wired for SMS
7
7
  * but actual delivery is not yet enabled, avoiding the need for conditional logic elsewhere.
8
8
  *
9
+ * @returns a no-op {@link NotificationTextSendService} that ignores all messages
10
+ *
9
11
  * @example
10
12
  * ```ts
11
13
  * const textService = ignoreSendNotificationTextSendService();
@@ -47,6 +47,7 @@ export interface NotificationTaskServiceConfig {
47
47
  * If all checkpoints are complete, the task is marked as done.
48
48
  *
49
49
  * @param config - handler configurations and optional validation list
50
+ * @returns a {@link NotificationTaskService} that dispatches tasks to the registered handlers
50
51
  *
51
52
  * @example
52
53
  * ```ts
@@ -8,6 +8,7 @@ import { type NotificationTaskCheckpointString, type NotificationTaskServiceHand
8
8
  *
9
9
  * @param inputCompletions - the current list of completed checkpoint strings
10
10
  * @param handleTaskResult - the handler result containing removal instructions
11
+ * @returns the filtered completions array with specified checkpoints removed
11
12
  *
12
13
  * @example
13
14
  * ```ts
@@ -219,6 +219,7 @@ export interface NotificationTaskSubtaskNotificationTaskHandlerConfig<I extends
219
219
  * such as storage file processing or other async workflows.
220
220
  *
221
221
  * @param factoryConfig - shared configuration including the input function, cleanup logic, and task type
222
+ * @returns a factory function that produces {@link NotificationTaskServiceTaskHandlerConfig} entries
222
223
  *
223
224
  * @example
224
225
  * ```ts
@@ -249,5 +250,7 @@ export declare class NotificationTaskSubTaskMissingRequiredDataTermination exten
249
250
  }
250
251
  /**
251
252
  * Creates a NotificationTaskSubTaskMissingRequiredDataTermination.
253
+ *
254
+ * @returns a new {@link NotificationTaskSubTaskMissingRequiredDataTermination} error instance
252
255
  */
253
256
  export declare function notificationTaskSubTaskMissingRequiredDataTermination(): NotificationTaskSubTaskMissingRequiredDataTermination;
@@ -8,6 +8,7 @@ import { type E164PhoneNumber, type EmailAddress, type Maybe, type PhoneNumber,
8
8
  * and initializes with an empty notifications array.
9
9
  *
10
10
  * @param model - the model key to associate the summary with
11
+ * @returns a blank {@link NotificationSummary} with creation timestamp and empty notifications
11
12
  *
12
13
  * @example
13
14
  * ```ts
@@ -142,8 +143,8 @@ export interface ExpandNotificationRecipientsResult {
142
143
  *
143
144
  * Recipients are each configurable and may be defined with as little info as a single contact info, or have multiple contact info pieces associated with them.
144
145
  *
145
- * @param input
146
- * @returns
146
+ * @param input - the notification, box, auth service, and recipient configuration
147
+ * @returns channel-specific recipient lists (email, text, notification summary) ready for delivery
147
148
  */
148
149
  export declare function expandNotificationRecipients(input: ExpandNotificationRecipientsInput): Promise<ExpandNotificationRecipientsResult>;
149
150
  /**
@@ -199,6 +200,7 @@ export interface UpdateNotificationUserNotificationBoxRecipientConfigResult {
199
200
  * Also re-applies send exclusions to the updated config array.
200
201
  *
201
202
  * @param input - the current state and intended change
203
+ * @returns the updated box config array and notification box recipient, if changes occurred
202
204
  * @throws notificationUserBlockedFromBeingAddedToRecipientsError when inserting a blocked user
203
205
  * @throws notificationUserLockedConfigFromBeingUpdatedError when updating a locked user's config
204
206
  */
@@ -1,5 +1,5 @@
1
1
  export * from './storagefile.action.server';
2
- export * from './storagefile.action.init.service';
2
+ export * from './storagefile.action.server.init';
3
3
  export * from './storagefile.error';
4
4
  export * from './storagefile.module';
5
5
  export * from './storagefile.task.service.handler';