@rippling/rippling-sdk 0.2.0-alpha.86 → 0.2.0-alpha.87
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/client.d.mts +15 -0
- package/client.d.mts.map +1 -1
- package/client.d.ts +15 -0
- package/client.d.ts.map +1 -1
- package/client.js +15 -0
- package/client.js.map +1 -1
- package/client.mjs +15 -0
- package/client.mjs.map +1 -1
- package/lib/leave-programs/advanced.d.mts +5 -0
- package/lib/leave-programs/advanced.d.mts.map +1 -0
- package/lib/leave-programs/advanced.d.ts +5 -0
- package/lib/leave-programs/advanced.d.ts.map +1 -0
- package/lib/leave-programs/advanced.js +13 -0
- package/lib/leave-programs/advanced.js.map +1 -0
- package/lib/leave-programs/advanced.mjs +4 -0
- package/lib/leave-programs/advanced.mjs.map +1 -0
- package/lib/leave-programs/context.d.mts +3 -0
- package/lib/leave-programs/context.d.mts.map +1 -0
- package/lib/leave-programs/context.d.ts +3 -0
- package/lib/leave-programs/context.d.ts.map +1 -0
- package/lib/leave-programs/context.js +89 -0
- package/lib/leave-programs/context.js.map +1 -0
- package/lib/leave-programs/context.mjs +86 -0
- package/lib/leave-programs/context.mjs.map +1 -0
- package/lib/leave-programs/define-company-leave-program.d.mts +3 -0
- package/lib/leave-programs/define-company-leave-program.d.mts.map +1 -0
- package/lib/leave-programs/define-company-leave-program.d.ts +3 -0
- package/lib/leave-programs/define-company-leave-program.d.ts.map +1 -0
- package/lib/leave-programs/define-company-leave-program.js +47 -0
- package/lib/leave-programs/define-company-leave-program.js.map +1 -0
- package/lib/leave-programs/define-company-leave-program.mjs +44 -0
- package/lib/leave-programs/define-company-leave-program.mjs.map +1 -0
- package/lib/leave-programs/duration.d.mts +5 -0
- package/lib/leave-programs/duration.d.mts.map +1 -0
- package/lib/leave-programs/duration.d.ts +5 -0
- package/lib/leave-programs/duration.d.ts.map +1 -0
- package/lib/leave-programs/duration.js +21 -0
- package/lib/leave-programs/duration.js.map +1 -0
- package/lib/leave-programs/duration.mjs +16 -0
- package/lib/leave-programs/duration.mjs.map +1 -0
- package/lib/leave-programs/pay.d.mts +4 -0
- package/lib/leave-programs/pay.d.mts.map +1 -0
- package/lib/leave-programs/pay.d.ts +4 -0
- package/lib/leave-programs/pay.d.ts.map +1 -0
- package/lib/leave-programs/pay.js +20 -0
- package/lib/leave-programs/pay.js.map +1 -0
- package/lib/leave-programs/pay.mjs +16 -0
- package/lib/leave-programs/pay.mjs.map +1 -0
- package/lib/leave-programs/policy-builder.d.mts +20 -0
- package/lib/leave-programs/policy-builder.d.mts.map +1 -0
- package/lib/leave-programs/policy-builder.d.ts +20 -0
- package/lib/leave-programs/policy-builder.d.ts.map +1 -0
- package/lib/leave-programs/policy-builder.js +89 -0
- package/lib/leave-programs/policy-builder.js.map +1 -0
- package/lib/leave-programs/policy-builder.mjs +85 -0
- package/lib/leave-programs/policy-builder.mjs.map +1 -0
- package/lib/leave-programs/recipes/parental-top-up-policy.d.mts +25 -0
- package/lib/leave-programs/recipes/parental-top-up-policy.d.mts.map +1 -0
- package/lib/leave-programs/recipes/parental-top-up-policy.d.ts +25 -0
- package/lib/leave-programs/recipes/parental-top-up-policy.d.ts.map +1 -0
- package/lib/leave-programs/recipes/parental-top-up-policy.js +56 -0
- package/lib/leave-programs/recipes/parental-top-up-policy.js.map +1 -0
- package/lib/leave-programs/recipes/parental-top-up-policy.mjs +53 -0
- package/lib/leave-programs/recipes/parental-top-up-policy.mjs.map +1 -0
- package/lib/leave-programs/testing.d.mts +8 -0
- package/lib/leave-programs/testing.d.mts.map +1 -0
- package/lib/leave-programs/testing.d.ts +8 -0
- package/lib/leave-programs/testing.d.ts.map +1 -0
- package/lib/leave-programs/testing.js +11 -0
- package/lib/leave-programs/testing.js.map +1 -0
- package/lib/leave-programs/testing.mjs +7 -0
- package/lib/leave-programs/testing.mjs.map +1 -0
- package/lib/leave-programs/types.d.mts +223 -0
- package/lib/leave-programs/types.d.mts.map +1 -0
- package/lib/leave-programs/types.d.ts +223 -0
- package/lib/leave-programs/types.d.ts.map +1 -0
- package/lib/leave-programs/types.js +10 -0
- package/lib/leave-programs/types.js.map +1 -0
- package/lib/leave-programs/types.mjs +7 -0
- package/lib/leave-programs/types.mjs.map +1 -0
- package/lib/leave-programs.d.mts +7 -0
- package/lib/leave-programs.d.mts.map +1 -0
- package/lib/leave-programs.d.ts +7 -0
- package/lib/leave-programs.d.ts.map +1 -0
- package/lib/leave-programs.js +19 -0
- package/lib/leave-programs.js.map +1 -0
- package/lib/leave-programs.mjs +7 -0
- package/lib/leave-programs.mjs.map +1 -0
- package/package.json +1 -1
- package/resources/agents/agents.d.mts +208 -0
- package/resources/agents/agents.d.mts.map +1 -0
- package/resources/agents/agents.d.ts +208 -0
- package/resources/agents/agents.d.ts.map +1 -0
- package/resources/agents/agents.js +64 -0
- package/resources/agents/agents.js.map +1 -0
- package/resources/agents/agents.mjs +59 -0
- package/resources/agents/agents.mjs.map +1 -0
- package/resources/agents/deployments.d.mts +180 -0
- package/resources/agents/deployments.d.mts.map +1 -0
- package/resources/agents/deployments.d.ts +180 -0
- package/resources/agents/deployments.d.ts.map +1 -0
- package/resources/agents/deployments.js +32 -0
- package/resources/agents/deployments.js.map +1 -0
- package/resources/agents/deployments.mjs +28 -0
- package/resources/agents/deployments.mjs.map +1 -0
- package/resources/agents/index.d.mts +5 -0
- package/resources/agents/index.d.mts.map +1 -0
- package/resources/agents/index.d.ts +5 -0
- package/resources/agents/index.d.ts.map +1 -0
- package/resources/agents/index.js +13 -0
- package/resources/agents/index.js.map +1 -0
- package/resources/agents/index.mjs +6 -0
- package/resources/agents/index.mjs.map +1 -0
- package/resources/agents/sessions/events.d.mts +80 -0
- package/resources/agents/sessions/events.d.mts.map +1 -0
- package/resources/agents/sessions/events.d.ts +80 -0
- package/resources/agents/sessions/events.d.ts.map +1 -0
- package/resources/agents/sessions/events.js +19 -0
- package/resources/agents/sessions/events.js.map +1 -0
- package/resources/agents/sessions/events.mjs +15 -0
- package/resources/agents/sessions/events.mjs.map +1 -0
- package/resources/agents/sessions/index.d.mts +3 -0
- package/resources/agents/sessions/index.d.mts.map +1 -0
- package/resources/agents/sessions/index.d.ts +3 -0
- package/resources/agents/sessions/index.d.ts.map +1 -0
- package/resources/agents/sessions/index.js +9 -0
- package/resources/agents/sessions/index.js.map +1 -0
- package/resources/agents/sessions/index.mjs +4 -0
- package/resources/agents/sessions/index.mjs.map +1 -0
- package/resources/agents/sessions/sessions.d.mts +153 -0
- package/resources/agents/sessions/sessions.d.mts.map +1 -0
- package/resources/agents/sessions/sessions.d.ts +153 -0
- package/resources/agents/sessions/sessions.d.ts.map +1 -0
- package/resources/agents/sessions/sessions.js +44 -0
- package/resources/agents/sessions/sessions.js.map +1 -0
- package/resources/agents/sessions/sessions.mjs +39 -0
- package/resources/agents/sessions/sessions.mjs.map +1 -0
- package/resources/agents/sessions.d.mts +2 -0
- package/resources/agents/sessions.d.mts.map +1 -0
- package/resources/agents/sessions.d.ts +2 -0
- package/resources/agents/sessions.d.ts.map +1 -0
- package/resources/agents/sessions.js +6 -0
- package/resources/agents/sessions.js.map +1 -0
- package/resources/agents/sessions.mjs +3 -0
- package/resources/agents/sessions.mjs.map +1 -0
- package/resources/agents/source-revisions.d.mts +195 -0
- package/resources/agents/source-revisions.d.mts.map +1 -0
- package/resources/agents/source-revisions.d.ts +195 -0
- package/resources/agents/source-revisions.d.ts.map +1 -0
- package/resources/agents/source-revisions.js +32 -0
- package/resources/agents/source-revisions.js.map +1 -0
- package/resources/agents/source-revisions.mjs +28 -0
- package/resources/agents/source-revisions.mjs.map +1 -0
- package/resources/agents.d.mts +2 -0
- package/resources/agents.d.mts.map +1 -0
- package/resources/agents.d.ts +2 -0
- package/resources/agents.d.ts.map +1 -0
- package/resources/agents.js +6 -0
- package/resources/agents.js.map +1 -0
- package/resources/agents.mjs +3 -0
- package/resources/agents.mjs.map +1 -0
- package/resources/break-policies.d.mts +1 -1
- package/resources/break-policies.d.ts +1 -1
- package/resources/break-policies.js +1 -1
- package/resources/break-policies.mjs +1 -1
- package/resources/break-types.d.mts +1 -1
- package/resources/break-types.d.ts +1 -1
- package/resources/break-types.js +1 -1
- package/resources/break-types.mjs +1 -1
- package/resources/business-structure-paths.d.mts +1 -1
- package/resources/business-structure-paths.d.ts +1 -1
- package/resources/business-structure-paths.js +1 -1
- package/resources/business-structure-paths.mjs +1 -1
- package/resources/candidate-applications.d.mts +1 -1
- package/resources/candidate-applications.d.ts +1 -1
- package/resources/candidate-applications.js +1 -1
- package/resources/candidate-applications.mjs +1 -1
- package/resources/candidates.d.mts +1 -1
- package/resources/candidates.d.ts +1 -1
- package/resources/candidates.js +1 -1
- package/resources/candidates.mjs +1 -1
- package/resources/company-legal-entities.d.mts +1 -1
- package/resources/company-legal-entities.d.ts +1 -1
- package/resources/company-legal-entities.js +1 -1
- package/resources/company-legal-entities.mjs +1 -1
- package/resources/company-legal-entity-workers.d.mts +1 -1
- package/resources/company-legal-entity-workers.d.ts +1 -1
- package/resources/company-legal-entity-workers.js +1 -1
- package/resources/company-legal-entity-workers.mjs +1 -1
- package/resources/compensation-bands-details.d.mts +1 -1
- package/resources/compensation-bands-details.d.ts +1 -1
- package/resources/compensation-bands-details.js +1 -1
- package/resources/compensation-bands-details.mjs +1 -1
- package/resources/compensations.d.mts +1 -1
- package/resources/compensations.d.ts +1 -1
- package/resources/compensations.js +1 -1
- package/resources/compensations.mjs +1 -1
- package/resources/device-orders.d.mts +1 -1
- package/resources/device-orders.d.ts +1 -1
- package/resources/device-orders.js +1 -1
- package/resources/device-orders.mjs +1 -1
- package/resources/devices.d.mts +1 -1
- package/resources/devices.d.ts +1 -1
- package/resources/devices.js +1 -1
- package/resources/devices.mjs +1 -1
- package/resources/functions/deployments.d.mts +2 -2
- package/resources/functions/deployments.d.ts +2 -2
- package/resources/functions/deployments.js +2 -2
- package/resources/functions/deployments.mjs +2 -2
- package/resources/functions/executions.d.mts +2 -2
- package/resources/functions/executions.d.ts +2 -2
- package/resources/functions/executions.js +2 -2
- package/resources/functions/executions.mjs +2 -2
- package/resources/functions/functions.d.mts +1 -1
- package/resources/functions/functions.d.ts +1 -1
- package/resources/functions/functions.js +1 -1
- package/resources/functions/functions.mjs +1 -1
- package/resources/headcount-positions.d.mts +1 -1
- package/resources/headcount-positions.d.ts +1 -1
- package/resources/headcount-positions.js +1 -1
- package/resources/headcount-positions.mjs +1 -1
- package/resources/headcount-priorities.d.mts +1 -1
- package/resources/headcount-priorities.d.ts +1 -1
- package/resources/headcount-priorities.js +1 -1
- package/resources/headcount-priorities.mjs +1 -1
- package/resources/index.d.mts +3 -0
- package/resources/index.d.mts.map +1 -1
- package/resources/index.d.ts +3 -0
- package/resources/index.d.ts.map +1 -1
- package/resources/index.js +8 -2
- package/resources/index.js.map +1 -1
- package/resources/index.mjs +3 -0
- package/resources/index.mjs.map +1 -1
- package/resources/job-assignments.d.mts +2 -2
- package/resources/job-assignments.d.ts +2 -2
- package/resources/job-assignments.js +2 -2
- package/resources/job-assignments.mjs +2 -2
- package/resources/job-codes.d.mts +2 -2
- package/resources/job-codes.d.ts +2 -2
- package/resources/job-codes.js +2 -2
- package/resources/job-codes.mjs +2 -2
- package/resources/job-dimensions.d.mts +1 -1
- package/resources/job-dimensions.d.ts +1 -1
- package/resources/job-dimensions.js +1 -1
- package/resources/job-dimensions.mjs +1 -1
- package/resources/job-pay-rate-exceptions.d.mts +2 -2
- package/resources/job-pay-rate-exceptions.d.ts +2 -2
- package/resources/job-pay-rate-exceptions.js +2 -2
- package/resources/job-pay-rate-exceptions.mjs +2 -2
- package/resources/job-requisitions.d.mts +1 -1
- package/resources/job-requisitions.d.ts +1 -1
- package/resources/job-requisitions.js +1 -1
- package/resources/job-requisitions.mjs +1 -1
- package/resources/kiosk-badges.d.mts +1 -1
- package/resources/kiosk-badges.d.ts +1 -1
- package/resources/kiosk-badges.js +1 -1
- package/resources/kiosk-badges.mjs +1 -1
- package/resources/leave-accruals.d.mts +1 -1
- package/resources/leave-accruals.d.ts +1 -1
- package/resources/leave-accruals.js +1 -1
- package/resources/leave-accruals.mjs +1 -1
- package/resources/leave-balances.d.mts +1 -1
- package/resources/leave-balances.d.ts +1 -1
- package/resources/leave-balances.js +1 -1
- package/resources/leave-balances.mjs +1 -1
- package/resources/leave-requests.d.mts +1 -1
- package/resources/leave-requests.d.ts +1 -1
- package/resources/leave-requests.js +1 -1
- package/resources/leave-requests.mjs +1 -1
- package/resources/leave-types.d.mts +1 -1
- package/resources/leave-types.d.ts +1 -1
- package/resources/leave-types.js +1 -1
- package/resources/leave-types.mjs +1 -1
- package/resources/legal-entities.d.mts +1 -1
- package/resources/legal-entities.d.ts +1 -1
- package/resources/legal-entities.js +1 -1
- package/resources/legal-entities.mjs +1 -1
- package/resources/levels.d.mts +1 -1
- package/resources/levels.d.ts +1 -1
- package/resources/levels.js +1 -1
- package/resources/levels.mjs +1 -1
- package/resources/location-factors.d.mts +1 -1
- package/resources/location-factors.d.ts +1 -1
- package/resources/location-factors.js +1 -1
- package/resources/location-factors.mjs +1 -1
- package/resources/packages/index.d.mts +3 -0
- package/resources/packages/index.d.mts.map +1 -0
- package/resources/packages/index.d.ts +3 -0
- package/resources/packages/index.d.ts.map +1 -0
- package/resources/packages/index.js +9 -0
- package/resources/packages/index.js.map +1 -0
- package/resources/packages/index.mjs +4 -0
- package/resources/packages/index.mjs.map +1 -0
- package/resources/packages/packages.d.mts +239 -0
- package/resources/packages/packages.d.mts.map +1 -0
- package/resources/packages/packages.d.ts +239 -0
- package/resources/packages/packages.d.ts.map +1 -0
- package/resources/packages/packages.js +60 -0
- package/resources/packages/packages.js.map +1 -0
- package/resources/packages/packages.mjs +55 -0
- package/resources/packages/packages.mjs.map +1 -0
- package/resources/packages/versions.d.mts +72 -0
- package/resources/packages/versions.d.mts.map +1 -0
- package/resources/packages/versions.d.ts +72 -0
- package/resources/packages/versions.d.ts.map +1 -0
- package/resources/packages/versions.js +19 -0
- package/resources/packages/versions.js.map +1 -0
- package/resources/packages/versions.mjs +15 -0
- package/resources/packages/versions.mjs.map +1 -0
- package/resources/packages.d.mts +2 -0
- package/resources/packages.d.mts.map +1 -0
- package/resources/packages.d.ts +2 -0
- package/resources/packages.d.ts.map +1 -0
- package/resources/packages.js +6 -0
- package/resources/packages.js.map +1 -0
- package/resources/packages.mjs +3 -0
- package/resources/packages.mjs.map +1 -0
- package/resources/scheduled-job-assignments.d.mts +1 -1
- package/resources/scheduled-job-assignments.d.ts +1 -1
- package/resources/scheduled-job-assignments.js +1 -1
- package/resources/scheduled-job-assignments.mjs +1 -1
- package/resources/schedules.d.mts +1 -1
- package/resources/schedules.d.ts +1 -1
- package/resources/schedules.js +1 -1
- package/resources/schedules.mjs +1 -1
- package/resources/shift-assignments.d.mts +1 -1
- package/resources/shift-assignments.d.ts +1 -1
- package/resources/shift-assignments.js +1 -1
- package/resources/shift-assignments.mjs +1 -1
- package/resources/shift-inputs.d.mts +1 -1
- package/resources/shift-inputs.d.ts +1 -1
- package/resources/shift-inputs.js +1 -1
- package/resources/shift-inputs.mjs +1 -1
- package/resources/shiftassignments.d.mts +1 -1
- package/resources/shiftassignments.d.ts +1 -1
- package/resources/shiftassignments.js +1 -1
- package/resources/shiftassignments.mjs +1 -1
- package/resources/sites.d.mts +572 -0
- package/resources/sites.d.mts.map +1 -0
- package/resources/sites.d.ts +572 -0
- package/resources/sites.d.ts.map +1 -0
- package/resources/sites.js +154 -0
- package/resources/sites.js.map +1 -0
- package/resources/sites.mjs +150 -0
- package/resources/sites.mjs.map +1 -0
- package/resources/software-deployments.d.mts +1 -1
- package/resources/software-deployments.d.ts +1 -1
- package/resources/software-deployments.js +1 -1
- package/resources/software-deployments.mjs +1 -1
- package/resources/time-cards.d.mts +1 -1
- package/resources/time-cards.d.ts +1 -1
- package/resources/time-cards.js +1 -1
- package/resources/time-cards.mjs +1 -1
- package/resources/time-entries.d.mts +1 -1
- package/resources/time-entries.d.ts +1 -1
- package/resources/time-entries.js +1 -1
- package/resources/time-entries.mjs +1 -1
- package/resources/tracks.d.mts +1 -1
- package/resources/tracks.d.ts +1 -1
- package/resources/tracks.js +1 -1
- package/resources/tracks.mjs +1 -1
- package/resources/unassigned-shifts.d.mts +2 -2
- package/resources/unassigned-shifts.d.ts +2 -2
- package/resources/unassigned-shifts.js +2 -2
- package/resources/unassigned-shifts.mjs +2 -2
- package/resources/unassignedshifts.d.mts +1 -1
- package/resources/unassignedshifts.d.ts +1 -1
- package/resources/unassignedshifts.js +1 -1
- package/resources/unassignedshifts.mjs +1 -1
- package/resources/worker-time-splits.d.mts +1 -1
- package/resources/worker-time-splits.d.ts +1 -1
- package/resources/worker-time-splits.js +1 -1
- package/resources/worker-time-splits.mjs +1 -1
- package/src/client.ts +91 -0
- package/src/lib/leave-programs/README.md +160 -0
- package/src/lib/leave-programs/advanced.ts +11 -0
- package/src/lib/leave-programs/context.ts +101 -0
- package/src/lib/leave-programs/define-company-leave-program.ts +58 -0
- package/src/lib/leave-programs/duration.ts +20 -0
- package/src/lib/leave-programs/pay.ts +18 -0
- package/src/lib/leave-programs/policy-builder.ts +113 -0
- package/src/lib/leave-programs/recipes/parental-top-up-policy.ts +85 -0
- package/src/lib/leave-programs/testing.ts +16 -0
- package/src/lib/leave-programs/types.ts +274 -0
- package/src/lib/leave-programs.ts +35 -0
- package/src/resources/agents/agents.ts +340 -0
- package/src/resources/agents/deployments.ts +249 -0
- package/src/resources/agents/index.ts +40 -0
- package/src/resources/agents/sessions/events.ts +107 -0
- package/src/resources/agents/sessions/index.ts +12 -0
- package/src/resources/agents/sessions/sessions.ts +216 -0
- package/src/resources/agents/sessions.ts +3 -0
- package/src/resources/agents/source-revisions.ts +267 -0
- package/src/resources/agents.ts +3 -0
- package/src/resources/break-policies.ts +1 -1
- package/src/resources/break-types.ts +1 -1
- package/src/resources/business-structure-paths.ts +1 -1
- package/src/resources/candidate-applications.ts +1 -1
- package/src/resources/candidates.ts +1 -1
- package/src/resources/company-legal-entities.ts +1 -1
- package/src/resources/company-legal-entity-workers.ts +1 -1
- package/src/resources/compensation-bands-details.ts +1 -1
- package/src/resources/compensations.ts +1 -1
- package/src/resources/device-orders.ts +1 -1
- package/src/resources/devices.ts +1 -1
- package/src/resources/functions/deployments.ts +2 -2
- package/src/resources/functions/executions.ts +2 -2
- package/src/resources/functions/functions.ts +1 -1
- package/src/resources/headcount-positions.ts +1 -1
- package/src/resources/headcount-priorities.ts +1 -1
- package/src/resources/index.ts +38 -0
- package/src/resources/job-assignments.ts +2 -2
- package/src/resources/job-codes.ts +2 -2
- package/src/resources/job-dimensions.ts +1 -1
- package/src/resources/job-pay-rate-exceptions.ts +2 -2
- package/src/resources/job-requisitions.ts +1 -1
- package/src/resources/kiosk-badges.ts +1 -1
- package/src/resources/leave-accruals.ts +1 -1
- package/src/resources/leave-balances.ts +1 -1
- package/src/resources/leave-requests.ts +1 -1
- package/src/resources/leave-types.ts +1 -1
- package/src/resources/legal-entities.ts +1 -1
- package/src/resources/levels.ts +1 -1
- package/src/resources/location-factors.ts +1 -1
- package/src/resources/packages/index.ts +14 -0
- package/src/resources/packages/packages.ts +329 -0
- package/src/resources/packages/versions.ts +98 -0
- package/src/resources/packages.ts +3 -0
- package/src/resources/scheduled-job-assignments.ts +1 -1
- package/src/resources/schedules.ts +1 -1
- package/src/resources/shift-assignments.ts +1 -1
- package/src/resources/shift-inputs.ts +1 -1
- package/src/resources/shiftassignments.ts +1 -1
- package/src/resources/sites.ts +736 -0
- package/src/resources/software-deployments.ts +1 -1
- package/src/resources/time-cards.ts +1 -1
- package/src/resources/time-entries.ts +1 -1
- package/src/resources/tracks.ts +1 -1
- package/src/resources/unassigned-shifts.ts +2 -2
- package/src/resources/unassignedshifts.ts +1 -1
- package/src/resources/worker-time-splits.ts +1 -1
- package/src/version.ts +1 -1
- package/version.d.mts +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/version.mjs +1 -1
package/src/client.ts
CHANGED
|
@@ -432,6 +432,22 @@ import {
|
|
|
432
432
|
ShiftassignmentUpdateResponse,
|
|
433
433
|
Shiftassignments,
|
|
434
434
|
} from './resources/shiftassignments';
|
|
435
|
+
import {
|
|
436
|
+
SiteCreateParams,
|
|
437
|
+
SiteCreateResponse,
|
|
438
|
+
SiteFileOperationsParams,
|
|
439
|
+
SiteFileOperationsResponse,
|
|
440
|
+
SiteFilesParams,
|
|
441
|
+
SiteFilesResponse,
|
|
442
|
+
SiteListResponse,
|
|
443
|
+
SiteListResponsesPageCursorURL,
|
|
444
|
+
SiteRetrieveResponse,
|
|
445
|
+
SiteUpdateParams,
|
|
446
|
+
SiteUpdateResponse,
|
|
447
|
+
SiteUploadBatchesParams,
|
|
448
|
+
SiteUploadBatchesResponse,
|
|
449
|
+
Sites,
|
|
450
|
+
} from './resources/sites';
|
|
435
451
|
import {
|
|
436
452
|
SoftwareDeploymentCreateParams,
|
|
437
453
|
SoftwareDeploymentCreateResponse,
|
|
@@ -564,6 +580,17 @@ import {
|
|
|
564
580
|
WorkflowActionExecutionCreateResponse,
|
|
565
581
|
WorkflowActionExecutions,
|
|
566
582
|
} from './resources/workflow-action-executions';
|
|
583
|
+
import {
|
|
584
|
+
AgentCreateParams,
|
|
585
|
+
AgentCreateResponse,
|
|
586
|
+
AgentListParams,
|
|
587
|
+
AgentListResponse,
|
|
588
|
+
AgentListResponsesPageCursorURL,
|
|
589
|
+
AgentRetrieveResponse,
|
|
590
|
+
AgentUpdateParams,
|
|
591
|
+
AgentUpdateResponse,
|
|
592
|
+
Agents,
|
|
593
|
+
} from './resources/agents/agents';
|
|
567
594
|
import {
|
|
568
595
|
CustomObject,
|
|
569
596
|
CustomObjectCreateParams,
|
|
@@ -581,6 +608,17 @@ import {
|
|
|
581
608
|
Functions,
|
|
582
609
|
FunctionsPageCursorURL,
|
|
583
610
|
} from './resources/functions/functions';
|
|
611
|
+
import {
|
|
612
|
+
PackageCreateParams,
|
|
613
|
+
PackageCreateResponse,
|
|
614
|
+
PackageListParams,
|
|
615
|
+
PackageListResponse,
|
|
616
|
+
PackageListResponsesPageCursorURL,
|
|
617
|
+
PackageRetrieveResponse,
|
|
618
|
+
PackageUpdateParams,
|
|
619
|
+
PackageUpdateResponse,
|
|
620
|
+
Packages,
|
|
621
|
+
} from './resources/packages/packages';
|
|
584
622
|
import {
|
|
585
623
|
PayrollRunListParams,
|
|
586
624
|
PayrollRunListResponse,
|
|
@@ -1461,6 +1499,10 @@ export class RipplingSDK {
|
|
|
1461
1499
|
* Job related information for the company
|
|
1462
1500
|
*/
|
|
1463
1501
|
jobPayRateExceptions: API.JobPayRateExceptions = new API.JobPayRateExceptions(this);
|
|
1502
|
+
/**
|
|
1503
|
+
* Agents defined by the company
|
|
1504
|
+
*/
|
|
1505
|
+
agents: API.Agents = new API.Agents(this);
|
|
1464
1506
|
/**
|
|
1465
1507
|
* Mappings between Rippling workers and their user accounts in third-party apps
|
|
1466
1508
|
*/
|
|
@@ -1564,6 +1606,10 @@ export class RipplingSDK {
|
|
|
1564
1606
|
* Geographic compensation adjustment factors that modify base compensation based on location-specific market conditions and cost of living
|
|
1565
1607
|
*/
|
|
1566
1608
|
locationFactors: API.LocationFactors = new API.LocationFactors(this);
|
|
1609
|
+
/**
|
|
1610
|
+
* Author, publish, and install Unity Packages V2 packages
|
|
1611
|
+
*/
|
|
1612
|
+
packages: API.Packages = new API.Packages(this);
|
|
1567
1613
|
/**
|
|
1568
1614
|
* Payroll runs for the company
|
|
1569
1615
|
*/
|
|
@@ -1592,6 +1638,7 @@ export class RipplingSDK {
|
|
|
1592
1638
|
* Shift assignments assigned to workers
|
|
1593
1639
|
*/
|
|
1594
1640
|
shiftassignments: API.Shiftassignments = new API.Shiftassignments(this);
|
|
1641
|
+
sites: API.Sites = new API.Sites(this);
|
|
1595
1642
|
/**
|
|
1596
1643
|
* Software deployed to company devices
|
|
1597
1644
|
*/
|
|
@@ -1660,6 +1707,7 @@ RipplingSDK.BusinessPartnerGroups = BusinessPartnerGroups;
|
|
|
1660
1707
|
RipplingSDK.Functions = Functions;
|
|
1661
1708
|
RipplingSDK.JobAssignments = JobAssignments;
|
|
1662
1709
|
RipplingSDK.JobPayRateExceptions = JobPayRateExceptions;
|
|
1710
|
+
RipplingSDK.Agents = Agents;
|
|
1663
1711
|
RipplingSDK.AppUsers = AppUsers;
|
|
1664
1712
|
RipplingSDK.BreakPolicies = BreakPolicies;
|
|
1665
1713
|
RipplingSDK.BreakTypes = BreakTypes;
|
|
@@ -1688,6 +1736,7 @@ RipplingSDK.JobRequisitionsWrite = JobRequisitionsWrite;
|
|
|
1688
1736
|
RipplingSDK.LeaveAccruals = LeaveAccruals;
|
|
1689
1737
|
RipplingSDK.LeaveProgramEvaluations = LeaveProgramEvaluations;
|
|
1690
1738
|
RipplingSDK.LocationFactors = LocationFactors;
|
|
1739
|
+
RipplingSDK.Packages = Packages;
|
|
1691
1740
|
RipplingSDK.PayrollRuns = PayrollRuns;
|
|
1692
1741
|
RipplingSDK.PlatformCapabilities = PlatformCapabilities;
|
|
1693
1742
|
RipplingSDK.Reports = Reports;
|
|
@@ -1695,6 +1744,7 @@ RipplingSDK.ReportRuns = ReportRuns;
|
|
|
1695
1744
|
RipplingSDK.Schedules = Schedules;
|
|
1696
1745
|
RipplingSDK.ScheduledJobAssignments = ScheduledJobAssignments;
|
|
1697
1746
|
RipplingSDK.Shiftassignments = Shiftassignments;
|
|
1747
|
+
RipplingSDK.Sites = Sites;
|
|
1698
1748
|
RipplingSDK.SoftwareDeployments = SoftwareDeployments;
|
|
1699
1749
|
RipplingSDK.Titles = Titles;
|
|
1700
1750
|
RipplingSDK.Unassignedshifts = Unassignedshifts;
|
|
@@ -2011,6 +2061,18 @@ export declare namespace RipplingSDK {
|
|
|
2011
2061
|
type JobPayRateExceptionListChangeLogParams as JobPayRateExceptionListChangeLogParams,
|
|
2012
2062
|
};
|
|
2013
2063
|
|
|
2064
|
+
export {
|
|
2065
|
+
Agents as Agents,
|
|
2066
|
+
type AgentListResponse as AgentListResponse,
|
|
2067
|
+
type AgentCreateResponse as AgentCreateResponse,
|
|
2068
|
+
type AgentRetrieveResponse as AgentRetrieveResponse,
|
|
2069
|
+
type AgentUpdateResponse as AgentUpdateResponse,
|
|
2070
|
+
type AgentListResponsesPageCursorURL as AgentListResponsesPageCursorURL,
|
|
2071
|
+
type AgentListParams as AgentListParams,
|
|
2072
|
+
type AgentCreateParams as AgentCreateParams,
|
|
2073
|
+
type AgentUpdateParams as AgentUpdateParams,
|
|
2074
|
+
};
|
|
2075
|
+
|
|
2014
2076
|
export {
|
|
2015
2077
|
AppUsers as AppUsers,
|
|
2016
2078
|
type AppUserListResponse as AppUserListResponse,
|
|
@@ -2239,6 +2301,18 @@ export declare namespace RipplingSDK {
|
|
|
2239
2301
|
type LocationFactorListParams as LocationFactorListParams,
|
|
2240
2302
|
};
|
|
2241
2303
|
|
|
2304
|
+
export {
|
|
2305
|
+
Packages as Packages,
|
|
2306
|
+
type PackageListResponse as PackageListResponse,
|
|
2307
|
+
type PackageCreateResponse as PackageCreateResponse,
|
|
2308
|
+
type PackageRetrieveResponse as PackageRetrieveResponse,
|
|
2309
|
+
type PackageUpdateResponse as PackageUpdateResponse,
|
|
2310
|
+
type PackageListResponsesPageCursorURL as PackageListResponsesPageCursorURL,
|
|
2311
|
+
type PackageListParams as PackageListParams,
|
|
2312
|
+
type PackageCreateParams as PackageCreateParams,
|
|
2313
|
+
type PackageUpdateParams as PackageUpdateParams,
|
|
2314
|
+
};
|
|
2315
|
+
|
|
2242
2316
|
export {
|
|
2243
2317
|
PayrollRuns as PayrollRuns,
|
|
2244
2318
|
type PayrollRunListResponse as PayrollRunListResponse,
|
|
@@ -2296,6 +2370,23 @@ export declare namespace RipplingSDK {
|
|
|
2296
2370
|
type ShiftassignmentUpdateParams as ShiftassignmentUpdateParams,
|
|
2297
2371
|
};
|
|
2298
2372
|
|
|
2373
|
+
export {
|
|
2374
|
+
Sites as Sites,
|
|
2375
|
+
type SiteListResponse as SiteListResponse,
|
|
2376
|
+
type SiteCreateResponse as SiteCreateResponse,
|
|
2377
|
+
type SiteRetrieveResponse as SiteRetrieveResponse,
|
|
2378
|
+
type SiteUpdateResponse as SiteUpdateResponse,
|
|
2379
|
+
type SiteUploadBatchesResponse as SiteUploadBatchesResponse,
|
|
2380
|
+
type SiteFilesResponse as SiteFilesResponse,
|
|
2381
|
+
type SiteFileOperationsResponse as SiteFileOperationsResponse,
|
|
2382
|
+
type SiteListResponsesPageCursorURL as SiteListResponsesPageCursorURL,
|
|
2383
|
+
type SiteCreateParams as SiteCreateParams,
|
|
2384
|
+
type SiteUpdateParams as SiteUpdateParams,
|
|
2385
|
+
type SiteUploadBatchesParams as SiteUploadBatchesParams,
|
|
2386
|
+
type SiteFilesParams as SiteFilesParams,
|
|
2387
|
+
type SiteFileOperationsParams as SiteFileOperationsParams,
|
|
2388
|
+
};
|
|
2389
|
+
|
|
2299
2390
|
export {
|
|
2300
2391
|
SoftwareDeployments as SoftwareDeployments,
|
|
2301
2392
|
type SoftwareDeploymentListResponse as SoftwareDeploymentListResponse,
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
# Leave Program Authoring
|
|
2
|
+
|
|
3
|
+
Draft handwritten helpers for authoring company leave programs in Rippling
|
|
4
|
+
Functions.
|
|
5
|
+
|
|
6
|
+
This library is intended to be the customer-facing authoring surface for
|
|
7
|
+
company-specific leave policy. A customer should be able to write a Rippling
|
|
8
|
+
Function that imports this package, describes their company leave program, and
|
|
9
|
+
returns a constrained program result that Rippling can evaluate later.
|
|
10
|
+
|
|
11
|
+
This is not the leave engine itself. It does not register programs, hydrate
|
|
12
|
+
employee or payroll facts, run statutory programs, calculate payroll outputs, or
|
|
13
|
+
build leave plans. Those responsibilities stay in `rippling-main`.
|
|
14
|
+
|
|
15
|
+
## Intended Flow
|
|
16
|
+
|
|
17
|
+
```text
|
|
18
|
+
Customer Function imports @rippling/rippling-sdk/lib/leave-programs
|
|
19
|
+
-> customer defines a company leave policy
|
|
20
|
+
-> library emits CompanyLeaveProgramResult IR
|
|
21
|
+
-> rippling-main validates and compiles the IR
|
|
22
|
+
-> leave engine runs the company program alongside statutory programs
|
|
23
|
+
-> leave engine composes the final leave plan and program outputs
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
The important boundary is that customer code describes policy intent. It does
|
|
27
|
+
not emit raw `LeaveProgramResult`, payroll directives, earning lines, balance
|
|
28
|
+
adjustments, or internal leave engine objects.
|
|
29
|
+
|
|
30
|
+
## What Customers Can Express
|
|
31
|
+
|
|
32
|
+
Company policies should be able to express a small set of leave-domain concepts:
|
|
33
|
+
|
|
34
|
+
- Applicability, such as employee country or jurisdiction.
|
|
35
|
+
- Eligibility, such as leave reason, parental relationship, tenure tiers, and
|
|
36
|
+
required evidence.
|
|
37
|
+
- Entitlement, such as a paid leave bank in weeks, days, or hours.
|
|
38
|
+
- Pay intent, such as no company pay, fixed pay, percent of contractual pay, or
|
|
39
|
+
make-whole top-up.
|
|
40
|
+
- Coordination with Rippling-owned statutory or insurance wage replacement
|
|
41
|
+
programs.
|
|
42
|
+
- Admin requirements that Rippling can surface during review.
|
|
43
|
+
|
|
44
|
+
Pay is intentionally constrained. For example, a customer can say "top the
|
|
45
|
+
employee up to 100% of contractual weekly pay, net of CA-PFL." They cannot say
|
|
46
|
+
"create this payroll earning line with this internal earning code on this
|
|
47
|
+
payrun."
|
|
48
|
+
|
|
49
|
+
## What Rippling Still Owns
|
|
50
|
+
|
|
51
|
+
`rippling-main` remains responsible for:
|
|
52
|
+
|
|
53
|
+
- Program registration, activation, versioning, effective dates, and company
|
|
54
|
+
scope.
|
|
55
|
+
- Deciding which statutory, insurance, and company programs run for a claim.
|
|
56
|
+
- Dependency ordering between statutory programs and company policies.
|
|
57
|
+
- Hydrating sanitized facts from HRIS, Payroll, PTO, Benefits, and other source
|
|
58
|
+
systems.
|
|
59
|
+
- Validating the program result IR returned by customer code.
|
|
60
|
+
- Missing evidence handling.
|
|
61
|
+
- Payroll-safe pay phase construction, rounding, currency handling, earning type
|
|
62
|
+
mapping, caps, and offsets.
|
|
63
|
+
- Conversion to internal `LeaveProgramResult`, directives, and leave plan
|
|
64
|
+
outputs.
|
|
65
|
+
|
|
66
|
+
## Example: Common Recipe
|
|
67
|
+
|
|
68
|
+
Recipes are the simplest authoring lane. They cover common company policies
|
|
69
|
+
without requiring customers to write lower-level policy composition code.
|
|
70
|
+
|
|
71
|
+
```ts
|
|
72
|
+
import { defineCompanyLeaveProgram, parentalTopUpPolicy } from '@rippling/rippling-sdk/lib/leave-programs';
|
|
73
|
+
|
|
74
|
+
export default defineCompanyLeaveProgram(
|
|
75
|
+
parentalTopUpPolicy({
|
|
76
|
+
code: 'ACME_US_PARENTAL_TOPUP',
|
|
77
|
+
displayName: 'Acme US parental top-up',
|
|
78
|
+
jurisdiction: { country: 'US' },
|
|
79
|
+
appliesTo: { employeeCountry: 'US' },
|
|
80
|
+
qualifyingLeaveReasons: ['BONDING', 'PREGNANCY_DISABILITY'],
|
|
81
|
+
paidWeeksByParentalRelationship: {
|
|
82
|
+
birthingParent: 16,
|
|
83
|
+
nonBirthingParent: 6,
|
|
84
|
+
adoptionParent: 10,
|
|
85
|
+
fosterParent: 10,
|
|
86
|
+
},
|
|
87
|
+
pay: {
|
|
88
|
+
type: 'MAKE_WHOLE_TOPUP',
|
|
89
|
+
targetPercentOfPay: 100,
|
|
90
|
+
offsetByPrograms: ['CA-SDI', 'CA-PFL', 'INSURANCE-STD'],
|
|
91
|
+
},
|
|
92
|
+
}),
|
|
93
|
+
);
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
This emits policy IR that says:
|
|
97
|
+
|
|
98
|
+
- The program applies to US employees.
|
|
99
|
+
- Bonding and pregnancy disability are qualifying leave reasons.
|
|
100
|
+
- The paid leave bank depends on parental relationship.
|
|
101
|
+
- Company pay tops up statutory or insurance wage replacement to 100% of
|
|
102
|
+
contractual weekly pay.
|
|
103
|
+
- The backend should coordinate this policy after `CA-SDI`, `CA-PFL`, and
|
|
104
|
+
`INSURANCE-STD`.
|
|
105
|
+
|
|
106
|
+
## Example: Composable Builder
|
|
107
|
+
|
|
108
|
+
Builders are for company policies that do not fit a recipe cleanly, but still
|
|
109
|
+
use supported leave-policy primitives.
|
|
110
|
+
|
|
111
|
+
```ts
|
|
112
|
+
import { defineCompanyLeaveProgram, percentOfPay, weeks } from '@rippling/rippling-sdk/lib/leave-programs';
|
|
113
|
+
|
|
114
|
+
export default defineCompanyLeaveProgram({
|
|
115
|
+
code: 'ACME_TENURE_PARENTAL_TOPUP',
|
|
116
|
+
displayName: 'Acme tenure parental top-up',
|
|
117
|
+
jurisdiction: { country: 'US' },
|
|
118
|
+
dependsOn: ['CA-PFL'],
|
|
119
|
+
|
|
120
|
+
evaluate(ctx) {
|
|
121
|
+
const paidWeeks = ctx.employee.tenure.monthsAt(ctx.leave.startDate).match([
|
|
122
|
+
{ gte: 0, lt: 6, value: weeks(4) },
|
|
123
|
+
{ gte: 6, lt: 12, value: weeks(8) },
|
|
124
|
+
{ gte: 12, value: weeks(12) },
|
|
125
|
+
]);
|
|
126
|
+
|
|
127
|
+
return ctx
|
|
128
|
+
.policy()
|
|
129
|
+
.eligibleWhen(ctx.employee.country.is('US'))
|
|
130
|
+
.eligibleWhen(ctx.leave.reason.isParental())
|
|
131
|
+
.grantPaidLeave(paidWeeks, { leaveType: 'EMPLOYER_PARENTAL_TOPUP' })
|
|
132
|
+
.topUpTo(percentOfPay(100), {
|
|
133
|
+
base: ctx.pay.contractualWeeklyPay,
|
|
134
|
+
offsetBy: ctx.programs.wageReplacement(['CA-PFL']),
|
|
135
|
+
earningType: 'EMPLOYER_TOPUP_MAKE_WHOLE',
|
|
136
|
+
})
|
|
137
|
+
.build();
|
|
138
|
+
},
|
|
139
|
+
});
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
The builder still returns the same constrained `CompanyLeaveProgramResult` IR.
|
|
143
|
+
It does not expose raw payroll, PTO, HRIS, Benefits, ZObject, or leave-engine
|
|
144
|
+
records.
|
|
145
|
+
|
|
146
|
+
## Current Draft Scope
|
|
147
|
+
|
|
148
|
+
This package currently provides the SDK-side authoring shape only:
|
|
149
|
+
|
|
150
|
+
- `defineCompanyLeaveProgram`
|
|
151
|
+
- duration helpers such as `weeks`, `days`, and `hours`
|
|
152
|
+
- pay helpers such as `percentOfPay` and `fixedAmount`
|
|
153
|
+
- the `parentalTopUpPolicy` recipe
|
|
154
|
+
- constrained `CompanyLeaveProgramResult` types
|
|
155
|
+
- draft advanced and testing entry points
|
|
156
|
+
|
|
157
|
+
Backend registration, activation, validation, Function execution, and leave
|
|
158
|
+
engine compilation are intentionally out of scope for this package. Those pieces
|
|
159
|
+
must be implemented in `rippling-main` before a customer-authored Function can
|
|
160
|
+
run in production alongside Rippling-owned statutory programs.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export type {
|
|
2
|
+
AdvancedCapability,
|
|
3
|
+
CompanyLeaveProgramDefinitionConfig,
|
|
4
|
+
DurationExpression,
|
|
5
|
+
FactRef,
|
|
6
|
+
PolicyCondition,
|
|
7
|
+
} from './types';
|
|
8
|
+
|
|
9
|
+
export { defineCompanyLeaveProgram as defineAdvancedCompanyLeaveProgram } from './define-company-leave-program';
|
|
10
|
+
export { percentOfPay, fixedAmount } from './pay';
|
|
11
|
+
export { weeks, days, hours } from './duration';
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { CompanyPolicyBuilder } from './policy-builder';
|
|
2
|
+
import type {
|
|
3
|
+
CompanyLeaveProgramContext,
|
|
4
|
+
Duration,
|
|
5
|
+
DurationExpression,
|
|
6
|
+
EvidenceRequirement,
|
|
7
|
+
FactRef,
|
|
8
|
+
ParentalRelationship,
|
|
9
|
+
PolicyCondition,
|
|
10
|
+
TenureMatchTier,
|
|
11
|
+
WageReplacementRef,
|
|
12
|
+
} from './types';
|
|
13
|
+
|
|
14
|
+
function fact(path: string): FactRef {
|
|
15
|
+
return { kind: 'fact_ref', path };
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
function isEvidenceRequirement(value: Duration | EvidenceRequirement): value is EvidenceRequirement {
|
|
19
|
+
return 'key' in value;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export function createCompanyLeaveProgramContext(): CompanyLeaveProgramContext {
|
|
23
|
+
return {
|
|
24
|
+
employee: {
|
|
25
|
+
country: {
|
|
26
|
+
is(country: string): PolicyCondition {
|
|
27
|
+
return { type: 'employee_country_is', country };
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
tenure: {
|
|
31
|
+
monthsAt(asOf: FactRef) {
|
|
32
|
+
return {
|
|
33
|
+
match(tiers: TenureMatchTier[]): DurationExpression {
|
|
34
|
+
return {
|
|
35
|
+
type: 'tenure_months_duration',
|
|
36
|
+
tiers: tiers.map((tier) => ({ ...tier })),
|
|
37
|
+
};
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
leave: {
|
|
44
|
+
reason: {
|
|
45
|
+
isParental(): PolicyCondition {
|
|
46
|
+
return { type: 'leave_reason_is_parental' };
|
|
47
|
+
},
|
|
48
|
+
isOneOf(values: string[]): PolicyCondition {
|
|
49
|
+
return { type: 'leave_reason_in', values: [...values] };
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
startDate: fact('leave.startDate'),
|
|
53
|
+
parentalRelationship: {
|
|
54
|
+
match(cases): DurationExpression {
|
|
55
|
+
const durationCases: Partial<Record<ParentalRelationship, Duration>> = {};
|
|
56
|
+
let unknown: EvidenceRequirement | undefined;
|
|
57
|
+
|
|
58
|
+
for (const [relationship, value] of Object.entries(cases)) {
|
|
59
|
+
if (value === undefined) {
|
|
60
|
+
continue;
|
|
61
|
+
}
|
|
62
|
+
if (relationship === 'unknown') {
|
|
63
|
+
if (isEvidenceRequirement(value)) {
|
|
64
|
+
unknown = value;
|
|
65
|
+
}
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
if (!isEvidenceRequirement(value)) {
|
|
69
|
+
durationCases[relationship as ParentalRelationship] = value;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
return {
|
|
74
|
+
type: 'parental_relationship_duration',
|
|
75
|
+
cases: durationCases,
|
|
76
|
+
...(unknown === undefined ? {} : { unknown }),
|
|
77
|
+
};
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
pay: {
|
|
82
|
+
contractualWeeklyPay: fact('pay.contractualWeeklyPay'),
|
|
83
|
+
},
|
|
84
|
+
programs: {
|
|
85
|
+
wageReplacement(programCodes: string[]): WageReplacementRef {
|
|
86
|
+
return { kind: 'wage_replacement_ref', programCodes: [...programCodes] };
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
evidence: {
|
|
90
|
+
require(key: string, message?: string): EvidenceRequirement {
|
|
91
|
+
return {
|
|
92
|
+
key,
|
|
93
|
+
...(message === undefined ? {} : { message }),
|
|
94
|
+
};
|
|
95
|
+
},
|
|
96
|
+
},
|
|
97
|
+
policy() {
|
|
98
|
+
return new CompanyPolicyBuilder();
|
|
99
|
+
},
|
|
100
|
+
};
|
|
101
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { createCompanyLeaveProgramContext } from './context';
|
|
2
|
+
import type {
|
|
3
|
+
CompanyLeaveProgramContext,
|
|
4
|
+
CompanyLeaveProgramResult,
|
|
5
|
+
CompanyLeaveProgramDefinition,
|
|
6
|
+
CompanyLeaveProgramDefinitionConfig,
|
|
7
|
+
PolicyCondition,
|
|
8
|
+
} from './types';
|
|
9
|
+
|
|
10
|
+
function asArray(value: PolicyCondition | PolicyCondition[] | undefined): PolicyCondition[] {
|
|
11
|
+
if (value === undefined) {
|
|
12
|
+
return [];
|
|
13
|
+
}
|
|
14
|
+
return Array.isArray(value) ? value : [value];
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export function defineCompanyLeaveProgram(
|
|
18
|
+
config: CompanyLeaveProgramDefinitionConfig,
|
|
19
|
+
): CompanyLeaveProgramDefinition {
|
|
20
|
+
const dependsOn = config.dependsOn === undefined ? [] : [...config.dependsOn];
|
|
21
|
+
const capabilities = config.capabilities === undefined ? [] : [...config.capabilities];
|
|
22
|
+
|
|
23
|
+
return {
|
|
24
|
+
contractVersion: 'company_leave_program.v1',
|
|
25
|
+
code: config.code,
|
|
26
|
+
displayName: config.displayName,
|
|
27
|
+
jurisdiction: { ...config.jurisdiction },
|
|
28
|
+
dependsOn,
|
|
29
|
+
|
|
30
|
+
toResult(
|
|
31
|
+
context: CompanyLeaveProgramContext = createCompanyLeaveProgramContext(),
|
|
32
|
+
): CompanyLeaveProgramResult {
|
|
33
|
+
const result = config.evaluate(context);
|
|
34
|
+
return {
|
|
35
|
+
contractVersion: 'company_leave_program.v1',
|
|
36
|
+
program: {
|
|
37
|
+
code: config.code,
|
|
38
|
+
displayName: config.displayName,
|
|
39
|
+
...(config.description === undefined ? {} : { description: config.description }),
|
|
40
|
+
programKind: config.programKind ?? 'COMPANY_POLICY',
|
|
41
|
+
jurisdiction: { ...config.jurisdiction },
|
|
42
|
+
dependsOn,
|
|
43
|
+
capabilities,
|
|
44
|
+
},
|
|
45
|
+
appliesTo: asArray(config.appliesTo?.(context)),
|
|
46
|
+
eligibility: {
|
|
47
|
+
conditions: result.conditions,
|
|
48
|
+
requiredEvidence: result.requiredEvidence,
|
|
49
|
+
},
|
|
50
|
+
...(result.entitlement === undefined ? {} : { entitlement: result.entitlement }),
|
|
51
|
+
pay: result.pay,
|
|
52
|
+
requirements: result.requirements,
|
|
53
|
+
jobProtection: result.jobProtection,
|
|
54
|
+
diagnostics: result.diagnostics,
|
|
55
|
+
};
|
|
56
|
+
},
|
|
57
|
+
};
|
|
58
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Duration } from './types';
|
|
2
|
+
|
|
3
|
+
function duration(amount: number, unit: Duration['unit']): Duration {
|
|
4
|
+
if (!Number.isFinite(amount) || amount < 0) {
|
|
5
|
+
throw new Error('Duration amount must be a non-negative finite number.');
|
|
6
|
+
}
|
|
7
|
+
return { kind: 'duration', amount, unit };
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export function weeks(amount: number): Duration {
|
|
11
|
+
return duration(amount, 'WEEKS');
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export function days(amount: number): Duration {
|
|
15
|
+
return duration(amount, 'DAYS');
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export function hours(amount: number): Duration {
|
|
19
|
+
return duration(amount, 'HOURS');
|
|
20
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { MoneyAmount, PercentOfPay } from './types';
|
|
2
|
+
|
|
3
|
+
export function percentOfPay(percent: number): PercentOfPay {
|
|
4
|
+
if (!Number.isFinite(percent) || percent < 0) {
|
|
5
|
+
throw new Error('Percent of pay must be a non-negative finite number.');
|
|
6
|
+
}
|
|
7
|
+
return { kind: 'percent_of_pay', percent };
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export function fixedAmount(amount: string, currency: string): MoneyAmount {
|
|
11
|
+
if (amount.trim() === '') {
|
|
12
|
+
throw new Error('Fixed amount must be a non-empty decimal string.');
|
|
13
|
+
}
|
|
14
|
+
if (currency.trim() === '') {
|
|
15
|
+
throw new Error('Currency must be a non-empty ISO currency code.');
|
|
16
|
+
}
|
|
17
|
+
return { kind: 'money_amount', amount, currency };
|
|
18
|
+
}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
AdminTask,
|
|
3
|
+
DurationExpression,
|
|
4
|
+
EntitlementDecision,
|
|
5
|
+
FactRef,
|
|
6
|
+
GrantPaidLeaveOptions,
|
|
7
|
+
MoneyAmount,
|
|
8
|
+
PayDecision,
|
|
9
|
+
PayFixedAmountOptions,
|
|
10
|
+
PayPercentOfPayOptions,
|
|
11
|
+
PercentOfPay,
|
|
12
|
+
PolicyBuilder,
|
|
13
|
+
PolicyBuilderResult,
|
|
14
|
+
PolicyCondition,
|
|
15
|
+
RequireKnownOptions,
|
|
16
|
+
RequirementDecision,
|
|
17
|
+
TopUpToOptions,
|
|
18
|
+
WageReplacementRef,
|
|
19
|
+
} from './types';
|
|
20
|
+
|
|
21
|
+
export class CompanyPolicyBuilder implements PolicyBuilder {
|
|
22
|
+
private readonly conditions: PolicyCondition[] = [];
|
|
23
|
+
private readonly requiredEvidence: PolicyBuilderResult['requiredEvidence'] = [];
|
|
24
|
+
private entitlementDecision: EntitlementDecision | undefined;
|
|
25
|
+
private payDecision: PayDecision = { type: 'NO_COMPANY_PAY' };
|
|
26
|
+
private readonly requirementDecisions: RequirementDecision[] = [];
|
|
27
|
+
private jobProtectionDecision: PolicyBuilderResult['jobProtection'] = 'UNCHANGED';
|
|
28
|
+
|
|
29
|
+
eligibleWhen(condition: PolicyCondition): PolicyBuilder {
|
|
30
|
+
this.conditions.push(condition);
|
|
31
|
+
return this;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
requireKnown(_fact: FactRef | WageReplacementRef, options: RequireKnownOptions): PolicyBuilder {
|
|
35
|
+
this.requiredEvidence.push({
|
|
36
|
+
key: options.evidenceKey,
|
|
37
|
+
...(options.message === undefined ? {} : { message: options.message }),
|
|
38
|
+
});
|
|
39
|
+
return this;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
grantPaidLeave(duration: DurationExpression, options: GrantPaidLeaveOptions = {}): PolicyBuilder {
|
|
43
|
+
this.entitlementDecision = {
|
|
44
|
+
type: 'PAID_LEAVE',
|
|
45
|
+
duration,
|
|
46
|
+
...(options.leaveType === undefined ? {} : { leaveType: options.leaveType }),
|
|
47
|
+
};
|
|
48
|
+
return this;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
noCompanyPay(): PolicyBuilder {
|
|
52
|
+
this.payDecision = { type: 'NO_COMPANY_PAY' };
|
|
53
|
+
return this;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
payFixedAmount(amount: MoneyAmount, options: PayFixedAmountOptions): PolicyBuilder {
|
|
57
|
+
this.payDecision = {
|
|
58
|
+
type: 'FIXED_AMOUNT',
|
|
59
|
+
amount,
|
|
60
|
+
duration: options.duration,
|
|
61
|
+
earningType: options.earningType,
|
|
62
|
+
};
|
|
63
|
+
return this;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
payPercentOfPay(target: PercentOfPay, options: PayPercentOfPayOptions): PolicyBuilder {
|
|
67
|
+
this.payDecision = {
|
|
68
|
+
type: 'PERCENT_OF_PAY',
|
|
69
|
+
target,
|
|
70
|
+
base: options.base,
|
|
71
|
+
duration: options.duration,
|
|
72
|
+
earningType: options.earningType,
|
|
73
|
+
};
|
|
74
|
+
return this;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
topUpTo(target: PercentOfPay, options: TopUpToOptions): PolicyBuilder {
|
|
78
|
+
this.payDecision = {
|
|
79
|
+
type: 'MAKE_WHOLE_TOPUP',
|
|
80
|
+
target,
|
|
81
|
+
base: options.base,
|
|
82
|
+
offsetBy: options.offsetBy,
|
|
83
|
+
earningType: options.earningType,
|
|
84
|
+
};
|
|
85
|
+
return this;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
requireAdminTask(key: AdminTask | string): PolicyBuilder {
|
|
89
|
+
this.requirementDecisions.push({
|
|
90
|
+
type: 'ADMIN_TASK',
|
|
91
|
+
key,
|
|
92
|
+
blocksPayment: false,
|
|
93
|
+
});
|
|
94
|
+
return this;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
doesNotProvideJobProtection(): PolicyBuilder {
|
|
98
|
+
this.jobProtectionDecision = 'NONE';
|
|
99
|
+
return this;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
build(): PolicyBuilderResult {
|
|
103
|
+
return {
|
|
104
|
+
conditions: [...this.conditions],
|
|
105
|
+
requiredEvidence: [...this.requiredEvidence],
|
|
106
|
+
...(this.entitlementDecision === undefined ? {} : { entitlement: this.entitlementDecision }),
|
|
107
|
+
pay: this.payDecision,
|
|
108
|
+
requirements: [...this.requirementDecisions],
|
|
109
|
+
jobProtection: this.jobProtectionDecision,
|
|
110
|
+
diagnostics: [],
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
}
|