@thejob/schema 2.0.2 → 2.0.4

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
@@ -776,6 +776,20 @@ var JobSchema = (0, import_yup18.object)({
776
776
  startLabel: "Start Date",
777
777
  endLabel: "Expiry Date"
778
778
  }).label("Validity"),
779
+ /**
780
+ * When the auto-close system last re-checked this job's liveness (epoch ms).
781
+ * Server-owned operational field: set by the expiry re-crawl track when a job
782
+ * has no `validity.endDate` and must be verified by crawling its page. Guards
783
+ * re-check cadence so the same job is not re-crawled on every sweep.
784
+ */
785
+ lastExpiryCheckAt: (0, import_yup18.number)().optional().nullable().label("Last expiry check at"),
786
+ /**
787
+ * When this job transitioned to `status: closed` (epoch ms). Server-owned
788
+ * operational field: stamped by every jobs-service close path (expiry
789
+ * auto-close and the dated lapse sweep). Distinct from `updatedAt` so a later
790
+ * edit to a closed job does not move it.
791
+ */
792
+ closedAt: (0, import_yup18.number)().optional().nullable().label("Closed at"),
779
793
  experienceLevel: (0, import_yup18.string)().oneOf(SupportedExperienceLevels).nullable().optional().label("Experience level"),
780
794
  contactEmail: (0, import_yup18.string)().email().nullable().optional().label("Contact email"),
781
795
  workingHoursPerWeek: (0, import_yup18.number)().nullable().optional().min(1).max(24 * 7).label("Working hours per week"),
package/dist/index.d.cts CHANGED
@@ -478,6 +478,8 @@ declare const JobSchema: ObjectSchema<{
478
478
  [x: string]: string | boolean;
479
479
  [x: number]: string | boolean;
480
480
  };
481
+ lastExpiryCheckAt: number | null | undefined;
482
+ closedAt: number | null | undefined;
481
483
  experienceLevel: ExperienceLevel | null | undefined;
482
484
  contactEmail: string | null | undefined;
483
485
  workingHoursPerWeek: number | null | undefined;
@@ -641,6 +643,8 @@ declare const JobSchema: ObjectSchema<{
641
643
  [x: string]: string | false;
642
644
  isActive: false;
643
645
  };
646
+ lastExpiryCheckAt: undefined;
647
+ closedAt: undefined;
644
648
  experienceLevel: undefined;
645
649
  contactEmail: undefined;
646
650
  workingHoursPerWeek: undefined;
package/dist/index.d.ts CHANGED
@@ -478,6 +478,8 @@ declare const JobSchema: ObjectSchema<{
478
478
  [x: string]: string | boolean;
479
479
  [x: number]: string | boolean;
480
480
  };
481
+ lastExpiryCheckAt: number | null | undefined;
482
+ closedAt: number | null | undefined;
481
483
  experienceLevel: ExperienceLevel | null | undefined;
482
484
  contactEmail: string | null | undefined;
483
485
  workingHoursPerWeek: number | null | undefined;
@@ -641,6 +643,8 @@ declare const JobSchema: ObjectSchema<{
641
643
  [x: string]: string | false;
642
644
  isActive: false;
643
645
  };
646
+ lastExpiryCheckAt: undefined;
647
+ closedAt: undefined;
644
648
  experienceLevel: undefined;
645
649
  contactEmail: undefined;
646
650
  workingHoursPerWeek: undefined;
package/dist/index.js CHANGED
@@ -638,6 +638,20 @@ var JobSchema = object16({
638
638
  startLabel: "Start Date",
639
639
  endLabel: "Expiry Date"
640
640
  }).label("Validity"),
641
+ /**
642
+ * When the auto-close system last re-checked this job's liveness (epoch ms).
643
+ * Server-owned operational field: set by the expiry re-crawl track when a job
644
+ * has no `validity.endDate` and must be verified by crawling its page. Guards
645
+ * re-check cadence so the same job is not re-crawled on every sweep.
646
+ */
647
+ lastExpiryCheckAt: number5().optional().nullable().label("Last expiry check at"),
648
+ /**
649
+ * When this job transitioned to `status: closed` (epoch ms). Server-owned
650
+ * operational field: stamped by every jobs-service close path (expiry
651
+ * auto-close and the dated lapse sweep). Distinct from `updatedAt` so a later
652
+ * edit to a closed job does not move it.
653
+ */
654
+ closedAt: number5().optional().nullable().label("Closed at"),
641
655
  experienceLevel: string13().oneOf(SupportedExperienceLevels).nullable().optional().label("Experience level"),
642
656
  contactEmail: string13().email().nullable().optional().label("Contact email"),
643
657
  workingHoursPerWeek: number5().nullable().optional().min(1).max(24 * 7).label("Working hours per week"),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thejob/schema",
3
- "version": "2.0.2",
3
+ "version": "2.0.4",
4
4
  "type": "module",
5
5
  "main": "./dist/index.cjs",
6
6
  "module": "./dist/index.js",
@@ -120,6 +120,25 @@ export const JobSchema = object({
120
120
  endLabel: "Expiry Date",
121
121
  }).label("Validity"),
122
122
 
123
+ /**
124
+ * When the auto-close system last re-checked this job's liveness (epoch ms).
125
+ * Server-owned operational field: set by the expiry re-crawl track when a job
126
+ * has no `validity.endDate` and must be verified by crawling its page. Guards
127
+ * re-check cadence so the same job is not re-crawled on every sweep.
128
+ */
129
+ lastExpiryCheckAt: number()
130
+ .optional()
131
+ .nullable()
132
+ .label("Last expiry check at"),
133
+
134
+ /**
135
+ * When this job transitioned to `status: closed` (epoch ms). Server-owned
136
+ * operational field: stamped by every jobs-service close path (expiry
137
+ * auto-close and the dated lapse sweep). Distinct from `updatedAt` so a later
138
+ * edit to a closed job does not move it.
139
+ */
140
+ closedAt: number().optional().nullable().label("Closed at"),
141
+
123
142
  experienceLevel: string()
124
143
  .oneOf(SupportedExperienceLevels)
125
144
  .nullable()
@@ -1 +0,0 @@
1
- {"sessionId":"043bf70f-1085-410f-95a6-195faa662d86","pid":612636,"procStart":"14865274","acquiredAt":1782478773707}