@happyvertical/smrt-timesheets 0.55.23 → 0.56.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.
Files changed (53) hide show
  1. package/AGENTS.md +26 -0
  2. package/README.md +156 -11
  3. package/agents/period-rollup.md +20 -0
  4. package/dist/attendance/context.d.ts +80 -0
  5. package/dist/attendance/context.d.ts.map +1 -0
  6. package/dist/attendance/correction-models.d.ts +39 -0
  7. package/dist/attendance/correction-models.d.ts.map +1 -0
  8. package/dist/attendance/correction-service.d.ts +118 -0
  9. package/dist/attendance/correction-service.d.ts.map +1 -0
  10. package/dist/attendance/models.d.ts +57 -0
  11. package/dist/attendance/models.d.ts.map +1 -1
  12. package/dist/attendance/segments.d.ts +20 -0
  13. package/dist/attendance/segments.d.ts.map +1 -0
  14. package/dist/attendance/service.d.ts +106 -22
  15. package/dist/attendance/service.d.ts.map +1 -1
  16. package/dist/attendance/write.d.ts +12 -0
  17. package/dist/attendance/write.d.ts.map +1 -0
  18. package/dist/attendance.d.ts +2 -0
  19. package/dist/attendance.d.ts.map +1 -1
  20. package/dist/attendance.js +3 -323
  21. package/dist/chunks/{attendance-BVeStEBv.js → attendance-B1jCbqSb.js} +3 -3
  22. package/dist/chunks/{attendance-BVeStEBv.js.map → attendance-B1jCbqSb.js.map} +1 -1
  23. package/dist/chunks/attendance-DGVy-iHI.js +1246 -0
  24. package/dist/chunks/attendance-DGVy-iHI.js.map +1 -0
  25. package/dist/chunks/models-0-YD5F_o.js +372 -0
  26. package/dist/chunks/models-0-YD5F_o.js.map +1 -0
  27. package/dist/chunks/{rollup-U1IO_CMA.js → rollup-CDqzCxI2.js} +211 -6
  28. package/dist/chunks/rollup-CDqzCxI2.js.map +1 -0
  29. package/dist/chunks/service-time-entry-t7P-bkOQ.js +227 -0
  30. package/dist/chunks/service-time-entry-t7P-bkOQ.js.map +1 -0
  31. package/dist/index.js +5 -5
  32. package/dist/manifest.json +2965 -1358
  33. package/dist/rollup/correction-guard.d.ts +12 -0
  34. package/dist/rollup/correction-guard.d.ts.map +1 -0
  35. package/dist/rollup/models.d.ts +31 -1
  36. package/dist/rollup/models.d.ts.map +1 -1
  37. package/dist/rollup/service.d.ts +25 -7
  38. package/dist/rollup/service.d.ts.map +1 -1
  39. package/dist/rollup/types.d.ts +18 -0
  40. package/dist/rollup/types.d.ts.map +1 -1
  41. package/dist/rollup/write.d.ts +2 -0
  42. package/dist/rollup/write.d.ts.map +1 -1
  43. package/dist/rollup.d.ts +3 -2
  44. package/dist/rollup.d.ts.map +1 -1
  45. package/dist/rollup.js +2 -2
  46. package/dist/smrt-knowledge.json +700 -34
  47. package/package.json +7 -7
  48. package/dist/attendance.js.map +0 -1
  49. package/dist/chunks/models-zU8Um7c2.js +0 -176
  50. package/dist/chunks/models-zU8Um7c2.js.map +0 -1
  51. package/dist/chunks/rollup-U1IO_CMA.js.map +0 -1
  52. package/dist/chunks/service-time-entry-CBv-FF-W.js +0 -227
  53. package/dist/chunks/service-time-entry-CBv-FF-W.js.map +0 -1
