@payloadcms/next 3.0.0-alpha.41 → 3.0.0-alpha.42
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/bin/index.js +1 -1
- package/dist/bin/index.js.map +1 -0
- package/dist/bin/install.js +1 -1
- package/dist/bin/install.js.map +1 -0
- package/dist/config.js +1 -1
- package/dist/config.js.map +1 -0
- package/dist/elements/ClearRouteCache/index.js +1 -1
- package/dist/elements/ClearRouteCache/index.js.map +1 -0
- package/dist/elements/LeaveWithoutSaving/index.js +1 -2
- package/dist/elements/LeaveWithoutSaving/index.js.map +1 -0
- package/dist/elements/LeaveWithoutSaving/usePreventLeave.js +1 -1
- package/dist/elements/LeaveWithoutSaving/usePreventLeave.js.map +1 -0
- package/dist/exports/index.js +1 -1
- package/dist/exports/index.js.map +1 -0
- package/dist/graphql/registerSchema.js +1 -1
- package/dist/graphql/registerSchema.js.map +1 -0
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -0
- package/dist/layouts/Admin/index.js +1 -2
- package/dist/layouts/Admin/index.js.map +1 -0
- package/dist/layouts/Root/index.d.ts.map +1 -1
- package/dist/layouts/Root/index.js +2 -4
- package/dist/layouts/Root/index.js.map +1 -0
- package/dist/next-fileupload/fileFactory.js +1 -1
- package/dist/next-fileupload/fileFactory.js.map +1 -0
- package/dist/next-fileupload/handlers.js +1 -1
- package/dist/next-fileupload/handlers.js.map +1 -0
- package/dist/next-fileupload/index.js +1 -1
- package/dist/next-fileupload/index.js.map +1 -0
- package/dist/next-fileupload/isEligibleRequest.js +1 -1
- package/dist/next-fileupload/isEligibleRequest.js.map +1 -0
- package/dist/next-fileupload/processMultipart.js +1 -1
- package/dist/next-fileupload/processMultipart.js.map +1 -0
- package/dist/next-fileupload/processNested.js +1 -1
- package/dist/next-fileupload/processNested.js.map +1 -0
- package/dist/next-fileupload/uploadTimer.js +1 -1
- package/dist/next-fileupload/uploadTimer.js.map +1 -0
- package/dist/next-fileupload/utilities.js +1 -1
- package/dist/next-fileupload/utilities.js.map +1 -0
- package/dist/next-stream-file/index.js +1 -1
- package/dist/next-stream-file/index.js.map +1 -0
- package/dist/prod/payload/SuisseIntl-Bold.woff +0 -0
- package/dist/prod/payload/SuisseIntl-Bold.woff2 +0 -0
- package/dist/prod/payload/SuisseIntl-Medium.woff +0 -0
- package/dist/prod/payload/SuisseIntl-Medium.woff2 +0 -0
- package/dist/prod/payload/SuisseIntl-SemiBold.woff +0 -0
- package/dist/prod/payload/SuisseIntl-SemiBold.woff2 +0 -0
- package/dist/prod/payload/SuisseIntl.woff +0 -0
- package/dist/prod/payload/SuisseIntl.woff2 +0 -0
- package/dist/prod/payload/favicon.svg +15 -0
- package/dist/prod/payload/merriweather-v30-latin-900.woff +0 -0
- package/dist/prod/payload/merriweather-v30-latin-900.woff2 +0 -0
- package/dist/prod/payload/merriweather-v30-latin-900italic.woff +0 -0
- package/dist/prod/payload/merriweather-v30-latin-900italic.woff2 +0 -0
- package/dist/prod/payload/merriweather-v30-latin-italic.woff +0 -0
- package/dist/prod/payload/merriweather-v30-latin-italic.woff2 +0 -0
- package/dist/prod/payload/merriweather-v30-latin-regular.woff +0 -0
- package/dist/prod/payload/merriweather-v30-latin-regular.woff2 +0 -0
- package/dist/prod/payload/og-image.png +0 -0
- package/dist/prod/styles.css +1 -0
- package/dist/routes/graphql/handler.js +1 -1
- package/dist/routes/graphql/handler.js.map +1 -0
- package/dist/routes/graphql/index.js +1 -1
- package/dist/routes/graphql/index.js.map +1 -0
- package/dist/routes/graphql/playground.js +1 -1
- package/dist/routes/graphql/playground.js.map +1 -0
- package/dist/routes/index.js +1 -1
- package/dist/routes/index.js.map +1 -0
- package/dist/routes/rest/RouteError.js +1 -1
- package/dist/routes/rest/RouteError.js.map +1 -0
- package/dist/routes/rest/auth/access.js +1 -1
- package/dist/routes/rest/auth/access.js.map +1 -0
- package/dist/routes/rest/auth/forgotPassword.js +1 -1
- package/dist/routes/rest/auth/forgotPassword.js.map +1 -0
- package/dist/routes/rest/auth/init.js +1 -1
- package/dist/routes/rest/auth/init.js.map +1 -0
- package/dist/routes/rest/auth/login.js +1 -1
- package/dist/routes/rest/auth/login.js.map +1 -0
- package/dist/routes/rest/auth/logout.js +1 -1
- package/dist/routes/rest/auth/logout.js.map +1 -0
- package/dist/routes/rest/auth/me.js +1 -1
- package/dist/routes/rest/auth/me.js.map +1 -0
- package/dist/routes/rest/auth/refresh.js +1 -1
- package/dist/routes/rest/auth/refresh.js.map +1 -0
- package/dist/routes/rest/auth/registerFirstUser.js +1 -1
- package/dist/routes/rest/auth/registerFirstUser.js.map +1 -0
- package/dist/routes/rest/auth/resetPassword.js +1 -1
- package/dist/routes/rest/auth/resetPassword.js.map +1 -0
- package/dist/routes/rest/auth/unlock.js +1 -1
- package/dist/routes/rest/auth/unlock.js.map +1 -0
- package/dist/routes/rest/auth/verifyEmail.js +1 -1
- package/dist/routes/rest/auth/verifyEmail.js.map +1 -0
- package/dist/routes/rest/buildFormState.js +1 -1
- package/dist/routes/rest/buildFormState.js.map +1 -0
- package/dist/routes/rest/checkEndpoints.js +1 -1
- package/dist/routes/rest/checkEndpoints.js.map +1 -0
- package/dist/routes/rest/collections/create.js +1 -1
- package/dist/routes/rest/collections/create.js.map +1 -0
- package/dist/routes/rest/collections/delete.js +1 -1
- package/dist/routes/rest/collections/delete.js.map +1 -0
- package/dist/routes/rest/collections/deleteByID.js +1 -1
- package/dist/routes/rest/collections/deleteByID.js.map +1 -0
- package/dist/routes/rest/collections/docAccess.js +1 -1
- package/dist/routes/rest/collections/docAccess.js.map +1 -0
- package/dist/routes/rest/collections/find.js +1 -1
- package/dist/routes/rest/collections/find.js.map +1 -0
- package/dist/routes/rest/collections/findByID.js +1 -1
- package/dist/routes/rest/collections/findByID.js.map +1 -0
- package/dist/routes/rest/collections/findVersionByID.js +1 -1
- package/dist/routes/rest/collections/findVersionByID.js.map +1 -0
- package/dist/routes/rest/collections/findVersions.js +1 -1
- package/dist/routes/rest/collections/findVersions.js.map +1 -0
- package/dist/routes/rest/collections/restoreVersion.js +1 -1
- package/dist/routes/rest/collections/restoreVersion.js.map +1 -0
- package/dist/routes/rest/collections/update.js +1 -1
- package/dist/routes/rest/collections/update.js.map +1 -0
- package/dist/routes/rest/collections/updateByID.js +1 -1
- package/dist/routes/rest/collections/updateByID.js.map +1 -0
- package/dist/routes/rest/files/checkFileAccess.js +1 -1
- package/dist/routes/rest/files/checkFileAccess.js.map +1 -0
- package/dist/routes/rest/files/getFile.js +1 -1
- package/dist/routes/rest/files/getFile.js.map +1 -0
- package/dist/routes/rest/globals/docAccess.js +1 -1
- package/dist/routes/rest/globals/docAccess.js.map +1 -0
- package/dist/routes/rest/globals/findOne.js +1 -1
- package/dist/routes/rest/globals/findOne.js.map +1 -0
- package/dist/routes/rest/globals/findVersionByID.js +1 -1
- package/dist/routes/rest/globals/findVersionByID.js.map +1 -0
- package/dist/routes/rest/globals/findVersions.js +1 -1
- package/dist/routes/rest/globals/findVersions.js.map +1 -0
- package/dist/routes/rest/globals/restoreVersion.js +1 -1
- package/dist/routes/rest/globals/restoreVersion.js.map +1 -0
- package/dist/routes/rest/globals/update.js +1 -1
- package/dist/routes/rest/globals/update.js.map +1 -0
- package/dist/routes/rest/index.js +1 -1
- package/dist/routes/rest/index.js.map +1 -0
- package/dist/routes/rest/types.js +1 -1
- package/dist/routes/rest/types.js.map +1 -0
- package/dist/scss/app.scss +2 -2
- package/dist/utilities/auth.js +1 -1
- package/dist/utilities/auth.js.map +1 -0
- package/dist/utilities/createPayloadRequest.js +1 -1
- package/dist/utilities/createPayloadRequest.js.map +1 -0
- package/dist/utilities/getDataAndFile.js +1 -1
- package/dist/utilities/getDataAndFile.js.map +1 -0
- package/dist/utilities/getNextI18n.js +1 -1
- package/dist/utilities/getNextI18n.js.map +1 -0
- package/dist/utilities/getNextT.js +1 -1
- package/dist/utilities/getNextT.js.map +1 -0
- package/dist/utilities/getPayload.d.ts.map +1 -1
- package/dist/utilities/getPayload.js +6 -2
- package/dist/utilities/getPayload.js.map +1 -0
- package/dist/utilities/getRequestLanguage.js +1 -1
- package/dist/utilities/getRequestLanguage.js.map +1 -0
- package/dist/utilities/getRequestLocales.js +1 -1
- package/dist/utilities/getRequestLocales.js.map +1 -0
- package/dist/utilities/initPage.js +1 -1
- package/dist/utilities/initPage.js.map +1 -0
- package/dist/utilities/meta.js +1 -1
- package/dist/utilities/meta.js.map +1 -0
- package/dist/utilities/timestamp.js +1 -1
- package/dist/utilities/timestamp.js.map +1 -0
- package/dist/views/API/RenderJSON/index.js +1 -2
- package/dist/views/API/RenderJSON/index.js.map +1 -0
- package/dist/views/API/index.client.js +1 -2
- package/dist/views/API/index.client.js.map +1 -0
- package/dist/views/API/index.js +1 -1
- package/dist/views/API/index.js.map +1 -0
- package/dist/views/API/meta.js +1 -1
- package/dist/views/API/meta.js.map +1 -0
- package/dist/views/Account/Settings/index.js +1 -2
- package/dist/views/Account/Settings/index.js.map +1 -0
- package/dist/views/Account/ToggleTheme/index.js +1 -1
- package/dist/views/Account/ToggleTheme/index.js.map +1 -0
- package/dist/views/Account/index.js +1 -1
- package/dist/views/Account/index.js.map +1 -0
- package/dist/views/Account/meta.js +1 -1
- package/dist/views/Account/meta.js.map +1 -0
- package/dist/views/CreateFirstUser/index.client.js +1 -1
- package/dist/views/CreateFirstUser/index.client.js.map +1 -0
- package/dist/views/CreateFirstUser/index.js +1 -2
- package/dist/views/CreateFirstUser/index.js.map +1 -0
- package/dist/views/CreateFirstUser/meta.js +1 -1
- package/dist/views/CreateFirstUser/meta.js.map +1 -0
- package/dist/views/Dashboard/Default/index.client.js +1 -2
- package/dist/views/Dashboard/Default/index.client.js.map +1 -0
- package/dist/views/Dashboard/Default/index.js +1 -2
- package/dist/views/Dashboard/Default/index.js.map +1 -0
- package/dist/views/Dashboard/index.js +1 -1
- package/dist/views/Dashboard/index.js.map +1 -0
- package/dist/views/Dashboard/meta.js +1 -1
- package/dist/views/Dashboard/meta.js.map +1 -0
- package/dist/views/Document/getCustomViewByKey.js +1 -1
- package/dist/views/Document/getCustomViewByKey.js.map +1 -0
- package/dist/views/Document/getCustomViewByPath.js +1 -1
- package/dist/views/Document/getCustomViewByPath.js.map +1 -0
- package/dist/views/Document/getMetaBySegment.js +1 -1
- package/dist/views/Document/getMetaBySegment.js.map +1 -0
- package/dist/views/Document/getViewsFromConfig.js +1 -1
- package/dist/views/Document/getViewsFromConfig.js.map +1 -0
- package/dist/views/Document/index.js +1 -1
- package/dist/views/Document/index.js.map +1 -0
- package/dist/views/Document/meta.js +1 -1
- package/dist/views/Document/meta.js.map +1 -0
- package/dist/views/Edit/Default/Auth/APIKey.js +1 -1
- package/dist/views/Edit/Default/Auth/APIKey.js.map +1 -0
- package/dist/views/Edit/Default/Auth/index.js +1 -2
- package/dist/views/Edit/Default/Auth/index.js.map +1 -0
- package/dist/views/Edit/Default/Auth/types.js +1 -1
- package/dist/views/Edit/Default/Auth/types.js.map +1 -0
- package/dist/views/Edit/Default/SetDocumentTitle/formatTitle.js +1 -1
- package/dist/views/Edit/Default/SetDocumentTitle/formatTitle.js.map +1 -0
- package/dist/views/Edit/Default/SetDocumentTitle/index.js +1 -1
- package/dist/views/Edit/Default/SetDocumentTitle/index.js.map +1 -0
- package/dist/views/Edit/Default/SetStepNav/index.js +1 -1
- package/dist/views/Edit/Default/SetStepNav/index.js.map +1 -0
- package/dist/views/Edit/Default/index.js +1 -2
- package/dist/views/Edit/Default/index.js.map +1 -0
- package/dist/views/Edit/Default/types.js +1 -1
- package/dist/views/Edit/Default/types.js.map +1 -0
- package/dist/views/Edit/index.client.js +1 -1
- package/dist/views/Edit/index.client.js.map +1 -0
- package/dist/views/Edit/index.js +1 -1
- package/dist/views/Edit/index.js.map +1 -0
- package/dist/views/Edit/meta.js +1 -1
- package/dist/views/Edit/meta.js.map +1 -0
- package/dist/views/Edit/sanitizeEditViewProps.js +1 -1
- package/dist/views/Edit/sanitizeEditViewProps.js.map +1 -0
- package/dist/views/ForgotPassword/index.js +1 -1
- package/dist/views/ForgotPassword/index.js.map +1 -0
- package/dist/views/ForgotPassword/meta.js +1 -1
- package/dist/views/ForgotPassword/meta.js.map +1 -0
- package/dist/views/List/Default/Cell/cellTypes.spec.js +1 -1
- package/dist/views/List/Default/Cell/cellTypes.spec.js.map +1 -0
- package/dist/views/List/Default/Cell/fields/Array/index.js +1 -1
- package/dist/views/List/Default/Cell/fields/Array/index.js.map +1 -0
- package/dist/views/List/Default/Cell/fields/Blocks/index.js +1 -1
- package/dist/views/List/Default/Cell/fields/Blocks/index.js.map +1 -0
- package/dist/views/List/Default/Cell/fields/Checkbox/index.js +1 -2
- package/dist/views/List/Default/Cell/fields/Checkbox/index.js.map +1 -0
- package/dist/views/List/Default/Cell/fields/Code/index.js +1 -2
- package/dist/views/List/Default/Cell/fields/Code/index.js.map +1 -0
- package/dist/views/List/Default/Cell/fields/Date/index.js +1 -1
- package/dist/views/List/Default/Cell/fields/Date/index.js.map +1 -0
- package/dist/views/List/Default/Cell/fields/File/index.js +1 -2
- package/dist/views/List/Default/Cell/fields/File/index.js.map +1 -0
- package/dist/views/List/Default/Cell/fields/JSON/index.js +1 -2
- package/dist/views/List/Default/Cell/fields/JSON/index.js.map +1 -0
- package/dist/views/List/Default/Cell/fields/Relationship/index.js +1 -2
- package/dist/views/List/Default/Cell/fields/Relationship/index.js.map +1 -0
- package/dist/views/List/Default/Cell/fields/Select/index.js +1 -1
- package/dist/views/List/Default/Cell/fields/Select/index.js.map +1 -0
- package/dist/views/List/Default/Cell/fields/Textarea/index.js +1 -1
- package/dist/views/List/Default/Cell/fields/Textarea/index.js.map +1 -0
- package/dist/views/List/Default/Cell/fields/index.js +1 -1
- package/dist/views/List/Default/Cell/fields/index.js.map +1 -0
- package/dist/views/List/Default/Cell/index.js +1 -1
- package/dist/views/List/Default/Cell/index.js.map +1 -0
- package/dist/views/List/Default/RelationshipProvider/index.js +1 -1
- package/dist/views/List/Default/RelationshipProvider/index.js.map +1 -0
- package/dist/views/List/Default/RelationshipProvider/reducer.js +1 -1
- package/dist/views/List/Default/RelationshipProvider/reducer.js.map +1 -0
- package/dist/views/List/Default/index.js +1 -2
- package/dist/views/List/Default/index.js.map +1 -0
- package/dist/views/List/Default/types.js +1 -1
- package/dist/views/List/Default/types.js.map +1 -0
- package/dist/views/List/index.js +1 -1
- package/dist/views/List/index.js.map +1 -0
- package/dist/views/List/meta.js +1 -1
- package/dist/views/List/meta.js.map +1 -0
- package/dist/views/LivePreview/Context/collisionDetection.js +1 -1
- package/dist/views/LivePreview/Context/collisionDetection.js.map +1 -0
- package/dist/views/LivePreview/Context/context.js +1 -1
- package/dist/views/LivePreview/Context/context.js.map +1 -0
- package/dist/views/LivePreview/Context/index.js +1 -1
- package/dist/views/LivePreview/Context/index.js.map +1 -0
- package/dist/views/LivePreview/Context/sizeReducer.js +1 -1
- package/dist/views/LivePreview/Context/sizeReducer.js.map +1 -0
- package/dist/views/LivePreview/Device/index.js +1 -1
- package/dist/views/LivePreview/Device/index.js.map +1 -0
- package/dist/views/LivePreview/DeviceContainer/index.js +1 -1
- package/dist/views/LivePreview/DeviceContainer/index.js.map +1 -0
- package/dist/views/LivePreview/IFrame/index.js +1 -2
- package/dist/views/LivePreview/IFrame/index.js.map +1 -0
- package/dist/views/LivePreview/Preview/index.js +1 -2
- package/dist/views/LivePreview/Preview/index.js.map +1 -0
- package/dist/views/LivePreview/Toolbar/Controls/index.js +1 -2
- package/dist/views/LivePreview/Toolbar/Controls/index.js.map +1 -0
- package/dist/views/LivePreview/Toolbar/SizeInput/index.js +1 -2
- package/dist/views/LivePreview/Toolbar/SizeInput/index.js.map +1 -0
- package/dist/views/LivePreview/Toolbar/index.js +1 -2
- package/dist/views/LivePreview/Toolbar/index.js.map +1 -0
- package/dist/views/LivePreview/ToolbarArea/index.js +1 -2
- package/dist/views/LivePreview/ToolbarArea/index.js.map +1 -0
- package/dist/views/LivePreview/index.client.js +1 -2
- package/dist/views/LivePreview/index.client.js.map +1 -0
- package/dist/views/LivePreview/index.js +1 -2
- package/dist/views/LivePreview/index.js.map +1 -0
- package/dist/views/LivePreview/meta.js +1 -1
- package/dist/views/LivePreview/meta.js.map +1 -0
- package/dist/views/LivePreview/usePopupWindow.js +1 -1
- package/dist/views/LivePreview/usePopupWindow.js.map +1 -0
- package/dist/views/Login/LoginForm/index.js +1 -2
- package/dist/views/Login/LoginForm/index.js.map +1 -0
- package/dist/views/Login/index.js +1 -2
- package/dist/views/Login/index.js.map +1 -0
- package/dist/views/Login/meta.js +1 -1
- package/dist/views/Login/meta.js.map +1 -0
- package/dist/views/Logout/LogoutClient.js +1 -1
- package/dist/views/Logout/LogoutClient.js.map +1 -0
- package/dist/views/Logout/index.js +1 -2
- package/dist/views/Logout/index.js.map +1 -0
- package/dist/views/Logout/meta.js +1 -1
- package/dist/views/Logout/meta.js.map +1 -0
- package/dist/views/NotFound/index.client.js +1 -2
- package/dist/views/NotFound/index.client.js.map +1 -0
- package/dist/views/NotFound/index.js +1 -1
- package/dist/views/NotFound/index.js.map +1 -0
- package/dist/views/NotFound/meta.js +1 -1
- package/dist/views/NotFound/meta.js.map +1 -0
- package/dist/views/ResetPassword/index.js +1 -2
- package/dist/views/ResetPassword/index.js.map +1 -0
- package/dist/views/ResetPassword/meta.js +1 -1
- package/dist/views/ResetPassword/meta.js.map +1 -0
- package/dist/views/Root/index.js +1 -1
- package/dist/views/Root/index.js.map +1 -0
- package/dist/views/Root/meta.js +1 -1
- package/dist/views/Root/meta.js.map +1 -0
- package/dist/views/Unauthorized/UnauthorizedClient.js +1 -1
- package/dist/views/Unauthorized/UnauthorizedClient.js.map +1 -0
- package/dist/views/Unauthorized/index.js +1 -1
- package/dist/views/Unauthorized/index.js.map +1 -0
- package/dist/views/Unauthorized/meta.js +1 -1
- package/dist/views/Unauthorized/meta.js.map +1 -0
- package/dist/views/Verify/index.js +1 -2
- package/dist/views/Verify/index.js.map +1 -0
- package/dist/views/Verify/meta.js +1 -1
- package/dist/views/Verify/meta.js.map +1 -0
- package/dist/views/Version/Default/SetStepNav.js +1 -1
- package/dist/views/Version/Default/SetStepNav.js.map +1 -0
- package/dist/views/Version/Default/index.js +1 -2
- package/dist/views/Version/Default/index.js.map +1 -0
- package/dist/views/Version/Default/types.js +1 -1
- package/dist/views/Version/Default/types.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/Label/index.js +1 -2
- package/dist/views/Version/RenderFieldsToDiff/Label/index.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js +1 -2
- package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Nested/index.js +1 -2
- package/dist/views/Version/RenderFieldsToDiff/fields/Nested/index.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js +1 -2
- package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Select/DiffViewer/index.js +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Select/DiffViewer/index.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js +1 -2
- package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Text/DiffViewer/index.js +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Text/DiffViewer/index.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js +1 -2
- package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/diffMethods.js +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/diffMethods.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/index.js +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/index.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/styles.js +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/styles.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/types.js +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/types.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/index.js +1 -2
- package/dist/views/Version/RenderFieldsToDiff/index.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/types.js +1 -1
- package/dist/views/Version/RenderFieldsToDiff/types.js.map +1 -0
- package/dist/views/Version/Restore/index.js +1 -3
- package/dist/views/Version/Restore/index.js.map +1 -0
- package/dist/views/Version/Restore/types.js +1 -1
- package/dist/views/Version/Restore/types.js.map +1 -0
- package/dist/views/Version/SelectComparison/index.js +1 -2
- package/dist/views/Version/SelectComparison/index.js.map +1 -0
- package/dist/views/Version/SelectComparison/types.js +1 -1
- package/dist/views/Version/SelectComparison/types.js.map +1 -0
- package/dist/views/Version/SelectLocales/index.js +1 -2
- package/dist/views/Version/SelectLocales/index.js.map +1 -0
- package/dist/views/Version/SelectLocales/types.js +1 -1
- package/dist/views/Version/SelectLocales/types.js.map +1 -0
- package/dist/views/Version/index.js +1 -1
- package/dist/views/Version/index.js.map +1 -0
- package/dist/views/Version/meta.js +1 -1
- package/dist/views/Version/meta.js.map +1 -0
- package/dist/views/Version/shared.js +1 -1
- package/dist/views/Version/shared.js.map +1 -0
- package/dist/views/Versions/buildColumns.js +1 -1
- package/dist/views/Versions/buildColumns.js.map +1 -0
- package/dist/views/Versions/cells/AutosaveCell/index.js +1 -1
- package/dist/views/Versions/cells/AutosaveCell/index.js.map +1 -0
- package/dist/views/Versions/cells/CreatedAt/index.js +1 -1
- package/dist/views/Versions/cells/CreatedAt/index.js.map +1 -0
- package/dist/views/Versions/cells/ID/index.js +1 -1
- package/dist/views/Versions/cells/ID/index.js.map +1 -0
- package/dist/views/Versions/index.client.js +1 -1
- package/dist/views/Versions/index.client.js.map +1 -0
- package/dist/views/Versions/index.js +1 -2
- package/dist/views/Versions/index.js.map +1 -0
- package/dist/views/Versions/meta.js +1 -1
- package/dist/views/Versions/meta.js.map +1 -0
- package/dist/views/Versions/types.js +1 -1
- package/dist/views/Versions/types.js.map +1 -0
- package/dist/withPayload.js +1 -1
- package/dist/withPayload.js.map +1 -0
- package/package.json +24 -7
|
@@ -49,4 +49,4 @@ export const getFile = async ({ collection, filename, req })=>{
|
|
|
49
49
|
}
|
|
50
50
|
};
|
|
51
51
|
|
|
52
|
-
//# sourceMappingURL=
|
|
52
|
+
//# sourceMappingURL=getFile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/routes/rest/files/getFile.ts"],"sourcesContent":["import type { Collection, PayloadRequest } from 'payload/types'\n\nimport fsPromises from 'fs/promises'\nimport httpStatus from 'http-status'\nimport path from 'path'\nimport { APIError } from 'payload/errors'\n\nimport { streamFile } from '../../../next-stream-file/index.js'\nimport { RouteError } from '../RouteError.js'\nimport { checkFileAccess } from './checkFileAccess.js'\n\n// /:collectionSlug/file/:filename\ntype Args = {\n collection: Collection\n filename: string\n req: PayloadRequest\n}\nexport const getFile = async ({ collection, filename, req }: Args): Promise<Response> => {\n try {\n if (!collection.config.upload) {\n throw new APIError(\n `This collection is not an upload collection: ${collection.config.slug}`,\n httpStatus.BAD_REQUEST,\n )\n }\n\n if (collection.config.upload.disableLocalStorage && !collection.config.upload.handlers) {\n throw new APIError(\n `This collection has local storage disabled: ${collection.config.slug}`,\n httpStatus.BAD_REQUEST,\n )\n }\n\n await checkFileAccess({\n collection,\n filename,\n req,\n })\n\n let response: Response = null\n if (collection.config.upload.handlers?.length) {\n for (const handler of collection.config.upload.handlers) {\n response = await handler(req, {\n params: {\n collection: collection.config.slug,\n filename,\n },\n })\n }\n\n return response\n }\n\n const fileDir = collection.config.upload?.staticDir || collection.config.slug\n const filePath = path.resolve(`${fileDir}/${filename}`)\n\n const stats = await fsPromises.stat(filePath)\n const data = streamFile(filePath)\n\n return new Response(data, {\n headers: new Headers({\n 'content-length': stats.size + '',\n }),\n status: httpStatus.OK,\n })\n } catch (error) {\n return RouteError({\n collection,\n err: error,\n req,\n })\n }\n}\n"],"names":["fsPromises","httpStatus","path","APIError","streamFile","RouteError","checkFileAccess","getFile","collection","filename","req","config","upload","slug","BAD_REQUEST","disableLocalStorage","handlers","response","length","handler","params","fileDir","staticDir","filePath","resolve","stats","stat","data","Response","headers","Headers","size","status","OK","error","err"],"mappings":"AAEA,OAAOA,gBAAgB,cAAa;AACpC,OAAOC,gBAAgB,cAAa;AACpC,OAAOC,UAAU,OAAM;AACvB,SAASC,QAAQ,QAAQ,iBAAgB;AAEzC,SAASC,UAAU,QAAQ,qCAAoC;AAC/D,SAASC,UAAU,QAAQ,mBAAkB;AAC7C,SAASC,eAAe,QAAQ,uBAAsB;AAQtD,OAAO,MAAMC,UAAU,OAAO,EAAEC,UAAU,EAAEC,QAAQ,EAAEC,GAAG,EAAQ;IAC/D,IAAI;QACF,IAAI,CAACF,WAAWG,MAAM,CAACC,MAAM,EAAE;YAC7B,MAAM,IAAIT,SACR,CAAC,6CAA6C,EAAEK,WAAWG,MAAM,CAACE,IAAI,CAAC,CAAC,EACxEZ,WAAWa,WAAW;QAE1B;QAEA,IAAIN,WAAWG,MAAM,CAACC,MAAM,CAACG,mBAAmB,IAAI,CAACP,WAAWG,MAAM,CAACC,MAAM,CAACI,QAAQ,EAAE;YACtF,MAAM,IAAIb,SACR,CAAC,4CAA4C,EAAEK,WAAWG,MAAM,CAACE,IAAI,CAAC,CAAC,EACvEZ,WAAWa,WAAW;QAE1B;QAEA,MAAMR,gBAAgB;YACpBE;YACAC;YACAC;QACF;QAEA,IAAIO,WAAqB;QACzB,IAAIT,WAAWG,MAAM,CAACC,MAAM,CAACI,QAAQ,EAAEE,QAAQ;YAC7C,KAAK,MAAMC,WAAWX,WAAWG,MAAM,CAACC,MAAM,CAACI,QAAQ,CAAE;gBACvDC,WAAW,MAAME,QAAQT,KAAK;oBAC5BU,QAAQ;wBACNZ,YAAYA,WAAWG,MAAM,CAACE,IAAI;wBAClCJ;oBACF;gBACF;YACF;YAEA,OAAOQ;QACT;QAEA,MAAMI,UAAUb,WAAWG,MAAM,CAACC,MAAM,EAAEU,aAAad,WAAWG,MAAM,CAACE,IAAI;QAC7E,MAAMU,WAAWrB,KAAKsB,OAAO,CAAC,CAAC,EAAEH,QAAQ,CAAC,EAAEZ,SAAS,CAAC;QAEtD,MAAMgB,QAAQ,MAAMzB,WAAW0B,IAAI,CAACH;QACpC,MAAMI,OAAOvB,WAAWmB;QAExB,OAAO,IAAIK,SAASD,MAAM;YACxBE,SAAS,IAAIC,QAAQ;gBACnB,kBAAkBL,MAAMM,IAAI,GAAG;YACjC;YACAC,QAAQ/B,WAAWgC,EAAE;QACvB;IACF,EAAE,OAAOC,OAAO;QACd,OAAO7B,WAAW;YAChBG;YACA2B,KAAKD;YACLxB;QACF;IACF;AACF,EAAC"}
|
|
@@ -10,4 +10,4 @@ export const docAccess = async ({ globalConfig, req })=>{
|
|
|
10
10
|
});
|
|
11
11
|
};
|
|
12
12
|
|
|
13
|
-
//# sourceMappingURL=
|
|
13
|
+
//# sourceMappingURL=docAccess.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/routes/rest/globals/docAccess.ts"],"sourcesContent":["import httpStatus from 'http-status'\nimport { docAccessOperationGlobal } from 'payload/operations'\n\nimport type { GlobalRouteHandler } from '../types.js'\n\nexport const docAccess: GlobalRouteHandler = async ({ globalConfig, req }) => {\n const result = await docAccessOperationGlobal({\n globalConfig,\n req,\n })\n\n return Response.json(result, {\n status: httpStatus.OK,\n })\n}\n"],"names":["httpStatus","docAccessOperationGlobal","docAccess","globalConfig","req","result","Response","json","status","OK"],"mappings":"AAAA,OAAOA,gBAAgB,cAAa;AACpC,SAASC,wBAAwB,QAAQ,qBAAoB;AAI7D,OAAO,MAAMC,YAAgC,OAAO,EAAEC,YAAY,EAAEC,GAAG,EAAE;IACvE,MAAMC,SAAS,MAAMJ,yBAAyB;QAC5CE;QACAC;IACF;IAEA,OAAOE,SAASC,IAAI,CAACF,QAAQ;QAC3BG,QAAQR,WAAWS,EAAE;IACvB;AACF,EAAC"}
|
|
@@ -16,4 +16,4 @@ export const findOne = async ({ globalConfig, req })=>{
|
|
|
16
16
|
});
|
|
17
17
|
};
|
|
18
18
|
|
|
19
|
-
//# sourceMappingURL=
|
|
19
|
+
//# sourceMappingURL=findOne.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/routes/rest/globals/findOne.ts"],"sourcesContent":["import httpStatus from 'http-status'\nimport { findOneOperation } from 'payload/operations'\nimport { isNumber } from 'payload/utilities'\n\nimport type { GlobalRouteHandler } from '../types.js'\n\nexport const findOne: GlobalRouteHandler = async ({ globalConfig, req }) => {\n const { searchParams } = req\n const depth = searchParams.get('depth')\n\n const result = await findOneOperation({\n depth: isNumber(depth) ? Number(depth) : undefined,\n draft: searchParams.get('draft') === 'true',\n globalConfig,\n req,\n slug: globalConfig.slug,\n })\n\n return Response.json(result, {\n status: httpStatus.OK,\n })\n}\n"],"names":["httpStatus","findOneOperation","isNumber","findOne","globalConfig","req","searchParams","depth","get","result","Number","undefined","draft","slug","Response","json","status","OK"],"mappings":"AAAA,OAAOA,gBAAgB,cAAa;AACpC,SAASC,gBAAgB,QAAQ,qBAAoB;AACrD,SAASC,QAAQ,QAAQ,oBAAmB;AAI5C,OAAO,MAAMC,UAA8B,OAAO,EAAEC,YAAY,EAAEC,GAAG,EAAE;IACrE,MAAM,EAAEC,YAAY,EAAE,GAAGD;IACzB,MAAME,QAAQD,aAAaE,GAAG,CAAC;IAE/B,MAAMC,SAAS,MAAMR,iBAAiB;QACpCM,OAAOL,SAASK,SAASG,OAAOH,SAASI;QACzCC,OAAON,aAAaE,GAAG,CAAC,aAAa;QACrCJ;QACAC;QACAQ,MAAMT,aAAaS,IAAI;IACzB;IAEA,OAAOC,SAASC,IAAI,CAACN,QAAQ;QAC3BO,QAAQhB,WAAWiB,EAAE;IACvB;AACF,EAAC"}
|
|
@@ -15,4 +15,4 @@ export const findVersionByID = async ({ id, globalConfig, req })=>{
|
|
|
15
15
|
});
|
|
16
16
|
};
|
|
17
17
|
|
|
18
|
-
//# sourceMappingURL=
|
|
18
|
+
//# sourceMappingURL=findVersionByID.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/routes/rest/globals/findVersionByID.ts"],"sourcesContent":["import httpStatus from 'http-status'\nimport { findVersionByIDOperationGlobal } from 'payload/operations'\nimport { isNumber } from 'payload/utilities'\n\nimport type { GlobalRouteHandlerWithID } from '../types.js'\n\nexport const findVersionByID: GlobalRouteHandlerWithID = async ({ id, globalConfig, req }) => {\n const { searchParams } = req\n const depth = searchParams.get('depth')\n\n const result = await findVersionByIDOperationGlobal({\n id,\n depth: isNumber(depth) ? Number(depth) : undefined,\n globalConfig,\n req,\n })\n\n return Response.json(result, {\n status: httpStatus.OK,\n })\n}\n"],"names":["httpStatus","findVersionByIDOperationGlobal","isNumber","findVersionByID","id","globalConfig","req","searchParams","depth","get","result","Number","undefined","Response","json","status","OK"],"mappings":"AAAA,OAAOA,gBAAgB,cAAa;AACpC,SAASC,8BAA8B,QAAQ,qBAAoB;AACnE,SAASC,QAAQ,QAAQ,oBAAmB;AAI5C,OAAO,MAAMC,kBAA4C,OAAO,EAAEC,EAAE,EAAEC,YAAY,EAAEC,GAAG,EAAE;IACvF,MAAM,EAAEC,YAAY,EAAE,GAAGD;IACzB,MAAME,QAAQD,aAAaE,GAAG,CAAC;IAE/B,MAAMC,SAAS,MAAMT,+BAA+B;QAClDG;QACAI,OAAON,SAASM,SAASG,OAAOH,SAASI;QACzCP;QACAC;IACF;IAEA,OAAOO,SAASC,IAAI,CAACJ,QAAQ;QAC3BK,QAAQf,WAAWgB,EAAE;IACvB;AACF,EAAC"}
|
|
@@ -17,4 +17,4 @@ export const findVersions = async ({ globalConfig, req })=>{
|
|
|
17
17
|
});
|
|
18
18
|
};
|
|
19
19
|
|
|
20
|
-
//# sourceMappingURL=
|
|
20
|
+
//# sourceMappingURL=findVersions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/routes/rest/globals/findVersions.ts"],"sourcesContent":["import type { Where } from 'payload/types'\n\nimport httpStatus from 'http-status'\nimport { findVersionsOperationGlobal } from 'payload/operations'\nimport { isNumber } from 'payload/utilities'\n\nimport type { GlobalRouteHandler } from '../types.js'\n\nexport const findVersions: GlobalRouteHandler = async ({ globalConfig, req }) => {\n const { depth, limit, page, sort, where } = req.query as {\n depth?: string\n limit?: string\n page?: string\n sort?: string\n where?: Where\n }\n\n const result = await findVersionsOperationGlobal({\n depth: isNumber(depth) ? Number(depth) : undefined,\n globalConfig,\n limit: isNumber(limit) ? Number(limit) : undefined,\n page: isNumber(page) ? Number(page) : undefined,\n req,\n sort,\n where,\n })\n\n return Response.json(result, {\n status: httpStatus.OK,\n })\n}\n"],"names":["httpStatus","findVersionsOperationGlobal","isNumber","findVersions","globalConfig","req","depth","limit","page","sort","where","query","result","Number","undefined","Response","json","status","OK"],"mappings":"AAEA,OAAOA,gBAAgB,cAAa;AACpC,SAASC,2BAA2B,QAAQ,qBAAoB;AAChE,SAASC,QAAQ,QAAQ,oBAAmB;AAI5C,OAAO,MAAMC,eAAmC,OAAO,EAAEC,YAAY,EAAEC,GAAG,EAAE;IAC1E,MAAM,EAAEC,KAAK,EAAEC,KAAK,EAAEC,IAAI,EAAEC,IAAI,EAAEC,KAAK,EAAE,GAAGL,IAAIM,KAAK;IAQrD,MAAMC,SAAS,MAAMX,4BAA4B;QAC/CK,OAAOJ,SAASI,SAASO,OAAOP,SAASQ;QACzCV;QACAG,OAAOL,SAASK,SAASM,OAAON,SAASO;QACzCN,MAAMN,SAASM,QAAQK,OAAOL,QAAQM;QACtCT;QACAI;QACAC;IACF;IAEA,OAAOK,SAASC,IAAI,CAACJ,QAAQ;QAC3BK,QAAQjB,WAAWkB,EAAE;IACvB;AACF,EAAC"}
|
|
@@ -18,4 +18,4 @@ export const restoreVersion = async ({ id, globalConfig, req })=>{
|
|
|
18
18
|
});
|
|
19
19
|
};
|
|
20
20
|
|
|
21
|
-
//# sourceMappingURL=
|
|
21
|
+
//# sourceMappingURL=restoreVersion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/routes/rest/globals/restoreVersion.ts"],"sourcesContent":["import httpStatus from 'http-status'\nimport { restoreVersionOperationGlobal } from 'payload/operations'\nimport { isNumber } from 'payload/utilities'\n\nimport type { GlobalRouteHandlerWithID } from '../types.js'\n\nexport const restoreVersion: GlobalRouteHandlerWithID = async ({ id, globalConfig, req }) => {\n const { searchParams } = req\n const depth = searchParams.get('depth')\n\n const doc = await restoreVersionOperationGlobal({\n id,\n depth: isNumber(depth) ? Number(depth) : undefined,\n globalConfig,\n req,\n })\n\n return Response.json(\n {\n doc,\n message: req.t('version:restoredSuccessfully'),\n },\n {\n status: httpStatus.OK,\n },\n )\n}\n"],"names":["httpStatus","restoreVersionOperationGlobal","isNumber","restoreVersion","id","globalConfig","req","searchParams","depth","get","doc","Number","undefined","Response","json","message","t","status","OK"],"mappings":"AAAA,OAAOA,gBAAgB,cAAa;AACpC,SAASC,6BAA6B,QAAQ,qBAAoB;AAClE,SAASC,QAAQ,QAAQ,oBAAmB;AAI5C,OAAO,MAAMC,iBAA2C,OAAO,EAAEC,EAAE,EAAEC,YAAY,EAAEC,GAAG,EAAE;IACtF,MAAM,EAAEC,YAAY,EAAE,GAAGD;IACzB,MAAME,QAAQD,aAAaE,GAAG,CAAC;IAE/B,MAAMC,MAAM,MAAMT,8BAA8B;QAC9CG;QACAI,OAAON,SAASM,SAASG,OAAOH,SAASI;QACzCP;QACAC;IACF;IAEA,OAAOO,SAASC,IAAI,CAClB;QACEJ;QACAK,SAAST,IAAIU,CAAC,CAAC;IACjB,GACA;QACEC,QAAQjB,WAAWkB,EAAE;IACvB;AAEJ,EAAC"}
|
|
@@ -26,4 +26,4 @@ export const update = async ({ globalConfig, req })=>{
|
|
|
26
26
|
});
|
|
27
27
|
};
|
|
28
28
|
|
|
29
|
-
//# sourceMappingURL=
|
|
29
|
+
//# sourceMappingURL=update.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/routes/rest/globals/update.ts"],"sourcesContent":["import httpStatus from 'http-status'\nimport { updateOperationGlobal } from 'payload/operations'\nimport { isNumber } from 'payload/utilities'\n\nimport type { GlobalRouteHandler } from '../types.js'\n\nexport const update: GlobalRouteHandler = async ({ globalConfig, req }) => {\n const { searchParams } = req\n const depth = searchParams.get('depth')\n const draft = searchParams.get('draft') === 'true'\n const autosave = searchParams.get('autosave') === 'true'\n\n const result = await updateOperationGlobal({\n autosave,\n data: req.data,\n depth: isNumber(depth) ? Number(depth) : undefined,\n draft,\n globalConfig,\n req,\n slug: globalConfig.slug,\n })\n\n let message = req.t('general:updatedSuccessfully')\n\n if (draft) message = req.t('version:draftSavedSuccessfully')\n if (autosave) message = req.t('version:autosavedSuccessfully')\n\n return Response.json(\n {\n message,\n result,\n },\n {\n status: httpStatus.OK,\n },\n )\n}\n"],"names":["httpStatus","updateOperationGlobal","isNumber","update","globalConfig","req","searchParams","depth","get","draft","autosave","result","data","Number","undefined","slug","message","t","Response","json","status","OK"],"mappings":"AAAA,OAAOA,gBAAgB,cAAa;AACpC,SAASC,qBAAqB,QAAQ,qBAAoB;AAC1D,SAASC,QAAQ,QAAQ,oBAAmB;AAI5C,OAAO,MAAMC,SAA6B,OAAO,EAAEC,YAAY,EAAEC,GAAG,EAAE;IACpE,MAAM,EAAEC,YAAY,EAAE,GAAGD;IACzB,MAAME,QAAQD,aAAaE,GAAG,CAAC;IAC/B,MAAMC,QAAQH,aAAaE,GAAG,CAAC,aAAa;IAC5C,MAAME,WAAWJ,aAAaE,GAAG,CAAC,gBAAgB;IAElD,MAAMG,SAAS,MAAMV,sBAAsB;QACzCS;QACAE,MAAMP,IAAIO,IAAI;QACdL,OAAOL,SAASK,SAASM,OAAON,SAASO;QACzCL;QACAL;QACAC;QACAU,MAAMX,aAAaW,IAAI;IACzB;IAEA,IAAIC,UAAUX,IAAIY,CAAC,CAAC;IAEpB,IAAIR,OAAOO,UAAUX,IAAIY,CAAC,CAAC;IAC3B,IAAIP,UAAUM,UAAUX,IAAIY,CAAC,CAAC;IAE9B,OAAOC,SAASC,IAAI,CAClB;QACEH;QACAL;IACF,GACA;QACES,QAAQpB,WAAWqB,EAAE;IACvB;AAEJ,EAAC"}
|
|
@@ -523,4 +523,4 @@ export const PATCH = (config)=>async (request, { params: { slug } })=>{
|
|
|
523
523
|
}
|
|
524
524
|
};
|
|
525
525
|
|
|
526
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yb3V0ZXMvcmVzdC9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEVuZHBvaW50IH0gZnJvbSAncGF5bG9hZC9jb25maWcnXG5pbXBvcnQgdHlwZSB7IENvbGxlY3Rpb24sIEdsb2JhbENvbmZpZywgUGF5bG9hZFJlcXVlc3QsIFNhbml0aXplZENvbmZpZyB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCBodHRwU3RhdHVzIGZyb20gJ2h0dHAtc3RhdHVzJ1xuaW1wb3J0IHsgbWF0Y2ggfSBmcm9tICdwYXRoLXRvLXJlZ2V4cCdcblxuaW1wb3J0IHR5cGUge1xuICBDb2xsZWN0aW9uUm91dGVIYW5kbGVyLFxuICBDb2xsZWN0aW9uUm91dGVIYW5kbGVyV2l0aElELFxuICBHbG9iYWxSb3V0ZUhhbmRsZXIsXG4gIEdsb2JhbFJvdXRlSGFuZGxlcldpdGhJRCxcbn0gZnJvbSAnLi90eXBlcy5qcydcblxuaW1wb3J0IHsgY3JlYXRlUGF5bG9hZFJlcXVlc3QgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvY3JlYXRlUGF5bG9hZFJlcXVlc3QuanMnXG5pbXBvcnQgeyBSb3V0ZUVycm9yIH0gZnJvbSAnLi9Sb3V0ZUVycm9yLmpzJ1xuaW1wb3J0IHsgYWNjZXNzIH0gZnJvbSAnLi9hdXRoL2FjY2Vzcy5qcydcbmltcG9ydCB7IGZvcmdvdFBhc3N3b3JkIH0gZnJvbSAnLi9hdXRoL2ZvcmdvdFBhc3N3b3JkLmpzJ1xuaW1wb3J0IHsgaW5pdCB9IGZyb20gJy4vYXV0aC9pbml0LmpzJ1xuaW1wb3J0IHsgbG9naW4gfSBmcm9tICcuL2F1dGgvbG9naW4uanMnXG5pbXBvcnQgeyBsb2dvdXQgfSBmcm9tICcuL2F1dGgvbG9nb3V0LmpzJ1xuaW1wb3J0IHsgbWUgfSBmcm9tICcuL2F1dGgvbWUuanMnXG5pbXBvcnQgeyByZWZyZXNoIH0gZnJvbSAnLi9hdXRoL3JlZnJlc2guanMnXG5pbXBvcnQgeyByZWdpc3RlckZpcnN0VXNlciB9IGZyb20gJy4vYXV0aC9yZWdpc3RlckZpcnN0VXNlci5qcydcbmltcG9ydCB7IHJlc2V0UGFzc3dvcmQgfSBmcm9tICcuL2F1dGgvcmVzZXRQYXNzd29yZC5qcydcbmltcG9ydCB7IHVubG9jayB9IGZyb20gJy4vYXV0aC91bmxvY2suanMnXG5pbXBvcnQgeyB2ZXJpZnlFbWFpbCB9IGZyb20gJy4vYXV0aC92ZXJpZnlFbWFpbC5qcydcbmltcG9ydCB7IGJ1aWxkRm9ybVN0YXRlIH0gZnJvbSAnLi9idWlsZEZvcm1TdGF0ZS5qcydcbmltcG9ydCB7IGVuZHBvaW50c0FyZURpc2FibGVkIH0gZnJvbSAnLi9jaGVja0VuZHBvaW50cy5qcydcbmltcG9ydCB7IGNyZWF0ZSB9IGZyb20gJy4vY29sbGVjdGlvbnMvY3JlYXRlLmpzJ1xuaW1wb3J0IHsgZGVsZXRlRG9jIH0gZnJvbSAnLi9jb2xsZWN0aW9ucy9kZWxldGUuanMnXG5pbXBvcnQgeyBkZWxldGVCeUlEIH0gZnJvbSAnLi9jb2xsZWN0aW9ucy9kZWxldGVCeUlELmpzJ1xuaW1wb3J0IHsgZG9jQWNjZXNzIH0gZnJvbSAnLi9jb2xsZWN0aW9ucy9kb2NBY2Nlc3MuanMnXG5pbXBvcnQgeyBmaW5kIH0gZnJvbSAnLi9jb2xsZWN0aW9ucy9maW5kLmpzJ1xuaW1wb3J0IHsgZmluZEJ5SUQgfSBmcm9tICcuL2NvbGxlY3Rpb25zL2ZpbmRCeUlELmpzJ1xuaW1wb3J0IHsgZmluZFZlcnNpb25CeUlEIH0gZnJvbSAnLi9jb2xsZWN0aW9ucy9maW5kVmVyc2lvbkJ5SUQuanMnXG5pbXBvcnQgeyBmaW5kVmVyc2lvbnMgfSBmcm9tICcuL2NvbGxlY3Rpb25zL2ZpbmRWZXJzaW9ucy5qcydcbmltcG9ydCB7IHJlc3RvcmVWZXJzaW9uIH0gZnJvbSAnLi9jb2xsZWN0aW9ucy9yZXN0b3JlVmVyc2lvbi5qcydcbmltcG9ydCB7IHVwZGF0ZSB9IGZyb20gJy4vY29sbGVjdGlvbnMvdXBkYXRlLmpzJ1xuaW1wb3J0IHsgdXBkYXRlQnlJRCB9IGZyb20gJy4vY29sbGVjdGlvbnMvdXBkYXRlQnlJRC5qcydcbmltcG9ydCB7IGdldEZpbGUgfSBmcm9tICcuL2ZpbGVzL2dldEZpbGUuanMnXG5pbXBvcnQgeyBkb2NBY2Nlc3MgYXMgZG9jQWNjZXNzR2xvYmFsIH0gZnJvbSAnLi9nbG9iYWxzL2RvY0FjY2Vzcy5qcydcbmltcG9ydCB7IGZpbmRPbmUgfSBmcm9tICcuL2dsb2JhbHMvZmluZE9uZS5qcydcbmltcG9ydCB7IGZpbmRWZXJzaW9uQnlJRCBhcyBmaW5kVmVyc2lvbkJ5SWRHbG9iYWwgfSBmcm9tICcuL2dsb2JhbHMvZmluZFZlcnNpb25CeUlELmpzJ1xuaW1wb3J0IHsgZmluZFZlcnNpb25zIGFzIGZpbmRWZXJzaW9uc0dsb2JhbCB9IGZyb20gJy4vZ2xvYmFscy9maW5kVmVyc2lvbnMuanMnXG5pbXBvcnQgeyByZXN0b3JlVmVyc2lvbiBhcyByZXN0b3JlVmVyc2lvbkdsb2JhbCB9IGZyb20gJy4vZ2xvYmFscy9yZXN0b3JlVmVyc2lvbi5qcydcbmltcG9ydCB7IHVwZGF0ZSBhcyB1cGRhdGVHbG9iYWwgfSBmcm9tICcuL2dsb2JhbHMvdXBkYXRlLmpzJ1xuXG5jb25zdCBlbmRwb2ludHMgPSB7XG4gIGNvbGxlY3Rpb246IHtcbiAgICBERUxFVEU6IHtcbiAgICAgIGRlbGV0ZTogZGVsZXRlRG9jLFxuICAgICAgZGVsZXRlQnlJRCxcbiAgICB9LFxuICAgIEdFVDoge1xuICAgICAgJ2RvYy1hY2Nlc3MtYnktaWQnOiBkb2NBY2Nlc3MsXG4gICAgICAnZG9jLXZlcnNpb25zLWJ5LWlkJzogZmluZFZlcnNpb25CeUlELFxuICAgICAgZmluZCxcbiAgICAgIGZpbmRCeUlELFxuICAgICAgZ2V0RmlsZSxcbiAgICAgIGluaXQsXG4gICAgICBtZSxcbiAgICAgIHZlcnNpb25zOiBmaW5kVmVyc2lvbnMsXG4gICAgfSxcbiAgICBQQVRDSDoge1xuICAgICAgdXBkYXRlLFxuICAgICAgdXBkYXRlQnlJRCxcbiAgICB9LFxuICAgIFBPU1Q6IHtcbiAgICAgIGFjY2VzczogZG9jQWNjZXNzLFxuICAgICAgY3JlYXRlLFxuICAgICAgJ2RvYy1hY2Nlc3MtYnktaWQnOiBkb2NBY2Nlc3MsXG4gICAgICAnZG9jLXZlcmlmeS1ieS1pZCc6IHZlcmlmeUVtYWlsLFxuICAgICAgJ2RvYy12ZXJzaW9ucy1ieS1pZCc6IHJlc3RvcmVWZXJzaW9uLFxuICAgICAgJ2ZpcnN0LXJlZ2lzdGVyJzogcmVnaXN0ZXJGaXJzdFVzZXIsXG4gICAgICAnZm9yZ290LXBhc3N3b3JkJzogZm9yZ290UGFzc3dvcmQsXG4gICAgICBsb2dpbixcbiAgICAgIGxvZ291dCxcbiAgICAgICdyZWZyZXNoLXRva2VuJzogcmVmcmVzaCxcbiAgICAgICdyZXNldC1wYXNzd29yZCc6IHJlc2V0UGFzc3dvcmQsXG4gICAgICB1bmxvY2ssXG4gICAgfSxcbiAgfSxcbiAgZ2xvYmFsOiB7XG4gICAgR0VUOiB7XG4gICAgICAnZG9jLWFjY2Vzcyc6IGRvY0FjY2Vzc0dsb2JhbCxcbiAgICAgICdkb2MtdmVyc2lvbnMnOiBmaW5kVmVyc2lvbnNHbG9iYWwsXG4gICAgICAnZG9jLXZlcnNpb25zLWJ5LWlkJzogZmluZFZlcnNpb25CeUlkR2xvYmFsLFxuICAgICAgZmluZE9uZSxcbiAgICB9LFxuICAgIFBPU1Q6IHtcbiAgICAgICdkb2MtYWNjZXNzJzogZG9jQWNjZXNzR2xvYmFsLFxuICAgICAgJ2RvYy12ZXJzaW9ucy1ieS1pZCc6IHJlc3RvcmVWZXJzaW9uR2xvYmFsLFxuICAgICAgdXBkYXRlOiB1cGRhdGVHbG9iYWwsXG4gICAgfSxcbiAgfSxcbiAgcm9vdDoge1xuICAgIEdFVDoge1xuICAgICAgYWNjZXNzLFxuICAgIH0sXG4gICAgUE9TVDoge1xuICAgICAgJ2Zvcm0tc3RhdGUnOiBidWlsZEZvcm1TdGF0ZSxcbiAgICB9LFxuICB9LFxufVxuXG5jb25zdCBoYW5kbGVDdXN0b21FbmRwb2ludHMgPSAoe1xuICBlbmRwb2ludHMsXG4gIGVudGl0eVNsdWcsXG4gIHBheWxvYWRSZXF1ZXN0LFxufToge1xuICBlbmRwb2ludHM6IEVuZHBvaW50W10gfCBHbG9iYWxDb25maWdbJ2VuZHBvaW50cyddXG4gIGVudGl0eVNsdWc/OiBzdHJpbmdcbiAgcGF5bG9hZFJlcXVlc3Q6IFBheWxvYWRSZXF1ZXN0XG59KTogUHJvbWlzZTxSZXNwb25zZT4gfCBSZXNwb25zZSA9PiB7XG4gIGlmIChlbmRwb2ludHMgJiYgZW5kcG9pbnRzLmxlbmd0aCA+IDApIHtcbiAgICBsZXQgaGFuZGxlclBhcmFtcyA9IHt9XG4gICAgY29uc3QgeyBwYXRobmFtZSB9ID0gcGF5bG9hZFJlcXVlc3RcbiAgICBjb25zdCBwYXRoUHJlZml4ID1cbiAgICAgIHBheWxvYWRSZXF1ZXN0LnBheWxvYWQuY29uZmlnLnJvdXRlcy5hcGkgKyAoZW50aXR5U2x1ZyA/IGAvJHtlbnRpdHlTbHVnfWAgOiAnJylcblxuICAgIGNvbnN0IGN1c3RvbUVuZHBvaW50ID0gZW5kcG9pbnRzLmZpbmQoKGVuZHBvaW50KSA9PiB7XG4gICAgICBpZiAoZW5kcG9pbnQubWV0aG9kID09PSBwYXlsb2FkUmVxdWVzdC5tZXRob2QudG9Mb3dlckNhc2UoKSkge1xuICAgICAgICBjb25zdCBwYXRoTWF0Y2hGbiA9IG1hdGNoKGAke3BhdGhQcmVmaXh9JHtlbmRwb2ludC5wYXRofWAsIHtcbiAgICAgICAgICBkZWNvZGU6IGRlY29kZVVSSUNvbXBvbmVudCxcbiAgICAgICAgfSlcbiAgICAgICAgY29uc3QgdGVtcFBhcmFtcyA9IHBhdGhNYXRjaEZuKHBhdGhuYW1lKVxuICAgICAgICBpZiAodGVtcFBhcmFtcykge1xuICAgICAgICAgIGhhbmRsZXJQYXJhbXMgPSB0ZW1wUGFyYW1zLnBhcmFtc1xuICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KVxuXG4gICAgaWYgKGN1c3RvbUVuZHBvaW50KSB7XG4gICAgICBwYXlsb2FkUmVxdWVzdC5yb3V0ZVBhcmFtcyA9IGhhbmRsZXJQYXJhbXNcbiAgICAgIHJldHVybiBjdXN0b21FbmRwb2ludC5oYW5kbGVyKHBheWxvYWRSZXF1ZXN0KVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBudWxsXG59XG5cbmNvbnN0IFJvdXRlTm90Rm91bmRSZXNwb25zZSA9IChzbHVnOiBzdHJpbmdbXSkgPT5cbiAgUmVzcG9uc2UuanNvbihcbiAgICB7XG4gICAgICBtZXNzYWdlOiBgUm91dGUgTm90IEZvdW5kOiBcIiR7c2x1Zy5qb2luKCcvJyl9XCJgLFxuICAgIH0sXG4gICAgeyBzdGF0dXM6IGh0dHBTdGF0dXMuTk9UX0ZPVU5EIH0sXG4gIClcblxuZXhwb3J0IGNvbnN0IEdFVCA9XG4gIChjb25maWc6IFByb21pc2U8U2FuaXRpemVkQ29uZmlnPiB8IFNhbml0aXplZENvbmZpZykgPT5cbiAgYXN5bmMgKHJlcXVlc3Q6IFJlcXVlc3QsIHsgcGFyYW1zOiB7IHNsdWcgfSB9OiB7IHBhcmFtczogeyBzbHVnOiBzdHJpbmdbXSB9IH0pID0+IHtcbiAgICBjb25zdCBbc2x1ZzEsIHNsdWcyLCBzbHVnMywgc2x1ZzRdID0gc2x1Z1xuICAgIGxldCByZXE6IFBheWxvYWRSZXF1ZXN0XG4gICAgbGV0IHJlczogUmVzcG9uc2VcbiAgICBsZXQgY29sbGVjdGlvbjogQ29sbGVjdGlvblxuXG4gICAgdHJ5IHtcbiAgICAgIHJlcSA9IGF3YWl0IGNyZWF0ZVBheWxvYWRSZXF1ZXN0KHtcbiAgICAgICAgY29uZmlnLFxuICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICBjb2xsZWN0aW9uOiBzbHVnMSxcbiAgICAgICAgfSxcbiAgICAgICAgcmVxdWVzdCxcbiAgICAgIH0pXG5cbiAgICAgIGNvbnN0IGRpc2FibGVFbmRwb2ludHMgPSBlbmRwb2ludHNBcmVEaXNhYmxlZCh7XG4gICAgICAgIGVuZHBvaW50czogcmVxLnBheWxvYWQuY29uZmlnLmVuZHBvaW50cyxcbiAgICAgICAgcmVxdWVzdCxcbiAgICAgIH0pXG4gICAgICBpZiAoZGlzYWJsZUVuZHBvaW50cykgcmV0dXJuIGRpc2FibGVFbmRwb2ludHNcblxuICAgICAgY29sbGVjdGlvbiA9IHJlcS5wYXlsb2FkLmNvbGxlY3Rpb25zPy5bc2x1ZzFdXG5cbiAgICAgIGlmIChjb2xsZWN0aW9uKSB7XG4gICAgICAgIGNvbnN0IGRpc2FibGVFbmRwb2ludHMgPSBlbmRwb2ludHNBcmVEaXNhYmxlZCh7XG4gICAgICAgICAgZW5kcG9pbnRzOiBjb2xsZWN0aW9uLmNvbmZpZy5lbmRwb2ludHMsXG4gICAgICAgICAgcmVxdWVzdCxcbiAgICAgICAgfSlcbiAgICAgICAgaWYgKGRpc2FibGVFbmRwb2ludHMpIHJldHVybiBkaXNhYmxlRW5kcG9pbnRzXG5cbiAgICAgICAgY29uc3QgY3VzdG9tRW5kcG9pbnRSZXNwb25zZSA9IGF3YWl0IGhhbmRsZUN1c3RvbUVuZHBvaW50cyh7XG4gICAgICAgICAgZW5kcG9pbnRzOiBjb2xsZWN0aW9uLmNvbmZpZy5lbmRwb2ludHMsXG4gICAgICAgICAgZW50aXR5U2x1Zzogc2x1ZzEsXG4gICAgICAgICAgcGF5bG9hZFJlcXVlc3Q6IHJlcSxcbiAgICAgICAgfSlcbiAgICAgICAgaWYgKGN1c3RvbUVuZHBvaW50UmVzcG9uc2UpIHJldHVybiBjdXN0b21FbmRwb2ludFJlc3BvbnNlXG5cbiAgICAgICAgc3dpdGNoIChzbHVnLmxlbmd0aCkge1xuICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgIC8vIC86Y29sbGVjdGlvblxuICAgICAgICAgICAgcmVzID0gYXdhaXQgZW5kcG9pbnRzLmNvbGxlY3Rpb24uR0VULmZpbmQoeyBjb2xsZWN0aW9uLCByZXEgfSlcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgaWYgKHNsdWcyIGluIGVuZHBvaW50cy5jb2xsZWN0aW9uLkdFVCkge1xuICAgICAgICAgICAgICAvLyAvOmNvbGxlY3Rpb24vaW5pdFxuICAgICAgICAgICAgICAvLyAvOmNvbGxlY3Rpb24vbWVcbiAgICAgICAgICAgICAgLy8gLzpjb2xsZWN0aW9uL3ZlcnNpb25zXG4gICAgICAgICAgICAgIHJlcyA9IGF3YWl0IChlbmRwb2ludHMuY29sbGVjdGlvbi5HRVRbc2x1ZzJdIGFzIENvbGxlY3Rpb25Sb3V0ZUhhbmRsZXIpKHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uLFxuICAgICAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIC8vIC86Y29sbGVjdGlvbi86aWRcbiAgICAgICAgICAgICAgcmVzID0gYXdhaXQgZW5kcG9pbnRzLmNvbGxlY3Rpb24uR0VULmZpbmRCeUlEKHsgaWQ6IHNsdWcyLCBjb2xsZWN0aW9uLCByZXEgfSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgaWYgKHNsdWcyID09PSAnZmlsZScpIHtcbiAgICAgICAgICAgICAgLy8gLzpjb2xsZWN0aW9uL2ZpbGUvOmZpbGVuYW1lXG4gICAgICAgICAgICAgIHJlcyA9IGF3YWl0IGVuZHBvaW50cy5jb2xsZWN0aW9uLkdFVC5nZXRGaWxlKHsgY29sbGVjdGlvbiwgZmlsZW5hbWU6IHNsdWczLCByZXEgfSlcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoYGRvYy0ke3NsdWcyfS1ieS1pZGAgaW4gZW5kcG9pbnRzLmNvbGxlY3Rpb24uR0VUKSB7XG4gICAgICAgICAgICAgIC8vIC86Y29sbGVjdGlvbi9hY2Nlc3MvOmlkXG4gICAgICAgICAgICAgIC8vIC86Y29sbGVjdGlvbi92ZXJzaW9ucy86aWRcblxuICAgICAgICAgICAgICByZXMgPSBhd2FpdCAoXG4gICAgICAgICAgICAgICAgZW5kcG9pbnRzLmNvbGxlY3Rpb24uR0VUW2Bkb2MtJHtzbHVnMn0tYnktaWRgXSBhcyBDb2xsZWN0aW9uUm91dGVIYW5kbGVyV2l0aElEXG4gICAgICAgICAgICAgICkoeyBpZDogc2x1ZzMsIGNvbGxlY3Rpb24sIHJlcSB9KVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChzbHVnMSA9PT0gJ2dsb2JhbHMnKSB7XG4gICAgICAgIGNvbnN0IGdsb2JhbENvbmZpZyA9IHJlcS5wYXlsb2FkLmNvbmZpZy5nbG9iYWxzLmZpbmQoKGdsb2JhbCkgPT4gZ2xvYmFsLnNsdWcgPT09IHNsdWcyKVxuXG4gICAgICAgIGNvbnN0IGRpc2FibGVFbmRwb2ludHMgPSBlbmRwb2ludHNBcmVEaXNhYmxlZCh7XG4gICAgICAgICAgZW5kcG9pbnRzOiBnbG9iYWxDb25maWcuZW5kcG9pbnRzLFxuICAgICAgICAgIHJlcXVlc3QsXG4gICAgICAgIH0pXG4gICAgICAgIGlmIChkaXNhYmxlRW5kcG9pbnRzKSByZXR1cm4gZGlzYWJsZUVuZHBvaW50c1xuXG4gICAgICAgIGNvbnN0IGN1c3RvbUVuZHBvaW50UmVzcG9uc2UgPSBhd2FpdCBoYW5kbGVDdXN0b21FbmRwb2ludHMoe1xuICAgICAgICAgIGVuZHBvaW50czogZ2xvYmFsQ29uZmlnLmVuZHBvaW50cyxcbiAgICAgICAgICBlbnRpdHlTbHVnOiBgJHtzbHVnMX0vJHtzbHVnMn1gLFxuICAgICAgICAgIHBheWxvYWRSZXF1ZXN0OiByZXEsXG4gICAgICAgIH0pXG4gICAgICAgIGlmIChjdXN0b21FbmRwb2ludFJlc3BvbnNlKSByZXR1cm4gY3VzdG9tRW5kcG9pbnRSZXNwb25zZVxuXG4gICAgICAgIHN3aXRjaCAoc2x1Zy5sZW5ndGgpIHtcbiAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAvLyAvZ2xvYmFscy86c2x1Z1xuICAgICAgICAgICAgcmVzID0gYXdhaXQgZW5kcG9pbnRzLmdsb2JhbC5HRVQuZmluZE9uZSh7IGdsb2JhbENvbmZpZywgcmVxIH0pXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgIGlmIChgZG9jLSR7c2x1ZzN9YCBpbiBlbmRwb2ludHMuZ2xvYmFsLkdFVCkge1xuICAgICAgICAgICAgICAvLyAvZ2xvYmFscy86c2x1Zy9hY2Nlc3NcbiAgICAgICAgICAgICAgLy8gL2dsb2JhbHMvOnNsdWcvdmVyc2lvbnNcbiAgICAgICAgICAgICAgcmVzID0gYXdhaXQgKGVuZHBvaW50cy5nbG9iYWwuR0VUPy5bYGRvYy0ke3NsdWczfWBdIGFzIEdsb2JhbFJvdXRlSGFuZGxlcikoe1xuICAgICAgICAgICAgICAgIGdsb2JhbENvbmZpZyxcbiAgICAgICAgICAgICAgICByZXEsXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgIGlmIChgZG9jLSR7c2x1ZzN9LWJ5LWlkYCBpbiBlbmRwb2ludHMuZ2xvYmFsLkdFVCkge1xuICAgICAgICAgICAgICAvLyAvZ2xvYmFscy86c2x1Zy92ZXJzaW9ucy86aWRcbiAgICAgICAgICAgICAgcmVzID0gYXdhaXQgKFxuICAgICAgICAgICAgICAgIGVuZHBvaW50cy5nbG9iYWwuR0VUPy5bYGRvYy0ke3NsdWczfS1ieS1pZGBdIGFzIEdsb2JhbFJvdXRlSGFuZGxlcldpdGhJRFxuICAgICAgICAgICAgICApKHtcbiAgICAgICAgICAgICAgICBpZDogc2x1ZzQsXG4gICAgICAgICAgICAgICAgZ2xvYmFsQ29uZmlnLFxuICAgICAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoc2x1Zy5sZW5ndGggPT09IDEgJiYgc2x1ZzEgaW4gZW5kcG9pbnRzLnJvb3QuR0VUKSB7XG4gICAgICAgIHJlcyA9IGF3YWl0IGVuZHBvaW50cy5yb290LkdFVFtzbHVnMV0oeyByZXEgfSlcbiAgICAgIH1cblxuICAgICAgaWYgKHJlcyBpbnN0YW5jZW9mIFJlc3BvbnNlKSByZXR1cm4gcmVzXG5cbiAgICAgIC8vIHJvb3Qgcm91dGVzXG4gICAgICBjb25zdCBjdXN0b21FbmRwb2ludFJlc3BvbnNlID0gYXdhaXQgaGFuZGxlQ3VzdG9tRW5kcG9pbnRzKHtcbiAgICAgICAgZW5kcG9pbnRzOiByZXEucGF5bG9hZC5jb25maWcuZW5kcG9pbnRzLFxuICAgICAgICBwYXlsb2FkUmVxdWVzdDogcmVxLFxuICAgICAgfSlcbiAgICAgIGlmIChjdXN0b21FbmRwb2ludFJlc3BvbnNlKSByZXR1cm4gY3VzdG9tRW5kcG9pbnRSZXNwb25zZVxuXG4gICAgICByZXR1cm4gUm91dGVOb3RGb3VuZFJlc3BvbnNlKHNsdWcpXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHJldHVybiBSb3V0ZUVycm9yKHtcbiAgICAgICAgY29sbGVjdGlvbixcbiAgICAgICAgZXJyOiBlcnJvcixcbiAgICAgICAgcmVxLFxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuZXhwb3J0IGNvbnN0IFBPU1QgPVxuICAoY29uZmlnOiBQcm9taXNlPFNhbml0aXplZENvbmZpZz4gfCBTYW5pdGl6ZWRDb25maWcpID0+XG4gIGFzeW5jIChyZXF1ZXN0OiBSZXF1ZXN0LCB7IHBhcmFtczogeyBzbHVnIH0gfTogeyBwYXJhbXM6IHsgc2x1Zzogc3RyaW5nW10gfSB9KSA9PiB7XG4gICAgY29uc3QgW3NsdWcxLCBzbHVnMiwgc2x1ZzMsIHNsdWc0XSA9IHNsdWdcbiAgICBsZXQgcmVxOiBQYXlsb2FkUmVxdWVzdFxuICAgIGxldCByZXM6IFJlc3BvbnNlXG4gICAgbGV0IGNvbGxlY3Rpb246IENvbGxlY3Rpb25cblxuICAgIHRyeSB7XG4gICAgICByZXEgPSBhd2FpdCBjcmVhdGVQYXlsb2FkUmVxdWVzdCh7XG4gICAgICAgIGNvbmZpZyxcbiAgICAgICAgcGFyYW1zOiB7IGNvbGxlY3Rpb246IHNsdWcxIH0sXG4gICAgICAgIHJlcXVlc3QsXG4gICAgICB9KVxuXG4gICAgICBjb2xsZWN0aW9uID0gcmVxLnBheWxvYWQuY29sbGVjdGlvbnM/LltzbHVnMV1cblxuICAgICAgY29uc3QgZGlzYWJsZUVuZHBvaW50cyA9IGVuZHBvaW50c0FyZURpc2FibGVkKHtcbiAgICAgICAgZW5kcG9pbnRzOiByZXEucGF5bG9hZC5jb25maWcuZW5kcG9pbnRzLFxuICAgICAgICByZXF1ZXN0LFxuICAgICAgfSlcbiAgICAgIGlmIChkaXNhYmxlRW5kcG9pbnRzKSByZXR1cm4gZGlzYWJsZUVuZHBvaW50c1xuXG4gICAgICBpZiAoY29sbGVjdGlvbikge1xuICAgICAgICBjb25zdCBkaXNhYmxlRW5kcG9pbnRzID0gZW5kcG9pbnRzQXJlRGlzYWJsZWQoe1xuICAgICAgICAgIGVuZHBvaW50czogY29sbGVjdGlvbi5jb25maWcuZW5kcG9pbnRzLFxuICAgICAgICAgIHJlcXVlc3QsXG4gICAgICAgIH0pXG4gICAgICAgIGlmIChkaXNhYmxlRW5kcG9pbnRzKSByZXR1cm4gZGlzYWJsZUVuZHBvaW50c1xuXG4gICAgICAgIGNvbnN0IGN1c3RvbUVuZHBvaW50UmVzcG9uc2UgPSBhd2FpdCBoYW5kbGVDdXN0b21FbmRwb2ludHMoe1xuICAgICAgICAgIGVuZHBvaW50czogY29sbGVjdGlvbi5jb25maWcuZW5kcG9pbnRzLFxuICAgICAgICAgIGVudGl0eVNsdWc6IHNsdWcxLFxuICAgICAgICAgIHBheWxvYWRSZXF1ZXN0OiByZXEsXG4gICAgICAgIH0pXG5cbiAgICAgICAgaWYgKGN1c3RvbUVuZHBvaW50UmVzcG9uc2UpIHJldHVybiBjdXN0b21FbmRwb2ludFJlc3BvbnNlXG5cbiAgICAgICAgc3dpdGNoIChzbHVnLmxlbmd0aCkge1xuICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgIC8vIC86Y29sbGVjdGlvblxuICAgICAgICAgICAgcmVzID0gYXdhaXQgZW5kcG9pbnRzLmNvbGxlY3Rpb24uUE9TVC5jcmVhdGUoeyBjb2xsZWN0aW9uLCByZXEgfSlcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgaWYgKHNsdWcyIGluIGVuZHBvaW50cy5jb2xsZWN0aW9uLlBPU1QpIHtcbiAgICAgICAgICAgICAgLy8gLzpjb2xsZWN0aW9uL2xvZ2luXG4gICAgICAgICAgICAgIC8vIC86Y29sbGVjdGlvbi9sb2dvdXRcbiAgICAgICAgICAgICAgLy8gLzpjb2xsZWN0aW9uL3VubG9ja1xuICAgICAgICAgICAgICAvLyAvOmNvbGxlY3Rpb24vYWNjZXNzXG4gICAgICAgICAgICAgIC8vIC86Y29sbGVjdGlvbi9maXJzdC1yZWdpc3RlclxuICAgICAgICAgICAgICAvLyAvOmNvbGxlY3Rpb24vZm9yZ290LXBhc3N3b3JkXG4gICAgICAgICAgICAgIC8vIC86Y29sbGVjdGlvbi9yZXNldC1wYXNzd29yZFxuICAgICAgICAgICAgICAvLyAvOmNvbGxlY3Rpb24vcmVmcmVzaC10b2tlblxuXG4gICAgICAgICAgICAgIHJlcyA9IGF3YWl0IChlbmRwb2ludHMuY29sbGVjdGlvbi5QT1NUPy5bc2x1ZzJdIGFzIENvbGxlY3Rpb25Sb3V0ZUhhbmRsZXIpKHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uLFxuICAgICAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgaWYgKGBkb2MtJHtzbHVnMn0tYnktaWRgIGluIGVuZHBvaW50cy5jb2xsZWN0aW9uLlBPU1QpIHtcbiAgICAgICAgICAgICAgLy8gLzpjb2xsZWN0aW9uL2FjY2Vzcy86aWRcbiAgICAgICAgICAgICAgLy8gLzpjb2xsZWN0aW9uL3ZlcnNpb25zLzppZFxuICAgICAgICAgICAgICAvLyAvOmNvbGxlY3Rpb24vdmVyaWZ5Lzp0b2tlbiAoXCJkb2MtdmVyaWZ5LWJ5LWlkXCIgdXNlcyBpZCBhcyB0b2tlbiBpbnRlcm5hbGx5KVxuICAgICAgICAgICAgICByZXMgPSBhd2FpdCAoXG4gICAgICAgICAgICAgICAgZW5kcG9pbnRzLmNvbGxlY3Rpb24uUE9TVFtgZG9jLSR7c2x1ZzJ9LWJ5LWlkYF0gYXMgQ29sbGVjdGlvblJvdXRlSGFuZGxlcldpdGhJRFxuICAgICAgICAgICAgICApKHsgaWQ6IHNsdWczLCBjb2xsZWN0aW9uLCByZXEgfSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoc2x1ZzEgPT09ICdnbG9iYWxzJyAmJiBzbHVnMikge1xuICAgICAgICBjb25zdCBnbG9iYWxDb25maWcgPSByZXEucGF5bG9hZC5jb25maWcuZ2xvYmFscy5maW5kKChnbG9iYWwpID0+IGdsb2JhbC5zbHVnID09PSBzbHVnMilcbiAgICAgICAgY29uc3QgZGlzYWJsZUVuZHBvaW50cyA9IGVuZHBvaW50c0FyZURpc2FibGVkKHtcbiAgICAgICAgICBlbmRwb2ludHM6IGdsb2JhbENvbmZpZy5lbmRwb2ludHMsXG4gICAgICAgICAgcmVxdWVzdCxcbiAgICAgICAgfSlcbiAgICAgICAgaWYgKGRpc2FibGVFbmRwb2ludHMpIHJldHVybiBkaXNhYmxlRW5kcG9pbnRzXG5cbiAgICAgICAgY29uc3QgY3VzdG9tRW5kcG9pbnRSZXNwb25zZSA9IGF3YWl0IGhhbmRsZUN1c3RvbUVuZHBvaW50cyh7XG4gICAgICAgICAgZW5kcG9pbnRzOiBnbG9iYWxDb25maWcuZW5kcG9pbnRzLFxuICAgICAgICAgIGVudGl0eVNsdWc6IGAke3NsdWcxfS8ke3NsdWcyfWAsXG4gICAgICAgICAgcGF5bG9hZFJlcXVlc3Q6IHJlcSxcbiAgICAgICAgfSlcbiAgICAgICAgaWYgKGN1c3RvbUVuZHBvaW50UmVzcG9uc2UpIHJldHVybiBjdXN0b21FbmRwb2ludFJlc3BvbnNlXG5cbiAgICAgICAgc3dpdGNoIChzbHVnLmxlbmd0aCkge1xuICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgIC8vIC9nbG9iYWxzLzpzbHVnXG4gICAgICAgICAgICByZXMgPSBhd2FpdCBlbmRwb2ludHMuZ2xvYmFsLlBPU1QudXBkYXRlKHsgZ2xvYmFsQ29uZmlnLCByZXEgfSlcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgaWYgKGBkb2MtJHtzbHVnM31gIGluIGVuZHBvaW50cy5nbG9iYWwuUE9TVCkge1xuICAgICAgICAgICAgICAvLyAvZ2xvYmFscy86c2x1Zy9hY2Nlc3NcbiAgICAgICAgICAgICAgcmVzID0gYXdhaXQgKGVuZHBvaW50cy5nbG9iYWwuUE9TVD8uW2Bkb2MtJHtzbHVnM31gXSBhcyBHbG9iYWxSb3V0ZUhhbmRsZXIpKHtcbiAgICAgICAgICAgICAgICBnbG9iYWxDb25maWcsXG4gICAgICAgICAgICAgICAgcmVxLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICBpZiAoYGRvYy0ke3NsdWczfS1ieS1pZGAgaW4gZW5kcG9pbnRzLmdsb2JhbC5QT1NUKSB7XG4gICAgICAgICAgICAgIC8vIC9nbG9iYWxzLzpzbHVnL3ZlcnNpb25zLzppZFxuICAgICAgICAgICAgICByZXMgPSBhd2FpdCAoXG4gICAgICAgICAgICAgICAgZW5kcG9pbnRzLmdsb2JhbC5QT1NUPy5bYGRvYy0ke3NsdWczfS1ieS1pZGBdIGFzIEdsb2JhbFJvdXRlSGFuZGxlcldpdGhJRFxuICAgICAgICAgICAgICApKHtcbiAgICAgICAgICAgICAgICBpZDogc2x1ZzQsXG4gICAgICAgICAgICAgICAgZ2xvYmFsQ29uZmlnLFxuICAgICAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJlcyA9IG5ldyBSZXNwb25zZSgnUm91dGUgTm90IEZvdW5kJywgeyBzdGF0dXM6IDQwNCB9KVxuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHNsdWcubGVuZ3RoID09PSAxICYmIHNsdWcxIGluIGVuZHBvaW50cy5yb290LlBPU1QpIHtcbiAgICAgICAgcmVzID0gYXdhaXQgZW5kcG9pbnRzLnJvb3QuUE9TVFtzbHVnMV0oeyByZXEgfSlcbiAgICAgIH1cblxuICAgICAgaWYgKHJlcyBpbnN0YW5jZW9mIFJlc3BvbnNlKSByZXR1cm4gcmVzXG5cbiAgICAgIC8vIHJvb3Qgcm91dGVzXG4gICAgICBjb25zdCBjdXN0b21FbmRwb2ludFJlc3BvbnNlID0gYXdhaXQgaGFuZGxlQ3VzdG9tRW5kcG9pbnRzKHtcbiAgICAgICAgZW5kcG9pbnRzOiByZXEucGF5bG9hZC5jb25maWcuZW5kcG9pbnRzLFxuICAgICAgICBwYXlsb2FkUmVxdWVzdDogcmVxLFxuICAgICAgfSlcbiAgICAgIGlmIChjdXN0b21FbmRwb2ludFJlc3BvbnNlKSByZXR1cm4gY3VzdG9tRW5kcG9pbnRSZXNwb25zZVxuXG4gICAgICByZXR1cm4gUm91dGVOb3RGb3VuZFJlc3BvbnNlKHNsdWcpXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHJldHVybiBSb3V0ZUVycm9yKHtcbiAgICAgICAgY29sbGVjdGlvbixcbiAgICAgICAgZXJyOiBlcnJvcixcbiAgICAgICAgcmVxLFxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuZXhwb3J0IGNvbnN0IERFTEVURSA9XG4gIChjb25maWc6IFByb21pc2U8U2FuaXRpemVkQ29uZmlnPiB8IFNhbml0aXplZENvbmZpZykgPT5cbiAgYXN5bmMgKHJlcXVlc3Q6IFJlcXVlc3QsIHsgcGFyYW1zOiB7IHNsdWcgfSB9OiB7IHBhcmFtczogeyBzbHVnOiBzdHJpbmdbXSB9IH0pID0+IHtcbiAgICBjb25zdCBbc2x1ZzEsIHNsdWcyXSA9IHNsdWdcbiAgICBsZXQgcmVxOiBQYXlsb2FkUmVxdWVzdFxuICAgIGxldCByZXM6IFJlc3BvbnNlXG4gICAgbGV0IGNvbGxlY3Rpb246IENvbGxlY3Rpb25cblxuICAgIHRyeSB7XG4gICAgICByZXEgPSBhd2FpdCBjcmVhdGVQYXlsb2FkUmVxdWVzdCh7XG4gICAgICAgIGNvbmZpZyxcbiAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgY29sbGVjdGlvbjogc2x1ZzEsXG4gICAgICAgIH0sXG4gICAgICAgIHJlcXVlc3QsXG4gICAgICB9KVxuICAgICAgY29sbGVjdGlvbiA9IHJlcS5wYXlsb2FkLmNvbGxlY3Rpb25zPy5bc2x1ZzFdXG5cbiAgICAgIGNvbnN0IGRpc2FibGVFbmRwb2ludHMgPSBlbmRwb2ludHNBcmVEaXNhYmxlZCh7XG4gICAgICAgIGVuZHBvaW50czogcmVxLnBheWxvYWQuY29uZmlnLmVuZHBvaW50cyxcbiAgICAgICAgcmVxdWVzdCxcbiAgICAgIH0pXG4gICAgICBpZiAoZGlzYWJsZUVuZHBvaW50cykgcmV0dXJuIGRpc2FibGVFbmRwb2ludHNcblxuICAgICAgaWYgKGNvbGxlY3Rpb24pIHtcbiAgICAgICAgY29uc3QgZGlzYWJsZUVuZHBvaW50cyA9IGVuZHBvaW50c0FyZURpc2FibGVkKHtcbiAgICAgICAgICBlbmRwb2ludHM6IGNvbGxlY3Rpb24uY29uZmlnLmVuZHBvaW50cyxcbiAgICAgICAgICByZXF1ZXN0LFxuICAgICAgICB9KVxuICAgICAgICBpZiAoZGlzYWJsZUVuZHBvaW50cykgcmV0dXJuIGRpc2FibGVFbmRwb2ludHNcblxuICAgICAgICBjb25zdCBjdXN0b21FbmRwb2ludFJlc3BvbnNlID0gYXdhaXQgaGFuZGxlQ3VzdG9tRW5kcG9pbnRzKHtcbiAgICAgICAgICBlbmRwb2ludHM6IGNvbGxlY3Rpb24uY29uZmlnLmVuZHBvaW50cyxcbiAgICAgICAgICBlbnRpdHlTbHVnOiBzbHVnMSxcbiAgICAgICAgICBwYXlsb2FkUmVxdWVzdDogcmVxLFxuICAgICAgICB9KVxuICAgICAgICBpZiAoY3VzdG9tRW5kcG9pbnRSZXNwb25zZSkgcmV0dXJuIGN1c3RvbUVuZHBvaW50UmVzcG9uc2VcblxuICAgICAgICBzd2l0Y2ggKHNsdWcubGVuZ3RoKSB7XG4gICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgLy8gLzpjb2xsZWN0aW9uXG4gICAgICAgICAgICByZXMgPSBhd2FpdCBlbmRwb2ludHMuY29sbGVjdGlvbi5ERUxFVEUuZGVsZXRlKHsgY29sbGVjdGlvbiwgcmVxIH0pXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgIC8vIC86Y29sbGVjdGlvbi86aWRcbiAgICAgICAgICAgIHJlcyA9IGF3YWl0IGVuZHBvaW50cy5jb2xsZWN0aW9uLkRFTEVURS5kZWxldGVCeUlEKHsgaWQ6IHNsdWcyLCBjb2xsZWN0aW9uLCByZXEgfSlcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHJlcyBpbnN0YW5jZW9mIFJlc3BvbnNlKSByZXR1cm4gcmVzXG5cbiAgICAgIC8vIHJvb3Qgcm91dGVzXG4gICAgICBjb25zdCBjdXN0b21FbmRwb2ludFJlc3BvbnNlID0gYXdhaXQgaGFuZGxlQ3VzdG9tRW5kcG9pbnRzKHtcbiAgICAgICAgZW5kcG9pbnRzOiByZXEucGF5bG9hZC5jb25maWcuZW5kcG9pbnRzLFxuICAgICAgICBwYXlsb2FkUmVxdWVzdDogcmVxLFxuICAgICAgfSlcbiAgICAgIGlmIChjdXN0b21FbmRwb2ludFJlc3BvbnNlKSByZXR1cm4gY3VzdG9tRW5kcG9pbnRSZXNwb25zZVxuXG4gICAgICByZXR1cm4gUm91dGVOb3RGb3VuZFJlc3BvbnNlKHNsdWcpXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHJldHVybiBSb3V0ZUVycm9yKHtcbiAgICAgICAgY29sbGVjdGlvbixcbiAgICAgICAgZXJyOiBlcnJvcixcbiAgICAgICAgcmVxLFxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuZXhwb3J0IGNvbnN0IFBBVENIID1cbiAgKGNvbmZpZzogUHJvbWlzZTxTYW5pdGl6ZWRDb25maWc+IHwgU2FuaXRpemVkQ29uZmlnKSA9PlxuICBhc3luYyAocmVxdWVzdDogUmVxdWVzdCwgeyBwYXJhbXM6IHsgc2x1ZyB9IH06IHsgcGFyYW1zOiB7IHNsdWc6IHN0cmluZ1tdIH0gfSkgPT4ge1xuICAgIGNvbnN0IFtzbHVnMSwgc2x1ZzJdID0gc2x1Z1xuICAgIGxldCByZXE6IFBheWxvYWRSZXF1ZXN0XG4gICAgbGV0IHJlczogUmVzcG9uc2VcbiAgICBsZXQgY29sbGVjdGlvbjogQ29sbGVjdGlvblxuXG4gICAgdHJ5IHtcbiAgICAgIHJlcSA9IGF3YWl0IGNyZWF0ZVBheWxvYWRSZXF1ZXN0KHtcbiAgICAgICAgY29uZmlnLFxuICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICBjb2xsZWN0aW9uOiBzbHVnMSxcbiAgICAgICAgfSxcbiAgICAgICAgcmVxdWVzdCxcbiAgICAgIH0pXG4gICAgICBjb2xsZWN0aW9uID0gcmVxLnBheWxvYWQuY29sbGVjdGlvbnM/LltzbHVnMV1cblxuICAgICAgY29uc3QgZGlzYWJsZUVuZHBvaW50cyA9IGVuZHBvaW50c0FyZURpc2FibGVkKHtcbiAgICAgICAgZW5kcG9pbnRzOiByZXEucGF5bG9hZC5jb25maWcuZW5kcG9pbnRzLFxuICAgICAgICByZXF1ZXN0LFxuICAgICAgfSlcbiAgICAgIGlmIChkaXNhYmxlRW5kcG9pbnRzKSByZXR1cm4gZGlzYWJsZUVuZHBvaW50c1xuXG4gICAgICBpZiAoY29sbGVjdGlvbikge1xuICAgICAgICBjb25zdCBkaXNhYmxlRW5kcG9pbnRzID0gZW5kcG9pbnRzQXJlRGlzYWJsZWQoe1xuICAgICAgICAgIGVuZHBvaW50czogY29sbGVjdGlvbi5jb25maWcuZW5kcG9pbnRzLFxuICAgICAgICAgIHJlcXVlc3QsXG4gICAgICAgIH0pXG4gICAgICAgIGlmIChkaXNhYmxlRW5kcG9pbnRzKSByZXR1cm4gZGlzYWJsZUVuZHBvaW50c1xuXG4gICAgICAgIGNvbnN0IGN1c3RvbUVuZHBvaW50UmVzcG9uc2UgPSBhd2FpdCBoYW5kbGVDdXN0b21FbmRwb2ludHMoe1xuICAgICAgICAgIGVuZHBvaW50czogY29sbGVjdGlvbi5jb25maWcuZW5kcG9pbnRzLFxuICAgICAgICAgIGVudGl0eVNsdWc6IHNsdWcxLFxuICAgICAgICAgIHBheWxvYWRSZXF1ZXN0OiByZXEsXG4gICAgICAgIH0pXG4gICAgICAgIGlmIChjdXN0b21FbmRwb2ludFJlc3BvbnNlKSByZXR1cm4gY3VzdG9tRW5kcG9pbnRSZXNwb25zZVxuXG4gICAgICAgIHN3aXRjaCAoc2x1Zy5sZW5ndGgpIHtcbiAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAvLyAvOmNvbGxlY3Rpb25cbiAgICAgICAgICAgIHJlcyA9IGF3YWl0IGVuZHBvaW50cy5jb2xsZWN0aW9uLlBBVENILnVwZGF0ZSh7IGNvbGxlY3Rpb24sIHJlcSB9KVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAvLyAvOmNvbGxlY3Rpb24vOmlkXG4gICAgICAgICAgICByZXMgPSBhd2FpdCBlbmRwb2ludHMuY29sbGVjdGlvbi5QQVRDSC51cGRhdGVCeUlEKHsgaWQ6IHNsdWcyLCBjb2xsZWN0aW9uLCByZXEgfSlcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHJlcyBpbnN0YW5jZW9mIFJlc3BvbnNlKSByZXR1cm4gcmVzXG5cbiAgICAgIC8vIHJvb3Qgcm91dGVzXG4gICAgICBjb25zdCBjdXN0b21FbmRwb2ludFJlc3BvbnNlID0gYXdhaXQgaGFuZGxlQ3VzdG9tRW5kcG9pbnRzKHtcbiAgICAgICAgZW5kcG9pbnRzOiByZXEucGF5bG9hZC5jb25maWcuZW5kcG9pbnRzLFxuICAgICAgICBwYXlsb2FkUmVxdWVzdDogcmVxLFxuICAgICAgfSlcbiAgICAgIGlmIChjdXN0b21FbmRwb2ludFJlc3BvbnNlKSByZXR1cm4gY3VzdG9tRW5kcG9pbnRSZXNwb25zZVxuXG4gICAgICByZXR1cm4gUm91dGVOb3RGb3VuZFJlc3BvbnNlKHNsdWcpXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHJldHVybiBSb3V0ZUVycm9yKHtcbiAgICAgICAgY29sbGVjdGlvbixcbiAgICAgICAgZXJyOiBlcnJvcixcbiAgICAgICAgcmVxLFxuICAgICAgfSlcbiAgICB9XG4gIH1cbiJdLCJuYW1lcyI6WyJodHRwU3RhdHVzIiwibWF0Y2giLCJjcmVhdGVQYXlsb2FkUmVxdWVzdCIsIlJvdXRlRXJyb3IiLCJhY2Nlc3MiLCJmb3Jnb3RQYXNzd29yZCIsImluaXQiLCJsb2dpbiIsImxvZ291dCIsIm1lIiwicmVmcmVzaCIsInJlZ2lzdGVyRmlyc3RVc2VyIiwicmVzZXRQYXNzd29yZCIsInVubG9jayIsInZlcmlmeUVtYWlsIiwiYnVpbGRGb3JtU3RhdGUiLCJlbmRwb2ludHNBcmVEaXNhYmxlZCIsImNyZWF0ZSIsImRlbGV0ZURvYyIsImRlbGV0ZUJ5SUQiLCJkb2NBY2Nlc3MiLCJmaW5kIiwiZmluZEJ5SUQiLCJmaW5kVmVyc2lvbkJ5SUQiLCJmaW5kVmVyc2lvbnMiLCJyZXN0b3JlVmVyc2lvbiIsInVwZGF0ZSIsInVwZGF0ZUJ5SUQiLCJnZXRGaWxlIiwiZG9jQWNjZXNzR2xvYmFsIiwiZmluZE9uZSIsImZpbmRWZXJzaW9uQnlJZEdsb2JhbCIsImZpbmRWZXJzaW9uc0dsb2JhbCIsInJlc3RvcmVWZXJzaW9uR2xvYmFsIiwidXBkYXRlR2xvYmFsIiwiZW5kcG9pbnRzIiwiY29sbGVjdGlvbiIsIkRFTEVURSIsImRlbGV0ZSIsIkdFVCIsInZlcnNpb25zIiwiUEFUQ0giLCJQT1NUIiwiZ2xvYmFsIiwicm9vdCIsImhhbmRsZUN1c3RvbUVuZHBvaW50cyIsImVudGl0eVNsdWciLCJwYXlsb2FkUmVxdWVzdCIsImxlbmd0aCIsImhhbmRsZXJQYXJhbXMiLCJwYXRobmFtZSIsInBhdGhQcmVmaXgiLCJwYXlsb2FkIiwiY29uZmlnIiwicm91dGVzIiwiYXBpIiwiY3VzdG9tRW5kcG9pbnQiLCJlbmRwb2ludCIsIm1ldGhvZCIsInRvTG93ZXJDYXNlIiwicGF0aE1hdGNoRm4iLCJwYXRoIiwiZGVjb2RlIiwiZGVjb2RlVVJJQ29tcG9uZW50IiwidGVtcFBhcmFtcyIsInBhcmFtcyIsInJvdXRlUGFyYW1zIiwiaGFuZGxlciIsIlJvdXRlTm90Rm91bmRSZXNwb25zZSIsInNsdWciLCJSZXNwb25zZSIsImpzb24iLCJtZXNzYWdlIiwiam9pbiIsInN0YXR1cyIsIk5PVF9GT1VORCIsInJlcXVlc3QiLCJzbHVnMSIsInNsdWcyIiwic2x1ZzMiLCJzbHVnNCIsInJlcSIsInJlcyIsImRpc2FibGVFbmRwb2ludHMiLCJjb2xsZWN0aW9ucyIsImN1c3RvbUVuZHBvaW50UmVzcG9uc2UiLCJpZCIsImZpbGVuYW1lIiwiZ2xvYmFsQ29uZmlnIiwiZ2xvYmFscyIsImVycm9yIiwiZXJyIl0sIm1hcHBpbmdzIjoiQUFHQSxPQUFPQSxnQkFBZ0IsY0FBYTtBQUNwQyxTQUFTQyxLQUFLLFFBQVEsaUJBQWdCO0FBU3RDLFNBQVNDLG9CQUFvQixRQUFRLDBDQUF5QztBQUM5RSxTQUFTQyxVQUFVLFFBQVEsa0JBQWlCO0FBQzVDLFNBQVNDLE1BQU0sUUFBUSxtQkFBa0I7QUFDekMsU0FBU0MsY0FBYyxRQUFRLDJCQUEwQjtBQUN6RCxTQUFTQyxJQUFJLFFBQVEsaUJBQWdCO0FBQ3JDLFNBQVNDLEtBQUssUUFBUSxrQkFBaUI7QUFDdkMsU0FBU0MsTUFBTSxRQUFRLG1CQUFrQjtBQUN6QyxTQUFTQyxFQUFFLFFBQVEsZUFBYztBQUNqQyxTQUFTQyxPQUFPLFFBQVEsb0JBQW1CO0FBQzNDLFNBQVNDLGlCQUFpQixRQUFRLDhCQUE2QjtBQUMvRCxTQUFTQyxhQUFhLFFBQVEsMEJBQXlCO0FBQ3ZELFNBQVNDLE1BQU0sUUFBUSxtQkFBa0I7QUFDekMsU0FBU0MsV0FBVyxRQUFRLHdCQUF1QjtBQUNuRCxTQUFTQyxjQUFjLFFBQVEsc0JBQXFCO0FBQ3BELFNBQVNDLG9CQUFvQixRQUFRLHNCQUFxQjtBQUMxRCxTQUFTQyxNQUFNLFFBQVEsMEJBQXlCO0FBQ2hELFNBQVNDLFNBQVMsUUFBUSwwQkFBeUI7QUFDbkQsU0FBU0MsVUFBVSxRQUFRLDhCQUE2QjtBQUN4RCxTQUFTQyxTQUFTLFFBQVEsNkJBQTRCO0FBQ3RELFNBQVNDLElBQUksUUFBUSx3QkFBdUI7QUFDNUMsU0FBU0MsUUFBUSxRQUFRLDRCQUEyQjtBQUNwRCxTQUFTQyxlQUFlLFFBQVEsbUNBQWtDO0FBQ2xFLFNBQVNDLFlBQVksUUFBUSxnQ0FBK0I7QUFDNUQsU0FBU0MsY0FBYyxRQUFRLGtDQUFpQztBQUNoRSxTQUFTQyxNQUFNLFFBQVEsMEJBQXlCO0FBQ2hELFNBQVNDLFVBQVUsUUFBUSw4QkFBNkI7QUFDeEQsU0FBU0MsT0FBTyxRQUFRLHFCQUFvQjtBQUM1QyxTQUFTUixhQUFhUyxlQUFlLFFBQVEseUJBQXdCO0FBQ3JFLFNBQVNDLE9BQU8sUUFBUSx1QkFBc0I7QUFDOUMsU0FBU1AsbUJBQW1CUSxxQkFBcUIsUUFBUSwrQkFBOEI7QUFDdkYsU0FBU1AsZ0JBQWdCUSxrQkFBa0IsUUFBUSw0QkFBMkI7QUFDOUUsU0FBU1Asa0JBQWtCUSxvQkFBb0IsUUFBUSw4QkFBNkI7QUFDcEYsU0FBU1AsVUFBVVEsWUFBWSxRQUFRLHNCQUFxQjtBQUU1RCxNQUFNQyxZQUFZO0lBQ2hCQyxZQUFZO1FBQ1ZDLFFBQVE7WUFDTkMsUUFBUXBCO1lBQ1JDO1FBQ0Y7UUFDQW9CLEtBQUs7WUFDSCxvQkFBb0JuQjtZQUNwQixzQkFBc0JHO1lBQ3RCRjtZQUNBQztZQUNBTTtZQUNBdEI7WUFDQUc7WUFDQStCLFVBQVVoQjtRQUNaO1FBQ0FpQixPQUFPO1lBQ0xmO1lBQ0FDO1FBQ0Y7UUFDQWUsTUFBTTtZQUNKdEMsUUFBUWdCO1lBQ1JIO1lBQ0Esb0JBQW9CRztZQUNwQixvQkFBb0JOO1lBQ3BCLHNCQUFzQlc7WUFDdEIsa0JBQWtCZDtZQUNsQixtQkFBbUJOO1lBQ25CRTtZQUNBQztZQUNBLGlCQUFpQkU7WUFDakIsa0JBQWtCRTtZQUNsQkM7UUFDRjtJQUNGO0lBQ0E4QixRQUFRO1FBQ05KLEtBQUs7WUFDSCxjQUFjVjtZQUNkLGdCQUFnQkc7WUFDaEIsc0JBQXNCRDtZQUN0QkQ7UUFDRjtRQUNBWSxNQUFNO1lBQ0osY0FBY2I7WUFDZCxzQkFBc0JJO1lBQ3RCUCxRQUFRUTtRQUNWO0lBQ0Y7SUFDQVUsTUFBTTtRQUNKTCxLQUFLO1lBQ0huQztRQUNGO1FBQ0FzQyxNQUFNO1lBQ0osY0FBYzNCO1FBQ2hCO0lBQ0Y7QUFDRjtBQUVBLE1BQU04Qix3QkFBd0IsQ0FBQyxFQUM3QlYsU0FBUyxFQUNUVyxVQUFVLEVBQ1ZDLGNBQWMsRUFLZjtJQUNDLElBQUlaLGFBQWFBLFVBQVVhLE1BQU0sR0FBRyxHQUFHO1FBQ3JDLElBQUlDLGdCQUFnQixDQUFDO1FBQ3JCLE1BQU0sRUFBRUMsUUFBUSxFQUFFLEdBQUdIO1FBQ3JCLE1BQU1JLGFBQ0pKLGVBQWVLLE9BQU8sQ0FBQ0MsTUFBTSxDQUFDQyxNQUFNLENBQUNDLEdBQUcsR0FBSVQsQ0FBQUEsYUFBYSxDQUFDLENBQUMsRUFBRUEsV0FBVyxDQUFDLEdBQUcsRUFBQztRQUUvRSxNQUFNVSxpQkFBaUJyQixVQUFVZCxJQUFJLENBQUMsQ0FBQ29DO1lBQ3JDLElBQUlBLFNBQVNDLE1BQU0sS0FBS1gsZUFBZVcsTUFBTSxDQUFDQyxXQUFXLElBQUk7Z0JBQzNELE1BQU1DLGNBQWMzRCxNQUFNLENBQUMsRUFBRWtELFdBQVcsRUFBRU0sU0FBU0ksSUFBSSxDQUFDLENBQUMsRUFBRTtvQkFDekRDLFFBQVFDO2dCQUNWO2dCQUNBLE1BQU1DLGFBQWFKLFlBQVlWO2dCQUMvQixJQUFJYyxZQUFZO29CQUNkZixnQkFBZ0JlLFdBQVdDLE1BQU07b0JBQ2pDLE9BQU87Z0JBQ1Q7WUFDRjtRQUNGO1FBRUEsSUFBSVQsZ0JBQWdCO1lBQ2xCVCxlQUFlbUIsV0FBVyxHQUFHakI7WUFDN0IsT0FBT08sZUFBZVcsT0FBTyxDQUFDcEI7UUFDaEM7SUFDRjtJQUVBLE9BQU87QUFDVDtBQUVBLE1BQU1xQix3QkFBd0IsQ0FBQ0MsT0FDN0JDLFNBQVNDLElBQUksQ0FDWDtRQUNFQyxTQUFTLENBQUMsa0JBQWtCLEVBQUVILEtBQUtJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqRCxHQUNBO1FBQUVDLFFBQVExRSxXQUFXMkUsU0FBUztJQUFDO0FBR25DLE9BQU8sTUFBTXBDLE1BQ1gsQ0FBQ2MsU0FDRCxPQUFPdUIsU0FBa0IsRUFBRVgsUUFBUSxFQUFFSSxJQUFJLEVBQUUsRUFBa0M7UUFDM0UsTUFBTSxDQUFDUSxPQUFPQyxPQUFPQyxPQUFPQyxNQUFNLEdBQUdYO1FBQ3JDLElBQUlZO1FBQ0osSUFBSUM7UUFDSixJQUFJOUM7UUFFSixJQUFJO1lBQ0Y2QyxNQUFNLE1BQU0vRSxxQkFBcUI7Z0JBQy9CbUQ7Z0JBQ0FZLFFBQVE7b0JBQ043QixZQUFZeUM7Z0JBQ2Q7Z0JBQ0FEO1lBQ0Y7WUFFQSxNQUFNTyxtQkFBbUJuRSxxQkFBcUI7Z0JBQzVDbUIsV0FBVzhDLElBQUk3QixPQUFPLENBQUNDLE1BQU0sQ0FBQ2xCLFNBQVM7Z0JBQ3ZDeUM7WUFDRjtZQUNBLElBQUlPLGtCQUFrQixPQUFPQTtZQUU3Qi9DLGFBQWE2QyxJQUFJN0IsT0FBTyxDQUFDZ0MsV0FBVyxFQUFFLENBQUNQLE1BQU07WUFFN0MsSUFBSXpDLFlBQVk7Z0JBQ2QsTUFBTStDLG1CQUFtQm5FLHFCQUFxQjtvQkFDNUNtQixXQUFXQyxXQUFXaUIsTUFBTSxDQUFDbEIsU0FBUztvQkFDdEN5QztnQkFDRjtnQkFDQSxJQUFJTyxrQkFBa0IsT0FBT0E7Z0JBRTdCLE1BQU1FLHlCQUF5QixNQUFNeEMsc0JBQXNCO29CQUN6RFYsV0FBV0MsV0FBV2lCLE1BQU0sQ0FBQ2xCLFNBQVM7b0JBQ3RDVyxZQUFZK0I7b0JBQ1o5QixnQkFBZ0JrQztnQkFDbEI7Z0JBQ0EsSUFBSUksd0JBQXdCLE9BQU9BO2dCQUVuQyxPQUFRaEIsS0FBS3JCLE1BQU07b0JBQ2pCLEtBQUs7d0JBQ0gsZUFBZTt3QkFDZmtDLE1BQU0sTUFBTS9DLFVBQVVDLFVBQVUsQ0FBQ0csR0FBRyxDQUFDbEIsSUFBSSxDQUFDOzRCQUFFZTs0QkFBWTZDO3dCQUFJO3dCQUM1RDtvQkFDRixLQUFLO3dCQUNILElBQUlILFNBQVMzQyxVQUFVQyxVQUFVLENBQUNHLEdBQUcsRUFBRTs0QkFDckMsb0JBQW9COzRCQUNwQixrQkFBa0I7NEJBQ2xCLHdCQUF3Qjs0QkFDeEIyQyxNQUFNLE1BQU0sQUFBQy9DLFVBQVVDLFVBQVUsQ0FBQ0csR0FBRyxDQUFDdUMsTUFBTSxDQUE0QjtnQ0FDdEUxQztnQ0FDQTZDOzRCQUNGO3dCQUNGLE9BQU87NEJBQ0wsbUJBQW1COzRCQUNuQkMsTUFBTSxNQUFNL0MsVUFBVUMsVUFBVSxDQUFDRyxHQUFHLENBQUNqQixRQUFRLENBQUM7Z0NBQUVnRSxJQUFJUjtnQ0FBTzFDO2dDQUFZNkM7NEJBQUk7d0JBQzdFO3dCQUNBO29CQUNGLEtBQUs7d0JBQ0gsSUFBSUgsVUFBVSxRQUFROzRCQUNwQiw4QkFBOEI7NEJBQzlCSSxNQUFNLE1BQU0vQyxVQUFVQyxVQUFVLENBQUNHLEdBQUcsQ0FBQ1gsT0FBTyxDQUFDO2dDQUFFUTtnQ0FBWW1ELFVBQVVSO2dDQUFPRTs0QkFBSTt3QkFDbEYsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFSCxNQUFNLE1BQU0sQ0FBQyxJQUFJM0MsVUFBVUMsVUFBVSxDQUFDRyxHQUFHLEVBQUU7NEJBQzNELDBCQUEwQjs0QkFDMUIsNEJBQTRCOzRCQUU1QjJDLE1BQU0sTUFBTSxBQUNWL0MsVUFBVUMsVUFBVSxDQUFDRyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUV1QyxNQUFNLE1BQU0sQ0FBQyxDQUFDLENBQzlDO2dDQUFFUSxJQUFJUDtnQ0FBTzNDO2dDQUFZNkM7NEJBQUk7d0JBQ2pDO3dCQUNBO2dCQUNKO1lBQ0YsT0FBTyxJQUFJSixVQUFVLFdBQVc7Z0JBQzlCLE1BQU1XLGVBQWVQLElBQUk3QixPQUFPLENBQUNDLE1BQU0sQ0FBQ29DLE9BQU8sQ0FBQ3BFLElBQUksQ0FBQyxDQUFDc0IsU0FBV0EsT0FBTzBCLElBQUksS0FBS1M7Z0JBRWpGLE1BQU1LLG1CQUFtQm5FLHFCQUFxQjtvQkFDNUNtQixXQUFXcUQsYUFBYXJELFNBQVM7b0JBQ2pDeUM7Z0JBQ0Y7Z0JBQ0EsSUFBSU8sa0JBQWtCLE9BQU9BO2dCQUU3QixNQUFNRSx5QkFBeUIsTUFBTXhDLHNCQUFzQjtvQkFDekRWLFdBQVdxRCxhQUFhckQsU0FBUztvQkFDakNXLFlBQVksQ0FBQyxFQUFFK0IsTUFBTSxDQUFDLEVBQUVDLE1BQU0sQ0FBQztvQkFDL0IvQixnQkFBZ0JrQztnQkFDbEI7Z0JBQ0EsSUFBSUksd0JBQXdCLE9BQU9BO2dCQUVuQyxPQUFRaEIsS0FBS3JCLE1BQU07b0JBQ2pCLEtBQUs7d0JBQ0gsaUJBQWlCO3dCQUNqQmtDLE1BQU0sTUFBTS9DLFVBQVVRLE1BQU0sQ0FBQ0osR0FBRyxDQUFDVCxPQUFPLENBQUM7NEJBQUUwRDs0QkFBY1A7d0JBQUk7d0JBQzdEO29CQUNGLEtBQUs7d0JBQ0gsSUFBSSxDQUFDLElBQUksRUFBRUYsTUFBTSxDQUFDLElBQUk1QyxVQUFVUSxNQUFNLENBQUNKLEdBQUcsRUFBRTs0QkFDMUMsd0JBQXdCOzRCQUN4QiwwQkFBMEI7NEJBQzFCMkMsTUFBTSxNQUFNLEFBQUMvQyxDQUFBQSxVQUFVUSxNQUFNLENBQUNKLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFd0MsTUFBTSxDQUFDLENBQUMsQUFBRCxFQUF5QjtnQ0FDekVTO2dDQUNBUDs0QkFDRjt3QkFDRjt3QkFDQTtvQkFDRixLQUFLO3dCQUNILElBQUksQ0FBQyxJQUFJLEVBQUVGLE1BQU0sTUFBTSxDQUFDLElBQUk1QyxVQUFVUSxNQUFNLENBQUNKLEdBQUcsRUFBRTs0QkFDaEQsOEJBQThCOzRCQUM5QjJDLE1BQU0sTUFBTSxBQUNWL0MsQ0FBQUEsVUFBVVEsTUFBTSxDQUFDSixHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRXdDLE1BQU0sTUFBTSxDQUFDLENBQUMsQUFBRCxFQUMzQztnQ0FDQU8sSUFBSU47Z0NBQ0pRO2dDQUNBUDs0QkFDRjt3QkFDRjt3QkFDQTtnQkFDSjtZQUNGLE9BQU8sSUFBSVosS0FBS3JCLE1BQU0sS0FBSyxLQUFLNkIsU0FBUzFDLFVBQVVTLElBQUksQ0FBQ0wsR0FBRyxFQUFFO2dCQUMzRDJDLE1BQU0sTUFBTS9DLFVBQVVTLElBQUksQ0FBQ0wsR0FBRyxDQUFDc0MsTUFBTSxDQUFDO29CQUFFSTtnQkFBSTtZQUM5QztZQUVBLElBQUlDLGVBQWVaLFVBQVUsT0FBT1k7WUFFcEMsY0FBYztZQUNkLE1BQU1HLHlCQUF5QixNQUFNeEMsc0JBQXNCO2dCQUN6RFYsV0FBVzhDLElBQUk3QixPQUFPLENBQUNDLE1BQU0sQ0FBQ2xCLFNBQVM7Z0JBQ3ZDWSxnQkFBZ0JrQztZQUNsQjtZQUNBLElBQUlJLHdCQUF3QixPQUFPQTtZQUVuQyxPQUFPakIsc0JBQXNCQztRQUMvQixFQUFFLE9BQU9xQixPQUFPO1lBQ2QsT0FBT3ZGLFdBQVc7Z0JBQ2hCaUM7Z0JBQ0F1RCxLQUFLRDtnQkFDTFQ7WUFDRjtRQUNGO0lBQ0YsRUFBQztBQUVILE9BQU8sTUFBTXZDLE9BQ1gsQ0FBQ1csU0FDRCxPQUFPdUIsU0FBa0IsRUFBRVgsUUFBUSxFQUFFSSxJQUFJLEVBQUUsRUFBa0M7UUFDM0UsTUFBTSxDQUFDUSxPQUFPQyxPQUFPQyxPQUFPQyxNQUFNLEdBQUdYO1FBQ3JDLElBQUlZO1FBQ0osSUFBSUM7UUFDSixJQUFJOUM7UUFFSixJQUFJO1lBQ0Y2QyxNQUFNLE1BQU0vRSxxQkFBcUI7Z0JBQy9CbUQ7Z0JBQ0FZLFFBQVE7b0JBQUU3QixZQUFZeUM7Z0JBQU07Z0JBQzVCRDtZQUNGO1lBRUF4QyxhQUFhNkMsSUFBSTdCLE9BQU8sQ0FBQ2dDLFdBQVcsRUFBRSxDQUFDUCxNQUFNO1lBRTdDLE1BQU1NLG1CQUFtQm5FLHFCQUFxQjtnQkFDNUNtQixXQUFXOEMsSUFBSTdCLE9BQU8sQ0FBQ0MsTUFBTSxDQUFDbEIsU0FBUztnQkFDdkN5QztZQUNGO1lBQ0EsSUFBSU8sa0JBQWtCLE9BQU9BO1lBRTdCLElBQUkvQyxZQUFZO2dCQUNkLE1BQU0rQyxtQkFBbUJuRSxxQkFBcUI7b0JBQzVDbUIsV0FBV0MsV0FBV2lCLE1BQU0sQ0FBQ2xCLFNBQVM7b0JBQ3RDeUM7Z0JBQ0Y7Z0JBQ0EsSUFBSU8sa0JBQWtCLE9BQU9BO2dCQUU3QixNQUFNRSx5QkFBeUIsTUFBTXhDLHNCQUFzQjtvQkFDekRWLFdBQVdDLFdBQVdpQixNQUFNLENBQUNsQixTQUFTO29CQUN0Q1csWUFBWStCO29CQUNaOUIsZ0JBQWdCa0M7Z0JBQ2xCO2dCQUVBLElBQUlJLHdCQUF3QixPQUFPQTtnQkFFbkMsT0FBUWhCLEtBQUtyQixNQUFNO29CQUNqQixLQUFLO3dCQUNILGVBQWU7d0JBQ2ZrQyxNQUFNLE1BQU0vQyxVQUFVQyxVQUFVLENBQUNNLElBQUksQ0FBQ3pCLE1BQU0sQ0FBQzs0QkFBRW1COzRCQUFZNkM7d0JBQUk7d0JBQy9EO29CQUNGLEtBQUs7d0JBQ0gsSUFBSUgsU0FBUzNDLFVBQVVDLFVBQVUsQ0FBQ00sSUFBSSxFQUFFOzRCQUN0QyxxQkFBcUI7NEJBQ3JCLHNCQUFzQjs0QkFDdEIsc0JBQXNCOzRCQUN0QixzQkFBc0I7NEJBQ3RCLDhCQUE4Qjs0QkFDOUIsK0JBQStCOzRCQUMvQiw4QkFBOEI7NEJBQzlCLDZCQUE2Qjs0QkFFN0J3QyxNQUFNLE1BQU0sQUFBQy9DLENBQUFBLFVBQVVDLFVBQVUsQ0FBQ00sSUFBSSxFQUFFLENBQUNvQyxNQUFNLEFBQUQsRUFBNkI7Z0NBQ3pFMUM7Z0NBQ0E2Qzs0QkFDRjt3QkFDRjt3QkFDQTtvQkFDRixLQUFLO3dCQUNILElBQUksQ0FBQyxJQUFJLEVBQUVILE1BQU0sTUFBTSxDQUFDLElBQUkzQyxVQUFVQyxVQUFVLENBQUNNLElBQUksRUFBRTs0QkFDckQsMEJBQTBCOzRCQUMxQiw0QkFBNEI7NEJBQzVCLDhFQUE4RTs0QkFDOUV3QyxNQUFNLE1BQU0sQUFDVi9DLFVBQVVDLFVBQVUsQ0FBQ00sSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFb0MsTUFBTSxNQUFNLENBQUMsQ0FBQyxDQUMvQztnQ0FBRVEsSUFBSVA7Z0NBQU8zQztnQ0FBWTZDOzRCQUFJO3dCQUNqQzt3QkFDQTtnQkFDSjtZQUNGLE9BQU8sSUFBSUosVUFBVSxhQUFhQyxPQUFPO2dCQUN2QyxNQUFNVSxlQUFlUCxJQUFJN0IsT0FBTyxDQUFDQyxNQUFNLENBQUNvQyxPQUFPLENBQUNwRSxJQUFJLENBQUMsQ0FBQ3NCLFNBQVdBLE9BQU8wQixJQUFJLEtBQUtTO2dCQUNqRixNQUFNSyxtQkFBbUJuRSxxQkFBcUI7b0JBQzVDbUIsV0FBV3FELGFBQWFyRCxTQUFTO29CQUNqQ3lDO2dCQUNGO2dCQUNBLElBQUlPLGtCQUFrQixPQUFPQTtnQkFFN0IsTUFBTUUseUJBQXlCLE1BQU14QyxzQkFBc0I7b0JBQ3pEVixXQUFXcUQsYUFBYXJELFNBQVM7b0JBQ2pDVyxZQUFZLENBQUMsRUFBRStCLE1BQU0sQ0FBQyxFQUFFQyxNQUFNLENBQUM7b0JBQy9CL0IsZ0JBQWdCa0M7Z0JBQ2xCO2dCQUNBLElBQUlJLHdCQUF3QixPQUFPQTtnQkFFbkMsT0FBUWhCLEtBQUtyQixNQUFNO29CQUNqQixLQUFLO3dCQUNILGlCQUFpQjt3QkFDakJrQyxNQUFNLE1BQU0vQyxVQUFVUSxNQUFNLENBQUNELElBQUksQ0FBQ2hCLE1BQU0sQ0FBQzs0QkFBRThEOzRCQUFjUDt3QkFBSTt3QkFDN0Q7b0JBQ0YsS0FBSzt3QkFDSCxJQUFJLENBQUMsSUFBSSxFQUFFRixNQUFNLENBQUMsSUFBSTVDLFVBQVVRLE1BQU0sQ0FBQ0QsSUFBSSxFQUFFOzRCQUMzQyx3QkFBd0I7NEJBQ3hCd0MsTUFBTSxNQUFNLEFBQUMvQyxDQUFBQSxVQUFVUSxNQUFNLENBQUNELElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFcUMsTUFBTSxDQUFDLENBQUMsQUFBRCxFQUF5QjtnQ0FDMUVTO2dDQUNBUDs0QkFDRjt3QkFDRjt3QkFDQTtvQkFDRixLQUFLO3dCQUNILElBQUksQ0FBQyxJQUFJLEVBQUVGLE1BQU0sTUFBTSxDQUFDLElBQUk1QyxVQUFVUSxNQUFNLENBQUNELElBQUksRUFBRTs0QkFDakQsOEJBQThCOzRCQUM5QndDLE1BQU0sTUFBTSxBQUNWL0MsQ0FBQUEsVUFBVVEsTUFBTSxDQUFDRCxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRXFDLE1BQU0sTUFBTSxDQUFDLENBQUMsQUFBRCxFQUM1QztnQ0FDQU8sSUFBSU47Z0NBQ0pRO2dDQUNBUDs0QkFDRjt3QkFDRjt3QkFDQTtvQkFDRjt3QkFDRUMsTUFBTSxJQUFJWixTQUFTLG1CQUFtQjs0QkFBRUksUUFBUTt3QkFBSTtnQkFDeEQ7WUFDRixPQUFPLElBQUlMLEtBQUtyQixNQUFNLEtBQUssS0FBSzZCLFNBQVMxQyxVQUFVUyxJQUFJLENBQUNGLElBQUksRUFBRTtnQkFDNUR3QyxNQUFNLE1BQU0vQyxVQUFVUyxJQUFJLENBQUNGLElBQUksQ0FBQ21DLE1BQU0sQ0FBQztvQkFBRUk7Z0JBQUk7WUFDL0M7WUFFQSxJQUFJQyxlQUFlWixVQUFVLE9BQU9ZO1lBRXBDLGNBQWM7WUFDZCxNQUFNRyx5QkFBeUIsTUFBTXhDLHNCQUFzQjtnQkFDekRWLFdBQVc4QyxJQUFJN0IsT0FBTyxDQUFDQyxNQUFNLENBQUNsQixTQUFTO2dCQUN2Q1ksZ0JBQWdCa0M7WUFDbEI7WUFDQSxJQUFJSSx3QkFBd0IsT0FBT0E7WUFFbkMsT0FBT2pCLHNCQUFzQkM7UUFDL0IsRUFBRSxPQUFPcUIsT0FBTztZQUNkLE9BQU92RixXQUFXO2dCQUNoQmlDO2dCQUNBdUQsS0FBS0Q7Z0JBQ0xUO1lBQ0Y7UUFDRjtJQUNGLEVBQUM7QUFFSCxPQUFPLE1BQU01QyxTQUNYLENBQUNnQixTQUNELE9BQU91QixTQUFrQixFQUFFWCxRQUFRLEVBQUVJLElBQUksRUFBRSxFQUFrQztRQUMzRSxNQUFNLENBQUNRLE9BQU9DLE1BQU0sR0FBR1Q7UUFDdkIsSUFBSVk7UUFDSixJQUFJQztRQUNKLElBQUk5QztRQUVKLElBQUk7WUFDRjZDLE1BQU0sTUFBTS9FLHFCQUFxQjtnQkFDL0JtRDtnQkFDQVksUUFBUTtvQkFDTjdCLFlBQVl5QztnQkFDZDtnQkFDQUQ7WUFDRjtZQUNBeEMsYUFBYTZDLElBQUk3QixPQUFPLENBQUNnQyxXQUFXLEVBQUUsQ0FBQ1AsTUFBTTtZQUU3QyxNQUFNTSxtQkFBbUJuRSxxQkFBcUI7Z0JBQzVDbUIsV0FBVzhDLElBQUk3QixPQUFPLENBQUNDLE1BQU0sQ0FBQ2xCLFNBQVM7Z0JBQ3ZDeUM7WUFDRjtZQUNBLElBQUlPLGtCQUFrQixPQUFPQTtZQUU3QixJQUFJL0MsWUFBWTtnQkFDZCxNQUFNK0MsbUJBQW1CbkUscUJBQXFCO29CQUM1Q21CLFdBQVdDLFdBQVdpQixNQUFNLENBQUNsQixTQUFTO29CQUN0Q3lDO2dCQUNGO2dCQUNBLElBQUlPLGtCQUFrQixPQUFPQTtnQkFFN0IsTUFBTUUseUJBQXlCLE1BQU14QyxzQkFBc0I7b0JBQ3pEVixXQUFXQyxXQUFXaUIsTUFBTSxDQUFDbEIsU0FBUztvQkFDdENXLFlBQVkrQjtvQkFDWjlCLGdCQUFnQmtDO2dCQUNsQjtnQkFDQSxJQUFJSSx3QkFBd0IsT0FBT0E7Z0JBRW5DLE9BQVFoQixLQUFLckIsTUFBTTtvQkFDakIsS0FBSzt3QkFDSCxlQUFlO3dCQUNma0MsTUFBTSxNQUFNL0MsVUFBVUMsVUFBVSxDQUFDQyxNQUFNLENBQUNDLE1BQU0sQ0FBQzs0QkFBRUY7NEJBQVk2Qzt3QkFBSTt3QkFDakU7b0JBQ0YsS0FBSzt3QkFDSCxtQkFBbUI7d0JBQ25CQyxNQUFNLE1BQU0vQyxVQUFVQyxVQUFVLENBQUNDLE1BQU0sQ0FBQ2xCLFVBQVUsQ0FBQzs0QkFBRW1FLElBQUlSOzRCQUFPMUM7NEJBQVk2Qzt3QkFBSTt3QkFDaEY7Z0JBQ0o7WUFDRjtZQUVBLElBQUlDLGVBQWVaLFVBQVUsT0FBT1k7WUFFcEMsY0FBYztZQUNkLE1BQU1HLHlCQUF5QixNQUFNeEMsc0JBQXNCO2dCQUN6RFYsV0FBVzhDLElBQUk3QixPQUFPLENBQUNDLE1BQU0sQ0FBQ2xCLFNBQVM7Z0JBQ3ZDWSxnQkFBZ0JrQztZQUNsQjtZQUNBLElBQUlJLHdCQUF3QixPQUFPQTtZQUVuQyxPQUFPakIsc0JBQXNCQztRQUMvQixFQUFFLE9BQU9xQixPQUFPO1lBQ2QsT0FBT3ZGLFdBQVc7Z0JBQ2hCaUM7Z0JBQ0F1RCxLQUFLRDtnQkFDTFQ7WUFDRjtRQUNGO0lBQ0YsRUFBQztBQUVILE9BQU8sTUFBTXhDLFFBQ1gsQ0FBQ1ksU0FDRCxPQUFPdUIsU0FBa0IsRUFBRVgsUUFBUSxFQUFFSSxJQUFJLEVBQUUsRUFBa0M7UUFDM0UsTUFBTSxDQUFDUSxPQUFPQyxNQUFNLEdBQUdUO1FBQ3ZCLElBQUlZO1FBQ0osSUFBSUM7UUFDSixJQUFJOUM7UUFFSixJQUFJO1lBQ0Y2QyxNQUFNLE1BQU0vRSxxQkFBcUI7Z0JBQy9CbUQ7Z0JBQ0FZLFFBQVE7b0JBQ043QixZQUFZeUM7Z0JBQ2Q7Z0JBQ0FEO1lBQ0Y7WUFDQXhDLGFBQWE2QyxJQUFJN0IsT0FBTyxDQUFDZ0MsV0FBVyxFQUFFLENBQUNQLE1BQU07WUFFN0MsTUFBTU0sbUJBQW1CbkUscUJBQXFCO2dCQUM1Q21CLFdBQVc4QyxJQUFJN0IsT0FBTyxDQUFDQyxNQUFNLENBQUNsQixTQUFTO2dCQUN2Q3lDO1lBQ0Y7WUFDQSxJQUFJTyxrQkFBa0IsT0FBT0E7WUFFN0IsSUFBSS9DLFlBQVk7Z0JBQ2QsTUFBTStDLG1CQUFtQm5FLHFCQUFxQjtvQkFDNUNtQixXQUFXQyxXQUFXaUIsTUFBTSxDQUFDbEIsU0FBUztvQkFDdEN5QztnQkFDRjtnQkFDQSxJQUFJTyxrQkFBa0IsT0FBT0E7Z0JBRTdCLE1BQU1FLHlCQUF5QixNQUFNeEMsc0JBQXNCO29CQUN6RFYsV0FBV0MsV0FBV2lCLE1BQU0sQ0FBQ2xCLFNBQVM7b0JBQ3RDVyxZQUFZK0I7b0JBQ1o5QixnQkFBZ0JrQztnQkFDbEI7Z0JBQ0EsSUFBSUksd0JBQXdCLE9BQU9BO2dCQUVuQyxPQUFRaEIsS0FBS3JCLE1BQU07b0JBQ2pCLEtBQUs7d0JBQ0gsZUFBZTt3QkFDZmtDLE1BQU0sTUFBTS9DLFVBQVVDLFVBQVUsQ0FBQ0ssS0FBSyxDQUFDZixNQUFNLENBQUM7NEJBQUVVOzRCQUFZNkM7d0JBQUk7d0JBQ2hFO29CQUNGLEtBQUs7d0JBQ0gsbUJBQW1CO3dCQUNuQkMsTUFBTSxNQUFNL0MsVUFBVUMsVUFBVSxDQUFDSyxLQUFLLENBQUNkLFVBQVUsQ0FBQzs0QkFBRTJELElBQUlSOzRCQUFPMUM7NEJBQVk2Qzt3QkFBSTt3QkFDL0U7Z0JBQ0o7WUFDRjtZQUVBLElBQUlDLGVBQWVaLFVBQVUsT0FBT1k7WUFFcEMsY0FBYztZQUNkLE1BQU1HLHlCQUF5QixNQUFNeEMsc0JBQXNCO2dCQUN6RFYsV0FBVzhDLElBQUk3QixPQUFPLENBQUNDLE1BQU0sQ0FBQ2xCLFNBQVM7Z0JBQ3ZDWSxnQkFBZ0JrQztZQUNsQjtZQUNBLElBQUlJLHdCQUF3QixPQUFPQTtZQUVuQyxPQUFPakIsc0JBQXNCQztRQUMvQixFQUFFLE9BQU9xQixPQUFPO1lBQ2QsT0FBT3ZGLFdBQVc7Z0JBQ2hCaUM7Z0JBQ0F1RCxLQUFLRDtnQkFDTFQ7WUFDRjtRQUNGO0lBQ0YsRUFBQyJ9
|
|
526
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/routes/rest/index.ts"],"sourcesContent":["import type { Endpoint } from 'payload/config'\nimport type { Collection, GlobalConfig, PayloadRequest, SanitizedConfig } from 'payload/types'\n\nimport httpStatus from 'http-status'\nimport { match } from 'path-to-regexp'\n\nimport type {\n CollectionRouteHandler,\n CollectionRouteHandlerWithID,\n GlobalRouteHandler,\n GlobalRouteHandlerWithID,\n} from './types.js'\n\nimport { createPayloadRequest } from '../../utilities/createPayloadRequest.js'\nimport { RouteError } from './RouteError.js'\nimport { access } from './auth/access.js'\nimport { forgotPassword } from './auth/forgotPassword.js'\nimport { init } from './auth/init.js'\nimport { login } from './auth/login.js'\nimport { logout } from './auth/logout.js'\nimport { me } from './auth/me.js'\nimport { refresh } from './auth/refresh.js'\nimport { registerFirstUser } from './auth/registerFirstUser.js'\nimport { resetPassword } from './auth/resetPassword.js'\nimport { unlock } from './auth/unlock.js'\nimport { verifyEmail } from './auth/verifyEmail.js'\nimport { buildFormState } from './buildFormState.js'\nimport { endpointsAreDisabled } from './checkEndpoints.js'\nimport { create } from './collections/create.js'\nimport { deleteDoc } from './collections/delete.js'\nimport { deleteByID } from './collections/deleteByID.js'\nimport { docAccess } from './collections/docAccess.js'\nimport { find } from './collections/find.js'\nimport { findByID } from './collections/findByID.js'\nimport { findVersionByID } from './collections/findVersionByID.js'\nimport { findVersions } from './collections/findVersions.js'\nimport { restoreVersion } from './collections/restoreVersion.js'\nimport { update } from './collections/update.js'\nimport { updateByID } from './collections/updateByID.js'\nimport { getFile } from './files/getFile.js'\nimport { docAccess as docAccessGlobal } from './globals/docAccess.js'\nimport { findOne } from './globals/findOne.js'\nimport { findVersionByID as findVersionByIdGlobal } from './globals/findVersionByID.js'\nimport { findVersions as findVersionsGlobal } from './globals/findVersions.js'\nimport { restoreVersion as restoreVersionGlobal } from './globals/restoreVersion.js'\nimport { update as updateGlobal } from './globals/update.js'\n\nconst endpoints = {\n collection: {\n DELETE: {\n delete: deleteDoc,\n deleteByID,\n },\n GET: {\n 'doc-access-by-id': docAccess,\n 'doc-versions-by-id': findVersionByID,\n find,\n findByID,\n getFile,\n init,\n me,\n versions: findVersions,\n },\n PATCH: {\n update,\n updateByID,\n },\n POST: {\n access: docAccess,\n create,\n 'doc-access-by-id': docAccess,\n 'doc-verify-by-id': verifyEmail,\n 'doc-versions-by-id': restoreVersion,\n 'first-register': registerFirstUser,\n 'forgot-password': forgotPassword,\n login,\n logout,\n 'refresh-token': refresh,\n 'reset-password': resetPassword,\n unlock,\n },\n },\n global: {\n GET: {\n 'doc-access': docAccessGlobal,\n 'doc-versions': findVersionsGlobal,\n 'doc-versions-by-id': findVersionByIdGlobal,\n findOne,\n },\n POST: {\n 'doc-access': docAccessGlobal,\n 'doc-versions-by-id': restoreVersionGlobal,\n update: updateGlobal,\n },\n },\n root: {\n GET: {\n access,\n },\n POST: {\n 'form-state': buildFormState,\n },\n },\n}\n\nconst handleCustomEndpoints = ({\n endpoints,\n entitySlug,\n payloadRequest,\n}: {\n endpoints: Endpoint[] | GlobalConfig['endpoints']\n entitySlug?: string\n payloadRequest: PayloadRequest\n}): Promise<Response> | Response => {\n if (endpoints && endpoints.length > 0) {\n let handlerParams = {}\n const { pathname } = payloadRequest\n const pathPrefix =\n payloadRequest.payload.config.routes.api + (entitySlug ? `/${entitySlug}` : '')\n\n const customEndpoint = endpoints.find((endpoint) => {\n if (endpoint.method === payloadRequest.method.toLowerCase()) {\n const pathMatchFn = match(`${pathPrefix}${endpoint.path}`, {\n decode: decodeURIComponent,\n })\n const tempParams = pathMatchFn(pathname)\n if (tempParams) {\n handlerParams = tempParams.params\n return true\n }\n }\n })\n\n if (customEndpoint) {\n payloadRequest.routeParams = handlerParams\n return customEndpoint.handler(payloadRequest)\n }\n }\n\n return null\n}\n\nconst RouteNotFoundResponse = (slug: string[]) =>\n Response.json(\n {\n message: `Route Not Found: \"${slug.join('/')}\"`,\n },\n { status: httpStatus.NOT_FOUND },\n )\n\nexport const GET =\n (config: Promise<SanitizedConfig> | SanitizedConfig) =>\n async (request: Request, { params: { slug } }: { params: { slug: string[] } }) => {\n const [slug1, slug2, slug3, slug4] = slug\n let req: PayloadRequest\n let res: Response\n let collection: Collection\n\n try {\n req = await createPayloadRequest({\n config,\n params: {\n collection: slug1,\n },\n request,\n })\n\n const disableEndpoints = endpointsAreDisabled({\n endpoints: req.payload.config.endpoints,\n request,\n })\n if (disableEndpoints) return disableEndpoints\n\n collection = req.payload.collections?.[slug1]\n\n if (collection) {\n const disableEndpoints = endpointsAreDisabled({\n endpoints: collection.config.endpoints,\n request,\n })\n if (disableEndpoints) return disableEndpoints\n\n const customEndpointResponse = await handleCustomEndpoints({\n endpoints: collection.config.endpoints,\n entitySlug: slug1,\n payloadRequest: req,\n })\n if (customEndpointResponse) return customEndpointResponse\n\n switch (slug.length) {\n case 1:\n // /:collection\n res = await endpoints.collection.GET.find({ collection, req })\n break\n case 2:\n if (slug2 in endpoints.collection.GET) {\n // /:collection/init\n // /:collection/me\n // /:collection/versions\n res = await (endpoints.collection.GET[slug2] as CollectionRouteHandler)({\n collection,\n req,\n })\n } else {\n // /:collection/:id\n res = await endpoints.collection.GET.findByID({ id: slug2, collection, req })\n }\n break\n case 3:\n if (slug2 === 'file') {\n // /:collection/file/:filename\n res = await endpoints.collection.GET.getFile({ collection, filename: slug3, req })\n } else if (`doc-${slug2}-by-id` in endpoints.collection.GET) {\n // /:collection/access/:id\n // /:collection/versions/:id\n\n res = await (\n endpoints.collection.GET[`doc-${slug2}-by-id`] as CollectionRouteHandlerWithID\n )({ id: slug3, collection, req })\n }\n break\n }\n } else if (slug1 === 'globals') {\n const globalConfig = req.payload.config.globals.find((global) => global.slug === slug2)\n\n const disableEndpoints = endpointsAreDisabled({\n endpoints: globalConfig.endpoints,\n request,\n })\n if (disableEndpoints) return disableEndpoints\n\n const customEndpointResponse = await handleCustomEndpoints({\n endpoints: globalConfig.endpoints,\n entitySlug: `${slug1}/${slug2}`,\n payloadRequest: req,\n })\n if (customEndpointResponse) return customEndpointResponse\n\n switch (slug.length) {\n case 2:\n // /globals/:slug\n res = await endpoints.global.GET.findOne({ globalConfig, req })\n break\n case 3:\n if (`doc-${slug3}` in endpoints.global.GET) {\n // /globals/:slug/access\n // /globals/:slug/versions\n res = await (endpoints.global.GET?.[`doc-${slug3}`] as GlobalRouteHandler)({\n globalConfig,\n req,\n })\n }\n break\n case 4:\n if (`doc-${slug3}-by-id` in endpoints.global.GET) {\n // /globals/:slug/versions/:id\n res = await (\n endpoints.global.GET?.[`doc-${slug3}-by-id`] as GlobalRouteHandlerWithID\n )({\n id: slug4,\n globalConfig,\n req,\n })\n }\n break\n }\n } else if (slug.length === 1 && slug1 in endpoints.root.GET) {\n res = await endpoints.root.GET[slug1]({ req })\n }\n\n if (res instanceof Response) return res\n\n // root routes\n const customEndpointResponse = await handleCustomEndpoints({\n endpoints: req.payload.config.endpoints,\n payloadRequest: req,\n })\n if (customEndpointResponse) return customEndpointResponse\n\n return RouteNotFoundResponse(slug)\n } catch (error) {\n return RouteError({\n collection,\n err: error,\n req,\n })\n }\n }\n\nexport const POST =\n (config: Promise<SanitizedConfig> | SanitizedConfig) =>\n async (request: Request, { params: { slug } }: { params: { slug: string[] } }) => {\n const [slug1, slug2, slug3, slug4] = slug\n let req: PayloadRequest\n let res: Response\n let collection: Collection\n\n try {\n req = await createPayloadRequest({\n config,\n params: { collection: slug1 },\n request,\n })\n\n collection = req.payload.collections?.[slug1]\n\n const disableEndpoints = endpointsAreDisabled({\n endpoints: req.payload.config.endpoints,\n request,\n })\n if (disableEndpoints) return disableEndpoints\n\n if (collection) {\n const disableEndpoints = endpointsAreDisabled({\n endpoints: collection.config.endpoints,\n request,\n })\n if (disableEndpoints) return disableEndpoints\n\n const customEndpointResponse = await handleCustomEndpoints({\n endpoints: collection.config.endpoints,\n entitySlug: slug1,\n payloadRequest: req,\n })\n\n if (customEndpointResponse) return customEndpointResponse\n\n switch (slug.length) {\n case 1:\n // /:collection\n res = await endpoints.collection.POST.create({ collection, req })\n break\n case 2:\n if (slug2 in endpoints.collection.POST) {\n // /:collection/login\n // /:collection/logout\n // /:collection/unlock\n // /:collection/access\n // /:collection/first-register\n // /:collection/forgot-password\n // /:collection/reset-password\n // /:collection/refresh-token\n\n res = await (endpoints.collection.POST?.[slug2] as CollectionRouteHandler)({\n collection,\n req,\n })\n }\n break\n case 3:\n if (`doc-${slug2}-by-id` in endpoints.collection.POST) {\n // /:collection/access/:id\n // /:collection/versions/:id\n // /:collection/verify/:token (\"doc-verify-by-id\" uses id as token internally)\n res = await (\n endpoints.collection.POST[`doc-${slug2}-by-id`] as CollectionRouteHandlerWithID\n )({ id: slug3, collection, req })\n }\n break\n }\n } else if (slug1 === 'globals' && slug2) {\n const globalConfig = req.payload.config.globals.find((global) => global.slug === slug2)\n const disableEndpoints = endpointsAreDisabled({\n endpoints: globalConfig.endpoints,\n request,\n })\n if (disableEndpoints) return disableEndpoints\n\n const customEndpointResponse = await handleCustomEndpoints({\n endpoints: globalConfig.endpoints,\n entitySlug: `${slug1}/${slug2}`,\n payloadRequest: req,\n })\n if (customEndpointResponse) return customEndpointResponse\n\n switch (slug.length) {\n case 2:\n // /globals/:slug\n res = await endpoints.global.POST.update({ globalConfig, req })\n break\n case 3:\n if (`doc-${slug3}` in endpoints.global.POST) {\n // /globals/:slug/access\n res = await (endpoints.global.POST?.[`doc-${slug3}`] as GlobalRouteHandler)({\n globalConfig,\n req,\n })\n }\n break\n case 4:\n if (`doc-${slug3}-by-id` in endpoints.global.POST) {\n // /globals/:slug/versions/:id\n res = await (\n endpoints.global.POST?.[`doc-${slug3}-by-id`] as GlobalRouteHandlerWithID\n )({\n id: slug4,\n globalConfig,\n req,\n })\n }\n break\n default:\n res = new Response('Route Not Found', { status: 404 })\n }\n } else if (slug.length === 1 && slug1 in endpoints.root.POST) {\n res = await endpoints.root.POST[slug1]({ req })\n }\n\n if (res instanceof Response) return res\n\n // root routes\n const customEndpointResponse = await handleCustomEndpoints({\n endpoints: req.payload.config.endpoints,\n payloadRequest: req,\n })\n if (customEndpointResponse) return customEndpointResponse\n\n return RouteNotFoundResponse(slug)\n } catch (error) {\n return RouteError({\n collection,\n err: error,\n req,\n })\n }\n }\n\nexport const DELETE =\n (config: Promise<SanitizedConfig> | SanitizedConfig) =>\n async (request: Request, { params: { slug } }: { params: { slug: string[] } }) => {\n const [slug1, slug2] = slug\n let req: PayloadRequest\n let res: Response\n let collection: Collection\n\n try {\n req = await createPayloadRequest({\n config,\n params: {\n collection: slug1,\n },\n request,\n })\n collection = req.payload.collections?.[slug1]\n\n const disableEndpoints = endpointsAreDisabled({\n endpoints: req.payload.config.endpoints,\n request,\n })\n if (disableEndpoints) return disableEndpoints\n\n if (collection) {\n const disableEndpoints = endpointsAreDisabled({\n endpoints: collection.config.endpoints,\n request,\n })\n if (disableEndpoints) return disableEndpoints\n\n const customEndpointResponse = await handleCustomEndpoints({\n endpoints: collection.config.endpoints,\n entitySlug: slug1,\n payloadRequest: req,\n })\n if (customEndpointResponse) return customEndpointResponse\n\n switch (slug.length) {\n case 1:\n // /:collection\n res = await endpoints.collection.DELETE.delete({ collection, req })\n break\n case 2:\n // /:collection/:id\n res = await endpoints.collection.DELETE.deleteByID({ id: slug2, collection, req })\n break\n }\n }\n\n if (res instanceof Response) return res\n\n // root routes\n const customEndpointResponse = await handleCustomEndpoints({\n endpoints: req.payload.config.endpoints,\n payloadRequest: req,\n })\n if (customEndpointResponse) return customEndpointResponse\n\n return RouteNotFoundResponse(slug)\n } catch (error) {\n return RouteError({\n collection,\n err: error,\n req,\n })\n }\n }\n\nexport const PATCH =\n (config: Promise<SanitizedConfig> | SanitizedConfig) =>\n async (request: Request, { params: { slug } }: { params: { slug: string[] } }) => {\n const [slug1, slug2] = slug\n let req: PayloadRequest\n let res: Response\n let collection: Collection\n\n try {\n req = await createPayloadRequest({\n config,\n params: {\n collection: slug1,\n },\n request,\n })\n collection = req.payload.collections?.[slug1]\n\n const disableEndpoints = endpointsAreDisabled({\n endpoints: req.payload.config.endpoints,\n request,\n })\n if (disableEndpoints) return disableEndpoints\n\n if (collection) {\n const disableEndpoints = endpointsAreDisabled({\n endpoints: collection.config.endpoints,\n request,\n })\n if (disableEndpoints) return disableEndpoints\n\n const customEndpointResponse = await handleCustomEndpoints({\n endpoints: collection.config.endpoints,\n entitySlug: slug1,\n payloadRequest: req,\n })\n if (customEndpointResponse) return customEndpointResponse\n\n switch (slug.length) {\n case 1:\n // /:collection\n res = await endpoints.collection.PATCH.update({ collection, req })\n break\n case 2:\n // /:collection/:id\n res = await endpoints.collection.PATCH.updateByID({ id: slug2, collection, req })\n break\n }\n }\n\n if (res instanceof Response) return res\n\n // root routes\n const customEndpointResponse = await handleCustomEndpoints({\n endpoints: req.payload.config.endpoints,\n payloadRequest: req,\n })\n if (customEndpointResponse) return customEndpointResponse\n\n return RouteNotFoundResponse(slug)\n } catch (error) {\n return RouteError({\n collection,\n err: error,\n req,\n })\n }\n }\n"],"names":["httpStatus","match","createPayloadRequest","RouteError","access","forgotPassword","init","login","logout","me","refresh","registerFirstUser","resetPassword","unlock","verifyEmail","buildFormState","endpointsAreDisabled","create","deleteDoc","deleteByID","docAccess","find","findByID","findVersionByID","findVersions","restoreVersion","update","updateByID","getFile","docAccessGlobal","findOne","findVersionByIdGlobal","findVersionsGlobal","restoreVersionGlobal","updateGlobal","endpoints","collection","DELETE","delete","GET","versions","PATCH","POST","global","root","handleCustomEndpoints","entitySlug","payloadRequest","length","handlerParams","pathname","pathPrefix","payload","config","routes","api","customEndpoint","endpoint","method","toLowerCase","pathMatchFn","path","decode","decodeURIComponent","tempParams","params","routeParams","handler","RouteNotFoundResponse","slug","Response","json","message","join","status","NOT_FOUND","request","slug1","slug2","slug3","slug4","req","res","disableEndpoints","collections","customEndpointResponse","id","filename","globalConfig","globals","error","err"],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { };
|
|
2
2
|
|
|
3
|
-
//# sourceMappingURL=
|
|
3
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/routes/rest/types.ts"],"sourcesContent":["import type { Collection, PayloadRequest, SanitizedGlobalConfig } from 'payload/types'\n\nexport type BaseRouteHandler = ({ req }: { req: PayloadRequest }) => Promise<Response> | Response\n\nexport type CollectionRouteHandler = ({\n collection,\n req,\n}: {\n collection: Collection\n req: PayloadRequest\n}) => Promise<Response> | Response\n\nexport type CollectionRouteHandlerWithID = ({\n id,\n collection,\n req,\n}: {\n collection: Collection\n id: string\n req: PayloadRequest\n}) => Promise<Response> | Response\n\nexport type GlobalRouteHandler = ({\n globalConfig,\n req,\n}: {\n globalConfig: SanitizedGlobalConfig\n req: PayloadRequest\n}) => Promise<Response> | Response\n\nexport type GlobalRouteHandlerWithID = ({\n id,\n globalConfig,\n req,\n}: {\n globalConfig: SanitizedGlobalConfig\n id: string\n req: PayloadRequest\n}) => Promise<Response> | Response\n"],"names":[],"mappings":"AA8BA,WAQkC"}
|
package/dist/scss/app.scss
CHANGED
package/dist/utilities/auth.js
CHANGED
|
@@ -25,4 +25,4 @@ export const auth = cache(async ({ headers, payload })=>{
|
|
|
25
25
|
};
|
|
26
26
|
});
|
|
27
27
|
|
|
28
|
-
//# sourceMappingURL=
|
|
28
|
+
//# sourceMappingURL=auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/auth.ts"],"sourcesContent":["import type { Payload, PayloadRequest } from 'payload/types'\n\nimport { getAccessResults, getAuthenticatedUser, parseCookies } from 'payload/auth'\nimport { cache } from 'react'\n\nexport const auth = cache(\n async ({ headers, payload }: { headers: Request['headers']; payload: Payload }) => {\n const cookies = parseCookies(headers)\n\n const user = await getAuthenticatedUser({\n cookies,\n headers,\n payload,\n })\n\n const permissions = await getAccessResults({\n req: {\n context: {},\n headers,\n i18n: undefined,\n payload,\n payloadAPI: 'REST',\n t: undefined,\n user,\n } as PayloadRequest,\n })\n\n return {\n cookies,\n permissions,\n user,\n }\n },\n)\n"],"names":["getAccessResults","getAuthenticatedUser","parseCookies","cache","auth","headers","payload","cookies","user","permissions","req","context","i18n","undefined","payloadAPI","t"],"mappings":"AAEA,SAASA,gBAAgB,EAAEC,oBAAoB,EAAEC,YAAY,QAAQ,eAAc;AACnF,SAASC,KAAK,QAAQ,QAAO;AAE7B,OAAO,MAAMC,OAAOD,MAClB,OAAO,EAAEE,OAAO,EAAEC,OAAO,EAAqD;IAC5E,MAAMC,UAAUL,aAAaG;IAE7B,MAAMG,OAAO,MAAMP,qBAAqB;QACtCM;QACAF;QACAC;IACF;IAEA,MAAMG,cAAc,MAAMT,iBAAiB;QACzCU,KAAK;YACHC,SAAS,CAAC;YACVN;YACAO,MAAMC;YACNP;YACAQ,YAAY;YACZC,GAAGF;YACHL;QACF;IACF;IAEA,OAAO;QACLD;QACAE;QACAD;IACF;AACF,GACD"}
|
|
@@ -90,4 +90,4 @@ export const createPayloadRequest = async ({ config: configPromise, params, requ
|
|
|
90
90
|
return req;
|
|
91
91
|
};
|
|
92
92
|
|
|
93
|
-
//# sourceMappingURL=
|
|
93
|
+
//# sourceMappingURL=createPayloadRequest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/createPayloadRequest.ts"],"sourcesContent":["import type {\n Collection,\n CustomPayloadRequest,\n PayloadRequest,\n SanitizedConfig,\n} from 'payload/types'\n\nimport { initI18n } from '@payloadcms/translations'\nimport { translations } from '@payloadcms/translations/api'\nimport { getAuthenticatedUser } from 'payload/auth'\nimport { parseCookies } from 'payload/auth'\nimport { getDataLoader } from 'payload/utilities'\nimport QueryString from 'qs'\nimport { URL } from 'url'\n\nimport { getDataAndFile } from './getDataAndFile.js'\nimport { getPayload } from './getPayload.js'\nimport { getRequestLanguage } from './getRequestLanguage.js'\nimport { getRequestLocales } from './getRequestLocales.js'\n\ntype Args = {\n config: Promise<SanitizedConfig> | SanitizedConfig\n params?: {\n collection: string\n }\n request: Request\n}\n\nexport const createPayloadRequest = async ({\n config: configPromise,\n params,\n request,\n}: Args): Promise<PayloadRequest> => {\n const cookies = parseCookies(request.headers)\n const payload = await getPayload({ config: configPromise })\n\n const { collections, config } = payload\n\n let collection: Collection = undefined\n if (params?.collection && collections?.[params.collection]) {\n collection = collections[params.collection]\n }\n\n const urlProperties = new URL(request.url)\n const { pathname, searchParams } = urlProperties\n\n const isGraphQL =\n !config.graphQL.disable && pathname === `${config.routes.api}${config.routes.graphQL}`\n\n const { data, file } = await getDataAndFile({\n collection,\n config,\n request,\n })\n\n let requestFallbackLocale\n let requestLocale\n\n if (config.localization) {\n const locales = getRequestLocales({\n data,\n localization: config.localization,\n searchParams,\n })\n requestLocale = locales.locale\n requestFallbackLocale = locales.fallbackLocale\n }\n\n const language = getRequestLanguage({\n cookies,\n headers: request.headers,\n })\n\n const i18n = initI18n({\n config: config.i18n,\n context: 'api',\n language,\n translations,\n })\n\n const customRequest: CustomPayloadRequest = {\n context: {},\n data,\n fallbackLocale: requestFallbackLocale,\n file,\n hash: urlProperties.hash,\n host: urlProperties.host,\n href: urlProperties.href,\n i18n,\n locale: requestLocale,\n origin: urlProperties.origin,\n pathname: urlProperties.pathname,\n payload,\n payloadAPI: isGraphQL ? 'GraphQL' : 'REST',\n payloadDataLoader: undefined,\n payloadUploadSizes: {},\n port: urlProperties.port,\n protocol: urlProperties.protocol,\n query: urlProperties.search\n ? QueryString.parse(urlProperties.search, {\n arrayLimit: 1000,\n depth: 10,\n ignoreQueryPrefix: true,\n strictNullHandling: true,\n })\n : {},\n routeParams: params || {},\n search: urlProperties.search,\n searchParams: urlProperties.searchParams,\n t: i18n.t,\n transactionID: undefined,\n user: null,\n }\n\n const req: PayloadRequest = Object.assign(request, customRequest)\n req.payloadDataLoader = getDataLoader(req)\n\n req.user = await getAuthenticatedUser({\n cookies,\n headers: req.headers,\n isGraphQL,\n payload,\n })\n\n return req\n}\n"],"names":["initI18n","translations","getAuthenticatedUser","parseCookies","getDataLoader","QueryString","URL","getDataAndFile","getPayload","getRequestLanguage","getRequestLocales","createPayloadRequest","config","configPromise","params","request","cookies","headers","payload","collections","collection","undefined","urlProperties","url","pathname","searchParams","isGraphQL","graphQL","disable","routes","api","data","file","requestFallbackLocale","requestLocale","localization","locales","locale","fallbackLocale","language","i18n","context","customRequest","hash","host","href","origin","payloadAPI","payloadDataLoader","payloadUploadSizes","port","protocol","query","search","parse","arrayLimit","depth","ignoreQueryPrefix","strictNullHandling","routeParams","t","transactionID","user","req","Object","assign"],"mappings":"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"}
|
|
@@ -61,4 +61,4 @@ export const getDataAndFile = async ({ collection, config, request })=>{
|
|
|
61
61
|
};
|
|
62
62
|
};
|
|
63
63
|
|
|
64
|
-
//# sourceMappingURL=
|
|
64
|
+
//# sourceMappingURL=getDataAndFile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/getDataAndFile.ts"],"sourcesContent":["import type { Collection, CustomPayloadRequest, SanitizedConfig } from 'payload/types'\n\nimport { nextFileUpload } from '../next-fileupload/index.js'\n\ntype GetDataAndFile = (args: {\n collection: Collection\n config: SanitizedConfig\n request: Request\n}) => Promise<{\n data: Record<string, any>\n file: CustomPayloadRequest['file']\n}>\nexport const getDataAndFile: GetDataAndFile = async ({ collection, config, request }) => {\n let data: Record<string, any> = undefined\n let file: CustomPayloadRequest['file'] = undefined\n\n if (['PATCH', 'POST', 'PUT'].includes(request.method.toUpperCase()) && request.body) {\n const [contentType] = (request.headers.get('Content-Type') || '').split(';')\n\n if (contentType === 'application/json') {\n data = await request.json()\n } else if (contentType === 'multipart/form-data') {\n // possible upload request\n if (collection?.config?.upload) {\n // load file in memory\n if (!config.upload?.useTempFiles) {\n const formData = await request.formData()\n const formFile = formData.get('file')\n\n if (formFile instanceof Blob) {\n const bytes = await formFile.arrayBuffer()\n const buffer = Buffer.from(bytes)\n\n file = {\n name: formFile.name,\n data: buffer,\n mimetype: formFile.type,\n size: formFile.size,\n }\n }\n\n const payloadData = formData.get('_payload')\n\n if (typeof payloadData === 'string') {\n data = JSON.parse(payloadData)\n }\n } else {\n // store temp file on disk\n const { error, fields, files } = await nextFileUpload({\n options: config.upload as any,\n request,\n })\n\n if (error) {\n throw new Error(error.message)\n }\n\n if (files?.file) file = files.file\n\n if (fields?._payload && typeof fields._payload === 'string') {\n data = JSON.parse(fields._payload)\n }\n }\n } else {\n // non upload request\n const formData = await request.formData()\n const payloadData = formData.get('_payload')\n\n if (typeof payloadData === 'string') {\n data = JSON.parse(payloadData)\n }\n }\n }\n }\n\n return {\n data,\n file,\n }\n}\n"],"names":["nextFileUpload","getDataAndFile","collection","config","request","data","undefined","file","includes","method","toUpperCase","body","contentType","headers","get","split","json","upload","useTempFiles","formData","formFile","Blob","bytes","arrayBuffer","buffer","Buffer","from","name","mimetype","type","size","payloadData","JSON","parse","error","fields","files","options","Error","message","_payload"],"mappings":"AAEA,SAASA,cAAc,QAAQ,8BAA6B;AAU5D,OAAO,MAAMC,iBAAiC,OAAO,EAAEC,UAAU,EAAEC,MAAM,EAAEC,OAAO,EAAE;IAClF,IAAIC,OAA4BC;IAChC,IAAIC,OAAqCD;IAEzC,IAAI;QAAC;QAAS;QAAQ;KAAM,CAACE,QAAQ,CAACJ,QAAQK,MAAM,CAACC,WAAW,OAAON,QAAQO,IAAI,EAAE;QACnF,MAAM,CAACC,YAAY,GAAG,AAACR,CAAAA,QAAQS,OAAO,CAACC,GAAG,CAAC,mBAAmB,EAAC,EAAGC,KAAK,CAAC;QAExE,IAAIH,gBAAgB,oBAAoB;YACtCP,OAAO,MAAMD,QAAQY,IAAI;QAC3B,OAAO,IAAIJ,gBAAgB,uBAAuB;YAChD,0BAA0B;YAC1B,IAAIV,YAAYC,QAAQc,QAAQ;gBAC9B,sBAAsB;gBACtB,IAAI,CAACd,OAAOc,MAAM,EAAEC,cAAc;oBAChC,MAAMC,WAAW,MAAMf,QAAQe,QAAQ;oBACvC,MAAMC,WAAWD,SAASL,GAAG,CAAC;oBAE9B,IAAIM,oBAAoBC,MAAM;wBAC5B,MAAMC,QAAQ,MAAMF,SAASG,WAAW;wBACxC,MAAMC,SAASC,OAAOC,IAAI,CAACJ;wBAE3Bf,OAAO;4BACLoB,MAAMP,SAASO,IAAI;4BACnBtB,MAAMmB;4BACNI,UAAUR,SAASS,IAAI;4BACvBC,MAAMV,SAASU,IAAI;wBACrB;oBACF;oBAEA,MAAMC,cAAcZ,SAASL,GAAG,CAAC;oBAEjC,IAAI,OAAOiB,gBAAgB,UAAU;wBACnC1B,OAAO2B,KAAKC,KAAK,CAACF;oBACpB;gBACF,OAAO;oBACL,0BAA0B;oBAC1B,MAAM,EAAEG,KAAK,EAAEC,MAAM,EAAEC,KAAK,EAAE,GAAG,MAAMpC,eAAe;wBACpDqC,SAASlC,OAAOc,MAAM;wBACtBb;oBACF;oBAEA,IAAI8B,OAAO;wBACT,MAAM,IAAII,MAAMJ,MAAMK,OAAO;oBAC/B;oBAEA,IAAIH,OAAO7B,MAAMA,OAAO6B,MAAM7B,IAAI;oBAElC,IAAI4B,QAAQK,YAAY,OAAOL,OAAOK,QAAQ,KAAK,UAAU;wBAC3DnC,OAAO2B,KAAKC,KAAK,CAACE,OAAOK,QAAQ;oBACnC;gBACF;YACF,OAAO;gBACL,qBAAqB;gBACrB,MAAMrB,WAAW,MAAMf,QAAQe,QAAQ;gBACvC,MAAMY,cAAcZ,SAASL,GAAG,CAAC;gBAEjC,IAAI,OAAOiB,gBAAgB,UAAU;oBACnC1B,OAAO2B,KAAKC,KAAK,CAACF;gBACpB;YACF;QACF;IACF;IAEA,OAAO;QACL1B;QACAE;IACF;AACF,EAAC"}
|
|
@@ -15,4 +15,4 @@ export const getNextI18n = async ({ config, language })=>{
|
|
|
15
15
|
return i18n;
|
|
16
16
|
};
|
|
17
17
|
|
|
18
|
-
//# sourceMappingURL=
|
|
18
|
+
//# sourceMappingURL=getNextI18n.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/getNextI18n.ts"],"sourcesContent":["import type { I18n } from '@payloadcms/translations'\nimport type { SanitizedConfig } from 'payload/types'\n\nimport { initI18n } from '@payloadcms/translations'\nimport { translations } from '@payloadcms/translations/client'\nimport { cookies, headers } from 'next/headers.js'\n\nimport { getRequestLanguage } from './getRequestLanguage.js'\n\nexport const getNextI18n = async ({\n config,\n language,\n}: {\n config: SanitizedConfig\n language?: string\n}): Promise<I18n> => {\n const i18n = initI18n({\n config: config.i18n,\n context: 'client',\n language: language || getRequestLanguage({ cookies: cookies(), headers: headers() }),\n translations,\n })\n\n return i18n\n}\n"],"names":["initI18n","translations","cookies","headers","getRequestLanguage","getNextI18n","config","language","i18n","context"],"mappings":"AAGA,SAASA,QAAQ,QAAQ,2BAA0B;AACnD,SAASC,YAAY,QAAQ,kCAAiC;AAC9D,SAASC,OAAO,EAAEC,OAAO,QAAQ,kBAAiB;AAElD,SAASC,kBAAkB,QAAQ,0BAAyB;AAE5D,OAAO,MAAMC,cAAc,OAAO,EAChCC,MAAM,EACNC,QAAQ,EAIT;IACC,MAAMC,OAAOR,SAAS;QACpBM,QAAQA,OAAOE,IAAI;QACnBC,SAAS;QACTF,UAAUA,YAAYH,mBAAmB;YAAEF,SAASA;YAAWC,SAASA;QAAU;QAClFF;IACF;IAEA,OAAOO;AACT,EAAC"}
|
|
@@ -15,4 +15,4 @@ export const getNextT = async ({ config, language })=>{
|
|
|
15
15
|
return i18n.t;
|
|
16
16
|
};
|
|
17
17
|
|
|
18
|
-
//# sourceMappingURL=
|
|
18
|
+
//# sourceMappingURL=getNextT.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/getNextT.ts"],"sourcesContent":["import type { TFunction } from '@payloadcms/translations'\nimport type { SanitizedConfig } from 'payload/types'\n\nimport { initI18n } from '@payloadcms/translations'\nimport { translations } from '@payloadcms/translations/client'\nimport { cookies, headers } from 'next/headers.js'\n\nimport { getRequestLanguage } from './getRequestLanguage.js'\n\nexport const getNextT = async ({\n config,\n language,\n}: {\n config: SanitizedConfig\n language?: string\n}): Promise<TFunction> => {\n const i18n = await initI18n({\n config: config.i18n,\n context: 'client',\n language: language || getRequestLanguage({ cookies: cookies(), headers: headers() }),\n translations,\n })\n\n return i18n.t\n}\n"],"names":["initI18n","translations","cookies","headers","getRequestLanguage","getNextT","config","language","i18n","context","t"],"mappings":"AAGA,SAASA,QAAQ,QAAQ,2BAA0B;AACnD,SAASC,YAAY,QAAQ,kCAAiC;AAC9D,SAASC,OAAO,EAAEC,OAAO,QAAQ,kBAAiB;AAElD,SAASC,kBAAkB,QAAQ,0BAAyB;AAE5D,OAAO,MAAMC,WAAW,OAAO,EAC7BC,MAAM,EACNC,QAAQ,EAIT;IACC,MAAMC,OAAO,MAAMR,SAAS;QAC1BM,QAAQA,OAAOE,IAAI;QACnBC,SAAS;QACTF,UAAUA,YAAYH,mBAAmB;YAAEF,SAASA;YAAWC,SAASA;QAAU;QAClFF;IACF;IAEA,OAAOO,KAAKE,CAAC;AACf,EAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPayload.d.ts","sourceRoot":"","sources":["../../src/utilities/getPayload.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,OAAO,EAAE,MAAM,SAAS,CAAA;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAYjD,eAAO,MAAM,UAAU,YAAmB,WAAW,KAAG,QAAQ,OAAO,
|
|
1
|
+
{"version":3,"file":"getPayload.d.ts","sourceRoot":"","sources":["../../src/utilities/getPayload.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,OAAO,EAAE,MAAM,SAAS,CAAA;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAYjD,eAAO,MAAM,UAAU,YAAmB,WAAW,KAAG,QAAQ,OAAO,CA8DtE,CAAA"}
|
|
@@ -9,6 +9,9 @@ if (!cached) {
|
|
|
9
9
|
};
|
|
10
10
|
}
|
|
11
11
|
export const getPayload = async (options)=>{
|
|
12
|
+
if (!options?.config) {
|
|
13
|
+
throw new Error('Error: the payload config is required for getPayload to work.');
|
|
14
|
+
}
|
|
12
15
|
if (cached.payload) {
|
|
13
16
|
const config = await options.config;
|
|
14
17
|
if (cached.reload) {
|
|
@@ -39,7 +42,8 @@ export const getPayload = async (options)=>{
|
|
|
39
42
|
cached.payload = await cached.promise;
|
|
40
43
|
if (process.env.NODE_ENV !== 'production') {
|
|
41
44
|
try {
|
|
42
|
-
const
|
|
45
|
+
const port = process.env.PORT || '3000';
|
|
46
|
+
const ws = new WebSocket(`ws://localhost:${port}/_next/webpack-hmr`);
|
|
43
47
|
ws.onmessage = (event)=>{
|
|
44
48
|
if (typeof event.data === 'string') {
|
|
45
49
|
const data = JSON.parse(event.data);
|
|
@@ -59,4 +63,4 @@ export const getPayload = async (options)=>{
|
|
|
59
63
|
return cached.payload;
|
|
60
64
|
};
|
|
61
65
|
|
|
62
|
-
//# sourceMappingURL=
|
|
66
|
+
//# sourceMappingURL=getPayload.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/getPayload.ts"],"sourcesContent":["import type { GeneratedTypes, Payload } from 'payload'\nimport type { InitOptions } from 'payload/config'\n\nimport { BasePayload } from 'payload'\nimport WebSocket from 'ws'\n\nlet cached = global._payload\n\nif (!cached) {\n // eslint-disable-next-line no-multi-assign\n cached = global._payload = { payload: null, promise: null }\n}\n\nexport const getPayload = async (options: InitOptions): Promise<Payload> => {\n if (!options?.config) {\n throw new Error('Error: the payload config is required for getPayload to work.')\n }\n\n if (cached.payload) {\n const config = await options.config\n\n if (cached.reload) {\n cached.reload = false\n if (typeof cached.payload.db.destroy === 'function') {\n await cached.payload.db.destroy()\n }\n\n cached.payload.config = config\n\n cached.payload.collections = config.collections.reduce((collections, collection) => {\n collections[collection.slug] = { config: collection }\n return collections\n }, {})\n\n // TODO: re-build payload.globals as well as any other properties\n // that may change on Payload singleton\n\n await cached.payload.db.init()\n await cached.payload.db.connect({ hotReload: true })\n }\n\n return cached.payload\n }\n\n if (!cached.promise) {\n cached.promise = new BasePayload<GeneratedTypes>().init(options)\n }\n\n try {\n cached.payload = await cached.promise\n\n if (process.env.NODE_ENV !== 'production') {\n try {\n const port = process.env.PORT || '3000'\n const ws = new WebSocket(`ws://localhost:${port}/_next/webpack-hmr`)\n\n ws.onmessage = (event) => {\n if (typeof event.data === 'string') {\n const data = JSON.parse(event.data)\n\n if ('action' in data && data.action === 'serverComponentChanges') {\n cached.reload = true\n }\n }\n }\n } catch (_) {\n // swallow e\n }\n }\n } catch (e) {\n cached.promise = null\n throw e\n }\n\n return cached.payload\n}\n"],"names":["BasePayload","WebSocket","cached","global","_payload","payload","promise","getPayload","options","config","Error","reload","db","destroy","collections","reduce","collection","slug","init","connect","hotReload","process","env","NODE_ENV","port","PORT","ws","onmessage","event","data","JSON","parse","action","_","e"],"mappings":"AAGA,SAASA,WAAW,QAAQ,UAAS;AACrC,OAAOC,eAAe,KAAI;AAE1B,IAAIC,SAASC,OAAOC,QAAQ;AAE5B,IAAI,CAACF,QAAQ;IACX,2CAA2C;IAC3CA,SAASC,OAAOC,QAAQ,GAAG;QAAEC,SAAS;QAAMC,SAAS;IAAK;AAC5D;AAEA,OAAO,MAAMC,aAAa,OAAOC;IAC/B,IAAI,CAACA,SAASC,QAAQ;QACpB,MAAM,IAAIC,MAAM;IAClB;IAEA,IAAIR,OAAOG,OAAO,EAAE;QAClB,MAAMI,SAAS,MAAMD,QAAQC,MAAM;QAEnC,IAAIP,OAAOS,MAAM,EAAE;YACjBT,OAAOS,MAAM,GAAG;YAChB,IAAI,OAAOT,OAAOG,OAAO,CAACO,EAAE,CAACC,OAAO,KAAK,YAAY;gBACnD,MAAMX,OAAOG,OAAO,CAACO,EAAE,CAACC,OAAO;YACjC;YAEAX,OAAOG,OAAO,CAACI,MAAM,GAAGA;YAExBP,OAAOG,OAAO,CAACS,WAAW,GAAGL,OAAOK,WAAW,CAACC,MAAM,CAAC,CAACD,aAAaE;gBACnEF,WAAW,CAACE,WAAWC,IAAI,CAAC,GAAG;oBAAER,QAAQO;gBAAW;gBACpD,OAAOF;YACT,GAAG,CAAC;YAEJ,iEAAiE;YACjE,uCAAuC;YAEvC,MAAMZ,OAAOG,OAAO,CAACO,EAAE,CAACM,IAAI;YAC5B,MAAMhB,OAAOG,OAAO,CAACO,EAAE,CAACO,OAAO,CAAC;gBAAEC,WAAW;YAAK;QACpD;QAEA,OAAOlB,OAAOG,OAAO;IACvB;IAEA,IAAI,CAACH,OAAOI,OAAO,EAAE;QACnBJ,OAAOI,OAAO,GAAG,IAAIN,cAA8BkB,IAAI,CAACV;IAC1D;IAEA,IAAI;QACFN,OAAOG,OAAO,GAAG,MAAMH,OAAOI,OAAO;QAErC,IAAIe,QAAQC,GAAG,CAACC,QAAQ,KAAK,cAAc;YACzC,IAAI;gBACF,MAAMC,OAAOH,QAAQC,GAAG,CAACG,IAAI,IAAI;gBACjC,MAAMC,KAAK,IAAIzB,UAAU,CAAC,eAAe,EAAEuB,KAAK,kBAAkB,CAAC;gBAEnEE,GAAGC,SAAS,GAAG,CAACC;oBACd,IAAI,OAAOA,MAAMC,IAAI,KAAK,UAAU;wBAClC,MAAMA,OAAOC,KAAKC,KAAK,CAACH,MAAMC,IAAI;wBAElC,IAAI,YAAYA,QAAQA,KAAKG,MAAM,KAAK,0BAA0B;4BAChE9B,OAAOS,MAAM,GAAG;wBAClB;oBACF;gBACF;YACF,EAAE,OAAOsB,GAAG;YACV,YAAY;YACd;QACF;IACF,EAAE,OAAOC,GAAG;QACVhC,OAAOI,OAAO,GAAG;QACjB,MAAM4B;IACR;IAEA,OAAOhC,OAAOG,OAAO;AACvB,EAAC"}
|
|
@@ -6,4 +6,4 @@ export const getRequestLanguage = ({ cookies, defaultLanguage = 'en', headers })
|
|
|
6
6
|
return matchLanguage(reqLanguage);
|
|
7
7
|
};
|
|
8
8
|
|
|
9
|
-
//# sourceMappingURL=
|
|
9
|
+
//# sourceMappingURL=getRequestLanguage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/getRequestLanguage.ts"],"sourcesContent":["import type { ReadonlyRequestCookies } from 'next/dist/server/web/spec-extension/adapters/request-cookies.js'\n\nimport { matchLanguage } from '@payloadcms/translations'\n\ntype GetRequestLanguageArgs = {\n cookies: Map<string, string> | ReadonlyRequestCookies\n defaultLanguage?: string\n headers: Request['headers']\n}\n\nexport const getRequestLanguage = ({\n cookies,\n defaultLanguage = 'en',\n headers,\n}: GetRequestLanguageArgs): string => {\n const acceptLanguage = headers.get('Accept-Language')\n const cookieLanguage = cookies.get('lng')\n\n const reqLanguage =\n acceptLanguage ||\n (typeof cookieLanguage === 'string' ? cookieLanguage : cookieLanguage?.value) ||\n defaultLanguage\n\n return matchLanguage(reqLanguage)\n}\n"],"names":["matchLanguage","getRequestLanguage","cookies","defaultLanguage","headers","acceptLanguage","get","cookieLanguage","reqLanguage","value"],"mappings":"AAEA,SAASA,aAAa,QAAQ,2BAA0B;AAQxD,OAAO,MAAMC,qBAAqB,CAAC,EACjCC,OAAO,EACPC,kBAAkB,IAAI,EACtBC,OAAO,EACgB;IACvB,MAAMC,iBAAiBD,QAAQE,GAAG,CAAC;IACnC,MAAMC,iBAAiBL,QAAQI,GAAG,CAAC;IAEnC,MAAME,cACJH,kBACC,CAAA,OAAOE,mBAAmB,WAAWA,iBAAiBA,gBAAgBE,KAAI,KAC3EN;IAEF,OAAOH,cAAcQ;AACvB,EAAC"}
|
|
@@ -25,4 +25,4 @@ export function getRequestLocales({ data, localization, searchParams }) {
|
|
|
25
25
|
};
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
//# sourceMappingURL=
|
|
28
|
+
//# sourceMappingURL=getRequestLocales.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/getRequestLocales.ts"],"sourcesContent":["import type { Payload } from 'payload'\n\ntype GetRequestLocalesArgs = {\n data?: Record<string, any>\n localization: Exclude<Payload['config']['localization'], false>\n searchParams?: URLSearchParams\n}\nexport function getRequestLocales({ data, localization, searchParams }: GetRequestLocalesArgs): {\n fallbackLocale: string\n locale: string\n} {\n let locale = searchParams.get('locale')\n let fallbackLocale = searchParams.get('fallback-locale')\n\n if (data) {\n if (data?.locale) {\n locale = data.locale\n }\n if (data?.['fallback-locale']) {\n fallbackLocale = data['fallback-locale']\n }\n }\n\n if (fallbackLocale === 'none') {\n fallbackLocale = 'null'\n } else if (!localization.localeCodes.includes(fallbackLocale)) {\n fallbackLocale = localization.defaultLocale\n }\n\n if (locale === '*') {\n locale = 'all'\n } else if (!localization.localeCodes.includes(locale)) {\n locale = localization.defaultLocale\n }\n\n return {\n fallbackLocale,\n locale,\n }\n}\n"],"names":["getRequestLocales","data","localization","searchParams","locale","get","fallbackLocale","localeCodes","includes","defaultLocale"],"mappings":"AAOA,OAAO,SAASA,kBAAkB,EAAEC,IAAI,EAAEC,YAAY,EAAEC,YAAY,EAAyB;IAI3F,IAAIC,SAASD,aAAaE,GAAG,CAAC;IAC9B,IAAIC,iBAAiBH,aAAaE,GAAG,CAAC;IAEtC,IAAIJ,MAAM;QACR,IAAIA,MAAMG,QAAQ;YAChBA,SAASH,KAAKG,MAAM;QACtB;QACA,IAAIH,MAAM,CAAC,kBAAkB,EAAE;YAC7BK,iBAAiBL,IAAI,CAAC,kBAAkB;QAC1C;IACF;IAEA,IAAIK,mBAAmB,QAAQ;QAC7BA,iBAAiB;IACnB,OAAO,IAAI,CAACJ,aAAaK,WAAW,CAACC,QAAQ,CAACF,iBAAiB;QAC7DA,iBAAiBJ,aAAaO,aAAa;IAC7C;IAEA,IAAIL,WAAW,KAAK;QAClBA,SAAS;IACX,OAAO,IAAI,CAACF,aAAaK,WAAW,CAACC,QAAQ,CAACJ,SAAS;QACrDA,SAASF,aAAaO,aAAa;IACrC;IAEA,OAAO;QACLH;QACAF;IACF;AACF"}
|