diff --git a/service/app/src/main/kotlin/io/miragon/blueprint/adapter/process/BikeLeasingProcessProcessApi.kt b/service/app/src/main/kotlin/io/miragon/blueprint/adapter/process/BikeLeasingProcessProcessApi.kt index 0e5d2eb..ebf8e7f 100644 --- a/service/app/src/main/kotlin/io/miragon/blueprint/adapter/process/BikeLeasingProcessProcessApi.kt +++ b/service/app/src/main/kotlin/io/miragon/blueprint/adapter/process/BikeLeasingProcessProcessApi.kt @@ -27,18 +27,6 @@ object BikeLeasingProcessProcessApi { * Worker runtime code rarely needs these. */ object Elements { - val BOUNDARY_APPLICATION_INVALID: ElementId = ElementId("boundary_applicationInvalid") - - val BOUNDARY_COMPENSATE_CONTRACT: ElementId = ElementId("boundary_compensateContract") - - val BOUNDARY_COMPENSATE_INSURANCE: ElementId = ElementId("boundary_compensateInsurance") - - val BOUNDARY_COMPENSATE_ORDER: ElementId = ElementId("boundary_compensateOrder") - - val BOUNDARY_CONTRACT_NOT_SIGNED: ElementId = ElementId("boundary_contractNotSigned") - - val BOUNDARY_SIGNATURE_REMINDER: ElementId = ElementId("boundary_signatureReminder") - val BUSINESS_RULE_TASK_CHECK_CREDIT_RATING: ElementId = ElementId("businessRuleTask_checkCreditRating") @@ -60,6 +48,16 @@ object BikeLeasingProcessProcessApi { val END_EVENT_PROSPECT_REMINDED: ElementId = ElementId("endEvent_prospectReminded") + val EVENT_APPLICATION_INVALID: ElementId = ElementId("event_applicationInvalid") + + val EVENT_COMPENSATE_CONTRACT: ElementId = ElementId("event_compensateContract") + + val EVENT_COMPENSATE_INSURANCE: ElementId = ElementId("event_compensateInsurance") + + val EVENT_COMPENSATE_ORDER: ElementId = ElementId("event_compensateOrder") + + val EVENT_CONTRACT_NOT_SIGNED: ElementId = ElementId("event_contractNotSigned") + val EVENT_CONTRACT_SIGNED: ElementId = ElementId("event_contractSigned") val EVENT_HANDOVER_REPORTED: ElementId = ElementId("event_handoverReported") @@ -68,6 +66,8 @@ object BikeLeasingProcessProcessApi { val EVENT_SIGNATURE_DEADLINE: ElementId = ElementId("event_signatureDeadline") + val EVENT_SIGNATURE_REMINDER: ElementId = ElementId("event_signatureReminder") + val EVENT_TRIGGER_REVERSAL: ElementId = ElementId("event_triggerReversal") val EVENT_WITHDRAWAL_PERIOD_ELAPSED: ElementId = @@ -87,6 +87,8 @@ object BikeLeasingProcessProcessApi { val GATEWAY_JOIN: ElementId = ElementId("gateway_join") + val GATEWAY_REJECTION_JOIN: ElementId = ElementId("gateway_rejectionJoin") + val SERVICE_TASK_CANCEL_CONTRACT: ElementId = ElementId("serviceTask_cancelContract") val SERVICE_TASK_CANCEL_POLICY: ElementId = ElementId("serviceTask_cancelPolicy") @@ -174,10 +176,10 @@ object BikeLeasingProcessProcessApi { } object Timers { - val BOUNDARY_SIGNATURE_REMINDER: BpmnTimer = BpmnTimer("Duration", "P7D") - val EVENT_SIGNATURE_DEADLINE: BpmnTimer = BpmnTimer("Duration", "P14D") + val EVENT_SIGNATURE_REMINDER: BpmnTimer = BpmnTimer("Duration", "P7D") + val EVENT_WITHDRAWAL_PERIOD_ELAPSED: BpmnTimer = BpmnTimer("Duration", "P14D") } @@ -192,11 +194,11 @@ object BikeLeasingProcessProcessApi { } object Compensations { - val BOUNDARY_COMPENSATE_CONTRACT: ElementId = ElementId("boundary_compensateContract") + val EVENT_COMPENSATE_CONTRACT: ElementId = ElementId("event_compensateContract") - val BOUNDARY_COMPENSATE_INSURANCE: ElementId = ElementId("boundary_compensateInsurance") + val EVENT_COMPENSATE_INSURANCE: ElementId = ElementId("event_compensateInsurance") - val BOUNDARY_COMPENSATE_ORDER: ElementId = ElementId("boundary_compensateOrder") + val EVENT_COMPENSATE_ORDER: ElementId = ElementId("event_compensateOrder") val EVENT_REVERSE_APPLICATION: ElementId = ElementId("event_reverseApplication") @@ -242,219 +244,225 @@ object BikeLeasingProcessProcessApi { * Worker code typically does not need these. */ object Flows { - val E_01: BpmnFlow = BpmnFlow( - id = "E01", - sourceRef = "startEvent_applicationWithdrawn", - targetRef = "event_reverseApplication", - ) - - val E_02: BpmnFlow = BpmnFlow( - id = "E02", - sourceRef = "event_reverseApplication", - targetRef = "serviceTask_sendCancellationConfirmation", - ) - - val FLOW_00_BCTYK: BpmnFlow = BpmnFlow( - id = "Flow_00bctyk", - name = "No", - sourceRef = "gateway_isSolvent", - targetRef = "serviceTask_sendRejection", - condition = $$"""${!solvent}""", - ) - - val FLOW_054_Y_6_AF: BpmnFlow = BpmnFlow( - id = "Flow_054y6af", - sourceRef = "serviceTask_sendRejection", - targetRef = "endEvent_applicationRejected", + val FLOW_ALTERNATIVE_FOUND: BpmnFlow = BpmnFlow( + id = "flow_alternativeFound", + name = "Yes", + sourceRef = "gateway_alternativeFound", + targetRef = "gateway_bikeSourceJoin", + isDefault = true, ) - val FLOW_08_AD_25_M: BpmnFlow = BpmnFlow( - id = "Flow_08ad25m", - sourceRef = "serviceTask_validateApplication", - targetRef = "businessRuleTask_checkCreditRating", + val FLOW_AWAIT_TO_DEADLINE: BpmnFlow = BpmnFlow( + id = "flow_awaitToDeadline", + sourceRef = "gateway_awaitSignature", + targetRef = "event_signatureDeadline", ) - val FLOW_0_BGYQYX: BpmnFlow = BpmnFlow( - id = "Flow_0bgyqyx", - sourceRef = "serviceTask_orderBike", - targetRef = "gateway_bikeAvailable", + val FLOW_AWAIT_TO_SIGNED: BpmnFlow = BpmnFlow( + id = "flow_awaitToSigned", + sourceRef = "gateway_awaitSignature", + targetRef = "event_contractSigned", ) - val FLOW_0_BMZE_33: BpmnFlow = BpmnFlow( - id = "Flow_0bmze33", - name = "No", - sourceRef = "gateway_alternativeFound", - targetRef = "event_triggerReversal", - condition = $$"""${!alternativeFound}""", + val FLOW_BIKE_AVAILABLE: BpmnFlow = BpmnFlow( + id = "flow_bikeAvailable", + name = "Yes", + sourceRef = "gateway_bikeAvailable", + targetRef = "gateway_join", + isDefault = true, ) - val FLOW_0_CQ_39_PQ: BpmnFlow = BpmnFlow( - id = "Flow_0cq39pq", - sourceRef = "startEvent_leasingRequestReceived", - targetRef = "serviceTask_validateApplication", + val FLOW_BIKE_SOURCE_TO_ORDER: BpmnFlow = BpmnFlow( + id = "flow_bikeSourceToOrder", + sourceRef = "gateway_bikeSourceJoin", + targetRef = "serviceTask_orderBike", ) - val FLOW_0_DBZ_33_I: BpmnFlow = BpmnFlow( - id = "Flow_0dbz33i", + val FLOW_BIKE_UNAVAILABLE: BpmnFlow = BpmnFlow( + id = "flow_bikeUnavailable", name = "No", sourceRef = "gateway_bikeAvailable", targetRef = "userTask_clarifyAlternative", condition = $$"""${!bikeAvailable}""", ) - val FLOW_0_DJ_8_BXX: BpmnFlow = BpmnFlow( - id = "Flow_0dj8bxx", - sourceRef = "gateway_isSolvent", - targetRef = "subProcess_concludeContract", - isDefault = true, + val FLOW_CLARIFY_TO_ALTERNATIVE_GATEWAY: BpmnFlow = BpmnFlow( + id = "flow_clarifyToAlternativeGateway", + sourceRef = "userTask_clarifyAlternative", + targetRef = "gateway_alternativeFound", ) - val FLOW_0_ETE_2_IJ: BpmnFlow = BpmnFlow( - id = "Flow_0ete2ij", - sourceRef = "gateway_awaitSignature", - targetRef = "event_contractSigned", + val FLOW_CONFIRMATION_TO_CANCELLED: BpmnFlow = BpmnFlow( + id = "flow_confirmationToCancelled", + sourceRef = "serviceTask_sendCancellationConfirmation", + targetRef = "endEvent_applicationCancelled", ) - val FLOW_0_FF_6219: BpmnFlow = BpmnFlow( - id = "Flow_0ff6219", + val FLOW_CONTRACT_CONCLUDED_TO_FORK: BpmnFlow = BpmnFlow( + id = "flow_contractConcludedToFork", + sourceRef = "subProcess_concludeContract", + targetRef = "gateway_fork", + ) + + val FLOW_CONTRACT_SENT_TO_AWAIT: BpmnFlow = BpmnFlow( + id = "flow_contractSentToAwait", sourceRef = "serviceTask_sendContract", targetRef = "gateway_awaitSignature", ) - val FLOW_0_M_29_PJ_0: BpmnFlow = BpmnFlow( - id = "Flow_0m29pj0", - sourceRef = "event_contractSigned", - targetRef = "endEvent_contractValid", + val FLOW_CREDIT_CHECK_TO_SOLVENCY: BpmnFlow = BpmnFlow( + id = "flow_creditCheckToSolvency", + sourceRef = "businessRuleTask_checkCreditRating", + targetRef = "gateway_isSolvent", ) - val FLOW_0_MSL_1_D_4: BpmnFlow = BpmnFlow( - id = "Flow_0msl1d4", - sourceRef = "event_handoverReported", - targetRef = "event_withdrawalPeriodElapsed", + val FLOW_DEADLINE_TO_NOT_SIGNED: BpmnFlow = BpmnFlow( + id = "flow_deadlineToNotSigned", + sourceRef = "event_signatureDeadline", + targetRef = "endEvent_notSigned", ) - val FLOW_0_NCGJTI: BpmnFlow = BpmnFlow( - id = "Flow_0ncgjti", - sourceRef = "gateway_fork", - targetRef = "gateway_bikeSourceJoin", + val FLOW_ELIGIBLE_TO_SEND_CONTRACT: BpmnFlow = BpmnFlow( + id = "flow_eligibleToSendContract", + sourceRef = "startEvent_customerEligible", + targetRef = "serviceTask_sendContract", ) - val FLOW_0_P_7_DDAM: BpmnFlow = BpmnFlow( - id = "Flow_0p7ddam", - sourceRef = "boundary_contractNotSigned", - targetRef = "serviceTask_sendRejection", + val FLOW_FORK_TO_BIKE_SOURCE: BpmnFlow = BpmnFlow( + id = "flow_forkToBikeSource", + sourceRef = "gateway_fork", + targetRef = "gateway_bikeSourceJoin", ) - val FLOW_0_SM_2_H_51: BpmnFlow = BpmnFlow( - id = "Flow_0sm2h51", + val FLOW_FORK_TO_INSURANCE: BpmnFlow = BpmnFlow( + id = "flow_forkToInsurance", sourceRef = "gateway_fork", targetRef = "serviceTask_issueInsurancePolicy", ) - val FLOW_0_TJIT_66: BpmnFlow = BpmnFlow( - id = "Flow_0tjit66", - sourceRef = "gateway_join", - targetRef = "event_handoverReported", + val FLOW_HANDOVER_TO_WITHDRAWAL_PERIOD: BpmnFlow = BpmnFlow( + id = "flow_handoverToWithdrawalPeriod", + sourceRef = "event_handoverReported", + targetRef = "event_withdrawalPeriodElapsed", ) - val FLOW_0_Z_1_VQEV: BpmnFlow = BpmnFlow( - id = "Flow_0z1vqev", - sourceRef = "serviceTask_sendCancellationConfirmation", - targetRef = "endEvent_applicationCancelled", + val FLOW_INSURANCE_TO_JOIN: BpmnFlow = BpmnFlow( + id = "flow_insuranceToJoin", + sourceRef = "serviceTask_issueInsurancePolicy", + targetRef = "gateway_join", ) - val FLOW_0_ZI_701_M: BpmnFlow = BpmnFlow( - id = "Flow_0zi701m", - sourceRef = "event_triggerReversal", - targetRef = "endEvent_contractCancelled", + val FLOW_INVALID_TO_REJECTION: BpmnFlow = BpmnFlow( + id = "flow_invalidToRejection", + sourceRef = "event_applicationInvalid", + targetRef = "gateway_rejectionJoin", ) - val FLOW_10_DSFGR: BpmnFlow = BpmnFlow( - id = "Flow_10dsfgr", - sourceRef = "businessRuleTask_checkCreditRating", - targetRef = "gateway_isSolvent", + val FLOW_JOIN_TO_HANDOVER: BpmnFlow = BpmnFlow( + id = "flow_joinToHandover", + sourceRef = "gateway_join", + targetRef = "event_handoverReported", ) - val FLOW_13_LI_8_F_0: BpmnFlow = BpmnFlow( - id = "Flow_13li8f0", - sourceRef = "serviceTask_issueInsurancePolicy", - targetRef = "gateway_join", + val FLOW_MAIL_TO_PROSPECT_REMINDED: BpmnFlow = BpmnFlow( + id = "flow_mailToProspectReminded", + sourceRef = "serviceTask_sendReminderMail", + targetRef = "endEvent_prospectReminded", ) - val FLOW_162_BKDK: BpmnFlow = BpmnFlow( - id = "Flow_162bkdk", - name = "Yes", + val FLOW_NO_ALTERNATIVE_FOUND: BpmnFlow = BpmnFlow( + id = "flow_noAlternativeFound", + name = "No", sourceRef = "gateway_alternativeFound", - targetRef = "gateway_bikeSourceJoin", - isDefault = true, + targetRef = "event_triggerReversal", + condition = $$"""${!alternativeFound}""", ) - val FLOW_17_ZD_4_N_8: BpmnFlow = BpmnFlow( - id = "Flow_17zd4n8", - sourceRef = "subProcess_concludeContract", - targetRef = "gateway_fork", + val FLOW_NOT_SIGNED_TO_REJECTION: BpmnFlow = BpmnFlow( + id = "flow_notSignedToRejection", + sourceRef = "event_contractNotSigned", + targetRef = "gateway_rejectionJoin", ) - val FLOW_1_CZYHQN: BpmnFlow = BpmnFlow( - id = "Flow_1czyhqn", - sourceRef = "event_withdrawalPeriodElapsed", - targetRef = "endEvent_leasingActive", + val FLOW_NOT_SOLVENT: BpmnFlow = BpmnFlow( + id = "flow_notSolvent", + name = "No", + sourceRef = "gateway_isSolvent", + targetRef = "gateway_rejectionJoin", + condition = $$"""${!solvent}""", + ) + + val FLOW_ORDERED_TO_BIKE_AVAILABLE: BpmnFlow = BpmnFlow( + id = "flow_orderedToBikeAvailable", + sourceRef = "serviceTask_orderBike", + targetRef = "gateway_bikeAvailable", ) - val FLOW_1_G_1_DICT: BpmnFlow = BpmnFlow( - id = "Flow_1g1dict", - sourceRef = "boundary_applicationInvalid", + val FLOW_REJECTION_JOINED: BpmnFlow = BpmnFlow( + id = "flow_rejectionJoined", + sourceRef = "gateway_rejectionJoin", targetRef = "serviceTask_sendRejection", ) - val FLOW_1_IT_2_FBS: BpmnFlow = BpmnFlow( - id = "Flow_1it2fbs", - sourceRef = "event_signatureDeadline", - targetRef = "endEvent_notSigned", + val FLOW_REJECTION_SENT: BpmnFlow = BpmnFlow( + id = "flow_rejectionSent", + sourceRef = "serviceTask_sendRejection", + targetRef = "endEvent_applicationRejected", ) - val FLOW_1_JRA_6_G_7: BpmnFlow = BpmnFlow( - id = "Flow_1jra6g7", - sourceRef = "startEvent_customerEligible", - targetRef = "serviceTask_sendContract", + val FLOW_REMINDER_TO_MAIL: BpmnFlow = BpmnFlow( + id = "flow_reminderToMail", + sourceRef = "event_signatureReminder", + targetRef = "serviceTask_sendReminderMail", ) - val FLOW_1_OUDVDG: BpmnFlow = BpmnFlow( - id = "Flow_1oudvdg", - sourceRef = "gateway_bikeSourceJoin", - targetRef = "serviceTask_orderBike", + val FLOW_REQUEST_TO_VALIDATION: BpmnFlow = BpmnFlow( + id = "flow_requestToValidation", + sourceRef = "startEvent_leasingRequestReceived", + targetRef = "serviceTask_validateApplication", ) - val FLOW_1_Q_8_AWSJ: BpmnFlow = BpmnFlow( - id = "Flow_1q8awsj", - sourceRef = "userTask_clarifyAlternative", - targetRef = "gateway_alternativeFound", + val FLOW_REVERSAL_TO_CONFIRMATION: BpmnFlow = BpmnFlow( + id = "flow_reversalToConfirmation", + sourceRef = "event_reverseApplication", + targetRef = "serviceTask_sendCancellationConfirmation", ) - val FLOW_1_QM_0_PCR: BpmnFlow = BpmnFlow( - id = "Flow_1qm0pcr", - name = "Yes", - sourceRef = "gateway_bikeAvailable", - targetRef = "gateway_join", + val FLOW_REVERSAL_TO_CONTRACT_CANCELLED: BpmnFlow = BpmnFlow( + id = "flow_reversalToContractCancelled", + sourceRef = "event_triggerReversal", + targetRef = "endEvent_contractCancelled", + ) + + val FLOW_SIGNED_TO_CONTRACT_VALID: BpmnFlow = BpmnFlow( + id = "flow_signedToContractValid", + sourceRef = "event_contractSigned", + targetRef = "endEvent_contractValid", + ) + + val FLOW_SOLVENT: BpmnFlow = BpmnFlow( + id = "flow_solvent", + sourceRef = "gateway_isSolvent", + targetRef = "subProcess_concludeContract", isDefault = true, ) - val FLOW_1_UEKRWV: BpmnFlow = BpmnFlow( - id = "Flow_1uekrwv", - sourceRef = "gateway_awaitSignature", - targetRef = "event_signatureDeadline", + val FLOW_VALIDATED_TO_CREDIT_CHECK: BpmnFlow = BpmnFlow( + id = "flow_validatedToCreditCheck", + sourceRef = "serviceTask_validateApplication", + targetRef = "businessRuleTask_checkCreditRating", ) - val FLOW_REMINDER_1: BpmnFlow = BpmnFlow( - id = "Flow_reminder1", - sourceRef = "boundary_signatureReminder", - targetRef = "serviceTask_sendReminderMail", + val FLOW_WITHDRAWAL_ELAPSED_TO_ACTIVE: BpmnFlow = BpmnFlow( + id = "flow_withdrawalElapsedToActive", + sourceRef = "event_withdrawalPeriodElapsed", + targetRef = "endEvent_leasingActive", ) - val FLOW_REMINDER_2: BpmnFlow = BpmnFlow( - id = "Flow_reminder2", - sourceRef = "serviceTask_sendReminderMail", - targetRef = "endEvent_prospectReminded", + val FLOW_WITHDRAWAL_TO_REVERSAL: BpmnFlow = BpmnFlow( + id = "flow_withdrawalToReversal", + sourceRef = "startEvent_applicationWithdrawn", + targetRef = "event_reverseApplication", ) } @@ -463,60 +471,6 @@ object BikeLeasingProcessProcessApi { * Intended for tooling and tests, not worker runtime code. */ object Relations { - val BOUNDARY_APPLICATION_INVALID: BpmnRelations = BpmnRelations( - name = "Application invalid", - previousElements = emptyList(), - followingElements = listOf("serviceTask_sendRejection"), - parentId = null, - attachedToRef = "serviceTask_validateApplication", - attachedElements = emptyList(), - ) - - val BOUNDARY_COMPENSATE_CONTRACT: BpmnRelations = BpmnRelations( - name = "Compensate contract", - previousElements = emptyList(), - followingElements = emptyList(), - parentId = null, - attachedToRef = "subProcess_concludeContract", - attachedElements = emptyList(), - ) - - val BOUNDARY_COMPENSATE_INSURANCE: BpmnRelations = BpmnRelations( - name = "Compensate policy", - previousElements = emptyList(), - followingElements = emptyList(), - parentId = null, - attachedToRef = "serviceTask_issueInsurancePolicy", - attachedElements = emptyList(), - ) - - val BOUNDARY_COMPENSATE_ORDER: BpmnRelations = BpmnRelations( - name = "Compensate order", - previousElements = emptyList(), - followingElements = emptyList(), - parentId = null, - attachedToRef = "serviceTask_orderBike", - attachedElements = emptyList(), - ) - - val BOUNDARY_CONTRACT_NOT_SIGNED: BpmnRelations = BpmnRelations( - name = "Contract not signed", - previousElements = emptyList(), - followingElements = listOf("serviceTask_sendRejection"), - parentId = null, - attachedToRef = "subProcess_concludeContract", - attachedElements = emptyList(), - ) - - val BOUNDARY_SIGNATURE_REMINDER: BpmnRelations = BpmnRelations( - name = "7 days", - previousElements = emptyList(), - followingElements = listOf("serviceTask_sendReminderMail"), - parentId = null, - attachedToRef = "subProcess_concludeContract", - attachedElements = emptyList(), - ) - val BUSINESS_RULE_TASK_CHECK_CREDIT_RATING: BpmnRelations = BpmnRelations( name = "Check credit rating", previousElements = listOf("serviceTask_validateApplication"), @@ -598,6 +552,51 @@ object BikeLeasingProcessProcessApi { attachedElements = emptyList(), ) + val EVENT_APPLICATION_INVALID: BpmnRelations = BpmnRelations( + name = "Application invalid", + previousElements = emptyList(), + followingElements = listOf("gateway_rejectionJoin"), + parentId = null, + attachedToRef = "serviceTask_validateApplication", + attachedElements = emptyList(), + ) + + val EVENT_COMPENSATE_CONTRACT: BpmnRelations = BpmnRelations( + name = "Compensate contract", + previousElements = emptyList(), + followingElements = emptyList(), + parentId = null, + attachedToRef = "subProcess_concludeContract", + attachedElements = emptyList(), + ) + + val EVENT_COMPENSATE_INSURANCE: BpmnRelations = BpmnRelations( + name = "Compensate policy", + previousElements = emptyList(), + followingElements = emptyList(), + parentId = null, + attachedToRef = "serviceTask_issueInsurancePolicy", + attachedElements = emptyList(), + ) + + val EVENT_COMPENSATE_ORDER: BpmnRelations = BpmnRelations( + name = "Compensate order", + previousElements = emptyList(), + followingElements = emptyList(), + parentId = null, + attachedToRef = "serviceTask_orderBike", + attachedElements = emptyList(), + ) + + val EVENT_CONTRACT_NOT_SIGNED: BpmnRelations = BpmnRelations( + name = "Contract not signed", + previousElements = emptyList(), + followingElements = listOf("gateway_rejectionJoin"), + parentId = null, + attachedToRef = "subProcess_concludeContract", + attachedElements = emptyList(), + ) + val EVENT_CONTRACT_SIGNED: BpmnRelations = BpmnRelations( name = "Contract signed", previousElements = listOf("gateway_awaitSignature"), @@ -634,6 +633,15 @@ object BikeLeasingProcessProcessApi { attachedElements = emptyList(), ) + val EVENT_SIGNATURE_REMINDER: BpmnRelations = BpmnRelations( + name = "7 days", + previousElements = emptyList(), + followingElements = listOf("serviceTask_sendReminderMail"), + parentId = null, + attachedToRef = "subProcess_concludeContract", + attachedElements = emptyList(), + ) + val EVENT_TRIGGER_REVERSAL: BpmnRelations = BpmnRelations( name = "Trigger reversal", previousElements = listOf("gateway_alternativeFound"), @@ -697,7 +705,7 @@ object BikeLeasingProcessProcessApi { val GATEWAY_IS_SOLVENT: BpmnRelations = BpmnRelations( name = "Solvent?", previousElements = listOf("businessRuleTask_checkCreditRating"), - followingElements = listOf("subProcess_concludeContract", "serviceTask_sendRejection"), + followingElements = listOf("subProcess_concludeContract", "gateway_rejectionJoin"), parentId = null, attachedToRef = null, attachedElements = emptyList(), @@ -711,6 +719,15 @@ object BikeLeasingProcessProcessApi { attachedElements = emptyList(), ) + val GATEWAY_REJECTION_JOIN: BpmnRelations = BpmnRelations( + name = "Rejection reason", + previousElements = listOf("event_applicationInvalid", "gateway_isSolvent", "event_contractNotSigned"), + followingElements = listOf("serviceTask_sendRejection"), + parentId = null, + attachedToRef = null, + attachedElements = emptyList(), + ) + val SERVICE_TASK_CANCEL_CONTRACT: BpmnRelations = BpmnRelations( name = "Cancel contract", previousElements = emptyList(), @@ -735,7 +752,7 @@ object BikeLeasingProcessProcessApi { followingElements = listOf("gateway_join"), parentId = null, attachedToRef = null, - attachedElements = listOf("boundary_compensateInsurance"), + attachedElements = listOf("event_compensateInsurance"), ) val SERVICE_TASK_ORDER_BIKE: BpmnRelations = BpmnRelations( @@ -744,7 +761,7 @@ object BikeLeasingProcessProcessApi { followingElements = listOf("gateway_bikeAvailable"), parentId = null, attachedToRef = null, - attachedElements = listOf("boundary_compensateOrder"), + attachedElements = listOf("event_compensateOrder"), ) val SERVICE_TASK_SEND_CANCELLATION_CONFIRMATION: BpmnRelations = BpmnRelations( @@ -767,7 +784,7 @@ object BikeLeasingProcessProcessApi { val SERVICE_TASK_SEND_REJECTION: BpmnRelations = BpmnRelations( name = "Send rejection", - previousElements = listOf("boundary_applicationInvalid", "gateway_isSolvent", "boundary_contractNotSigned"), + previousElements = listOf("gateway_rejectionJoin"), followingElements = listOf("endEvent_applicationRejected"), parentId = null, attachedToRef = null, @@ -776,7 +793,7 @@ object BikeLeasingProcessProcessApi { val SERVICE_TASK_SEND_REMINDER_MAIL: BpmnRelations = BpmnRelations( name = "Send reminder mail", - previousElements = listOf("boundary_signatureReminder"), + previousElements = listOf("event_signatureReminder"), followingElements = listOf("endEvent_prospectReminded"), parentId = null, attachedToRef = null, @@ -789,7 +806,7 @@ object BikeLeasingProcessProcessApi { followingElements = listOf("businessRuleTask_checkCreditRating"), parentId = null, attachedToRef = null, - attachedElements = listOf("boundary_applicationInvalid"), + attachedElements = listOf("event_applicationInvalid"), ) val START_EVENT_APPLICATION_WITHDRAWN: BpmnRelations = BpmnRelations( @@ -834,7 +851,7 @@ object BikeLeasingProcessProcessApi { followingElements = listOf("gateway_fork"), parentId = null, attachedToRef = null, - attachedElements = listOf("boundary_compensateContract", "boundary_contractNotSigned", "boundary_signatureReminder"), + attachedElements = listOf("event_compensateContract", "event_contractNotSigned", "event_signatureReminder"), ) val USER_TASK_CLARIFY_ALTERNATIVE: BpmnRelations = BpmnRelations( diff --git a/service/app/src/main/kotlin/io/miragon/blueprint/adapter/process/CancelBikeOrderProcessApi.kt b/service/app/src/main/kotlin/io/miragon/blueprint/adapter/process/CancelBikeOrderProcessApi.kt index d2b5891..ac9b9b5 100644 --- a/service/app/src/main/kotlin/io/miragon/blueprint/adapter/process/CancelBikeOrderProcessApi.kt +++ b/service/app/src/main/kotlin/io/miragon/blueprint/adapter/process/CancelBikeOrderProcessApi.kt @@ -74,50 +74,50 @@ object CancelBikeOrderProcessApi { * Worker code typically does not need these. */ object Flows { - val FLOW_0510_WB_5: BpmnFlow = BpmnFlow( - id = "Flow_0510wb5", - sourceRef = "startEvent_cancellationRequired", - targetRef = "serviceTask_requestCancellation", - ) - - val FLOW_0_GKP_33_W: BpmnFlow = BpmnFlow( - id = "Flow_0gkp33w", - sourceRef = "userTask_clarifyReturn", - targetRef = "serviceTask_bookCosts", - ) - - val FLOW_0_TC_4_YFK: BpmnFlow = BpmnFlow( - id = "Flow_0tc4yfk", - sourceRef = "serviceTask_requestCancellation", - targetRef = "gateway_cancellationPossible", - ) - - val FLOW_0_W_76_X_5_F: BpmnFlow = BpmnFlow( - id = "Flow_0w76x5f", - sourceRef = "gateway_join", - targetRef = "endEvent_orderReversed", + val FLOW_BOOK_COSTS_TO_JOIN: BpmnFlow = BpmnFlow( + id = "flow_bookCostsToJoin", + sourceRef = "serviceTask_bookCosts", + targetRef = "gateway_join", ) - val FLOW_1_A_0_G_4_V_1: BpmnFlow = BpmnFlow( - id = "Flow_1a0g4v1", + val FLOW_CANCELLATION_NOT_POSSIBLE: BpmnFlow = BpmnFlow( + id = "flow_cancellationNotPossible", name = "No", sourceRef = "gateway_cancellationPossible", targetRef = "userTask_clarifyReturn", condition = $$"""${cancellationPossible}""", ) - val FLOW_1_E_8_KS_1_K: BpmnFlow = BpmnFlow( - id = "Flow_1e8ks1k", + val FLOW_CANCELLATION_POSSIBLE: BpmnFlow = BpmnFlow( + id = "flow_cancellationPossible", name = "Yes", sourceRef = "gateway_cancellationPossible", targetRef = "gateway_join", isDefault = true, ) - val FLOW_1_V_5_TEJ_2: BpmnFlow = BpmnFlow( - id = "Flow_1v5tej2", - sourceRef = "serviceTask_bookCosts", - targetRef = "gateway_join", + val FLOW_CLARIFY_TO_BOOK_COSTS: BpmnFlow = BpmnFlow( + id = "flow_clarifyToBookCosts", + sourceRef = "userTask_clarifyReturn", + targetRef = "serviceTask_bookCosts", + ) + + val FLOW_JOIN_TO_REVERSED: BpmnFlow = BpmnFlow( + id = "flow_joinToReversed", + sourceRef = "gateway_join", + targetRef = "endEvent_orderReversed", + ) + + val FLOW_REQUEST_TO_POSSIBLE_GATEWAY: BpmnFlow = BpmnFlow( + id = "flow_requestToPossibleGateway", + sourceRef = "serviceTask_requestCancellation", + targetRef = "gateway_cancellationPossible", + ) + + val FLOW_REQUIRED_TO_REQUEST: BpmnFlow = BpmnFlow( + id = "flow_requiredToRequest", + sourceRef = "startEvent_cancellationRequired", + targetRef = "serviceTask_requestCancellation", ) } diff --git a/service/app/src/main/resources/bpmn/bike-leasing.bpmn b/service/app/src/main/resources/bpmn/bike-leasing.bpmn index 258a053..6124d59 100644 --- a/service/app/src/main/resources/bpmn/bike-leasing.bpmn +++ b/service/app/src/main/resources/bpmn/bike-leasing.bpmn @@ -16,7 +16,7 @@ - Flow_0cq39pq + flow_requestToValidation @@ -28,98 +28,102 @@ - Flow_1oudvdg - Flow_0bgyqyx + flow_bikeSourceToOrder + flow_orderedToBikeAvailable - Flow_054y6af + flow_rejectionSent - Flow_0tjit66 - Flow_0msl1d4 + flow_joinToHandover + flow_handoverToWithdrawalPeriod - Flow_1czyhqn + flow_withdrawalElapsedToActive + + flow_invalidToRejection + flow_notSolvent + flow_notSignedToRejection + flow_rejectionJoined + - Flow_1g1dict - Flow_00bctyk - Flow_0p7ddam - Flow_054y6af + flow_rejectionJoined + flow_rejectionSent - Flow_0cq39pq - Flow_08ad25m + flow_requestToValidation + flow_validatedToCreditCheck - - Flow_10dsfgr - Flow_0dj8bxx - Flow_00bctyk + + flow_creditCheckToSolvency + flow_solvent + flow_notSolvent - Flow_08ad25m - Flow_10dsfgr + flow_validatedToCreditCheck + flow_creditCheckToSolvency - Flow_0dj8bxx - Flow_17zd4n8 + flow_solvent + flow_contractConcludedToFork - Flow_1jra6g7 + flow_eligibleToSendContract - - + + - Flow_0ff6219 - Flow_0ete2ij - Flow_1uekrwv + flow_contractSentToAwait + flow_awaitToSigned + flow_awaitToDeadline - Flow_0ete2ij - Flow_0m29pj0 + flow_awaitToSigned + flow_signedToContractValid - + - Flow_0m29pj0 + flow_signedToContractValid - + - Flow_1uekrwv - Flow_1it2fbs + flow_awaitToDeadline + flow_deadlineToNotSigned P14D - - + + - Flow_1it2fbs + flow_deadlineToNotSigned - Flow_1jra6g7 - Flow_0ff6219 + flow_eligibleToSendContract + flow_contractSentToAwait - - + + - Flow_17zd4n8 - Flow_0ncgjti - Flow_0sm2h51 + flow_contractConcludedToFork + flow_forkToBikeSource + flow_forkToInsurance - Flow_13li8f0 - Flow_1qm0pcr - Flow_0tjit66 + flow_insuranceToJoin + flow_bikeAvailable + flow_joinToHandover - - Flow_0bgyqyx - Flow_1qm0pcr - Flow_0dbz33i + + flow_orderedToBikeAvailable + flow_bikeAvailable + flow_bikeUnavailable Completable two ways: a human via the deployed Camunda Form (Tasklist), or a client via POST /api/bike-leasing/{id}/clarify-alternative. The REST path is the recommended one — it routes through the domain (persisting the chosen alternative bike on the aggregate) before completing the task, so the captured data actually reaches the domain model. See "Clarify return with supplier" in cancel-bike-order.bpmn for the form-only anti-pattern where data never leaves the process. @@ -131,22 +135,22 @@ - Flow_0dbz33i - Flow_1q8awsj + flow_bikeUnavailable + flow_clarifyToAlternativeGateway - - Flow_1q8awsj - Flow_162bkdk - Flow_0bmze33 + + flow_clarifyToAlternativeGateway + flow_alternativeFound + flow_noAlternativeFound - Flow_0ncgjti - Flow_162bkdk - Flow_1oudvdg + flow_forkToBikeSource + flow_alternativeFound + flow_bikeSourceToOrder - Flow_0bmze33 - Flow_0zi701m + flow_noAlternativeFound + flow_reversalToContractCancelled @@ -158,103 +162,104 @@ - Flow_0sm2h51 - Flow_13li8f0 + flow_forkToInsurance + flow_insuranceToJoin - Flow_0msl1d4 - Flow_1czyhqn + flow_handoverToWithdrawalPeriod + flow_withdrawalElapsedToActive P14D - + - - Flow_0p7ddam + + flow_notSignedToRejection - - Flow_1g1dict + + flow_invalidToRejection - + - + - - - - - - - - - + + + + + + + + + ${!solvent} - - - - - - - - - - + + + + + + + + + + + ${!bikeAvailable} - - - + + + ${!alternativeFound} - + - Flow_0zi701m + flow_reversalToContractCancelled - E01 + flow_withdrawalToReversal - E01 - E02 + flow_withdrawalToReversal + flow_reversalToConfirmation - - - + + + - E02 - Flow_0z1vqev + flow_reversalToConfirmation + flow_confirmationToCancelled - Flow_0z1vqev + flow_confirmationToCancelled - - Flow_reminder1 + + flow_reminderToMail P7D - Flow_reminder1 - Flow_reminder2 + flow_reminderToMail + flow_mailToProspectReminded - Flow_reminder2 + flow_mailToProspectReminded - - - + + + @@ -288,6 +293,12 @@ + + + + + + @@ -344,28 +355,28 @@ - + - + - + - + - + - + @@ -446,15 +457,15 @@ - + - + - + @@ -467,125 +478,129 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + - + - + - + - + - + - + - + - + @@ -593,7 +608,7 @@ - + @@ -601,11 +616,11 @@ - + - + @@ -614,14 +629,14 @@ - + - + diff --git a/service/app/src/main/resources/bpmn/cancel-bike-order.bpmn b/service/app/src/main/resources/bpmn/cancel-bike-order.bpmn index 32e8629..c825e84 100644 --- a/service/app/src/main/resources/bpmn/cancel-bike-order.bpmn +++ b/service/app/src/main/resources/bpmn/cancel-bike-order.bpmn @@ -8,38 +8,38 @@ - Flow_0510wb5 + flow_requiredToRequest - - - Flow_0tc4yfk - Flow_1a0g4v1 - Flow_1e8ks1k + + + flow_requestToPossibleGateway + flow_cancellationNotPossible + flow_cancellationPossible - - + + ${cancellationPossible} - Flow_0w76x5f + flow_joinToReversed - + Kept deliberately as a FORM-ONLY task to show the trade-off. It is completed straight through its Camunda Form (Tasklist) or the engine REST API, so the completion never passes through our domain services: any data entered on the form lands only in process variables and never reaches the domain model. In other words, for capturing business data this is NOT best practice. Contrast this with "Clarify alternative with customer" in bike-leasing.bpmn, which offers a domain REST endpoint (POST /api/bike-leasing/{id}/clarify-alternative) that updates the aggregate before completing the task. - Flow_1a0g4v1 - Flow_0gkp33w + flow_cancellationNotPossible + flow_clarifyToBookCosts - + - Flow_1e8ks1k - Flow_1v5tej2 - Flow_0w76x5f + flow_cancellationPossible + flow_bookCostsToJoin + flow_joinToReversed - - + + - Flow_0gkp33w - Flow_1v5tej2 + flow_clarifyToBookCosts + flow_bookCostsToJoin @@ -48,8 +48,8 @@ - Flow_0510wb5 - Flow_0tc4yfk + flow_requiredToRequest + flow_requestToPossibleGateway @@ -86,15 +86,15 @@ - + - + - + @@ -102,22 +102,22 @@ - + - + - + - + diff --git a/service/app/src/test/kotlin/io/miragon/blueprint/process/BikeLeasingProcessTest.kt b/service/app/src/test/kotlin/io/miragon/blueprint/process/BikeLeasingProcessTest.kt index 5c82b25..fbcd834 100644 --- a/service/app/src/test/kotlin/io/miragon/blueprint/process/BikeLeasingProcessTest.kt +++ b/service/app/src/test/kotlin/io/miragon/blueprint/process/BikeLeasingProcessTest.kt @@ -158,7 +158,7 @@ class BikeLeasingProcessTest { .isEnded .hasPassed( Elements.EVENT_SIGNATURE_DEADLINE.value, - Elements.BOUNDARY_CONTRACT_NOT_SIGNED.value, + Elements.EVENT_CONTRACT_NOT_SIGNED.value, Elements.SERVICE_TASK_SEND_REJECTION.value, Elements.END_EVENT_APPLICATION_REJECTED.value, ) diff --git a/tools/.bpmnlintrc b/tools/.bpmnlintrc index 0c1faae..9192290 100644 --- a/tools/.bpmnlintrc +++ b/tools/.bpmnlintrc @@ -1,3 +1,10 @@ { - "extends": "bpmnlint:recommended" + "extends": [ + "bpmnlint:recommended", + "plugin:camunda-compat/camunda-platform-7-24", + "plugin:@miragon/rules/all" + ], + "moddleExtensions": { + "camunda": "camunda-bpmn-moddle/resources/camunda.json" + } } diff --git a/tools/package-lock.json b/tools/package-lock.json index 2618038..a37f96e 100644 --- a/tools/package-lock.json +++ b/tools/package-lock.json @@ -8,7 +8,36 @@ "name": "fullstack-example-tooling", "version": "1.0.0", "devDependencies": { - "bpmnlint": "11.12.1" + "@miragon/bpmnlint-plugin-rules": "0.5.0", + "bpmnlint": "11.13.0" + } + }, + "node_modules/@bpmn-io/feel-analyzer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@bpmn-io/feel-analyzer/-/feel-analyzer-0.3.0.tgz", + "integrity": "sha512-TJjNDg9c8f3Vg9rPuUTMV1vKQfX2mZGejyTUAzOWy4KXjqMTRG1PxlpAma5P444niivnZPtEukHgvO8R3aGd3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@bpmn-io/lezer-feel": "^2.1.0" + }, + "engines": { + "node": ">= 20" + } + }, + "node_modules/@bpmn-io/lezer-feel": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@bpmn-io/lezer-feel/-/lezer-feel-2.5.0.tgz", + "integrity": "sha512-09JlwNYeD5YYeFrl0dIFfgQKEL+NNiTyUwEtdcPhfftz1mYa7z+ylOPCv/8Z0GqG7X81uyMFvRZDFCRBFTiUPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@lezer/highlight": "^1.2.3", + "@lezer/lr": "^1.4.10", + "min-dash": "^5.0.0" + }, + "engines": { + "node": ">= 20.12.0" } }, "node_modules/@bpmn-io/moddle-utils": { @@ -21,6 +50,69 @@ "min-dash": "^5.0.0" } }, + "node_modules/@bpmn-io/semver-compat": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@bpmn-io/semver-compat/-/semver-compat-0.1.0.tgz", + "integrity": "sha512-hIcW42Ku92MUioL6aknDbRoW1jK8ZEqIe8qZZ+d3cjitDO+PMEFFXj/sezJYIHMe8elu4CBz9qpjkV8WIVG9qw==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.7.2" + } + }, + "node_modules/@camunda/feel-builtins": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@camunda/feel-builtins/-/feel-builtins-1.4.0.tgz", + "integrity": "sha512-G3jH5MRvF/3L9/h6fY1zn+kwgYgH7APa84p34jajSG9IVWPCIGpttVGyRTrnbsCI76C2QdPbR2AvOm3RaLzUJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@lezer/common": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.5.2.tgz", + "integrity": "sha512-sxQE460fPZyU3sdc8lafxiPwJHBzZRy/udNFynGQky1SePYBdhkBl1kOagA9uT3pxR8K09bOrmTUqA9wb/PjSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@lezer/highlight": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@lezer/highlight/-/highlight-1.2.3.tgz", + "integrity": "sha512-qXdH7UqTvGfdVBINrgKhDsVTJTxactNNxLk7+UMwZhU13lMHaOBlJe9Vqp907ya56Y3+ed2tlqzys7jDkTmW0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.3.0" + } + }, + "node_modules/@lezer/lr": { + "version": "1.4.10", + "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.4.10.tgz", + "integrity": "sha512-rnCpTIBafOx4mRp43xOxDJbFipJm/c0cia/V5TiGlhmMa+wsSdoGmUN3w5Bqrks/09Q/D4tNAmWaT8p6NRi77A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.0.0" + } + }, + "node_modules/@miragon/bpmnlint-plugin-rules": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@miragon/bpmnlint-plugin-rules/-/bpmnlint-plugin-rules-0.5.0.tgz", + "integrity": "sha512-baY2/w1wXDz/khXTKSX5eCDacsP7Q6rAOd8WjRhWRfWj3GKB4T0jYJkYJUsei0HTTZwqhBM3uSARbWbnnqm9zg==", + "dev": true, + "license": "MIT", + "dependencies": { + "bpmnlint-plugin-camunda-compat": "2.59.2", + "bpmnlint-utils": "1.1.1", + "camunda-bpmn-moddle": "7.0.1", + "zeebe-bpmn-moddle": "1.17.0" + }, + "engines": { + "node": ">=22" + }, + "peerDependencies": { + "bpmnlint": ">=11" + } + }, "node_modules/ansi-colors": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", @@ -47,19 +139,19 @@ } }, "node_modules/bpmnlint": { - "version": "11.12.1", - "resolved": "https://registry.npmjs.org/bpmnlint/-/bpmnlint-11.12.1.tgz", - "integrity": "sha512-s/V68yzJU/ko7ea6ljp/xUUC8PUN+fzZaqI+votu0DPzDc6OqvpBcKzw7rMpqS4WPw/HOW3cLw/C2poWilClCw==", + "version": "11.13.0", + "resolved": "https://registry.npmjs.org/bpmnlint/-/bpmnlint-11.13.0.tgz", + "integrity": "sha512-EBUp+6yg2UWiCf44tZtxZUY0GpopALEE+/8ajV4inRGAVkuvHoICRmCPVkz88MSzBKdX0XSHOYijIk4yRdHW2Q==", "dev": true, "license": "MIT", "dependencies": { "@bpmn-io/moddle-utils": "^0.3.0", "ansi-colors": "^4.1.3", - "bpmn-moddle": "^10.0.0", + "bpmn-moddle": "^10.1.0", "bpmnlint-utils": "^1.1.1", "cli-table": "^0.3.11", "color-support": "^1.1.3", - "min-dash": "^5.0.0", + "min-dash": "^5.1.0", "mri": "^1.2.0", "pluralize": "^8.0.0", "tiny-glob": "^0.2.9" @@ -71,6 +163,29 @@ "node": ">= 20" } }, + "node_modules/bpmnlint-plugin-camunda-compat": { + "version": "2.59.2", + "resolved": "https://registry.npmjs.org/bpmnlint-plugin-camunda-compat/-/bpmnlint-plugin-camunda-compat-2.59.2.tgz", + "integrity": "sha512-CTkzFIFv8FpiFP+AWIofMRzDWYVeeDraU3ZvC6s7xnrqMw6gCR+EDVfmi+LXiaR6bGrIleP2Q/FpO1Od6DLPyA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@bpmn-io/feel-analyzer": "^0.3.0", + "@bpmn-io/lezer-feel": "^2.5.0", + "@bpmn-io/moddle-utils": "^0.3.0", + "@bpmn-io/semver-compat": "^0.1.0", + "@camunda/feel-builtins": "^1.2.0", + "bpmnlint-utils": "^1.1.1", + "min-dash": "^5.0.0", + "semver-compare": "^1.0.0" + }, + "engines": { + "node": ">= 20" + }, + "peerDependencies": { + "bpmnlint": ">= 11.6.0" + } + }, "node_modules/bpmnlint-utils": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/bpmnlint-utils/-/bpmnlint-utils-1.1.1.tgz", @@ -78,6 +193,13 @@ "dev": true, "license": "MIT" }, + "node_modules/camunda-bpmn-moddle": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/camunda-bpmn-moddle/-/camunda-bpmn-moddle-7.0.1.tgz", + "integrity": "sha512-Br8Diu6roMpziHdpl66Dhnm0DTnCFMrSD9zwLV08LpD52QA0UsXxU87XfHf08HjuB7ly0Hd1bvajZRpf9hbmYQ==", + "dev": true, + "license": "MIT" + }, "node_modules/cli-table": { "version": "0.3.11", "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.11.tgz", @@ -188,6 +310,26 @@ "node": ">= 20.12" } }, + "node_modules/semver": { + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", + "dev": true, + "license": "MIT" + }, "node_modules/tiny-glob": { "version": "0.2.9", "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz", @@ -198,6 +340,13 @@ "globalyzer": "0.1.0", "globrex": "^0.1.2" } + }, + "node_modules/zeebe-bpmn-moddle": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/zeebe-bpmn-moddle/-/zeebe-bpmn-moddle-1.17.0.tgz", + "integrity": "sha512-b+0AKsY90Kg+ewf8fiI9gGQkHhcs/4RTkVtVpKwZMaWvq3GoeBEP91GKxbeOxan7cKD9yQinKazPFb0BSE5lew==", + "dev": true, + "license": "MIT" } } } diff --git a/tools/package.json b/tools/package.json index 044c3e1..a6b568f 100644 --- a/tools/package.json +++ b/tools/package.json @@ -4,10 +4,11 @@ "private": true, "description": "Dev tooling for the fullstack bike-leasing blueprint: BPMN linting (bpmnlint) and git hook installation. Run from the repo root via `npm --prefix tools run