@tailor-platform/erp-kit 0.4.1 → 0.5.1
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 +36 -0
- package/README.md +12 -12
- package/dist/cli.mjs +503 -32
- package/package.json +2 -11
- package/skills/erp-kit-app-2-requirements-review/SKILL.md +2 -2
- package/skills/erp-kit-app-2-requirements-review/references/best-practices-check.md +1 -1
- package/skills/erp-kit-app-3-plan/references/resolver-extraction.md +6 -3
- package/skills/erp-kit-app-4-plan-review/SKILL.md +5 -3
- package/skills/erp-kit-app-4-plan-review/references/orphan-detection.md +3 -0
- package/skills/erp-kit-app-4-plan-review/references/story-resolver-parity.md +21 -3
- package/skills/erp-kit-app-5-impl-backend/SKILL.md +15 -4
- package/skills/erp-kit-app-6-impl-frontend/SKILL.md +8 -4
- package/skills/erp-kit-app-7-impl-review/SKILL.md +1 -1
- package/skills/erp-kit-app-shared/references/resolver-classification.md +3 -0
- package/skills/erp-kit-module-2-requirements-review/SKILL.md +3 -30
- package/skills/erp-kit-module-3-update-plan/SKILL.md +132 -0
- package/skills/erp-kit-module-3-update-plan/references/command-extraction.md +87 -0
- package/skills/erp-kit-module-3-update-plan/references/model-extraction.md +72 -0
- package/skills/erp-kit-module-3-update-plan/references/naming.md +73 -0
- package/skills/erp-kit-module-3-update-plan/references/query-extraction.md +59 -0
- package/skills/erp-kit-module-4-plan-review/SKILL.md +3 -69
- package/skills/erp-kit-module-5-impl/SKILL.md +1 -0
- package/skills/erp-kit-module-6-impl-review/SKILL.md +42 -120
- package/skills/erp-kit-module-6-impl-review/references/command-doc-test-parity.md +1 -1
- package/skills/erp-kit-module-6-impl-review/references/{error-implementation-parity.md → command-error-implementation-parity.md} +3 -3
- package/skills/erp-kit-module-6-impl-review/references/impl-parity-report-format.md +1 -1
- package/skills/erp-kit-module-6-impl-review/references/query-doc-code-parity.md +110 -0
- package/skills/erp-kit-module-6-impl-review/references/query-doc-test-parity.md +108 -0
- package/skills/erp-kit-module-6-impl-review/references/query-error-implementation-parity.md +100 -0
- package/src/commands/app/index.ts +18 -3
- package/src/commands/check.test.ts +1 -1
- package/src/commands/doc/module.ts +2 -3
- package/src/commands/doc/modules.test.ts +0 -7
- package/src/commands/doc/modules.ts +1 -2
- package/src/commands/doc/search.ts +1 -2
- package/src/commands/init-module.test.ts +17 -3
- package/src/commands/init-module.ts +0 -12
- package/src/commands/init.ts +4 -0
- package/src/commands/lib/distribute.test.ts +32 -1
- package/src/commands/lib/distribute.ts +47 -5
- package/src/commands/lib/sync-check-source.test.ts +1 -1
- package/src/commands/update.test.ts +16 -0
- package/src/commands/update.ts +4 -1
- package/src/generator/generate-code-boilerplate.test.ts +9 -1
- package/src/generator/generate-seed.ts +69 -0
- package/src/generator/scaffold.ts +6 -2
- package/src/mdschema.ts +39 -3
- package/src/module.ts +56 -0
- package/src/modules/business-partner/README.md +2 -2
- package/src/modules/inventory/README.md +65 -0
- package/src/modules/inventory/command/approveCountLine.generated.ts +6 -0
- package/src/modules/inventory/command/approveCountLine.test.ts +89 -0
- package/src/modules/inventory/command/approveCountLine.ts +68 -0
- package/src/modules/inventory/command/approveInventoryAdjustment.generated.ts +6 -0
- package/src/modules/inventory/command/approveInventoryAdjustment.test.ts +56 -0
- package/src/modules/inventory/command/approveInventoryAdjustment.ts +50 -0
- package/src/modules/inventory/command/assignSerialNumber.generated.ts +6 -0
- package/src/modules/inventory/command/assignSerialNumber.test.ts +133 -0
- package/src/modules/inventory/command/assignSerialNumber.ts +83 -0
- package/src/modules/inventory/command/cancelInventoryCount.generated.ts +6 -0
- package/src/modules/inventory/command/cancelInventoryCount.test.ts +114 -0
- package/src/modules/inventory/command/cancelInventoryCount.ts +62 -0
- package/src/modules/inventory/command/cancelStockMovement.generated.ts +6 -0
- package/src/modules/inventory/command/cancelStockMovement.test.ts +102 -0
- package/src/modules/inventory/command/cancelStockMovement.ts +56 -0
- package/src/modules/inventory/command/completeInventoryCount.generated.ts +6 -0
- package/src/modules/inventory/command/completeInventoryCount.test.ts +99 -0
- package/src/modules/inventory/command/completeInventoryCount.ts +70 -0
- package/src/modules/inventory/command/confirmInventoryAdjustment.generated.ts +6 -0
- package/src/modules/inventory/command/confirmInventoryAdjustment.test.ts +324 -0
- package/src/modules/inventory/command/confirmInventoryAdjustment.ts +194 -0
- package/src/modules/inventory/command/confirmStockMovement.generated.ts +6 -0
- package/src/modules/inventory/command/confirmStockMovement.test.ts +126 -0
- package/src/modules/inventory/command/confirmStockMovement.ts +131 -0
- package/src/modules/inventory/command/createInventoryAdjustment.generated.ts +6 -0
- package/src/modules/inventory/command/createInventoryAdjustment.test.ts +298 -0
- package/src/modules/inventory/command/createInventoryAdjustment.ts +124 -0
- package/src/modules/inventory/command/createInventoryCount.generated.ts +6 -0
- package/src/modules/inventory/command/createInventoryCount.test.ts +157 -0
- package/src/modules/inventory/command/createInventoryCount.ts +72 -0
- package/src/modules/inventory/command/createLot.generated.ts +6 -0
- package/src/modules/inventory/command/createLot.test.ts +106 -0
- package/src/modules/inventory/command/createLot.ts +72 -0
- package/src/modules/inventory/command/createStockMovement.generated.ts +6 -0
- package/src/modules/inventory/command/createStockMovement.test.ts +342 -0
- package/src/modules/inventory/command/createStockMovement.ts +172 -0
- package/src/modules/inventory/command/createStorageLocation.generated.ts +6 -0
- package/src/modules/inventory/command/createStorageLocation.test.ts +246 -0
- package/src/modules/inventory/command/createStorageLocation.ts +126 -0
- package/src/modules/inventory/command/createValuationPolicy.generated.ts +6 -0
- package/src/modules/inventory/command/createValuationPolicy.test.ts +75 -0
- package/src/modules/inventory/command/createValuationPolicy.ts +52 -0
- package/src/modules/inventory/command/createWarehouse.generated.ts +6 -0
- package/src/modules/inventory/command/createWarehouse.test.ts +143 -0
- package/src/modules/inventory/command/createWarehouse.ts +76 -0
- package/src/modules/inventory/command/deactivateStorageLocation.generated.ts +6 -0
- package/src/modules/inventory/command/deactivateStorageLocation.test.ts +69 -0
- package/src/modules/inventory/command/deactivateStorageLocation.ts +51 -0
- package/src/modules/inventory/command/deactivateWarehouse.generated.ts +6 -0
- package/src/modules/inventory/command/deactivateWarehouse.test.ts +75 -0
- package/src/modules/inventory/command/deactivateWarehouse.ts +45 -0
- package/src/modules/inventory/command/executeStockMovement.generated.ts +6 -0
- package/src/modules/inventory/command/executeStockMovement.test.ts +502 -0
- package/src/modules/inventory/command/executeStockMovement.ts +303 -0
- package/src/modules/inventory/command/reactivateStorageLocation.generated.ts +6 -0
- package/src/modules/inventory/command/reactivateStorageLocation.test.ts +78 -0
- package/src/modules/inventory/command/reactivateStorageLocation.ts +63 -0
- package/src/modules/inventory/command/reactivateWarehouse.generated.ts +6 -0
- package/src/modules/inventory/command/reactivateWarehouse.test.ts +87 -0
- package/src/modules/inventory/command/reactivateWarehouse.ts +65 -0
- package/src/modules/inventory/command/recordCountLine.generated.ts +6 -0
- package/src/modules/inventory/command/recordCountLine.test.ts +211 -0
- package/src/modules/inventory/command/recordCountLine.ts +81 -0
- package/src/modules/inventory/command/rejectCountLine.generated.ts +6 -0
- package/src/modules/inventory/command/rejectCountLine.test.ts +66 -0
- package/src/modules/inventory/command/rejectCountLine.ts +50 -0
- package/src/modules/inventory/command/rejectInventoryAdjustment.generated.ts +6 -0
- package/src/modules/inventory/command/rejectInventoryAdjustment.test.ts +69 -0
- package/src/modules/inventory/command/rejectInventoryAdjustment.ts +50 -0
- package/src/modules/inventory/command/releaseReservation.generated.ts +6 -0
- package/src/modules/inventory/command/releaseReservation.test.ts +65 -0
- package/src/modules/inventory/command/releaseReservation.ts +50 -0
- package/src/modules/inventory/command/reserveStock.generated.ts +6 -0
- package/src/modules/inventory/command/reserveStock.test.ts +141 -0
- package/src/modules/inventory/command/reserveStock.ts +88 -0
- package/src/modules/inventory/command/reviseInventoryAdjustment.generated.ts +6 -0
- package/src/modules/inventory/command/reviseInventoryAdjustment.test.ts +68 -0
- package/src/modules/inventory/command/reviseInventoryAdjustment.ts +48 -0
- package/src/modules/inventory/command/startInventoryCount.generated.ts +6 -0
- package/src/modules/inventory/command/startInventoryCount.test.ts +100 -0
- package/src/modules/inventory/command/startInventoryCount.ts +90 -0
- package/src/modules/inventory/command/submitInventoryAdjustment.generated.ts +6 -0
- package/src/modules/inventory/command/submitInventoryAdjustment.test.ts +53 -0
- package/src/modules/inventory/command/submitInventoryAdjustment.ts +47 -0
- package/src/modules/inventory/command/updateLot.generated.ts +6 -0
- package/src/modules/inventory/command/updateLot.test.ts +88 -0
- package/src/modules/inventory/command/updateLot.ts +52 -0
- package/src/modules/inventory/command/updateStockMovement.generated.ts +6 -0
- package/src/modules/inventory/command/updateStockMovement.test.ts +250 -0
- package/src/modules/inventory/command/updateStockMovement.ts +164 -0
- package/src/modules/inventory/command/updateStorageLocation.generated.ts +6 -0
- package/src/modules/inventory/command/updateStorageLocation.test.ts +72 -0
- package/src/modules/inventory/command/updateStorageLocation.ts +77 -0
- package/src/modules/inventory/command/updateValuationPolicy.generated.ts +6 -0
- package/src/modules/inventory/command/updateValuationPolicy.test.ts +68 -0
- package/src/modules/inventory/command/updateValuationPolicy.ts +74 -0
- package/src/modules/inventory/command/updateWarehouse.generated.ts +6 -0
- package/src/modules/inventory/command/updateWarehouse.test.ts +88 -0
- package/src/modules/inventory/command/updateWarehouse.ts +64 -0
- package/src/modules/inventory/db/costLayer.ts +54 -0
- package/src/modules/inventory/db/inventoryAdjustment.ts +88 -0
- package/src/modules/inventory/db/inventoryCount.ts +58 -0
- package/src/modules/inventory/db/inventoryCountLine.ts +61 -0
- package/src/modules/inventory/db/itemValuation.ts +50 -0
- package/src/modules/inventory/db/lot.ts +51 -0
- package/src/modules/inventory/db/lotStockLevel.ts +48 -0
- package/src/modules/inventory/db/serialNumber.ts +53 -0
- package/src/modules/inventory/db/stockLevel.ts +51 -0
- package/src/modules/inventory/db/stockMoveLine.ts +78 -0
- package/src/modules/inventory/db/stockMovement.ts +48 -0
- package/src/modules/inventory/db/storageLocation.ts +56 -0
- package/src/modules/inventory/db/valuationPolicy.ts +33 -0
- package/src/modules/inventory/db/warehouse.ts +45 -0
- package/src/modules/inventory/docs/commands/ApproveCountLine.md +44 -0
- package/src/modules/inventory/docs/commands/ApproveInventoryAdjustment.md +37 -0
- package/src/modules/inventory/docs/commands/AssignSerialNumber.md +46 -0
- package/src/modules/inventory/docs/commands/CancelInventoryCount.md +49 -0
- package/src/modules/inventory/docs/commands/CancelStockMovement.md +44 -0
- package/src/modules/inventory/docs/commands/CompleteInventoryCount.md +47 -0
- package/src/modules/inventory/docs/commands/ConfirmInventoryAdjustment.md +72 -0
- package/src/modules/inventory/docs/commands/ConfirmStockMovement.md +43 -0
- package/src/modules/inventory/docs/commands/CreateInventoryAdjustment.md +75 -0
- package/src/modules/inventory/docs/commands/CreateInventoryCount.md +49 -0
- package/src/modules/inventory/docs/commands/CreateLot.md +40 -0
- package/src/modules/inventory/docs/commands/CreateStockMovement.md +76 -0
- package/src/modules/inventory/docs/commands/CreateStorageLocation.md +66 -0
- package/src/modules/inventory/docs/commands/CreateValuationPolicy.md +45 -0
- package/src/modules/inventory/docs/commands/CreateWarehouse.md +47 -0
- package/src/modules/inventory/docs/commands/DeactivateStorageLocation.md +39 -0
- package/src/modules/inventory/docs/commands/DeactivateWarehouse.md +38 -0
- package/src/modules/inventory/docs/commands/ExecuteStockMovement.md +82 -0
- package/src/modules/inventory/docs/commands/ReactivateStorageLocation.md +42 -0
- package/src/modules/inventory/docs/commands/ReactivateWarehouse.md +42 -0
- package/src/modules/inventory/docs/commands/RecordCountLine.md +52 -0
- package/src/modules/inventory/docs/commands/RejectCountLine.md +42 -0
- package/src/modules/inventory/docs/commands/RejectInventoryAdjustment.md +38 -0
- package/src/modules/inventory/docs/commands/ReleaseReservation.md +37 -0
- package/src/modules/inventory/docs/commands/ReserveStock.md +49 -0
- package/src/modules/inventory/docs/commands/ReviseInventoryAdjustment.md +38 -0
- package/src/modules/inventory/docs/commands/StartInventoryCount.md +47 -0
- package/src/modules/inventory/docs/commands/SubmitInventoryAdjustment.md +37 -0
- package/src/modules/inventory/docs/commands/UpdateLot.md +41 -0
- package/src/modules/inventory/docs/commands/UpdateStockMovement.md +45 -0
- package/src/modules/inventory/docs/commands/UpdateStorageLocation.md +41 -0
- package/src/modules/inventory/docs/commands/UpdateValuationPolicy.md +44 -0
- package/src/modules/inventory/docs/commands/UpdateWarehouse.md +42 -0
- package/src/modules/inventory/docs/features/inventory-adjustment.md +64 -0
- package/src/modules/inventory/docs/features/inventory-count.md +78 -0
- package/src/modules/inventory/docs/features/inventory-valuation.md +77 -0
- package/src/modules/inventory/docs/features/lot-and-batch-tracking.md +81 -0
- package/src/modules/inventory/docs/features/scrap-management.md +63 -0
- package/src/modules/inventory/docs/features/serial-number-tracking.md +68 -0
- package/src/modules/inventory/docs/features/stock-movement.md +72 -0
- package/src/modules/inventory/docs/features/stock-tracking.md +78 -0
- package/src/modules/inventory/docs/features/warehouse-management.md +97 -0
- package/src/modules/inventory/docs/models/CostLayer.md +37 -0
- package/src/modules/inventory/docs/models/InventoryAdjustment.md +69 -0
- package/src/modules/inventory/docs/models/InventoryCount.md +53 -0
- package/src/modules/inventory/docs/models/InventoryCountLine.md +53 -0
- package/src/modules/inventory/docs/models/ItemValuation.md +38 -0
- package/src/modules/inventory/docs/models/Lot.md +45 -0
- package/src/modules/inventory/docs/models/LotStockLevel.md +34 -0
- package/src/modules/inventory/docs/models/SerialNumber.md +53 -0
- package/src/modules/inventory/docs/models/StockLevel.md +41 -0
- package/src/modules/inventory/docs/models/StockMoveLine.md +44 -0
- package/src/modules/inventory/docs/models/StockMovement.md +52 -0
- package/src/modules/inventory/docs/models/StorageLocation.md +55 -0
- package/src/modules/inventory/docs/models/ValuationPolicy.md +38 -0
- package/src/modules/inventory/docs/models/Warehouse.md +50 -0
- package/src/modules/inventory/docs/queries/GetInventoryAdjustment.md +40 -0
- package/src/modules/inventory/docs/queries/GetInventoryCount.md +43 -0
- package/src/modules/inventory/docs/queries/GetItemValuation.md +42 -0
- package/src/modules/inventory/docs/queries/GetLot.md +42 -0
- package/src/modules/inventory/docs/queries/GetSerialNumber.md +43 -0
- package/src/modules/inventory/docs/queries/GetSerialNumberHistory.md +50 -0
- package/src/modules/inventory/docs/queries/GetStockLevel.md +42 -0
- package/src/modules/inventory/docs/queries/GetStockMovement.md +41 -0
- package/src/modules/inventory/docs/queries/GetStorageLocation.md +40 -0
- package/src/modules/inventory/docs/queries/GetValuationPolicy.md +38 -0
- package/src/modules/inventory/docs/queries/GetWarehouse.md +40 -0
- package/src/modules/inventory/docs/queries/GetWarehouseStockSummary.md +50 -0
- package/src/modules/inventory/docs/queries/ListCostLayers.md +49 -0
- package/src/modules/inventory/docs/queries/ListExpiringLots.md +51 -0
- package/src/modules/inventory/docs/queries/ListInventoryAdjustments.md +47 -0
- package/src/modules/inventory/docs/queries/ListInventoryCounts.md +57 -0
- package/src/modules/inventory/docs/queries/ListItemValuations.md +44 -0
- package/src/modules/inventory/docs/queries/ListLots.md +57 -0
- package/src/modules/inventory/docs/queries/ListSerialNumbers.md +44 -0
- package/src/modules/inventory/docs/queries/ListStockLevels.md +49 -0
- package/src/modules/inventory/docs/queries/ListStockMovements.md +47 -0
- package/src/modules/inventory/docs/queries/ListStorageLocations.md +47 -0
- package/src/modules/inventory/docs/queries/ListValuationPolicies.md +38 -0
- package/src/modules/inventory/docs/queries/ListWarehouses.md +42 -0
- package/src/modules/inventory/docs/queries/TraceLotBackward.md +46 -0
- package/src/modules/inventory/docs/queries/TraceLotForward.md +46 -0
- package/src/modules/inventory/executor/.gitkeep +0 -0
- package/src/modules/inventory/generated/.gitkeep +0 -0
- package/src/modules/inventory/generated/enums.ts +131 -0
- package/src/modules/inventory/generated/kysely-tailordb.ts +201 -0
- package/src/modules/inventory/index.ts +2 -0
- package/src/modules/inventory/lib/_db_deps.ts +17 -0
- package/src/modules/inventory/lib/errors.generated.ts +317 -0
- package/src/modules/inventory/lib/permissions.generated.ts +38 -0
- package/src/modules/inventory/lib/types.ts +92 -0
- package/src/modules/inventory/module.ts +202 -0
- package/src/modules/inventory/permissions.ts +3 -0
- package/src/modules/inventory/query/.gitkeep +0 -0
- package/src/modules/inventory/query/getInventoryAdjustment.generated.ts +5 -0
- package/src/modules/inventory/query/getInventoryAdjustment.test.ts +58 -0
- package/src/modules/inventory/query/getInventoryAdjustment.ts +16 -0
- package/src/modules/inventory/query/getInventoryCount.generated.ts +5 -0
- package/src/modules/inventory/query/getInventoryCount.test.ts +65 -0
- package/src/modules/inventory/query/getInventoryCount.ts +27 -0
- package/src/modules/inventory/query/getItemValuation.generated.ts +5 -0
- package/src/modules/inventory/query/getItemValuation.test.ts +72 -0
- package/src/modules/inventory/query/getItemValuation.ts +29 -0
- package/src/modules/inventory/query/getLot.generated.ts +5 -0
- package/src/modules/inventory/query/getLot.test.ts +62 -0
- package/src/modules/inventory/query/getLot.ts +28 -0
- package/src/modules/inventory/query/getSerialNumber.generated.ts +5 -0
- package/src/modules/inventory/query/getSerialNumber.test.ts +59 -0
- package/src/modules/inventory/query/getSerialNumber.ts +18 -0
- package/src/modules/inventory/query/getSerialNumberHistory.generated.ts +5 -0
- package/src/modules/inventory/query/getSerialNumberHistory.test.ts +80 -0
- package/src/modules/inventory/query/getSerialNumberHistory.ts +30 -0
- package/src/modules/inventory/query/getStockLevel.generated.ts +5 -0
- package/src/modules/inventory/query/getStockLevel.test.ts +70 -0
- package/src/modules/inventory/query/getStockLevel.ts +24 -0
- package/src/modules/inventory/query/getStockMovement.generated.ts +5 -0
- package/src/modules/inventory/query/getStockMovement.test.ts +62 -0
- package/src/modules/inventory/query/getStockMovement.ts +26 -0
- package/src/modules/inventory/query/getStorageLocation.generated.ts +5 -0
- package/src/modules/inventory/query/getStorageLocation.test.ts +54 -0
- package/src/modules/inventory/query/getStorageLocation.ts +26 -0
- package/src/modules/inventory/query/getValuationPolicy.generated.ts +5 -0
- package/src/modules/inventory/query/getValuationPolicy.test.ts +42 -0
- package/src/modules/inventory/query/getValuationPolicy.ts +16 -0
- package/src/modules/inventory/query/getWarehouse.generated.ts +5 -0
- package/src/modules/inventory/query/getWarehouse.test.ts +61 -0
- package/src/modules/inventory/query/getWarehouse.ts +26 -0
- package/src/modules/inventory/query/getWarehouseStockSummary.generated.ts +5 -0
- package/src/modules/inventory/query/getWarehouseStockSummary.test.ts +97 -0
- package/src/modules/inventory/query/getWarehouseStockSummary.ts +82 -0
- package/src/modules/inventory/query/listCostLayers.generated.ts +5 -0
- package/src/modules/inventory/query/listCostLayers.test.ts +58 -0
- package/src/modules/inventory/query/listCostLayers.ts +45 -0
- package/src/modules/inventory/query/listExpiringLots.generated.ts +5 -0
- package/src/modules/inventory/query/listExpiringLots.test.ts +70 -0
- package/src/modules/inventory/query/listExpiringLots.ts +74 -0
- package/src/modules/inventory/query/listInventoryAdjustments.generated.ts +5 -0
- package/src/modules/inventory/query/listInventoryAdjustments.test.ts +89 -0
- package/src/modules/inventory/query/listInventoryAdjustments.ts +59 -0
- package/src/modules/inventory/query/listInventoryCounts.generated.ts +5 -0
- package/src/modules/inventory/query/listInventoryCounts.test.ts +78 -0
- package/src/modules/inventory/query/listInventoryCounts.ts +55 -0
- package/src/modules/inventory/query/listItemValuations.generated.ts +5 -0
- package/src/modules/inventory/query/listItemValuations.test.ts +54 -0
- package/src/modules/inventory/query/listItemValuations.ts +39 -0
- package/src/modules/inventory/query/listLots.generated.ts +5 -0
- package/src/modules/inventory/query/listLots.test.ts +120 -0
- package/src/modules/inventory/query/listLots.ts +68 -0
- package/src/modules/inventory/query/listSerialNumbers.generated.ts +5 -0
- package/src/modules/inventory/query/listSerialNumbers.test.ts +58 -0
- package/src/modules/inventory/query/listSerialNumbers.ts +53 -0
- package/src/modules/inventory/query/listStockLevels.generated.ts +5 -0
- package/src/modules/inventory/query/listStockLevels.test.ts +73 -0
- package/src/modules/inventory/query/listStockLevels.ts +79 -0
- package/src/modules/inventory/query/listStockMovements.generated.ts +5 -0
- package/src/modules/inventory/query/listStockMovements.test.ts +98 -0
- package/src/modules/inventory/query/listStockMovements.ts +105 -0
- package/src/modules/inventory/query/listStorageLocations.generated.ts +5 -0
- package/src/modules/inventory/query/listStorageLocations.test.ts +70 -0
- package/src/modules/inventory/query/listStorageLocations.ts +53 -0
- package/src/modules/inventory/query/listValuationPolicies.generated.ts +5 -0
- package/src/modules/inventory/query/listValuationPolicies.test.ts +38 -0
- package/src/modules/inventory/query/listValuationPolicies.ts +39 -0
- package/src/modules/inventory/query/listWarehouses.generated.ts +5 -0
- package/src/modules/inventory/query/listWarehouses.test.ts +60 -0
- package/src/modules/inventory/query/listWarehouses.ts +39 -0
- package/src/modules/inventory/query/traceLotBackward.generated.ts +5 -0
- package/src/modules/inventory/query/traceLotBackward.test.ts +63 -0
- package/src/modules/inventory/query/traceLotBackward.ts +36 -0
- package/src/modules/inventory/query/traceLotForward.generated.ts +5 -0
- package/src/modules/inventory/query/traceLotForward.test.ts +63 -0
- package/src/modules/inventory/query/traceLotForward.ts +36 -0
- package/src/modules/inventory/tailor.config.ts +13 -0
- package/src/modules/inventory/tailor.d.ts +13 -0
- package/src/modules/inventory/testing/commandTestUtils.ts +29 -0
- package/src/modules/inventory/testing/fixtures.ts +412 -0
- package/src/modules/item-management/docs/models/{item.md → Item.md} +1 -1
- package/src/modules/primitives/seed/currencies.ts +22 -0
- package/src/modules/primitives/seed/exchangeRates.ts +22 -0
- package/src/modules/primitives/seed/index.ts +4 -0
- package/src/modules/primitives/seed/seed.test.ts +80 -0
- package/src/modules/primitives/seed/units.ts +62 -0
- package/src/modules/primitives/seed/uomCategories.ts +24 -0
- package/src/modules/purchase/README.md +63 -0
- package/src/modules/purchase/command/.gitkeep +0 -0
- package/src/modules/purchase/command/activatePurchasePaymentTerm.generated.ts +6 -0
- package/src/modules/purchase/command/activatePurchasePaymentTerm.test.ts +53 -0
- package/src/modules/purchase/command/activatePurchasePaymentTerm.ts +39 -0
- package/src/modules/purchase/command/activatePurchasePriceList.generated.ts +6 -0
- package/src/modules/purchase/command/activatePurchasePriceList.test.ts +39 -0
- package/src/modules/purchase/command/activatePurchasePriceList.ts +32 -0
- package/src/modules/purchase/command/activatePurchasePriceRule.generated.ts +6 -0
- package/src/modules/purchase/command/activatePurchasePriceRule.test.ts +133 -0
- package/src/modules/purchase/command/activatePurchasePriceRule.ts +75 -0
- package/src/modules/purchase/command/approvePurchaseOrder.generated.ts +6 -0
- package/src/modules/purchase/command/approvePurchaseOrder.test.ts +161 -0
- package/src/modules/purchase/command/approvePurchaseOrder.ts +89 -0
- package/src/modules/purchase/command/cancelGoodsReceipt.generated.ts +6 -0
- package/src/modules/purchase/command/cancelGoodsReceipt.test.ts +37 -0
- package/src/modules/purchase/command/cancelGoodsReceipt.ts +29 -0
- package/src/modules/purchase/command/cancelPurchaseBill.generated.ts +6 -0
- package/src/modules/purchase/command/cancelPurchaseBill.test.ts +101 -0
- package/src/modules/purchase/command/cancelPurchaseBill.ts +84 -0
- package/src/modules/purchase/command/cancelPurchaseOrder.generated.ts +6 -0
- package/src/modules/purchase/command/cancelPurchaseOrder.test.ts +119 -0
- package/src/modules/purchase/command/cancelPurchaseOrder.ts +65 -0
- package/src/modules/purchase/command/closePurchaseOrder.generated.ts +6 -0
- package/src/modules/purchase/command/closePurchaseOrder.test.ts +128 -0
- package/src/modules/purchase/command/closePurchaseOrder.ts +58 -0
- package/src/modules/purchase/command/createGoodsReceipt.generated.ts +6 -0
- package/src/modules/purchase/command/createGoodsReceipt.test.ts +233 -0
- package/src/modules/purchase/command/createGoodsReceipt.ts +93 -0
- package/src/modules/purchase/command/createPurchaseBill.generated.ts +6 -0
- package/src/modules/purchase/command/createPurchaseBill.test.ts +277 -0
- package/src/modules/purchase/command/createPurchaseBill.ts +107 -0
- package/src/modules/purchase/command/createPurchaseOrder.generated.ts +6 -0
- package/src/modules/purchase/command/createPurchaseOrder.test.ts +291 -0
- package/src/modules/purchase/command/createPurchaseOrder.ts +131 -0
- package/src/modules/purchase/command/createPurchasePaymentTerm.generated.ts +6 -0
- package/src/modules/purchase/command/createPurchasePaymentTerm.test.ts +140 -0
- package/src/modules/purchase/command/createPurchasePaymentTerm.ts +66 -0
- package/src/modules/purchase/command/createPurchasePriceList.generated.ts +6 -0
- package/src/modules/purchase/command/createPurchasePriceList.test.ts +108 -0
- package/src/modules/purchase/command/createPurchasePriceList.ts +63 -0
- package/src/modules/purchase/command/createPurchasePriceRule.generated.ts +6 -0
- package/src/modules/purchase/command/createPurchasePriceRule.test.ts +139 -0
- package/src/modules/purchase/command/createPurchasePriceRule.ts +95 -0
- package/src/modules/purchase/command/deactivatePurchasePaymentTerm.generated.ts +6 -0
- package/src/modules/purchase/command/deactivatePurchasePaymentTerm.test.ts +49 -0
- package/src/modules/purchase/command/deactivatePurchasePaymentTerm.ts +41 -0
- package/src/modules/purchase/command/deactivatePurchasePriceList.generated.ts +6 -0
- package/src/modules/purchase/command/deactivatePurchasePriceList.test.ts +50 -0
- package/src/modules/purchase/command/deactivatePurchasePriceList.ts +32 -0
- package/src/modules/purchase/command/deactivatePurchasePriceRule.generated.ts +6 -0
- package/src/modules/purchase/command/deactivatePurchasePriceRule.test.ts +50 -0
- package/src/modules/purchase/command/deactivatePurchasePriceRule.ts +32 -0
- package/src/modules/purchase/command/matchPurchaseBill.generated.ts +6 -0
- package/src/modules/purchase/command/matchPurchaseBill.test.ts +188 -0
- package/src/modules/purchase/command/matchPurchaseBill.ts +146 -0
- package/src/modules/purchase/command/postGoodsReceipt.generated.ts +6 -0
- package/src/modules/purchase/command/postGoodsReceipt.test.ts +210 -0
- package/src/modules/purchase/command/postGoodsReceipt.ts +143 -0
- package/src/modules/purchase/command/rejectPurchaseOrder.generated.ts +6 -0
- package/src/modules/purchase/command/rejectPurchaseOrder.test.ts +79 -0
- package/src/modules/purchase/command/rejectPurchaseOrder.ts +41 -0
- package/src/modules/purchase/command/releasePurchaseBill.generated.ts +6 -0
- package/src/modules/purchase/command/releasePurchaseBill.test.ts +94 -0
- package/src/modules/purchase/command/releasePurchaseBill.ts +111 -0
- package/src/modules/purchase/command/setSupplierDefaultPurchasePaymentTerm.generated.ts +6 -0
- package/src/modules/purchase/command/setSupplierDefaultPurchasePaymentTerm.test.ts +171 -0
- package/src/modules/purchase/command/setSupplierDefaultPurchasePaymentTerm.ts +90 -0
- package/src/modules/purchase/command/submitPurchaseOrder.generated.ts +6 -0
- package/src/modules/purchase/command/submitPurchaseOrder.test.ts +98 -0
- package/src/modules/purchase/command/submitPurchaseOrder.ts +73 -0
- package/src/modules/purchase/command/updateGoodsReceipt.generated.ts +6 -0
- package/src/modules/purchase/command/updateGoodsReceipt.test.ts +115 -0
- package/src/modules/purchase/command/updateGoodsReceipt.ts +73 -0
- package/src/modules/purchase/command/updatePurchaseBill.generated.ts +6 -0
- package/src/modules/purchase/command/updatePurchaseBill.test.ts +137 -0
- package/src/modules/purchase/command/updatePurchaseBill.ts +89 -0
- package/src/modules/purchase/command/updatePurchaseOrder.generated.ts +6 -0
- package/src/modules/purchase/command/updatePurchaseOrder.test.ts +195 -0
- package/src/modules/purchase/command/updatePurchaseOrder.ts +121 -0
- package/src/modules/purchase/command/updatePurchasePaymentTerm.generated.ts +6 -0
- package/src/modules/purchase/command/updatePurchasePaymentTerm.test.ts +154 -0
- package/src/modules/purchase/command/updatePurchasePaymentTerm.ts +73 -0
- package/src/modules/purchase/command/updatePurchasePriceList.generated.ts +6 -0
- package/src/modules/purchase/command/updatePurchasePriceList.test.ts +73 -0
- package/src/modules/purchase/command/updatePurchasePriceList.ts +55 -0
- package/src/modules/purchase/command/updatePurchasePriceRule.generated.ts +6 -0
- package/src/modules/purchase/command/updatePurchasePriceRule.test.ts +191 -0
- package/src/modules/purchase/command/updatePurchasePriceRule.ts +104 -0
- package/src/modules/purchase/db/.gitkeep +0 -0
- package/src/modules/purchase/db/goodsReceipt.ts +62 -0
- package/src/modules/purchase/db/purchaseBill.ts +74 -0
- package/src/modules/purchase/db/purchaseOrder.ts +100 -0
- package/src/modules/purchase/db/purchasePaymentTerm.ts +46 -0
- package/src/modules/purchase/db/purchasePriceList.ts +53 -0
- package/src/modules/purchase/db/purchasePriceRule.ts +74 -0
- package/src/modules/purchase/db/supplierProfile.ts +59 -0
- package/src/modules/purchase/docs/commands/ActivatePurchasePaymentTerm.md +39 -0
- package/src/modules/purchase/docs/commands/ActivatePurchasePriceList.md +37 -0
- package/src/modules/purchase/docs/commands/ActivatePurchasePriceRule.md +47 -0
- package/src/modules/purchase/docs/commands/ApprovePurchaseOrder.md +55 -0
- package/src/modules/purchase/docs/commands/CancelGoodsReceipt.md +39 -0
- package/src/modules/purchase/docs/commands/CancelPurchaseBill.md +49 -0
- package/src/modules/purchase/docs/commands/CancelPurchaseOrder.md +47 -0
- package/src/modules/purchase/docs/commands/ClosePurchaseOrder.md +49 -0
- package/src/modules/purchase/docs/commands/CreateGoodsReceipt.md +54 -0
- package/src/modules/purchase/docs/commands/CreatePurchaseBill.md +59 -0
- package/src/modules/purchase/docs/commands/CreatePurchaseOrder.md +66 -0
- package/src/modules/purchase/docs/commands/CreatePurchasePaymentTerm.md +52 -0
- package/src/modules/purchase/docs/commands/CreatePurchasePriceList.md +48 -0
- package/src/modules/purchase/docs/commands/CreatePurchasePriceRule.md +62 -0
- package/src/modules/purchase/docs/commands/DeactivatePurchasePaymentTerm.md +42 -0
- package/src/modules/purchase/docs/commands/DeactivatePurchasePriceList.md +39 -0
- package/src/modules/purchase/docs/commands/DeactivatePurchasePriceRule.md +39 -0
- package/src/modules/purchase/docs/commands/MatchPurchaseBill.md +63 -0
- package/src/modules/purchase/docs/commands/PostGoodsReceipt.md +61 -0
- package/src/modules/purchase/docs/commands/RejectPurchaseOrder.md +44 -0
- package/src/modules/purchase/docs/commands/ReleasePurchaseBill.md +48 -0
- package/src/modules/purchase/docs/commands/SetSupplierDefaultPurchasePaymentTerm.md +50 -0
- package/src/modules/purchase/docs/commands/SubmitPurchaseOrder.md +51 -0
- package/src/modules/purchase/docs/commands/UpdateGoodsReceipt.md +48 -0
- package/src/modules/purchase/docs/commands/UpdatePurchaseBill.md +51 -0
- package/src/modules/purchase/docs/commands/UpdatePurchaseOrder.md +59 -0
- package/src/modules/purchase/docs/commands/UpdatePurchasePaymentTerm.md +51 -0
- package/src/modules/purchase/docs/commands/UpdatePurchasePriceList.md +43 -0
- package/src/modules/purchase/docs/commands/UpdatePurchasePriceRule.md +60 -0
- package/src/modules/purchase/docs/features/goods-receipt-matching.md +71 -0
- package/src/modules/purchase/docs/features/purchase-order-lifecycle.md +87 -0
- package/src/modules/purchase/docs/features/purchase-payment-terms.md +67 -0
- package/src/modules/purchase/docs/features/supplier-bill-matching.md +79 -0
- package/src/modules/purchase/docs/features/supplier-purchase-pricing.md +72 -0
- package/src/modules/purchase/docs/models/GoodsReceipt.md +58 -0
- package/src/modules/purchase/docs/models/PurchaseBill.md +68 -0
- package/src/modules/purchase/docs/models/PurchaseOrder.md +88 -0
- package/src/modules/purchase/docs/models/PurchasePaymentTerm.md +59 -0
- package/src/modules/purchase/docs/models/PurchasePriceList.md +53 -0
- package/src/modules/purchase/docs/models/PurchasePriceRule.md +58 -0
- package/src/modules/purchase/docs/models/SupplierProfile.md +37 -0
- package/src/modules/purchase/docs/queries/CalculatePurchaseBillDueSchedule.md +47 -0
- package/src/modules/purchase/docs/queries/CalculatePurchasePrice.md +53 -0
- package/src/modules/purchase/docs/queries/GetGoodsReceipt.md +36 -0
- package/src/modules/purchase/docs/queries/GetPurchaseBill.md +41 -0
- package/src/modules/purchase/docs/queries/GetPurchaseOrder.md +42 -0
- package/src/modules/purchase/docs/queries/GetPurchasePaymentTerm.md +36 -0
- package/src/modules/purchase/docs/queries/GetPurchasePriceList.md +36 -0
- package/src/modules/purchase/docs/queries/GetSupplierProfile.md +36 -0
- package/src/modules/purchase/executor/.gitkeep +0 -0
- package/src/modules/purchase/generated/.gitkeep +0 -0
- package/src/modules/purchase/generated/enums.ts +63 -0
- package/src/modules/purchase/generated/kysely-tailordb.ts +186 -0
- package/src/modules/purchase/index.ts +2 -0
- package/src/modules/purchase/lib/_db_deps.ts +77 -0
- package/src/modules/purchase/lib/domain.ts +467 -0
- package/src/modules/purchase/lib/errors.generated.ts +367 -0
- package/src/modules/purchase/lib/permissions.generated.ts +34 -0
- package/src/modules/purchase/lib/types.ts +65 -0
- package/src/modules/purchase/module.ts +218 -0
- package/src/modules/purchase/permissions.ts +1 -0
- package/src/modules/purchase/query/.gitkeep +0 -0
- package/src/modules/purchase/query/calculatePurchaseBillDueSchedule.generated.ts +5 -0
- package/src/modules/purchase/query/calculatePurchaseBillDueSchedule.test.ts +183 -0
- package/src/modules/purchase/query/calculatePurchaseBillDueSchedule.ts +41 -0
- package/src/modules/purchase/query/calculatePurchasePrice.generated.ts +5 -0
- package/src/modules/purchase/query/calculatePurchasePrice.test.ts +143 -0
- package/src/modules/purchase/query/calculatePurchasePrice.ts +113 -0
- package/src/modules/purchase/query/getGoodsReceipt.generated.ts +5 -0
- package/src/modules/purchase/query/getGoodsReceipt.test.ts +42 -0
- package/src/modules/purchase/query/getGoodsReceipt.ts +27 -0
- package/src/modules/purchase/query/getPurchaseBill.generated.ts +5 -0
- package/src/modules/purchase/query/getPurchaseBill.test.ts +69 -0
- package/src/modules/purchase/query/getPurchaseBill.ts +35 -0
- package/src/modules/purchase/query/getPurchaseOrder.generated.ts +5 -0
- package/src/modules/purchase/query/getPurchaseOrder.test.ts +65 -0
- package/src/modules/purchase/query/getPurchaseOrder.ts +33 -0
- package/src/modules/purchase/query/getPurchasePaymentTerm.generated.ts +5 -0
- package/src/modules/purchase/query/getPurchasePaymentTerm.test.ts +44 -0
- package/src/modules/purchase/query/getPurchasePaymentTerm.ts +30 -0
- package/src/modules/purchase/query/getPurchasePriceList.generated.ts +5 -0
- package/src/modules/purchase/query/getPurchasePriceList.test.ts +48 -0
- package/src/modules/purchase/query/getPurchasePriceList.ts +30 -0
- package/src/modules/purchase/query/getSupplierProfile.generated.ts +5 -0
- package/src/modules/purchase/query/getSupplierProfile.test.ts +50 -0
- package/src/modules/purchase/query/getSupplierProfile.ts +18 -0
- package/src/modules/purchase/tailor.config.ts +13 -0
- package/src/modules/purchase/tailor.d.ts +13 -0
- package/src/modules/purchase/testing/commandTestUtils.ts +35 -0
- package/src/modules/purchase/testing/fixtures.ts +317 -0
- package/src/modules/sales/README.md +69 -0
- package/src/modules/sales/command/.gitkeep +0 -0
- package/src/modules/sales/command/activateChannel.generated.ts +6 -0
- package/src/modules/sales/command/activateChannel.test.ts +70 -0
- package/src/modules/sales/command/activateChannel.ts +48 -0
- package/src/modules/sales/command/activateListing.generated.ts +6 -0
- package/src/modules/sales/command/activateListing.test.ts +87 -0
- package/src/modules/sales/command/activateListing.ts +49 -0
- package/src/modules/sales/command/activateSalesPaymentTerm.generated.ts +6 -0
- package/src/modules/sales/command/activateSalesPaymentTerm.test.ts +58 -0
- package/src/modules/sales/command/activateSalesPaymentTerm.ts +50 -0
- package/src/modules/sales/command/activateSalesPriceList.generated.ts +6 -0
- package/src/modules/sales/command/activateSalesPriceList.test.ts +55 -0
- package/src/modules/sales/command/activateSalesPriceList.ts +46 -0
- package/src/modules/sales/command/activateSalesPriceRule.generated.ts +6 -0
- package/src/modules/sales/command/activateSalesPriceRule.test.ts +83 -0
- package/src/modules/sales/command/activateSalesPriceRule.ts +58 -0
- package/src/modules/sales/command/cancelChannelOrder.generated.ts +6 -0
- package/src/modules/sales/command/cancelChannelOrder.test.ts +47 -0
- package/src/modules/sales/command/cancelChannelOrder.ts +30 -0
- package/src/modules/sales/command/cancelSalesInvoice.generated.ts +6 -0
- package/src/modules/sales/command/cancelSalesInvoice.test.ts +47 -0
- package/src/modules/sales/command/cancelSalesInvoice.ts +37 -0
- package/src/modules/sales/command/cancelSalesOrder.generated.ts +6 -0
- package/src/modules/sales/command/cancelSalesOrder.test.ts +70 -0
- package/src/modules/sales/command/cancelSalesOrder.ts +48 -0
- package/src/modules/sales/command/cancelSyncJob.generated.ts +6 -0
- package/src/modules/sales/command/cancelSyncJob.test.ts +58 -0
- package/src/modules/sales/command/cancelSyncJob.ts +30 -0
- package/src/modules/sales/command/closeSalesOrder.generated.ts +6 -0
- package/src/modules/sales/command/closeSalesOrder.test.ts +41 -0
- package/src/modules/sales/command/closeSalesOrder.ts +51 -0
- package/src/modules/sales/command/confirmSalesOrder.generated.ts +6 -0
- package/src/modules/sales/command/confirmSalesOrder.test.ts +68 -0
- package/src/modules/sales/command/confirmSalesOrder.ts +67 -0
- package/src/modules/sales/command/convertChannelOrder.generated.ts +6 -0
- package/src/modules/sales/command/convertChannelOrder.test.ts +118 -0
- package/src/modules/sales/command/convertChannelOrder.ts +151 -0
- package/src/modules/sales/command/createChannel.generated.ts +6 -0
- package/src/modules/sales/command/createChannel.test.ts +100 -0
- package/src/modules/sales/command/createChannel.ts +58 -0
- package/src/modules/sales/command/createListing.generated.ts +6 -0
- package/src/modules/sales/command/createListing.test.ts +88 -0
- package/src/modules/sales/command/createListing.ts +76 -0
- package/src/modules/sales/command/createSalesCreditNote.generated.ts +6 -0
- package/src/modules/sales/command/createSalesCreditNote.test.ts +56 -0
- package/src/modules/sales/command/createSalesCreditNote.ts +75 -0
- package/src/modules/sales/command/createSalesInvoice.generated.ts +6 -0
- package/src/modules/sales/command/createSalesInvoice.test.ts +85 -0
- package/src/modules/sales/command/createSalesInvoice.ts +94 -0
- package/src/modules/sales/command/createSalesOrder.generated.ts +6 -0
- package/src/modules/sales/command/createSalesOrder.test.ts +134 -0
- package/src/modules/sales/command/createSalesOrder.ts +140 -0
- package/src/modules/sales/command/createSalesPaymentTerm.generated.ts +6 -0
- package/src/modules/sales/command/createSalesPaymentTerm.test.ts +59 -0
- package/src/modules/sales/command/createSalesPaymentTerm.ts +50 -0
- package/src/modules/sales/command/createSalesPriceList.generated.ts +6 -0
- package/src/modules/sales/command/createSalesPriceList.test.ts +67 -0
- package/src/modules/sales/command/createSalesPriceList.ts +45 -0
- package/src/modules/sales/command/createSalesPriceRule.generated.ts +6 -0
- package/src/modules/sales/command/createSalesPriceRule.test.ts +137 -0
- package/src/modules/sales/command/createSalesPriceRule.ts +66 -0
- package/src/modules/sales/command/createShipment.generated.ts +6 -0
- package/src/modules/sales/command/createShipment.test.ts +75 -0
- package/src/modules/sales/command/createShipment.ts +86 -0
- package/src/modules/sales/command/deactivateChannel.generated.ts +6 -0
- package/src/modules/sales/command/deactivateChannel.test.ts +29 -0
- package/src/modules/sales/command/deactivateChannel.ts +30 -0
- package/src/modules/sales/command/deactivateSalesPaymentTerm.generated.ts +6 -0
- package/src/modules/sales/command/deactivateSalesPaymentTerm.test.ts +29 -0
- package/src/modules/sales/command/deactivateSalesPaymentTerm.ts +37 -0
- package/src/modules/sales/command/deactivateSalesPriceList.generated.ts +6 -0
- package/src/modules/sales/command/deactivateSalesPriceList.test.ts +33 -0
- package/src/modules/sales/command/deactivateSalesPriceList.ts +37 -0
- package/src/modules/sales/command/deactivateSalesPriceRule.generated.ts +6 -0
- package/src/modules/sales/command/deactivateSalesPriceRule.test.ts +33 -0
- package/src/modules/sales/command/deactivateSalesPriceRule.ts +37 -0
- package/src/modules/sales/command/issueSalesCreditNote.generated.ts +6 -0
- package/src/modules/sales/command/issueSalesCreditNote.test.ts +62 -0
- package/src/modules/sales/command/issueSalesCreditNote.ts +71 -0
- package/src/modules/sales/command/issueSalesInvoice.generated.ts +6 -0
- package/src/modules/sales/command/issueSalesInvoice.test.ts +88 -0
- package/src/modules/sales/command/issueSalesInvoice.ts +115 -0
- package/src/modules/sales/command/markChannelOrderException.generated.ts +6 -0
- package/src/modules/sales/command/markChannelOrderException.test.ts +59 -0
- package/src/modules/sales/command/markChannelOrderException.ts +49 -0
- package/src/modules/sales/command/pauseListing.generated.ts +6 -0
- package/src/modules/sales/command/pauseListing.test.ts +40 -0
- package/src/modules/sales/command/pauseListing.ts +30 -0
- package/src/modules/sales/command/placeSalesOrderOnCreditHold.generated.ts +6 -0
- package/src/modules/sales/command/placeSalesOrderOnCreditHold.test.ts +74 -0
- package/src/modules/sales/command/placeSalesOrderOnCreditHold.ts +46 -0
- package/src/modules/sales/command/postShipment.generated.ts +6 -0
- package/src/modules/sales/command/postShipment.test.ts +97 -0
- package/src/modules/sales/command/postShipment.ts +89 -0
- package/src/modules/sales/command/recordChannelOrder.generated.ts +6 -0
- package/src/modules/sales/command/recordChannelOrder.test.ts +124 -0
- package/src/modules/sales/command/recordChannelOrder.ts +93 -0
- package/src/modules/sales/command/rejectSalesOrder.generated.ts +6 -0
- package/src/modules/sales/command/rejectSalesOrder.test.ts +78 -0
- package/src/modules/sales/command/rejectSalesOrder.ts +42 -0
- package/src/modules/sales/command/releaseSalesOrderCreditHold.generated.ts +6 -0
- package/src/modules/sales/command/releaseSalesOrderCreditHold.test.ts +50 -0
- package/src/modules/sales/command/releaseSalesOrderCreditHold.ts +51 -0
- package/src/modules/sales/command/retireListing.generated.ts +6 -0
- package/src/modules/sales/command/retireListing.test.ts +42 -0
- package/src/modules/sales/command/retireListing.ts +30 -0
- package/src/modules/sales/command/retrySyncJob.generated.ts +6 -0
- package/src/modules/sales/command/retrySyncJob.test.ts +54 -0
- package/src/modules/sales/command/retrySyncJob.ts +44 -0
- package/src/modules/sales/command/sendSalesInvoice.generated.ts +6 -0
- package/src/modules/sales/command/sendSalesInvoice.test.ts +50 -0
- package/src/modules/sales/command/sendSalesInvoice.ts +43 -0
- package/src/modules/sales/command/startSyncJob.generated.ts +6 -0
- package/src/modules/sales/command/startSyncJob.test.ts +65 -0
- package/src/modules/sales/command/startSyncJob.ts +54 -0
- package/src/modules/sales/command/submitSalesOrder.generated.ts +6 -0
- package/src/modules/sales/command/submitSalesOrder.test.ts +58 -0
- package/src/modules/sales/command/submitSalesOrder.ts +49 -0
- package/src/modules/sales/command/updateChannel.generated.ts +6 -0
- package/src/modules/sales/command/updateChannel.test.ts +71 -0
- package/src/modules/sales/command/updateChannel.ts +68 -0
- package/src/modules/sales/command/updateListing.generated.ts +6 -0
- package/src/modules/sales/command/updateListing.test.ts +56 -0
- package/src/modules/sales/command/updateListing.ts +60 -0
- package/src/modules/sales/command/updateSalesCreditNote.generated.ts +6 -0
- package/src/modules/sales/command/updateSalesCreditNote.test.ts +68 -0
- package/src/modules/sales/command/updateSalesCreditNote.ts +68 -0
- package/src/modules/sales/command/updateSalesInvoice.generated.ts +6 -0
- package/src/modules/sales/command/updateSalesInvoice.test.ts +73 -0
- package/src/modules/sales/command/updateSalesInvoice.ts +80 -0
- package/src/modules/sales/command/updateSalesOrder.generated.ts +6 -0
- package/src/modules/sales/command/updateSalesOrder.test.ts +93 -0
- package/src/modules/sales/command/updateSalesOrder.ts +121 -0
- package/src/modules/sales/command/updateSalesPaymentTerm.generated.ts +6 -0
- package/src/modules/sales/command/updateSalesPaymentTerm.test.ts +66 -0
- package/src/modules/sales/command/updateSalesPaymentTerm.ts +59 -0
- package/src/modules/sales/command/updateSalesPriceList.generated.ts +6 -0
- package/src/modules/sales/command/updateSalesPriceList.test.ts +71 -0
- package/src/modules/sales/command/updateSalesPriceList.ts +52 -0
- package/src/modules/sales/command/updateSalesPriceRule.generated.ts +6 -0
- package/src/modules/sales/command/updateSalesPriceRule.test.ts +95 -0
- package/src/modules/sales/command/updateSalesPriceRule.ts +81 -0
- package/src/modules/sales/command/updateShipment.generated.ts +6 -0
- package/src/modules/sales/command/updateShipment.test.ts +78 -0
- package/src/modules/sales/command/updateShipment.ts +84 -0
- package/src/modules/sales/db/.gitkeep +0 -0
- package/src/modules/sales/db/channel.ts +43 -0
- package/src/modules/sales/db/channelOrder.ts +109 -0
- package/src/modules/sales/db/channelOrderLine.ts +84 -0
- package/src/modules/sales/db/listing.ts +81 -0
- package/src/modules/sales/db/salesCreditNote.ts +63 -0
- package/src/modules/sales/db/salesCreditNoteLine.ts +49 -0
- package/src/modules/sales/db/salesInvoice.ts +95 -0
- package/src/modules/sales/db/salesInvoiceLine.ts +64 -0
- package/src/modules/sales/db/salesOrder.ts +103 -0
- package/src/modules/sales/db/salesOrderLine.ts +82 -0
- package/src/modules/sales/db/salesPaymentTerm.ts +46 -0
- package/src/modules/sales/db/salesPriceList.ts +61 -0
- package/src/modules/sales/db/salesPriceRule.ts +96 -0
- package/src/modules/sales/db/shipment.ts +78 -0
- package/src/modules/sales/db/shipmentLine.ts +58 -0
- package/src/modules/sales/db/syncJob.ts +70 -0
- package/src/modules/sales/docs/commands/ActivateChannel.md +42 -0
- package/src/modules/sales/docs/commands/ActivateListing.md +46 -0
- package/src/modules/sales/docs/commands/ActivateSalesPaymentTerm.md +41 -0
- package/src/modules/sales/docs/commands/ActivateSalesPriceList.md +39 -0
- package/src/modules/sales/docs/commands/ActivateSalesPriceRule.md +48 -0
- package/src/modules/sales/docs/commands/CancelChannelOrder.md +37 -0
- package/src/modules/sales/docs/commands/CancelSalesInvoice.md +39 -0
- package/src/modules/sales/docs/commands/CancelSalesOrder.md +40 -0
- package/src/modules/sales/docs/commands/CancelSyncJob.md +36 -0
- package/src/modules/sales/docs/commands/CloseSalesOrder.md +39 -0
- package/src/modules/sales/docs/commands/ConfirmSalesOrder.md +43 -0
- package/src/modules/sales/docs/commands/ConvertChannelOrder.md +44 -0
- package/src/modules/sales/docs/commands/CreateChannel.md +40 -0
- package/src/modules/sales/docs/commands/CreateListing.md +40 -0
- package/src/modules/sales/docs/commands/CreateSalesCreditNote.md +37 -0
- package/src/modules/sales/docs/commands/CreateSalesInvoice.md +39 -0
- package/src/modules/sales/docs/commands/CreateSalesOrder.md +51 -0
- package/src/modules/sales/docs/commands/CreateSalesPaymentTerm.md +38 -0
- package/src/modules/sales/docs/commands/CreateSalesPriceList.md +37 -0
- package/src/modules/sales/docs/commands/CreateSalesPriceRule.md +46 -0
- package/src/modules/sales/docs/commands/CreateShipment.md +38 -0
- package/src/modules/sales/docs/commands/DeactivateChannel.md +35 -0
- package/src/modules/sales/docs/commands/DeactivateSalesPaymentTerm.md +35 -0
- package/src/modules/sales/docs/commands/DeactivateSalesPriceList.md +35 -0
- package/src/modules/sales/docs/commands/DeactivateSalesPriceRule.md +35 -0
- package/src/modules/sales/docs/commands/IssueSalesCreditNote.md +38 -0
- package/src/modules/sales/docs/commands/IssueSalesInvoice.md +43 -0
- package/src/modules/sales/docs/commands/MarkChannelOrderException.md +37 -0
- package/src/modules/sales/docs/commands/PauseListing.md +36 -0
- package/src/modules/sales/docs/commands/PlaceSalesOrderOnCreditHold.md +41 -0
- package/src/modules/sales/docs/commands/PostShipment.md +41 -0
- package/src/modules/sales/docs/commands/RecordChannelOrder.md +45 -0
- package/src/modules/sales/docs/commands/RejectSalesOrder.md +41 -0
- package/src/modules/sales/docs/commands/ReleaseSalesOrderCreditHold.md +36 -0
- package/src/modules/sales/docs/commands/RetireListing.md +36 -0
- package/src/modules/sales/docs/commands/RetrySyncJob.md +39 -0
- package/src/modules/sales/docs/commands/SendSalesInvoice.md +38 -0
- package/src/modules/sales/docs/commands/StartSyncJob.md +39 -0
- package/src/modules/sales/docs/commands/SubmitSalesOrder.md +43 -0
- package/src/modules/sales/docs/commands/UpdateChannel.md +43 -0
- package/src/modules/sales/docs/commands/UpdateListing.md +38 -0
- package/src/modules/sales/docs/commands/UpdateSalesCreditNote.md +38 -0
- package/src/modules/sales/docs/commands/UpdateSalesInvoice.md +38 -0
- package/src/modules/sales/docs/commands/UpdateSalesOrder.md +45 -0
- package/src/modules/sales/docs/commands/UpdateSalesPaymentTerm.md +41 -0
- package/src/modules/sales/docs/commands/UpdateSalesPriceList.md +40 -0
- package/src/modules/sales/docs/commands/UpdateSalesPriceRule.md +49 -0
- package/src/modules/sales/docs/commands/UpdateShipment.md +38 -0
- package/src/modules/sales/docs/commands/bin/rm.md +52 -0
- package/src/modules/sales/docs/commands/opt/homebrew/bin/codex.md +52 -0
- package/src/modules/sales/docs/commands/opt/homebrew/bin/ps2ps2.md +52 -0
- package/src/modules/sales/docs/commands/opt/homebrew/bin/rg.md +52 -0
- package/src/modules/sales/docs/commands/opt/homebrew/bin/sha384sum.md +52 -0
- package/src/modules/sales/docs/commands/opt/homebrew/opt/libpq/bin/pg_combinebackup.md +52 -0
- package/src/modules/sales/docs/commands/sbin/mount_msdos.md +52 -0
- package/src/modules/sales/docs/commands/sbin/mount_nfs.md +52 -0
- package/src/modules/sales/docs/commands/usr/bin/cupstestppd.md +52 -0
- package/src/modules/sales/docs/commands/usr/bin/enc2xs.md +52 -0
- package/src/modules/sales/docs/commands/usr/bin/hash.md +52 -0
- package/src/modules/sales/docs/commands/usr/bin/jarsigner.md +52 -0
- package/src/modules/sales/docs/commands/usr/bin/mpsgraphtool.md +52 -0
- package/src/modules/sales/docs/commands/usr/bin/nano.md +52 -0
- package/src/modules/sales/docs/commands/usr/bin/pod2html5.34.md +52 -0
- package/src/modules/sales/docs/commands/usr/bin/ri.md +52 -0
- package/src/modules/sales/docs/commands/usr/bin/rs.md +52 -0
- package/src/modules/sales/docs/commands/usr/bin/trustcachectl.md +52 -0
- package/src/modules/sales/docs/commands/usr/sbin/htpasswd.md +52 -0
- package/src/modules/sales/docs/commands/usr/sbin/lpadmin.md +52 -0
- package/src/modules/sales/docs/commands/usr/sbin/setkey.md +52 -0
- package/src/modules/sales/docs/features/channel-listing-management.md +68 -0
- package/src/modules/sales/docs/features/channel-order-sync.md +78 -0
- package/src/modules/sales/docs/features/customer-invoicing.md +89 -0
- package/src/modules/sales/docs/features/customer-sales-pricing.md +72 -0
- package/src/modules/sales/docs/features/sales-order-lifecycle.md +96 -0
- package/src/modules/sales/docs/features/sales-payment-terms.md +67 -0
- package/src/modules/sales/docs/features/shipment-fulfillment.md +71 -0
- package/src/modules/sales/docs/models/Channel.md +48 -0
- package/src/modules/sales/docs/models/ChannelOrder.md +56 -0
- package/src/modules/sales/docs/models/ChannelOrderLine.md +39 -0
- package/src/modules/sales/docs/models/Listing.md +56 -0
- package/src/modules/sales/docs/models/SalesCreditNote.md +47 -0
- package/src/modules/sales/docs/models/SalesCreditNoteLine.md +37 -0
- package/src/modules/sales/docs/models/SalesInvoice.md +55 -0
- package/src/modules/sales/docs/models/SalesInvoiceLine.md +39 -0
- package/src/modules/sales/docs/models/SalesOrder.md +79 -0
- package/src/modules/sales/docs/models/SalesOrderLine.md +42 -0
- package/src/modules/sales/docs/models/SalesPaymentTerm.md +53 -0
- package/src/modules/sales/docs/models/SalesPriceList.md +50 -0
- package/src/modules/sales/docs/models/SalesPriceRule.md +51 -0
- package/src/modules/sales/docs/models/Shipment.md +49 -0
- package/src/modules/sales/docs/models/ShipmentLine.md +38 -0
- package/src/modules/sales/docs/models/SyncJob.md +53 -0
- package/src/modules/sales/docs/queries/CalculateInvoiceDueSchedule.md +37 -0
- package/src/modules/sales/docs/queries/GetApplicableSalesPrice.md +38 -0
- package/src/modules/sales/docs/queries/GetChannel.md +34 -0
- package/src/modules/sales/docs/queries/GetChannelOrder.md +34 -0
- package/src/modules/sales/docs/queries/GetListing.md +34 -0
- package/src/modules/sales/docs/queries/GetListingByExternalIdentifier.md +35 -0
- package/src/modules/sales/docs/queries/GetSalesCreditNote.md +34 -0
- package/src/modules/sales/docs/queries/GetSalesInvoice.md +34 -0
- package/src/modules/sales/docs/queries/GetSalesOrder.md +36 -0
- package/src/modules/sales/docs/queries/GetSalesPaymentTerm.md +34 -0
- package/src/modules/sales/docs/queries/GetSalesPriceList.md +34 -0
- package/src/modules/sales/docs/queries/GetShipment.md +34 -0
- package/src/modules/sales/docs/queries/GetSyncJob.md +34 -0
- package/src/modules/sales/docs/queries/ListChannelOrdersByStatus.md +34 -0
- package/src/modules/sales/docs/queries/ListChannels.md +33 -0
- package/src/modules/sales/docs/queries/ListListingsByChannel.md +33 -0
- package/src/modules/sales/docs/queries/ListSalesCreditNotesByInvoice.md +33 -0
- package/src/modules/sales/docs/queries/ListSalesInvoicesBySalesOrder.md +33 -0
- package/src/modules/sales/docs/queries/ListSalesOrders.md +36 -0
- package/src/modules/sales/docs/queries/ListSalesPaymentTerms.md +33 -0
- package/src/modules/sales/docs/queries/ListSalesPriceLists.md +33 -0
- package/src/modules/sales/docs/queries/ListSalesPriceRulesByPriceList.md +33 -0
- package/src/modules/sales/docs/queries/ListShipmentsBySalesOrder.md +33 -0
- package/src/modules/sales/docs/queries/ListSyncJobs.md +34 -0
- package/src/modules/sales/executor/.gitkeep +0 -0
- package/src/modules/sales/generated/.gitkeep +0 -0
- package/src/modules/sales/generated/enums.ts +119 -0
- package/src/modules/sales/generated/kysely-tailordb.ts +332 -0
- package/src/modules/sales/index.ts +2 -0
- package/src/modules/sales/lib/_db_deps.ts +67 -0
- package/src/modules/sales/lib/domain.ts +354 -0
- package/src/modules/sales/lib/errors.generated.ts +417 -0
- package/src/modules/sales/lib/permissions.generated.ts +53 -0
- package/src/modules/sales/lib/repository.ts +137 -0
- package/src/modules/sales/lib/types.ts +105 -0
- package/src/modules/sales/module.ts +418 -0
- package/src/modules/sales/permissions.ts +3 -0
- package/src/modules/sales/query/.gitkeep +0 -0
- package/src/modules/sales/query/calculateInvoiceDueSchedule.generated.ts +5 -0
- package/src/modules/sales/query/calculateInvoiceDueSchedule.test.ts +107 -0
- package/src/modules/sales/query/calculateInvoiceDueSchedule.ts +35 -0
- package/src/modules/sales/query/getApplicableSalesPrice.generated.ts +5 -0
- package/src/modules/sales/query/getApplicableSalesPrice.test.ts +110 -0
- package/src/modules/sales/query/getApplicableSalesPrice.ts +81 -0
- package/src/modules/sales/query/getChannel.generated.ts +5 -0
- package/src/modules/sales/query/getChannel.test.ts +39 -0
- package/src/modules/sales/query/getChannel.ts +15 -0
- package/src/modules/sales/query/getChannelOrder.generated.ts +5 -0
- package/src/modules/sales/query/getChannelOrder.test.ts +50 -0
- package/src/modules/sales/query/getChannelOrder.ts +29 -0
- package/src/modules/sales/query/getListing.generated.ts +5 -0
- package/src/modules/sales/query/getListing.test.ts +39 -0
- package/src/modules/sales/query/getListing.ts +15 -0
- package/src/modules/sales/query/getListingByExternalIdentifier.generated.ts +5 -0
- package/src/modules/sales/query/getListingByExternalIdentifier.test.ts +61 -0
- package/src/modules/sales/query/getListingByExternalIdentifier.ts +23 -0
- package/src/modules/sales/query/getSalesCreditNote.generated.ts +5 -0
- package/src/modules/sales/query/getSalesCreditNote.test.ts +44 -0
- package/src/modules/sales/query/getSalesCreditNote.ts +14 -0
- package/src/modules/sales/query/getSalesInvoice.generated.ts +5 -0
- package/src/modules/sales/query/getSalesInvoice.test.ts +44 -0
- package/src/modules/sales/query/getSalesInvoice.ts +14 -0
- package/src/modules/sales/query/getSalesOrder.generated.ts +5 -0
- package/src/modules/sales/query/getSalesOrder.test.ts +57 -0
- package/src/modules/sales/query/getSalesOrder.ts +20 -0
- package/src/modules/sales/query/getSalesPaymentTerm.generated.ts +5 -0
- package/src/modules/sales/query/getSalesPaymentTerm.test.ts +44 -0
- package/src/modules/sales/query/getSalesPaymentTerm.ts +24 -0
- package/src/modules/sales/query/getSalesPriceList.generated.ts +5 -0
- package/src/modules/sales/query/getSalesPriceList.test.ts +39 -0
- package/src/modules/sales/query/getSalesPriceList.ts +15 -0
- package/src/modules/sales/query/getShipment.generated.ts +5 -0
- package/src/modules/sales/query/getShipment.test.ts +44 -0
- package/src/modules/sales/query/getShipment.ts +12 -0
- package/src/modules/sales/query/getSyncJob.generated.ts +5 -0
- package/src/modules/sales/query/getSyncJob.test.ts +43 -0
- package/src/modules/sales/query/getSyncJob.ts +24 -0
- package/src/modules/sales/query/listChannelOrdersByStatus.generated.ts +5 -0
- package/src/modules/sales/query/listChannelOrdersByStatus.test.ts +58 -0
- package/src/modules/sales/query/listChannelOrdersByStatus.ts +53 -0
- package/src/modules/sales/query/listChannels.generated.ts +5 -0
- package/src/modules/sales/query/listChannels.test.ts +36 -0
- package/src/modules/sales/query/listChannels.ts +39 -0
- package/src/modules/sales/query/listListingsByChannel.generated.ts +5 -0
- package/src/modules/sales/query/listListingsByChannel.test.ts +36 -0
- package/src/modules/sales/query/listListingsByChannel.ts +39 -0
- package/src/modules/sales/query/listSalesCreditNotesByInvoice.generated.ts +5 -0
- package/src/modules/sales/query/listSalesCreditNotesByInvoice.test.ts +36 -0
- package/src/modules/sales/query/listSalesCreditNotesByInvoice.ts +42 -0
- package/src/modules/sales/query/listSalesInvoicesBySalesOrder.generated.ts +5 -0
- package/src/modules/sales/query/listSalesInvoicesBySalesOrder.test.ts +36 -0
- package/src/modules/sales/query/listSalesInvoicesBySalesOrder.ts +42 -0
- package/src/modules/sales/query/listSalesOrders.generated.ts +5 -0
- package/src/modules/sales/query/listSalesOrders.test.ts +79 -0
- package/src/modules/sales/query/listSalesOrders.ts +67 -0
- package/src/modules/sales/query/listSalesPaymentTerms.generated.ts +5 -0
- package/src/modules/sales/query/listSalesPaymentTerms.test.ts +36 -0
- package/src/modules/sales/query/listSalesPaymentTerms.ts +42 -0
- package/src/modules/sales/query/listSalesPriceLists.generated.ts +5 -0
- package/src/modules/sales/query/listSalesPriceLists.test.ts +36 -0
- package/src/modules/sales/query/listSalesPriceLists.ts +39 -0
- package/src/modules/sales/query/listSalesPriceRulesByPriceList.generated.ts +5 -0
- package/src/modules/sales/query/listSalesPriceRulesByPriceList.test.ts +39 -0
- package/src/modules/sales/query/listSalesPriceRulesByPriceList.ts +47 -0
- package/src/modules/sales/query/listShipmentsBySalesOrder.generated.ts +5 -0
- package/src/modules/sales/query/listShipmentsBySalesOrder.test.ts +36 -0
- package/src/modules/sales/query/listShipmentsBySalesOrder.ts +36 -0
- package/src/modules/sales/query/listSyncJobs.generated.ts +5 -0
- package/src/modules/sales/query/listSyncJobs.test.ts +50 -0
- package/src/modules/sales/query/listSyncJobs.ts +47 -0
- package/src/modules/sales/tailor.config.ts +13 -0
- package/src/modules/sales/tailor.d.ts +13 -0
- package/src/modules/sales/testing/commandTestUtils.ts +35 -0
- package/src/modules/sales/testing/fixtures.ts +520 -0
- package/src/modules/user-management/command/.gitkeep +0 -0
- package/src/modules/user-management/db/.gitkeep +0 -0
- package/src/modules/user-management/executor/.gitkeep +0 -0
- package/src/modules/user-management/generated/.gitkeep +0 -0
- package/src/modules/user-management/lib/errors.generated.ts +0 -5
- package/src/modules/user-management/lib/recomputeUserPermissions.ts +4 -2
- package/src/modules/user-management/permissions.ts +3 -0
- package/src/modules/user-management/query/.gitkeep +0 -0
- package/src/modules/user-management/query/listRolePermissionsByRole.generated.ts +5 -0
- package/src/modules/user-management/query/listRolePermissionsByRole.test.ts +20 -0
- package/src/modules/user-management/query/listRolePermissionsByRole.ts +28 -0
- package/src/modules/user-management/query/listUserRolesByUser.generated.ts +5 -0
- package/src/modules/user-management/query/listUserRolesByUser.test.ts +20 -0
- package/src/modules/user-management/query/listUserRolesByUser.ts +28 -0
- package/src/schemas.ts +6 -6
- package/src/shared/defineCommand.ts +1 -1
- package/src/shared/entityTypes.ts +1 -1
- package/src/shared/uuidv5.test.ts +18 -0
- package/src/shared/uuidv5.ts +23 -0
- package/src/testing/index.ts +1 -1
- package/templates/scaffold/app/backend/package.json +1 -3
- package/templates/scaffold/app/backend/seed/exec.mjs +7 -5
- package/templates/scaffold/app/backend/src/generated/kysely-tailordb.ts +0 -11
- package/templates/scaffold/module/__dot__gitignore +3 -0
- package/templates/scaffold/module/eslint.config.js +31 -0
- package/templates/scaffold/module/generated/kysely-tailordb.ts +3 -0
- package/templates/scaffold/module/lib/types.ts +1 -6
- package/templates/scaffold/module/package.json +26 -0
- package/templates/scaffold/module/seed/index.ts +19 -0
- package/templates/scaffold/module/tsconfig.json +16 -0
- /package/schemas/{app-compose → app}/actors.yml +0 -0
- /package/schemas/{app-compose → app}/business-flow.yml +0 -0
- /package/schemas/{app-compose → app}/requirements.yml +0 -0
- /package/schemas/{app-compose → app}/resolver.yml +0 -0
- /package/schemas/{app-compose → app}/screen.yml +0 -0
- /package/schemas/{app-compose → app}/story.yml +0 -0
- /package/src/modules/{purchase → inventory/command}/.gitkeep +0 -0
- /package/{templates/scaffold/module/generated → src/modules/inventory/db}/.gitkeep +0 -0
package/dist/cli.mjs
CHANGED
|
@@ -9,9 +9,22 @@ import { execFile, execSync } from "node:child_process";
|
|
|
9
9
|
import fg from "fast-glob";
|
|
10
10
|
import { fromMarkdown } from "mdast-util-from-markdown";
|
|
11
11
|
import { toString } from "mdast-util-to-string";
|
|
12
|
+
import { createHash } from "node:crypto";
|
|
12
13
|
import { createServer, request } from "node:http";
|
|
13
14
|
import { createServer as createServer$1 } from "node:net";
|
|
14
15
|
import { readFile, readdir, stat } from "node:fs/promises";
|
|
16
|
+
//#region \0rolldown/runtime.js
|
|
17
|
+
var __defProp = Object.defineProperty;
|
|
18
|
+
var __exportAll = (all, no_symbols) => {
|
|
19
|
+
let target = {};
|
|
20
|
+
for (var name in all) __defProp(target, name, {
|
|
21
|
+
get: all[name],
|
|
22
|
+
enumerable: true
|
|
23
|
+
});
|
|
24
|
+
if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" });
|
|
25
|
+
return target;
|
|
26
|
+
};
|
|
27
|
+
//#endregion
|
|
15
28
|
//#region src/util.ts
|
|
16
29
|
const PACKAGE_ROOT = path.resolve(import.meta.dirname, "..");
|
|
17
30
|
function readErpKitVersion() {
|
|
@@ -98,6 +111,15 @@ function copyConfigs(cwd) {
|
|
|
98
111
|
removed: 0
|
|
99
112
|
};
|
|
100
113
|
}
|
|
114
|
+
function createSymlink(target, linkPath) {
|
|
115
|
+
const type = process.platform === "win32" ? "junction" : void 0;
|
|
116
|
+
const resolvedTarget = type === "junction" ? path.resolve(path.dirname(linkPath), target) : target;
|
|
117
|
+
fs.symlinkSync(resolvedTarget, linkPath, type);
|
|
118
|
+
}
|
|
119
|
+
function copySkillsDirectory(src, dest) {
|
|
120
|
+
if (!fs.existsSync(src)) return;
|
|
121
|
+
fs.cpSync(src, dest, { recursive: true });
|
|
122
|
+
}
|
|
101
123
|
function setupSymlink(cwd) {
|
|
102
124
|
const skillsDest = path.join(cwd, ".agents", "skills");
|
|
103
125
|
const claudeSkills = path.join(cwd, ".claude", "skills");
|
|
@@ -111,14 +133,44 @@ function setupSymlink(cwd) {
|
|
|
111
133
|
if (fs.lstatSync(claudeSkills).isSymbolicLink()) {
|
|
112
134
|
if (fs.readlinkSync(claudeSkills) === relTarget) return "already_linked";
|
|
113
135
|
fs.unlinkSync(claudeSkills);
|
|
114
|
-
|
|
115
|
-
|
|
136
|
+
try {
|
|
137
|
+
createSymlink(relTarget, claudeSkills);
|
|
138
|
+
return "linked";
|
|
139
|
+
} catch {
|
|
140
|
+
copySkillsDirectory(skillsDest, claudeSkills);
|
|
141
|
+
return "copied";
|
|
142
|
+
}
|
|
116
143
|
}
|
|
117
144
|
return "skipped_directory";
|
|
118
145
|
}
|
|
119
146
|
fs.mkdirSync(path.dirname(claudeSkills), { recursive: true });
|
|
120
|
-
|
|
121
|
-
|
|
147
|
+
try {
|
|
148
|
+
createSymlink(relTarget, claudeSkills);
|
|
149
|
+
return "linked";
|
|
150
|
+
} catch {
|
|
151
|
+
copySkillsDirectory(skillsDest, claudeSkills);
|
|
152
|
+
return "copied";
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* When .claude/skills is a real directory (copy fallback on Windows),
|
|
157
|
+
* re-sync it with .agents/skills after an update.
|
|
158
|
+
*/
|
|
159
|
+
function refreshCopiedSkills(cwd) {
|
|
160
|
+
const claudeSkills = path.join(cwd, ".claude", "skills");
|
|
161
|
+
try {
|
|
162
|
+
const stat = fs.lstatSync(claudeSkills);
|
|
163
|
+
if (stat.isSymbolicLink() || !stat.isDirectory()) return false;
|
|
164
|
+
} catch {
|
|
165
|
+
return false;
|
|
166
|
+
}
|
|
167
|
+
const skillsDest = path.join(cwd, ".agents", "skills");
|
|
168
|
+
fs.rmSync(claudeSkills, {
|
|
169
|
+
recursive: true,
|
|
170
|
+
force: true
|
|
171
|
+
});
|
|
172
|
+
copySkillsDirectory(skillsDest, claudeSkills);
|
|
173
|
+
return true;
|
|
122
174
|
}
|
|
123
175
|
function isAlreadyInitialized(cwd) {
|
|
124
176
|
const skillsDest = path.join(cwd, ".agents", "skills");
|
|
@@ -137,6 +189,7 @@ function runInit(cwd) {
|
|
|
137
189
|
console.log(chalk.green(` Copied ${skills.copied} skill files to .agents/skills/`));
|
|
138
190
|
const symlink = setupSymlink(cwd);
|
|
139
191
|
if (symlink === "linked") console.log(chalk.green(" .claude/skills -> .agents/skills/ (linked)"));
|
|
192
|
+
else if (symlink === "copied") console.log(chalk.yellow(" .claude/skills (copied — re-run `erp-kit update skills` after changes)"));
|
|
140
193
|
else if (symlink === "skipped_directory") console.log(chalk.yellow(" Skipped .claude/skills (directory exists, not a symlink)"));
|
|
141
194
|
const workflows = copyWorkflows(cwd);
|
|
142
195
|
if (workflows.copied > 0) console.log(chalk.green(` Copied ${workflows.copied} workflow(s) to .github/workflows/`));
|
|
@@ -159,6 +212,7 @@ function runUpdate(cwd, resources) {
|
|
|
159
212
|
const result = copySkills(cwd);
|
|
160
213
|
if (result.removed > 0) console.log(chalk.green(` Removed ${result.removed} stale erp-kit-* skills`));
|
|
161
214
|
console.log(chalk.green(` Copied ${result.copied} skill files to .agents/skills/`));
|
|
215
|
+
if (refreshCopiedSkills(cwd)) console.log(chalk.green(` Refreshed .claude/skills/ (copy)`));
|
|
162
216
|
}
|
|
163
217
|
if (selected.has("workflows")) {
|
|
164
218
|
const result = copyWorkflows(cwd);
|
|
@@ -310,12 +364,35 @@ function runLicenseCheck(configPath) {
|
|
|
310
364
|
//#endregion
|
|
311
365
|
//#region src/mdschema.ts
|
|
312
366
|
const require = createRequire(import.meta.url);
|
|
367
|
+
const PLATFORMS = {
|
|
368
|
+
darwin: {
|
|
369
|
+
arm64: "@jackchuka/mdschema-darwin-arm64",
|
|
370
|
+
x64: "@jackchuka/mdschema-darwin-x64"
|
|
371
|
+
},
|
|
372
|
+
linux: {
|
|
373
|
+
arm64: "@jackchuka/mdschema-linux-arm64",
|
|
374
|
+
x64: "@jackchuka/mdschema-linux-x64"
|
|
375
|
+
},
|
|
376
|
+
win32: {
|
|
377
|
+
arm64: "@jackchuka/mdschema-windows-arm64",
|
|
378
|
+
x64: "@jackchuka/mdschema-windows-x64"
|
|
379
|
+
}
|
|
380
|
+
};
|
|
313
381
|
function getMdschemaBin() {
|
|
314
382
|
const pkgPath = require.resolve("@jackchuka/mdschema/package.json");
|
|
315
|
-
const
|
|
316
|
-
const
|
|
383
|
+
const pkgDir = path.dirname(pkgPath);
|
|
384
|
+
const mdschemaRequire = createRequire(pkgPath);
|
|
385
|
+
const ext = process.platform === "win32" ? ".exe" : "";
|
|
386
|
+
const pkg = PLATFORMS[process.platform]?.[process.arch];
|
|
387
|
+
if (pkg) try {
|
|
388
|
+
return mdschemaRequire.resolve(`${pkg}/bin/mdschema${ext}`);
|
|
389
|
+
} catch {}
|
|
390
|
+
const localBin = path.join(pkgDir, "bin", `mdschema${ext}`);
|
|
391
|
+
if (fs.existsSync(localBin)) return localBin;
|
|
392
|
+
const pkgJson = JSON.parse(fs.readFileSync(pkgPath, "utf-8"));
|
|
393
|
+
const bin = typeof pkgJson.bin === "string" ? pkgJson.bin : pkgJson.bin?.mdschema;
|
|
317
394
|
if (!bin) throw new Error("Could not resolve mdschema binary from package.json bin field");
|
|
318
|
-
return path.join(
|
|
395
|
+
return path.join(pkgDir, bin);
|
|
319
396
|
}
|
|
320
397
|
function runMdschema(args, cwd) {
|
|
321
398
|
return new Promise((resolve) => {
|
|
@@ -350,12 +427,12 @@ const MODULE_SCHEMAS = {
|
|
|
350
427
|
query: path.join(SCHEMAS_ROOT, "module", "query.yml")
|
|
351
428
|
};
|
|
352
429
|
const APP_COMPOSE_SCHEMAS = {
|
|
353
|
-
app: path.join(SCHEMAS_ROOT, "app
|
|
354
|
-
actors: path.join(SCHEMAS_ROOT, "app
|
|
355
|
-
"business-flow": path.join(SCHEMAS_ROOT, "app
|
|
356
|
-
story: path.join(SCHEMAS_ROOT, "app
|
|
357
|
-
screen: path.join(SCHEMAS_ROOT, "app
|
|
358
|
-
resolver: path.join(SCHEMAS_ROOT, "app
|
|
430
|
+
app: path.join(SCHEMAS_ROOT, "app", "requirements.yml"),
|
|
431
|
+
actors: path.join(SCHEMAS_ROOT, "app", "actors.yml"),
|
|
432
|
+
"business-flow": path.join(SCHEMAS_ROOT, "app", "business-flow.yml"),
|
|
433
|
+
story: path.join(SCHEMAS_ROOT, "app", "story.yml"),
|
|
434
|
+
screen: path.join(SCHEMAS_ROOT, "app", "screen.yml"),
|
|
435
|
+
resolver: path.join(SCHEMAS_ROOT, "app", "resolver.yml")
|
|
359
436
|
};
|
|
360
437
|
const ALL_SCHEMAS = {
|
|
361
438
|
...MODULE_SCHEMAS,
|
|
@@ -498,10 +575,6 @@ async function runCheck(config, cwd) {
|
|
|
498
575
|
//#region src/commands/init-module.ts
|
|
499
576
|
function runInitModule(name, dir) {
|
|
500
577
|
const moduleDir = path.resolve(dir, name);
|
|
501
|
-
if (fs.existsSync(moduleDir)) {
|
|
502
|
-
console.error(`Directory already exists: ${moduleDir}`);
|
|
503
|
-
return 1;
|
|
504
|
-
}
|
|
505
578
|
fs.mkdirSync(moduleDir, { recursive: true });
|
|
506
579
|
return 0;
|
|
507
580
|
}
|
|
@@ -524,10 +597,6 @@ async function runInitModuleWithReadme(name, dir, cwd) {
|
|
|
524
597
|
}
|
|
525
598
|
function runInitApp(name, dir) {
|
|
526
599
|
const appDir = path.resolve(dir, name);
|
|
527
|
-
if (fs.existsSync(appDir)) {
|
|
528
|
-
console.error(`Directory already exists: ${appDir}`);
|
|
529
|
-
return 1;
|
|
530
|
-
}
|
|
531
600
|
fs.mkdirSync(appDir, { recursive: true });
|
|
532
601
|
return 0;
|
|
533
602
|
}
|
|
@@ -1075,7 +1144,16 @@ function copyTemplateDir(srcDir, destDir, replacements, placeholderFiles) {
|
|
|
1075
1144
|
}
|
|
1076
1145
|
}
|
|
1077
1146
|
function scaffoldModuleBoilerplate(moduleDir, moduleName) {
|
|
1078
|
-
|
|
1147
|
+
const templateDir = path.join(PACKAGE_ROOT, "templates", "scaffold", "module");
|
|
1148
|
+
const erpKitVersion = readErpKitVersion();
|
|
1149
|
+
copyTemplateDir(templateDir, moduleDir, {
|
|
1150
|
+
"template-module": moduleName,
|
|
1151
|
+
"\"workspace:*\"": `"${erpKitVersion}"`
|
|
1152
|
+
}, new Set([
|
|
1153
|
+
"package.json",
|
|
1154
|
+
"permissions.ts",
|
|
1155
|
+
"tailor.config.ts"
|
|
1156
|
+
]));
|
|
1079
1157
|
}
|
|
1080
1158
|
function scaffoldAppBoilerplate(appDir, appName) {
|
|
1081
1159
|
const templateDir = path.join(PACKAGE_ROOT, "templates", "scaffold", "app");
|
|
@@ -1496,11 +1574,396 @@ function runGenerateAppCode(appPath) {
|
|
|
1496
1574
|
return 0;
|
|
1497
1575
|
}
|
|
1498
1576
|
//#endregion
|
|
1577
|
+
//#region src/shared/uuidv5.ts
|
|
1578
|
+
/**
|
|
1579
|
+
* Generates a deterministic UUID v5 from a namespace and name.
|
|
1580
|
+
* Uses SHA-1 hashing per RFC 4122 §4.3.
|
|
1581
|
+
*/
|
|
1582
|
+
function uuidv5(namespace, name) {
|
|
1583
|
+
const hash = createHash("sha1").update(namespace).update(name).digest();
|
|
1584
|
+
hash[6] = hash[6] & 15 | 80;
|
|
1585
|
+
hash[8] = hash[8] & 63 | 128;
|
|
1586
|
+
const hex = hash.toString("hex");
|
|
1587
|
+
return [
|
|
1588
|
+
hex.slice(0, 8),
|
|
1589
|
+
hex.slice(8, 12),
|
|
1590
|
+
hex.slice(12, 16),
|
|
1591
|
+
hex.slice(16, 20),
|
|
1592
|
+
hex.slice(20, 32)
|
|
1593
|
+
].join("-");
|
|
1594
|
+
}
|
|
1595
|
+
//#endregion
|
|
1596
|
+
//#region src/modules/primitives/seed/uomCategories.ts
|
|
1597
|
+
const NS$3 = "erp-kit:primitives";
|
|
1598
|
+
const uomCategoryIds = {
|
|
1599
|
+
Weight: uuidv5(NS$3, "uom-category:Weight"),
|
|
1600
|
+
Length: uuidv5(NS$3, "uom-category:Length"),
|
|
1601
|
+
Volume: uuidv5(NS$3, "uom-category:Volume"),
|
|
1602
|
+
Area: uuidv5(NS$3, "uom-category:Area"),
|
|
1603
|
+
Time: uuidv5(NS$3, "uom-category:Time"),
|
|
1604
|
+
Quantity: uuidv5(NS$3, "uom-category:Quantity")
|
|
1605
|
+
};
|
|
1606
|
+
const uomCategories = {
|
|
1607
|
+
[uomCategoryIds.Weight]: {
|
|
1608
|
+
name: "Weight",
|
|
1609
|
+
description: "Mass and weight measurement",
|
|
1610
|
+
isActive: true
|
|
1611
|
+
},
|
|
1612
|
+
[uomCategoryIds.Length]: {
|
|
1613
|
+
name: "Length",
|
|
1614
|
+
description: "Length and distance measurement",
|
|
1615
|
+
isActive: true
|
|
1616
|
+
},
|
|
1617
|
+
[uomCategoryIds.Volume]: {
|
|
1618
|
+
name: "Volume",
|
|
1619
|
+
description: "Volume and capacity measurement",
|
|
1620
|
+
isActive: true
|
|
1621
|
+
},
|
|
1622
|
+
[uomCategoryIds.Area]: {
|
|
1623
|
+
name: "Area",
|
|
1624
|
+
description: "Surface area measurement",
|
|
1625
|
+
isActive: true
|
|
1626
|
+
},
|
|
1627
|
+
[uomCategoryIds.Time]: {
|
|
1628
|
+
name: "Time",
|
|
1629
|
+
description: "Time duration measurement",
|
|
1630
|
+
isActive: true
|
|
1631
|
+
},
|
|
1632
|
+
[uomCategoryIds.Quantity]: {
|
|
1633
|
+
name: "Quantity",
|
|
1634
|
+
description: "Discrete count measurement",
|
|
1635
|
+
isActive: true
|
|
1636
|
+
}
|
|
1637
|
+
};
|
|
1638
|
+
//#endregion
|
|
1639
|
+
//#region src/modules/primitives/seed/units.ts
|
|
1640
|
+
const NS$2 = "erp-kit:primitives";
|
|
1641
|
+
const unitIds = {
|
|
1642
|
+
kg: uuidv5(NS$2, "unit:kg"),
|
|
1643
|
+
g: uuidv5(NS$2, "unit:g"),
|
|
1644
|
+
lb: uuidv5(NS$2, "unit:lb"),
|
|
1645
|
+
oz: uuidv5(NS$2, "unit:oz"),
|
|
1646
|
+
m: uuidv5(NS$2, "unit:m"),
|
|
1647
|
+
cm: uuidv5(NS$2, "unit:cm"),
|
|
1648
|
+
ft: uuidv5(NS$2, "unit:ft"),
|
|
1649
|
+
in: uuidv5(NS$2, "unit:in"),
|
|
1650
|
+
L: uuidv5(NS$2, "unit:L"),
|
|
1651
|
+
mL: uuidv5(NS$2, "unit:mL"),
|
|
1652
|
+
gal: uuidv5(NS$2, "unit:gal"),
|
|
1653
|
+
sqm: uuidv5(NS$2, "unit:sqm"),
|
|
1654
|
+
sqft: uuidv5(NS$2, "unit:sqft"),
|
|
1655
|
+
hr: uuidv5(NS$2, "unit:hr"),
|
|
1656
|
+
min: uuidv5(NS$2, "unit:min"),
|
|
1657
|
+
s: uuidv5(NS$2, "unit:s"),
|
|
1658
|
+
ea: uuidv5(NS$2, "unit:ea"),
|
|
1659
|
+
dz: uuidv5(NS$2, "unit:dz"),
|
|
1660
|
+
pk: uuidv5(NS$2, "unit:pk")
|
|
1661
|
+
};
|
|
1662
|
+
const units = {
|
|
1663
|
+
[unitIds.kg]: {
|
|
1664
|
+
name: "Kilogram",
|
|
1665
|
+
symbol: "kg",
|
|
1666
|
+
categoryId: uomCategoryIds.Weight,
|
|
1667
|
+
conversionFactor: 1,
|
|
1668
|
+
roundingPrecision: 2,
|
|
1669
|
+
isActive: true
|
|
1670
|
+
},
|
|
1671
|
+
[unitIds.g]: {
|
|
1672
|
+
name: "Gram",
|
|
1673
|
+
symbol: "g",
|
|
1674
|
+
categoryId: uomCategoryIds.Weight,
|
|
1675
|
+
conversionFactor: .001,
|
|
1676
|
+
roundingPrecision: 0,
|
|
1677
|
+
isActive: true
|
|
1678
|
+
},
|
|
1679
|
+
[unitIds.lb]: {
|
|
1680
|
+
name: "Pound",
|
|
1681
|
+
symbol: "lb",
|
|
1682
|
+
categoryId: uomCategoryIds.Weight,
|
|
1683
|
+
conversionFactor: .453592,
|
|
1684
|
+
roundingPrecision: 2,
|
|
1685
|
+
isActive: true
|
|
1686
|
+
},
|
|
1687
|
+
[unitIds.oz]: {
|
|
1688
|
+
name: "Ounce",
|
|
1689
|
+
symbol: "oz",
|
|
1690
|
+
categoryId: uomCategoryIds.Weight,
|
|
1691
|
+
conversionFactor: .0283495,
|
|
1692
|
+
roundingPrecision: 2,
|
|
1693
|
+
isActive: true
|
|
1694
|
+
},
|
|
1695
|
+
[unitIds.m]: {
|
|
1696
|
+
name: "Meter",
|
|
1697
|
+
symbol: "m",
|
|
1698
|
+
categoryId: uomCategoryIds.Length,
|
|
1699
|
+
conversionFactor: 1,
|
|
1700
|
+
roundingPrecision: 2,
|
|
1701
|
+
isActive: true
|
|
1702
|
+
},
|
|
1703
|
+
[unitIds.cm]: {
|
|
1704
|
+
name: "Centimeter",
|
|
1705
|
+
symbol: "cm",
|
|
1706
|
+
categoryId: uomCategoryIds.Length,
|
|
1707
|
+
conversionFactor: .01,
|
|
1708
|
+
roundingPrecision: 0,
|
|
1709
|
+
isActive: true
|
|
1710
|
+
},
|
|
1711
|
+
[unitIds.ft]: {
|
|
1712
|
+
name: "Foot",
|
|
1713
|
+
symbol: "ft",
|
|
1714
|
+
categoryId: uomCategoryIds.Length,
|
|
1715
|
+
conversionFactor: .3048,
|
|
1716
|
+
roundingPrecision: 2,
|
|
1717
|
+
isActive: true
|
|
1718
|
+
},
|
|
1719
|
+
[unitIds.in]: {
|
|
1720
|
+
name: "Inch",
|
|
1721
|
+
symbol: "in",
|
|
1722
|
+
categoryId: uomCategoryIds.Length,
|
|
1723
|
+
conversionFactor: .0254,
|
|
1724
|
+
roundingPrecision: 2,
|
|
1725
|
+
isActive: true
|
|
1726
|
+
},
|
|
1727
|
+
[unitIds.L]: {
|
|
1728
|
+
name: "Liter",
|
|
1729
|
+
symbol: "L",
|
|
1730
|
+
categoryId: uomCategoryIds.Volume,
|
|
1731
|
+
conversionFactor: 1,
|
|
1732
|
+
roundingPrecision: 2,
|
|
1733
|
+
isActive: true
|
|
1734
|
+
},
|
|
1735
|
+
[unitIds.mL]: {
|
|
1736
|
+
name: "Milliliter",
|
|
1737
|
+
symbol: "mL",
|
|
1738
|
+
categoryId: uomCategoryIds.Volume,
|
|
1739
|
+
conversionFactor: .001,
|
|
1740
|
+
roundingPrecision: 0,
|
|
1741
|
+
isActive: true
|
|
1742
|
+
},
|
|
1743
|
+
[unitIds.gal]: {
|
|
1744
|
+
name: "Gallon",
|
|
1745
|
+
symbol: "gal",
|
|
1746
|
+
categoryId: uomCategoryIds.Volume,
|
|
1747
|
+
conversionFactor: 3.78541,
|
|
1748
|
+
roundingPrecision: 2,
|
|
1749
|
+
isActive: true
|
|
1750
|
+
},
|
|
1751
|
+
[unitIds.sqm]: {
|
|
1752
|
+
name: "Square Meter",
|
|
1753
|
+
symbol: "m²",
|
|
1754
|
+
categoryId: uomCategoryIds.Area,
|
|
1755
|
+
conversionFactor: 1,
|
|
1756
|
+
roundingPrecision: 2,
|
|
1757
|
+
isActive: true
|
|
1758
|
+
},
|
|
1759
|
+
[unitIds.sqft]: {
|
|
1760
|
+
name: "Square Foot",
|
|
1761
|
+
symbol: "ft²",
|
|
1762
|
+
categoryId: uomCategoryIds.Area,
|
|
1763
|
+
conversionFactor: .092903,
|
|
1764
|
+
roundingPrecision: 2,
|
|
1765
|
+
isActive: true
|
|
1766
|
+
},
|
|
1767
|
+
[unitIds.hr]: {
|
|
1768
|
+
name: "Hour",
|
|
1769
|
+
symbol: "hr",
|
|
1770
|
+
categoryId: uomCategoryIds.Time,
|
|
1771
|
+
conversionFactor: 1,
|
|
1772
|
+
roundingPrecision: 2,
|
|
1773
|
+
isActive: true
|
|
1774
|
+
},
|
|
1775
|
+
[unitIds.min]: {
|
|
1776
|
+
name: "Minute",
|
|
1777
|
+
symbol: "min",
|
|
1778
|
+
categoryId: uomCategoryIds.Time,
|
|
1779
|
+
conversionFactor: 1 / 60,
|
|
1780
|
+
roundingPrecision: 0,
|
|
1781
|
+
isActive: true
|
|
1782
|
+
},
|
|
1783
|
+
[unitIds.s]: {
|
|
1784
|
+
name: "Second",
|
|
1785
|
+
symbol: "s",
|
|
1786
|
+
categoryId: uomCategoryIds.Time,
|
|
1787
|
+
conversionFactor: 1 / 3600,
|
|
1788
|
+
roundingPrecision: 0,
|
|
1789
|
+
isActive: true
|
|
1790
|
+
},
|
|
1791
|
+
[unitIds.ea]: {
|
|
1792
|
+
name: "Each",
|
|
1793
|
+
symbol: "ea",
|
|
1794
|
+
categoryId: uomCategoryIds.Quantity,
|
|
1795
|
+
conversionFactor: 1,
|
|
1796
|
+
roundingPrecision: 0,
|
|
1797
|
+
isActive: true
|
|
1798
|
+
},
|
|
1799
|
+
[unitIds.dz]: {
|
|
1800
|
+
name: "Dozen",
|
|
1801
|
+
symbol: "dz",
|
|
1802
|
+
categoryId: uomCategoryIds.Quantity,
|
|
1803
|
+
conversionFactor: 12,
|
|
1804
|
+
roundingPrecision: 0,
|
|
1805
|
+
isActive: true
|
|
1806
|
+
},
|
|
1807
|
+
[unitIds.pk]: {
|
|
1808
|
+
name: "Pack",
|
|
1809
|
+
symbol: "pk",
|
|
1810
|
+
categoryId: uomCategoryIds.Quantity,
|
|
1811
|
+
conversionFactor: 1,
|
|
1812
|
+
roundingPrecision: 0,
|
|
1813
|
+
isActive: true
|
|
1814
|
+
}
|
|
1815
|
+
};
|
|
1816
|
+
//#endregion
|
|
1817
|
+
//#region src/modules/primitives/seed/currencies.ts
|
|
1818
|
+
const NS$1 = "erp-kit:primitives";
|
|
1819
|
+
const currencyIds = {
|
|
1820
|
+
USD: uuidv5(NS$1, "currency:USD"),
|
|
1821
|
+
EUR: uuidv5(NS$1, "currency:EUR"),
|
|
1822
|
+
GBP: uuidv5(NS$1, "currency:GBP"),
|
|
1823
|
+
JPY: uuidv5(NS$1, "currency:JPY"),
|
|
1824
|
+
CNY: uuidv5(NS$1, "currency:CNY")
|
|
1825
|
+
};
|
|
1826
|
+
const currencies = {
|
|
1827
|
+
[currencyIds.USD]: {
|
|
1828
|
+
code: "USD",
|
|
1829
|
+
name: "US Dollar",
|
|
1830
|
+
symbol: "$",
|
|
1831
|
+
decimalPlaces: 2,
|
|
1832
|
+
isBaseCurrency: true,
|
|
1833
|
+
isActive: true
|
|
1834
|
+
},
|
|
1835
|
+
[currencyIds.EUR]: {
|
|
1836
|
+
code: "EUR",
|
|
1837
|
+
name: "Euro",
|
|
1838
|
+
symbol: "€",
|
|
1839
|
+
decimalPlaces: 2,
|
|
1840
|
+
isBaseCurrency: false,
|
|
1841
|
+
isActive: true
|
|
1842
|
+
},
|
|
1843
|
+
[currencyIds.GBP]: {
|
|
1844
|
+
code: "GBP",
|
|
1845
|
+
name: "British Pound",
|
|
1846
|
+
symbol: "£",
|
|
1847
|
+
decimalPlaces: 2,
|
|
1848
|
+
isBaseCurrency: false,
|
|
1849
|
+
isActive: true
|
|
1850
|
+
},
|
|
1851
|
+
[currencyIds.JPY]: {
|
|
1852
|
+
code: "JPY",
|
|
1853
|
+
name: "Japanese Yen",
|
|
1854
|
+
symbol: "¥",
|
|
1855
|
+
decimalPlaces: 0,
|
|
1856
|
+
isBaseCurrency: false,
|
|
1857
|
+
isActive: true
|
|
1858
|
+
},
|
|
1859
|
+
[currencyIds.CNY]: {
|
|
1860
|
+
code: "CNY",
|
|
1861
|
+
name: "Chinese Yuan",
|
|
1862
|
+
symbol: "¥",
|
|
1863
|
+
decimalPlaces: 2,
|
|
1864
|
+
isBaseCurrency: false,
|
|
1865
|
+
isActive: true
|
|
1866
|
+
}
|
|
1867
|
+
};
|
|
1868
|
+
//#endregion
|
|
1869
|
+
//#region src/modules/primitives/seed/exchangeRates.ts
|
|
1870
|
+
const NS = "erp-kit:primitives";
|
|
1871
|
+
const exchangeRateIds = {
|
|
1872
|
+
"USD-EUR": uuidv5(NS, "rate:USD-EUR"),
|
|
1873
|
+
"USD-GBP": uuidv5(NS, "rate:USD-GBP"),
|
|
1874
|
+
"USD-JPY": uuidv5(NS, "rate:USD-JPY"),
|
|
1875
|
+
"USD-CNY": uuidv5(NS, "rate:USD-CNY")
|
|
1876
|
+
};
|
|
1877
|
+
const exchangeRates = {
|
|
1878
|
+
[exchangeRateIds["USD-EUR"]]: {
|
|
1879
|
+
sourceCurrencyId: currencyIds.USD,
|
|
1880
|
+
targetCurrencyId: currencyIds.EUR,
|
|
1881
|
+
rate: .92,
|
|
1882
|
+
effectiveDate: /* @__PURE__ */ new Date("2025-01-01")
|
|
1883
|
+
},
|
|
1884
|
+
[exchangeRateIds["USD-GBP"]]: {
|
|
1885
|
+
sourceCurrencyId: currencyIds.USD,
|
|
1886
|
+
targetCurrencyId: currencyIds.GBP,
|
|
1887
|
+
rate: .79,
|
|
1888
|
+
effectiveDate: /* @__PURE__ */ new Date("2025-01-01")
|
|
1889
|
+
},
|
|
1890
|
+
[exchangeRateIds["USD-JPY"]]: {
|
|
1891
|
+
sourceCurrencyId: currencyIds.USD,
|
|
1892
|
+
targetCurrencyId: currencyIds.JPY,
|
|
1893
|
+
rate: 148.5,
|
|
1894
|
+
effectiveDate: /* @__PURE__ */ new Date("2025-01-01")
|
|
1895
|
+
},
|
|
1896
|
+
[exchangeRateIds["USD-CNY"]]: {
|
|
1897
|
+
sourceCurrencyId: currencyIds.USD,
|
|
1898
|
+
targetCurrencyId: currencyIds.CNY,
|
|
1899
|
+
rate: 7.24,
|
|
1900
|
+
effectiveDate: /* @__PURE__ */ new Date("2025-01-01")
|
|
1901
|
+
}
|
|
1902
|
+
};
|
|
1903
|
+
//#endregion
|
|
1904
|
+
//#region src/generator/generate-seed.ts
|
|
1905
|
+
const INTERNAL_SEED = { primitives: /* @__PURE__ */ __exportAll({
|
|
1906
|
+
Currency: () => currencies,
|
|
1907
|
+
ExchangeRate: () => exchangeRates,
|
|
1908
|
+
Unit: () => units,
|
|
1909
|
+
UoMCategory: () => uomCategories,
|
|
1910
|
+
currencyIds: () => currencyIds,
|
|
1911
|
+
unitIds: () => unitIds,
|
|
1912
|
+
uomCategoryIds: () => uomCategoryIds
|
|
1913
|
+
}) };
|
|
1914
|
+
function mapToJsonl(data) {
|
|
1915
|
+
return Object.entries(data).map(([id, row]) => JSON.stringify({
|
|
1916
|
+
id,
|
|
1917
|
+
...row
|
|
1918
|
+
})).join("\n") + "\n";
|
|
1919
|
+
}
|
|
1920
|
+
function capitalize(s) {
|
|
1921
|
+
return s.charAt(0).toUpperCase() + s.slice(1);
|
|
1922
|
+
}
|
|
1923
|
+
/**
|
|
1924
|
+
* Checks if a value is a seed data map: Record<string, Record<string, unknown>>.
|
|
1925
|
+
* Distinguishes from ID maps (Record<string, string>) by checking nested values.
|
|
1926
|
+
*/
|
|
1927
|
+
function isSeedMap(value) {
|
|
1928
|
+
if (typeof value !== "object" || value === null || Array.isArray(value)) return false;
|
|
1929
|
+
const entries = Object.entries(value);
|
|
1930
|
+
if (entries.length === 0) return false;
|
|
1931
|
+
return entries.every(([, v]) => typeof v === "object" && v !== null && !Array.isArray(v));
|
|
1932
|
+
}
|
|
1933
|
+
function runGenerateSeed(appPath) {
|
|
1934
|
+
const seedDir = path.join(appPath, "backend", "seed", "data");
|
|
1935
|
+
fs.mkdirSync(seedDir, { recursive: true });
|
|
1936
|
+
let written = 0;
|
|
1937
|
+
let skipped = 0;
|
|
1938
|
+
const modulesWithSeed = [];
|
|
1939
|
+
for (const [moduleName, mod] of Object.entries(INTERNAL_SEED)) {
|
|
1940
|
+
const entries = Object.entries(mod).filter(([, v]) => isSeedMap(v));
|
|
1941
|
+
if (entries.length === 0) continue;
|
|
1942
|
+
modulesWithSeed.push(moduleName);
|
|
1943
|
+
for (const [exportName, data] of entries) {
|
|
1944
|
+
const fileName = capitalize(exportName);
|
|
1945
|
+
const filePath = path.join(seedDir, `${fileName}.jsonl`);
|
|
1946
|
+
if (fs.existsSync(filePath)) {
|
|
1947
|
+
console.log(` skipped ${fileName}.jsonl (already exists)`);
|
|
1948
|
+
skipped++;
|
|
1949
|
+
continue;
|
|
1950
|
+
}
|
|
1951
|
+
const rowCount = Object.keys(data).length;
|
|
1952
|
+
fs.writeFileSync(filePath, mapToJsonl(data));
|
|
1953
|
+
console.log(` wrote ${fileName}.jsonl (${rowCount} rows)`);
|
|
1954
|
+
written++;
|
|
1955
|
+
}
|
|
1956
|
+
}
|
|
1957
|
+
console.log(`\nModules with seed data: ${modulesWithSeed.join(", ") || "none"}`);
|
|
1958
|
+
console.log(`Generated ${written} file(s), skipped ${skipped} existing`);
|
|
1959
|
+
return 0;
|
|
1960
|
+
}
|
|
1961
|
+
//#endregion
|
|
1499
1962
|
//#region src/commands/app/index.ts
|
|
1500
1963
|
const cwd$1 = process.cwd();
|
|
1501
1964
|
const pathArgs = z.object({ path: arg(z.string(), {
|
|
1502
1965
|
alias: "p",
|
|
1503
|
-
description: "Path to app
|
|
1966
|
+
description: "Path to app directory"
|
|
1504
1967
|
}) });
|
|
1505
1968
|
const checkCommand = defineCommand({
|
|
1506
1969
|
name: "check",
|
|
@@ -1547,7 +2010,7 @@ const initCommand$1 = defineCommand({
|
|
|
1547
2010
|
});
|
|
1548
2011
|
const generateCommand = defineCommand({
|
|
1549
2012
|
name: "generate",
|
|
1550
|
-
description: "Generate docs and
|
|
2013
|
+
description: "Generate docs, code, and seed data for an app",
|
|
1551
2014
|
subCommands: {
|
|
1552
2015
|
doc: defineCommand({
|
|
1553
2016
|
name: "doc",
|
|
@@ -1579,12 +2042,23 @@ const generateCommand = defineCommand({
|
|
|
1579
2042
|
return exitCode === 0 ? success() : silentFailure(exitCode);
|
|
1580
2043
|
});
|
|
1581
2044
|
}
|
|
2045
|
+
}),
|
|
2046
|
+
seed: defineCommand({
|
|
2047
|
+
name: "seed",
|
|
2048
|
+
description: "Generate seed data from module defaults",
|
|
2049
|
+
args: pathArgs,
|
|
2050
|
+
run: (args) => {
|
|
2051
|
+
return executeCommand(() => {
|
|
2052
|
+
const exitCode = runGenerateSeed(path.resolve(cwd$1, args.path));
|
|
2053
|
+
return exitCode === 0 ? success() : silentFailure(exitCode);
|
|
2054
|
+
});
|
|
2055
|
+
}
|
|
1582
2056
|
})
|
|
1583
2057
|
}
|
|
1584
2058
|
});
|
|
1585
2059
|
const appCommand = defineCommand({
|
|
1586
2060
|
name: "app",
|
|
1587
|
-
description: "App
|
|
2061
|
+
description: "App management",
|
|
1588
2062
|
subCommands: {
|
|
1589
2063
|
check: checkCommand,
|
|
1590
2064
|
"sync-check": syncCheckCommand,
|
|
@@ -1904,7 +2378,6 @@ const mockCommand = defineCommand({
|
|
|
1904
2378
|
//#endregion
|
|
1905
2379
|
//#region src/commands/doc/modules.ts
|
|
1906
2380
|
const MODULES_DIR$2 = join(PACKAGE_ROOT, "src", "modules");
|
|
1907
|
-
const EXCLUDED_DIRS$2 = new Set(["shared", "testing"]);
|
|
1908
2381
|
function countDocs(dir) {
|
|
1909
2382
|
if (!existsSync(dir)) return 0;
|
|
1910
2383
|
return readdirSync(dir).filter((f) => f.endsWith(".md")).length;
|
|
@@ -1931,7 +2404,7 @@ function extractDependencies(readmePath) {
|
|
|
1931
2404
|
}
|
|
1932
2405
|
function getModuleOverviews() {
|
|
1933
2406
|
if (!existsSync(MODULES_DIR$2)) return [];
|
|
1934
|
-
return readdirSync(MODULES_DIR$2, { withFileTypes: true }).filter((d) => d.isDirectory()
|
|
2407
|
+
return readdirSync(MODULES_DIR$2, { withFileTypes: true }).filter((d) => d.isDirectory()).map((d) => {
|
|
1935
2408
|
const modDir = join(MODULES_DIR$2, d.name);
|
|
1936
2409
|
const readmePath = join(modDir, "README.md");
|
|
1937
2410
|
return {
|
|
@@ -1971,7 +2444,6 @@ function runDocModules(format = "text") {
|
|
|
1971
2444
|
//#endregion
|
|
1972
2445
|
//#region src/commands/doc/module.ts
|
|
1973
2446
|
const MODULES_DIR$1 = join(PACKAGE_ROOT, "src", "modules");
|
|
1974
|
-
const EXCLUDED_DIRS$1 = new Set(["shared", "testing"]);
|
|
1975
2447
|
const DOC_TYPE_MAP$1 = {
|
|
1976
2448
|
command: MODULE_PATHS.docs.commands,
|
|
1977
2449
|
query: MODULE_PATHS.docs.queries,
|
|
@@ -1987,14 +2459,14 @@ function formatDocList(type, names) {
|
|
|
1987
2459
|
return `${type}: ${names.join(", ")}`;
|
|
1988
2460
|
}
|
|
1989
2461
|
function runDocModule(moduleName, docType, docName, format = "text") {
|
|
1990
|
-
if (!existsSync(MODULES_DIR$1)
|
|
2462
|
+
if (!existsSync(MODULES_DIR$1)) {
|
|
1991
2463
|
console.error(`Module not found: ${moduleName}`);
|
|
1992
2464
|
return 1;
|
|
1993
2465
|
}
|
|
1994
2466
|
const modDir = join(MODULES_DIR$1, moduleName);
|
|
1995
2467
|
if (!existsSync(modDir)) {
|
|
1996
2468
|
console.error(`Module not found: ${moduleName}`);
|
|
1997
|
-
const available = readdirSync(MODULES_DIR$1, { withFileTypes: true }).filter((d) => d.isDirectory()
|
|
2469
|
+
const available = readdirSync(MODULES_DIR$1, { withFileTypes: true }).filter((d) => d.isDirectory()).map((d) => d.name).sort();
|
|
1998
2470
|
console.error(`Available modules: ${available.join(", ")}`);
|
|
1999
2471
|
return 1;
|
|
2000
2472
|
}
|
|
@@ -2050,7 +2522,6 @@ function runDocModule(moduleName, docType, docName, format = "text") {
|
|
|
2050
2522
|
//#endregion
|
|
2051
2523
|
//#region src/commands/doc/search.ts
|
|
2052
2524
|
const MODULES_DIR = join(PACKAGE_ROOT, "src", "modules");
|
|
2053
|
-
const EXCLUDED_DIRS = new Set(["shared", "testing"]);
|
|
2054
2525
|
const DOC_TYPE_MAP = {
|
|
2055
2526
|
command: MODULE_PATHS.docs.commands,
|
|
2056
2527
|
query: MODULE_PATHS.docs.queries,
|
|
@@ -2075,7 +2546,7 @@ function searchFile(filePath, query, module, type, name) {
|
|
|
2075
2546
|
function searchModuleDocs(query, typeFilter) {
|
|
2076
2547
|
if (!existsSync(MODULES_DIR)) return [];
|
|
2077
2548
|
const results = [];
|
|
2078
|
-
const modules = readdirSync(MODULES_DIR, { withFileTypes: true }).filter((d) => d.isDirectory()
|
|
2549
|
+
const modules = readdirSync(MODULES_DIR, { withFileTypes: true }).filter((d) => d.isDirectory()).sort((a, b) => a.name.localeCompare(b.name));
|
|
2079
2550
|
for (const mod of modules) {
|
|
2080
2551
|
const modDir = join(MODULES_DIR, mod.name);
|
|
2081
2552
|
if (!typeFilter || typeFilter === "readme") results.push(...searchFile(join(modDir, "README.md"), query, mod.name, "readme", "README"));
|