nx 19.4.0-canary.20240626-3a2e8d4 → 19.4.0-canary.20240627-c2c6a13

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 (34) hide show
  1. package/package.json +14 -14
  2. package/src/command-line/connect/connect-to-nx-cloud.d.ts +1 -1
  3. package/src/command-line/connect/connect-to-nx-cloud.js +16 -25
  4. package/src/command-line/graph/graph.d.ts +1 -0
  5. package/src/command-line/graph/graph.js +12 -1
  6. package/src/command-line/run/command-object.js +2 -1
  7. package/src/config/workspace-json-project-json.d.ts +1 -0
  8. package/src/core/graph/main.js +1 -1
  9. package/src/core/graph/styles.css +1 -1
  10. package/src/daemon/socket-utils.d.ts +1 -0
  11. package/src/daemon/socket-utils.js +6 -1
  12. package/src/executors/run-commands/run-commands.impl.js +19 -14
  13. package/src/nx-cloud/generators/connect-to-nx-cloud/connect-to-nx-cloud.d.ts +1 -0
  14. package/src/nx-cloud/generators/connect-to-nx-cloud/connect-to-nx-cloud.js +68 -33
  15. package/src/nx-cloud/generators/connect-to-nx-cloud/schema.json +5 -0
  16. package/src/nx-cloud/utilities/url-shorten.d.ts +2 -1
  17. package/src/nx-cloud/utilities/url-shorten.js +47 -11
  18. package/src/plugins/project-json/build-nodes/package-json-next-to-project-json.js +9 -2
  19. package/src/plugins/target-defaults/target-defaults-plugin.d.ts +5 -0
  20. package/src/project-graph/plugins/internal-api.js +1 -1
  21. package/src/project-graph/plugins/isolation/index.d.ts +1 -1
  22. package/src/project-graph/plugins/isolation/index.js +3 -15
  23. package/src/project-graph/plugins/isolation/messaging.d.ts +6 -3
  24. package/src/project-graph/plugins/isolation/messaging.js +9 -3
  25. package/src/project-graph/plugins/isolation/plugin-pool.d.ts +1 -1
  26. package/src/project-graph/plugins/isolation/plugin-pool.js +125 -51
  27. package/src/project-graph/plugins/isolation/plugin-worker.js +128 -107
  28. package/src/project-graph/utils/retrieve-workspace-files.d.ts +3 -3
  29. package/src/tasks-runner/task-env.d.ts +13 -0
  30. package/src/tasks-runner/task-env.js +41 -26
  31. package/src/utils/git-utils.d.ts +1 -1
  32. package/src/utils/git-utils.js +13 -2
  33. package/src/utils/nx-cloud-utils.d.ts +1 -1
  34. package/src/utils/nx-cloud-utils.js +1 -1
