@5minds/processcube_app_sdk 7.0.0-fix-2c2d58-meml663p → 7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/build/client/actions-5QSQV4KN.mjs +1 -0
  2. package/build/client/components/BPMNHeatmap.css +1 -0
  3. package/build/client/components/BPMNViewer.css +1 -1
  4. package/build/client/components/BPMNViewer.d.ts +4 -2
  5. package/build/client/components/DiagramDocumentationInspector.css +1 -1
  6. package/build/client/components/DiagramDocumentationInspector.d.ts +7 -1
  7. package/build/client/components/DocumentationViewer.css +1 -1
  8. package/build/client/components/DropdownMenu.css +1 -1
  9. package/build/client/components/DynamicUi/DynamicUi.css +1 -1
  10. package/build/client/components/HeatmapInspector.d.ts +17 -0
  11. package/build/client/components/ProcessInstanceInspector/CommandPalette.css +1 -1
  12. package/build/client/components/ProcessInstanceInspector/ProcessInstanceInspector.css +1 -1
  13. package/build/client/components/ProcessInstanceInspector/RetryDialog.css +1 -1
  14. package/build/client/components/ProcessModelInspector.d.ts +10 -0
  15. package/build/client/components/SplitterLayout.css +1 -1
  16. package/build/client/index.cjs +15 -15
  17. package/build/client/index.css +1 -1
  18. package/build/client/index.d.ts +1 -0
  19. package/build/client/index.mjs +15 -15
  20. package/build/client/root.css +1 -1
  21. package/build/client/services/HeatmapService.d.ts +58 -0
  22. package/build/client/services/ProcessCostsService.d.ts +34 -0
  23. package/build/client/services/RuntimeService.d.ts +15 -0
  24. package/build/client/services/index.d.ts +3 -0
  25. package/build/client/utils/calculations.d.ts +4 -0
  26. package/build/client/utils/formatInstances.d.ts +1 -0
  27. package/build/common/types/HeatmapTypes.d.ts +13 -0
  28. package/build/common/types/index.d.ts +1 -0
  29. package/build/server/index.cjs +1 -1
  30. package/build/server/index.mjs +1 -1
  31. package/package.json +18 -18
  32. package/build/client/actions-RFWN6OOQ.mjs +0 -1