@@ -0,0 +1,12 @@
1
+ import type { AttendanceCorrectionGuard } from '../attendance/correction-service.js';
2
+ /**
3
+ * An `AttendanceCorrectionService` guard that refuses to change attendance
4
+ * inside a period a `PeriodTimecard` has confirmed. A confirmed card never
5
+ * changes, so correcting its sources would leave card and attendance
6
+ * disagreeing; reopen the card first (`PeriodRollupService.reopen`), correct,
7
+ * then roll up again. A submitted card is frozen too. A reopened card is `open`
8
+ * again, so corrections inside it are allowed.
9
+ * Needs the `period_timecards` table, which is why it is opt-in.
10
+ */
11
+ export declare const confirmedTimecardGuard: AttendanceCorrectionGuard;
12
+ //# sourceMappingURL=correction-guard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"correction-guard.d.ts","sourceRoot":"","sources":["../../src/rollup/correction-guard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAGrF;;;;;;;;GAQG;AACH,eAAO,MAAM,sBAAsB,EAAE,yBAuBpC,CAAC"}
@@ -1,5 +1,7 @@
1
1
  import { SmrtCollection, SmrtObject } from '@happyvertical/smrt-core';
2
2
  import type { TimecardSource } from './types.js';
3
+ /** `open` is the draft state; `submitted` is optional (see `PeriodRollupService`). */
4
+ export type TimecardStatus = 'open' | 'submitted' | 'confirmed';
3
5
  /** One person's immutable-on-confirmation period snapshot, in integer seconds. */
