@daiyu-5577/buildsystem 1.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 (50) hide show
  1. package/README.md +485 -0
  2. package/dist/artifact.js +59 -0
  3. package/dist/artifact.js.map +1 -0
  4. package/dist/cli.js +25 -0
  5. package/dist/cli.js.map +1 -0
  6. package/dist/commands/build.js +39 -0
  7. package/dist/commands/build.js.map +1 -0
  8. package/dist/commands/server.js +28 -0
  9. package/dist/commands/server.js.map +1 -0
  10. package/dist/config.js +42 -0
  11. package/dist/config.js.map +1 -0
  12. package/dist/cron.js +163 -0
  13. package/dist/cron.js.map +1 -0
  14. package/dist/crypto.js +40 -0
  15. package/dist/crypto.js.map +1 -0
  16. package/dist/custError.js +10 -0
  17. package/dist/custError.js.map +1 -0
  18. package/dist/database/index.js +64 -0
  19. package/dist/database/index.js.map +1 -0
  20. package/dist/database/types.js +8 -0
  21. package/dist/database/types.js.map +1 -0
  22. package/dist/fsHelpers.js +93 -0
  23. package/dist/fsHelpers.js.map +1 -0
  24. package/dist/git.js +67 -0
  25. package/dist/git.js.map +1 -0
  26. package/dist/logger.js +80 -0
  27. package/dist/logger.js.map +1 -0
  28. package/dist/notifier.js +66 -0
  29. package/dist/notifier.js.map +1 -0
  30. package/dist/pm.js +21 -0
  31. package/dist/pm.js.map +1 -0
  32. package/dist/queue.js +273 -0
  33. package/dist/queue.js.map +1 -0
  34. package/dist/server/index.js +189 -0
  35. package/dist/server/index.js.map +1 -0
  36. package/dist/server/routes.js +395 -0
  37. package/dist/server/routes.js.map +1 -0
  38. package/dist/server/websocket.js +230 -0
  39. package/dist/server/websocket.js.map +1 -0
  40. package/dist/static/web/assets/index-BzSDdMyu.js +304 -0
  41. package/dist/static/web/assets/index-DptBjpyJ.css +1 -0
  42. package/dist/static/web/index.html +13 -0
  43. package/dist/types.js +33 -0
  44. package/dist/types.js.map +1 -0
  45. package/dist/utils.js +66 -0
  46. package/dist/utils.js.map +1 -0
  47. package/dist/web/assets/index-Ds-OtVY9.js +76 -0
  48. package/dist/web/assets/index-F5jE8yX9.css +1 -0
  49. package/dist/web/index.html +13 -0
  50. package/package.json +61 -0
