@carlonicora/nextjs-jsonapi 1.0.3 → 1.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{AbstractService-BKlpJA61.d.mts → AbstractService-B2n_JdiC.d.mts} +1 -1
- package/dist/{AbstractService-D9eSVKNa.d.ts → AbstractService-DtQTYovo.d.ts} +1 -1
- package/dist/{content.interface-Dg2lt_An.d.mts → AuthComponent-CPLvEerw.d.mts} +11 -15
- package/dist/{content.interface-BhyAiOFq.d.ts → AuthComponent-m6Qp4Hz6.d.ts} +11 -15
- package/dist/{BlockNoteEditor-UVO3VZZE.mjs → BlockNoteEditor-BLVXQPXV.mjs} +14 -18
- package/dist/{BlockNoteEditor-UVO3VZZE.mjs.map → BlockNoteEditor-BLVXQPXV.mjs.map} +1 -1
- package/dist/{BlockNoteEditor-VFWG6LXI.js → BlockNoteEditor-ZTDHULFT.js} +15 -19
- package/dist/BlockNoteEditor-ZTDHULFT.js.map +1 -0
- package/dist/JsonApiRequest-O7BGUMFO.mjs +23 -0
- package/dist/JsonApiRequest-VARLNKAF.js +23 -0
- package/dist/JsonApiRequest-VARLNKAF.js.map +1 -0
- package/dist/chunk-2LM6LCJW.mjs +1 -0
- package/dist/chunk-3APORDYP.mjs +7783 -0
- package/dist/chunk-3APORDYP.mjs.map +1 -0
- package/dist/{chunk-TMVHSY3Y.js → chunk-5ZEADNNP.js} +36 -17
- package/dist/chunk-5ZEADNNP.js.map +1 -0
- package/dist/{chunk-ECDTZBYO.mjs → chunk-74F6BBHH.mjs} +21 -2
- package/dist/chunk-74F6BBHH.mjs.map +1 -0
- package/dist/{chunk-GYWPEPOH.mjs → chunk-7C5RAEBO.mjs} +72 -68
- package/dist/chunk-7C5RAEBO.mjs.map +1 -0
- package/dist/chunk-A5DDIABK.js +1 -0
- package/dist/{chunk-TEGF6ZWG.js → chunk-AGAJMJ4T.js} +47 -9
- package/dist/chunk-AGAJMJ4T.js.map +1 -0
- package/dist/{chunk-CXQOWQSY.js → chunk-AYHKQWHH.js} +15 -2
- package/dist/chunk-AYHKQWHH.js.map +1 -0
- package/dist/{chunk-I2REI7OA.js → chunk-HMHGLXWC.js} +33 -15
- package/dist/chunk-HMHGLXWC.js.map +1 -0
- package/dist/chunk-IWFGEPAA.mjs +1 -0
- package/dist/chunk-JC3WJK65.js +1 -0
- package/dist/{chunk-L6EQEAXU.mjs → chunk-PYF2U6WG.mjs} +25 -7
- package/dist/chunk-PYF2U6WG.mjs.map +1 -0
- package/dist/{chunk-YDVTFM7X.mjs → chunk-RBIVEH2K.mjs} +42 -4
- package/dist/chunk-RBIVEH2K.mjs.map +1 -0
- package/dist/{chunk-V2JJPI7N.js → chunk-RZO2LOW4.js} +237 -233
- package/dist/chunk-RZO2LOW4.js.map +1 -0
- package/dist/{chunk-X4BIHJ2B.mjs → chunk-SM63SZCP.mjs} +15 -2
- package/dist/chunk-SM63SZCP.mjs.map +1 -0
- package/dist/chunk-WEC4YMOS.js +7783 -0
- package/dist/chunk-WEC4YMOS.js.map +1 -0
- package/dist/client/index.d.mts +21 -2
- package/dist/client/index.d.ts +21 -2
- package/dist/client/index.js +18 -245
- package/dist/client/index.js.map +1 -1
- package/dist/client/index.mjs +28 -255
- package/dist/client/index.mjs.map +1 -1
- package/dist/components/index.d.mts +293 -8
- package/dist/components/index.d.ts +293 -8
- package/dist/components/index.js +78 -2323
- package/dist/components/index.js.map +1 -1
- package/dist/components/index.mjs +172 -2417
- package/dist/components/index.mjs.map +1 -1
- package/dist/{config-hXufftVS.d.ts → config-BmnK65TD.d.mts} +1 -0
- package/dist/{config-hXufftVS.d.mts → config-BmnK65TD.d.ts} +1 -0
- package/dist/config-DQeAo9Kf.d.mts +49 -0
- package/dist/config-DQeAo9Kf.d.ts +49 -0
- package/dist/contexts/index.d.mts +109 -21
- package/dist/contexts/index.d.ts +109 -21
- package/dist/contexts/index.js +39 -7
- package/dist/contexts/index.js.map +1 -1
- package/dist/contexts/index.mjs +40 -8
- package/dist/core/index.d.mts +3 -4
- package/dist/core/index.d.ts +3 -4
- package/dist/core/index.js +3 -7
- package/dist/core/index.js.map +1 -1
- package/dist/core/index.mjs +4 -8
- package/dist/{d3.link.interface-QMdB22bC.d.mts → d3.link.interface-ClC4Irqp.d.mts} +2 -1
- package/dist/{d3.link.interface-QMdB22bC.d.ts → d3.link.interface-ClC4Irqp.d.ts} +2 -1
- package/dist/features/index.d.mts +17 -86
- package/dist/features/index.d.ts +17 -86
- package/dist/features/index.js +7 -16
- package/dist/features/index.js.map +1 -1
- package/dist/features/index.mjs +10 -19
- package/dist/hooks/index.d.mts +18 -43
- package/dist/hooks/index.d.ts +18 -43
- package/dist/hooks/index.js +20 -7
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/index.mjs +19 -6
- package/dist/index.d.mts +10 -6
- package/dist/index.d.ts +10 -6
- package/dist/index.js +13 -10
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +22 -19
- package/dist/interfaces/index.d.mts +2 -1
- package/dist/interfaces/index.d.ts +2 -1
- package/dist/notification.interface-BBgMUdLR.d.mts +14 -0
- package/dist/notification.interface-gyvT-Z2F.d.ts +14 -0
- package/dist/permissions/index.d.mts +2 -3
- package/dist/permissions/index.d.ts +2 -3
- package/dist/server/index.d.mts +38 -18
- package/dist/server/index.d.ts +38 -18
- package/dist/server/index.js +70 -2
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +68 -0
- package/dist/server/index.mjs.map +1 -1
- package/dist/types-BUAlgqqh.d.ts +39 -0
- package/dist/{types-DluCaP1I.d.ts → types-Bl61ob-7.d.mts} +19 -2
- package/dist/{types-lQVA8d_P.d.mts → types-Bl61ob-7.d.ts} +19 -2
- package/dist/types-iVdVY7ba.d.mts +39 -0
- package/dist/useSocket-Cn7fB_B1.d.mts +25 -0
- package/dist/useSocket-DzMKRKCA.d.ts +25 -0
- package/dist/user.fields-CbdObSmS.d.mts +18 -0
- package/dist/user.fields-CbdObSmS.d.ts +18 -0
- package/dist/utils/index.d.mts +1 -2
- package/dist/utils/index.d.ts +1 -2
- package/package.json +6 -3
- package/src/atoms/index.ts +1 -0
- package/src/atoms/recentPagesAtom.ts +10 -0
- package/src/client/context/JsonApiContext.ts +61 -0
- package/src/client/context/JsonApiProvider.tsx +27 -0
- package/src/client/context/index.ts +2 -0
- package/src/client/hooks/index.ts +3 -0
- package/src/client/hooks/useJsonApiGet.ts +188 -0
- package/src/client/hooks/useJsonApiMutation.ts +193 -0
- package/src/client/hooks/useRehydration.ts +47 -0
- package/src/client/index.ts +24 -0
- package/src/client/request.ts +97 -0
- package/src/client/token.ts +10 -0
- package/src/components/containers/PageContainer.tsx +15 -0
- package/src/components/containers/ReactMarkdownContainer.tsx +119 -0
- package/src/components/containers/TabsContainer.tsx +93 -0
- package/src/components/containers/index.ts +3 -0
- package/src/components/contents/AttributeElement.tsx +20 -0
- package/src/components/contents/index.ts +1 -0
- package/src/components/details/AllowedUsersDetails.tsx +23 -0
- package/src/components/details/index.ts +1 -0
- package/src/components/editors/BlockNoteDiffInlineContent.tsx +152 -0
- package/src/components/editors/BlockNoteEditor.tsx +404 -0
- package/src/components/editors/BlockNoteEditorContainer.tsx +13 -0
- package/src/components/editors/BlockNoteEditorFormattingToolbar.tsx +38 -0
- package/src/components/editors/index.ts +1 -0
- package/src/components/errors/ErrorDetails.tsx +41 -0
- package/src/components/errors/errorToast.ts +9 -0
- package/src/components/errors/index.ts +2 -0
- package/src/components/forms/CommonAssociationForm.tsx +162 -0
- package/src/components/forms/CommonDeleter.tsx +94 -0
- package/src/components/forms/CommonEditorButtons.tsx +30 -0
- package/src/components/forms/CommonEditorHeader.tsx +35 -0
- package/src/components/forms/CommonEditorTrigger.tsx +26 -0
- package/src/components/forms/DatePickerPopover.tsx +219 -0
- package/src/components/forms/DateRangeSelector.tsx +110 -0
- package/src/components/forms/FileUploader.tsx +324 -0
- package/src/components/forms/FormCheckbox.tsx +66 -0
- package/src/components/forms/FormContainerGeneric.tsx +39 -0
- package/src/components/forms/FormDate.tsx +247 -0
- package/src/components/forms/FormDateTime.tsx +231 -0
- package/src/components/forms/FormInput.tsx +110 -0
- package/src/components/forms/FormPassword.tsx +54 -0
- package/src/components/forms/FormPlaceAutocomplete.tsx +286 -0
- package/src/components/forms/FormSelect.tsx +72 -0
- package/src/components/forms/FormSlider.tsx +51 -0
- package/src/components/forms/FormSwitch.tsx +25 -0
- package/src/components/forms/FormTextarea.tsx +44 -0
- package/src/components/forms/MultiFileUploader.tsx +107 -0
- package/src/components/forms/PasswordInput.tsx +47 -0
- package/src/components/forms/index.ts +22 -0
- package/src/components/index.ts +16 -0
- package/src/components/navigations/Breadcrumb.tsx +83 -0
- package/src/components/navigations/ContentTitle.tsx +39 -0
- package/src/components/navigations/Header.tsx +27 -0
- package/src/components/navigations/ModeToggleSwitch.tsx +25 -0
- package/src/components/navigations/PageSection.tsx +64 -0
- package/src/components/navigations/RecentPagesNavigator.tsx +52 -0
- package/src/components/navigations/index.ts +6 -0
- package/src/components/pages/PageContainerContentDetails.tsx +76 -0
- package/src/components/pages/PageContentContainer.tsx +31 -0
- package/src/components/pages/index.ts +2 -0
- package/src/components/tables/ContentListTable.tsx +166 -0
- package/src/components/tables/ContentTableSearch.tsx +105 -0
- package/src/components/tables/cells/cell.component.tsx +18 -0
- package/src/components/tables/cells/cell.date.tsx +16 -0
- package/src/components/tables/cells/cell.id.tsx +27 -0
- package/src/components/tables/cells/cell.link.tsx +18 -0
- package/src/components/tables/cells/cell.text.tsx +12 -0
- package/src/components/tables/cells/cell.url.tsx +13 -0
- package/src/components/tables/cells/index.ts +5 -0
- package/src/components/tables/index.ts +3 -0
- package/src/contexts/CommonContext.tsx +52 -0
- package/src/contexts/SharedContext.tsx +37 -0
- package/src/contexts/SocketContext.tsx +65 -0
- package/src/contexts/index.ts +7 -0
- package/src/core/abstracts/AbstractApiData.ts +138 -0
- package/src/core/abstracts/AbstractService.ts +263 -0
- package/src/core/abstracts/index.ts +2 -0
- package/src/core/endpoint/EndpointCreator.ts +97 -0
- package/src/core/endpoint/index.ts +1 -0
- package/src/core/factories/JsonApiDataFactory.ts +12 -0
- package/src/core/factories/RehydrationFactory.ts +30 -0
- package/src/core/factories/index.ts +2 -0
- package/src/core/fields/FieldSelector.ts +15 -0
- package/src/core/fields/index.ts +1 -0
- package/src/core/index.ts +20 -0
- package/src/core/interfaces/ApiData.ts +8 -0
- package/src/core/interfaces/ApiDataInterface.ts +15 -0
- package/src/core/interfaces/ApiRequestDataTypeInterface.ts +14 -0
- package/src/core/interfaces/ApiResponseInterface.ts +17 -0
- package/src/core/interfaces/JsonApiHydratedDataInterface.ts +5 -0
- package/src/core/interfaces/index.ts +5 -0
- package/{dist/chunk-DO2HLAZO.js → src/core/registry/DataClassRegistry.ts} +20 -17
- package/src/core/registry/ModuleRegistrar.ts +43 -0
- package/src/core/registry/ModuleRegistry.ts +64 -0
- package/src/core/registry/index.ts +3 -0
- package/src/core/utils/index.ts +2 -0
- package/src/core/utils/rehydrate.ts +24 -0
- package/src/core/utils/translateResponse.ts +125 -0
- package/src/features/auth/auth.module.ts +9 -0
- package/src/features/auth/components/containers/AuthContainer.tsx +32 -0
- package/src/features/auth/components/containers/index.ts +1 -0
- package/src/features/auth/components/details/LandingComponent.tsx +39 -0
- package/src/features/auth/components/details/index.ts +1 -0
- package/src/features/auth/components/forms/AcceptInvitation.tsx +136 -0
- package/src/features/auth/components/forms/ActivateAccount.tsx +75 -0
- package/src/features/auth/components/forms/Cookies.tsx +32 -0
- package/src/features/auth/components/forms/ForgotPassword.tsx +108 -0
- package/src/features/auth/components/forms/Login.tsx +118 -0
- package/src/features/auth/components/forms/Logout.tsx +19 -0
- package/src/features/auth/components/forms/RefreshUser.tsx +39 -0
- package/src/features/auth/components/forms/Register.tsx +150 -0
- package/src/features/auth/components/forms/ResetPassword.tsx +126 -0
- package/src/features/auth/components/forms/index.ts +9 -0
- package/src/features/auth/components/index.ts +3 -0
- package/src/features/auth/config.ts +57 -0
- package/src/features/auth/contexts/AuthContext.tsx +77 -0
- package/src/features/auth/contexts/index.ts +1 -0
- package/src/features/auth/data/auth.interface.ts +31 -0
- package/src/features/auth/data/auth.service.ts +159 -0
- package/src/features/auth/data/auth.ts +54 -0
- package/src/features/auth/data/index.ts +3 -0
- package/src/features/auth/enums/AuthComponent.ts +9 -0
- package/src/features/auth/enums/index.ts +1 -0
- package/src/features/auth/index.ts +4 -0
- package/src/features/auth/utils/AuthCookies.ts +134 -0
- package/src/features/auth/utils/index.ts +1 -0
- package/src/features/company/company.module.ts +10 -0
- package/src/features/company/components/containers/AdminCompanyContainer.tsx +26 -0
- package/src/features/company/components/containers/CompanyContainer.tsx +17 -0
- package/src/features/company/components/containers/index.ts +2 -0
- package/src/features/company/components/details/CompanyDetails.tsx +26 -0
- package/src/features/company/components/details/index.ts +1 -0
- package/src/features/company/components/forms/CompanyConfigurationEditor.tsx +151 -0
- package/src/features/company/components/forms/CompanyConfigurationSecurityForm.tsx +97 -0
- package/src/features/company/components/forms/CompanyDeleter.tsx +121 -0
- package/src/features/company/components/forms/CompanyEditor.tsx +245 -0
- package/src/features/company/components/forms/CompanyLicense.tsx +213 -0
- package/src/features/company/components/forms/index.ts +5 -0
- package/src/features/company/components/index.ts +4 -0
- package/src/features/company/components/lists/CompaniesList.tsx +31 -0
- package/src/features/company/components/lists/index.ts +1 -0
- package/src/features/company/contexts/CompanyContext.tsx +99 -0
- package/src/features/company/contexts/index.ts +0 -0
- package/src/features/company/data/company.fields.ts +6 -0
- package/src/features/company/data/company.interface.ts +28 -0
- package/src/features/company/data/company.service.ts +73 -0
- package/src/features/company/data/company.ts +104 -0
- package/src/features/company/data/index.ts +4 -0
- package/src/features/company/hooks/index.ts +1 -0
- package/src/features/company/hooks/useCompanyTableStructure.tsx +82 -0
- package/src/features/company/index.ts +2 -0
- package/src/features/content/content.module.ts +20 -0
- package/src/features/content/data/content.fields.ts +13 -0
- package/src/features/content/data/content.interface.ts +23 -0
- package/src/features/content/data/content.service.ts +75 -0
- package/src/features/content/data/content.ts +85 -0
- package/src/features/content/data/index.ts +4 -0
- package/src/features/content/index.ts +2 -0
- package/src/features/feature/components/forms/FormFeatures.tsx +150 -0
- package/src/features/feature/components/forms/index.ts +1 -0
- package/src/features/feature/components/index.ts +1 -0
- package/src/features/feature/data/feature.interface.ts +9 -0
- package/src/features/feature/data/feature.service.ts +19 -0
- package/src/features/feature/data/feature.ts +33 -0
- package/src/features/feature/data/index.ts +3 -0
- package/src/features/feature/feature.module.ts +10 -0
- package/src/features/feature/index.ts +2 -0
- package/src/features/index.ts +12 -0
- package/src/features/module/data/index.ts +2 -0
- package/src/features/module/data/module.interface.ts +12 -0
- package/src/features/module/data/module.ts +42 -0
- package/src/features/module/index.ts +2 -0
- package/src/features/module/module.module.ts +10 -0
- package/src/features/notification/components/common/NotificationErrorBoundary.tsx +51 -0
- package/src/features/notification/components/common/index.ts +1 -0
- package/src/features/notification/components/containers/NotificationsListContainer.tsx +44 -0
- package/src/features/notification/components/containers/index.ts +1 -0
- package/src/features/notification/components/index.ts +5 -0
- package/src/features/notification/components/lists/NotificationsList.tsx +129 -0
- package/src/features/notification/components/lists/index.ts +1 -0
- package/src/features/notification/components/modals/NotificationModal.tsx +220 -0
- package/src/features/notification/components/modals/index.ts +1 -0
- package/src/features/notification/components/notifications/Notification.tsx +120 -0
- package/src/features/notification/components/notifications/PushNotificationProvider.tsx +9 -0
- package/src/features/notification/components/notifications/index.ts +2 -0
- package/src/features/notification/contexts/NotificationContext.tsx +187 -0
- package/src/features/notification/contexts/index.ts +1 -0
- package/src/features/notification/data/index.ts +4 -0
- package/src/features/notification/data/notification.fields.ts +8 -0
- package/src/features/notification/data/notification.interface.ts +14 -0
- package/src/features/notification/data/notification.service.ts +34 -0
- package/src/features/notification/data/notification.ts +51 -0
- package/src/features/notification/index.ts +2 -0
- package/src/features/notification/notification.module.ts +10 -0
- package/src/features/push/data/index.ts +3 -0
- package/src/features/push/data/push.interface.ts +8 -0
- package/src/features/push/data/push.service.ts +17 -0
- package/src/features/push/data/push.ts +18 -0
- package/src/features/push/index.ts +2 -0
- package/src/features/push/push.module.ts +10 -0
- package/src/features/role/components/containers/RoleContainer.tsx +18 -0
- package/src/features/role/components/containers/index.ts +1 -0
- package/src/features/role/components/details/RoleDetails.tsx +21 -0
- package/src/features/role/components/details/index.ts +1 -0
- package/src/features/role/components/forms/FormRoles.tsx +82 -0
- package/src/features/role/components/forms/RemoveUserFromRole.tsx +108 -0
- package/src/features/role/components/forms/UserRoleAdd.tsx +128 -0
- package/src/features/role/components/forms/index.ts +3 -0
- package/src/features/role/components/index.ts +4 -0
- package/src/features/role/components/lists/RolesList.tsx +27 -0
- package/src/features/role/components/lists/UserRolesList.tsx +31 -0
- package/src/features/role/components/lists/index.ts +2 -0
- package/src/features/role/contexts/RoleContext.tsx +84 -0
- package/src/features/role/contexts/index.ts +1 -0
- package/src/features/role/data/index.ts +4 -0
- package/src/features/role/data/role.fields.ts +8 -0
- package/src/features/role/data/role.interface.ts +16 -0
- package/src/features/role/data/role.service.ts +117 -0
- package/src/features/role/data/role.ts +62 -0
- package/src/features/role/hooks/index.ts +1 -0
- package/src/features/role/hooks/useRoleTableStructure.tsx +72 -0
- package/src/features/role/index.ts +2 -0
- package/src/features/role/role.module.ts +10 -0
- package/src/features/s3/data/index.ts +3 -0
- package/src/features/s3/data/s3.interface.ts +11 -0
- package/src/features/s3/data/s3.service.ts +30 -0
- package/src/features/s3/data/s3.ts +60 -0
- package/src/features/s3/index.ts +2 -0
- package/src/features/s3/s3.module.ts +10 -0
- package/src/features/search/index.ts +1 -0
- package/src/features/search/interfaces/index.ts +1 -0
- package/src/features/search/interfaces/search.result.interface.ts +3 -0
- package/src/features/user/author.module.ts +10 -0
- package/src/features/user/components/containers/UserContainer.tsx +23 -0
- package/src/features/user/components/containers/UserIndexContainer.tsx +12 -0
- package/src/features/user/components/containers/UsersListContainer.tsx +36 -0
- package/src/features/user/components/containers/index.ts +3 -0
- package/src/features/user/components/details/UserDetails.tsx +74 -0
- package/src/features/user/components/details/UserIndexDetails.tsx +28 -0
- package/src/features/user/components/details/index.ts +2 -0
- package/src/features/user/components/forms/RoleUserAdd.tsx +93 -0
- package/src/features/user/components/forms/UserAvatarEditor.tsx +78 -0
- package/src/features/user/components/forms/UserDeleter.tsx +49 -0
- package/src/features/user/components/forms/UserEditor.tsx +319 -0
- package/src/features/user/components/forms/UserMultiSelect.tsx +218 -0
- package/src/features/user/components/forms/UserReactivator.tsx +79 -0
- package/src/features/user/components/forms/UserResentInvitationEmail.tsx +88 -0
- package/src/features/user/components/forms/UserSelector.tsx +185 -0
- package/src/features/user/components/forms/index.ts +8 -0
- package/src/features/user/components/index.ts +5 -0
- package/src/features/user/components/lists/AdminUsersList.tsx +41 -0
- package/src/features/user/components/lists/CompanyUsersList.tsx +44 -0
- package/src/features/user/components/lists/ContributorsList.tsx +41 -0
- package/src/features/user/components/lists/RelevantUsersList.tsx +30 -0
- package/src/features/user/components/lists/RoleUsersList.tsx +31 -0
- package/src/features/user/components/lists/UserListInAdd.tsx +53 -0
- package/src/features/user/components/lists/UsersList.tsx +30 -0
- package/src/features/user/components/lists/UsersListByContentIds.tsx +30 -0
- package/src/features/user/components/lists/index.ts +8 -0
- package/src/features/user/components/widgets/UserAvatar.tsx +86 -0
- package/src/features/user/components/widgets/UserAvatarList.tsx +31 -0
- package/src/features/user/components/widgets/UserSearchPopover.tsx +89 -0
- package/src/features/user/components/widgets/index.ts +1 -0
- package/src/features/user/contexts/CurrentUserContext.tsx +156 -0
- package/src/features/user/contexts/UserContext.tsx +106 -0
- package/src/features/user/contexts/index.ts +2 -0
- package/src/features/user/data/index.ts +4 -0
- package/src/features/user/data/user.fields.ts +8 -0
- package/src/features/user/data/user.interface.ts +41 -0
- package/src/features/user/data/user.service.ts +246 -0
- package/src/features/user/data/user.ts +162 -0
- package/src/features/user/hooks/index.ts +2 -0
- package/src/features/user/hooks/useUserSearch.ts +53 -0
- package/src/features/user/hooks/useUserTableStructure.tsx +115 -0
- package/src/features/user/index.ts +3 -0
- package/src/features/user/user.module.ts +21 -0
- package/src/hooks/TableGeneratorRegistry.ts +53 -0
- package/src/hooks/index.ts +37 -0
- package/src/hooks/types.ts +35 -0
- package/src/hooks/url.rewriter.ts +22 -0
- package/src/hooks/useCustomD3Graph.tsx +707 -0
- package/src/hooks/useDataListRetriever.ts +349 -0
- package/src/hooks/useDebounce.ts +33 -0
- package/src/hooks/useNotificationSync.ts +20 -0
- package/src/hooks/usePageTracker.ts +69 -0
- package/src/hooks/usePageUrlGenerator.ts +50 -0
- package/src/hooks/usePushNotifications.ts +82 -0
- package/src/hooks/useSocket.ts +201 -0
- package/src/hooks/useTableGenerator.ts +20 -0
- package/src/i18n/config.ts +74 -0
- package/src/i18n/index.ts +18 -0
- package/src/index.ts +20 -0
- package/src/interfaces/breadcrumb.item.data.interface.ts +4 -0
- package/src/interfaces/d3.link.interface.ts +8 -0
- package/src/interfaces/d3.node.interface.ts +12 -0
- package/src/interfaces/index.ts +3 -0
- package/src/permissions/check.ts +127 -0
- package/src/permissions/index.ts +2 -0
- package/src/permissions/types.ts +109 -0
- package/src/roles/config.ts +46 -0
- package/src/roles/index.ts +1 -0
- package/src/server/ServerSession.ts +103 -0
- package/src/server/cache.ts +28 -0
- package/src/server/index.ts +4 -0
- package/src/server/request.ts +113 -0
- package/src/server/token.ts +10 -0
- package/src/shadcnui/custom/kanban.tsx +1001 -0
- package/src/shadcnui/custom/link.tsx +18 -0
- package/src/shadcnui/custom/multi-select.tsx +382 -0
- package/src/shadcnui/index.ts +49 -0
- package/src/shadcnui/ui/accordion.tsx +52 -0
- package/src/shadcnui/ui/alert-dialog.tsx +141 -0
- package/src/shadcnui/ui/alert.tsx +43 -0
- package/src/shadcnui/ui/avatar.tsx +50 -0
- package/src/shadcnui/ui/badge.tsx +40 -0
- package/src/shadcnui/ui/breadcrumb.tsx +115 -0
- package/src/shadcnui/ui/button.tsx +51 -0
- package/src/shadcnui/ui/calendar.tsx +73 -0
- package/src/shadcnui/ui/card.tsx +43 -0
- package/src/shadcnui/ui/carousel.tsx +225 -0
- package/src/shadcnui/ui/chart.tsx +320 -0
- package/src/shadcnui/ui/checkbox.tsx +29 -0
- package/src/shadcnui/ui/collapsible.tsx +11 -0
- package/src/shadcnui/ui/command.tsx +155 -0
- package/src/shadcnui/ui/context-menu.tsx +179 -0
- package/src/shadcnui/ui/dialog.tsx +96 -0
- package/src/shadcnui/ui/drawer.tsx +89 -0
- package/src/shadcnui/ui/dropdown-menu.tsx +205 -0
- package/src/shadcnui/ui/form.tsx +138 -0
- package/src/shadcnui/ui/hover-card.tsx +29 -0
- package/src/shadcnui/ui/input.tsx +21 -0
- package/src/shadcnui/ui/label.tsx +26 -0
- package/src/shadcnui/ui/navigation-menu.tsx +168 -0
- package/src/shadcnui/ui/popover.tsx +33 -0
- package/src/shadcnui/ui/progress.tsx +25 -0
- package/src/shadcnui/ui/radio-group.tsx +37 -0
- package/src/shadcnui/ui/resizable.tsx +47 -0
- package/src/shadcnui/ui/scroll-area.tsx +40 -0
- package/src/shadcnui/ui/select.tsx +164 -0
- package/src/shadcnui/ui/separator.tsx +28 -0
- package/src/shadcnui/ui/sheet.tsx +139 -0
- package/src/shadcnui/ui/sidebar.tsx +677 -0
- package/src/shadcnui/ui/skeleton.tsx +13 -0
- package/src/shadcnui/ui/slider.tsx +25 -0
- package/src/shadcnui/ui/sonner.tsx +25 -0
- package/src/shadcnui/ui/switch.tsx +31 -0
- package/src/shadcnui/ui/table.tsx +120 -0
- package/src/shadcnui/ui/tabs.tsx +55 -0
- package/src/shadcnui/ui/textarea.tsx +24 -0
- package/src/shadcnui/ui/toggle.tsx +39 -0
- package/src/shadcnui/ui/tooltip.tsx +61 -0
- package/src/unified/JsonApiRequest.ts +348 -0
- package/src/unified/index.ts +1 -0
- package/src/utils/blocknote-diff.util.ts +815 -0
- package/src/utils/blocknote-word-diff-renderer.util.ts +413 -0
- package/src/utils/cn.ts +6 -0
- package/src/utils/compose-refs.ts +61 -0
- package/src/utils/date-formatter.ts +53 -0
- package/src/utils/exists.ts +7 -0
- package/src/utils/index.ts +15 -0
- package/src/utils/schemas/entity.object.schema.ts +8 -0
- package/src/utils/schemas/index.ts +2 -0
- package/src/utils/schemas/user.object.schema.ts +9 -0
- package/src/utils/table-options.ts +67 -0
- package/src/utils/use-mobile.tsx +21 -0
- package/dist/ApiRequestDataTypeInterface-CUKFDBx2.d.mts +0 -20
- package/dist/ApiRequestDataTypeInterface-CUKFDBx2.d.ts +0 -20
- package/dist/BlockNoteEditor-VFWG6LXI.js.map +0 -1
- package/dist/JsonApiRequest-S3ICLM7B.mjs +0 -20
- package/dist/JsonApiRequest-ZZLSP26T.js +0 -20
- package/dist/JsonApiRequest-ZZLSP26T.js.map +0 -1
- package/dist/chunk-366S2JCC.mjs +0 -31
- package/dist/chunk-366S2JCC.mjs.map +0 -1
- package/dist/chunk-5W6AKZE6.mjs +0 -131
- package/dist/chunk-5W6AKZE6.mjs.map +0 -1
- package/dist/chunk-A3J3AAYM.mjs +0 -97
- package/dist/chunk-A3J3AAYM.mjs.map +0 -1
- package/dist/chunk-AWONBQQP.js +0 -97
- package/dist/chunk-AWONBQQP.js.map +0 -1
- package/dist/chunk-CXQOWQSY.js.map +0 -1
- package/dist/chunk-DKKMWBP4.mjs +0 -1
- package/dist/chunk-DKKMWBP4.mjs.map +0 -1
- package/dist/chunk-DO2HLAZO.js.map +0 -1
- package/dist/chunk-DZXDB3K2.mjs +0 -17
- package/dist/chunk-DZXDB3K2.mjs.map +0 -1
- package/dist/chunk-ECDTZBYO.mjs.map +0 -1
- package/dist/chunk-FY4SXJGU.js +0 -806
- package/dist/chunk-FY4SXJGU.js.map +0 -1
- package/dist/chunk-GYWPEPOH.mjs.map +0 -1
- package/dist/chunk-H6FMOA6B.js +0 -1
- package/dist/chunk-H6FMOA6B.js.map +0 -1
- package/dist/chunk-I2REI7OA.js.map +0 -1
- package/dist/chunk-J4Q36PMP.js +0 -31
- package/dist/chunk-J4Q36PMP.js.map +0 -1
- package/dist/chunk-L6EQEAXU.mjs.map +0 -1
- package/dist/chunk-MFO27OHB.mjs +0 -48
- package/dist/chunk-MFO27OHB.mjs.map +0 -1
- package/dist/chunk-RAF7PNLG.js +0 -131
- package/dist/chunk-RAF7PNLG.js.map +0 -1
- package/dist/chunk-RUR22SVM.js +0 -17
- package/dist/chunk-RUR22SVM.js.map +0 -1
- package/dist/chunk-TEGF6ZWG.js.map +0 -1
- package/dist/chunk-TMVHSY3Y.js.map +0 -1
- package/dist/chunk-V2JJPI7N.js.map +0 -1
- package/dist/chunk-WWWMJZEF.mjs +0 -806
- package/dist/chunk-WWWMJZEF.mjs.map +0 -1
- package/dist/chunk-X4BIHJ2B.mjs.map +0 -1
- package/dist/chunk-YDVTFM7X.mjs.map +0 -1
- /package/dist/{JsonApiRequest-S3ICLM7B.mjs.map → JsonApiRequest-O7BGUMFO.mjs.map} +0 -0
package/dist/server/index.mjs
CHANGED
|
@@ -4,6 +4,9 @@ import {
|
|
|
4
4
|
import {
|
|
5
5
|
getServerToken
|
|
6
6
|
} from "../chunk-YF5XQZDR.mjs";
|
|
7
|
+
import {
|
|
8
|
+
checkPermissionsFromServer
|
|
9
|
+
} from "../chunk-DD3KISNB.mjs";
|
|
7
10
|
import {
|
|
8
11
|
__name
|
|
9
12
|
} from "../chunk-PAWJFY3S.mjs";
|
|
@@ -20,7 +23,72 @@ async function invalidateCacheTags(tags, profile = "max") {
|
|
|
20
23
|
}
|
|
21
24
|
}
|
|
22
25
|
__name(invalidateCacheTags, "invalidateCacheTags");
|
|
26
|
+
|
|
27
|
+
// src/server/ServerSession.ts
|
|
28
|
+
import { cookies } from "next/headers";
|
|
29
|
+
import { redirect } from "next/navigation";
|
|
30
|
+
import zlib from "zlib";
|
|
31
|
+
var ServerSession = class {
|
|
32
|
+
static {
|
|
33
|
+
__name(this, "ServerSession");
|
|
34
|
+
}
|
|
35
|
+
static async isLogged() {
|
|
36
|
+
const cookieStore = await cookies();
|
|
37
|
+
const token = cookieStore.get("token");
|
|
38
|
+
if (!token || !token.value) return false;
|
|
39
|
+
return true;
|
|
40
|
+
}
|
|
41
|
+
static async isLicenseActive() {
|
|
42
|
+
const cookieStore = await cookies();
|
|
43
|
+
const licenseExpirationDate = cookieStore.get("licenseExpirationDate")?.value;
|
|
44
|
+
if (!licenseExpirationDate) return false;
|
|
45
|
+
const now = /* @__PURE__ */ new Date();
|
|
46
|
+
return new Date(licenseExpirationDate) > now;
|
|
47
|
+
}
|
|
48
|
+
static async companyId() {
|
|
49
|
+
const cookieStore = await cookies();
|
|
50
|
+
return cookieStore.get("companyId")?.value ?? "";
|
|
51
|
+
}
|
|
52
|
+
static async userId() {
|
|
53
|
+
const cookieStore = await cookies();
|
|
54
|
+
return cookieStore.get("userId")?.value ?? "";
|
|
55
|
+
}
|
|
56
|
+
static async checkPermission(params) {
|
|
57
|
+
if (!await this.hasPermissionToModule(params)) redirect(`/401`);
|
|
58
|
+
}
|
|
59
|
+
static async hasRole(roleId) {
|
|
60
|
+
const cookieStore = await cookies();
|
|
61
|
+
const roles = cookieStore.get("roles")?.value;
|
|
62
|
+
if (!roles || !roles.includes(roleId)) return false;
|
|
63
|
+
return true;
|
|
64
|
+
}
|
|
65
|
+
static async hasFeature(featureId) {
|
|
66
|
+
const cookieStore = await cookies();
|
|
67
|
+
const features = cookieStore.get("features")?.value;
|
|
68
|
+
if (!features || !features.includes(featureId)) return false;
|
|
69
|
+
return true;
|
|
70
|
+
}
|
|
71
|
+
static async hasPermissionToModule(params) {
|
|
72
|
+
const cookieStore = await cookies();
|
|
73
|
+
if (params.module.feature) {
|
|
74
|
+
const features = cookieStore.get("features")?.value;
|
|
75
|
+
if (features && !features.includes(params.module.feature)) return false;
|
|
76
|
+
}
|
|
77
|
+
const rawModules = cookieStore.get("modules")?.value;
|
|
78
|
+
if (!rawModules) return false;
|
|
79
|
+
const modules = JSON.parse(zlib.gunzipSync(Buffer.from(rawModules, "base64")).toString());
|
|
80
|
+
const selectedModule = modules.find((module) => module.id === params.module.moduleId);
|
|
81
|
+
return checkPermissionsFromServer({
|
|
82
|
+
module: params.module,
|
|
83
|
+
action: params.action,
|
|
84
|
+
data: params.data,
|
|
85
|
+
userId: await this.userId(),
|
|
86
|
+
selectedModule
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
};
|
|
23
90
|
export {
|
|
91
|
+
ServerSession,
|
|
24
92
|
getServerToken,
|
|
25
93
|
invalidateCacheTag,
|
|
26
94
|
invalidateCacheTags,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/server/cache.ts"],"sourcesContent":["\"use server\";\n\nimport { revalidateTag } from \"next/cache\";\n\nexport type CacheProfile = \"seconds\" | \"minutes\" | \"hours\" | \"days\" | \"weeks\" | \"max\" | \"default\";\n\n/**\n * Revalidate a cache tag to invalidate cached data.\n * Next.js 16+ requires a profile parameter.\n *\n * @param tag - The cache tag to invalidate\n * @param profile - The cache profile (defaults to \"max\" for immediate invalidation)\n */\nexport async function invalidateCacheTag(tag: string, profile: CacheProfile = \"max\"): Promise<void> {\n revalidateTag(tag, profile);\n}\n\n/**\n * Revalidate multiple cache tags.\n *\n * @param tags - Array of cache tags to invalidate\n * @param profile - The cache profile (defaults to \"max\" for immediate invalidation)\n */\nexport async function invalidateCacheTags(tags: string[], profile: CacheProfile = \"max\"): Promise<void> {\n for (const tag of tags) {\n revalidateTag(tag, profile);\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/server/cache.ts","../../src/server/ServerSession.ts"],"sourcesContent":["\"use server\";\n\nimport { revalidateTag } from \"next/cache\";\n\nexport type CacheProfile = \"seconds\" | \"minutes\" | \"hours\" | \"days\" | \"weeks\" | \"max\" | \"default\";\n\n/**\n * Revalidate a cache tag to invalidate cached data.\n * Next.js 16+ requires a profile parameter.\n *\n * @param tag - The cache tag to invalidate\n * @param profile - The cache profile (defaults to \"max\" for immediate invalidation)\n */\nexport async function invalidateCacheTag(tag: string, profile: CacheProfile = \"max\"): Promise<void> {\n revalidateTag(tag, profile);\n}\n\n/**\n * Revalidate multiple cache tags.\n *\n * @param tags - Array of cache tags to invalidate\n * @param profile - The cache profile (defaults to \"max\" for immediate invalidation)\n */\nexport async function invalidateCacheTags(tags: string[], profile: CacheProfile = \"max\"): Promise<void> {\n for (const tag of tags) {\n revalidateTag(tag, profile);\n }\n}\n","import { cookies } from \"next/headers\";\nimport { redirect } from \"next/navigation\";\nimport zlib from \"zlib\";\nimport { Action, checkPermissionsFromServer, ModuleWithPermissions } from \"../permissions\";\n\nexport class ServerSession {\n static async isLogged() {\n const cookieStore = await cookies();\n const token = cookieStore.get(\"token\");\n\n if (!token || !token.value) return false;\n return true;\n }\n\n static async isLicenseActive(): Promise<boolean> {\n const cookieStore = await cookies();\n const licenseExpirationDate = cookieStore.get(\"licenseExpirationDate\")?.value;\n\n if (!licenseExpirationDate) return false;\n\n const now = new Date();\n return new Date(licenseExpirationDate) > now;\n }\n\n static async companyId() {\n const cookieStore = await cookies();\n return cookieStore.get(\"companyId\")?.value ?? \"\";\n }\n\n static async userId() {\n const cookieStore = await cookies();\n return cookieStore.get(\"userId\")?.value ?? \"\";\n }\n\n static async checkPermission<M extends ModuleWithPermissions>(params: { module: M; action: Action; data?: any }) {\n if (!(await this.hasPermissionToModule(params))) redirect(`/401`);\n }\n\n static async hasRole(roleId: string): Promise<boolean> {\n const cookieStore = await cookies();\n const roles = cookieStore.get(\"roles\")?.value;\n\n if (!roles || !roles.includes(roleId)) return false;\n\n return true;\n }\n\n static async hasFeature(featureId: string): Promise<boolean> {\n const cookieStore = await cookies();\n const features = cookieStore.get(\"features\")?.value;\n\n if (!features || !features.includes(featureId)) return false;\n\n return true;\n }\n\n static async hasPermissionToModule<M extends ModuleWithPermissions>(params: {\n module: M;\n action: Action;\n data?: any;\n }): Promise<boolean> {\n const cookieStore = await cookies();\n\n if (params.module.feature) {\n const features = cookieStore.get(\"features\")?.value;\n\n if (features && !features.includes(params.module.feature)) return false;\n }\n\n const rawModules = cookieStore.get(\"modules\")?.value;\n if (!rawModules) return false;\n\n const modules: {\n id: string;\n permissions: {\n create: boolean | string;\n read: boolean | string;\n update: boolean | string;\n delete: boolean | string;\n };\n }[] = JSON.parse(zlib.gunzipSync(Buffer.from(rawModules, \"base64\")).toString());\n\n const selectedModule = modules.find((module) => module.id === params.module.moduleId);\n\n return checkPermissionsFromServer({\n module: params.module,\n action: params.action,\n data: params.data,\n userId: await this.userId(),\n selectedModule: selectedModule,\n });\n\n // if (!selectedModule) return false;\n\n // if (!selectedModule.permissions[params.action]) return false;\n // if (typeof selectedModule.permissions[params.action] === \"boolean\")\n // return selectedModule.permissions[params.action] as boolean;\n\n // if (!params.data) return false;\n\n // return params.data[selectedModule.permissions[params.action] as string] === this.userId;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;AAEA,SAAS,qBAAqB;AAW9B,eAAsB,mBAAmB,KAAa,UAAwB,OAAsB;AAClG,gBAAc,KAAK,OAAO;AAC5B;AAFsB;AAUtB,eAAsB,oBAAoB,MAAgB,UAAwB,OAAsB;AACtG,aAAW,OAAO,MAAM;AACtB,kBAAc,KAAK,OAAO;AAAA,EAC5B;AACF;AAJsB;;;ACvBtB,SAAS,eAAe;AACxB,SAAS,gBAAgB;AACzB,OAAO,UAAU;AAGV,IAAM,gBAAN,MAAoB;AAAA,EAL3B,OAK2B;AAAA;AAAA;AAAA,EACzB,aAAa,WAAW;AACtB,UAAM,cAAc,MAAM,QAAQ;AAClC,UAAM,QAAQ,YAAY,IAAI,OAAO;AAErC,QAAI,CAAC,SAAS,CAAC,MAAM,MAAO,QAAO;AACnC,WAAO;AAAA,EACT;AAAA,EAEA,aAAa,kBAAoC;AAC/C,UAAM,cAAc,MAAM,QAAQ;AAClC,UAAM,wBAAwB,YAAY,IAAI,uBAAuB,GAAG;AAExE,QAAI,CAAC,sBAAuB,QAAO;AAEnC,UAAM,MAAM,oBAAI,KAAK;AACrB,WAAO,IAAI,KAAK,qBAAqB,IAAI;AAAA,EAC3C;AAAA,EAEA,aAAa,YAAY;AACvB,UAAM,cAAc,MAAM,QAAQ;AAClC,WAAO,YAAY,IAAI,WAAW,GAAG,SAAS;AAAA,EAChD;AAAA,EAEA,aAAa,SAAS;AACpB,UAAM,cAAc,MAAM,QAAQ;AAClC,WAAO,YAAY,IAAI,QAAQ,GAAG,SAAS;AAAA,EAC7C;AAAA,EAEA,aAAa,gBAAiD,QAAmD;AAC/G,QAAI,CAAE,MAAM,KAAK,sBAAsB,MAAM,EAAI,UAAS,MAAM;AAAA,EAClE;AAAA,EAEA,aAAa,QAAQ,QAAkC;AACrD,UAAM,cAAc,MAAM,QAAQ;AAClC,UAAM,QAAQ,YAAY,IAAI,OAAO,GAAG;AAExC,QAAI,CAAC,SAAS,CAAC,MAAM,SAAS,MAAM,EAAG,QAAO;AAE9C,WAAO;AAAA,EACT;AAAA,EAEA,aAAa,WAAW,WAAqC;AAC3D,UAAM,cAAc,MAAM,QAAQ;AAClC,UAAM,WAAW,YAAY,IAAI,UAAU,GAAG;AAE9C,QAAI,CAAC,YAAY,CAAC,SAAS,SAAS,SAAS,EAAG,QAAO;AAEvD,WAAO;AAAA,EACT;AAAA,EAEA,aAAa,sBAAuD,QAI/C;AACnB,UAAM,cAAc,MAAM,QAAQ;AAElC,QAAI,OAAO,OAAO,SAAS;AACzB,YAAM,WAAW,YAAY,IAAI,UAAU,GAAG;AAE9C,UAAI,YAAY,CAAC,SAAS,SAAS,OAAO,OAAO,OAAO,EAAG,QAAO;AAAA,IACpE;AAEA,UAAM,aAAa,YAAY,IAAI,SAAS,GAAG;AAC/C,QAAI,CAAC,WAAY,QAAO;AAExB,UAAM,UAQA,KAAK,MAAM,KAAK,WAAW,OAAO,KAAK,YAAY,QAAQ,CAAC,EAAE,SAAS,CAAC;AAE9E,UAAM,iBAAiB,QAAQ,KAAK,CAAC,WAAW,OAAO,OAAO,OAAO,OAAO,QAAQ;AAEpF,WAAO,2BAA2B;AAAA,MAChC,QAAQ,OAAO;AAAA,MACf,QAAQ,OAAO;AAAA,MACf,MAAM,OAAO;AAAA,MACb,QAAQ,MAAM,KAAK,OAAO;AAAA,MAC1B;AAAA,IACF,CAAC;AAAA,EAWH;AACF;","names":[]}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { ColumnDef } from '@tanstack/react-table';
|
|
2
|
+
import { b as PageUrl } from './types-Bl61ob-7.js';
|
|
3
|
+
import { D as DataListRetriever } from './useDataListRetriever-futhx3OP.js';
|
|
4
|
+
|
|
5
|
+
type TableContent<T> = {
|
|
6
|
+
jsonApiData: T;
|
|
7
|
+
[key: string]: any;
|
|
8
|
+
};
|
|
9
|
+
interface TableStructureGeneratorInterface<T, U> {
|
|
10
|
+
generateTableStructure: (params: {
|
|
11
|
+
t: (key: string) => string;
|
|
12
|
+
generateUrl: (params: {
|
|
13
|
+
page: string | PageUrl | string;
|
|
14
|
+
id?: string;
|
|
15
|
+
}) => string;
|
|
16
|
+
data: T[];
|
|
17
|
+
fields: Array<U>;
|
|
18
|
+
checkedIds?: string[];
|
|
19
|
+
toggleId?: (id: string) => void;
|
|
20
|
+
}) => {
|
|
21
|
+
data: TableContent<T>[];
|
|
22
|
+
columns: ColumnDef<TableContent<T>>[];
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
type UseTableStructureHookParams<T, U> = {
|
|
26
|
+
data: T[];
|
|
27
|
+
fields: Array<U>;
|
|
28
|
+
checkedIds?: string[];
|
|
29
|
+
toggleId?: (id: string) => void;
|
|
30
|
+
dataRetriever?: DataListRetriever<T>;
|
|
31
|
+
context?: Record<string, any>;
|
|
32
|
+
};
|
|
33
|
+
type UseTableStructureHookReturn<T> = {
|
|
34
|
+
data: TableContent<T>[];
|
|
35
|
+
columns: ColumnDef<TableContent<T>>[];
|
|
36
|
+
};
|
|
37
|
+
type UseTableStructureHook<T, U> = (params: UseTableStructureHookParams<T, U>) => UseTableStructureHookReturn<T>;
|
|
38
|
+
|
|
39
|
+
export type { TableContent as T, UseTableStructureHook as U, UseTableStructureHookParams as a, UseTableStructureHookReturn as b, TableStructureGeneratorInterface as c };
|
|
@@ -1,4 +1,21 @@
|
|
|
1
|
-
|
|
1
|
+
type GetterKeys<T> = {
|
|
2
|
+
[K in keyof T]: T[K] extends () => any ? never : K;
|
|
3
|
+
}[keyof T];
|
|
4
|
+
type FieldSelector<T> = {
|
|
5
|
+
type: string;
|
|
6
|
+
fields: ReadonlyArray<GetterKeys<T>>;
|
|
7
|
+
};
|
|
8
|
+
declare function createJsonApiInclusion<T>(dataType: string, fields: ReadonlyArray<GetterKeys<T>>): FieldSelector<T>;
|
|
9
|
+
|
|
10
|
+
type ApiRequestDataTypeInterface = {
|
|
11
|
+
name: string;
|
|
12
|
+
cache?: string;
|
|
13
|
+
inclusions?: Record<string, {
|
|
14
|
+
types?: string[];
|
|
15
|
+
fields?: FieldSelector<any>[];
|
|
16
|
+
}>;
|
|
17
|
+
model: new () => any;
|
|
18
|
+
};
|
|
2
19
|
|
|
3
20
|
/**
|
|
4
21
|
* Permission actions
|
|
@@ -92,4 +109,4 @@ type ModuleFactory = (params: {
|
|
|
92
109
|
}>;
|
|
93
110
|
}) => ModuleWithPermissions;
|
|
94
111
|
|
|
95
|
-
export {
|
|
112
|
+
export { type ApiRequestDataTypeInterface as A, type FieldSelector as F, type GetterKeys as G, type ModuleWithPermissions as M, type PermissionCheck as P, Action as a, type PageUrl as b, createJsonApiInclusion as c, type ModulePermissionDefinition as d, type ModuleDefinition as e, type PermissionConfig as f, type PermissionModule as g, type PermissionUser as h, type ModuleFactory as i };
|
|
@@ -1,4 +1,21 @@
|
|
|
1
|
-
|
|
1
|
+
type GetterKeys<T> = {
|
|
2
|
+
[K in keyof T]: T[K] extends () => any ? never : K;
|
|
3
|
+
}[keyof T];
|
|
4
|
+
type FieldSelector<T> = {
|
|
5
|
+
type: string;
|
|
6
|
+
fields: ReadonlyArray<GetterKeys<T>>;
|
|
7
|
+
};
|
|
8
|
+
declare function createJsonApiInclusion<T>(dataType: string, fields: ReadonlyArray<GetterKeys<T>>): FieldSelector<T>;
|
|
9
|
+
|
|
10
|
+
type ApiRequestDataTypeInterface = {
|
|
11
|
+
name: string;
|
|
12
|
+
cache?: string;
|
|
13
|
+
inclusions?: Record<string, {
|
|
14
|
+
types?: string[];
|
|
15
|
+
fields?: FieldSelector<any>[];
|
|
16
|
+
}>;
|
|
17
|
+
model: new () => any;
|
|
18
|
+
};
|
|
2
19
|
|
|
3
20
|
/**
|
|
4
21
|
* Permission actions
|
|
@@ -92,4 +109,4 @@ type ModuleFactory = (params: {
|
|
|
92
109
|
}>;
|
|
93
110
|
}) => ModuleWithPermissions;
|
|
94
111
|
|
|
95
|
-
export {
|
|
112
|
+
export { type ApiRequestDataTypeInterface as A, type FieldSelector as F, type GetterKeys as G, type ModuleWithPermissions as M, type PermissionCheck as P, Action as a, type PageUrl as b, createJsonApiInclusion as c, type ModulePermissionDefinition as d, type ModuleDefinition as e, type PermissionConfig as f, type PermissionModule as g, type PermissionUser as h, type ModuleFactory as i };
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { ColumnDef } from '@tanstack/react-table';
|
|
2
|
+
import { b as PageUrl } from './types-Bl61ob-7.mjs';
|
|
3
|
+
import { D as DataListRetriever } from './useDataListRetriever-futhx3OP.mjs';
|
|
4
|
+
|
|
5
|
+
type TableContent<T> = {
|
|
6
|
+
jsonApiData: T;
|
|
7
|
+
[key: string]: any;
|
|
8
|
+
};
|
|
9
|
+
interface TableStructureGeneratorInterface<T, U> {
|
|
10
|
+
generateTableStructure: (params: {
|
|
11
|
+
t: (key: string) => string;
|
|
12
|
+
generateUrl: (params: {
|
|
13
|
+
page: string | PageUrl | string;
|
|
14
|
+
id?: string;
|
|
15
|
+
}) => string;
|
|
16
|
+
data: T[];
|
|
17
|
+
fields: Array<U>;
|
|
18
|
+
checkedIds?: string[];
|
|
19
|
+
toggleId?: (id: string) => void;
|
|
20
|
+
}) => {
|
|
21
|
+
data: TableContent<T>[];
|
|
22
|
+
columns: ColumnDef<TableContent<T>>[];
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
type UseTableStructureHookParams<T, U> = {
|
|
26
|
+
data: T[];
|
|
27
|
+
fields: Array<U>;
|
|
28
|
+
checkedIds?: string[];
|
|
29
|
+
toggleId?: (id: string) => void;
|
|
30
|
+
dataRetriever?: DataListRetriever<T>;
|
|
31
|
+
context?: Record<string, any>;
|
|
32
|
+
};
|
|
33
|
+
type UseTableStructureHookReturn<T> = {
|
|
34
|
+
data: TableContent<T>[];
|
|
35
|
+
columns: ColumnDef<TableContent<T>>[];
|
|
36
|
+
};
|
|
37
|
+
type UseTableStructureHook<T, U> = (params: UseTableStructureHookParams<T, U>) => UseTableStructureHookReturn<T>;
|
|
38
|
+
|
|
39
|
+
export type { TableContent as T, UseTableStructureHook as U, UseTableStructureHookParams as a, UseTableStructureHookReturn as b, TableStructureGeneratorInterface as c };
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { N as NotificationInterface } from './notification.interface-BBgMUdLR.mjs';
|
|
2
|
+
|
|
3
|
+
interface UseSocketOptions {
|
|
4
|
+
token: string;
|
|
5
|
+
}
|
|
6
|
+
interface SocketLike {
|
|
7
|
+
emit: (event: string, ...args: any[]) => void;
|
|
8
|
+
on: (event: string, callback: (...args: any[]) => void) => void;
|
|
9
|
+
off: (event: string, callback?: (...args: any[]) => void) => void;
|
|
10
|
+
connected: boolean;
|
|
11
|
+
}
|
|
12
|
+
interface UseSocketReturn {
|
|
13
|
+
socket: SocketLike | null;
|
|
14
|
+
isConnected: boolean;
|
|
15
|
+
messages: any[];
|
|
16
|
+
socketNotifications: NotificationInterface[];
|
|
17
|
+
sendMessage: (event: string, data: any) => void;
|
|
18
|
+
removeMessage: (index: number) => void;
|
|
19
|
+
removeSocketNotification: (index: number) => void;
|
|
20
|
+
clearMessages: () => void;
|
|
21
|
+
clearSocketNotifications: () => void;
|
|
22
|
+
}
|
|
23
|
+
declare function useSocket({ token }: UseSocketOptions): UseSocketReturn;
|
|
24
|
+
|
|
25
|
+
export { useSocket as u };
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { N as NotificationInterface } from './notification.interface-gyvT-Z2F.js';
|
|
2
|
+
|
|
3
|
+
interface UseSocketOptions {
|
|
4
|
+
token: string;
|
|
5
|
+
}
|
|
6
|
+
interface SocketLike {
|
|
7
|
+
emit: (event: string, ...args: any[]) => void;
|
|
8
|
+
on: (event: string, callback: (...args: any[]) => void) => void;
|
|
9
|
+
off: (event: string, callback?: (...args: any[]) => void) => void;
|
|
10
|
+
connected: boolean;
|
|
11
|
+
}
|
|
12
|
+
interface UseSocketReturn {
|
|
13
|
+
socket: SocketLike | null;
|
|
14
|
+
isConnected: boolean;
|
|
15
|
+
messages: any[];
|
|
16
|
+
socketNotifications: NotificationInterface[];
|
|
17
|
+
sendMessage: (event: string, data: any) => void;
|
|
18
|
+
removeMessage: (index: number) => void;
|
|
19
|
+
removeSocketNotification: (index: number) => void;
|
|
20
|
+
clearMessages: () => void;
|
|
21
|
+
clearSocketNotifications: () => void;
|
|
22
|
+
}
|
|
23
|
+
declare function useSocket({ token }: UseSocketOptions): UseSocketReturn;
|
|
24
|
+
|
|
25
|
+
export { useSocket as u };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
declare enum RoleFields {
|
|
2
|
+
roleId = "roleId",
|
|
3
|
+
name = "name",
|
|
4
|
+
description = "description",
|
|
5
|
+
createdAt = "createdAt",
|
|
6
|
+
updatedAt = "updatedAt"
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
declare enum UserFields {
|
|
10
|
+
userId = "userId",
|
|
11
|
+
name = "name",
|
|
12
|
+
email = "email",
|
|
13
|
+
relevance = "relevance",
|
|
14
|
+
createdAt = "createdAt",
|
|
15
|
+
updatedAt = "updatedAt"
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export { RoleFields as R, UserFields as U };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
declare enum RoleFields {
|
|
2
|
+
roleId = "roleId",
|
|
3
|
+
name = "name",
|
|
4
|
+
description = "description",
|
|
5
|
+
createdAt = "createdAt",
|
|
6
|
+
updatedAt = "updatedAt"
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
declare enum UserFields {
|
|
10
|
+
userId = "userId",
|
|
11
|
+
name = "name",
|
|
12
|
+
email = "email",
|
|
13
|
+
relevance = "relevance",
|
|
14
|
+
createdAt = "createdAt",
|
|
15
|
+
updatedAt = "updatedAt"
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export { RoleFields as R, UserFields as U };
|
package/dist/utils/index.d.mts
CHANGED
|
@@ -2,10 +2,9 @@ import { ClassValue } from 'clsx';
|
|
|
2
2
|
export { ClassValue } from 'clsx';
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import { ReactElement } from 'react';
|
|
5
|
-
import {
|
|
5
|
+
import { M as ModuleWithPermissions, a as Action } from '../types-Bl61ob-7.mjs';
|
|
6
6
|
import { z } from 'zod';
|
|
7
7
|
import { PartialBlock } from '@blocknote/core';
|
|
8
|
-
import '../ApiRequestDataTypeInterface-CUKFDBx2.mjs';
|
|
9
8
|
|
|
10
9
|
declare function cn(...inputs: ClassValue[]): string;
|
|
11
10
|
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -2,10 +2,9 @@ import { ClassValue } from 'clsx';
|
|
|
2
2
|
export { ClassValue } from 'clsx';
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import { ReactElement } from 'react';
|
|
5
|
-
import {
|
|
5
|
+
import { M as ModuleWithPermissions, a as Action } from '../types-Bl61ob-7.js';
|
|
6
6
|
import { z } from 'zod';
|
|
7
7
|
import { PartialBlock } from '@blocknote/core';
|
|
8
|
-
import '../ApiRequestDataTypeInterface-CUKFDBx2.js';
|
|
9
8
|
|
|
10
9
|
declare function cn(...inputs: ClassValue[]): string;
|
|
11
10
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@carlonicora/nextjs-jsonapi",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.5",
|
|
4
4
|
"description": "Next.js JSON:API client with server/client support and caching",
|
|
5
5
|
"author": "Carlo Nicora",
|
|
6
6
|
"license": "GPL-3.0-or-later",
|
|
@@ -8,7 +8,6 @@
|
|
|
8
8
|
"main": "./dist/index.js",
|
|
9
9
|
"module": "./dist/index.mjs",
|
|
10
10
|
"types": "./dist/index.d.ts",
|
|
11
|
-
"sideEffects": false,
|
|
12
11
|
"exports": {
|
|
13
12
|
".": {
|
|
14
13
|
"types": "./dist/index.d.ts",
|
|
@@ -91,6 +90,7 @@
|
|
|
91
90
|
},
|
|
92
91
|
"files": [
|
|
93
92
|
"dist",
|
|
93
|
+
"src",
|
|
94
94
|
"README.md"
|
|
95
95
|
],
|
|
96
96
|
"peerDependencies": {
|
|
@@ -119,6 +119,7 @@
|
|
|
119
119
|
"@dnd-kit/core": "^6.3.1",
|
|
120
120
|
"@dnd-kit/sortable": "^10.0.0",
|
|
121
121
|
"@dnd-kit/utilities": "^3.2.2",
|
|
122
|
+
"@hookform/resolvers": "^5.2.2",
|
|
122
123
|
"@radix-ui/react-accordion": "^1.2.12",
|
|
123
124
|
"@radix-ui/react-alert-dialog": "^1.1.15",
|
|
124
125
|
"@radix-ui/react-avatar": "^1.1.11",
|
|
@@ -146,7 +147,7 @@
|
|
|
146
147
|
"class-variance-authority": "^0.7.1",
|
|
147
148
|
"clsx": "^2.1.1",
|
|
148
149
|
"cmdk": "^1.1.1",
|
|
149
|
-
"cookies-next": "^6.
|
|
150
|
+
"cookies-next": "^6.1.1",
|
|
150
151
|
"d3": "^7.9.0",
|
|
151
152
|
"date-fns": "^4.1.0",
|
|
152
153
|
"embla-carousel-react": "^8.6.0",
|
|
@@ -155,10 +156,12 @@
|
|
|
155
156
|
"next-themes": "^0.4.6",
|
|
156
157
|
"react-day-picker": "^9.11.3",
|
|
157
158
|
"react-dropzone": "^14.3.8",
|
|
159
|
+
"react-hook-form": "^7.68.0",
|
|
158
160
|
"react-markdown": "^10.1.0",
|
|
159
161
|
"react-resizable-panels": "^3.0.6",
|
|
160
162
|
"recharts": "^3.5.1",
|
|
161
163
|
"remark-gfm": "^4.0.1",
|
|
164
|
+
"socket.io-client": "^4.8.1",
|
|
162
165
|
"sonner": "^2.0.7",
|
|
163
166
|
"tailwind-merge": "^3.4.0",
|
|
164
167
|
"uuid": "^13.0.0",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./recentPagesAtom";
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { createContext, useContext } from "react";
|
|
4
|
+
|
|
5
|
+
export type CacheProfile = "seconds" | "minutes" | "hours" | "days" | "weeks" | "max" | "default";
|
|
6
|
+
|
|
7
|
+
export interface JsonApiConfig {
|
|
8
|
+
/**
|
|
9
|
+
* The base URL for API requests (e.g., https://api.example.com)
|
|
10
|
+
*/
|
|
11
|
+
apiUrl: string;
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Custom token getter function. If not provided, will use default cookie-based token retrieval.
|
|
15
|
+
*/
|
|
16
|
+
tokenGetter?: () => Promise<string | undefined>;
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Custom language getter function. If not provided, will use browser locale or next-intl.
|
|
20
|
+
*/
|
|
21
|
+
languageGetter?: () => Promise<string>;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Default headers to include in all requests
|
|
25
|
+
*/
|
|
26
|
+
defaultHeaders?: Record<string, string>;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Global error handler for failed requests (client-side only)
|
|
30
|
+
*/
|
|
31
|
+
onError?: (status: number, message: string) => void;
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Cache configuration
|
|
35
|
+
*/
|
|
36
|
+
cacheConfig?: {
|
|
37
|
+
defaultProfile: CacheProfile;
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Function to bootstrap the data class registry.
|
|
42
|
+
* Will be called automatically when needed.
|
|
43
|
+
*/
|
|
44
|
+
bootstrapper?: () => void;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
const JsonApiContext = createContext<JsonApiConfig | null>(null);
|
|
48
|
+
|
|
49
|
+
export function useJsonApiConfig(): JsonApiConfig {
|
|
50
|
+
const config = useContext(JsonApiContext);
|
|
51
|
+
if (!config) {
|
|
52
|
+
throw new Error("useJsonApiConfig must be used within a JsonApiProvider");
|
|
53
|
+
}
|
|
54
|
+
return config;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export function useJsonApiConfigOptional(): JsonApiConfig | null {
|
|
58
|
+
return useContext(JsonApiContext);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export { JsonApiContext };
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import React, { useEffect, useMemo } from "react";
|
|
4
|
+
import { JsonApiConfig, JsonApiContext } from "./JsonApiContext";
|
|
5
|
+
|
|
6
|
+
export interface JsonApiProviderProps {
|
|
7
|
+
config: JsonApiConfig;
|
|
8
|
+
children: React.ReactNode;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export function JsonApiProvider({ config, children }: JsonApiProviderProps) {
|
|
12
|
+
// Run bootstrapper on mount if provided
|
|
13
|
+
useEffect(() => {
|
|
14
|
+
if (config.bootstrapper) {
|
|
15
|
+
config.bootstrapper();
|
|
16
|
+
}
|
|
17
|
+
}, [config.bootstrapper]);
|
|
18
|
+
|
|
19
|
+
// Memoize config to prevent unnecessary re-renders
|
|
20
|
+
const memoizedConfig = useMemo(() => config, [config]);
|
|
21
|
+
|
|
22
|
+
return (
|
|
23
|
+
<JsonApiContext.Provider value={memoizedConfig}>
|
|
24
|
+
{children}
|
|
25
|
+
</JsonApiContext.Provider>
|
|
26
|
+
);
|
|
27
|
+
}
|