4
6
  export declare class PeriodTimecard extends SmrtObject {
5
7
  tenantId: string;
@@ -13,7 +15,10 @@ export declare class PeriodTimecard extends SmrtObject {
13
15
  regularSeconds: number;
14
16
  overtimeSeconds: number;
15
17
  totalSeconds: number;
16
- status: 'open' | 'confirmed';
18
+ status: TimecardStatus;
19
+ /** Set by `submit()`; cleared when the card is reopened. */
20
+ submittedAt: Date | null;
21
+ submittedByProfileId: string | null;
17
22
  confirmedAt: Date | null;
18
23
  confirmedByProfileId: string | null;
19
24
  /** Return a detached source snapshot; corrupt persisted JSON fails closed. */
@@ -36,6 +41,27 @@ export declare class TimecardAdjustment extends SmrtObject {
36
41
  save(): Promise<this>;
37
42
  delete(): Promise<void>;
38
43
  }
44
+ /**
45
+ * Append-only audit row for one reopening of a submitted or confirmed card: who
46
+ * reopened whose period, why, and the totals it had at that moment (base,
47
+ * adjustments and effective, in integer seconds). Written only by
48
+ * `PeriodRollupService.reopen()` in the same transaction as the status change.
49
+ */
50
+ export declare class TimecardReopening extends SmrtObject {
51
+ tenantId: string;
52
+ timecardId: string;
53
+ profileId: string;
54
+ actorProfileId: string;
55
+ operationId: string;
56
+ fromStatus: TimecardStatus;
57
+ reason: string;
58
+ /** JSON: base/adjustment/effective seconds, confirmation and submission attribution. */
59
+ previousState: string;
60
+ /** The totals and attribution the card had when it was reopened. */
61
+ getPrevious<T = Record<string, unknown>>(): T;
62
+ save(): Promise<this>;
63
+ delete(): Promise<void>;
64
+ }
39
65
  /** Scoped persistence collection; mutations must use PeriodRollupService. */
40
66
  export declare class PeriodTimecardCollection extends SmrtCollection<PeriodTimecard> {
41
67
  static readonly _itemClass: typeof PeriodTimecard;
@@ -44,4 +70,8 @@ export declare class PeriodTimecardCollection extends SmrtCollection<PeriodTimec
44
70
  export declare class TimecardAdjustmentCollection extends SmrtCollection<TimecardAdjustment> {
45
71
  static readonly _itemClass: typeof TimecardAdjustment;
46
72
  }
73
+ /** Scoped append-only reopening ledger. */
74
+ export declare class TimecardReopeningCollection extends SmrtCollection<TimecardReopening> {
75
+ static readonly _itemClass: typeof TimecardReopening;
76
+ }
47
77
  //# sourceMappingURL=models.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/rollup/models.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,cAAc,EACd,UAAU,EAEX,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAGjD,kFAAkF;AAClF,qBAQa,cAAe,SAAQ,UAAU;IAChC,QAAQ,SAAM;IAI1B,SAAS,SAAM;IACf,QAAQ,EAAE,IAAI,CAAe;IAC7B,MAAM,EAAE,IAAI,CAAe;IAC3B,QAAQ,SAAM;IACd,YAAY,SAAM;IACO,aAAa,SAAQ;IACrB,cAAc,SAAQ;IAC/C,cAAc,SAAK;IACnB,eAAe,SAAK;IACpB,YAAY,SAAK;IACQ,MAAM,EAAE,MAAM,GAAG,WAAW,CAAU;IAC/D,WAAW,EAAE,IAAI,GAAG,IAAI,CAAQ;IAKhC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE3C,8EAA8E;IAC9E,UAAU,IAAI,cAAc,EAAE;IAM9B,0DAA0D;IAC1D,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAMpB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBrB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAGvC;AAED,oFAAoF;AACpF,qBAQa,kBAAmB,SAAQ,UAAU;IACpC,QAAQ,SAAM;IAC4B,UAAU,SAAM;IAItE,SAAS,SAAM;IAIf,cAAc,SAAM;IACpB,WAAW,SAAM;IACjB,cAAc,SAAK;IACnB,eAAe,SAAK;IACpB,MAAM,SAAM;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAOrB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAGvC;AACD,6EAA6E;AAC7E,qBAAa,wBAAyB,SAAQ,cAAc,CAAC,cAAc,CAAC;IAC1E,MAAM,CAAC,QAAQ,CAAC,UAAU,wBAAkB;CAC7C;AACD,gDAAgD;AAChD,qBAAa,4BAA6B,SAAQ,cAAc,CAAC,kBAAkB,CAAC;IAClF,MAAM,CAAC,QAAQ,CAAC,UAAU,4BAAsB;CACjD"}
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/rollup/models.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,cAAc,EACd,UAAU,EAEX,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAGjD,sFAAsF;AACtF,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,WAAW,GAAG,WAAW,CAAC;AAEhE,kFAAkF;AAClF,qBAQa,cAAe,SAAQ,UAAU;IAChC,QAAQ,SAAM;IAI1B,SAAS,SAAM;IACf,QAAQ,EAAE,IAAI,CAAe;IAC7B,MAAM,EAAE,IAAI,CAAe;IAC3B,QAAQ,SAAM;IACd,YAAY,SAAM;IACO,aAAa,SAAQ;IACrB,cAAc,SAAQ;IAC/C,cAAc,SAAK;IACnB,eAAe,SAAK;IACpB,YAAY,SAAK;IACQ,MAAM,EAAE,cAAc,CAAU;IACzD,4DAA4D;IAC5D,WAAW,EAAE,IAAI,GAAG,IAAI,CAAQ;IAKhC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC3C,WAAW,EAAE,IAAI,GAAG,IAAI,CAAQ;IAKhC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE3C,8EAA8E;IAC9E,UAAU,IAAI,cAAc,EAAE;IAM9B,0DAA0D;IAC1D,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAMpB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA0BrB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAGvC;AAED,oFAAoF;AACpF,qBAQa,kBAAmB,SAAQ,UAAU;IACpC,QAAQ,SAAM;IAC4B,UAAU,SAAM;IAItE,SAAS,SAAM;IAIf,cAAc,SAAM;IACpB,WAAW,SAAM;IACjB,cAAc,SAAK;IACnB,eAAe,SAAK;IACpB,MAAM,SAAM;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAOrB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAGvC;AACD;;;;;GAKG;AACH,qBAca,iBAAkB,SAAQ,UAAU;IACnC,QAAQ,SAAM;IAC4B,UAAU,SAAM;IAItE,SAAS,SAAM;IAIf,cAAc,SAAM;IACpB,WAAW,SAAM;IACQ,UAAU,EAAE,cAAc,CAAe;IACzC,MAAM,SAAM;IACrC,wFAAwF;IAC/D,aAAa,SAAQ;IAC9C,oEAAoE;IACpE,WAAW,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC;IAM9B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IASrB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAGvC;AACD,6EAA6E;AAC7E,qBAAa,wBAAyB,SAAQ,cAAc,CAAC,cAAc,CAAC;IAC1E,MAAM,CAAC,QAAQ,CAAC,UAAU,wBAAkB;CAC7C;AACD,gDAAgD;AAChD,qBAAa,4BAA6B,SAAQ,cAAc,CAAC,kBAAkB,CAAC;IAClF,MAAM,CAAC,QAAQ,CAAC,UAAU,4BAAsB;CACjD;AACD,2CAA2C;AAC3C,qBAAa,2BAA4B,SAAQ,cAAc,CAAC,iBAAiB,CAAC;IAChF,MAAM,CAAC,QAAQ,CAAC,UAAU,2BAAqB;CAChD"}
@@ -1,6 +1,6 @@
1
1
  import type { DatabaseInterface } from '@happyvertical/sql';
2
- import { PeriodTimecard, TimecardAdjustment } from './models.js';
3
- import type { PeriodRulesResolver, TimecardActor, TimecardAdjustmentInput } from './types.js';
2
+ import { PeriodTimecard, TimecardAdjustment, TimecardReopening } from './models.js';
3
+ import type { PeriodRollupOptions, PeriodRulesResolver, TimecardActor, TimecardAdjustmentInput, TimecardReopenInput } from './types.js';
4
4
  /**
5
5
  * Server-side, trusted tenant/person capability. Consumers authorize this scope
6
6
  * before construction. Reads and writes reject conflicting ambient tenancy.
@@ -11,10 +11,7 @@ export declare class PeriodRollupService {
11
11
  private readonly actor;
12
12
  private readonly resolver;
13
13
  private readonly options;
14
- constructor(db: DatabaseInterface, actor: TimecardActor, resolver: PeriodRulesResolver, options?: {
15
- attendance?: boolean;
16
- actorProfileId?: string;
17
- });
14
+ constructor(db: DatabaseInterface, actor: TimecardActor, resolver: PeriodRulesResolver, options?: PeriodRollupOptions);
18
15
  private identity;
19
16
  private scope;
20
17
  private transact;
@@ -23,8 +20,29 @@ export declare class PeriodRollupService {
23
20
  get(id: string): Promise<PeriodTimecard>;
24
21
  /** Rebuild one open card from a consistent transaction-bound source snapshot. */
25
22
  rollup(at: Date): Promise<PeriodTimecard>;
26
- /** Confirm the current snapshot; repeated confirmation is idempotent. */
23
+ /**
24
+ * Optional step: freeze an open card for review (open -> submitted). The
25
+ * actor is the submitter; repeating it on a submitted card is idempotent.
26
+ */
27
+ submit(id: string): Promise<PeriodTimecard>;
28
+ /**
29
+ * Confirm the current snapshot; repeated confirmation is idempotent. With
30
+ * `requireSubmission` the card must be submitted first.
31
+ */
27
32
  confirm(id: string): Promise<PeriodTimecard>;
33
+ /**
34
+ * Return a submitted or confirmed card to `open` so its sources can be
35
+ * corrected and `rollup()` run again, then confirmed anew. Needs a reason and
36
+ * an operation key; appends a `TimecardReopening` with the totals the card had
37
+ * (base, adjustments, effective). Adjustments stay on the ledger and keep
38
+ * counting in `totals()`: after a re-roll, offset them with a new adjustment
39
+ * if the correction made them redundant. The consumer authorizes the actor
40
+ * (give reopening its own permission); a retry with the same key and reason
41
+ * is a no-op.
42
+ */
43
+ reopen(id: string, input: TimecardReopenInput): Promise<PeriodTimecard>;
44
+ /** The append-only reopening history of one card, oldest first. */
45
+ reopenings(id: string): Promise<TimecardReopening[]>;
28
46
  /** Append a correction. An operation key retry must have exactly the same payload. */
29
47
  adjust(id: string, input: TimecardAdjustmentInput): Promise<TimecardAdjustment>;
30
48
  /** Effective totals combine the frozen base with append-only corrections. */
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/rollup/service.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAG5D,OAAO,EACL,cAAc,EAEd,kBAAkB,EAEnB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EACV,mBAAmB,EACnB,aAAa,EACb,uBAAuB,EAExB,MAAM,YAAY,CAAC;AAuBpB;;;;GAIG;AACH,qBAAa,mBAAmB;IAE5B,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAHP,EAAE,EAAE,iBAAiB,EACrB,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,mBAAmB,EAC7B,OAAO,GAAE;QACxB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,cAAc,CAAC,EAAE,MAAM,CAAC;KACpB;IAkBR,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,KAAK;IAMb,OAAO,CAAC,QAAQ;YA8BF,IAAI;IAYlB,gFAAgF;IAC1E,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAG9C,iFAAiF;IAC3E,MAAM,CAAC,EAAE,EAAE,IAAI,GAAG,OAAO,CAAC,cAAc,CAAC;IA8I/C,yEAAyE;IACnE,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAWlD,sFAAsF;IAChF,MAAM,CACV,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,uBAAuB,GAC7B,OAAO,CAAC,kBAAkB,CAAC;IA8E9B,6EAA6E;IACvE,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAChC,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CAwBH"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/rollup/service.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAG5D,OAAO,EACL,cAAc,EAEd,kBAAkB,EAElB,iBAAiB,EAElB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,EACb,uBAAuB,EACvB,mBAAmB,EAEpB,MAAM,YAAY,CAAC;AAuBpB;;;;GAIG;AACH,qBAAa,mBAAmB;IAE5B,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAHP,EAAE,EAAE,iBAAiB,EACrB,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,mBAAmB,EAC7B,OAAO,GAAE,mBAAwB;IAmBpD,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,KAAK;IAMb,OAAO,CAAC,QAAQ;YA8BF,IAAI;IAYlB,gFAAgF;IAC1E,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAG9C,iFAAiF;IAC3E,MAAM,CAAC,EAAE,EAAE,IAAI,GAAG,OAAO,CAAC,cAAc,CAAC;IAgJ/C;;;OAGG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAcjD;;;OAGG;IACG,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAalD;;;;;;;;;OASG;IACG,MAAM,CACV,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,mBAAmB,GACzB,OAAO,CAAC,cAAc,CAAC;IA0F1B,mEAAmE;IAC7D,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAU1D,sFAAsF;IAChF,MAAM,CACV,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,uBAAuB,GAC7B,OAAO,CAAC,kBAAkB,CAAC;IA8E9B,6EAA6E;IACvE,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAChC,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CAwBH"}
@@ -35,4 +35,22 @@ export interface TimecardAdjustmentInput {
35
35
  overtimeSeconds: number;
36
36
  reason: string;
37
37
  }
38
+ /** Reopen a submitted or confirmed card. The actor is authorized by the consumer. */
39
+ export interface TimecardReopenInput {
40
+ /** Idempotency key; a retry must carry exactly the same reason. */
41
+ operationId: string;
42
+ /** Required, non-blank; stored on the ledger row. */
43
+ reason: string;
44
+ }
45
+ /** Service options for the card lifecycle. */
46
+ export interface PeriodRollupOptions {
47
+ attendance?: boolean;
48
+ actorProfileId?: string;
49
+ /**
50
+ * When true, `confirm()` accepts only a `submitted` card (open -> submitted
51
+ * -> confirmed). Default false: `submit()` is optional and `confirm()` also
52
+ * accepts an `open` card (open -> confirmed), as before.
53
+ */
54
+ requireSubmission?: boolean;
55
+ }
38
56
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/rollup/types.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,iFAAiF;AACjF,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,IAAI,CAAC;IACf,MAAM,EAAE,IAAI,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,+EAA+E;IAC/E,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,0EAA0E;AAC1E,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,OAAO,GAAG,YAAY,CAAC;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,sEAAsE;AACtE,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAC7E,QAAQ,CACN,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,EAChC,OAAO,EAAE,SAAS,QAAQ,CAAC,cAAc,CAAC,EAAE,EAC5C,KAAK,EAAE,QAAQ,CAAC,aAAa,CAAC,GAC7B,OAAO,CAAC;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACjE;AAED,qFAAqF;AACrF,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;CAChB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/rollup/types.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,iFAAiF;AACjF,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,IAAI,CAAC;IACf,MAAM,EAAE,IAAI,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,+EAA+E;IAC/E,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,0EAA0E;AAC1E,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,OAAO,GAAG,YAAY,CAAC;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,sEAAsE;AACtE,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAC7E,QAAQ,CACN,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,EAChC,OAAO,EAAE,SAAS,QAAQ,CAAC,cAAc,CAAC,EAAE,EAC5C,KAAK,EAAE,QAAQ,CAAC,aAAa,CAAC,GAC7B,OAAO,CAAC;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACjE;AAED,qFAAqF;AACrF,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qFAAqF;AACrF,MAAM,WAAW,mBAAmB;IAClC,mEAAmE;IACnE,WAAW,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,8CAA8C;AAC9C,MAAM,WAAW,mBAAmB;IAClC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B"}
@@ -1,4 +1,6 @@
1
1
  import type { SmrtObject } from '@happyvertical/smrt-core';
2
2
  export declare function assertRollupWrite(object: SmrtObject): void;
3
3
  export declare function persistRollup<T extends SmrtObject>(object: T): Promise<T>;
4
+ export declare function isReopenWrite(object: SmrtObject): boolean;
5
+ export declare function persistReopen<T extends SmrtObject>(object: T): Promise<T>;
4
6
  //# sourceMappingURL=write.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"write.d.ts","sourceRoot":"","sources":["../../src/rollup/write.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAI3D,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAK1D;AACD,wBAAsB,aAAa,CAAC,CAAC,SAAS,UAAU,EACtD,MAAM,EAAE,CAAC,GACR,OAAO,CAAC,CAAC,CAAC,CAQZ"}
1
+ {"version":3,"file":"write.d.ts","sourceRoot":"","sources":["../../src/rollup/write.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAI3D,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAK1D;AACD,wBAAsB,aAAa,CAAC,CAAC,SAAS,UAAU,EACtD,MAAM,EAAE,CAAC,GACR,OAAO,CAAC,CAAC,CAAC,CAQZ;AAID,wBAAgB,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAEzD;AACD,wBAAsB,aAAa,CAAC,CAAC,SAAS,UAAU,EACtD,MAAM,EAAE,CAAC,GACR,OAAO,CAAC,CAAC,CAAC,CAOZ"}
package/dist/rollup.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import './__smrt-register__.js';
2
- export { PeriodTimecard, PeriodTimecardCollection, TimecardAdjustment, TimecardAdjustmentCollection, } from './rollup/models.js';
2
+ export { confirmedTimecardGuard } from './rollup/correction-guard.js';
3
+ export { PeriodTimecard, PeriodTimecardCollection, TimecardAdjustment, TimecardAdjustmentCollection, TimecardReopening, TimecardReopeningCollection, type TimecardStatus, } from './rollup/models.js';
3
4
  export { PeriodRollupService } from './rollup/service.js';
4
- export type { PeriodRulesResolver, TimecardActor, TimecardAdjustmentInput, TimecardPeriod, TimecardSource, } from './rollup/types.js';
5
+ export type { PeriodRollupOptions, PeriodRulesResolver, TimecardActor, TimecardAdjustmentInput, TimecardPeriod, TimecardReopenInput, TimecardSource, } from './rollup/types.js';
5
6
  //# sourceMappingURL=rollup.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rollup.d.ts","sourceRoot":"","sources":["../src/rollup.ts"],"names":[],"mappings":"AAAA,OAAO,wBAAwB,CAAC;AAEhC,OAAO,EACL,cAAc,EACd,wBAAwB,EACxB,kBAAkB,EAClB,4BAA4B,GAC7B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,YAAY,EACV,mBAAmB,EACnB,aAAa,EACb,uBAAuB,EACvB,cAAc,EACd,cAAc,GACf,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"rollup.d.ts","sourceRoot":"","sources":["../src/rollup.ts"],"names":[],"mappings":"AAAA,OAAO,wBAAwB,CAAC;AAEhC,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EACL,cAAc,EACd,wBAAwB,EACxB,kBAAkB,EAClB,4BAA4B,EAC5B,iBAAiB,EACjB,2BAA2B,EAC3B,KAAK,cAAc,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,YAAY,EACV,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,EACb,uBAAuB,EACvB,cAAc,EACd,mBAAmB,EACnB,cAAc,GACf,MAAM,mBAAmB,CAAC"}
package/dist/rollup.js CHANGED
@@ -1,2 +1,2 @@
1
- import { a as PeriodTimecard, c as TimecardAdjustmentCollection, o as PeriodTimecardCollection, s as TimecardAdjustment, t as PeriodRollupService } from "./chunks/rollup-U1IO_CMA.js";
2
- export { PeriodRollupService, PeriodTimecard, PeriodTimecardCollection, TimecardAdjustment, TimecardAdjustmentCollection };
1
+ import { a as confirmedTimecardGuard, c as TimecardAdjustment, d as TimecardReopeningCollection, l as TimecardAdjustmentCollection, o as PeriodTimecard, s as PeriodTimecardCollection, t as PeriodRollupService, u as TimecardReopening } from "./chunks/rollup-CDqzCxI2.js";
2
+ export { PeriodRollupService, PeriodTimecard, PeriodTimecardCollection, TimecardAdjustment, TimecardAdjustmentCollection, TimecardReopening, TimecardReopeningCollection, confirmedTimecardGuard };