@thejob/schema 2.2.0 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -4571,7 +4571,17 @@ var PushSubscriptionSchema = (0, import_yup54.object)({
4571
4571
  * device that stopped visiting, which is useful for pruning rows that never
4572
4572
  * fail loudly enough to be caught by a 410.
4573
4573
  */
4574
- lastSeenAt: (0, import_yup54.number)().optional().label("Last Seen At")
4574
+ lastSeenAt: (0, import_yup54.number)().optional().label("Last Seen At"),
4575
+ /**
4576
+ * Epoch ms the owner explicitly signed out on this device, or absent.
4577
+ *
4578
+ * A PAUSE, not a removal: the sender skips flagged rows, so a shared device
4579
+ * stops receiving the previous user's notifications, while the same user
4580
+ * signing back in clears the flag with no prompt. A flag rather than a delete
4581
+ * so that a MISSING row keeps one meaning to the browser ("stop, this device
4582
+ * was removed"), which it acts on by dropping its own subscription.
4583
+ */
4584
+ signedOutAt: (0, import_yup54.number)().nullable().optional().label("Signed Out At")
4575
4585
  }).noUnknown().strict().label("Push Subscription Schema");
4576
4586
 
4577
4587
  // src/user/user-completeness.schema.ts
package/dist/index.d.cts CHANGED
@@ -4392,6 +4392,7 @@ declare const PushSubscriptionSchema: yup.ObjectSchema<{
4392
4392
  userAgent: string | undefined;
4393
4393
  createdAt: number | undefined;
4394
4394
  lastSeenAt: number | undefined;
4395
+ signedOutAt: number | null | undefined;
4395
4396
  }, yup.AnyObject, {
4396
4397
  userShortId: undefined;
4397
4398
  endpoint: undefined;
@@ -4403,6 +4404,7 @@ declare const PushSubscriptionSchema: yup.ObjectSchema<{
4403
4404
  userAgent: undefined;
4404
4405
  createdAt: undefined;
4405
4406
  lastSeenAt: undefined;
4407
+ signedOutAt: undefined;
4406
4408
  }, "">;
4407
4409
 
4408
4410
  declare const UserLanguageSchema: yup.ObjectSchema<{
package/dist/index.d.ts CHANGED
@@ -4392,6 +4392,7 @@ declare const PushSubscriptionSchema: yup.ObjectSchema<{
4392
4392
  userAgent: string | undefined;
4393
4393
  createdAt: number | undefined;
4394
4394
  lastSeenAt: number | undefined;
4395
+ signedOutAt: number | null | undefined;
4395
4396
  }, yup.AnyObject, {
4396
4397
  userShortId: undefined;
4397
4398
  endpoint: undefined;
@@ -4403,6 +4404,7 @@ declare const PushSubscriptionSchema: yup.ObjectSchema<{
4403
4404
  userAgent: undefined;
4404
4405
  createdAt: undefined;
4405
4406
  lastSeenAt: undefined;
4407
+ signedOutAt: undefined;
4406
4408
  }, "">;
4407
4409
 
4408
4410
  declare const UserLanguageSchema: yup.ObjectSchema<{
package/dist/index.js CHANGED
@@ -4304,7 +4304,17 @@ var PushSubscriptionSchema = object52({
4304
4304
  * device that stopped visiting, which is useful for pruning rows that never
4305
4305
  * fail loudly enough to be caught by a 410.
4306
4306
  */
4307
- lastSeenAt: number21().optional().label("Last Seen At")
4307
+ lastSeenAt: number21().optional().label("Last Seen At"),
4308
+ /**
4309
+ * Epoch ms the owner explicitly signed out on this device, or absent.
4310
+ *
4311
+ * A PAUSE, not a removal: the sender skips flagged rows, so a shared device
4312
+ * stops receiving the previous user's notifications, while the same user
4313
+ * signing back in clears the flag with no prompt. A flag rather than a delete
4314
+ * so that a MISSING row keeps one meaning to the browser ("stop, this device
4315
+ * was removed"), which it acts on by dropping its own subscription.
4316
+ */
4317
+ signedOutAt: number21().nullable().optional().label("Signed Out At")
4308
4318
  }).noUnknown().strict().label("Push Subscription Schema");
4309
4319
 
4310
4320
  // src/user/user-completeness.schema.ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thejob/schema",
3
- "version": "2.2.0",
3
+ "version": "2.3.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.cjs",
6
6
  "module": "./dist/index.js",
@@ -80,6 +80,17 @@ export const PushSubscriptionSchema = object({
80
80
  * fail loudly enough to be caught by a 410.
81
81
  */
82
82
  lastSeenAt: number().optional().label("Last Seen At"),
83
+
84
+ /**
85
+ * Epoch ms the owner explicitly signed out on this device, or absent.
86
+ *
87
+ * A PAUSE, not a removal: the sender skips flagged rows, so a shared device
88
+ * stops receiving the previous user's notifications, while the same user
89
+ * signing back in clears the flag with no prompt. A flag rather than a delete
90
+ * so that a MISSING row keeps one meaning to the browser ("stop, this device
91
+ * was removed"), which it acts on by dropping its own subscription.
92
+ */
93
+ signedOutAt: number().nullable().optional().label("Signed Out At"),
83
94
  })
84
95
  .noUnknown()
85
96
  .strict()