@tailor-platform/erp-kit 0.7.0 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +40 -0
- package/README.md +8 -4
- package/dist/cli.mjs +70 -70
- package/package.json +1 -1
- package/skills/erp-kit-app-1-requirements/SKILL.md +6 -0
- package/skills/erp-kit-app-2-requirements-review/SKILL.md +6 -0
- package/skills/erp-kit-app-3-plan/SKILL.md +6 -0
- package/skills/erp-kit-app-4-plan-review/SKILL.md +6 -0
- package/skills/erp-kit-app-5-impl-backend/SKILL.md +12 -5
- package/skills/erp-kit-app-5-impl-backend/references/app-config.md +1 -1
- package/skills/erp-kit-app-5-impl-backend/references/module-wiring.md +37 -12
- package/skills/erp-kit-app-6-impl-frontend/SKILL.md +9 -1
- package/skills/erp-kit-app-6-impl-frontend/references/component.md +90 -0
- package/skills/erp-kit-app-6-impl-frontend/references/detail-view.md +255 -0
- package/skills/erp-kit-app-6-impl-frontend/references/pages.md +1 -5
- package/skills/erp-kit-app-7-impl-review/SKILL.md +9 -2
- package/skills/erp-kit-app-7-impl-review/references/module-wiring-parity.md +14 -8
- package/skills/erp-kit-app-shared/SKILL.md +2 -0
- package/skills/erp-kit-mock-scenario/SKILL.md +6 -0
- package/skills/erp-kit-module-1-requirements/SKILL.md +6 -0
- package/skills/erp-kit-module-2-requirements-review/SKILL.md +6 -0
- package/skills/erp-kit-module-3-plan/SKILL.md +6 -0
- package/skills/erp-kit-module-3-update-plan/SKILL.md +6 -0
- package/skills/erp-kit-module-4-plan-review/SKILL.md +6 -0
- package/skills/erp-kit-module-5-impl/SKILL.md +6 -0
- package/skills/erp-kit-module-6-impl-review/SKILL.md +22 -19
- package/skills/erp-kit-module-shared/SKILL.md +2 -0
- package/skills/erp-kit-module-shared/references/commands.md +71 -1
- package/skills/erp-kit-update/SKILL.md +6 -0
- package/src/commands/index.ts +8 -2
- package/src/commands/init.test.ts +24 -8
- package/src/commands/init.ts +5 -12
- package/src/commands/lib/distribute.test.ts +1 -20
- package/src/commands/lib/distribute.ts +0 -14
- package/src/commands/update.test.ts +1 -1
- package/src/generator/scaffold.ts +25 -4
- package/src/module.ts +4 -1
- package/src/modules/accounting/README.md +63 -0
- package/src/modules/accounting/command/activateBudget.generated.ts +6 -0
- package/src/modules/accounting/command/activateBudget.test.ts +119 -0
- package/src/modules/accounting/command/activateBudget.ts +77 -0
- package/src/modules/accounting/command/activateCostElement.generated.ts +6 -0
- package/src/modules/accounting/command/activateCostElement.test.ts +59 -0
- package/src/modules/accounting/command/activateCostElement.ts +41 -0
- package/src/modules/accounting/command/activateProfitCenter.generated.ts +6 -0
- package/src/modules/accounting/command/activateProfitCenter.test.ts +60 -0
- package/src/modules/accounting/command/activateProfitCenter.ts +38 -0
- package/src/modules/accounting/command/approveBudget.generated.ts +6 -0
- package/src/modules/accounting/command/approveBudget.test.ts +69 -0
- package/src/modules/accounting/command/approveBudget.ts +47 -0
- package/src/modules/accounting/command/assignCostCenterToHierarchyNode.generated.ts +6 -0
- package/src/modules/accounting/command/assignCostCenterToHierarchyNode.test.ts +112 -0
- package/src/modules/accounting/command/assignCostCenterToHierarchyNode.ts +67 -0
- package/src/modules/accounting/command/assignProfitCenterToHierarchyNode.generated.ts +6 -0
- package/src/modules/accounting/command/assignProfitCenterToHierarchyNode.test.ts +123 -0
- package/src/modules/accounting/command/assignProfitCenterToHierarchyNode.ts +71 -0
- package/src/modules/accounting/command/closeBudget.generated.ts +6 -0
- package/src/modules/accounting/command/closeBudget.test.ts +93 -0
- package/src/modules/accounting/command/closeBudget.ts +40 -0
- package/src/modules/accounting/command/closeInternalOrder.generated.ts +6 -0
- package/src/modules/accounting/command/closeInternalOrder.test.ts +74 -0
- package/src/modules/accounting/command/closeInternalOrder.ts +38 -0
- package/src/modules/accounting/command/consumeCommitment.generated.ts +6 -0
- package/src/modules/accounting/command/consumeCommitment.test.ts +123 -0
- package/src/modules/accounting/command/consumeCommitment.ts +62 -0
- package/src/modules/accounting/command/createAllocationCycle.generated.ts +6 -0
- package/src/modules/accounting/command/createAllocationCycle.test.ts +166 -0
- package/src/modules/accounting/command/createAllocationCycle.ts +68 -0
- package/src/modules/accounting/command/createAllocationRule.generated.ts +6 -0
- package/src/modules/accounting/command/createAllocationRule.test.ts +195 -0
- package/src/modules/accounting/command/createAllocationRule.ts +103 -0
- package/src/modules/accounting/command/createBudget.generated.ts +6 -0
- package/src/modules/accounting/command/createBudget.test.ts +159 -0
- package/src/modules/accounting/command/createBudget.ts +100 -0
- package/src/modules/accounting/command/createBudgetLineItem.generated.ts +6 -0
- package/src/modules/accounting/command/createBudgetLineItem.test.ts +178 -0
- package/src/modules/accounting/command/createBudgetLineItem.ts +104 -0
- package/src/modules/accounting/command/createCostCenter.generated.ts +6 -0
- package/src/modules/accounting/command/createCostCenter.test.ts +179 -0
- package/src/modules/accounting/command/createCostCenter.ts +112 -0
- package/src/modules/accounting/command/createCostCenterHierarchy.generated.ts +6 -0
- package/src/modules/accounting/command/createCostCenterHierarchy.test.ts +91 -0
- package/src/modules/accounting/command/createCostCenterHierarchy.ts +48 -0
- package/src/modules/accounting/command/createCostCenterHierarchyNode.generated.ts +6 -0
- package/src/modules/accounting/command/createCostCenterHierarchyNode.test.ts +171 -0
- package/src/modules/accounting/command/createCostCenterHierarchyNode.ts +117 -0
- package/src/modules/accounting/command/createCostElement.generated.ts +6 -0
- package/src/modules/accounting/command/createCostElement.test.ts +317 -0
- package/src/modules/accounting/command/createCostElement.ts +149 -0
- package/src/modules/accounting/command/createInternalOrder.generated.ts +6 -0
- package/src/modules/accounting/command/createInternalOrder.test.ts +206 -0
- package/src/modules/accounting/command/createInternalOrder.ts +104 -0
- package/src/modules/accounting/command/createPlanVersion.generated.ts +6 -0
- package/src/modules/accounting/command/createPlanVersion.test.ts +230 -0
- package/src/modules/accounting/command/createPlanVersion.ts +71 -0
- package/src/modules/accounting/command/createProfitCenter.generated.ts +6 -0
- package/src/modules/accounting/command/createProfitCenter.test.ts +227 -0
- package/src/modules/accounting/command/createProfitCenter.ts +81 -0
- package/src/modules/accounting/command/createProfitCenterHierarchy.generated.ts +6 -0
- package/src/modules/accounting/command/createProfitCenterHierarchy.test.ts +91 -0
- package/src/modules/accounting/command/createProfitCenterHierarchy.ts +46 -0
- package/src/modules/accounting/command/createProfitCenterHierarchyNode.generated.ts +6 -0
- package/src/modules/accounting/command/createProfitCenterHierarchyNode.test.ts +160 -0
- package/src/modules/accounting/command/createProfitCenterHierarchyNode.ts +109 -0
- package/src/modules/accounting/command/deactivateCostElement.generated.ts +6 -0
- package/src/modules/accounting/command/deactivateCostElement.test.ts +59 -0
- package/src/modules/accounting/command/deactivateCostElement.ts +41 -0
- package/src/modules/accounting/command/deactivateProfitCenter.generated.ts +6 -0
- package/src/modules/accounting/command/deactivateProfitCenter.test.ts +60 -0
- package/src/modules/accounting/command/deactivateProfitCenter.ts +42 -0
- package/src/modules/accounting/command/deleteAllocationCycle.generated.ts +6 -0
- package/src/modules/accounting/command/deleteAllocationCycle.test.ts +90 -0
- package/src/modules/accounting/command/deleteAllocationCycle.ts +39 -0
- package/src/modules/accounting/command/deleteAllocationRule.generated.ts +6 -0
- package/src/modules/accounting/command/deleteAllocationRule.test.ts +98 -0
- package/src/modules/accounting/command/deleteAllocationRule.ts +40 -0
- package/src/modules/accounting/command/deleteBudget.generated.ts +6 -0
- package/src/modules/accounting/command/deleteBudget.test.ts +90 -0
- package/src/modules/accounting/command/deleteBudget.ts +35 -0
- package/src/modules/accounting/command/deleteBudgetLineItem.generated.ts +6 -0
- package/src/modules/accounting/command/deleteBudgetLineItem.test.ts +85 -0
- package/src/modules/accounting/command/deleteBudgetLineItem.ts +50 -0
- package/src/modules/accounting/command/deleteCostCenter.generated.ts +6 -0
- package/src/modules/accounting/command/deleteCostCenter.test.ts +79 -0
- package/src/modules/accounting/command/deleteCostCenter.ts +67 -0
- package/src/modules/accounting/command/deleteCostCenterHierarchyNode.generated.ts +6 -0
- package/src/modules/accounting/command/deleteCostCenterHierarchyNode.test.ts +59 -0
- package/src/modules/accounting/command/deleteCostCenterHierarchyNode.ts +58 -0
- package/src/modules/accounting/command/deleteCostElement.generated.ts +6 -0
- package/src/modules/accounting/command/deleteCostElement.test.ts +58 -0
- package/src/modules/accounting/command/deleteCostElement.ts +33 -0
- package/src/modules/accounting/command/deleteInternalOrder.generated.ts +6 -0
- package/src/modules/accounting/command/deleteInternalOrder.test.ts +81 -0
- package/src/modules/accounting/command/deleteInternalOrder.ts +37 -0
- package/src/modules/accounting/command/deleteProfitCenter.generated.ts +6 -0
- package/src/modules/accounting/command/deleteProfitCenter.test.ts +68 -0
- package/src/modules/accounting/command/deleteProfitCenter.ts +39 -0
- package/src/modules/accounting/command/deleteProfitCenterHierarchyNode.generated.ts +6 -0
- package/src/modules/accounting/command/deleteProfitCenterHierarchyNode.test.ts +72 -0
- package/src/modules/accounting/command/deleteProfitCenterHierarchyNode.ts +61 -0
- package/src/modules/accounting/command/executeAllocationCycle.generated.ts +6 -0
- package/src/modules/accounting/command/executeAllocationCycle.test.ts +167 -0
- package/src/modules/accounting/command/executeAllocationCycle.ts +94 -0
- package/src/modules/accounting/command/finalizeVarianceReport.generated.ts +6 -0
- package/src/modules/accounting/command/finalizeVarianceReport.test.ts +60 -0
- package/src/modules/accounting/command/finalizeVarianceReport.ts +45 -0
- package/src/modules/accounting/command/generateVarianceReport.generated.ts +6 -0
- package/src/modules/accounting/command/generateVarianceReport.test.ts +386 -0
- package/src/modules/accounting/command/generateVarianceReport.ts +219 -0
- package/src/modules/accounting/command/invalidateAllocationCycle.generated.ts +6 -0
- package/src/modules/accounting/command/invalidateAllocationCycle.test.ts +84 -0
- package/src/modules/accounting/command/invalidateAllocationCycle.ts +45 -0
- package/src/modules/accounting/command/moveCostCenterHierarchyNode.generated.ts +6 -0
- package/src/modules/accounting/command/moveCostCenterHierarchyNode.test.ts +135 -0
- package/src/modules/accounting/command/moveCostCenterHierarchyNode.ts +81 -0
- package/src/modules/accounting/command/postAllocationCycle.generated.ts +6 -0
- package/src/modules/accounting/command/postAllocationCycle.test.ts +98 -0
- package/src/modules/accounting/command/postAllocationCycle.ts +65 -0
- package/src/modules/accounting/command/reactivateCostElement.generated.ts +6 -0
- package/src/modules/accounting/command/reactivateCostElement.test.ts +59 -0
- package/src/modules/accounting/command/reactivateCostElement.ts +41 -0
- package/src/modules/accounting/command/reactivateProfitCenter.generated.ts +6 -0
- package/src/modules/accounting/command/reactivateProfitCenter.test.ts +60 -0
- package/src/modules/accounting/command/reactivateProfitCenter.ts +42 -0
- package/src/modules/accounting/command/recordCommitment.generated.ts +6 -0
- package/src/modules/accounting/command/recordCommitment.test.ts +157 -0
- package/src/modules/accounting/command/recordCommitment.ts +113 -0
- package/src/modules/accounting/command/rejectBudget.generated.ts +6 -0
- package/src/modules/accounting/command/rejectBudget.test.ts +105 -0
- package/src/modules/accounting/command/rejectBudget.ts +51 -0
- package/src/modules/accounting/command/releaseCommitment.generated.ts +6 -0
- package/src/modules/accounting/command/releaseCommitment.test.ts +94 -0
- package/src/modules/accounting/command/releaseCommitment.ts +51 -0
- package/src/modules/accounting/command/releaseInternalOrder.generated.ts +6 -0
- package/src/modules/accounting/command/releaseInternalOrder.test.ts +74 -0
- package/src/modules/accounting/command/releaseInternalOrder.ts +38 -0
- package/src/modules/accounting/command/reverseAllocationCycle.generated.ts +6 -0
- package/src/modules/accounting/command/reverseAllocationCycle.test.ts +124 -0
- package/src/modules/accounting/command/reverseAllocationCycle.ts +63 -0
- package/src/modules/accounting/command/submitBudget.generated.ts +6 -0
- package/src/modules/accounting/command/submitBudget.test.ts +60 -0
- package/src/modules/accounting/command/submitBudget.ts +51 -0
- package/src/modules/accounting/command/technicallyCompleteInternalOrder.generated.ts +6 -0
- package/src/modules/accounting/command/technicallyCompleteInternalOrder.test.ts +74 -0
- package/src/modules/accounting/command/technicallyCompleteInternalOrder.ts +42 -0
- package/src/modules/accounting/command/updateAllocationCycle.generated.ts +6 -0
- package/src/modules/accounting/command/updateAllocationCycle.test.ts +112 -0
- package/src/modules/accounting/command/updateAllocationCycle.ts +41 -0
- package/src/modules/accounting/command/updateBudget.generated.ts +6 -0
- package/src/modules/accounting/command/updateBudget.test.ts +112 -0
- package/src/modules/accounting/command/updateBudget.ts +44 -0
- package/src/modules/accounting/command/updateCostCenter.generated.ts +6 -0
- package/src/modules/accounting/command/updateCostCenter.test.ts +105 -0
- package/src/modules/accounting/command/updateCostCenter.ts +79 -0
- package/src/modules/accounting/command/updateCostElement.generated.ts +6 -0
- package/src/modules/accounting/command/updateCostElement.test.ts +265 -0
- package/src/modules/accounting/command/updateCostElement.ts +158 -0
- package/src/modules/accounting/command/updateInternalOrder.generated.ts +6 -0
- package/src/modules/accounting/command/updateInternalOrder.test.ts +209 -0
- package/src/modules/accounting/command/updateInternalOrder.ts +88 -0
- package/src/modules/accounting/command/updateProfitCenter.generated.ts +6 -0
- package/src/modules/accounting/command/updateProfitCenter.test.ts +162 -0
- package/src/modules/accounting/command/updateProfitCenter.ts +73 -0
- package/src/modules/accounting/command/validateAllocationCycle.generated.ts +6 -0
- package/src/modules/accounting/command/validateAllocationCycle.test.ts +141 -0
- package/src/modules/accounting/command/validateAllocationCycle.ts +80 -0
- package/src/modules/accounting/db/allocationCycle.ts +59 -0
- package/src/modules/accounting/db/allocationResult.ts +58 -0
- package/src/modules/accounting/db/allocationRule.ts +48 -0
- package/src/modules/accounting/db/budget.ts +84 -0
- package/src/modules/accounting/db/budgetLineItem.ts +64 -0
- package/src/modules/accounting/db/commitment.ts +60 -0
- package/src/modules/accounting/db/costCenter.ts +73 -0
- package/src/modules/accounting/db/costCenterHierarchy.ts +37 -0
- package/src/modules/accounting/db/costCenterHierarchyNode.ts +48 -0
- package/src/modules/accounting/db/costElement.ts +56 -0
- package/src/modules/accounting/db/internalOrder.ts +69 -0
- package/src/modules/accounting/db/planVersion.ts +47 -0
- package/src/modules/accounting/db/profitCenter.ts +52 -0
- package/src/modules/accounting/db/profitCenterHierarchy.ts +36 -0
- package/src/modules/accounting/db/profitCenterHierarchyAssignment.ts +62 -0
- package/src/modules/accounting/db/profitCenterHierarchyNode.ts +48 -0
- package/src/modules/accounting/db/varianceReport.ts +54 -0
- package/src/modules/accounting/db/varianceReportLine.ts +62 -0
- package/src/modules/accounting/docs/commands/ActivateBudget.md +54 -0
- package/src/modules/accounting/docs/commands/ActivateCostElement.md +43 -0
- package/src/modules/accounting/docs/commands/ActivateProfitCenter.md +43 -0
- package/src/modules/accounting/docs/commands/ApproveBudget.md +46 -0
- package/src/modules/accounting/docs/commands/AssignCostCenterToHierarchyNode.md +46 -0
- package/src/modules/accounting/docs/commands/AssignProfitCenterToHierarchyNode.md +47 -0
- package/src/modules/accounting/docs/commands/CloseBudget.md +47 -0
- package/src/modules/accounting/docs/commands/CloseInternalOrder.md +45 -0
- package/src/modules/accounting/docs/commands/ConsumeCommitment.md +53 -0
- package/src/modules/accounting/docs/commands/CreateAllocationCycle.md +55 -0
- package/src/modules/accounting/docs/commands/CreateAllocationRule.md +60 -0
- package/src/modules/accounting/docs/commands/CreateBudget.md +65 -0
- package/src/modules/accounting/docs/commands/CreateBudgetLineItem.md +66 -0
- package/src/modules/accounting/docs/commands/CreateCostCenter.md +64 -0
- package/src/modules/accounting/docs/commands/CreateCostCenterHierarchy.md +45 -0
- package/src/modules/accounting/docs/commands/CreateCostCenterHierarchyNode.md +61 -0
- package/src/modules/accounting/docs/commands/CreateCostElement.md +91 -0
- package/src/modules/accounting/docs/commands/CreateInternalOrder.md +72 -0
- package/src/modules/accounting/docs/commands/CreatePlanVersion.md +59 -0
- package/src/modules/accounting/docs/commands/CreateProfitCenter.md +63 -0
- package/src/modules/accounting/docs/commands/CreateProfitCenterHierarchy.md +45 -0
- package/src/modules/accounting/docs/commands/CreateProfitCenterHierarchyNode.md +60 -0
- package/src/modules/accounting/docs/commands/DeactivateCostElement.md +43 -0
- package/src/modules/accounting/docs/commands/DeactivateProfitCenter.md +44 -0
- package/src/modules/accounting/docs/commands/DeleteAllocationCycle.md +46 -0
- package/src/modules/accounting/docs/commands/DeleteAllocationRule.md +45 -0
- package/src/modules/accounting/docs/commands/DeleteBudget.md +46 -0
- package/src/modules/accounting/docs/commands/DeleteBudgetLineItem.md +45 -0
- package/src/modules/accounting/docs/commands/DeleteCostCenter.md +50 -0
- package/src/modules/accounting/docs/commands/DeleteCostCenterHierarchyNode.md +45 -0
- package/src/modules/accounting/docs/commands/DeleteCostElement.md +43 -0
- package/src/modules/accounting/docs/commands/DeleteInternalOrder.md +45 -0
- package/src/modules/accounting/docs/commands/DeleteProfitCenter.md +46 -0
- package/src/modules/accounting/docs/commands/DeleteProfitCenterHierarchyNode.md +46 -0
- package/src/modules/accounting/docs/commands/ExecuteAllocationCycle.md +54 -0
- package/src/modules/accounting/docs/commands/FinalizeVarianceReport.md +44 -0
- package/src/modules/accounting/docs/commands/GenerateVarianceReport.md +83 -0
- package/src/modules/accounting/docs/commands/InvalidateAllocationCycle.md +45 -0
- package/src/modules/accounting/docs/commands/MoveCostCenterHierarchyNode.md +51 -0
- package/src/modules/accounting/docs/commands/PostAllocationCycle.md +58 -0
- package/src/modules/accounting/docs/commands/ReactivateCostElement.md +43 -0
- package/src/modules/accounting/docs/commands/ReactivateProfitCenter.md +43 -0
- package/src/modules/accounting/docs/commands/RecordCommitment.md +60 -0
- package/src/modules/accounting/docs/commands/RejectBudget.md +49 -0
- package/src/modules/accounting/docs/commands/ReleaseCommitment.md +45 -0
- package/src/modules/accounting/docs/commands/ReleaseInternalOrder.md +44 -0
- package/src/modules/accounting/docs/commands/ReverseAllocationCycle.md +55 -0
- package/src/modules/accounting/docs/commands/SubmitBudget.md +47 -0
- package/src/modules/accounting/docs/commands/TechnicallyCompleteInternalOrder.md +44 -0
- package/src/modules/accounting/docs/commands/UpdateAllocationCycle.md +45 -0
- package/src/modules/accounting/docs/commands/UpdateBudget.md +47 -0
- package/src/modules/accounting/docs/commands/UpdateCostCenter.md +50 -0
- package/src/modules/accounting/docs/commands/UpdateCostElement.md +82 -0
- package/src/modules/accounting/docs/commands/UpdateInternalOrder.md +62 -0
- package/src/modules/accounting/docs/commands/UpdateProfitCenter.md +56 -0
- package/src/modules/accounting/docs/commands/ValidateAllocationCycle.md +57 -0
- package/src/modules/accounting/docs/features/budget-management.md +147 -0
- package/src/modules/accounting/docs/features/cost-allocation.md +129 -0
- package/src/modules/accounting/docs/features/cost-center-management.md +118 -0
- package/src/modules/accounting/docs/features/cost-element-management.md +114 -0
- package/src/modules/accounting/docs/features/internal-order-management.md +111 -0
- package/src/modules/accounting/docs/features/profit-center-management.md +120 -0
- package/src/modules/accounting/docs/features/variance-analysis.md +130 -0
- package/src/modules/accounting/docs/models/AllocationCycle.md +81 -0
- package/src/modules/accounting/docs/models/AllocationResult.md +37 -0
- package/src/modules/accounting/docs/models/AllocationRule.md +41 -0
- package/src/modules/accounting/docs/models/Budget.md +77 -0
- package/src/modules/accounting/docs/models/BudgetLineItem.md +40 -0
- package/src/modules/accounting/docs/models/Commitment.md +45 -0
- package/src/modules/accounting/docs/models/CostCenter.md +51 -0
- package/src/modules/accounting/docs/models/CostCenterHierarchy.md +38 -0
- package/src/modules/accounting/docs/models/CostCenterHierarchyNode.md +41 -0
- package/src/modules/accounting/docs/models/CostElement.md +66 -0
- package/src/modules/accounting/docs/models/InternalOrder.md +67 -0
- package/src/modules/accounting/docs/models/PlanVersion.md +36 -0
- package/src/modules/accounting/docs/models/ProfitCenter.md +66 -0
- package/src/modules/accounting/docs/models/ProfitCenterHierarchy.md +36 -0
- package/src/modules/accounting/docs/models/ProfitCenterHierarchyAssignment.md +36 -0
- package/src/modules/accounting/docs/models/ProfitCenterHierarchyNode.md +39 -0
- package/src/modules/accounting/docs/models/VarianceReport.md +58 -0
- package/src/modules/accounting/docs/models/VarianceReportLine.md +43 -0
- package/src/modules/accounting/docs/queries/CalculateBudgetAvailability.md +64 -0
- package/src/modules/accounting/docs/queries/GetAllocationCycle.md +43 -0
- package/src/modules/accounting/docs/queries/GetBudget.md +42 -0
- package/src/modules/accounting/docs/queries/GetCostCenter.md +38 -0
- package/src/modules/accounting/docs/queries/GetCostCenterHierarchy.md +45 -0
- package/src/modules/accounting/docs/queries/GetCostElement.md +39 -0
- package/src/modules/accounting/docs/queries/GetInternalOrder.md +42 -0
- package/src/modules/accounting/docs/queries/GetProfitCenter.md +38 -0
- package/src/modules/accounting/docs/queries/GetProfitCenterHierarchy.md +46 -0
- package/src/modules/accounting/docs/queries/GetVarianceReport.md +45 -0
- package/src/modules/accounting/docs/queries/ListAllocationCycles.md +63 -0
- package/src/modules/accounting/docs/queries/ListBudgets.md +70 -0
- package/src/modules/accounting/docs/queries/ListCostCenters.md +55 -0
- package/src/modules/accounting/docs/queries/ListCostElements.md +63 -0
- package/src/modules/accounting/docs/queries/ListInternalOrders.md +62 -0
- package/src/modules/accounting/docs/queries/ListProfitCenters.md +49 -0
- package/src/modules/accounting/generated/enums.ts +110 -0
- package/src/modules/accounting/generated/kysely-tailordb.ts +302 -0
- package/src/modules/accounting/index.ts +2 -0
- package/src/modules/accounting/lib/_db_deps.ts +70 -0
- package/src/modules/accounting/lib/actualAmounts.ts +93 -0
- package/src/modules/accounting/lib/allocationPosting.ts +152 -0
- package/src/modules/accounting/lib/errors.generated.ts +432 -0
- package/src/modules/accounting/lib/permissions.generated.ts +61 -0
- package/src/modules/accounting/lib/types.ts +114 -0
- package/src/modules/accounting/module.ts +429 -0
- package/src/modules/accounting/permissions.ts +3 -0
- package/src/modules/accounting/query/calculateBudgetAvailability.generated.ts +5 -0
- package/src/modules/accounting/query/calculateBudgetAvailability.test.ts +229 -0
- package/src/modules/accounting/query/calculateBudgetAvailability.ts +147 -0
- package/src/modules/accounting/query/getAllocationCycle.generated.ts +5 -0
- package/src/modules/accounting/query/getAllocationCycle.test.ts +94 -0
- package/src/modules/accounting/query/getAllocationCycle.ts +37 -0
- package/src/modules/accounting/query/getBudget.generated.ts +5 -0
- package/src/modules/accounting/query/getBudget.test.ts +80 -0
- package/src/modules/accounting/query/getBudget.ts +31 -0
- package/src/modules/accounting/query/getCostCenter.generated.ts +5 -0
- package/src/modules/accounting/query/getCostCenter.test.ts +50 -0
- package/src/modules/accounting/query/getCostCenter.ts +33 -0
- package/src/modules/accounting/query/getCostCenterHierarchy.generated.ts +5 -0
- package/src/modules/accounting/query/getCostCenterHierarchy.test.ts +100 -0
- package/src/modules/accounting/query/getCostCenterHierarchy.ts +80 -0
- package/src/modules/accounting/query/getCostElement.generated.ts +5 -0
- package/src/modules/accounting/query/getCostElement.test.ts +57 -0
- package/src/modules/accounting/query/getCostElement.ts +21 -0
- package/src/modules/accounting/query/getInternalOrder.generated.ts +5 -0
- package/src/modules/accounting/query/getInternalOrder.test.ts +73 -0
- package/src/modules/accounting/query/getInternalOrder.ts +21 -0
- package/src/modules/accounting/query/getProfitCenter.generated.ts +5 -0
- package/src/modules/accounting/query/getProfitCenter.test.ts +65 -0
- package/src/modules/accounting/query/getProfitCenter.ts +31 -0
- package/src/modules/accounting/query/getProfitCenterHierarchy.generated.ts +5 -0
- package/src/modules/accounting/query/getProfitCenterHierarchy.test.ts +97 -0
- package/src/modules/accounting/query/getProfitCenterHierarchy.ts +87 -0
- package/src/modules/accounting/query/getVarianceReport.generated.ts +5 -0
- package/src/modules/accounting/query/getVarianceReport.test.ts +108 -0
- package/src/modules/accounting/query/getVarianceReport.ts +31 -0
- package/src/modules/accounting/query/listAllocationCycles.generated.ts +5 -0
- package/src/modules/accounting/query/listAllocationCycles.test.ts +152 -0
- package/src/modules/accounting/query/listAllocationCycles.ts +96 -0
- package/src/modules/accounting/query/listBudgets.generated.ts +5 -0
- package/src/modules/accounting/query/listBudgets.test.ts +150 -0
- package/src/modules/accounting/query/listBudgets.ts +85 -0
- package/src/modules/accounting/query/listCostCenters.generated.ts +5 -0
- package/src/modules/accounting/query/listCostCenters.test.ts +111 -0
- package/src/modules/accounting/query/listCostCenters.ts +71 -0
- package/src/modules/accounting/query/listCostElements.generated.ts +5 -0
- package/src/modules/accounting/query/listCostElements.test.ts +138 -0
- package/src/modules/accounting/query/listCostElements.ts +105 -0
- package/src/modules/accounting/query/listInternalOrders.generated.ts +5 -0
- package/src/modules/accounting/query/listInternalOrders.test.ts +129 -0
- package/src/modules/accounting/query/listInternalOrders.ts +94 -0
- package/src/modules/accounting/query/listProfitCenters.generated.ts +5 -0
- package/src/modules/accounting/query/listProfitCenters.test.ts +94 -0
- package/src/modules/accounting/query/listProfitCenters.ts +56 -0
- package/src/modules/accounting/seed/index.ts +19 -0
- package/src/modules/accounting/tailor.config.ts +13 -0
- package/src/modules/accounting/testing/commandTestUtils.ts +35 -0
- package/src/modules/accounting/testing/fixtures.ts +502 -0
- package/src/modules/audit/command/logAuditEvent.ts +43 -38
- package/src/modules/audit/command/updateAuditPolicy.ts +2 -2
- package/src/modules/audit/docs/commands/UpdateAuditPolicy.md +1 -1
- package/src/modules/audit/module.ts +4 -0
- package/src/modules/business-partner/command/createPartnerBankAccount.test.ts +3 -3
- package/src/modules/business-partner/command/createPartnerBankAccount.ts +1 -1
- package/src/modules/business-partner/command/updateContactPerson.ts +3 -4
- package/src/modules/business-partner/command/updatePartner.ts +13 -6
- package/src/modules/business-partner/command/updatePartnerAddress.ts +13 -6
- package/src/modules/business-partner/command/updatePartnerBankAccount.ts +3 -4
- package/src/modules/business-partner/command/updatePartnerIdentification.ts +3 -4
- package/src/modules/business-partner/docs/commands/UpdateContactPerson.md +3 -3
- package/src/modules/business-partner/docs/commands/UpdatePartner.md +2 -2
- package/src/modules/business-partner/docs/commands/UpdatePartnerAddress.md +2 -2
- package/src/modules/business-partner/docs/commands/UpdatePartnerIdentification.md +2 -2
- package/src/modules/business-partner/module.ts +1 -0
- package/src/modules/coa-management/command/activateAccount.test.ts +0 -15
- package/src/modules/coa-management/command/activateAccount.ts +1 -42
- package/src/modules/coa-management/command/activateChartOfAccounts.test.ts +2 -31
- package/src/modules/coa-management/command/activateChartOfAccounts.ts +1 -37
- package/src/modules/coa-management/command/createAccount.test.ts +0 -28
- package/src/modules/coa-management/command/createAccount.ts +0 -43
- package/src/modules/coa-management/command/createAccountGroup.test.ts +2 -51
- package/src/modules/coa-management/command/createAccountGroup.ts +1 -56
- package/src/modules/coa-management/command/createChartOfAccounts.test.ts +1 -49
- package/src/modules/coa-management/command/createChartOfAccounts.ts +0 -51
- package/src/modules/coa-management/command/deactivateAccount.test.ts +0 -15
- package/src/modules/coa-management/command/deactivateAccount.ts +1 -53
- package/src/modules/coa-management/command/deactivateChartOfAccounts.test.ts +2 -29
- package/src/modules/coa-management/command/deactivateChartOfAccounts.ts +1 -37
- package/src/modules/coa-management/command/deleteAccount.test.ts +0 -13
- package/src/modules/coa-management/command/deleteAccount.ts +1 -42
- package/src/modules/coa-management/command/deleteAccountGroup.test.ts +0 -19
- package/src/modules/coa-management/command/deleteAccountGroup.ts +1 -42
- package/src/modules/coa-management/command/deleteChartOfAccounts.test.ts +2 -58
- package/src/modules/coa-management/command/deleteChartOfAccounts.ts +4 -88
- package/src/modules/coa-management/command/moveAccountGroup.test.ts +0 -27
- package/src/modules/coa-management/command/moveAccountGroup.ts +1 -48
- package/src/modules/coa-management/command/reactivateAccount.test.ts +0 -15
- package/src/modules/coa-management/command/reactivateAccount.ts +1 -53
- package/src/modules/coa-management/command/updateAccount.test.ts +0 -15
- package/src/modules/coa-management/command/updateAccount.ts +3 -95
- package/src/modules/coa-management/command/updateAccountGroup.test.ts +22 -20
- package/src/modules/coa-management/command/updateAccountGroup.ts +30 -78
- package/src/modules/coa-management/command/updateChartOfAccounts.test.ts +2 -31
- package/src/modules/coa-management/command/updateChartOfAccounts.ts +4 -54
- package/src/modules/coa-management/docs/commands/ActivateAccount.md +1 -4
- package/src/modules/coa-management/docs/commands/ActivateChartOfAccounts.md +1 -4
- package/src/modules/coa-management/docs/commands/CreateAccount.md +1 -4
- package/src/modules/coa-management/docs/commands/CreateAccountGroup.md +2 -5
- package/src/modules/coa-management/docs/commands/CreateChartOfAccounts.md +2 -6
- package/src/modules/coa-management/docs/commands/DeactivateAccount.md +1 -4
- package/src/modules/coa-management/docs/commands/DeactivateChartOfAccounts.md +1 -4
- package/src/modules/coa-management/docs/commands/DeleteAccount.md +1 -4
- package/src/modules/coa-management/docs/commands/DeleteAccountGroup.md +1 -4
- package/src/modules/coa-management/docs/commands/DeleteChartOfAccounts.md +1 -6
- package/src/modules/coa-management/docs/commands/MoveAccountGroup.md +1 -4
- package/src/modules/coa-management/docs/commands/ReactivateAccount.md +1 -4
- package/src/modules/coa-management/docs/commands/UpdateAccount.md +1 -4
- package/src/modules/coa-management/docs/commands/UpdateAccountGroup.md +6 -8
- package/src/modules/coa-management/docs/commands/UpdateChartOfAccounts.md +1 -4
- package/src/modules/coa-management/module.ts +16 -27
- package/src/modules/finance-ledger/command/updateFiscalYear.ts +2 -3
- package/src/modules/finance-ledger/command/updateJournalEntry.test.ts +0 -17
- package/src/modules/finance-ledger/command/updateJournalEntry.ts +2 -10
- package/src/modules/finance-ledger/command/updateJournalLine.ts +2 -3
- package/src/modules/finance-ledger/docs/commands/UpdateJournalEntry.md +1 -4
- package/src/modules/finance-ledger/module.ts +1 -0
- package/src/modules/inventory/command/approveInventoryAdjustment.test.ts +1 -1
- package/src/modules/inventory/command/approveInventoryAdjustment.ts +1 -1
- package/src/modules/inventory/command/cancelStockMovement.test.ts +2 -2
- package/src/modules/inventory/command/cancelStockMovement.ts +1 -1
- package/src/modules/inventory/command/confirmInventoryAdjustment.test.ts +4 -4
- package/src/modules/inventory/command/confirmInventoryAdjustment.ts +1 -1
- package/src/modules/inventory/command/confirmStockMovement.test.ts +1 -1
- package/src/modules/inventory/command/confirmStockMovement.ts +1 -1
- package/src/modules/inventory/command/createInventoryAdjustment.test.ts +6 -6
- package/src/modules/inventory/command/createInventoryAdjustment.ts +1 -1
- package/src/modules/inventory/command/createStockMovement.test.ts +3 -3
- package/src/modules/inventory/command/createStockMovement.ts +1 -1
- package/src/modules/inventory/command/executeStockMovement.test.ts +5 -5
- package/src/modules/inventory/command/executeStockMovement.ts +1 -1
- package/src/modules/inventory/command/rejectInventoryAdjustment.test.ts +1 -1
- package/src/modules/inventory/command/rejectInventoryAdjustment.ts +1 -1
- package/src/modules/inventory/command/reviseInventoryAdjustment.test.ts +2 -2
- package/src/modules/inventory/command/reviseInventoryAdjustment.ts +1 -1
- package/src/modules/inventory/command/submitInventoryAdjustment.test.ts +1 -1
- package/src/modules/inventory/command/submitInventoryAdjustment.ts +1 -1
- package/src/modules/inventory/command/updateLot.test.ts +1 -1
- package/src/modules/inventory/command/updateLot.ts +2 -3
- package/src/modules/inventory/command/updateStockMovement.test.ts +4 -4
- package/src/modules/inventory/command/updateStockMovement.ts +4 -5
- package/src/modules/inventory/command/updateStorageLocation.ts +12 -17
- package/src/modules/inventory/command/updateValuationPolicy.ts +2 -3
- package/src/modules/inventory/command/updateWarehouse.ts +2 -3
- package/src/modules/inventory/docs/commands/UpdateLot.md +3 -3
- package/src/modules/inventory/docs/commands/UpdateStorageLocation.md +6 -6
- package/src/modules/inventory/docs/commands/UpdateWarehouse.md +2 -2
- package/src/modules/inventory/module.ts +1 -0
- package/src/modules/item-management/command/createTaxonomyNode.test.ts +4 -4
- package/src/modules/item-management/command/createTaxonomyNode.ts +1 -1
- package/src/modules/item-management/command/moveTaxonomyNode.test.ts +2 -2
- package/src/modules/item-management/command/moveTaxonomyNode.ts +2 -2
- package/src/modules/item-management/command/updateItem.test.ts +16 -12
- package/src/modules/item-management/command/updateItem.ts +47 -31
- package/src/modules/item-management/command/updateTaxonomyNode.test.ts +16 -17
- package/src/modules/item-management/command/updateTaxonomyNode.ts +43 -30
- package/src/modules/item-management/docs/commands/UpdateItem.md +7 -11
- package/src/modules/item-management/docs/commands/UpdateTaxonomyNode.md +10 -14
- package/src/modules/item-management/module.ts +1 -0
- package/src/modules/manufacturing/command/createRouting.ts +1 -1
- package/src/modules/manufacturing/command/recordInventoryIssueOutcome.test.ts +1 -1
- package/src/modules/manufacturing/command/recordInventoryIssueOutcome.ts +1 -1
- package/src/modules/manufacturing/command/recordManufacturingCostSettlementAcknowledgment.test.ts +1 -1
- package/src/modules/manufacturing/command/recordManufacturingCostSettlementAcknowledgment.ts +1 -1
- package/src/modules/manufacturing/command/reviewManufacturingCostSummary.test.ts +1 -1
- package/src/modules/manufacturing/command/reviewManufacturingCostSummary.ts +1 -1
- package/src/modules/manufacturing/command/updateBillOfMaterial.ts +3 -4
- package/src/modules/manufacturing/command/updateProductionOrder.ts +3 -4
- package/src/modules/manufacturing/command/updateRouting.ts +4 -5
- package/src/modules/manufacturing/command/updateWorkCenter.test.ts +16 -7
- package/src/modules/manufacturing/command/updateWorkCenter.ts +41 -38
- package/src/modules/manufacturing/docs/commands/ActivateWorkCenter.md +2 -0
- package/src/modules/manufacturing/docs/commands/CompleteWorkOrder.md +2 -0
- package/src/modules/manufacturing/docs/commands/CreateBillOfMaterial.md +1 -0
- package/src/modules/manufacturing/docs/commands/ReviewManufacturingCostSummary.md +1 -0
- package/src/modules/manufacturing/docs/commands/UpdateWorkCenter.md +6 -5
- package/src/modules/manufacturing/docs/models/BillOfMaterialLine.md +42 -0
- package/src/modules/manufacturing/docs/models/CostVarianceLine.md +36 -0
- package/src/modules/manufacturing/docs/models/ManufacturingCostLine.md +37 -0
- package/src/modules/manufacturing/docs/models/ManufacturingCostSettlementRecord.md +34 -0
- package/src/modules/manufacturing/docs/models/ProductionOrderBomSnapshot.md +35 -0
- package/src/modules/manufacturing/docs/models/ProductionOrderCostBaseline.md +36 -0
- package/src/modules/manufacturing/docs/models/ProductionOrderMaterialRequirement.md +35 -0
- package/src/modules/manufacturing/docs/models/ProductionOrderRoutingSnapshot.md +34 -0
- package/src/modules/manufacturing/docs/models/RoutingOperation.md +40 -0
- package/src/modules/manufacturing/docs/models/WorkOrderExecutionEvent.md +38 -0
- package/src/modules/manufacturing/docs/queries/ExplodeBillOfMaterial.md +1 -0
- package/src/modules/manufacturing/docs/queries/ListWorkCentersBySite.md +1 -0
- package/src/modules/manufacturing/module.ts +1 -0
- package/src/modules/organization/command/updateCompany.test.ts +6 -6
- package/src/modules/organization/command/updateCompany.ts +3 -4
- package/src/modules/organization/command/updateDepartment.test.ts +7 -7
- package/src/modules/organization/command/updateDepartment.ts +13 -12
- package/src/modules/organization/command/updateSite.test.ts +10 -10
- package/src/modules/organization/command/updateSite.ts +3 -4
- package/src/modules/organization/docs/commands/UpdateCompany.md +6 -6
- package/src/modules/organization/docs/commands/UpdateDepartment.md +9 -10
- package/src/modules/organization/docs/commands/UpdateSite.md +12 -12
- package/src/modules/organization/module.ts +1 -0
- package/src/modules/primitives/module.ts +1 -0
- package/src/modules/product-management/command/assignProductToCategory.test.ts +2 -2
- package/src/modules/product-management/command/assignProductToCategory.ts +2 -2
- package/src/modules/product-management/command/createProductAttribute.test.ts +1 -1
- package/src/modules/product-management/command/createProductAttribute.ts +1 -1
- package/src/modules/product-management/command/createProductAttributeValue.test.ts +1 -1
- package/src/modules/product-management/command/createProductAttributeValue.ts +1 -1
- package/src/modules/product-management/command/createProductCategory.test.ts +2 -2
- package/src/modules/product-management/command/createProductCategory.ts +1 -1
- package/src/modules/product-management/command/setProductAttributeAssignment.test.ts +3 -3
- package/src/modules/product-management/command/setProductAttributeAssignment.ts +2 -2
- package/src/modules/product-management/command/updateProduct.test.ts +17 -11
- package/src/modules/product-management/command/updateProduct.ts +45 -28
- package/src/modules/product-management/command/updateProductAttribute.test.ts +16 -21
- package/src/modules/product-management/command/updateProductAttribute.ts +40 -26
- package/src/modules/product-management/command/updateProductAttributeValue.ts +2 -3
- package/src/modules/product-management/command/updateProductCategory.test.ts +14 -19
- package/src/modules/product-management/command/updateProductCategory.ts +42 -26
- package/src/modules/product-management/docs/commands/UpdateProduct.md +16 -20
- package/src/modules/product-management/docs/commands/UpdateProductAttribute.md +10 -14
- package/src/modules/product-management/docs/commands/UpdateProductCategory.md +10 -14
- package/src/modules/product-management/module.ts +1 -0
- package/src/modules/purchase/command/activatePurchasePaymentTerm.test.ts +4 -4
- package/src/modules/purchase/command/activatePurchasePaymentTerm.ts +2 -2
- package/src/modules/purchase/command/deactivatePurchasePaymentTerm.test.ts +4 -4
- package/src/modules/purchase/command/deactivatePurchasePaymentTerm.ts +2 -2
- package/src/modules/purchase/command/updateGoodsReceipt.ts +2 -3
- package/src/modules/purchase/command/updatePurchaseBill.ts +2 -3
- package/src/modules/purchase/command/updatePurchaseOrder.ts +2 -3
- package/src/modules/purchase/command/updatePurchasePaymentTerm.test.ts +2 -2
- package/src/modules/purchase/command/updatePurchasePaymentTerm.ts +3 -4
- package/src/modules/purchase/command/updatePurchasePriceList.ts +2 -3
- package/src/modules/purchase/command/updatePurchasePriceRule.ts +2 -3
- package/src/modules/purchase/module.ts +1 -0
- package/src/modules/sales/command/createSalesOrder.ts +1 -1
- package/src/modules/sales/command/updateChannel.test.ts +4 -4
- package/src/modules/sales/command/updateChannel.ts +2 -3
- package/src/modules/sales/command/updateListing.test.ts +2 -2
- package/src/modules/sales/command/updateListing.ts +2 -3
- package/src/modules/sales/command/updateSalesCreditNote.test.ts +2 -2
- package/src/modules/sales/command/updateSalesCreditNote.ts +2 -3
- package/src/modules/sales/command/updateSalesInvoice.test.ts +2 -2
- package/src/modules/sales/command/updateSalesInvoice.ts +2 -3
- package/src/modules/sales/command/updateSalesOrder.test.ts +3 -3
- package/src/modules/sales/command/updateSalesOrder.ts +2 -3
- package/src/modules/sales/command/updateSalesPaymentTerm.test.ts +2 -2
- package/src/modules/sales/command/updateSalesPaymentTerm.ts +2 -3
- package/src/modules/sales/command/updateSalesPriceList.test.ts +3 -3
- package/src/modules/sales/command/updateSalesPriceList.ts +2 -3
- package/src/modules/sales/command/updateSalesPriceRule.test.ts +3 -3
- package/src/modules/sales/command/updateSalesPriceRule.ts +2 -3
- package/src/modules/sales/command/updateShipment.test.ts +2 -2
- package/src/modules/sales/command/updateShipment.ts +2 -3
- package/src/modules/sales/docs/commands/UpdateChannel.md +4 -4
- package/src/modules/sales/docs/commands/UpdateListing.md +2 -2
- package/src/modules/sales/docs/commands/UpdateSalesCreditNote.md +2 -2
- package/src/modules/sales/docs/commands/UpdateSalesInvoice.md +2 -2
- package/src/modules/sales/docs/commands/UpdateSalesOrder.md +3 -3
- package/src/modules/sales/docs/commands/UpdateSalesPaymentTerm.md +2 -2
- package/src/modules/sales/docs/commands/UpdateSalesPriceList.md +3 -3
- package/src/modules/sales/docs/commands/UpdateSalesPriceRule.md +3 -3
- package/src/modules/sales/docs/commands/UpdateShipment.md +2 -2
- package/src/modules/sales/module.ts +1 -0
- package/src/modules/user-management/README.md +2 -1
- package/src/modules/user-management/command/updateOwnProfile.generated.ts +6 -0
- package/src/modules/user-management/command/updateOwnProfile.test.ts +191 -0
- package/src/modules/user-management/command/updateOwnProfile.ts +82 -0
- package/src/modules/user-management/command/updateUser.generated.ts +6 -0
- package/src/modules/user-management/command/updateUser.test.ts +195 -0
- package/src/modules/user-management/command/updateUser.ts +76 -0
- package/src/modules/user-management/docs/commands/UpdateOwnProfile.md +68 -0
- package/src/modules/user-management/docs/commands/UpdateUser.md +67 -0
- package/src/modules/user-management/docs/features/user-account-management.md +28 -3
- package/src/modules/user-management/docs/models/User.md +2 -0
- package/src/modules/user-management/lib/errors.generated.ts +5 -0
- package/src/modules/user-management/lib/permissions.generated.ts +2 -0
- package/src/modules/user-management/module.ts +5 -0
- package/src/modules/user-management/seed/index.ts +19 -0
- package/templates/scaffold/app/backend/eslint.config.js +17 -0
- package/templates/scaffold/app/backend/package.json +1 -0
- package/templates/scaffold/app/backend/seed/data/AuditEntry.schema.ts +20 -0
- package/templates/scaffold/app/backend/seed/data/AuditPolicy.jsonl +7 -0
- package/templates/scaffold/app/backend/seed/data/AuditPolicy.schema.ts +15 -0
- package/templates/scaffold/app/backend/seed/data/AuditableEntity.jsonl +4 -0
- package/templates/scaffold/app/backend/seed/data/AuditableEntity.schema.ts +20 -0
- package/templates/scaffold/app/backend/seed/data/ChangeDetail.schema.ts +20 -0
- package/templates/scaffold/app/backend/seed/data/Company.schema.ts +15 -0
- package/templates/scaffold/app/backend/seed/data/Permission.jsonl +13 -0
- package/templates/scaffold/app/backend/seed/data/Permission.schema.ts +1 -1
- package/templates/scaffold/app/backend/seed/data/PolicyFieldRule.schema.ts +20 -0
- package/templates/scaffold/app/backend/seed/data/Role.jsonl +1 -0
- package/templates/scaffold/app/backend/seed/data/Role.schema.ts +1 -1
- package/templates/scaffold/app/backend/seed/data/RolePermission.jsonl +13 -0
- package/templates/scaffold/app/backend/seed/data/RolePermission.schema.ts +1 -1
- package/templates/scaffold/app/backend/seed/data/User.jsonl +1 -1
- package/templates/scaffold/app/backend/seed/data/User.schema.ts +1 -1
- package/templates/scaffold/app/backend/seed/data/UserRole.jsonl +1 -0
- package/templates/scaffold/app/backend/seed/data/UserRole.schema.ts +1 -1
- package/templates/scaffold/app/backend/seed/data/_User.jsonl +1 -1
- package/templates/scaffold/app/backend/seed/exec.mjs +12 -0
- package/templates/scaffold/app/backend/src/executors/permissionCreated.ts +2 -2
- package/templates/scaffold/app/backend/src/executors/permissionDeleted.ts +2 -2
- package/templates/scaffold/app/backend/src/generated/kysely-tailordb.ts +62 -0
- package/templates/scaffold/app/backend/src/modules-db.ts +13 -0
- package/templates/scaffold/app/backend/src/modules.ts +3 -5
- package/templates/scaffold/app/backend/src/resolvers/assignPermissionToRole.ts +70 -0
- package/templates/scaffold/app/backend/src/resolvers/assignRoleToUser.ts +72 -0
- package/templates/scaffold/app/backend/src/resolvers/createRole.ts +92 -0
- package/templates/scaffold/app/backend/src/resolvers/createUser.ts +113 -13
- package/templates/scaffold/app/backend/src/resolvers/deactivateUser.ts +67 -0
- package/templates/scaffold/app/backend/src/resolvers/reactivateUser.ts +63 -0
- package/templates/scaffold/app/backend/src/resolvers/revokePermissionFromRole.ts +72 -0
- package/templates/scaffold/app/backend/src/resolvers/revokeRoleFromUser.ts +72 -0
- package/templates/scaffold/app/backend/src/resolvers/updateOwnProfile.ts +107 -0
- package/templates/scaffold/app/backend/src/resolvers/updateUserProfile.ts +107 -0
- package/templates/scaffold/app/backend/src/tests/stories/audit-log/user--view-audit-log-detail.test.ts +79 -0
- package/templates/scaffold/app/backend/src/tests/stories/audit-log/user--view-audit-log.test.ts +86 -0
- package/templates/scaffold/app/backend/src/tests/stories/role-management/user--assign-role-to-user.test.ts +103 -0
- package/templates/scaffold/app/backend/src/tests/stories/role-management/user--create-role.test.ts +61 -0
- package/templates/scaffold/app/backend/src/tests/stories/role-management/user--remove-role-from-user.test.ts +89 -0
- package/templates/scaffold/app/backend/src/tests/stories/role-management/user--update-role-permissions.test.ts +125 -0
- package/templates/scaffold/app/backend/src/tests/stories/user-lifecycle/user--browse-user-list.test.ts +91 -0
- package/templates/scaffold/app/backend/src/tests/stories/user-lifecycle/user--create-user-account.test.ts +97 -0
- package/templates/scaffold/app/backend/src/tests/stories/user-lifecycle/user--toggle-user-status.test.ts +131 -0
- package/templates/scaffold/app/backend/src/tests/stories/user-lifecycle/user--update-own-profile.test.ts +85 -0
- package/templates/scaffold/app/backend/src/tests/stories/user-lifecycle/user--update-user-profile.test.ts +157 -0
- package/templates/scaffold/app/backend/src/tests/stories/user-lifecycle/user--view-own-profile.test.ts +30 -0
- package/templates/scaffold/app/backend/src/tests/stories/user-lifecycle/user--view-user-detail.test.ts +98 -0
- package/templates/scaffold/app/backend/tailor.config.ts +21 -3
- package/templates/scaffold/app/backend/tsconfig.json +1 -1
- package/templates/scaffold/app/docs/actors/user.md +11 -0
- package/templates/scaffold/app/docs/business-flow/audit-log/README.md +31 -0
- package/templates/scaffold/app/docs/business-flow/audit-log/story/user--view-audit-log-detail.md +35 -0
- package/templates/scaffold/app/docs/business-flow/audit-log/story/user--view-audit-log.md +44 -0
- package/templates/scaffold/app/docs/business-flow/role-management/README.md +33 -0
- package/templates/scaffold/app/docs/business-flow/role-management/story/user--assign-role-to-user.md +35 -0
- package/templates/scaffold/app/docs/business-flow/role-management/story/user--create-role.md +41 -0
- package/templates/scaffold/app/docs/business-flow/role-management/story/user--remove-role-from-user.md +33 -0
- package/templates/scaffold/app/docs/business-flow/role-management/story/user--update-role-permissions.md +41 -0
- package/templates/scaffold/app/docs/business-flow/user-lifecycle/README.md +48 -0
- package/templates/scaffold/app/docs/business-flow/user-lifecycle/story/user--browse-user-list.md +38 -0
- package/templates/scaffold/app/docs/business-flow/user-lifecycle/story/user--create-user-account.md +45 -0
- package/templates/scaffold/app/docs/business-flow/user-lifecycle/story/user--toggle-user-status.md +38 -0
- package/templates/scaffold/app/docs/business-flow/user-lifecycle/story/user--update-own-profile.md +36 -0
- package/templates/scaffold/app/docs/business-flow/user-lifecycle/story/user--update-user-profile.md +41 -0
- package/templates/scaffold/app/docs/business-flow/user-lifecycle/story/user--view-own-profile.md +30 -0
- package/templates/scaffold/app/docs/business-flow/user-lifecycle/story/user--view-user-detail.md +33 -0
- package/templates/scaffold/app/docs/resolver/assignPermissionToRole.md +16 -0
- package/templates/scaffold/app/docs/resolver/assignRoleToUser.md +17 -0
- package/templates/scaffold/app/docs/resolver/createRole.md +17 -0
- package/templates/scaffold/app/docs/resolver/createUser.md +23 -0
- package/templates/scaffold/app/docs/resolver/deactivateUser.md +17 -0
- package/templates/scaffold/app/docs/resolver/reactivateUser.md +16 -0
- package/templates/scaffold/app/docs/resolver/revokePermissionFromRole.md +17 -0
- package/templates/scaffold/app/docs/resolver/revokeRoleFromUser.md +17 -0
- package/templates/scaffold/app/docs/resolver/updateOwnProfile.md +20 -0
- package/templates/scaffold/app/docs/resolver/updateUserProfile.md +19 -0
- package/templates/scaffold/app/docs/screen/audit-entry-detail.md +30 -0
- package/templates/scaffold/app/docs/screen/audit-entry-list.md +25 -0
- package/templates/scaffold/app/docs/screen/my-profile-edit-form.md +22 -0
- package/templates/scaffold/app/docs/screen/my-profile.md +27 -0
- package/templates/scaffold/app/docs/screen/role-create-form.md +23 -0
- package/templates/scaffold/app/docs/screen/role-detail.md +27 -0
- package/templates/scaffold/app/docs/screen/role-edit-form.md +21 -0
- package/templates/scaffold/app/docs/screen/role-list.md +23 -0
- package/templates/scaffold/app/docs/screen/user-create-form.md +23 -0
- package/templates/scaffold/app/docs/screen/user-detail.md +33 -0
- package/templates/scaffold/app/docs/screen/user-edit-form.md +22 -0
- package/templates/scaffold/app/docs/screen/user-list.md +24 -0
- package/templates/scaffold/app/frontend/package.json +1 -1
- package/templates/scaffold/app/frontend/src/App.tsx +57 -12
- package/templates/scaffold/app/frontend/src/components/composed/error-fallback.tsx +1 -1
- package/templates/scaffold/app/frontend/src/graphql/generated/graphql-env.d.ts +59 -31
- package/templates/scaffold/app/frontend/src/graphql/generated/schema.graphql +1411 -688
- package/templates/scaffold/app/frontend/src/hooks/use-toast.ts +1 -1
- package/templates/scaffold/app/frontend/src/lib/permission-groups.ts +59 -0
- package/templates/scaffold/app/frontend/src/pages/audit/[id]/components/audit-entry-detail.tsx +102 -0
- package/templates/scaffold/app/frontend/src/pages/audit/[id]/page.tsx +65 -0
- package/templates/scaffold/app/frontend/src/pages/audit/components/audit-entries-table.tsx +90 -0
- package/templates/scaffold/app/frontend/src/pages/audit/page.tsx +52 -0
- package/templates/scaffold/app/frontend/src/pages/user-management/profile/edit/components/edit-profile-form.tsx +125 -0
- package/templates/scaffold/app/frontend/src/pages/user-management/profile/edit/page.tsx +19 -0
- package/templates/scaffold/app/frontend/src/pages/user-management/profile/page.tsx +41 -21
- package/templates/scaffold/app/frontend/src/pages/user-management/role/[id]/components/role-actions.tsx +26 -0
- package/templates/scaffold/app/frontend/src/pages/user-management/role/[id]/components/role-detail.tsx +69 -0
- package/templates/scaffold/app/frontend/src/pages/user-management/role/[id]/edit/components/edit-role-form.tsx +192 -0
- package/templates/scaffold/app/frontend/src/pages/user-management/role/[id]/edit/page.tsx +51 -0
- package/templates/scaffold/app/frontend/src/pages/user-management/role/[id]/page.tsx +56 -0
- package/templates/scaffold/app/frontend/src/pages/user-management/role/components/roles-table.tsx +85 -0
- package/templates/scaffold/app/frontend/src/pages/user-management/role/create/components/create-role-form.tsx +204 -0
- package/templates/scaffold/app/frontend/src/pages/user-management/role/create/page.tsx +19 -0
- package/templates/scaffold/app/frontend/src/pages/user-management/role/page.tsx +60 -0
- package/templates/scaffold/app/frontend/src/pages/user-management/user/[id]/components/user-actions.tsx +216 -0
- package/templates/scaffold/app/frontend/src/pages/user-management/user/[id]/components/user-detail.tsx +97 -33
- package/templates/scaffold/app/frontend/src/pages/user-management/user/[id]/edit/components/edit-user-form.tsx +115 -0
- package/templates/scaffold/app/frontend/src/pages/user-management/user/[id]/edit/page.tsx +51 -0
- package/templates/scaffold/app/frontend/src/pages/user-management/user/[id]/page.tsx +8 -2
- package/templates/scaffold/app/frontend/src/pages/user-management/user/components/users-table.tsx +43 -42
- package/templates/scaffold/app/frontend/src/pages/user-management/user/create/components/create-user-form.tsx +120 -45
- package/templates/scaffold/app/frontend/src/pages/user-management/user/page.tsx +3 -4
- package/templates/scaffold/app/frontend/src/providers/graphql-provider.tsx +8 -1
- package/templates/scaffold/module/eslint.config.js +32 -0
- package/templates/scaffold/module/module.ts +1 -0
- package/templates/scaffold/module/package.json +3 -1
- package/templates/scaffold/module/vitest.config.ts +11 -0
- package/templates/scaffold/project/__dot__gitignore +1 -0
- package/templates/scaffold/project/__pnpm-workspace.yaml +3 -0
- package/templates/scaffold/project/apps/.gitkeep +0 -0
- package/templates/scaffold/project/modules/.gitkeep +0 -0
- package/templates/scaffold/project/package.json +15 -0
- package/templates/workflows/erp-kit-check.yml +10 -4
- package/templates/scaffold/app/frontend/src/components/ui/badge.tsx +0 -39
- package/templates/scaffold/app/frontend/src/components/ui/button.tsx +0 -60
- package/templates/scaffold/app/frontend/src/components/ui/card.tsx +0 -75
- package/templates/scaffold/app/frontend/src/components/ui/input.tsx +0 -21
- package/templates/scaffold/app/frontend/src/components/ui/table.tsx +0 -90
- /package/src/modules/{supplier-portal → accounting/executor}/.gitkeep +0 -0
- /package/templates/scaffold/app/{docs/actors/.gitkeep → backend/seed/data/AuditEntry.jsonl} +0 -0
- /package/templates/scaffold/app/{docs/business-flow/.gitkeep → backend/seed/data/ChangeDetail.jsonl} +0 -0
- /package/templates/scaffold/app/{docs/resolver/.gitkeep → backend/seed/data/Company.jsonl} +0 -0
- /package/templates/scaffold/app/{docs/screen/.gitkeep → backend/seed/data/PolicyFieldRule.jsonl} +0 -0
- /package/templates/{config → scaffold/project}/license.config.json +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,45 @@
|
|
|
1
1
|
# @tailor-platform/erp-kit
|
|
2
2
|
|
|
3
|
+
## 0.9.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- afa2455: - Add seed:validate script and skill step to scaffold template
|
|
8
|
+
- Add vitest to module scaffold template
|
|
9
|
+
- Add version self-checking to all erp-kit skills
|
|
10
|
+
- Fix command return properties to use full model names across all modules
|
|
11
|
+
- Fix tree-shaking by adding sideEffects annotations to all module defineModule exports
|
|
12
|
+
- Fix scaffold app integration tests
|
|
13
|
+
- Fix inactive users being able to access the scaffold app
|
|
14
|
+
- Fix skills CLI version check, remove erp-kit-shared dependency
|
|
15
|
+
- Refactor audit pages out of user-management directory into standalone location
|
|
16
|
+
- Remove audit dependency from coa-management module
|
|
17
|
+
|
|
18
|
+
## 0.8.0
|
|
19
|
+
|
|
20
|
+
### Minor Changes
|
|
21
|
+
|
|
22
|
+
- 16f35c6: - Add project scaffolding to `erp-kit init` command (pnpm workspace, package.json, directory structure)
|
|
23
|
+
- Add accounting module implementation with models, commands, queries, and test fixtures
|
|
24
|
+
- Add app-shell primitives and component cheat sheet reference for frontend implementation skill
|
|
25
|
+
- Improve frontend templates by consolidating duplicate UI components into shared packages
|
|
26
|
+
- Update manufacturing module documentation with additional model and command details
|
|
27
|
+
- cdb3690: - Add user-management scaffold template with full RBAC and audit support
|
|
28
|
+
- Add `update` command pattern with union lookup keys for flexible record updates
|
|
29
|
+
- Add app-shell primitives and detail-view reference for frontend implementation
|
|
30
|
+
- Fix app scaffold expansion to exclude docs directory from template processing
|
|
31
|
+
- Improve update command conventions with followup refinements
|
|
32
|
+
- 16f35c6: - Add manufacturing module with BOM, work orders, and production tracking
|
|
33
|
+
- Add story test case sync-check and stub generation for `erp-kit test` command
|
|
34
|
+
- Update workspace creation instructions and deployment steps in skills
|
|
35
|
+
|
|
36
|
+
### Patch Changes
|
|
37
|
+
|
|
38
|
+
- 16f35c6: - Fix relative shared imports to use package self-reference for consistent module resolution
|
|
39
|
+
- Fix priority calibration in requirements review skill to improve accuracy
|
|
40
|
+
- Fix severity validation in module-2 requirements review skill
|
|
41
|
+
- Update module-4-plan-review skill and regenerate .agents/skills
|
|
42
|
+
|
|
3
43
|
## 0.7.0
|
|
4
44
|
|
|
5
45
|
### Minor Changes
|
package/README.md
CHANGED
|
@@ -11,8 +11,8 @@ npm install @tailor-platform/erp-kit
|
|
|
11
11
|
## Quick Start
|
|
12
12
|
|
|
13
13
|
```bash
|
|
14
|
-
# Set up your repo (agent skills, workflows,
|
|
15
|
-
erp-kit init
|
|
14
|
+
# Set up your repo (agent skills, workflows, project structure)
|
|
15
|
+
erp-kit init my-project
|
|
16
16
|
|
|
17
17
|
# Update framework resources
|
|
18
18
|
erp-kit update
|
|
@@ -57,15 +57,19 @@ erp-kit mock validate
|
|
|
57
57
|
First-time setup for consumer repos. Fails if already initialized — use `erp-kit update` to refresh resources.
|
|
58
58
|
|
|
59
59
|
```bash
|
|
60
|
-
erp-kit init
|
|
60
|
+
erp-kit init <name>
|
|
61
61
|
```
|
|
62
62
|
|
|
63
|
+
**Arguments:**
|
|
64
|
+
|
|
65
|
+
- `<name>` — Project name (used in `package.json`)
|
|
66
|
+
|
|
63
67
|
This will:
|
|
64
68
|
|
|
65
69
|
1. Copy agent skills to `.agents/skills/`
|
|
66
70
|
2. Create symlink `.claude/skills` → `.agents/skills/`
|
|
67
71
|
3. Copy workflows to `.github/workflows/`
|
|
68
|
-
4.
|
|
72
|
+
4. Scaffold project structure (`package.json`, `pnpm-workspace.yaml`, `.gitignore`, `license.config.json`, `apps/`, `modules/`)
|
|
69
73
|
|
|
70
74
|
### `update`
|
|
71
75
|
|
package/dist/cli.mjs
CHANGED
|
@@ -31,10 +31,70 @@ function readErpKitVersion() {
|
|
|
31
31
|
return JSON.parse(fs.readFileSync(path.join(PACKAGE_ROOT, "package.json"), "utf-8")).version;
|
|
32
32
|
}
|
|
33
33
|
//#endregion
|
|
34
|
+
//#region src/generator/scaffold.ts
|
|
35
|
+
const RENAME_MAP = {
|
|
36
|
+
__dot__gitignore: ".gitignore",
|
|
37
|
+
"__pnpm-workspace.yaml": "pnpm-workspace.yaml"
|
|
38
|
+
};
|
|
39
|
+
function copyTemplateDir(srcDir, destDir, replacements, placeholderFiles, excludeDirs = /* @__PURE__ */ new Set()) {
|
|
40
|
+
for (const entry of fs.readdirSync(srcDir, { withFileTypes: true })) {
|
|
41
|
+
const srcPath = path.join(srcDir, entry.name);
|
|
42
|
+
const destName = RENAME_MAP[entry.name] ?? entry.name;
|
|
43
|
+
const destPath = path.join(destDir, destName);
|
|
44
|
+
if (entry.name === "node_modules") continue;
|
|
45
|
+
if (excludeDirs.has(entry.name)) continue;
|
|
46
|
+
if (entry.isDirectory()) {
|
|
47
|
+
fs.mkdirSync(destPath, { recursive: true });
|
|
48
|
+
copyTemplateDir(srcPath, destPath, replacements, placeholderFiles, excludeDirs);
|
|
49
|
+
} else {
|
|
50
|
+
if (fs.existsSync(destPath)) continue;
|
|
51
|
+
fs.mkdirSync(path.dirname(destPath), { recursive: true });
|
|
52
|
+
if (placeholderFiles.has(entry.name)) {
|
|
53
|
+
let content = fs.readFileSync(srcPath, "utf-8");
|
|
54
|
+
for (const [from, to] of Object.entries(replacements)) content = content.replaceAll(from, to);
|
|
55
|
+
fs.writeFileSync(destPath, content);
|
|
56
|
+
} else fs.copyFileSync(srcPath, destPath);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
function scaffoldModuleBoilerplate(moduleDir, moduleName) {
|
|
61
|
+
const templateDir = path.join(PACKAGE_ROOT, "templates", "scaffold", "module");
|
|
62
|
+
const erpKitVersion = readErpKitVersion();
|
|
63
|
+
copyTemplateDir(templateDir, moduleDir, {
|
|
64
|
+
"template-module": moduleName,
|
|
65
|
+
"\"workspace:*\"": `"${erpKitVersion}"`
|
|
66
|
+
}, new Set([
|
|
67
|
+
"package.json",
|
|
68
|
+
"permissions.ts",
|
|
69
|
+
"tailor.config.ts"
|
|
70
|
+
]));
|
|
71
|
+
}
|
|
72
|
+
function scaffoldAppBoilerplate(appDir, appName) {
|
|
73
|
+
const templateDir = path.join(PACKAGE_ROOT, "templates", "scaffold", "app");
|
|
74
|
+
const erpKitVersion = readErpKitVersion();
|
|
75
|
+
copyTemplateDir(templateDir, appDir, {
|
|
76
|
+
"template-app-frontend": `${appName}-frontend`,
|
|
77
|
+
"template-app-backend": appName,
|
|
78
|
+
"template-app": appName,
|
|
79
|
+
"\"workspace:*\"": `"${erpKitVersion}"`
|
|
80
|
+
}, new Set([
|
|
81
|
+
"package.json",
|
|
82
|
+
"tailor.config.ts",
|
|
83
|
+
"index.html"
|
|
84
|
+
]), new Set(["docs"]));
|
|
85
|
+
}
|
|
86
|
+
function scaffoldProjectBoilerplate(projectDir, projectName) {
|
|
87
|
+
const templateDir = path.join(PACKAGE_ROOT, "templates", "scaffold", "project");
|
|
88
|
+
const erpKitVersion = readErpKitVersion();
|
|
89
|
+
copyTemplateDir(templateDir, projectDir, {
|
|
90
|
+
"template-project": projectName,
|
|
91
|
+
"\"workspace:*\"": `"${erpKitVersion}"`
|
|
92
|
+
}, new Set(["package.json"]));
|
|
93
|
+
}
|
|
94
|
+
//#endregion
|
|
34
95
|
//#region src/commands/lib/distribute.ts
|
|
35
96
|
const SKILLS_SRC = path.join(PACKAGE_ROOT, "skills");
|
|
36
97
|
const WORKFLOWS_SRC = path.join(PACKAGE_ROOT, "templates", "workflows");
|
|
37
|
-
const CONFIG_SRC = path.join(PACKAGE_ROOT, "templates", "config");
|
|
38
98
|
function copyDirectoryRecursive(srcDir, destDir) {
|
|
39
99
|
let copied = 0;
|
|
40
100
|
for (const entry of fs.readdirSync(srcDir, { withFileTypes: true })) {
|
|
@@ -95,22 +155,6 @@ function copyWorkflows(cwd) {
|
|
|
95
155
|
removed: 0
|
|
96
156
|
};
|
|
97
157
|
}
|
|
98
|
-
function copyConfigs(cwd) {
|
|
99
|
-
if (!fs.existsSync(CONFIG_SRC)) return {
|
|
100
|
-
copied: 0,
|
|
101
|
-
removed: 0
|
|
102
|
-
};
|
|
103
|
-
let copied = 0;
|
|
104
|
-
for (const entry of fs.readdirSync(CONFIG_SRC)) {
|
|
105
|
-
const destPath = path.join(cwd, entry);
|
|
106
|
-
fs.copyFileSync(path.join(CONFIG_SRC, entry), destPath);
|
|
107
|
-
copied++;
|
|
108
|
-
}
|
|
109
|
-
return {
|
|
110
|
-
copied,
|
|
111
|
-
removed: 0
|
|
112
|
-
};
|
|
113
|
-
}
|
|
114
158
|
function createSymlink(target, linkPath) {
|
|
115
159
|
const type = process.platform === "win32" ? "junction" : void 0;
|
|
116
160
|
const resolvedTarget = type === "junction" ? path.resolve(path.dirname(linkPath), target) : target;
|
|
@@ -179,7 +223,7 @@ function isAlreadyInitialized(cwd) {
|
|
|
179
223
|
}
|
|
180
224
|
//#endregion
|
|
181
225
|
//#region src/commands/init.ts
|
|
182
|
-
function runInit(cwd) {
|
|
226
|
+
function runInit(name, cwd) {
|
|
183
227
|
console.log(chalk.bold("erp-kit init\n"));
|
|
184
228
|
if (isAlreadyInitialized(cwd)) {
|
|
185
229
|
console.log(chalk.yellow("Already initialized. Use `erp-kit update` to refresh framework resources."));
|
|
@@ -193,8 +237,8 @@ function runInit(cwd) {
|
|
|
193
237
|
else if (symlink === "skipped_directory") console.log(chalk.yellow(" Skipped .claude/skills (directory exists, not a symlink)"));
|
|
194
238
|
const workflows = copyWorkflows(cwd);
|
|
195
239
|
if (workflows.copied > 0) console.log(chalk.green(` Copied ${workflows.copied} workflow(s) to .github/workflows/`));
|
|
196
|
-
|
|
197
|
-
|
|
240
|
+
scaffoldProjectBoilerplate(cwd, name);
|
|
241
|
+
console.log(chalk.green(" Scaffolded project structure"));
|
|
198
242
|
console.log(chalk.bold.green("\nDone! Run `erp-kit check` to validate your docs."));
|
|
199
243
|
return 0;
|
|
200
244
|
}
|
|
@@ -1176,54 +1220,6 @@ function renderStub(type, name, testCases) {
|
|
|
1176
1220
|
return templates[type].render(name);
|
|
1177
1221
|
}
|
|
1178
1222
|
//#endregion
|
|
1179
|
-
//#region src/generator/scaffold.ts
|
|
1180
|
-
function copyTemplateDir(srcDir, destDir, replacements, placeholderFiles) {
|
|
1181
|
-
for (const entry of fs.readdirSync(srcDir, { withFileTypes: true })) {
|
|
1182
|
-
const srcPath = path.join(srcDir, entry.name);
|
|
1183
|
-
const destName = entry.name === "__dot__gitignore" ? ".gitignore" : entry.name;
|
|
1184
|
-
const destPath = path.join(destDir, destName);
|
|
1185
|
-
if (entry.name === "node_modules") continue;
|
|
1186
|
-
if (entry.isDirectory()) {
|
|
1187
|
-
fs.mkdirSync(destPath, { recursive: true });
|
|
1188
|
-
copyTemplateDir(srcPath, destPath, replacements, placeholderFiles);
|
|
1189
|
-
} else {
|
|
1190
|
-
if (fs.existsSync(destPath)) continue;
|
|
1191
|
-
fs.mkdirSync(path.dirname(destPath), { recursive: true });
|
|
1192
|
-
if (placeholderFiles.has(entry.name)) {
|
|
1193
|
-
let content = fs.readFileSync(srcPath, "utf-8");
|
|
1194
|
-
for (const [from, to] of Object.entries(replacements)) content = content.replaceAll(from, to);
|
|
1195
|
-
fs.writeFileSync(destPath, content);
|
|
1196
|
-
} else fs.copyFileSync(srcPath, destPath);
|
|
1197
|
-
}
|
|
1198
|
-
}
|
|
1199
|
-
}
|
|
1200
|
-
function scaffoldModuleBoilerplate(moduleDir, moduleName) {
|
|
1201
|
-
const templateDir = path.join(PACKAGE_ROOT, "templates", "scaffold", "module");
|
|
1202
|
-
const erpKitVersion = readErpKitVersion();
|
|
1203
|
-
copyTemplateDir(templateDir, moduleDir, {
|
|
1204
|
-
"template-module": moduleName,
|
|
1205
|
-
"\"workspace:*\"": `"${erpKitVersion}"`
|
|
1206
|
-
}, new Set([
|
|
1207
|
-
"package.json",
|
|
1208
|
-
"permissions.ts",
|
|
1209
|
-
"tailor.config.ts"
|
|
1210
|
-
]));
|
|
1211
|
-
}
|
|
1212
|
-
function scaffoldAppBoilerplate(appDir, appName) {
|
|
1213
|
-
const templateDir = path.join(PACKAGE_ROOT, "templates", "scaffold", "app");
|
|
1214
|
-
const erpKitVersion = readErpKitVersion();
|
|
1215
|
-
copyTemplateDir(templateDir, appDir, {
|
|
1216
|
-
"template-app-frontend": `${appName}-frontend`,
|
|
1217
|
-
"template-app-backend": appName,
|
|
1218
|
-
"template-app": appName,
|
|
1219
|
-
"\"workspace:*\"": `"${erpKitVersion}"`
|
|
1220
|
-
}, new Set([
|
|
1221
|
-
"package.json",
|
|
1222
|
-
"tailor.config.ts",
|
|
1223
|
-
"index.html"
|
|
1224
|
-
]));
|
|
1225
|
-
}
|
|
1226
|
-
//#endregion
|
|
1227
1223
|
//#region src/generator/generate-code.ts
|
|
1228
1224
|
function runGenerateCode(modulePath, moduleName) {
|
|
1229
1225
|
scaffoldModuleBoilerplate(modulePath, moduleName);
|
|
@@ -3085,9 +3081,13 @@ runMain(defineCommand({
|
|
|
3085
3081
|
init: defineCommand({
|
|
3086
3082
|
name: "init",
|
|
3087
3083
|
description: "First-time setup for a consumer repo",
|
|
3088
|
-
|
|
3084
|
+
args: z.object({ name: arg(z.string(), {
|
|
3085
|
+
positional: true,
|
|
3086
|
+
description: "Project name"
|
|
3087
|
+
}) }),
|
|
3088
|
+
run: (args) => {
|
|
3089
3089
|
return executeCommand(() => {
|
|
3090
|
-
const exitCode = runInit(cwd);
|
|
3090
|
+
const exitCode = runInit(args.name, cwd);
|
|
3091
3091
|
return exitCode === 0 ? success() : silentFailure(exitCode);
|
|
3092
3092
|
});
|
|
3093
3093
|
}
|
package/package.json
CHANGED
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: erp-kit-app-1-requirements
|
|
3
3
|
description: Create Tier 1-2 documentation (requirements, actors, business-flow) for an application. Use when starting a new application or documenting high-level requirements and workflows.
|
|
4
|
+
metadata:
|
|
5
|
+
erp-kit-version: "0.9.0"
|
|
4
6
|
---
|
|
5
7
|
|
|
6
8
|
# Application Requirement Analysis Workflow
|
|
7
9
|
|
|
8
10
|
Create Tier 1-2 documentation: Requirements, Actors, and Business Flows.
|
|
9
11
|
|
|
12
|
+
## Version Check
|
|
13
|
+
|
|
14
|
+
Run `npx erp-kit --version` and compare against this skill's `metadata.erp-kit-version`. If they differ, the local skills are outdated — tell the user to run `pnpm erp-kit update skills` and stop.
|
|
15
|
+
|
|
10
16
|
## Progress Logging
|
|
11
17
|
|
|
12
18
|
Log to the audit trail at every checkpoint. See [erp-kit-app-shared/references/progress-protocol.md](../erp-kit-app-shared/references/progress-protocol.md) for the full protocol.
|
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: erp-kit-app-2-requirements-review
|
|
3
3
|
description: Review requirements quality and documentation consistency for applications. Use after creating Tier 1-2 documentation (requirements, actors, business-flow) with erp-kit-app-1-requirements.
|
|
4
|
+
metadata:
|
|
5
|
+
erp-kit-version: "0.9.0"
|
|
4
6
|
---
|
|
5
7
|
|
|
6
8
|
# Requirements Review
|
|
7
9
|
|
|
8
10
|
Review **requirements quality** and **documentation consistency** for an application's Tier 1-2 documentation.
|
|
9
11
|
|
|
12
|
+
## Version Check
|
|
13
|
+
|
|
14
|
+
Run `npx erp-kit --version` and compare against this skill's `metadata.erp-kit-version`. If they differ, the local skills are outdated — tell the user to run `pnpm erp-kit update skills` and stop.
|
|
15
|
+
|
|
10
16
|
## Progress Logging
|
|
11
17
|
|
|
12
18
|
Log to the audit trail at every checkpoint. See [erp-kit-app-shared/references/progress-protocol.md](../erp-kit-app-shared/references/progress-protocol.md) for the full protocol.
|
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: erp-kit-app-3-plan
|
|
3
3
|
description: Create Tier 3-4 documentation (screens, resolvers) by breaking down business flows and existing stories. Use after completing requirements review with erp-kit-app-2-requirements-review.
|
|
4
|
+
metadata:
|
|
5
|
+
erp-kit-version: "0.9.0"
|
|
4
6
|
---
|
|
5
7
|
|
|
6
8
|
# Business Flow Breakdown to Stories, Screens, and Resolvers
|
|
7
9
|
|
|
8
10
|
Convert Tier 2 business flows and stories into Tier 3 (screens) and Tier 4 (resolvers) documentation using parallel extraction agents.
|
|
9
11
|
|
|
12
|
+
## Version Check
|
|
13
|
+
|
|
14
|
+
Run `npx erp-kit --version` and compare against this skill's `metadata.erp-kit-version`. If they differ, the local skills are outdated — tell the user to run `pnpm erp-kit update skills` and stop.
|
|
15
|
+
|
|
10
16
|
## Progress Logging
|
|
11
17
|
|
|
12
18
|
Log to the audit trail at every checkpoint. See [erp-kit-app-shared/references/progress-protocol.md](../erp-kit-app-shared/references/progress-protocol.md) for the full protocol.
|
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: erp-kit-app-4-plan-review
|
|
3
3
|
description: Review parity between Tier 2 (business flows, actors, stories) and Tier 3-4 (screens, resolvers). Use after creating plan documentation with erp-kit-app-3-plan to validate completeness.
|
|
4
|
+
metadata:
|
|
5
|
+
erp-kit-version: "0.9.0"
|
|
4
6
|
---
|
|
5
7
|
|
|
6
8
|
# Documentation Parity Review
|
|
7
9
|
|
|
8
10
|
Review **documentation consistency** across Tier 2 (business flows, actors, stories), Tier 3 (screens), and Tier 4 (resolvers) documentation.
|
|
9
11
|
|
|
12
|
+
## Version Check
|
|
13
|
+
|
|
14
|
+
Run `npx erp-kit --version` and compare against this skill's `metadata.erp-kit-version`. If they differ, the local skills are outdated — tell the user to run `pnpm erp-kit update skills` and stop.
|
|
15
|
+
|
|
10
16
|
## Progress Logging
|
|
11
17
|
|
|
12
18
|
Log to the audit trail at every checkpoint. See [erp-kit-app-shared/references/progress-protocol.md](../erp-kit-app-shared/references/progress-protocol.md) for the full protocol.
|
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: erp-kit-app-5-impl-backend
|
|
3
3
|
description: Implement backend code for applications using erp-kit modules. Use after completing plan review with erp-kit-app-4-plan-review. Triggers when implementing backend resolvers, wiring modules, configuring applications, or when the user mentions implementing backend, writing resolvers, or connecting erp-kit modules.
|
|
4
|
+
metadata:
|
|
5
|
+
erp-kit-version: "0.9.0"
|
|
4
6
|
---
|
|
5
7
|
|
|
6
8
|
# Application Backend Implementation
|
|
7
9
|
|
|
8
10
|
Implement backend resolvers and application configuration for an application, driven by Tier 1-4 documentation (actors, business flows, stories, screens, resolvers).
|
|
9
11
|
|
|
12
|
+
## Version Check
|
|
13
|
+
|
|
14
|
+
Run `npx erp-kit --version` and compare against this skill's `metadata.erp-kit-version`. If they differ, the local skills are outdated — tell the user to run `pnpm erp-kit update skills` and stop.
|
|
15
|
+
|
|
10
16
|
## Progress Logging
|
|
11
17
|
|
|
12
18
|
Log to the audit trail at every checkpoint. See [erp-kit-app-shared/references/progress-protocol.md](../erp-kit-app-shared/references/progress-protocol.md) for the full protocol.
|
|
@@ -67,17 +73,17 @@ Classify resolvers per [erp-kit-app-shared/references/resolver-classification.md
|
|
|
67
73
|
|
|
68
74
|
When implementing in Phase 4, follow the patterns from the reference examples. Once all actual resolvers are implemented, delete the reference files that aren't needed by your app.
|
|
69
75
|
|
|
70
|
-
### Phase 2: Wire Modules (`src/modules.ts`)
|
|
76
|
+
### Phase 2: Wire Modules (`src/modules.ts` + `src/modules-db.ts`)
|
|
71
77
|
|
|
72
|
-
Create the module wiring
|
|
78
|
+
Create the module wiring files that compose all required erp-kit modules.
|
|
73
79
|
|
|
74
80
|
**Read [module wiring reference](references/module-wiring.md) for the composition pattern.**
|
|
75
81
|
|
|
76
82
|
Key points:
|
|
77
83
|
|
|
78
|
-
- Use `defineXxxModule()` functions from `@tailor-platform/erp-kit/module`
|
|
84
|
+
- `modules.ts` — Use `defineXxxModule()` functions from `@tailor-platform/erp-kit/module` and export module objects for resolver use
|
|
85
|
+
- `modules-db.ts` — Destructure DB types into individual named exports for the DB scanner. This file must NOT be imported by resolvers.
|
|
79
86
|
- Pass inter-module dependencies explicitly (e.g., item-management needs primitives' unit type and query)
|
|
80
|
-
- Export `db`, `commands`, and `executors` for use in resolvers
|
|
81
87
|
|
|
82
88
|
### Phase 3: Configure Application (`tailor.config.ts`)
|
|
83
89
|
|
|
@@ -109,7 +115,7 @@ After resolvers are done, implement the story integration test stubs generated i
|
|
|
109
115
|
> - `src/resolvers/<resolverName>.ts`
|
|
110
116
|
> - `src/executors/<resolverName>.ts`
|
|
111
117
|
>
|
|
112
|
-
> **Shared-file guard:** `src/modules.ts` and `tailor.config.ts` are written in the sync barrier phase above. Resolver agents must NOT modify these files.
|
|
118
|
+
> **Shared-file guard:** `src/modules.ts`, `src/modules-db.ts`, and `tailor.config.ts` are written in the sync barrier phase above. Resolver agents must NOT modify these files.
|
|
113
119
|
|
|
114
120
|
### Phase 5: Generated Files
|
|
115
121
|
|
|
@@ -117,6 +123,7 @@ After resolvers are done, implement the story integration test stubs generated i
|
|
|
117
123
|
- **Seed data** (`seed/`) — `exec.mjs` runner + `data/*.jsonl` (records) and `data/*.schema.ts` (validation).
|
|
118
124
|
1. **Module seed** — Run `pnpm erp-kit app generate seed -p <app-path>` to generate module-provided defaults (currencies, units, UoM categories, exchange rates). This writes JSONL files to `seed/data/`, skipping files that already exist.
|
|
119
125
|
2. **App-specific seed** — Manually create seed records for permissions, roles, test users, and domain-specific data. Seeded users must have concrete permission keys required by the wired modules.
|
|
126
|
+
3. **Validate seed** — Run `pnpm run seed:validate` and fix any errors before proceeding.
|
|
120
127
|
|
|
121
128
|
### Phase 6: Deploy Backend & Next Steps
|
|
122
129
|
|
|
@@ -11,7 +11,7 @@ Key points:
|
|
|
11
11
|
## Auth configuration
|
|
12
12
|
|
|
13
13
|
- Prefer stable default naming: auth `default`, IdP `default`, OAuth2 client `default`
|
|
14
|
-
- `userProfile.type` must reference the `user` DB type from `modules
|
|
14
|
+
- `userProfile.type` must reference the `user` DB type from `modules-db`
|
|
15
15
|
- `userProfile.usernameField`: stable unique field (e.g., `email`)
|
|
16
16
|
- Include static website URL and localhost in CORS: `cors: ["http://localhost:5173", website.url]`
|
|
17
17
|
- Frontend `VITE_TAILOR_CLIENT_ID` must come from `tailor-sdk oauth2client get default --json` — do not hardcode
|
|
@@ -1,17 +1,23 @@
|
|
|
1
1
|
# Module Wiring
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Module wiring is split across two files:
|
|
4
|
+
|
|
5
|
+
- `src/modules.ts` — composes erp-kit modules and exports module objects for resolver use
|
|
6
|
+
- `src/modules-db.ts` — destructures DB types into individual named exports for the DB scanner (`tailor.config.ts` db.files)
|
|
7
|
+
|
|
8
|
+
### `src/modules.ts`
|
|
4
9
|
|
|
5
10
|
```ts
|
|
6
11
|
import {
|
|
7
12
|
definePrimitivesModule,
|
|
8
13
|
defineUserManagementModule,
|
|
9
14
|
defineItemManagementModule,
|
|
15
|
+
defineAuditModule,
|
|
10
16
|
} from "@tailor-platform/erp-kit/module";
|
|
11
17
|
|
|
12
18
|
const primitivesModules = definePrimitivesModule({});
|
|
13
19
|
|
|
14
|
-
const umModules = defineUserManagementModule({
|
|
20
|
+
export const umModules = defineUserManagementModule({
|
|
15
21
|
dbNamespace: "main-db",
|
|
16
22
|
user: {
|
|
17
23
|
fields: {
|
|
@@ -22,26 +28,45 @@ const umModules = defineUserManagementModule({
|
|
|
22
28
|
});
|
|
23
29
|
|
|
24
30
|
// Pass inter-module dependencies explicitly
|
|
25
|
-
const imModules = defineItemManagementModule({
|
|
31
|
+
export const imModules = defineItemManagementModule({
|
|
26
32
|
primitives: {
|
|
27
33
|
db: { unit: primitivesModules.db.unit },
|
|
28
34
|
queries: { getUnit: primitivesModules.queries.getUnit },
|
|
29
35
|
},
|
|
30
36
|
});
|
|
31
37
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
export const
|
|
38
|
+
export const auditModules = defineAuditModule();
|
|
39
|
+
|
|
40
|
+
export const primitivesModulesExport = primitivesModules;
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### `src/modules-db.ts`
|
|
44
|
+
|
|
45
|
+
```ts
|
|
46
|
+
import { auditCompanyStub } from "@tailor-platform/erp-kit/module";
|
|
47
|
+
import { umModules, imModules, primitivesModulesExport, auditModules } from "./modules";
|
|
48
|
+
|
|
49
|
+
// Destructured for DB scanner (tailor.config.ts db.files).
|
|
50
|
+
// This file must NOT be imported by resolvers — property access prevents tree-shaking.
|
|
51
|
+
|
|
52
|
+
// user-management
|
|
53
|
+
export const { user, permission, role, userRole, rolePermission } = umModules.db;
|
|
54
|
+
|
|
55
|
+
// primitives
|
|
56
|
+
export const { uomCategory, unit, currency, exchangeRate } = primitivesModulesExport.db;
|
|
35
57
|
|
|
36
|
-
|
|
37
|
-
export const {
|
|
58
|
+
// item-management
|
|
59
|
+
export const { item, taxonomyNode, itemTaxonomyAssignment } = imModules.db;
|
|
38
60
|
|
|
39
|
-
|
|
40
|
-
export const {
|
|
61
|
+
// audit
|
|
62
|
+
export const { auditableEntity, auditPolicy, policyFieldRule, auditEntry, changeDetail } =
|
|
63
|
+
auditModules.db;
|
|
64
|
+
export { auditCompanyStub as company };
|
|
41
65
|
```
|
|
42
66
|
|
|
43
67
|
Key conventions:
|
|
44
68
|
|
|
45
|
-
- Prefix exports to avoid collisions (`
|
|
46
|
-
-
|
|
69
|
+
- Prefix exports to avoid collisions (`umModules`, `imModules`, `auditModules`)
|
|
70
|
+
- `modules-db.ts` must NOT be imported by resolvers — it exists solely for the DB scanner
|
|
71
|
+
- Every module's `db` must be destructured into individual table exports in `modules-db.ts` — the DB scanner only picks up named exports
|
|
47
72
|
- Extract individual executors for re-export in executor files
|
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: erp-kit-app-6-impl-frontend
|
|
3
3
|
description: Implement frontend code for applications. Use after deploying the backend with erp-kit-app-5-impl-backend. Triggers when implementing frontend pages, creating React components from screen specs, or when the user mentions implementing frontend, creating pages, or building UI for an application.
|
|
4
|
+
metadata:
|
|
5
|
+
erp-kit-version: "0.9.0"
|
|
4
6
|
---
|
|
5
7
|
|
|
6
8
|
# Application Frontend Implementation
|
|
7
9
|
|
|
8
10
|
Implement frontend pages for an application, driven by screen spec documentation and a deployed backend.
|
|
9
11
|
|
|
12
|
+
## Version Check
|
|
13
|
+
|
|
14
|
+
Run `npx erp-kit --version` and compare against this skill's `metadata.erp-kit-version`. If they differ, the local skills are outdated — tell the user to run `pnpm erp-kit update skills` and stop.
|
|
15
|
+
|
|
10
16
|
## Progress Logging
|
|
11
17
|
|
|
12
18
|
Log to the audit trail at every checkpoint. See [erp-kit-app-shared/references/progress-protocol.md](../erp-kit-app-shared/references/progress-protocol.md) for the full protocol.
|
|
@@ -76,6 +82,8 @@ Create pages driven by screen spec docs. Each screen type has a standard impleme
|
|
|
76
82
|
|
|
77
83
|
**Read [pages reference](references/pages.md) for the full pattern catalog.**
|
|
78
84
|
|
|
85
|
+
**Read [app-shell UI cheat sheet](references/component.md)** for `@tailor-platform/app-shell` primitives (Layout, Button, Table, dialogs, Menu, Select, Combobox, Autocomplete, etc.).
|
|
86
|
+
|
|
79
87
|
Page types and their file structure:
|
|
80
88
|
|
|
81
89
|
| Screen Type | Files |
|
|
@@ -91,7 +99,7 @@ Key frontend patterns:
|
|
|
91
99
|
- **gql.tada** — Type-safe GraphQL via `graphql()` from `@/graphql`
|
|
92
100
|
- **React Hook Form + Zod** — Form validation with `zodResolver`
|
|
93
101
|
- **urql** — `useQuery` for reads, `useMutation` for writes
|
|
94
|
-
- **app-shell
|
|
102
|
+
- **app-shell** — Routing: `Layout`, `Link`, `useParams`, `useNavigate`. UI: see [references/component.md](references/component.md) for primitives (`Button`, `Input`, `Table`, dialogs, menus, selects, etc.)
|
|
95
103
|
|
|
96
104
|
### Phase 4: Verify
|
|
97
105
|
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
# @tailor-platform/app-shell — UI cheat sheet
|
|
2
|
+
|
|
3
|
+
Import from `@tailor-platform/app-shell` instead of duplicating shadcn-style `components/ui` when possible. Details: [app-shell docs/components](https://raw.github.com/tailor-platform/app-shell/tree/main/docs/components).
|
|
4
|
+
|
|
5
|
+
## Layout
|
|
6
|
+
|
|
7
|
+
- **`Layout`** — `title` / `actions` / `columns` still work; prefer **`Layout.Header`** (`title`, `actions`, children e.g. tabs) + **`Layout.Column`**.
|
|
8
|
+
- **`Layout.Column` `area`** — `"left" | "main" | "right"` for sidebar + main + rail; use `className` on `Layout` for gap (`columns` / `gap` deprecated).
|
|
9
|
+
|
|
10
|
+
## ActionPanel
|
|
11
|
+
|
|
12
|
+
`actions={[{ key, label, icon, onClick, disabled?, loading? }]}` — icon + label rows; use `useNavigate` inside `onClick` for routing.
|
|
13
|
+
|
|
14
|
+
## Routing helpers
|
|
15
|
+
|
|
16
|
+
`Link`, `useNavigate`, `useParams` — same package.
|
|
17
|
+
|
|
18
|
+
## DescriptionCard
|
|
19
|
+
|
|
20
|
+
Detail screens: **`data`** + **`fields`** render a responsive key/value grid.
|
|
21
|
+
|
|
22
|
+
| Prop | Notes |
|
|
23
|
+
| --------------------- | ---------------------------------------------------------------------- |
|
|
24
|
+
| `data` | `Record<string, unknown>` — values (dot keys OK, e.g. `customer.name`) |
|
|
25
|
+
| `fields` | `FieldConfig[]` — each field or `{ type: "divider" }` |
|
|
26
|
+
| `columns` | `2` \| `3` (default) \| `4` |
|
|
27
|
+
| `className` / `style` | Card container |
|
|
28
|
+
|
|
29
|
+
**Field config** — `key`, `label`, optional `type`, `meta`, `emptyBehavior` (`"dash"` \| `"hide"`).
|
|
30
|
+
|
|
31
|
+
| `type` (default `text`) | Role / typical `meta` |
|
|
32
|
+
| ----------------------- | ------------------------------------------------------------- |
|
|
33
|
+
| **text** | `copyable`, `truncateLines` |
|
|
34
|
+
| **badge** | `badgeVariantMap: { [value]: variant }` |
|
|
35
|
+
| **money** | `currencyKey` — key in `data` for ISO currency code |
|
|
36
|
+
| **date** | `dateFormat`: `short` \| `medium` \| `long` \| `relative` |
|
|
37
|
+
| **link** | `hrefKey`, `external?` |
|
|
38
|
+
| **address** | Value = `{ street, city, state, zip, … }` object |
|
|
39
|
+
| **reference** | `referenceIdKey`, `referenceUrlPattern` e.g. `/invoices/{id}` |
|
|
40
|
+
|
|
41
|
+
## Button / Link
|
|
42
|
+
|
|
43
|
+
Use **`render`**, not Radix `asChild`:
|
|
44
|
+
|
|
45
|
+
```tsx
|
|
46
|
+
<Button render={<Link to="create" />}>Create</Button>
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Variants: `default` | `destructive` | `outline` | `secondary` | `ghost` | `link`. Sizes: `default` | `sm` | `lg` | `icon`.
|
|
50
|
+
|
|
51
|
+
## Input
|
|
52
|
+
|
|
53
|
+
Native input props; works with RHF `FormControl` + spread `field`.
|
|
54
|
+
|
|
55
|
+
## Table
|
|
56
|
+
|
|
57
|
+
```tsx
|
|
58
|
+
<Table.Root>
|
|
59
|
+
<Table.Header>
|
|
60
|
+
<Table.Row>
|
|
61
|
+
<Table.Head />
|
|
62
|
+
</Table.Row>
|
|
63
|
+
</Table.Header>
|
|
64
|
+
<Table.Body>
|
|
65
|
+
<Table.Row>
|
|
66
|
+
<Table.Cell />
|
|
67
|
+
</Table.Row>
|
|
68
|
+
</Table.Body>
|
|
69
|
+
</Table.Root>
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Also `Footer`, `Caption`. Wrapper: `containerClassName`; inner table: `className`.
|
|
73
|
+
|
|
74
|
+
## Dialog / Sheet / Tooltip
|
|
75
|
+
|
|
76
|
+
Compound `*.Root`, `*.Content`, etc. Triggers: **`render={<Button />}`** (or `Link` pattern as needed).
|
|
77
|
+
|
|
78
|
+
## Menu
|
|
79
|
+
|
|
80
|
+
`Menu.Root` → `Trigger` → `Content` → `Item` / `Separator` / checkbox & radio items; nested: `SubmenuRoot` / `SubmenuTrigger`.
|
|
81
|
+
|
|
82
|
+
## Select / Combobox / Autocomplete
|
|
83
|
+
|
|
84
|
+
| Component | Use case | Extras |
|
|
85
|
+
| ---------------- | ----------------------------------------- | -------------------------------- |
|
|
86
|
+
| **Select** | `items`, `placeholder`, `onValueChange` | `Select.Async` |
|
|
87
|
+
| **Combobox** | Searchable; `items`; multi / creatable | `Combobox.Async`, `onCreateItem` |
|
|
88
|
+
| **Autocomplete** | Typed string + suggestions (value = text) | `Autocomplete.Async` |
|
|
89
|
+
|
|
90
|
+
**`.Parts`** on each — low-level `Root`, `Trigger`, `Content`, …; hooks `useFilter`, `useAsync`, `useCreatable` for custom UIs.
|