-
Notifications
You must be signed in to change notification settings - Fork 0
/
.eslintcache
1 lines (1 loc) · 222 KB
/
.eslintcache
1
[{"/home/xxx/Project/Reactjs_Lab/tailwind_admin/src/index.tsx":"1","/home/xxx/Project/Reactjs_Lab/tailwind_admin/src/reportWebVitals.ts":"2","/home/xxx/Project/Reactjs_Lab/tailwind_admin/src/App.tsx":"3","/home/xxx/Project/Reactjs_Lab/tailwind_admin/src/components/organism/Navbar.tsx":"4","/home/xxx/Project/Reactjs_Lab/tailwind_admin/src/pages/PipelinesPage.tsx":"5","/home/xxx/Project/Reactjs_Lab/tailwind_admin/src/pages/HomePage.tsx":"6","/home/xxx/Project/Reactjs_Lab/tailwind_admin/src/pages/EnvironmentsPage.tsx":"7","/home/xxx/Project/Reactjs_Lab/tailwind_admin/src/components/organism/Content.tsx":"8","/home/xxx/Project/Reactjs_Lab/tailwind_admin/src/components/organism/PageTitle.tsx":"9","/home/xxx/Project/Reactjs_Lab/tailwind_admin/src/components/organism/CardContent.tsx":"10","/home/xxx/Project/Reactjs_Lab/tailwind_admin/src/components/molecule/pipeline/TableStatusIndicator.tsx":"11","/home/xxx/Project/Reactjs_Lab/tailwind_admin/src/components/molecule/pipeline/TableRunningStatus.tsx":"12","/home/xxx/Project/Reactjs_Lab/tailwind_admin/src/components/molecule/pipeline/TableAvatarUserAccess.tsx":"13","/home/xxx/Project/Reactjs_Lab/tailwind_admin/src/components/molecule/pipeline/TableLabelPipeline.tsx":"14","/home/xxx/Project/Reactjs_Lab/tailwind_admin/src/components/molecule/pipeline/FilterStatusIndicator.tsx":"15","/home/xxx/Project/Reactjs_Lab/tailwind_admin/src/faker/DataPipelines.ts":"16","/home/xxx/Project/Reactjs_Lab/tailwind_admin/src/components/atoms/buttons/BtnExport.tsx":"17","/home/xxx/Project/Reactjs_Lab/tailwind_admin/src/components/atoms/buttons/BtnCreate.tsx":"18","/home/xxx/Project/Reactjs_Lab/tailwind_admin/src/components/atoms/icons/BxPlusIcon.tsx":"19","/home/xxx/Project/Reactjs_Lab/tailwind_admin/src/components/atoms/icons/BxXIcon.tsx":"20","/home/xxx/Project/Reactjs_Lab/tailwind_admin/src/components/atoms/icons/BxCheckIcon.tsx":"21","/home/xxx/Project/Reactjs_Lab/tailwind_admin/src/components/atoms/icons/BxShareAltIcon.tsx":"22","/home/xxx/Project/Reactjs_Lab/tailwind_admin/src/components/atoms/icons/BxLayerIcon.tsx":"23","/home/xxx/Project/Reactjs_Lab/tailwind_admin/src/components/atoms/icons/BxHomeAltIcon.tsx":"24","/home/xxx/Project/Reactjs_Lab/tailwind_admin/src/components/atoms/icons/BxCogIcon.tsx":"25","/home/xxx/Project/Reactjs_Lab/tailwind_admin/src/components/atoms/icons/BxExportIcon.tsx":"26","/home/xxx/Project/Reactjs_Lab/tailwind_admin/src/pages/PipelineDetailPage.tsx":"27","/home/xxx/Project/Reactjs_Lab/tailwind_admin/src/components/molecule/reacflow/PipelineFlow.tsx":"28","/home/xxx/Project/Reactjs_Lab/tailwind_admin/src/components/atoms/nodes/NodeStart.tsx":"29","/home/xxx/Project/Project_OpenSource/nosleep/ui/src/index.tsx":"30","/home/xxx/Project/Project_OpenSource/nosleep/ui/src/reportWebVitals.ts":"31","/home/xxx/Project/Project_OpenSource/nosleep/ui/src/App.tsx":"32","/home/xxx/Project/Project_OpenSource/nosleep/ui/src/pages/EnvironmentsPage.tsx":"33","/home/xxx/Project/Project_OpenSource/nosleep/ui/src/pages/HomePage.tsx":"34","/home/xxx/Project/Project_OpenSource/nosleep/ui/src/pages/PipelineDetailPage.tsx":"35","/home/xxx/Project/Project_OpenSource/nosleep/ui/src/pages/PipelinesPage.tsx":"36","/home/xxx/Project/Project_OpenSource/nosleep/ui/src/components/organism/Navbar.tsx":"37","/home/xxx/Project/Project_OpenSource/nosleep/ui/src/faker/DataPipelines.ts":"38","/home/xxx/Project/Project_OpenSource/nosleep/ui/src/components/organism/Content.tsx":"39","/home/xxx/Project/Project_OpenSource/nosleep/ui/src/components/organism/PageTitle.tsx":"40","/home/xxx/Project/Project_OpenSource/nosleep/ui/src/components/organism/CardContent.tsx":"41","/home/xxx/Project/Project_OpenSource/nosleep/ui/src/components/atoms/buttons/BtnExport.tsx":"42","/home/xxx/Project/Project_OpenSource/nosleep/ui/src/components/atoms/buttons/BtnCreate.tsx":"43","/home/xxx/Project/Project_OpenSource/nosleep/ui/src/components/molecule/pipeline/TableAvatarUserAccess.tsx":"44","/home/xxx/Project/Project_OpenSource/nosleep/ui/src/components/molecule/pipeline/TableRunningStatus.tsx":"45","/home/xxx/Project/Project_OpenSource/nosleep/ui/src/components/molecule/pipeline/TableStatusIndicator.tsx":"46","/home/xxx/Project/Project_OpenSource/nosleep/ui/src/components/molecule/pipeline/TableLabelPipeline.tsx":"47","/home/xxx/Project/Project_OpenSource/nosleep/ui/src/components/molecule/pipeline/FilterStatusIndicator.tsx":"48","/home/xxx/Project/Project_OpenSource/nosleep/ui/src/components/molecule/reacflow/PipelineFlow.tsx":"49","/home/xxx/Project/Project_OpenSource/nosleep/ui/src/components/atoms/icons/BxLayerIcon.tsx":"50","/home/xxx/Project/Project_OpenSource/nosleep/ui/src/components/atoms/icons/BxShareAltIcon.tsx":"51","/home/xxx/Project/Project_OpenSource/nosleep/ui/src/components/atoms/icons/BxCogIcon.tsx":"52","/home/xxx/Project/Project_OpenSource/nosleep/ui/src/components/atoms/icons/BxHomeAltIcon.tsx":"53","/home/xxx/Project/Project_OpenSource/nosleep/ui/src/components/atoms/icons/BxCheckIcon.tsx":"54","/home/xxx/Project/Project_OpenSource/nosleep/ui/src/components/atoms/icons/BxExportIcon.tsx":"55","/home/xxx/Project/Project_OpenSource/nosleep/ui/src/components/atoms/icons/BxPlusIcon.tsx":"56","/home/xxx/Project/Project_OpenSource/nosleep/ui/src/components/atoms/icons/BxXIcon.tsx":"57","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/index.tsx":"58","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/reportWebVitals.ts":"59","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/App.tsx":"60","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/pages/PipelineDetailPage.tsx":"61","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/pages/PipelinesPage.tsx":"62","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/pages/HomePage.tsx":"63","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/pages/EnvironmentsPage.tsx":"64","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/organism/Navbar.tsx":"65","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/faker/DataPipelines.ts":"66","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/organism/Content.tsx":"67","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/organism/PageTitle.tsx":"68","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/organism/CardContent.tsx":"69","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/buttons/BtnCreate.tsx":"70","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/buttons/BtnExport.tsx":"71","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/molecule/pipeline/TableRunningStatus.tsx":"72","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/molecule/pipeline/TableStatusIndicator.tsx":"73","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/molecule/pipeline/TableLabelPipeline.tsx":"74","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/molecule/pipeline/TableAvatarUserAccess.tsx":"75","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/molecule/pipeline/FilterStatusIndicator.tsx":"76","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/molecule/reacflow/PipelineFlow.tsx":"77","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/icons/BxLayerIcon.tsx":"78","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/icons/BxShareAltIcon.tsx":"79","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/icons/BxCogIcon.tsx":"80","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/icons/BxHomeAltIcon.tsx":"81","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/icons/BxPlusIcon.tsx":"82","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/icons/BxExportIcon.tsx":"83","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/icons/BxXIcon.tsx":"84","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/icons/BxCheckIcon.tsx":"85","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/buttons/BtnSave.tsx":"86","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/icons/BxSaveIcon.tsx":"87","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/icons/BxHistoryIcon.tsx":"88","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/icons/BxsCheckCircleIcon.tsx":"89","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/icons/CloseCircleIcon.tsx":"90","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/icons/Time4Icon.tsx":"91","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/icons/TerminalFillIcon.tsx":"92","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/icons/ExternalLinkIcon.tsx":"93","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/icons/EditIcon.tsx":"94","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/icons/PostgresqlIcon.tsx":"95","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/buttons/BtnEdit.tsx":"96","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/molecule/HistoryLogsRunning.tsx":"97","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/molecule/YamlEditor.tsx":"98","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/icons/BxArrowBackIcon.tsx":"99","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/buttons/BtnClose.tsx":"100","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/icons/BxlTelegramIcon.tsx":"101","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/icons/UsersAltIcon.tsx":"102","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/icons/PlusCircleIcon.tsx":"103","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/icons/PlusIcon.tsx":"104","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/icons/BxTrashIcon.tsx":"105","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/icons/BxSearchIcon.tsx":"106","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/icons/BxUserPlusIcon.tsx":"107","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/icons/BxDownloadIcon.tsx":"108","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/icons/DownloadIcon.tsx":"109","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/pages/PipelineUsersManagePage.tsx":"110","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/pages/UserManagesPage.tsx":"111","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/pages/PipelineStepLogRawsPage.tsx":"112","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/pages/LoginPage.tsx":"113","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/AuthComponent.tsx":"114","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/icons/BxUserIcon.tsx":"115","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/helpers/store.ts":"116","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/reducers/index.ts":"117","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/reducers/user.ts":"118","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/constants/index.ts":"119","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/constants/user.ts":"120","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/reducers/auth.ts":"121","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/constants/alert.ts":"122","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/actions/index.ts":"123","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/actions/alert.ts":"124","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/actions/auth.ts":"125","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/services/index.ts":"126","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/helpers/index.ts":"127","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/services/user.ts":"128","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/helpers/history.ts":"129","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/helpers/auth-header.ts":"130","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/types/index.ts":"131","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/constants/pipelines.ts":"132","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/actions/pipelines.ts":"133","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/reducers/pipelines.ts":"134","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/services/pipeline.ts":"135","/home/xxx/Project/Golang_Lab/go-cron/ui/src/index.tsx":"136","/home/xxx/Project/Golang_Lab/go-cron/ui/src/reportWebVitals.ts":"137","/home/xxx/Project/Golang_Lab/go-cron/ui/src/helpers/store.ts":"138","/home/xxx/Project/Golang_Lab/go-cron/ui/src/App.tsx":"139","/home/xxx/Project/Golang_Lab/go-cron/ui/src/pages/HomePage.tsx":"140","/home/xxx/Project/Golang_Lab/go-cron/ui/src/pages/PipelineStepLogRawsPage.tsx":"141","/home/xxx/Project/Golang_Lab/go-cron/ui/src/pages/PipelinesPage.tsx":"142","/home/xxx/Project/Golang_Lab/go-cron/ui/src/pages/UserManagesPage.tsx":"143","/home/xxx/Project/Golang_Lab/go-cron/ui/src/pages/PipelineDetailPage.tsx":"144","/home/xxx/Project/Golang_Lab/go-cron/ui/src/pages/LoginPage.tsx":"145","/home/xxx/Project/Golang_Lab/go-cron/ui/src/pages/PipelineUsersManagePage.tsx":"146","/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/AuthComponent.tsx":"147","/home/xxx/Project/Golang_Lab/go-cron/ui/src/pages/EnvironmentsPage.tsx":"148","/home/xxx/Project/Golang_Lab/go-cron/ui/src/reducers/index.ts":"149","/home/xxx/Project/Golang_Lab/go-cron/ui/src/helpers/index.ts":"150","/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/organism/Content.tsx":"151","/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/organism/PageTitle.tsx":"152","/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/organism/CardContent.tsx":"153","/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/organism/Navbar.tsx":"154","/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/molecule/YamlEditor.tsx":"155","/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/molecule/pipeline/TableRunningStatus.tsx":"156","/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/molecule/pipeline/TableStatusIndicator.tsx":"157","/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/molecule/pipeline/TableLabelPipeline.tsx":"158","/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/molecule/HistoryLogsRunning.tsx":"159","/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/molecule/pipeline/FilterStatusIndicator.tsx":"160","/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/atoms/icons/DownloadIcon.tsx":"161","/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/atoms/icons/BxArrowBackIcon.tsx":"162","/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/atoms/icons/CloseCircleIcon.tsx":"163","/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/atoms/icons/BxCheckIcon.tsx":"164","/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/atoms/icons/BxTrashIcon.tsx":"165","/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/atoms/icons/EditIcon.tsx":"166","/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/atoms/icons/BxSearchIcon.tsx":"167","/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/atoms/icons/BxUserIcon.tsx":"168","/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/atoms/icons/UsersAltIcon.tsx":"169","/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/atoms/icons/BxUserPlusIcon.tsx":"170","/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/atoms/buttons/BtnExport.tsx":"171","/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/atoms/buttons/BtnSave.tsx":"172","/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/atoms/buttons/BtnCreate.tsx":"173","/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/atoms/buttons/BtnEdit.tsx":"174","/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/atoms/icons/BxCogIcon.tsx":"175","/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/atoms/icons/BxlTelegramIcon.tsx":"176","/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/atoms/icons/TerminalFillIcon.tsx":"177","/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/atoms/icons/PostgresqlIcon.tsx":"178","/home/xxx/Project/Golang_Lab/go-cron/ui/src/reducers/pipelines.ts":"179","/home/xxx/Project/Golang_Lab/go-cron/ui/src/helpers/history.ts":"180","/home/xxx/Project/Golang_Lab/go-cron/ui/src/helpers/auth-header.ts":"181","/home/xxx/Project/Golang_Lab/go-cron/ui/src/reducers/auth.ts":"182","/home/xxx/Project/Golang_Lab/go-cron/ui/src/reducers/user.ts":"183","/home/xxx/Project/Golang_Lab/go-cron/ui/src/actions/index.ts":"184","/home/xxx/Project/Golang_Lab/go-cron/ui/src/services/index.ts":"185","/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/atoms/icons/BxXIcon.tsx":"186","/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/atoms/icons/Time4Icon.tsx":"187","/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/atoms/icons/BxHistoryIcon.tsx":"188","/home/xxx/Project/Golang_Lab/go-cron/ui/src/actions/pipelines.ts":"189","/home/xxx/Project/Golang_Lab/go-cron/ui/src/actions/alert.ts":"190","/home/xxx/Project/Golang_Lab/go-cron/ui/src/actions/auth.ts":"191","/home/xxx/Project/Golang_Lab/go-cron/ui/src/services/user.ts":"192","/home/xxx/Project/Golang_Lab/go-cron/ui/src/services/pipeline.ts":"193","/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/atoms/icons/BxLayerIcon.tsx":"194","/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/atoms/icons/BxShareAltIcon.tsx":"195","/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/atoms/icons/BxHomeAltIcon.tsx":"196","/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/atoms/icons/BxSaveIcon.tsx":"197","/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/atoms/icons/BxPlusIcon.tsx":"198","/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/atoms/icons/BxExportIcon.tsx":"199","/home/xxx/Project/Golang_Lab/go-cron/ui/src/constants/index.ts":"200","/home/xxx/Project/Golang_Lab/go-cron/ui/src/constants/user.ts":"201","/home/xxx/Project/Golang_Lab/go-cron/ui/src/constants/pipelines.ts":"202","/home/xxx/Project/Golang_Lab/go-cron/ui/src/constants/alert.ts":"203","/home/xxx/Project/Golang_Lab/go-cron/ui/src/pages/CreateEnvironmentPage.tsx":"204","/home/xxx/Project/Golang_Lab/go-cron/ui/src/pages/EditEnvironmentPage.tsx":"205","/home/xxx/Project/Golang_Lab/go-cron/ui/src/pages/AutoLoginPages.tsx":"206"},{"size":455,"mtime":1612103503800,"results":"207","hashOfConfig":"208"},{"size":425,"mtime":1609403180154,"results":"209","hashOfConfig":"208"},{"size":989,"mtime":1615639394040,"results":"210","hashOfConfig":"208"},{"size":2194,"mtime":1614935154402,"results":"211","hashOfConfig":"208"},{"size":4142,"mtime":1615622085051,"results":"212","hashOfConfig":"208"},{"size":1330,"mtime":1613142148719,"results":"213","hashOfConfig":"208"},{"size":577,"mtime":1614931939768,"results":"214","hashOfConfig":"208"},{"size":290,"mtime":1612008907931,"results":"215","hashOfConfig":"208"},{"size":360,"mtime":1615630911605,"results":"216","hashOfConfig":"208"},{"size":315,"mtime":1613140021512,"results":"217","hashOfConfig":"208"},{"size":1161,"mtime":1612074598961,"results":"218","hashOfConfig":"208"},{"size":711,"mtime":1614931811498,"results":"219","hashOfConfig":"208"},{"size":608,"mtime":1612102305914,"results":"220","hashOfConfig":"208"},{"size":1189,"mtime":1615622337681,"results":"221","hashOfConfig":"208"},{"size":2057,"mtime":1612102267119,"results":"222","hashOfConfig":"208"},{"size":6117,"mtime":1612417729595,"results":"223","hashOfConfig":"208"},{"size":640,"mtime":1614931828382,"results":"224","hashOfConfig":"208"},{"size":693,"mtime":1613142114703,"results":"225","hashOfConfig":"208"},{"size":291,"mtime":1609681487118,"results":"226","hashOfConfig":"208"},{"size":397,"mtime":1610224792328,"results":"227","hashOfConfig":"208"},{"size":330,"mtime":1610224031244,"results":"228","hashOfConfig":"208"},{"size":940,"mtime":1610593704345,"results":"229","hashOfConfig":"208"},{"size":675,"mtime":1609680912372,"results":"230","hashOfConfig":"208"},{"size":694,"mtime":1609688927073,"results":"231","hashOfConfig":"208"},{"size":1623,"mtime":1609684301670,"results":"232","hashOfConfig":"208"},{"size":417,"mtime":1610271934120,"results":"233","hashOfConfig":"208"},{"size":2024,"mtime":1615644237703,"results":"234","hashOfConfig":"208"},{"size":5387,"mtime":1615732787008,"results":"235","hashOfConfig":"208"},{"size":512,"mtime":1615720626226,"results":"236","hashOfConfig":"208"},{"size":455,"mtime":1616060298822,"results":"237","hashOfConfig":"238"},{"size":425,"mtime":1616060298822,"results":"239","hashOfConfig":"238"},{"size":989,"mtime":1616060298818,"results":"240","hashOfConfig":"238"},{"size":561,"mtime":1616060846209,"results":"241","hashOfConfig":"238"},{"size":1369,"mtime":1616062025934,"results":"242","hashOfConfig":"238"},{"size":2024,"mtime":1616060298874,"results":"243","hashOfConfig":"238"},{"size":4128,"mtime":1616060825100,"results":"244","hashOfConfig":"238"},{"size":2194,"mtime":1616060298862,"results":"245","hashOfConfig":"238"},{"size":6117,"mtime":1616060298830,"results":"246","hashOfConfig":"238"},{"size":290,"mtime":1616060298866,"results":"247","hashOfConfig":"238"},{"size":360,"mtime":1616060298866,"results":"248","hashOfConfig":"238"},{"size":315,"mtime":1616060298866,"results":"249","hashOfConfig":"238"},{"size":640,"mtime":1616060298858,"results":"250","hashOfConfig":"238"},{"size":693,"mtime":1616060298858,"results":"251","hashOfConfig":"238"},{"size":608,"mtime":1616060298842,"results":"252","hashOfConfig":"238"},{"size":711,"mtime":1616060298842,"results":"253","hashOfConfig":"238"},{"size":1161,"mtime":1616060298842,"results":"254","hashOfConfig":"238"},{"size":1189,"mtime":1616060298842,"results":"255","hashOfConfig":"238"},{"size":2057,"mtime":1616060298842,"results":"256","hashOfConfig":"238"},{"size":5388,"mtime":1616062112891,"results":"257","hashOfConfig":"238"},{"size":675,"mtime":1616060298850,"results":"258","hashOfConfig":"238"},{"size":940,"mtime":1616060298850,"results":"259","hashOfConfig":"238"},{"size":1623,"mtime":1616060298850,"results":"260","hashOfConfig":"238"},{"size":694,"mtime":1616060298850,"results":"261","hashOfConfig":"238"},{"size":330,"mtime":1616060298850,"results":"262","hashOfConfig":"238"},{"size":417,"mtime":1616060298854,"results":"263","hashOfConfig":"238"},{"size":291,"mtime":1616060298850,"results":"264","hashOfConfig":"238"},{"size":397,"mtime":1616060298850,"results":"265","hashOfConfig":"238"},{"size":571,"mtime":1618043394848,"results":"266","hashOfConfig":"267"},{"size":425,"mtime":1617543001459,"results":"268","hashOfConfig":"267"},{"size":1861,"mtime":1618499186591,"results":"269","hashOfConfig":"267"},{"size":10177,"mtime":1618506807603,"results":"270","hashOfConfig":"267"},{"size":7910,"mtime":1618507448484,"results":"271","hashOfConfig":"267"},{"size":928,"mtime":1618512656291,"results":"272","hashOfConfig":"267"},{"size":7537,"mtime":1618558353703,"results":"273","hashOfConfig":"267"},{"size":2271,"mtime":1618507167022,"results":"274","hashOfConfig":"267"},{"size":5558,"mtime":1617771710679,"results":"275","hashOfConfig":"267"},{"size":340,"mtime":1617988647773,"results":"276","hashOfConfig":"267"},{"size":360,"mtime":1617543001459,"results":"277","hashOfConfig":"267"},{"size":364,"mtime":1617988261197,"results":"278","hashOfConfig":"267"},{"size":684,"mtime":1618507554161,"results":"279","hashOfConfig":"267"},{"size":638,"mtime":1617804002509,"results":"280","hashOfConfig":"267"},{"size":759,"mtime":1618449541158,"results":"281","hashOfConfig":"267"},{"size":988,"mtime":1618361947069,"results":"282","hashOfConfig":"267"},{"size":1223,"mtime":1618449519394,"results":"283","hashOfConfig":"267"},{"size":608,"mtime":1617543001459,"results":"284","hashOfConfig":"267"},{"size":2061,"mtime":1618449699639,"results":"285","hashOfConfig":"267"},{"size":5388,"mtime":1617543001459,"results":"286","hashOfConfig":"267"},{"size":675,"mtime":1617543001459,"results":"287","hashOfConfig":"267"},{"size":940,"mtime":1617543001459,"results":"288","hashOfConfig":"267"},{"size":1623,"mtime":1617543001459,"results":"289","hashOfConfig":"267"},{"size":694,"mtime":1617543001459,"results":"290","hashOfConfig":"267"},{"size":291,"mtime":1617543001459,"results":"291","hashOfConfig":"267"},{"size":417,"mtime":1617543001459,"results":"292","hashOfConfig":"267"},{"size":397,"mtime":1617543001459,"results":"293","hashOfConfig":"267"},{"size":330,"mtime":1617543001459,"results":"294","hashOfConfig":"267"},{"size":686,"mtime":1618507532389,"results":"295","hashOfConfig":"267"},{"size":698,"mtime":1617672311406,"results":"296","hashOfConfig":"267"},{"size":975,"mtime":1617674501302,"results":"297","hashOfConfig":"267"},{"size":432,"mtime":1617675381594,"results":"298","hashOfConfig":"267"},{"size":544,"mtime":1617678633165,"results":"299","hashOfConfig":"267"},{"size":1012,"mtime":1617680394392,"results":"300","hashOfConfig":"267"},{"size":515,"mtime":1617684062490,"results":"301","hashOfConfig":"267"},{"size":441,"mtime":1617685599765,"results":"302","hashOfConfig":"267"},{"size":397,"mtime":1617685631172,"results":"303","hashOfConfig":"267"},{"size":3576,"mtime":1617689145245,"results":"304","hashOfConfig":"267"},{"size":624,"mtime":1617804010066,"results":"305","hashOfConfig":"267"},{"size":3306,"mtime":1618503082242,"results":"306","hashOfConfig":"267"},{"size":795,"mtime":1618357734713,"results":"307","hashOfConfig":"267"},{"size":383,"mtime":1617805304155,"results":"308","hashOfConfig":"267"},{"size":620,"mtime":1617805672936,"results":"309","hashOfConfig":"267"},{"size":572,"mtime":1617857956730,"results":"310","hashOfConfig":"267"},{"size":623,"mtime":1617896405138,"results":"311","hashOfConfig":"267"},{"size":496,"mtime":1617904512544,"results":"312","hashOfConfig":"267"},{"size":402,"mtime":1617904616789,"results":"313","hashOfConfig":"267"},{"size":635,"mtime":1617954109489,"results":"314","hashOfConfig":"267"},{"size":496,"mtime":1617956325590,"results":"315","hashOfConfig":"267"},{"size":661,"mtime":1617956861021,"results":"316","hashOfConfig":"267"},{"size":406,"mtime":1617957194551,"results":"317","hashOfConfig":"267"},{"size":471,"mtime":1617957361346,"results":"318","hashOfConfig":"267"},{"size":9656,"mtime":1618043458269,"results":"319","hashOfConfig":"267"},{"size":7422,"mtime":1618067798967,"results":"320","hashOfConfig":"267"},{"size":5263,"mtime":1618505751895,"results":"321","hashOfConfig":"267"},{"size":4183,"mtime":1618351503647,"results":"322","hashOfConfig":"267"},{"size":730,"mtime":1618347200932,"results":"323","hashOfConfig":"267"},{"size":629,"mtime":1617989847337,"results":"324","hashOfConfig":"267"},{"size":243,"mtime":1618046393693,"results":"325","hashOfConfig":"267"},{"size":327,"mtime":1618351545359,"results":"326","hashOfConfig":"267"},{"size":542,"mtime":1618059326968,"results":"327","hashOfConfig":"267"},{"size":77,"mtime":1618348206301,"results":"328","hashOfConfig":"267"},{"size":445,"mtime":1618065001491,"results":"329","hashOfConfig":"267"},{"size":851,"mtime":1618346507585,"results":"330","hashOfConfig":"267"},{"size":116,"mtime":1618054999029,"results":"331","hashOfConfig":"267"},{"size":77,"mtime":1618351021138,"results":"332","hashOfConfig":"267"},{"size":359,"mtime":1618055031541,"results":"333","hashOfConfig":"267"},{"size":1680,"mtime":1618353345821,"results":"334","hashOfConfig":"267"},{"size":50,"mtime":1618354666580,"results":"335","hashOfConfig":"267"},{"size":146,"mtime":1618553609555,"results":"336","hashOfConfig":"267"},{"size":2125,"mtime":1618354433543,"results":"337","hashOfConfig":"267"},{"size":95,"mtime":1618068149339,"results":"338","hashOfConfig":"267"},{"size":253,"mtime":1618347062978,"results":"339","hashOfConfig":"267"},{"size":830,"mtime":1618068991229,"results":"340","hashOfConfig":"267"},{"size":687,"mtime":1618386452856,"results":"341","hashOfConfig":"267"},{"size":3845,"mtime":1618390664723,"results":"342","hashOfConfig":"267"},{"size":2851,"mtime":1618502704333,"results":"343","hashOfConfig":"267"},{"size":3209,"mtime":1618557879012,"results":"344","hashOfConfig":"267"},{"size":571,"mtime":1618561600963,"results":"345","hashOfConfig":"346"},{"size":425,"mtime":1618561600963,"results":"347","hashOfConfig":"346"},{"size":243,"mtime":1618561600967,"results":"348","hashOfConfig":"346"},{"size":2445,"mtime":1618778009374,"results":"349","hashOfConfig":"346"},{"size":928,"mtime":1618561600967,"results":"350","hashOfConfig":"346"},{"size":5263,"mtime":1618561600967,"results":"351","hashOfConfig":"346"},{"size":9227,"mtime":1621781304797,"results":"352","hashOfConfig":"346"},{"size":7422,"mtime":1618561600967,"results":"353","hashOfConfig":"346"},{"size":10814,"mtime":1618780697991,"results":"354","hashOfConfig":"346"},{"size":4356,"mtime":1618779012295,"results":"355","hashOfConfig":"346"},{"size":9656,"mtime":1618561600967,"results":"356","hashOfConfig":"346"},{"size":730,"mtime":1618561600963,"results":"357","hashOfConfig":"346"},{"size":7655,"mtime":1618775643139,"results":"358","hashOfConfig":"346"},{"size":327,"mtime":1618561600967,"results":"359","hashOfConfig":"346"},{"size":322,"mtime":1618784209670,"results":"360","hashOfConfig":"346"},{"size":340,"mtime":1618561600963,"results":"361","hashOfConfig":"346"},{"size":360,"mtime":1618561600963,"results":"362","hashOfConfig":"346"},{"size":364,"mtime":1618561600963,"results":"363","hashOfConfig":"346"},{"size":2331,"mtime":1618794120427,"results":"364","hashOfConfig":"346"},{"size":795,"mtime":1618561600963,"results":"365","hashOfConfig":"346"},{"size":759,"mtime":1618561600963,"results":"366","hashOfConfig":"346"},{"size":988,"mtime":1618561600963,"results":"367","hashOfConfig":"346"},{"size":1223,"mtime":1618561600963,"results":"368","hashOfConfig":"346"},{"size":3306,"mtime":1618561600963,"results":"369","hashOfConfig":"346"},{"size":1761,"mtime":1621779482359,"results":"370","hashOfConfig":"346"},{"size":471,"mtime":1618561600963,"results":"371","hashOfConfig":"346"},{"size":383,"mtime":1618561600963,"results":"372","hashOfConfig":"346"},{"size":544,"mtime":1618561600963,"results":"373","hashOfConfig":"346"},{"size":330,"mtime":1618561600963,"results":"374","hashOfConfig":"346"},{"size":635,"mtime":1618561600963,"results":"375","hashOfConfig":"346"},{"size":397,"mtime":1618561600963,"results":"376","hashOfConfig":"346"},{"size":496,"mtime":1618561600963,"results":"377","hashOfConfig":"346"},{"size":629,"mtime":1618561600963,"results":"378","hashOfConfig":"346"},{"size":623,"mtime":1618561600963,"results":"379","hashOfConfig":"346"},{"size":661,"mtime":1618561600963,"results":"380","hashOfConfig":"346"},{"size":638,"mtime":1618561600963,"results":"381","hashOfConfig":"346"},{"size":686,"mtime":1618561600963,"results":"382","hashOfConfig":"346"},{"size":684,"mtime":1618561600963,"results":"383","hashOfConfig":"346"},{"size":624,"mtime":1618561600963,"results":"384","hashOfConfig":"346"},{"size":1623,"mtime":1618561600963,"results":"385","hashOfConfig":"346"},{"size":572,"mtime":1618561600963,"results":"386","hashOfConfig":"346"},{"size":515,"mtime":1618561600963,"results":"387","hashOfConfig":"346"},{"size":3576,"mtime":1618561600963,"results":"388","hashOfConfig":"346"},{"size":2851,"mtime":1618561600967,"results":"389","hashOfConfig":"346"},{"size":95,"mtime":1618561600967,"results":"390","hashOfConfig":"346"},{"size":253,"mtime":1618561600967,"results":"391","hashOfConfig":"346"},{"size":851,"mtime":1618561600967,"results":"392","hashOfConfig":"346"},{"size":542,"mtime":1618561600967,"results":"393","hashOfConfig":"346"},{"size":77,"mtime":1618561600967,"results":"394","hashOfConfig":"346"},{"size":50,"mtime":1618561600967,"results":"395","hashOfConfig":"346"},{"size":397,"mtime":1618561600963,"results":"396","hashOfConfig":"346"},{"size":1012,"mtime":1618561600963,"results":"397","hashOfConfig":"346"},{"size":975,"mtime":1618561600963,"results":"398","hashOfConfig":"346"},{"size":3845,"mtime":1618561600967,"results":"399","hashOfConfig":"346"},{"size":359,"mtime":1618561600967,"results":"400","hashOfConfig":"346"},{"size":1604,"mtime":1618782524568,"results":"401","hashOfConfig":"346"},{"size":2125,"mtime":1618561600967,"results":"402","hashOfConfig":"346"},{"size":4713,"mtime":1621780418154,"results":"403","hashOfConfig":"346"},{"size":675,"mtime":1618561600963,"results":"404","hashOfConfig":"346"},{"size":940,"mtime":1618561600963,"results":"405","hashOfConfig":"346"},{"size":694,"mtime":1618561600963,"results":"406","hashOfConfig":"346"},{"size":698,"mtime":1618561600963,"results":"407","hashOfConfig":"346"},{"size":291,"mtime":1618561600963,"results":"408","hashOfConfig":"346"},{"size":417,"mtime":1618561600963,"results":"409","hashOfConfig":"346"},{"size":77,"mtime":1618561600967,"results":"410","hashOfConfig":"346"},{"size":445,"mtime":1618561600967,"results":"411","hashOfConfig":"346"},{"size":687,"mtime":1618561600967,"results":"412","hashOfConfig":"346"},{"size":116,"mtime":1618561600967,"results":"413","hashOfConfig":"346"},{"size":5376,"mtime":1618777572944,"results":"414","hashOfConfig":"346"},{"size":7525,"mtime":1618777688554,"results":"415","hashOfConfig":"346"},{"size":1323,"mtime":1618782936388,"results":"416","hashOfConfig":"346"},{"filePath":"417","messages":"418","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"419"},"1axzklv",{"filePath":"420","messages":"421","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"419"},{"filePath":"422","messages":"423","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"419"},{"filePath":"424","messages":"425","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"419"},{"filePath":"426","messages":"427","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"419"},{"filePath":"428","messages":"429","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"419"},{"filePath":"430","messages":"431","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"419"},{"filePath":"432","messages":"433","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"419"},{"filePath":"434","messages":"435","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"419"},{"filePath":"436","messages":"437","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"419"},{"filePath":"438","messages":"439","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"419"},{"filePath":"440","messages":"441","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"419"},{"filePath":"442","messages":"443","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"419"},{"filePath":"444","messages":"445","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"419"},{"filePath":"446","messages":"447","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"419"},{"filePath":"448","messages":"449","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"419"},{"filePath":"450","messages":"451","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"419"},{"filePath":"452","messages":"453","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"419"},{"filePath":"454","messages":"455","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"419"},{"filePath":"456","messages":"457","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"458"},{"filePath":"459","messages":"460","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"419"},{"filePath":"461","messages":"462","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"419"},{"filePath":"463","messages":"464","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"419"},{"filePath":"465","messages":"466","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"419"},{"filePath":"467","messages":"468","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"419"},{"filePath":"469","messages":"470","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"419"},{"filePath":"471","messages":"472","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"473","usedDeprecatedRules":"419"},{"filePath":"474","messages":"475","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"476","usedDeprecatedRules":"419"},{"filePath":"477","messages":"478","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"479","messages":"480","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"481"},"ve18o8",{"filePath":"482","messages":"483","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"481"},{"filePath":"484","messages":"485","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"481"},{"filePath":"486","messages":"487","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"481"},{"filePath":"488","messages":"489","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"481"},{"filePath":"490","messages":"491","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"473","usedDeprecatedRules":"481"},{"filePath":"492","messages":"493","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"481"},{"filePath":"494","messages":"495","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"481"},{"filePath":"496","messages":"497","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"481"},{"filePath":"498","messages":"499","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"481"},{"filePath":"500","messages":"501","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"481"},{"filePath":"502","messages":"503","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"481"},{"filePath":"504","messages":"505","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"481"},{"filePath":"506","messages":"507","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"481"},{"filePath":"508","messages":"509","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"481"},{"filePath":"510","messages":"511","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"481"},{"filePath":"512","messages":"513","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"481"},{"filePath":"514","messages":"515","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"481"},{"filePath":"516","messages":"517","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"481"},{"filePath":"518","messages":"519","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"520","usedDeprecatedRules":"481"},{"filePath":"521","messages":"522","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"481"},{"filePath":"523","messages":"524","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"481"},{"filePath":"525","messages":"526","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"481"},{"filePath":"527","messages":"528","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"481"},{"filePath":"529","messages":"530","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"531"},{"filePath":"532","messages":"533","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"481"},{"filePath":"534","messages":"535","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"481"},{"filePath":"536","messages":"537","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"481"},{"filePath":"538","messages":"539","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"540"},"12o33pc",{"filePath":"541","messages":"542","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"540"},{"filePath":"543","messages":"544","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"540"},{"filePath":"545","messages":"546","errorCount":0,"warningCount":7,"fixableErrorCount":0,"fixableWarningCount":0,"source":"547","usedDeprecatedRules":"540"},{"filePath":"548","messages":"549","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"550","usedDeprecatedRules":"540"},{"filePath":"551","messages":"552","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"553","usedDeprecatedRules":"540"},{"filePath":"554","messages":"555","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"556","usedDeprecatedRules":"540"},{"filePath":"557","messages":"558","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"559","usedDeprecatedRules":"540"},{"filePath":"560","messages":"561","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"562"},{"filePath":"563","messages":"564","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"540"},{"filePath":"565","messages":"566","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"540"},{"filePath":"567","messages":"568","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"540"},{"filePath":"569","messages":"570","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"540"},{"filePath":"571","messages":"572","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"540"},{"filePath":"573","messages":"574","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"540"},{"filePath":"575","messages":"576","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"540"},{"filePath":"577","messages":"578","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"540"},{"filePath":"579","messages":"580","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"562"},{"filePath":"581","messages":"582","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"540"},{"filePath":"583","messages":"584","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"585","messages":"586","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"540"},{"filePath":"587","messages":"588","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"540"},{"filePath":"589","messages":"590","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"540"},{"filePath":"591","messages":"592","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"540"},{"filePath":"593","messages":"594","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"540"},{"filePath":"595","messages":"596","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"540"},{"filePath":"597","messages":"598","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"540"},{"filePath":"599","messages":"600","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"540"},{"filePath":"601","messages":"602","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"540"},{"filePath":"603","messages":"604","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"540"},{"filePath":"605","messages":"606","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"540"},{"filePath":"607","messages":"608","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"609"},{"filePath":"610","messages":"611","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"540"},{"filePath":"612","messages":"613","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"540"},{"filePath":"614","messages":"615","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"540"},{"filePath":"616","messages":"617","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"618"},{"filePath":"619","messages":"620","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"540"},{"filePath":"621","messages":"622","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"540"},{"filePath":"623","messages":"624","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"540"},{"filePath":"625","messages":"626","errorCount":0,"warningCount":6,"fixableErrorCount":0,"fixableWarningCount":0,"source":"627","usedDeprecatedRules":"540"},{"filePath":"628","messages":"629","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"630","usedDeprecatedRules":"540"},{"filePath":"631","messages":"632","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"540"},{"filePath":"633","messages":"634","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"635","messages":"636","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"540"},{"filePath":"637","messages":"638","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"540"},{"filePath":"639","messages":"640","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"641","messages":"642","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"562"},{"filePath":"643","messages":"644","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"540"},{"filePath":"645","messages":"646","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"540"},{"filePath":"647","messages":"648","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"540"},{"filePath":"649","messages":"650","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"651","messages":"652","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"540"},{"filePath":"653","messages":"654","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"540"},{"filePath":"655","messages":"656","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"657","usedDeprecatedRules":"540"},{"filePath":"658","messages":"659","errorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":"660","usedDeprecatedRules":"540"},{"filePath":"661","messages":"662","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"663","usedDeprecatedRules":"540"},{"filePath":"664","messages":"665","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"666","usedDeprecatedRules":"540"},{"filePath":"667","messages":"668","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"540"},{"filePath":"669","messages":"670","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"540"},{"filePath":"671","messages":"672","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"673","usedDeprecatedRules":"540"},{"filePath":"674","messages":"675","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"540"},{"filePath":"676","messages":"677","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"540"},{"filePath":"678","messages":"679","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"540"},{"filePath":"680","messages":"681","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"682","usedDeprecatedRules":"540"},{"filePath":"683","messages":"684","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"618"},{"filePath":"685","messages":"686","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"540"},{"filePath":"687","messages":"688","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"540"},{"filePath":"689","messages":"690","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"691","usedDeprecatedRules":"540"},{"filePath":"692","messages":"693","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"540"},{"filePath":"694","messages":"695","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"540"},{"filePath":"696","messages":"697","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"540"},{"filePath":"698","messages":"699","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"540"},{"filePath":"700","messages":"701","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"702","usedDeprecatedRules":"540"},{"filePath":"703","messages":"704","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"705","messages":"706","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"540"},{"filePath":"707","messages":"708","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"540"},{"filePath":"709","messages":"710","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"711","usedDeprecatedRules":"540"},{"filePath":"712","messages":"713","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"714","usedDeprecatedRules":"540"},{"filePath":"715","messages":"716","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"717"},"11ifgb9",{"filePath":"718","messages":"719","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"717"},{"filePath":"720","messages":"721","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"717"},{"filePath":"722","messages":"723","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"717"},{"filePath":"724","messages":"725","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"553","usedDeprecatedRules":"717"},{"filePath":"726","messages":"727","errorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":"660","usedDeprecatedRules":"717"},{"filePath":"728","messages":"729","errorCount":0,"warningCount":7,"fixableErrorCount":0,"fixableWarningCount":0,"source":"730","usedDeprecatedRules":"717"},{"filePath":"731","messages":"732","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"657","usedDeprecatedRules":"717"},{"filePath":"733","messages":"734","errorCount":0,"warningCount":7,"fixableErrorCount":0,"fixableWarningCount":0,"source":"735","usedDeprecatedRules":"717"},{"filePath":"736","messages":"737","errorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":"738","usedDeprecatedRules":"717"},{"filePath":"739","messages":"740","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"717"},{"filePath":"741","messages":"742","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"666","usedDeprecatedRules":"717"},{"filePath":"743","messages":"744","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"745","usedDeprecatedRules":"717"},{"filePath":"746","messages":"747","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"673","usedDeprecatedRules":"717"},{"filePath":"748","messages":"749","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"750","usedDeprecatedRules":"717"},{"filePath":"751","messages":"752","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"717"},{"filePath":"753","messages":"754","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"717"},{"filePath":"755","messages":"756","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"717"},{"filePath":"757","messages":"758","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"759","usedDeprecatedRules":"717"},{"filePath":"760","messages":"761","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"630","usedDeprecatedRules":"717"},{"filePath":"762","messages":"763","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"717"},{"filePath":"764","messages":"765","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"717"},{"filePath":"766","messages":"767","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"717"},{"filePath":"768","messages":"769","errorCount":0,"warningCount":6,"fixableErrorCount":0,"fixableWarningCount":0,"source":"627","usedDeprecatedRules":"717"},{"filePath":"770","messages":"771","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"717"},{"filePath":"772","messages":"773","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"717"},{"filePath":"774","messages":"775","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"717"},{"filePath":"776","messages":"777","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"717"},{"filePath":"778","messages":"779","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"717"},{"filePath":"780","messages":"781","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"717"},{"filePath":"782","messages":"783","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"717"},{"filePath":"784","messages":"785","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"717"},{"filePath":"786","messages":"787","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"717"},{"filePath":"788","messages":"789","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"717"},{"filePath":"790","messages":"791","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"717"},{"filePath":"792","messages":"793","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"717"},{"filePath":"794","messages":"795","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"717"},{"filePath":"796","messages":"797","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"717"},{"filePath":"798","messages":"799","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"717"},{"filePath":"800","messages":"801","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"717"},{"filePath":"802","messages":"803","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"717"},{"filePath":"804","messages":"805","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"717"},{"filePath":"806","messages":"807","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"717"},{"filePath":"808","messages":"809","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"711","usedDeprecatedRules":"717"},{"filePath":"810","messages":"811","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"717"},{"filePath":"812","messages":"813","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"702","usedDeprecatedRules":"717"},{"filePath":"814","messages":"815","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"682","usedDeprecatedRules":"717"},{"filePath":"816","messages":"817","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"717"},{"filePath":"818","messages":"819","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"717"},{"filePath":"820","messages":"821","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"717"},{"filePath":"822","messages":"823","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"717"},{"filePath":"824","messages":"825","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"717"},{"filePath":"826","messages":"827","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"717"},{"filePath":"828","messages":"829","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"717"},{"filePath":"830","messages":"831","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"717"},{"filePath":"832","messages":"833","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"834","usedDeprecatedRules":"717"},{"filePath":"835","messages":"836","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"717"},{"filePath":"837","messages":"838","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"839","usedDeprecatedRules":"717"},{"filePath":"840","messages":"841","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"717"},{"filePath":"842","messages":"843","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"717"},{"filePath":"844","messages":"845","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"717"},{"filePath":"846","messages":"847","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"717"},{"filePath":"848","messages":"849","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"717"},{"filePath":"850","messages":"851","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"717"},{"filePath":"852","messages":"853","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"717"},{"filePath":"854","messages":"855","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"717"},{"filePath":"856","messages":"857","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"717"},{"filePath":"858","messages":"859","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"860"},{"filePath":"861","messages":"862","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"717"},{"filePath":"863","messages":"864","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"865","usedDeprecatedRules":"717"},{"filePath":"866","messages":"867","errorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":"868","usedDeprecatedRules":"717"},"/home/xxx/Project/Reactjs_Lab/tailwind_admin/src/index.tsx",[],["869","870"],"/home/xxx/Project/Reactjs_Lab/tailwind_admin/src/reportWebVitals.ts",[],"/home/xxx/Project/Reactjs_Lab/tailwind_admin/src/App.tsx",[],"/home/xxx/Project/Reactjs_Lab/tailwind_admin/src/components/organism/Navbar.tsx",[],"/home/xxx/Project/Reactjs_Lab/tailwind_admin/src/pages/PipelinesPage.tsx",[],"/home/xxx/Project/Reactjs_Lab/tailwind_admin/src/pages/HomePage.tsx",[],"/home/xxx/Project/Reactjs_Lab/tailwind_admin/src/pages/EnvironmentsPage.tsx",[],"/home/xxx/Project/Reactjs_Lab/tailwind_admin/src/components/organism/Content.tsx",[],"/home/xxx/Project/Reactjs_Lab/tailwind_admin/src/components/organism/PageTitle.tsx",[],"/home/xxx/Project/Reactjs_Lab/tailwind_admin/src/components/organism/CardContent.tsx",[],"/home/xxx/Project/Reactjs_Lab/tailwind_admin/src/components/molecule/pipeline/TableStatusIndicator.tsx",[],"/home/xxx/Project/Reactjs_Lab/tailwind_admin/src/components/molecule/pipeline/TableRunningStatus.tsx",[],"/home/xxx/Project/Reactjs_Lab/tailwind_admin/src/components/molecule/pipeline/TableAvatarUserAccess.tsx",[],"/home/xxx/Project/Reactjs_Lab/tailwind_admin/src/components/molecule/pipeline/TableLabelPipeline.tsx",[],"/home/xxx/Project/Reactjs_Lab/tailwind_admin/src/components/molecule/pipeline/FilterStatusIndicator.tsx",[],"/home/xxx/Project/Reactjs_Lab/tailwind_admin/src/faker/DataPipelines.ts",[],"/home/xxx/Project/Reactjs_Lab/tailwind_admin/src/components/atoms/buttons/BtnExport.tsx",[],"/home/xxx/Project/Reactjs_Lab/tailwind_admin/src/components/atoms/buttons/BtnCreate.tsx",[],"/home/xxx/Project/Reactjs_Lab/tailwind_admin/src/components/atoms/icons/BxPlusIcon.tsx",[],"/home/xxx/Project/Reactjs_Lab/tailwind_admin/src/components/atoms/icons/BxXIcon.tsx",[],["871","872"],"/home/xxx/Project/Reactjs_Lab/tailwind_admin/src/components/atoms/icons/BxCheckIcon.tsx",[],"/home/xxx/Project/Reactjs_Lab/tailwind_admin/src/components/atoms/icons/BxShareAltIcon.tsx",[],"/home/xxx/Project/Reactjs_Lab/tailwind_admin/src/components/atoms/icons/BxLayerIcon.tsx",[],"/home/xxx/Project/Reactjs_Lab/tailwind_admin/src/components/atoms/icons/BxHomeAltIcon.tsx",[],"/home/xxx/Project/Reactjs_Lab/tailwind_admin/src/components/atoms/icons/BxCogIcon.tsx",[],"/home/xxx/Project/Reactjs_Lab/tailwind_admin/src/components/atoms/icons/BxExportIcon.tsx",[],"/home/xxx/Project/Reactjs_Lab/tailwind_admin/src/pages/PipelineDetailPage.tsx",["873","874"],"import Content from \"../components/organism/Content\"\nimport PipelineFlow from \"components/molecule/reacflow/PipelineFlow\"\nimport { useState, useEffect, useCallback } from 'react';\nimport localforage from 'localforage'\n\nlocalforage.config({\n name: 'react-flow-docs',\n storeName: 'flows',\n});\n\nconst flowKey = 'example-flow';\n\nfunction PipelineDetailPage(): JSX.Element {\n const json_data = '[{\"id\":\"1\",\"data\":{\"label\":\"Start\"},\"sourcePosition\":\"right\",\"position\":{\"x\":260,\"y\":255},\"type\":\"input\",\"style\":{\"border\":\"1px solid #27ae60\",\"padding\":\"20px\",\"borderRadius\":\"100%\",\"background\":\"#27ae60\",\"color\":\"white\",\"width\":\"80px\"}}]'\n let [elements, setElements] = useState(JSON.parse(json_data))\n\n const onLoad = useCallback(() => {\n const json_data = '[{\"id\":\"1\",\"data\":{\"label\":\"Start\"},\"sourcePosition\":\"right\",\"position\":{\"x\":260,\"y\":255},\"type\":\"input\",\"style\":{\"border\":\"1px solid #27ae60\",\"background\":\"#27ae60\",\"color\":\"white\"},\"isDraggable\":false},{\"type\":\"default\",\"sourcePosition\":\"right\",\"targetPosition\":\"left\",\"id\":\"randomnode_1615640969899\",\"data\":{\"label\":\"SSH Commands\"},\"animated\":true,\"style\":{\"border\":\"0.5px solid #ccc\",\"color\":\"#777\"},\"position\":{\"x\":623.5720824976516,\"y\":216.54819884605095}},{\"source\":\"1\",\"sourceHandle\":null,\"target\":\"randomnode_1615640969899\",\"targetHandle\":null,\"type\":\"smoothstep\",\"arrowHeadType\":\"arrowclosed\",\"animated\":true,\"id\":\"reactflow__edge-1null-randomnode_1615640969899null\"}]'\n const obj = JSON.parse(json_data);\n setElements(obj)\n }, [setElements]);\n\n // let Initial = () => {\n // setElements(JSON.parse(json_data))\n // const obj = JSON.parse(json_data);\n // }\n\n // const restoreFlow = async () => {\n // const flow: any = await localforage.getItem(flowKey);\n // if(flow){\n // setElements(flow.elements)\n // console.log(JSON.stringify(flow.elements))\n // }\n // }\n return (\n <Content>\n <PipelineFlow elements={elements} />\n <button onClick={onLoad}>x</button>\n </Content>\n );\n}\n\nexport default PipelineDetailPage;\n","/home/xxx/Project/Reactjs_Lab/tailwind_admin/src/components/molecule/reacflow/PipelineFlow.tsx",["875","876"],"import ReactFlow, { BackgroundVariant, removeElements, Background, addEdge, Controls, ArrowHeadType, Edge, Connection, Elements, updateEdge, Position } from 'react-flow-renderer';\nimport { useState, useCallback } from 'react';\nimport PageTitle from \"components/organism/PageTitle\"\nimport BtnCreate from \"components/atoms/buttons/BtnCreate\"\nimport NodeStart from \"components/atoms/nodes/NodeStart\"\n\nimport localforage from 'localforage'\n\nconst getNodeId = () => `randomnode_${+new Date()}`;\n\nconst initialElements = [\n {\n id: '1', data: { label: \"start\"}, sourcePosition: Position.Right, position: { x: 50, y: 300 }, type: \"input\",\n typeNode: \"start\",\n style: { border: '1px solid #27ae60', background: \"#27ae60\", color: \"white\" }\n }\n];\n\nlocalforage.config({\n name: 'react-flow-docs',\n storeName: 'flows',\n});\n\nconst flowKey = 'example-flow';\n\n\nconst availableConnections = [\n {\n env: \"SSH_COMMANDS\",\n label: \"SSH Commands\",\n options: {\n type: \"default\",\n sourcePosition: Position.Right,\n targetPosition: Position.Left,\n }\n },\n {\n env: \"FTP_TRANSFER\",\n label: \"FTP Transfer\",\n options: {\n type: \"default\",\n sourcePosition: Position.Right,\n targetPosition: Position.Left,\n }\n },\n {\n env: \"PYTHON_SCRIPT\",\n label: \"PY SCRIPT\",\n options: {\n type: \"default\",\n sourcePosition: Position.Right,\n targetPosition: Position.Left,\n }\n },\n {\n env: \"SCHEDULER\",\n label: \"Scheduler\",\n options: {\n type: \"input\",\n sourcePosition: Position.Right,\n targetPosition: Position.Left,\n }\n },\n {\n env: \"ALERT_TELEGRAM\",\n label: <div>Telegram Notif</div>,\n options: {\n type: \"output\",\n sourcePosition: Position.Right,\n targetPosition: Position.Left,\n }\n },\n]\n\ninterface PropsInterface {\n elements: Elements,\n}\n\nfunction PipelineFlow(props: PropsInterface): JSX.Element {\n const [elements, setElements] = useState<Elements>(initialElements);\n const [rfInstance, setRfInstance] = useState<any>(null);\n\n const onSave = useCallback(() => {\n if (rfInstance) {\n const flow = rfInstance.toObject();\n localforage.setItem(flowKey, flow);\n }\n }, [rfInstance]);\n\n const onConnect = (params: Edge | Connection) => {\n let new_param = {\n ...params,\n type: \"smoothstep\",\n arrowHeadType: ArrowHeadType.ArrowClosed,\n animated: true,\n }\n setElements((els) => addEdge(new_param, els))\n };\n const onElementsRemove = (elementsToRemove: any) =>\n setElements((els) => removeElements(elementsToRemove, els));\n\n const onAdd = useCallback(() => {\n let item = availableConnections[Math.floor(Math.random() * availableConnections.length)];\n const newNode = {\n ...item.options,\n id: getNodeId(),\n data: { label: item.label },\n animated: true,\n style: { border: '0.5px solid #ccc', color: \"#777\" },\n position: {\n x: Math.random() * 250,\n y: Math.random() * 200,\n },\n };\n setElements((els) => els.concat(newNode));\n }, [setElements]);\n\n\n const onEdgeUpdate = (oldEdge: any, newConnection: any) => setElements((els) => updateEdge(oldEdge, newConnection, els));\n const onLoad = () => {\n const json_data = '[{\"id\":\"1\",\"data\":{\"label\":\"Start\"},\"sourcePosition\":\"right\",\"position\":{\"x\":260,\"y\":255},\"type\":\"input\",\"style\":{\"border\":\"1px solid #27ae60\",\"background\":\"#27ae60\",\"color\":\"white\",width:\"10px\"},\"isDraggable\":false},{\"type\":\"default\",\"sourcePosition\":\"right\",\"targetPosition\":\"left\",\"id\":\"randomnode_1615640969899\",\"data\":{\"label\":\"SSH Commands\"},\"animated\":true,\"style\":{\"border\":\"0.5px solid #ccc\",\"color\":\"#777\"},\"position\":{\"x\":623.5720824976516,\"y\":216.54819884605095}},{\"source\":\"1\",\"sourceHandle\":null,\"target\":\"randomnode_1615640969899\",\"targetHandle\":null,\"type\":\"smoothstep\",\"arrowHeadType\":\"arrowclosed\",\"animated\":true,\"id\":\"reactflow__edge-1null-randomnode_1615640969899null\"}]'\n const obj = JSON.parse(json_data);\n setElements(obj)\n };\n return (\n <>\n <div className=\"flex justify-between flex-wrap items-center \">\n <PageTitle title=\"Report daily Server health Proxima Centauri SRV-441\" subtitle=\"Created at 202018\" />\n <div>\n <BtnCreate onClick={onAdd} text=\"Add Node\" />\n <BtnCreate onClick={onSave} text=\"Save\" />\n </div>\n </div>\n <div style={{ height: \"45rem\" }}>\n <ReactFlow elements={elements}\n onConnect={onConnect}\n className=\"bg-gray-50 rounded-lg mt-4 border\"\n onEdgeUpdate={onEdgeUpdate}\n snapToGrid={true}\n onElementsRemove={onElementsRemove}\n onLoad={setRfInstance}\n >\n <Controls />\n <Background variant={BackgroundVariant.Lines} />\n </ReactFlow>\n </div>\n </>\n );\n}\n\nexport default PipelineFlow;\n","/home/xxx/Project/Reactjs_Lab/tailwind_admin/src/components/atoms/nodes/NodeStart.tsx",[],"/home/xxx/Project/Project_OpenSource/nosleep/ui/src/index.tsx",[],["877","878"],"/home/xxx/Project/Project_OpenSource/nosleep/ui/src/reportWebVitals.ts",[],"/home/xxx/Project/Project_OpenSource/nosleep/ui/src/App.tsx",[],"/home/xxx/Project/Project_OpenSource/nosleep/ui/src/pages/EnvironmentsPage.tsx",[],"/home/xxx/Project/Project_OpenSource/nosleep/ui/src/pages/HomePage.tsx",[],"/home/xxx/Project/Project_OpenSource/nosleep/ui/src/pages/PipelineDetailPage.tsx",["879","880"],"/home/xxx/Project/Project_OpenSource/nosleep/ui/src/pages/PipelinesPage.tsx",[],"/home/xxx/Project/Project_OpenSource/nosleep/ui/src/components/organism/Navbar.tsx",[],"/home/xxx/Project/Project_OpenSource/nosleep/ui/src/faker/DataPipelines.ts",[],"/home/xxx/Project/Project_OpenSource/nosleep/ui/src/components/organism/Content.tsx",[],"/home/xxx/Project/Project_OpenSource/nosleep/ui/src/components/organism/PageTitle.tsx",[],"/home/xxx/Project/Project_OpenSource/nosleep/ui/src/components/organism/CardContent.tsx",[],"/home/xxx/Project/Project_OpenSource/nosleep/ui/src/components/atoms/buttons/BtnExport.tsx",[],"/home/xxx/Project/Project_OpenSource/nosleep/ui/src/components/atoms/buttons/BtnCreate.tsx",[],"/home/xxx/Project/Project_OpenSource/nosleep/ui/src/components/molecule/pipeline/TableAvatarUserAccess.tsx",[],"/home/xxx/Project/Project_OpenSource/nosleep/ui/src/components/molecule/pipeline/TableRunningStatus.tsx",[],"/home/xxx/Project/Project_OpenSource/nosleep/ui/src/components/molecule/pipeline/TableStatusIndicator.tsx",[],"/home/xxx/Project/Project_OpenSource/nosleep/ui/src/components/molecule/pipeline/TableLabelPipeline.tsx",[],"/home/xxx/Project/Project_OpenSource/nosleep/ui/src/components/molecule/pipeline/FilterStatusIndicator.tsx",[],"/home/xxx/Project/Project_OpenSource/nosleep/ui/src/components/molecule/reacflow/PipelineFlow.tsx",["881","882"],"import ReactFlow, { BackgroundVariant, removeElements, Background, addEdge, Controls, ArrowHeadType, Edge, Connection, Elements, updateEdge, Position } from 'react-flow-renderer';\nimport { useState, useCallback } from 'react';\nimport PageTitle from \"components/organism/PageTitle\"\nimport BtnCreate from \"components/atoms/buttons/BtnCreate\"\nimport NodeStart from \"components/atoms/nodes/NodeStart\"\n\nimport localforage from 'localforage'\n\nconst getNodeId = () => `randomnode_${+new Date()}`;\n\nconst initialElements = [\n {\n id: '1', data: { label: \"start\" }, sourcePosition: Position.Right, position: { x: 50, y: 300 }, type: \"input\",\n typeNode: \"start\",\n style: { border: '1px solid #27ae60', background: \"#27ae60\", color: \"white\" }\n }\n];\n\nlocalforage.config({\n name: 'react-flow-docs',\n storeName: 'flows',\n});\n\nconst flowKey = 'example-flow';\n\n\nconst availableConnections = [\n {\n env: \"SSH_COMMANDS\",\n label: \"SSH Commands\",\n options: {\n type: \"default\",\n sourcePosition: Position.Right,\n targetPosition: Position.Left,\n }\n },\n {\n env: \"FTP_TRANSFER\",\n label: \"FTP Transfer\",\n options: {\n type: \"default\",\n sourcePosition: Position.Right,\n targetPosition: Position.Left,\n }\n },\n {\n env: \"PYTHON_SCRIPT\",\n label: \"PY SCRIPT\",\n options: {\n type: \"default\",\n sourcePosition: Position.Right,\n targetPosition: Position.Left,\n }\n },\n {\n env: \"SCHEDULER\",\n label: \"Scheduler\",\n options: {\n type: \"input\",\n sourcePosition: Position.Right,\n targetPosition: Position.Left,\n }\n },\n {\n env: \"ALERT_TELEGRAM\",\n label: <div>Telegram Notif</div>,\n options: {\n type: \"output\",\n sourcePosition: Position.Right,\n targetPosition: Position.Left,\n }\n },\n]\n\ninterface PropsInterface {\n elements: Elements,\n}\n\nfunction PipelineFlow(props: PropsInterface): JSX.Element {\n const [elements, setElements] = useState<Elements>(initialElements);\n const [rfInstance, setRfInstance] = useState<any>(null);\n\n const onSave = useCallback(() => {\n if (rfInstance) {\n const flow = rfInstance.toObject();\n localforage.setItem(flowKey, flow);\n }\n }, [rfInstance]);\n\n const onConnect = (params: Edge | Connection) => {\n let new_param = {\n ...params,\n type: \"smoothstep\",\n arrowHeadType: ArrowHeadType.ArrowClosed,\n animated: true,\n }\n setElements((els) => addEdge(new_param, els))\n };\n const onElementsRemove = (elementsToRemove: any) =>\n setElements((els) => removeElements(elementsToRemove, els));\n\n const onAdd = useCallback(() => {\n let item = availableConnections[Math.floor(Math.random() * availableConnections.length)];\n const newNode = {\n ...item.options,\n id: getNodeId(),\n data: { label: item.label },\n animated: true,\n style: { border: '0.5px solid #ccc', color: \"#777\" },\n position: {\n x: Math.random() * 250,\n y: Math.random() * 200,\n },\n };\n setElements((els) => els.concat(newNode));\n }, [setElements]);\n\n\n const onEdgeUpdate = (oldEdge: any, newConnection: any) => setElements((els) => updateEdge(oldEdge, newConnection, els));\n const onLoad = () => {\n const json_data = '[{\"id\":\"1\",\"data\":{\"label\":\"Start\"},\"sourcePosition\":\"right\",\"position\":{\"x\":260,\"y\":255},\"type\":\"input\",\"style\":{\"border\":\"1px solid #27ae60\",\"background\":\"#27ae60\",\"color\":\"white\",width:\"10px\"},\"isDraggable\":false},{\"type\":\"default\",\"sourcePosition\":\"right\",\"targetPosition\":\"left\",\"id\":\"randomnode_1615640969899\",\"data\":{\"label\":\"SSH Commands\"},\"animated\":true,\"style\":{\"border\":\"0.5px solid #ccc\",\"color\":\"#777\"},\"position\":{\"x\":623.5720824976516,\"y\":216.54819884605095}},{\"source\":\"1\",\"sourceHandle\":null,\"target\":\"randomnode_1615640969899\",\"targetHandle\":null,\"type\":\"smoothstep\",\"arrowHeadType\":\"arrowclosed\",\"animated\":true,\"id\":\"reactflow__edge-1null-randomnode_1615640969899null\"}]'\n const obj = JSON.parse(json_data);\n setElements(obj)\n };\n return (\n <>\n <div className=\"flex justify-between flex-wrap items-center \">\n <PageTitle title=\"Report daily Server health Proxima Centauri SRV-441\" subtitle=\"Created at 202018\" />\n <div>\n <BtnCreate onClick={onAdd} text=\"Add Node\" />\n <BtnCreate onClick={onSave} text=\"Save\" />\n </div>\n </div>\n <div style={{ height: \"45rem\" }}>\n <ReactFlow elements={elements}\n onConnect={onConnect}\n className=\"bg-gray-50 rounded-lg mt-4 border\"\n onEdgeUpdate={onEdgeUpdate}\n snapToGrid={true}\n onElementsRemove={onElementsRemove}\n onLoad={setRfInstance}\n >\n <Controls />\n <Background variant={BackgroundVariant.Lines} />\n </ReactFlow>\n </div>\n </>\n );\n}\n\nexport default PipelineFlow;\n","/home/xxx/Project/Project_OpenSource/nosleep/ui/src/components/atoms/icons/BxLayerIcon.tsx",[],"/home/xxx/Project/Project_OpenSource/nosleep/ui/src/components/atoms/icons/BxShareAltIcon.tsx",[],"/home/xxx/Project/Project_OpenSource/nosleep/ui/src/components/atoms/icons/BxCogIcon.tsx",[],"/home/xxx/Project/Project_OpenSource/nosleep/ui/src/components/atoms/icons/BxHomeAltIcon.tsx",[],"/home/xxx/Project/Project_OpenSource/nosleep/ui/src/components/atoms/icons/BxCheckIcon.tsx",[],["883","884"],"/home/xxx/Project/Project_OpenSource/nosleep/ui/src/components/atoms/icons/BxExportIcon.tsx",[],"/home/xxx/Project/Project_OpenSource/nosleep/ui/src/components/atoms/icons/BxPlusIcon.tsx",[],"/home/xxx/Project/Project_OpenSource/nosleep/ui/src/components/atoms/icons/BxXIcon.tsx",[],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/index.tsx",[],["885","886"],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/reportWebVitals.ts",[],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/App.tsx",[],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/pages/PipelineDetailPage.tsx",["887","888","889","890","891","892","893"],"import Content from \"../components/organism/Content\"\nimport BtnSave from \"../components/atoms/buttons/BtnSave\"\nimport HistoryLogsRunning from \"../components/molecule/HistoryLogsRunning\"\nimport BxXIcon from \"components/atoms/icons/BxXIcon\"\nimport BxTrashIcon from \"components/atoms/icons/BxTrashIcon\"\nimport BtnEdit from \"../components/atoms/buttons/BtnEdit\"\nimport EditIcon from \"../components/atoms/icons/EditIcon\"\nimport PlusIcon from \"../components/atoms/icons/PlusIcon\"\nimport AutosizeInput from 'react-input-autosize';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useHistory, useParams } from 'react-router-dom';\n// action\nimport { pipelineAction } from \"../actions\"\nimport { pipelineServices } from \"../services\"\nimport YamlEditor from \"../components/molecule/YamlEditor\"\nimport {\n NavLink\n} from \"react-router-dom\";\n\nimport React, { useEffect, useRef, useState } from \"react\"\n\n\ninterface IPropsPipelineEditor {\n text?: string;\n onClose: React.EffectCallback\n}\n\nfunction PipelineEditor({ onClose }: IPropsPipelineEditor): JSX.Element {\n\n const dispatch = useDispatch()\n const location = useHistory()\n\n\n const handleOnInputTitle = (e: any) => {\n dispatch(pipelineAction.change_title(e.target.value))\n }\n\n\n const handleOnInputCategory = (e: any) => {\n dispatch(pipelineAction.change_category(e.target.value))\n }\n\n const handleClickClose = () => {\n if (pipeline.create_new) {\n location.push(\"/pipelines\")\n return\n }\n dispatch(pipelineAction.change_edit(false))\n }\n\n const handleClickSave = () => {\n if (pipeline.id) {\n dispatch(pipelineAction.updateJob(pipeline.id, pipeline))\n return\n }\n dispatch(pipelineAction.saveNewJob(pipeline))\n }\n\n const pipeline: any = useSelector<any>(state => state.pipeline)\n\n return <>\n <div className=\"flex justify-between flex-wrap items-center\">\n <div>\n <div className=\"flex\">\n <AutosizeInput onChange={handleOnInputTitle}\n value={pipeline.title}\n maxLength={70}\n inputClassName=\"text-2xl capitalize pb-1 rounded w-full overflow-hidden font-medium text-gray-700 focus:outline-none focus:shadow-outline-white\"\n /><EditIcon className=\"inline ml-2 text-gray-300 \" />\n </div>\n <div className=\"flex items-center mt-1\">\n <div className=\"text-gray-400 font-thin text-base flex\">\n <div className=\"flex\">\n <AutosizeInput maxLength={30} inputClassName=\"mr-2 capitalize font-medium focus:outline-none focus:shadow-outline-white\" value={pipeline.category} onChange={handleOnInputCategory} />\n <EditIcon className=\"inline mr-2 text-gray-300 \" />\n </div>\n </div>\n\n </div>\n </div>\n <div className=\"flex flex-wrap items-center\">\n <div className=\"flex items-center justify-center mr-4\">\n <label className=\"flex items-center cursor-pointer\">\n <div className=\"mr-3 text-gray-400 font-medium\">\n Status active\n </div>\n <div className=\"relative\">\n <input type=\"checkbox\" defaultChecked={pipeline.active} onChange={() => dispatch(pipelineAction.change_active(!pipeline.active))} className=\"sr-only\" />\n <div className=\"block dot-block bg-gray-200 border w-14 h-8 rounded-full\"></div>\n <div className=\"dot absolute left-1 top-1 bg-white w-6 h-6 rounded-full transition\"></div>\n </div>\n </label>\n </div>\n <BtnSave onClick={handleClickSave} text=\"Save\" />\n\n <button onClick={handleClickClose} className=\"ml-2 hover:text-gray-700 text-gray-400 focus:outline-none focus:shadow-outline-white\"><BxXIcon className=\"text-4xl\" /></button>\n\n </div>\n </div>\n <div className=\"my-4 mb-4\">\n <div className=\"flex flex-col\">\n <div className=\"w-full\">\n <YamlEditor code={pipeline.code} readOnly={false} onChange={(value: any) => dispatch(pipelineAction.change_code(value))} />\n </div>\n <div className=\"w-full mt-3\">\n <label className=\"block text-gray-600 font-medium mb-1.5 text-lg\">Notes: </label>\n <textarea onChange={(e) => dispatch(pipelineAction.change_notes(e.target.value))} rows={6} className=\"focus:ring-2 focus:ring-blue-500 ring-1 ring-gray-400 focus:outline-none w-full text-base placeholder-gray-400 border rounded py-1.5 px-3\" placeholder=\"Enter some long form content.\" value={pipeline.notes}></textarea>\n </div>\n </div>\n </div>\n {pipeline.has_error &&\n <div className=\"p-4 text-white bg-red-500 rounded-lg\">\n {pipeline.message_error}\n </div>\n }\n {\n pipeline.has_success &&\n <div className=\"p-4 text-white bg-green-500 rounded-lg\">\n {pipeline.message_success}\n </div>\n }\n </>\n}\n\n\nfunction Dialog(props: any) {\n const { open } = props;\n if (!open) {\n return <></>;\n }\n return (\n <div className=\"fixed inset-0 z-50 overflow-auto bg-smoke-light \">\n <div className=\"relative p-6 bg-white w-full max-w-md mx-auto mt-14 flex-col border shadow-lg flex rounded-lg\">\n <div>{props.children}</div>\n </div>\n </div>\n );\n}\n\n\nfunction PipelineDetailPage(): JSX.Element {\n\n let [show_confirm, set_show_confirm] = useState(0)\n\n const dispatch = useDispatch()\n const handleEditDone = () => { dispatch(pipelineAction.change_edit(false)) }\n const handleEditClick = () => { dispatch(pipelineAction.change_edit(true)) }\n\n const { id } = useParams<any>();\n\n const handleDelete = () => {\n dispatch(pipelineAction.deletePipeline(id))\n }\n\n const location = useHistory()\n const pipeline: any = useSelector<any>(state => state.pipeline)\n\n useEffect(() => {\n if (!id && pipeline.create_new == false) {\n location.push(\"/pipelines\")\n }\n if(id){\n dispatch(pipelineAction.detailPipeline(id))\n }\n }, [])\n\n return (\n <Content>\n <Dialog open={show_confirm} >\n <div className=\"text-lg mb-2\">\n Are you sure?\n </div>\n <div className=\"mt-4\" >\n <button onClick={handleDelete} className=\"bg-red-600 text-white px-3 py-1.5 font-medium text-base rounded-md border border-gray-200 flex items-center focus:outline-none focus:shadow-outline-white active:bg-red-900 transition duration-150 ease-in-out inline-flex\">Delete</button>\n <button onClick={() => set_show_confirm(0)} className=\"px-4 py-1.5 font-medium border border-gray-400 mx-1 rounded-md text-base bg-white text-gray-500 hover:bg-gray-100 focus:outline-none focus:shadow-outline-white active:bg-white transition duration-150 ease-in-out inline-flex items-center\">Close</button>\n </div>\n </Dialog>\n {\n pipeline.mode_edit ? <PipelineEditor onClose={handleEditDone} />\n :\n <>\n <div className=\"flex justify-between flex-wrap items-center\">\n <div>\n <h1 className=\"text-2xl font-medium text-gray-700 focus:outline-none focus:shadow-outline-white\">\n {pipeline.title}\n </h1>\n <div className=\"flex items-center mt-1\">\n <div className=\"text-gray-400 font-thin text-base flex\">\n <div className=\"flex\">\n <span className=\"mr-2 font-medium focus:outline-none focus:shadow-outline-white\">{pipeline.category} </span>\n </div> - <span className=\"ml-2\">Created at {new Date(pipeline.created_at).toLocaleString(\"id-ID\", {timeZone: \"Asia/Jakarta\"})} </span>\n </div>\n {pipeline.active ?\n <label className=\"ml-2 text-white rounded-md bg-green-500 px-4 text-sm\">Active</label>\n :\n <label className=\"ml-2 text-white rounded-md bg-yellow-500 px-4 text-sm\">Inactive</label>\n }\n\n </div>\n </div>\n <div className=\"flex flex-wrap items-center\">\n <button onClick={() => set_show_confirm(1)} className=\"text-2xl mx-4 text-red-400 focus:outline-none hover:text-red-500\"><BxTrashIcon /></button>\n <BtnEdit onClick={handleEditClick} />\n </div>\n </div>\n <div className=\"my-4\">\n <div className=\"flex flex-col\">\n {pipeline.notes != \"\" &&\n <div className=\"mt-4 mb-4 rounded px-4 py-3 bg-yellow-100 border-l-4 text-gray-700 border-yellow-400\">\n <b>Notes: </b>\n <p>\n {pipeline.notes}\n </p>\n </div>\n }\n </div>\n </div>\n <HistoryLogsRunning id={id}/>\n </>\n }\n </Content>\n );\n}\n\nexport default PipelineDetailPage;\n","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/pages/PipelinesPage.tsx",["894","895","896"],"import PageTitle from \"../components/organism/PageTitle\"\nimport Content from \"../components/organism/Content\"\nimport BtnExport from \"../components/atoms/buttons/BtnExport\"\nimport BtnCreate from \"../components/atoms/buttons/BtnCreate\"\n\nimport TableStatusIndicator from \"../components/molecule/pipeline/TableStatusIndicator\"\nimport TableRunningStatus from \"../components/molecule/pipeline/TableRunningStatus\"\nimport TableLabelPipeline from \"../components/molecule/pipeline/TableLabelPipeline\"\nimport FilterStatusIndicator from \"../components/molecule/pipeline/FilterStatusIndicator\"\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\n\n\n// action\nimport { pipelineAction } from \"../actions\"\n\nimport { pipelineServices } from \"../services\"\n\n// faker data\nimport fakeData from \"../faker/DataPipelines\"\n\nimport { useEffect, useState } from \"react\"\nimport {\n NavLink\n} from \"react-router-dom\";\n\n\ninterface Props {\n children: React.ReactNode;\n open: boolean;\n}\ninterface InputFlash {\n title: string,\n category: string\n}\n\nfunction Dialog(props: Props) {\n const { open } = props;\n if (!open) {\n return <></>;\n }\n return (\n <div className=\"fixed inset-0 z-50 overflow-auto bg-smoke-light \">\n <div className=\"relative p-6 bg-white w-full max-w-md mx-auto mt-14 flex-col border shadow-lg flex rounded-lg\">\n <div>{props.children}</div>\n </div>\n </div>\n );\n}\n\n\n\nfunction PipelinesPage(): JSX.Element {\n\n\n\n\n const [pipelines, setPipelines] = useState([])\n\n const [active_pipeline, setActivePipeline] = useState(-1)\n\n const [search, setSearch] = useState(\"\")\n\n const [open, setOpen] = useState(false)\n\n const handleClick = () => setOpen(true)\n\n const showIndicatorPipeline = (key_pipeline: number) => setActivePipeline(key_pipeline)\n\n const getListPipelines = () => pipelines.filter((e: any) => active_pipeline !== -1 ? e.StatusLastRunning === active_pipeline : true).filter(\n (e: any) => {\n return e.Name.indexOf(search) !== -1;\n }\n )\n\n const dispatch = useDispatch()\n\n const history = useHistory()\n\n const [input, setInputs] = useState<InputFlash>({\n title: \"\",\n category: \"\"\n })\n \n const { title, category } = input\n\n const handleChange = (e: any) => {\n const { name, value } = e.target;\n setInputs(inputs => ({ ...inputs, [name]: value }));\n }\n\n const saveFlash = (e: any) => {\n e.preventDefault();\n dispatch(pipelineAction.create_flash(title, category))\n history.push(\"/pipelines/detail\")\n }\n\n useEffect(() => {\n pipelineServices.fetchAllJob().then(success => {\n setPipelines(success.jobs)\n })\n }, [])\n\n function dateParse(dt: any) {\n return new Date(dt).toLocaleString(\"id-ID\", {timeZone: \"Asia/Jakarta\"})\n }\n\n return (\n <>\n <Dialog open={open} >\n <form onSubmit={saveFlash}>\n <div className=\"text-lg mb-2\">\n Create new job\n </div>\n <div className=\"mb-4\">\n <input value={title} name=\"title\" onChange={handleChange} required className=\"focus:border-blue-400 focus:ring-2 focus:ring-blue-200 focus:outline-none w-full text-base placeholder-gray-400 border border-gray-300 rounded-md py-1.5 px-3\" type=\"text\" placeholder=\"Name\" />\n </div>\n <div className=\"mb-4\">\n <input value={category} name=\"category\" onChange={handleChange} required className=\"focus:border-blue-400 focus:ring-2 focus:ring-blue-200 focus:outline-none w-full text-base placeholder-gray-400 border border-gray-300 rounded-md py-1.5 px-3\" type=\"text\" placeholder=\"Category\" />\n </div>\n <div className=\"mt-4\" >\n <button type=\"submit\" className=\"bg-red-500 text-white px-3 py-1.5 font-medium text-base rounded-md border border-gray-200 items-center focus:outline-none focus:shadow-outline-white active:bg-red-600 transition duration-150 ease-in-out inline-flex\">Create</button>\n <button onClick={() => setOpen(false)} className=\"px-4 py-1.5 font-medium border border-gray-400 mx-1 rounded-md text-base bg-white text-gray-500 hover:bg-gray-100 focus:outline-none focus:shadow-outline-white active:bg-white transition duration-150 ease-in-out inline-flex items-center\">Close</button>\n </div>\n </form>\n </Dialog>\n <Content className={open ? \"opacity-20\" : \"opacity-1\"}>\n <div className=\"flex justify-between flex-wrap items-center\">\n <PageTitle title=\"List Pipelines\" subtitle=\"Scheduler and automation job pipelines\" />\n <div className=\"flex flex-wrap\">\n <BtnExport onClick={handleClick} />\n <BtnCreate onClick={handleClick} />\n </div>\n </div>\n <div className=\"mb-4 mt-6 flex flex-wrap items-center\">\n <div className=\"w-1/5\">\n <input value={search} onChange={(e: any) => setSearch(e.target.value)} className=\"focus:border-blue-400 focus:ring-2 focus:ring-blue-200 focus:outline-none w-full text-base placeholder-gray-400 border border-gray-300 rounded-md py-1.5 px-3\" type=\"text\" placeholder=\"Search\" />\n </div>\n <FilterStatusIndicator activate_pipeline={active_pipeline} setActive={showIndicatorPipeline} />\n </div>\n <div className=\"w-full mb-6\">\n <div className=\"flex flex-wrap items-center justify-between\">\n <div className=\"w-1/2 opacity-40 font-semibold\">Name</div>\n <div className=\"w-1/5 opacity-40 font-semibold\">Last Running</div>\n {/* <div className=\"w-1/6 opacity-40 font-semibold\">User's Access</div> */}\n <div className=\"w-1/6 opacity-40 font-semibold\">Status</div>\n </div>\n <div className=\" rounded-lg mt-4 border\">\n {\n getListPipelines().map((el: any, key) => {\n return (\n <NavLink to={`/pipelines/detail/${el.ID}`} key={key} className=\"flex justify-between flex-wrap items-center border-b flex-between border-gray-300 p-3\">\n <div className=\"w-1/2 flex flex-wrap items-center\">\n <TableLabelPipeline title={el.Name} category={el.Category} status_pipeline={el.StatusLastRunning} />\n </div>\n <div className=\"w-1/5\">\n <TableRunningStatus status_code={el.StatusLastRunning} />\n {el.StatusLastRunning != 3 && <span className=\"text-gray-500 text-sm px-1 \"> {dateParse(el.LastRunning.Time)}</span>}\n\n </div>\n {/* <div className=\"w-1/6\">\n <TableAvatarUserAccess users={el.access_users} />\n </div> */}\n <div className=\"w-1/6\">\n <TableStatusIndicator key_indicator={el.StatusRunning} />\n </div>\n </NavLink>\n )\n })\n }\n </div>\n </div>\n </Content >\n </>\n );\n}\n\nexport default PipelinesPage;","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/pages/HomePage.tsx",["897"],"import Content from \"../components/organism/Content\"\nimport PageTitle from \"../components/organism/PageTitle\"\nimport CardContent from \"../components/organism/CardContent\"\nimport { useHistory } from \"react-router-dom\";\nimport { useEffect } from \"react\";\n\nfunction HomePage(): JSX.Element {\n const history = useHistory()\n history.push(\"/pipelines\")\n return (\n <Content>\n <PageTitle title=\"Kyaa Flow\" subtitle=\"Welcome\" />\n <CardContent>\n Lorem ipsum dolor sit amet consectetur adipisicing elit. \n </CardContent>\n <CardContent>\n Lorem ipsum dolor sit amet consectetur adipisicing elit. Fugiat asperiores aspernatur eum, accusamus placeat odit sint eveniet deserunt amet esse cum cupiditate consectetur animi autem et dolore laudantium, voluptatum tempora?\n </CardContent>\n </Content>\n );\n}\n\nexport default HomePage;\n","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/pages/EnvironmentsPage.tsx",["898","899","900"],"import Content from \"../components/organism/Content\"\nimport PageTitle from \"../components/organism/PageTitle\"\nimport BtnCreate from \"../components/atoms/buttons/BtnCreate\"\nimport TerminalFillIcon from \"../components/atoms/icons/TerminalFillIcon\"\nimport ExternalLinkIcon from \"../components/atoms/icons/ExternalLinkIcon\"\nimport BxCogIcon from \"../components/atoms/icons/BxCogIcon\"\nimport PostgresqlIcon from \"../components/atoms/icons/PostgresqlIcon\"\nimport BxlTelegramIcon from \"../components/atoms/icons/BxlTelegramIcon\"\nimport { useEffect, useState } from \"react\"\nimport { pipelineServices } from \"services\"\nimport {\n NavLink\n} from \"react-router-dom\";\n\n\nfunction EnvironmentsPage(): JSX.Element {\n\n const [list_envs, setListEnvs] = useState([])\n\n useEffect(() => {\n pipelineServices.fetchEnvs().then(success => {\n setListEnvs(success.data)\n })\n }, [])\n\n return (\n <Content>\n <div className=\"flex justify-between flex-wrap items-center\">\n <PageTitle title=\"Environments\" subtitle=\"List environments for pipelines\" />\n <BtnCreate onClick={() => console.log(\"Hellow\")} />\n </div>\n <div className=\"my-6\">\n <div className=\"flex flex-row flex-wrap\">\n\n {list_envs.map((env: any) => {\n let envs: JSX.Element = <div className=\"md:w-1/2 lg:w-1/3 w-full flex \">\n <div className=\"w-full\">\n <div className=\"px-4 py-3 flex items-center border rounded-md mr-4 my-2 flex-row\">\n <div className=\"lg:w-1/6 md:w-1/4 sm:w-1/3 w-1/3\">\n <div className=\"p-4 py-4 flex justify-center mr-2 rounded-full bg-gray-100\">\n <TerminalFillIcon className=\"text-4xl\" />\n </div>\n </div>\n <div className=\"w-full pl-4\">\n <div className=\"flex w-full justify-between items-center\">\n <div className=\"items-center text-lg font-medium text-gray-700 flex\">\n {env.Name}\n </div>\n <NavLink to={`/environments/${env.ID}`}>\n <BxCogIcon className=\"text-xl text-gray-400 hover:text-gray-800\" />\n </NavLink>\n </div>\n <span className=\"text-sm text-gray-400 flex items-center\">Type {env.Type}</span>\n {/* <button className=\"px-3 flex items-center border border-gray-300 text-gray-600 rounded-lg mt-3 py-1 text-sm hover:bg-gray-50\">\n Open Shell <ExternalLinkIcon className=\"ml-2\" />\n </button> */}\n </div>\n </div>\n </div>\n </div>\n\n if (env.Type == \"POSTGRES\") {\n envs = <div className=\"md:w-1/2 lg:w-1/3 w-full flex \">\n <div className=\"w-full\">\n <div className=\"px-4 py-3 flex items-center border rounded-md mr-4 my-2 flex-row\">\n <div className=\"lg:w-1/6 md:w-1/4 sm:w-1/3 w-1/3\">\n <div className=\"p-4 py-4 flex justify-center mr-2 rounded-full bg-gray-100\">\n <PostgresqlIcon className=\"text-4xl\" />\n </div>\n </div>\n <div className=\"w-full pl-4\">\n <div className=\"flex w-full justify-between items-center\">\n <div className=\"items-center text-lg font-medium text-gray-700 flex\">\n {env.name}\n </div>\n <NavLink to={`/environments/${env.ID}`}>\n <BxCogIcon className=\"text-xl text-gray-400 hover:text-gray-800\" />\n </NavLink>\n </div>\n <span className=\"text-sm text-gray-400 flex items-center\">Type {env.type}</span>\n <button className=\"px-3 flex items-center border border-gray-300 text-gray-600 rounded-lg mt-3 py-1 text-sm hover:bg-gray-50\">\n Test Connection\n </button>\n </div>\n </div>\n </div>\n </div>\n } else if (env.Type == \"notification/telegram\") {\n envs = <div className=\"md:w-1/2 lg:w-1/3 w-full flex \">\n <div className=\"w-full\">\n <div className=\"px-4 py-3 flex items-center border rounded-md mr-4 my-2 flex-row\">\n <div className=\"lg:w-1/6 md:w-1/4 sm:w-1/3 w-1/3\">\n <div className=\"p-4 py-4 flex justify-center mr-2 rounded-full bg-gray-100\">\n <BxlTelegramIcon className=\"text-4xl\" />\n </div>\n </div>\n <div className=\"w-full pl-4\">\n <div className=\"flex w-full justify-between items-center\">\n <div className=\"items-center text-lg font-medium text-gray-700 flex\">\n {env.Name}\n </div>\n <NavLink to={`/environments/${env.ID}`}>\n <BxCogIcon className=\"text-xl text-gray-400 hover:text-gray-800\" />\n </NavLink>\n </div>\n <span className=\"text-sm text-gray-400 flex items-center\">Type {env.Type}</span>\n {/* <button className=\"px-3 flex items-center border border-gray-300 text-gray-600 rounded-lg mt-3 py-1 text-sm hover:bg-gray-50\">\n Test Send Message\n </button> */}\n </div>\n </div>\n </div>\n </div>\n }\n return <>{envs}</>\n\n })\n }\n </div>\n </div>\n </Content>\n );\n}\n\nexport default EnvironmentsPage;\n\n","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/organism/Navbar.tsx",["901"],"import React from \"react\";\nimport {\n NavLink\n} from \"react-router-dom\";\n\nimport BxLayerIcon from \"components/atoms/icons/BxLayerIcon\";\nimport BxShareAltIcon from \"components/atoms/icons/BxShareAltIcon\";\nimport BxCogIcon from \"components/atoms/icons/BxCogIcon\";\nimport BxHomeAltIcon from \"components/atoms/icons/BxHomeAltIcon\";\nimport UsersAltIcon from \"components/atoms/icons/UsersAltIcon\";\n\n\nfunction Navbar(): JSX.Element {\n return (\n <div className=\"w-16\">\n <div className=\"nav flex fixed py-6 px- shadow flex-col h-full justify-between w-16\" style={{background:\"#e5131d\"}}>\n <div className=\"flex flex-auto items-center flex-col \">\n <span className=\"text-xl text-white px-2 pb-8 font-extrabold cursor-pointer\">Log</span>\n <ul className=\"flex items-center flex-col\">\n <li>\n <a href=\"http://10.54.68.188:8008/rantools\" title=\"Create New\" className=\"opacity-80 text-white hover:bg-red-500 rounded-lg p-2 cursor-pointer block mb-3\" >\n <BxHomeAltIcon className=\"text-2xl\" />\n </a>\n </li>\n <li>\n <NavLink to=\"/pipelines\" title=\"Pipelines\" className=\"opacity-80 text-white hover:bg-red-400 rounded-lg p-2 cursor-pointer block mb-3\" activeClassName=\"opacity-1 text-white bg-red-400 shadow-sm\">\n <BxShareAltIcon className=\"text-2xl\" />\n </NavLink>\n </li>\n <li>\n <NavLink to=\"/environments\" title=\"Environments\" className=\"opacity-80 text-gray-100 hover:bg-red-400 rounded-lg p-2 cursor-pointer block mb-3\" activeClassName=\"opacity-1 text-white bg-red-400 shadow-sm\">\n <BxLayerIcon className=\"text-2xl\" />\n </NavLink>\n </li>\n </ul>\n </div>\n <div className=\"flex flex-col items-center\">\n <div className=\"my-2 cursor-pointer\">\n {/* <img src=\"https://source.unsplash.com/random/68x68?bogor\" className=\"rounded-full w-8 h-8\" alt=\"\" /> */}\n </div>\n <ul>\n <li className=\"text-white hover:bg-red-400 p-2 cursor-pointer rounded-full\">\n <BxCogIcon className=\"text-xl\" />\n </li>\n </ul>\n </div>\n </div >\n </div>\n );\n}\n\nexport default Navbar;\n","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/faker/DataPipelines.ts",[],["902","903"],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/organism/Content.tsx",[],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/organism/PageTitle.tsx",[],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/organism/CardContent.tsx",[],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/buttons/BtnCreate.tsx",[],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/buttons/BtnExport.tsx",[],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/molecule/pipeline/TableRunningStatus.tsx",[],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/molecule/pipeline/TableStatusIndicator.tsx",[],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/molecule/pipeline/TableLabelPipeline.tsx",[],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/molecule/pipeline/TableAvatarUserAccess.tsx",[],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/molecule/pipeline/FilterStatusIndicator.tsx",[],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/molecule/reacflow/PipelineFlow.tsx",["904","905"],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/icons/BxLayerIcon.tsx",[],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/icons/BxShareAltIcon.tsx",[],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/icons/BxCogIcon.tsx",[],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/icons/BxHomeAltIcon.tsx",[],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/icons/BxPlusIcon.tsx",[],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/icons/BxExportIcon.tsx",[],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/icons/BxXIcon.tsx",[],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/icons/BxCheckIcon.tsx",[],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/buttons/BtnSave.tsx",[],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/icons/BxSaveIcon.tsx",[],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/icons/BxHistoryIcon.tsx",[],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/icons/BxsCheckCircleIcon.tsx",[],["906","907"],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/icons/CloseCircleIcon.tsx",[],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/icons/Time4Icon.tsx",[],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/icons/TerminalFillIcon.tsx",[],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/icons/ExternalLinkIcon.tsx",[],["908","909"],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/icons/EditIcon.tsx",[],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/icons/PostgresqlIcon.tsx",[],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/buttons/BtnEdit.tsx",[],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/molecule/HistoryLogsRunning.tsx",["910","911","912","913","914","915"],"import BxHistoryIcon from \"../atoms/icons/BxHistoryIcon\"\nimport Time4Icon from \"../atoms/icons/Time4Icon\"\nimport BxXIcon from \"../atoms/icons/BxXIcon\"\nimport BxCheckIcon from \"../atoms/icons/BxCheckIcon\"\nimport CloseCircleIcon from '../atoms/icons/CloseCircleIcon'\n\nimport {\n NavLink\n} from \"react-router-dom\";\nimport { useEffect, useState } from \"react\"\nimport { pipelineServices } from \"services\"\n\ninterface Props {\n id?: number\n}\n\nfunction HistoryLogsRunning({ id }: Props): JSX.Element {\n\n let [logs, setLogs] = useState([])\n\n let [loading, setLoading] = useState(false)\n\n useEffect(() => {\n setLoading(true)\n const intervalId = setInterval(() => {\n pipelineServices.fetchRunningLogs(id).then(success => {\n setLogs(sortByKey(success.logs_running, \"Sort\"))\n setLoading(false)\n })\n }, 500)\n return () => clearInterval(intervalId); //This is important\n }, [])\n\n function sortByKey(array: any, key: any) {\n return array.sort(function (a: any, b: any) {\n var x = a[key]; var y = b[key];\n return ((x < y) ? -1 : ((x > y) ? 1 : 0));\n });\n }\n\n const icons = (status: any) => {\n if (status == 8) {\n return <CloseCircleIcon className=\"mr-3 text-5xl text-red-600\" />\n } else if (status == 1) {\n return <BxCheckIcon className=\"mr-3 text-5xl text-green-600\" />\n } else if (status == 2) {\n return <Time4Icon className=\"mr-3 text-5xl text-gray-600\" />\n }\n }\n\n if (loading) return <>Loading</>\n return (\n <div className=\"mb-20\">\n <h1 className=\"text-md font-normal text-gray-500 flex items-center\">\n <BxHistoryIcon className=\"text-2xl mr-2 \" /> Logs History Job Running\n </h1>\n {logs.length == 0 && <h1 className=\"text-xl my-8 text-center font-bold text-gray-400\">Data History Logs Empty </h1> }\n <div className=\"mt-4\">\n {logs.map((e: any) => {\n return <NavLink to={`/pipelines/detail/logs/${id}/raw/${e.running_id}`} className=\"py-3 my-4 px-4 flex border rounded-md items-center justify-between\">\n <div>\n <div className=\"text-lg font-medium text-gray-800 flex items-center\">\n {icons(e.status)}\n <div>\n <div>\n <span className=\"text-xs text-gray-400 p-0\">Running at</span>\n {/* <span className=\"text-xs rounded bg-green-500 px-2 mx-2 text-white\">Running</span> */}\n </div>\n <span className=\"text-lg\">{e.running_at}</span>\n </div>\n </div>\n </div>\n <div>\n <span className=\"text-xs block text-right text-gray-400 p-0\">Elapsed time</span>\n <p className=\"text-lg text-right\">{e.elapsed_time}</p>\n </div>\n </NavLink>\n })}\n </div>\n </div>\n );\n}\n\nexport default HistoryLogsRunning;\n","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/molecule/YamlEditor.tsx",["916"],"\nimport CodeMirror from '@uiw/react-codemirror';\nimport 'codemirror/addon/display/autorefresh';\nimport 'codemirror/addon/comment/comment';\nimport 'codemirror/addon/edit/matchbrackets';\nimport 'codemirror/keymap/sublime';\nimport 'codemirror/theme/monokai.css';\nimport { useState } from \"react\"\n\n\ninterface iPros {\n code?: string\n readOnly: boolean,\n onChange: Function\n}\n\nfunction PipelineDetailPage({ code, readOnly, onChange}: iPros): JSX.Element {\n return (<CodeMirror\n onChange={(editor:any) => { onChange(editor.getValue())}}\n value={code}\n options={{\n theme: 'monokai',\n tabSize: 2,\n keyMap: 'sublime',\n mode: 'yaml',\n readOnly: readOnly,\n }}\n />\n );\n}\n\nexport default PipelineDetailPage;\n","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/icons/BxArrowBackIcon.tsx",[],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/buttons/BtnClose.tsx",[],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/icons/BxlTelegramIcon.tsx",[],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/icons/UsersAltIcon.tsx",[],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/icons/PlusCircleIcon.tsx",[],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/icons/PlusIcon.tsx",[],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/icons/BxTrashIcon.tsx",[],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/icons/BxSearchIcon.tsx",[],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/icons/BxUserPlusIcon.tsx",[],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/icons/BxDownloadIcon.tsx",[],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/icons/DownloadIcon.tsx",[],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/pages/PipelineUsersManagePage.tsx",[],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/pages/UserManagesPage.tsx",["917"],"import Content from \"../components/organism/Content\"\nimport CardContent from \"../components/organism/CardContent\"\nimport BxTrashIcon from \"../components/atoms/icons/BxTrashIcon\"\nimport EditIcon from \"../components/atoms/icons/EditIcon\"\nimport UsersAltIcon from \"../components/atoms/icons/UsersAltIcon\"\nimport BxSearchIcon from \"../components/atoms/icons/BxSearchIcon\"\nimport BtnCreate from \"../components/atoms/buttons/BtnCreate\"\nimport { useHistory } from \"react-router-dom\"\nimport {history} from \"../helpers\"\n// import {\n// NavLink\n// } from \"react-router-dom\";\n\n\nfunction UserManages(): JSX.Element {\n // let history = useHistory()\n return (\n <Content>\n <div className=\"mb-4 flex justify-between\">\n <div>\n <h1 className=\"text-2xl font-medium text-gray-700 flex items-center\"><UsersAltIcon className=\"mr-2\" /> Manage Users</h1>\n <span className=\"text-gray-400 font-thin text-base\">List users has registered</span>\n </div>\n <div>\n <BtnCreate onClick={() => {history.push({pathname: \"/\"}) }} text=\"Create User\" />\n </div>\n </div>\n <CardContent>\n <div className=\"flex flex-col\">\n <div className=\"flex flex-row justify-between items-center pb-2\">\n <div className=\"text-center font-medium text-gray-400 flex items-center\">\n <BxSearchIcon className=\"text-lg -mr-6 z-30\" /> <input className=\"focus:border-blue-400 focus:ring-2 focus:ring-blue-200 focus:outline-none w-full text-base placeholder-gray-400 border-gray-300 rounded-md py-1 px-3 pl-7\" type=\"text\" placeholder=\"Search users\" />\n </div>\n </div>\n <div className=\"flex flex-row justify-between items-center border-t py-2\">\n <div className=\"flex items-center\">\n <img src=\"https://source.unsplash.com/random/68x68?people,nature\" width=\"32\" height=\"32\" alt=\"https://source.unsplash.com/random/68x68?people,nature\" className=\"w-10 h-10 object-cover rounded-full bg-gray-100 border-2 border-white cursor-pointer\" loading=\"lazy\" title=\"Lorem\" />\n <div className=\"ml-4\">\n <span className=\"text-md font-medium text-gray-500\">Jhon X Doe </span>\n <label className=\"text-sm block rounded text-gray-400 \">[email protected]</label>\n </div>\n </div>\n <div className=\"flex flex-row items-center\">\n <button className=\"focus:outline-none mr-4 px-2 py-1 rounded-md\">\n <EditIcon className=\"text-xl text-gray-400\" />\n </button>\n <button className=\"focus:outline-none mr-4 bg-red-500 px-2 py-1 rounded-md\">\n <BxTrashIcon className=\"text-xl text-white\" />\n </button>\n </div>\n </div>\n <div className=\"flex flex-row justify-between items-center border-t py-2\">\n <div className=\"flex items-center\">\n <img src=\"https://source.unsplash.com/random/68x68?japan\" width=\"32\" height=\"32\" alt=\"https://source.unsplash.com/random/68x68?people,nature\" className=\"w-10 h-10 object-cover rounded-full bg-gray-100 border-2 border-white cursor-pointer\" loading=\"lazy\" title=\"Lorem\" />\n <div className=\"ml-4\">\n <span className=\"text-md font-medium text-gray-500\">Wired Coder</span>\n <label className=\"text-sm block rounded text-gray-400 \">[email protected]</label>\n </div>\n </div>\n <div className=\"flex flex-row items-center\">\n <button className=\"focus:outline-none mr-4 px-2 py-1 rounded-md\">\n <EditIcon className=\"text-xl text-gray-400\" />\n </button>\n <button className=\"focus:outline-none mr-4 bg-red-500 px-2 py-1 rounded-md\">\n <BxTrashIcon className=\"text-xl text-white\" />\n </button>\n </div>\n </div>\n <div className=\"flex flex-row justify-between items-center border-t py-2\">\n <div className=\"flex items-center\">\n <img src=\"https://source.unsplash.com/random/68x68?jakarta\" width=\"32\" height=\"32\" alt=\"https://source.unsplash.com/random/68x68?people,nature\" className=\"w-10 h-10 object-cover rounded-full bg-gray-100 border-2 border-white cursor-pointer\" loading=\"lazy\" title=\"Lorem\" />\n <div className=\"ml-4\">\n <span className=\"text-md font-medium text-gray-500\">Life is simple</span>\n <label className=\"text-sm block rounded text-gray-400 \">[email protected]</label>\n </div>\n </div>\n <div className=\"flex flex-row items-center\">\n <button className=\"focus:outline-none mr-4 px-2 py-1 rounded-md\">\n <EditIcon className=\"text-xl text-gray-400\" />\n </button>\n <button className=\"focus:outline-none mr-4 bg-red-500 px-2 py-1 rounded-md\">\n <BxTrashIcon className=\"text-xl text-white\" />\n </button>\n </div>\n </div>\n <div className=\"flex flex-row justify-between items-center border-t py-2\">\n <div className=\"flex items-center\">\n <img src=\"https://source.unsplash.com/random/68x68?bogor\" width=\"32\" height=\"32\" alt=\"https://source.unsplash.com/random/68x68?people,nature\" className=\"w-10 h-10 object-cover rounded-full bg-gray-100 border-2 border-white cursor-pointer\" loading=\"lazy\" title=\"Lorem\" />\n <div className=\"ml-4\">\n <span className=\"text-md font-medium text-gray-500\">Niman <label className=\"text-xs rounded-lg font-normal px-2 py-0.5 bg-green-500 text-white \">Super User</label></span>\n <label className=\"text-sm block rounded text-gray-400 \">[email protected]</label>\n </div>\n </div>\n <div className=\"flex flex-row items-center\">\n <button className=\"focus:outline-none mr-4 px-2 py-1 rounded-md\">\n <EditIcon className=\"text-xl text-gray-400\" />\n </button>\n <button className=\"focus:outline-none mr-4 bg-red-500 px-2 py-1 rounded-md\">\n <BxTrashIcon className=\"text-xl text-white\" />\n </button>\n </div>\n </div>\n </div>\n </CardContent>\n </Content>\n );\n}\n\nexport default UserManages;\n","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/pages/PipelineStepLogRawsPage.tsx",["918","919","920","921"],"import Content from \"../components/organism/Content\"\nimport CloseCircleIcon from '../components/atoms/icons/CloseCircleIcon'\nimport Ansi from \"ansi-to-react\";\nimport BxArrowBackIcon from \"../components/atoms/icons/BxArrowBackIcon\"\nimport DownloadIcon from \"../components/atoms/icons/DownloadIcon\"\nimport BxCheckIcon from \"../components/atoms/icons/BxCheckIcon\"\nimport { pipelineServices } from 'services'\nimport { useDispatch, useSelector } from 'react-redux';\nimport { pipelineAction } from \"actions\"\nimport {\n NavLink, useParams\n} from \"react-router-dom\";\nimport { useEffect, useState } from \"react\"\nimport { BASE_URL_API } from \"helpers\"\n\nfunction DownloadButton({ id }: any): JSX.Element {\n const [filter, setFilter] = useState(0)\n return <>\n <select value={filter} onChange={(e: any) => setFilter(e.target.value)} className=\"mr-4 rounded bg-white focus:outline-none border text-gray-600 px-2\">\n <option value=\"0\">All Output</option>\n <option value=\"8\">Error Output</option>\n </select>\n <a href={BASE_URL_API + `/job/${id}/download-raws/${filter}`} className=\"text-2xl\" title=\"Download raw logs\"><DownloadIcon className=\"text-2xl text-gray-600\" /></a></>\n}\n\n\nfunction HomePage(): JSX.Element {\n\n const [log_raws, set_log_raws] = useState([])\n const [running_at, setRunningat] = useState(false)\n\n const { id, id_job } = useParams<any>()\n\n const dispatch = useDispatch()\n\n const pipeline: any = useSelector<any>(state => state.pipeline)\n\n useEffect(() => {\n dispatch(pipelineAction.detailPipeline(id_job))\n const intervalId = setInterval(() => {\n pipelineServices.fetchRunningRawLogs(id).then(\n success => {\n set_log_raws(success.logs_running)\n },\n error => {\n\n }\n )\n }, 500)\n return () => clearInterval(intervalId); //This is important\n }, [])\n\n return (\n <Content>\n <div className=\"flex justify-between flex-wrap\">\n <div>\n <h1 className=\"text-2xl font-medium\">{pipeline.title}</h1>\n <span className=\"text-base text-gray-400\">Raw logs | Job Running at {running_at}</span>\n </div>\n <div>\n <NavLink to={`/pipelines/detail/${id_job}`} className=\"px-4 py-1.5 font-medium mx-1 rounded-md text-base bg-white text-blue-500 hover:bg-gray-100 focus:outline-none focus:shadow-outline-white active:bg-white transition duration-150 ease-in-out inline-flex items-center\">\n <BxArrowBackIcon className=\"mr-2\" /> Back\n </NavLink>\n </div>\n </div>\n <div className=\"mt-4 mb-12\">\n <div className=\"flex flex-col\">\n {log_raws.map((e: any) => {\n if (running_at == false) {\n setRunningat(e.running_at)\n }\n return <div className=\"bg-white border shadow rounded-md mb-6 w-full\">\n <div className=\"flex flex-row justify-between px-3 items-center py-2 \">\n <div className=\"flex flex-wrap flex-row items-center\">\n {e.status == 8 ? <CloseCircleIcon className=\"text-3xl mr-2 text-red-500\" /> :\n <BxCheckIcon className=\"text-3xl mr-2 text-green-500\" />\n }\n\n <span className=\"text-lg font-medium text-gray-700\">{e.job_step_name}\n </span>\n </div>\n <div className=\"flex items-center\">\n <span className=\"text-gray-400 mr-4 font-thin text-sm\"> Running at {e.running_at}</span>\n <div className=\"font-medium mr-4 text-gray-800\">{e.elapsed_time}</div>\n <DownloadButton id={e.id}/>\n </div>\n </div>\n <div className=\"bg-gray-800 rounded-b-md py-3 px-2\" style={{ fontFamily: \"sans-serif\" }}>\n {e.JobRawsLog.map((ex: any) => {\n if (ex.Status == 8) {\n return <pre className=\"text-white text-base px-2 opacity-80 bg-red-500\">\n\n [{new Date(ex.Timestamps).toLocaleString(\"id-ID\", { timeZone: \"Asia/Jakarta\" })}] <Ansi>{ex.RawLog}</Ansi>\n </pre>\n }\n return <pre className=\"text-white opacity-80 text-base px-2\">\n [{new Date(ex.Timestamps).toLocaleString(\"id-ID\", { timeZone: \"Asia/Jakarta\" })}] <Ansi>{ex.RawLog}</Ansi>\n </pre>\n })}\n </div>\n </div>\n })}\n </div>\n </div>\n </Content >\n );\n}\n\nexport default HomePage;\n","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/pages/LoginPage.tsx",["922","923"],"import { useState } from \"react\";\nimport { useDispatch, useSelector } from 'react-redux';\n\nimport BxUserIcon from \"../components/atoms/icons/BxUserIcon\"\nimport CardContent from \"../components/organism/CardContent\"\nimport { useLocation } from 'react-router-dom';\nimport { userActions } from \"../actions\"\nimport { LocationState, InputStateLogin, StoreState } from \"../types\"\nimport { userConstants } from \"../constants\"\n\nimport { userService } from '../services';\n\ninterface StatusState {\n is_error: boolean,\n message: string,\n show_status: boolean,\n}\n\nfunction LoginPage(): JSX.Element {\n\n const [inputs, setInputs] = useState<InputStateLogin>({\n username: \"\",\n password: \"\",\n })\n\n const location = useLocation<LocationState>()\n\n let status = useSelector<StoreState.All, StoreState.Auth>(state => state.auth);\n const dispatch = useDispatch();\n\n\n const { username, password } = inputs\n\n\n const handleChange = (e: any) => {\n const { name, value } = e.target;\n setInputs(inputs => ({ ...inputs, [name]: value }));\n }\n\n function handleSubmit(e: any) {\n e.preventDefault();\n if (username && password) {\n dispatch(userActions.login(username, password, location.state || { state: { pathname: \"/\" } }))\n userService.getPath(\"/test_jwt_works\")\n }\n }\n\n\n return (\n <div className=\"flex w-full h-full \" >\n <div className=\"mt-36 mx-auto lg:w-1/4 sm:w-1/2\">\n <CardContent className=\"w-full p-10 rounded-lg\">\n <div className=\"mb-2\">\n <h1 className=\"text-4xl text-gray-600 text-center font-medium \">Kyaa Flow</h1>\n <h2 className=\"text-center text-lg mt-2 text-gray-400 font-thin\">Login </h2>\n </div>\n {\n status.loggedIn && <div className={`px-3 font-medium py-1 rounded text-white bg-green-500 mb-4`}>Login success</div>\n }\n { status.error && <div className={`px-3 font-medium py-1 rounded text-white bg-red-500 mb-4`}> {status.error} </div>\n }\n <form onSubmit={handleSubmit} name=\"submit\">\n <div className=\"mb-4\">\n <input required onChange={handleChange} value={username} name=\"username\" className=\"focus:border-blue-600 focus:ring-2 focus:ring-blue-200 focus:outline-none w-full text-base placeholder-gray-400 border border-gray-300 rounded-md py-2 px-4\" type=\"text\" placeholder=\"Username\" />\n </div>\n <div>\n <input required onChange={handleChange} value={password} name=\"password\" className=\"focus:border-blue-600 focus:ring-2 focus:ring-blue-200 focus:outline-none w-full text-base placeholder-gray-400 border border-gray-300 rounded-md py-2 px-4\" type=\"password\" placeholder=\"Password\" />\n </div>\n <div className=\"mt-4\">\n {\n status.requestLoggedIn ?\n <button type=\"submit\" disabled className=\"bg-blue-600 opacity-70 cursor-not-allowed text-white px-4 py-1.5 font-medium text-base rounded-md border border-gray-200 items-center focus:outline-none focus:shadow-outline-white active:bg-blue-900 transition duration-150 ease-in-out inline-flex\">\n Loading ...\n </button>\n :\n <button type=\"submit\" className=\"bg-blue-600 text-white px-4 py-1.5 font-medium text-base rounded-md border border-gray-200 items-center focus:outline-none focus:shadow-outline-white active:bg-blue-900 transition duration-150 ease-in-out inline-flex\">\n <BxUserIcon className=\"mr-1\" /> Login\n </button>\n }\n </div>\n </form>\n </CardContent>\n </div>\n </div>\n );\n}\n\nexport default LoginPage;\n","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/AuthComponent.tsx",["924","925","926"],"import React, { useEffect } from \"react\";\nimport { useLocation, useHistory } from 'react-router-dom';\nimport { useDispatch } from 'react-redux';\nimport Navbar from \"./organism/Navbar\"\nimport { userActions } from \"../actions\"\n\ninterface IAuthComponent {\n children: JSX.Element,\n}\n\n\nfunction AuthComponent(props: IAuthComponent) {\n\n let history = useHistory();\n let location = useLocation();\n const dispatch = useDispatch();\n\n useEffect(() => {\n console.log(\"auth\")\n // userActions.checkLogin()\n dispatch(userActions.checkLogin())\n }, []);\n\n return (\n <div className=\"app flex\">\n <Navbar />\n {props.children}\n </div>\n )\n}\n\nexport default AuthComponent","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/components/atoms/icons/BxUserIcon.tsx",[],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/helpers/store.ts",[],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/reducers/index.ts",["927"],"import { combineReducers } from 'redux';\nimport { users } from './user';\nimport { authentication } from \"./auth\"\nimport { pipeline } from \"./pipelines\"\nimport { StoreState } from \"../types\"\n\nconst rootReducer = combineReducers({\n user: users,\n pipeline: pipeline,\n auth: authentication\n});\n\nexport default rootReducer;","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/reducers/user.ts",[],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/constants/index.ts",[],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/constants/user.ts",[],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/reducers/auth.ts",["928"],"import { userConstants } from '../constants';\nimport { IAuthAction } from \"../types\"\n\nlet token = localStorage.getItem('token') || \"\"\n\n\nconst initialState = token != \"\" ? { loggedIn: true, token: token, user: {}} : {loggedIn: false, user: {}, error: \"\", token: \"\"};\n\nexport function authentication(state = initialState, action: IAuthAction) {\n switch (action.type) {\n case userConstants.LOGIN_REQUEST:\n return {\n requestLoggedIn: true\n };\n case userConstants.LOGIN_SUCCESS:\n return {\n loggedIn: true,\n user: action.user\n };\n case userConstants.LOGIN_FAILURE:\n return {\n error: action.error\n };\n case userConstants.LOGOUT:\n return {};\n default:\n return state\n }\n}","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/constants/alert.ts",[],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/actions/index.ts",[],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/actions/alert.ts",[],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/actions/auth.ts",["929","930"],"import { userConstants } from '../constants';\nimport { userService } from '../services';\nimport { history } from '../helpers';\nimport { IUserState, LocationState } from \"../types\"\n\nimport { Dispatch } from 'react';\nimport { Console } from 'console';\n\nexport const userActions = {\n login,\n checkLogin\n};\n\n\nfunction login(username: string, password: string, from: LocationState): Dispatch<any> {\n return dispatch => {\n dispatch(request());\n\n userService.login(username, password)\n .then(\n user => {\n dispatch(success(user.user));\n history.push(\"/pipelines\");\n },\n error => {\n dispatch(failure(error.toString()));\n }\n );\n };\n\n function request() { return { type: userConstants.LOGIN_REQUEST } }\n function success(user: IUserState) { return { type: userConstants.LOGIN_SUCCESS, user } }\n function failure(error: string) { return { type: userConstants.LOGIN_FAILURE, error } }\n}\n\n\nfunction checkLogin(): Dispatch<any> {\n return dispatch => {\n let token = localStorage.getItem(\"token\");\n if (token != \"\") {\n // userService.logout()\n // history.push(\"/login\");\n }\n userService.getPath(\"/userinfo\")\n .then(user => {\n dispatch(success(user.user));\n },\n error => {\n console.log(error);\n // userService.logout();\n history.push(\"/login\");\n })\n }\n function success(user: IUserState) { return { type: userConstants.LOGIN_SUCCESS, user } }\n}","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/services/index.ts",[],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/helpers/index.ts",[],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/services/user.ts",[],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/helpers/history.ts",[],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/helpers/auth-header.ts",["931"],"export function authHeader() {\n // return authorization header with jwt token\n let token = localStorage.getItem('token') || \"\";\n if (token != \"\") {\n return { 'Authorization': 'Bearer ' + token };\n } else {\n return {};\n }\n}\n\n","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/types/index.ts",[],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/constants/pipelines.ts",[],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/actions/pipelines.ts",[],"/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/reducers/pipelines.ts",["932"],"import { pipelineConstants } from '../constants';\n\n\nconst stateInit = {\n title: \"\",\n category: \"\",\n mode_edit: false,\n code: `keep_logs_running: 10\n\nstep:\n- name : Extract data from source scraper api\n strict_error: true\n type : ssh\n env : server-bla2\n commands:\n - /home/xxx/anaconda3/envs/rantools/bin/python -u test_run.py\n\nschedule: \n- 0 2 * * * `,\n active: true,\n create_new: false,\n notes: \"\",\n id: null,\n loading: false,\n has_error: false,\n message_error: \"\",\n message_success: \"\",\n has_success: false,\n}\n\nexport function pipeline(state = stateInit, action: any) {\n switch (action.type) {\n case pipelineConstants.CREATE_FLASH:\n return {\n ...state,\n id: null,\n title: action.title,\n category: action.category,\n mode_edit: true,\n create_new: true,\n has_error: false,\n message_error: \"\",\n message_success: \"\",\n has_success: false,\n notes: \"\",\n code: stateInit.code\n };\n case pipelineConstants.PIPELINE_CHANGE_TITLE:\n return {...state, title:action.title};\n case pipelineConstants.PIPELINE_CHANGE_CATEGORY:\n return {...state, category:action.category};\n case pipelineConstants.PIPELINE_CHANGE_CODE:\n return {...state, code: action.code}\n case pipelineConstants.PIPELINE_CHANGE_ACTIVE:\n return {...state, active: action.active}\n case pipelineConstants.PIPELINE_CHANGE_NOTES:\n return {...state, notes: action.notes}\n case pipelineConstants.PIPELINE_SET_LOADING:\n return {...state, loading: true}\n case pipelineConstants.PIPELINE_HAS_ERROR:\n return {...state, has_error: true, has_success:false, message_error: action.error}\n case pipelineConstants.PIPELINE_SAVE_SUCCESS:\n return {...state, has_error: false, has_success:true,create_new:false, mode_edit:false, message_success: action.success}\n case pipelineConstants.PIPELINE_DETAIL_DATA_TO_STATE:\n if (action.active != 1){\n action.active = 0\n }\n return {...state, ...action, create_new:false, mode_edit: false, message_error: \"\", has_success:false, has_error:false, message_success: \"\"}\n case pipelineConstants.PIPELINE_CLEAR_STATE:\n return {...state, create_new:false, mode_edit: false, message_error: \"\", has_success:false, has_error:false, message_success: \"\"}\n case pipelineConstants.PIPELINE_EDIT_MODE:\n return {...state, ...action, create_new:false, mode_edit: action.edit, message_error: \"\", has_success:false, has_error:false, message_success: \"\"}\n default:\n return state\n }\n}","/home/xxx/Project/Project_OpenSource/kyaa-flow/ui/src/services/pipeline.ts",["933","934"],"import { authHeader, BASE_URL_API } from '../helpers';\nexport const pipelineServices = {\n createNewPipeline,\n fetchAllJob,\n firstJob,\n updatePipeline,\n deletePipeline,\n fetchRunningLogs,\n fetchRunningRawLogs,\n fetchEnvs\n};\n\n\n\nfunction createNewPipeline(name: string, category: string, description:string, active_bool:boolean, code:string) {\n\n let active = 8\n if (active_bool == true){\n active = 1\n }\n\n const requestOptions : any = {\n method: 'POST',\n headers: { 'Content-Type': 'application/json', ...authHeader()},\n body: JSON.stringify({ name, category, description, active, code })\n };\n\n return fetch(`${BASE_URL_API}/create-job`, requestOptions)\n .then(handleResponse);\n}\n\nfunction deletePipeline(id:any){\n const requestOptions : any = {\n method: 'DELETE',\n headers: { 'Content-Type': 'application/json', ...authHeader()},\n };\n return fetch(`${BASE_URL_API}/job/${id}`, requestOptions)\n .then(handleResponse);\n}\n\n\nfunction updatePipeline(id:any, name: string, category: string, description:string, active_bool:boolean, code:string) {\n\n let active = 8\n if (active_bool == true){\n active = 1\n }\n\n const requestOptions : any = {\n method: 'PUT',\n headers: { 'Content-Type': 'application/json', ...authHeader()},\n body: JSON.stringify({ name, category, description, active, code })\n };\n\n return fetch(`${BASE_URL_API}/job/${id}`, requestOptions)\n .then(handleResponse);\n}\n\n\n\nfunction fetchAllJob(){\n const requestOptions : any = {\n method: 'GET',\n headers: { 'Content-Type': 'application/json', ...authHeader()},\n };\n\n return fetch(`${BASE_URL_API}/jobs`, requestOptions)\n .then(handleResponse);\n}\n\nfunction firstJob(jobid:any){\n const requestOptions : any = {\n method: 'GET',\n headers: { 'Content-Type': 'application/json', ...authHeader()},\n };\n\n return fetch(`${BASE_URL_API}/job/${jobid}`, requestOptions)\n .then(handleResponse);\n}\n\n\nfunction fetchRunningLogs(jobid:any){\n const requestOptions : any = {\n method: 'GET',\n headers: { 'Content-Type': 'application/json', ...authHeader()},\n };\n return fetch(`${BASE_URL_API}/job/${jobid}/logs`, requestOptions)\n .then(handleResponse);\n}\n\n\nfunction fetchRunningRawLogs(running_id:any){\n const requestOptions : any = {\n method: 'GET',\n headers: { 'Content-Type': 'application/json', ...authHeader()},\n };\n return fetch(`${BASE_URL_API}/job/${running_id}/raw-logs`, requestOptions)\n .then(handleResponse);\n}\n\n\n\n\nfunction handleResponse(response: Response) {\n return response.text().then(text => {\n const data = text && JSON.parse(text);\n if (!response.ok) {\n const error = (data && data.message) || response.statusText;\n return Promise.reject(error);\n }\n return data;\n });\n}\n\n\n\nfunction fetchEnvs(){\n const requestOptions : any = {\n method: 'GET',\n headers: { 'Content-Type': 'application/json', ...authHeader()},\n };\n\n return fetch(`${BASE_URL_API}/env`, requestOptions)\n .then(handleResponse);\n}","/home/xxx/Project/Golang_Lab/go-cron/ui/src/index.tsx",[],["935","936"],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/reportWebVitals.ts",[],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/helpers/store.ts",[],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/App.tsx",[],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/pages/HomePage.tsx",["937"],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/pages/PipelineStepLogRawsPage.tsx",["938","939","940","941"],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/pages/PipelinesPage.tsx",["942","943","944","945","946","947","948"],"import PageTitle from \"../components/organism/PageTitle\"\nimport Content from \"../components/organism/Content\"\nimport BtnExport from \"../components/atoms/buttons/BtnExport\"\nimport BtnCreate from \"../components/atoms/buttons/BtnCreate\"\n\nimport TableStatusIndicator from \"../components/molecule/pipeline/TableStatusIndicator\"\nimport TableRunningStatus from \"../components/molecule/pipeline/TableRunningStatus\"\nimport TableLabelPipeline from \"../components/molecule/pipeline/TableLabelPipeline\"\nimport FilterStatusIndicator from \"../components/molecule/pipeline/FilterStatusIndicator\"\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\n\n// action\nimport { pipelineAction } from \"../actions\"\n\nimport { pipelineServices } from \"../services\"\n\nimport { useEffect, useState } from \"react\"\nimport {\n NavLink\n} from \"react-router-dom\";\n\n\n\n\ninterface Props {\n children: React.ReactNode;\n open: boolean;\n}\ninterface InputFlash {\n title: string,\n category: string\n}\n\nfunction Dialog(props: Props) {\n const { open } = props;\n if (!open) {\n return <></>;\n }\n return (\n <div className=\"fixed inset-0 z-50 overflow-auto bg-smoke-light \">\n <div className=\"relative p-6 bg-white w-full max-w-md mx-auto mt-14 flex-col border shadow-lg flex rounded-lg\">\n <div>{props.children}</div>\n </div>\n </div>\n );\n}\n\n\n\nfunction PipelinesPage(): JSX.Element {\n\n const [pipelines, setPipelines] = useState([])\n\n const [paginate, setPaginate] = useState<any>({})\n\n const [active_pipeline, setActivePipeline] = useState(-1)\n\n const [status_pipeline, setStatusPipeline] = useState(\"all\")\n\n const [search, setSearch] = useState(\"\")\n\n const [open, setOpen] = useState(false)\n\n const [sortBy,] = useState(\"updated_at desc\")\n\n const handleClick = () => setOpen(true)\n\n const showIndicatorPipeline = (key_pipeline: number) => {\n if (key_pipeline == 8) {\n setStatusPipeline(\"error\")\n fetchPipeline(1, search, \"error\")\n } else if (key_pipeline == 1) {\n setStatusPipeline(\"success\")\n fetchPipeline(1, search, \"success\")\n } else {\n fetchPipeline(1, search)\n }\n setActivePipeline(key_pipeline)\n }\n\n\n const dispatch = useDispatch()\n\n const history = useHistory()\n\n const [input, setInputs] = useState<InputFlash>({\n title: \"\",\n category: \"\"\n })\n\n const { title, category } = input\n\n const handleChange = (e: any) => {\n const { name, value } = e.target;\n setInputs(inputs => ({ ...inputs, [name]: value }));\n }\n\n const saveFlash = (e: any) => {\n e.preventDefault();\n dispatch(pipelineAction.create_flash(title, category))\n history.push(\"/pipelines/detail\")\n }\n\n const fetchPipeline = (num_page: number = 1, xsearch: string = search, status_pipeline: string = \"all\") => {\n pipelineServices.fetchAllJob(num_page, 8, sortBy, xsearch, status_pipeline,).then(success => {\n setPipelines(success.jobs)\n setPaginate(success.paginate)\n })\n }\n\n const onSearch = (value: any) => {\n setSearch(value);\n fetchPipeline(1, value)\n }\n\n const DetailCount = () => {\n let to = paginate.page * paginate.limit\n let to_show = to > paginate.count ? paginate.count : to\n let from = to_show == 0 ? 0 : (paginate.offset + 1)\n return <>\n Showing {from} to {to_show} of {paginate.count} results\n </>\n }\n\n useEffect(() => {\n fetchPipeline()\n }, [])\n\n function dateParse(dt: any) {\n return new Date(dt).toLocaleString(\"id-ID\", { timeZone: \"Asia/Jakarta\" })\n }\n\n return (\n <>\n <Dialog open={open} >\n <form onSubmit={saveFlash}>\n <div className=\"text-lg mb-2\">\n Create new job\n </div>\n <div className=\"mb-4\">\n <input value={title} name=\"title\" onChange={handleChange} required className=\"focus:border-blue-400 focus:ring-2 focus:ring-blue-200 focus:outline-none w-full text-base placeholder-gray-400 border border-gray-300 rounded-md py-1.5 px-3\" type=\"text\" placeholder=\"Name\" />\n </div>\n <div className=\"mb-4\">\n <input value={category} name=\"category\" onChange={handleChange} required className=\"focus:border-blue-400 focus:ring-2 focus:ring-blue-200 focus:outline-none w-full text-base placeholder-gray-400 border border-gray-300 rounded-md py-1.5 px-3\" type=\"text\" placeholder=\"Category\" />\n </div>\n <div className=\"mt-4\" >\n <button type=\"submit\" className=\"bg-red-500 text-white px-3 py-1.5 font-medium text-base rounded-md border border-gray-200 items-center focus:outline-none focus:shadow-outline-white active:bg-red-600 transition duration-150 ease-in-out inline-flex\">Create</button>\n <button onClick={() => setOpen(false)} className=\"px-4 py-1.5 font-medium border border-gray-400 mx-1 rounded-md text-base bg-white text-gray-500 hover:bg-gray-100 focus:outline-none focus:shadow-outline-white active:bg-white transition duration-150 ease-in-out inline-flex items-center\">Close</button>\n </div>\n </form>\n </Dialog>\n <Content className={open ? \"opacity-20\" : \"opacity-1\"}>\n <div className=\"flex justify-between flex-wrap items-center\">\n <PageTitle title=\"List Pipelines\" subtitle=\"Scheduler and automation job pipelines\" />\n <div className=\"flex flex-wrap\">\n <BtnExport onClick={() => { console.log(\"\") }} />\n <BtnCreate onClick={handleClick} />\n </div>\n </div>\n <div className=\"mb-4 mt-6 flex flex-wrap items-center\">\n <div className=\"w-1/5\">\n <input value={search} onInput={(e: any) => onSearch(e.target.value)} className=\"focus:border-blue-400 focus:ring-2 focus:ring-blue-200 focus:outline-none w-full text-base placeholder-gray-400 border border-gray-300 rounded-md py-1.5 px-3\" type=\"text\" placeholder=\"Search\" />\n </div>\n <FilterStatusIndicator activate_pipeline={active_pipeline} setActive={showIndicatorPipeline} />\n </div>\n <div className=\"w-full mb-4\">\n <div className=\"flex flex-wrap items-center justify-between\">\n <div className=\"w-1/2 opacity-40 font-semibold\">Name</div>\n <div className=\"w-1/5 opacity-40 font-semibold\">Last Running</div>\n {/* <div className=\"w-1/6 opacity-40 font-semibold\">User's Access</div> */}\n <div className=\"w-1/6 opacity-40 font-semibold\">Status</div>\n </div>\n <div className=\" rounded-lg mt-4 border\">\n {\n pipelines.map((el: any, key) => {\n return (\n <NavLink to={`/pipelines/detail/${el.ID}`} key={key} className=\"flex justify-between flex-wrap items-center border-b flex-between p-3\">\n <div className=\"w-1/2 flex flex-wrap items-center\">\n <TableLabelPipeline title={el.Name} category={el.Category} status_pipeline={el.StatusLastRunning} />\n </div>\n <div className=\"w-1/5\">\n <TableRunningStatus status_code={el.StatusLastRunning} />\n {el.StatusLastRunning != 3 && <span className=\"text-gray-500 text-sm px-1 \"> {dateParse(el.LastRunning.Time)}</span>}\n\n </div>\n <div className=\"w-1/6\">\n <TableStatusIndicator key_indicator={el.StatusRunning} />\n </div>\n </NavLink>\n )\n })\n }\n </div>\n </div>\n <div className=\"flex flex-row justify-between mb-12 items-center\">\n <div className=\"text-gray-700\">\n <DetailCount />\n </div>\n <div>\n {paginate.has_prev && <button className=\"border focus:outline-none mr-2 border-gray-300 px-4 py-1.5 rounded-lg\" onClick={() => { fetchPipeline(paginate.prev_page) }}>Previous</button>}\n {paginate.has_next && <button className=\"border focus:outline-none border-gray-300 px-4 py-1.5 rounded-lg\" onClick={() => { fetchPipeline(paginate.next_page) }}>Next</button>}\n </div>\n </div>\n </Content >\n </>\n );\n}\n\nexport default PipelinesPage;","/home/xxx/Project/Golang_Lab/go-cron/ui/src/pages/UserManagesPage.tsx",["949"],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/pages/PipelineDetailPage.tsx",["950","951","952","953","954","955","956"],"import Content from \"../components/organism/Content\"\nimport BtnSave from \"../components/atoms/buttons/BtnSave\"\nimport HistoryLogsRunning from \"../components/molecule/HistoryLogsRunning\"\nimport BxXIcon from \"components/atoms/icons/BxXIcon\"\nimport BxTrashIcon from \"components/atoms/icons/BxTrashIcon\"\nimport BtnEdit from \"../components/atoms/buttons/BtnEdit\"\nimport EditIcon from \"../components/atoms/icons/EditIcon\"\nimport PlusIcon from \"../components/atoms/icons/PlusIcon\"\nimport AutosizeInput from 'react-input-autosize';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useHistory, useParams } from 'react-router-dom';\n// action\nimport { pipelineAction } from \"../actions\"\nimport { pipelineServices } from \"../services\"\nimport YamlEditor from \"../components/molecule/YamlEditor\"\nimport {\n NavLink\n} from \"react-router-dom\";\n\nimport React, { useEffect, useRef, useState } from \"react\"\n\n\ninterface IPropsPipelineEditor {\n text?: string;\n onClose: React.EffectCallback\n}\n\nfunction PipelineEditor({ onClose }: IPropsPipelineEditor): JSX.Element {\n\n const dispatch = useDispatch()\n const location = useHistory()\n\n\n const handleOnInputTitle = (e: any) => {\n dispatch(pipelineAction.change_title(e.target.value))\n }\n\n\n const handleOnInputCategory = (e: any) => {\n dispatch(pipelineAction.change_category(e.target.value))\n }\n\n const handleClickClose = () => {\n if (pipeline.create_new) {\n location.push(\"/pipelines\")\n return\n }\n dispatch(pipelineAction.change_edit(false))\n }\n\n const handleClickSave = () => {\n if (pipeline.id) {\n dispatch(pipelineAction.updateJob(pipeline.id, pipeline))\n return\n }\n dispatch(pipelineAction.saveNewJob(pipeline))\n }\n\n const pipeline: any = useSelector<any>(state => state.pipeline)\n\n return <>\n <div className=\"flex justify-between flex-wrap items-center\">\n <div>\n <div className=\"flex\">\n <AutosizeInput onChange={handleOnInputTitle}\n value={pipeline.title}\n maxLength={70}\n inputClassName=\"text-2xl capitalize pb-1 rounded w-full overflow-hidden font-medium text-gray-700 focus:outline-none focus:shadow-outline-white\"\n /><EditIcon className=\"inline ml-2 text-gray-300 \" />\n </div>\n <div className=\"flex items-center mt-1\">\n <div className=\"text-gray-400 font-thin text-base flex\">\n <div className=\"flex\">\n <AutosizeInput maxLength={30} inputClassName=\"mr-2 capitalize font-medium focus:outline-none focus:shadow-outline-white\" value={pipeline.category} onChange={handleOnInputCategory} />\n <EditIcon className=\"inline mr-2 text-gray-300 \" />\n </div>\n </div>\n\n </div>\n </div>\n <div className=\"flex flex-wrap items-center\">\n <div className=\"flex items-center justify-center mr-4\">\n <label className=\"flex items-center cursor-pointer\">\n <div className=\"mr-3 text-gray-400 font-medium\">\n Status active\n </div>\n <div className=\"relative\">\n <input type=\"checkbox\" defaultChecked={pipeline.active} onChange={() => dispatch(pipelineAction.change_active(!pipeline.active))} className=\"sr-only\" />\n <div className=\"block dot-block bg-gray-200 border w-14 h-8 rounded-full\"></div>\n <div className=\"dot absolute left-1 top-1 bg-white w-6 h-6 rounded-full transition\"></div>\n </div>\n </label>\n </div>\n <BtnSave onClick={handleClickSave} text=\"Save\" />\n\n <button onClick={handleClickClose} className=\"ml-2 hover:text-gray-700 text-gray-400 focus:outline-none focus:shadow-outline-white\"><BxXIcon className=\"text-4xl\" /></button>\n\n </div>\n </div>\n <div className=\"my-4 mb-4\">\n <div className=\"flex flex-col\">\n <div className=\"w-full\">\n <YamlEditor code={pipeline.code} readOnly={false} onChange={(value: any) => dispatch(pipelineAction.change_code(value))} />\n </div>\n <div className=\"w-full mt-3\">\n <label className=\"block text-gray-600 font-medium mb-1.5 text-lg\">Notes: </label>\n <textarea onChange={(e) => dispatch(pipelineAction.change_notes(e.target.value))} rows={6} className=\"focus:ring-2 focus:ring-blue-500 ring-1 ring-gray-400 focus:outline-none w-full text-base placeholder-gray-400 border rounded py-1.5 px-3\" placeholder=\"Enter some long form content.\" value={pipeline.notes}></textarea>\n </div>\n </div>\n </div>\n {pipeline.has_error &&\n <div className=\"p-4 text-white bg-red-500 rounded-lg\">\n {pipeline.message_error}\n </div>\n }\n {\n pipeline.has_success &&\n <div className=\"p-4 text-white bg-green-500 rounded-lg\">\n {pipeline.message_success}\n </div>\n }\n </>\n}\n\n\nfunction Dialog(props: any) {\n const { open } = props;\n if (!open) {\n return <></>;\n }\n return (\n <div className=\"fixed inset-0 z-50 overflow-auto bg-smoke-light \">\n <div className=\"relative p-6 bg-white w-full max-w-md mx-auto mt-14 flex-col border shadow-lg flex rounded-lg opacity-1\">\n <div>{props.children}</div>\n </div>\n </div>\n );\n}\n\n\nfunction PipelineDetailPage(): JSX.Element {\n\n let [show_confirm, set_show_confirm] = useState(0)\n\n const dispatch = useDispatch()\n const handleEditDone = () => { dispatch(pipelineAction.change_edit(false)) }\n const handleEditClick = () => { dispatch(pipelineAction.change_edit(true)) }\n\n const { id } = useParams<any>();\n\n const handleDelete = () => {\n dispatch(pipelineAction.deletePipeline(id))\n }\n\n const location = useHistory()\n const pipeline: any = useSelector<any>(state => state.pipeline)\n\n useEffect(() => {\n if (!id && pipeline.create_new == false) {\n location.push(\"/pipelines\")\n }\n if (id) {\n dispatch(pipelineAction.detailPipeline(id))\n }\n }, [])\n\n return (\n <>\n <Dialog open={show_confirm} >\n <div className=\"text-lg mb-2\">\n Delete job pipeline, Are you sure?\n </div>\n <div className=\"mt-4\" >\n <button onClick={handleDelete} className=\"bg-red-600 text-white px-3 py-1.5 font-medium text-base rounded-md border border-gray-200 flex items-center focus:outline-none focus:shadow-outline-white active:bg-red-900 transition duration-150 ease-in-out inline-flex\">Delete</button>\n <button onClick={() => set_show_confirm(0)} className=\"px-4 py-1.5 font-medium border border-gray-400 mx-1 rounded-md text-base bg-white text-gray-500 hover:bg-gray-100 focus:outline-none focus:shadow-outline-white active:bg-white transition duration-150 ease-in-out inline-flex items-center\">Close</button>\n </div>\n </Dialog>\n <Content className={show_confirm ? \"opacity-20\" : \"opacity-1\"}>\n\n {\n pipeline.mode_edit ? <PipelineEditor onClose={handleEditDone} />\n :\n <>\n <div className=\"flex justify-between flex-wrap items-center\">\n <div>\n <h1 className=\"text-2xl font-medium text-gray-700 focus:outline-none focus:shadow-outline-white\">\n {pipeline.title}\n </h1>\n <div className=\"flex items-center mt-1\">\n <div className=\"text-gray-400 font-thin text-base flex\">\n <div className=\"flex\">\n <span className=\"mr-2 font-medium focus:outline-none focus:shadow-outline-white\">{pipeline.category} </span>\n </div> - <span className=\"ml-2\">Created at {new Date(pipeline.created_at).toLocaleString(\"id-ID\", { timeZone: \"Asia/Jakarta\" })} </span>\n </div>\n {pipeline.active ?\n <label className=\"ml-2 text-white rounded-md bg-green-500 px-4 text-sm\">Active</label>\n :\n <label className=\"ml-2 text-white rounded-md bg-yellow-500 px-4 text-sm\">Inactive</label>\n }\n\n </div>\n </div>\n <div className=\"flex flex-wrap items-center\">\n <button onClick={() => {\n if (pipeline.active) {\n alert(\"Edit and set inactive this job pipeline for delete action\")\n return\n }\n set_show_confirm(1)\n }} className=\"text-2xl mx-4 text-red-400 focus:outline-none hover:text-red-500\"><BxTrashIcon /></button>\n <BtnEdit onClick={handleEditClick} />\n </div>\n </div>\n <div className=\"my-4\">\n <div className=\"flex flex-col\">\n {pipeline.notes != \"\" &&\n <div className=\"mt-4 mb-4 rounded px-4 py-3 bg-yellow-100 border-l-4 text-gray-700 border-yellow-400\">\n <b>Notes: </b>\n <p>\n {pipeline.notes}\n </p>\n </div>\n }\n </div>\n </div>\n <HistoryLogsRunning id={id} />\n </>\n }\n </Content>\n </>\n );\n}\n\nexport default PipelineDetailPage;\n","/home/xxx/Project/Golang_Lab/go-cron/ui/src/pages/LoginPage.tsx",["957","958","959","960"],"import { useEffect, useState } from \"react\";\nimport { useDispatch, useSelector } from 'react-redux';\n\nimport BxUserIcon from \"../components/atoms/icons/BxUserIcon\"\nimport CardContent from \"../components/organism/CardContent\"\nimport { useHistory, useLocation } from 'react-router-dom';\nimport { userActions } from \"../actions\"\nimport { LocationState, InputStateLogin, StoreState } from \"../types\"\nimport { userConstants } from \"../constants\"\n\nimport { userService } from '../services';\n\ninterface StatusState {\n is_error: boolean,\n message: string,\n show_status: boolean,\n}\n\nfunction LoginPage(): JSX.Element {\n\n const [inputs, setInputs] = useState<InputStateLogin>({\n username: \"\",\n password: \"\",\n })\n\n const location = useLocation<LocationState>()\n\n let status = useSelector<StoreState.All, StoreState.Auth>(state => state.auth);\n const dispatch = useDispatch();\n const history = useHistory()\n\n const { username, password } = inputs\n\n\n const handleChange = (e: any) => {\n const { name, value } = e.target;\n setInputs(inputs => ({ ...inputs, [name]: value }));\n }\n\n function handleSubmit(e: any) {\n e.preventDefault();\n if (username && password) {\n dispatch(userActions.login(username, password, location.state || { state: { pathname: \"/\" } }))\n userService.getPath(\"/test_jwt_works\")\n }\n }\n useEffect(() => {\n if (status.loggedIn == true) {\n history.push(\"/pipelines\")\n }\n }, [])\n\n return (\n <div className=\"flex w-full h-full \" >\n <div className=\"mt-36 mx-auto lg:w-1/4 sm:w-1/2\">\n <CardContent className=\"w-full p-10 rounded-lg\">\n <div className=\"mb-2\">\n <h1 className=\"text-4xl text-gray-600 text-center font-medium \">Kyaa Flow</h1>\n <h2 className=\"text-center text-lg mt-2 text-gray-400 font-thin\">Login </h2>\n </div>\n {\n status.loggedIn && <div className={`px-3 font-medium py-1 rounded text-white bg-green-500 mb-4`}>Login success</div>\n }\n {status.error && <div className={`px-3 font-medium py-1 rounded text-white bg-red-500 mb-4`}> {status.error} </div>\n }\n <form onSubmit={handleSubmit} name=\"submit\">\n <div className=\"mb-4\">\n <input required onChange={handleChange} value={username} name=\"username\" className=\"focus:border-blue-600 focus:ring-2 focus:ring-blue-200 focus:outline-none w-full text-base placeholder-gray-400 border border-gray-300 rounded-md py-2 px-4\" type=\"text\" placeholder=\"Username\" />\n </div>\n <div>\n <input required onChange={handleChange} value={password} name=\"password\" className=\"focus:border-blue-600 focus:ring-2 focus:ring-blue-200 focus:outline-none w-full text-base placeholder-gray-400 border border-gray-300 rounded-md py-2 px-4\" type=\"password\" placeholder=\"Password\" />\n </div>\n <div className=\"mt-4\">\n {\n status.requestLoggedIn ?\n <button type=\"submit\" disabled className=\"bg-blue-600 opacity-70 cursor-not-allowed text-white px-4 py-1.5 font-medium text-base rounded-md border border-gray-200 items-center focus:outline-none focus:shadow-outline-white active:bg-blue-900 transition duration-150 ease-in-out inline-flex\">\n Loading ...\n </button>\n :\n <button type=\"submit\" className=\"bg-blue-600 text-white px-4 py-1.5 font-medium text-base rounded-md border border-gray-200 items-center focus:outline-none focus:shadow-outline-white active:bg-blue-900 transition duration-150 ease-in-out inline-flex\">\n <BxUserIcon className=\"mr-1\" /> Login\n </button>\n }\n </div>\n </form>\n </CardContent>\n </div>\n </div>\n );\n}\n\nexport default LoginPage;\n","/home/xxx/Project/Golang_Lab/go-cron/ui/src/pages/PipelineUsersManagePage.tsx",[],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/AuthComponent.tsx",["961","962","963"],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/pages/EnvironmentsPage.tsx",["964","965","966"],"import Content from \"../components/organism/Content\"\nimport PageTitle from \"../components/organism/PageTitle\"\nimport BtnCreate from \"../components/atoms/buttons/BtnCreate\"\nimport TerminalFillIcon from \"../components/atoms/icons/TerminalFillIcon\"\nimport ExternalLinkIcon from \"../components/atoms/icons/ExternalLinkIcon\"\nimport BxCogIcon from \"../components/atoms/icons/BxCogIcon\"\nimport PostgresqlIcon from \"../components/atoms/icons/PostgresqlIcon\"\nimport BxlTelegramIcon from \"../components/atoms/icons/BxlTelegramIcon\"\nimport { useEffect, useState } from \"react\"\nimport { pipelineServices } from \"services\"\nimport {\n NavLink\n} from \"react-router-dom\";\n\n\nfunction EnvironmentsPage(): JSX.Element {\n\n const [list_envs, setListEnvs] = useState([])\n\n useEffect(() => {\n pipelineServices.fetchEnvs().then(success => {\n setListEnvs(success.data)\n })\n }, [])\n\n return (\n <Content>\n <div className=\"flex justify-between flex-wrap items-center\">\n <PageTitle title=\"Environments\" subtitle=\"List environments for pipelines\" />\n\n <NavLink to={'environments/create'} onClick={() => console.log(\"Hellow\")}>\n <BtnCreate onClick={() => {}}/>\n </NavLink>\n </div>\n <div className=\"my-6\">\n <div className=\"flex flex-row flex-wrap\">\n\n {list_envs.map((env: any) => {\n let envs: JSX.Element = <div className=\"md:w-1/2 lg:w-1/3 w-full flex \">\n <div className=\"w-full\">\n <div className=\"px-4 py-3 flex items-center border rounded-md mr-4 my-2 flex-row\">\n <div className=\"lg:w-1/6 md:w-1/4 sm:w-1/3 w-1/3\">\n <div className=\"p-4 py-4 flex justify-center mr-2 rounded-full bg-gray-100\">\n <TerminalFillIcon className=\"text-4xl\" />\n </div>\n </div>\n <div className=\"w-full pl-4\">\n <div className=\"flex w-full justify-between items-center\">\n <div className=\"items-center text-lg font-medium text-gray-700 flex\">\n {env.Name}\n </div>\n <NavLink to={`/environments/edit/${env.ID}`}>\n <BxCogIcon className=\"text-xl text-gray-400 hover:text-gray-800\" />\n </NavLink>\n </div>\n <span className=\"text-sm text-gray-400 flex items-center\">Type {env.Type}</span>\n {/* <button className=\"px-3 flex items-center border border-gray-300 text-gray-600 rounded-lg mt-3 py-1 text-sm hover:bg-gray-50\">\n Open Shell <ExternalLinkIcon className=\"ml-2\" />\n </button> */}\n </div>\n </div>\n </div>\n </div>\n\n if (env.Type == \"POSTGRES\") {\n envs = <div className=\"md:w-1/2 lg:w-1/3 w-full flex \">\n <div className=\"w-full\">\n <div className=\"px-4 py-3 flex items-center border rounded-md mr-4 my-2 flex-row\">\n <div className=\"lg:w-1/6 md:w-1/4 sm:w-1/3 w-1/3\">\n <div className=\"p-4 py-4 flex justify-center mr-2 rounded-full bg-gray-100\">\n <PostgresqlIcon className=\"text-4xl\" />\n </div>\n </div>\n <div className=\"w-full pl-4\">\n <div className=\"flex w-full justify-between items-center\">\n <div className=\"items-center text-lg font-medium text-gray-700 flex\">\n {env.name}\n </div>\n <NavLink to={`/environments/edit/${env.ID}`}>\n <BxCogIcon className=\"text-xl text-gray-400 hover:text-gray-800\" />\n </NavLink>\n </div>\n <span className=\"text-sm text-gray-400 flex items-center\">Type {env.type}</span>\n <button className=\"px-3 flex items-center border border-gray-300 text-gray-600 rounded-lg mt-3 py-1 text-sm hover:bg-gray-50\">\n Test Connection\n </button>\n </div>\n </div>\n </div>\n </div>\n } else if (env.Type == \"notification/telegram\") {\n envs = <div className=\"md:w-1/2 lg:w-1/3 w-full flex \">\n <div className=\"w-full\">\n <div className=\"px-4 py-3 flex items-center border rounded-md mr-4 my-2 flex-row\">\n <div className=\"lg:w-1/6 md:w-1/4 sm:w-1/3 w-1/3\">\n <div className=\"p-4 py-4 flex justify-center mr-2 rounded-full bg-gray-100\">\n <BxlTelegramIcon className=\"text-4xl\" />\n </div>\n </div>\n <div className=\"w-full pl-4\">\n <div className=\"flex w-full justify-between items-center\">\n <div className=\"items-center text-lg font-medium text-gray-700 flex\">\n {env.Name}\n </div>\n <NavLink to={`/environments/edit/${env.ID}`}>\n <BxCogIcon className=\"text-xl text-gray-400 hover:text-gray-800\" />\n </NavLink>\n </div>\n <span className=\"text-sm text-gray-400 flex items-center\">Type {env.Type}</span>\n {/* <button className=\"px-3 flex items-center border border-gray-300 text-gray-600 rounded-lg mt-3 py-1 text-sm hover:bg-gray-50\">\n Test Send Message\n </button> */}\n </div>\n </div>\n </div>\n </div>\n }\n return <>{envs}</>\n\n })\n }\n </div>\n </div>\n </Content>\n );\n}\n\nexport default EnvironmentsPage;\n\n","/home/xxx/Project/Golang_Lab/go-cron/ui/src/reducers/index.ts",["967"],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/helpers/index.ts",["968"],"export * from './history';\nexport * from './store';\nexport * from './auth-header';\nconst { REACT_APP_MODE } = process.env;\n\nconsole.log(REACT_APP_MODE)\nlet url_api = \"http://localhost:8080/api\"\nif (REACT_APP_MODE == \"release\") {\n url_api = \"http://10.54.68.131:8882/api\"\n}\n\nexport const BASE_URL_API: string = url_api\n\n","/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/organism/Content.tsx",[],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/organism/PageTitle.tsx",[],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/organism/CardContent.tsx",[],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/organism/Navbar.tsx",["969"],"import React from \"react\";\nimport {\n NavLink\n} from \"react-router-dom\";\n\nimport BxLayerIcon from \"components/atoms/icons/BxLayerIcon\";\nimport BxShareAltIcon from \"components/atoms/icons/BxShareAltIcon\";\nimport BxCogIcon from \"components/atoms/icons/BxCogIcon\";\nimport BxHomeAltIcon from \"components/atoms/icons/BxHomeAltIcon\";\nimport UsersAltIcon from \"components/atoms/icons/UsersAltIcon\";\n\n\nfunction Navbar(): JSX.Element {\n return (\n <div className=\"w-16\">\n <div className=\"nav flex fixed py-6 px- shadow flex-col h-full justify-between w-16\" style={{ background: \"#e5131d\" }}>\n <div className=\"flex flex-auto items-center flex-col \">\n <span className=\"text-xl text-white px-2 pb-8 font-extrabold cursor-pointer\">Log</span>\n <ul className=\"flex items-center flex-col\">\n <li>\n <a href=\"http://10.54.68.188:8008/rantools\" title=\"Create New\" className=\"opacity-80 text-white hover:bg-red-500 rounded-lg p-2 cursor-pointer block mb-3\" >\n <BxHomeAltIcon className=\"text-2xl\" />\n </a>\n </li>\n <li>\n <NavLink to=\"/pipelines\" title=\"Pipelines\" className=\"opacity-80 text-white hover:bg-red-400 rounded-lg p-2 cursor-pointer block mb-3\" activeClassName=\"opacity-1 text-white bg-red-400 shadow-sm\">\n <BxShareAltIcon className=\"text-2xl\" />\n </NavLink>\n </li>\n <li>\n <NavLink to=\"/environments\" title=\"Environments\" className=\"opacity-80 text-gray-100 hover:bg-red-400 rounded-lg p-2 cursor-pointer block mb-3\" activeClassName=\"opacity-1 text-white bg-red-400 shadow-sm\">\n <BxLayerIcon className=\"text-2xl\" />\n </NavLink>\n </li>\n </ul>\n </div>\n <div className=\"flex flex-col items-center\">\n <div className=\"my-2 cursor-pointer\">\n {/* <img src=\"https://source.unsplash.com/random/68x68?bogor\" className=\"rounded-full w-8 h-8\" alt=\"\" /> */}\n </div>\n <ul>\n <li className=\"text-white hover:bg-red-400 p-2 cursor-pointer rounded-full\">\n <a href=\"http://10.54.68.188:8008/rantools/users\" ><BxCogIcon className=\"text-xl\" /></a> \n </li>\n </ul>\n </div>\n </div >\n </div>\n );\n}\n\nexport default Navbar;\n","/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/molecule/YamlEditor.tsx",["970"],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/molecule/pipeline/TableRunningStatus.tsx",[],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/molecule/pipeline/TableStatusIndicator.tsx",[],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/molecule/pipeline/TableLabelPipeline.tsx",[],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/molecule/HistoryLogsRunning.tsx",["971","972","973","974","975","976"],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/molecule/pipeline/FilterStatusIndicator.tsx",[],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/atoms/icons/DownloadIcon.tsx",[],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/atoms/icons/BxArrowBackIcon.tsx",[],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/atoms/icons/CloseCircleIcon.tsx",[],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/atoms/icons/BxCheckIcon.tsx",[],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/atoms/icons/BxTrashIcon.tsx",[],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/atoms/icons/EditIcon.tsx",[],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/atoms/icons/BxSearchIcon.tsx",[],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/atoms/icons/BxUserIcon.tsx",[],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/atoms/icons/UsersAltIcon.tsx",[],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/atoms/icons/BxUserPlusIcon.tsx",[],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/atoms/buttons/BtnExport.tsx",[],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/atoms/buttons/BtnSave.tsx",[],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/atoms/buttons/BtnCreate.tsx",[],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/atoms/buttons/BtnEdit.tsx",[],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/atoms/icons/BxCogIcon.tsx",[],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/atoms/icons/BxlTelegramIcon.tsx",[],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/atoms/icons/TerminalFillIcon.tsx",[],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/atoms/icons/PostgresqlIcon.tsx",[],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/reducers/pipelines.ts",["977"],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/helpers/history.ts",[],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/helpers/auth-header.ts",["978"],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/reducers/auth.ts",["979"],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/reducers/user.ts",[],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/actions/index.ts",[],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/services/index.ts",[],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/atoms/icons/BxXIcon.tsx",[],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/atoms/icons/Time4Icon.tsx",[],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/atoms/icons/BxHistoryIcon.tsx",[],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/actions/pipelines.ts",[],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/actions/alert.ts",[],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/actions/auth.ts",["980"],"import { userConstants } from '../constants';\nimport { userService } from '../services';\nimport { history } from '../helpers';\nimport { IUserState, LocationState } from \"../types\"\n\nimport { Dispatch } from 'react';\nimport { Console } from 'console';\n\nexport const userActions = {\n login,\n request,\n checkLogin,\n success,\n failure,\n};\n\n\n\nfunction login(username: string, password: string, from: LocationState): Dispatch<any> {\n return dispatch => {\n dispatch(request());\n\n userService.login(username, password)\n .then(\n user => {\n dispatch(success(user.user));\n history.push(\"/pipelines\");\n },\n error => {\n dispatch(failure(error.toString()));\n }\n );\n };\n\n}\n\nfunction request() { return { type: userConstants.LOGIN_REQUEST } }\nfunction success(user: IUserState) { return { type: userConstants.LOGIN_SUCCESS, user } }\nfunction failure(error: string) { return { type: userConstants.LOGIN_FAILURE, error } }\n\n\nfunction checkLogin(): Dispatch<any> {\n return dispatch => {\n userService.getPath(\"/userinfo\")\n .then(user => {\n dispatch(success(user.user));\n },\n error => {\n dispatch(failure(error.toString()));\n console.log(error);\n userService.logout();\n history.push(\"/login\");\n })\n }\n function success(user: IUserState) { return { type: userConstants.LOGIN_SUCCESS, user } }\n}","/home/xxx/Project/Golang_Lab/go-cron/ui/src/services/user.ts",[],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/services/pipeline.ts",["981","982"],"import { authHeader, BASE_URL_API } from '../helpers';\nexport const pipelineServices = {\n createNewPipeline,\n fetchAllJob,\n firstJob,\n updatePipeline,\n deletePipeline,\n fetchRunningLogs,\n fetchRunningRawLogs,\n fetchEnvs,\n createNewEnvs,\n fetchEnvById,\n updateEnvs,\n deleteEnvById,\n};\n\n\n\nfunction createNewPipeline(name: string, category: string, description:string, active_bool:boolean, code:string) {\n\n let active = 8\n if (active_bool == true){\n active = 1\n }\n\n const requestOptions : any = {\n method: 'POST',\n headers: { 'Content-Type': 'application/json', ...authHeader()},\n body: JSON.stringify({ name, category, description, active, code })\n };\n\n return fetch(`${BASE_URL_API}/create-job`, requestOptions)\n .then(handleResponse);\n}\n\nfunction deletePipeline(id:any){\n const requestOptions : any = {\n method: 'DELETE',\n headers: { 'Content-Type': 'application/json', ...authHeader()},\n };\n return fetch(`${BASE_URL_API}/job/${id}`, requestOptions)\n .then(handleResponse);\n}\n\n\nfunction updatePipeline(id:any, name: string, category: string, description:string, active_bool:boolean, code:string) {\n\n let active = 8\n if (active_bool == true){\n active = 1\n }\n\n const requestOptions : any = {\n method: 'PUT',\n headers: { 'Content-Type': 'application/json', ...authHeader()},\n body: JSON.stringify({ name, category, description, active, code })\n };\n\n return fetch(`${BASE_URL_API}/job/${id}`, requestOptions)\n .then(handleResponse);\n}\n\n\n\nfunction fetchAllJob(page:number = 1, limit:number=8, sort=\"id desc\", query=\"\", status_running=\"all\"){\n const requestOptions : any = {\n method: 'GET',\n headers: { 'Content-Type': 'application/json', ...authHeader()},\n };\n\n return fetch(`${BASE_URL_API}/jobs?page=${page}&limit=${limit}&sort=${sort}&query=${query}&status_running=${status_running}`, requestOptions)\n .then(handleResponse);\n}\n\nfunction firstJob(jobid:any){\n const requestOptions : any = {\n method: 'GET',\n headers: { 'Content-Type': 'application/json', ...authHeader()},\n };\n\n return fetch(`${BASE_URL_API}/job/${jobid}`, requestOptions)\n .then(handleResponse);\n}\n\n\nfunction fetchRunningLogs(jobid:any){\n const requestOptions : any = {\n method: 'GET',\n headers: { 'Content-Type': 'application/json', ...authHeader()},\n };\n return fetch(`${BASE_URL_API}/job/${jobid}/logs`, requestOptions)\n .then(handleResponse);\n}\n\n\nfunction fetchRunningRawLogs(running_id:any){\n const requestOptions : any = {\n method: 'GET',\n headers: { 'Content-Type': 'application/json', ...authHeader()},\n };\n return fetch(`${BASE_URL_API}/job/${running_id}/raw-logs`, requestOptions)\n .then(handleResponse);\n}\n\n\n\n\nfunction handleResponse(response: Response) {\n return response.text().then(text => {\n const data = text && JSON.parse(text);\n if (!response.ok) {\n const error = (data && data.message) || response.statusText;\n return Promise.reject(error);\n }\n return data;\n });\n}\n\n\n\nfunction fetchEnvs(){\n const requestOptions : any = {\n method: 'GET',\n headers: { 'Content-Type': 'application/json', ...authHeader()},\n };\n\n return fetch(`${BASE_URL_API}/env`, requestOptions)\n .then(handleResponse);\n}\n\n\nfunction createNewEnvs(name:string, type:string, label:string, options:string){\n const requestOptions : any = {\n method: 'POST',\n body: JSON.stringify({ name, type, label, options}),\n headers: { 'Content-Type': 'application/json', ...authHeader()},\n };\n\n return fetch(`${BASE_URL_API}/env`, requestOptions)\n .then(handleResponse);\n}\n\n\nfunction updateEnvs(id:number,label:string, options:string){\n const requestOptions : any = {\n method: 'PUT',\n body: JSON.stringify({ label, options}),\n headers: { 'Content-Type': 'application/json', ...authHeader()},\n };\n\n return fetch(`${BASE_URL_API}/env/${id}`, requestOptions)\n .then(handleResponse);\n}\n\n\nfunction fetchEnvById(id:number){\n const requestOptions : any = {\n method: 'GET',\n headers: { 'Content-Type': 'application/json', ...authHeader()},\n };\n\n return fetch(`${BASE_URL_API}/env/${id}`, requestOptions)\n .then(handleResponse);\n}\n\n\nfunction deleteEnvById(id:number){\n const requestOptions : any = {\n method: 'DELETE',\n headers: { 'Content-Type': 'application/json', ...authHeader()},\n };\n\n return fetch(`${BASE_URL_API}/env/${id}`, requestOptions)\n .then(handleResponse);\n}\n","/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/atoms/icons/BxLayerIcon.tsx",[],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/atoms/icons/BxShareAltIcon.tsx",[],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/atoms/icons/BxHomeAltIcon.tsx",[],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/atoms/icons/BxSaveIcon.tsx",[],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/atoms/icons/BxPlusIcon.tsx",[],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/components/atoms/icons/BxExportIcon.tsx",[],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/constants/index.ts",[],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/constants/user.ts",[],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/constants/pipelines.ts",[],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/constants/alert.ts",[],["983","984"],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/pages/CreateEnvironmentPage.tsx",[],"/home/xxx/Project/Golang_Lab/go-cron/ui/src/pages/EditEnvironmentPage.tsx",["985"],"import Content from \"../components/organism/Content\"\nimport PageTitle from \"../components/organism/PageTitle\"\nimport BxTrashIcon from \"../components/atoms/icons/BxTrashIcon\"\n\nimport { useHistory, useParams } from 'react-router-dom';\nimport { useEffect, useState } from \"react\"\nimport { pipelineServices } from \"services\"\nimport {\n NavLink\n} from \"react-router-dom\";\n\n\n\n\nfunction Dialog(props: any) {\n const { open } = props;\n if (!open) {\n return <></>;\n }\n return (\n <div className=\"fixed inset-0 z-50 overflow-auto bg-smoke-light \">\n <div className=\"relative p-6 bg-white w-full max-w-md mx-auto mt-14 flex-col border shadow-lg flex rounded-lg\">\n <div>{props.children}</div>\n </div>\n </div>\n );\n}\n\nfunction EditEnvironmentsPage(): JSX.Element {\n\n\n const history = useHistory()\n\n const [inputs, setInputs] = useState<any>({\n name: \"\",\n label: \"\",\n type: \"\",\n options: \"\",\n })\n let [show_confirm, set_show_confirm] = useState(0)\n\n const { id } = useParams<any>()\n\n const onUpdateHandler = (e: any) => {\n e.preventDefault();\n pipelineServices.updateEnvs(\n id,\n inputs.label,\n inputs.options\n ).then(success => {\n alert(\"Environments updated successful !!\")\n history.push(\"/environments\")\n }, error => {\n console.log(error)\n alert(error)\n });\n }\n\n\n\n const handleDelete = () => {\n pipelineServices.deleteEnvById(id)\n .then(success => {\n alert(\"Environments deleted successful !!\")\n history.push(\"/environments\")\n }, error => {\n console.log(error)\n alert(\"Delete environment failed, environment has used by job pipeline \")\n set_show_confirm(0)\n })\n }\n\n const handleChange = (e: any) => {\n const { name, value } = e.target;\n setInputs((inputs: any) => ({ ...inputs, [name]: value }));\n }\n\n useEffect(() => {\n pipelineServices.fetchEnvById(id).then(success => {\n const { data } = success\n try {\n setInputs((inputs: any) => ({ ...inputs, label: data.Label }));\n setInputs((inputs: any) => ({ ...inputs, name: data.Name }));\n setInputs((inputs: any) => ({ ...inputs, options: data.Options }));\n setInputs((inputs: any) => ({ ...inputs, type: data.Type }));\n } catch (error) {\n alert(error)\n }\n })\n }, [])\n\n return (\n <>\n <Dialog open={show_confirm} >\n <div className=\"text-lg mb-2\">\n Delete Environment, Are you sure?\n </div>\n <div className=\"mt-4\" >\n <button onClick={handleDelete} className=\"bg-red-600 text-white px-3 py-1.5 font-medium text-base rounded-md border border-gray-200 flex items-center focus:outline-none focus:shadow-outline-white active:bg-red-900 transition duration-150 ease-in-out inline-flex\">Delete</button>\n <button onClick={() => set_show_confirm(0)} className=\"px-4 py-1.5 font-medium border border-gray-400 mx-1 rounded-md text-base bg-white text-gray-500 hover:bg-gray-100 focus:outline-none focus:shadow-outline-white active:bg-white transition duration-150 ease-in-out inline-flex items-center\">Close</button>\n </div>\n </Dialog>\n <Content className={show_confirm ? \"opacity-20\" : \"opacity-1\"}>\n <div className=\"flex justify-between flex-wrap items-center\">\n <PageTitle title=\"Edit Environment\" subtitle=\"Edit Environments for job pipelines\" />\n <button onClick={() => set_show_confirm(1)} className=\"text-2xl mx-4 text-red-400 focus:outline-none hover:text-red-500\"><BxTrashIcon /></button>\n </div>\n <div className=\"my-6\">\n <form onSubmit={onUpdateHandler}>\n <div className=\"flex flex-row flex-wrap w-full\">\n\n <div className=\"my-2 w-full\">\n <span className=\"font-medium text-gray-600 mb-2\">Label </span>\n <input onChange={handleChange} value={inputs.label} name=\"label\" className=\"focus:border-blue-400 focus:ring-2 my-1 focus:ring-blue-200 focus:outline-none w-full text-base placeholder-gray-400 border border-gray-300 rounded-md py-1.5 px-3\" type=\"text\" placeholder=\"Label\" />\n </div>\n <div className=\"my-2 w-1/2\">\n <div className=\"mr-4\">\n <span className=\"font-medium text-gray-600 mb-2\">Name (unique) </span><span className=\" text-red-500\">*</span>\n <input disabled value={inputs.name} name=\"name\" required className=\"focus:border-blue-400 focus:ring-2 my-1 focus:ring-blue-200 focus:outline-none w-full text-base placeholder-gray-400 border border-gray-300 rounded-md py-1.5 px-3\" type=\"text\" placeholder=\"Name Environment\" />\n </div>\n </div>\n\n <div className=\"my-2 w-1/2\">\n <span className=\"font-medium text-gray-600 mb-2\">Type </span><span className=\" text-red-500\">*</span>\n <select disabled value={inputs.type} required name=\"type\" className=\" focus:border-blue-400 bg-gray-100 focus:ring-2 my-1 focus:ring-blue-200 focus:outline-none w-full text-base border rounded-md py-1.5 px-3\" placeholder=\"Name Environment\">\n <option value=\"\" disabled>- Select type -</option>\n <option value=\"ssh\">SSH</option>\n <option value=\"notification/telegram\">Telegram</option>\n </select>\n </div>\n <div className=\"w-full my-4\" >\n <span className=\"font-medium text-gray-600 mb-2\">Configuration (json) </span><span className=\" text-red-500\">*</span>\n <textarea value={inputs.options} onChange={handleChange} name=\"options\" style={{ height: \"300px\" }} required className=\"focus:border-blue-400 focus:ring-2 my-1 focus:ring-blue-200 focus:outline-none w-full text-base placeholder-gray-400 border border-gray-300 rounded-md py-1.5 px-3\" ></textarea>\n </div>\n </div>\n <div className=\"w-full mt-4 flex\">\n <button type=\"submit\" className=\"text-white mr-4 bg-red-500 px-3 mx-1 py-1.5 font-medium text-base rounded-md items-center focus:outline-none focus:shadow-outline-white active:bg-red-500 border-red-500 border transition duration-150 ease-in-out inline-flex\">Update</button>\n <NavLink to=\"/environments\" className=\"px-4 py-1.5 font-medium border border-gray-400 mx-1 rounded-md text-base bg-white text-gray-500 hover:bg-gray-100 focus:outline-none focus:shadow-outline-white active:bg-white transition duration-150 ease-in-out inline-flex items-center\">Cancel</NavLink>\n </div>\n </form>\n </div>\n </Content>\n </>\n );\n}\n\nexport default EditEnvironmentsPage;\n\n","/home/xxx/Project/Golang_Lab/go-cron/ui/src/pages/AutoLoginPages.tsx",["986","987","988","989"],"import Content from \"../components/organism/Content\"\nimport { useHistory, useParams } from 'react-router-dom';\nimport { useEffect, useState } from \"react\"\nimport { userService } from \"services\"\nimport { userActions } from \"actions\"\nimport {\n NavLink\n} from \"react-router-dom\";\nimport { useDispatch, useSelector } from \"react-redux\";\n\n\nfunction AutoLoginPages(): JSX.Element {\n\n const { accessToken } = useParams<any>()\n const history = useHistory()\n const dispatch = useDispatch()\n const user_data = useSelector((s: any) => s.auth)\n useEffect(() => {\n localStorage.setItem(\"token\", accessToken)\n userService.getPath(\"/userinfo\")\n .then(user => {\n dispatch(userActions.success(user.user));\n history.push(\"/pipelines\")\n },\n error => {\n dispatch(userActions.failure(error.toString()));\n console.log(error);\n userService.logout();\n })\n }, [])\n return (\n <Content>\n {user_data.error != \"\" ? <div className=\"w-full bg-red-500 px-3 py-2 text-lg rounded text-white\">\n <strong>Auto login failed</strong> : {user_data.error}\n </div> : \"Loading ...\"}\n </Content>\n );\n}\n\nexport default AutoLoginPages;\n\n",{"ruleId":"990","replacedBy":"991"},{"ruleId":"992","replacedBy":"993"},{"ruleId":"990","replacedBy":"994"},{"ruleId":"992","replacedBy":"995"},{"ruleId":"996","severity":1,"message":"997","line":3,"column":20,"nodeType":"998","messageId":"999","endLine":3,"endColumn":29},{"ruleId":"996","severity":1,"message":"1000","line":11,"column":7,"nodeType":"998","messageId":"999","endLine":11,"endColumn":14},{"ruleId":"996","severity":1,"message":"1001","line":5,"column":8,"nodeType":"998","messageId":"999","endLine":5,"endColumn":17},{"ruleId":"996","severity":1,"message":"1002","line":120,"column":11,"nodeType":"998","messageId":"999","endLine":120,"endColumn":17},{"ruleId":"990","replacedBy":"1003"},{"ruleId":"992","replacedBy":"1004"},{"ruleId":"996","severity":1,"message":"997","line":3,"column":20,"nodeType":"998","messageId":"999","endLine":3,"endColumn":29},{"ruleId":"996","severity":1,"message":"1000","line":11,"column":7,"nodeType":"998","messageId":"999","endLine":11,"endColumn":14},{"ruleId":"996","severity":1,"message":"1001","line":5,"column":8,"nodeType":"998","messageId":"999","endLine":5,"endColumn":17},{"ruleId":"996","severity":1,"message":"1002","line":120,"column":11,"nodeType":"998","messageId":"999","endLine":120,"endColumn":17},{"ruleId":"990","replacedBy":"1005"},{"ruleId":"992","replacedBy":"1006"},{"ruleId":"990","replacedBy":"1007"},{"ruleId":"992","replacedBy":"1008"},{"ruleId":"996","severity":1,"message":"1009","line":8,"column":8,"nodeType":"998","messageId":"999","endLine":8,"endColumn":16},{"ruleId":"996","severity":1,"message":"1010","line":14,"column":10,"nodeType":"998","messageId":"999","endLine":14,"endColumn":26},{"ruleId":"996","severity":1,"message":"1011","line":17,"column":5,"nodeType":"998","messageId":"999","endLine":17,"endColumn":12},{"ruleId":"996","severity":1,"message":"1012","line":20,"column":28,"nodeType":"998","messageId":"999","endLine":20,"endColumn":34},{"ruleId":"1013","severity":1,"message":"1014","line":159,"column":40,"nodeType":"1015","messageId":"1016","endLine":159,"endColumn":42},{"ruleId":"1017","severity":1,"message":"1018","line":165,"column":8,"nodeType":"1019","endLine":165,"endColumn":10,"suggestions":"1020"},{"ruleId":"1013","severity":1,"message":"1021","line":208,"column":49,"nodeType":"1015","messageId":"1016","endLine":208,"endColumn":51},{"ruleId":"996","severity":1,"message":"1022","line":10,"column":23,"nodeType":"998","messageId":"999","endLine":10,"endColumn":34},{"ruleId":"996","severity":1,"message":"1023","line":20,"column":8,"nodeType":"998","messageId":"999","endLine":20,"endColumn":16},{"ruleId":"1013","severity":1,"message":"1021","line":158,"column":67,"nodeType":"1015","messageId":"1016","endLine":158,"endColumn":69},{"ruleId":"996","severity":1,"message":"997","line":5,"column":10,"nodeType":"998","messageId":"999","endLine":5,"endColumn":19},{"ruleId":"996","severity":1,"message":"1024","line":5,"column":8,"nodeType":"998","messageId":"999","endLine":5,"endColumn":24},{"ruleId":"1013","severity":1,"message":"1014","line":62,"column":38,"nodeType":"1015","messageId":"1016","endLine":62,"endColumn":40},{"ruleId":"1013","severity":1,"message":"1014","line":88,"column":45,"nodeType":"1015","messageId":"1016","endLine":88,"endColumn":47},{"ruleId":"996","severity":1,"message":"1025","line":10,"column":8,"nodeType":"998","messageId":"999","endLine":10,"endColumn":20},{"ruleId":"990","replacedBy":"1026"},{"ruleId":"992","replacedBy":"1027"},{"ruleId":"996","severity":1,"message":"1001","line":5,"column":8,"nodeType":"998","messageId":"999","endLine":5,"endColumn":17},{"ruleId":"996","severity":1,"message":"1002","line":120,"column":11,"nodeType":"998","messageId":"999","endLine":120,"endColumn":17},{"ruleId":"990","replacedBy":"1028"},{"ruleId":"992","replacedBy":"1029"},{"ruleId":"990","replacedBy":"1030"},{"ruleId":"992","replacedBy":"1031"},{"ruleId":"996","severity":1,"message":"1032","line":3,"column":8,"nodeType":"998","messageId":"999","endLine":3,"endColumn":15},{"ruleId":"1017","severity":1,"message":"1033","line":32,"column":8,"nodeType":"1019","endLine":32,"endColumn":10,"suggestions":"1034"},{"ruleId":"1013","severity":1,"message":"1014","line":42,"column":20,"nodeType":"1015","messageId":"1016","endLine":42,"endColumn":22},{"ruleId":"1013","severity":1,"message":"1014","line":44,"column":27,"nodeType":"1015","messageId":"1016","endLine":44,"endColumn":29},{"ruleId":"1013","severity":1,"message":"1014","line":46,"column":27,"nodeType":"1015","messageId":"1016","endLine":46,"endColumn":29},{"ruleId":"1013","severity":1,"message":"1014","line":57,"column":26,"nodeType":"1015","messageId":"1016","endLine":57,"endColumn":28},{"ruleId":"996","severity":1,"message":"1035","line":8,"column":10,"nodeType":"998","messageId":"999","endLine":8,"endColumn":18},{"ruleId":"996","severity":1,"message":"1036","line":8,"column":10,"nodeType":"998","messageId":"999","endLine":8,"endColumn":20},{"ruleId":"1017","severity":1,"message":"1037","line":51,"column":8,"nodeType":"1019","endLine":51,"endColumn":10,"suggestions":"1038"},{"ruleId":"1013","severity":1,"message":"1014","line":69,"column":40,"nodeType":"1015","messageId":"1016","endLine":69,"endColumn":42},{"ruleId":"1013","severity":1,"message":"1014","line":75,"column":47,"nodeType":"1015","messageId":"1016","endLine":75,"endColumn":49},{"ruleId":"1013","severity":1,"message":"1014","line":90,"column":51,"nodeType":"1015","messageId":"1016","endLine":90,"endColumn":53},{"ruleId":"996","severity":1,"message":"1039","line":9,"column":10,"nodeType":"998","messageId":"999","endLine":9,"endColumn":23},{"ruleId":"996","severity":1,"message":"1040","line":13,"column":11,"nodeType":"998","messageId":"999","endLine":13,"endColumn":22},{"ruleId":"996","severity":1,"message":"1041","line":14,"column":9,"nodeType":"998","messageId":"999","endLine":14,"endColumn":16},{"ruleId":"996","severity":1,"message":"1042","line":15,"column":9,"nodeType":"998","messageId":"999","endLine":15,"endColumn":17},{"ruleId":"1017","severity":1,"message":"1043","line":22,"column":8,"nodeType":"1019","endLine":22,"endColumn":10,"suggestions":"1044"},{"ruleId":"996","severity":1,"message":"1045","line":5,"column":10,"nodeType":"998","messageId":"999","endLine":5,"endColumn":20},{"ruleId":"1013","severity":1,"message":"1021","line":7,"column":28,"nodeType":"1015","messageId":"1016","endLine":7,"endColumn":30},{"ruleId":"996","severity":1,"message":"1046","line":7,"column":10,"nodeType":"998","messageId":"999","endLine":7,"endColumn":17},{"ruleId":"1013","severity":1,"message":"1021","line":40,"column":19,"nodeType":"1015","messageId":"1016","endLine":40,"endColumn":21},{"ruleId":"1013","severity":1,"message":"1021","line":4,"column":15,"nodeType":"1015","messageId":"1016","endLine":4,"endColumn":17},{"ruleId":"1013","severity":1,"message":"1021","line":65,"column":31,"nodeType":"1015","messageId":"1016","endLine":65,"endColumn":33},{"ruleId":"1013","severity":1,"message":"1014","line":18,"column":21,"nodeType":"1015","messageId":"1016","endLine":18,"endColumn":23},{"ruleId":"1013","severity":1,"message":"1014","line":45,"column":21,"nodeType":"1015","messageId":"1016","endLine":45,"endColumn":23},{"ruleId":"990","replacedBy":"1047"},{"ruleId":"992","replacedBy":"1048"},{"ruleId":"996","severity":1,"message":"997","line":5,"column":10,"nodeType":"998","messageId":"999","endLine":5,"endColumn":19},{"ruleId":"1017","severity":1,"message":"1037","line":51,"column":8,"nodeType":"1019","endLine":51,"endColumn":10,"suggestions":"1049"},{"ruleId":"1013","severity":1,"message":"1014","line":69,"column":40,"nodeType":"1015","messageId":"1016","endLine":69,"endColumn":42},{"ruleId":"1013","severity":1,"message":"1014","line":75,"column":47,"nodeType":"1015","messageId":"1016","endLine":75,"endColumn":49},{"ruleId":"1013","severity":1,"message":"1014","line":90,"column":51,"nodeType":"1015","messageId":"1016","endLine":90,"endColumn":53},{"ruleId":"996","severity":1,"message":"1022","line":10,"column":23,"nodeType":"998","messageId":"999","endLine":10,"endColumn":34},{"ruleId":"996","severity":1,"message":"1050","line":59,"column":12,"nodeType":"998","messageId":"999","endLine":59,"endColumn":27},{"ruleId":"1013","severity":1,"message":"1014","line":70,"column":26,"nodeType":"1015","messageId":"1016","endLine":70,"endColumn":28},{"ruleId":"1013","severity":1,"message":"1014","line":73,"column":33,"nodeType":"1015","messageId":"1016","endLine":73,"endColumn":35},{"ruleId":"1013","severity":1,"message":"1014","line":120,"column":28,"nodeType":"1015","messageId":"1016","endLine":120,"endColumn":30},{"ruleId":"1017","severity":1,"message":"1051","line":128,"column":8,"nodeType":"1019","endLine":128,"endColumn":10,"suggestions":"1052"},{"ruleId":"1013","severity":1,"message":"1021","line":184,"column":67,"nodeType":"1015","messageId":"1016","endLine":184,"endColumn":69},{"ruleId":"996","severity":1,"message":"1036","line":8,"column":10,"nodeType":"998","messageId":"999","endLine":8,"endColumn":20},{"ruleId":"996","severity":1,"message":"1009","line":8,"column":8,"nodeType":"998","messageId":"999","endLine":8,"endColumn":16},{"ruleId":"996","severity":1,"message":"1010","line":14,"column":10,"nodeType":"998","messageId":"999","endLine":14,"endColumn":26},{"ruleId":"996","severity":1,"message":"1011","line":17,"column":5,"nodeType":"998","messageId":"999","endLine":17,"endColumn":12},{"ruleId":"996","severity":1,"message":"1012","line":20,"column":28,"nodeType":"998","messageId":"999","endLine":20,"endColumn":34},{"ruleId":"1013","severity":1,"message":"1014","line":159,"column":40,"nodeType":"1015","messageId":"1016","endLine":159,"endColumn":42},{"ruleId":"1017","severity":1,"message":"1018","line":165,"column":8,"nodeType":"1019","endLine":165,"endColumn":10,"suggestions":"1053"},{"ruleId":"1013","severity":1,"message":"1021","line":216,"column":53,"nodeType":"1015","messageId":"1016","endLine":216,"endColumn":55},{"ruleId":"996","severity":1,"message":"1039","line":9,"column":10,"nodeType":"998","messageId":"999","endLine":9,"endColumn":23},{"ruleId":"996","severity":1,"message":"1040","line":13,"column":11,"nodeType":"998","messageId":"999","endLine":13,"endColumn":22},{"ruleId":"1013","severity":1,"message":"1014","line":48,"column":29,"nodeType":"1015","messageId":"1016","endLine":48,"endColumn":31},{"ruleId":"1017","severity":1,"message":"1054","line":51,"column":8,"nodeType":"1019","endLine":51,"endColumn":10,"suggestions":"1055"},{"ruleId":"996","severity":1,"message":"1041","line":14,"column":9,"nodeType":"998","messageId":"999","endLine":14,"endColumn":16},{"ruleId":"996","severity":1,"message":"1042","line":15,"column":9,"nodeType":"998","messageId":"999","endLine":15,"endColumn":17},{"ruleId":"1017","severity":1,"message":"1043","line":22,"column":8,"nodeType":"1019","endLine":22,"endColumn":10,"suggestions":"1056"},{"ruleId":"996","severity":1,"message":"1024","line":5,"column":8,"nodeType":"998","messageId":"999","endLine":5,"endColumn":24},{"ruleId":"1013","severity":1,"message":"1014","line":65,"column":38,"nodeType":"1015","messageId":"1016","endLine":65,"endColumn":40},{"ruleId":"1013","severity":1,"message":"1014","line":91,"column":45,"nodeType":"1015","messageId":"1016","endLine":91,"endColumn":47},{"ruleId":"996","severity":1,"message":"1045","line":5,"column":10,"nodeType":"998","messageId":"999","endLine":5,"endColumn":20},{"ruleId":"1013","severity":1,"message":"1014","line":8,"column":20,"nodeType":"1015","messageId":"1016","endLine":8,"endColumn":22},{"ruleId":"996","severity":1,"message":"1025","line":10,"column":8,"nodeType":"998","messageId":"999","endLine":10,"endColumn":20},{"ruleId":"996","severity":1,"message":"1035","line":8,"column":10,"nodeType":"998","messageId":"999","endLine":8,"endColumn":18},{"ruleId":"996","severity":1,"message":"1032","line":3,"column":8,"nodeType":"998","messageId":"999","endLine":3,"endColumn":15},{"ruleId":"1017","severity":1,"message":"1033","line":32,"column":8,"nodeType":"1019","endLine":32,"endColumn":10,"suggestions":"1057"},{"ruleId":"1013","severity":1,"message":"1014","line":42,"column":20,"nodeType":"1015","messageId":"1016","endLine":42,"endColumn":22},{"ruleId":"1013","severity":1,"message":"1014","line":44,"column":27,"nodeType":"1015","messageId":"1016","endLine":44,"endColumn":29},{"ruleId":"1013","severity":1,"message":"1014","line":46,"column":27,"nodeType":"1015","messageId":"1016","endLine":46,"endColumn":29},{"ruleId":"1013","severity":1,"message":"1014","line":57,"column":26,"nodeType":"1015","messageId":"1016","endLine":57,"endColumn":28},{"ruleId":"1013","severity":1,"message":"1021","line":65,"column":31,"nodeType":"1015","messageId":"1016","endLine":65,"endColumn":33},{"ruleId":"1013","severity":1,"message":"1021","line":4,"column":15,"nodeType":"1015","messageId":"1016","endLine":4,"endColumn":17},{"ruleId":"1013","severity":1,"message":"1021","line":7,"column":28,"nodeType":"1015","messageId":"1016","endLine":7,"endColumn":30},{"ruleId":"996","severity":1,"message":"1046","line":7,"column":10,"nodeType":"998","messageId":"999","endLine":7,"endColumn":17},{"ruleId":"1013","severity":1,"message":"1014","line":22,"column":21,"nodeType":"1015","messageId":"1016","endLine":22,"endColumn":23},{"ruleId":"1013","severity":1,"message":"1014","line":49,"column":21,"nodeType":"1015","messageId":"1016","endLine":49,"endColumn":23},{"ruleId":"990","replacedBy":"1058"},{"ruleId":"992","replacedBy":"1059"},{"ruleId":"1017","severity":1,"message":"1033","line":90,"column":8,"nodeType":"1019","endLine":90,"endColumn":10,"suggestions":"1060"},{"ruleId":"996","severity":1,"message":"1035","line":3,"column":21,"nodeType":"998","messageId":"999","endLine":3,"endColumn":29},{"ruleId":"996","severity":1,"message":"1011","line":7,"column":5,"nodeType":"998","messageId":"999","endLine":7,"endColumn":12},{"ruleId":"1017","severity":1,"message":"1061","line":30,"column":8,"nodeType":"1019","endLine":30,"endColumn":10,"suggestions":"1062"},{"ruleId":"1013","severity":1,"message":"1021","line":33,"column":30,"nodeType":"1015","messageId":"1016","endLine":33,"endColumn":32},"no-native-reassign",["1063"],"no-negated-in-lhs",["1064"],["1063"],["1064"],"@typescript-eslint/no-unused-vars","'useEffect' is defined but never used.","Identifier","unusedVar","'flowKey' is assigned a value but never used.","'NodeStart' is defined but never used.","'onLoad' is assigned a value but never used.",["1063"],["1064"],["1063"],["1064"],["1063"],["1064"],"'PlusIcon' is defined but never used.","'pipelineServices' is defined but never used.","'NavLink' is defined but never used.","'useRef' is defined but never used.","eqeqeq","Expected '===' and instead saw '=='.","BinaryExpression","unexpected","react-hooks/exhaustive-deps","React Hook useEffect has missing dependencies: 'dispatch', 'id', 'location', and 'pipeline.create_new'. Either include them or remove the dependency array.","ArrayExpression",["1065"],"Expected '!==' and instead saw '!='.","'useSelector' is defined but never used.","'fakeData' is defined but never used.","'ExternalLinkIcon' is defined but never used.","'UsersAltIcon' is defined but never used.",["1063"],["1064"],["1063"],["1064"],["1063"],["1064"],"'BxXIcon' is defined but never used.","React Hook useEffect has a missing dependency: 'id'. Either include it or remove the dependency array.",["1066"],"'useState' is defined but never used.","'useHistory' is defined but never used.","React Hook useEffect has missing dependencies: 'dispatch', 'id', and 'id_job'. Either include them or remove the dependency array.",["1067"],"'userConstants' is defined but never used.","'StatusState' is defined but never used.","'history' is assigned a value but never used.","'location' is assigned a value but never used.","React Hook useEffect has a missing dependency: 'dispatch'. Either include it or remove the dependency array.",["1068"],"'StoreState' is defined but never used.","'Console' is defined but never used.",["1063"],["1064"],["1069"],"'status_pipeline' is assigned a value but never used.","React Hook useEffect has a missing dependency: 'fetchPipeline'. Either include it or remove the dependency array.",["1070"],["1071"],"React Hook useEffect has missing dependencies: 'history' and 'status.loggedIn'. Either include them or remove the dependency array.",["1072"],["1073"],["1074"],["1063"],["1064"],["1075"],"React Hook useEffect has missing dependencies: 'accessToken', 'dispatch', and 'history'. Either include them or remove the dependency array.",["1076"],"no-global-assign","no-unsafe-negation",{"desc":"1077","fix":"1078"},{"desc":"1079","fix":"1080"},{"desc":"1081","fix":"1082"},{"desc":"1083","fix":"1084"},{"desc":"1081","fix":"1085"},{"desc":"1086","fix":"1087"},{"desc":"1077","fix":"1088"},{"desc":"1089","fix":"1090"},{"desc":"1083","fix":"1091"},{"desc":"1079","fix":"1092"},{"desc":"1079","fix":"1093"},{"desc":"1094","fix":"1095"},"Update the dependencies array to be: [dispatch, id, location, pipeline.create_new]",{"range":"1096","text":"1097"},"Update the dependencies array to be: [id]",{"range":"1098","text":"1099"},"Update the dependencies array to be: [dispatch, id, id_job]",{"range":"1100","text":"1101"},"Update the dependencies array to be: [dispatch]",{"range":"1102","text":"1103"},{"range":"1104","text":"1101"},"Update the dependencies array to be: [fetchPipeline]",{"range":"1105","text":"1106"},{"range":"1107","text":"1097"},"Update the dependencies array to be: [history, status.loggedIn]",{"range":"1108","text":"1109"},{"range":"1110","text":"1103"},{"range":"1111","text":"1099"},{"range":"1112","text":"1099"},"Update the dependencies array to be: [accessToken, dispatch, history]",{"range":"1113","text":"1114"},[6535,6537],"[dispatch, id, location, pipeline.create_new]",[955,957],"[id]",[1945,1947],"[dispatch, id, id_job]",[572,574],"[dispatch]",[1945,1947],[3629,3631],"[fetchPipeline]",[6547,6549],[1522,1524],"[history, status.loggedIn]",[572,574],[955,957],[2611,2613],[1009,1011],"[accessToken, dispatch, history]"]