@@ -1 +1 @@
1
- *,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.dark,.dark *{--asdk-focus-color: var(--app-sdk-focus-color, #007bff40);--asdk-text-color: var(--app-sdk-text-color, #cdcdcd)}*,:before,:after{--asdk-focus-color: var(--app-sdk-focus-color, #0369a1);--asdk-text-color: var(--app-sdk-text-color, #374151)}.app-sdk-default-styles *{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb;--tw-content: "";margin:0;line-height:inherit}.app-sdk-form-input,.app-sdk-form-textarea,.app-sdk-form-select,.app-sdk-form-multiselect{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#6b7280;border-width:1px;border-radius:0;padding:.5rem .75rem;font-size:1rem;line-height:1.5rem;--tw-shadow: 0 0 #0000}.app-sdk-form-input:focus,.app-sdk-form-textarea:focus,.app-sdk-form-select:focus,.app-sdk-form-multiselect:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-inset: var(--tw-empty, );--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: #2563eb;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);border-color:#2563eb}.app-sdk-form-input::-moz-placeholder,.app-sdk-form-textarea::-moz-placeholder{color:#6b7280;opacity:1}.app-sdk-form-input::placeholder,.app-sdk-form-textarea::placeholder{color:#6b7280;opacity:1}.app-sdk-form-input::-webkit-datetime-edit-fields-wrapper{padding:0}.app-sdk-form-input::-webkit-date-and-time-value{min-height:1.5em;text-align:inherit}.app-sdk-form-input::-webkit-datetime-edit{display:inline-flex}.app-sdk-form-input::-webkit-datetime-edit,.app-sdk-form-input::-webkit-datetime-edit-year-field,.app-sdk-form-input::-webkit-datetime-edit-month-field,.app-sdk-form-input::-webkit-datetime-edit-day-field,.app-sdk-form-input::-webkit-datetime-edit-hour-field,.app-sdk-form-input::-webkit-datetime-edit-minute-field,.app-sdk-form-input::-webkit-datetime-edit-second-field,.app-sdk-form-input::-webkit-datetime-edit-millisecond-field,.app-sdk-form-input::-webkit-datetime-edit-meridiem-field{padding-top:0;padding-bottom:0}.app-sdk-form-select{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem;-webkit-print-color-adjust:exact;print-color-adjust:exact}.app-sdk-form-select:where([size]:not([size="1"])){background-image:initial;background-position:initial;background-repeat:unset;background-size:initial;padding-right:.75rem;-webkit-print-color-adjust:unset;print-color-adjust:unset}.app-sdk-form-checkbox,.app-sdk-form-radio{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0;-webkit-print-color-adjust:exact;print-color-adjust:exact;display:inline-block;vertical-align:middle;background-origin:border-box;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-shrink:0;height:1rem;width:1rem;color:#2563eb;background-color:#fff;border-color:#6b7280;border-width:1px;--tw-shadow: 0 0 #0000}.app-sdk-form-checkbox{border-radius:0}.app-sdk-form-radio{border-radius:100%}.app-sdk-form-checkbox:focus,.app-sdk-form-radio:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-inset: var(--tw-empty, );--tw-ring-offset-width: 2px;--tw-ring-offset-color: #fff;--tw-ring-color: #2563eb;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.app-sdk-form-checkbox:checked,.app-sdk-form-radio:checked{border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:center;background-repeat:no-repeat}.app-sdk-form-checkbox:checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e")}@media (forced-colors: active){.app-sdk-form-checkbox:checked{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}.app-sdk-form-radio:checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e")}@media (forced-colors: active){.app-sdk-form-radio:checked{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}.app-sdk-form-checkbox:checked:hover,.app-sdk-form-checkbox:checked:focus,.app-sdk-form-radio:checked:hover,.app-sdk-form-radio:checked:focus{border-color:transparent;background-color:currentColor}.app-sdk-form-checkbox:indeterminate{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e");border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:center;background-repeat:no-repeat}@media (forced-colors: active){.app-sdk-form-checkbox:indeterminate{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}.app-sdk-form-checkbox:indeterminate:hover,.app-sdk-form-checkbox:indeterminate:focus{border-color:transparent;background-color:currentColor}.app-sdk-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.app-sdk-pointer-events-none{pointer-events:none}.app-sdk-pointer-events-auto{pointer-events:auto}.app-sdk-fixed{position:fixed}.app-sdk-absolute{position:absolute}.app-sdk-relative{position:relative}.app-sdk-inset-0{inset:0}.app-sdk-left-0{left:0}.app-sdk-left-1\/2{left:50%}.app-sdk-right-0{right:0}.app-sdk-top-0{top:0}.app-sdk-top-1\/2{top:50%}.app-sdk-z-10{z-index:10}.app-sdk-z-40{z-index:40}.app-sdk-z-50{z-index:50}.app-sdk-m-0{margin:0}.app-sdk-m-auto{margin:auto}.app-sdk-mx-10{margin-left:2.5rem;margin-right:2.5rem}.app-sdk-mx-auto{margin-left:auto;margin-right:auto}.app-sdk-my-auto{margin-top:auto;margin-bottom:auto}.app-sdk-mb-2{margin-bottom:.5rem}.app-sdk-ml-2{margin-left:.5rem}.app-sdk-ml-3{margin-left:.75rem}.app-sdk-mr-2{margin-right:.5rem}.app-sdk-mt-1{margin-top:.25rem}.app-sdk-mt-2{margin-top:.5rem}.app-sdk-mt-4{margin-top:1rem}.app-sdk-block{display:block}.app-sdk-inline-block{display:inline-block}.app-sdk-flex{display:flex}.app-sdk-inline-flex{display:inline-flex}.app-sdk-hidden{display:none}.app-sdk-h-4{height:1rem}.app-sdk-h-5{height:1.25rem}.app-sdk-h-6{height:1.5rem}.app-sdk-h-8{height:2rem}.app-sdk-h-\[70vh\]{height:70vh}.app-sdk-h-full{height:100%}.app-sdk-h-screen{height:100vh}.app-sdk-max-h-72{max-height:18rem}.app-sdk-max-h-full{max-height:100%}.app-sdk-min-h-\[200px\]{min-height:200px}.app-sdk-w-1\/4{width:25%}.app-sdk-w-20{width:5rem}.app-sdk-w-4{width:1rem}.app-sdk-w-4\/5{width:80%}.app-sdk-w-5{width:1.25rem}.app-sdk-w-56{width:14rem}.app-sdk-w-6{width:1.5rem}.app-sdk-w-\[1px\]{width:1px}.app-sdk-w-fit{width:-moz-fit-content;width:fit-content}.app-sdk-w-full{width:100%}.app-sdk-w-screen{width:100vw}.app-sdk-min-w-6{min-width:1.5rem}.app-sdk-min-w-64{min-width:16rem}.app-sdk-max-w-6{max-width:1.5rem}.app-sdk-max-w-full{max-width:100%}.app-sdk-max-w-lg{max-width:32rem}.app-sdk-max-w-xl{max-width:36rem}.app-sdk-flex-1{flex:1 1 0%}.app-sdk-border-collapse{border-collapse:collapse}.app-sdk-origin-top-right{transform-origin:top right}.app-sdk--translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.app-sdk--translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.app-sdk-scale-100{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.app-sdk-scale-95{--tw-scale-x: .95;--tw-scale-y: .95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.app-sdk-transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\!app-sdk-cursor-default{cursor:default!important}.app-sdk-cursor-default{cursor:default}.app-sdk-cursor-not-allowed{cursor:not-allowed}.app-sdk-cursor-pointer{cursor:pointer}.app-sdk-select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.app-sdk-scroll-p-4{scroll-padding:1rem}.app-sdk-scroll-py-2{scroll-padding-top:.5rem;scroll-padding-bottom:.5rem}.app-sdk-appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.app-sdk-appearance-auto{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.app-sdk-flex-row{flex-direction:row}.app-sdk-flex-col{flex-direction:column}.app-sdk-flex-wrap{flex-wrap:wrap}.app-sdk-content-center{align-content:center}.app-sdk-items-start{align-items:flex-start}.app-sdk-items-center{align-items:center}.app-sdk-justify-end{justify-content:flex-end}.app-sdk-justify-center{justify-content:center}.app-sdk-justify-between{justify-content:space-between}.app-sdk-gap-1{gap:.25rem}.app-sdk-gap-2{gap:.5rem}.app-sdk-gap-3{gap:.75rem}.app-sdk-gap-4{gap:1rem}.app-sdk-space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.75rem * var(--tw-space-x-reverse));margin-left:calc(.75rem * calc(1 - var(--tw-space-x-reverse)))}.app-sdk-space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.app-sdk-space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.app-sdk-space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.app-sdk-self-center{align-self:center}.app-sdk-overflow-y-auto{overflow-y:auto}.app-sdk-scroll-smooth{scroll-behavior:smooth}.app-sdk-text-ellipsis{text-overflow:ellipsis}.app-sdk-break-words{overflow-wrap:break-word}.app-sdk-break-all{word-break:break-all}.app-sdk-rounded{border-radius:.25rem}.app-sdk-rounded-3xl{border-radius:1.5rem}.app-sdk-rounded-full{border-radius:9999px}.app-sdk-rounded-lg{border-radius:.5rem}.app-sdk-rounded-md{border-radius:.375rem}.app-sdk-rounded-xl{border-radius:.75rem}.app-sdk-rounded-b-lg{border-bottom-right-radius:.5rem;border-bottom-left-radius:.5rem}.app-sdk-border{border-width:1px}.app-sdk-border-0{border-width:0px}.app-sdk-border-b-0{border-bottom-width:0px}.app-sdk-border-l{border-left-width:1px}.app-sdk-border-r-0{border-right-width:0px}.app-sdk-border-t-0{border-top-width:0px}.app-sdk-border-solid{border-style:solid}.app-sdk-border-none{border-style:none}.app-sdk-border-\[color\:var\(--asdk-dui-border-color\)\]{border-color:var(--asdk-dui-border-color)}.app-sdk-border-gray-900{--tw-border-opacity: 1;border-color:rgb(17 24 39 / var(--tw-border-opacity, 1))}.app-sdk-border-transparent{border-color:transparent}.\!app-sdk-bg-slate-500{--tw-bg-opacity: 1 !important;background-color:rgb(100 116 139 / var(--tw-bg-opacity, 1))!important}.app-sdk-bg-\[color\:var\(--asdk-cmdp-background-color\)\]{background-color:var(--asdk-cmdp-background-color)}.app-sdk-bg-\[color\:var\(--asdk-cmdp-focus-color\)\]{background-color:var(--asdk-cmdp-focus-color)}.app-sdk-bg-\[color\:var\(--asdk-cmdp-input-color\)\]{background-color:var(--asdk-cmdp-input-color)}.app-sdk-bg-\[color\:var\(--asdk-ddi-background-color\)\]{background-color:var(--asdk-ddi-background-color)}.app-sdk-bg-\[color\:var\(--asdk-ddm-background-color\)\]{background-color:var(--asdk-ddm-background-color)}.app-sdk-bg-\[color\:var\(--asdk-ddm-entry-background-hover-color\)\]{background-color:var(--asdk-ddm-entry-background-hover-color)}.app-sdk-bg-\[color\:var\(--asdk-dui-background-color\)\]{background-color:var(--asdk-dui-background-color)}.app-sdk-bg-\[color\:var\(--asdk-dui-footer-background-color\)\]{background-color:var(--asdk-dui-footer-background-color)}.app-sdk-bg-\[color\:var\(--asdk-dui-footer-continue-button-background-color\)\]{background-color:var(--asdk-dui-footer-continue-button-background-color)}.app-sdk-bg-\[color\:var\(--asdk-dui-footer-decline-button-background-color\)\]{background-color:var(--asdk-dui-footer-decline-button-background-color)}.app-sdk-bg-\[color\:var\(--asdk-dui-formfield-background-color\)\]{background-color:var(--asdk-dui-formfield-background-color)}.app-sdk-bg-\[color\:var\(--asdk-rd-background-color\)\]{background-color:var(--asdk-rd-background-color)}.app-sdk-bg-\[color\:var\(--asdk-rd-primary-button-color\)\]{background-color:var(--asdk-rd-primary-button-color)}.app-sdk-bg-\[color\:var\(--asdk-rd-secondary-button-color\)\]{background-color:var(--asdk-rd-secondary-button-color)}.app-sdk-bg-black\/30{background-color:#0000004d}.app-sdk-bg-cyan-800{--tw-bg-opacity: 1;background-color:rgb(21 94 117 / var(--tw-bg-opacity, 1))}.app-sdk-bg-gray-500{--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity, 1))}.app-sdk-bg-transparent{background-color:transparent}.app-sdk-bg-white\/10{background-color:#ffffff1a}.app-sdk-bg-white\/95{background-color:#fffffff2}.app-sdk-bg-opacity-25{--tw-bg-opacity: .25}.\!app-sdk-fill-app-sdk-gray-200{fill:#9e9d9d!important}.\!app-sdk-fill-none{fill:none!important}.\!app-sdk-fill-red-600{fill:#dc2626!important}.\!app-sdk-fill-white{fill:#fff!important}.\!app-sdk-stroke-app-sdk-gray-200{stroke:#9e9d9d!important}.\!app-sdk-stroke-red-600{stroke:#dc2626!important}.\!app-sdk-stroke-white{stroke:#fff!important}.\!app-sdk-stroke-\[2px\]{stroke-width:2px!important}.app-sdk-p-0{padding:0}.app-sdk-p-1{padding:.25rem}.app-sdk-p-2{padding:.5rem}.app-sdk-p-4{padding:1rem}.app-sdk-p-6{padding:1.5rem}.app-sdk-p-8{padding:2rem}.app-sdk-p-\[2px\]{padding:2px}.app-sdk-px-0{padding-left:0;padding-right:0}.app-sdk-px-1{padding-left:.25rem;padding-right:.25rem}.app-sdk-px-3{padding-left:.75rem;padding-right:.75rem}.app-sdk-px-4{padding-left:1rem;padding-right:1rem}.app-sdk-py-1{padding-top:.25rem;padding-bottom:.25rem}.app-sdk-py-14{padding-top:3.5rem;padding-bottom:3.5rem}.app-sdk-py-2{padding-top:.5rem;padding-bottom:.5rem}.app-sdk-py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.app-sdk-py-3{padding-top:.75rem;padding-bottom:.75rem}.app-sdk-pb-0{padding-bottom:0}.app-sdk-pb-3{padding-bottom:.75rem}.app-sdk-pl-0{padding-left:0}.app-sdk-pl-3{padding-left:.75rem}.app-sdk-pr-10{padding-right:2.5rem}.app-sdk-pr-2{padding-right:.5rem}.app-sdk-pr-3{padding-right:.75rem}.app-sdk-pt-2{padding-top:.5rem}.app-sdk-pt-4{padding-top:1rem}.app-sdk-text-left{text-align:left}.app-sdk-text-center{text-align:center}.app-sdk-text-2xl{font-size:1.5rem;line-height:2rem}.app-sdk-text-\[100\%\]{font-size:100%}.app-sdk-text-base{font-size:1rem;line-height:1.5rem}.app-sdk-text-lg{font-size:1.125rem;line-height:1.75rem}.app-sdk-text-sm{font-size:.875rem;line-height:1.25rem}.app-sdk-text-xl{font-size:1.25rem;line-height:1.75rem}.app-sdk-text-xs{font-size:.75rem;line-height:1rem}.app-sdk-font-bold{font-weight:700}.app-sdk-font-medium{font-weight:500}.app-sdk-leading-4{line-height:1rem}.app-sdk-leading-6{line-height:1.5rem}.app-sdk-text-\[color\:var\(--asdk-cmdp-text-color\)\]{color:var(--asdk-cmdp-text-color)}.app-sdk-text-\[color\:var\(--asdk-ddm-danger-entry-text-color\)\]{color:var(--asdk-ddm-danger-entry-text-color)}.app-sdk-text-\[color\:var\(--asdk-ddm-default-entry-text-color\)\]{color:var(--asdk-ddm-default-entry-text-color)}.app-sdk-text-\[color\:var\(--asdk-ddm-icon-text-color\)\]{color:var(--asdk-ddm-icon-text-color)}.app-sdk-text-\[color\:var\(--asdk-dui-footer-continue-button-text-color\)\]{color:var(--asdk-dui-footer-continue-button-text-color)}.app-sdk-text-\[color\:var\(--asdk-dui-footer-decline-button-text-color\)\]{color:var(--asdk-dui-footer-decline-button-text-color)}.app-sdk-text-\[color\:var\(--asdk-dui-formfield-checkbox-text-color\)\]{color:var(--asdk-dui-formfield-checkbox-text-color)}.app-sdk-text-\[color\:var\(--asdk-dui-formfield-hint-text-color\)\]{color:var(--asdk-dui-formfield-hint-text-color)}.app-sdk-text-\[color\:var\(--asdk-dui-header-text-color\)\]{color:var(--asdk-dui-header-text-color)}.app-sdk-text-\[color\:var\(--asdk-dui-text-color\)\]{color:var(--asdk-dui-text-color)}.app-sdk-text-\[color\:var\(--asdk-rd-primary-button-text-color\)\]{color:var(--asdk-rd-primary-button-text-color)}.app-sdk-text-\[color\:var\(--asdk-rd-secondary-button-text-color\)\]{color:var(--asdk-rd-secondary-button-text-color)}.app-sdk-text-\[color\:var\(--asdk-rd-text-color\)\]{color:var(--asdk-rd-text-color)}.app-sdk-text-app-sdk-inherit{color:inherit}.app-sdk-text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.app-sdk-text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.app-sdk-placeholder-\[color\:var\(--asdk-dui-formfield-placeholder-text-color\)\]::-moz-placeholder{color:var(--asdk-dui-formfield-placeholder-text-color)}.app-sdk-placeholder-\[color\:var\(--asdk-dui-formfield-placeholder-text-color\)\]::placeholder{color:var(--asdk-dui-formfield-placeholder-text-color)}.app-sdk-opacity-0{opacity:0}.app-sdk-opacity-100{opacity:1}.app-sdk-shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.app-sdk-shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.app-sdk-shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.app-sdk-shadow-\[color\:var\(--asdk-dui-shadow-color\)\]{--tw-shadow-color: var(--asdk-dui-shadow-color);--tw-shadow: var(--tw-shadow-colored)}.app-sdk-ring-1{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.app-sdk-ring-black{--tw-ring-opacity: 1;--tw-ring-color: rgb(0 0 0 / var(--tw-ring-opacity, 1))}.app-sdk-ring-opacity-5{--tw-ring-opacity: .05}.app-sdk-ring-offset-2{--tw-ring-offset-width: 2px}.app-sdk-backdrop-blur-md{--tw-backdrop-blur: blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.app-sdk-backdrop-blur-xl{--tw-backdrop-blur: blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.app-sdk-transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.app-sdk-transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.app-sdk-transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.app-sdk-duration-100{transition-duration:.1s}.app-sdk-duration-200{transition-duration:.2s}.app-sdk-duration-75{transition-duration:75ms}.app-sdk-ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.app-sdk-ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.app-sdk-scroll-shadow{mask-image:linear-gradient(to bottom,transparent,black 1.5rem,black calc(100% - 1.5rem),transparent);-webkit-mask-image:linear-gradient(to bottom,transparent,black 1.5rem,black calc(100% - 1.5rem),transparent)}.\[\&_input\[type\=\'checkbox\'\]\]\:app-sdk-form-checkbox input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0;-webkit-print-color-adjust:exact;print-color-adjust:exact;display:inline-block;vertical-align:middle;background-origin:border-box;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-shrink:0;height:1rem;width:1rem;color:#2563eb;background-color:#fff;border-color:#6b7280;border-width:1px;--tw-shadow: 0 0 #0000;border-radius:0}.\[\&_input\[type\=\'checkbox\'\]\]\:app-sdk-form-checkbox input[type=checkbox]:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-inset: var(--tw-empty, );--tw-ring-offset-width: 2px;--tw-ring-offset-color: #fff;--tw-ring-color: #2563eb;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.\[\&_input\[type\=\'checkbox\'\]\]\:app-sdk-form-checkbox input[type=checkbox]:checked{border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:center;background-repeat:no-repeat;background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e")}@media (forced-colors: active){.\[\&_input\[type\=\'checkbox\'\]\]\:app-sdk-form-checkbox input[type=checkbox]:checked{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}.\[\&_input\[type\=\'checkbox\'\]\]\:app-sdk-form-checkbox input[type=checkbox]:checked:hover,.\[\&_input\[type\=\'checkbox\'\]\]\:app-sdk-form-checkbox input[type=checkbox]:checked:focus{border-color:transparent;background-color:currentColor}.\[\&_input\[type\=\'checkbox\'\]\]\:app-sdk-form-checkbox input[type=checkbox]:indeterminate{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e");border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:center;background-repeat:no-repeat}@media (forced-colors: active){.\[\&_input\[type\=\'checkbox\'\]\]\:app-sdk-form-checkbox input[type=checkbox]:indeterminate{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}.\[\&_input\[type\=\'checkbox\'\]\]\:app-sdk-form-checkbox input[type=checkbox]:indeterminate:hover,.\[\&_input\[type\=\'checkbox\'\]\]\:app-sdk-form-checkbox input[type=checkbox]:indeterminate:focus{border-color:transparent;background-color:currentColor}.invalid\:app-sdk-border-\[color\:var\(--asdk-dui-formfield-invalid-color\)\]:invalid{border-color:var(--asdk-dui-formfield-invalid-color)}.invalid\:app-sdk-ring-1:invalid{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.invalid\:app-sdk-ring-\[color\:var\(--asdk-dui-formfield-invalid-color\)\]:invalid{--tw-ring-color: var(--asdk-dui-formfield-invalid-color)}.hover\:app-sdk-cursor-pointer:hover{cursor:pointer}.hover\:app-sdk-bg-\[color\:var\(--asdk-dui-footer-continue-button-background-hover-color\)\]:hover{background-color:var(--asdk-dui-footer-continue-button-background-hover-color)}.hover\:app-sdk-bg-\[color\:var\(--asdk-dui-footer-decline-button-background-hover-color\)\]:hover{background-color:var(--asdk-dui-footer-decline-button-background-hover-color)}.hover\:app-sdk-bg-\[color\:var\(--asdk-rd-primary-button-hover-color\)\]:hover{background-color:var(--asdk-rd-primary-button-hover-color)}.hover\:app-sdk-bg-\[color\:var\(--asdk-rd-secondary-button-hover-color\)\]:hover{background-color:var(--asdk-rd-secondary-button-hover-color)}.hover\:app-sdk-bg-app-sdk-gray-100\/40:hover{background-color:#c3c3c366}.hover\:app-sdk-text-\[color\:var\(--asdk-ddm-icon-text-hover-color\)\]:hover{color:var(--asdk-ddm-icon-text-hover-color)}.hover\:app-sdk-text-gray-300:hover{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.focus\:app-sdk-border-\[color\:var\(--asdk-dui-focus-color\)\]:focus{border-color:var(--asdk-dui-focus-color)}.focus\:app-sdk-border-transparent:focus{border-color:transparent}.focus\:app-sdk-outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:app-sdk-ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:app-sdk-ring-\[color\:var\(--asdk-ddm-focus-color\)\]:focus{--tw-ring-color: var(--asdk-ddm-focus-color)}.focus\:app-sdk-ring-\[color\:var\(--asdk-dui-focus-color\)\]:focus{--tw-ring-color: var(--asdk-dui-focus-color)}.focus\:app-sdk-ring-\[color\:var\(--asdk-dui-footer-continue-button-focus-outline-color\)\]:focus{--tw-ring-color: var(--asdk-dui-footer-continue-button-focus-outline-color)}.focus\:app-sdk-ring-\[color\:var\(--asdk-dui-footer-decline-button-focus-outline-color\)\]:focus{--tw-ring-color: var(--asdk-dui-footer-decline-button-focus-outline-color)}.focus\:app-sdk-ring-transparent:focus{--tw-ring-color: transparent}.focus\:app-sdk-ring-offset-2:focus{--tw-ring-offset-width: 2px}.disabled\:app-sdk-cursor-default:disabled{cursor:default}.data-\[closed\]\:app-sdk-scale-95[data-closed]{--tw-scale-x: .95;--tw-scale-y: .95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[closed\]\:app-sdk-opacity-0[data-closed]{opacity:0}.data-\[enter\]\:app-sdk-duration-300[data-enter]{transition-duration:.3s}.data-\[leave\]\:app-sdk-duration-150[data-leave]{transition-duration:.15s}.data-\[enter\]\:app-sdk-ease-out[data-enter]{transition-timing-function:cubic-bezier(0,0,.2,1)}.data-\[leave\]\:app-sdk-ease-in[data-leave]{transition-timing-function:cubic-bezier(.4,0,1,1)}.dark\:app-sdk-border-2:is([class~=dark] *){border-width:2px}.dark\:app-sdk-border-solid:is([class~=dark] *){border-style:solid}.dark\:app-sdk-border-none:is([class~=dark] *){border-style:none}.dark\:app-sdk-border-gray-300:is([class~=dark] *){--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1))}.dark\:app-sdk-border-transparent:is([class~=dark] *){border-color:transparent}.dark\:app-sdk-bg-black\/85:is([class~=dark] *){background-color:#000000d9}.dark\:app-sdk-bg-app-sdk-dropdown-dark:is([class~=dark] *){background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%23FFFFFF' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e")}.dark\:\!app-sdk-fill-app-sdk-gray-400:is([class~=dark] *){fill:#4b4b4b!important}.dark\:\!app-sdk-fill-app-sdk-gray-50:is([class~=dark] *){fill:#cdcdcd!important}.dark\:\!app-sdk-stroke-app-sdk-gray-400:is([class~=dark] *){stroke:#4b4b4b!important}.dark\:\!app-sdk-stroke-app-sdk-gray-50:is([class~=dark] *){stroke:#cdcdcd!important}.dark\:app-sdk-text-white:is([class~=dark] *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.dark\:\[color-scheme\:dark\]:is([class~=dark] *){color-scheme:dark}.dark\:invalid\:app-sdk-shadow-app-sdk-dark-invalid:invalid:is([class~=dark] *){--tw-shadow: 0 0 0 .2rem rgb(220 53 69 / 25%);--tw-shadow-colored: 0 0 0 .2rem var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.dark\:focus\:app-sdk-shadow-app-sdk-dark:focus:is([class~=dark] *){--tw-shadow: 0 0 0px .2rem rgb(0 123 255 / 25%);--tw-shadow-colored: 0 0 0px .2rem var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}@media (min-width: 640px){.sm\:app-sdk-ml-2{margin-left:.5rem}.sm\:app-sdk-flex{display:flex}.sm\:app-sdk-w-auto{width:auto}.sm\:app-sdk-w-full{width:100%}.sm\:app-sdk-max-w-lg{max-width:32rem}.sm\:app-sdk-flex-row-reverse{flex-direction:row-reverse}.sm\:-app-sdk-space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(-.5rem * var(--tw-space-x-reverse));margin-left:calc(-.5rem * calc(1 - var(--tw-space-x-reverse)))}.sm\:app-sdk-space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.sm\:app-sdk-p-6{padding:1.5rem}.sm\:app-sdk-px-14{padding-left:3.5rem;padding-right:3.5rem}.sm\:app-sdk-px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:app-sdk-text-sm{font-size:.875rem;line-height:1.25rem}}@media (min-width: 768px){.md\:app-sdk-mx-20{margin-left:5rem;margin-right:5rem}.md\:app-sdk-p-20{padding:5rem}}@media (min-width: 1024px){.lg\:app-sdk-mx-40{margin-left:10rem;margin-right:10rem}}.\[\&_a\]\:app-sdk-text-\[color\:var\(--asdk-dui-link-color\)\] a{color:var(--asdk-dui-link-color)}.\[\&_a\]\:app-sdk-underline a{text-decoration-line:underline}.hover\:\[\&_a\]\:app-sdk-text-\[color\:var\(--asdk-dui-link-hover-color\)\] a:hover{color:var(--asdk-dui-link-hover-color)}.\[\&_blockquote\]\:app-sdk-m-\[revert\] blockquote{margin:revert}.\[\&_code\]\:app-sdk-text-\[\#e83e8c\] code{--tw-text-opacity: 1;color:rgb(232 62 140 / var(--tw-text-opacity, 1))}.\[\&_fieldset\]\:app-sdk-m-\[revert\] fieldset{margin:revert}.\[\&_fieldset\]\:app-sdk-p-\[revert\] fieldset{padding:revert}.\[\&_h1\]\:app-sdk-m-\[revert\] h1{margin:revert}.\[\&_h1\]\:app-sdk-text-2xl h1{font-size:1.5rem;line-height:2rem}.\[\&_h1\]\:app-sdk-font-bold h1{font-weight:700}.\[\&_h2\]\:app-sdk-m-\[revert\] h2{margin:revert}.\[\&_h2\]\:app-sdk-text-xl h2{font-size:1.25rem;line-height:1.75rem}.\[\&_h2\]\:app-sdk-font-bold h2{font-weight:700}.\[\&_h3\]\:app-sdk-m-\[revert\] h3{margin:revert}.\[\&_h3\]\:app-sdk-text-lg h3{font-size:1.125rem;line-height:1.75rem}.\[\&_h3\]\:app-sdk-font-bold h3{font-weight:700}.\[\&_h4\]\:app-sdk-m-\[revert\] h4{margin:revert}.\[\&_h4\]\:app-sdk-text-base h4{font-size:1rem;line-height:1.5rem}.\[\&_h4\]\:app-sdk-font-bold h4{font-weight:700}.\[\&_h5\]\:app-sdk-m-\[revert\] h5{margin:revert}.\[\&_h5\]\:app-sdk-text-sm h5{font-size:.875rem;line-height:1.25rem}.\[\&_h5\]\:app-sdk-font-bold h5{font-weight:700}.\[\&_h6\]\:app-sdk-m-\[revert\] h6{margin:revert}.\[\&_h6\]\:app-sdk-text-xs h6{font-size:.75rem;line-height:1rem}.\[\&_h6\]\:app-sdk-font-bold h6{font-weight:700}.\[\&_input\[type\=\'checkbox\'\]\]\:app-sdk-h-4 input[type=checkbox]{height:1rem}.\[\&_input\[type\=\'checkbox\'\]\]\:app-sdk-w-4 input[type=checkbox]{width:1rem}.\[\&_input\[type\=\'checkbox\'\]\]\:app-sdk-rounded input[type=checkbox]{border-radius:.25rem}.\[\&_input\[type\=\'checkbox\'\]\]\:app-sdk-border input[type=checkbox]{border-width:1px}.\[\&_input\[type\=\'checkbox\'\]\]\:app-sdk-border-\[color\:var\(--asdk-dui-border-color\)\] input[type=checkbox]{border-color:var(--asdk-dui-border-color)}.\[\&_input\[type\=\'checkbox\'\]\]\:app-sdk-text-sky-600 input[type=checkbox]{--tw-text-opacity: 1;color:rgb(2 132 199 / var(--tw-text-opacity, 1))}.\[\&_input\[type\=\'checkbox\'\]\]\:hover\:app-sdk-border-\[color\:var\(--asdk-dui-border-color\)\]:hover input[type=checkbox]{border-color:var(--asdk-dui-border-color)}.\[\&_input\[type\=\'checkbox\'\]\]\:dark\:app-sdk-border-2:is([class~=dark] *) input[type=checkbox]{border-width:2px}.\[\&_input\[type\=\'checkbox\'\]\]\:dark\:app-sdk-border-solid:is([class~=dark] *) input[type=checkbox]{border-style:solid}.\[\&_input\[type\=\'checkbox\'\]\]\:dark\:app-sdk-border-transparent:is([class~=dark] *) input[type=checkbox]{border-color:transparent}.\[\&_input\[type\=\'checkbox\'\]\]\:dark\:app-sdk-bg-app-sdk-gray-350:is([class~=dark] *) input[type=checkbox]{--tw-bg-opacity: 1;background-color:rgb(85 85 85 / var(--tw-bg-opacity, 1))}.\[\&_input\[type\=\'checkbox\'\]\]\:dark\:app-sdk-text-\[\#007bff40\]:is([class~=dark] *) input[type=checkbox]{color:#007bff40}.\[\&_input\[type\=\'checkbox\'\]\]\:dark\:hover\:app-sdk-border-transparent:hover:is([class~=dark] *) input[type=checkbox]{border-color:transparent}.\[\&_input\[type\=\'checkbox\'\]\]\:dark\:hover\:checked\:app-sdk-bg-app-sdk-gray-350:checked:hover:is([class~=dark] *) input[type=checkbox]{--tw-bg-opacity: 1;background-color:rgb(85 85 85 / var(--tw-bg-opacity, 1))}.\[\&_menu\]\:app-sdk-m-\[revert\] menu{margin:revert}.\[\&_menu\]\:app-sdk-p-\[revert\] menu{padding:revert}.\[\&_ol\]\:app-sdk-m-\[revert\] ol{margin:revert}.\[\&_ol\]\:app-sdk-list-decimal ol{list-style-type:decimal}.\[\&_ol\]\:app-sdk-p-\[revert\] ol{padding:revert}.\[\&_ol_p\]\:app-sdk-my-2 ol p{margin-top:.5rem;margin-bottom:.5rem}.first-of-type\:\[\&_ol_p\]\:app-sdk-my-4 ol p:first-of-type{margin-top:1rem;margin-bottom:1rem}.\[\&_p\]\:app-sdk-my-4 p{margin-top:1rem;margin-bottom:1rem}.first-of-type\:\[\&_p\]\:app-sdk-mb-4 p:first-of-type{margin-bottom:1rem}.first-of-type\:\[\&_p\]\:app-sdk-mt-0 p:first-of-type{margin-top:0}.\[\&_pre\]\:app-sdk-my-4 pre{margin-top:1rem;margin-bottom:1rem}.\[\&_pre\]\:app-sdk-bg-gray-100 pre{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.\[\&_pre\]\:dark\:app-sdk-bg-app-sdk-gray-700:is([class~=dark] *) pre{--tw-bg-opacity: 1;background-color:rgb(29 29 29 / var(--tw-bg-opacity, 1))}.\[\&_pre_code\]\:app-sdk-text-inherit pre code{color:inherit}.\[\&_ul\]\:app-sdk-m-\[revert\] ul{margin:revert}.\[\&_ul\]\:app-sdk-list-disc ul{list-style-type:disc}.\[\&_ul\]\:app-sdk-p-\[revert\] ul{padding:revert}.\[\&_ul_p\]\:app-sdk-my-2 ul p{margin-top:.5rem;margin-bottom:.5rem}.first-of-type\:\[\&_ul_p\]\:app-sdk-my-4 ul p:first-of-type{margin-top:1rem;margin-bottom:1rem}
1
+ *,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.dark,.dark *{--asdk-focus-color: var(--app-sdk-focus-color, #007bff40);--asdk-text-color: var(--app-sdk-text-color, #cdcdcd)}*,:before,:after{--asdk-focus-color: var(--app-sdk-focus-color, #0369a1);--asdk-text-color: var(--app-sdk-text-color, #374151)}.app-sdk-default-styles *{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb;--tw-content: "";margin:0;line-height:inherit}.app-sdk-form-input,.app-sdk-form-textarea,.app-sdk-form-select,.app-sdk-form-multiselect{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#6b7280;border-width:1px;border-radius:0;padding:.5rem .75rem;font-size:1rem;line-height:1.5rem;--tw-shadow: 0 0 #0000}.app-sdk-form-input:focus,.app-sdk-form-textarea:focus,.app-sdk-form-select:focus,.app-sdk-form-multiselect:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-inset: var(--tw-empty, );--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: #2563eb;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);border-color:#2563eb}.app-sdk-form-input::-moz-placeholder,.app-sdk-form-textarea::-moz-placeholder{color:#6b7280;opacity:1}.app-sdk-form-input::placeholder,.app-sdk-form-textarea::placeholder{color:#6b7280;opacity:1}.app-sdk-form-input::-webkit-datetime-edit-fields-wrapper{padding:0}.app-sdk-form-input::-webkit-date-and-time-value{min-height:1.5em;text-align:inherit}.app-sdk-form-input::-webkit-datetime-edit{display:inline-flex}.app-sdk-form-input::-webkit-datetime-edit,.app-sdk-form-input::-webkit-datetime-edit-year-field,.app-sdk-form-input::-webkit-datetime-edit-month-field,.app-sdk-form-input::-webkit-datetime-edit-day-field,.app-sdk-form-input::-webkit-datetime-edit-hour-field,.app-sdk-form-input::-webkit-datetime-edit-minute-field,.app-sdk-form-input::-webkit-datetime-edit-second-field,.app-sdk-form-input::-webkit-datetime-edit-millisecond-field,.app-sdk-form-input::-webkit-datetime-edit-meridiem-field{padding-top:0;padding-bottom:0}.app-sdk-form-select{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem;-webkit-print-color-adjust:exact;print-color-adjust:exact}.app-sdk-form-select:where([size]:not([size="1"])){background-image:initial;background-position:initial;background-repeat:unset;background-size:initial;padding-right:.75rem;-webkit-print-color-adjust:unset;print-color-adjust:unset}.app-sdk-form-checkbox,.app-sdk-form-radio{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0;-webkit-print-color-adjust:exact;print-color-adjust:exact;display:inline-block;vertical-align:middle;background-origin:border-box;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-shrink:0;height:1rem;width:1rem;color:#2563eb;background-color:#fff;border-color:#6b7280;border-width:1px;--tw-shadow: 0 0 #0000}.app-sdk-form-checkbox{border-radius:0}.app-sdk-form-radio{border-radius:100%}.app-sdk-form-checkbox:focus,.app-sdk-form-radio:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-inset: var(--tw-empty, );--tw-ring-offset-width: 2px;--tw-ring-offset-color: #fff;--tw-ring-color: #2563eb;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.app-sdk-form-checkbox:checked,.app-sdk-form-radio:checked{border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:center;background-repeat:no-repeat}.app-sdk-form-checkbox:checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e")}@media(forced-colors:active){.app-sdk-form-checkbox:checked{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}.app-sdk-form-radio:checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e")}@media(forced-colors:active){.app-sdk-form-radio:checked{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}.app-sdk-form-checkbox:checked:hover,.app-sdk-form-checkbox:checked:focus,.app-sdk-form-radio:checked:hover,.app-sdk-form-radio:checked:focus{border-color:transparent;background-color:currentColor}.app-sdk-form-checkbox:indeterminate{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e");border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:center;background-repeat:no-repeat}@media(forced-colors:active){.app-sdk-form-checkbox:indeterminate{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}.app-sdk-form-checkbox:indeterminate:hover,.app-sdk-form-checkbox:indeterminate:focus{border-color:transparent;background-color:currentColor}.app-sdk-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.app-sdk-pointer-events-none{pointer-events:none}.app-sdk-pointer-events-auto{pointer-events:auto}.app-sdk-fixed{position:fixed}.app-sdk-absolute{position:absolute}.app-sdk-relative{position:relative}.app-sdk-inset-0{inset:0}.app-sdk-left-0{left:0}.app-sdk-left-1\/2{left:50%}.app-sdk-right-0{right:0}.app-sdk-top-0{top:0}.app-sdk-top-1\/2{top:50%}.app-sdk-z-10{z-index:10}.app-sdk-z-40{z-index:40}.app-sdk-z-50{z-index:50}.app-sdk-m-0{margin:0}.app-sdk-m-auto{margin:auto}.app-sdk-mx-10{margin-left:2.5rem;margin-right:2.5rem}.app-sdk-mx-auto{margin-left:auto;margin-right:auto}.app-sdk-my-auto{margin-top:auto;margin-bottom:auto}.app-sdk-mb-2{margin-bottom:.5rem}.app-sdk-ml-2{margin-left:.5rem}.app-sdk-ml-3{margin-left:.75rem}.app-sdk-mr-2{margin-right:.5rem}.app-sdk-mt-1{margin-top:.25rem}.app-sdk-mt-2{margin-top:.5rem}.app-sdk-mt-4{margin-top:1rem}.app-sdk-box-border{box-sizing:border-box}.app-sdk-block{display:block}.app-sdk-inline-block{display:inline-block}.app-sdk-flex{display:flex}.app-sdk-inline-flex{display:inline-flex}.app-sdk-hidden{display:none}.app-sdk-h-4{height:1rem}.app-sdk-h-5{height:1.25rem}.app-sdk-h-6{height:1.5rem}.app-sdk-h-8{height:2rem}.app-sdk-h-\[70vh\]{height:70vh}.app-sdk-h-full{height:100%}.app-sdk-h-screen{height:100vh}.app-sdk-max-h-72{max-height:18rem}.app-sdk-max-h-full{max-height:100%}.app-sdk-min-h-\[200px\]{min-height:200px}.app-sdk-w-1\/4{width:25%}.app-sdk-w-20{width:5rem}.app-sdk-w-4{width:1rem}.app-sdk-w-4\/5{width:80%}.app-sdk-w-5{width:1.25rem}.app-sdk-w-56{width:14rem}.app-sdk-w-6{width:1.5rem}.app-sdk-w-\[1px\]{width:1px}.app-sdk-w-fit{width:-moz-fit-content;width:fit-content}.app-sdk-w-full{width:100%}.app-sdk-w-screen{width:100vw}.app-sdk-min-w-6{min-width:1.5rem}.app-sdk-min-w-64{min-width:16rem}.app-sdk-max-w-6{max-width:1.5rem}.app-sdk-max-w-full{max-width:100%}.app-sdk-max-w-lg{max-width:32rem}.app-sdk-max-w-xl{max-width:36rem}.app-sdk-flex-1{flex:1 1 0%}.app-sdk-border-collapse{border-collapse:collapse}.app-sdk-origin-top-right{transform-origin:top right}.app-sdk--translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.app-sdk--translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.app-sdk-scale-100{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.app-sdk-scale-95{--tw-scale-x: .95;--tw-scale-y: .95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.app-sdk-transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\!app-sdk-cursor-default{cursor:default!important}.app-sdk-cursor-default{cursor:default}.app-sdk-cursor-not-allowed{cursor:not-allowed}.app-sdk-cursor-pointer{cursor:pointer}.app-sdk-select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.app-sdk-scroll-p-4{scroll-padding:1rem}.app-sdk-scroll-py-2{scroll-padding-top:.5rem;scroll-padding-bottom:.5rem}.app-sdk-appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.app-sdk-appearance-auto{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.app-sdk-flex-row{flex-direction:row}.app-sdk-flex-col{flex-direction:column}.app-sdk-flex-wrap{flex-wrap:wrap}.app-sdk-content-center{align-content:center}.app-sdk-items-start{align-items:flex-start}.app-sdk-items-center{align-items:center}.app-sdk-justify-end{justify-content:flex-end}.app-sdk-justify-center{justify-content:center}.app-sdk-justify-between{justify-content:space-between}.app-sdk-gap-1{gap:.25rem}.app-sdk-gap-2{gap:.5rem}.app-sdk-gap-3{gap:.75rem}.app-sdk-gap-4{gap:1rem}.app-sdk-space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.75rem * var(--tw-space-x-reverse));margin-left:calc(.75rem * calc(1 - var(--tw-space-x-reverse)))}.app-sdk-space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.app-sdk-space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.app-sdk-space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.app-sdk-self-center{align-self:center}.app-sdk-overflow-y-auto{overflow-y:auto}.app-sdk-scroll-smooth{scroll-behavior:smooth}.app-sdk-text-ellipsis{text-overflow:ellipsis}.app-sdk-break-words{overflow-wrap:break-word}.app-sdk-break-all{word-break:break-all}.app-sdk-rounded{border-radius:.25rem}.app-sdk-rounded-3xl{border-radius:1.5rem}.app-sdk-rounded-full{border-radius:9999px}.app-sdk-rounded-lg{border-radius:.5rem}.app-sdk-rounded-md{border-radius:.375rem}.app-sdk-rounded-xl{border-radius:.75rem}.app-sdk-rounded-b-lg{border-bottom-right-radius:.5rem;border-bottom-left-radius:.5rem}.app-sdk-border{border-width:1px}.app-sdk-border-0{border-width:0px}.app-sdk-border-b-0{border-bottom-width:0px}.app-sdk-border-l{border-left-width:1px}.app-sdk-border-r-0{border-right-width:0px}.app-sdk-border-t-0{border-top-width:0px}.app-sdk-border-solid{border-style:solid}.app-sdk-border-none{border-style:none}.app-sdk-border-\[color\:var\(--asdk-dui-border-color\)\]{border-color:var(--asdk-dui-border-color)}.app-sdk-border-gray-900{--tw-border-opacity: 1;border-color:rgb(17 24 39 / var(--tw-border-opacity, 1))}.app-sdk-border-transparent{border-color:transparent}.\!app-sdk-bg-slate-500{--tw-bg-opacity: 1 !important;background-color:rgb(100 116 139 / var(--tw-bg-opacity, 1))!important}.app-sdk-bg-\[color\:var\(--asdk-cmdp-background-color\)\]{background-color:var(--asdk-cmdp-background-color)}.app-sdk-bg-\[color\:var\(--asdk-cmdp-focus-color\)\]{background-color:var(--asdk-cmdp-focus-color)}.app-sdk-bg-\[color\:var\(--asdk-cmdp-input-color\)\]{background-color:var(--asdk-cmdp-input-color)}.app-sdk-bg-\[color\:var\(--asdk-ddi-background-color\)\]{background-color:var(--asdk-ddi-background-color)}.app-sdk-bg-\[color\:var\(--asdk-ddm-background-color\)\]{background-color:var(--asdk-ddm-background-color)}.app-sdk-bg-\[color\:var\(--asdk-ddm-entry-background-hover-color\)\]{background-color:var(--asdk-ddm-entry-background-hover-color)}.app-sdk-bg-\[color\:var\(--asdk-dui-background-color\)\]{background-color:var(--asdk-dui-background-color)}.app-sdk-bg-\[color\:var\(--asdk-dui-footer-background-color\)\]{background-color:var(--asdk-dui-footer-background-color)}.app-sdk-bg-\[color\:var\(--asdk-dui-footer-continue-button-background-color\)\]{background-color:var(--asdk-dui-footer-continue-button-background-color)}.app-sdk-bg-\[color\:var\(--asdk-dui-footer-decline-button-background-color\)\]{background-color:var(--asdk-dui-footer-decline-button-background-color)}.app-sdk-bg-\[color\:var\(--asdk-dui-formfield-background-color\)\]{background-color:var(--asdk-dui-formfield-background-color)}.app-sdk-bg-\[color\:var\(--asdk-rd-background-color\)\]{background-color:var(--asdk-rd-background-color)}.app-sdk-bg-\[color\:var\(--asdk-rd-primary-button-color\)\]{background-color:var(--asdk-rd-primary-button-color)}.app-sdk-bg-\[color\:var\(--asdk-rd-secondary-button-color\)\]{background-color:var(--asdk-rd-secondary-button-color)}.app-sdk-bg-black\/30{background-color:#0000004d}.app-sdk-bg-cyan-800{--tw-bg-opacity: 1;background-color:rgb(21 94 117 / var(--tw-bg-opacity, 1))}.app-sdk-bg-gray-500{--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity, 1))}.app-sdk-bg-transparent{background-color:transparent}.app-sdk-bg-white\/10{background-color:#ffffff1a}.app-sdk-bg-white\/95{background-color:#fffffff2}.app-sdk-bg-opacity-25{--tw-bg-opacity: .25}.\!app-sdk-fill-app-sdk-gray-200{fill:#9e9d9d!important}.\!app-sdk-fill-none{fill:none!important}.\!app-sdk-fill-red-600{fill:#dc2626!important}.\!app-sdk-fill-white{fill:#fff!important}.\!app-sdk-stroke-app-sdk-gray-200{stroke:#9e9d9d!important}.\!app-sdk-stroke-red-600{stroke:#dc2626!important}.\!app-sdk-stroke-white{stroke:#fff!important}.\!app-sdk-stroke-\[2px\]{stroke-width:2px!important}.app-sdk-p-0{padding:0}.app-sdk-p-1{padding:.25rem}.app-sdk-p-2{padding:.5rem}.app-sdk-p-4{padding:1rem}.app-sdk-p-6{padding:1.5rem}.app-sdk-p-8{padding:2rem}.app-sdk-p-\[2px\]{padding:2px}.app-sdk-px-0{padding-left:0;padding-right:0}.app-sdk-px-1{padding-left:.25rem;padding-right:.25rem}.app-sdk-px-2{padding-left:.5rem;padding-right:.5rem}.app-sdk-px-3{padding-left:.75rem;padding-right:.75rem}.app-sdk-px-4{padding-left:1rem;padding-right:1rem}.app-sdk-py-1{padding-top:.25rem;padding-bottom:.25rem}.app-sdk-py-14{padding-top:3.5rem;padding-bottom:3.5rem}.app-sdk-py-2{padding-top:.5rem;padding-bottom:.5rem}.app-sdk-py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.app-sdk-py-3{padding-top:.75rem;padding-bottom:.75rem}.app-sdk-pb-0{padding-bottom:0}.app-sdk-pb-3{padding-bottom:.75rem}.app-sdk-pl-0{padding-left:0}.app-sdk-pl-3{padding-left:.75rem}.app-sdk-pr-10{padding-right:2.5rem}.app-sdk-pr-2{padding-right:.5rem}.app-sdk-pr-3{padding-right:.75rem}.app-sdk-pt-2{padding-top:.5rem}.app-sdk-pt-4{padding-top:1rem}.app-sdk-text-left{text-align:left}.app-sdk-text-center{text-align:center}.app-sdk-text-2xl{font-size:1.5rem;line-height:2rem}.app-sdk-text-\[100\%\]{font-size:100%}.app-sdk-text-base{font-size:1rem;line-height:1.5rem}.app-sdk-text-lg{font-size:1.125rem;line-height:1.75rem}.app-sdk-text-sm{font-size:.875rem;line-height:1.25rem}.app-sdk-text-xl{font-size:1.25rem;line-height:1.75rem}.app-sdk-text-xs{font-size:.75rem;line-height:1rem}.app-sdk-font-bold{font-weight:700}.app-sdk-font-medium{font-weight:500}.app-sdk-leading-4{line-height:1rem}.app-sdk-leading-6{line-height:1.5rem}.app-sdk-text-\[color\:var\(--asdk-cmdp-text-color\)\]{color:var(--asdk-cmdp-text-color)}.app-sdk-text-\[color\:var\(--asdk-ddm-danger-entry-text-color\)\]{color:var(--asdk-ddm-danger-entry-text-color)}.app-sdk-text-\[color\:var\(--asdk-ddm-default-entry-text-color\)\]{color:var(--asdk-ddm-default-entry-text-color)}.app-sdk-text-\[color\:var\(--asdk-ddm-icon-text-color\)\]{color:var(--asdk-ddm-icon-text-color)}.app-sdk-text-\[color\:var\(--asdk-dui-footer-continue-button-text-color\)\]{color:var(--asdk-dui-footer-continue-button-text-color)}.app-sdk-text-\[color\:var\(--asdk-dui-footer-decline-button-text-color\)\]{color:var(--asdk-dui-footer-decline-button-text-color)}.app-sdk-text-\[color\:var\(--asdk-dui-formfield-checkbox-text-color\)\]{color:var(--asdk-dui-formfield-checkbox-text-color)}.app-sdk-text-\[color\:var\(--asdk-dui-formfield-hint-text-color\)\]{color:var(--asdk-dui-formfield-hint-text-color)}.app-sdk-text-\[color\:var\(--asdk-dui-header-text-color\)\]{color:var(--asdk-dui-header-text-color)}.app-sdk-text-\[color\:var\(--asdk-dui-text-color\)\]{color:var(--asdk-dui-text-color)}.app-sdk-text-\[color\:var\(--asdk-rd-primary-button-text-color\)\]{color:var(--asdk-rd-primary-button-text-color)}.app-sdk-text-\[color\:var\(--asdk-rd-secondary-button-text-color\)\]{color:var(--asdk-rd-secondary-button-text-color)}.app-sdk-text-\[color\:var\(--asdk-rd-text-color\)\]{color:var(--asdk-rd-text-color)}.app-sdk-text-app-sdk-inherit{color:inherit}.app-sdk-text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.app-sdk-text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.app-sdk-placeholder-\[color\:var\(--asdk-dui-formfield-placeholder-text-color\)\]::-moz-placeholder{color:var(--asdk-dui-formfield-placeholder-text-color)}.app-sdk-placeholder-\[color\:var\(--asdk-dui-formfield-placeholder-text-color\)\]::placeholder{color:var(--asdk-dui-formfield-placeholder-text-color)}.app-sdk-opacity-0{opacity:0}.app-sdk-opacity-100{opacity:1}.app-sdk-shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.app-sdk-shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.app-sdk-shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.app-sdk-shadow-\[color\:var\(--asdk-dui-shadow-color\)\]{--tw-shadow-color: var(--asdk-dui-shadow-color);--tw-shadow: var(--tw-shadow-colored)}.app-sdk-ring-1{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.app-sdk-ring-black{--tw-ring-opacity: 1;--tw-ring-color: rgb(0 0 0 / var(--tw-ring-opacity, 1))}.app-sdk-ring-opacity-5{--tw-ring-opacity: .05}.app-sdk-ring-offset-2{--tw-ring-offset-width: 2px}.app-sdk-backdrop-blur-md{--tw-backdrop-blur: blur(12px);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.app-sdk-backdrop-blur-xl{--tw-backdrop-blur: blur(24px);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.app-sdk-transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.app-sdk-transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.app-sdk-transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.app-sdk-duration-100{transition-duration:.1s}.app-sdk-duration-200{transition-duration:.2s}.app-sdk-duration-75{transition-duration:75ms}.app-sdk-ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.app-sdk-ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.app-sdk-scroll-shadow{mask-image:linear-gradient(to bottom,transparent,black 1.5rem,black calc(100% - 1.5rem),transparent);-webkit-mask-image:linear-gradient(to bottom,transparent,black 1.5rem,black calc(100% - 1.5rem),transparent)}.\[\&_input\[type\=\'checkbox\'\]\]\:app-sdk-form-checkbox input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0;-webkit-print-color-adjust:exact;print-color-adjust:exact;display:inline-block;vertical-align:middle;background-origin:border-box;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-shrink:0;height:1rem;width:1rem;color:#2563eb;background-color:#fff;border-color:#6b7280;border-width:1px;--tw-shadow: 0 0 #0000;border-radius:0}.\[\&_input\[type\=\'checkbox\'\]\]\:app-sdk-form-checkbox input[type=checkbox]:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-inset: var(--tw-empty, );--tw-ring-offset-width: 2px;--tw-ring-offset-color: #fff;--tw-ring-color: #2563eb;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.\[\&_input\[type\=\'checkbox\'\]\]\:app-sdk-form-checkbox input[type=checkbox]:checked{border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:center;background-repeat:no-repeat;background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e")}@media(forced-colors:active){.\[\&_input\[type\=\'checkbox\'\]\]\:app-sdk-form-checkbox input[type=checkbox]:checked{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}.\[\&_input\[type\=\'checkbox\'\]\]\:app-sdk-form-checkbox input[type=checkbox]:checked:hover,.\[\&_input\[type\=\'checkbox\'\]\]\:app-sdk-form-checkbox input[type=checkbox]:checked:focus{border-color:transparent;background-color:currentColor}.\[\&_input\[type\=\'checkbox\'\]\]\:app-sdk-form-checkbox input[type=checkbox]:indeterminate{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e");border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:center;background-repeat:no-repeat}@media(forced-colors:active){.\[\&_input\[type\=\'checkbox\'\]\]\:app-sdk-form-checkbox input[type=checkbox]:indeterminate{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}.\[\&_input\[type\=\'checkbox\'\]\]\:app-sdk-form-checkbox input[type=checkbox]:indeterminate:hover,.\[\&_input\[type\=\'checkbox\'\]\]\:app-sdk-form-checkbox input[type=checkbox]:indeterminate:focus{border-color:transparent;background-color:currentColor}.invalid\:app-sdk-border-\[color\:var\(--asdk-dui-formfield-invalid-color\)\]:invalid{border-color:var(--asdk-dui-formfield-invalid-color)}.invalid\:app-sdk-ring-1:invalid{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.invalid\:app-sdk-ring-\[color\:var\(--asdk-dui-formfield-invalid-color\)\]:invalid{--tw-ring-color: var(--asdk-dui-formfield-invalid-color)}.hover\:app-sdk-cursor-pointer:hover{cursor:pointer}.hover\:app-sdk-bg-\[color\:var\(--asdk-dui-footer-continue-button-background-hover-color\)\]:hover{background-color:var(--asdk-dui-footer-continue-button-background-hover-color)}.hover\:app-sdk-bg-\[color\:var\(--asdk-dui-footer-decline-button-background-hover-color\)\]:hover{background-color:var(--asdk-dui-footer-decline-button-background-hover-color)}.hover\:app-sdk-bg-\[color\:var\(--asdk-rd-primary-button-hover-color\)\]:hover{background-color:var(--asdk-rd-primary-button-hover-color)}.hover\:app-sdk-bg-\[color\:var\(--asdk-rd-secondary-button-hover-color\)\]:hover{background-color:var(--asdk-rd-secondary-button-hover-color)}.hover\:app-sdk-bg-app-sdk-gray-100\/40:hover{background-color:#c3c3c366}.hover\:app-sdk-text-\[color\:var\(--asdk-ddm-icon-text-hover-color\)\]:hover{color:var(--asdk-ddm-icon-text-hover-color)}.hover\:app-sdk-text-gray-300:hover{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.focus\:app-sdk-border-\[color\:var\(--asdk-dui-focus-color\)\]:focus{border-color:var(--asdk-dui-focus-color)}.focus\:app-sdk-border-transparent:focus{border-color:transparent}.focus\:app-sdk-outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:app-sdk-ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:app-sdk-ring-\[color\:var\(--asdk-ddm-focus-color\)\]:focus{--tw-ring-color: var(--asdk-ddm-focus-color)}.focus\:app-sdk-ring-\[color\:var\(--asdk-dui-focus-color\)\]:focus{--tw-ring-color: var(--asdk-dui-focus-color)}.focus\:app-sdk-ring-\[color\:var\(--asdk-dui-footer-continue-button-focus-outline-color\)\]:focus{--tw-ring-color: var(--asdk-dui-footer-continue-button-focus-outline-color)}.focus\:app-sdk-ring-\[color\:var\(--asdk-dui-footer-decline-button-focus-outline-color\)\]:focus{--tw-ring-color: var(--asdk-dui-footer-decline-button-focus-outline-color)}.focus\:app-sdk-ring-transparent:focus{--tw-ring-color: transparent}.focus\:app-sdk-ring-offset-2:focus{--tw-ring-offset-width: 2px}.disabled\:app-sdk-cursor-default:disabled{cursor:default}.data-\[closed\]\:app-sdk-scale-95[data-closed]{--tw-scale-x: .95;--tw-scale-y: .95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[closed\]\:app-sdk-opacity-0[data-closed]{opacity:0}.data-\[enter\]\:app-sdk-duration-300[data-enter]{transition-duration:.3s}.data-\[leave\]\:app-sdk-duration-150[data-leave]{transition-duration:.15s}.data-\[enter\]\:app-sdk-ease-out[data-enter]{transition-timing-function:cubic-bezier(0,0,.2,1)}.data-\[leave\]\:app-sdk-ease-in[data-leave]{transition-timing-function:cubic-bezier(.4,0,1,1)}.dark\:app-sdk-border-2:is([class~=dark] *){border-width:2px}.dark\:app-sdk-border-solid:is([class~=dark] *){border-style:solid}.dark\:app-sdk-border-none:is([class~=dark] *){border-style:none}.dark\:app-sdk-border-gray-300:is([class~=dark] *){--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1))}.dark\:app-sdk-border-transparent:is([class~=dark] *){border-color:transparent}.dark\:app-sdk-bg-black\/85:is([class~=dark] *){background-color:#000000d9}.dark\:app-sdk-bg-app-sdk-dropdown-dark:is([class~=dark] *){background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%23FFFFFF' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e")}.dark\:\!app-sdk-fill-app-sdk-gray-400:is([class~=dark] *){fill:#4b4b4b!important}.dark\:\!app-sdk-fill-app-sdk-gray-50:is([class~=dark] *){fill:#cdcdcd!important}.dark\:\!app-sdk-stroke-app-sdk-gray-400:is([class~=dark] *){stroke:#4b4b4b!important}.dark\:\!app-sdk-stroke-app-sdk-gray-50:is([class~=dark] *){stroke:#cdcdcd!important}.dark\:app-sdk-text-white:is([class~=dark] *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.dark\:\[color-scheme\:dark\]:is([class~=dark] *){color-scheme:dark}.dark\:invalid\:app-sdk-shadow-app-sdk-dark-invalid:invalid:is([class~=dark] *){--tw-shadow: 0 0 0 .2rem rgb(220 53 69 / 25%);--tw-shadow-colored: 0 0 0 .2rem var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.dark\:focus\:app-sdk-shadow-app-sdk-dark:focus:is([class~=dark] *){--tw-shadow: 0 0 0px .2rem rgb(0 123 255 / 25%);--tw-shadow-colored: 0 0 0px .2rem var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}@media(min-width:640px){.sm\:app-sdk-ml-2{margin-left:.5rem}.sm\:app-sdk-flex{display:flex}.sm\:app-sdk-w-auto{width:auto}.sm\:app-sdk-w-full{width:100%}.sm\:app-sdk-max-w-lg{max-width:32rem}.sm\:app-sdk-flex-row-reverse{flex-direction:row-reverse}.sm\:-app-sdk-space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(-.5rem * var(--tw-space-x-reverse));margin-left:calc(-.5rem * calc(1 - var(--tw-space-x-reverse)))}.sm\:app-sdk-space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.sm\:app-sdk-p-6{padding:1.5rem}.sm\:app-sdk-px-14{padding-left:3.5rem;padding-right:3.5rem}.sm\:app-sdk-px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:app-sdk-text-sm{font-size:.875rem;line-height:1.25rem}}@media(min-width:768px){.md\:app-sdk-mx-20{margin-left:5rem;margin-right:5rem}.md\:app-sdk-p-20{padding:5rem}}@media(min-width:1024px){.lg\:app-sdk-mx-40{margin-left:10rem;margin-right:10rem}}.\[\&_a\]\:app-sdk-text-\[color\:var\(--asdk-dui-link-color\)\] a{color:var(--asdk-dui-link-color)}.\[\&_a\]\:app-sdk-underline a{text-decoration-line:underline}.hover\:\[\&_a\]\:app-sdk-text-\[color\:var\(--asdk-dui-link-hover-color\)\] a:hover{color:var(--asdk-dui-link-hover-color)}.\[\&_blockquote\]\:app-sdk-m-\[revert\] blockquote{margin:revert}.\[\&_code\]\:app-sdk-text-\[\#e83e8c\] code{--tw-text-opacity: 1;color:rgb(232 62 140 / var(--tw-text-opacity, 1))}.\[\&_fieldset\]\:app-sdk-m-\[revert\] fieldset{margin:revert}.\[\&_fieldset\]\:app-sdk-p-\[revert\] fieldset{padding:revert}.\[\&_h1\]\:app-sdk-m-\[revert\] h1{margin:revert}.\[\&_h1\]\:app-sdk-text-2xl h1{font-size:1.5rem;line-height:2rem}.\[\&_h1\]\:app-sdk-font-bold h1{font-weight:700}.\[\&_h2\]\:app-sdk-m-\[revert\] h2{margin:revert}.\[\&_h2\]\:app-sdk-text-xl h2{font-size:1.25rem;line-height:1.75rem}.\[\&_h2\]\:app-sdk-font-bold h2{font-weight:700}.\[\&_h3\]\:app-sdk-m-\[revert\] h3{margin:revert}.\[\&_h3\]\:app-sdk-text-lg h3{font-size:1.125rem;line-height:1.75rem}.\[\&_h3\]\:app-sdk-font-bold h3{font-weight:700}.\[\&_h4\]\:app-sdk-m-\[revert\] h4{margin:revert}.\[\&_h4\]\:app-sdk-text-base h4{font-size:1rem;line-height:1.5rem}.\[\&_h4\]\:app-sdk-font-bold h4{font-weight:700}.\[\&_h5\]\:app-sdk-m-\[revert\] h5{margin:revert}.\[\&_h5\]\:app-sdk-text-sm h5{font-size:.875rem;line-height:1.25rem}.\[\&_h5\]\:app-sdk-font-bold h5{font-weight:700}.\[\&_h6\]\:app-sdk-m-\[revert\] h6{margin:revert}.\[\&_h6\]\:app-sdk-text-xs h6{font-size:.75rem;line-height:1rem}.\[\&_h6\]\:app-sdk-font-bold h6{font-weight:700}.\[\&_input\[type\=\'checkbox\'\]\]\:app-sdk-h-4 input[type=checkbox]{height:1rem}.\[\&_input\[type\=\'checkbox\'\]\]\:app-sdk-w-4 input[type=checkbox]{width:1rem}.\[\&_input\[type\=\'checkbox\'\]\]\:app-sdk-rounded input[type=checkbox]{border-radius:.25rem}.\[\&_input\[type\=\'checkbox\'\]\]\:app-sdk-border input[type=checkbox]{border-width:1px}.\[\&_input\[type\=\'checkbox\'\]\]\:app-sdk-border-\[color\:var\(--asdk-dui-border-color\)\] input[type=checkbox]{border-color:var(--asdk-dui-border-color)}.\[\&_input\[type\=\'checkbox\'\]\]\:app-sdk-text-sky-600 input[type=checkbox]{--tw-text-opacity: 1;color:rgb(2 132 199 / var(--tw-text-opacity, 1))}.\[\&_input\[type\=\'checkbox\'\]\]\:hover\:app-sdk-border-\[color\:var\(--asdk-dui-border-color\)\]:hover input[type=checkbox]{border-color:var(--asdk-dui-border-color)}.\[\&_input\[type\=\'checkbox\'\]\]\:dark\:app-sdk-border-2:is([class~=dark] *) input[type=checkbox]{border-width:2px}.\[\&_input\[type\=\'checkbox\'\]\]\:dark\:app-sdk-border-solid:is([class~=dark] *) input[type=checkbox]{border-style:solid}.\[\&_input\[type\=\'checkbox\'\]\]\:dark\:app-sdk-border-transparent:is([class~=dark] *) input[type=checkbox]{border-color:transparent}.\[\&_input\[type\=\'checkbox\'\]\]\:dark\:app-sdk-bg-app-sdk-gray-350:is([class~=dark] *) input[type=checkbox]{--tw-bg-opacity: 1;background-color:rgb(85 85 85 / var(--tw-bg-opacity, 1))}.\[\&_input\[type\=\'checkbox\'\]\]\:dark\:app-sdk-text-\[\#007bff40\]:is([class~=dark] *) input[type=checkbox]{color:#007bff40}.\[\&_input\[type\=\'checkbox\'\]\]\:dark\:hover\:app-sdk-border-transparent:hover:is([class~=dark] *) input[type=checkbox]{border-color:transparent}.\[\&_input\[type\=\'checkbox\'\]\]\:dark\:hover\:checked\:app-sdk-bg-app-sdk-gray-350:checked:hover:is([class~=dark] *) input[type=checkbox]{--tw-bg-opacity: 1;background-color:rgb(85 85 85 / var(--tw-bg-opacity, 1))}.\[\&_menu\]\:app-sdk-m-\[revert\] menu{margin:revert}.\[\&_menu\]\:app-sdk-p-\[revert\] menu{padding:revert}.\[\&_ol\]\:app-sdk-m-\[revert\] ol{margin:revert}.\[\&_ol\]\:app-sdk-list-decimal ol{list-style-type:decimal}.\[\&_ol\]\:app-sdk-p-\[revert\] ol{padding:revert}.\[\&_ol_p\]\:app-sdk-my-2 ol p{margin-top:.5rem;margin-bottom:.5rem}.first-of-type\:\[\&_ol_p\]\:app-sdk-my-4 ol p:first-of-type{margin-top:1rem;margin-bottom:1rem}.\[\&_p\]\:app-sdk-my-4 p{margin-top:1rem;margin-bottom:1rem}.first-of-type\:\[\&_p\]\:app-sdk-mb-4 p:first-of-type{margin-bottom:1rem}.first-of-type\:\[\&_p\]\:app-sdk-mt-0 p:first-of-type{margin-top:0}.\[\&_pre\]\:app-sdk-my-4 pre{margin-top:1rem;margin-bottom:1rem}.\[\&_pre\]\:app-sdk-bg-gray-100 pre{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.\[\&_pre\]\:dark\:app-sdk-bg-app-sdk-gray-700:is([class~=dark] *) pre{--tw-bg-opacity: 1;background-color:rgb(29 29 29 / var(--tw-bg-opacity, 1))}.\[\&_pre_code\]\:app-sdk-text-inherit pre code{color:inherit}.\[\&_ul\]\:app-sdk-m-\[revert\] ul{margin:revert}.\[\&_ul\]\:app-sdk-list-disc ul{list-style-type:disc}.\[\&_ul\]\:app-sdk-p-\[revert\] ul{padding:revert}.\[\&_ul_p\]\:app-sdk-my-2 ul p{margin-top:.5rem;margin-bottom:.5rem}.first-of-type\:\[\&_ul_p\]\:app-sdk-my-4 ul p:first-of-type{margin-top:1rem;margin-bottom:1rem}
@@ -0,0 +1,58 @@
1
+ import { ProcessCostsService } from './ProcessCostsService';
2
+ import { RuntimeService } from './RuntimeService';
3
+ type HeatmapLevel = 'Critical' | 'Warning' | 'Stable';
4
+ export interface ProcessModel {
5
+ customProperties: {
6
+ 'pilot.setRuntime.warning'?: string;
7
+ 'pilot.setRuntime.critical'?: string;
8
+ 'pilot.setProcessCosts.warning'?: string;
9
+ 'pilot.setProcessCosts.critical'?: string;
10
+ };
11
+ flowNodes: Array<{
12
+ id: string;
13
+ customProperties: {
14
+ 'pilot.setRuntime.reference'?: string;
15
+ 'pilot.setRuntime.warning'?: string;
16
+ 'pilot.setRuntime.critical'?: string;
17
+ };
18
+ }>;
19
+ }
20
+ export interface BpmnViewer {
21
+ getOverlays(): any;
22
+ getElementRegistry(): any;
23
+ clearHeatmap(data: string[]): void;
24
+ showHeatmap(data: Record<string, HeatmapLevel>): void;
25
+ }
26
+ export interface NodeHeatmapInfo {
27
+ status: HeatmapLevel;
28
+ referenceRuntime: number;
29
+ warningThreshold?: number;
30
+ criticalThreshold?: number;
31
+ warningSource?: 'Flow Node' | 'Process';
32
+ criticalSource?: 'Flow Node' | 'Process';
33
+ }
34
+ export declare class HeatmapService {
35
+ private nodeInfoMap;
36
+ private heatmapInfo;
37
+ private runtimeService;
38
+ private processCostsService;
39
+ private bpmnViewer;
40
+ private activeCostKeyPerNode;
41
+ constructor(runtimeService: RuntimeService, processCostsService: ProcessCostsService, processModel: ProcessModel);
42
+ updateHeatmapService(runtimeService: RuntimeService, processCostsService: ProcessCostsService, processModel: ProcessModel): void;
43
+ getHeatmapInfoForId(flowNodeId: string): {
44
+ [key: string]: NodeHeatmapInfo;
45
+ };
46
+ hasRuntimeEntry(): boolean;
47
+ hasCostEntry(): boolean;
48
+ getActiveCostKey(nodeId: string): string | undefined;
49
+ hasMultipleCostEntries(flowNodeId: string): boolean;
50
+ applyHeatmap(showHeatmap: boolean, type: string, options: {
51
+ viewer?: BpmnViewer;
52
+ flowNodeId?: string;
53
+ }): void;
54
+ private computeCostHeatmap;
55
+ private computeRuntimeHeatmap;
56
+ private getHeatmapSource;
57
+ }
58
+ export {};
@@ -0,0 +1,34 @@
1
+ type FlowNodeDefinition = {
2
+ id: string;
3
+ customProperties: Record<string, string>;
4
+ };
5
+ type CostCalculationResult = {
6
+ total: number;
7
+ errors: number;
8
+ average: number;
9
+ reference?: number;
10
+ critical?: number;
11
+ warning?: number;
12
+ };
13
+ export declare class ProcessCostsService {
14
+ private flowNodeInstances;
15
+ private processCostsExpressionParams;
16
+ private instances;
17
+ private costResultsByFlowNodeId;
18
+ private instanceCounter;
19
+ private thresholdsByFlowNodeId;
20
+ constructor(databaseProcessInstance: any, flowNodeDefinitions: FlowNodeDefinition[]);
21
+ getInstanceCount(flowNodeId: string): number | undefined;
22
+ getCostsForFlowNodeId(flowNodeId: string): Record<string, CostCalculationResult> | undefined;
23
+ getAllProcessCosts(): Record<string, Record<string, CostCalculationResult>>;
24
+ getFlowNodeExecutionCount(flowNodeId: string, flowNodeInstanceId: string): number;
25
+ getProcessInstanceCount(): number;
26
+ private splitCostProperties;
27
+ private precalculateCosts;
28
+ private getProcessCosts;
29
+ private setProcessCostExpressionParamsForInstance;
30
+ private getCurrentFlowNode;
31
+ private buildTokenHistoryForFlowNodeInstance;
32
+ private buildDataObjectsForFlowNodeInstance;
33
+ }
34
+ export {};
@@ -0,0 +1,15 @@
1
+ type AggregatedRuntimes = {
2
+ average: number;
3
+ shortest: number;
4
+ longest: number;
5
+ };
6
+ export declare class RuntimeService {
7
+ private runtimeStatsById;
8
+ constructor(instances: any[], processModelHash: string);
9
+ getStats(flowNodeId: string): AggregatedRuntimes;
10
+ private aggregateRuntimes;
11
+ private setMappedRuntimes;
12
+ private getTimesFromProcessInstances;
13
+ private getFlowNodeTimes;
14
+ }
15
+ export {};
@@ -0,0 +1,3 @@
1
+ export * from './HeatmapService';
2
+ export * from './ProcessCostsService';
3
+ export * from './RuntimeService';
@@ -0,0 +1,4 @@
1
+ export declare function getAverageRuntime(times: number[]): number | undefined;
2
+ export declare function getShortestRuntime(times: number[]): number;
3
+ export declare function getLongestRuntime(times: number[]): number;
4
+ export declare function parseValidPercent(value?: string): number | undefined;
@@ -0,0 +1 @@
1
+ export declare function formatDuration(ms: number | undefined): string;
@@ -0,0 +1,13 @@
1
+ export type RuntimeResults = {
2
+ id: string;
3
+ instances: Record<string, number>;
4
+ };
5
+ export type TimeRange = 'all' | 'today' | 'yesterday' | 'this_week' | 'last_7_days' | 'this_month' | 'last_30_days' | 'this_year' | {
6
+ custom: {
7
+ startDate?: string;
8
+ endDate?: string;
9
+ };
10
+ };
11
+ export type FilterOptions = {
12
+ timeRange: TimeRange;
13
+ };
@@ -1,2 +1,3 @@
1
1
  export * from './UserTaskInstance';
2
2
  export * from './IPCMessageType';
3
+ export * from './HeatmapTypes';
@@ -1 +1 @@
1
- var N=Object.defineProperty;var de=Object.getOwnPropertyDescriptor;var le=Object.getOwnPropertyNames;var ue=Object.prototype.hasOwnProperty;var pe=(e,t)=>{for(var s in t)N(e,s,{get:t[s],enumerable:!0})},fe=(e,t,s,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of le(t))!ue.call(e,o)&&o!==s&&N(e,o,{get:()=>t[o],enumerable:!(n=de(t,o))||n.enumerable});return e};var ye=e=>fe(N({},"__esModule",{value:!0}),e);var Ge={};pe(Ge,{cancelReservedUserTask:()=>Fe,finishManualTask:()=>D,finishTask:()=>Le,finishUntypedTask:()=>M,finishUserTask:()=>L,finishUserTaskAndGetNext:()=>Se,getActiveProcessInstances:()=>Ce,getAssignedUserTasksByIdentity:()=>ve,getEngineClient:()=>Ee,getFlowNodeInstances:()=>Ke,getFlowNodeInstancesByProcessInstanceId:()=>F,getFlowNodeInstancesTriggeredByFlowNodeInstanceIds:()=>v,getIdentity:()=>a,getProcessInstance:()=>qe,getProcessInstanceById:()=>U,getReservedUserTasksByIdentity:()=>Re,getTriggeredFlowNodeInstances:()=>Xe,getUserTasks:()=>te,getWaitingUserTaskByFlowNodeInstanceId:()=>se,getWaitingUserTasks:()=>_e,getWaitingUserTasksByCorrelationId:()=>be,getWaitingUserTasksByFlowNodeId:()=>he,getWaitingUserTasksByProcessInstanceId:()=>Ne,navigateToUrl:()=>Be,reserveUserTask:()=>Ue,retryProcess:()=>We,retryProcessInstance:()=>O,startProcess:()=>Ae,terminateProcess:()=>Me,terminateProcessInstance:()=>B,waitForProcessEnd:()=>Pe,waitForUserTask:()=>xe,withApplicationSdk:()=>Oe});module.exports=ye(Ge);var St=require("only-server"),_t=require("../common/index.cjs");var K=require("node:child_process"),C=require("node:fs"),d=require("node:path"),X=require("chokidar"),G=require("esbuild"),$=require("jwt-decode"),S=require("openid-client"),j=require("@5minds/processcube_engine_sdk");var q=require("@5minds/processcube_engine_client"),h=process.env.PROCESSCUBE_ENGINE_URL??"http://localhost:10560",r=new q.EngineClient(h);var Ie={token:"ZHVtbXlfdG9rZW4=",userId:"dummy_token"},ke=.85,x=["external_task.ts","external_task.js"],b=process.env.PROCESSCUBE_AUTHORITY_URL!==void 0,T=new j.Logger("processcube_app_sdk:external_task_adapter"),m={},E;async function H(e){if(e&&!(0,C.existsSync)(e))throw new Error(`Invalid customExternalTasksDirPath. The given path '${e}' does not exist`);S.custom.setHttpOptionsDefaults({timeout:1e5});let t=await Q();E=await Z(t),await Te(t);let s=we(e);(0,X.watch)(s).on("add",async n=>{if(x.includes((0,d.basename)(n)))return Y(n,s)}).on("change",async n=>{if(x.includes((0,d.basename)(n)))return me(n,s)}).on("unlink",async n=>{x.includes((0,d.basename)(n))&&V(n)}).on("error",n=>T.error(`Watcher error: ${n}`))}async function Y(e,t){let s=(0,d.dirname)(e);if((await C.promises.readdir(s)).filter(u=>x.includes(u)).length>1){T.error(`Multiple external task files found in directory ${s}. Stopping all external task workers for this directory.`),m[s]&&V(e);return}let i=await J(e),c=(0,d.relative)(t,s),y=z(c),l=(0,d.join)(__dirname,"lib/ExternalTaskWorkerProcess.cjs"),I=(0,K.fork)(l,{env:{...process.env,PROCESSCUBE_ENGINE_URL:h}});m[s]=I,I.once("disconnect",()=>{delete m[s]}),I.send({action:"create",payload:{topic:y,identity:E,moduleString:i,workerPath:e}})}async function me(e,t){let s=(0,d.dirname)(e),n=m[s];if(!n)return Y(e,t);let o=await J(e),i=(0,d.relative)(t,s),c=z(i);n.send({action:"restart",payload:{topic:c,identity:E,moduleString:o,workerPath:e}})}function V(e){let t=(0,d.dirname)(e),s=m[t];s&&s.kill()}async function Q(){if(!b)return null;if(!process.env.PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_ID||!process.env.PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_SECRET){let n=new Error("Required environment variables PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_ID and PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_SECRET are missing. For help, please refer to our documentation on environment variables at: https://processcube.io/docs/app-sdk/samples/nextjs/external-task-adapter-with-nextjs#authority");throw T.error("Required environment variables PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_ID and PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_SECRET are missing",{err:n}),n}let e=await S.Issuer.discover(process.env.PROCESSCUBE_AUTHORITY_URL);return await new e.Client({client_id:process.env.PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_ID,client_secret:process.env.PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_SECRET}).grant({grant_type:"client_credentials",scope:"engine_etw"})}function Z(e){if(!b||e===null)return Ie;let t=e.access_token,s=(0,$.jwtDecode)(t);return{token:e.access_token,userId:s.sub}}async function Te(e){let t=5;if(!b||e===null)return;let n=await ge(e)*ke*1e3,o=async()=>{try{let i=await Q();E=Z(i);for(let c of Object.values(m))c.send({action:"updateIdentity",payload:{identity:E}});t=5,setTimeout(o,n)}catch(i){if(t===0){T.error("Could not refresh identity for external task worker processes. Stopping all external task workers.",{error:i});for(let y of Object.values(m))y.kill();return}T.error("Could not refresh identity for external task worker processes.",{error:i,retryCount:t}),t--;let c=2*1e3;setTimeout(o,c)}};setTimeout(o,n)}async function J(e){let t=await(0,G.build)({entryPoints:[e],write:!1,bundle:!0,platform:"node",target:"node18",format:"cjs",external:["@opentelemetry/api"]});if(t.errors.length>0)throw T.error(`Could not transpile file at '${e}'`,{errors:t.errors}),new Error(`Could not transpile file at '${e}'`);return t.warnings.length>0&&T.warn(`Transpiled file at '${e}' with warnings`,{warnings:t.warnings}),t.outputFiles[0].text}async function ge(e){let t=e.expires_in;if(!t&&e.expires_at&&(t=Math.floor(e.expires_at-Date.now()/1e3)),t===void 0)throw new Error("Could not determine the time until the access token for external task workers expires");return t}function z(e){return e.replace(/^\.\/+|\([^)]+\)|^\/*|\/*$/g,"").replace(/[\/]{2,}/g,"/")}function we(e){let t,s=[e,(0,d.join)(process.cwd(),"app"),(0,d.join)(process.cwd(),"src","app")];for(let n of s)if(n&&(0,C.existsSync)(n)){t=n;break}if(!t)throw new Error("Could not find external tasks directory");return t}function Ee(){return r}var R=require("next-auth/jwt"),ee=require("next/dist/compiled/@edge-runtime/cookies"),k=require("next/headers");async function a(){let e=await(0,R.getToken)({req:{cookies:await(0,k.cookies)(),headers:await(0,k.headers)()}});if(e?.expiresAt&&Date.now()>=e.expiresAt*1e3){let s=await fetch(`${process.env.NEXTAUTH_URL}/api/auth/session`,{method:"GET",headers:{"Content-Type":"application/json",cookie:(await(0,k.cookies)()).toString()}}),n=new ee.ResponseCookies(s.headers);if(n.getAll().length){let o=!1;try{for(let i of n.getAll())(await(0,k.cookies)()).set(i.name,i.value,{...i})}catch{o=!0}if(e=await(0,R.getToken)({req:{cookies:o?n:await(0,k.cookies)(),headers:await(0,k.headers)()}}),e?.error)throw e.error}}if(!e?.accessToken||!e?.sub)throw new Error("AccessToken or Sub could not be determined!");return{token:e?.accessToken,userId:e?.sub}}var g=require("@5minds/processcube_engine_client");async function P(){try{return a()}catch{return}}async function U(e){let t=await P();return(await r.processInstances.query({processInstanceId:e},{identity:t,includeXml:!0})).processInstances[0]}async function F(e,t={sortSettings:{sortBy:g.DataModels.FlowNodeInstances.FlowNodeInstanceSortableColumns.createdAt,sortDir:"ASC"}}){return(await r.flowNodeInstances.query({processInstanceId:e},{...t,identity:t.identity??await P()})).flowNodeInstances}async function v(e){let t=await P();return(await r.flowNodeInstances.query({triggeredByFlowNodeInstance:e},{identity:t})).flowNodeInstances}async function O(e,t,s){let n=await P();await r.processInstances.retryProcessInstance(e,{flowNodeInstanceId:t,newStartToken:s,identity:n})}async function B(e){let t=await P();await r.processInstances.terminateProcessInstance(e,t)}async function Ce(e={options:{identity:!0}}){switch(e.options.identity){case!0:e.options.identity=await a();break;case!1:e.options.identity=void 0;break;case void 0:e.options.identity=await a();break}return await r.processInstances.query({...e?.query,state:g.DataModels.ProcessInstances.ProcessInstanceState.running},e?.options)}async function Pe(e={},t=!0){let{processInstanceId:s}=e,n=typeof t=="boolean"?t==!0?await a():void 0:t;return new Promise(async(o,i)=>{let c=[],y=async l=>{if(s!==void 0&&l.processInstanceId!==s)return;let u=await r.processInstances.query({processInstanceId:l.processInstanceId},{identity:n});for(let _ of c)r.notification.removeSubscription(_,n);return u.totalCount===0?i(new Error(`Process with instance ID "${l.processInstanceId}" does not exist.`)):o(u.processInstances[0])};if(c.push(await r.notification.onProcessEnded(y,{identity:n})),c.push(await r.notification.onProcessError(y,{identity:n})),c.push(await r.notification.onProcessTerminated(y,{identity:n})),s){let l=await r.processInstances.query({processInstanceId:s,state:[g.DataModels.ProcessInstances.ProcessInstanceState.finished,g.DataModels.ProcessInstances.ProcessInstanceState.terminated,g.DataModels.ProcessInstances.ProcessInstanceState.error]},{identity:n});if(l.totalCount>0){for(let I of c)r.notification.removeSubscription(I,n);o(l.processInstances[0])}}})}var f=require("@5minds/processcube_engine_client"),p=require("../common/index.cjs");async function xe(e={},t=!0){let{correlationId:s,processInstanceId:n,flowNodeId:o}=e,i=typeof t=="boolean"?t==!0?await a():void 0:t;return new Promise(async(c,y)=>{let l=await r.userTasks.onUserTaskWaiting(async u=>{let _=s!==void 0&&u.correlationId!==s,ie=u.flowNodeInstanceId===void 0,ae=n!==void 0&&u.processInstanceId!==n,ce=o!==void 0&&u.flowNodeId!==o;if(_||ie||ae||ce)return;let W=await se(u.flowNodeInstanceId,{identity:i});return r.notification.removeSubscription(l,i),W===null?y(new Error(`UserTask with instance ID "${u.flowNodeInstanceId}" does not exist.`)):c(W)},{identity:i}),I=await te({correlationId:s,processInstanceId:n,flowNodeId:o,state:f.DataModels.FlowNodeInstances.FlowNodeInstanceState.suspended},{identity:i});I.userTasks.length>0&&(r.notification.removeSubscription(l,i),c(I.userTasks[0]))})}async function Se(e,t={},s={},n=!0){let o=typeof n=="boolean"?n==!0?await a():void 0:n;await r.userTasks.finishUserTask(e,s,o);let i={state:f.DataModels.FlowNodeInstances.FlowNodeInstanceState.suspended,...t},c=await r.userTasks.query(i,{identity:o});return(0,p.mapUserTask)(c.userTasks[0])}async function te(e,t={identity:!0}){switch(t?.identity){case!0:t.identity=await a();break;case!1:t.identity=void 0;break;case void 0:t.identity=await a();break}let s=await r.userTasks.query(e,t);return(0,p.mapUserTaskList)(s)}async function _e(e={identity:!0}){switch(e?.identity){case!0:e.identity=await a();break;case!1:e.identity=void 0;break;case void 0:e.identity=await a();break}let t=await r.userTasks.query({state:f.DataModels.FlowNodeInstances.FlowNodeInstanceState.suspended},e);return(0,p.mapUserTaskList)(t)}async function Ne(e,t={identity:!0}){switch(t?.identity){case!0:t.identity=await a();break;case!1:t.identity=void 0;break;case void 0:t.identity=await a();break}let s=await r.userTasks.query({processInstanceId:e,state:f.DataModels.FlowNodeInstances.FlowNodeInstanceState.suspended},t);return(0,p.mapUserTaskList)(s)}async function he(e,t={identity:!0}){switch(t?.identity){case!0:t.identity=await a();break;case!1:t.identity=void 0;break;case void 0:t.identity=await a();break}let s=await r.userTasks.query({flowNodeId:e,state:f.DataModels.FlowNodeInstances.FlowNodeInstanceState.suspended},t);return(0,p.mapUserTaskList)(s)}async function se(e,t={identity:!0}){switch(t?.identity){case!0:t.identity=await a();break;case!1:t.identity=void 0;break;case void 0:t.identity=await a();break}let s=await r.userTasks.query({flowNodeInstanceId:e,state:f.DataModels.FlowNodeInstances.FlowNodeInstanceState.suspended},{...t,limit:1});return s.userTasks.length===0?null:(0,p.mapUserTask)(s.userTasks[0])}async function be(e,t={identity:!0}){switch(t?.identity){case!0:t.identity=await a();break;case!1:t.identity=void 0;break;case void 0:t.identity=await a();break}let s=await r.userTasks.query({correlationId:e,state:f.DataModels.FlowNodeInstances.FlowNodeInstanceState.suspended},t);return(0,p.mapUserTaskList)(s)}async function Re(e,t){let s=e||await a(),n=await r.userTasks.query({state:f.DataModels.FlowNodeInstances.FlowNodeInstanceState.suspended},{identity:s,...t}),o=n.userTasks.filter(i=>i.actualOwnerId===s.userId);return n.userTasks=o,(0,p.mapUserTaskList)(n)}async function Ue(e,t,s){await r.userTasks.reserveUserTaskInstance(e,t,s||e.userId)}async function Fe(e,t){await r.userTasks.cancelUserTaskInstanceReservation(e,t)}async function ve(e,t){let s=e||await a(),n=await r.userTasks.query({state:f.DataModels.FlowNodeInstances.FlowNodeInstanceState.suspended},{identity:s,...t}),o=n.userTasks.filter(i=>i.assignedUserIds?.includes(s.userId));return n.userTasks=o,(0,p.mapUserTaskList)(n)}var w=require("next/dist/shared/lib/constants");var ne=!1,A=!1;function Oe(e={}){let{applicationSdk:t,...s}=e;return async(n,o)=>{A=A||n===w.PHASE_PRODUCTION_BUILD;let i=n===w.PHASE_DEVELOPMENT_SERVER||n===w.PHASE_PRODUCTION_SERVER;return t?.useExternalTasks&&i&&!ne&&!A&&(ne=!0,await H(t?.customExternalTasksDirPath)),{...s,experimental:{...s.experimental,serverComponentsExternalPackages:[...s.experimental?.serverComponentsExternalPackages||[],"esbuild"]}}}}var re=require("next/navigation");function Be(e){(0,re.redirect)(e)}async function Ae(...e){return await r.processModels.startProcessInstance(...e)}async function D(...e){await r.manualTasks.finishManualTask(...e)}async function L(...e){await r.userTasks.finishUserTask(...e)}async function M(...e){await r.untypedTasks.finishTask(...e)}var oe=require("@5minds/processcube_engine_client");async function De(){try{return a()}catch{return}}var Le=async(e,t)=>{let s=await De();t==="bpmn:UserTask"?await L(e,{},s):t==="bpmn:ManualTask"?await D(e,s):t==="bpmn:Task"?await M(e,s):console.error(`[@5minds/processcube_app_sdk:handlePlay] Unsupported flow node type: ${t}`)},Me=async e=>{await B(e)},We=async(e,t,s)=>{await O(e,t,s)},qe=async e=>U(e),Ke=async e=>F(e,{sortSettings:{sortBy:oe.DataModels.FlowNodeInstances.FlowNodeInstanceSortableColumns.createdAt,sortDir:"DESC"}}),Xe=async e=>v(e);0&&(module.exports={cancelReservedUserTask,finishManualTask,finishTask,finishUntypedTask,finishUserTask,finishUserTaskAndGetNext,getActiveProcessInstances,getAssignedUserTasksByIdentity,getEngineClient,getFlowNodeInstances,getFlowNodeInstancesByProcessInstanceId,getFlowNodeInstancesTriggeredByFlowNodeInstanceIds,getIdentity,getProcessInstance,getProcessInstanceById,getReservedUserTasksByIdentity,getTriggeredFlowNodeInstances,getUserTasks,getWaitingUserTaskByFlowNodeInstanceId,getWaitingUserTasks,getWaitingUserTasksByCorrelationId,getWaitingUserTasksByFlowNodeId,getWaitingUserTasksByProcessInstanceId,navigateToUrl,reserveUserTask,retryProcess,retryProcessInstance,startProcess,terminateProcess,terminateProcessInstance,waitForProcessEnd,waitForUserTask,withApplicationSdk});
1
+ var N=Object.defineProperty;var de=Object.getOwnPropertyDescriptor;var le=Object.getOwnPropertyNames;var ue=Object.prototype.hasOwnProperty;var pe=(e,t)=>{for(var s in t)N(e,s,{get:t[s],enumerable:!0})},fe=(e,t,s,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of le(t))!ue.call(e,o)&&o!==s&&N(e,o,{get:()=>t[o],enumerable:!(n=de(t,o))||n.enumerable});return e};var ye=e=>fe(N({},"__esModule",{value:!0}),e);var Ge={};pe(Ge,{cancelReservedUserTask:()=>Fe,finishManualTask:()=>D,finishTask:()=>Le,finishUntypedTask:()=>M,finishUserTask:()=>L,finishUserTaskAndGetNext:()=>Se,getActiveProcessInstances:()=>Ce,getAssignedUserTasksByIdentity:()=>ve,getEngineClient:()=>Ee,getFlowNodeInstances:()=>Ke,getFlowNodeInstancesByProcessInstanceId:()=>F,getFlowNodeInstancesTriggeredByFlowNodeInstanceIds:()=>v,getIdentity:()=>a,getProcessInstance:()=>qe,getProcessInstanceById:()=>U,getReservedUserTasksByIdentity:()=>Re,getTriggeredFlowNodeInstances:()=>Xe,getUserTasks:()=>te,getWaitingUserTaskByFlowNodeInstanceId:()=>se,getWaitingUserTasks:()=>_e,getWaitingUserTasksByCorrelationId:()=>be,getWaitingUserTasksByFlowNodeId:()=>he,getWaitingUserTasksByProcessInstanceId:()=>Ne,navigateToUrl:()=>Be,reserveUserTask:()=>Ue,retryProcess:()=>We,retryProcessInstance:()=>O,startProcess:()=>Ae,terminateProcess:()=>Me,terminateProcessInstance:()=>B,waitForProcessEnd:()=>Pe,waitForUserTask:()=>xe,withApplicationSdk:()=>Oe});module.exports=ye(Ge);var St=require("only-server"),_t=require("../common/index.cjs");var K=require("node:child_process"),C=require("node:fs"),d=require("node:path"),X=require("chokidar"),G=require("esbuild"),$=require("jwt-decode"),S=require("openid-client"),j=require("@5minds/processcube_engine_sdk");var q=require("@5minds/processcube_engine_client"),h=process.env.PROCESSCUBE_ENGINE_URL??"http://localhost:10560",r=new q.EngineClient(h);var Ie={token:"ZHVtbXlfdG9rZW4=",userId:"dummy_token"},ke=.85,x=["external_task.ts","external_task.js"],b=process.env.PROCESSCUBE_AUTHORITY_URL!==void 0,T=new j.Logger("processcube_app_sdk:external_task_adapter"),m={},E;async function H(e){if(e&&!(0,C.existsSync)(e))throw new Error(`Invalid customExternalTasksDirPath. The given path '${e}' does not exist`);S.custom.setHttpOptionsDefaults({timeout:1e5});let t=await Q();E=await Z(t),await Te(t);let s=we(e);(0,X.watch)(s).on("add",async n=>{if(x.includes((0,d.basename)(n)))return Y(n,s)}).on("change",async n=>{if(x.includes((0,d.basename)(n)))return me(n,s)}).on("unlink",async n=>{x.includes((0,d.basename)(n))&&V(n)}).on("error",n=>T.error(`Watcher error: ${n}`))}async function Y(e,t){let s=(0,d.dirname)(e);if((await C.promises.readdir(s)).filter(u=>x.includes(u)).length>1){T.error(`Multiple external task files found in directory ${s}. Stopping all external task workers for this directory.`),m[s]&&V(e);return}let i=await J(e),c=(0,d.relative)(t,s),y=z(c),l=(0,d.join)(__dirname,"lib/ExternalTaskWorkerProcess.cjs"),I=(0,K.fork)(l,{env:{...process.env,PROCESSCUBE_ENGINE_URL:h}});m[s]=I,I.once("disconnect",()=>{delete m[s]}),I.send({action:"create",payload:{topic:y,identity:E,moduleString:i,workerPath:e}})}async function me(e,t){let s=(0,d.dirname)(e),n=m[s];if(!n)return Y(e,t);let o=await J(e),i=(0,d.relative)(t,s),c=z(i);n.send({action:"restart",payload:{topic:c,identity:E,moduleString:o,workerPath:e}})}function V(e){let t=(0,d.dirname)(e),s=m[t];s&&s.kill()}async function Q(){if(!b)return null;if(!process.env.PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_ID||!process.env.PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_SECRET){let n=new Error("Required environment variables PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_ID and PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_SECRET are missing. For help, please refer to our documentation on environment variables at: https://processcube.io/docs/app-sdk/samples/nextjs/external-task-adapter-with-nextjs#authority");throw T.error("Required environment variables PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_ID and PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_SECRET are missing",{err:n}),n}let e=await S.Issuer.discover(process.env.PROCESSCUBE_AUTHORITY_URL);return await new e.Client({client_id:process.env.PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_ID,client_secret:process.env.PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_SECRET}).grant({grant_type:"client_credentials",scope:"engine_etw"})}function Z(e){if(!b||e===null)return Ie;let t=e.access_token,s=(0,$.jwtDecode)(t);return{token:e.access_token,userId:s.sub}}async function Te(e){let t=5;if(!b||e===null)return;let n=await ge(e)*ke*1e3,o=async()=>{try{let i=await Q();E=Z(i);for(let c of Object.values(m))c.send({action:"updateIdentity",payload:{identity:E}});t=5,setTimeout(o,n)}catch(i){if(t===0){T.error("Could not refresh identity for external task worker processes. Stopping all external task workers.",{error:i});for(let y of Object.values(m))y.kill();return}T.error("Could not refresh identity for external task worker processes.",{error:i,retryCount:t}),t--;let c=2*1e3;setTimeout(o,c)}};setTimeout(o,n)}async function J(e){let t=await(0,G.build)({entryPoints:[e],write:!1,bundle:!0,platform:"node",target:"node18",format:"cjs",external:["@opentelemetry/api"]});if(t.errors.length>0)throw T.error(`Could not transpile file at '${e}'`,{errors:t.errors}),new Error(`Could not transpile file at '${e}'`);return t.warnings.length>0&&T.warn(`Transpiled file at '${e}' with warnings`,{warnings:t.warnings}),t.outputFiles[0].text}async function ge(e){let t=e.expires_in;if(!t&&e.expires_at&&(t=Math.floor(e.expires_at-Date.now()/1e3)),t===void 0)throw new Error("Could not determine the time until the access token for external task workers expires");return t}function z(e){return e.replace(/^\.\/+|\([^)]+\)|^\/*|\/*$/g,"").replace(/[\/]{2,}/g,"/")}function we(e){let t,s=[e,(0,d.join)(process.cwd(),"app"),(0,d.join)(process.cwd(),"src","app")];for(let n of s)if(n&&(0,C.existsSync)(n)){t=n;break}if(!t)throw new Error("Could not find external tasks directory");return t}function Ee(){return r}var R=require("next-auth/jwt"),ee=require("next/dist/compiled/@edge-runtime/cookies/index.js"),k=require("next/headers");async function a(){let e=await(0,R.getToken)({req:{cookies:await(0,k.cookies)(),headers:await(0,k.headers)()}});if(e?.expiresAt&&Date.now()>=e.expiresAt*1e3){let s=await fetch(`${process.env.NEXTAUTH_URL}/api/auth/session`,{method:"GET",headers:{"Content-Type":"application/json",cookie:(await(0,k.cookies)()).toString()}}),n=new ee.ResponseCookies(s.headers);if(n.getAll().length){let o=!1;try{for(let i of n.getAll())(await(0,k.cookies)()).set(i.name,i.value,{...i})}catch{o=!0}if(e=await(0,R.getToken)({req:{cookies:o?n:await(0,k.cookies)(),headers:await(0,k.headers)()}}),e?.error)throw e.error}}if(!e?.accessToken||!e?.sub)throw new Error("AccessToken or Sub could not be determined!");return{token:e?.accessToken,userId:e?.sub}}var g=require("@5minds/processcube_engine_client");async function P(){try{return a()}catch{return}}async function U(e){let t=await P();return(await r.processInstances.query({processInstanceId:e},{identity:t,includeXml:!0})).processInstances[0]}async function F(e,t={sortSettings:{sortBy:g.DataModels.FlowNodeInstances.FlowNodeInstanceSortableColumns.createdAt,sortDir:"ASC"}}){return(await r.flowNodeInstances.query({processInstanceId:e},{...t,identity:t.identity??await P()})).flowNodeInstances}async function v(e){let t=await P();return(await r.flowNodeInstances.query({triggeredByFlowNodeInstance:e},{identity:t})).flowNodeInstances}async function O(e,t,s){let n=await P();await r.processInstances.retryProcessInstance(e,{flowNodeInstanceId:t,newStartToken:s,identity:n})}async function B(e){let t=await P();await r.processInstances.terminateProcessInstance(e,t)}async function Ce(e={options:{identity:!0}}){switch(e.options.identity){case!0:e.options.identity=await a();break;case!1:e.options.identity=void 0;break;case void 0:e.options.identity=await a();break}return await r.processInstances.query({...e?.query,state:g.DataModels.ProcessInstances.ProcessInstanceState.running},e?.options)}async function Pe(e={},t=!0){let{processInstanceId:s}=e,n=typeof t=="boolean"?t==!0?await a():void 0:t;return new Promise(async(o,i)=>{let c=[],y=async l=>{if(s!==void 0&&l.processInstanceId!==s)return;let u=await r.processInstances.query({processInstanceId:l.processInstanceId},{identity:n});for(let _ of c)r.notification.removeSubscription(_,n);return u.totalCount===0?i(new Error(`Process with instance ID "${l.processInstanceId}" does not exist.`)):o(u.processInstances[0])};if(c.push(await r.notification.onProcessEnded(y,{identity:n})),c.push(await r.notification.onProcessError(y,{identity:n})),c.push(await r.notification.onProcessTerminated(y,{identity:n})),s){let l=await r.processInstances.query({processInstanceId:s,state:[g.DataModels.ProcessInstances.ProcessInstanceState.finished,g.DataModels.ProcessInstances.ProcessInstanceState.terminated,g.DataModels.ProcessInstances.ProcessInstanceState.error]},{identity:n});if(l.totalCount>0){for(let I of c)r.notification.removeSubscription(I,n);o(l.processInstances[0])}}})}var f=require("@5minds/processcube_engine_client"),p=require("../common/index.cjs");async function xe(e={},t=!0){let{correlationId:s,processInstanceId:n,flowNodeId:o}=e,i=typeof t=="boolean"?t==!0?await a():void 0:t;return new Promise(async(c,y)=>{let l=await r.userTasks.onUserTaskWaiting(async u=>{let _=s!==void 0&&u.correlationId!==s,ie=u.flowNodeInstanceId===void 0,ae=n!==void 0&&u.processInstanceId!==n,ce=o!==void 0&&u.flowNodeId!==o;if(_||ie||ae||ce)return;let W=await se(u.flowNodeInstanceId,{identity:i});return r.notification.removeSubscription(l,i),W===null?y(new Error(`UserTask with instance ID "${u.flowNodeInstanceId}" does not exist.`)):c(W)},{identity:i}),I=await te({correlationId:s,processInstanceId:n,flowNodeId:o,state:f.DataModels.FlowNodeInstances.FlowNodeInstanceState.suspended},{identity:i});I.userTasks.length>0&&(r.notification.removeSubscription(l,i),c(I.userTasks[0]))})}async function Se(e,t={},s={},n=!0){let o=typeof n=="boolean"?n==!0?await a():void 0:n;await r.userTasks.finishUserTask(e,s,o);let i={state:f.DataModels.FlowNodeInstances.FlowNodeInstanceState.suspended,...t},c=await r.userTasks.query(i,{identity:o});return(0,p.mapUserTask)(c.userTasks[0])}async function te(e,t={identity:!0}){switch(t?.identity){case!0:t.identity=await a();break;case!1:t.identity=void 0;break;case void 0:t.identity=await a();break}let s=await r.userTasks.query(e,t);return(0,p.mapUserTaskList)(s)}async function _e(e={identity:!0}){switch(e?.identity){case!0:e.identity=await a();break;case!1:e.identity=void 0;break;case void 0:e.identity=await a();break}let t=await r.userTasks.query({state:f.DataModels.FlowNodeInstances.FlowNodeInstanceState.suspended},e);return(0,p.mapUserTaskList)(t)}async function Ne(e,t={identity:!0}){switch(t?.identity){case!0:t.identity=await a();break;case!1:t.identity=void 0;break;case void 0:t.identity=await a();break}let s=await r.userTasks.query({processInstanceId:e,state:f.DataModels.FlowNodeInstances.FlowNodeInstanceState.suspended},t);return(0,p.mapUserTaskList)(s)}async function he(e,t={identity:!0}){switch(t?.identity){case!0:t.identity=await a();break;case!1:t.identity=void 0;break;case void 0:t.identity=await a();break}let s=await r.userTasks.query({flowNodeId:e,state:f.DataModels.FlowNodeInstances.FlowNodeInstanceState.suspended},t);return(0,p.mapUserTaskList)(s)}async function se(e,t={identity:!0}){switch(t?.identity){case!0:t.identity=await a();break;case!1:t.identity=void 0;break;case void 0:t.identity=await a();break}let s=await r.userTasks.query({flowNodeInstanceId:e,state:f.DataModels.FlowNodeInstances.FlowNodeInstanceState.suspended},{...t,limit:1});return s.userTasks.length===0?null:(0,p.mapUserTask)(s.userTasks[0])}async function be(e,t={identity:!0}){switch(t?.identity){case!0:t.identity=await a();break;case!1:t.identity=void 0;break;case void 0:t.identity=await a();break}let s=await r.userTasks.query({correlationId:e,state:f.DataModels.FlowNodeInstances.FlowNodeInstanceState.suspended},t);return(0,p.mapUserTaskList)(s)}async function Re(e,t){let s=e||await a(),n=await r.userTasks.query({state:f.DataModels.FlowNodeInstances.FlowNodeInstanceState.suspended},{identity:s,...t}),o=n.userTasks.filter(i=>i.actualOwnerId===s.userId);return n.userTasks=o,(0,p.mapUserTaskList)(n)}async function Ue(e,t,s){await r.userTasks.reserveUserTaskInstance(e,t,s||e.userId)}async function Fe(e,t){await r.userTasks.cancelUserTaskInstanceReservation(e,t)}async function ve(e,t){let s=e||await a(),n=await r.userTasks.query({state:f.DataModels.FlowNodeInstances.FlowNodeInstanceState.suspended},{identity:s,...t}),o=n.userTasks.filter(i=>i.assignedUserIds?.includes(s.userId));return n.userTasks=o,(0,p.mapUserTaskList)(n)}var w=require("next/dist/shared/lib/constants");var ne=!1,A=!1;function Oe(e={}){let{applicationSdk:t,...s}=e;return async(n,o)=>{A=A||n===w.PHASE_PRODUCTION_BUILD;let i=n===w.PHASE_DEVELOPMENT_SERVER||n===w.PHASE_PRODUCTION_SERVER;return t?.useExternalTasks&&i&&!ne&&!A&&(ne=!0,await H(t?.customExternalTasksDirPath)),{...s,experimental:{...s.experimental,serverComponentsExternalPackages:[...s.experimental?.serverComponentsExternalPackages||[],"esbuild"]}}}}var re=require("next/navigation");function Be(e){(0,re.redirect)(e)}async function Ae(...e){return await r.processModels.startProcessInstance(...e)}async function D(...e){await r.manualTasks.finishManualTask(...e)}async function L(...e){await r.userTasks.finishUserTask(...e)}async function M(...e){await r.untypedTasks.finishTask(...e)}var oe=require("@5minds/processcube_engine_client");async function De(){try{return a()}catch{return}}var Le=async(e,t)=>{let s=await De();t==="bpmn:UserTask"?await L(e,{},s):t==="bpmn:ManualTask"?await D(e,s):t==="bpmn:Task"?await M(e,s):console.error(`[@5minds/processcube_app_sdk:handlePlay] Unsupported flow node type: ${t}`)},Me=async e=>{await B(e)},We=async(e,t,s)=>{await O(e,t,s)},qe=async e=>U(e),Ke=async e=>F(e,{sortSettings:{sortBy:oe.DataModels.FlowNodeInstances.FlowNodeInstanceSortableColumns.createdAt,sortDir:"DESC"}}),Xe=async e=>v(e);0&&(module.exports={cancelReservedUserTask,finishManualTask,finishTask,finishUntypedTask,finishUserTask,finishUserTaskAndGetNext,getActiveProcessInstances,getAssignedUserTasksByIdentity,getEngineClient,getFlowNodeInstances,getFlowNodeInstancesByProcessInstanceId,getFlowNodeInstancesTriggeredByFlowNodeInstanceIds,getIdentity,getProcessInstance,getProcessInstanceById,getReservedUserTasksByIdentity,getTriggeredFlowNodeInstances,getUserTasks,getWaitingUserTaskByFlowNodeInstanceId,getWaitingUserTasks,getWaitingUserTasksByCorrelationId,getWaitingUserTasksByFlowNodeId,getWaitingUserTasksByProcessInstanceId,navigateToUrl,reserveUserTask,retryProcess,retryProcessInstance,startProcess,terminateProcess,terminateProcessInstance,waitForProcessEnd,waitForUserTask,withApplicationSdk});
@@ -1,4 +1,4 @@
1
- import"only-server";import"../common/index.mjs";import{fork as Yt}from"node:child_process";import{existsSync as Ce,promises as zt}from"node:fs";import{basename as se,dirname as ie,join as ne,relative as Se}from"node:path";import{stat as xt}from"fs";import{stat as bt,readdir as Rt}from"fs/promises";import{EventEmitter as Ct}from"events";import*as p from"path";import{stat as Xe,lstat as ae,readdir as Qe,realpath as Ze}from"node:fs/promises";import{Readable as Je}from"node:stream";import{resolve as ce,relative as et,join as tt,sep as st}from"node:path";var I={FILE_TYPE:"files",DIR_TYPE:"directories",FILE_DIR_TYPE:"files_directories",EVERYTHING_TYPE:"all"},Y={root:".",fileFilter:s=>!0,directoryFilter:s=>!0,type:I.FILE_TYPE,lstat:!1,depth:2147483648,alwaysStat:!1,highWaterMark:4096};Object.freeze(Y);var ue="READDIRP_RECURSIVE_ERROR",nt=new Set(["ENOENT","EPERM","EACCES","ELOOP",ue]),de=[I.DIR_TYPE,I.EVERYTHING_TYPE,I.FILE_DIR_TYPE,I.FILE_TYPE],it=new Set([I.DIR_TYPE,I.EVERYTHING_TYPE,I.FILE_DIR_TYPE]),rt=new Set([I.EVERYTHING_TYPE,I.FILE_DIR_TYPE,I.FILE_TYPE]),ot=s=>nt.has(s.code),at=process.platform==="win32",le=s=>!0,fe=s=>{if(s===void 0)return le;if(typeof s=="function")return s;if(typeof s=="string"){let e=s.trim();return t=>t.basename===e}if(Array.isArray(s)){let e=s.map(t=>t.trim());return t=>e.some(n=>t.basename===n)}return le},z=class extends Je{constructor(e={}){super({objectMode:!0,autoDestroy:!0,highWaterMark:e.highWaterMark});let t={...Y,...e},{root:n,type:i}=t;this._fileFilter=fe(t.fileFilter),this._directoryFilter=fe(t.directoryFilter);let r=t.lstat?ae:Xe;at?this._stat=a=>r(a,{bigint:!0}):this._stat=r,this._maxDepth=t.depth??Y.depth,this._wantsDir=i?it.has(i):!1,this._wantsFile=i?rt.has(i):!1,this._wantsEverything=i===I.EVERYTHING_TYPE,this._root=ce(n),this._isDirent=!t.alwaysStat,this._statsProp=this._isDirent?"dirent":"stats",this._rdOptions={encoding:"utf8",withFileTypes:this._isDirent},this.parents=[this._exploreDir(n,1)],this.reading=!1,this.parent=void 0}async _read(e){if(!this.reading){this.reading=!0;try{for(;!this.destroyed&&e>0;){let t=this.parent,n=t&&t.files;if(n&&n.length>0){let{path:i,depth:r}=t,a=n.splice(0,e).map(c=>this._formatEntry(c,i)),o=await Promise.all(a);for(let c of o){if(!c)continue;if(this.destroyed)return;let l=await this._getEntryType(c);l==="directory"&&this._directoryFilter(c)?(r<=this._maxDepth&&this.parents.push(this._exploreDir(c.fullPath,r+1)),this._wantsDir&&(this.push(c),e--)):(l==="file"||this._includeAsFile(c))&&this._fileFilter(c)&&this._wantsFile&&(this.push(c),e--)}}else{let i=this.parents.pop();if(!i){this.push(null);break}if(this.parent=await i,this.destroyed)return}}}catch(t){this.destroy(t)}finally{this.reading=!1}}}async _exploreDir(e,t){let n;try{n=await Qe(e,this._rdOptions)}catch(i){this._onError(i)}return{files:n,depth:t,path:e}}async _formatEntry(e,t){let n,i=this._isDirent?e.name:e;try{let r=ce(tt(t,i));n={path:et(this._root,r),fullPath:r,basename:i},n[this._statsProp]=this._isDirent?e:await this._stat(r)}catch(r){this._onError(r);return}return n}_onError(e){ot(e)&&!this.destroyed?this.emit("warn",e):this.destroy(e)}async _getEntryType(e){if(!e&&this._statsProp in e)return"";let t=e[this._statsProp];if(t.isFile())return"file";if(t.isDirectory())return"directory";if(t&&t.isSymbolicLink()){let n=e.fullPath;try{let i=await Ze(n),r=await ae(i);if(r.isFile())return"file";if(r.isDirectory()){let a=i.length;if(n.startsWith(i)&&n.substr(a,1)===st){let o=new Error(`Circular symlink detected: "${n}" points to "${i}"`);return o.code=ue,this._onError(o)}return"directory"}}catch(i){return this._onError(i),""}}}_includeAsFile(e){let t=e&&e[this._statsProp];return t&&this._wantsEverything&&!t.isDirectory()}};function he(s,e={}){let t=e.entryType||e.type;if(t==="both"&&(t=I.FILE_DIR_TYPE),t&&(e.type=t),s){if(typeof s!="string")throw new TypeError("readdirp: root argument must be a string. Usage: readdirp(root, options)");if(t&&!de.includes(t))throw new Error(`readdirp: Invalid type passed. Use one of ${de.join(", ")}`)}else throw new Error("readdirp: root argument is required. Usage: readdirp(root, options)");return e.root=s,new z(e)}import{watchFile as ct,unwatchFile as pe,watch as dt}from"fs";import{open as lt,stat as ye,lstat as ft,realpath as K}from"fs/promises";import*as m from"path";import{type as ut}from"os";var ht="data",$="end",we="close",W=()=>{};var M=process.platform,V=M==="win32",pt=M==="darwin",mt=M==="linux",yt=M==="freebsd",_e=ut()==="OS400",w={ALL:"all",READY:"ready",ADD:"add",CHANGE:"change",ADD_DIR:"addDir",UNLINK:"unlink",UNLINK_DIR:"unlinkDir",RAW:"raw",ERROR:"error"},E=w,wt="watch",_t={lstat:ft,stat:ye},k="listeners",A="errHandlers",C="rawEmitters",gt=[k,A,C],It=new Set(["3dm","3ds","3g2","3gp","7z","a","aac","adp","afdesign","afphoto","afpub","ai","aif","aiff","alz","ape","apk","appimage","ar","arj","asf","au","avi","bak","baml","bh","bin","bk","bmp","btif","bz2","bzip2","cab","caf","cgm","class","cmx","cpio","cr2","cur","dat","dcm","deb","dex","djvu","dll","dmg","dng","doc","docm","docx","dot","dotm","dra","DS_Store","dsk","dts","dtshd","dvb","dwg","dxf","ecelp4800","ecelp7470","ecelp9600","egg","eol","eot","epub","exe","f4v","fbs","fh","fla","flac","flatpak","fli","flv","fpx","fst","fvt","g3","gh","gif","graffle","gz","gzip","h261","h263","h264","icns","ico","ief","img","ipa","iso","jar","jpeg","jpg","jpgv","jpm","jxr","key","ktx","lha","lib","lvp","lz","lzh","lzma","lzo","m3u","m4a","m4v","mar","mdi","mht","mid","midi","mj2","mka","mkv","mmr","mng","mobi","mov","movie","mp3","mp4","mp4a","mpeg","mpg","mpga","mxu","nef","npx","numbers","nupkg","o","odp","ods","odt","oga","ogg","ogv","otf","ott","pages","pbm","pcx","pdb","pdf","pea","pgm","pic","png","pnm","pot","potm","potx","ppa","ppam","ppm","pps","ppsm","ppsx","ppt","pptm","pptx","psd","pya","pyc","pyo","pyv","qt","rar","ras","raw","resources","rgb","rip","rlc","rmf","rmvb","rpm","rtf","rz","s3m","s7z","scpt","sgi","shar","snap","sil","sketch","slk","smv","snk","so","stl","suo","sub","swf","tar","tbz","tbz2","tga","tgz","thmx","tif","tiff","tlz","ttc","ttf","txz","udf","uvh","uvi","uvm","uvp","uvs","uvu","viv","vob","war","wav","wax","wbmp","wdp","weba","webm","webp","whl","wim","wm","wma","wmv","wmx","woff","woff2","wrm","wvx","xbm","xif","xla","xlam","xls","xlsb","xlsm","xlsx","xlt","xltm","xltx","xm","xmind","xpi","xpm","xwd","xz","z","zip","zipx"]),Et=s=>It.has(m.extname(s).slice(1).toLowerCase()),G=(s,e)=>{s instanceof Set?s.forEach(e):e(s)},S=(s,e,t)=>{let n=s[e];n instanceof Set||(s[e]=n=new Set([n])),n.add(t)},Pt=s=>e=>{let t=s[e];t instanceof Set?t.clear():delete s[e]},N=(s,e,t)=>{let n=s[e];n instanceof Set?n.delete(t):n===t&&delete s[e]},ge=s=>s instanceof Set?s.size===0:!s,U=new Map;function me(s,e,t,n,i){let r=(a,o)=>{t(s),i(a,o,{watchedPath:s}),o&&s!==o&&L(m.resolve(s,o),k,m.join(s,o))};try{return dt(s,{persistent:e.persistent},r)}catch(a){n(a);return}}var L=(s,e,t,n,i)=>{let r=U.get(s);r&&G(r[e],a=>{a(t,n,i)})},Tt=(s,e,t,n)=>{let{listener:i,errHandler:r,rawEmitter:a}=n,o=U.get(e),c;if(!t.persistent)return c=me(s,t,i,r,a),c?c.close.bind(c):void 0;if(o)S(o,k,i),S(o,A,r),S(o,C,a);else{if(c=me(s,t,L.bind(null,e,k),r,L.bind(null,e,C)),!c)return;c.on(E.ERROR,async l=>{let d=L.bind(null,e,A);if(o&&(o.watcherUnusable=!0),V&&l.code==="EPERM")try{await(await lt(s,"r")).close(),d(l)}catch{}else d(l)}),o={listeners:i,errHandlers:r,rawEmitters:a,watcher:c},U.set(e,o)}return()=>{N(o,k,i),N(o,A,r),N(o,C,a),ge(o.listeners)&&(o.watcher.close(),U.delete(e),gt.forEach(Pt(o)),o.watcher=void 0,Object.freeze(o))}},q=new Map,kt=(s,e,t,n)=>{let{listener:i,rawEmitter:r}=n,a=q.get(e),o=a&&a.options;return o&&(o.persistent<t.persistent||o.interval>t.interval)&&(pe(e),a=void 0),a?(S(a,k,i),S(a,C,r)):(a={listeners:i,rawEmitters:r,options:t,watcher:ct(e,t,(c,l)=>{G(a.rawEmitters,f=>{f(E.CHANGE,e,{curr:c,prev:l})});let d=c.mtimeMs;(c.size!==l.size||d>l.mtimeMs||d===0)&&G(a.listeners,f=>f(s,c))})},q.set(e,a)),()=>{N(a,k,i),N(a,C,r),ge(a.listeners)&&(q.delete(e),pe(e),a.options=a.watcher=void 0,Object.freeze(a))}},O=class{constructor(e){this.fsw=e,this._boundHandleError=t=>e._handleError(t)}_watchWithNodeFs(e,t){let n=this.fsw.options,i=m.dirname(e),r=m.basename(e);this.fsw._getWatchedDir(i).add(r);let o=m.resolve(e),c={persistent:n.persistent};t||(t=W);let l;if(n.usePolling){let d=n.interval!==n.binaryInterval;c.interval=d&&Et(r)?n.binaryInterval:n.interval,l=kt(e,o,c,{listener:t,rawEmitter:this.fsw._emitRaw})}else l=Tt(e,o,c,{listener:t,errHandler:this._boundHandleError,rawEmitter:this.fsw._emitRaw});return l}_handleFile(e,t,n){if(this.fsw.closed)return;let i=m.dirname(e),r=m.basename(e),a=this.fsw._getWatchedDir(i),o=t;if(a.has(r))return;let c=async(d,f)=>{if(this.fsw._throttle(wt,e,5)){if(!f||f.mtimeMs===0)try{let h=await ye(e);if(this.fsw.closed)return;let _=h.atimeMs,g=h.mtimeMs;if((!_||_<=g||g!==o.mtimeMs)&&this.fsw._emit(E.CHANGE,e,h),(pt||mt||yt)&&o.ino!==h.ino){this.fsw._closeFile(d),o=h;let T=this._watchWithNodeFs(e,c);T&&this.fsw._addPathCloser(d,T)}else o=h}catch{this.fsw._remove(i,r)}else if(a.has(r)){let h=f.atimeMs,_=f.mtimeMs;(!h||h<=_||_!==o.mtimeMs)&&this.fsw._emit(E.CHANGE,e,f),o=f}}},l=this._watchWithNodeFs(e,c);if(!(n&&this.fsw.options.ignoreInitial)&&this.fsw._isntIgnored(e)){if(!this.fsw._throttle(E.ADD,e,0))return;this.fsw._emit(E.ADD,e,t)}return l}async _handleSymlink(e,t,n,i){if(this.fsw.closed)return;let r=e.fullPath,a=this.fsw._getWatchedDir(t);if(!this.fsw.options.followSymlinks){this.fsw._incrReadyCount();let o;try{o=await K(n)}catch{return this.fsw._emitReady(),!0}return this.fsw.closed?void 0:(a.has(i)?this.fsw._symlinkPaths.get(r)!==o&&(this.fsw._symlinkPaths.set(r,o),this.fsw._emit(E.CHANGE,n,e.stats)):(a.add(i),this.fsw._symlinkPaths.set(r,o),this.fsw._emit(E.ADD,n,e.stats)),this.fsw._emitReady(),!0)}if(this.fsw._symlinkPaths.has(r))return!0;this.fsw._symlinkPaths.set(r,!0)}_handleRead(e,t,n,i,r,a,o){if(e=m.join(e,""),o=this.fsw._throttle("readdir",e,1e3),!o)return;let c=this.fsw._getWatchedDir(n.path),l=new Set,d=this.fsw._readdirp(e,{fileFilter:f=>n.filterPath(f),directoryFilter:f=>n.filterDir(f)});if(d)return d.on(ht,async f=>{if(this.fsw.closed){d=void 0;return}let h=f.path,_=m.join(e,h);if(l.add(h),!(f.stats.isSymbolicLink()&&await this._handleSymlink(f,e,_,h))){if(this.fsw.closed){d=void 0;return}(h===i||!i&&!c.has(h))&&(this.fsw._incrReadyCount(),_=m.join(r,m.relative(r,_)),this._addToNodeFs(_,t,n,a+1))}}).on(E.ERROR,this._boundHandleError),new Promise((f,h)=>{if(!d)return h();d.once($,()=>{if(this.fsw.closed){d=void 0;return}let _=o?o.clear():!1;f(void 0),c.getChildren().filter(g=>g!==e&&!l.has(g)).forEach(g=>{this.fsw._remove(e,g)}),d=void 0,_&&this._handleRead(e,!1,n,i,r,a,o)})})}async _handleDir(e,t,n,i,r,a,o){let c=this.fsw._getWatchedDir(m.dirname(e)),l=c.has(m.basename(e));!(n&&this.fsw.options.ignoreInitial)&&!r&&!l&&this.fsw._emit(E.ADD_DIR,e,t),c.add(m.basename(e)),this.fsw._getWatchedDir(e);let d,f,h=this.fsw.options.depth;if((h==null||i<=h)&&!this.fsw._symlinkPaths.has(o)){if(!r&&(await this._handleRead(e,n,a,r,e,i,d),this.fsw.closed))return;f=this._watchWithNodeFs(e,(_,g)=>{g&&g.mtimeMs===0||this._handleRead(_,!1,a,r,e,i,d)})}return f}async _addToNodeFs(e,t,n,i,r){let a=this.fsw._emitReady;if(this.fsw._isIgnored(e)||this.fsw.closed)return a(),!1;let o=this.fsw._getWatchHelpers(e);n&&(o.filterPath=c=>n.filterPath(c),o.filterDir=c=>n.filterDir(c));try{let c=await _t[o.statMethod](o.watchPath);if(this.fsw.closed)return;if(this.fsw._isIgnored(o.watchPath,c))return a(),!1;let l=this.fsw.options.followSymlinks,d;if(c.isDirectory()){let f=m.resolve(e),h=l?await K(e):e;if(this.fsw.closed||(d=await this._handleDir(o.watchPath,c,t,i,r,o,h),this.fsw.closed))return;f!==h&&h!==void 0&&this.fsw._symlinkPaths.set(f,h)}else if(c.isSymbolicLink()){let f=l?await K(e):e;if(this.fsw.closed)return;let h=m.dirname(o.watchPath);if(this.fsw._getWatchedDir(h).add(o.watchPath),this.fsw._emit(E.ADD,o.watchPath,c),d=await this._handleDir(h,c,t,i,e,o,f),this.fsw.closed)return;f!==void 0&&this.fsw._symlinkPaths.set(m.resolve(e),f)}else d=this._handleFile(o.watchPath,c,t);return a(),d&&this.fsw._addPathCloser(e,d),!1}catch(c){if(this.fsw._handleError(c))return a(),e}}};var X="/",St="//",xe=".",Nt="..",Dt="string",Ft=/\\/g,Ie=/\/\//,vt=/\..*\.(sw[px])$|~$|\.subl.*\.tmp/,At=/^\.[/\\]/;function B(s){return Array.isArray(s)?s:[s]}var Q=s=>typeof s=="object"&&s!==null&&!(s instanceof RegExp);function Ut(s){return typeof s=="function"?s:typeof s=="string"?e=>s===e:s instanceof RegExp?e=>s.test(e):typeof s=="object"&&s!==null?e=>{if(s.path===e)return!0;if(s.recursive){let t=p.relative(s.path,e);return t?!t.startsWith("..")&&!p.isAbsolute(t):!1}return!1}:()=>!1}function Lt(s){if(typeof s!="string")throw new Error("string expected");s=p.normalize(s),s=s.replace(/\\/g,"/");let e=!1;s.startsWith("//")&&(e=!0);let t=/\/\//;for(;s.match(t);)s=s.replace(t,"/");return e&&(s="/"+s),s}function Ee(s,e,t){let n=Lt(e);for(let i=0;i<s.length;i++){let r=s[i];if(r(n,t))return!0}return!1}function Ot(s,e){if(s==null)throw new TypeError("anymatch: specify first argument");let n=B(s).map(i=>Ut(i));return e==null?(i,r)=>Ee(n,i,r):Ee(n,e)}var Pe=s=>{let e=B(s).flat();if(!e.every(t=>typeof t===Dt))throw new TypeError(`Non-string provided as watch path: ${e}`);return e.map(be)},Te=s=>{let e=s.replace(Ft,X),t=!1;for(e.startsWith(St)&&(t=!0);e.match(Ie);)e=e.replace(Ie,X);return t&&(e=X+e),e},be=s=>Te(p.normalize(Te(s))),ke=(s="")=>e=>typeof e=="string"?be(p.isAbsolute(e)?e:p.join(s,e)):e,Wt=(s,e)=>p.isAbsolute(s)?s:p.join(e,s),Mt=Object.freeze(new Set),Z=class{constructor(e,t){this.path=e,this._removeWatcher=t,this.items=new Set}add(e){let{items:t}=this;t&&e!==xe&&e!==Nt&&t.add(e)}async remove(e){let{items:t}=this;if(!t||(t.delete(e),t.size>0))return;let n=this.path;try{await Rt(n)}catch{this._removeWatcher&&this._removeWatcher(p.dirname(n),p.basename(n))}}has(e){let{items:t}=this;if(t)return t.has(e)}getChildren(){let{items:e}=this;return e?[...e.values()]:[]}dispose(){this.items.clear(),this.path="",this._removeWatcher=W,this.items=Mt,Object.freeze(this)}},Bt="stat",Ht="lstat",J=class{constructor(e,t,n){this.fsw=n;let i=e;this.path=e=e.replace(At,""),this.watchPath=i,this.fullWatchPath=p.resolve(i),this.dirParts=[],this.dirParts.forEach(r=>{r.length>1&&r.pop()}),this.followSymlinks=t,this.statMethod=t?Bt:Ht}entryPath(e){return p.join(this.watchPath,p.relative(this.watchPath,e.fullPath))}filterPath(e){let{stats:t}=e;if(t&&t.isSymbolicLink())return this.filterDir(e);let n=this.entryPath(e);return this.fsw._isntIgnored(n,t)&&this.fsw._hasReadPermissions(t)}filterDir(e){return this.fsw._isntIgnored(this.entryPath(e),e.stats)}},ee=class extends Ct{constructor(e={}){super(),this.closed=!1,this._closers=new Map,this._ignoredPaths=new Set,this._throttled=new Map,this._streams=new Set,this._symlinkPaths=new Map,this._watched=new Map,this._pendingWrites=new Map,this._pendingUnlinks=new Map,this._readyCount=0,this._readyEmitted=!1;let t=e.awaitWriteFinish,n={stabilityThreshold:2e3,pollInterval:100},i={persistent:!0,ignoreInitial:!1,ignorePermissionErrors:!1,interval:100,binaryInterval:300,followSymlinks:!0,usePolling:!1,atomic:!0,...e,ignored:e.ignored?B(e.ignored):B([]),awaitWriteFinish:t===!0?n:typeof t=="object"?{...n,...t}:!1};_e&&(i.usePolling=!0),i.atomic===void 0&&(i.atomic=!i.usePolling);let r=process.env.CHOKIDAR_USEPOLLING;if(r!==void 0){let c=r.toLowerCase();c==="false"||c==="0"?i.usePolling=!1:c==="true"||c==="1"?i.usePolling=!0:i.usePolling=!!c}let a=process.env.CHOKIDAR_INTERVAL;a&&(i.interval=Number.parseInt(a,10));let o=0;this._emitReady=()=>{o++,o>=this._readyCount&&(this._emitReady=W,this._readyEmitted=!0,process.nextTick(()=>this.emit(w.READY)))},this._emitRaw=(...c)=>this.emit(w.RAW,...c),this._boundRemove=this._remove.bind(this),this.options=i,this._nodeFsHandler=new O(this),Object.freeze(i)}_addIgnoredPath(e){if(Q(e)){for(let t of this._ignoredPaths)if(Q(t)&&t.path===e.path&&t.recursive===e.recursive)return}this._ignoredPaths.add(e)}_removeIgnoredPath(e){if(this._ignoredPaths.delete(e),typeof e=="string")for(let t of this._ignoredPaths)Q(t)&&t.path===e&&this._ignoredPaths.delete(t)}add(e,t,n){let{cwd:i}=this.options;this.closed=!1,this._closePromise=void 0;let r=Pe(e);return i&&(r=r.map(a=>Wt(a,i))),r.forEach(a=>{this._removeIgnoredPath(a)}),this._userIgnored=void 0,this._readyCount||(this._readyCount=0),this._readyCount+=r.length,Promise.all(r.map(async a=>{let o=await this._nodeFsHandler._addToNodeFs(a,!n,void 0,0,t);return o&&this._emitReady(),o})).then(a=>{this.closed||a.forEach(o=>{o&&this.add(p.dirname(o),p.basename(t||o))})}),this}unwatch(e){if(this.closed)return this;let t=Pe(e),{cwd:n}=this.options;return t.forEach(i=>{!p.isAbsolute(i)&&!this._closers.has(i)&&(n&&(i=p.join(n,i)),i=p.resolve(i)),this._closePath(i),this._addIgnoredPath(i),this._watched.has(i)&&this._addIgnoredPath({path:i,recursive:!0}),this._userIgnored=void 0}),this}close(){if(this._closePromise)return this._closePromise;this.closed=!0,this.removeAllListeners();let e=[];return this._closers.forEach(t=>t.forEach(n=>{let i=n();i instanceof Promise&&e.push(i)})),this._streams.forEach(t=>t.destroy()),this._userIgnored=void 0,this._readyCount=0,this._readyEmitted=!1,this._watched.forEach(t=>t.dispose()),this._closers.clear(),this._watched.clear(),this._streams.clear(),this._symlinkPaths.clear(),this._throttled.clear(),this._closePromise=e.length?Promise.all(e).then(()=>{}):Promise.resolve(),this._closePromise}getWatched(){let e={};return this._watched.forEach((t,n)=>{let r=(this.options.cwd?p.relative(this.options.cwd,n):n)||xe;e[r]=t.getChildren().sort()}),e}emitWithAll(e,t){this.emit(e,...t),e!==w.ERROR&&this.emit(w.ALL,e,...t)}async _emit(e,t,n){if(this.closed)return;let i=this.options;V&&(t=p.normalize(t)),i.cwd&&(t=p.relative(i.cwd,t));let r=[t];n!=null&&r.push(n);let a=i.awaitWriteFinish,o;if(a&&(o=this._pendingWrites.get(t)))return o.lastChange=new Date,this;if(i.atomic){if(e===w.UNLINK)return this._pendingUnlinks.set(t,[e,...r]),setTimeout(()=>{this._pendingUnlinks.forEach((c,l)=>{this.emit(...c),this.emit(w.ALL,...c),this._pendingUnlinks.delete(l)})},typeof i.atomic=="number"?i.atomic:100),this;e===w.ADD&&this._pendingUnlinks.has(t)&&(e=w.CHANGE,this._pendingUnlinks.delete(t))}if(a&&(e===w.ADD||e===w.CHANGE)&&this._readyEmitted){let c=(l,d)=>{l?(e=w.ERROR,r[0]=l,this.emitWithAll(e,r)):d&&(r.length>1?r[1]=d:r.push(d),this.emitWithAll(e,r))};return this._awaitWriteFinish(t,a.stabilityThreshold,e,c),this}if(e===w.CHANGE&&!this._throttle(w.CHANGE,t,50))return this;if(i.alwaysStat&&n===void 0&&(e===w.ADD||e===w.ADD_DIR||e===w.CHANGE)){let c=i.cwd?p.join(i.cwd,t):t,l;try{l=await bt(c)}catch{}if(!l||this.closed)return;r.push(l)}return this.emitWithAll(e,r),this}_handleError(e){let t=e&&e.code;return e&&t!=="ENOENT"&&t!=="ENOTDIR"&&(!this.options.ignorePermissionErrors||t!=="EPERM"&&t!=="EACCES")&&this.emit(w.ERROR,e),e||this.closed}_throttle(e,t,n){this._throttled.has(e)||this._throttled.set(e,new Map);let i=this._throttled.get(e);if(!i)throw new Error("invalid throttle");let r=i.get(t);if(r)return r.count++,!1;let a,o=()=>{let l=i.get(t),d=l?l.count:0;return i.delete(t),clearTimeout(a),l&&clearTimeout(l.timeoutObject),d};a=setTimeout(o,n);let c={timeoutObject:a,clear:o,count:0};return i.set(t,c),c}_incrReadyCount(){return this._readyCount++}_awaitWriteFinish(e,t,n,i){let r=this.options.awaitWriteFinish;if(typeof r!="object")return;let a=r.pollInterval,o,c=e;this.options.cwd&&!p.isAbsolute(e)&&(c=p.join(this.options.cwd,e));let l=new Date,d=this._pendingWrites;function f(h){xt(c,(_,g)=>{if(_||!d.has(e)){_&&_.code!=="ENOENT"&&i(_);return}let T=Number(new Date);h&&g.size!==h.size&&(d.get(e).lastChange=T);let Ve=d.get(e);T-Ve.lastChange>=t?(d.delete(e),i(void 0,g)):o=setTimeout(f,a,g)})}d.has(e)||(d.set(e,{lastChange:l,cancelWait:()=>(d.delete(e),clearTimeout(o),n)}),o=setTimeout(f,a))}_isIgnored(e,t){if(this.options.atomic&&vt.test(e))return!0;if(!this._userIgnored){let{cwd:n}=this.options,r=(this.options.ignored||[]).map(ke(n)),o=[...[...this._ignoredPaths].map(ke(n)),...r];this._userIgnored=Ot(o,void 0)}return this._userIgnored(e,t)}_isntIgnored(e,t){return!this._isIgnored(e,t)}_getWatchHelpers(e){return new J(e,this.options.followSymlinks,this)}_getWatchedDir(e){let t=p.resolve(e);return this._watched.has(t)||this._watched.set(t,new Z(t,this._boundRemove)),this._watched.get(t)}_hasReadPermissions(e){return this.options.ignorePermissionErrors?!0:!!(Number(e.mode)&256)}_remove(e,t,n){let i=p.join(e,t),r=p.resolve(i);if(n=n??(this._watched.has(i)||this._watched.has(r)),!this._throttle("remove",i,100))return;!n&&this._watched.size===1&&this.add(e,t,!0),this._getWatchedDir(i).getChildren().forEach(h=>this._remove(i,h));let c=this._getWatchedDir(e),l=c.has(t);c.remove(t),this._symlinkPaths.has(r)&&this._symlinkPaths.delete(r);let d=i;if(this.options.cwd&&(d=p.relative(this.options.cwd,i)),this.options.awaitWriteFinish&&this._pendingWrites.has(d)&&this._pendingWrites.get(d).cancelWait()===w.ADD)return;this._watched.delete(i),this._watched.delete(r);let f=n?w.UNLINK_DIR:w.UNLINK;l&&!this._isIgnored(i)&&this._emit(f,i),this._closePath(i)}_closePath(e){this._closeFile(e);let t=p.dirname(e);this._getWatchedDir(t).remove(p.basename(e))}_closeFile(e){let t=this._closers.get(e);t&&(t.forEach(n=>n()),this._closers.delete(e))}_addPathCloser(e,t){if(!t)return;let n=this._closers.get(e);n||(n=[],this._closers.set(e,n)),n.push(t)}_readdirp(e,t){if(this.closed)return;let n={type:w.ALL,alwaysStat:!0,lstat:!0,...t,depth:0},i=he(e,n);return this._streams.add(i),i.once(we,()=>{i=void 0}),i.once($,()=>{i&&(this._streams.delete(i),i=void 0)}),i}};function Re(s,e={}){let t=new ee(e);return t.add(s),t}import{build as Kt}from"esbuild";import{jwtDecode as qt}from"jwt-decode";import{Issuer as Gt,custom as $t}from"openid-client";import{Logger as Vt}from"@5minds/processcube_engine_sdk";import{EngineClient as jt}from"@5minds/processcube_engine_client";var te=process.env.PROCESSCUBE_ENGINE_URL??"http://localhost:10560",u=new jt(te);var Xt={token:"ZHVtbXlfdG9rZW4=",userId:"dummy_token"},Qt=.85,H=["external_task.ts","external_task.js"],re=process.env.PROCESSCUBE_AUTHORITY_URL!==void 0,b=new Vt("processcube_app_sdk:external_task_adapter"),x={},D;async function Ne(s){if(s&&!Ce(s))throw new Error(`Invalid customExternalTasksDirPath. The given path '${s}' does not exist`);$t.setHttpOptionsDefaults({timeout:1e5});let e=await ve();D=await Ae(e),await Jt(e);let t=ts(s);Re(t).on("add",async n=>{if(H.includes(se(n)))return De(n,t)}).on("change",async n=>{if(H.includes(se(n)))return Zt(n,t)}).on("unlink",async n=>{H.includes(se(n))&&Fe(n)}).on("error",n=>b.error(`Watcher error: ${n}`))}async function De(s,e){let t=ie(s);if((await zt.readdir(t)).filter(d=>H.includes(d)).length>1){b.error(`Multiple external task files found in directory ${t}. Stopping all external task workers for this directory.`),x[t]&&Fe(s);return}let r=await Ue(s),a=Se(e,t),o=Le(a),c=ne(__dirname,"lib/ExternalTaskWorkerProcess.cjs"),l=Yt(c,{env:{...process.env,PROCESSCUBE_ENGINE_URL:te}});x[t]=l,l.once("disconnect",()=>{delete x[t]}),l.send({action:"create",payload:{topic:o,identity:D,moduleString:r,workerPath:s}})}async function Zt(s,e){let t=ie(s),n=x[t];if(!n)return De(s,e);let i=await Ue(s),r=Se(e,t),a=Le(r);n.send({action:"restart",payload:{topic:a,identity:D,moduleString:i,workerPath:s}})}function Fe(s){let e=ie(s),t=x[e];t&&t.kill()}async function ve(){if(!re)return null;if(!process.env.PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_ID||!process.env.PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_SECRET){let n=new Error("Required environment variables PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_ID and PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_SECRET are missing. For help, please refer to our documentation on environment variables at: https://processcube.io/docs/app-sdk/samples/nextjs/external-task-adapter-with-nextjs#authority");throw b.error("Required environment variables PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_ID and PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_SECRET are missing",{err:n}),n}let s=await Gt.discover(process.env.PROCESSCUBE_AUTHORITY_URL);return await new s.Client({client_id:process.env.PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_ID,client_secret:process.env.PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_SECRET}).grant({grant_type:"client_credentials",scope:"engine_etw"})}function Ae(s){if(!re||s===null)return Xt;let e=s.access_token,t=qt(e);return{token:s.access_token,userId:t.sub}}async function Jt(s){let e=5;if(!re||s===null)return;let n=await es(s)*Qt*1e3,i=async()=>{try{let r=await ve();D=Ae(r);for(let a of Object.values(x))a.send({action:"updateIdentity",payload:{identity:D}});e=5,setTimeout(i,n)}catch(r){if(e===0){b.error("Could not refresh identity for external task worker processes. Stopping all external task workers.",{error:r});for(let o of Object.values(x))o.kill();return}b.error("Could not refresh identity for external task worker processes.",{error:r,retryCount:e}),e--;let a=2*1e3;setTimeout(i,a)}};setTimeout(i,n)}async function Ue(s){let e=await Kt({entryPoints:[s],write:!1,bundle:!0,platform:"node",target:"node18",format:"cjs",external:["@opentelemetry/api"]});if(e.errors.length>0)throw b.error(`Could not transpile file at '${s}'`,{errors:e.errors}),new Error(`Could not transpile file at '${s}'`);return e.warnings.length>0&&b.warn(`Transpiled file at '${s}' with warnings`,{warnings:e.warnings}),e.outputFiles[0].text}async function es(s){let e=s.expires_in;if(!e&&s.expires_at&&(e=Math.floor(s.expires_at-Date.now()/1e3)),e===void 0)throw new Error("Could not determine the time until the access token for external task workers expires");return e}function Le(s){return s.replace(/^\.\/+|\([^)]+\)|^\/*|\/*$/g,"").replace(/[\/]{2,}/g,"/")}function ts(s){let e,t=[s,ne(process.cwd(),"app"),ne(process.cwd(),"src","app")];for(let n of t)if(n&&Ce(n)){e=n;break}if(!e)throw new Error("Could not find external tasks directory");return e}function js(){return u}import{getToken as Oe}from"next-auth/jwt";import{ResponseCookies as ss}from"next/dist/compiled/@edge-runtime/cookies";import{cookies as j,headers as We}from"next/headers";async function y(){let s=await Oe({req:{cookies:await j(),headers:await We()}});if(s?.expiresAt&&Date.now()>=s.expiresAt*1e3){let t=await fetch(`${process.env.NEXTAUTH_URL}/api/auth/session`,{method:"GET",headers:{"Content-Type":"application/json",cookie:(await j()).toString()}}),n=new ss(t.headers);if(n.getAll().length){let i=!1;try{for(let r of n.getAll())(await j()).set(r.name,r.value,{...r})}catch{i=!0}if(s=await Oe({req:{cookies:i?n:await j(),headers:await We()}}),s?.error)throw s.error}}if(!s?.accessToken||!s?.sub)throw new Error("AccessToken or Sub could not be determined!");return{token:s?.accessToken,userId:s?.sub}}import{DataModels as F}from"@5minds/processcube_engine_client";async function v(){try{return y()}catch{return}}async function Me(s){let e=await v();return(await u.processInstances.query({processInstanceId:s},{identity:e,includeXml:!0})).processInstances[0]}async function Be(s,e={sortSettings:{sortBy:F.FlowNodeInstances.FlowNodeInstanceSortableColumns.createdAt,sortDir:"ASC"}}){return(await u.flowNodeInstances.query({processInstanceId:s},{...e,identity:e.identity??await v()})).flowNodeInstances}async function He(s){let e=await v();return(await u.flowNodeInstances.query({triggeredByFlowNodeInstance:s},{identity:e})).flowNodeInstances}async function je(s,e,t){let n=await v();await u.processInstances.retryProcessInstance(s,{flowNodeInstanceId:e,newStartToken:t,identity:n})}async function Ye(s){let e=await v();await u.processInstances.terminateProcessInstance(s,e)}async function Qs(s={options:{identity:!0}}){switch(s.options.identity){case!0:s.options.identity=await y();break;case!1:s.options.identity=void 0;break;case void 0:s.options.identity=await y();break}return await u.processInstances.query({...s?.query,state:F.ProcessInstances.ProcessInstanceState.running},s?.options)}async function Zs(s={},e=!0){let{processInstanceId:t}=s,n=typeof e=="boolean"?e==!0?await y():void 0:e;return new Promise(async(i,r)=>{let a=[],o=async c=>{if(t!==void 0&&c.processInstanceId!==t)return;let d=await u.processInstances.query({processInstanceId:c.processInstanceId},{identity:n});for(let f of a)u.notification.removeSubscription(f,n);return d.totalCount===0?r(new Error(`Process with instance ID "${c.processInstanceId}" does not exist.`)):i(d.processInstances[0])};if(a.push(await u.notification.onProcessEnded(o,{identity:n})),a.push(await u.notification.onProcessError(o,{identity:n})),a.push(await u.notification.onProcessTerminated(o,{identity:n})),t){let c=await u.processInstances.query({processInstanceId:t,state:[F.ProcessInstances.ProcessInstanceState.finished,F.ProcessInstances.ProcessInstanceState.terminated,F.ProcessInstances.ProcessInstanceState.error]},{identity:n});if(c.totalCount>0){for(let l of a)u.notification.removeSubscription(l,n);i(c.processInstances[0])}}})}import{DataModels as P}from"@5minds/processcube_engine_client";import{mapUserTask as ze,mapUserTaskList as R}from"../common/index.mjs";async function an(s={},e=!0){let{correlationId:t,processInstanceId:n,flowNodeId:i}=s,r=typeof e=="boolean"?e==!0?await y():void 0:e;return new Promise(async(a,o)=>{let c=await u.userTasks.onUserTaskWaiting(async d=>{let f=t!==void 0&&d.correlationId!==t,h=d.flowNodeInstanceId===void 0,_=n!==void 0&&d.processInstanceId!==n,g=i!==void 0&&d.flowNodeId!==i;if(f||h||_||g)return;let T=await is(d.flowNodeInstanceId,{identity:r});return u.notification.removeSubscription(c,r),T===null?o(new Error(`UserTask with instance ID "${d.flowNodeInstanceId}" does not exist.`)):a(T)},{identity:r}),l=await ns({correlationId:t,processInstanceId:n,flowNodeId:i,state:P.FlowNodeInstances.FlowNodeInstanceState.suspended},{identity:r});l.userTasks.length>0&&(u.notification.removeSubscription(c,r),a(l.userTasks[0]))})}async function cn(s,e={},t={},n=!0){let i=typeof n=="boolean"?n==!0?await y():void 0:n;await u.userTasks.finishUserTask(s,t,i);let r={state:P.FlowNodeInstances.FlowNodeInstanceState.suspended,...e},a=await u.userTasks.query(r,{identity:i});return ze(a.userTasks[0])}async function ns(s,e={identity:!0}){switch(e?.identity){case!0:e.identity=await y();break;case!1:e.identity=void 0;break;case void 0:e.identity=await y();break}let t=await u.userTasks.query(s,e);return R(t)}async function dn(s={identity:!0}){switch(s?.identity){case!0:s.identity=await y();break;case!1:s.identity=void 0;break;case void 0:s.identity=await y();break}let e=await u.userTasks.query({state:P.FlowNodeInstances.FlowNodeInstanceState.suspended},s);return R(e)}async function ln(s,e={identity:!0}){switch(e?.identity){case!0:e.identity=await y();break;case!1:e.identity=void 0;break;case void 0:e.identity=await y();break}let t=await u.userTasks.query({processInstanceId:s,state:P.FlowNodeInstances.FlowNodeInstanceState.suspended},e);return R(t)}async function fn(s,e={identity:!0}){switch(e?.identity){case!0:e.identity=await y();break;case!1:e.identity=void 0;break;case void 0:e.identity=await y();break}let t=await u.userTasks.query({flowNodeId:s,state:P.FlowNodeInstances.FlowNodeInstanceState.suspended},e);return R(t)}async function is(s,e={identity:!0}){switch(e?.identity){case!0:e.identity=await y();break;case!1:e.identity=void 0;break;case void 0:e.identity=await y();break}let t=await u.userTasks.query({flowNodeInstanceId:s,state:P.FlowNodeInstances.FlowNodeInstanceState.suspended},{...e,limit:1});return t.userTasks.length===0?null:ze(t.userTasks[0])}async function un(s,e={identity:!0}){switch(e?.identity){case!0:e.identity=await y();break;case!1:e.identity=void 0;break;case void 0:e.identity=await y();break}let t=await u.userTasks.query({correlationId:s,state:P.FlowNodeInstances.FlowNodeInstanceState.suspended},e);return R(t)}async function hn(s,e){let t=s||await y(),n=await u.userTasks.query({state:P.FlowNodeInstances.FlowNodeInstanceState.suspended},{identity:t,...e}),i=n.userTasks.filter(r=>r.actualOwnerId===t.userId);return n.userTasks=i,R(n)}async function pn(s,e,t){await u.userTasks.reserveUserTaskInstance(s,e,t||s.userId)}async function mn(s,e){await u.userTasks.cancelUserTaskInstanceReservation(s,e)}async function yn(s,e){let t=s||await y(),n=await u.userTasks.query({state:P.FlowNodeInstances.FlowNodeInstanceState.suspended},{identity:t,...e}),i=n.userTasks.filter(r=>r.assignedUserIds?.includes(t.userId));return n.userTasks=i,R(n)}import{PHASE_DEVELOPMENT_SERVER as rs,PHASE_PRODUCTION_BUILD as os,PHASE_PRODUCTION_SERVER as as}from"next/dist/shared/lib/constants";var Ke=!1,oe=!1;function In(s={}){let{applicationSdk:e,...t}=s;return async(n,i)=>{oe=oe||n===os;let r=n===rs||n===as;return e?.useExternalTasks&&r&&!Ke&&!oe&&(Ke=!0,await Ne(e?.customExternalTasksDirPath)),{...t,experimental:{...t.experimental,serverComponentsExternalPackages:[...t.experimental?.serverComponentsExternalPackages||[],"esbuild"]}}}}import{redirect as cs}from"next/navigation";function kn(s){cs(s)}async function Rn(...s){return await u.processModels.startProcessInstance(...s)}async function qe(...s){await u.manualTasks.finishManualTask(...s)}async function Ge(...s){await u.userTasks.finishUserTask(...s)}async function $e(...s){await u.untypedTasks.finishTask(...s)}import{DataModels as ds}from"@5minds/processcube_engine_client";async function ls(){try{return y()}catch{return}}var Mn=async(s,e)=>{let t=await ls();e==="bpmn:UserTask"?await Ge(s,{},t):e==="bpmn:ManualTask"?await qe(s,t):e==="bpmn:Task"?await $e(s,t):console.error(`[@5minds/processcube_app_sdk:handlePlay] Unsupported flow node type: ${e}`)},Bn=async s=>{await Ye(s)},Hn=async(s,e,t)=>{await je(s,e,t)},jn=async s=>Me(s),Yn=async s=>Be(s,{sortSettings:{sortBy:ds.FlowNodeInstances.FlowNodeInstanceSortableColumns.createdAt,sortDir:"DESC"}}),zn=async s=>He(s);export{mn as cancelReservedUserTask,qe as finishManualTask,Mn as finishTask,$e as finishUntypedTask,Ge as finishUserTask,cn as finishUserTaskAndGetNext,Qs as getActiveProcessInstances,yn as getAssignedUserTasksByIdentity,js as getEngineClient,Yn as getFlowNodeInstances,Be as getFlowNodeInstancesByProcessInstanceId,He as getFlowNodeInstancesTriggeredByFlowNodeInstanceIds,y as getIdentity,jn as getProcessInstance,Me as getProcessInstanceById,hn as getReservedUserTasksByIdentity,zn as getTriggeredFlowNodeInstances,ns as getUserTasks,is as getWaitingUserTaskByFlowNodeInstanceId,dn as getWaitingUserTasks,un as getWaitingUserTasksByCorrelationId,fn as getWaitingUserTasksByFlowNodeId,ln as getWaitingUserTasksByProcessInstanceId,kn as navigateToUrl,pn as reserveUserTask,Hn as retryProcess,je as retryProcessInstance,Rn as startProcess,Bn as terminateProcess,Ye as terminateProcessInstance,Zs as waitForProcessEnd,an as waitForUserTask,In as withApplicationSdk};
1
+ import"only-server";import"../common/index.mjs";import{fork as Yt}from"node:child_process";import{existsSync as Ce,promises as zt}from"node:fs";import{basename as se,dirname as ie,join as ne,relative as Se}from"node:path";import{stat as xt}from"fs";import{stat as bt,readdir as Rt}from"fs/promises";import{EventEmitter as Ct}from"events";import*as p from"path";import{stat as Xe,lstat as ae,readdir as Qe,realpath as Ze}from"node:fs/promises";import{Readable as Je}from"node:stream";import{resolve as ce,relative as et,join as tt,sep as st}from"node:path";var I={FILE_TYPE:"files",DIR_TYPE:"directories",FILE_DIR_TYPE:"files_directories",EVERYTHING_TYPE:"all"},Y={root:".",fileFilter:s=>!0,directoryFilter:s=>!0,type:I.FILE_TYPE,lstat:!1,depth:2147483648,alwaysStat:!1,highWaterMark:4096};Object.freeze(Y);var ue="READDIRP_RECURSIVE_ERROR",nt=new Set(["ENOENT","EPERM","EACCES","ELOOP",ue]),de=[I.DIR_TYPE,I.EVERYTHING_TYPE,I.FILE_DIR_TYPE,I.FILE_TYPE],it=new Set([I.DIR_TYPE,I.EVERYTHING_TYPE,I.FILE_DIR_TYPE]),rt=new Set([I.EVERYTHING_TYPE,I.FILE_DIR_TYPE,I.FILE_TYPE]),ot=s=>nt.has(s.code),at=process.platform==="win32",le=s=>!0,fe=s=>{if(s===void 0)return le;if(typeof s=="function")return s;if(typeof s=="string"){let e=s.trim();return t=>t.basename===e}if(Array.isArray(s)){let e=s.map(t=>t.trim());return t=>e.some(n=>t.basename===n)}return le},z=class extends Je{constructor(e={}){super({objectMode:!0,autoDestroy:!0,highWaterMark:e.highWaterMark});let t={...Y,...e},{root:n,type:i}=t;this._fileFilter=fe(t.fileFilter),this._directoryFilter=fe(t.directoryFilter);let r=t.lstat?ae:Xe;at?this._stat=a=>r(a,{bigint:!0}):this._stat=r,this._maxDepth=t.depth??Y.depth,this._wantsDir=i?it.has(i):!1,this._wantsFile=i?rt.has(i):!1,this._wantsEverything=i===I.EVERYTHING_TYPE,this._root=ce(n),this._isDirent=!t.alwaysStat,this._statsProp=this._isDirent?"dirent":"stats",this._rdOptions={encoding:"utf8",withFileTypes:this._isDirent},this.parents=[this._exploreDir(n,1)],this.reading=!1,this.parent=void 0}async _read(e){if(!this.reading){this.reading=!0;try{for(;!this.destroyed&&e>0;){let t=this.parent,n=t&&t.files;if(n&&n.length>0){let{path:i,depth:r}=t,a=n.splice(0,e).map(c=>this._formatEntry(c,i)),o=await Promise.all(a);for(let c of o){if(!c)continue;if(this.destroyed)return;let l=await this._getEntryType(c);l==="directory"&&this._directoryFilter(c)?(r<=this._maxDepth&&this.parents.push(this._exploreDir(c.fullPath,r+1)),this._wantsDir&&(this.push(c),e--)):(l==="file"||this._includeAsFile(c))&&this._fileFilter(c)&&this._wantsFile&&(this.push(c),e--)}}else{let i=this.parents.pop();if(!i){this.push(null);break}if(this.parent=await i,this.destroyed)return}}}catch(t){this.destroy(t)}finally{this.reading=!1}}}async _exploreDir(e,t){let n;try{n=await Qe(e,this._rdOptions)}catch(i){this._onError(i)}return{files:n,depth:t,path:e}}async _formatEntry(e,t){let n,i=this._isDirent?e.name:e;try{let r=ce(tt(t,i));n={path:et(this._root,r),fullPath:r,basename:i},n[this._statsProp]=this._isDirent?e:await this._stat(r)}catch(r){this._onError(r);return}return n}_onError(e){ot(e)&&!this.destroyed?this.emit("warn",e):this.destroy(e)}async _getEntryType(e){if(!e&&this._statsProp in e)return"";let t=e[this._statsProp];if(t.isFile())return"file";if(t.isDirectory())return"directory";if(t&&t.isSymbolicLink()){let n=e.fullPath;try{let i=await Ze(n),r=await ae(i);if(r.isFile())return"file";if(r.isDirectory()){let a=i.length;if(n.startsWith(i)&&n.substr(a,1)===st){let o=new Error(`Circular symlink detected: "${n}" points to "${i}"`);return o.code=ue,this._onError(o)}return"directory"}}catch(i){return this._onError(i),""}}}_includeAsFile(e){let t=e&&e[this._statsProp];return t&&this._wantsEverything&&!t.isDirectory()}};function he(s,e={}){let t=e.entryType||e.type;if(t==="both"&&(t=I.FILE_DIR_TYPE),t&&(e.type=t),s){if(typeof s!="string")throw new TypeError("readdirp: root argument must be a string. Usage: readdirp(root, options)");if(t&&!de.includes(t))throw new Error(`readdirp: Invalid type passed. Use one of ${de.join(", ")}`)}else throw new Error("readdirp: root argument is required. Usage: readdirp(root, options)");return e.root=s,new z(e)}import{watchFile as ct,unwatchFile as pe,watch as dt}from"fs";import{open as lt,stat as ye,lstat as ft,realpath as K}from"fs/promises";import*as m from"path";import{type as ut}from"os";var ht="data",$="end",we="close",W=()=>{};var M=process.platform,V=M==="win32",pt=M==="darwin",mt=M==="linux",yt=M==="freebsd",_e=ut()==="OS400",w={ALL:"all",READY:"ready",ADD:"add",CHANGE:"change",ADD_DIR:"addDir",UNLINK:"unlink",UNLINK_DIR:"unlinkDir",RAW:"raw",ERROR:"error"},E=w,wt="watch",_t={lstat:ft,stat:ye},k="listeners",A="errHandlers",C="rawEmitters",gt=[k,A,C],It=new Set(["3dm","3ds","3g2","3gp","7z","a","aac","adp","afdesign","afphoto","afpub","ai","aif","aiff","alz","ape","apk","appimage","ar","arj","asf","au","avi","bak","baml","bh","bin","bk","bmp","btif","bz2","bzip2","cab","caf","cgm","class","cmx","cpio","cr2","cur","dat","dcm","deb","dex","djvu","dll","dmg","dng","doc","docm","docx","dot","dotm","dra","DS_Store","dsk","dts","dtshd","dvb","dwg","dxf","ecelp4800","ecelp7470","ecelp9600","egg","eol","eot","epub","exe","f4v","fbs","fh","fla","flac","flatpak","fli","flv","fpx","fst","fvt","g3","gh","gif","graffle","gz","gzip","h261","h263","h264","icns","ico","ief","img","ipa","iso","jar","jpeg","jpg","jpgv","jpm","jxr","key","ktx","lha","lib","lvp","lz","lzh","lzma","lzo","m3u","m4a","m4v","mar","mdi","mht","mid","midi","mj2","mka","mkv","mmr","mng","mobi","mov","movie","mp3","mp4","mp4a","mpeg","mpg","mpga","mxu","nef","npx","numbers","nupkg","o","odp","ods","odt","oga","ogg","ogv","otf","ott","pages","pbm","pcx","pdb","pdf","pea","pgm","pic","png","pnm","pot","potm","potx","ppa","ppam","ppm","pps","ppsm","ppsx","ppt","pptm","pptx","psd","pya","pyc","pyo","pyv","qt","rar","ras","raw","resources","rgb","rip","rlc","rmf","rmvb","rpm","rtf","rz","s3m","s7z","scpt","sgi","shar","snap","sil","sketch","slk","smv","snk","so","stl","suo","sub","swf","tar","tbz","tbz2","tga","tgz","thmx","tif","tiff","tlz","ttc","ttf","txz","udf","uvh","uvi","uvm","uvp","uvs","uvu","viv","vob","war","wav","wax","wbmp","wdp","weba","webm","webp","whl","wim","wm","wma","wmv","wmx","woff","woff2","wrm","wvx","xbm","xif","xla","xlam","xls","xlsb","xlsm","xlsx","xlt","xltm","xltx","xm","xmind","xpi","xpm","xwd","xz","z","zip","zipx"]),Et=s=>It.has(m.extname(s).slice(1).toLowerCase()),G=(s,e)=>{s instanceof Set?s.forEach(e):e(s)},S=(s,e,t)=>{let n=s[e];n instanceof Set||(s[e]=n=new Set([n])),n.add(t)},Pt=s=>e=>{let t=s[e];t instanceof Set?t.clear():delete s[e]},N=(s,e,t)=>{let n=s[e];n instanceof Set?n.delete(t):n===t&&delete s[e]},ge=s=>s instanceof Set?s.size===0:!s,U=new Map;function me(s,e,t,n,i){let r=(a,o)=>{t(s),i(a,o,{watchedPath:s}),o&&s!==o&&L(m.resolve(s,o),k,m.join(s,o))};try{return dt(s,{persistent:e.persistent},r)}catch(a){n(a);return}}var L=(s,e,t,n,i)=>{let r=U.get(s);r&&G(r[e],a=>{a(t,n,i)})},Tt=(s,e,t,n)=>{let{listener:i,errHandler:r,rawEmitter:a}=n,o=U.get(e),c;if(!t.persistent)return c=me(s,t,i,r,a),c?c.close.bind(c):void 0;if(o)S(o,k,i),S(o,A,r),S(o,C,a);else{if(c=me(s,t,L.bind(null,e,k),r,L.bind(null,e,C)),!c)return;c.on(E.ERROR,async l=>{let d=L.bind(null,e,A);if(o&&(o.watcherUnusable=!0),V&&l.code==="EPERM")try{await(await lt(s,"r")).close(),d(l)}catch{}else d(l)}),o={listeners:i,errHandlers:r,rawEmitters:a,watcher:c},U.set(e,o)}return()=>{N(o,k,i),N(o,A,r),N(o,C,a),ge(o.listeners)&&(o.watcher.close(),U.delete(e),gt.forEach(Pt(o)),o.watcher=void 0,Object.freeze(o))}},q=new Map,kt=(s,e,t,n)=>{let{listener:i,rawEmitter:r}=n,a=q.get(e),o=a&&a.options;return o&&(o.persistent<t.persistent||o.interval>t.interval)&&(pe(e),a=void 0),a?(S(a,k,i),S(a,C,r)):(a={listeners:i,rawEmitters:r,options:t,watcher:ct(e,t,(c,l)=>{G(a.rawEmitters,f=>{f(E.CHANGE,e,{curr:c,prev:l})});let d=c.mtimeMs;(c.size!==l.size||d>l.mtimeMs||d===0)&&G(a.listeners,f=>f(s,c))})},q.set(e,a)),()=>{N(a,k,i),N(a,C,r),ge(a.listeners)&&(q.delete(e),pe(e),a.options=a.watcher=void 0,Object.freeze(a))}},O=class{constructor(e){this.fsw=e,this._boundHandleError=t=>e._handleError(t)}_watchWithNodeFs(e,t){let n=this.fsw.options,i=m.dirname(e),r=m.basename(e);this.fsw._getWatchedDir(i).add(r);let o=m.resolve(e),c={persistent:n.persistent};t||(t=W);let l;if(n.usePolling){let d=n.interval!==n.binaryInterval;c.interval=d&&Et(r)?n.binaryInterval:n.interval,l=kt(e,o,c,{listener:t,rawEmitter:this.fsw._emitRaw})}else l=Tt(e,o,c,{listener:t,errHandler:this._boundHandleError,rawEmitter:this.fsw._emitRaw});return l}_handleFile(e,t,n){if(this.fsw.closed)return;let i=m.dirname(e),r=m.basename(e),a=this.fsw._getWatchedDir(i),o=t;if(a.has(r))return;let c=async(d,f)=>{if(this.fsw._throttle(wt,e,5)){if(!f||f.mtimeMs===0)try{let h=await ye(e);if(this.fsw.closed)return;let _=h.atimeMs,g=h.mtimeMs;if((!_||_<=g||g!==o.mtimeMs)&&this.fsw._emit(E.CHANGE,e,h),(pt||mt||yt)&&o.ino!==h.ino){this.fsw._closeFile(d),o=h;let T=this._watchWithNodeFs(e,c);T&&this.fsw._addPathCloser(d,T)}else o=h}catch{this.fsw._remove(i,r)}else if(a.has(r)){let h=f.atimeMs,_=f.mtimeMs;(!h||h<=_||_!==o.mtimeMs)&&this.fsw._emit(E.CHANGE,e,f),o=f}}},l=this._watchWithNodeFs(e,c);if(!(n&&this.fsw.options.ignoreInitial)&&this.fsw._isntIgnored(e)){if(!this.fsw._throttle(E.ADD,e,0))return;this.fsw._emit(E.ADD,e,t)}return l}async _handleSymlink(e,t,n,i){if(this.fsw.closed)return;let r=e.fullPath,a=this.fsw._getWatchedDir(t);if(!this.fsw.options.followSymlinks){this.fsw._incrReadyCount();let o;try{o=await K(n)}catch{return this.fsw._emitReady(),!0}return this.fsw.closed?void 0:(a.has(i)?this.fsw._symlinkPaths.get(r)!==o&&(this.fsw._symlinkPaths.set(r,o),this.fsw._emit(E.CHANGE,n,e.stats)):(a.add(i),this.fsw._symlinkPaths.set(r,o),this.fsw._emit(E.ADD,n,e.stats)),this.fsw._emitReady(),!0)}if(this.fsw._symlinkPaths.has(r))return!0;this.fsw._symlinkPaths.set(r,!0)}_handleRead(e,t,n,i,r,a,o){if(e=m.join(e,""),o=this.fsw._throttle("readdir",e,1e3),!o)return;let c=this.fsw._getWatchedDir(n.path),l=new Set,d=this.fsw._readdirp(e,{fileFilter:f=>n.filterPath(f),directoryFilter:f=>n.filterDir(f)});if(d)return d.on(ht,async f=>{if(this.fsw.closed){d=void 0;return}let h=f.path,_=m.join(e,h);if(l.add(h),!(f.stats.isSymbolicLink()&&await this._handleSymlink(f,e,_,h))){if(this.fsw.closed){d=void 0;return}(h===i||!i&&!c.has(h))&&(this.fsw._incrReadyCount(),_=m.join(r,m.relative(r,_)),this._addToNodeFs(_,t,n,a+1))}}).on(E.ERROR,this._boundHandleError),new Promise((f,h)=>{if(!d)return h();d.once($,()=>{if(this.fsw.closed){d=void 0;return}let _=o?o.clear():!1;f(void 0),c.getChildren().filter(g=>g!==e&&!l.has(g)).forEach(g=>{this.fsw._remove(e,g)}),d=void 0,_&&this._handleRead(e,!1,n,i,r,a,o)})})}async _handleDir(e,t,n,i,r,a,o){let c=this.fsw._getWatchedDir(m.dirname(e)),l=c.has(m.basename(e));!(n&&this.fsw.options.ignoreInitial)&&!r&&!l&&this.fsw._emit(E.ADD_DIR,e,t),c.add(m.basename(e)),this.fsw._getWatchedDir(e);let d,f,h=this.fsw.options.depth;if((h==null||i<=h)&&!this.fsw._symlinkPaths.has(o)){if(!r&&(await this._handleRead(e,n,a,r,e,i,d),this.fsw.closed))return;f=this._watchWithNodeFs(e,(_,g)=>{g&&g.mtimeMs===0||this._handleRead(_,!1,a,r,e,i,d)})}return f}async _addToNodeFs(e,t,n,i,r){let a=this.fsw._emitReady;if(this.fsw._isIgnored(e)||this.fsw.closed)return a(),!1;let o=this.fsw._getWatchHelpers(e);n&&(o.filterPath=c=>n.filterPath(c),o.filterDir=c=>n.filterDir(c));try{let c=await _t[o.statMethod](o.watchPath);if(this.fsw.closed)return;if(this.fsw._isIgnored(o.watchPath,c))return a(),!1;let l=this.fsw.options.followSymlinks,d;if(c.isDirectory()){let f=m.resolve(e),h=l?await K(e):e;if(this.fsw.closed||(d=await this._handleDir(o.watchPath,c,t,i,r,o,h),this.fsw.closed))return;f!==h&&h!==void 0&&this.fsw._symlinkPaths.set(f,h)}else if(c.isSymbolicLink()){let f=l?await K(e):e;if(this.fsw.closed)return;let h=m.dirname(o.watchPath);if(this.fsw._getWatchedDir(h).add(o.watchPath),this.fsw._emit(E.ADD,o.watchPath,c),d=await this._handleDir(h,c,t,i,e,o,f),this.fsw.closed)return;f!==void 0&&this.fsw._symlinkPaths.set(m.resolve(e),f)}else d=this._handleFile(o.watchPath,c,t);return a(),d&&this.fsw._addPathCloser(e,d),!1}catch(c){if(this.fsw._handleError(c))return a(),e}}};var X="/",St="//",xe=".",Nt="..",Dt="string",Ft=/\\/g,Ie=/\/\//,vt=/\..*\.(sw[px])$|~$|\.subl.*\.tmp/,At=/^\.[/\\]/;function B(s){return Array.isArray(s)?s:[s]}var Q=s=>typeof s=="object"&&s!==null&&!(s instanceof RegExp);function Ut(s){return typeof s=="function"?s:typeof s=="string"?e=>s===e:s instanceof RegExp?e=>s.test(e):typeof s=="object"&&s!==null?e=>{if(s.path===e)return!0;if(s.recursive){let t=p.relative(s.path,e);return t?!t.startsWith("..")&&!p.isAbsolute(t):!1}return!1}:()=>!1}function Lt(s){if(typeof s!="string")throw new Error("string expected");s=p.normalize(s),s=s.replace(/\\/g,"/");let e=!1;s.startsWith("//")&&(e=!0);let t=/\/\//;for(;s.match(t);)s=s.replace(t,"/");return e&&(s="/"+s),s}function Ee(s,e,t){let n=Lt(e);for(let i=0;i<s.length;i++){let r=s[i];if(r(n,t))return!0}return!1}function Ot(s,e){if(s==null)throw new TypeError("anymatch: specify first argument");let n=B(s).map(i=>Ut(i));return e==null?(i,r)=>Ee(n,i,r):Ee(n,e)}var Pe=s=>{let e=B(s).flat();if(!e.every(t=>typeof t===Dt))throw new TypeError(`Non-string provided as watch path: ${e}`);return e.map(be)},Te=s=>{let e=s.replace(Ft,X),t=!1;for(e.startsWith(St)&&(t=!0);e.match(Ie);)e=e.replace(Ie,X);return t&&(e=X+e),e},be=s=>Te(p.normalize(Te(s))),ke=(s="")=>e=>typeof e=="string"?be(p.isAbsolute(e)?e:p.join(s,e)):e,Wt=(s,e)=>p.isAbsolute(s)?s:p.join(e,s),Mt=Object.freeze(new Set),Z=class{constructor(e,t){this.path=e,this._removeWatcher=t,this.items=new Set}add(e){let{items:t}=this;t&&e!==xe&&e!==Nt&&t.add(e)}async remove(e){let{items:t}=this;if(!t||(t.delete(e),t.size>0))return;let n=this.path;try{await Rt(n)}catch{this._removeWatcher&&this._removeWatcher(p.dirname(n),p.basename(n))}}has(e){let{items:t}=this;if(t)return t.has(e)}getChildren(){let{items:e}=this;return e?[...e.values()]:[]}dispose(){this.items.clear(),this.path="",this._removeWatcher=W,this.items=Mt,Object.freeze(this)}},Bt="stat",Ht="lstat",J=class{constructor(e,t,n){this.fsw=n;let i=e;this.path=e=e.replace(At,""),this.watchPath=i,this.fullWatchPath=p.resolve(i),this.dirParts=[],this.dirParts.forEach(r=>{r.length>1&&r.pop()}),this.followSymlinks=t,this.statMethod=t?Bt:Ht}entryPath(e){return p.join(this.watchPath,p.relative(this.watchPath,e.fullPath))}filterPath(e){let{stats:t}=e;if(t&&t.isSymbolicLink())return this.filterDir(e);let n=this.entryPath(e);return this.fsw._isntIgnored(n,t)&&this.fsw._hasReadPermissions(t)}filterDir(e){return this.fsw._isntIgnored(this.entryPath(e),e.stats)}},ee=class extends Ct{constructor(e={}){super(),this.closed=!1,this._closers=new Map,this._ignoredPaths=new Set,this._throttled=new Map,this._streams=new Set,this._symlinkPaths=new Map,this._watched=new Map,this._pendingWrites=new Map,this._pendingUnlinks=new Map,this._readyCount=0,this._readyEmitted=!1;let t=e.awaitWriteFinish,n={stabilityThreshold:2e3,pollInterval:100},i={persistent:!0,ignoreInitial:!1,ignorePermissionErrors:!1,interval:100,binaryInterval:300,followSymlinks:!0,usePolling:!1,atomic:!0,...e,ignored:e.ignored?B(e.ignored):B([]),awaitWriteFinish:t===!0?n:typeof t=="object"?{...n,...t}:!1};_e&&(i.usePolling=!0),i.atomic===void 0&&(i.atomic=!i.usePolling);let r=process.env.CHOKIDAR_USEPOLLING;if(r!==void 0){let c=r.toLowerCase();c==="false"||c==="0"?i.usePolling=!1:c==="true"||c==="1"?i.usePolling=!0:i.usePolling=!!c}let a=process.env.CHOKIDAR_INTERVAL;a&&(i.interval=Number.parseInt(a,10));let o=0;this._emitReady=()=>{o++,o>=this._readyCount&&(this._emitReady=W,this._readyEmitted=!0,process.nextTick(()=>this.emit(w.READY)))},this._emitRaw=(...c)=>this.emit(w.RAW,...c),this._boundRemove=this._remove.bind(this),this.options=i,this._nodeFsHandler=new O(this),Object.freeze(i)}_addIgnoredPath(e){if(Q(e)){for(let t of this._ignoredPaths)if(Q(t)&&t.path===e.path&&t.recursive===e.recursive)return}this._ignoredPaths.add(e)}_removeIgnoredPath(e){if(this._ignoredPaths.delete(e),typeof e=="string")for(let t of this._ignoredPaths)Q(t)&&t.path===e&&this._ignoredPaths.delete(t)}add(e,t,n){let{cwd:i}=this.options;this.closed=!1,this._closePromise=void 0;let r=Pe(e);return i&&(r=r.map(a=>Wt(a,i))),r.forEach(a=>{this._removeIgnoredPath(a)}),this._userIgnored=void 0,this._readyCount||(this._readyCount=0),this._readyCount+=r.length,Promise.all(r.map(async a=>{let o=await this._nodeFsHandler._addToNodeFs(a,!n,void 0,0,t);return o&&this._emitReady(),o})).then(a=>{this.closed||a.forEach(o=>{o&&this.add(p.dirname(o),p.basename(t||o))})}),this}unwatch(e){if(this.closed)return this;let t=Pe(e),{cwd:n}=this.options;return t.forEach(i=>{!p.isAbsolute(i)&&!this._closers.has(i)&&(n&&(i=p.join(n,i)),i=p.resolve(i)),this._closePath(i),this._addIgnoredPath(i),this._watched.has(i)&&this._addIgnoredPath({path:i,recursive:!0}),this._userIgnored=void 0}),this}close(){if(this._closePromise)return this._closePromise;this.closed=!0,this.removeAllListeners();let e=[];return this._closers.forEach(t=>t.forEach(n=>{let i=n();i instanceof Promise&&e.push(i)})),this._streams.forEach(t=>t.destroy()),this._userIgnored=void 0,this._readyCount=0,this._readyEmitted=!1,this._watched.forEach(t=>t.dispose()),this._closers.clear(),this._watched.clear(),this._streams.clear(),this._symlinkPaths.clear(),this._throttled.clear(),this._closePromise=e.length?Promise.all(e).then(()=>{}):Promise.resolve(),this._closePromise}getWatched(){let e={};return this._watched.forEach((t,n)=>{let r=(this.options.cwd?p.relative(this.options.cwd,n):n)||xe;e[r]=t.getChildren().sort()}),e}emitWithAll(e,t){this.emit(e,...t),e!==w.ERROR&&this.emit(w.ALL,e,...t)}async _emit(e,t,n){if(this.closed)return;let i=this.options;V&&(t=p.normalize(t)),i.cwd&&(t=p.relative(i.cwd,t));let r=[t];n!=null&&r.push(n);let a=i.awaitWriteFinish,o;if(a&&(o=this._pendingWrites.get(t)))return o.lastChange=new Date,this;if(i.atomic){if(e===w.UNLINK)return this._pendingUnlinks.set(t,[e,...r]),setTimeout(()=>{this._pendingUnlinks.forEach((c,l)=>{this.emit(...c),this.emit(w.ALL,...c),this._pendingUnlinks.delete(l)})},typeof i.atomic=="number"?i.atomic:100),this;e===w.ADD&&this._pendingUnlinks.has(t)&&(e=w.CHANGE,this._pendingUnlinks.delete(t))}if(a&&(e===w.ADD||e===w.CHANGE)&&this._readyEmitted){let c=(l,d)=>{l?(e=w.ERROR,r[0]=l,this.emitWithAll(e,r)):d&&(r.length>1?r[1]=d:r.push(d),this.emitWithAll(e,r))};return this._awaitWriteFinish(t,a.stabilityThreshold,e,c),this}if(e===w.CHANGE&&!this._throttle(w.CHANGE,t,50))return this;if(i.alwaysStat&&n===void 0&&(e===w.ADD||e===w.ADD_DIR||e===w.CHANGE)){let c=i.cwd?p.join(i.cwd,t):t,l;try{l=await bt(c)}catch{}if(!l||this.closed)return;r.push(l)}return this.emitWithAll(e,r),this}_handleError(e){let t=e&&e.code;return e&&t!=="ENOENT"&&t!=="ENOTDIR"&&(!this.options.ignorePermissionErrors||t!=="EPERM"&&t!=="EACCES")&&this.emit(w.ERROR,e),e||this.closed}_throttle(e,t,n){this._throttled.has(e)||this._throttled.set(e,new Map);let i=this._throttled.get(e);if(!i)throw new Error("invalid throttle");let r=i.get(t);if(r)return r.count++,!1;let a,o=()=>{let l=i.get(t),d=l?l.count:0;return i.delete(t),clearTimeout(a),l&&clearTimeout(l.timeoutObject),d};a=setTimeout(o,n);let c={timeoutObject:a,clear:o,count:0};return i.set(t,c),c}_incrReadyCount(){return this._readyCount++}_awaitWriteFinish(e,t,n,i){let r=this.options.awaitWriteFinish;if(typeof r!="object")return;let a=r.pollInterval,o,c=e;this.options.cwd&&!p.isAbsolute(e)&&(c=p.join(this.options.cwd,e));let l=new Date,d=this._pendingWrites;function f(h){xt(c,(_,g)=>{if(_||!d.has(e)){_&&_.code!=="ENOENT"&&i(_);return}let T=Number(new Date);h&&g.size!==h.size&&(d.get(e).lastChange=T);let Ve=d.get(e);T-Ve.lastChange>=t?(d.delete(e),i(void 0,g)):o=setTimeout(f,a,g)})}d.has(e)||(d.set(e,{lastChange:l,cancelWait:()=>(d.delete(e),clearTimeout(o),n)}),o=setTimeout(f,a))}_isIgnored(e,t){if(this.options.atomic&&vt.test(e))return!0;if(!this._userIgnored){let{cwd:n}=this.options,r=(this.options.ignored||[]).map(ke(n)),o=[...[...this._ignoredPaths].map(ke(n)),...r];this._userIgnored=Ot(o,void 0)}return this._userIgnored(e,t)}_isntIgnored(e,t){return!this._isIgnored(e,t)}_getWatchHelpers(e){return new J(e,this.options.followSymlinks,this)}_getWatchedDir(e){let t=p.resolve(e);return this._watched.has(t)||this._watched.set(t,new Z(t,this._boundRemove)),this._watched.get(t)}_hasReadPermissions(e){return this.options.ignorePermissionErrors?!0:!!(Number(e.mode)&256)}_remove(e,t,n){let i=p.join(e,t),r=p.resolve(i);if(n=n??(this._watched.has(i)||this._watched.has(r)),!this._throttle("remove",i,100))return;!n&&this._watched.size===1&&this.add(e,t,!0),this._getWatchedDir(i).getChildren().forEach(h=>this._remove(i,h));let c=this._getWatchedDir(e),l=c.has(t);c.remove(t),this._symlinkPaths.has(r)&&this._symlinkPaths.delete(r);let d=i;if(this.options.cwd&&(d=p.relative(this.options.cwd,i)),this.options.awaitWriteFinish&&this._pendingWrites.has(d)&&this._pendingWrites.get(d).cancelWait()===w.ADD)return;this._watched.delete(i),this._watched.delete(r);let f=n?w.UNLINK_DIR:w.UNLINK;l&&!this._isIgnored(i)&&this._emit(f,i),this._closePath(i)}_closePath(e){this._closeFile(e);let t=p.dirname(e);this._getWatchedDir(t).remove(p.basename(e))}_closeFile(e){let t=this._closers.get(e);t&&(t.forEach(n=>n()),this._closers.delete(e))}_addPathCloser(e,t){if(!t)return;let n=this._closers.get(e);n||(n=[],this._closers.set(e,n)),n.push(t)}_readdirp(e,t){if(this.closed)return;let n={type:w.ALL,alwaysStat:!0,lstat:!0,...t,depth:0},i=he(e,n);return this._streams.add(i),i.once(we,()=>{i=void 0}),i.once($,()=>{i&&(this._streams.delete(i),i=void 0)}),i}};function Re(s,e={}){let t=new ee(e);return t.add(s),t}import{build as Kt}from"esbuild";import{jwtDecode as qt}from"jwt-decode";import{Issuer as Gt,custom as $t}from"openid-client";import{Logger as Vt}from"@5minds/processcube_engine_sdk";import{EngineClient as jt}from"@5minds/processcube_engine_client";var te=process.env.PROCESSCUBE_ENGINE_URL??"http://localhost:10560",u=new jt(te);var Xt={token:"ZHVtbXlfdG9rZW4=",userId:"dummy_token"},Qt=.85,H=["external_task.ts","external_task.js"],re=process.env.PROCESSCUBE_AUTHORITY_URL!==void 0,b=new Vt("processcube_app_sdk:external_task_adapter"),x={},D;async function Ne(s){if(s&&!Ce(s))throw new Error(`Invalid customExternalTasksDirPath. The given path '${s}' does not exist`);$t.setHttpOptionsDefaults({timeout:1e5});let e=await ve();D=await Ae(e),await Jt(e);let t=ts(s);Re(t).on("add",async n=>{if(H.includes(se(n)))return De(n,t)}).on("change",async n=>{if(H.includes(se(n)))return Zt(n,t)}).on("unlink",async n=>{H.includes(se(n))&&Fe(n)}).on("error",n=>b.error(`Watcher error: ${n}`))}async function De(s,e){let t=ie(s);if((await zt.readdir(t)).filter(d=>H.includes(d)).length>1){b.error(`Multiple external task files found in directory ${t}. Stopping all external task workers for this directory.`),x[t]&&Fe(s);return}let r=await Ue(s),a=Se(e,t),o=Le(a),c=ne(__dirname,"lib/ExternalTaskWorkerProcess.cjs"),l=Yt(c,{env:{...process.env,PROCESSCUBE_ENGINE_URL:te}});x[t]=l,l.once("disconnect",()=>{delete x[t]}),l.send({action:"create",payload:{topic:o,identity:D,moduleString:r,workerPath:s}})}async function Zt(s,e){let t=ie(s),n=x[t];if(!n)return De(s,e);let i=await Ue(s),r=Se(e,t),a=Le(r);n.send({action:"restart",payload:{topic:a,identity:D,moduleString:i,workerPath:s}})}function Fe(s){let e=ie(s),t=x[e];t&&t.kill()}async function ve(){if(!re)return null;if(!process.env.PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_ID||!process.env.PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_SECRET){let n=new Error("Required environment variables PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_ID and PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_SECRET are missing. For help, please refer to our documentation on environment variables at: https://processcube.io/docs/app-sdk/samples/nextjs/external-task-adapter-with-nextjs#authority");throw b.error("Required environment variables PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_ID and PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_SECRET are missing",{err:n}),n}let s=await Gt.discover(process.env.PROCESSCUBE_AUTHORITY_URL);return await new s.Client({client_id:process.env.PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_ID,client_secret:process.env.PROCESSCUBE_EXTERNAL_TASK_WORKER_CLIENT_SECRET}).grant({grant_type:"client_credentials",scope:"engine_etw"})}function Ae(s){if(!re||s===null)return Xt;let e=s.access_token,t=qt(e);return{token:s.access_token,userId:t.sub}}async function Jt(s){let e=5;if(!re||s===null)return;let n=await es(s)*Qt*1e3,i=async()=>{try{let r=await ve();D=Ae(r);for(let a of Object.values(x))a.send({action:"updateIdentity",payload:{identity:D}});e=5,setTimeout(i,n)}catch(r){if(e===0){b.error("Could not refresh identity for external task worker processes. Stopping all external task workers.",{error:r});for(let o of Object.values(x))o.kill();return}b.error("Could not refresh identity for external task worker processes.",{error:r,retryCount:e}),e--;let a=2*1e3;setTimeout(i,a)}};setTimeout(i,n)}async function Ue(s){let e=await Kt({entryPoints:[s],write:!1,bundle:!0,platform:"node",target:"node18",format:"cjs",external:["@opentelemetry/api"]});if(e.errors.length>0)throw b.error(`Could not transpile file at '${s}'`,{errors:e.errors}),new Error(`Could not transpile file at '${s}'`);return e.warnings.length>0&&b.warn(`Transpiled file at '${s}' with warnings`,{warnings:e.warnings}),e.outputFiles[0].text}async function es(s){let e=s.expires_in;if(!e&&s.expires_at&&(e=Math.floor(s.expires_at-Date.now()/1e3)),e===void 0)throw new Error("Could not determine the time until the access token for external task workers expires");return e}function Le(s){return s.replace(/^\.\/+|\([^)]+\)|^\/*|\/*$/g,"").replace(/[\/]{2,}/g,"/")}function ts(s){let e,t=[s,ne(process.cwd(),"app"),ne(process.cwd(),"src","app")];for(let n of t)if(n&&Ce(n)){e=n;break}if(!e)throw new Error("Could not find external tasks directory");return e}function js(){return u}import{getToken as Oe}from"next-auth/jwt";import{ResponseCookies as ss}from"next/dist/compiled/@edge-runtime/cookies/index.js";import{cookies as j,headers as We}from"next/headers";async function y(){let s=await Oe({req:{cookies:await j(),headers:await We()}});if(s?.expiresAt&&Date.now()>=s.expiresAt*1e3){let t=await fetch(`${process.env.NEXTAUTH_URL}/api/auth/session`,{method:"GET",headers:{"Content-Type":"application/json",cookie:(await j()).toString()}}),n=new ss(t.headers);if(n.getAll().length){let i=!1;try{for(let r of n.getAll())(await j()).set(r.name,r.value,{...r})}catch{i=!0}if(s=await Oe({req:{cookies:i?n:await j(),headers:await We()}}),s?.error)throw s.error}}if(!s?.accessToken||!s?.sub)throw new Error("AccessToken or Sub could not be determined!");return{token:s?.accessToken,userId:s?.sub}}import{DataModels as F}from"@5minds/processcube_engine_client";async function v(){try{return y()}catch{return}}async function Me(s){let e=await v();return(await u.processInstances.query({processInstanceId:s},{identity:e,includeXml:!0})).processInstances[0]}async function Be(s,e={sortSettings:{sortBy:F.FlowNodeInstances.FlowNodeInstanceSortableColumns.createdAt,sortDir:"ASC"}}){return(await u.flowNodeInstances.query({processInstanceId:s},{...e,identity:e.identity??await v()})).flowNodeInstances}async function He(s){let e=await v();return(await u.flowNodeInstances.query({triggeredByFlowNodeInstance:s},{identity:e})).flowNodeInstances}async function je(s,e,t){let n=await v();await u.processInstances.retryProcessInstance(s,{flowNodeInstanceId:e,newStartToken:t,identity:n})}async function Ye(s){let e=await v();await u.processInstances.terminateProcessInstance(s,e)}async function Qs(s={options:{identity:!0}}){switch(s.options.identity){case!0:s.options.identity=await y();break;case!1:s.options.identity=void 0;break;case void 0:s.options.identity=await y();break}return await u.processInstances.query({...s?.query,state:F.ProcessInstances.ProcessInstanceState.running},s?.options)}async function Zs(s={},e=!0){let{processInstanceId:t}=s,n=typeof e=="boolean"?e==!0?await y():void 0:e;return new Promise(async(i,r)=>{let a=[],o=async c=>{if(t!==void 0&&c.processInstanceId!==t)return;let d=await u.processInstances.query({processInstanceId:c.processInstanceId},{identity:n});for(let f of a)u.notification.removeSubscription(f,n);return d.totalCount===0?r(new Error(`Process with instance ID "${c.processInstanceId}" does not exist.`)):i(d.processInstances[0])};if(a.push(await u.notification.onProcessEnded(o,{identity:n})),a.push(await u.notification.onProcessError(o,{identity:n})),a.push(await u.notification.onProcessTerminated(o,{identity:n})),t){let c=await u.processInstances.query({processInstanceId:t,state:[F.ProcessInstances.ProcessInstanceState.finished,F.ProcessInstances.ProcessInstanceState.terminated,F.ProcessInstances.ProcessInstanceState.error]},{identity:n});if(c.totalCount>0){for(let l of a)u.notification.removeSubscription(l,n);i(c.processInstances[0])}}})}import{DataModels as P}from"@5minds/processcube_engine_client";import{mapUserTask as ze,mapUserTaskList as R}from"../common/index.mjs";async function an(s={},e=!0){let{correlationId:t,processInstanceId:n,flowNodeId:i}=s,r=typeof e=="boolean"?e==!0?await y():void 0:e;return new Promise(async(a,o)=>{let c=await u.userTasks.onUserTaskWaiting(async d=>{let f=t!==void 0&&d.correlationId!==t,h=d.flowNodeInstanceId===void 0,_=n!==void 0&&d.processInstanceId!==n,g=i!==void 0&&d.flowNodeId!==i;if(f||h||_||g)return;let T=await is(d.flowNodeInstanceId,{identity:r});return u.notification.removeSubscription(c,r),T===null?o(new Error(`UserTask with instance ID "${d.flowNodeInstanceId}" does not exist.`)):a(T)},{identity:r}),l=await ns({correlationId:t,processInstanceId:n,flowNodeId:i,state:P.FlowNodeInstances.FlowNodeInstanceState.suspended},{identity:r});l.userTasks.length>0&&(u.notification.removeSubscription(c,r),a(l.userTasks[0]))})}async function cn(s,e={},t={},n=!0){let i=typeof n=="boolean"?n==!0?await y():void 0:n;await u.userTasks.finishUserTask(s,t,i);let r={state:P.FlowNodeInstances.FlowNodeInstanceState.suspended,...e},a=await u.userTasks.query(r,{identity:i});return ze(a.userTasks[0])}async function ns(s,e={identity:!0}){switch(e?.identity){case!0:e.identity=await y();break;case!1:e.identity=void 0;break;case void 0:e.identity=await y();break}let t=await u.userTasks.query(s,e);return R(t)}async function dn(s={identity:!0}){switch(s?.identity){case!0:s.identity=await y();break;case!1:s.identity=void 0;break;case void 0:s.identity=await y();break}let e=await u.userTasks.query({state:P.FlowNodeInstances.FlowNodeInstanceState.suspended},s);return R(e)}async function ln(s,e={identity:!0}){switch(e?.identity){case!0:e.identity=await y();break;case!1:e.identity=void 0;break;case void 0:e.identity=await y();break}let t=await u.userTasks.query({processInstanceId:s,state:P.FlowNodeInstances.FlowNodeInstanceState.suspended},e);return R(t)}async function fn(s,e={identity:!0}){switch(e?.identity){case!0:e.identity=await y();break;case!1:e.identity=void 0;break;case void 0:e.identity=await y();break}let t=await u.userTasks.query({flowNodeId:s,state:P.FlowNodeInstances.FlowNodeInstanceState.suspended},e);return R(t)}async function is(s,e={identity:!0}){switch(e?.identity){case!0:e.identity=await y();break;case!1:e.identity=void 0;break;case void 0:e.identity=await y();break}let t=await u.userTasks.query({flowNodeInstanceId:s,state:P.FlowNodeInstances.FlowNodeInstanceState.suspended},{...e,limit:1});return t.userTasks.length===0?null:ze(t.userTasks[0])}async function un(s,e={identity:!0}){switch(e?.identity){case!0:e.identity=await y();break;case!1:e.identity=void 0;break;case void 0:e.identity=await y();break}let t=await u.userTasks.query({correlationId:s,state:P.FlowNodeInstances.FlowNodeInstanceState.suspended},e);return R(t)}async function hn(s,e){let t=s||await y(),n=await u.userTasks.query({state:P.FlowNodeInstances.FlowNodeInstanceState.suspended},{identity:t,...e}),i=n.userTasks.filter(r=>r.actualOwnerId===t.userId);return n.userTasks=i,R(n)}async function pn(s,e,t){await u.userTasks.reserveUserTaskInstance(s,e,t||s.userId)}async function mn(s,e){await u.userTasks.cancelUserTaskInstanceReservation(s,e)}async function yn(s,e){let t=s||await y(),n=await u.userTasks.query({state:P.FlowNodeInstances.FlowNodeInstanceState.suspended},{identity:t,...e}),i=n.userTasks.filter(r=>r.assignedUserIds?.includes(t.userId));return n.userTasks=i,R(n)}import{PHASE_DEVELOPMENT_SERVER as rs,PHASE_PRODUCTION_BUILD as os,PHASE_PRODUCTION_SERVER as as}from"next/dist/shared/lib/constants";var Ke=!1,oe=!1;function In(s={}){let{applicationSdk:e,...t}=s;return async(n,i)=>{oe=oe||n===os;let r=n===rs||n===as;return e?.useExternalTasks&&r&&!Ke&&!oe&&(Ke=!0,await Ne(e?.customExternalTasksDirPath)),{...t,experimental:{...t.experimental,serverComponentsExternalPackages:[...t.experimental?.serverComponentsExternalPackages||[],"esbuild"]}}}}import{redirect as cs}from"next/navigation";function kn(s){cs(s)}async function Rn(...s){return await u.processModels.startProcessInstance(...s)}async function qe(...s){await u.manualTasks.finishManualTask(...s)}async function Ge(...s){await u.userTasks.finishUserTask(...s)}async function $e(...s){await u.untypedTasks.finishTask(...s)}import{DataModels as ds}from"@5minds/processcube_engine_client";async function ls(){try{return y()}catch{return}}var Mn=async(s,e)=>{let t=await ls();e==="bpmn:UserTask"?await Ge(s,{},t):e==="bpmn:ManualTask"?await qe(s,t):e==="bpmn:Task"?await $e(s,t):console.error(`[@5minds/processcube_app_sdk:handlePlay] Unsupported flow node type: ${e}`)},Bn=async s=>{await Ye(s)},Hn=async(s,e,t)=>{await je(s,e,t)},jn=async s=>Me(s),Yn=async s=>Be(s,{sortSettings:{sortBy:ds.FlowNodeInstances.FlowNodeInstanceSortableColumns.createdAt,sortDir:"DESC"}}),zn=async s=>He(s);export{mn as cancelReservedUserTask,qe as finishManualTask,Mn as finishTask,$e as finishUntypedTask,Ge as finishUserTask,cn as finishUserTaskAndGetNext,Qs as getActiveProcessInstances,yn as getAssignedUserTasksByIdentity,js as getEngineClient,Yn as getFlowNodeInstances,Be as getFlowNodeInstancesByProcessInstanceId,He as getFlowNodeInstancesTriggeredByFlowNodeInstanceIds,y as getIdentity,jn as getProcessInstance,Me as getProcessInstanceById,hn as getReservedUserTasksByIdentity,zn as getTriggeredFlowNodeInstances,ns as getUserTasks,is as getWaitingUserTaskByFlowNodeInstanceId,dn as getWaitingUserTasks,un as getWaitingUserTasksByCorrelationId,fn as getWaitingUserTasksByFlowNodeId,ln as getWaitingUserTasksByProcessInstanceId,kn as navigateToUrl,pn as reserveUserTask,Hn as retryProcess,je as retryProcessInstance,Rn as startProcess,Bn as terminateProcess,Ye as terminateProcessInstance,Zs as waitForProcessEnd,an as waitForUserTask,In as withApplicationSdk};
2
2
  /*! Bundled license information:
3
3
 
4
4
  chokidar/esm/index.js: