@payloadcms/next 3.0.0-alpha.3 → 3.0.0-alpha.30
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 +5 -14
- package/dist/bin/install.js +16 -31
- package/dist/config.js +2 -12
- package/dist/elements/LeaveWithoutSaving/index.js +26 -76
- package/dist/elements/LeaveWithoutSaving/usePreventLeave.js +11 -29
- package/dist/exports/index.d.ts +1 -1
- package/dist/exports/index.d.ts.map +1 -1
- package/dist/exports/index.js +2 -12
- package/dist/graphql/registerSchema.js +0 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -3
- package/dist/layouts/Admin/index.js +9 -32
- package/dist/layouts/Root/index.d.ts +1 -1
- package/dist/layouts/Root/index.d.ts.map +1 -1
- package/dist/layouts/Root/index.js +36 -54
- package/dist/next-fileupload/fileFactory.d.ts +2 -2
- package/dist/next-fileupload/fileFactory.d.ts.map +1 -1
- package/dist/next-fileupload/fileFactory.js +9 -19
- package/dist/next-fileupload/handlers.d.ts +2 -2
- package/dist/next-fileupload/handlers.d.ts.map +1 -1
- package/dist/next-fileupload/handlers.js +25 -89
- package/dist/next-fileupload/index.d.ts +1 -1
- package/dist/next-fileupload/index.js +10 -25
- package/dist/next-fileupload/isEligibleRequest.js +2 -12
- package/dist/next-fileupload/processMultipart.d.ts +1 -1
- package/dist/next-fileupload/processMultipart.d.ts.map +1 -1
- package/dist/next-fileupload/processMultipart.js +33 -46
- package/dist/next-fileupload/processNested.js +4 -14
- package/dist/next-fileupload/uploadTimer.js +2 -12
- package/dist/next-fileupload/utilities.d.ts +1 -1
- package/dist/next-fileupload/utilities.d.ts.map +1 -1
- package/dist/next-fileupload/utilities.js +31 -76
- package/dist/next-stream-file/index.d.ts +4 -0
- package/dist/next-stream-file/index.d.ts.map +1 -1
- package/dist/next-stream-file/index.js +6 -21
- package/dist/routes/graphql/handler.d.ts.map +1 -1
- package/dist/routes/graphql/handler.js +19 -36
- package/dist/routes/graphql/index.d.ts +2 -2
- package/dist/routes/graphql/index.d.ts.map +1 -1
- package/dist/routes/graphql/index.js +3 -21
- package/dist/routes/graphql/playground.js +6 -16
- package/dist/routes/index.d.ts +3 -3
- package/dist/routes/index.d.ts.map +1 -1
- package/dist/routes/index.js +4 -37
- package/dist/routes/rest/RouteError.js +10 -25
- package/dist/routes/rest/[collection]/file/[filename]/route.d.ts.map +1 -1
- package/dist/routes/rest/[collection]/file/[filename]/route.js +33 -39
- package/dist/routes/rest/auth/access.d.ts +1 -1
- package/dist/routes/rest/auth/access.d.ts.map +1 -1
- package/dist/routes/rest/auth/access.js +6 -21
- package/dist/routes/rest/auth/forgotPassword.d.ts +1 -1
- package/dist/routes/rest/auth/forgotPassword.d.ts.map +1 -1
- package/dist/routes/rest/auth/forgotPassword.js +6 -21
- package/dist/routes/rest/auth/init.d.ts +1 -1
- package/dist/routes/rest/auth/init.d.ts.map +1 -1
- package/dist/routes/rest/auth/init.js +4 -14
- package/dist/routes/rest/auth/login.d.ts +1 -1
- package/dist/routes/rest/auth/login.d.ts.map +1 -1
- package/dist/routes/rest/auth/login.js +10 -25
- package/dist/routes/rest/auth/logout.d.ts +1 -1
- package/dist/routes/rest/auth/logout.d.ts.map +1 -1
- package/dist/routes/rest/auth/logout.js +9 -24
- package/dist/routes/rest/auth/me.d.ts +1 -1
- package/dist/routes/rest/auth/me.d.ts.map +1 -1
- package/dist/routes/rest/auth/me.js +8 -23
- package/dist/routes/rest/auth/refresh.d.ts +1 -1
- package/dist/routes/rest/auth/refresh.d.ts.map +1 -1
- package/dist/routes/rest/auth/refresh.js +11 -25
- package/dist/routes/rest/auth/registerFirstUser.d.ts +1 -1
- package/dist/routes/rest/auth/registerFirstUser.d.ts.map +1 -1
- package/dist/routes/rest/auth/registerFirstUser.js +8 -23
- package/dist/routes/rest/auth/resetPassword.d.ts +1 -1
- package/dist/routes/rest/auth/resetPassword.d.ts.map +1 -1
- package/dist/routes/rest/auth/resetPassword.js +8 -23
- package/dist/routes/rest/auth/unlock.d.ts +1 -1
- package/dist/routes/rest/auth/unlock.d.ts.map +1 -1
- package/dist/routes/rest/auth/unlock.js +6 -21
- package/dist/routes/rest/auth/verifyEmail.d.ts +1 -1
- package/dist/routes/rest/auth/verifyEmail.d.ts.map +1 -1
- package/dist/routes/rest/auth/verifyEmail.js +6 -21
- package/dist/routes/rest/buildFormState.js +11 -34
- package/dist/routes/rest/checkEndpoints.d.ts.map +1 -1
- package/dist/routes/rest/checkEndpoints.js +4 -19
- package/dist/routes/rest/collections/create.d.ts +1 -1
- package/dist/routes/rest/collections/create.d.ts.map +1 -1
- package/dist/routes/rest/collections/create.js +8 -23
- package/dist/routes/rest/collections/delete.d.ts +1 -1
- package/dist/routes/rest/collections/delete.d.ts.map +1 -1
- package/dist/routes/rest/collections/delete.js +14 -29
- package/dist/routes/rest/collections/deleteByID.d.ts +1 -1
- package/dist/routes/rest/collections/deleteByID.d.ts.map +1 -1
- package/dist/routes/rest/collections/deleteByID.js +9 -24
- package/dist/routes/rest/collections/docAccess.d.ts +1 -1
- package/dist/routes/rest/collections/docAccess.d.ts.map +1 -1
- package/dist/routes/rest/collections/docAccess.js +6 -21
- package/dist/routes/rest/collections/find.d.ts +1 -1
- package/dist/routes/rest/collections/find.d.ts.map +1 -1
- package/dist/routes/rest/collections/find.js +12 -27
- package/dist/routes/rest/collections/findByID.d.ts +1 -1
- package/dist/routes/rest/collections/findByID.d.ts.map +1 -1
- package/dist/routes/rest/collections/findByID.js +8 -23
- package/dist/routes/rest/collections/findVersionByID.d.ts +1 -1
- package/dist/routes/rest/collections/findVersionByID.d.ts.map +1 -1
- package/dist/routes/rest/collections/findVersionByID.js +8 -23
- package/dist/routes/rest/collections/findVersions.d.ts +1 -1
- package/dist/routes/rest/collections/findVersions.d.ts.map +1 -1
- package/dist/routes/rest/collections/findVersions.js +12 -27
- package/dist/routes/rest/collections/restoreVersion.d.ts +1 -1
- package/dist/routes/rest/collections/restoreVersion.d.ts.map +1 -1
- package/dist/routes/rest/collections/restoreVersion.js +8 -23
- package/dist/routes/rest/collections/update.d.ts +1 -1
- package/dist/routes/rest/collections/update.d.ts.map +1 -1
- package/dist/routes/rest/collections/update.js +14 -29
- package/dist/routes/rest/collections/updateByID.d.ts +1 -1
- package/dist/routes/rest/collections/updateByID.d.ts.map +1 -1
- package/dist/routes/rest/collections/updateByID.js +8 -23
- package/dist/routes/rest/globals/docAccess.d.ts +1 -1
- package/dist/routes/rest/globals/docAccess.d.ts.map +1 -1
- package/dist/routes/rest/globals/docAccess.js +6 -21
- package/dist/routes/rest/globals/findOne.d.ts +1 -1
- package/dist/routes/rest/globals/findOne.d.ts.map +1 -1
- package/dist/routes/rest/globals/findOne.js +8 -23
- package/dist/routes/rest/globals/findVersionByID.d.ts +1 -1
- package/dist/routes/rest/globals/findVersionByID.d.ts.map +1 -1
- package/dist/routes/rest/globals/findVersionByID.js +8 -23
- package/dist/routes/rest/globals/findVersions.d.ts +1 -1
- package/dist/routes/rest/globals/findVersions.d.ts.map +1 -1
- package/dist/routes/rest/globals/findVersions.js +12 -27
- package/dist/routes/rest/globals/restoreVersion.d.ts +1 -1
- package/dist/routes/rest/globals/restoreVersion.d.ts.map +1 -1
- package/dist/routes/rest/globals/restoreVersion.js +8 -23
- package/dist/routes/rest/globals/update.d.ts +1 -1
- package/dist/routes/rest/globals/update.d.ts.map +1 -1
- package/dist/routes/rest/globals/update.js +8 -23
- package/dist/routes/rest/index.d.ts.map +1 -1
- package/dist/routes/rest/index.js +91 -120
- package/dist/routes/rest/types.js +2 -5
- package/dist/utilities/auth.d.ts +3 -3
- package/dist/utilities/auth.d.ts.map +1 -1
- package/dist/utilities/auth.js +7 -21
- package/dist/utilities/createPayloadRequest.d.ts.map +1 -1
- package/dist/utilities/createPayloadRequest.js +26 -31
- package/dist/utilities/getDataAndFile.js +4 -14
- package/dist/utilities/getNextI18n.js +11 -21
- package/dist/utilities/getNextT.js +11 -21
- package/dist/utilities/getPayload.d.ts +4 -0
- package/dist/utilities/getPayload.d.ts.map +1 -0
- package/dist/utilities/getPayload.js +62 -0
- package/dist/utilities/getRequestLanguage.d.ts +1 -1
- package/dist/utilities/getRequestLanguage.d.ts.map +1 -1
- package/dist/utilities/getRequestLanguage.js +4 -14
- package/dist/utilities/getRequestLocales.js +2 -12
- package/dist/utilities/initPage.d.ts +6 -15
- package/dist/utilities/initPage.d.ts.map +1 -1
- package/dist/utilities/initPage.js +45 -45
- package/dist/utilities/meta.js +5 -15
- package/dist/utilities/timestamp.d.ts +2 -0
- package/dist/utilities/timestamp.d.ts.map +1 -0
- package/dist/utilities/timestamp.js +7 -0
- package/dist/{pages → views}/API/RenderJSON/index.d.ts.map +1 -1
- package/dist/views/API/RenderJSON/index.js +91 -0
- package/dist/views/API/index.client.d.ts +4 -0
- package/dist/views/API/index.client.d.ts.map +1 -0
- package/dist/views/API/index.client.js +178 -0
- package/dist/views/API/index.d.ts +4 -0
- package/dist/views/API/index.d.ts.map +1 -0
- package/dist/views/API/index.js +7 -0
- package/dist/{pages/LivePreview → views/API}/meta.d.ts +1 -1
- package/dist/views/API/meta.d.ts.map +1 -0
- package/dist/views/API/meta.js +11 -0
- package/dist/{pages → views}/Account/Settings/index.d.ts.map +1 -1
- package/dist/views/Account/Settings/index.js +30 -0
- package/dist/views/Account/ToggleTheme/index.d.ts.map +1 -0
- package/dist/views/Account/ToggleTheme/index.js +34 -0
- package/dist/views/Account/index.d.ts +5 -0
- package/dist/views/Account/index.d.ts.map +1 -0
- package/dist/views/Account/index.js +78 -0
- package/dist/views/Account/meta.d.ts +3 -0
- package/dist/views/Account/meta.d.ts.map +1 -0
- package/dist/views/Account/meta.js +11 -0
- package/dist/views/CreateFirstUser/index.client.d.ts +7 -0
- package/dist/views/CreateFirstUser/index.client.d.ts.map +1 -0
- package/dist/views/CreateFirstUser/index.client.js +18 -0
- package/dist/views/CreateFirstUser/index.d.ts +6 -0
- package/dist/views/CreateFirstUser/index.d.ts.map +1 -0
- package/dist/views/CreateFirstUser/index.js +51 -0
- package/dist/views/CreateFirstUser/meta.d.ts +3 -0
- package/dist/views/CreateFirstUser/meta.d.ts.map +1 -0
- package/dist/views/CreateFirstUser/meta.js +11 -0
- package/dist/{pages → views}/Dashboard/Default/index.client.d.ts +2 -0
- package/dist/views/Dashboard/Default/index.client.d.ts.map +1 -0
- package/dist/views/Dashboard/Default/index.client.js +99 -0
- package/dist/{pages → views}/Dashboard/Default/index.d.ts +2 -0
- package/dist/views/Dashboard/Default/index.d.ts.map +1 -0
- package/dist/views/Dashboard/Default/index.js +28 -0
- package/dist/views/Dashboard/index.d.ts +5 -0
- package/dist/views/Dashboard/index.d.ts.map +1 -0
- package/dist/views/Dashboard/index.js +46 -0
- package/dist/views/Dashboard/meta.d.ts +3 -0
- package/dist/views/Dashboard/meta.d.ts.map +1 -0
- package/dist/views/Dashboard/meta.js +11 -0
- package/dist/{pages → views}/Document/getCustomViewByKey.d.ts +2 -2
- package/dist/views/Document/getCustomViewByKey.d.ts.map +1 -0
- package/dist/views/Document/getCustomViewByKey.js +5 -0
- package/dist/{pages → views}/Document/getCustomViewByPath.d.ts +2 -2
- package/dist/views/Document/getCustomViewByPath.d.ts.map +1 -0
- package/dist/views/Document/getCustomViewByPath.js +16 -0
- package/dist/views/Document/getMetaBySegment.d.ts +10 -0
- package/dist/views/Document/getMetaBySegment.d.ts.map +1 -0
- package/dist/views/Document/getMetaBySegment.js +77 -0
- package/dist/{pages → views}/Document/getViewsFromConfig.d.ts +3 -3
- package/dist/views/Document/getViewsFromConfig.d.ts.map +1 -0
- package/dist/views/Document/getViewsFromConfig.js +155 -0
- package/dist/views/Document/index.d.ts +6 -0
- package/dist/views/Document/index.d.ts.map +1 -0
- package/dist/views/Document/index.js +158 -0
- package/dist/views/Document/meta.d.ts +3 -0
- package/dist/views/Document/meta.d.ts.map +1 -0
- package/dist/views/Document/meta.js +4 -0
- package/dist/{pages → views}/Edit/Default/Auth/APIKey.d.ts.map +1 -1
- package/dist/views/Edit/Default/Auth/APIKey.js +89 -0
- package/dist/{pages → views}/Edit/Default/Auth/index.d.ts +1 -1
- package/dist/{pages → views}/Edit/Default/Auth/index.d.ts.map +1 -1
- package/dist/views/Edit/Default/Auth/index.js +124 -0
- package/dist/{pages → views}/Edit/Default/Auth/types.d.ts.map +1 -1
- package/dist/views/Edit/Default/Auth/types.js +3 -0
- package/dist/views/Edit/Default/SetDocumentTitle/formatTitle.d.ts +10 -0
- package/dist/views/Edit/Default/SetDocumentTitle/formatTitle.d.ts.map +1 -0
- package/dist/views/Edit/Default/SetDocumentTitle/formatTitle.js +20 -0
- package/dist/{pages → views}/Edit/Default/SetDocumentTitle/index.d.ts +1 -1
- package/dist/{pages → views}/Edit/Default/SetDocumentTitle/index.d.ts.map +1 -1
- package/dist/views/Edit/Default/SetDocumentTitle/index.js +28 -0
- package/dist/{pages → views}/Edit/Default/SetStepNav/index.d.ts +1 -1
- package/dist/{pages → views}/Edit/Default/SetStepNav/index.d.ts.map +1 -1
- package/dist/{pages → views}/Edit/Default/SetStepNav/index.js +12 -22
- package/dist/views/Edit/Default/index.d.ts.map +1 -0
- package/dist/views/Edit/Default/index.js +145 -0
- package/dist/{pages → views}/Edit/Default/types.d.ts.map +1 -1
- package/dist/views/Edit/Default/types.js +3 -0
- package/dist/views/Edit/index.client.d.ts +3 -0
- package/dist/views/Edit/index.client.d.ts.map +1 -0
- package/dist/views/Edit/index.client.js +56 -0
- package/dist/views/Edit/index.d.ts +4 -0
- package/dist/views/Edit/index.d.ts.map +1 -0
- package/dist/views/Edit/index.js +7 -0
- package/dist/{pages/API → views/Edit}/meta.d.ts +1 -1
- package/dist/views/Edit/meta.d.ts.map +1 -0
- package/dist/views/Edit/meta.js +26 -0
- package/dist/views/Edit/sanitizeEditViewProps.d.ts +3 -0
- package/dist/views/Edit/sanitizeEditViewProps.d.ts.map +1 -0
- package/dist/views/Edit/sanitizeEditViewProps.js +11 -0
- package/dist/views/ForgotPassword/index.d.ts +6 -0
- package/dist/views/ForgotPassword/index.d.ts.map +1 -0
- package/dist/views/ForgotPassword/index.js +58 -0
- package/dist/views/ForgotPassword/meta.d.ts +7 -0
- package/dist/views/ForgotPassword/meta.d.ts.map +1 -0
- package/dist/views/ForgotPassword/meta.js +11 -0
- package/dist/{pages → views}/List/Default/Cell/cellTypes.spec.js +21 -30
- package/dist/{pages → views}/List/Default/Cell/fields/Array/index.d.ts.map +1 -1
- package/dist/views/List/Default/Cell/fields/Array/index.js +12 -0
- package/dist/{pages → views}/List/Default/Cell/fields/Blocks/index.d.ts.map +1 -1
- package/dist/views/List/Default/Cell/fields/Blocks/index.js +30 -0
- package/dist/{pages → views}/List/Default/Cell/fields/Checkbox/index.d.ts.map +1 -1
- package/dist/views/List/Default/Cell/fields/Checkbox/index.js +8 -0
- package/dist/{pages → views}/List/Default/Cell/fields/Code/index.d.ts.map +1 -1
- package/dist/views/List/Default/Cell/fields/Code/index.js +14 -0
- package/dist/{pages → views}/List/Default/Cell/fields/Date/index.d.ts.map +1 -1
- package/dist/views/List/Default/Cell/fields/Date/index.js +11 -0
- package/dist/{pages → views}/List/Default/Cell/fields/File/index.d.ts.map +1 -1
- package/dist/{pages → views}/List/Default/Cell/fields/File/index.js +8 -23
- package/dist/{pages → views}/List/Default/Cell/fields/JSON/index.d.ts.map +1 -1
- package/dist/views/List/Default/Cell/fields/JSON/index.js +11 -0
- package/dist/{pages → views}/List/Default/Cell/fields/Relationship/index.d.ts.map +1 -1
- package/dist/views/List/Default/Cell/fields/Relationship/index.js +70 -0
- package/dist/{pages → views}/List/Default/Cell/fields/Select/index.d.ts.map +1 -1
- package/dist/{pages → views}/List/Default/Cell/fields/Select/index.js +10 -25
- package/dist/{pages → views}/List/Default/Cell/fields/Textarea/index.d.ts.map +1 -1
- package/dist/views/List/Default/Cell/fields/Textarea/index.js +8 -0
- package/dist/views/List/Default/Cell/fields/index.d.ts +17 -0
- package/dist/views/List/Default/Cell/fields/index.d.ts.map +1 -0
- package/dist/views/List/Default/Cell/fields/index.js +26 -0
- package/dist/views/List/Default/Cell/index.d.ts.map +1 -0
- package/dist/views/List/Default/Cell/index.js +75 -0
- package/dist/{pages → views}/List/Default/RelationshipProvider/index.d.ts.map +1 -1
- package/dist/views/List/Default/RelationshipProvider/index.js +89 -0
- package/dist/{pages → views}/List/Default/RelationshipProvider/reducer.d.ts +1 -1
- package/dist/{pages → views}/List/Default/RelationshipProvider/reducer.d.ts.map +1 -1
- package/dist/views/List/Default/RelationshipProvider/reducer.js +45 -0
- package/dist/views/List/Default/index.d.ts.map +1 -0
- package/dist/views/List/Default/index.js +130 -0
- package/dist/{pages → views}/List/Default/types.d.ts.map +1 -1
- package/dist/views/List/Default/types.js +3 -0
- package/dist/views/List/index.d.ts +5 -0
- package/dist/views/List/index.d.ts.map +1 -0
- package/dist/views/List/index.js +70 -0
- package/dist/views/List/meta.d.ts +7 -0
- package/dist/views/List/meta.d.ts.map +1 -0
- package/dist/views/List/meta.js +19 -0
- package/dist/{pages → views}/LivePreview/Context/collisionDetection.d.ts.map +1 -1
- package/dist/{pages → views}/LivePreview/Context/collisionDetection.js +6 -14
- package/dist/{pages → views}/LivePreview/Context/context.d.ts +2 -2
- package/dist/views/LivePreview/Context/context.d.ts.map +1 -0
- package/dist/views/LivePreview/Context/context.js +40 -0
- package/dist/{pages → views}/LivePreview/Context/index.d.ts +3 -3
- package/dist/views/LivePreview/Context/index.d.ts.map +1 -0
- package/dist/views/LivePreview/Context/index.js +157 -0
- package/dist/{pages → views}/LivePreview/Context/sizeReducer.d.ts.map +1 -1
- package/dist/{pages → views}/LivePreview/Context/sizeReducer.js +2 -12
- package/dist/{pages → views}/LivePreview/Device/index.d.ts.map +1 -1
- package/dist/views/LivePreview/Device/index.js +51 -0
- package/dist/{pages → views}/LivePreview/DeviceContainer/index.d.ts.map +1 -1
- package/dist/views/LivePreview/DeviceContainer/index.js +29 -0
- package/dist/{pages → views}/LivePreview/IFrame/index.d.ts.map +1 -1
- package/dist/views/LivePreview/IFrame/index.js +23 -0
- package/dist/{pages → views}/LivePreview/Preview/index.d.ts +1 -1
- package/dist/views/LivePreview/Preview/index.d.ts.map +1 -0
- package/dist/views/LivePreview/Preview/index.js +76 -0
- package/dist/{pages → views}/LivePreview/Toolbar/Controls/index.d.ts +1 -1
- package/dist/views/LivePreview/Toolbar/Controls/index.d.ts.map +1 -0
- package/dist/views/LivePreview/Toolbar/Controls/index.js +81 -0
- package/dist/{pages → views}/LivePreview/Toolbar/SizeInput/index.d.ts.map +1 -1
- package/dist/views/LivePreview/Toolbar/SizeInput/index.js +61 -0
- package/dist/{pages → views}/LivePreview/Toolbar/index.d.ts +1 -1
- package/dist/views/LivePreview/Toolbar/index.d.ts.map +1 -0
- package/dist/views/LivePreview/Toolbar/index.js +50 -0
- package/dist/{pages → views}/LivePreview/ToolbarArea/index.d.ts.map +1 -1
- package/dist/views/LivePreview/ToolbarArea/index.js +17 -0
- package/dist/views/LivePreview/index.client.d.ts.map +1 -0
- package/dist/views/LivePreview/index.client.js +142 -0
- package/dist/views/LivePreview/index.d.ts +4 -0
- package/dist/views/LivePreview/index.d.ts.map +1 -0
- package/dist/views/LivePreview/index.js +45 -0
- package/dist/{pages/Version → views/LivePreview}/meta.d.ts +1 -1
- package/dist/views/LivePreview/meta.d.ts.map +1 -0
- package/dist/views/LivePreview/meta.js +26 -0
- package/dist/{pages → views}/LivePreview/usePopupWindow.d.ts.map +1 -1
- package/dist/{pages → views}/LivePreview/usePopupWindow.js +11 -21
- package/dist/{pages → views}/Login/LoginForm/index.d.ts.map +1 -1
- package/dist/views/Login/LoginForm/index.js +58 -0
- package/dist/views/Login/index.d.ts +7 -0
- package/dist/views/Login/index.d.ts.map +1 -0
- package/dist/views/Login/index.js +29 -0
- package/dist/views/Login/index.scss +8 -0
- package/dist/views/Login/meta.d.ts +3 -0
- package/dist/views/Login/meta.d.ts.map +1 -0
- package/dist/views/Login/meta.js +11 -0
- package/dist/views/Logout/LogoutClient.d.ts.map +1 -0
- package/dist/views/Logout/LogoutClient.js +33 -0
- package/dist/views/Logout/index.d.ts +9 -0
- package/dist/views/Logout/index.d.ts.map +1 -0
- package/dist/views/Logout/index.js +26 -0
- package/dist/views/Logout/meta.d.ts +3 -0
- package/dist/views/Logout/meta.d.ts.map +1 -0
- package/dist/views/Logout/meta.js +11 -0
- package/dist/views/NotFound/index.client.d.ts +6 -0
- package/dist/views/NotFound/index.client.d.ts.map +1 -0
- package/dist/views/NotFound/index.client.js +38 -0
- package/dist/views/NotFound/index.d.ts +12 -0
- package/dist/views/NotFound/index.d.ts.map +1 -0
- package/dist/views/NotFound/index.js +20 -0
- package/dist/views/NotFound/meta.d.ts +7 -0
- package/dist/views/NotFound/meta.d.ts.map +1 -0
- package/dist/views/NotFound/meta.js +11 -0
- package/dist/views/ResetPassword/index.d.ts +7 -0
- package/dist/views/ResetPassword/index.d.ts.map +1 -0
- package/dist/views/ResetPassword/index.js +63 -0
- package/dist/views/ResetPassword/meta.d.ts +3 -0
- package/dist/views/ResetPassword/meta.d.ts.map +1 -0
- package/dist/views/ResetPassword/meta.js +11 -0
- package/dist/views/Root/index.d.ts +31 -0
- package/dist/views/Root/index.d.ts.map +1 -0
- package/dist/views/Root/index.js +174 -0
- package/dist/views/Root/meta.d.ts +14 -0
- package/dist/views/Root/meta.d.ts.map +1 -0
- package/dist/views/Root/meta.js +159 -0
- package/dist/views/Unauthorized/UnauthorizedClient.d.ts.map +1 -0
- package/dist/views/Unauthorized/UnauthorizedClient.js +15 -0
- package/dist/views/Unauthorized/index.d.ts +5 -0
- package/dist/views/Unauthorized/index.d.ts.map +1 -0
- package/dist/views/Unauthorized/index.js +11 -0
- package/dist/views/Unauthorized/meta.d.ts +3 -0
- package/dist/views/Unauthorized/meta.d.ts.map +1 -0
- package/dist/views/Unauthorized/meta.js +11 -0
- package/dist/views/Verify/index.d.ts +7 -0
- package/dist/views/Verify/index.d.ts.map +1 -0
- package/dist/views/Verify/index.js +33 -0
- package/dist/views/Verify/meta.d.ts +3 -0
- package/dist/views/Verify/meta.d.ts.map +1 -0
- package/dist/views/Verify/meta.js +11 -0
- package/dist/{pages → views}/Version/Default/SetStepNav.d.ts.map +1 -1
- package/dist/{pages → views}/Version/Default/SetStepNav.js +13 -23
- package/dist/{pages → views}/Version/Default/index.d.ts +1 -1
- package/dist/views/Version/Default/index.d.ts.map +1 -0
- package/dist/views/Version/Default/index.js +100 -0
- package/dist/{pages → views}/Version/Default/types.d.ts +2 -7
- package/dist/views/Version/Default/types.d.ts.map +1 -0
- package/dist/views/Version/Default/types.js +3 -0
- package/dist/{pages → views}/Version/RenderFieldsToDiff/Label/index.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/Label/index.js +9 -0
- package/dist/{pages → views}/Version/RenderFieldsToDiff/fields/Iterable/index.d.ts +1 -1
- package/dist/{pages → views}/Version/RenderFieldsToDiff/fields/Iterable/index.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js +65 -0
- package/dist/{pages → views}/Version/RenderFieldsToDiff/fields/Nested/index.d.ts +1 -1
- package/dist/{pages → views}/Version/RenderFieldsToDiff/fields/Nested/index.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Nested/index.js +29 -0
- package/dist/{pages → views}/Version/RenderFieldsToDiff/fields/Relationship/index.d.ts +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.d.ts.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js +75 -0
- package/dist/{pages → views}/Version/RenderFieldsToDiff/fields/Select/DiffViewer/index.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Select/DiffViewer/index.js +18 -0
- package/dist/{pages → views}/Version/RenderFieldsToDiff/fields/Select/index.d.ts +1 -1
- package/dist/{pages → views}/Version/RenderFieldsToDiff/fields/Select/index.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js +39 -0
- package/dist/{pages → views}/Version/RenderFieldsToDiff/fields/Tabs/index.d.ts +1 -1
- package/dist/{pages → views}/Version/RenderFieldsToDiff/fields/Tabs/index.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js +39 -0
- package/dist/{pages → views}/Version/RenderFieldsToDiff/fields/Text/DiffViewer/index.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Text/DiffViewer/index.js +18 -0
- package/dist/{pages → views}/Version/RenderFieldsToDiff/fields/Text/index.d.ts +1 -1
- package/dist/{pages → views}/Version/RenderFieldsToDiff/fields/Text/index.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js +31 -0
- package/dist/{pages → views}/Version/RenderFieldsToDiff/fields/diffMethods.d.ts.map +1 -1
- package/dist/{pages → views}/Version/RenderFieldsToDiff/fields/diffMethods.js +2 -12
- package/dist/views/Version/RenderFieldsToDiff/fields/index.d.ts +25 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/index.d.ts.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/index.js +29 -0
- package/dist/{pages → views}/Version/RenderFieldsToDiff/fields/styles.d.ts.map +1 -1
- package/dist/{pages → views}/Version/RenderFieldsToDiff/fields/styles.js +2 -12
- package/dist/{pages → views}/Version/RenderFieldsToDiff/fields/types.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/types.js +3 -0
- package/dist/{pages → views}/Version/RenderFieldsToDiff/index.d.ts +1 -1
- package/dist/{pages → views}/Version/RenderFieldsToDiff/index.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/index.js +100 -0
- package/dist/{pages → views}/Version/RenderFieldsToDiff/types.d.ts +1 -1
- package/dist/{pages → views}/Version/RenderFieldsToDiff/types.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/types.js +3 -0
- package/dist/{pages → views}/Version/Restore/index.d.ts +1 -1
- package/dist/views/Version/Restore/index.d.ts.map +1 -0
- package/dist/views/Version/Restore/index.js +71 -0
- package/dist/{pages → views}/Version/Restore/types.d.ts.map +1 -1
- package/dist/views/Version/Restore/types.js +3 -0
- package/dist/{pages → views}/Version/SelectComparison/index.d.ts +1 -1
- package/dist/views/Version/SelectComparison/index.d.ts.map +1 -0
- package/dist/views/Version/SelectComparison/index.js +112 -0
- package/dist/{pages → views}/Version/SelectComparison/types.d.ts +1 -1
- package/dist/{pages → views}/Version/SelectComparison/types.d.ts.map +1 -1
- package/dist/views/Version/SelectComparison/types.js +3 -0
- package/dist/{pages → views}/Version/SelectLocales/index.d.ts +1 -1
- package/dist/views/Version/SelectLocales/index.d.ts.map +1 -0
- package/dist/views/Version/SelectLocales/index.js +33 -0
- package/dist/{pages → views}/Version/SelectLocales/types.d.ts.map +1 -1
- package/dist/views/Version/SelectLocales/types.js +3 -0
- package/dist/views/Version/index.d.ts +3 -0
- package/dist/views/Version/index.d.ts.map +1 -0
- package/dist/views/Version/index.js +89 -0
- package/dist/{pages/Edit → views/Version}/meta.d.ts +1 -1
- package/dist/views/Version/meta.d.ts.map +1 -0
- package/dist/views/Version/meta.js +37 -0
- package/dist/{pages → views}/Version/shared.d.ts.map +1 -1
- package/dist/views/Version/shared.js +10 -0
- package/dist/{pages → views}/Versions/buildColumns.d.ts.map +1 -1
- package/dist/views/Versions/buildColumns.js +54 -0
- package/dist/{pages → views}/Versions/cells/AutosaveCell/index.d.ts.map +1 -1
- package/dist/views/Versions/cells/AutosaveCell/index.js +12 -0
- package/dist/{pages → views}/Versions/cells/CreatedAt/index.d.ts.map +1 -1
- package/dist/views/Versions/cells/CreatedAt/index.js +19 -0
- package/dist/{pages → views}/Versions/cells/ID/index.d.ts.map +1 -1
- package/dist/views/Versions/cells/ID/index.js +9 -0
- package/dist/{pages → views}/Versions/index.client.d.ts +0 -3
- package/dist/views/Versions/index.client.d.ts.map +1 -0
- package/dist/views/Versions/index.client.js +93 -0
- package/dist/{pages → views}/Versions/index.d.ts +1 -1
- package/dist/views/Versions/index.d.ts.map +1 -0
- package/dist/views/Versions/index.js +87 -0
- package/dist/views/Versions/meta.d.ts +3 -0
- package/dist/views/Versions/meta.d.ts.map +1 -0
- package/dist/views/Versions/meta.js +33 -0
- package/dist/{pages → views}/Versions/types.d.ts.map +1 -1
- package/dist/views/Versions/types.js +3 -0
- package/dist/withPayload.d.ts +2 -1
- package/dist/withPayload.d.ts.map +1 -1
- package/dist/withPayload.js +3 -6
- package/package.json +27 -13
- package/src/index.ts +5 -1
- package/dist/layouts/Document/index.d.ts +0 -14
- package/dist/layouts/Document/index.d.ts.map +0 -1
- package/dist/layouts/Document/index.js +0 -82
- package/dist/pages/API/RenderJSON/index.js +0 -142
- package/dist/pages/API/index.client.d.ts +0 -5
- package/dist/pages/API/index.client.d.ts.map +0 -1
- package/dist/pages/API/index.client.js +0 -241
- package/dist/pages/API/index.d.ts +0 -4
- package/dist/pages/API/index.d.ts.map +0 -1
- package/dist/pages/API/index.js +0 -27
- package/dist/pages/API/meta.d.ts.map +0 -1
- package/dist/pages/API/meta.js +0 -21
- package/dist/pages/Account/Settings/index.js +0 -45
- package/dist/pages/Account/ToggleTheme/index.d.ts.map +0 -1
- package/dist/pages/Account/ToggleTheme/index.js +0 -87
- package/dist/pages/Account/index.d.ts +0 -13
- package/dist/pages/Account/index.d.ts.map +0 -1
- package/dist/pages/Account/index.js +0 -171
- package/dist/pages/CreateFirstUser/index.client.d.ts +0 -5
- package/dist/pages/CreateFirstUser/index.client.d.ts.map +0 -1
- package/dist/pages/CreateFirstUser/index.client.js +0 -29
- package/dist/pages/CreateFirstUser/index.d.ts +0 -11
- package/dist/pages/CreateFirstUser/index.d.ts.map +0 -1
- package/dist/pages/CreateFirstUser/index.js +0 -91
- package/dist/pages/Dashboard/Default/index.client.d.ts.map +0 -1
- package/dist/pages/Dashboard/Default/index.client.js +0 -154
- package/dist/pages/Dashboard/Default/index.d.ts.map +0 -1
- package/dist/pages/Dashboard/Default/index.js +0 -44
- package/dist/pages/Dashboard/index.d.ts +0 -13
- package/dist/pages/Dashboard/index.d.ts.map +0 -1
- package/dist/pages/Dashboard/index.js +0 -128
- package/dist/pages/Document/getCustomViewByKey.d.ts.map +0 -1
- package/dist/pages/Document/getCustomViewByKey.js +0 -15
- package/dist/pages/Document/getCustomViewByPath.d.ts.map +0 -1
- package/dist/pages/Document/getCustomViewByPath.js +0 -26
- package/dist/pages/Document/getMetaBySegment.d.ts +0 -20
- package/dist/pages/Document/getMetaBySegment.d.ts.map +0 -1
- package/dist/pages/Document/getMetaBySegment.js +0 -124
- package/dist/pages/Document/getViewsFromConfig.d.ts.map +0 -1
- package/dist/pages/Document/getViewsFromConfig.js +0 -224
- package/dist/pages/Document/index.d.ts +0 -23
- package/dist/pages/Document/index.d.ts.map +0 -1
- package/dist/pages/Document/index.js +0 -237
- package/dist/pages/Edit/Default/Auth/APIKey.js +0 -140
- package/dist/pages/Edit/Default/Auth/index.js +0 -180
- package/dist/pages/Edit/Default/Auth/types.js +0 -6
- package/dist/pages/Edit/Default/RenderCustomView.d.ts +0 -2
- package/dist/pages/Edit/Default/RenderCustomView.d.ts.map +0 -1
- package/dist/pages/Edit/Default/RenderCustomView.js +0 -3
- package/dist/pages/Edit/Default/SetDocumentTitle/index.js +0 -50
- package/dist/pages/Edit/Default/index.d.ts.map +0 -1
- package/dist/pages/Edit/Default/index.js +0 -202
- package/dist/pages/Edit/Default/types.js +0 -6
- package/dist/pages/Edit/index.client.d.ts +0 -4
- package/dist/pages/Edit/index.client.d.ts.map +0 -1
- package/dist/pages/Edit/index.client.js +0 -99
- package/dist/pages/Edit/index.d.ts +0 -4
- package/dist/pages/Edit/index.d.ts.map +0 -1
- package/dist/pages/Edit/index.js +0 -27
- package/dist/pages/Edit/meta.d.ts.map +0 -1
- package/dist/pages/Edit/meta.js +0 -36
- package/dist/pages/Edit/sanitizeEditViewProps.d.ts +0 -4
- package/dist/pages/Edit/sanitizeEditViewProps.d.ts.map +0 -1
- package/dist/pages/Edit/sanitizeEditViewProps.js +0 -24
- package/dist/pages/Edit/types.d.js +0 -7
- package/dist/pages/Edit/types.d.ts +0 -37
- package/dist/pages/Edit/types.d.ts.map +0 -1
- package/dist/pages/Edit/types.js +0 -6
- package/dist/pages/ForgotPassword/index.d.ts +0 -10
- package/dist/pages/ForgotPassword/index.d.ts.map +0 -1
- package/dist/pages/ForgotPassword/index.js +0 -101
- package/dist/pages/List/Default/Cell/fields/Array/index.js +0 -27
- package/dist/pages/List/Default/Cell/fields/Blocks/index.js +0 -45
- package/dist/pages/List/Default/Cell/fields/Checkbox/index.js +0 -23
- package/dist/pages/List/Default/Cell/fields/Code/index.js +0 -29
- package/dist/pages/List/Default/Cell/fields/Date/index.js +0 -26
- package/dist/pages/List/Default/Cell/fields/JSON/index.js +0 -26
- package/dist/pages/List/Default/Cell/fields/Relationship/index.js +0 -121
- package/dist/pages/List/Default/Cell/fields/Richtext/index.d.ts +0 -2
- package/dist/pages/List/Default/Cell/fields/Richtext/index.d.ts.map +0 -1
- package/dist/pages/List/Default/Cell/fields/Richtext/index.js +0 -3
- package/dist/pages/List/Default/Cell/fields/Textarea/index.js +0 -23
- package/dist/pages/List/Default/Cell/fields/index.d.ts +0 -17
- package/dist/pages/List/Default/Cell/fields/index.d.ts.map +0 -1
- package/dist/pages/List/Default/Cell/fields/index.js +0 -36
- package/dist/pages/List/Default/Cell/index.d.ts.map +0 -1
- package/dist/pages/List/Default/Cell/index.js +0 -89
- package/dist/pages/List/Default/RelationshipProvider/index.js +0 -153
- package/dist/pages/List/Default/RelationshipProvider/reducer.js +0 -55
- package/dist/pages/List/Default/index.d.ts.map +0 -1
- package/dist/pages/List/Default/index.js +0 -174
- package/dist/pages/List/Default/types.js +0 -6
- package/dist/pages/List/index.d.ts +0 -18
- package/dist/pages/List/index.d.ts.map +0 -1
- package/dist/pages/List/index.js +0 -158
- package/dist/pages/LivePreview/Context/context.d.ts.map +0 -1
- package/dist/pages/LivePreview/Context/context.js +0 -58
- package/dist/pages/LivePreview/Context/index.d.ts.map +0 -1
- package/dist/pages/LivePreview/Context/index.js +0 -208
- package/dist/pages/LivePreview/Device/index.js +0 -102
- package/dist/pages/LivePreview/DeviceContainer/index.js +0 -44
- package/dist/pages/LivePreview/IFrame/index.js +0 -74
- package/dist/pages/LivePreview/Preview/index.d.ts.map +0 -1
- package/dist/pages/LivePreview/Preview/index.js +0 -127
- package/dist/pages/LivePreview/Toolbar/Controls/index.d.ts.map +0 -1
- package/dist/pages/LivePreview/Toolbar/Controls/index.js +0 -96
- package/dist/pages/LivePreview/Toolbar/SizeInput/index.js +0 -112
- package/dist/pages/LivePreview/Toolbar/index.d.ts.map +0 -1
- package/dist/pages/LivePreview/Toolbar/index.js +0 -65
- package/dist/pages/LivePreview/ToolbarArea/index.js +0 -32
- package/dist/pages/LivePreview/index.client.d.ts.map +0 -1
- package/dist/pages/LivePreview/index.client.js +0 -195
- package/dist/pages/LivePreview/index.d.ts +0 -5
- package/dist/pages/LivePreview/index.d.ts.map +0 -1
- package/dist/pages/LivePreview/index.js +0 -59
- package/dist/pages/LivePreview/meta.d.ts.map +0 -1
- package/dist/pages/LivePreview/meta.js +0 -36
- package/dist/pages/Login/LoginForm/index.js +0 -67
- package/dist/pages/Login/index.d.ts +0 -14
- package/dist/pages/Login/index.d.ts.map +0 -1
- package/dist/pages/Login/index.js +0 -108
- package/dist/pages/Login/index.scss +0 -38
- package/dist/pages/Logout/LogoutClient.d.ts.map +0 -1
- package/dist/pages/Logout/LogoutClient.js +0 -88
- package/dist/pages/Logout/index.d.ts +0 -16
- package/dist/pages/Logout/index.d.ts.map +0 -1
- package/dist/pages/Logout/index.js +0 -61
- package/dist/pages/NotFound/index.d.ts +0 -7
- package/dist/pages/NotFound/index.d.ts.map +0 -1
- package/dist/pages/NotFound/index.js +0 -48
- package/dist/pages/ResetPassword/index.d.ts +0 -12
- package/dist/pages/ResetPassword/index.d.ts.map +0 -1
- package/dist/pages/ResetPassword/index.js +0 -99
- package/dist/pages/Root/index.d.ts +0 -5
- package/dist/pages/Root/index.d.ts.map +0 -1
- package/dist/pages/Root/index.js +0 -17
- package/dist/pages/Unauthorized/UnauthorizedClient.d.ts.map +0 -1
- package/dist/pages/Unauthorized/UnauthorizedClient.js +0 -27
- package/dist/pages/Unauthorized/index.d.ts +0 -10
- package/dist/pages/Unauthorized/index.d.ts.map +0 -1
- package/dist/pages/Unauthorized/index.js +0 -51
- package/dist/pages/Verify/index.d.ts +0 -13
- package/dist/pages/Verify/index.d.ts.map +0 -1
- package/dist/pages/Verify/index.js +0 -90
- package/dist/pages/Version/Default/index.d.ts.map +0 -1
- package/dist/pages/Version/Default/index.js +0 -157
- package/dist/pages/Version/Default/types.d.ts.map +0 -1
- package/dist/pages/Version/Default/types.js +0 -6
- package/dist/pages/Version/RenderFieldsToDiff/Label/index.js +0 -24
- package/dist/pages/Version/RenderFieldsToDiff/fields/Iterable/index.js +0 -80
- package/dist/pages/Version/RenderFieldsToDiff/fields/Nested/index.js +0 -44
- package/dist/pages/Version/RenderFieldsToDiff/fields/Relationship/index.d.ts.map +0 -1
- package/dist/pages/Version/RenderFieldsToDiff/fields/Relationship/index.js +0 -89
- package/dist/pages/Version/RenderFieldsToDiff/fields/Select/DiffViewer/index.js +0 -72
- package/dist/pages/Version/RenderFieldsToDiff/fields/Select/index.js +0 -54
- package/dist/pages/Version/RenderFieldsToDiff/fields/Tabs/index.js +0 -54
- package/dist/pages/Version/RenderFieldsToDiff/fields/Text/DiffViewer/index.js +0 -72
- package/dist/pages/Version/RenderFieldsToDiff/fields/Text/index.js +0 -46
- package/dist/pages/Version/RenderFieldsToDiff/fields/index.d.ts +0 -25
- package/dist/pages/Version/RenderFieldsToDiff/fields/index.d.ts.map +0 -1
- package/dist/pages/Version/RenderFieldsToDiff/fields/index.js +0 -44
- package/dist/pages/Version/RenderFieldsToDiff/fields/types.js +0 -6
- package/dist/pages/Version/RenderFieldsToDiff/index.js +0 -115
- package/dist/pages/Version/RenderFieldsToDiff/types.js +0 -6
- package/dist/pages/Version/Restore/index.d.ts.map +0 -1
- package/dist/pages/Version/Restore/index.js +0 -121
- package/dist/pages/Version/Restore/types.js +0 -6
- package/dist/pages/Version/SelectComparison/index.d.ts.map +0 -1
- package/dist/pages/Version/SelectComparison/index.js +0 -167
- package/dist/pages/Version/SelectComparison/types.js +0 -6
- package/dist/pages/Version/SelectLocales/index.d.ts.map +0 -1
- package/dist/pages/Version/SelectLocales/index.js +0 -47
- package/dist/pages/Version/SelectLocales/types.js +0 -6
- package/dist/pages/Version/index.d.ts +0 -4
- package/dist/pages/Version/index.d.ts.map +0 -1
- package/dist/pages/Version/index.js +0 -111
- package/dist/pages/Version/meta.d.ts.map +0 -1
- package/dist/pages/Version/meta.js +0 -47
- package/dist/pages/Version/shared.js +0 -28
- package/dist/pages/Versions/buildColumns.js +0 -69
- package/dist/pages/Versions/cells/AutosaveCell/index.js +0 -63
- package/dist/pages/Versions/cells/CreatedAt/index.js +0 -33
- package/dist/pages/Versions/cells/ID/index.js +0 -60
- package/dist/pages/Versions/index.client.d.ts.map +0 -1
- package/dist/pages/Versions/index.client.js +0 -142
- package/dist/pages/Versions/index.d.ts.map +0 -1
- package/dist/pages/Versions/index.js +0 -125
- package/dist/pages/Versions/meta.d.ts +0 -3
- package/dist/pages/Versions/meta.d.ts.map +0 -1
- package/dist/pages/Versions/meta.js +0 -43
- package/dist/pages/Versions/types.js +0 -6
- package/dist/utilities/createClientConfig.d.ts +0 -5
- package/dist/utilities/createClientConfig.d.ts.map +0 -1
- package/dist/utilities/createClientConfig.js +0 -120
- /package/dist/{pages → views}/API/RenderJSON/index.d.ts +0 -0
- /package/dist/{pages → views}/API/RenderJSON/index.scss +0 -0
- /package/dist/{pages → views}/API/index.scss +0 -0
- /package/dist/{pages → views}/Account/Settings/index.d.ts +0 -0
- /package/dist/{pages → views}/Account/Settings/index.scss +0 -0
- /package/dist/{pages → views}/Account/ToggleTheme/index.d.ts +0 -0
- /package/dist/{pages → views}/CreateFirstUser/index.scss +0 -0
- /package/dist/{pages → views}/Dashboard/Default/index.scss +0 -0
- /package/dist/{pages → views}/Edit/Default/Auth/APIKey.d.ts +0 -0
- /package/dist/{pages → views}/Edit/Default/Auth/index.scss +0 -0
- /package/dist/{pages → views}/Edit/Default/Auth/types.d.ts +0 -0
- /package/dist/{pages → views}/Edit/Default/index.d.ts +0 -0
- /package/dist/{pages → views}/Edit/Default/index.scss +0 -0
- /package/dist/{pages → views}/Edit/Default/types.d.ts +0 -0
- /package/dist/{pages → views}/List/Default/Cell/fields/Array/index.d.ts +0 -0
- /package/dist/{pages → views}/List/Default/Cell/fields/Blocks/index.d.ts +0 -0
- /package/dist/{pages → views}/List/Default/Cell/fields/Checkbox/index.d.ts +0 -0
- /package/dist/{pages → views}/List/Default/Cell/fields/Checkbox/index.scss +0 -0
- /package/dist/{pages → views}/List/Default/Cell/fields/Code/index.d.ts +0 -0
- /package/dist/{pages → views}/List/Default/Cell/fields/Code/index.scss +0 -0
- /package/dist/{pages → views}/List/Default/Cell/fields/Date/index.d.ts +0 -0
- /package/dist/{pages → views}/List/Default/Cell/fields/File/index.d.ts +0 -0
- /package/dist/{pages → views}/List/Default/Cell/fields/File/index.scss +0 -0
- /package/dist/{pages → views}/List/Default/Cell/fields/JSON/index.d.ts +0 -0
- /package/dist/{pages → views}/List/Default/Cell/fields/JSON/index.scss +0 -0
- /package/dist/{pages → views}/List/Default/Cell/fields/Relationship/index.d.ts +0 -0
- /package/dist/{pages → views}/List/Default/Cell/fields/Relationship/index.scss +0 -0
- /package/dist/{pages → views}/List/Default/Cell/fields/Select/index.d.ts +0 -0
- /package/dist/{pages → views}/List/Default/Cell/fields/Textarea/index.d.ts +0 -0
- /package/dist/{pages → views}/List/Default/Cell/index.d.ts +0 -0
- /package/dist/{pages → views}/List/Default/RelationshipProvider/index.d.ts +0 -0
- /package/dist/{pages → views}/List/Default/index.d.ts +0 -0
- /package/dist/{pages → views}/List/Default/index.scss +0 -0
- /package/dist/{pages → views}/List/Default/types.d.ts +0 -0
- /package/dist/{pages → views}/LivePreview/Context/collisionDetection.d.ts +0 -0
- /package/dist/{pages → views}/LivePreview/Context/sizeReducer.d.ts +0 -0
- /package/dist/{pages → views}/LivePreview/Device/index.d.ts +0 -0
- /package/dist/{pages → views}/LivePreview/DeviceContainer/index.d.ts +0 -0
- /package/dist/{pages → views}/LivePreview/IFrame/index.d.ts +0 -0
- /package/dist/{pages → views}/LivePreview/IFrame/index.scss +0 -0
- /package/dist/{pages → views}/LivePreview/Preview/index.scss +0 -0
- /package/dist/{pages → views}/LivePreview/Toolbar/Controls/index.scss +0 -0
- /package/dist/{pages → views}/LivePreview/Toolbar/SizeInput/index.d.ts +0 -0
- /package/dist/{pages → views}/LivePreview/Toolbar/SizeInput/index.scss +0 -0
- /package/dist/{pages → views}/LivePreview/Toolbar/index.scss +0 -0
- /package/dist/{pages → views}/LivePreview/ToolbarArea/index.d.ts +0 -0
- /package/dist/{pages → views}/LivePreview/ToolbarArea/index.scss +0 -0
- /package/dist/{pages → views}/LivePreview/index.client.d.ts +0 -0
- /package/dist/{pages → views}/LivePreview/index.scss +0 -0
- /package/dist/{pages → views}/LivePreview/usePopupWindow.d.ts +0 -0
- /package/dist/{pages → views}/Login/LoginForm/index.d.ts +0 -0
- /package/dist/{pages → views}/Login/LoginForm/index.scss +0 -0
- /package/dist/{pages → views}/Logout/LogoutClient.d.ts +0 -0
- /package/dist/{pages → views}/Logout/index.scss +0 -0
- /package/dist/{pages → views}/NotFound/index.scss +0 -0
- /package/dist/{pages → views}/ResetPassword/index.scss +0 -0
- /package/dist/{pages → views}/Unauthorized/UnauthorizedClient.d.ts +0 -0
- /package/dist/{pages → views}/Verify/index.scss +0 -0
- /package/dist/{pages → views}/Version/Default/SetStepNav.d.ts +0 -0
- /package/dist/{pages → views}/Version/Default/index.scss +0 -0
- /package/dist/{pages → views}/Version/RenderFieldsToDiff/Label/index.d.ts +0 -0
- /package/dist/{pages → views}/Version/RenderFieldsToDiff/Label/index.scss +0 -0
- /package/dist/{pages → views}/Version/RenderFieldsToDiff/fields/Iterable/index.scss +0 -0
- /package/dist/{pages → views}/Version/RenderFieldsToDiff/fields/Nested/index.scss +0 -0
- /package/dist/{pages → views}/Version/RenderFieldsToDiff/fields/Relationship/index.scss +0 -0
- /package/dist/{pages → views}/Version/RenderFieldsToDiff/fields/Select/DiffViewer/index.d.ts +0 -0
- /package/dist/{pages → views}/Version/RenderFieldsToDiff/fields/Select/index.scss +0 -0
- /package/dist/{pages → views}/Version/RenderFieldsToDiff/fields/Text/DiffViewer/index.d.ts +0 -0
- /package/dist/{pages → views}/Version/RenderFieldsToDiff/fields/Text/index.scss +0 -0
- /package/dist/{pages → views}/Version/RenderFieldsToDiff/fields/diffMethods.d.ts +0 -0
- /package/dist/{pages → views}/Version/RenderFieldsToDiff/fields/styles.d.ts +0 -0
- /package/dist/{pages → views}/Version/RenderFieldsToDiff/fields/types.d.ts +0 -0
- /package/dist/{pages → views}/Version/RenderFieldsToDiff/index.scss +0 -0
- /package/dist/{pages → views}/Version/Restore/index.scss +0 -0
- /package/dist/{pages → views}/Version/Restore/types.d.ts +0 -0
- /package/dist/{pages → views}/Version/SelectComparison/index.scss +0 -0
- /package/dist/{pages → views}/Version/SelectLocales/index.scss +0 -0
- /package/dist/{pages → views}/Version/SelectLocales/types.d.ts +0 -0
- /package/dist/{pages → views}/Version/shared.d.ts +0 -0
- /package/dist/{pages → views}/Versions/buildColumns.d.ts +0 -0
- /package/dist/{pages → views}/Versions/cells/AutosaveCell/index.d.ts +0 -0
- /package/dist/{pages → views}/Versions/cells/CreatedAt/index.d.ts +0 -0
- /package/dist/{pages → views}/Versions/cells/ID/index.d.ts +0 -0
- /package/dist/{pages → views}/Versions/index.scss +0 -0
- /package/dist/{pages → views}/Versions/types.d.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processMultipart.d.ts","sourceRoot":"","sources":["../../src/next-fileupload/processMultipart.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"processMultipart.d.ts","sourceRoot":"","sources":["../../src/next-fileupload/processMultipart.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AAU/E,KAAK,gBAAgB,GAAG,CAAC,IAAI,EAAE;IAC7B,OAAO,EAAE,qBAAqB,CAAA;IAC9B,OAAO,EAAE,OAAO,CAAA;CACjB,KAAK,OAAO,CAAC,sBAAsB,CAAC,CAAA;AACrC,eAAO,MAAM,gBAAgB,EAAE,gBAqJ9B,CAAA"}
|
|
@@ -1,27 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
return processMultipart;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _busboy = /*#__PURE__*/ _interop_require_default(require("busboy"));
|
|
12
|
-
const _errors = require("payload/errors");
|
|
13
|
-
const _fileFactory = require("./fileFactory");
|
|
14
|
-
const _handlers = require("./handlers");
|
|
15
|
-
const _processNested = require("./processNested");
|
|
16
|
-
const _uploadTimer = require("./uploadTimer");
|
|
17
|
-
const _utilities = require("./utilities");
|
|
18
|
-
function _interop_require_default(obj) {
|
|
19
|
-
return obj && obj.__esModule ? obj : {
|
|
20
|
-
default: obj
|
|
21
|
-
};
|
|
22
|
-
}
|
|
1
|
+
import Busboy from 'busboy';
|
|
2
|
+
import { APIError } from 'payload/errors';
|
|
3
|
+
import { fileFactory } from './fileFactory.js';
|
|
4
|
+
import { memHandler, tempFileHandler } from './handlers.js';
|
|
5
|
+
import { processNested } from './processNested.js';
|
|
6
|
+
import { createUploadTimer } from './uploadTimer.js';
|
|
7
|
+
import { buildFields, debugLog, isFunc, parseFileName } from './utilities.js';
|
|
23
8
|
const waitFlushProperty = Symbol('wait flush property symbol');
|
|
24
|
-
const processMultipart = async ({ options, request })=>{
|
|
9
|
+
export const processMultipart = async ({ options, request })=>{
|
|
25
10
|
let parsingRequest = true;
|
|
26
11
|
const result = {
|
|
27
12
|
fields: undefined,
|
|
@@ -31,37 +16,37 @@ const processMultipart = async ({ options, request })=>{
|
|
|
31
16
|
request.headers.forEach((value, name)=>{
|
|
32
17
|
headersObject[name] = value;
|
|
33
18
|
});
|
|
34
|
-
const busboy = (
|
|
19
|
+
const busboy = Busboy({
|
|
35
20
|
...options,
|
|
36
21
|
headers: headersObject
|
|
37
22
|
});
|
|
38
23
|
// Build multipart req.body fields
|
|
39
24
|
busboy.on('field', (field, val)=>{
|
|
40
|
-
result.fields =
|
|
25
|
+
result.fields = buildFields(result.fields, field, val);
|
|
41
26
|
});
|
|
42
27
|
// Build req.files fields
|
|
43
28
|
busboy.on('file', (field, file, info)=>{
|
|
44
29
|
// Parse file name(cutting huge names, decoding, etc..).
|
|
45
30
|
const { encoding, filename: name, mimeType: mime } = info;
|
|
46
|
-
const filename =
|
|
31
|
+
const filename = parseFileName(options, name);
|
|
47
32
|
// Define methods and handlers for upload process.
|
|
48
|
-
const { cleanup, complete, dataHandler, getFilePath, getFileSize, getHash, getWritePromise } = options.useTempFiles ?
|
|
49
|
-
:
|
|
33
|
+
const { cleanup, complete, dataHandler, getFilePath, getFileSize, getHash, getWritePromise } = options.useTempFiles ? tempFileHandler(options, field, filename) // Upload into temporary file.
|
|
34
|
+
: memHandler(options, field, filename) // Upload into RAM.
|
|
50
35
|
;
|
|
51
36
|
const writePromise = options.useTempFiles ? getWritePromise().catch((err)=>{
|
|
52
37
|
busboy.end();
|
|
53
38
|
cleanup();
|
|
54
39
|
}) : getWritePromise();
|
|
55
|
-
const uploadTimer =
|
|
40
|
+
const uploadTimer = createUploadTimer(options.uploadTimeout, ()=>{
|
|
56
41
|
file.removeAllListeners('data');
|
|
57
42
|
file.resume();
|
|
58
43
|
const err = new Error(`Upload timeout for ${field}->${filename}, bytes:${getFileSize()}`);
|
|
59
44
|
return file.destroy(err);
|
|
60
45
|
});
|
|
61
46
|
file.on('limit', ()=>{
|
|
62
|
-
|
|
47
|
+
debugLog(options, `Size limit reached for ${field}->${filename}, bytes:${getFileSize()}`);
|
|
63
48
|
uploadTimer.clear();
|
|
64
|
-
if (
|
|
49
|
+
if (isFunc(options.limitHandler)) {
|
|
65
50
|
options.limitHandler({
|
|
66
51
|
request,
|
|
67
52
|
size: getFileSize()
|
|
@@ -69,10 +54,10 @@ const processMultipart = async ({ options, request })=>{
|
|
|
69
54
|
}
|
|
70
55
|
// Return error and cleanup files if abortOnLimit set.
|
|
71
56
|
if (options.abortOnLimit) {
|
|
72
|
-
|
|
57
|
+
debugLog(options, `Aborting upload because of size limit ${field}->${filename}.`);
|
|
73
58
|
cleanup();
|
|
74
59
|
parsingRequest = false;
|
|
75
|
-
throw new
|
|
60
|
+
throw new APIError(options.responseOnLimit, 413, {
|
|
76
61
|
size: getFileSize()
|
|
77
62
|
});
|
|
78
63
|
}
|
|
@@ -83,16 +68,16 @@ const processMultipart = async ({ options, request })=>{
|
|
|
83
68
|
});
|
|
84
69
|
file.on('end', ()=>{
|
|
85
70
|
const size = getFileSize();
|
|
86
|
-
|
|
71
|
+
debugLog(options, `Upload finished ${field}->${filename}, bytes:${size}`);
|
|
87
72
|
uploadTimer.clear();
|
|
88
73
|
if (!name && size === 0) {
|
|
89
74
|
if (options.useTempFiles) {
|
|
90
75
|
cleanup();
|
|
91
|
-
|
|
76
|
+
debugLog(options, `Removing the empty file ${field}->${filename}`);
|
|
92
77
|
}
|
|
93
|
-
return
|
|
78
|
+
return debugLog(options, `Don't add file instance if original name and size are empty`);
|
|
94
79
|
}
|
|
95
|
-
result.files =
|
|
80
|
+
result.files = buildFields(result.files, field, fileFactory({
|
|
96
81
|
name: filename,
|
|
97
82
|
buffer: complete(),
|
|
98
83
|
encoding,
|
|
@@ -109,17 +94,17 @@ const processMultipart = async ({ options, request })=>{
|
|
|
109
94
|
});
|
|
110
95
|
file.on('error', (err)=>{
|
|
111
96
|
uploadTimer.clear();
|
|
112
|
-
|
|
97
|
+
debugLog(options, `File Error: ${err.message}`);
|
|
113
98
|
cleanup();
|
|
114
99
|
});
|
|
115
|
-
|
|
100
|
+
debugLog(options, `New upload started ${field}->${filename}, bytes:${getFileSize()}`);
|
|
116
101
|
uploadTimer.set();
|
|
117
102
|
});
|
|
118
103
|
busboy.on('finish', ()=>{
|
|
119
|
-
|
|
104
|
+
debugLog(options, `Busboy finished parsing request.`);
|
|
120
105
|
if (options.parseNested) {
|
|
121
|
-
result.fields =
|
|
122
|
-
result.files =
|
|
106
|
+
result.fields = processNested(result.fields);
|
|
107
|
+
result.files = processNested(result.files);
|
|
123
108
|
}
|
|
124
109
|
if (request[waitFlushProperty]) {
|
|
125
110
|
Promise.all(request[waitFlushProperty]).then(()=>{
|
|
@@ -128,9 +113,9 @@ const processMultipart = async ({ options, request })=>{
|
|
|
128
113
|
}
|
|
129
114
|
});
|
|
130
115
|
busboy.on('error', (err)=>{
|
|
131
|
-
|
|
116
|
+
debugLog(options, `Busboy error`);
|
|
132
117
|
parsingRequest = false;
|
|
133
|
-
throw new
|
|
118
|
+
throw new APIError('Busboy error parsing multipart request', 500);
|
|
134
119
|
});
|
|
135
120
|
const reader = request.body.getReader();
|
|
136
121
|
while(parsingRequest){
|
|
@@ -138,9 +123,11 @@ const processMultipart = async ({ options, request })=>{
|
|
|
138
123
|
if (done) {
|
|
139
124
|
parsingRequest = false;
|
|
140
125
|
}
|
|
141
|
-
|
|
126
|
+
if (value) {
|
|
127
|
+
busboy.write(value);
|
|
128
|
+
}
|
|
142
129
|
}
|
|
143
130
|
return result;
|
|
144
131
|
};
|
|
145
132
|
|
|
146
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9uZXh0LWZpbGV1cGxvYWQvcHJvY2Vzc011bHRpcGFydC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQnVzYm95IGZyb20gJ2J1c2JveSdcbmltcG9ydCB7IEFQSUVycm9yIH0gZnJvbSAncGF5bG9hZC9lcnJvcnMnXG5cbmltcG9ydCB0eXBlIHsgTmV4dEZpbGVVcGxvYWRPcHRpb25zLCBOZXh0RmlsZVVwbG9hZFJlc3BvbnNlIH0gZnJvbSAnLidcblxuaW1wb3J0IHsgZmlsZUZhY3RvcnkgfSBmcm9tICcuL2ZpbGVGYWN0b3J5J1xuaW1wb3J0IHsgbWVtSGFuZGxlciwgdGVtcEZpbGVIYW5kbGVyIH0gZnJvbSAnLi9oYW5kbGVycydcbmltcG9ydCB7IHByb2Nlc3NOZXN0ZWQgfSBmcm9tICcuL3Byb2Nlc3NOZXN0ZWQnXG5pbXBvcnQgeyBjcmVhdGVVcGxvYWRUaW1lciB9IGZyb20gJy4vdXBsb2FkVGltZXInXG5pbXBvcnQgeyBidWlsZEZpZWxkcywgZGVidWdMb2csIGlzRnVuYywgcGFyc2VGaWxlTmFtZSB9IGZyb20gJy4vdXRpbGl0aWVzJ1xuXG5jb25zdCB3YWl0Rmx1c2hQcm9wZXJ0eSA9IFN5bWJvbCgnd2FpdCBmbHVzaCBwcm9wZXJ0eSBzeW1ib2wnKVxuXG50eXBlIFByb2Nlc3NNdWx0aXBhcnQgPSAoYXJnczoge1xuICBvcHRpb25zOiBOZXh0RmlsZVVwbG9hZE9wdGlvbnNcbiAgcmVxdWVzdDogUmVxdWVzdFxufSkgPT4gUHJvbWlzZTxOZXh0RmlsZVVwbG9hZFJlc3BvbnNlPlxuZXhwb3J0IGNvbnN0IHByb2Nlc3NNdWx0aXBhcnQ6IFByb2Nlc3NNdWx0aXBhcnQgPSBhc3luYyAoeyBvcHRpb25zLCByZXF1ZXN0IH0pID0+IHtcbiAgbGV0IHBhcnNpbmdSZXF1ZXN0ID0gdHJ1ZVxuICBjb25zdCByZXN1bHQ6IE5leHRGaWxlVXBsb2FkUmVzcG9uc2UgPSB7XG4gICAgZmllbGRzOiB1bmRlZmluZWQsXG4gICAgZmlsZXM6IHVuZGVmaW5lZCxcbiAgfVxuXG4gIGNvbnN0IGhlYWRlcnNPYmplY3QgPSB7fVxuICByZXF1ZXN0LmhlYWRlcnMuZm9yRWFjaCgodmFsdWUsIG5hbWUpID0+IHtcbiAgICBoZWFkZXJzT2JqZWN0W25hbWVdID0gdmFsdWVcbiAgfSlcblxuICBjb25zdCBidXNib3kgPSBCdXNib3koeyAuLi5vcHRpb25zLCBoZWFkZXJzOiBoZWFkZXJzT2JqZWN0IH0pXG5cbiAgLy8gQnVpbGQgbXVsdGlwYXJ0IHJlcS5ib2R5IGZpZWxkc1xuICBidXNib3kub24oJ2ZpZWxkJywgKGZpZWxkLCB2YWwpID0+IHtcbiAgICByZXN1bHQuZmllbGRzID0gYnVpbGRGaWVsZHMocmVzdWx0LmZpZWxkcywgZmllbGQsIHZhbClcbiAgfSlcblxuICAvLyBCdWlsZCByZXEuZmlsZXMgZmllbGRzXG4gIGJ1c2JveS5vbignZmlsZScsIChmaWVsZCwgZmlsZSwgaW5mbykgPT4ge1xuICAgIC8vIFBhcnNlIGZpbGUgbmFtZShjdXR0aW5nIGh1Z2UgbmFtZXMsIGRlY29kaW5nLCBldGMuLikuXG4gICAgY29uc3QgeyBlbmNvZGluZywgZmlsZW5hbWU6IG5hbWUsIG1pbWVUeXBlOiBtaW1lIH0gPSBpbmZvXG4gICAgY29uc3QgZmlsZW5hbWUgPSBwYXJzZUZpbGVOYW1lKG9wdGlvbnMsIG5hbWUpXG5cbiAgICAvLyBEZWZpbmUgbWV0aG9kcyBhbmQgaGFuZGxlcnMgZm9yIHVwbG9hZCBwcm9jZXNzLlxuICAgIGNvbnN0IHsgY2xlYW51cCwgY29tcGxldGUsIGRhdGFIYW5kbGVyLCBnZXRGaWxlUGF0aCwgZ2V0RmlsZVNpemUsIGdldEhhc2gsIGdldFdyaXRlUHJvbWlzZSB9ID1cbiAgICAgIG9wdGlvbnMudXNlVGVtcEZpbGVzXG4gICAgICAgID8gdGVtcEZpbGVIYW5kbGVyKG9wdGlvbnMsIGZpZWxkLCBmaWxlbmFtZSkgLy8gVXBsb2FkIGludG8gdGVtcG9yYXJ5IGZpbGUuXG4gICAgICAgIDogbWVtSGFuZGxlcihvcHRpb25zLCBmaWVsZCwgZmlsZW5hbWUpIC8vIFVwbG9hZCBpbnRvIFJBTS5cblxuICAgIGNvbnN0IHdyaXRlUHJvbWlzZSA9IG9wdGlvbnMudXNlVGVtcEZpbGVzXG4gICAgICA/IGdldFdyaXRlUHJvbWlzZSgpLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgICBidXNib3kuZW5kKClcbiAgICAgICAgICBjbGVhbnVwKClcbiAgICAgICAgfSlcbiAgICAgIDogZ2V0V3JpdGVQcm9taXNlKClcblxuICAgIGNvbnN0IHVwbG9hZFRpbWVyID0gY3JlYXRlVXBsb2FkVGltZXIob3B0aW9ucy51cGxvYWRUaW1lb3V0LCAoKSA9PiB7XG4gICAgICBmaWxlLnJlbW92ZUFsbExpc3RlbmVycygnZGF0YScpXG4gICAgICBmaWxlLnJlc3VtZSgpXG4gICAgICBjb25zdCBlcnIgPSBuZXcgRXJyb3IoYFVwbG9hZCB0aW1lb3V0IGZvciAke2ZpZWxkfS0+JHtmaWxlbmFtZX0sIGJ5dGVzOiR7Z2V0RmlsZVNpemUoKX1gKVxuICAgICAgcmV0dXJuIGZpbGUuZGVzdHJveShlcnIpXG4gICAgfSlcblxuICAgIGZpbGUub24oJ2xpbWl0JywgKCkgPT4ge1xuICAgICAgZGVidWdMb2cob3B0aW9ucywgYFNpemUgbGltaXQgcmVhY2hlZCBmb3IgJHtmaWVsZH0tPiR7ZmlsZW5hbWV9LCBieXRlczoke2dldEZpbGVTaXplKCl9YClcbiAgICAgIHVwbG9hZFRpbWVyLmNsZWFyKClcblxuICAgICAgaWYgKGlzRnVuYyhvcHRpb25zLmxpbWl0SGFuZGxlcikpIHtcbiAgICAgICAgb3B0aW9ucy5saW1pdEhhbmRsZXIoeyByZXF1ZXN0LCBzaXplOiBnZXRGaWxlU2l6ZSgpIH0pXG4gICAgICB9XG5cbiAgICAgIC8vIFJldHVybiBlcnJvciBhbmQgY2xlYW51cCBmaWxlcyBpZiBhYm9ydE9uTGltaXQgc2V0LlxuICAgICAgaWYgKG9wdGlvbnMuYWJvcnRPbkxpbWl0KSB7XG4gICAgICAgIGRlYnVnTG9nKG9wdGlvbnMsIGBBYm9ydGluZyB1cGxvYWQgYmVjYXVzZSBvZiBzaXplIGxpbWl0ICR7ZmllbGR9LT4ke2ZpbGVuYW1lfS5gKVxuICAgICAgICBjbGVhbnVwKClcbiAgICAgICAgcGFyc2luZ1JlcXVlc3QgPSBmYWxzZVxuICAgICAgICB0aHJvdyBuZXcgQVBJRXJyb3Iob3B0aW9ucy5yZXNwb25zZU9uTGltaXQsIDQxMywgeyBzaXplOiBnZXRGaWxlU2l6ZSgpIH0pXG4gICAgICB9XG4gICAgfSlcblxuICAgIGZpbGUub24oJ2RhdGEnLCAoZGF0YSkgPT4ge1xuICAgICAgdXBsb2FkVGltZXIuc2V0KClcbiAgICAgIGRhdGFIYW5kbGVyKGRhdGEpXG4gICAgfSlcblxuICAgIGZpbGUub24oJ2VuZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHNpemUgPSBnZXRGaWxlU2l6ZSgpXG4gICAgICBkZWJ1Z0xvZyhvcHRpb25zLCBgVXBsb2FkIGZpbmlzaGVkICR7ZmllbGR9LT4ke2ZpbGVuYW1lfSwgYnl0ZXM6JHtzaXplfWApXG4gICAgICB1cGxvYWRUaW1lci5jbGVhcigpXG5cbiAgICAgIGlmICghbmFtZSAmJiBzaXplID09PSAwKSB7XG4gICAgICAgIGlmIChvcHRpb25zLnVzZVRlbXBGaWxlcykge1xuICAgICAgICAgIGNsZWFudXAoKVxuICAgICAgICAgIGRlYnVnTG9nKG9wdGlvbnMsIGBSZW1vdmluZyB0aGUgZW1wdHkgZmlsZSAke2ZpZWxkfS0+JHtmaWxlbmFtZX1gKVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkZWJ1Z0xvZyhvcHRpb25zLCBgRG9uJ3QgYWRkIGZpbGUgaW5zdGFuY2UgaWYgb3JpZ2luYWwgbmFtZSBhbmQgc2l6ZSBhcmUgZW1wdHlgKVxuICAgICAgfVxuXG4gICAgICByZXN1bHQuZmlsZXMgPSBidWlsZEZpZWxkcyhcbiAgICAgICAgcmVzdWx0LmZpbGVzLFxuICAgICAgICBmaWVsZCxcbiAgICAgICAgZmlsZUZhY3RvcnkoXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogZmlsZW5hbWUsXG4gICAgICAgICAgICBidWZmZXI6IGNvbXBsZXRlKCksXG4gICAgICAgICAgICBlbmNvZGluZyxcbiAgICAgICAgICAgIGhhc2g6IGdldEhhc2goKSxcbiAgICAgICAgICAgIG1pbWV0eXBlOiBtaW1lLFxuICAgICAgICAgICAgc2l6ZSxcbiAgICAgICAgICAgIHRlbXBGaWxlUGF0aDogZ2V0RmlsZVBhdGgoKSxcbiAgICAgICAgICAgIHRydW5jYXRlZDogQm9vbGVhbigndHJ1bmNhdGVkJyBpbiBmaWxlICYmIGZpbGUudHJ1bmNhdGVkKSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIG9wdGlvbnMsXG4gICAgICAgICksXG4gICAgICApXG5cbiAgICAgIGlmICghcmVxdWVzdFt3YWl0Rmx1c2hQcm9wZXJ0eV0pIHtcbiAgICAgICAgcmVxdWVzdFt3YWl0Rmx1c2hQcm9wZXJ0eV0gPSBbXVxuICAgICAgfVxuICAgICAgcmVxdWVzdFt3YWl0Rmx1c2hQcm9wZXJ0eV0ucHVzaCh3cml0ZVByb21pc2UpXG4gICAgfSlcblxuICAgIGZpbGUub24oJ2Vycm9yJywgKGVycikgPT4ge1xuICAgICAgdXBsb2FkVGltZXIuY2xlYXIoKVxuICAgICAgZGVidWdMb2cob3B0aW9ucywgYEZpbGUgRXJyb3I6ICR7ZXJyLm1lc3NhZ2V9YClcbiAgICAgIGNsZWFudXAoKVxuICAgIH0pXG5cbiAgICBkZWJ1Z0xvZyhvcHRpb25zLCBgTmV3IHVwbG9hZCBzdGFydGVkICR7ZmllbGR9LT4ke2ZpbGVuYW1lfSwgYnl0ZXM6JHtnZXRGaWxlU2l6ZSgpfWApXG4gICAgdXBsb2FkVGltZXIuc2V0KClcbiAgfSlcblxuICBidXNib3kub24oJ2ZpbmlzaCcsICgpID0+IHtcbiAgICBkZWJ1Z0xvZyhvcHRpb25zLCBgQnVzYm95IGZpbmlzaGVkIHBhcnNpbmcgcmVxdWVzdC5gKVxuICAgIGlmIChvcHRpb25zLnBhcnNlTmVzdGVkKSB7XG4gICAgICByZXN1bHQuZmllbGRzID0gcHJvY2Vzc05lc3RlZChyZXN1bHQuZmllbGRzKVxuICAgICAgcmVzdWx0LmZpbGVzID0gcHJvY2Vzc05lc3RlZChyZXN1bHQuZmlsZXMpXG4gICAgfVxuXG4gICAgaWYgKHJlcXVlc3Rbd2FpdEZsdXNoUHJvcGVydHldKSB7XG4gICAgICBQcm9taXNlLmFsbChyZXF1ZXN0W3dhaXRGbHVzaFByb3BlcnR5XSkudGhlbigoKSA9PiB7XG4gICAgICAgIGRlbGV0ZSByZXF1ZXN0W3dhaXRGbHVzaFByb3BlcnR5XVxuICAgICAgfSlcbiAgICB9XG4gIH0pXG5cbiAgYnVzYm95Lm9uKCdlcnJvcicsIChlcnIpID0+IHtcbiAgICBkZWJ1Z0xvZyhvcHRpb25zLCBgQnVzYm95IGVycm9yYClcbiAgICBwYXJzaW5nUmVxdWVzdCA9IGZhbHNlXG4gICAgdGhyb3cgbmV3IEFQSUVycm9yKCdCdXNib3kgZXJyb3IgcGFyc2luZyBtdWx0aXBhcnQgcmVxdWVzdCcsIDUwMClcbiAgfSlcblxuICBjb25zdCByZWFkZXIgPSByZXF1ZXN0LmJvZHkuZ2V0UmVhZGVyKClcblxuICB3aGlsZSAocGFyc2luZ1JlcXVlc3QpIHtcbiAgICBjb25zdCB7IGRvbmUsIHZhbHVlIH0gPSBhd2FpdCByZWFkZXIucmVhZCgpXG5cbiAgICBpZiAoZG9uZSkge1xuICAgICAgcGFyc2luZ1JlcXVlc3QgPSBmYWxzZVxuICAgIH1cblxuICAgIGJ1c2JveS53cml0ZSh2YWx1ZSlcbiAgfVxuXG4gIHJldHVybiByZXN1bHRcbn1cbiJdLCJuYW1lcyI6WyJwcm9jZXNzTXVsdGlwYXJ0Iiwid2FpdEZsdXNoUHJvcGVydHkiLCJTeW1ib2wiLCJvcHRpb25zIiwicmVxdWVzdCIsInBhcnNpbmdSZXF1ZXN0IiwicmVzdWx0IiwiZmllbGRzIiwidW5kZWZpbmVkIiwiZmlsZXMiLCJoZWFkZXJzT2JqZWN0IiwiaGVhZGVycyIsImZvckVhY2giLCJ2YWx1ZSIsIm5hbWUiLCJidXNib3kiLCJCdXNib3kiLCJvbiIsImZpZWxkIiwidmFsIiwiYnVpbGRGaWVsZHMiLCJmaWxlIiwiaW5mbyIsImVuY29kaW5nIiwiZmlsZW5hbWUiLCJtaW1lVHlwZSIsIm1pbWUiLCJwYXJzZUZpbGVOYW1lIiwiY2xlYW51cCIsImNvbXBsZXRlIiwiZGF0YUhhbmRsZXIiLCJnZXRGaWxlUGF0aCIsImdldEZpbGVTaXplIiwiZ2V0SGFzaCIsImdldFdyaXRlUHJvbWlzZSIsInVzZVRlbXBGaWxlcyIsInRlbXBGaWxlSGFuZGxlciIsIm1lbUhhbmRsZXIiLCJ3cml0ZVByb21pc2UiLCJjYXRjaCIsImVyciIsImVuZCIsInVwbG9hZFRpbWVyIiwiY3JlYXRlVXBsb2FkVGltZXIiLCJ1cGxvYWRUaW1lb3V0IiwicmVtb3ZlQWxsTGlzdGVuZXJzIiwicmVzdW1lIiwiRXJyb3IiLCJkZXN0cm95IiwiZGVidWdMb2ciLCJjbGVhciIsImlzRnVuYyIsImxpbWl0SGFuZGxlciIsInNpemUiLCJhYm9ydE9uTGltaXQiLCJBUElFcnJvciIsInJlc3BvbnNlT25MaW1pdCIsImRhdGEiLCJzZXQiLCJmaWxlRmFjdG9yeSIsImJ1ZmZlciIsImhhc2giLCJtaW1ldHlwZSIsInRlbXBGaWxlUGF0aCIsInRydW5jYXRlZCIsIkJvb2xlYW4iLCJwdXNoIiwibWVzc2FnZSIsInBhcnNlTmVzdGVkIiwicHJvY2Vzc05lc3RlZCIsIlByb21pc2UiLCJhbGwiLCJ0aGVuIiwicmVhZGVyIiwiYm9keSIsImdldFJlYWRlciIsImRvbmUiLCJyZWFkIiwid3JpdGUiXSwibWFwcGluZ3MiOiI7Ozs7K0JBaUJhQTs7O2VBQUFBOzs7K0RBakJNO3dCQUNNOzZCQUlHOzBCQUNnQjsrQkFDZDs2QkFDSTsyQkFDMkI7Ozs7OztBQUU3RCxNQUFNQyxvQkFBb0JDLE9BQU87QUFNMUIsTUFBTUYsbUJBQXFDLE9BQU8sRUFBRUcsT0FBTyxFQUFFQyxPQUFPLEVBQUU7SUFDM0UsSUFBSUMsaUJBQWlCO0lBQ3JCLE1BQU1DLFNBQWlDO1FBQ3JDQyxRQUFRQztRQUNSQyxPQUFPRDtJQUNUO0lBRUEsTUFBTUUsZ0JBQWdCLENBQUM7SUFDdkJOLFFBQVFPLE9BQU8sQ0FBQ0MsT0FBTyxD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
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9uZXh0LWZpbGV1cGxvYWQvcHJvY2Vzc011bHRpcGFydC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQnVzYm95IGZyb20gJ2J1c2JveSdcbmltcG9ydCB7IEFQSUVycm9yIH0gZnJvbSAncGF5bG9hZC9lcnJvcnMnXG5cbmltcG9ydCB0eXBlIHsgTmV4dEZpbGVVcGxvYWRPcHRpb25zLCBOZXh0RmlsZVVwbG9hZFJlc3BvbnNlIH0gZnJvbSAnLi9pbmRleC5qcydcblxuaW1wb3J0IHsgZmlsZUZhY3RvcnkgfSBmcm9tICcuL2ZpbGVGYWN0b3J5LmpzJ1xuaW1wb3J0IHsgbWVtSGFuZGxlciwgdGVtcEZpbGVIYW5kbGVyIH0gZnJvbSAnLi9oYW5kbGVycy5qcydcbmltcG9ydCB7IHByb2Nlc3NOZXN0ZWQgfSBmcm9tICcuL3Byb2Nlc3NOZXN0ZWQuanMnXG5pbXBvcnQgeyBjcmVhdGVVcGxvYWRUaW1lciB9IGZyb20gJy4vdXBsb2FkVGltZXIuanMnXG5pbXBvcnQgeyBidWlsZEZpZWxkcywgZGVidWdMb2csIGlzRnVuYywgcGFyc2VGaWxlTmFtZSB9IGZyb20gJy4vdXRpbGl0aWVzLmpzJ1xuXG5jb25zdCB3YWl0Rmx1c2hQcm9wZXJ0eSA9IFN5bWJvbCgnd2FpdCBmbHVzaCBwcm9wZXJ0eSBzeW1ib2wnKVxuXG50eXBlIFByb2Nlc3NNdWx0aXBhcnQgPSAoYXJnczoge1xuICBvcHRpb25zOiBOZXh0RmlsZVVwbG9hZE9wdGlvbnNcbiAgcmVxdWVzdDogUmVxdWVzdFxufSkgPT4gUHJvbWlzZTxOZXh0RmlsZVVwbG9hZFJlc3BvbnNlPlxuZXhwb3J0IGNvbnN0IHByb2Nlc3NNdWx0aXBhcnQ6IFByb2Nlc3NNdWx0aXBhcnQgPSBhc3luYyAoeyBvcHRpb25zLCByZXF1ZXN0IH0pID0+IHtcbiAgbGV0IHBhcnNpbmdSZXF1ZXN0ID0gdHJ1ZVxuICBjb25zdCByZXN1bHQ6IE5leHRGaWxlVXBsb2FkUmVzcG9uc2UgPSB7XG4gICAgZmllbGRzOiB1bmRlZmluZWQsXG4gICAgZmlsZXM6IHVuZGVmaW5lZCxcbiAgfVxuXG4gIGNvbnN0IGhlYWRlcnNPYmplY3QgPSB7fVxuICByZXF1ZXN0LmhlYWRlcnMuZm9yRWFjaCgodmFsdWUsIG5hbWUpID0+IHtcbiAgICBoZWFkZXJzT2JqZWN0W25hbWVdID0gdmFsdWVcbiAgfSlcblxuICBjb25zdCBidXNib3kgPSBCdXNib3koeyAuLi5vcHRpb25zLCBoZWFkZXJzOiBoZWFkZXJzT2JqZWN0IH0pXG5cbiAgLy8gQnVpbGQgbXVsdGlwYXJ0IHJlcS5ib2R5IGZpZWxkc1xuICBidXNib3kub24oJ2ZpZWxkJywgKGZpZWxkLCB2YWwpID0+IHtcbiAgICByZXN1bHQuZmllbGRzID0gYnVpbGRGaWVsZHMocmVzdWx0LmZpZWxkcywgZmllbGQsIHZhbClcbiAgfSlcblxuICAvLyBCdWlsZCByZXEuZmlsZXMgZmllbGRzXG4gIGJ1c2JveS5vbignZmlsZScsIChmaWVsZCwgZmlsZSwgaW5mbykgPT4ge1xuICAgIC8vIFBhcnNlIGZpbGUgbmFtZShjdXR0aW5nIGh1Z2UgbmFtZXMsIGRlY29kaW5nLCBldGMuLikuXG4gICAgY29uc3QgeyBlbmNvZGluZywgZmlsZW5hbWU6IG5hbWUsIG1pbWVUeXBlOiBtaW1lIH0gPSBpbmZvXG4gICAgY29uc3QgZmlsZW5hbWUgPSBwYXJzZUZpbGVOYW1lKG9wdGlvbnMsIG5hbWUpXG5cbiAgICAvLyBEZWZpbmUgbWV0aG9kcyBhbmQgaGFuZGxlcnMgZm9yIHVwbG9hZCBwcm9jZXNzLlxuICAgIGNvbnN0IHsgY2xlYW51cCwgY29tcGxldGUsIGRhdGFIYW5kbGVyLCBnZXRGaWxlUGF0aCwgZ2V0RmlsZVNpemUsIGdldEhhc2gsIGdldFdyaXRlUHJvbWlzZSB9ID1cbiAgICAgIG9wdGlvbnMudXNlVGVtcEZpbGVzXG4gICAgICAgID8gdGVtcEZpbGVIYW5kbGVyKG9wdGlvbnMsIGZpZWxkLCBmaWxlbmFtZSkgLy8gVXBsb2FkIGludG8gdGVtcG9yYXJ5IGZpbGUuXG4gICAgICAgIDogbWVtSGFuZGxlcihvcHRpb25zLCBmaWVsZCwgZmlsZW5hbWUpIC8vIFVwbG9hZCBpbnRvIFJBTS5cblxuICAgIGNvbnN0IHdyaXRlUHJvbWlzZSA9IG9wdGlvbnMudXNlVGVtcEZpbGVzXG4gICAgICA/IGdldFdyaXRlUHJvbWlzZSgpLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgICBidXNib3kuZW5kKClcbiAgICAgICAgICBjbGVhbnVwKClcbiAgICAgICAgfSlcbiAgICAgIDogZ2V0V3JpdGVQcm9taXNlKClcblxuICAgIGNvbnN0IHVwbG9hZFRpbWVyID0gY3JlYXRlVXBsb2FkVGltZXIob3B0aW9ucy51cGxvYWRUaW1lb3V0LCAoKSA9PiB7XG4gICAgICBmaWxlLnJlbW92ZUFsbExpc3RlbmVycygnZGF0YScpXG4gICAgICBmaWxlLnJlc3VtZSgpXG4gICAgICBjb25zdCBlcnIgPSBuZXcgRXJyb3IoYFVwbG9hZCB0aW1lb3V0IGZvciAke2ZpZWxkfS0+JHtmaWxlbmFtZX0sIGJ5dGVzOiR7Z2V0RmlsZVNpemUoKX1gKVxuICAgICAgcmV0dXJuIGZpbGUuZGVzdHJveShlcnIpXG4gICAgfSlcblxuICAgIGZpbGUub24oJ2xpbWl0JywgKCkgPT4ge1xuICAgICAgZGVidWdMb2cob3B0aW9ucywgYFNpemUgbGltaXQgcmVhY2hlZCBmb3IgJHtmaWVsZH0tPiR7ZmlsZW5hbWV9LCBieXRlczoke2dldEZpbGVTaXplKCl9YClcbiAgICAgIHVwbG9hZFRpbWVyLmNsZWFyKClcblxuICAgICAgaWYgKGlzRnVuYyhvcHRpb25zLmxpbWl0SGFuZGxlcikpIHtcbiAgICAgICAgb3B0aW9ucy5saW1pdEhhbmRsZXIoeyByZXF1ZXN0LCBzaXplOiBnZXRGaWxlU2l6ZSgpIH0pXG4gICAgICB9XG5cbiAgICAgIC8vIFJldHVybiBlcnJvciBhbmQgY2xlYW51cCBmaWxlcyBpZiBhYm9ydE9uTGltaXQgc2V0LlxuICAgICAgaWYgKG9wdGlvbnMuYWJvcnRPbkxpbWl0KSB7XG4gICAgICAgIGRlYnVnTG9nKG9wdGlvbnMsIGBBYm9ydGluZyB1cGxvYWQgYmVjYXVzZSBvZiBzaXplIGxpbWl0ICR7ZmllbGR9LT4ke2ZpbGVuYW1lfS5gKVxuICAgICAgICBjbGVhbnVwKClcbiAgICAgICAgcGFyc2luZ1JlcXVlc3QgPSBmYWxzZVxuICAgICAgICB0aHJvdyBuZXcgQVBJRXJyb3Iob3B0aW9ucy5yZXNwb25zZU9uTGltaXQsIDQxMywgeyBzaXplOiBnZXRGaWxlU2l6ZSgpIH0pXG4gICAgICB9XG4gICAgfSlcblxuICAgIGZpbGUub24oJ2RhdGEnLCAoZGF0YSkgPT4ge1xuICAgICAgdXBsb2FkVGltZXIuc2V0KClcbiAgICAgIGRhdGFIYW5kbGVyKGRhdGEpXG4gICAgfSlcblxuICAgIGZpbGUub24oJ2VuZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHNpemUgPSBnZXRGaWxlU2l6ZSgpXG4gICAgICBkZWJ1Z0xvZyhvcHRpb25zLCBgVXBsb2FkIGZpbmlzaGVkICR7ZmllbGR9LT4ke2ZpbGVuYW1lfSwgYnl0ZXM6JHtzaXplfWApXG4gICAgICB1cGxvYWRUaW1lci5jbGVhcigpXG5cbiAgICAgIGlmICghbmFtZSAmJiBzaXplID09PSAwKSB7XG4gICAgICAgIGlmIChvcHRpb25zLnVzZVRlbXBGaWxlcykge1xuICAgICAgICAgIGNsZWFudXAoKVxuICAgICAgICAgIGRlYnVnTG9nKG9wdGlvbnMsIGBSZW1vdmluZyB0aGUgZW1wdHkgZmlsZSAke2ZpZWxkfS0+JHtmaWxlbmFtZX1gKVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkZWJ1Z0xvZyhvcHRpb25zLCBgRG9uJ3QgYWRkIGZpbGUgaW5zdGFuY2UgaWYgb3JpZ2luYWwgbmFtZSBhbmQgc2l6ZSBhcmUgZW1wdHlgKVxuICAgICAgfVxuXG4gICAgICByZXN1bHQuZmlsZXMgPSBidWlsZEZpZWxkcyhcbiAgICAgICAgcmVzdWx0LmZpbGVzLFxuICAgICAgICBmaWVsZCxcbiAgICAgICAgZmlsZUZhY3RvcnkoXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogZmlsZW5hbWUsXG4gICAgICAgICAgICBidWZmZXI6IGNvbXBsZXRlKCksXG4gICAgICAgICAgICBlbmNvZGluZyxcbiAgICAgICAgICAgIGhhc2g6IGdldEhhc2goKSxcbiAgICAgICAgICAgIG1pbWV0eXBlOiBtaW1lLFxuICAgICAgICAgICAgc2l6ZSxcbiAgICAgICAgICAgIHRlbXBGaWxlUGF0aDogZ2V0RmlsZVBhdGgoKSxcbiAgICAgICAgICAgIHRydW5jYXRlZDogQm9vbGVhbigndHJ1bmNhdGVkJyBpbiBmaWxlICYmIGZpbGUudHJ1bmNhdGVkKSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIG9wdGlvbnMsXG4gICAgICAgICksXG4gICAgICApXG5cbiAgICAgIGlmICghcmVxdWVzdFt3YWl0Rmx1c2hQcm9wZXJ0eV0pIHtcbiAgICAgICAgcmVxdWVzdFt3YWl0Rmx1c2hQcm9wZXJ0eV0gPSBbXVxuICAgICAgfVxuICAgICAgcmVxdWVzdFt3YWl0Rmx1c2hQcm9wZXJ0eV0ucHVzaCh3cml0ZVByb21pc2UpXG4gICAgfSlcblxuICAgIGZpbGUub24oJ2Vycm9yJywgKGVycikgPT4ge1xuICAgICAgdXBsb2FkVGltZXIuY2xlYXIoKVxuICAgICAgZGVidWdMb2cob3B0aW9ucywgYEZpbGUgRXJyb3I6ICR7ZXJyLm1lc3NhZ2V9YClcbiAgICAgIGNsZWFudXAoKVxuICAgIH0pXG5cbiAgICBkZWJ1Z0xvZyhvcHRpb25zLCBgTmV3IHVwbG9hZCBzdGFydGVkICR7ZmllbGR9LT4ke2ZpbGVuYW1lfSwgYnl0ZXM6JHtnZXRGaWxlU2l6ZSgpfWApXG4gICAgdXBsb2FkVGltZXIuc2V0KClcbiAgfSlcblxuICBidXNib3kub24oJ2ZpbmlzaCcsICgpID0+IHtcbiAgICBkZWJ1Z0xvZyhvcHRpb25zLCBgQnVzYm95IGZpbmlzaGVkIHBhcnNpbmcgcmVxdWVzdC5gKVxuICAgIGlmIChvcHRpb25zLnBhcnNlTmVzdGVkKSB7XG4gICAgICByZXN1bHQuZmllbGRzID0gcHJvY2Vzc05lc3RlZChyZXN1bHQuZmllbGRzKVxuICAgICAgcmVzdWx0LmZpbGVzID0gcHJvY2Vzc05lc3RlZChyZXN1bHQuZmlsZXMpXG4gICAgfVxuXG4gICAgaWYgKHJlcXVlc3Rbd2FpdEZsdXNoUHJvcGVydHldKSB7XG4gICAgICBQcm9taXNlLmFsbChyZXF1ZXN0W3dhaXRGbHVzaFByb3BlcnR5XSkudGhlbigoKSA9PiB7XG4gICAgICAgIGRlbGV0ZSByZXF1ZXN0W3dhaXRGbHVzaFByb3BlcnR5XVxuICAgICAgfSlcbiAgICB9XG4gIH0pXG5cbiAgYnVzYm95Lm9uKCdlcnJvcicsIChlcnIpID0+IHtcbiAgICBkZWJ1Z0xvZyhvcHRpb25zLCBgQnVzYm95IGVycm9yYClcbiAgICBwYXJzaW5nUmVxdWVzdCA9IGZhbHNlXG4gICAgdGhyb3cgbmV3IEFQSUVycm9yKCdCdXNib3kgZXJyb3IgcGFyc2luZyBtdWx0aXBhcnQgcmVxdWVzdCcsIDUwMClcbiAgfSlcblxuICBjb25zdCByZWFkZXIgPSByZXF1ZXN0LmJvZHkuZ2V0UmVhZGVyKClcblxuICB3aGlsZSAocGFyc2luZ1JlcXVlc3QpIHtcbiAgICBjb25zdCB7IGRvbmUsIHZhbHVlIH0gPSBhd2FpdCByZWFkZXIucmVhZCgpXG5cbiAgICBpZiAoZG9uZSkge1xuICAgICAgcGFyc2luZ1JlcXVlc3QgPSBmYWxzZVxuICAgIH1cblxuICAgIGlmICh2YWx1ZSkge1xuICAgICAgYnVzYm95LndyaXRlKHZhbHVlKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXN1bHRcbn1cbiJdLCJuYW1lcyI6WyJCdXNib3kiLCJBUElFcnJvciIsImZpbGVGYWN0b3J5IiwibWVtSGFuZGxlciIsInRlbXBGaWxlSGFuZGxlciIsInByb2Nlc3NOZXN0ZWQiLCJjcmVhdGVVcGxvYWRUaW1lciIsImJ1aWxkRmllbGRzIiwiZGVidWdMb2ciLCJpc0Z1bmMiLCJwYXJzZUZpbGVOYW1lIiwid2FpdEZsdXNoUHJvcGVydHkiLCJTeW1ib2wiLCJwcm9jZXNzTXVsdGlwYXJ0Iiwib3B0aW9ucyIsInJlcXVlc3QiLCJwYXJzaW5nUmVxdWVzdCIsInJlc3VsdCIsImZpZWxkcyIsInVuZGVmaW5lZCIsImZpbGVzIiwiaGVhZGVyc09iamVjdCIsImhlYWRlcnMiLCJmb3JFYWNoIiwidmFsdWUiLCJuYW1lIiwiYnVzYm95Iiwib24iLCJmaWVsZCIsInZhbCIsImZpbGUiLCJpbmZvIiwiZW5jb2RpbmciLCJmaWxlbmFtZSIsIm1pbWVUeXBlIiwibWltZSIsImNsZWFudXAiLCJjb21wbGV0ZSIsImRhdGFIYW5kbGVyIiwiZ2V0RmlsZVBhdGgiLCJnZXRGaWxlU2l6ZSIsImdldEhhc2giLCJnZXRXcml0ZVByb21pc2UiLCJ1c2VUZW1wRmlsZXMiLCJ3cml0ZVByb21pc2UiLCJjYXRjaCIsImVyciIsImVuZCIsInVwbG9hZFRpbWVyIiwidXBsb2FkVGltZW91dCIsInJlbW92ZUFsbExpc3RlbmVycyIsInJlc3VtZSIsIkVycm9yIiwiZGVzdHJveSIsImNsZWFyIiwibGltaXRIYW5kbGVyIiwic2l6ZSIsImFib3J0T25MaW1pdCIsInJlc3BvbnNlT25MaW1pdCIsImRhdGEiLCJzZXQiLCJidWZmZXIiLCJoYXNoIiwibWltZXR5cGUiLCJ0ZW1wRmlsZVBhdGgiLCJ0cnVuY2F0ZWQiLCJCb29sZWFuIiwicHVzaCIsIm1lc3NhZ2UiLCJwYXJzZU5lc3RlZCIsIlByb21pc2UiLCJhbGwiLCJ0aGVuIiwicmVhZGVyIiwiYm9keSIsImdldFJlYWRlciIsImRvbmUiLCJyZWFkIiwid3JpdGUiXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLFlBQVksU0FBUTtBQUMzQixTQUFTQyxRQUFRLFFBQVEsaUJBQWdCO0FBSXpDLFNBQVNDLFdBQVcsUUFBUSxtQkFBa0I7QUFDOUMsU0FBU0MsVUFBVSxFQUFFQyxlQUFlLFFBQVEsZ0JBQWU7QUFDM0QsU0FBU0MsYUFBYSxRQUFRLHFCQUFvQjtBQUNsRCxTQUFTQyxpQkFBaUIsUUFBUSxtQkFBa0I7QUFDcEQsU0FBU0MsV0FBVyxFQUFFQyxRQUFRLEVBQUVDLE1BQU0sRUFBRUMsYUFBYSxRQUFRLGlCQUFnQjtBQUU3RSxNQUFNQyxvQkFBb0JDLE9BQU87QUFNakMsT0FBTyxNQUFNQyxtQkFBcUMsT0FBTyxFQUFFQyxPQUFPLEVBQUVDLE9BQU8sRUFBRTtJQUMzRSxJQUFJQyxpQkFBaUI7SUFDckIsTUFBTUMsU0FBaUM7UUFDckNDLFFBQVFDO1FBQ1JDLE9BQU9EO0lBQ1Q7SUFFQSxNQUFNRSxnQkFBZ0IsQ0FBQztJQUN2Qk4sUUFBUU8sT0FBTyxDQUFDQyxPQUFPLENBQUMsQ0FBQ0MsT0FBT0M7UUFDOUJKLGFBQWEsQ0FBQ0ksS0FBSyxHQUFHRDtJQUN4QjtJQUVBLE1BQU1FLFNBQVMxQixPQUFPO1FBQUUsR0FBR2MsT0FBTztRQUFFUSxTQUFTRDtJQUFjO0lBRTNELGtDQUFrQztJQUNsQ0ssT0FBT0MsRUFBRSxDQUFDLFNBQVMsQ0FBQ0MsT0FBT0M7UUFDekJaLE9BQU9DLE1BQU0sR0FBR1gsWUFBWVUsT0FBT0MsTUFBTSxFQUFFVSxPQUFPQztJQUNwRDtJQUVBLHlCQUF5QjtJQUN6QkgsT0FBT0MsRUFBRSxDQUFDLFFBQVEsQ0FBQ0MsT0FBT0UsTUFBTUM7UUFDOUIsd0RBQXdEO1FBQ3hELE1BQU0sRUFBRUMsUUFBUSxFQUFFQyxVQUFVUixJQUFJLEVBQUVTLFVBQVVDLElBQUksRUFBRSxHQUFHSjtRQUNyRCxNQUFNRSxXQUFXdkIsY0FBY0ksU0FBU1c7UUFFeEMsa0RBQWtEO1FBQ2xELE1BQU0sRUFBRVcsT0FBTyxFQUFFQyxRQUFRLEVBQUVDLFdBQVcsRUFBRUMsV0FBVyxFQUFFQyxXQUFXLEVBQUVDLE9BQU8sRUFBRUMsZUFBZSxFQUFFLEdBQzFGNUIsUUFBUTZCLFlBQVksR0FDaEJ2QyxnQkFBZ0JVLFNBQVNjLE9BQU9LLFVBQVUsOEJBQThCO1dBQ3hFOUIsV0FBV1csU0FBU2MsT0FBT0ssVUFBVSxtQkFBbUI7O1FBRTlELE1BQU1XLGVBQWU5QixRQUFRNkIsWUFBWSxHQUNyQ0Qsa0JBQWtCRyxLQUFLLENBQUMsQ0FBQ0M7WUFDdkJwQixPQUFPcUIsR0FBRztZQUNWWDtRQUNGLEtBQ0FNO1FBRUosTUFBTU0sY0FBYzFDLGtCQUFrQlEsUUFBUW1DLGFBQWEsRUFBRTtZQUMzRG5CLEtBQUtvQixrQkFBa0IsQ0FBQztZQUN4QnBCLEtBQUtxQixNQUFNO1lBQ1gsTUFBTUwsTUFBTSxJQUFJTSxNQUFNLENBQUMsbUJBQW1CLEVBQUV4QixNQUFNLEVBQUUsRUFBRUssU0FBUyxRQUFRLEVBQUVPLGNBQWMsQ0FBQztZQUN4RixPQUFPVixLQUFLdUIsT0FBTyxDQUFDUDtRQUN0QjtRQUVBaEIsS0FBS0gsRUFBRSxDQUFDLFNBQVM7WUFDZm5CLFNBQVNNLFNBQVMsQ0FBQyx1QkFBdUIsRUFBRWMsTUFBTSxFQUFFLEVBQUVLLFNBQVMsUUFBUSxFQUFFTyxjQUFjLENBQUM7WUFDeEZRLFlBQVlNLEtBQUs7WUFFakIsSUFBSTdDLE9BQU9LLFFBQVF5QyxZQUFZLEdBQUc7Z0JBQ2hDekMsUUFBUXlDLFlBQVksQ0FBQztvQkFBRXhDO29CQUFTeUMsTUFBTWhCO2dCQUFjO1lBQ3REO1lBRUEsc0RBQXNEO1lBQ3RELElBQUkxQixRQUFRMkMsWUFBWSxFQUFFO2dCQUN4QmpELFNBQVNNLFNBQVMsQ0FBQyxzQ0FBc0MsRUFBRWMsTUFBTSxFQUFFLEVBQUVLLFNBQVMsQ0FBQyxDQUFDO2dCQUNoRkc7Z0JBQ0FwQixpQkFBaUI7Z0JBQ2pCLE1BQU0sSUFBSWYsU0FBU2EsUUFBUTRDLGVBQWUsRUFBRSxLQUFLO29CQUFFRixNQUFNaEI7Z0JBQWM7WUFDekU7UUFDRjtRQUVBVixLQUFLSCxFQUFFLENBQUMsUUFBUSxDQUFDZ0M7WUFDZlgsWUFBWVksR0FBRztZQUNmdEIsWUFBWXFCO1FBQ2Q7UUFFQTdCLEtBQUtILEVBQUUsQ0FBQyxPQUFPO1lBQ2IsTUFBTTZCLE9BQU9oQjtZQUNiaEMsU0FBU00sU0FBUyxDQUFDLGdCQUFnQixFQUFFYyxNQUFNLEVBQUUsRUFBRUssU0FBUyxRQUFRLEVBQUV1QixLQUFLLENBQUM7WUFDeEVSLFlBQVlNLEtBQUs7WUFFakIsSUFBSSxDQUFDN0IsUUFBUStCLFNBQVMsR0FBRztnQkFDdkIsSUFBSTFDLFFBQVE2QixZQUFZLEVBQUU7b0JBQ3hCUDtvQkFDQTVCLFNBQVNNLFNBQVMsQ0FBQyx3QkFBd0IsRUFBRWMsTUFBTSxFQUFFLEVBQUVLLFNBQVMsQ0FBQztnQkFDbkU7Z0JBQ0EsT0FBT3pCLFNBQVNNLFNBQVMsQ0FBQywyREFBMkQsQ0FBQztZQUN4RjtZQUVBRyxPQUFPRyxLQUFLLEdBQUdiLFlBQ2JVLE9BQU9HLEtBQUssRUFDWlEsT0FDQTFCLFlBQ0U7Z0JBQ0V1QixNQUFNUTtnQkFDTjRCLFFBQVF4QjtnQkFDUkw7Z0JBQ0E4QixNQUFNckI7Z0JBQ05zQixVQUFVNUI7Z0JBQ1ZxQjtnQkFDQVEsY0FBY3pCO2dCQUNkMEIsV0FBV0MsUUFBUSxlQUFlcEMsUUFBUUEsS0FBS21DLFNBQVM7WUFDMUQsR0FDQW5EO1lBSUosSUFBSSxDQUFDQyxPQUFPLENBQUNKLGtCQUFrQixFQUFFO2dCQUMvQkksT0FBTyxDQUFDSixrQkFBa0IsR0FBRyxFQUFFO1lBQ2pDO1lBQ0FJLE9BQU8sQ0FBQ0osa0JBQWtCLENBQUN3RCxJQUFJLENBQUN2QjtRQUNsQztRQUVBZCxLQUFLSCxFQUFFLENBQUMsU0FBUyxDQUFDbUI7WUFDaEJFLFlBQVlNLEtBQUs7WUFDakI5QyxTQUFTTSxTQUFTLENBQUMsWUFBWSxFQUFFZ0MsSUFBSXNCLE9BQU8sQ0FBQyxDQUFDO1lBQzlDaEM7UUFDRjtRQUVBNUIsU0FBU00sU0FBUyxDQUFDLG1CQUFtQixFQUFFYyxNQUFNLEVBQUUsRUFBRUssU0FBUyxRQUFRLEVBQUVPLGNBQWMsQ0FBQztRQUNwRlEsWUFBWVksR0FBRztJQUNqQjtJQUVBbEMsT0FBT0MsRUFBRSxDQUFDLFVBQVU7UUFDbEJuQixTQUFTTSxTQUFTLENBQUMsZ0NBQWdDLENBQUM7UUFDcEQsSUFBSUEsUUFBUXVELFdBQVcsRUFBRTtZQUN2QnBELE9BQU9DLE1BQU0sR0FBR2IsY0FBY1ksT0FBT0MsTUFBTTtZQUMzQ0QsT0FBT0csS0FBSyxHQUFHZixjQUFjWSxPQUFPRyxLQUFLO1FBQzNDO1FBRUEsSUFBSUwsT0FBTyxDQUFDSixrQkFBa0IsRUFBRTtZQUM5QjJELFFBQVFDLEdBQUcsQ0FBQ3hELE9BQU8sQ0FBQ0osa0JBQWtCLEVBQUU2RCxJQUFJLENBQUM7Z0JBQzNDLE9BQU96RCxPQUFPLENBQUNKLGtCQUFrQjtZQUNuQztRQUNGO0lBQ0Y7SUFFQWUsT0FBT0MsRUFBRSxDQUFDLFNBQVMsQ0FBQ21CO1FBQ2xCdEMsU0FBU00sU0FBUyxDQUFDLFlBQVksQ0FBQztRQUNoQ0UsaUJBQWlCO1FBQ2pCLE1BQU0sSUFBSWYsU0FBUywwQ0FBMEM7SUFDL0Q7SUFFQSxNQUFNd0UsU0FBUzFELFFBQVEyRCxJQUFJLENBQUNDLFNBQVM7SUFFckMsTUFBTzNELGVBQWdCO1FBQ3JCLE1BQU0sRUFBRTRELElBQUksRUFBRXBELEtBQUssRUFBRSxHQUFHLE1BQU1pRCxPQUFPSSxJQUFJO1FBRXpDLElBQUlELE1BQU07WUFDUjVELGlCQUFpQjtRQUNuQjtRQUVBLElBQUlRLE9BQU87WUFDVEUsT0FBT29ELEtBQUssQ0FBQ3REO1FBQ2Y7SUFDRjtJQUVBLE9BQU9QO0FBQ1QsRUFBQyJ9
|
|
@@ -1,15 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "processNested", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return processNested;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _utilities = require("./utilities");
|
|
12
|
-
const processNested = function(data) {
|
|
1
|
+
import { isSafeFromPollution } from './utilities.js';
|
|
2
|
+
export const processNested = function(data) {
|
|
13
3
|
if (!data || data.length < 1) return Object.create(null);
|
|
14
4
|
const d = Object.create(null), keys = Object.keys(data);
|
|
15
5
|
for(let i = 0; i < keys.length; i++){
|
|
@@ -17,7 +7,7 @@ const processNested = function(data) {
|
|
|
17
7
|
for(let index = 0; index < keyParts.length; index++){
|
|
18
8
|
const k = keyParts[index];
|
|
19
9
|
// Ensure we don't allow prototype pollution
|
|
20
|
-
if (!
|
|
10
|
+
if (!isSafeFromPollution(current, k)) {
|
|
21
11
|
continue;
|
|
22
12
|
}
|
|
23
13
|
if (index >= keyParts.length - 1) {
|
|
@@ -31,4 +21,4 @@ const processNested = function(data) {
|
|
|
31
21
|
return d;
|
|
32
22
|
};
|
|
33
23
|
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9uZXh0LWZpbGV1cGxvYWQvcHJvY2Vzc05lc3RlZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1NhZmVGcm9tUG9sbHV0aW9uIH0gZnJvbSAnLi91dGlsaXRpZXMuanMnXG5cbmV4cG9ydCBjb25zdCBwcm9jZXNzTmVzdGVkID0gZnVuY3Rpb24gKGRhdGEpIHtcbiAgaWYgKCFkYXRhIHx8IGRhdGEubGVuZ3RoIDwgMSkgcmV0dXJuIE9iamVjdC5jcmVhdGUobnVsbClcblxuICBjb25zdCBkID0gT2JqZWN0LmNyZWF0ZShudWxsKSxcbiAgICBrZXlzID0gT2JqZWN0LmtleXMoZGF0YSlcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHtcbiAgICBsZXQga2V5ID0ga2V5c1tpXSxcbiAgICAgIHZhbHVlID0gZGF0YVtrZXldLFxuICAgICAgY3VycmVudCA9IGQsXG4gICAgICBrZXlQYXJ0cyA9IGtleS5yZXBsYWNlKG5ldyBSZWdFeHAoL1xcWy9nKSwgJy4nKS5yZXBsYWNlKG5ldyBSZWdFeHAoL1xcXS9nKSwgJycpLnNwbGl0KCcuJylcblxuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBrZXlQYXJ0cy5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgIGNvbnN0IGsgPSBrZXlQYXJ0c1tpbmRleF1cblxuICAgICAgLy8gRW5zdXJlIHdlIGRvbid0IGFsbG93IHByb3RvdHlwZSBwb2xsdXRpb25cbiAgICAgIGlmICghaXNTYWZlRnJvbVBvbGx1dGlvbihjdXJyZW50LCBrKSkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuXG4gICAgICBpZiAoaW5kZXggPj0ga2V5UGFydHMubGVuZ3RoIC0gMSkge1xuICAgICAgICBjdXJyZW50W2tdID0gdmFsdWVcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICghY3VycmVudFtrXSkgY3VycmVudFtrXSA9ICFrZXlQYXJ0c1tpbmRleCArIDFdID8gW10gOiBPYmplY3QuY3JlYXRlKG51bGwpXG4gICAgICAgIGN1cnJlbnQgPSBjdXJyZW50W2tdXG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBkXG59XG4iXSwibmFtZXMiOlsiaXNTYWZlRnJvbVBvbGx1dGlvbiIsInByb2Nlc3NOZXN0ZWQiLCJkYXRhIiwibGVuZ3RoIiwiT2JqZWN0IiwiY3JlYXRlIiwiZCIsImtleXMiLCJpIiwia2V5IiwidmFsdWUiLCJjdXJyZW50Iiwia2V5UGFydHMiLCJyZXBsYWNlIiwiUmVnRXhwIiwic3BsaXQiLCJpbmRleCIsImsiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLG1CQUFtQixRQUFRLGlCQUFnQjtBQUVwRCxPQUFPLE1BQU1DLGdCQUFnQixTQUFVQyxJQUFJO0lBQ3pDLElBQUksQ0FBQ0EsUUFBUUEsS0FBS0MsTUFBTSxHQUFHLEdBQUcsT0FBT0MsT0FBT0MsTUFBTSxDQUFDO0lBRW5ELE1BQU1DLElBQUlGLE9BQU9DLE1BQU0sQ0FBQyxPQUN0QkUsT0FBT0gsT0FBT0csSUFBSSxDQUFDTDtJQUVyQixJQUFLLElBQUlNLElBQUksR0FBR0EsSUFBSUQsS0FBS0osTUFBTSxFQUFFSyxJQUFLO1FBQ3BDLElBQUlDLE1BQU1GLElBQUksQ0FBQ0MsRUFBRSxFQUNmRSxRQUFRUixJQUFJLENBQUNPLElBQUksRUFDakJFLFVBQVVMLEdBQ1ZNLFdBQVdILElBQUlJLE9BQU8sQ0FBQyxJQUFJQyxPQUFPLFFBQVEsS0FBS0QsT0FBTyxDQUFDLElBQUlDLE9BQU8sUUFBUSxJQUFJQyxLQUFLLENBQUM7UUFFdEYsSUFBSyxJQUFJQyxRQUFRLEdBQUdBLFFBQVFKLFNBQVNULE1BQU0sRUFBRWEsUUFBUztZQUNwRCxNQUFNQyxJQUFJTCxRQUFRLENBQUNJLE1BQU07WUFFekIsNENBQTRDO1lBQzVDLElBQUksQ0FBQ2hCLG9CQUFvQlcsU0FBU00sSUFBSTtnQkFDcEM7WUFDRjtZQUVBLElBQUlELFNBQVNKLFNBQVNULE1BQU0sR0FBRyxHQUFHO2dCQUNoQ1EsT0FBTyxDQUFDTSxFQUFFLEdBQUdQO1lBQ2YsT0FBTztnQkFDTCxJQUFJLENBQUNDLE9BQU8sQ0FBQ00sRUFBRSxFQUFFTixPQUFPLENBQUNNLEVBQUUsR0FBRyxDQUFDTCxRQUFRLENBQUNJLFFBQVEsRUFBRSxHQUFHLEVBQUUsR0FBR1osT0FBT0MsTUFBTSxDQUFDO2dCQUN4RU0sVUFBVUEsT0FBTyxDQUFDTSxFQUFFO1lBQ3RCO1FBQ0Y7SUFDRjtJQUNBLE9BQU9YO0FBQ1QsRUFBQyJ9
|
|
@@ -1,14 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "createUploadTimer", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return createUploadTimer;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const createUploadTimer = (timeout = 0, callback = ()=>{})=>{
|
|
1
|
+
export const createUploadTimer = (timeout = 0, callback = ()=>{})=>{
|
|
12
2
|
let timer = null;
|
|
13
3
|
const clear = ()=>{
|
|
14
4
|
clearTimeout(timer);
|
|
@@ -26,4 +16,4 @@ const createUploadTimer = (timeout = 0, callback = ()=>{})=>{
|
|
|
26
16
|
};
|
|
27
17
|
};
|
|
28
18
|
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9uZXh0LWZpbGV1cGxvYWQvdXBsb2FkVGltZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsidHlwZSBDcmVhdGVVcGxvYWRUaW1lciA9IChcbiAgdGltZW91dD86IG51bWJlcixcbiAgY2FsbGJhY2s/OiAoKSA9PiB2b2lkLFxuKSA9PiB7XG4gIGNsZWFyOiAoKSA9PiB2b2lkXG4gIHNldDogKCkgPT4gYm9vbGVhblxufVxuXG5leHBvcnQgY29uc3QgY3JlYXRlVXBsb2FkVGltZXI6IENyZWF0ZVVwbG9hZFRpbWVyID0gKHRpbWVvdXQgPSAwLCBjYWxsYmFjayA9ICgpID0+IHt9KSA9PiB7XG4gIGxldCB0aW1lciA9IG51bGxcblxuICBjb25zdCBjbGVhciA9ICgpID0+
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9uZXh0LWZpbGV1cGxvYWQvdXBsb2FkVGltZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsidHlwZSBDcmVhdGVVcGxvYWRUaW1lciA9IChcbiAgdGltZW91dD86IG51bWJlcixcbiAgY2FsbGJhY2s/OiAoKSA9PiB2b2lkLFxuKSA9PiB7XG4gIGNsZWFyOiAoKSA9PiB2b2lkXG4gIHNldDogKCkgPT4gYm9vbGVhblxufVxuXG5leHBvcnQgY29uc3QgY3JlYXRlVXBsb2FkVGltZXI6IENyZWF0ZVVwbG9hZFRpbWVyID0gKHRpbWVvdXQgPSAwLCBjYWxsYmFjayA9ICgpID0+IHt9KSA9PiB7XG4gIGxldCB0aW1lciA9IG51bGxcblxuICBjb25zdCBjbGVhciA9ICgpID0+IHtcbiAgICBjbGVhclRpbWVvdXQodGltZXIpXG4gIH1cblxuICBjb25zdCBzZXQgPSAoKSA9PiB7XG4gICAgLy8gRG8gbm90IHN0YXJ0IGEgdGltZXIgaWYgemVybyB0aW1lb3V0IG9yIGl0IGhhc24ndCBiZWVuIHNldC5cbiAgICBpZiAoIXRpbWVvdXQpIHJldHVybiBmYWxzZVxuICAgIGNsZWFyKClcbiAgICB0aW1lciA9IHNldFRpbWVvdXQoY2FsbGJhY2ssIHRpbWVvdXQpXG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIHJldHVybiB7IGNsZWFyLCBzZXQgfVxufVxuIl0sIm5hbWVzIjpbImNyZWF0ZVVwbG9hZFRpbWVyIiwidGltZW91dCIsImNhbGxiYWNrIiwidGltZXIiLCJjbGVhciIsImNsZWFyVGltZW91dCIsInNldCIsInNldFRpbWVvdXQiXSwibWFwcGluZ3MiOiJBQVFBLE9BQU8sTUFBTUEsb0JBQXVDLENBQUNDLFVBQVUsQ0FBQyxFQUFFQyxXQUFXLEtBQU8sQ0FBQztJQUNuRixJQUFJQyxRQUFRO0lBRVosTUFBTUMsUUFBUTtRQUNaQyxhQUFhRjtJQUNmO0lBRUEsTUFBTUcsTUFBTTtRQUNWLDhEQUE4RDtRQUM5RCxJQUFJLENBQUNMLFNBQVMsT0FBTztRQUNyQkc7UUFDQUQsUUFBUUksV0FBV0wsVUFBVUQ7UUFDN0IsT0FBTztJQUNUO0lBRUEsT0FBTztRQUFFRztRQUFPRTtJQUFJO0FBQ3RCLEVBQUMifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../../src/next-fileupload/utilities.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../../src/next-fileupload/utilities.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAWvD;;GAEG;AACH,eAAO,MAAM,QAAQ,YAAa,qBAAqB,OAAO,MAAM,YAKnE,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,YAAY,MAAM,WAG7C,CAAA;AAED,KAAK,QAAQ,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAA;AACvC,eAAO,MAAM,MAAM,UAAW,GAAG,sBAEhC,CAAA;AAQD;;;GAGG;AACH,KAAK,eAAe,GAAG,CAAC,OAAO,EAAE,MAAM,IAAI,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,KAAK,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAA;AAClG,eAAO,MAAM,eAAe,EAAE,eAU7B,CAAA;AAOD;;GAEG;AACH,KAAK,mBAAmB,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAA;AAC9D,eAAO,MAAM,mBAAmB,EAAE,mBAQjC,CAAA;AAED;;GAEG;AACH,KAAK,WAAW,GAAG,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,GAAG,CAAA;AACpE,eAAO,MAAM,WAAW,EAAE,WAoBzB,CAAA;AAED;;;GAGG;AACH,KAAK,eAAe,GAAG,CAAC,iBAAiB,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAA;AAC9F,eAAO,MAAM,eAAe,EAAE,eAQ7B,CAAA;AAED;;GAEG;AACH,KAAK,UAAU,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,KAAK,IAAI,CAAA;AAC3E,eAAO,MAAM,UAAU,EAAE,UACM,CAAA;AA4B/B;;;GAGG;AACH,KAAK,QAAQ,GAAG,CACd,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,IAAI,KAC9C,IAAI,CAAA;AACT,eAAO,MAAM,QAAQ,EAAE,QASnB,CAAA;AAEJ;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,oDAwB5B,CAAA;AA+BD;;GAEG;AACH,KAAK,sBAAsB,GAAG,CAC5B,iBAAiB,EAAE,OAAO,GAAG,MAAM,EACnC,QAAQ,EAAE,MAAM,KACb;IACH,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AACD,eAAO,MAAM,sBAAsB,EAAE,sBAwBpC,CAAA;AAED;;GAEG;AACH,KAAK,aAAa,GAAG,CAAC,IAAI,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAA;AAC9E,eAAO,MAAM,aAAa,EAAE,aAmB3B,CAAA"}
|
|
@@ -1,59 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
});
|
|
5
|
-
function _export(target, all) {
|
|
6
|
-
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
-
enumerable: true,
|
|
8
|
-
get: all[name]
|
|
9
|
-
});
|
|
10
|
-
}
|
|
11
|
-
_export(exports, {
|
|
12
|
-
buildFields: function() {
|
|
13
|
-
return buildFields;
|
|
14
|
-
},
|
|
15
|
-
checkAndMakeDir: function() {
|
|
16
|
-
return checkAndMakeDir;
|
|
17
|
-
},
|
|
18
|
-
debugLog: function() {
|
|
19
|
-
return debugLog;
|
|
20
|
-
},
|
|
21
|
-
deleteFile: function() {
|
|
22
|
-
return deleteFile;
|
|
23
|
-
},
|
|
24
|
-
getTempFilename: function() {
|
|
25
|
-
return getTempFilename;
|
|
26
|
-
},
|
|
27
|
-
isFunc: function() {
|
|
28
|
-
return isFunc;
|
|
29
|
-
},
|
|
30
|
-
isSafeFromPollution: function() {
|
|
31
|
-
return isSafeFromPollution;
|
|
32
|
-
},
|
|
33
|
-
moveFile: function() {
|
|
34
|
-
return moveFile;
|
|
35
|
-
},
|
|
36
|
-
parseFileName: function() {
|
|
37
|
-
return parseFileName;
|
|
38
|
-
},
|
|
39
|
-
parseFileNameExtension: function() {
|
|
40
|
-
return parseFileNameExtension;
|
|
41
|
-
},
|
|
42
|
-
promiseCallback: function() {
|
|
43
|
-
return promiseCallback;
|
|
44
|
-
},
|
|
45
|
-
saveBufferToFile: function() {
|
|
46
|
-
return saveBufferToFile;
|
|
47
|
-
}
|
|
48
|
-
});
|
|
49
|
-
const _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
|
|
50
|
-
const _path = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
51
|
-
const _stream = require("stream");
|
|
52
|
-
function _interop_require_default(obj) {
|
|
53
|
-
return obj && obj.__esModule ? obj : {
|
|
54
|
-
default: obj
|
|
55
|
-
};
|
|
56
|
-
}
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import { Readable } from 'stream';
|
|
57
4
|
// Parameters for safe file name parsing.
|
|
58
5
|
const SAFE_FILE_NAME_REGEX = /[^\w-]/g;
|
|
59
6
|
const MAX_EXTENSION_LENGTH = 3;
|
|
@@ -61,22 +8,26 @@ const MAX_EXTENSION_LENGTH = 3;
|
|
|
61
8
|
const TEMP_COUNTER_MAX = 65536;
|
|
62
9
|
const TEMP_PREFIX = 'tmp';
|
|
63
10
|
let tempCounter = 0;
|
|
64
|
-
|
|
11
|
+
/**
|
|
12
|
+
* Logs message to console if options.debug option set to true.
|
|
13
|
+
*/ export const debugLog = (options, msg)=>{
|
|
65
14
|
const opts = options || {};
|
|
66
15
|
if (!opts.debug) return false;
|
|
67
16
|
console.log(`Express-file-upload: ${msg}`) // eslint-disable-line
|
|
68
17
|
;
|
|
69
18
|
return true;
|
|
70
19
|
};
|
|
71
|
-
|
|
20
|
+
/**
|
|
21
|
+
* Generates unique temporary file name. e.g. tmp-5000-156788789789.
|
|
22
|
+
*/ export const getTempFilename = (prefix = TEMP_PREFIX)=>{
|
|
72
23
|
tempCounter = tempCounter >= TEMP_COUNTER_MAX ? 1 : tempCounter + 1;
|
|
73
24
|
return `${prefix}-${tempCounter}-${Date.now()}`;
|
|
74
25
|
};
|
|
75
|
-
const isFunc = (value)=>{
|
|
26
|
+
export const isFunc = (value)=>{
|
|
76
27
|
return typeof value === 'function';
|
|
77
28
|
};
|
|
78
29
|
const errorFunc = (resolve, reject)=>isFunc(reject) ? reject : resolve;
|
|
79
|
-
const promiseCallback = (resolve, reject)=>{
|
|
30
|
+
export const promiseCallback = (resolve, reject)=>{
|
|
80
31
|
let hasFired = false;
|
|
81
32
|
return (err)=>{
|
|
82
33
|
if (hasFired) {
|
|
@@ -90,7 +41,7 @@ const promiseCallback = (resolve, reject)=>{
|
|
|
90
41
|
// Used by isSafeFromPollution
|
|
91
42
|
const OBJECT_PROTOTYPE_KEYS = Object.getOwnPropertyNames(Object.prototype);
|
|
92
43
|
const ARRAY_PROTOTYPE_KEYS = Object.getOwnPropertyNames(Array.prototype);
|
|
93
|
-
const isSafeFromPollution = (base, key)=>{
|
|
44
|
+
export const isSafeFromPollution = (base, key)=>{
|
|
94
45
|
// We perform an instanceof check instead of Array.isArray as the former is more
|
|
95
46
|
// permissive for cases in which the object as an Array prototype but was not constructed
|
|
96
47
|
// via an Array constructor or literal.
|
|
@@ -98,7 +49,7 @@ const isSafeFromPollution = (base, key)=>{
|
|
|
98
49
|
const TOUCHES_OBJECT_PROTOTYPE = OBJECT_PROTOTYPE_KEYS.includes(key);
|
|
99
50
|
return !TOUCHES_ARRAY_PROTOTYPE && !TOUCHES_OBJECT_PROTOTYPE;
|
|
100
51
|
};
|
|
101
|
-
const buildFields = (instance, field, value)=>{
|
|
52
|
+
export const buildFields = (instance, field, value)=>{
|
|
102
53
|
// Do nothing if value is not set.
|
|
103
54
|
if (value === null || value === undefined) return instance;
|
|
104
55
|
instance = instance || Object.create(null);
|
|
@@ -121,18 +72,18 @@ const buildFields = (instance, field, value)=>{
|
|
|
121
72
|
}
|
|
122
73
|
return instance;
|
|
123
74
|
};
|
|
124
|
-
const checkAndMakeDir = (fileUploadOptions, filePath)=>{
|
|
75
|
+
export const checkAndMakeDir = (fileUploadOptions, filePath)=>{
|
|
125
76
|
if (!fileUploadOptions.createParentPath) return false;
|
|
126
77
|
// Check whether folder for the file exists.
|
|
127
|
-
const parentPath =
|
|
78
|
+
const parentPath = path.dirname(filePath);
|
|
128
79
|
// Create folder if it doesn't exist.
|
|
129
|
-
if (!
|
|
80
|
+
if (!fs.existsSync(parentPath)) fs.mkdirSync(parentPath, {
|
|
130
81
|
recursive: true
|
|
131
82
|
});
|
|
132
83
|
// Checks folder again and return a results.
|
|
133
|
-
return
|
|
84
|
+
return fs.existsSync(parentPath);
|
|
134
85
|
};
|
|
135
|
-
const deleteFile = (filePath, callback)=>
|
|
86
|
+
export const deleteFile = (filePath, callback)=>fs.unlink(filePath, callback);
|
|
136
87
|
const copyFile = (src, dst, callback)=>{
|
|
137
88
|
// cbCalled flag and runCb helps to run cb only once.
|
|
138
89
|
let cbCalled = false;
|
|
@@ -142,10 +93,10 @@ const copyFile = (src, dst, callback)=>{
|
|
|
142
93
|
callback(err);
|
|
143
94
|
};
|
|
144
95
|
// Create read stream
|
|
145
|
-
const readable =
|
|
96
|
+
const readable = fs.createReadStream(src);
|
|
146
97
|
readable.on('error', runCb);
|
|
147
98
|
// Create write stream
|
|
148
|
-
const writable =
|
|
99
|
+
const writable = fs.createWriteStream(dst);
|
|
149
100
|
writable.on('error', (err)=>{
|
|
150
101
|
readable.destroy();
|
|
151
102
|
runCb(err);
|
|
@@ -154,7 +105,7 @@ const copyFile = (src, dst, callback)=>{
|
|
|
154
105
|
// Copy file via piping streams.
|
|
155
106
|
readable.pipe(writable);
|
|
156
107
|
};
|
|
157
|
-
const moveFile = (src, dst, callback)=>
|
|
108
|
+
export const moveFile = (src, dst, callback)=>fs.rename(src, dst, (err)=>{
|
|
158
109
|
if (err) {
|
|
159
110
|
// Try to copy file if rename didn't work.
|
|
160
111
|
copyFile(src, dst, (cpErr)=>cpErr ? callback(cpErr) : deleteFile(src, callback));
|
|
@@ -163,19 +114,23 @@ const moveFile = (src, dst, callback)=>_fs.default.rename(src, dst, (err)=>{
|
|
|
163
114
|
// File was renamed successfully: Add true to the callback to indicate that.
|
|
164
115
|
callback(null, true);
|
|
165
116
|
});
|
|
166
|
-
|
|
117
|
+
/**
|
|
118
|
+
* Save buffer data to a file.
|
|
119
|
+
* @param {Buffer} buffer - buffer to save to a file.
|
|
120
|
+
* @param {string} filePath - path to a file.
|
|
121
|
+
*/ export const saveBufferToFile = (buffer, filePath, callback)=>{
|
|
167
122
|
if (!Buffer.isBuffer(buffer)) {
|
|
168
123
|
return callback(new Error('buffer variable should be type of Buffer!'));
|
|
169
124
|
}
|
|
170
125
|
// Setup readable stream from buffer.
|
|
171
126
|
let streamData = buffer;
|
|
172
|
-
const readStream = new
|
|
127
|
+
const readStream = new Readable();
|
|
173
128
|
readStream._read = ()=>{
|
|
174
129
|
readStream.push(streamData);
|
|
175
130
|
streamData = null;
|
|
176
131
|
};
|
|
177
132
|
// Setup file system writable stream.
|
|
178
|
-
const fstream =
|
|
133
|
+
const fstream = fs.createWriteStream(filePath);
|
|
179
134
|
// console.log("Calling saveBuffer");
|
|
180
135
|
fstream.on('error', (err)=>{
|
|
181
136
|
// console.log("err cb")
|
|
@@ -212,7 +167,7 @@ const saveBufferToFile = (buffer, filePath, callback)=>{
|
|
|
212
167
|
}).join('');
|
|
213
168
|
}
|
|
214
169
|
};
|
|
215
|
-
const parseFileNameExtension = (preserveExtension, fileName)=>{
|
|
170
|
+
export const parseFileNameExtension = (preserveExtension, fileName)=>{
|
|
216
171
|
const defaultResult = {
|
|
217
172
|
name: fileName,
|
|
218
173
|
extension: ''
|
|
@@ -232,7 +187,7 @@ const parseFileNameExtension = (preserveExtension, fileName)=>{
|
|
|
232
187
|
extension: maxExtLength ? extension : ''
|
|
233
188
|
};
|
|
234
189
|
};
|
|
235
|
-
const parseFileName = (opts, fileName)=>{
|
|
190
|
+
export const parseFileName = (opts, fileName)=>{
|
|
236
191
|
// Check fileName argument
|
|
237
192
|
if (!fileName || typeof fileName !== 'string') return getTempFilename();
|
|
238
193
|
// Cut off file name if it's length more then 255.
|
|
@@ -249,4 +204,4 @@ const parseFileName = (opts, fileName)=>{
|
|
|
249
204
|
return name.replace(nameRegex, '').concat(extension);
|
|
250
205
|
};
|
|
251
206
|
|
|
252
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9uZXh0LWZpbGV1cGxvYWQvdXRpbGl0aWVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmcyBmcm9tICdmcydcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnXG5pbXBvcnQgeyBSZWFkYWJsZSB9IGZyb20gJ3N0cmVhbSdcblxuaW1wb3J0IHR5cGUgeyBOZXh0RmlsZVVwbG9hZE9wdGlvbnMgfSBmcm9tICcuJ1xuXG4vLyBQYXJhbWV0ZXJzIGZvciBzYWZlIGZpbGUgbmFtZSBwYXJzaW5nLlxuY29uc3QgU0FGRV9GSUxFX05BTUVfUkVHRVggPSAvW15cXHctXS9nXG5jb25zdCBNQVhfRVhURU5TSU9OX0xFTkdUSCA9IDNcblxuLy8gUGFyYW1ldGVycyB0byBnZW5lcmF0ZSB1bmlxdWUgdGVtcG9yYXJ5IGZpbGUgbmFtZXM6XG5jb25zdCBURU1QX0NPVU5URVJfTUFYID0gNjU1MzZcbmNvbnN0IFRFTVBfUFJFRklYID0gJ3RtcCdcbmxldCB0ZW1wQ291bnRlciA9IDBcblxuLyoqXG4gKiBMb2dzIG1lc3NhZ2UgdG8gY29uc29sZSBpZiBvcHRpb25zLmRlYnVnIG9wdGlvbiBzZXQgdG8gdHJ1ZS5cbiAqL1xuZXhwb3J0IGNvbnN0IGRlYnVnTG9nID0gKG9wdGlvbnM6IE5leHRGaWxlVXBsb2FkT3B0aW9ucywgbXNnOiBzdHJpbmcpID0+IHtcbiAgY29uc3Qgb3B0cyA9IG9wdGlvbnMgfHwge31cbiAgaWYgKCFvcHRzLmRlYnVnKSByZXR1cm4gZmFsc2VcbiAgY29uc29sZS5sb2coYEV4cHJlc3MtZmlsZS11cGxvYWQ6ICR7bXNnfWApIC8vIGVzbGludC1kaXNhYmxlLWxpbmVcbiAgcmV0dXJuIHRydWVcbn1cblxuLyoqXG4gKiBHZW5lcmF0ZXMgdW5pcXVlIHRlbXBvcmFyeSBmaWxlIG5hbWUuIGUuZy4gdG1wLTUwMDAtMTU2Nzg4Nzg5Nzg5LlxuICovXG5leHBvcnQgY29uc3QgZ2V0VGVtcEZpbGVuYW1lID0gKHByZWZpeDogc3RyaW5nID0gVEVNUF9QUkVGSVgpID0+IHtcbiAgdGVtcENvdW50ZXIgPSB0ZW1wQ291bnRlciA+PSBURU1QX0NPVU5URVJfTUFYID8gMSA6IHRlbXBDb3VudGVyICsgMVxuICByZXR1cm4gYCR7cHJlZml4fS0ke3RlbXBDb3VudGVyfS0ke0RhdGUubm93KCl9YFxufVxuXG50eXBlIEZ1bmNUeXBlID0gKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnlcbmV4cG9ydCBjb25zdCBpc0Z1bmMgPSAodmFsdWU6IGFueSk6IHZhbHVlIGlzIEZ1bmNUeXBlID0+IHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJ1xufVxuXG4vKipcbiAqIFNldCBlcnJvckZ1bmMgdG8gdGhlIHNhbWUgdmFsdWUgYXMgc3VjY2Vzc0Z1bmMgZm9yIGNhbGxiYWNrIG1vZGUuXG4gKi9cbnR5cGUgRXJyb3JGdW5jID0gKHJlc29sdmU6ICgpID0+IHZvaWQsIHJlamVjdDogKGVycjogRXJyb3IpID0+IHZvaWQpID0+IChlcnI6IEVycm9yKSA9PiB2b2lkXG5jb25zdCBlcnJvckZ1bmM6IEVycm9yRnVuYyA9IChyZXNvbHZlLCByZWplY3QpID0+IChpc0Z1bmMocmVqZWN0KSA/IHJlamVjdCA6IHJlc29sdmUpXG5cbi8qKlxuICogUmV0dXJuIGEgY2FsbGJhY2sgZnVuY3Rpb24gZm9yIHByb21pc2UgcmVzb2xlL3JlamVjdCBhcmdzLlxuICogRW5zdXJlcyB0aGF0IGNhbGxiYWNrIGlzIGNhbGxlZCBvbmx5IG9uY2UuXG4gKi9cbnR5cGUgUHJvbWlzZUNhbGxiYWNrID0gKHJlc29sdmU6ICgpID0+IHZvaWQsIHJlamVjdDogKGVycjogRXJyb3IpID0+IHZvaWQpID0+IChlcnI6IEVycm9yKSA9PiB2b2lkXG5leHBvcnQgY29uc3QgcHJvbWlzZUNhbGxiYWNrOiBQcm9taXNlQ2FsbGJhY2sgPSAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gIGxldCBoYXNGaXJlZCA9IGZhbHNlXG4gIHJldHVybiAoZXJyOiBFcnJvcikgPT4ge1xuICAgIGlmIChoYXNGaXJlZCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaGFzRmlyZWQgPSB0cnVlXG4gICAgcmV0dXJuIGVyciA/IGVycm9yRnVuYyhyZXNvbHZlLCByZWplY3QpKGVycikgOiByZXNvbHZlKClcbiAgfVxufVxuXG4vLyBUaGUgZGVmYXVsdCBwcm90b3R5cGVzIGZvciBib3RoIG9iamVjdHMgYW5kIGFycmF5cy5cbi8vIFVzZWQgYnkgaXNTYWZlRnJvbVBvbGx1dGlvblxuY29uc3QgT0JKRUNUX1BST1RPVFlQRV9LRVlTID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoT2JqZWN0LnByb3RvdHlwZSlcbmNvbnN0IEFSUkFZX1BST1RPVFlQRV9LRVlTID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoQXJyYXkucHJvdG90eXBlKVxuXG4vKipcbiAqIERldGVybWluZXMgd2hldGhlciBhIGtleSBpbnNlcnRpb24gaW50byBhbiBvYmplY3QgY291bGQgcmVzdWx0IGluIGEgcHJvdG90eXBlIHBvbGx1dGlvblxuICovXG50eXBlIElzU2FmZUZyb21Qb2xsdXRpb24gPSAoYmFzZTogYW55LCBrZXk6IHN0cmluZykgPT4gYm9vbGVhblxuZXhwb3J0IGNvbnN0IGlzU2FmZUZyb21Qb2xsdXRpb246IElzU2FmZUZyb21Qb2xsdXRpb24gPSAoYmFzZSwga2V5KSA9PiB7XG4gIC8vIFdlIHBlcmZvcm0gYW4gaW5zdGFuY2VvZiBjaGVjayBpbnN0ZWFkIG9mIEFycmF5LmlzQXJyYXkgYXMgdGhlIGZvcm1lciBpcyBtb3JlXG4gIC8vIHBlcm1pc3NpdmUgZm9yIGNhc2VzIGluIHdoaWNoIHRoZSBvYmplY3QgYXMgYW4gQXJyYXkgcHJvdG90eXBlIGJ1dCB3YXMgbm90IGNvbnN0cnVjdGVkXG4gIC8vIHZpYSBhbiBBcnJheSBjb25zdHJ1Y3RvciBvciBsaXRlcmFsLlxuICBjb25zdCBUT1VDSEVTX0FSUkFZX1BST1RPVFlQRSA9IGJhc2UgaW5zdGFuY2VvZiBBcnJheSAmJiBBUlJBWV9QUk9UT1RZUEVfS0VZUy5pbmNsdWRlcyhrZXkpXG4gIGNvbnN0IFRPVUNIRVNfT0JKRUNUX1BST1RPVFlQRSA9IE9CSkVDVF9QUk9UT1RZUEVfS0VZUy5pbmNsdWRlcyhrZXkpXG5cbiAgcmV0dXJuICFUT1VDSEVTX0FSUkFZX1BST1RPVFlQRSAmJiAhVE9VQ0hFU19PQkpFQ1RfUFJPVE9UWVBFXG59XG5cbi8qKlxuICogQnVpbGQgcmVxdWVzdCBmaWVsZC9maWxlIG9iamVjdHMgdG8gcmV0dXJuXG4gKi9cbnR5cGUgQnVpbGRGaWVsZHMgPSAoaW5zdGFuY2U6IGFueSwgZmllbGQ6IHN0cmluZywgdmFsdWU6IGFueSkgPT4gYW55XG5leHBvcnQgY29uc3QgYnVpbGRGaWVsZHM6IEJ1aWxkRmllbGRzID0gKGluc3RhbmNlLCBmaWVsZCwgdmFsdWUpID0+IHtcbiAgLy8gRG8gbm90aGluZyBpZiB2YWx1ZSBpcyBub3Qgc2V0LlxuICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkgcmV0dXJuIGluc3RhbmNlXG4gIGluc3RhbmNlID0gaW5zdGFuY2UgfHwgT2JqZWN0LmNyZWF0ZShudWxsKVxuXG4gIGlmICghaXNTYWZlRnJvbVBvbGx1dGlvbihpbnN0YW5jZSwgZmllbGQpKSB7XG4gICAgcmV0dXJuIGluc3RhbmNlXG4gIH1cbiAgLy8gTm9uLWFycmF5IGZpZWxkc1xuICBpZiAoIWluc3RhbmNlW2ZpZWxkXSkge1xuICAgIGluc3RhbmNlW2ZpZWxkXSA9IHZhbHVlXG4gICAgcmV0dXJuIGluc3RhbmNlXG4gIH1cbiAgLy8gQXJyYXkgZmllbGRzXG4gIGlmIChpbnN0YW5jZVtmaWVsZF0gaW5zdGFuY2VvZiBBcnJheSkge1xuICAgIGluc3RhbmNlW2ZpZWxkXS5wdXNoKHZhbHVlKVxuICB9IGVsc2Uge1xuICAgIGluc3RhbmNlW2ZpZWxkXSA9IFtpbnN0YW5jZVtmaWVsZF0sIHZhbHVlXVxuICB9XG4gIHJldHVybiBpbnN0YW5jZVxufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBmb2xkZXIgaWYgaXQgZG9lcyBub3QgZXhpc3RcbiAqIGZvciBmaWxlIHNwZWNpZmllZCBpbiB0aGUgcGF0aCB2YXJpYWJsZVxuICovXG50eXBlIENoZWNrQW5kTWFrZURpciA9IChmaWxlVXBsb2FkT3B0aW9uczogTmV4dEZpbGVVcGxvYWRPcHRpb25zLCBmaWxlUGF0aDogc3RyaW5nKSA9PiBib29sZWFuXG5leHBvcnQgY29uc3QgY2hlY2tBbmRNYWtlRGlyOiBDaGVja0FuZE1ha2VEaXIgPSAoZmlsZVVwbG9hZE9wdGlvbnMsIGZpbGVQYXRoKSA9PiB7XG4gIGlmICghZmlsZVVwbG9hZE9wdGlvbnMuY3JlYXRlUGFyZW50UGF0aCkgcmV0dXJuIGZhbHNlXG4gIC8vIENoZWNrIHdoZXRoZXIgZm9sZGVyIGZvciB0aGUgZmlsZSBleGlzdHMuXG4gIGNvbnN0IHBhcmVudFBhdGggPSBwYXRoLmRpcm5hbWUoZmlsZVBhdGgpXG4gIC8vIENyZWF0ZSBmb2xkZXIgaWYgaXQgZG9lc24ndCBleGlzdC5cbiAgaWYgKCFmcy5leGlzdHNTeW5jKHBhcmVudFBhdGgpKSBmcy5ta2RpclN5bmMocGFyZW50UGF0aCwgeyByZWN1cnNpdmU6IHRydWUgfSlcbiAgLy8gQ2hlY2tzIGZvbGRlciBhZ2FpbiBhbmQgcmV0dXJuIGEgcmVzdWx0cy5cbiAgcmV0dXJuIGZzLmV4aXN0c1N5bmMocGFyZW50UGF0aClcbn1cblxuLyoqXG4gKiBEZWxldGUgYSBmaWxlLlxuICovXG50eXBlIERlbGV0ZUZpbGUgPSAoZmlsZVBhdGg6IHN0cmluZywgY2FsbGJhY2s6IChhcmdzOiBhbnkpID0+IHZvaWQpID0+IHZvaWRcbmV4cG9ydCBjb25zdCBkZWxldGVGaWxlOiBEZWxldGVGaWxlID0gKGZpbGVQYXRoLCBjYWxsYmFjazogKGFyZ3MpID0+IHZvaWQpID0+XG4gIGZzLnVubGluayhmaWxlUGF0aCwgY2FsbGJhY2spXG5cbi8qKlxuICogQ29weSBmaWxlIHZpYSBzdHJlYW1zXG4gKi9cbnR5cGUgQ29weUZpbGUgPSAoc3JjOiBzdHJpbmcsIGRzdDogc3RyaW5nLCBjYWxsYmFjazogKGVycjogRXJyb3IpID0+IHZvaWQpID0+IHZvaWRcbmNvbnN0IGNvcHlGaWxlOiBDb3B5RmlsZSA9IChzcmMsIGRzdCwgY2FsbGJhY2spID0+IHtcbiAgLy8gY2JDYWxsZWQgZmxhZyBhbmQgcnVuQ2IgaGVscHMgdG8gcnVuIGNiIG9ubHkgb25jZS5cbiAgbGV0IGNiQ2FsbGVkID0gZmFsc2VcbiAgY29uc3QgcnVuQ2IgPSAoZXJyPzogRXJyb3IpID0+IHtcbiAgICBpZiAoY2JDYWxsZWQpIHJldHVyblxuICAgIGNiQ2FsbGVkID0gdHJ1ZVxuICAgIGNhbGxiYWNrKGVycilcbiAgfVxuICAvLyBDcmVhdGUgcmVhZCBzdHJlYW1cbiAgY29uc3QgcmVhZGFibGUgPSBmcy5jcmVhdGVSZWFkU3RyZWFtKHNyYylcbiAgcmVhZGFibGUub24oJ2Vycm9yJywgcnVuQ2IpXG4gIC8vIENyZWF0ZSB3cml0ZSBzdHJlYW1cbiAgY29uc3Qgd3JpdGFibGUgPSBmcy5jcmVhdGVXcml0ZVN0cmVhbShkc3QpXG4gIHdyaXRhYmxlLm9uKCdlcnJvcicsIChlcnI6IEVycm9yKSA9PiB7XG4gICAgcmVhZGFibGUuZGVzdHJveSgpXG4gICAgcnVuQ2IoZXJyKVxuICB9KVxuICB3cml0YWJsZS5vbignY2xvc2UnLCAoKSA9PiBydW5DYigpKVxuICAvLyBDb3B5IGZpbGUgdmlhIHBpcGluZyBzdHJlYW1zLlxuICByZWFkYWJsZS5waXBlKHdyaXRhYmxlKVxufVxuXG4vKipcbiAqIG1vdmVGaWxlOiBtb3ZlcyB0aGUgZmlsZSBmcm9tIHNyYyB0byBkc3QuXG4gKiBGaXJzdGx5IHRyeWluZyB0byByZW5hbWUgdGhlIGZpbGUgaWYgbm8gbHVjayBjb3B5aW5nIGl0IHRvIGRzdCBhbmQgdGhlbiBkZWxldGluZyBzcmMuXG4gKi9cbnR5cGUgTW92ZUZpbGUgPSAoXG4gIHNyYzogc3RyaW5nLFxuICBkc3Q6IHN0cmluZyxcbiAgY2FsbGJhY2s6IChlcnI6IEVycm9yLCByZW5hbWVkPzogYm9vbGVhbikgPT4gdm9pZCxcbikgPT4gdm9pZFxuZXhwb3J0IGNvbnN0IG1vdmVGaWxlOiBNb3ZlRmlsZSA9IChzcmMsIGRzdCwgY2FsbGJhY2spID0+XG4gIGZzLnJlbmFtZShzcmMsIGRzdCwgKGVycikgPT4ge1xuICAgIGlmIChlcnIpIHtcbiAgICAgIC8vIFRyeSB0byBjb3B5IGZpbGUgaWYgcmVuYW1lIGRpZG4ndCB3b3JrLlxuICAgICAgY29weUZpbGUoc3JjLCBkc3QsIChjcEVycikgPT4gKGNwRXJyID8gY2FsbGJhY2soY3BFcnIpIDogZGVsZXRlRmlsZShzcmMsIGNhbGxiYWNrKSkpXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgLy8gRmlsZSB3YXMgcmVuYW1lZCBzdWNjZXNzZnVsbHk6IEFkZCB0cnVlIHRvIHRoZSBjYWxsYmFjayB0byBpbmRpY2F0ZSB0aGF0LlxuICAgIGNhbGxiYWNrKG51bGwsIHRydWUpXG4gIH0pXG5cbi8qKlxuICogU2F2ZSBidWZmZXIgZGF0YSB0byBhIGZpbGUuXG4gKiBAcGFyYW0ge0J1ZmZlcn0gYnVmZmVyIC0gYnVmZmVyIHRvIHNhdmUgdG8gYSBmaWxlLlxuICogQHBhcmFtIHtzdHJpbmd9IGZpbGVQYXRoIC0gcGF0aCB0byBhIGZpbGUuXG4gKi9cbmV4cG9ydCBjb25zdCBzYXZlQnVmZmVyVG9GaWxlID0gKGJ1ZmZlciwgZmlsZVBhdGgsIGNhbGxiYWNrKSA9PiB7XG4gIGlmICghQnVmZmVyLmlzQnVmZmVyKGJ1ZmZlcikpIHtcbiAgICByZXR1cm4gY2FsbGJhY2sobmV3IEVycm9yKCdidWZmZXIgdmFyaWFibGUgc2hvdWxkIGJlIHR5cGUgb2YgQnVmZmVyIScpKVxuICB9XG4gIC8vIFNldHVwIHJlYWRhYmxlIHN0cmVhbSBmcm9tIGJ1ZmZlci5cbiAgbGV0IHN0cmVhbURhdGEgPSBidWZmZXJcbiAgY29uc3QgcmVhZFN0cmVhbSA9IG5ldyBSZWFkYWJsZSgpXG4gIHJlYWRTdHJlYW0uX3JlYWQgPSAoKSA9PiB7XG4gICAgcmVhZFN0cmVhbS5wdXNoKHN0cmVhbURhdGEpXG4gICAgc3RyZWFtRGF0YSA9IG51bGxcbiAgfVxuICAvLyBTZXR1cCBmaWxlIHN5c3RlbSB3cml0YWJsZSBzdHJlYW0uXG4gIGNvbnN0IGZzdHJlYW0gPSBmcy5jcmVhdGVXcml0ZVN0cmVhbShmaWxlUGF0aClcbiAgLy8gY29uc29sZS5sb2coXCJDYWxsaW5nIHNhdmVCdWZmZXJcIik7XG4gIGZzdHJlYW0ub24oJ2Vycm9yJywgKGVycikgPT4ge1xuICAgIC8vIGNvbnNvbGUubG9nKFwiZXJyIGNiXCIpXG4gICAgY2FsbGJhY2soZXJyKVxuICB9KVxuICBmc3RyZWFtLm9uKCdjbG9zZScsICgpID0+IHtcbiAgICAvLyBjb25zb2xlLmxvZyhcImNsb3NlIGNiXCIpO1xuICAgIGNhbGxiYWNrKClcbiAgfSlcbiAgLy8gQ29weSBmaWxlIHZpYSBwaXBpbmcgc3RyZWFtcy5cbiAgcmVhZFN0cmVhbS5waXBlKGZzdHJlYW0pXG59XG5cbi8qKlxuICogRGVjb2RlcyB1cmlFbmNvZGVkIGZpbGUgbmFtZXMuXG4gKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG1pZGRsZXdhcmUgb3B0aW9ucy5cbiAqIEBwYXJhbSBmaWxlTmFtZSB7U3RyaW5nfSAtIGZpbGUgbmFtZSB0byBkZWNvZGUuXG4gKiBAcmV0dXJucyB7U3RyaW5nfVxuICovXG5jb25zdCB1cmlEZWNvZGVGaWxlTmFtZSA9IChvcHRzLCBmaWxlTmFtZSkgPT4ge1xuICBpZiAoIW9wdHMgfHwgIW9wdHMudXJpRGVjb2RlRmlsZU5hbWVzKSB7XG4gICAgcmV0dXJuIGZpbGVOYW1lXG4gIH1cbiAgLy8gRGVjb2RlIGZpbGUgbmFtZSBmcm9tIFVSSSB3aXRoIGNoZWNraW5nIFVSSSBtYWxmb3JtZWQgZXJyb3JzLlxuICAvLyBTZWUgSXNzdWUgaHR0cHM6Ly9naXRodWIuY29tL3JpY2hhcmRnaXJnZXMvZXhwcmVzcy1maWxldXBsb2FkL2lzc3Vlcy8zNDIuXG4gIHRyeSB7XG4gICAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChmaWxlTmFtZSlcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgY29uc3QgbWF0Y2hlciA9IC8oJVthLWZcXGRdezJ9KS9naVxuICAgIHJldHVybiBmaWxlTmFtZVxuICAgICAgLnNwbGl0KG1hdGNoZXIpXG4gICAgICAubWFwKChzdHIpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHN0cilcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgcmV0dXJuICcnXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICAuam9pbignJylcbiAgfVxufVxuXG4vKipcbiAqIFBhcnNlcyBmaWxlbmFtZSBhbmQgZXh0ZW5zaW9uIGFuZCByZXR1cm5zIG9iamVjdCB7bmFtZSwgZXh0ZW5zaW9ufS5cbiAqL1xudHlwZSBQYXJzZUZpbGVOYW1lRXh0ZW5zaW9uID0gKFxuICBwcmVzZXJ2ZUV4dGVuc2lvbjogYm9vbGVhbiB8IG51bWJlcixcbiAgZmlsZU5hbWU6IHN0cmluZyxcbikgPT4ge1xuICBleHRlbnNpb246IHN0cmluZ1xuICBuYW1lOiBzdHJpbmdcbn1cbmV4cG9ydCBjb25zdCBwYXJzZUZpbGVOYW1lRXh0ZW5zaW9uOiBQYXJzZUZpbGVOYW1lRXh0ZW5zaW9uID0gKHByZXNlcnZlRXh0ZW5zaW9uLCBmaWxlTmFtZSkgPT4ge1xuICBjb25zdCBkZWZhdWx0UmVzdWx0ID0ge1xuICAgIG5hbWU6IGZpbGVOYW1lLFxuICAgIGV4dGVuc2lvbjogJycsXG4gIH1cbiAgaWYgKCFwcmVzZXJ2ZUV4dGVuc2lvbikgcmV0dXJuIGRlZmF1bHRSZXN1bHRcblxuICAvLyBEZWZpbmUgbWF4aW11bSBleHRlbnNpb24gbGVuZ3RoXG4gIGNvbnN0IG1heEV4dExlbmd0aCA9XG4gICAgdHlwZW9mIHByZXNlcnZlRXh0ZW5zaW9uID09PSAnYm9vbGVhbicgPyBNQVhfRVhURU5TSU9OX0xFTkdUSCA6IHByZXNlcnZlRXh0ZW5zaW9uXG5cbiAgY29uc3QgbmFtZVBhcnRzID0gZmlsZU5hbWUuc3BsaXQoJy4nKVxuICBpZiAobmFtZVBhcnRzLmxlbmd0aCA8IDIpIHJldHVybiBkZWZhdWx0UmVzdWx0XG5cbiAgbGV0IGV4dGVuc2lvbiA9IG5hbWVQYXJ0cy5wb3AoKVxuICBpZiAoZXh0ZW5zaW9uLmxlbmd0aCA+IG1heEV4dExlbmd0aCAmJiBtYXhFeHRMZW5ndGggPiAwKSB7XG4gICAgbmFtZVBhcnRzW25hbWVQYXJ0cy5sZW5ndGggLSAxXSArPSAnLicgKyBleHRlbnNpb24uc3Vic3RyKDAsIGV4dGVuc2lvbi5sZW5ndGggLSBtYXhFeHRMZW5ndGgpXG4gICAgZXh0ZW5zaW9uID0gZXh0ZW5zaW9uLnN1YnN0cigtbWF4RXh0TGVuZ3RoKVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiBuYW1lUGFydHMuam9pbignLicpLFxuICAgIGV4dGVuc2lvbjogbWF4RXh0TGVuZ3RoID8gZXh0ZW5zaW9uIDogJycsXG4gIH1cbn1cblxuLyoqXG4gKiBQYXJzZSBmaWxlIG5hbWUgYW5kIGV4dGVuc2lvbi5cbiAqL1xudHlwZSBQYXJzZUZpbGVOYW1lID0gKG9wdHM6IE5leHRGaWxlVXBsb2FkT3B0aW9ucywgZmlsZU5hbWU6IHN0cmluZykgPT4gc3RyaW5nXG5leHBvcnQgY29uc3QgcGFyc2VGaWxlTmFtZTogUGFyc2VGaWxlTmFtZSA9IChvcHRzLCBmaWxlTmFtZSkgPT4ge1xuICAvLyBDaGVjayBmaWxlTmFtZSBhcmd1bWVudFxuICBpZiAoIWZpbGVOYW1lIHx8IHR5cGVvZiBmaWxlTmFtZSAhPT0gJ3N0cmluZycpIHJldHVybiBnZXRUZW1wRmlsZW5hbWUoKVxuICAvLyBDdXQgb2ZmIGZpbGUgbmFtZSBpZiBpdCdzIGxlbmd0aCBtb3JlIHRoZW4gMjU1LlxuICBsZXQgcGFyc2VkTmFtZSA9IGZpbGVOYW1lLmxlbmd0aCA8PSAyNTUgPyBmaWxlTmFtZSA6IGZpbGVOYW1lLnN1YnN0cigwLCAyNTUpXG4gIC8vIERlY29kZSBmaWxlIG5hbWUgaWYgdXJpRGVjb2RlRmlsZU5hbWVzIG9wdGlvbiBzZXQgdHJ1ZS5cbiAgcGFyc2VkTmFtZSA9IHVyaURlY29kZUZpbGVOYW1lKG9wdHMsIHBhcnNlZE5hbWUpXG4gIC8vIFN0b3AgcGFyc2luZyBmaWxlIG5hbWUgaWYgc2FmZUZpbGVOYW1lcyBvcHRpb25zIGhhc24ndCBiZWVuIHNldC5cbiAgaWYgKCFvcHRzLnNhZmVGaWxlTmFtZXMpIHJldHVybiBwYXJzZWROYW1lXG4gIC8vIFNldCByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHRoZSBmaWxlIG5hbWUuXG4gIGNvbnN0IG5hbWVSZWdleCA9XG4gICAgdHlwZW9mIG9wdHMuc2FmZUZpbGVOYW1lcyA9PT0gJ29iamVjdCcgJiYgb3B0cy5zYWZlRmlsZU5hbWVzIGluc3RhbmNlb2YgUmVnRXhwXG4gICAgICA/IG9wdHMuc2FmZUZpbGVOYW1lc1xuICAgICAgOiBTQUZFX0ZJTEVfTkFNRV9SRUdFWFxuICAvLyBQYXJzZSBmaWxlIG5hbWUgZXh0ZW5zaW9uLlxuICBsZXQgeyBuYW1lLCBleHRlbnNpb24gfSA9IHBhcnNlRmlsZU5hbWVFeHRlbnNpb24ob3B0cy5wcmVzZXJ2ZUV4dGVuc2lvbiwgcGFyc2VkTmFtZSlcbiAgaWYgKGV4dGVuc2lvbi5sZW5ndGgpIGV4dGVuc2lvbiA9ICcuJyArIGV4dGVuc2lvbi5yZXBsYWNlKG5hbWVSZWdleCwgJycpXG5cbiAgcmV0dXJuIG5hbWUucmVwbGFjZShuYW1lUmVnZXgsICcnKS5jb25jYXQoZXh0ZW5zaW9uKVxufVxuIl0sIm5hbWVzIjpbImJ1aWxkRmllbGRzIiwiY2hlY2tBbmRNYWtlRGlyIiwiZGVidWdMb2ciLCJkZWxldGVGaWxlIiwiZ2V0VGVtcEZpbGVuYW1lIiwiaXNGdW5jIiwiaXNTYWZlRnJvbVBvbGx1dGlvbiIsIm1vdmVGaWxlIiwicGFyc2VGaWxlTmFtZSIsInBhcnNlRmlsZU5hbWVFeHRlbnNpb24iLCJwcm9taXNlQ2FsbGJhY2siLCJzYXZlQnVmZmVyVG9GaWxlIiwiU0FGRV9GSUxFX05BTUVfUkVHRVgiLCJNQVhfRVhURU5TSU9OX0xFTkdUSCIsIlRFTVBfQ09VTlRFUl9NQVgiLCJURU1QX1BSRUZJWCIsInRlbXBDb3VudGVyIiwib3B0aW9ucyIsIm1zZyIsIm9wdHMiLCJkZWJ1ZyIsImNvbnNvbGUiLCJsb2ciLCJwcmVmaXgiLCJEYXRlIiwibm93IiwidmFsdWUiLCJlcnJvckZ1bmMiLCJyZXNvbHZlIiwicmVqZWN0IiwiaGFzRmlyZWQiLCJlcnIiLCJPQkpFQ1RfUFJPVE9UWVBFX0tFWVMiLCJPYmplY3QiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwicHJvdG90eXBlIiwiQVJSQVlfUFJPVE9UWVBFX0tFWVMiLCJBcnJheSIsImJhc2UiLCJrZXkiLCJUT1VDSEVTX0FSUkFZX1BST1RPVFlQRSIsImluY2x1ZGVzIiwiVE9VQ0hFU19PQkpFQ1RfUFJPVE9UWVBFIiwiaW5zdGFuY2UiLCJmaWVsZCIsInVuZGVmaW5lZCIsImNyZWF0ZSIsInB1c2giLCJmaWxlVXBsb2FkT3B0aW9ucyIsImZpbGVQYXRoIiwiY3JlYXRlUGFyZW50UGF0aCIsInBhcmVudFBhdGgiLCJwYXRoIiwiZGlybmFtZSIsImZzIiwiZXhpc3RzU3luYyIsIm1rZGlyU3luYyIsInJlY3Vyc2l2ZSIsImNhbGxiYWNrIiwidW5saW5rIiwiY29weUZpbGUiLCJzcmMiLCJkc3QiLCJjYkNhbGxlZCIsInJ1bkNiIiwicmVhZGFibGUiLCJjcmVhdGVSZWFkU3RyZWFtIiwib24iLCJ3cml0YWJsZSIsImNyZWF0ZVdyaXRlU3RyZWFtIiwiZGVzdHJveSIsInBpcGUiLCJyZW5hbWUiLCJjcEVyciIsImJ1ZmZlciIsIkJ1ZmZlciIsImlzQnVmZmVyIiwiRXJyb3IiLCJzdHJlYW1EYXRhIiwicmVhZFN0cmVhbSIsIlJlYWRhYmxlIiwiX3JlYWQiLCJmc3RyZWFtIiwidXJpRGVjb2RlRmlsZU5hbWUiLCJmaWxlTmFtZSIsInVyaURlY29kZUZpbGVOYW1lcyIsImRlY29kZVVSSUNvbXBvbmVudCIsIm1hdGNoZXIiLCJzcGxpdCIsIm1hcCIsInN0ciIsImpvaW4iLCJwcmVzZXJ2ZUV4dGVuc2lvbiIsImRlZmF1bHRSZXN1bHQiLCJuYW1lIiwiZXh0ZW5zaW9uIiwibWF4RXh0TGVuZ3RoIiwibmFtZVBhcnRzIiwibGVuZ3RoIiwicG9wIiwic3Vic3RyIiwicGFyc2VkTmFtZSIsInNhZmVGaWxlTmFtZXMiLCJuYW1lUmVnZXgiLCJSZWdFeHAiLCJyZXBsYWNlIiwiY29uY2F0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztJQW9GYUEsV0FBVztlQUFYQTs7SUEyQkFDLGVBQWU7ZUFBZkE7O0lBN0ZBQyxRQUFRO2VBQVJBOztJQTJHQUMsVUFBVTtlQUFWQTs7SUFqR0FDLGVBQWU7ZUFBZkE7O0lBTUFDLE1BQU07ZUFBTkE7O0lBb0NBQyxtQkFBbUI7ZUFBbkJBOztJQTZGQUMsUUFBUTtlQUFSQTs7SUErR0FDLGFBQWE7ZUFBYkE7O0lBOUJBQyxzQkFBc0I7ZUFBdEJBOztJQW5NQUMsZUFBZTtlQUFmQTs7SUFrSUFDLGdCQUFnQjtlQUFoQkE7OzsyREFuTEU7NkRBQ0U7d0JBQ1E7Ozs7OztBQUl6Qix5Q0FBeUM7QUFDekMsTUFBTUMsdUJBQXVCO0FBQzdCLE1BQU1DLHVCQUF1QjtBQUU3QixzREFBc0Q7QUFDdEQsTUFBTUMsbUJBQW1CO0FBQ3pCLE1BQU1DLGNBQWM7QUFDcEIsSUFBSUMsY0FBYztBQUtYLE1BQU1kLFdBQVcsQ0FBQ2UsU0FBZ0NDO0lBQ3ZELE1BQU1DLE9BQU9GLFdBQVcsQ0FBQztJQUN6QixJQUFJLENBQUNFLEtBQUtDLEtBQUssRUFBRSxPQUFPO0lBQ3hCQyxRQUFRQyxHQUFHLENBQUMsQ0FBQyxxQkFBcUIsRUFBRUosSUFBSSxDQUFDLEVBQUUsc0JBQXNCOztJQUNqRSxPQUFPO0FBQ1Q7QUFLTyxNQUFNZCxrQkFBa0IsQ0FBQ21CLFNBQWlCUixXQUFXO0lBQzFEQyxjQUFjQSxlQUFlRixtQkFBbUIsSUFBSUUsY0FBYztJQUNsRSxPQUFPLENBQUMsRUFBRU8sT0FBTyxDQUFDLEVBQUVQLFlBQVksQ0FBQyxFQUFFUSxLQUFLQyxHQUFHLEdBQUcsQ0FBQztBQUNq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
|
|
207
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9uZXh0LWZpbGV1cGxvYWQvdXRpbGl0aWVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmcyBmcm9tICdmcydcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnXG5pbXBvcnQgeyBSZWFkYWJsZSB9IGZyb20gJ3N0cmVhbSdcblxuaW1wb3J0IHR5cGUgeyBOZXh0RmlsZVVwbG9hZE9wdGlvbnMgfSBmcm9tICcuL2luZGV4LmpzJ1xuXG4vLyBQYXJhbWV0ZXJzIGZvciBzYWZlIGZpbGUgbmFtZSBwYXJzaW5nLlxuY29uc3QgU0FGRV9GSUxFX05BTUVfUkVHRVggPSAvW15cXHctXS9nXG5jb25zdCBNQVhfRVhURU5TSU9OX0xFTkdUSCA9IDNcblxuLy8gUGFyYW1ldGVycyB0byBnZW5lcmF0ZSB1bmlxdWUgdGVtcG9yYXJ5IGZpbGUgbmFtZXM6XG5jb25zdCBURU1QX0NPVU5URVJfTUFYID0gNjU1MzZcbmNvbnN0IFRFTVBfUFJFRklYID0gJ3RtcCdcbmxldCB0ZW1wQ291bnRlciA9IDBcblxuLyoqXG4gKiBMb2dzIG1lc3NhZ2UgdG8gY29uc29sZSBpZiBvcHRpb25zLmRlYnVnIG9wdGlvbiBzZXQgdG8gdHJ1ZS5cbiAqL1xuZXhwb3J0IGNvbnN0IGRlYnVnTG9nID0gKG9wdGlvbnM6IE5leHRGaWxlVXBsb2FkT3B0aW9ucywgbXNnOiBzdHJpbmcpID0+IHtcbiAgY29uc3Qgb3B0cyA9IG9wdGlvbnMgfHwge31cbiAgaWYgKCFvcHRzLmRlYnVnKSByZXR1cm4gZmFsc2VcbiAgY29uc29sZS5sb2coYEV4cHJlc3MtZmlsZS11cGxvYWQ6ICR7bXNnfWApIC8vIGVzbGludC1kaXNhYmxlLWxpbmVcbiAgcmV0dXJuIHRydWVcbn1cblxuLyoqXG4gKiBHZW5lcmF0ZXMgdW5pcXVlIHRlbXBvcmFyeSBmaWxlIG5hbWUuIGUuZy4gdG1wLTUwMDAtMTU2Nzg4Nzg5Nzg5LlxuICovXG5leHBvcnQgY29uc3QgZ2V0VGVtcEZpbGVuYW1lID0gKHByZWZpeDogc3RyaW5nID0gVEVNUF9QUkVGSVgpID0+IHtcbiAgdGVtcENvdW50ZXIgPSB0ZW1wQ291bnRlciA+PSBURU1QX0NPVU5URVJfTUFYID8gMSA6IHRlbXBDb3VudGVyICsgMVxuICByZXR1cm4gYCR7cHJlZml4fS0ke3RlbXBDb3VudGVyfS0ke0RhdGUubm93KCl9YFxufVxuXG50eXBlIEZ1bmNUeXBlID0gKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnlcbmV4cG9ydCBjb25zdCBpc0Z1bmMgPSAodmFsdWU6IGFueSk6IHZhbHVlIGlzIEZ1bmNUeXBlID0+IHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJ1xufVxuXG4vKipcbiAqIFNldCBlcnJvckZ1bmMgdG8gdGhlIHNhbWUgdmFsdWUgYXMgc3VjY2Vzc0Z1bmMgZm9yIGNhbGxiYWNrIG1vZGUuXG4gKi9cbnR5cGUgRXJyb3JGdW5jID0gKHJlc29sdmU6ICgpID0+IHZvaWQsIHJlamVjdDogKGVycjogRXJyb3IpID0+IHZvaWQpID0+IChlcnI6IEVycm9yKSA9PiB2b2lkXG5jb25zdCBlcnJvckZ1bmM6IEVycm9yRnVuYyA9IChyZXNvbHZlLCByZWplY3QpID0+IChpc0Z1bmMocmVqZWN0KSA/IHJlamVjdCA6IHJlc29sdmUpXG5cbi8qKlxuICogUmV0dXJuIGEgY2FsbGJhY2sgZnVuY3Rpb24gZm9yIHByb21pc2UgcmVzb2xlL3JlamVjdCBhcmdzLlxuICogRW5zdXJlcyB0aGF0IGNhbGxiYWNrIGlzIGNhbGxlZCBvbmx5IG9uY2UuXG4gKi9cbnR5cGUgUHJvbWlzZUNhbGxiYWNrID0gKHJlc29sdmU6ICgpID0+IHZvaWQsIHJlamVjdDogKGVycjogRXJyb3IpID0+IHZvaWQpID0+IChlcnI6IEVycm9yKSA9PiB2b2lkXG5leHBvcnQgY29uc3QgcHJvbWlzZUNhbGxiYWNrOiBQcm9taXNlQ2FsbGJhY2sgPSAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gIGxldCBoYXNGaXJlZCA9IGZhbHNlXG4gIHJldHVybiAoZXJyOiBFcnJvcikgPT4ge1xuICAgIGlmIChoYXNGaXJlZCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaGFzRmlyZWQgPSB0cnVlXG4gICAgcmV0dXJuIGVyciA/IGVycm9yRnVuYyhyZXNvbHZlLCByZWplY3QpKGVycikgOiByZXNvbHZlKClcbiAgfVxufVxuXG4vLyBUaGUgZGVmYXVsdCBwcm90b3R5cGVzIGZvciBib3RoIG9iamVjdHMgYW5kIGFycmF5cy5cbi8vIFVzZWQgYnkgaXNTYWZlRnJvbVBvbGx1dGlvblxuY29uc3QgT0JKRUNUX1BST1RPVFlQRV9LRVlTID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoT2JqZWN0LnByb3RvdHlwZSlcbmNvbnN0IEFSUkFZX1BST1RPVFlQRV9LRVlTID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoQXJyYXkucHJvdG90eXBlKVxuXG4vKipcbiAqIERldGVybWluZXMgd2hldGhlciBhIGtleSBpbnNlcnRpb24gaW50byBhbiBvYmplY3QgY291bGQgcmVzdWx0IGluIGEgcHJvdG90eXBlIHBvbGx1dGlvblxuICovXG50eXBlIElzU2FmZUZyb21Qb2xsdXRpb24gPSAoYmFzZTogYW55LCBrZXk6IHN0cmluZykgPT4gYm9vbGVhblxuZXhwb3J0IGNvbnN0IGlzU2FmZUZyb21Qb2xsdXRpb246IElzU2FmZUZyb21Qb2xsdXRpb24gPSAoYmFzZSwga2V5KSA9PiB7XG4gIC8vIFdlIHBlcmZvcm0gYW4gaW5zdGFuY2VvZiBjaGVjayBpbnN0ZWFkIG9mIEFycmF5LmlzQXJyYXkgYXMgdGhlIGZvcm1lciBpcyBtb3JlXG4gIC8vIHBlcm1pc3NpdmUgZm9yIGNhc2VzIGluIHdoaWNoIHRoZSBvYmplY3QgYXMgYW4gQXJyYXkgcHJvdG90eXBlIGJ1dCB3YXMgbm90IGNvbnN0cnVjdGVkXG4gIC8vIHZpYSBhbiBBcnJheSBjb25zdHJ1Y3RvciBvciBsaXRlcmFsLlxuICBjb25zdCBUT1VDSEVTX0FSUkFZX1BST1RPVFlQRSA9IGJhc2UgaW5zdGFuY2VvZiBBcnJheSAmJiBBUlJBWV9QUk9UT1RZUEVfS0VZUy5pbmNsdWRlcyhrZXkpXG4gIGNvbnN0IFRPVUNIRVNfT0JKRUNUX1BST1RPVFlQRSA9IE9CSkVDVF9QUk9UT1RZUEVfS0VZUy5pbmNsdWRlcyhrZXkpXG5cbiAgcmV0dXJuICFUT1VDSEVTX0FSUkFZX1BST1RPVFlQRSAmJiAhVE9VQ0hFU19PQkpFQ1RfUFJPVE9UWVBFXG59XG5cbi8qKlxuICogQnVpbGQgcmVxdWVzdCBmaWVsZC9maWxlIG9iamVjdHMgdG8gcmV0dXJuXG4gKi9cbnR5cGUgQnVpbGRGaWVsZHMgPSAoaW5zdGFuY2U6IGFueSwgZmllbGQ6IHN0cmluZywgdmFsdWU6IGFueSkgPT4gYW55XG5leHBvcnQgY29uc3QgYnVpbGRGaWVsZHM6IEJ1aWxkRmllbGRzID0gKGluc3RhbmNlLCBmaWVsZCwgdmFsdWUpID0+IHtcbiAgLy8gRG8gbm90aGluZyBpZiB2YWx1ZSBpcyBub3Qgc2V0LlxuICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkgcmV0dXJuIGluc3RhbmNlXG4gIGluc3RhbmNlID0gaW5zdGFuY2UgfHwgT2JqZWN0LmNyZWF0ZShudWxsKVxuXG4gIGlmICghaXNTYWZlRnJvbVBvbGx1dGlvbihpbnN0YW5jZSwgZmllbGQpKSB7XG4gICAgcmV0dXJuIGluc3RhbmNlXG4gIH1cbiAgLy8gTm9uLWFycmF5IGZpZWxkc1xuICBpZiAoIWluc3RhbmNlW2ZpZWxkXSkge1xuICAgIGluc3RhbmNlW2ZpZWxkXSA9IHZhbHVlXG4gICAgcmV0dXJuIGluc3RhbmNlXG4gIH1cbiAgLy8gQXJyYXkgZmllbGRzXG4gIGlmIChpbnN0YW5jZVtmaWVsZF0gaW5zdGFuY2VvZiBBcnJheSkge1xuICAgIGluc3RhbmNlW2ZpZWxkXS5wdXNoKHZhbHVlKVxuICB9IGVsc2Uge1xuICAgIGluc3RhbmNlW2ZpZWxkXSA9IFtpbnN0YW5jZVtmaWVsZF0sIHZhbHVlXVxuICB9XG4gIHJldHVybiBpbnN0YW5jZVxufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBmb2xkZXIgaWYgaXQgZG9lcyBub3QgZXhpc3RcbiAqIGZvciBmaWxlIHNwZWNpZmllZCBpbiB0aGUgcGF0aCB2YXJpYWJsZVxuICovXG50eXBlIENoZWNrQW5kTWFrZURpciA9IChmaWxlVXBsb2FkT3B0aW9uczogTmV4dEZpbGVVcGxvYWRPcHRpb25zLCBmaWxlUGF0aDogc3RyaW5nKSA9PiBib29sZWFuXG5leHBvcnQgY29uc3QgY2hlY2tBbmRNYWtlRGlyOiBDaGVja0FuZE1ha2VEaXIgPSAoZmlsZVVwbG9hZE9wdGlvbnMsIGZpbGVQYXRoKSA9PiB7XG4gIGlmICghZmlsZVVwbG9hZE9wdGlvbnMuY3JlYXRlUGFyZW50UGF0aCkgcmV0dXJuIGZhbHNlXG4gIC8vIENoZWNrIHdoZXRoZXIgZm9sZGVyIGZvciB0aGUgZmlsZSBleGlzdHMuXG4gIGNvbnN0IHBhcmVudFBhdGggPSBwYXRoLmRpcm5hbWUoZmlsZVBhdGgpXG4gIC8vIENyZWF0ZSBmb2xkZXIgaWYgaXQgZG9lc24ndCBleGlzdC5cbiAgaWYgKCFmcy5leGlzdHNTeW5jKHBhcmVudFBhdGgpKSBmcy5ta2RpclN5bmMocGFyZW50UGF0aCwgeyByZWN1cnNpdmU6IHRydWUgfSlcbiAgLy8gQ2hlY2tzIGZvbGRlciBhZ2FpbiBhbmQgcmV0dXJuIGEgcmVzdWx0cy5cbiAgcmV0dXJuIGZzLmV4aXN0c1N5bmMocGFyZW50UGF0aClcbn1cblxuLyoqXG4gKiBEZWxldGUgYSBmaWxlLlxuICovXG50eXBlIERlbGV0ZUZpbGUgPSAoZmlsZVBhdGg6IHN0cmluZywgY2FsbGJhY2s6IChhcmdzOiBhbnkpID0+IHZvaWQpID0+IHZvaWRcbmV4cG9ydCBjb25zdCBkZWxldGVGaWxlOiBEZWxldGVGaWxlID0gKGZpbGVQYXRoLCBjYWxsYmFjazogKGFyZ3MpID0+IHZvaWQpID0+XG4gIGZzLnVubGluayhmaWxlUGF0aCwgY2FsbGJhY2spXG5cbi8qKlxuICogQ29weSBmaWxlIHZpYSBzdHJlYW1zXG4gKi9cbnR5cGUgQ29weUZpbGUgPSAoc3JjOiBzdHJpbmcsIGRzdDogc3RyaW5nLCBjYWxsYmFjazogKGVycjogRXJyb3IpID0+IHZvaWQpID0+IHZvaWRcbmNvbnN0IGNvcHlGaWxlOiBDb3B5RmlsZSA9IChzcmMsIGRzdCwgY2FsbGJhY2spID0+IHtcbiAgLy8gY2JDYWxsZWQgZmxhZyBhbmQgcnVuQ2IgaGVscHMgdG8gcnVuIGNiIG9ubHkgb25jZS5cbiAgbGV0IGNiQ2FsbGVkID0gZmFsc2VcbiAgY29uc3QgcnVuQ2IgPSAoZXJyPzogRXJyb3IpID0+IHtcbiAgICBpZiAoY2JDYWxsZWQpIHJldHVyblxuICAgIGNiQ2FsbGVkID0gdHJ1ZVxuICAgIGNhbGxiYWNrKGVycilcbiAgfVxuICAvLyBDcmVhdGUgcmVhZCBzdHJlYW1cbiAgY29uc3QgcmVhZGFibGUgPSBmcy5jcmVhdGVSZWFkU3RyZWFtKHNyYylcbiAgcmVhZGFibGUub24oJ2Vycm9yJywgcnVuQ2IpXG4gIC8vIENyZWF0ZSB3cml0ZSBzdHJlYW1cbiAgY29uc3Qgd3JpdGFibGUgPSBmcy5jcmVhdGVXcml0ZVN0cmVhbShkc3QpXG4gIHdyaXRhYmxlLm9uKCdlcnJvcicsIChlcnI6IEVycm9yKSA9PiB7XG4gICAgcmVhZGFibGUuZGVzdHJveSgpXG4gICAgcnVuQ2IoZXJyKVxuICB9KVxuICB3cml0YWJsZS5vbignY2xvc2UnLCAoKSA9PiBydW5DYigpKVxuICAvLyBDb3B5IGZpbGUgdmlhIHBpcGluZyBzdHJlYW1zLlxuICByZWFkYWJsZS5waXBlKHdyaXRhYmxlKVxufVxuXG4vKipcbiAqIG1vdmVGaWxlOiBtb3ZlcyB0aGUgZmlsZSBmcm9tIHNyYyB0byBkc3QuXG4gKiBGaXJzdGx5IHRyeWluZyB0byByZW5hbWUgdGhlIGZpbGUgaWYgbm8gbHVjayBjb3B5aW5nIGl0IHRvIGRzdCBhbmQgdGhlbiBkZWxldGluZyBzcmMuXG4gKi9cbnR5cGUgTW92ZUZpbGUgPSAoXG4gIHNyYzogc3RyaW5nLFxuICBkc3Q6IHN0cmluZyxcbiAgY2FsbGJhY2s6IChlcnI6IEVycm9yLCByZW5hbWVkPzogYm9vbGVhbikgPT4gdm9pZCxcbikgPT4gdm9pZFxuZXhwb3J0IGNvbnN0IG1vdmVGaWxlOiBNb3ZlRmlsZSA9IChzcmMsIGRzdCwgY2FsbGJhY2spID0+XG4gIGZzLnJlbmFtZShzcmMsIGRzdCwgKGVycikgPT4ge1xuICAgIGlmIChlcnIpIHtcbiAgICAgIC8vIFRyeSB0byBjb3B5IGZpbGUgaWYgcmVuYW1lIGRpZG4ndCB3b3JrLlxuICAgICAgY29weUZpbGUoc3JjLCBkc3QsIChjcEVycikgPT4gKGNwRXJyID8gY2FsbGJhY2soY3BFcnIpIDogZGVsZXRlRmlsZShzcmMsIGNhbGxiYWNrKSkpXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgLy8gRmlsZSB3YXMgcmVuYW1lZCBzdWNjZXNzZnVsbHk6IEFkZCB0cnVlIHRvIHRoZSBjYWxsYmFjayB0byBpbmRpY2F0ZSB0aGF0LlxuICAgIGNhbGxiYWNrKG51bGwsIHRydWUpXG4gIH0pXG5cbi8qKlxuICogU2F2ZSBidWZmZXIgZGF0YSB0byBhIGZpbGUuXG4gKiBAcGFyYW0ge0J1ZmZlcn0gYnVmZmVyIC0gYnVmZmVyIHRvIHNhdmUgdG8gYSBmaWxlLlxuICogQHBhcmFtIHtzdHJpbmd9IGZpbGVQYXRoIC0gcGF0aCB0byBhIGZpbGUuXG4gKi9cbmV4cG9ydCBjb25zdCBzYXZlQnVmZmVyVG9GaWxlID0gKGJ1ZmZlciwgZmlsZVBhdGgsIGNhbGxiYWNrKSA9PiB7XG4gIGlmICghQnVmZmVyLmlzQnVmZmVyKGJ1ZmZlcikpIHtcbiAgICByZXR1cm4gY2FsbGJhY2sobmV3IEVycm9yKCdidWZmZXIgdmFyaWFibGUgc2hvdWxkIGJlIHR5cGUgb2YgQnVmZmVyIScpKVxuICB9XG4gIC8vIFNldHVwIHJlYWRhYmxlIHN0cmVhbSBmcm9tIGJ1ZmZlci5cbiAgbGV0IHN0cmVhbURhdGEgPSBidWZmZXJcbiAgY29uc3QgcmVhZFN0cmVhbSA9IG5ldyBSZWFkYWJsZSgpXG4gIHJlYWRTdHJlYW0uX3JlYWQgPSAoKSA9PiB7XG4gICAgcmVhZFN0cmVhbS5wdXNoKHN0cmVhbURhdGEpXG4gICAgc3RyZWFtRGF0YSA9IG51bGxcbiAgfVxuICAvLyBTZXR1cCBmaWxlIHN5c3RlbSB3cml0YWJsZSBzdHJlYW0uXG4gIGNvbnN0IGZzdHJlYW0gPSBmcy5jcmVhdGVXcml0ZVN0cmVhbShmaWxlUGF0aClcbiAgLy8gY29uc29sZS5sb2coXCJDYWxsaW5nIHNhdmVCdWZmZXJcIik7XG4gIGZzdHJlYW0ub24oJ2Vycm9yJywgKGVycikgPT4ge1xuICAgIC8vIGNvbnNvbGUubG9nKFwiZXJyIGNiXCIpXG4gICAgY2FsbGJhY2soZXJyKVxuICB9KVxuICBmc3RyZWFtLm9uKCdjbG9zZScsICgpID0+IHtcbiAgICAvLyBjb25zb2xlLmxvZyhcImNsb3NlIGNiXCIpO1xuICAgIGNhbGxiYWNrKClcbiAgfSlcbiAgLy8gQ29weSBmaWxlIHZpYSBwaXBpbmcgc3RyZWFtcy5cbiAgcmVhZFN0cmVhbS5waXBlKGZzdHJlYW0pXG59XG5cbi8qKlxuICogRGVjb2RlcyB1cmlFbmNvZGVkIGZpbGUgbmFtZXMuXG4gKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG1pZGRsZXdhcmUgb3B0aW9ucy5cbiAqIEBwYXJhbSBmaWxlTmFtZSB7U3RyaW5nfSAtIGZpbGUgbmFtZSB0byBkZWNvZGUuXG4gKiBAcmV0dXJucyB7U3RyaW5nfVxuICovXG5jb25zdCB1cmlEZWNvZGVGaWxlTmFtZSA9IChvcHRzLCBmaWxlTmFtZSkgPT4ge1xuICBpZiAoIW9wdHMgfHwgIW9wdHMudXJpRGVjb2RlRmlsZU5hbWVzKSB7XG4gICAgcmV0dXJuIGZpbGVOYW1lXG4gIH1cbiAgLy8gRGVjb2RlIGZpbGUgbmFtZSBmcm9tIFVSSSB3aXRoIGNoZWNraW5nIFVSSSBtYWxmb3JtZWQgZXJyb3JzLlxuICAvLyBTZWUgSXNzdWUgaHR0cHM6Ly9naXRodWIuY29tL3JpY2hhcmRnaXJnZXMvZXhwcmVzcy1maWxldXBsb2FkL2lzc3Vlcy8zNDIuXG4gIHRyeSB7XG4gICAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChmaWxlTmFtZSlcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgY29uc3QgbWF0Y2hlciA9IC8oJVthLWZcXGRdezJ9KS9naVxuICAgIHJldHVybiBmaWxlTmFtZVxuICAgICAgLnNwbGl0KG1hdGNoZXIpXG4gICAgICAubWFwKChzdHIpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHN0cilcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgcmV0dXJuICcnXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICAuam9pbignJylcbiAgfVxufVxuXG4vKipcbiAqIFBhcnNlcyBmaWxlbmFtZSBhbmQgZXh0ZW5zaW9uIGFuZCByZXR1cm5zIG9iamVjdCB7bmFtZSwgZXh0ZW5zaW9ufS5cbiAqL1xudHlwZSBQYXJzZUZpbGVOYW1lRXh0ZW5zaW9uID0gKFxuICBwcmVzZXJ2ZUV4dGVuc2lvbjogYm9vbGVhbiB8IG51bWJlcixcbiAgZmlsZU5hbWU6IHN0cmluZyxcbikgPT4ge1xuICBleHRlbnNpb246IHN0cmluZ1xuICBuYW1lOiBzdHJpbmdcbn1cbmV4cG9ydCBjb25zdCBwYXJzZUZpbGVOYW1lRXh0ZW5zaW9uOiBQYXJzZUZpbGVOYW1lRXh0ZW5zaW9uID0gKHByZXNlcnZlRXh0ZW5zaW9uLCBmaWxlTmFtZSkgPT4ge1xuICBjb25zdCBkZWZhdWx0UmVzdWx0ID0ge1xuICAgIG5hbWU6IGZpbGVOYW1lLFxuICAgIGV4dGVuc2lvbjogJycsXG4gIH1cbiAgaWYgKCFwcmVzZXJ2ZUV4dGVuc2lvbikgcmV0dXJuIGRlZmF1bHRSZXN1bHRcblxuICAvLyBEZWZpbmUgbWF4aW11bSBleHRlbnNpb24gbGVuZ3RoXG4gIGNvbnN0IG1heEV4dExlbmd0aCA9XG4gICAgdHlwZW9mIHByZXNlcnZlRXh0ZW5zaW9uID09PSAnYm9vbGVhbicgPyBNQVhfRVhURU5TSU9OX0xFTkdUSCA6IHByZXNlcnZlRXh0ZW5zaW9uXG5cbiAgY29uc3QgbmFtZVBhcnRzID0gZmlsZU5hbWUuc3BsaXQoJy4nKVxuICBpZiAobmFtZVBhcnRzLmxlbmd0aCA8IDIpIHJldHVybiBkZWZhdWx0UmVzdWx0XG5cbiAgbGV0IGV4dGVuc2lvbiA9IG5hbWVQYXJ0cy5wb3AoKVxuICBpZiAoZXh0ZW5zaW9uLmxlbmd0aCA+IG1heEV4dExlbmd0aCAmJiBtYXhFeHRMZW5ndGggPiAwKSB7XG4gICAgbmFtZVBhcnRzW25hbWVQYXJ0cy5sZW5ndGggLSAxXSArPSAnLicgKyBleHRlbnNpb24uc3Vic3RyKDAsIGV4dGVuc2lvbi5sZW5ndGggLSBtYXhFeHRMZW5ndGgpXG4gICAgZXh0ZW5zaW9uID0gZXh0ZW5zaW9uLnN1YnN0cigtbWF4RXh0TGVuZ3RoKVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiBuYW1lUGFydHMuam9pbignLicpLFxuICAgIGV4dGVuc2lvbjogbWF4RXh0TGVuZ3RoID8gZXh0ZW5zaW9uIDogJycsXG4gIH1cbn1cblxuLyoqXG4gKiBQYXJzZSBmaWxlIG5hbWUgYW5kIGV4dGVuc2lvbi5cbiAqL1xudHlwZSBQYXJzZUZpbGVOYW1lID0gKG9wdHM6IE5leHRGaWxlVXBsb2FkT3B0aW9ucywgZmlsZU5hbWU6IHN0cmluZykgPT4gc3RyaW5nXG5leHBvcnQgY29uc3QgcGFyc2VGaWxlTmFtZTogUGFyc2VGaWxlTmFtZSA9IChvcHRzLCBmaWxlTmFtZSkgPT4ge1xuICAvLyBDaGVjayBmaWxlTmFtZSBhcmd1bWVudFxuICBpZiAoIWZpbGVOYW1lIHx8IHR5cGVvZiBmaWxlTmFtZSAhPT0gJ3N0cmluZycpIHJldHVybiBnZXRUZW1wRmlsZW5hbWUoKVxuICAvLyBDdXQgb2ZmIGZpbGUgbmFtZSBpZiBpdCdzIGxlbmd0aCBtb3JlIHRoZW4gMjU1LlxuICBsZXQgcGFyc2VkTmFtZSA9IGZpbGVOYW1lLmxlbmd0aCA8PSAyNTUgPyBmaWxlTmFtZSA6IGZpbGVOYW1lLnN1YnN0cigwLCAyNTUpXG4gIC8vIERlY29kZSBmaWxlIG5hbWUgaWYgdXJpRGVjb2RlRmlsZU5hbWVzIG9wdGlvbiBzZXQgdHJ1ZS5cbiAgcGFyc2VkTmFtZSA9IHVyaURlY29kZUZpbGVOYW1lKG9wdHMsIHBhcnNlZE5hbWUpXG4gIC8vIFN0b3AgcGFyc2luZyBmaWxlIG5hbWUgaWYgc2FmZUZpbGVOYW1lcyBvcHRpb25zIGhhc24ndCBiZWVuIHNldC5cbiAgaWYgKCFvcHRzLnNhZmVGaWxlTmFtZXMpIHJldHVybiBwYXJzZWROYW1lXG4gIC8vIFNldCByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHRoZSBmaWxlIG5hbWUuXG4gIGNvbnN0IG5hbWVSZWdleCA9XG4gICAgdHlwZW9mIG9wdHMuc2FmZUZpbGVOYW1lcyA9PT0gJ29iamVjdCcgJiYgb3B0cy5zYWZlRmlsZU5hbWVzIGluc3RhbmNlb2YgUmVnRXhwXG4gICAgICA/IG9wdHMuc2FmZUZpbGVOYW1lc1xuICAgICAgOiBTQUZFX0ZJTEVfTkFNRV9SRUdFWFxuICAvLyBQYXJzZSBmaWxlIG5hbWUgZXh0ZW5zaW9uLlxuICBsZXQgeyBuYW1lLCBleHRlbnNpb24gfSA9IHBhcnNlRmlsZU5hbWVFeHRlbnNpb24ob3B0cy5wcmVzZXJ2ZUV4dGVuc2lvbiwgcGFyc2VkTmFtZSlcbiAgaWYgKGV4dGVuc2lvbi5sZW5ndGgpIGV4dGVuc2lvbiA9ICcuJyArIGV4dGVuc2lvbi5yZXBsYWNlKG5hbWVSZWdleCwgJycpXG5cbiAgcmV0dXJuIG5hbWUucmVwbGFjZShuYW1lUmVnZXgsICcnKS5jb25jYXQoZXh0ZW5zaW9uKVxufVxuIl0sIm5hbWVzIjpbImZzIiwicGF0aCIsIlJlYWRhYmxlIiwiU0FGRV9GSUxFX05BTUVfUkVHRVgiLCJNQVhfRVhURU5TSU9OX0xFTkdUSCIsIlRFTVBfQ09VTlRFUl9NQVgiLCJURU1QX1BSRUZJWCIsInRlbXBDb3VudGVyIiwiZGVidWdMb2ciLCJvcHRpb25zIiwibXNnIiwib3B0cyIsImRlYnVnIiwiY29uc29sZSIsImxvZyIsImdldFRlbXBGaWxlbmFtZSIsInByZWZpeCIsIkRhdGUiLCJub3ciLCJpc0Z1bmMiLCJ2YWx1ZSIsImVycm9yRnVuYyIsInJlc29sdmUiLCJyZWplY3QiLCJwcm9taXNlQ2FsbGJhY2siLCJoYXNGaXJlZCIsImVyciIsIk9CSkVDVF9QUk9UT1RZUEVfS0VZUyIsIk9iamVjdCIsImdldE93blByb3BlcnR5TmFtZXMiLCJwcm90b3R5cGUiLCJBUlJBWV9QUk9UT1RZUEVfS0VZUyIsIkFycmF5IiwiaXNTYWZlRnJvbVBvbGx1dGlvbiIsImJhc2UiLCJrZXkiLCJUT1VDSEVTX0FSUkFZX1BST1RPVFlQRSIsImluY2x1ZGVzIiwiVE9VQ0hFU19PQkpFQ1RfUFJPVE9UWVBFIiwiYnVpbGRGaWVsZHMiLCJpbnN0YW5jZSIsImZpZWxkIiwidW5kZWZpbmVkIiwiY3JlYXRlIiwicHVzaCIsImNoZWNrQW5kTWFrZURpciIsImZpbGVVcGxvYWRPcHRpb25zIiwiZmlsZVBhdGgiLCJjcmVhdGVQYXJlbnRQYXRoIiwicGFyZW50UGF0aCIsImRpcm5hbWUiLCJleGlzdHNTeW5jIiwibWtkaXJTeW5jIiwicmVjdXJzaXZlIiwiZGVsZXRlRmlsZSIsImNhbGxiYWNrIiwidW5saW5rIiwiY29weUZpbGUiLCJzcmMiLCJkc3QiLCJjYkNhbGxlZCIsInJ1bkNiIiwicmVhZGFibGUiLCJjcmVhdGVSZWFkU3RyZWFtIiwib24iLCJ3cml0YWJsZSIsImNyZWF0ZVdyaXRlU3RyZWFtIiwiZGVzdHJveSIsInBpcGUiLCJtb3ZlRmlsZSIsInJlbmFtZSIsImNwRXJyIiwic2F2ZUJ1ZmZlclRvRmlsZSIsImJ1ZmZlciIsIkJ1ZmZlciIsImlzQnVmZmVyIiwiRXJyb3IiLCJzdHJlYW1EYXRhIiwicmVhZFN0cmVhbSIsIl9yZWFkIiwiZnN0cmVhbSIsInVyaURlY29kZUZpbGVOYW1lIiwiZmlsZU5hbWUiLCJ1cmlEZWNvZGVGaWxlTmFtZXMiLCJkZWNvZGVVUklDb21wb25lbnQiLCJtYXRjaGVyIiwic3BsaXQiLCJtYXAiLCJzdHIiLCJqb2luIiwicGFyc2VGaWxlTmFtZUV4dGVuc2lvbiIsInByZXNlcnZlRXh0ZW5zaW9uIiwiZGVmYXVsdFJlc3VsdCIsIm5hbWUiLCJleHRlbnNpb24iLCJtYXhFeHRMZW5ndGgiLCJuYW1lUGFydHMiLCJsZW5ndGgiLCJwb3AiLCJzdWJzdHIiLCJwYXJzZUZpbGVOYW1lIiwicGFyc2VkTmFtZSIsInNhZmVGaWxlTmFtZXMiLCJuYW1lUmVnZXgiLCJSZWdFeHAiLCJyZXBsYWNlIiwiY29uY2F0Il0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxRQUFRLEtBQUk7QUFDbkIsT0FBT0MsVUFBVSxPQUFNO0FBQ3ZCLFNBQVNDLFFBQVEsUUFBUSxTQUFRO0FBSWpDLHlDQUF5QztBQUN6QyxNQUFNQyx1QkFBdUI7QUFDN0IsTUFBTUMsdUJBQXVCO0FBRTdCLHNEQUFzRDtBQUN0RCxNQUFNQyxtQkFBbUI7QUFDekIsTUFBTUMsY0FBYztBQUNwQixJQUFJQyxjQUFjO0FBRWxCOztDQUVDLEdBQ0QsT0FBTyxNQUFNQyxXQUFXLENBQUNDLFNBQWdDQztJQUN2RCxNQUFNQyxPQUFPRixXQUFXLENBQUM7SUFDekIsSUFBSSxDQUFDRSxLQUFLQyxLQUFLLEVBQUUsT0FBTztJQUN4QkMsUUFBUUMsR0FBRyxDQUFDLENBQUMscUJBQXFCLEVBQUVKLElBQUksQ0FBQyxFQUFFLHNCQUFzQjs7SUFDakUsT0FBTztBQUNULEVBQUM7QUFFRDs7Q0FFQyxHQUNELE9BQU8sTUFBTUssa0JBQWtCLENBQUNDLFNBQWlCVixXQUFXO0lBQzFEQyxjQUFjQSxlQUFlRixtQkFBbUIsSUFBSUUsY0FBYztJQUNsRSxPQUFPLENBQUMsRUFBRVMsT0FBTyxDQUFDLEVBQUVULFlBQVksQ0FBQyxFQUFFVSxLQUFLQyxHQUFHLEdBQUcsQ0FBQztBQUNqRCxFQUFDO0FBR0QsT0FBTyxNQUFNQyxTQUFTLENBQUNDO0lBQ3JCLE9BQU8sT0FBT0EsVUFBVTtBQUMxQixFQUFDO0FBTUQsTUFBTUMsWUFBdUIsQ0FBQ0MsU0FBU0MsU0FBWUosT0FBT0ksVUFBVUEsU0FBU0Q7QUFPN0UsT0FBTyxNQUFNRSxrQkFBbUMsQ0FBQ0YsU0FBU0M7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
|
|
@@ -1,2 +1,6 @@
|
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
+
import fs from 'fs';
|
|
3
|
+
export declare function iteratorToStream(iterator: any): ReadableStream<any>;
|
|
4
|
+
export declare function nodeStreamToIterator(stream: fs.ReadStream): AsyncGenerator<Uint8Array, void, unknown>;
|
|
1
5
|
export declare function streamFile(path: string): ReadableStream;
|
|
2
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/next-stream-file/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/next-stream-file/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,IAAI,CAAA;AAEnB,wBAAgB,gBAAgB,CAAC,QAAQ,KAAA,uBAWxC;AAED,wBAAuB,oBAAoB,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,6CAIhE;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAIvD"}
|