@@ -0,0 +1 @@
1
+ ._modalRoot_1nlw0_1{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:var(--bg-overlay);-webkit-backdrop-filter:blur(24px) saturate(180%);backdrop-filter:blur(24px) saturate(180%);transition:background .3s ease}@keyframes _modal-show_naiks_1{0%{opacity:0;transform:translateY(24px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes _modal-hide_naiks_1{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(16px) scale(.96)}}._modalContainerShow_naiks_21{animation:_modal-show_naiks_1 .4s var(--ease-spring)}._modalContainerHide_naiks_24{pointer-events:none;animation:_modal-hide_naiks_1 .28s var(--ease-smooth) forwards}._closing_naiks_28{animation:_modal-hide_naiks_1 .28s var(--ease-smooth) forwards}.modal-container{background:var(--bg-card);border:1px solid var(--glass-border);border-radius:var(--radius-lg);max-height:85vh;display:flex;flex-direction:column;overflow:hidden;-webkit-backdrop-filter:blur(40px) saturate(180%);backdrop-filter:blur(40px) saturate(180%);box-shadow:0 1px 0 var(--glass-highlight) inset,0 12px 40px #00000073,0 0 0 .5px #ffffff0f}.modal-close-bar{display:flex;justify-content:flex-end;padding:12px 16px 0}.modal-close-bar .close-btn{background:none;padding:4px 10px;font-size:18px;color:var(--text-dim);border-radius:var(--radius-sm);border:none;cursor:pointer;transition:color .2s ease,background .2s ease;font-family:var(--font)}.modal-close-bar .close-btn:hover{color:var(--text);background:var(--glass)}.modal-body{flex:1;overflow:auto;padding:0 24px 24px}@keyframes _toast-show_sls7c_1{0%{opacity:0;transform:translateY(-16px) scale(.92)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes _toast-hide_sls7c_1{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-12px) scale(.94)}}._toastShow_sls7c_21{animation:_toast-show_sls7c_1 .4s var(--ease-spring)}._toastHide_sls7c_24{animation:_toast-hide_sls7c_1 .28s var(--ease-smooth) forwards}._toastRoot_sls7c_27{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99999;pointer-events:none}.toast-container{position:fixed;top:80px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast-item{padding:10px 24px;border-radius:var(--radius);font-size:14px;color:#fff;white-space:nowrap;-webkit-backdrop-filter:blur(40px) saturate(180%);backdrop-filter:blur(40px) saturate(180%);box-shadow:0 1px #ffffff26 inset,0 4px 16px #00000059;text-shadow:0 1px 2px rgba(0,0,0,.2)}.toast-item.toast-success{background:linear-gradient(180deg,#4ADE80 0%,var(--success) 100%)}.toast-item.toast-error{background:linear-gradient(180deg,#FF6B63 0%,var(--danger) 100%)}._userModal_bfbaq_1{padding:32px;text-align:center}._userModal_bfbaq_1 h3{margin-bottom:16px;font-size:18px;color:var(--text)}._userModal_bfbaq_1 .user-avatar-large{width:80px;height:80px;margin:0 auto 16px;border-radius:50%;background:linear-gradient(135deg,var(--primary) 0%,var(--accent) 100%);display:flex;align-items:center;justify-content:center;font-size:32px;font-weight:700;color:#fff;box-shadow:0 4px 12px #0000004d}._userModal_bfbaq_1 .user-info{margin-bottom:16px;text-align:left}._userModal_bfbaq_1 .info-row{display:flex;align-items:center;padding:8px 0;border-bottom:1px solid var(--glass-border)}._userModal_bfbaq_1 .info-row:last-child{border-bottom:none}._userModal_bfbaq_1 .info-row .label{width:80px;color:var(--text-dim);font-size:13px;flex-shrink:0}._userModal_bfbaq_1 .info-row .value{flex:1;color:var(--text);font-size:13px;font-weight:500;display:flex;align-items:center;gap:6px}._userModal_bfbaq_1 .info-row .value.code-id{font-family:var(--font-mono);font-size:12px;word-break:break-all}._userModal_bfbaq_1 .info-row .value.code-id .copy-icon{background:transparent;border:none;cursor:pointer;font-size:14px;padding:2px;opacity:.5;transition:opacity .2s ease;flex-shrink:0}._userModal_bfbaq_1 .info-row .value.code-id .copy-icon:hover{opacity:1}._userModal_bfbaq_1 .info-row .value.role-tag{display:inline-flex;padding:2px 10px;border-radius:6px;font-size:11px;font-weight:700;letter-spacing:.5px}._userModal_bfbaq_1 .info-row .value.role-tag.super{background:#ff453a33;color:var(--danger)}._userModal_bfbaq_1 .info-row .value.role-tag.admin{background:#64d2ff33;color:var(--info)}._userModal_bfbaq_1 .info-row .value.role-tag.user{background:#8e8ea833;color:var(--text-dim)}._userModal_bfbaq_1 .btn-close{width:100%;max-width:200px;margin:0 auto;padding:10px 14px;background:var(--primary);border-radius:var(--radius-sm);font-size:13px;color:#fff;border:none;cursor:pointer}._userModal_bfbaq_1 .btn-close:hover{background:var(--primary-dark)}._select_f48hn_1{position:relative;display:inline-block}@keyframes _select-show_f48hn_1{0%{opacity:0;transform:translateY(-6px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.select-trigger{display:flex;align-items:center;justify-content:space-between;gap:6px;width:100%;min-width:140px;padding:6px 12px;font-size:12px;font-family:var(--font);color:var(--text);background:var(--glass);border:1px solid var(--glass-border);border-radius:14px;cursor:pointer;transition:all .25s ease;box-shadow:0 1px 0 var(--glass-highlight) inset,0 1px 3px #0003;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.select-trigger:hover{background:var(--bg-card-hover);transform:translateY(-1px);box-shadow:0 1px 0 var(--glass-highlight) inset,0 2px 6px #00000040}.select-trigger:active{transform:translateY(0)}.select-trigger-open{background:var(--bg-card-hover);box-shadow:0 1px 0 var(--glass-highlight) inset,0 0 0 2px var(--primary)}.select-trigger-text{flex:1;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select-placeholder{color:var(--text-dim)}.select-arrow{font-size:18px;line-height:1;color:var(--text-dim);transition:transform .25s ease;transform:rotate(-90deg)}.select-arrow-open{transform:rotate(-90deg) rotate(180deg)}.select-dropdown{max-height:240px;overflow-y:auto;border-radius:var(--radius);background:var(--bg-card);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(40px) saturate(180%);backdrop-filter:blur(40px) saturate(180%);box-shadow:0 1px 0 var(--glass-highlight) inset,0 8px 32px #0006;animation:select-show .25s var(--ease-smooth)}.select-option{padding:8px 14px;font-size:12px;color:var(--text);cursor:pointer;transition:all .2s ease}.select-option:not(.select-option-active):hover{background:var(--glass)}.select-option:first-child{border-radius:var(--radius) var(--radius) 0 0}.select-option:last-child{border-radius:0 0 var(--radius) var(--radius)}.select-option-active{background:linear-gradient(180deg,var(--primary-light) 0%,var(--primary) 100%);color:var(--text-bright);font-weight:600;text-shadow:0 1px 2px rgba(0,0,0,.15)}._permissionModal_lkmtn_1{padding:32px;max-height:80vh;overflow:hidden;display:flex;flex-direction:column}._permissionModal_lkmtn_1 h3{color:var(--text);margin-bottom:16px;font-size:17px;font-weight:700;display:flex;align-items:center;gap:8px}._permissionModal_lkmtn_1 h3 .user-count{font-size:12px;font-weight:500;color:var(--text-dim)}._permissionModal_lkmtn_1 .search-bar{margin-bottom:16px}._permissionModal_lkmtn_1 .search-bar input{width:100%;padding:8px 12px;border:1px solid var(--glass-border);border-radius:var(--radius-sm);font-size:13px;background:var(--bg-card);color:var(--text)}._permissionModal_lkmtn_1 .search-bar input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--border-focus)}._permissionModal_lkmtn_1 .user-list{flex:1;overflow-y:auto}._permissionModal_lkmtn_1 .user-list table{width:100%;border-collapse:collapse}._permissionModal_lkmtn_1 .user-list table thead{position:sticky;top:0;background:var(--bg-card);z-index:1}._permissionModal_lkmtn_1 .user-list table thead th{padding:8px 12px;text-align:left;font-size:13px;color:var(--text-dim);font-weight:600;border-bottom:1px solid var(--glass-border)}._permissionModal_lkmtn_1 .user-list table tbody tr{border-bottom:1px solid var(--glass-border);transition:background .2s ease}._permissionModal_lkmtn_1 .user-list table tbody tr.is-current{opacity:.5}._permissionModal_lkmtn_1 .user-list table tbody tr:hover{background:var(--bg-card-hover)}._permissionModal_lkmtn_1 .user-list table tbody tr td{padding:8px 12px;font-size:13px;color:var(--text);vertical-align:middle}._permissionModal_lkmtn_1 .user-list table tbody tr td .user-name{display:block;font-weight:600;font-size:13px;color:var(--text-bright)}._permissionModal_lkmtn_1 .user-list table tbody tr td .user-id{display:block;font-size:11px;color:var(--text-dim);font-family:var(--font-mono);margin-top:2px}._permissionModal_lkmtn_1 .user-list table tbody tr td .role-badge{display:inline-flex;padding:2px 10px;border-radius:6px;font-size:11px;font-weight:700;letter-spacing:.5px}._permissionModal_lkmtn_1 .user-list table tbody tr td .role-badge.super{background:#ff453a33;color:var(--danger)}._permissionModal_lkmtn_1 .user-list table tbody tr td .role-badge.admin{background:#64d2ff33;color:var(--info)}._permissionModal_lkmtn_1 .user-list table tbody tr td .role-badge.user{background:#8e8ea833;color:var(--text-dim)}._permissionModal_lkmtn_1 .user-list .empty{padding:32px;text-align:center;color:var(--text-dim);font-size:13px}._permissionModal_lkmtn_1 .footer{display:flex;justify-content:center;padding-top:30px}._permissionModal_lkmtn_1 .btn-close{padding:10px 32px;width:100%;background:var(--primary);border-radius:var(--radius-sm);font-size:13px;font-weight:600;color:#fff;border:none;cursor:pointer;transition:all .2s ease}._permissionModal_lkmtn_1 .btn-close:hover{opacity:.9}._inviteModal_1gxli_1{padding:32px;max-height:80vh;overflow:hidden;display:flex;flex-direction:column}._inviteModal_1gxli_1 h3{color:var(--text);margin-bottom:12px;font-size:17px;font-weight:700}._inviteModal_1gxli_1 .empty-state{display:flex;flex-direction:column;align-items:center;padding:48px 20px}._inviteModal_1gxli_1 .empty-state .deco{font-size:48px;margin-bottom:16px}._inviteModal_1gxli_1 .empty-state p{color:var(--text-dim);font-size:14px;margin:0 0 16px}._inviteModal_1gxli_1 .empty-state .btn-generate{padding:10px 24px;border-radius:var(--radius-sm);font-size:13px;font-weight:600;background:var(--success);color:#fff;border:none;cursor:pointer;transition:all .25s ease}._inviteModal_1gxli_1 .empty-state .btn-generate:hover:not(:disabled){opacity:.9}._inviteModal_1gxli_1 .empty-state .btn-generate:disabled{opacity:.6;cursor:not-allowed}._inviteModal_1gxli_1 .empty-state .tip{display:block;margin-top:10px;font-size:12px;color:var(--text-dim)}._inviteModal_1gxli_1 .latest-code{display:flex;align-items:center;gap:10px;padding:10px 14px;margin-bottom:4px;border-radius:var(--radius-sm);background:var(--bg-card-hover);border:1px solid var(--success);transition:all .25s ease}._inviteModal_1gxli_1 .latest-code .badge{padding:2px 8px;border-radius:6px;font-size:10px;font-weight:700;color:#fff;background:var(--danger);letter-spacing:.5px;flex-shrink:0}._inviteModal_1gxli_1 .latest-code .status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}._inviteModal_1gxli_1 .latest-code .status-dot.status-0{background:var(--success)}._inviteModal_1gxli_1 .latest-code .status-dot.status-1{background:var(--text-dim)}._inviteModal_1gxli_1 .latest-code .status-dot.status-2{background:var(--danger)}._inviteModal_1gxli_1 .latest-code .status-text{font-size:12px;color:var(--text-dim);flex-shrink:0}._inviteModal_1gxli_1 .latest-code .code-text{flex:1;font-family:var(--font-mono);font-size:14px;font-weight:700;color:var(--primary);word-break:break-all}._inviteModal_1gxli_1 .latest-code .code-time{font-size:11px;color:var(--text-dim);white-space:nowrap}._inviteModal_1gxli_1 .latest-code .copy-btn{padding:4px 10px;border-radius:8px;font-size:11px;font-weight:600;background:var(--success);color:#fff;border:none;cursor:pointer;transition:all .2s ease;flex-shrink:0}._inviteModal_1gxli_1 .latest-code .copy-btn:hover{opacity:.9}._inviteModal_1gxli_1 .code-list{display:flex;flex-direction:column;gap:8px;max-height:360px;overflow-y:auto;margin-bottom:12px}._inviteModal_1gxli_1 .code-item{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:var(--radius-sm);background:var(--glass);border:1px solid var(--glass-border);transition:all .25s ease}._inviteModal_1gxli_1 .code-item:hover{border-color:var(--primary);background:var(--bg-card-hover)}._inviteModal_1gxli_1 .code-item .status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}._inviteModal_1gxli_1 .code-item .status-dot.status-0{background:var(--success)}._inviteModal_1gxli_1 .code-item .status-dot.status-1{background:var(--text-dim)}._inviteModal_1gxli_1 .code-item .status-dot.status-2{background:var(--danger)}._inviteModal_1gxli_1 .code-item .status-text{font-size:12px;color:var(--text-dim);flex-shrink:0}._inviteModal_1gxli_1 .code-item .code-text{flex:1;font-family:var(--font-mono);font-size:14px;font-weight:600;color:var(--text);word-break:break-all}._inviteModal_1gxli_1 .code-item .code-time{font-size:11px;color:var(--text-dim);white-space:nowrap}._inviteModal_1gxli_1 .code-item .copy-btn{padding:4px 10px;border-radius:8px;font-size:11px;font-weight:600;background:transparent;color:var(--primary);border:1px solid var(--glass-border);cursor:pointer;transition:all .2s ease;flex-shrink:0}._inviteModal_1gxli_1 .code-item .copy-btn:hover{background:var(--primary);color:#fff;border-color:var(--primary)}._inviteModal_1gxli_1 .actions{display:flex;gap:12px}._inviteModal_1gxli_1 .actions button{flex:1;padding:10px 14px;border-radius:var(--radius-sm);font-size:13px;font-weight:600;border:none;cursor:pointer;transition:all .25s ease}._inviteModal_1gxli_1 .actions button:disabled{opacity:.6;cursor:not-allowed}._inviteModal_1gxli_1 .actions .btn-generate{background:var(--success);color:#fff}._inviteModal_1gxli_1 .actions .btn-generate:hover:not(:disabled){opacity:.9}._inviteModal_1gxli_1 .actions .btn-close{background:var(--primary);color:#fff}._inviteModal_1gxli_1 .actions .btn-close:hover{opacity:.9}._userAvatar_9xyff_1{position:relative;display:flex;align-items:center}._userAvatar_9xyff_1 .avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--primary) 0%,var(--accent) 100%);color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;cursor:pointer;transition:all .25s ease;box-shadow:0 2px 8px #0000004d,0 1px #fff3 inset;-webkit-user-select:none;user-select:none}._userAvatar_9xyff_1 .avatar:hover{transform:scale(1.08);box-shadow:0 4px 12px #0006,0 1px #ffffff40 inset}._userAvatar_9xyff_1 .avatar:active{transform:scale(1.02)}._userAvatar_9xyff_1 .user-dropdown{background:var(--bg-card);border:1px solid var(--glass-border);border-radius:var(--radius);box-shadow:0 8px 24px #0006;-webkit-backdrop-filter:blur(40px) saturate(180%);backdrop-filter:blur(40px) saturate(180%);overflow:hidden;animation:fadeIn .2s var(--ease-smooth);padding:8px}._userAvatar_9xyff_1 .user-dropdown-item{padding:8px 14px;font-size:13px;color:var(--text);cursor:pointer;transition:all .2s ease;border-radius:var(--radius-sm);font-weight:600;margin-bottom:4px}._userAvatar_9xyff_1 .user-dropdown-item:last-child{margin-bottom:0}._userAvatar_9xyff_1 .user-dropdown-item:hover{background:var(--bg-card-hover);transform:translate(2px)}._userAvatar_9xyff_1 .user-dropdown-item.logout{color:var(--danger);margin-top:4px;border-top:1px solid var(--glass-border);padding-top:12px}._home_8h37b_1{height:100vh;display:flex;flex-direction:column;padding:12px;gap:8px;box-sizing:border-box}._home_8h37b_1 .toolbar{width:100%;position:relative;display:flex;align-items:center;justify-content:center;padding:0 60px 0 10px;border-radius:var(--radius);background:var(--bg-card);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(40px) saturate(180%);backdrop-filter:blur(40px) saturate(180%);flex-shrink:0;box-shadow:0 1px 0 var(--glass-highlight) inset;transition:background .3s ease}._home_8h37b_1 .toolbar .opts{max-width:100%;padding:6px 0;gap:8px;border-radius:var(--radius);display:flex;align-items:center;overflow:auto hidden}._home_8h37b_1 .toolbar-user{position:absolute;top:50%;transform:translateY(-50%);right:12px}._home_8h37b_1 .pending-tasks-bar{width:100%;border-radius:var(--radius);background:var(--bg-card);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(40px) saturate(180%);backdrop-filter:blur(40px) saturate(180%);box-shadow:0 1px 0 var(--glass-highlight) inset;flex-shrink:0;padding:6px 10px;display:flex;align-items:center;gap:10px}._home_8h37b_1 .pending-label{font-size:12px;color:var(--text-dim);font-weight:600;white-space:nowrap;flex-shrink:0}._home_8h37b_1 .pending-scroll{display:flex;gap:8px;overflow-x:auto;flex:1;scrollbar-width:thin}._home_8h37b_1 .pending-scroll::-webkit-scrollbar{height:4px}._home_8h37b_1 .pending-scroll::-webkit-scrollbar-thumb{background:var(--glass-border);border-radius:2px}._home_8h37b_1 .pending-item{display:flex;align-items:center;gap:6px;padding:4px 10px;border-radius:12px;background:var(--glass);border:1px solid var(--glass-border);font-size:11px;white-space:nowrap;flex-shrink:0;transition:all .2s ease}._home_8h37b_1 .pending-item:hover{background:var(--bg-card-hover)}._home_8h37b_1 .pending-taskid{color:var(--primary-light);font-family:var(--font-mono);max-width:120px;overflow:hidden;text-overflow:ellipsis}._home_8h37b_1 .pending-path{color:var(--accent);font-weight:500}._home_8h37b_1 .pending-branch{color:var(--success)}._home_8h37b_1 .pending-cancel-btn{padding:2px 8px;font-size:10px;border-radius:8px;background:linear-gradient(180deg,#FF6B63 0%,var(--danger) 100%);color:#fff;border:none;cursor:pointer;font-family:var(--font);transition:all .2s ease}._home_8h37b_1 .pending-cancel-btn:hover{opacity:.9;transform:scale(1.05)}._home_8h37b_1 .pending-cancel-btn:active{transform:scale(.98)}._home_8h37b_1 .tool-btn{padding:6px 18px;font-size:12px;border-radius:20px;white-space:nowrap;font-weight:600;letter-spacing:.3px;background:linear-gradient(180deg,var(--primary-light) 0%,var(--primary) 100%);color:var(--text-bright);border:none;cursor:pointer;transition:all .25s ease;font-family:var(--font);box-shadow:0 1px #ffffff26 inset,0 2px 4px #0000004d;text-shadow:0 1px 2px rgba(0,0,0,.15)}._home_8h37b_1 .tool-btn:hover{opacity:.92;transform:translateY(-1px);box-shadow:0 1px #fff3 inset,0 4px 10px #00000059}._home_8h37b_1 .tool-btn:active{transform:translateY(0);box-shadow:0 0 #fff0 inset,0 1px 2px #0000004d}._home_8h37b_1 .build-panel{flex:2;display:flex;flex-direction:column;overflow:hidden;border-radius:var(--radius);background:var(--bg-card);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(40px) saturate(180%);backdrop-filter:blur(40px) saturate(180%);box-shadow:0 1px 0 var(--glass-highlight) inset,var(--shadow-sm)}._home_8h37b_1 .panel-title{padding:10px 14px 6px;font-size:13px;font-weight:700;color:var(--text-dim);letter-spacing:.8px;flex-shrink:0}._home_8h37b_1 .panel-body{flex:1;position:relative;overflow:hidden}._home_8h37b_1 .scroll-area{height:100%;overflow-y:auto;padding:6px 10px;display:flex;flex-direction:column;gap:4px}._home_8h37b_1 .unread-badge{position:absolute;bottom:10px;right:10px;padding:4px 10px;border-radius:12px;font-size:12px;background:var(--success);color:#fff;cursor:pointer;font-weight:600;box-shadow:0 1px #fff3 inset,var(--shadow-sm);z-index:5;transition:transform .2s ease}._home_8h37b_1 .unread-badge:hover{transform:scale(1.05)}._home_8h37b_1 .build-card{flex-shrink:0;width:100%;margin-bottom:8px;border-radius:var(--radius-sm);background:var(--glass);border:1px solid var(--glass-border);overflow:hidden;animation:fadeIn .35s var(--ease-smooth);transition:background .25s ease,box-shadow .25s ease}._home_8h37b_1 .build-card:hover{background:var(--bg-card-hover)}._home_8h37b_1 .build-card-header{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-bottom:1px solid var(--glass-border);background:#ffffff05;font-size:12px}._home_8h37b_1 .build-card-header .name{color:var(--success);font-weight:600}._home_8h37b_1 .build-card-header .branch{color:var(--primary-light);font-weight:600}._home_8h37b_1 .build-card-header .sep{margin:0 4px;color:var(--text-dim)}._home_8h37b_1 .build-card-header .time{font-size:11px;color:var(--text-dim)}._home_8h37b_1 .build-card-body{padding:8px 12px}._home_8h37b_1 .build-card-body .info-row{display:flex;flex-direction:column;gap:2px;font-size:12px;color:var(--text-dim)}._home_8h37b_1 .build-card-body .info-row a{color:var(--info)}._home_8h37b_1 .build-card-body .btn-cancel{margin-top:6px;padding:3px 10px;font-size:11px;border-radius:8px;background:linear-gradient(180deg,#FF6B63 0%,var(--danger) 100%);color:#fff;border:none;cursor:pointer;font-family:var(--font);transition:all .2s ease;box-shadow:0 1px #ffffff1f inset,0 1px 3px #00000040}._home_8h37b_1 .build-card-body .btn-cancel:hover{opacity:.92;transform:translateY(-1px)}._home_8h37b_1 .build-card-body .btn-cancel:active{transform:translateY(0)}._home_8h37b_1 .build-card-body .build-log{width:100%;padding:8px 10px;margin-top:8px;background:#00000059;color:#ccc;border-radius:8px;font-size:11px;white-space:break-spaces;max-height:250px;overflow-y:auto;word-break:break-all;line-height:1.5;border:1px solid rgba(255,255,255,.04);margin-bottom:0;font-family:var(--font-mono)}._home_8h37b_1 .build-card-body .status-tag{display:inline-block;margin-top:6px;padding:3px 10px;border-radius:8px;font-size:11px;font-weight:600}._home_8h37b_1 .build-card-body .status-tag.status-1{background:var(--info);color:#000;box-shadow:0 1px #ffffff26 inset}._home_8h37b_1 .build-card-body .status-tag.status-2{background:var(--success);color:#fff;box-shadow:0 1px #ffffff26 inset}._home_8h37b_1 .build-card-body .status-tag.status-3{background:var(--danger);color:#fff;box-shadow:0 1px #ffffff26 inset}._home_8h37b_1 .chat-panel{flex:3;display:flex;flex-direction:column;overflow:hidden;border-radius:var(--radius);background:var(--bg-card);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(40px) saturate(180%);backdrop-filter:blur(40px) saturate(180%);box-shadow:0 1px 0 var(--glass-highlight) inset,var(--shadow-sm)}._home_8h37b_1 .chat-scroll{height:100%;overflow-y:auto;padding:6px 10px;display:flex;flex-direction:column;align-items:flex-start}._home_8h37b_1 .chat-bubble{display:flex;flex-direction:column;margin-bottom:10px;max-width:75%;animation:fadeIn .3s var(--ease-smooth)}._home_8h37b_1 .chat-bubble.self{align-self:flex-end;align-items:flex-end}._home_8h37b_1 .chat-bubble .bubble-header{display:flex;align-items:center;gap:6px;margin-bottom:3px}._home_8h37b_1 .chat-bubble .bubble-header .name{font-size:12px;font-weight:600}._home_8h37b_1 .chat-bubble .bubble-header .name-other{color:var(--primary-light)}._home_8h37b_1 .chat-bubble .bubble-header .name-self{color:var(--accent)}._home_8h37b_1 .chat-bubble .bubble-header .time{font-size:10px;color:var(--text-dim)}._home_8h37b_1 .chat-bubble .bubble-text{padding:8px 14px;white-space:break-spaces;word-break:break-word;font-size:13px;line-height:1.5;margin:0;font-family:var(--font)}._home_8h37b_1 .chat-bubble .bubble-text-other{border-radius:18px 18px 18px 4px;background:var(--glass);color:var(--text);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:0 1px 0 var(--glass-highlight) inset}._home_8h37b_1 .chat-bubble .bubble-text-self{border-radius:18px 18px 4px;background:linear-gradient(180deg,var(--primary-light) 0%,var(--primary) 100%);color:#fff;border:none;box-shadow:0 1px #ffffff26 inset,0 2px 6px #00000040;text-shadow:0 1px 2px rgba(0,0,0,.15)}._home_8h37b_1 .chat-bubble .bubble-files{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}._home_8h37b_1 .chat-bubble .bubble-files img,._home_8h37b_1 .chat-bubble .bubble-files video{width:100px;height:100px;border-radius:10px;object-fit:cover;background:var(--bg-card);cursor:pointer;object-fit:contain;transition:transform .25s ease,box-shadow .25s ease}._home_8h37b_1 .chat-bubble .bubble-files img:hover,._home_8h37b_1 .chat-bubble .bubble-files video:hover{transform:scale(1.04);box-shadow:0 4px 16px #0006}._home_8h37b_1 .command-bar{display:flex;align-items:center;gap:6px;padding:6px 10px;border-top:1px solid var(--glass-border);flex-shrink:0}._home_8h37b_1 .command-bar .cmd-btn{padding:4px 12px;font-size:11px;border-radius:14px;border:none;color:var(--text-bright);cursor:pointer;font-family:var(--font);font-weight:500;transition:all .25s ease;box-shadow:0 1px #ffffff1f inset,0 1px 3px #00000040}._home_8h37b_1 .command-bar .cmd-btn:hover{opacity:.92;transform:translateY(-1px)}._home_8h37b_1 .command-bar .cmd-btn:active{transform:translateY(0)}._home_8h37b_1 .command-bar .cmd-build{background:linear-gradient(180deg,var(--primary-light) 0%,var(--primary-dark) 100%)}._home_8h37b_1 .command-bar .cmd-img{background:linear-gradient(180deg,#4ADE80 0%,var(--success) 100%);position:relative}._home_8h37b_1 .command-bar .file-input-hidden{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}._home_8h37b_1 .input-area{display:flex;align-items:center;gap:8px;padding:6px 10px 10px;border-top:1px solid var(--glass-border);flex-shrink:0}._home_8h37b_1 .input-area textarea{flex:1;resize:none;min-height:40px;max-height:100px;padding:8px 12px;border-radius:var(--radius-sm);background:var(--bg-input);border:1px solid var(--border);color:var(--text);font-size:13px;line-height:1.5;outline:none;font-family:var(--font);transition:border-color .25s ease,box-shadow .25s ease}._home_8h37b_1 .input-area textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--border-focus)}._home_8h37b_1 .input-area .btn-send{width:80px;height:40px;display:flex;align-items:center;justify-content:center;font-size:12px;text-align:center;line-height:1.3}@media screen and (min-width:1000px){._home_8h37b_1{flex-direction:row;flex-wrap:wrap;padding:20px 60px 100px;align-content:flex-start}._home_8h37b_1 .toolbar{width:100%;margin-bottom:8px}._home_8h37b_1 .build-panel{flex:2;height:100%;margin-right:20px}._home_8h37b_1 .chat-panel{flex:3;height:100%}}._buildModal_1mpfv_1 h3{color:var(--text);margin-bottom:16px;font-size:17px;font-weight:700}._buildModal_1mpfv_1 label{display:block;font-size:13px;color:var(--text-dim);margin-bottom:6px}._buildModal_1mpfv_1 label .select-count{float:right;font-size:12px;color:var(--primary-light);font-weight:600}._buildModal_1mpfv_1 .branch-input,._buildModal_1mpfv_1 .pkg-search-input{width:100%;margin-bottom:12px;padding:8px 12px;border:1px solid var(--glass-border);border-radius:var(--radius-sm);font-size:13px;background:var(--bg-card);color:var(--text)}._buildModal_1mpfv_1 .branch-input:focus,._buildModal_1mpfv_1 .pkg-search-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--border-focus)}._buildModal_1mpfv_1 .header-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}._buildModal_1mpfv_1 .select-all-btn,._buildModal_1mpfv_1 .refresh-pkg-btn{padding:4px 12px;border-radius:8px;font-size:12px;font-weight:600;color:var(--primary-light);cursor:pointer;transition:all .2s ease;background:transparent;border:1px solid var(--glass-border)}._buildModal_1mpfv_1 .select-all-btn:hover:not(.is-refreshing),._buildModal_1mpfv_1 .refresh-pkg-btn:hover:not(.is-refreshing){background:var(--primary);color:#fff;border-color:var(--primary)}._buildModal_1mpfv_1 .refresh-pkg-btn.is-refreshing{opacity:.6;cursor:not-allowed}._buildModal_1mpfv_1 .pkg-grid{display:flex;flex-wrap:wrap;gap:8px;max-height:300px;overflow-y:auto;margin-bottom:20px}._buildModal_1mpfv_1 .pkg-item{padding:6px 16px;border-radius:20px;font-size:13px;cursor:pointer;font-weight:600;transition:all .25s ease;border:1px solid var(--glass-border);background:var(--glass);color:var(--text)}._buildModal_1mpfv_1 .pkg-item.active{background:linear-gradient(180deg,var(--primary-light) 0%,var(--primary) 100%);color:#fff;border-color:transparent;box-shadow:0 1px #fff3 inset,0 2px 4px #00000040;text-shadow:0 1px 2px rgba(0,0,0,.15)}._buildModal_1mpfv_1 .pkg-item:hover:not(.active){background:var(--bg-card-hover)}._buildModal_1mpfv_1 .btn-build{width:100%;padding:10px;font-size:15px;font-weight:700;border-radius:var(--radius-sm)}._logModal_eochr_1 h3{color:var(--text);margin-bottom:12px;font-size:17px;font-weight:700}._logModal_eochr_1 .tabs{display:flex;gap:4px;padding:3px;border-radius:var(--radius-sm);background:var(--glass);border:1px solid var(--glass-border);margin-bottom:12px}._logModal_eochr_1 .tab-item{flex:1;padding:8px 16px;border-radius:8px;text-align:center;font-size:13px;cursor:pointer;font-weight:600;background:transparent;color:var(--text-dim);transition:all .25s ease}._logModal_eochr_1 .tab-item.active{background:linear-gradient(180deg,var(--primary-light) 0%,var(--primary) 100%);color:#fff;box-shadow:0 1px #fff3 inset,0 1px 3px #00000040;text-shadow:0 1px 2px rgba(0,0,0,.15)}._logModal_eochr_1 .log-list{display:flex;flex-direction:column;gap:6px;max-height:400px;overflow-y:auto}._logModal_eochr_1 .log-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 14px;border-radius:var(--radius-sm);background:var(--glass);color:var(--text);font-size:13px;word-break:break-all;text-decoration:none;border:1px solid var(--glass-border);transition:all .25s ease}._logModal_eochr_1 .log-item .log-name{flex:1;min-width:0}._logModal_eochr_1 .log-item .log-link-icon{flex-shrink:0;font-size:12px;color:var(--text-dim);opacity:0;transition:opacity .2s ease}._logModal_eochr_1 .log-item:hover{border-color:var(--primary);background:var(--bg-card-hover)}._logModal_eochr_1 .log-item:hover .log-link-icon{opacity:1}._logModal_eochr_1 .empty{color:var(--text-dim);text-align:center;padding:20px}._listModal_1td0z_1 h3{color:var(--text);margin-bottom:12px;font-size:17px;font-weight:700}._listModal_1td0z_1 .list-items{display:flex;flex-direction:column;gap:6px}._listModal_1td0z_1 .list-item{padding:10px 14px;border-radius:var(--radius-sm);background:var(--glass);border:1px solid var(--glass-border);cursor:pointer;font-size:13px;font-weight:600;word-break:break-all;color:var(--text);transition:all .25s ease;display:flex;align-items:center;gap:8px}._listModal_1td0z_1 .list-item:hover{border-color:var(--primary);background:var(--bg-card-hover);transform:translate(2px)}._listModal_1td0z_1 .list-item .folder-icon{font-size:14px;flex-shrink:0}._listModal_1td0z_1 .list-item .branch-master{padding:2px 8px;border-radius:6px;font-size:11px;font-weight:700;color:#fff;background:var(--danger);letter-spacing:.5px;flex-shrink:0}._listModal_1td0z_1 .list-item .branch-other{padding:2px 8px;border-radius:6px;font-size:11px;font-weight:700;color:#fff;background:var(--success);letter-spacing:.5px;flex-shrink:0}._listModal_1td0z_1 .list-item .sep{margin:0 6px;color:var(--text-dim);flex-shrink:0}._listModal_1td0z_1 .empty{color:var(--text-dim);text-align:center;padding:20px}._login_qbk6z_1{height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);position:relative;overflow:hidden}._login_qbk6z_1:before{content:"";position:absolute;top:45%;left:50%;width:600px;height:600px;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(10,132,255,.06) 0%,rgba(94,92,230,.03) 40%,transparent 70%);pointer-events:none}@keyframes _gradientShift_qbk6z_1{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}._login_qbk6z_1 .login-card{width:min(400px,90vw);padding:32px 28px;border-radius:var(--radius-lg);background:var(--bg-card);border:1px solid var(--glass-border);box-shadow:0 1px 0 var(--glass-highlight) inset,var(--shadow);-webkit-backdrop-filter:blur(40px) saturate(180%);backdrop-filter:blur(40px) saturate(180%);animation:slideUp .45s var(--ease-smooth);position:relative;z-index:1}._login_qbk6z_1 .login-logo{text-align:center;margin-bottom:24px}._login_qbk6z_1 .login-logo .icon{width:48px;height:48px;border-radius:14px;background:linear-gradient(135deg,var(--primary),var(--accent));display:inline-flex;align-items:center;justify-content:center;font-size:22px;font-weight:900;color:#fff;margin-bottom:12px;box-shadow:0 1px #fff3 inset,0 4px 12px #0a84ff40}._login_qbk6z_1 .login-logo h1{font-size:20px;font-weight:700;color:var(--text-bright);margin:0}._login_qbk6z_1 .login-logo p{font-size:13px;color:var(--text-dim);margin-top:4px}._login_qbk6z_1 .tab-bar{display:flex;gap:4px;padding:3px;border-radius:24px;background:var(--glass);border:1px solid var(--glass-border);margin-bottom:20px}._login_qbk6z_1 .tab-item{flex:1;padding:8px 0;text-align:center;border-radius:20px;cursor:pointer;font-weight:600;font-size:14px;transition:all .3s var(--ease-smooth);color:var(--text-dim)}._login_qbk6z_1 .tab-item.active{background:linear-gradient(180deg,var(--primary-light) 0%,var(--primary) 100%);color:#fff;box-shadow:0 1px #fff3 inset,0 2px 6px #00000040;text-shadow:0 1px 2px rgba(0,0,0,.15)}._login_qbk6z_1 .form{display:flex;flex-direction:column;gap:14px}._login_qbk6z_1 .form .field label{display:block;font-size:13px;color:var(--text-dim);margin-bottom:4px}._login_qbk6z_1 .form .field input{width:100%}._login_qbk6z_1 .form .btn-submit{width:100%;padding:10px;font-size:15px;font-weight:700;border-radius:24px;background:linear-gradient(180deg,var(--primary-light) 0%,var(--primary) 100%);margin-top:8px;color:var(--text-bright);border:none;cursor:pointer;font-family:var(--font);transition:all .25s ease;box-shadow:0 1px #fff3 inset,0 2px 8px #0000004d;text-shadow:0 1px 2px rgba(0,0,0,.15)}._login_qbk6z_1 .form .btn-submit:hover{opacity:.92;transform:translateY(-1px);box-shadow:0 1px #ffffff40 inset,0 4px 14px #00000059}._login_qbk6z_1 .form .btn-submit:active{transform:translateY(0);box-shadow:0 0 #fff0 inset,0 1px 3px #0000004d}._login_qbk6z_1 .form .switch-hint{text-align:center;font-size:13px;color:var(--text-dim)}._login_qbk6z_1 .form .switch-hint a{color:var(--primary-light);cursor:pointer;font-weight:600;text-decoration:none;transition:color .2s ease}._login_qbk6z_1 .form .switch-hint a:hover{text-decoration:underline}:root{--primary: #0A84FF;--primary-light: #409CFF;--primary-dark: #0070E0;--accent: #5E5CE6;--danger: #FF453A;--success: #30D158;--warning: #FFD60A;--info: #64D2FF;--bg: #0a0a12;--bg-card: rgba(30, 30, 50, .45);--bg-card-hover: rgba(40, 40, 65, .55);--bg-input: rgba(255, 255, 255, .05);--bg-overlay: rgba(0, 0, 0, .45);--glass: rgba(255, 255, 255, .06);--glass-border: rgba(255, 255, 255, .12);--glass-highlight: rgba(255, 255, 255, .08);--border: rgba(255, 255, 255, .1);--border-focus: rgba(10, 132, 255, .45);--text: #f0f0f8;--text-dim: #8e8ea8;--text-bright: #ffffff;--radius: 14px;--radius-sm: 10px;--radius-lg: 20px;--shadow: 0 8px 32px rgba(0, 0, 0, .4), 0 0 0 .5px rgba(255,255,255,.06);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .3);--transition: all .25s cubic-bezier(.4, 0, .2, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--ease-smooth: cubic-bezier(.4, 0, .2, 1);--font: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Helvetica Neue", sans-serif;--font-mono: "SF Mono", "Menlo", "Consolas", monospace}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;font-family:var(--font);background:var(--bg);color:var(--text);line-height:1.5;-webkit-font-smoothing:antialiased}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff14;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#ffffff29}a{color:var(--primary-light);text-decoration:none}a:hover{text-decoration:underline}input,textarea,select{background:var(--bg-input);border:1px solid var(--border);color:var(--text);border-radius:var(--radius-sm);padding:8px 12px;font-family:var(--font);font-size:13px;outline:none;transition:border-color .25s ease,box-shadow .25s ease}input:focus,textarea:focus,select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--border-focus)}button{background:linear-gradient(180deg,var(--primary-light) 0%,var(--primary) 100%);color:var(--text-bright);border:none;border-radius:var(--radius-sm);padding:8px 20px;font-family:var(--font);font-size:13px;cursor:pointer;transition:all .2s ease;font-weight:500;box-shadow:0 1px #ffffff26 inset,0 2px 4px #0000004d;text-shadow:0 1px 2px rgba(0,0,0,.2)}button:hover{background:linear-gradient(180deg,lighten(#409CFF,4%) 0%,lighten(#0A84FF,4%) 100%);transform:translateY(-1px);box-shadow:0 1px #fff3 inset,0 4px 12px #00000059}button:active{transform:translateY(0);box-shadow:0 0 #fff0 inset,0 1px 2px #0000004d}button:disabled{opacity:.4;cursor:not-allowed;transform:none}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(24px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}
@@ -0,0 +1,13 @@
1
+ <!DOCTYPE html>
2
+ <html lang="zh-CN">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>Build System</title>
7
+ <script type="module" crossorigin src="/buildsystem/assets/index-Ds-OtVY9.js"></script>
8
+ <link rel="stylesheet" crossorigin href="/buildsystem/assets/index-F5jE8yX9.css">
9
+ </head>
10
+ <body>
11
+ <div id="root"></div>
12
+ </body>
13
+ </html>
package/package.json ADDED
@@ -0,0 +1,61 @@
1
+ {
2
+ "name": "@daiyu-5577/buildsystem",
3
+ "version": "1.0.0",
4
+ "description": "CLI tool to build projects based on git changes",
5
+ "main": "dist/cli.js",
6
+ "type": "module",
7
+ "bin": {
8
+ "buildSystem": "dist/cli.js"
9
+ },
10
+ "scripts": {
11
+ "build": "tsc && cd web && npm run build",
12
+ "dev:build": "cross-env NODE_ENV=development nodemon --signal SIGHUP -e .ts --exec node --loader ts-node/esm src/cli.ts build -b dev -p . -n http://localhost:3000/api/notify",
13
+ "dev:server": "cross-env NODE_ENV=development nodemon --signal SIGHUP -e .ts --exec node --loader ts-node/esm src/cli.ts server --website-root ./web --website-path /web",
14
+ "dev:web": "cd web && npm run dev",
15
+ "build:web": "cd web && npm run build",
16
+ "cli": "node ./dist/cli.js",
17
+ "server": "node ./dist/server/index.js",
18
+ "release": "release-it",
19
+ "xpublish": "npm publish --access public"
20
+ },
21
+ "author": "daiyu",
22
+ "license": "MIT",
23
+ "engines": {
24
+ "node": ">=18"
25
+ },
26
+ "files": [
27
+ "dist/**/*",
28
+ "package.json"
29
+ ],
30
+ "dependencies": {
31
+ "axios": "^1.7.9",
32
+ "chalk": "^5.4.1",
33
+ "commander": "^13.0.0",
34
+ "cors": "^2.8.5",
35
+ "cron": "^4.1.0",
36
+ "dayjs": "^1.11.13",
37
+ "dotenv": "^17.4.2",
38
+ "express": "^5.1.0",
39
+ "fs-extra": "^11.3.0",
40
+ "glob": "^11.0.1",
41
+ "release-it": "^20.0.1",
42
+ "socket.io": "^4.8.1",
43
+ "swagger-jsdoc": "^6.2.8",
44
+ "swagger-ui-express": "^5.0.1",
45
+ "winston": "^3.17.0",
46
+ "winston-daily-rotate-file": "^5.0.0"
47
+ },
48
+ "devDependencies": {
49
+ "@types/cors": "^2.8.17",
50
+ "@types/express": "^5.0.0",
51
+ "@types/fs-extra": "^11.0.4",
52
+ "@types/node": "^22.10.7",
53
+ "@types/swagger-jsdoc": "^6.0.4",
54
+ "@types/swagger-ui-express": "^4.1.8",
55
+ "cross-env": "^7.0.3",
56
+ "esbuild": "^0.24.2",
57
+ "nodemon": "^3.1.9",
58
+ "ts-node": "^10.9.2",
59
+ "typescript": "^5.7.3"
60
+ }
61
+ }