Repository: DhiWise/dhiwise-nodejs Branch: master Commit: a135b968a240 Files: 987 Total size: 3.2 MB Directory structure: gitextract_s_w00iag/ ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ └── feature_request.md │ └── workflows/ │ └── eslint.yml ├── .gitignore ├── CHANGELOG.md ├── CLEAN_CODE.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── MVC_ARCHITECTURE.md ├── README.md ├── lerna.json ├── package.json └── packages/ ├── client/ │ ├── .eslintrc.json │ ├── .gitignore │ ├── CHANGELOG.md │ ├── README.md │ ├── babel-plugin-macros.config.js │ ├── babel.config.json │ ├── config-overrides.js │ ├── package.json │ ├── postcss.config.js │ ├── public/ │ │ ├── index.html │ │ ├── manifest.json │ │ └── robots.txt │ ├── src/ │ │ ├── App.css │ │ ├── App.js │ │ ├── api/ │ │ │ ├── applicationConfig.js │ │ │ ├── applicationConstant.js │ │ │ ├── applicationPolicy.js │ │ │ ├── config.js │ │ │ ├── constants.js │ │ │ ├── envVariable.js │ │ │ ├── index.js │ │ │ ├── master.js │ │ │ ├── models.js │ │ │ ├── policy.js │ │ │ ├── project.js │ │ │ ├── projectRoleAccess.js │ │ │ └── routes.js │ │ ├── assets/ │ │ │ └── css/ │ │ │ ├── Table.css │ │ │ ├── Table1.css │ │ │ ├── animation.css │ │ │ ├── components/ │ │ │ │ ├── components.css │ │ │ │ └── style.css │ │ │ ├── drawer.css │ │ │ ├── dropdown.css │ │ │ ├── editor.css │ │ │ ├── logo.css │ │ │ ├── main.css │ │ │ ├── method.css │ │ │ ├── notification.css │ │ │ ├── popover.css │ │ │ ├── popoverCss.js │ │ │ ├── scroll.css │ │ │ ├── sidebar.css │ │ │ ├── tab.js │ │ │ ├── tableViewCss.js │ │ │ ├── tailwind.css │ │ │ └── tooltip.css │ │ ├── components/ │ │ │ ├── APIKeyValue/ │ │ │ │ └── index.js │ │ │ ├── BackButton/ │ │ │ │ └── index.js │ │ │ ├── BoxLayout/ │ │ │ │ ├── boxLayoutCss.js │ │ │ │ └── index.js │ │ │ ├── Button/ │ │ │ │ ├── buttonCss.js │ │ │ │ └── index.js │ │ │ ├── CardView/ │ │ │ │ ├── ThumbnailCard.js │ │ │ │ ├── card.css │ │ │ │ ├── cardCss.js │ │ │ │ └── index.js │ │ │ ├── Checkbox/ │ │ │ │ ├── Checkbox.js │ │ │ │ ├── checkbox.css │ │ │ │ └── index.js │ │ │ ├── CodeEditor/ │ │ │ │ ├── index.js │ │ │ │ └── reactTypes.js │ │ │ ├── ConfirmAlert/ │ │ │ │ └── index.js │ │ │ ├── ContainerBox/ │ │ │ │ └── index.js │ │ │ ├── Count/ │ │ │ │ └── index.js │ │ │ ├── DatePicker/ │ │ │ │ ├── datepicker.css │ │ │ │ ├── datepickerCss.js │ │ │ │ └── index.js │ │ │ ├── Description/ │ │ │ │ ├── descriptionCss.js │ │ │ │ └── index.js │ │ │ ├── DropdownMenu/ │ │ │ │ ├── Css.js │ │ │ │ ├── DropdownMenu.js │ │ │ │ ├── Dropdown_bkp.js │ │ │ │ ├── MenuItem.js │ │ │ │ ├── dropdown.js │ │ │ │ └── index.js │ │ │ ├── Error/ │ │ │ │ └── index.js │ │ │ ├── ErrorMsg/ │ │ │ │ ├── errorCss.js │ │ │ │ └── index.js │ │ │ ├── Heading/ │ │ │ │ ├── headingCss.js │ │ │ │ └── index.js │ │ │ ├── IconBox/ │ │ │ │ ├── DeleteIcon.js │ │ │ │ ├── iconBoxCss.js │ │ │ │ └── index.js │ │ │ ├── InlineHeader/ │ │ │ │ └── index.js │ │ │ ├── Input/ │ │ │ │ ├── DecimalInput.js │ │ │ │ ├── NegativeInput.js │ │ │ │ ├── NumberInput.js │ │ │ │ ├── PercentageInput.js │ │ │ │ ├── StringInput.js │ │ │ │ ├── contryCode.css │ │ │ │ ├── index.js │ │ │ │ └── inputCss.js │ │ │ ├── Label/ │ │ │ │ └── index.js │ │ │ ├── LinkTag/ │ │ │ │ └── index.js │ │ │ ├── ListBox/ │ │ │ │ ├── LIstTitle.js │ │ │ │ ├── ListBoxWrap.js │ │ │ │ └── listboxCss.js │ │ │ ├── Loader/ │ │ │ │ └── index.js │ │ │ ├── MenuList/ │ │ │ │ ├── index.js │ │ │ │ └── menuListCss.js │ │ │ ├── MessageNotify/ │ │ │ │ ├── index.js │ │ │ │ └── informessageCss.js │ │ │ ├── NoData/ │ │ │ │ ├── index.js │ │ │ │ └── notfoundproject.json │ │ │ ├── PopOver/ │ │ │ │ └── index.js │ │ │ ├── Popup/ │ │ │ │ └── index.js │ │ │ ├── Radio/ │ │ │ │ ├── RadioGroup.js │ │ │ │ ├── radioCss.js │ │ │ │ └── radiogroup.css │ │ │ ├── ReactDrawer/ │ │ │ │ ├── DrawerClose.js │ │ │ │ ├── DrawerFooter.js │ │ │ │ ├── DrawerHead.js │ │ │ │ ├── index.js │ │ │ │ └── reactDrawerCss.js │ │ │ ├── SearchBox/ │ │ │ │ ├── RecentSearch.js │ │ │ │ ├── index.js │ │ │ │ └── searchBoxCss.js │ │ │ ├── Select/ │ │ │ │ ├── index.js │ │ │ │ ├── selectCss.css │ │ │ │ └── selectCss.js │ │ │ ├── SelectTree/ │ │ │ │ ├── index.js │ │ │ │ └── selectTreeCss.css │ │ │ ├── SidebarMenuList/ │ │ │ │ ├── index.js │ │ │ │ └── sidebarMenuListCss.js │ │ │ ├── Spinner/ │ │ │ │ ├── index.js │ │ │ │ └── spinner.css │ │ │ ├── StepFooter/ │ │ │ │ └── index.js │ │ │ ├── Tag/ │ │ │ │ ├── index.js │ │ │ │ └── tagCss.js │ │ │ ├── TextArea/ │ │ │ │ ├── index.js │ │ │ │ └── textareaCss.js │ │ │ ├── ToggleBox/ │ │ │ │ └── index.js │ │ │ ├── hooks/ │ │ │ │ ├── index.js │ │ │ │ └── useBoolean.js │ │ │ ├── index.js │ │ │ └── utils.js │ │ ├── config/ │ │ │ ├── LazyLoader.js │ │ │ ├── Loader.js │ │ │ ├── Root.js │ │ │ └── loaderdata.json │ │ ├── constant/ │ │ │ ├── Nodecrud.js │ │ │ ├── Project/ │ │ │ │ └── applicationStep.js │ │ │ ├── applicationConfigConstant.js │ │ │ ├── applicationConstant.js │ │ │ ├── buildProcessConstant.js │ │ │ ├── common.js │ │ │ ├── envVariable.js │ │ │ ├── fileTypeConstant.js │ │ │ ├── languageHeader.js │ │ │ ├── master.js │ │ │ ├── model.js │ │ │ ├── modelIndexing.js │ │ │ ├── permission.js │ │ │ ├── policy.js │ │ │ ├── reservedVariable.js │ │ │ ├── rolePermission.js │ │ │ ├── routes.js │ │ │ └── sidebar.js │ │ ├── container/ │ │ │ ├── CRUD/ │ │ │ │ ├── BuildCodeStructure/ │ │ │ │ │ └── index.js │ │ │ │ ├── Configuration/ │ │ │ │ │ └── index.js │ │ │ │ ├── Modal/ │ │ │ │ │ ├── AddModalPopup/ │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── DeleteModel.js │ │ │ │ │ ├── Editor/ │ │ │ │ │ │ ├── EditorProvider/ │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ ├── EditorTabs.js │ │ │ │ │ │ ├── ModelHeader/ │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ ├── ModelProvider.js │ │ │ │ │ │ ├── TableView/ │ │ │ │ │ │ │ ├── AddRelation/ │ │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ │ ├── Enum/ │ │ │ │ │ │ │ │ ├── SelectEnumValue.js │ │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ │ ├── TableData/ │ │ │ │ │ │ │ │ ├── DeleteRow.js │ │ │ │ │ │ │ │ ├── RowSuspense.js │ │ │ │ │ │ │ │ ├── Sortable.js │ │ │ │ │ │ │ │ ├── TableRow.js │ │ │ │ │ │ │ │ ├── TableSubRow.js │ │ │ │ │ │ │ │ ├── sqlTableRow.loader.js │ │ │ │ │ │ │ │ └── tableRow.loader.js │ │ │ │ │ │ │ ├── TableHead.js │ │ │ │ │ │ │ ├── components/ │ │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── HookSetup/ │ │ │ │ │ │ ├── HookEditor.js │ │ │ │ │ │ ├── HookList.js │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── Indexing/ │ │ │ │ │ │ ├── Draggable/ │ │ │ │ │ │ │ ├── useDraggable.js │ │ │ │ │ │ │ └── useDroppable.js │ │ │ │ │ │ ├── ModelIndexProvider.js │ │ │ │ │ │ ├── Mongodb/ │ │ │ │ │ │ │ ├── SubRow.js │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ ├── SQLIndexing/ │ │ │ │ │ │ │ ├── DeleteIndex.js │ │ │ │ │ │ │ ├── EditableCells.js │ │ │ │ │ │ │ ├── IndexProvider.js │ │ │ │ │ │ │ ├── Subrow/ │ │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ │ ├── TableCells/ │ │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ ├── indexingCss.js │ │ │ │ │ │ └── makeData.js │ │ │ │ │ ├── LibraryPreview/ │ │ │ │ │ │ ├── Attention/ │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ ├── HookSetup/ │ │ │ │ │ │ │ ├── HookEditor/ │ │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ │ ├── HookList/ │ │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ ├── Indexing/ │ │ │ │ │ │ │ ├── SubRow/ │ │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ ├── LibraryProvider.js │ │ │ │ │ │ ├── PreviewTable/ │ │ │ │ │ │ │ ├── EditableCell.js │ │ │ │ │ │ │ ├── SubRow.js │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── ModelList/ │ │ │ │ │ │ ├── ModelLibrary/ │ │ │ │ │ │ │ ├── Library.loader.js │ │ │ │ │ │ │ ├── LibraryModelData.js │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ └── index.js │ │ │ │ │ └── index.js │ │ │ │ ├── Permission/ │ │ │ │ │ ├── Header.js │ │ │ │ │ ├── Permission.loader.js │ │ │ │ │ ├── PermissionHelperFunctions.js │ │ │ │ │ ├── PermissionItem.js │ │ │ │ │ ├── PermissionSettingProvider.js │ │ │ │ │ ├── Permissions.js │ │ │ │ │ ├── Setting/ │ │ │ │ │ │ ├── SettingDetail.js │ │ │ │ │ │ └── index.js │ │ │ │ │ └── index.js │ │ │ │ └── Routes/ │ │ │ │ ├── AddRoutes/ │ │ │ │ │ ├── AddRouteProvider.js │ │ │ │ │ ├── Advance/ │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── Basic/ │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── Configuration/ │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── ModelPermission/ │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── QueryBuilder/ │ │ │ │ │ │ ├── AddResponse.js │ │ │ │ │ │ ├── NestedQueryBuilder.js │ │ │ │ │ │ ├── QueryBuilder.js │ │ │ │ │ │ ├── QueryBuilderDetail.js │ │ │ │ │ │ ├── QueryBuilderList.js │ │ │ │ │ │ ├── ResponseProvider.js │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ └── queryBuilder.css │ │ │ │ │ └── index.js │ │ │ │ ├── AddToggleProvider.js │ │ │ │ ├── ModuleList/ │ │ │ │ │ └── index.js │ │ │ │ ├── RouteProvider.js │ │ │ │ ├── RouteView/ │ │ │ │ │ ├── Route.loader.js │ │ │ │ │ └── index.js │ │ │ │ └── index.js │ │ │ ├── Configuration/ │ │ │ │ ├── CodeGenerateConfiguration/ │ │ │ │ │ ├── CodeGenConfigHelperFunctions.js │ │ │ │ │ ├── CodeGenerateConfiguration.loader.js │ │ │ │ │ ├── DataFormatConfig/ │ │ │ │ │ │ ├── AddDataFormat.js │ │ │ │ │ │ ├── DataFormat.loader.js │ │ │ │ │ │ ├── Head/ │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── UploadAttachmentSetting.js │ │ │ │ │ └── index.js │ │ │ │ └── index.js │ │ │ ├── Constant/ │ │ │ │ ├── AddConstant/ │ │ │ │ │ └── index.js │ │ │ │ ├── ConstantView/ │ │ │ │ │ ├── ConstantHead/ │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── TableView/ │ │ │ │ │ │ ├── EditableCell.js │ │ │ │ │ │ ├── SubRow.js │ │ │ │ │ │ └── index.js │ │ │ │ │ └── index.js │ │ │ │ ├── DeleteConstant/ │ │ │ │ │ └── index.js │ │ │ │ ├── LeftConstantList/ │ │ │ │ │ └── index.js │ │ │ │ └── index.js │ │ │ ├── Dashboard/ │ │ │ │ ├── MenuShortCut/ │ │ │ │ │ └── index.js │ │ │ │ └── index.js │ │ │ ├── EnvironmentVariable/ │ │ │ │ ├── EnvironmentHead/ │ │ │ │ │ └── index.js │ │ │ │ ├── KeyValue.js │ │ │ │ ├── Permission.loader.js │ │ │ │ ├── enviromentVaribleCss.js │ │ │ │ ├── environmentValue.js │ │ │ │ └── index.js │ │ │ ├── Policy/ │ │ │ │ ├── AddPolicy/ │ │ │ │ │ └── index.js │ │ │ │ ├── DeletePolicy.js │ │ │ │ ├── LeftPolicyList.js │ │ │ │ ├── PolicyView/ │ │ │ │ │ ├── Policy.loader.js │ │ │ │ │ ├── PolicyHead.js │ │ │ │ │ └── index.js │ │ │ │ └── index.js │ │ │ ├── RoleAccess/ │ │ │ │ ├── AddRole/ │ │ │ │ │ └── index.js │ │ │ │ ├── RoleAccessHead/ │ │ │ │ │ └── index.js │ │ │ │ ├── RoleAccessList/ │ │ │ │ │ ├── DeleteRole.js │ │ │ │ │ ├── index.js │ │ │ │ │ └── roleAccessListCss.js │ │ │ │ ├── RoleAccessProvider.js │ │ │ │ ├── RoleList/ │ │ │ │ │ └── index.js │ │ │ │ └── index.js │ │ │ ├── Shared/ │ │ │ │ ├── BuildApp/ │ │ │ │ │ └── BuildAppDropdown/ │ │ │ │ │ ├── animation.json │ │ │ │ │ └── index.js │ │ │ │ ├── Layout/ │ │ │ │ │ ├── LanguageHeader/ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ └── languageHeaderCss.js │ │ │ │ │ ├── Sidebar/ │ │ │ │ │ │ ├── MainSidebar/ │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ ├── SubSidebar/ │ │ │ │ │ │ │ ├── SidebarlistCss.js │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ └── sidebarCss.js │ │ │ │ │ ├── StepHeader/ │ │ │ │ │ │ └── index.js │ │ │ │ │ └── index.js │ │ │ │ ├── LayoutStepUrl/ │ │ │ │ │ ├── SidebarLayout.js │ │ │ │ │ ├── index.js │ │ │ │ │ └── stepSidebarData.js │ │ │ │ └── TechnologySetStep/ │ │ │ │ ├── Application.loader.js │ │ │ │ ├── SideBlock.loader.js │ │ │ │ ├── addNewTag.js │ │ │ │ ├── applicationForm.js │ │ │ │ └── index.js │ │ │ ├── common.js │ │ │ └── hooks/ │ │ │ ├── index.js │ │ │ ├── useBoolean.js │ │ │ ├── useComponentDidMount.js │ │ │ ├── useComponentWillUnmount.js │ │ │ ├── useDrop.js │ │ │ ├── useQueryParams.js │ │ │ ├── useToastNotifications.js │ │ │ └── useWindowSize.js │ │ ├── index.css │ │ ├── index.js │ │ ├── redux/ │ │ │ ├── reducers/ │ │ │ │ ├── buildCode.js │ │ │ │ ├── constants.js │ │ │ │ ├── index.js │ │ │ │ ├── models.js │ │ │ │ ├── policy.js │ │ │ │ └── projects.js │ │ │ ├── store.js │ │ │ └── thunks/ │ │ │ ├── buildCode.js │ │ │ ├── constants.js │ │ │ ├── models.js │ │ │ └── policy.js │ │ ├── reportWebVitals.js │ │ ├── setupTests.js │ │ ├── utils/ │ │ │ ├── applicationPlatform.js │ │ │ ├── dataTypes.js │ │ │ ├── dateTimeFormatter.js │ │ │ ├── domMethods.js │ │ │ ├── localStorage.js │ │ │ ├── mergeRefs.js │ │ │ ├── regex.js │ │ │ └── validationMsgs.js │ │ └── utils.js │ ├── tailwind.config.js │ └── tailwind.js └── server/ ├── .eslintrc.js ├── .gitignore ├── CHANGELOG.md ├── README.md ├── __test__/ │ └── application.test.js ├── app.js ├── assets/ │ └── master.js ├── config/ │ ├── database/ │ │ └── test │ └── db.js ├── constants/ │ ├── common.js │ ├── dataTypes/ │ │ ├── dataTypes.js │ │ ├── props.js │ │ └── sequelize/ │ │ ├── index.js │ │ ├── mySqlDataTypes.js │ │ ├── postGreSqlDataTypes.js │ │ └── sqlDataTypes.js │ ├── envVariables.js │ ├── jsonInput.js │ ├── master.js │ ├── message.js │ ├── queryBuilder.js │ ├── schema.js │ └── validation.js ├── controllers/ │ └── web/ │ ├── application/ │ │ ├── application.js │ │ └── index.js │ ├── applicationConfig/ │ │ ├── applicationConfig.js │ │ └── index.js │ ├── envVariables/ │ │ ├── envVariables.js │ │ └── index.js │ ├── jsonInput/ │ │ ├── index.js │ │ └── jsonInput.js │ ├── master/ │ │ ├── index.js │ │ └── master.js │ ├── project/ │ │ ├── index.js │ │ └── project.js │ ├── projectConstant/ │ │ ├── index.js │ │ └── projectConstant.js │ ├── projectPolicy/ │ │ ├── index.js │ │ └── projectPolicy.js │ ├── projectRoleAccessPermissions/ │ │ ├── index.js │ │ └── roleAccessPermissions.js │ ├── projectRoute/ │ │ ├── index.js │ │ └── projectRoute.js │ ├── schema/ │ │ ├── index.js │ │ └── schema.js │ └── schemaDetail/ │ ├── index.js │ └── schemaDetail.js ├── middleware/ │ └── responses/ │ └── ok.js ├── models/ │ ├── Models/ │ │ ├── Queue.js │ │ └── tenant/ │ │ ├── Application.js │ │ ├── ApplicationConfig.js │ │ ├── EnvVariables.js │ │ ├── Generator.js │ │ ├── Master.js │ │ ├── NestedQueryBuilder.js │ │ ├── Project.js │ │ ├── ProjectConstant.js │ │ ├── ProjectPolicy.js │ │ ├── ProjectRoleAccessPermissions.js │ │ ├── ProjectRoute.js │ │ ├── QueryBuilder.js │ │ ├── RawModel.js │ │ ├── Schema.js │ │ ├── SchemaDetail.js │ │ └── SchemaUploadVersion.js │ ├── Repo/ │ │ ├── Connection.js │ │ └── index.js │ ├── constants/ │ │ ├── action.js │ │ ├── activityLog.js │ │ ├── application.js │ │ ├── applicationConfig.js │ │ ├── common.js │ │ ├── jobQueue.js │ │ ├── master.js │ │ ├── message.js │ │ ├── method.js │ │ ├── permission.js │ │ ├── project.js │ │ ├── projectDefinition.js │ │ └── version.js │ ├── index.js │ ├── responses/ │ │ ├── badRequest.js │ │ ├── error.js │ │ ├── forbidden.js │ │ ├── index.js │ │ ├── notFound.js │ │ ├── ok.js │ │ ├── serverError.js │ │ ├── setResponse.js │ │ └── unauthorized.js │ └── usecase/ │ └── getSetting.js ├── package.json ├── repo/ │ ├── application.js │ ├── applicationConfig.js │ ├── dataTypeSuggestions.js │ ├── db.js │ ├── envVariables.js │ ├── generate.js │ ├── master.js │ ├── nestedQueryBuilder.js │ ├── port.js │ ├── project.js │ ├── projectConstant.js │ ├── projectPolicy.js │ ├── projectRoleAccessPermissions.js │ ├── projectRoute.js │ ├── queryBuilder.js │ ├── schema.js │ └── schemaDetail.js ├── responses/ │ └── index.js ├── routes/ │ ├── index.js │ └── web/ │ ├── application/ │ │ ├── application.js │ │ └── index.js │ ├── applicationConfig/ │ │ ├── applicationConfig.js │ │ └── index.js │ ├── envVariables/ │ │ ├── envVariables.js │ │ └── index.js │ ├── index.js │ ├── jsonInput/ │ │ ├── index.js │ │ └── jsonInput.js │ ├── master/ │ │ ├── index.js │ │ └── master.js │ ├── project/ │ │ ├── index.js │ │ └── project.js │ ├── projectConstant/ │ │ ├── index.js │ │ └── projectConstant.js │ ├── projectPolicy/ │ │ ├── index.js │ │ └── projectPolicy.js │ ├── projectRoleAccessPermissions/ │ │ ├── index.js │ │ └── projectRoleAccessPermissions.js │ ├── projectRoute/ │ │ ├── index.js │ │ └── projectRoute.js │ ├── schema/ │ │ ├── index.js │ │ └── schema.js │ └── schemaDetail/ │ ├── index.js │ └── schemaDetail.js ├── usecase/ │ ├── application/ │ │ ├── actionWiseCount.js │ │ ├── create.js │ │ ├── delete.js │ │ ├── deleteDependency.js │ │ ├── generate.js │ │ ├── get.js │ │ ├── getLastApplication.js │ │ ├── node-generator/ │ │ │ ├── codeGenerator.js │ │ │ ├── config/ │ │ │ │ ├── mongooseInput.json │ │ │ │ ├── possibleMissMatchType.js │ │ │ │ ├── sequelizeDataType.json │ │ │ │ ├── sequelizeSupportType.json │ │ │ │ └── sequelizeTypeInput.json │ │ │ ├── constants/ │ │ │ │ └── constant.js │ │ │ ├── createApplication/ │ │ │ │ ├── InputParser/ │ │ │ │ │ ├── customRoutesApi.js │ │ │ │ │ └── index.js │ │ │ │ ├── applyEslint.js │ │ │ │ ├── composeModels.js │ │ │ │ ├── createAuthentication/ │ │ │ │ │ └── index.js │ │ │ │ ├── createCommonRoutes/ │ │ │ │ │ └── index.js │ │ │ │ ├── createController/ │ │ │ │ │ └── index.js │ │ │ │ ├── createCustomRoutes/ │ │ │ │ │ └── index.js │ │ │ │ ├── createDataAccessFiles/ │ │ │ │ │ └── index.js │ │ │ │ ├── createDeleteDependencyService.js │ │ │ │ ├── createEntities.js │ │ │ │ ├── createFileUploadFiles/ │ │ │ │ │ └── index.js │ │ │ │ ├── createRoutes/ │ │ │ │ │ └── index.js │ │ │ │ ├── createStaticFiles.js │ │ │ │ ├── createTestCases/ │ │ │ │ │ ├── mongooseTestCases.js │ │ │ │ │ └── sequelizeTestCases.js │ │ │ │ ├── createUseCaseFiles/ │ │ │ │ │ └── index.js │ │ │ │ ├── generateFakeData/ │ │ │ │ │ ├── fakeDataType.js │ │ │ │ │ └── index.js │ │ │ │ ├── generateFakeDataSequelize/ │ │ │ │ │ ├── fakeDataType.js │ │ │ │ │ └── index.js │ │ │ │ ├── getDeleteDependency.js │ │ │ │ ├── makeCustomPolicy.js │ │ │ │ ├── postman/ │ │ │ │ │ ├── generate-postman-collection.js │ │ │ │ │ └── index.js │ │ │ │ ├── render/ │ │ │ │ │ └── index.js │ │ │ │ ├── requestValidation.js │ │ │ │ ├── schemaValidation.js │ │ │ │ ├── sequelize/ │ │ │ │ │ ├── composeModels.js │ │ │ │ │ ├── modelValiadation.js │ │ │ │ │ ├── postman/ │ │ │ │ │ │ ├── generate-postman-collection.js │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── requestValidation.js │ │ │ │ │ ├── service.js │ │ │ │ │ └── typeConverter.js │ │ │ │ ├── service/ │ │ │ │ │ └── index.js │ │ │ │ ├── thirdPartyIntegrations/ │ │ │ │ │ └── index.js │ │ │ │ └── utils/ │ │ │ │ └── common.js │ │ │ ├── generator.js │ │ │ ├── settings/ │ │ │ │ └── index.js │ │ │ ├── social/ │ │ │ │ ├── facebook/ │ │ │ │ │ ├── app.js │ │ │ │ │ └── templates/ │ │ │ │ │ └── js/ │ │ │ │ │ ├── routes/ │ │ │ │ │ │ ├── facebook-login-routes-cc.js.ejs │ │ │ │ │ │ └── facebook-login-routes.js.ejs │ │ │ │ │ ├── service-cc-sequelize.js.ejs │ │ │ │ │ ├── service-cc.js.ejs │ │ │ │ │ ├── service-sequelize.js.ejs │ │ │ │ │ └── service.js.ejs │ │ │ │ ├── github/ │ │ │ │ │ ├── app.js │ │ │ │ │ └── templates/ │ │ │ │ │ └── js/ │ │ │ │ │ ├── routes/ │ │ │ │ │ │ ├── github-login-routes-cc.js.ejs │ │ │ │ │ │ └── github-login-routes.js.ejs │ │ │ │ │ ├── service-cc-sequelize.js.ejs │ │ │ │ │ ├── service-cc.js.ejs │ │ │ │ │ ├── service-sequelize.js.ejs │ │ │ │ │ └── service.js.ejs │ │ │ │ ├── google/ │ │ │ │ │ ├── app.js │ │ │ │ │ └── templates/ │ │ │ │ │ └── js/ │ │ │ │ │ ├── routes/ │ │ │ │ │ │ ├── google-login-routes-cc.js.ejs │ │ │ │ │ │ └── google-login-routes.js.ejs │ │ │ │ │ ├── service-cc-sequelize.js.ejs │ │ │ │ │ ├── service-cc.js.ejs │ │ │ │ │ ├── service-sequelize.js.ejs │ │ │ │ │ └── service.js.ejs │ │ │ │ └── linkedin/ │ │ │ │ ├── app.js │ │ │ │ └── templates/ │ │ │ │ └── js/ │ │ │ │ ├── routes/ │ │ │ │ │ ├── linkedin-login-routes-cc.js.ejs │ │ │ │ │ └── linkedin-login-routes.js.ejs │ │ │ │ ├── service-cc-sequelize.js.ejs │ │ │ │ ├── service-cc.js.ejs │ │ │ │ ├── service-sequelize.js.ejs │ │ │ │ └── service.js.ejs │ │ │ ├── templates/ │ │ │ │ ├── cleanCode/ │ │ │ │ │ ├── .eslintrc.js │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── README.ejs │ │ │ │ │ ├── __test__/ │ │ │ │ │ │ └── auth.test.js.ejs │ │ │ │ │ ├── app.js.ejs │ │ │ │ │ ├── config/ │ │ │ │ │ │ ├── constant.js.ejs │ │ │ │ │ │ ├── db.js.ejs │ │ │ │ │ │ ├── passport.js.ejs │ │ │ │ │ │ └── requestConstant.js.ejs │ │ │ │ │ ├── controllers/ │ │ │ │ │ │ ├── authController.js.ejs │ │ │ │ │ │ ├── authControllerIndex.js.ejs │ │ │ │ │ │ ├── controller.js.ejs │ │ │ │ │ │ ├── controllerIndex.js.ejs │ │ │ │ │ │ ├── fileUploadController.js.ejs │ │ │ │ │ │ └── fileUploadControllerIndex.js.ejs │ │ │ │ │ ├── customEnv.ejs │ │ │ │ │ ├── data-access/ │ │ │ │ │ │ ├── dbFile.js.ejs │ │ │ │ │ │ ├── dbService.js │ │ │ │ │ │ └── sequenceDb.js.ejs │ │ │ │ │ ├── entity/ │ │ │ │ │ │ └── entity.js.ejs │ │ │ │ │ ├── helpers/ │ │ │ │ │ │ └── date.js │ │ │ │ │ ├── individualRoutes/ │ │ │ │ │ │ ├── controller.js.ejs │ │ │ │ │ │ ├── controllerIndex.js.ejs │ │ │ │ │ │ ├── existIndexRoute.js.ejs │ │ │ │ │ │ ├── indexRoutes.js.ejs │ │ │ │ │ │ ├── platformIndexRoutes.js.ejs │ │ │ │ │ │ ├── route.js.ejs │ │ │ │ │ │ └── service.js.ejs │ │ │ │ │ ├── middleware/ │ │ │ │ │ │ ├── auth.js.ejs │ │ │ │ │ │ ├── checkRolePermission.js.ejs │ │ │ │ │ │ ├── index.js.ejs │ │ │ │ │ │ ├── loginUser.js.ejs │ │ │ │ │ │ ├── passport.js.ejs │ │ │ │ │ │ └── sampleMiddleware.js.ejs │ │ │ │ │ ├── models/ │ │ │ │ │ │ └── model.js.ejs │ │ │ │ │ ├── routes/ │ │ │ │ │ │ ├── auth.js.ejs │ │ │ │ │ │ ├── commonIndexRoutes.js.ejs │ │ │ │ │ │ ├── index.js.ejs │ │ │ │ │ │ ├── modelRoutes.js.ejs │ │ │ │ │ │ ├── platformIndexRoutes.js.ejs │ │ │ │ │ │ └── uploadRoutes.js.ejs │ │ │ │ │ ├── seeders/ │ │ │ │ │ │ └── index.js.ejs │ │ │ │ │ ├── services/ │ │ │ │ │ │ ├── auth.js.ejs │ │ │ │ │ │ ├── customQueryService.js.ejs │ │ │ │ │ │ ├── emailService.js.ejs │ │ │ │ │ │ ├── fileUpload.js.ejs │ │ │ │ │ │ └── smsService.js.ejs │ │ │ │ │ ├── use-case/ │ │ │ │ │ │ ├── authentication/ │ │ │ │ │ │ │ ├── authentication.js.ejs │ │ │ │ │ │ │ ├── forgotPassword.js.ejs │ │ │ │ │ │ │ ├── logout.js.ejs │ │ │ │ │ │ │ ├── register.js.ejs │ │ │ │ │ │ │ ├── resetPassword.js.ejs │ │ │ │ │ │ │ └── validateResetPasswordOtp.js.ejs │ │ │ │ │ │ ├── bulkUpdate.js.ejs │ │ │ │ │ │ ├── changePassword.js.ejs │ │ │ │ │ │ ├── common/ │ │ │ │ │ │ │ ├── getRoleAccess.js.ejs │ │ │ │ │ │ │ ├── loginUser.js.ejs │ │ │ │ │ │ │ └── sendResetPasswordNotification.js.ejs │ │ │ │ │ │ ├── count.js.ejs │ │ │ │ │ │ ├── create.js.ejs │ │ │ │ │ │ ├── createBulk.js.ejs │ │ │ │ │ │ ├── customRouteOfModel.js.ejs │ │ │ │ │ │ ├── delete.js.ejs │ │ │ │ │ │ ├── deleteMany.js.ejs │ │ │ │ │ │ ├── fileUpload.js.ejs │ │ │ │ │ │ ├── findAll.js.ejs │ │ │ │ │ │ ├── findById.js.ejs │ │ │ │ │ │ ├── partialUpdate.js.ejs │ │ │ │ │ │ ├── softDelete.js.ejs │ │ │ │ │ │ ├── softDeleteMany.js.ejs │ │ │ │ │ │ ├── update.js.ejs │ │ │ │ │ │ └── updateProfile.js.ejs │ │ │ │ │ ├── utils/ │ │ │ │ │ │ ├── common.js.ejs │ │ │ │ │ │ ├── convertObjectToEnum.js │ │ │ │ │ │ ├── deleteDependentService1.js.ejs │ │ │ │ │ │ ├── generateRandomNumber.js │ │ │ │ │ │ ├── generateToken.js │ │ │ │ │ │ ├── getSelectObject.js │ │ │ │ │ │ ├── makeDirectory.js │ │ │ │ │ │ └── response/ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── responseCode.js │ │ │ │ │ │ ├── responseHandler.js │ │ │ │ │ │ └── responseStatus.js │ │ │ │ │ ├── validation/ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ └── validateSchema.js.ejs │ │ │ │ │ └── views/ │ │ │ │ │ ├── emailTemplate.ejs │ │ │ │ │ ├── index.ejs │ │ │ │ │ ├── resetPassword.ejs │ │ │ │ │ ├── resetPasswordLink.ejs │ │ │ │ │ └── sendOTP.ejs │ │ │ │ ├── cleanCodeSequelize/ │ │ │ │ │ ├── .eslintrc.js │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── README.ejs │ │ │ │ │ ├── __test__/ │ │ │ │ │ │ └── auth.test.js.ejs │ │ │ │ │ ├── app.js.ejs │ │ │ │ │ ├── config/ │ │ │ │ │ │ ├── constant.js.ejs │ │ │ │ │ │ ├── db.js.ejs │ │ │ │ │ │ ├── dbConnection.js.ejs │ │ │ │ │ │ ├── passport.js.ejs │ │ │ │ │ │ └── requestConstant.js.ejs │ │ │ │ │ ├── controllers/ │ │ │ │ │ │ ├── authController.js.ejs │ │ │ │ │ │ ├── authControllerIndex.js.ejs │ │ │ │ │ │ ├── controller.js.ejs │ │ │ │ │ │ ├── controllerIndex.js.ejs │ │ │ │ │ │ ├── fileUploadController.js.ejs │ │ │ │ │ │ └── fileUploadControllerIndex.js.ejs │ │ │ │ │ ├── customEnv.ejs │ │ │ │ │ ├── data-access/ │ │ │ │ │ │ ├── dbFile.js.ejs │ │ │ │ │ │ └── dbService.js │ │ │ │ │ ├── entity/ │ │ │ │ │ │ └── entity.js.ejs │ │ │ │ │ ├── helpers/ │ │ │ │ │ │ └── date.js │ │ │ │ │ ├── individualRoutes/ │ │ │ │ │ │ ├── controller.js.ejs │ │ │ │ │ │ ├── controllerIndex.js.ejs │ │ │ │ │ │ ├── existIndexRoute.js.ejs │ │ │ │ │ │ ├── indexRoutes.js.ejs │ │ │ │ │ │ ├── platformIndexRoutes.js.ejs │ │ │ │ │ │ ├── route.js.ejs │ │ │ │ │ │ └── service.js.ejs │ │ │ │ │ ├── middleware/ │ │ │ │ │ │ ├── auth.js.ejs │ │ │ │ │ │ ├── checkRolePermission.js.ejs │ │ │ │ │ │ ├── index.js.ejs │ │ │ │ │ │ ├── loginUser.js.ejs │ │ │ │ │ │ ├── passport.js.ejs │ │ │ │ │ │ └── sampleMiddleware.js.ejs │ │ │ │ │ ├── models/ │ │ │ │ │ │ ├── index.js.ejs │ │ │ │ │ │ └── model.js.ejs │ │ │ │ │ ├── routes/ │ │ │ │ │ │ ├── auth.js.ejs │ │ │ │ │ │ ├── commonIndexRoutes.js.ejs │ │ │ │ │ │ ├── index.js.ejs │ │ │ │ │ │ ├── modelRoutes.js.ejs │ │ │ │ │ │ ├── platformIndexRoutes.js.ejs │ │ │ │ │ │ └── uploadRoutes.js.ejs │ │ │ │ │ ├── seeders/ │ │ │ │ │ │ └── index.js.ejs │ │ │ │ │ ├── services/ │ │ │ │ │ │ ├── auth.js.ejs │ │ │ │ │ │ ├── customQueryService.js.ejs │ │ │ │ │ │ ├── dbService.js │ │ │ │ │ │ ├── emailService.js.ejs │ │ │ │ │ │ ├── fileUpload.js.ejs │ │ │ │ │ │ └── smsService.js.ejs │ │ │ │ │ ├── use-case/ │ │ │ │ │ │ ├── authentication/ │ │ │ │ │ │ │ ├── authentication.js.ejs │ │ │ │ │ │ │ ├── forgotPassword.js.ejs │ │ │ │ │ │ │ ├── logout.js.ejs │ │ │ │ │ │ │ ├── register.js.ejs │ │ │ │ │ │ │ ├── resetPassword.js.ejs │ │ │ │ │ │ │ └── validateResetPasswordOtp.js.ejs │ │ │ │ │ │ ├── bulkUpdate.js.ejs │ │ │ │ │ │ ├── changePassword.js.ejs │ │ │ │ │ │ ├── common/ │ │ │ │ │ │ │ ├── getRoleAccess.js.ejs │ │ │ │ │ │ │ ├── loginUser.js.ejs │ │ │ │ │ │ │ └── sendResetPasswordNotification.js.ejs │ │ │ │ │ │ ├── count.js.ejs │ │ │ │ │ │ ├── create.js.ejs │ │ │ │ │ │ ├── createBulk.js.ejs │ │ │ │ │ │ ├── customRouteOfModel.js.ejs │ │ │ │ │ │ ├── delete.js.ejs │ │ │ │ │ │ ├── deleteMany.js.ejs │ │ │ │ │ │ ├── fileUpload.js.ejs │ │ │ │ │ │ ├── findAll.js.ejs │ │ │ │ │ │ ├── findById.js.ejs │ │ │ │ │ │ ├── partialUpdate.js.ejs │ │ │ │ │ │ ├── softDelete.js.ejs │ │ │ │ │ │ ├── softDeleteMany.js.ejs │ │ │ │ │ │ ├── update.js.ejs │ │ │ │ │ │ └── updateProfile.js.ejs │ │ │ │ │ ├── utils/ │ │ │ │ │ │ ├── common.js.ejs │ │ │ │ │ │ ├── convertObjectToEnum.js │ │ │ │ │ │ ├── deleteDependentService1.js.ejs │ │ │ │ │ │ ├── generateRandomNumber.js │ │ │ │ │ │ ├── generateToken.js │ │ │ │ │ │ ├── getSelectObject.js │ │ │ │ │ │ ├── makeDirectory.js │ │ │ │ │ │ ├── messages.js │ │ │ │ │ │ ├── replaceAll.js │ │ │ │ │ │ ├── response/ │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ ├── responseCode.js │ │ │ │ │ │ │ ├── responseHandler.js │ │ │ │ │ │ │ └── responseStatus.js │ │ │ │ │ │ ├── responseCode.js │ │ │ │ │ │ └── validateRequest.js │ │ │ │ │ ├── validation/ │ │ │ │ │ │ ├── genericValidator.js │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ └── validateSchema.js.ejs │ │ │ │ │ └── views/ │ │ │ │ │ ├── emailTemplate.ejs │ │ │ │ │ ├── index.ejs │ │ │ │ │ ├── resetPassword.ejs │ │ │ │ │ ├── resetPasswordLink.ejs │ │ │ │ │ └── sendOTP.ejs │ │ │ │ ├── logs/ │ │ │ │ │ └── error.log.ejs │ │ │ │ ├── mvc/ │ │ │ │ │ ├── .eslintrc.js │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── README.ejs │ │ │ │ │ ├── __test__/ │ │ │ │ │ │ └── auth.test.js.ejs │ │ │ │ │ ├── app.js.ejs │ │ │ │ │ ├── config/ │ │ │ │ │ │ ├── constant.js.ejs │ │ │ │ │ │ ├── db.js.ejs │ │ │ │ │ │ ├── passport.js.ejs │ │ │ │ │ │ └── requestConstant.js.ejs │ │ │ │ │ ├── controllers/ │ │ │ │ │ │ ├── authController.js.ejs │ │ │ │ │ │ ├── controller.js.ejs │ │ │ │ │ │ └── fileUploadController.js.ejs │ │ │ │ │ ├── customEnv.ejs │ │ │ │ │ ├── individualRoutes/ │ │ │ │ │ │ ├── controller.js.ejs │ │ │ │ │ │ ├── existIndexRoute.js.ejs │ │ │ │ │ │ ├── indexRoutes.js.ejs │ │ │ │ │ │ ├── platformIndexRoutes.js.ejs │ │ │ │ │ │ ├── route.js.ejs │ │ │ │ │ │ └── service.js.ejs │ │ │ │ │ ├── middleware/ │ │ │ │ │ │ ├── auth.js.ejs │ │ │ │ │ │ ├── checkRolePermission.js.ejs │ │ │ │ │ │ ├── loginUser.js.ejs │ │ │ │ │ │ └── sampleMiddleware.js.ejs │ │ │ │ │ ├── models/ │ │ │ │ │ │ └── model.js.ejs │ │ │ │ │ ├── routes/ │ │ │ │ │ │ ├── auth.js.ejs │ │ │ │ │ │ ├── commonIndexRoutes.js.ejs │ │ │ │ │ │ ├── index.js.ejs │ │ │ │ │ │ ├── modelRoutes.js.ejs │ │ │ │ │ │ ├── platformIndexRoutes.js.ejs │ │ │ │ │ │ └── uploadRoutes.js.ejs │ │ │ │ │ ├── seeders/ │ │ │ │ │ │ └── index.js.ejs │ │ │ │ │ ├── services/ │ │ │ │ │ │ ├── auth.js.ejs │ │ │ │ │ │ ├── customQueryService.js.ejs │ │ │ │ │ │ ├── emailService.js.ejs │ │ │ │ │ │ └── smsService.js.ejs │ │ │ │ │ ├── utils/ │ │ │ │ │ │ ├── common.js.ejs │ │ │ │ │ │ ├── dbService.js │ │ │ │ │ │ ├── deleteDependentService1.js.ejs │ │ │ │ │ │ ├── response/ │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ ├── responseCode.js │ │ │ │ │ │ │ ├── responseHandler.js │ │ │ │ │ │ │ └── responseStatus.js │ │ │ │ │ │ ├── validateRequest.js │ │ │ │ │ │ └── validation/ │ │ │ │ │ │ └── validateSchema.js.ejs │ │ │ │ │ └── views/ │ │ │ │ │ ├── emailTemplate.ejs │ │ │ │ │ ├── index.ejs │ │ │ │ │ ├── resetPassword.ejs │ │ │ │ │ ├── resetPasswordLink.ejs │ │ │ │ │ └── sendOTP.ejs │ │ │ │ └── mvcSequelize/ │ │ │ │ ├── .eslintrc.js │ │ │ │ ├── .gitignore │ │ │ │ ├── README.ejs │ │ │ │ ├── __test__/ │ │ │ │ │ └── auth.test.js.ejs │ │ │ │ ├── app.js.ejs │ │ │ │ ├── config/ │ │ │ │ │ ├── constant.js.ejs │ │ │ │ │ ├── db.js.ejs │ │ │ │ │ ├── dbConnection.js.ejs │ │ │ │ │ ├── passport.js.ejs │ │ │ │ │ └── requestConstant.js.ejs │ │ │ │ ├── controllers/ │ │ │ │ │ ├── authController.js.ejs │ │ │ │ │ ├── controller.js.ejs │ │ │ │ │ └── fileUploadController.js.ejs │ │ │ │ ├── customEnv.ejs │ │ │ │ ├── individualRoutes/ │ │ │ │ │ ├── controller.js.ejs │ │ │ │ │ ├── existIndexRoute.js.ejs │ │ │ │ │ ├── indexRoutes.js.ejs │ │ │ │ │ ├── platformIndexRoutes.js.ejs │ │ │ │ │ ├── route.js.ejs │ │ │ │ │ └── service.js.ejs │ │ │ │ ├── middleware/ │ │ │ │ │ ├── auth.js.ejs │ │ │ │ │ ├── checkRolePermission.js.ejs │ │ │ │ │ ├── loginUser.js.ejs │ │ │ │ │ └── sampleMiddleware.js.ejs │ │ │ │ ├── models/ │ │ │ │ │ ├── index.js.ejs │ │ │ │ │ └── model.js.ejs │ │ │ │ ├── routes/ │ │ │ │ │ ├── auth.js.ejs │ │ │ │ │ ├── commonIndexRoutes.js.ejs │ │ │ │ │ ├── index.js.ejs │ │ │ │ │ ├── modelRoutes.js.ejs │ │ │ │ │ ├── platformIndexRoutes.js.ejs │ │ │ │ │ └── uploadRoutes.js.ejs │ │ │ │ ├── seeders/ │ │ │ │ │ └── index.js.ejs │ │ │ │ ├── services/ │ │ │ │ │ ├── auth.js.ejs │ │ │ │ │ ├── customQueryService.js.ejs │ │ │ │ │ ├── emailService.js.ejs │ │ │ │ │ └── smsService.js.ejs │ │ │ │ ├── utils/ │ │ │ │ │ ├── common.js.ejs │ │ │ │ │ ├── dbService.js │ │ │ │ │ ├── deleteDependentService1.js.ejs │ │ │ │ │ ├── response/ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── responseCode.js │ │ │ │ │ │ ├── responseHandler.js │ │ │ │ │ │ └── responseStatus.js │ │ │ │ │ ├── validateRequest.js │ │ │ │ │ └── validation/ │ │ │ │ │ └── validateSchema.js.ejs │ │ │ │ └── views/ │ │ │ │ ├── emailTemplate.ejs │ │ │ │ ├── index.ejs │ │ │ │ ├── resetPassword.ejs │ │ │ │ ├── resetPasswordLink.ejs │ │ │ │ └── sendOTP.ejs │ │ │ └── writeOperations/ │ │ │ └── index.js │ │ ├── openCode.js │ │ ├── paginate.js │ │ ├── structure.js │ │ ├── update.js │ │ ├── upsert.js │ │ └── view.js │ ├── applicationConfig/ │ │ ├── create.js │ │ ├── delete.js │ │ ├── deleteDependency.js │ │ ├── get.js │ │ ├── paginate.js │ │ └── update.js │ ├── common/ │ │ └── projectApplicationUpdate.js │ ├── envVariables/ │ │ ├── get.js │ │ └── upsert.js │ ├── generator/ │ │ └── deleteDependency.js │ ├── jsonInput/ │ │ ├── jsonInput.js │ │ └── util/ │ │ ├── index.js │ │ ├── projectConstant/ │ │ │ └── projectConstant.js │ │ ├── projectPolicy/ │ │ │ └── projectPolicy.js │ │ ├── projectRoleAccessPermission/ │ │ │ └── projectRoleAccessPermission.js │ │ ├── projectRoutes/ │ │ │ └── projectRoutes.js │ │ └── schema/ │ │ └── schema.js │ ├── master/ │ │ ├── create.js │ │ ├── getByCode.js │ │ └── paginate.js │ ├── nestedQueryBuilder/ │ │ ├── delete.js │ │ ├── deleteDependency.js │ │ └── insertMany.js │ ├── project/ │ │ ├── archive.js │ │ ├── archivedProjects.js │ │ ├── create.js │ │ ├── delete.js │ │ ├── deleteDependency.js │ │ ├── explorePublicPaginate.js │ │ ├── get.js │ │ ├── noOfProjectAndApplication.js │ │ ├── paginate.js │ │ ├── unArchive.js │ │ ├── update.js │ │ └── upsert.js │ ├── projectConstant/ │ │ ├── create.js │ │ ├── delete.js │ │ ├── deleteDependency.js │ │ ├── paginate.js │ │ └── update.js │ ├── projectPolicy/ │ │ ├── create.js │ │ ├── delete.js │ │ ├── deleteDependency.js │ │ ├── paginate.js │ │ ├── update.js │ │ └── util/ │ │ └── dependentCond.js │ ├── projectRoleAccessPermissions/ │ │ ├── delete.js │ │ ├── deleteDependency.js │ │ ├── paginate.js │ │ ├── upsert.js │ │ └── util/ │ │ ├── RemoveModelDetails.js │ │ └── index.js │ ├── projectRoute/ │ │ ├── create.js │ │ ├── delete.js │ │ ├── deleteDependency.js │ │ ├── insertMany.js │ │ ├── paginate.js │ │ ├── requestApi.js │ │ ├── update.js │ │ └── uploadPostmanFile.js │ ├── queryBuilder/ │ │ ├── delete.js │ │ ├── deleteDependency.js │ │ └── insertMany.js │ ├── schema/ │ │ ├── InsertDefaultModels/ │ │ │ └── insertDefaultModels.js │ │ ├── create.js │ │ ├── dataTypeSuggestions.js │ │ ├── delete.js │ │ ├── deleteDependency.js │ │ ├── existsSchemaUpdate.js │ │ ├── get.js │ │ ├── insertMany.js │ │ ├── paginate.js │ │ ├── searchSchema.js │ │ ├── sequelize/ │ │ │ └── existsSchemaUpdate.js │ │ ├── update.js │ │ └── util/ │ │ ├── deleteSchemaRefInfo.js │ │ ├── deleteSchemaReferences.js │ │ ├── index.js │ │ ├── isRegExp.js │ │ ├── sequelize/ │ │ │ └── validateDataTypes.js │ │ ├── staticData.js │ │ ├── updateSchemaRefAttribute.js │ │ ├── updateSchemaReferences.js │ │ ├── validateProps.js │ │ └── validateRegEx.js │ ├── schemaDetail/ │ │ ├── create.js │ │ ├── delete.js │ │ ├── deleteDependency.js │ │ ├── paginate.js │ │ ├── update.js │ │ └── upsert.js │ └── util/ │ ├── fieldsList.js │ ├── getApplicationData.js │ ├── getBaseUrl.js │ ├── getPermissionWiseRoute.js │ ├── getRoutes.js │ ├── randomNumber.js │ ├── validation/ │ │ ├── accessPermission.js │ │ ├── actionValidation.js │ │ ├── apiIntegration.js │ │ ├── applicationConfig.js │ │ ├── applicationCreate.js │ │ ├── applicationId.js │ │ ├── applicationUpdate.js │ │ ├── applicationUpsert.js │ │ ├── defaultInsertModels.js │ │ ├── group.js │ │ ├── masterValidation.js │ │ ├── projectConstant.js │ │ ├── projectCreate.js │ │ ├── projectPolicy.js │ │ ├── projectRoleAccessPermission.js │ │ ├── projectRoute.js │ │ ├── projectUpdate.js │ │ ├── projectUpsert.js │ │ ├── schema.js │ │ ├── schemaDetail.js │ │ └── sqlImport.js │ └── validation.js └── util-service/ ├── common/ │ ├── common.js │ └── index.js ├── crypto/ │ ├── crypto.js │ └── index.js └── validation/ └── index.js ================================================ FILE CONTENTS ================================================ ================================================ FILE: .github/ISSUE_TEMPLATE/bug_report.md ================================================ --- name: 🐞 Bug about: File a bug/issue title: '[BUG]
Node.js code generator is a developer-centric platform to build backend CRUD APIs along with other essential features to boost developers' productivity time by twofold! Developers just need to add their schema data to reduce their work related to models into a few simple configurations. Developers can also configure platforms , routes, role access, authentication & more for their application. Most importantly, the Node.js code generator gives developers total code ownership. The code it generates is bug-free and easily customizable
## Table of contents * [Get started](#get-started) * [Supported Architectures](#supported-architectures) * [Features](#features-of-generated-code) * [Documentation](#documentation) ## Get started After a successful run, a user can configure different settings using UI, and build an app to generate the code. 1. To run ```npm i && npm run start``` > :warning: Note: Use ```npm i --force``` If your npm installation fails. As Node version >= 14 will give you errors if peer dependency in different packages have ambiguation in versions. 2. With ```npm run start``` project will run on 3000 port. 3. Run http://localhost:3000 and you will see "create application" form. After creating an application you can configure modules and build the app to get the source code.
4. After a successful build, Generated code will resides inside the **packages/server/output** folder.
## Supported architectures
This project provides two architectures to choose from, while creating an application.
### Clean Code
The main rule of clean architecture is that code dependencies can only move from the outer levels inward. Code on the inner layers can have no knowledge of functions on the outer layers.
### MVC - Model-View-Controller
The Model-View-Controller (MVC) is an architectural pattern that separates an application into three main logical components: the model, the view, and the controller. Each of these components are built to handle specific development aspects of an application.
## Features of generated code
1. User Authentication and Authorization (using Passport)
2. Social Login APIs
3. CRUD APIs with middleware and attributes' selection
4. List API with pagination, populate and queries
5. Upload attachment API with validation and storage options like (Local server or S3 public/private bucket)
6. Role-Permission
8. Hooks and Indexes
9. Policy/middleware
10. API request body validation (Using joi)
11. API response with standard error and message pattern
12. Test cases
13. Postman collection and API documentation
15. Constants
17. Environment Variables for development, QA and production
18. Custom API setup
19. Multiple Platform selection and User type configuration
20. MVC and Clean-code architecture
21. Supported Databases {dec}
} {children}= { [K in keyof JSX.IntrinsicElements]: P extends JSX.IntrinsicElements[K] ? K : never }[keyof JSX.IntrinsicElements] | ComponentType
; type ReactType
= ElementType
; type ComponentType
= ComponentClass
| FunctionComponent
; type JSXElementConstructor
= | ((props: P) => ReactElement | null) | (new (props: P) => Component
);
interface RefObject = string | JSXElementConstructor > { }
type SFCElement = FunctionComponentElement ;
interface FunctionComponentElement extends ReactElement > {
ref?: 'ref' extends keyof P ? P extends { ref?: infer R } ? R : never : never;
}
type CElement > = ComponentElement ;
interface ComponentElement > extends ReactElement > {
ref?: LegacyRef = CElement >;
// string fallback for custom web-components
interface DOMElement | SVGAttributes {
ref: LegacyRef , T extends HTMLElement> extends DOMElement {
type: keyof ReactHTML;
}
// ReactSVG for ReactSVGElement
interface ReactSVGElement extends DOMElement = (props?: Attributes & P, ...children: ReactNode[]) => ReactElement ;
type SFCFactory = FunctionComponentFactory ;
type FunctionComponentFactory = (props?: Attributes & P, ...children: ReactNode[]) => FunctionComponentElement ;
type ComponentFactory > =
(props?: ClassAttributes ;
type CFactory > = ComponentFactory ;
type ClassicFactory = CFactory >;
type DOMFactory , T extends Element> =
(props?: ClassAttributes ;
// tslint:disable-next-line:no-empty-interface
interface HTMLFactory , T extends HTMLElement> extends DOMFactory {
(props?: ClassAttributes ;
}
interface SVGFactory extends DOMFactory , T extends Element>(
type: string): DOMFactory ;
// Custom components
function createFactory (type: FunctionComponent ): FunctionComponentFactory ;
function createFactory (
type: ClassType , ClassicComponentClass >): CFactory >;
function createFactory , C extends ComponentClass >(
type: ClassType ): CFactory ;
function createFactory (type: ComponentClass ): Factory ;
// DOM Elements
function createElement(
type: "input",
props?: InputHTMLAttributes , T extends HTMLElement>(
type: keyof ReactHTML,
props?: ClassAttributes ;
function createElement , T extends SVGElement>(
type: keyof ReactSVG,
props?: ClassAttributes , T extends Element>(
type: string,
props?: ClassAttributes ;
// Custom components
function createElement (
type: FunctionComponent ,
props?: Attributes & P | null,
...children: ReactNode[]): FunctionComponentElement ;
function createElement (
type: ClassType , ClassicComponentClass >,
props?: ClassAttributes >;
function createElement , C extends ComponentClass >(
type: ClassType ,
props?: ClassAttributes ;
function createElement (
type: FunctionComponent | ComponentClass | string,
props?: Attributes & P | null,
...children: ReactNode[]): ReactElement ;
// DOM Elements
// ReactHTMLElement
function cloneElement , T extends HTMLElement>(
element: DetailedReactHTMLElement ,
props?: P,
...children: ReactNode[]): DetailedReactHTMLElement ;
// ReactHTMLElement, less specific
function cloneElement , T extends HTMLElement>(
element: ReactHTMLElement , T extends SVGElement>(
element: ReactSVGElement,
props?: P,
...children: ReactNode[]): ReactSVGElement;
// DOM Element (has to be the last, because type checking stops at first overload that fits)
function cloneElement , T extends Element>(
element: DOMElement ,
props?: DOMAttributes ;
// Custom components
function cloneElement (
element: FunctionComponentElement ,
props?: Partial & Attributes,
...children: ReactNode[]): FunctionComponentElement ;
function cloneElement >(
element: CElement ,
props?: Partial & ClassAttributes ;
function cloneElement (
element: ReactElement ,
props?: Partial & Attributes,
...children: ReactNode[]): ReactElement ;
// Context via RenderProps
interface ProviderProps {
/**
* **NOTE**: Exotic components are not callable.
*/
(props: P): (ReactElement|null);
readonly $$typeof: symbol;
}
interface NamedExoticComponent extends ExoticComponent {
displayName?: string;
}
interface ProviderExoticComponent extends ExoticComponent {
propTypes?: WeakValidationMap ;
}
type ContextType (object: {} | null | undefined): object is ReactElement ;
const Children: ReactChildren;
const Fragment: ExoticComponent<{ children?: ReactNode }>;
const StrictMode: ExoticComponent<{ children?: ReactNode }>;
interface SuspenseProps {
children?: ReactNode;
/** A fallback react tree to show when a Suspense child (like React.lazy) suspends */
fallback: NonNullable extends ComponentLifecycle { }
class Component {
static contextType?: Context );
/**
* @deprecated
* @see https://reactjs.org/docs/legacy-context.html
*/
constructor(props: P, context?: any);
setState ) => (Pick & Readonly<{ children?: ReactNode }>;
state: Readonly extends Component { }
interface ClassicComponent extends Component {
replaceState(nextState: S, callback?: () => void): void;
isMounted(): boolean;
getInitialState?(): S;
}
interface ChildContextProvider = FunctionComponent ;
type StatelessComponent = FunctionComponent ;
type FC = FunctionComponent ;
interface FunctionComponent {
(props: PropsWithChildren , context?: any): ReactElement ;
contextTypes?: ValidationMap ;
displayName?: string;
}
interface ForwardRefRenderFunction , ref: ((instance: T | null) => void) | MutableRefObject extends StaticLifecycle {
new (props: P, context?: any): Component ;
propTypes?: WeakValidationMap ;
contextType?: Context ;
displayName?: string;
}
interface ClassicComponentClass extends ComponentClass {
new (props: P, context?: any): ClassicComponent ;
getDefaultProps?(): P;
}
/**
* We use an intersection type to infer multiple type parameters from
* a single argument, which is useful for many top-level API defs.
* See https://github.com/Microsoft/TypeScript/issues/7234 for more info.
*/
type ClassType , C extends ComponentClass > =
C &
(new (props: P, context?: any) => T);
//
// Component Specs and Lifecycle
// ----------------------------------------------------------------------
interface ComponentLifecycle extends NewLifecycle , DeprecatedLifecycle {
/**
* Called immediately after a component is mounted. Setting state here will trigger re-rendering.
*/
componentDidMount?(): void;
shouldComponentUpdate?(nextProps: Readonly , nextState: Readonly {
getDerivedStateFromProps?: GetDerivedStateFromProps ;
getDerivedStateFromError?: GetDerivedStateFromError ;
}
type GetDerivedStateFromProps =
/**
* Returns an update to a component's state based on its new props and old state.
*
* Note: its presence prevents any of the deprecated lifecycle methods from being invoked
*/
(nextProps: Readonly , prevState: S) => Partial =
/**
* This lifecycle is invoked after an error has been thrown by a descendant component.
* It receives the error that was thrown as a parameter and should return a value to update state.
*
* Note: its presence prevents any of the deprecated lifecycle methods from being invoked
*/
(error: any) => Partial {
getSnapshotBeforeUpdate?(prevProps: Readonly , prevState: Readonly , prevState: Readonly {
componentWillMount?(): void;
UNSAFE_componentWillMount?(): void;
componentWillReceiveProps?(nextProps: Readonly , nextContext: any): void;
UNSAFE_componentWillReceiveProps?(nextProps: Readonly , nextContext: any): void;
componentWillUpdate?(nextProps: Readonly , nextState: Readonly , nextState: Readonly extends ComponentLifecycle {
mixins?: Array extends Mixin {
render(): ReactNode;
[propertyName: string]: any;
}
function createRef extends NamedExoticComponent {
defaultProps?: Partial ;
propTypes?: WeakValidationMap ;
}
function forwardRef =
// Just Pick would be sufficient for this, but I'm trying to avoid unnecessary mapping over union types
// https://github.com/Microsoft/TypeScript/issues/28339
'ref' extends keyof P
? Pick >
: P;
/** Ensures that the props do not include string ref, which cannot be forwarded */
type PropsWithRef =
// Just "P extends { ref?: infer R }" looks sufficient, but R will infer as {} if P is {}.
'ref' extends keyof P
? P extends { ref?: infer R }
? string extends R
? PropsWithoutRef & { ref?: Exclude = P & { children?: ReactNode };
/**
* NOTE: prefer ComponentPropsWithRef, if the ref is forwarded,
* or ComponentPropsWithoutRef when refs are not supported.
*/
type ComponentProps & RefAttributes (
Component: SFC, props: Readonly | S | null)) | (Pick | S | null),
callback?: () => void
): void;
forceUpdate(callback?: () => void): void;
render(): ReactNode;
readonly props: Readonly;
/**
* @deprecated
* https://reactjs.org/docs/refs-and-the-dom.html#legacy-api-string-refs
*/
refs: {
[key: string]: ReactInstance
};
}
class PureComponent, nextContext: any): boolean;
componentWillUnmount?(): void;
/**
* Catches exceptions generated in descendant components. Unhandled exceptions will cause
* the entire component tree to unmount.
*/
componentDidCatch?(error: Error, errorInfo: ErrorInfo): void;
}
// Unfortunately, we have no way of declaring that the component constructor must implement this
interface StaticLifecycle | null;
type GetDerivedStateFromError | null;
// This should be "infer SS" but can't use it yet
interface NewLifecycle): SS | null;
/**
* Called immediately after updating occurs. Not called for the initial render.
*
* The snapshot is only present if getSnapshotBeforeUpdate is present and returns non-null.
*/
componentDidUpdate?(prevProps: Readonly, snapshot?: SS): void;
}
interface DeprecatedLifecycle, nextContext: any): void;
UNSAFE_componentWillUpdate?(nextProps: Readonly, nextContext: any): void;
}
interface Mixin