@@ -1,3 +1,3 @@
1
1
  /*! purgecss start ignore */html{--interactive-muted:#94a3b8}.dark{--interactive-muted:#64748b}.hljs .hljs-comment,.hljs .hljs-quote{color:var(--interactive-muted)}.hljs .hljs-addition,.hljs .hljs-keyword,.hljs .hljs-selector-tag{color:#859900}.hljs .hljs-doctag,.hljs .hljs-literal,.hljs .hljs-meta .hljs .hljs-meta-string,.hljs .hljs-number,.hljs .hljs-regexp,.hljs .hljs-string{color:#2aa198}.hljs .hljs-name,.hljs .hljs-section,.hljs .hljs-selector-class,.hljs .hljs-selector-id,.hljs .hljs-title{color:#268bd2}.hljs .hljs-attr,.hljs .hljs-attribute,.hljs .hljs-class .hljs .hljs-title,.hljs .hljs-template-variable,.hljs .hljs-type,.hljs .hljs-variable{color:#b58900}.hljs .hljs-bullet,.hljs .hljs-link,.hljs .hljs-meta,.hljs .hljs-meta .hljs .hljs-keyword,.hljs .hljs-selector-attr,.hljs .hljs-selector-pseudo,.hljs .hljs-subst,.hljs .hljs-symbol{color:#cb4b16}.hljs .hljs-built_in,.hljs .hljs-deletion{color:#dc322f}.hljs .hljs-formula{background:#073642}.hljs .hljs-emphasis{font-style:italic}.hljs .hljs-strong{font-weight:700}.linenumber{background:#e5e7eb;border-color:#3b82f6}html.dark .linenumber{background:#e5e7eb33}
2
2
  /*! purgecss end ignore */.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.form-input,.form-multiselect,.form-select,.form-textarea{--tw-shadow:0 0 #0000;appearance:none;background-color:#fff;border-color:#6b7280;border-radius:0;border-width:1px;font-size:1rem;line-height:1.5rem;padding:.5rem .75rem}.form-input:focus,.form-multiselect:focus,.form-select:focus,.form-textarea:focus{--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);border-color:#2563eb;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);outline:2px solid transparent;outline-offset:2px}.form-select{background-image:url("data:image/svg+xml;charset=utf-8,%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 8 4 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;print-color-adjust:exact}.form-select:where([size]:not([size="1"])){background-image:none;background-position:0 0;background-repeat:unset;background-size:initial;padding-right:.75rem;print-color-adjust:unset}
3
- /*! tailwindcss v3.4.3 | MIT License | https://tailwindcss.com */*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]{display:none}*,:after,:before{--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:rgba(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:rgba(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: }.sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.visible{visibility:visible}.invisible{visibility:hidden}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{left:0;right:0}.inset-y-0{bottom:0;top:0}.bottom-0{bottom:0}.bottom-2{bottom:.5rem}.bottom-4{bottom:1rem}.left-1\/2{left:50%}.left-5{left:1.25rem}.right-0{right:0}.right-1{right:.25rem}.right-1\/2{right:50%}.right-2{right:.5rem}.right-4{right:1rem}.top-0{top:0}.top-1{top:.25rem}.top-1\/2{top:50%}.top-2{top:.5rem}.top-24{top:6rem}.top-5{top:1.25rem}.-z-10{z-index:-10}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-2{margin-bottom:.5rem;margin-top:.5rem}.my-8{margin-bottom:2rem;margin-top:2rem}.-ml-1{margin-left:-.25rem}.-ml-3{margin-left:-.75rem}.-mt-1{margin-top:-.25rem}.-mt-3{margin-top:-.75rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-8{margin-bottom:2rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.ml-5{margin-left:1.25rem}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mr-4{margin-right:1rem}.ms-auto{margin-inline-start:auto}.mt-10{margin-top:2.5rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-8{margin-top:2rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.h-10{height:2.5rem}.h-16{height:4rem}.h-3{height:.75rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-auto{height:auto}.h-full{height:100%}.h-max{height:max-content}.h-screen{height:100vh}.max-h-\[300px\]{max-height:300px}.max-h-\[90vh\]{max-height:90vh}.max-h-full{max-height:100%}.min-h-full{min-height:100%}.w-1\/3{width:33.333333%}.w-10{width:2.5rem}.w-16{width:4rem}.w-3{width:.75rem}.w-36{width:9rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-72{width:18rem}.w-8{width:2rem}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-screen{width:100vw}.min-w-0{min-width:0}.min-w-\[250px\]{min-width:250px}.min-w-\[350px\]{min-width:350px}.max-w-6xl{max-width:72rem}.max-w-\[75\%\]{max-width:75%}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-prose{max-width:65ch}.flex-1{flex:1 1 0%}.flex-grow,.grow{flex-grow:1}.origin-top-right{transform-origin:top right}.translate-x-32{--tw-translate-x:8rem}.translate-x-32,.translate-y-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-0{--tw-translate-y:0px}.translate-y-4{--tw-translate-y:1rem}.rotate-45,.translate-y-4{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-45{--tw-rotate:45deg}.scale-100{--tw-scale-x:1;--tw-scale-y:1}.scale-100,.scale-95{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-95{--tw-scale-x:.95;--tw-scale-y:.95}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.\!cursor-pointer{cursor:pointer!important}.cursor-default{cursor:default}.cursor-help{cursor:help}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.select-none{-webkit-user-select:none;user-select:none}.select-text{-webkit-user-select:text;user-select:text}.resize{resize:both}.list-disc{list-style-type:disc}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-items-end{justify-items:end}.justify-items-center{justify-items:center}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-4{gap:1rem}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-bottom-width:calc(1px*var(--tw-divide-y-reverse));border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)))}.divide-slate-200>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(226 232 240/var(--tw-divide-opacity))}.self-end{align-self:flex-end}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-x-scroll{overflow-x:scroll}.overflow-y-scroll{overflow-y:scroll}.truncate{overflow:hidden;text-overflow:ellipsis}.truncate,.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-none{border-radius:0}.rounded-l-md{border-bottom-left-radius:.375rem;border-top-left-radius:.375rem}.rounded-r-md{border-bottom-right-radius:.375rem;border-top-right-radius:.375rem}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-r-0{border-right-width:0}.border-t{border-top-width:1px}.border-solid{border-style:solid}.border-dashed{border-style:dashed}.border-blue-500{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity))}.border-pink-500{--tw-border-opacity:1;border-color:rgb(236 72 153/var(--tw-border-opacity))}.border-purple-500{--tw-border-opacity:1;border-color:rgb(168 85 247/var(--tw-border-opacity))}.border-slate-200{--tw-border-opacity:1;border-color:rgb(226 232 240/var(--tw-border-opacity))}.border-slate-200\/10{border-color:rgba(226,232,240,.1)}.border-slate-300{--tw-border-opacity:1;border-color:rgb(203 213 225/var(--tw-border-opacity))}.border-slate-400{--tw-border-opacity:1;border-color:rgb(148 163 184/var(--tw-border-opacity))}.border-slate-400\/10{border-color:rgba(148,163,184,.1)}.border-slate-500{--tw-border-opacity:1;border-color:rgb(100 116 139/var(--tw-border-opacity))}.border-slate-900\/10{border-color:rgba(15,23,42,.1)}.bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity))}.bg-gray-500{--tw-bg-opacity:1;background-color:rgb(107 114 128/var(--tw-bg-opacity))}.bg-green-400\/10{background-color:rgba(74,222,128,.1)}.bg-inherit{background-color:inherit}.bg-pink-400{--tw-bg-opacity:1;background-color:rgb(244 114 182/var(--tw-bg-opacity))}.bg-red-600{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity))}.bg-slate-300{--tw-bg-opacity:1;background-color:rgb(203 213 225/var(--tw-bg-opacity))}.bg-slate-400\/10{background-color:rgba(148,163,184,.1)}.bg-slate-50{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity))}.bg-slate-50\/50{background-color:rgba(248,250,252,.5)}.bg-slate-500{--tw-bg-opacity:1;background-color:rgb(100 116 139/var(--tw-bg-opacity))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-yellow-50{--tw-bg-opacity:1;background-color:rgb(254 252 232/var(--tw-bg-opacity))}.bg-opacity-75{--tw-bg-opacity:0.75}.p-0{padding:0}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-4{padding-left:1rem;padding-right:1rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-4{padding-bottom:1rem;padding-top:1rem}.pb-0{padding-bottom:0}.pb-1{padding-bottom:.25rem}.pb-10{padding-bottom:2.5rem}.pb-2{padding-bottom:.5rem}.pb-4{padding-bottom:1rem}.pl-2{padding-left:.5rem}.pl-4{padding-left:1rem}.pl-5{padding-left:1.25rem}.pr-4{padding-right:1rem}.pr-6{padding-right:1.5rem}.pr-8{padding-right:2rem}.pt-3{padding-top:.75rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.font-sans{font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.text-2xl{font-size:1.5rem;line-height:2rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-light{font-weight:300}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.italic{font-style:italic}.leading-4{line-height:1rem}.leading-6{line-height:1.5rem}.tracking-wide{letter-spacing:.025em}.text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity))}.text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity))}.text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity))}.text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity))}.text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity))}.text-sky-500{--tw-text-opacity:1;color:rgb(14 165 233/var(--tw-text-opacity))}.text-slate-200{--tw-text-opacity:1;color:rgb(226 232 240/var(--tw-text-opacity))}.text-slate-400{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity))}.text-slate-50{--tw-text-opacity:1;color:rgb(248 250 252/var(--tw-text-opacity))}.text-slate-500{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity))}.text-slate-600{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity))}.text-slate-700{--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity))}.text-slate-800{--tw-text-opacity:1;color:rgb(30 41 59/var(--tw-text-opacity))}.text-slate-900{--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.text-yellow-500{--tw-text-opacity:1;color:rgb(234 179 8/var(--tw-text-opacity))}.text-yellow-600{--tw-text-opacity:1;color:rgb(202 138 4/var(--tw-text-opacity))}.underline{text-decoration-line:underline}.decoration-slate-700\/50{text-decoration-color:rgba(51,65,85,.5)}.decoration-dotted{text-decoration-style:dotted}.decoration-2{text-decoration-thickness:2px}.underline-offset-8{text-underline-offset:8px}.accent-blue-500{accent-color:#3b82f6}.accent-purple-500{accent-color:#a855f7}.opacity-0{opacity:0}.opacity-10{opacity:.1}.opacity-100{opacity:1}.opacity-90{opacity:.9}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-lg,.shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.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)}.ring-1,.ring-2{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-2{--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)}.ring-inset{--tw-ring-inset:inset}.ring-blue-500{--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity))}.ring-green-500\/40{--tw-ring-color:rgba(34,197,94,.4)}.ring-slate-200{--tw-ring-opacity:1;--tw-ring-color:rgb(226 232 240/var(--tw-ring-opacity))}.ring-slate-400\/40{--tw-ring-color:rgba(148,163,184,.4)}.ring-slate-500{--tw-ring-opacity:1;--tw-ring-color:rgb(100 116 139/var(--tw-ring-opacity))}.ring-slate-900\/10{--tw-ring-color:rgba(15,23,42,.1)}.ring-yellow-500\/40{--tw-ring-color:rgba(234,179,8,.4)}.ring-opacity-10{--tw-ring-opacity:0.1}.ring-opacity-5{--tw-ring-opacity:0.05}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-duration:.15s;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-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-100{transition-duration:.1s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-75{transition-duration:75ms}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.dark{color-scheme:dark}[data-tooltip]{position:relative}[data-tooltip]:before{background-color:#0b1a2d;border-radius:.375rem;color:#f2f2f2;content:attr(data-tooltip);left:0;opacity:0;padding:.25rem .5rem;position:absolute;text-align:center;text-transform:capitalize;top:120%;transition:opacity .15s ease-out;visibility:hidden;width:max-content;z-index:1}[data-tooltip][data-tooltip-align-right]:before{left:auto;right:0}[data-tooltip]:hover:before{opacity:1;visibility:visible}html.dark .adaptive-icon{filter:invert(1)}.adaptive-icon{fill:#000}.placeholder\:font-light::placeholder{font-weight:300}.placeholder\:text-slate-400::placeholder{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity))}.last\:mb-0:last-child{margin-bottom:0}.hover\:cursor-pointer:hover{cursor:pointer}.hover\:bg-gray-200:hover{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity))}.hover\:bg-pink-500:hover{--tw-bg-opacity:1;background-color:rgb(236 72 153/var(--tw-bg-opacity))}.hover\:bg-slate-100:hover{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity))}.hover\:bg-slate-200:hover{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity))}.hover\:bg-slate-50:hover{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity))}.hover\:text-gray-900:hover{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity))}.hover\:underline:hover{text-decoration-line:underline}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-2:focus-visible{--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-visible\:ring-white:focus-visible{--tw-ring-opacity:1;--tw-ring-color:rgb(255 255 255/var(--tw-ring-opacity))}.focus-visible\:ring-opacity-75:focus-visible{--tw-ring-opacity:0.75}.group:hover .group-hover\:inline{display:inline}.group:hover .group-hover\:translate-x-0{--tw-translate-x:0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:opacity-100,.group\/line:hover .group-hover\/line\:opacity-100{opacity:1}.group:hover .group-hover\:opacity-60{opacity:.6}.dark\:divide-slate-800:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(30 41 59/var(--tw-divide-opacity))}.dark\:border-fuchsia-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(134 25 143/var(--tw-border-opacity))}.dark\:border-gray-600:is(.dark *){--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity))}.dark\:border-purple-600:is(.dark *){--tw-border-opacity:1;border-color:rgb(147 51 234/var(--tw-border-opacity))}.dark\:border-sky-500:is(.dark *){--tw-border-opacity:1;border-color:rgb(14 165 233/var(--tw-border-opacity))}.dark\:border-slate-300\/10:is(.dark *){border-color:rgba(203,213,225,.1)}.dark\:border-slate-600:is(.dark *){--tw-border-opacity:1;border-color:rgb(71 85 105/var(--tw-border-opacity))}.dark\:border-slate-700:is(.dark *){--tw-border-opacity:1;border-color:rgb(51 65 85/var(--tw-border-opacity))}.dark\:border-slate-700\/60:is(.dark *){border-color:rgba(51,65,85,.6)}.dark\:border-slate-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(30 41 59/var(--tw-border-opacity))}.dark\:border-slate-900:is(.dark *){--tw-border-opacity:1;border-color:rgb(15 23 42/var(--tw-border-opacity))}.dark\:bg-\[\#0B1221\]:is(.dark *){--tw-bg-opacity:1;background-color:rgb(11 18 33/var(--tw-bg-opacity))}.dark\:bg-fuchsia-700:is(.dark *){--tw-bg-opacity:1;background-color:rgb(162 28 175/var(--tw-bg-opacity))}.dark\:bg-gray-700:is(.dark *){--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity))}.dark\:bg-green-500\/10:is(.dark *){background-color:rgba(34,197,94,.1)}.dark\:bg-sky-500:is(.dark *){--tw-bg-opacity:1;background-color:rgb(14 165 233/var(--tw-bg-opacity))}.dark\:bg-slate-600\/30:is(.dark *){background-color:rgba(71,85,105,.3)}.dark\:bg-slate-800:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity))}.dark\:bg-slate-800\/60:is(.dark *){background-color:rgba(30,41,59,.6)}.dark\:bg-slate-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity))}.dark\:bg-transparent:is(.dark *){background-color:transparent}.dark\:bg-yellow-900\/30:is(.dark *){background-color:rgba(113,63,18,.3)}.dark\:text-gray-300:is(.dark *){--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity))}.dark\:text-green-400:is(.dark *){--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity))}.dark\:text-sky-500:is(.dark *){--tw-text-opacity:1;color:rgb(14 165 233/var(--tw-text-opacity))}.dark\:text-slate-100:is(.dark *){--tw-text-opacity:1;color:rgb(241 245 249/var(--tw-text-opacity))}.dark\:text-slate-200:is(.dark *){--tw-text-opacity:1;color:rgb(226 232 240/var(--tw-text-opacity))}.dark\:text-slate-300:is(.dark *){--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity))}.dark\:text-slate-400:is(.dark *){--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity))}.dark\:text-slate-500:is(.dark *){--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity))}.dark\:text-white:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.dark\:text-yellow-400:is(.dark *){--tw-text-opacity:1;color:rgb(250 204 21/var(--tw-text-opacity))}.dark\:decoration-slate-400\/50:is(.dark *){text-decoration-color:rgba(148,163,184,.5)}.dark\:accent-sky-500:is(.dark *){accent-color:#0ea5e9}.dark\:ring-0:is(.dark *){--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(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)}.dark\:ring-green-500\/20:is(.dark *){--tw-ring-color:rgba(34,197,94,.2)}.dark\:ring-sky-500:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(14 165 233/var(--tw-ring-opacity))}.dark\:ring-slate-300\/10:is(.dark *){--tw-ring-color:rgba(203,213,225,.1)}.dark\:ring-slate-400\/30:is(.dark *){--tw-ring-color:rgba(148,163,184,.3)}.dark\:ring-slate-600:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(71 85 105/var(--tw-ring-opacity))}.dark\:ring-slate-700:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(51 65 85/var(--tw-ring-opacity))}.dark\:ring-yellow-500\/20:is(.dark *){--tw-ring-color:rgba(234,179,8,.2)}.dark\:hover\:bg-gray-600:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity))}.dark\:hover\:bg-slate-700:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity))}.dark\:hover\:bg-slate-700\/60:hover:is(.dark *){background-color:rgba(51,65,85,.6)}.dark\:hover\:bg-slate-800\/60:hover:is(.dark *){background-color:rgba(30,41,59,.6)}.hover\:dark\:bg-fuchsia-600:is(.dark *):hover{--tw-bg-opacity:1;background-color:rgb(192 38 211/var(--tw-bg-opacity))}.hover\:dark\:bg-slate-700:is(.dark *):hover{--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity))}.dark\:hover\:text-white:hover:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}@media (min-width:640px){.sm\:max-w-full{max-width:100%}.sm\:translate-y-0{--tw-translate-y:0px}.sm\:scale-100,.sm\:translate-y-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.sm\:scale-100{--tw-scale-x:1;--tw-scale-y:1}.sm\:scale-95{--tw-scale-x:.95;--tw-scale-y:.95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.sm\:p-0{padding:0}}@media (min-width:768px){.md\:inline{display:inline}.md\:max-w-5xl{max-width:64rem}.md\:p-4{padding:1rem}.md\:pb-2{padding-bottom:.5rem}}@media (min-width:1024px){.lg\:text-xs{font-size:.75rem;line-height:1rem}}@media (min-width:1280px){.xl\:max-w-7xl{max-width:80rem}}
3
+ /*! tailwindcss v3.4.3 | MIT License | https://tailwindcss.com */*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]{display:none}*,:after,:before{--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:rgba(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:rgba(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: }.sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.visible{visibility:visible}.invisible{visibility:hidden}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{left:0;right:0}.inset-y-0{bottom:0;top:0}.bottom-0{bottom:0}.bottom-2{bottom:.5rem}.bottom-4{bottom:1rem}.left-1\/2{left:50%}.left-5{left:1.25rem}.right-0{right:0}.right-1{right:.25rem}.right-1\/2{right:50%}.right-2{right:.5rem}.right-4{right:1rem}.top-0{top:0}.top-1{top:.25rem}.top-1\/2{top:50%}.top-2{top:.5rem}.top-24{top:6rem}.top-5{top:1.25rem}.-z-10{z-index:-10}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-2{margin-bottom:.5rem;margin-top:.5rem}.my-8{margin-bottom:2rem;margin-top:2rem}.-ml-1{margin-left:-.25rem}.-ml-3{margin-left:-.75rem}.-mt-1{margin-top:-.25rem}.-mt-3{margin-top:-.75rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-8{margin-bottom:2rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.ml-5{margin-left:1.25rem}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mr-4{margin-right:1rem}.ms-auto{margin-inline-start:auto}.mt-10{margin-top:2.5rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-8{margin-top:2rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.h-10{height:2.5rem}.h-16{height:4rem}.h-3{height:.75rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-auto{height:auto}.h-full{height:100%}.h-max{height:max-content}.h-screen{height:100vh}.max-h-\[300px\]{max-height:300px}.max-h-\[90vh\]{max-height:90vh}.max-h-full{max-height:100%}.min-h-full{min-height:100%}.w-1\/3{width:33.333333%}.w-10{width:2.5rem}.w-16{width:4rem}.w-3{width:.75rem}.w-36{width:9rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-72{width:18rem}.w-8{width:2rem}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-screen{width:100vw}.min-w-0{min-width:0}.min-w-\[250px\]{min-width:250px}.min-w-\[350px\]{min-width:350px}.max-w-6xl{max-width:72rem}.max-w-\[75\%\]{max-width:75%}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-prose{max-width:65ch}.flex-1{flex:1 1 0%}.flex-grow,.grow{flex-grow:1}.origin-top-right{transform-origin:top right}.translate-x-32{--tw-translate-x:8rem}.translate-x-32,.translate-y-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-0{--tw-translate-y:0px}.translate-y-4{--tw-translate-y:1rem}.rotate-45,.translate-y-4{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-45{--tw-rotate:45deg}.scale-100{--tw-scale-x:1;--tw-scale-y:1}.scale-100,.scale-95{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-95{--tw-scale-x:.95;--tw-scale-y:.95}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.\!cursor-pointer{cursor:pointer!important}.cursor-default{cursor:default}.cursor-help{cursor:help}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.select-none{-webkit-user-select:none;user-select:none}.select-text{-webkit-user-select:text;user-select:text}.resize{resize:both}.list-disc{list-style-type:disc}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-items-end{justify-items:end}.justify-items-center{justify-items:center}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-4{gap:1rem}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-bottom-width:calc(1px*var(--tw-divide-y-reverse));border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)))}.divide-slate-200>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(226 232 240/var(--tw-divide-opacity))}.self-end{align-self:flex-end}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-x-scroll{overflow-x:scroll}.overflow-y-scroll{overflow-y:scroll}.truncate{overflow:hidden;text-overflow:ellipsis}.truncate,.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-none{border-radius:0}.rounded-l-md{border-bottom-left-radius:.375rem;border-top-left-radius:.375rem}.rounded-r-md{border-bottom-right-radius:.375rem;border-top-right-radius:.375rem}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-r-0{border-right-width:0}.border-t{border-top-width:1px}.border-solid{border-style:solid}.border-dashed{border-style:dashed}.border-blue-500{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity))}.border-pink-500{--tw-border-opacity:1;border-color:rgb(236 72 153/var(--tw-border-opacity))}.border-purple-500{--tw-border-opacity:1;border-color:rgb(168 85 247/var(--tw-border-opacity))}.border-slate-200{--tw-border-opacity:1;border-color:rgb(226 232 240/var(--tw-border-opacity))}.border-slate-200\/10{border-color:rgba(226,232,240,.1)}.border-slate-300{--tw-border-opacity:1;border-color:rgb(203 213 225/var(--tw-border-opacity))}.border-slate-400{--tw-border-opacity:1;border-color:rgb(148 163 184/var(--tw-border-opacity))}.border-slate-400\/10{border-color:rgba(148,163,184,.1)}.border-slate-500{--tw-border-opacity:1;border-color:rgb(100 116 139/var(--tw-border-opacity))}.border-slate-900\/10{border-color:rgba(15,23,42,.1)}.bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity))}.bg-gray-500{--tw-bg-opacity:1;background-color:rgb(107 114 128/var(--tw-bg-opacity))}.bg-green-400\/10{background-color:rgba(74,222,128,.1)}.bg-inherit{background-color:inherit}.bg-pink-400{--tw-bg-opacity:1;background-color:rgb(244 114 182/var(--tw-bg-opacity))}.bg-red-600{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity))}.bg-slate-300{--tw-bg-opacity:1;background-color:rgb(203 213 225/var(--tw-bg-opacity))}.bg-slate-400\/10{background-color:rgba(148,163,184,.1)}.bg-slate-50{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity))}.bg-slate-50\/50{background-color:rgba(248,250,252,.5)}.bg-slate-500{--tw-bg-opacity:1;background-color:rgb(100 116 139/var(--tw-bg-opacity))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-yellow-50{--tw-bg-opacity:1;background-color:rgb(254 252 232/var(--tw-bg-opacity))}.bg-opacity-75{--tw-bg-opacity:0.75}.p-0{padding:0}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-4{padding-left:1rem;padding-right:1rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-4{padding-bottom:1rem;padding-top:1rem}.pb-0{padding-bottom:0}.pb-1{padding-bottom:.25rem}.pb-10{padding-bottom:2.5rem}.pb-2{padding-bottom:.5rem}.pb-4{padding-bottom:1rem}.pl-2{padding-left:.5rem}.pl-4{padding-left:1rem}.pl-5{padding-left:1.25rem}.pr-4{padding-right:1rem}.pr-6{padding-right:1.5rem}.pr-8{padding-right:2rem}.pt-3{padding-top:.75rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.font-sans{font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.text-2xl{font-size:1.5rem;line-height:2rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-light{font-weight:300}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.normal-case{text-transform:none}.italic{font-style:italic}.leading-4{line-height:1rem}.leading-6{line-height:1.5rem}.tracking-wide{letter-spacing:.025em}.text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity))}.text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity))}.text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity))}.text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity))}.text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity))}.text-sky-500{--tw-text-opacity:1;color:rgb(14 165 233/var(--tw-text-opacity))}.text-slate-200{--tw-text-opacity:1;color:rgb(226 232 240/var(--tw-text-opacity))}.text-slate-400{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity))}.text-slate-50{--tw-text-opacity:1;color:rgb(248 250 252/var(--tw-text-opacity))}.text-slate-500{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity))}.text-slate-600{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity))}.text-slate-700{--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity))}.text-slate-800{--tw-text-opacity:1;color:rgb(30 41 59/var(--tw-text-opacity))}.text-slate-900{--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.text-yellow-500{--tw-text-opacity:1;color:rgb(234 179 8/var(--tw-text-opacity))}.text-yellow-600{--tw-text-opacity:1;color:rgb(202 138 4/var(--tw-text-opacity))}.underline{text-decoration-line:underline}.decoration-slate-700\/50{text-decoration-color:rgba(51,65,85,.5)}.decoration-dotted{text-decoration-style:dotted}.decoration-2{text-decoration-thickness:2px}.underline-offset-8{text-underline-offset:8px}.accent-blue-500{accent-color:#3b82f6}.accent-purple-500{accent-color:#a855f7}.opacity-0{opacity:0}.opacity-10{opacity:.1}.opacity-100{opacity:1}.opacity-90{opacity:.9}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-lg,.shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.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)}.ring-1,.ring-2{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-2{--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)}.ring-inset{--tw-ring-inset:inset}.ring-blue-500{--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity))}.ring-green-500\/40{--tw-ring-color:rgba(34,197,94,.4)}.ring-slate-200{--tw-ring-opacity:1;--tw-ring-color:rgb(226 232 240/var(--tw-ring-opacity))}.ring-slate-400\/40{--tw-ring-color:rgba(148,163,184,.4)}.ring-slate-500{--tw-ring-opacity:1;--tw-ring-color:rgb(100 116 139/var(--tw-ring-opacity))}.ring-slate-900\/10{--tw-ring-color:rgba(15,23,42,.1)}.ring-yellow-500\/40{--tw-ring-color:rgba(234,179,8,.4)}.ring-opacity-10{--tw-ring-opacity:0.1}.ring-opacity-5{--tw-ring-opacity:0.05}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-duration:.15s;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-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-100{transition-duration:.1s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-75{transition-duration:75ms}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.dark{color-scheme:dark}[data-tooltip]{position:relative}[data-tooltip]:before{background-color:#0b1a2d;border-radius:.375rem;color:#f2f2f2;content:attr(data-tooltip);left:0;opacity:0;padding:.25rem .5rem;position:absolute;text-align:center;text-transform:capitalize;top:120%;transition:opacity .15s ease-out;visibility:hidden;width:max-content;z-index:1}[data-tooltip][data-tooltip-align-right]:before{left:auto;right:0}[data-tooltip]:hover:before{opacity:1;visibility:visible}html.dark .adaptive-icon{filter:invert(1)}.adaptive-icon{fill:#000}.placeholder\:font-light::placeholder{font-weight:300}.placeholder\:text-slate-400::placeholder{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity))}.last\:mb-0:last-child{margin-bottom:0}.hover\:cursor-pointer:hover{cursor:pointer}.hover\:bg-gray-200:hover{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity))}.hover\:bg-pink-500:hover{--tw-bg-opacity:1;background-color:rgb(236 72 153/var(--tw-bg-opacity))}.hover\:bg-slate-100:hover{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity))}.hover\:bg-slate-200:hover{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity))}.hover\:bg-slate-50:hover{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity))}.hover\:text-gray-900:hover{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity))}.hover\:underline:hover{text-decoration-line:underline}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-2:focus-visible{--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-visible\:ring-white:focus-visible{--tw-ring-opacity:1;--tw-ring-color:rgb(255 255 255/var(--tw-ring-opacity))}.focus-visible\:ring-opacity-75:focus-visible{--tw-ring-opacity:0.75}.group:hover .group-hover\:inline{display:inline}.group:hover .group-hover\:translate-x-0{--tw-translate-x:0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:opacity-100,.group\/line:hover .group-hover\/line\:opacity-100{opacity:1}.group:hover .group-hover\:opacity-60{opacity:.6}.dark\:divide-slate-800:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(30 41 59/var(--tw-divide-opacity))}.dark\:border-fuchsia-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(134 25 143/var(--tw-border-opacity))}.dark\:border-gray-600:is(.dark *){--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity))}.dark\:border-purple-600:is(.dark *){--tw-border-opacity:1;border-color:rgb(147 51 234/var(--tw-border-opacity))}.dark\:border-sky-500:is(.dark *){--tw-border-opacity:1;border-color:rgb(14 165 233/var(--tw-border-opacity))}.dark\:border-slate-300\/10:is(.dark *){border-color:rgba(203,213,225,.1)}.dark\:border-slate-600:is(.dark *){--tw-border-opacity:1;border-color:rgb(71 85 105/var(--tw-border-opacity))}.dark\:border-slate-700:is(.dark *){--tw-border-opacity:1;border-color:rgb(51 65 85/var(--tw-border-opacity))}.dark\:border-slate-700\/60:is(.dark *){border-color:rgba(51,65,85,.6)}.dark\:border-slate-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(30 41 59/var(--tw-border-opacity))}.dark\:border-slate-900:is(.dark *){--tw-border-opacity:1;border-color:rgb(15 23 42/var(--tw-border-opacity))}.dark\:bg-\[\#0B1221\]:is(.dark *){--tw-bg-opacity:1;background-color:rgb(11 18 33/var(--tw-bg-opacity))}.dark\:bg-fuchsia-700:is(.dark *){--tw-bg-opacity:1;background-color:rgb(162 28 175/var(--tw-bg-opacity))}.dark\:bg-gray-700:is(.dark *){--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity))}.dark\:bg-green-500\/10:is(.dark *){background-color:rgba(34,197,94,.1)}.dark\:bg-sky-500:is(.dark *){--tw-bg-opacity:1;background-color:rgb(14 165 233/var(--tw-bg-opacity))}.dark\:bg-slate-600\/30:is(.dark *){background-color:rgba(71,85,105,.3)}.dark\:bg-slate-800:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity))}.dark\:bg-slate-800\/60:is(.dark *){background-color:rgba(30,41,59,.6)}.dark\:bg-slate-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity))}.dark\:bg-transparent:is(.dark *){background-color:transparent}.dark\:bg-yellow-900\/30:is(.dark *){background-color:rgba(113,63,18,.3)}.dark\:text-gray-300:is(.dark *){--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity))}.dark\:text-green-400:is(.dark *){--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity))}.dark\:text-sky-500:is(.dark *){--tw-text-opacity:1;color:rgb(14 165 233/var(--tw-text-opacity))}.dark\:text-slate-100:is(.dark *){--tw-text-opacity:1;color:rgb(241 245 249/var(--tw-text-opacity))}.dark\:text-slate-200:is(.dark *){--tw-text-opacity:1;color:rgb(226 232 240/var(--tw-text-opacity))}.dark\:text-slate-300:is(.dark *){--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity))}.dark\:text-slate-400:is(.dark *){--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity))}.dark\:text-slate-500:is(.dark *){--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity))}.dark\:text-white:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.dark\:text-yellow-400:is(.dark *){--tw-text-opacity:1;color:rgb(250 204 21/var(--tw-text-opacity))}.dark\:decoration-slate-400\/50:is(.dark *){text-decoration-color:rgba(148,163,184,.5)}.dark\:accent-sky-500:is(.dark *){accent-color:#0ea5e9}.dark\:ring-0:is(.dark *){--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(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)}.dark\:ring-green-500\/20:is(.dark *){--tw-ring-color:rgba(34,197,94,.2)}.dark\:ring-sky-500:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(14 165 233/var(--tw-ring-opacity))}.dark\:ring-slate-300\/10:is(.dark *){--tw-ring-color:rgba(203,213,225,.1)}.dark\:ring-slate-400\/30:is(.dark *){--tw-ring-color:rgba(148,163,184,.3)}.dark\:ring-slate-600:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(71 85 105/var(--tw-ring-opacity))}.dark\:ring-slate-700:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(51 65 85/var(--tw-ring-opacity))}.dark\:ring-yellow-500\/20:is(.dark *){--tw-ring-color:rgba(234,179,8,.2)}.dark\:hover\:bg-gray-600:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity))}.dark\:hover\:bg-slate-700:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity))}.dark\:hover\:bg-slate-700\/60:hover:is(.dark *){background-color:rgba(51,65,85,.6)}.dark\:hover\:bg-slate-800\/60:hover:is(.dark *){background-color:rgba(30,41,59,.6)}.hover\:dark\:bg-fuchsia-600:is(.dark *):hover{--tw-bg-opacity:1;background-color:rgb(192 38 211/var(--tw-bg-opacity))}.hover\:dark\:bg-slate-700:is(.dark *):hover{--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity))}.dark\:hover\:text-white:hover:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}@media (min-width:640px){.sm\:max-w-full{max-width:100%}.sm\:translate-y-0{--tw-translate-y:0px}.sm\:scale-100,.sm\:translate-y-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.sm\:scale-100{--tw-scale-x:1;--tw-scale-y:1}.sm\:scale-95{--tw-scale-x:.95;--tw-scale-y:.95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.sm\:p-0{padding:0}}@media (min-width:768px){.md\:inline{display:inline}.md\:max-w-5xl{max-width:64rem}.md\:p-4{padding:1rem}.md\:pb-2{padding-bottom:.5rem}}@media (min-width:1024px){.lg\:text-xs{font-size:.75rem;line-height:1rem}}@media (min-width:1280px){.xl\:max-w-7xl{max-width:80rem}}
@@ -7,5 +7,6 @@ export declare const isWindows: boolean;
7
7
  */
8
8
  export declare const getFullOsSocketPath: () => string;
9
9
  export declare const getForkedProcessOsSocketPath: (id: string) => string;
10
+ export declare const getPluginOsSocketPath: (id: string) => string;
10
11
  export declare function killSocketOrPath(): void;
11
12
  export declare function serializeResult(error: Error | null, serializedProjectGraph: string | null, serializedSourceMaps: string | null): string | null;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.serializeResult = exports.killSocketOrPath = exports.getForkedProcessOsSocketPath = exports.getFullOsSocketPath = exports.isWindows = void 0;
3
+ exports.serializeResult = exports.killSocketOrPath = exports.getPluginOsSocketPath = exports.getForkedProcessOsSocketPath = exports.getFullOsSocketPath = exports.isWindows = void 0;
4
4
  const fs_1 = require("fs");
5
5
  const os_1 = require("os");
6
6
  const path_1 = require("path");
@@ -22,6 +22,11 @@ const getForkedProcessOsSocketPath = (id) => {
22
22
  return exports.isWindows ? '\\\\.\\pipe\\nx\\' + (0, path_1.resolve)(path) : (0, path_1.resolve)(path);
23
23
  };
24
24
  exports.getForkedProcessOsSocketPath = getForkedProcessOsSocketPath;
25
+ const getPluginOsSocketPath = (id) => {
26
+ let path = (0, path_1.resolve)((0, path_1.join)((0, tmp_dir_1.getSocketDir)(), 'plugin' + id + '.sock'));
27
+ return exports.isWindows ? '\\\\.\\pipe\\nx\\' + (0, path_1.resolve)(path) : (0, path_1.resolve)(path);
28
+ };
29
+ exports.getPluginOsSocketPath = getPluginOsSocketPath;
25
30
  function killSocketOrPath() {
26
31
  try {
27
32
  (0, fs_1.unlinkSync)((0, exports.getFullOsSocketPath)());
@@ -8,19 +8,24 @@ const npm_run_path_1 = require("npm-run-path");
8
8
  const chalk = require("chalk");
9
9
  const pseudo_terminal_1 = require("../../tasks-runner/pseudo-terminal");
10
10
  const exit_codes_1 = require("../../utils/exit-codes");
11
+ const task_env_1 = require("../../tasks-runner/task-env");
11
12
  exports.LARGE_BUFFER = 1024 * 1000000;
12
13
  let pseudoTerminal;
13
14
  const childProcesses = new Set();
14
- async function loadEnvVars(path) {
15
+ function loadEnvVarsFile(path, env = {}) {
16
+ (0, task_env_1.unloadDotEnvFile)(path, env);
17
+ const result = (0, task_env_1.loadAndExpandDotEnvFile)(path, env);
18
+ if (result.error) {
19
+ throw result.error;
20
+ }
21
+ }
22
+ function loadEnvVars(path, env = {}) {
15
23
  if (path) {
16
- const result = (await Promise.resolve().then(() => require('dotenv'))).config({ path });
17
- if (result.error) {
18
- throw result.error;
19
- }
24
+ loadEnvVarsFile(path, env);
20
25
  }
21
26
  else {
22
27
  try {
23
- (await Promise.resolve().then(() => require('dotenv'))).config();
28
+ loadEnvVarsFile('.env', env);
24
29
  }
25
30
  catch { }
26
31
  }
@@ -46,9 +51,6 @@ const propKeys = [
46
51
  ];
47
52
  async function default_1(options, context) {
48
53
  registerProcessListener();
49
- if (process.env.NX_LOAD_DOT_ENV_FILES !== 'false') {
50
- await loadEnvVars(options.envFile);
51
- }
52
54
  const normalized = normalizeOptions(options);
53
55
  if (normalized.readyWhenStatus.length && !normalized.parallel) {
54
56
  throw new Error('ERROR: Bad executor config for run-commands - "readyWhen" can only be used when "parallel=true".');
@@ -72,7 +74,7 @@ async function default_1(options, context) {
72
74
  }
73
75
  exports.default = default_1;
74
76
  async function runInParallel(options, context) {
75
- const procs = options.commands.map((c) => createProcess(null, c, options.readyWhenStatus, options.color, calculateCwd(options.cwd, context), options.env ?? {}, true, options.usePty, options.streamOutput, options.tty).then((result) => ({
77
+ const procs = options.commands.map((c) => createProcess(null, c, options.readyWhenStatus, options.color, calculateCwd(options.cwd, context), options.env ?? {}, true, options.usePty, options.streamOutput, options.tty, options.envFile).then((result) => ({
76
78
  result,
77
79
  command: c.command,
78
80
  })));
@@ -162,7 +164,7 @@ async function runSerially(options, context) {
162
164
  pseudoTerminal ??= pseudo_terminal_1.PseudoTerminal.isSupported() ? (0, pseudo_terminal_1.getPseudoTerminal)() : null;
163
165
  let terminalOutput = '';
164
166
  for (const c of options.commands) {
165
- const result = await createProcess(pseudoTerminal, c, [], options.color, calculateCwd(options.cwd, context), options.env ?? {}, false, options.usePty, options.streamOutput, options.tty);
167
+ const result = await createProcess(pseudoTerminal, c, [], options.color, calculateCwd(options.cwd, context), options.processEnv ?? options.env ?? {}, false, options.usePty, options.streamOutput, options.tty, options.envFile);
166
168
  terminalOutput += result.terminalOutput;
167
169
  if (!result.success) {
168
170
  const output = `Warning: command "${c.command}" exited with non-zero status code`;
@@ -175,8 +177,8 @@ async function runSerially(options, context) {
175
177
  }
176
178
  return { success: true, terminalOutput };
177
179
  }
178
- async function createProcess(pseudoTerminal, commandConfig, readyWhenStatus = [], color, cwd, env, isParallel, usePty = true, streamOutput = true, tty) {
179
- env = processEnv(color, cwd, env);
180
+ async function createProcess(pseudoTerminal, commandConfig, readyWhenStatus = [], color, cwd, env, isParallel, usePty = true, streamOutput = true, tty, envFile) {
181
+ env = processEnv(color, cwd, env, envFile);
180
182
  // The rust runCommand is always a tty, so it will not look nice in parallel and if we need prefixes
181
183
  // currently does not work properly in windows
182
184
  if (pseudoTerminal &&
@@ -282,13 +284,16 @@ function calculateCwd(cwd, context) {
282
284
  return cwd;
283
285
  return path.join(context.root, cwd);
284
286
  }
285
- function processEnv(color, cwd, env) {
287
+ function processEnv(color, cwd, env, envFile) {
286
288
  const localEnv = (0, npm_run_path_1.env)({ cwd: cwd ?? process.cwd() });
287
289
  const res = {
288
290
  ...process.env,
289
291
  ...localEnv,
290
292
  ...env,
291
293
  };
294
+ if (process.env.NX_LOAD_DOT_ENV_FILES !== 'false') {
295
+ loadEnvVars(envFile, res);
296
+ }
292
297
  // need to override PATH to make sure we are using the local node_modules
293
298
  if (localEnv.PATH)
294
299
  res.PATH = localEnv.PATH; // UNIX-like
@@ -4,6 +4,7 @@ interface ConnectToNxCloudOptions {
4
4
  installationSource?: string;
5
5
  hideFormatLogs?: boolean;
6
6
  github?: boolean;
7
+ directory?: string;
7
8
  }
8
9
  export declare function connectToNxCloud(tree: Tree, schema: ConnectToNxCloudOptions): Promise<() => void>;
9
10
  export default connectToNxCloud;
@@ -2,12 +2,14 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.connectToNxCloud = void 0;
4
4
  const child_process_1 = require("child_process");
5
- const node_url_1 = require("node:url");
6
5
  const output_1 = require("../../../utils/output");
7
6
  const json_1 = require("../../../generators/utils/json");
8
7
  const nx_json_1 = require("../../../generators/utils/nx-json");
9
8
  const format_changed_files_with_prettier_if_available_1 = require("../../../generators/internal-utils/format-changed-files-with-prettier-if-available");
10
9
  const url_shorten_1 = require("../../utilities/url-shorten");
10
+ const git_utils_1 = require("../../../utils/git-utils");
11
+ const ora = require("ora");
12
+ const open = require("open");
11
13
  function printCloudConnectionDisabledMessage() {
12
14
  output_1.output.error({
13
15
  title: `Connections to Nx Cloud are disabled for this workspace`,
@@ -57,35 +59,59 @@ async function createNxCloudWorkspace(workspaceName, installationSource, nxInitD
57
59
  }
58
60
  return response.data;
59
61
  }
60
- async function printSuccessMessage(url, token, installationSource, github) {
61
- if (process.env.NX_NEW_CLOUD_ONBOARDING !== 'true') {
62
- let origin = 'https://nx.app';
62
+ async function printSuccessMessage(url, token, installationSource, usesGithub, directory) {
63
+ const connectCloudUrl = await (0, url_shorten_1.shortenedCloudUrl)(installationSource, token, usesGithub);
64
+ if (installationSource === 'nx-connect' && usesGithub) {
63
65
  try {
64
- origin = new node_url_1.URL(url).origin;
66
+ const cloudConnectSpinner = ora(`Opening Nx Cloud ${connectCloudUrl} in your browser to connect your workspace.`).start();
67
+ await sleep(2000);
68
+ open(connectCloudUrl);
69
+ cloudConnectSpinner.succeed();
70
+ }
71
+ catch (e) {
72
+ output_1.output.note({
73
+ title: `Your Nx Cloud workspace is ready.`,
74
+ bodyLines: [
75
+ `To claim it, connect it to your Nx Cloud account:`,
76
+ `- Go to the following URL to connect your workspace to Nx Cloud:`,
77
+ '',
78
+ `${connectCloudUrl}`,
79
+ ],
80
+ });
65
81
  }
66
- catch (e) { }
67
- output_1.output.note({
68
- title: `Your Nx Cloud workspace is public`,
69
- bodyLines: [
70
- `To restrict access, connect it to your Nx Cloud account:`,
71
- `- Push your changes`,
72
- `- Login at ${origin} to connect your repository`,
73
- ],
74
- });
75
82
  }
76
83
  else {
77
- const connectCloudUrl = await (0, url_shorten_1.shortenedCloudUrl)(installationSource, token, github);
78
- output_1.output.note({
79
- title: `Your Nx Cloud workspace is ready.`,
80
- bodyLines: [
81
- `To claim it, connect it to your Nx Cloud account:`,
82
- `- Commit and push your changes.`,
83
- `- Create a pull request for the changes.`,
84
- `- Go to the following URL to connect your workspace to Nx Cloud:
85
-
86
- ${connectCloudUrl}`,
87
- ],
88
- });
84
+ if (installationSource === 'create-nx-workspace') {
85
+ output_1.output.note({
86
+ title: `Your Nx Cloud workspace is ready.`,
87
+ bodyLines: [
88
+ `To claim it, connect it to your Nx Cloud account:`,
89
+ `- Push your repository to your git hosting provider.`,
90
+ `- Go to the following URL to connect your workspace to Nx Cloud:`,
91
+ '',
92
+ `${connectCloudUrl}`,
93
+ ],
94
+ });
95
+ (0, git_utils_1.commitChanges)(`feat(nx): Added Nx Cloud token to your nx.json
96
+
97
+ To connect your workspace to Nx Cloud, push your repository
98
+ to your git hosting provider and go to the following URL:
99
+
100
+ ${connectCloudUrl}`, directory);
101
+ }
102
+ else {
103
+ output_1.output.note({
104
+ title: `Your Nx Cloud workspace is ready.`,
105
+ bodyLines: [
106
+ `To claim it, connect it to your Nx Cloud account:`,
107
+ `- Commit and push your changes.`,
108
+ `- Create a pull request for the changes.`,
109
+ `- Go to the following URL to connect your workspace to Nx Cloud:`,
110
+ '',
111
+ `${connectCloudUrl}`,
112
+ ],
113
+ });
114
+ }
89
115
  }
90
116
  }
91
117
  function addNxCloudOptionsToNxJson(tree, nxJson, token) {
@@ -108,14 +134,23 @@ async function connectToNxCloud(tree, schema) {
108
134
  };
109
135
  }
110
136
  else {
111
- // TODO: Change to using loading light client when that is enabled by default
112
- const r = await createNxCloudWorkspace(getRootPackageName(tree), schema.installationSource, getNxInitDate());
113
- addNxCloudOptionsToNxJson(tree, nxJson, r.token);
114
- await (0, format_changed_files_with_prettier_if_available_1.formatChangedFilesWithPrettierIfAvailable)(tree, {
115
- silent: schema.hideFormatLogs,
116
- });
117
- return async () => await printSuccessMessage(r.url, r.token, schema.installationSource, schema.github);
137
+ const usesGithub = await (0, url_shorten_1.repoUsesGithub)(schema.github);
138
+ let responseFromCreateNxCloudWorkspace;
139
+ // do NOT create Nx Cloud token (createNxCloudWorkspace)
140
+ // if user is using github and is running nx-connect
141
+ if (!(usesGithub && schema.installationSource === 'nx-connect')) {
142
+ responseFromCreateNxCloudWorkspace = await createNxCloudWorkspace(getRootPackageName(tree), schema.installationSource, getNxInitDate());
143
+ addNxCloudOptionsToNxJson(tree, nxJson, responseFromCreateNxCloudWorkspace?.token);
144
+ await (0, format_changed_files_with_prettier_if_available_1.formatChangedFilesWithPrettierIfAvailable)(tree, {
145
+ silent: schema.hideFormatLogs,
146
+ });
147
+ }
148
+ const apiUrl = removeTrailingSlash(process.env.NX_CLOUD_API || process.env.NRWL_API || `https://cloud.nx.app`);
149
+ return async () => await printSuccessMessage(responseFromCreateNxCloudWorkspace?.url ?? apiUrl, responseFromCreateNxCloudWorkspace?.token, schema.installationSource, usesGithub, schema.directory);
118
150
  }
119
151
  }
120
152
  exports.connectToNxCloud = connectToNxCloud;
153
+ function sleep(ms) {
154
+ return new Promise((resolve) => setTimeout(resolve, ms));
155
+ }
121
156
  exports.default = connectToNxCloud;
@@ -25,6 +25,11 @@
25
25
  "type": "boolean",
26
26
  "description": "If the user will be using GitHub as their git hosting provider",
27
27
  "default": false
28
+ },
29
+ "directory": {
30
+ "type": "string",
31
+ "description": "The directory where the workspace is located",
32
+ "x-priority": "internal"
28
33
  }
29
34
  },
30
35
  "additionalProperties": false,
@@ -1 +1,2 @@
1
- export declare function shortenedCloudUrl(installationSource: string, accessToken: string, github?: boolean): Promise<string>;
1
+ export declare function shortenedCloudUrl(installationSource: string, accessToken?: string, usesGithub?: boolean): Promise<string>;
2
+ export declare function repoUsesGithub(github?: boolean): Promise<boolean>;
@@ -1,16 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.shortenedCloudUrl = void 0;
3
+ exports.repoUsesGithub = exports.shortenedCloudUrl = void 0;
4
4
  const devkit_exports_1 = require("../../devkit-exports");
5
5
  const git_utils_1 = require("../../utils/git-utils");
6
- async function shortenedCloudUrl(installationSource, accessToken, github) {
6
+ const semver_1 = require("semver");
7
+ async function shortenedCloudUrl(installationSource, accessToken, usesGithub) {
7
8
  const githubSlug = (0, git_utils_1.getGithubSlugOrNull)();
8
9
  const apiUrl = removeTrailingSlash(process.env.NX_CLOUD_API || process.env.NRWL_API || `https://cloud.nx.app`);
9
- const installationSupportsGitHub = await getInstallationSupportsGitHub(apiUrl);
10
- const usesGithub = (githubSlug || github) &&
11
- (apiUrl.includes('cloud.nx.app') ||
12
- apiUrl.includes('eu.nx.app') ||
13
- installationSupportsGitHub);
10
+ const version = await getNxCloudVersion(apiUrl);
11
+ if (version && (0, semver_1.lt)(truncateToSemver(version), '2406.11.5')) {
12
+ return apiUrl;
13
+ }
14
14
  const source = getSource(installationSource);
15
15
  try {
16
16
  const response = await require('axios').post(`${apiUrl}/nx-cloud/onboarding`, {
@@ -27,10 +27,20 @@ async function shortenedCloudUrl(installationSource, accessToken, github) {
27
27
  catch (e) {
28
28
  devkit_exports_1.logger.verbose(`Failed to shorten Nx Cloud URL.
29
29
  ${e}`);
30
- return getURLifShortenFailed(usesGithub, githubSlug, apiUrl, accessToken, source);
30
+ return getURLifShortenFailed(usesGithub, githubSlug, apiUrl, source, accessToken);
31
31
  }
32
32
  }
33
33
  exports.shortenedCloudUrl = shortenedCloudUrl;
34
+ async function repoUsesGithub(github) {
35
+ const githubSlug = (0, git_utils_1.getGithubSlugOrNull)();
36
+ const apiUrl = removeTrailingSlash(process.env.NX_CLOUD_API || process.env.NRWL_API || `https://cloud.nx.app`);
37
+ const installationSupportsGitHub = await getInstallationSupportsGitHub(apiUrl);
38
+ return ((githubSlug || github) &&
39
+ (apiUrl.includes('cloud.nx.app') ||
40
+ apiUrl.includes('eu.nx.app') ||
41
+ installationSupportsGitHub));
42
+ }
43
+ exports.repoUsesGithub = repoUsesGithub;
34
44
  function removeTrailingSlash(apiUrl) {
35
45
  return apiUrl[apiUrl.length - 1] === '/' ? apiUrl.slice(0, -1) : apiUrl;
36
46
  }
@@ -48,13 +58,13 @@ function getSource(installationSource) {
48
58
  return 'other';
49
59
  }
50
60
  }
51
- function getURLifShortenFailed(usesGithub, githubSlug, apiUrl, accessToken, source) {
61
+ function getURLifShortenFailed(usesGithub, githubSlug, apiUrl, source, accessToken) {
52
62
  if (usesGithub) {
53
63
  if (githubSlug) {
54
- return `${apiUrl}/setup/connect-workspace/vcs?provider=GITHUB&selectedRepositoryName=${encodeURIComponent(githubSlug)}&source=${source}`;
64
+ return `${apiUrl}/setup/connect-workspace/github/connect?name=${encodeURIComponent(githubSlug)}&source=${source}`;
55
65
  }
56
66
  else {
57
- return `${apiUrl}/setup/connect-workspace/vcs?provider=GITHUB&source=${source}`;
67
+ return `${apiUrl}/setup/connect-workspace/github/select&source=${source}`;
58
68
  }
59
69
  }
60
70
  return `${apiUrl}/setup/connect-workspace/manual?accessToken=${accessToken}&source=${source}`;
@@ -75,3 +85,29 @@ async function getInstallationSupportsGitHub(apiUrl) {
75
85
  return false;
76
86
  }
77
87
  }
88
+ async function getNxCloudVersion(apiUrl) {
89
+ try {
90
+ const response = await require('axios').get(`${apiUrl}/version`, {
91
+ responseType: 'document',
92
+ });
93
+ const version = extractVersion(response.data);
94
+ if (!version) {
95
+ throw new Error('Failed to extract version from response.');
96
+ }
97
+ return version;
98
+ }
99
+ catch (e) {
100
+ devkit_exports_1.logger.verbose(`Failed to get version of Nx Cloud.
101
+ ${e}`);
102
+ }
103
+ }
104
+ function extractVersion(htmlString) {
105
+ // The pattern assumes 'Version' is inside an h1 tag and the version number is the next span's content
106
+ const regex = /<h1[^>]*>Version<\/h1>\s*<div[^>]*><div[^>]*><div[^>]*><span[^>]*>([^<]+)<\/span>/;
107
+ const match = htmlString.match(regex);
108
+ return match ? match[1].trim() : null;
109
+ }
110
+ function truncateToSemver(versionString) {
111
+ // version may be something like 2406.13.5.hotfix2
112
+ return versionString.split(/[\.-]/).slice(0, 3).join('.');
113
+ }
@@ -5,6 +5,7 @@ const path_1 = require("path");
5
5
  const fs_1 = require("fs");
6
6
  const fileutils_1 = require("../../../utils/fileutils");
7
7
  const package_json_1 = require("../../../utils/package-json");
8
+ const package_json_workspaces_1 = require("../../package-json-workspaces");
8
9
  // TODO: Remove this one day, this should not need to be done.
9
10
  exports.PackageJsonProjectsNextToProjectJsonPlugin = {
10
11
  // Its not a problem if plugins happen to have same name, and this
@@ -27,8 +28,14 @@ exports.PackageJsonProjectsNextToProjectJsonPlugin = {
27
28
  exports.default = exports.PackageJsonProjectsNextToProjectJsonPlugin;
28
29
  function createProjectFromPackageJsonNextToProjectJson(projectJsonPath, workspaceRoot) {
29
30
  const root = (0, path_1.dirname)(projectJsonPath);
30
- const packageJsonPath = (0, path_1.join)(workspaceRoot, root, 'package.json');
31
- if (!(0, fs_1.existsSync)(packageJsonPath)) {
31
+ const relativePackageJsonPath = (0, path_1.join)(root, 'package.json');
32
+ const packageJsonPath = (0, path_1.join)(workspaceRoot, relativePackageJsonPath);
33
+ const readJson = (f) => (0, fileutils_1.readJsonFile)((0, path_1.join)(workspaceRoot, f));
34
+ // Do not create projects for package.json files
35
+ // that are part of the package manager workspaces
36
+ // Those package.json files will be processed later on
37
+ const matcher = (0, package_json_workspaces_1.buildPackageJsonWorkspacesMatcher)(workspaceRoot, readJson);
38
+ if (!(0, fs_1.existsSync)(packageJsonPath) || matcher(relativePackageJsonPath)) {
32
39
  return null;
33
40
  }
34
41
  try {
@@ -17,6 +17,7 @@ export declare function getTargetInfo(target: string, projectJsonTargets: Record
17
17
  [x: string]: any;
18
18
  description?: string;
19
19
  technologies?: string[];
20
+ nonAtomizedTarget?: string;
20
21
  };
21
22
  executor?: undefined;
22
23
  options?: undefined;
@@ -31,6 +32,7 @@ export declare function getTargetInfo(target: string, projectJsonTargets: Record
31
32
  [x: string]: any;
32
33
  description?: string;
33
34
  technologies?: string[];
35
+ nonAtomizedTarget?: string;
34
36
  };
35
37
  command?: undefined;
36
38
  } | {
@@ -44,6 +46,7 @@ export declare function getTargetInfo(target: string, projectJsonTargets: Record
44
46
  [x: string]: any;
45
47
  description?: string;
46
48
  technologies?: string[];
49
+ nonAtomizedTarget?: string;
47
50
  };
48
51
  command?: undefined;
49
52
  } | {
@@ -52,6 +55,7 @@ export declare function getTargetInfo(target: string, projectJsonTargets: Record
52
55
  [x: string]: any;
53
56
  description?: string;
54
57
  technologies?: string[];
58
+ nonAtomizedTarget?: string;
55
59
  };
56
60
  command?: undefined;
57
61
  options?: undefined;
@@ -66,6 +70,7 @@ export declare function getTargetInfo(target: string, projectJsonTargets: Record
66
70
  [x: string]: any;
67
71
  description?: string;
68
72
  technologies?: string[];
73
+ nonAtomizedTarget?: string;
69
74
  };
70
75
  command?: undefined;
71
76
  } | {
@@ -76,7 +76,7 @@ async function loadNxPlugins(plugins, root = workspace_root_1.workspaceRoot) {
76
76
  plugins = await normalizePlugins(plugins, root);
77
77
  const cleanupFunctions = [];
78
78
  for (const plugin of plugins) {
79
- const [loadedPluginPromise, cleanup] = loadingMethod(plugin, root);
79
+ const [loadedPluginPromise, cleanup] = await loadingMethod(plugin, root);
80
80
  result.push(loadedPluginPromise);
81
81
  cleanupFunctions.push(cleanup);
82
82
  }
@@ -1,3 +1,3 @@
1
1
  import { PluginConfiguration } from '../../../config/nx-json';
2
2
  import { LoadedNxPlugin } from '../internal-api';
3
- export declare function loadNxPluginInIsolation(plugin: PluginConfiguration, root?: string): readonly [Promise<LoadedNxPlugin>, () => void];
3
+ export declare function loadNxPluginInIsolation(plugin: PluginConfiguration, root?: string): Promise<readonly [Promise<LoadedNxPlugin>, () => void]>;
@@ -3,25 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.loadNxPluginInIsolation = void 0;
4
4
  const workspace_root_1 = require("../../../utils/workspace-root");
5
5
  const plugin_pool_1 = require("./plugin-pool");
6
- /**
7
- * Used to ensure 1 plugin : 1 worker
8
- */
9
- const remotePluginCache = new Map();
10
- function loadNxPluginInIsolation(plugin, root = workspace_root_1.workspaceRoot) {
11
- const cacheKey = JSON.stringify(plugin);
12
- if (remotePluginCache.has(cacheKey)) {
13
- return remotePluginCache.get(cacheKey);
14
- }
15
- const [loadingPlugin, cleanup] = (0, plugin_pool_1.loadRemoteNxPlugin)(plugin, root);
16
- // We clean up plugin workers when Nx process completes.
17
- const val = [
6
+ async function loadNxPluginInIsolation(plugin, root = workspace_root_1.workspaceRoot) {
7
+ const [loadingPlugin, cleanup] = await (0, plugin_pool_1.loadRemoteNxPlugin)(plugin, root);
8
+ return [
18
9
  loadingPlugin,
19
10
  () => {
20
11
  cleanup();
21
- remotePluginCache.delete(cacheKey);
22
12
  },
23
13
  ];
24
- remotePluginCache.set(cacheKey, val);
25
- return val;
26
14
  }
27
15
  exports.loadNxPluginInIsolation = loadNxPluginInIsolation;