@things-factory/work-shift 10.1.37 → 10.1.39

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 (29) hide show
  1. package/dist-client/pages/work-shift.js +4 -1
  2. package/dist-client/pages/work-shift.js.map +1 -1
  3. package/dist-client/tsconfig.tsbuildinfo +1 -1
  4. package/dist-server/index.js +9 -0
  5. package/dist-server/index.js.map +1 -1
  6. package/dist-server/service/index.d.ts +2 -1
  7. package/dist-server/service/index.js +1 -0
  8. package/dist-server/service/index.js.map +1 -1
  9. package/dist-server/service/work-shift/index.d.ts +1 -1
  10. package/dist-server/service/work-shift/work-shift-baseline.d.ts +23 -0
  11. package/dist-server/service/work-shift/work-shift-baseline.js +54 -0
  12. package/dist-server/service/work-shift/work-shift-baseline.js.map +1 -0
  13. package/dist-server/service/work-shift/work-shift-content.d.ts +3 -0
  14. package/dist-server/service/work-shift/work-shift-content.js +7 -0
  15. package/dist-server/service/work-shift/work-shift-content.js.map +1 -1
  16. package/dist-server/service/work-shift/work-shift-lifecycle-resolver.d.ts +9 -2
  17. package/dist-server/service/work-shift/work-shift-lifecycle-resolver.js +16 -6
  18. package/dist-server/service/work-shift/work-shift-lifecycle-resolver.js.map +1 -1
  19. package/dist-server/service/work-shift/work-shift-lifecycle.d.ts +98 -5
  20. package/dist-server/service/work-shift/work-shift-lifecycle.js +133 -0
  21. package/dist-server/service/work-shift/work-shift-lifecycle.js.map +1 -1
  22. package/dist-server/service/work-shift/work-shift-revision-service.d.ts +1 -2
  23. package/dist-server/service/work-shift/work-shift-revision-service.js +10 -7
  24. package/dist-server/service/work-shift/work-shift-revision-service.js.map +1 -1
  25. package/dist-server/service/work-shift/work-shift-revision.d.ts +7 -5
  26. package/dist-server/service/work-shift/work-shift-revision.js +2 -2
  27. package/dist-server/service/work-shift/work-shift-revision.js.map +1 -1
  28. package/dist-server/tsconfig.tsbuildinfo +1 -1
  29. package/package.json +5 -5
@@ -1 +1 @@
1
- {"version":3,"file":"work-shift-revision.js","sourceRoot":"","sources":["../../../server/service/work-shift/work-shift-revision.ts"],"names":[],"mappings":"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","sourcesContent":["import { Column, Entity, ForeignKey, Index, ManyToOne, PrimaryGeneratedColumn, RelationId } from 'typeorm'\nimport { Domain } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\nimport { WorkShiftArrangement } from './work-shift-arrangement'\nimport { MasterChangePolicy } from '@things-factory/ops-master'\n\n// Relations own the columns and RelationId exposes read-only identifiers.\n// Where a composite FK is declared, disable only the redundant single-column FK;\n// the database still enforces existence, domain and arrangement together.\n\n/** Content and the proposed effective date freeze together. Worklist owns the decision. */\n@Entity('work_shift_revisions')\n@Index('ix_arrangement_revision_subject', ['domain', 'arrangement', 'id'], { unique: true })\n@Index('ix_arrangement_revision_list', ['domain', 'arrangement', 'createdAt'])\n@ForeignKey(() => MasterChangePolicy, ['domain', 'policy'], ['domain', 'id'], { onDelete: 'RESTRICT' })\n@ForeignKey('WorkShiftArrangement', ['domain', 'arrangement'], ['domain', 'id'], { onDelete: 'RESTRICT' })\n@ForeignKey('WorkShiftRevision', ['domain', 'arrangement', 'baseRevision'], ['domain', 'arrangement', 'id'], {\n onDelete: 'RESTRICT'\n})\n@Index('ix_arrangement_revision_number', ['domain', 'arrangement', 'revisionNumber'], { unique: true })\nexport class WorkShiftRevision {\n /** Human revision number within one identity; assigned once under the subject write lock. */\n @Column('int') revisionNumber: number\n @ManyToOne(() => MasterChangePolicy, { nullable: false, createForeignKeyConstraints: false })\n policy: MasterChangePolicy\n @RelationId((row: WorkShiftRevision) => row.policy)\n policyId: string\n @PrimaryGeneratedColumn('uuid') id: string\n @ManyToOne(() => Domain, { nullable: false })\n domain: Domain\n @RelationId((row: WorkShiftRevision) => row.domain)\n domainId: string\n @ManyToOne('WorkShiftArrangement', { nullable: false, createForeignKeyConstraints: false })\n arrangement: WorkShiftArrangement\n @RelationId((row: WorkShiftRevision) => row.arrangement)\n arrangementId: string\n @ManyToOne(() => WorkShiftRevision, { nullable: true, createForeignKeyConstraints: false })\n baseRevision: WorkShiftRevision | null\n @RelationId((row: WorkShiftRevision) => row.baseRevision)\n baseRevisionId: string | null\n @Column('int') baseGeneration: number\n @Column('int', { default: 0 }) editGeneration: number\n @Column('text', { nullable: true }) description: string | null\n @Column() timezone: string\n @Column('simple-json') shifts: import('./work-shift-content').ShiftDefinition[]\n @Column({ type: Date }) effectiveFrom: Date\n @Column('text') reason: string\n @ManyToOne(() => User, { nullable: false })\n creator: User\n @RelationId((row: WorkShiftRevision) => row.creator)\n creatorId: string\n @Column({ type: Date }) createdAt: Date\n @Column({ type: Date, nullable: true }) frozenAt: Date | null\n @Column('varchar', { nullable: true }) contentHash: string | null\n /** Opaque product decision ID: the common master module does not depend on worklist. */\n @Column('varchar', { nullable: true }) activityInstanceId: string | null\n}\n\n/** An append-only generation of the complete schedule for one arrangement. */\n@Entity('work_shift_plan')\n@Index('ix_arrangement_plan_generation', ['domain', 'arrangement', 'generation'], { unique: true })\n@Index('ix_arrangement_plan_identity', ['domain', 'arrangement', 'id'], { unique: true })\n@Index('ix_arrangement_plan_decision', ['activityInstanceId'], { unique: true })\n@Index('ix_arrangement_plan_publication', ['publishedRevision'], { unique: true })\n@ForeignKey(() => MasterChangePolicy, ['domain', 'policy'], ['domain', 'id'], { onDelete: 'RESTRICT' })\n@ForeignKey(() => WorkShiftRevision, ['domain', 'arrangement', 'publishedRevision'], ['domain', 'arrangement', 'id'], { onDelete: 'RESTRICT' })\n@ForeignKey('WorkShiftArrangement', ['domain', 'arrangement'], ['domain', 'id'], { onDelete: 'RESTRICT' })\nexport class WorkShiftPlan {\n @ManyToOne(() => MasterChangePolicy, { nullable: false, createForeignKeyConstraints: false })\n policy: MasterChangePolicy\n @RelationId((row: WorkShiftPlan) => row.policy)\n policyId: string\n @ManyToOne(() => WorkShiftRevision, { nullable: false, createForeignKeyConstraints: false })\n publishedRevision: WorkShiftRevision\n @RelationId((row: WorkShiftPlan) => row.publishedRevision)\n publishedRevisionId: string\n @Column('varchar') releaseKind: 'approved' | 'policy'\n @ManyToOne(() => User, { nullable: false }) publisher: User\n @RelationId((row: WorkShiftPlan) => row.publisher) publisherId: string\n @PrimaryGeneratedColumn('uuid') id: string\n @ManyToOne(() => Domain, { nullable: false })\n domain: Domain\n @RelationId((row: WorkShiftPlan) => row.domain)\n domainId: string\n @ManyToOne('WorkShiftArrangement', { nullable: false, createForeignKeyConstraints: false })\n arrangement: WorkShiftArrangement\n @RelationId((row: WorkShiftPlan) => row.arrangement)\n arrangementId: string\n @Column('int') generation: number\n @Column({ type: Date }) recordedAt: Date\n @Column('varchar', { nullable: true }) activityInstanceId: string | null\n @ManyToOne(() => User, { nullable: true })\n approver: User\n @RelationId((row: WorkShiftPlan) => row.approver)\n approverId: string\n @Column('varchar') submissionHash: string\n}\n\n@Entity('work_shift_segment')\n@Index('ix_arrangement_segment_lookup', ['domain', 'arrangement', 'plan', 'validFrom'])\n@ForeignKey('WorkShiftArrangement', ['domain', 'arrangement'], ['domain', 'id'], { onDelete: 'RESTRICT' })\n@ForeignKey(() => WorkShiftPlan, ['domain', 'arrangement', 'plan'], ['domain', 'arrangement', 'id'], { onDelete: 'RESTRICT' })\n@ForeignKey(() => WorkShiftRevision, ['domain', 'arrangement', 'revision'], ['domain', 'arrangement', 'id'], {\n onDelete: 'RESTRICT'\n})\nexport class WorkShiftSegment {\n @PrimaryGeneratedColumn('uuid') id: string\n @ManyToOne(() => Domain, { nullable: false })\n domain: Domain\n @RelationId((row: WorkShiftSegment) => row.domain)\n domainId: string\n @ManyToOne('WorkShiftArrangement', { nullable: false, createForeignKeyConstraints: false })\n arrangement: WorkShiftArrangement\n @RelationId((row: WorkShiftSegment) => row.arrangement)\n arrangementId: string\n @ManyToOne(() => WorkShiftPlan, { nullable: false, createForeignKeyConstraints: false })\n plan: WorkShiftPlan\n @RelationId((row: WorkShiftSegment) => row.plan)\n planId: string\n @ManyToOne(() => WorkShiftRevision, { nullable: false, createForeignKeyConstraints: false })\n revision: WorkShiftRevision\n @RelationId((row: WorkShiftSegment) => row.revision)\n revisionId: string\n @Column({ type: Date }) validFrom: Date\n @Column({ type: Date, nullable: true }) validTo: Date | null\n}\n\n/** Permanent evidence of the selected revision, also the retroactivity interlock. */\n@Entity('work_shift_basis')\n@Index('ix_work_shift_basis_domain', ['domain', 'id'], { unique: true })\n@Index('ix_arrangement_basis_owner', ['domain', 'arrangement', 'id'], { unique: true })\n@Index('ix_arrangement_basis_identity', ['domain', 'id', 'revision'], { unique: true })\n@Index('ix_arrangement_basis_record', ['domain', 'recordKey'], { unique: true })\n@Index('ix_arrangement_basis_time', ['domain', 'arrangement', 'businessTime'])\n@ForeignKey('WorkShiftArrangement', ['domain', 'arrangement'], ['domain', 'id'], { onDelete: 'RESTRICT' })\n@ForeignKey(() => WorkShiftPlan, ['domain', 'arrangement', 'plan'], ['domain', 'arrangement', 'id'], { onDelete: 'RESTRICT' })\n@ForeignKey(() => WorkShiftRevision, ['domain', 'arrangement', 'revision'], ['domain', 'arrangement', 'id'], {\n onDelete: 'RESTRICT'\n})\nexport class WorkShiftBasis {\n @PrimaryGeneratedColumn('uuid') id: string\n @ManyToOne(() => Domain, { nullable: false })\n domain: Domain\n @RelationId((row: WorkShiftBasis) => row.domain)\n domainId: string\n @ManyToOne('WorkShiftArrangement', { nullable: false, createForeignKeyConstraints: false })\n arrangement: WorkShiftArrangement\n @RelationId((row: WorkShiftBasis) => row.arrangement)\n arrangementId: string\n @Column('varchar') recordKey: string\n @ManyToOne(() => WorkShiftRevision, { nullable: false, createForeignKeyConstraints: false })\n revision: WorkShiftRevision\n @RelationId((row: WorkShiftBasis) => row.revision)\n revisionId: string\n @ManyToOne(() => WorkShiftPlan, { nullable: false, createForeignKeyConstraints: false })\n plan: WorkShiftPlan\n @RelationId((row: WorkShiftBasis) => row.plan)\n planId: string\n @Column('varchar') contentHash: string\n @Column({ type: Date }) businessTime: Date\n @Column({ type: Date }) resolvedAt: Date\n}\n\nexport const WORK_SHIFT_REVISION_ENTITIES = [\n WorkShiftRevision,\n WorkShiftPlan,\n WorkShiftSegment,\n WorkShiftBasis\n]\n"]}
1
+ {"version":3,"file":"work-shift-revision.js","sourceRoot":"","sources":["../../../server/service/work-shift/work-shift-revision.ts"],"names":[],"mappings":"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","sourcesContent":["import { Column, Entity, ForeignKey, Index, ManyToOne, PrimaryGeneratedColumn, RelationId } from 'typeorm'\nimport { Domain } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\nimport { WorkShiftArrangement } from './work-shift-arrangement'\nimport { MasterChangePolicy } from '@things-factory/ops-master'\n\n// Relations own the columns and RelationId exposes read-only identifiers.\n// Where a composite FK is declared, disable only the redundant single-column FK;\n// the database still enforces existence, domain and arrangement together.\n\n/** Content and the proposed effective date freeze together. Worklist owns the decision. */\n@Entity('work_shift_revisions')\n@Index('ix_arrangement_revision_subject', ['domain', 'arrangement', 'id'], { unique: true })\n@Index('ix_arrangement_revision_list', ['domain', 'arrangement', 'createdAt'])\n@ForeignKey(() => MasterChangePolicy, ['domain', 'policy'], ['domain', 'id'], { onDelete: 'RESTRICT' })\n@ForeignKey('WorkShiftArrangement', ['domain', 'arrangement'], ['domain', 'id'], { onDelete: 'RESTRICT' })\n@ForeignKey('WorkShiftRevision', ['domain', 'arrangement', 'baseRevision'], ['domain', 'arrangement', 'id'], {\n onDelete: 'RESTRICT'\n})\n@Index('ix_arrangement_revision_number', ['domain', 'arrangement', 'revisionNumber'], { unique: true })\nexport class WorkShiftRevision {\n /** Human revision number within one identity; assigned once under the subject write lock. */\n @Column('int') revisionNumber: number\n @ManyToOne(() => MasterChangePolicy, { nullable: false, createForeignKeyConstraints: false })\n policy: MasterChangePolicy\n @RelationId((row: WorkShiftRevision) => row.policy)\n policyId: string\n @PrimaryGeneratedColumn('uuid') id: string\n @ManyToOne(() => Domain, { nullable: false })\n domain: Domain\n @RelationId((row: WorkShiftRevision) => row.domain)\n domainId: string\n @ManyToOne('WorkShiftArrangement', { nullable: false, createForeignKeyConstraints: false })\n arrangement: WorkShiftArrangement\n @RelationId((row: WorkShiftRevision) => row.arrangement)\n arrangementId: string\n @ManyToOne(() => WorkShiftRevision, { nullable: true, createForeignKeyConstraints: false })\n baseRevision: WorkShiftRevision | null\n @RelationId((row: WorkShiftRevision) => row.baseRevision)\n baseRevisionId: string | null\n @Column('int') baseGeneration: number\n @Column('int', { default: 0 }) editGeneration: number\n @Column('text', { nullable: true }) description: string | null\n @Column() timezone: string\n @Column('simple-json') shifts: import('./work-shift-content').ShiftDefinition[]\n @Column({ type: Date }) effectiveFrom: Date\n @Column('text') reason: string\n /** Empty only on a baseline: nobody wrote it, it records the shifts as they already stood. */\n @ManyToOne(() => User, { nullable: true })\n creator: User | null\n @RelationId((row: WorkShiftRevision) => row.creator)\n creatorId: string | null\n @Column({ type: Date }) createdAt: Date\n @Column({ type: Date, nullable: true }) frozenAt: Date | null\n @Column('varchar', { nullable: true }) contentHash: string | null\n /** Opaque product decision ID: the common master module does not depend on worklist. */\n @Column('varchar', { nullable: true }) activityInstanceId: string | null\n}\n\n/** An append-only generation of the complete schedule for one arrangement. */\n@Entity('work_shift_plan')\n@Index('ix_arrangement_plan_generation', ['domain', 'arrangement', 'generation'], { unique: true })\n@Index('ix_arrangement_plan_identity', ['domain', 'arrangement', 'id'], { unique: true })\n@Index('ix_arrangement_plan_decision', ['activityInstanceId'], { unique: true })\n@Index('ix_arrangement_plan_publication', ['publishedRevision'], { unique: true })\n@ForeignKey(() => MasterChangePolicy, ['domain', 'policy'], ['domain', 'id'], { onDelete: 'RESTRICT' })\n@ForeignKey(() => WorkShiftRevision, ['domain', 'arrangement', 'publishedRevision'], ['domain', 'arrangement', 'id'], { onDelete: 'RESTRICT' })\n@ForeignKey('WorkShiftArrangement', ['domain', 'arrangement'], ['domain', 'id'], { onDelete: 'RESTRICT' })\nexport class WorkShiftPlan {\n @ManyToOne(() => MasterChangePolicy, { nullable: false, createForeignKeyConstraints: false })\n policy: MasterChangePolicy\n @RelationId((row: WorkShiftPlan) => row.policy)\n policyId: string\n @ManyToOne(() => WorkShiftRevision, { nullable: false, createForeignKeyConstraints: false })\n publishedRevision: WorkShiftRevision\n @RelationId((row: WorkShiftPlan) => row.publishedRevision)\n publishedRevisionId: string\n /** `baseline`: stood at boot from shifts that predate revisions. No approver, no publisher. */\n @Column('varchar') releaseKind: 'approved' | 'policy' | 'baseline'\n @ManyToOne(() => User, { nullable: true }) publisher: User | null\n @RelationId((row: WorkShiftPlan) => row.publisher) publisherId: string | null\n @PrimaryGeneratedColumn('uuid') id: string\n @ManyToOne(() => Domain, { nullable: false })\n domain: Domain\n @RelationId((row: WorkShiftPlan) => row.domain)\n domainId: string\n @ManyToOne('WorkShiftArrangement', { nullable: false, createForeignKeyConstraints: false })\n arrangement: WorkShiftArrangement\n @RelationId((row: WorkShiftPlan) => row.arrangement)\n arrangementId: string\n @Column('int') generation: number\n @Column({ type: Date }) recordedAt: Date\n @Column('varchar', { nullable: true }) activityInstanceId: string | null\n @ManyToOne(() => User, { nullable: true })\n approver: User\n @RelationId((row: WorkShiftPlan) => row.approver)\n approverId: string\n @Column('varchar') submissionHash: string\n}\n\n@Entity('work_shift_segment')\n@Index('ix_arrangement_segment_lookup', ['domain', 'arrangement', 'plan', 'validFrom'])\n@ForeignKey('WorkShiftArrangement', ['domain', 'arrangement'], ['domain', 'id'], { onDelete: 'RESTRICT' })\n@ForeignKey(() => WorkShiftPlan, ['domain', 'arrangement', 'plan'], ['domain', 'arrangement', 'id'], { onDelete: 'RESTRICT' })\n@ForeignKey(() => WorkShiftRevision, ['domain', 'arrangement', 'revision'], ['domain', 'arrangement', 'id'], {\n onDelete: 'RESTRICT'\n})\nexport class WorkShiftSegment {\n @PrimaryGeneratedColumn('uuid') id: string\n @ManyToOne(() => Domain, { nullable: false })\n domain: Domain\n @RelationId((row: WorkShiftSegment) => row.domain)\n domainId: string\n @ManyToOne('WorkShiftArrangement', { nullable: false, createForeignKeyConstraints: false })\n arrangement: WorkShiftArrangement\n @RelationId((row: WorkShiftSegment) => row.arrangement)\n arrangementId: string\n @ManyToOne(() => WorkShiftPlan, { nullable: false, createForeignKeyConstraints: false })\n plan: WorkShiftPlan\n @RelationId((row: WorkShiftSegment) => row.plan)\n planId: string\n @ManyToOne(() => WorkShiftRevision, { nullable: false, createForeignKeyConstraints: false })\n revision: WorkShiftRevision\n @RelationId((row: WorkShiftSegment) => row.revision)\n revisionId: string\n @Column({ type: Date }) validFrom: Date\n @Column({ type: Date, nullable: true }) validTo: Date | null\n}\n\n/** Permanent evidence of the selected revision, also the retroactivity interlock. */\n@Entity('work_shift_basis')\n@Index('ix_work_shift_basis_domain', ['domain', 'id'], { unique: true })\n@Index('ix_arrangement_basis_owner', ['domain', 'arrangement', 'id'], { unique: true })\n@Index('ix_arrangement_basis_identity', ['domain', 'id', 'revision'], { unique: true })\n@Index('ix_arrangement_basis_record', ['domain', 'recordKey'], { unique: true })\n@Index('ix_arrangement_basis_time', ['domain', 'arrangement', 'businessTime'])\n@ForeignKey('WorkShiftArrangement', ['domain', 'arrangement'], ['domain', 'id'], { onDelete: 'RESTRICT' })\n@ForeignKey(() => WorkShiftPlan, ['domain', 'arrangement', 'plan'], ['domain', 'arrangement', 'id'], { onDelete: 'RESTRICT' })\n@ForeignKey(() => WorkShiftRevision, ['domain', 'arrangement', 'revision'], ['domain', 'arrangement', 'id'], {\n onDelete: 'RESTRICT'\n})\nexport class WorkShiftBasis {\n @PrimaryGeneratedColumn('uuid') id: string\n @ManyToOne(() => Domain, { nullable: false })\n domain: Domain\n @RelationId((row: WorkShiftBasis) => row.domain)\n domainId: string\n @ManyToOne('WorkShiftArrangement', { nullable: false, createForeignKeyConstraints: false })\n arrangement: WorkShiftArrangement\n @RelationId((row: WorkShiftBasis) => row.arrangement)\n arrangementId: string\n @Column('varchar') recordKey: string\n @ManyToOne(() => WorkShiftRevision, { nullable: false, createForeignKeyConstraints: false })\n revision: WorkShiftRevision\n @RelationId((row: WorkShiftBasis) => row.revision)\n revisionId: string\n @ManyToOne(() => WorkShiftPlan, { nullable: false, createForeignKeyConstraints: false })\n plan: WorkShiftPlan\n @RelationId((row: WorkShiftBasis) => row.plan)\n planId: string\n @Column('varchar') contentHash: string\n @Column({ type: Date }) businessTime: Date\n @Column({ type: Date }) resolvedAt: Date\n}\n\nexport const WORK_SHIFT_REVISION_ENTITIES = [\n WorkShiftRevision,\n WorkShiftPlan,\n WorkShiftSegment,\n WorkShiftBasis\n]\n"]}