@strapi/review-workflows 0.0.0-next.e1a19b9e52cdcb526515883c8289522a64c9871a → 0.0.0-next.e2e3ca14971ee768e1a227a209362264fd0132d4
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/admin/components/LimitsModal.js.map +1 -1
- package/dist/admin/components/LimitsModal.mjs.map +1 -1
- package/dist/admin/components/Widgets.js.map +1 -1
- package/dist/admin/components/Widgets.mjs.map +1 -1
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs.map +1 -1
- package/dist/admin/routes/purchase-review-workflows.js +2 -2
- package/dist/admin/routes/purchase-review-workflows.js.map +1 -1
- package/dist/admin/routes/purchase-review-workflows.mjs +2 -2
- package/dist/admin/routes/purchase-review-workflows.mjs.map +1 -1
- package/dist/admin/routes/settings/components/Stages.js +1 -0
- package/dist/admin/routes/settings/components/Stages.js.map +1 -1
- package/dist/admin/routes/settings/components/Stages.mjs +1 -0
- package/dist/admin/routes/settings/components/Stages.mjs.map +1 -1
- package/dist/admin/routes/settings/components/WorkflowAttributes.js +4 -1
- package/dist/admin/routes/settings/components/WorkflowAttributes.js.map +1 -1
- package/dist/admin/routes/settings/components/WorkflowAttributes.mjs +4 -1
- package/dist/admin/routes/settings/components/WorkflowAttributes.mjs.map +1 -1
- package/dist/admin/routes/settings/id.js +9 -2
- package/dist/admin/routes/settings/id.js.map +1 -1
- package/dist/admin/routes/settings/id.mjs +10 -3
- package/dist/admin/routes/settings/id.mjs.map +1 -1
- package/dist/admin/routes/settings/index.js +1 -0
- package/dist/admin/routes/settings/index.js.map +1 -1
- package/dist/admin/routes/settings/index.mjs +1 -0
- package/dist/admin/routes/settings/index.mjs.map +1 -1
- package/dist/admin/services/content-manager.js.map +1 -1
- package/dist/admin/services/content-manager.mjs.map +1 -1
- package/dist/admin/services/settings.js.map +1 -1
- package/dist/admin/services/settings.mjs.map +1 -1
- package/dist/admin/src/services/admin.d.ts +1 -1
- package/dist/admin/src/services/api.d.ts +1 -1
- package/dist/admin/src/services/content-manager.d.ts +4 -4
- package/dist/admin/src/services/settings.d.ts +3 -3
- package/dist/admin/utils/translations.js.map +1 -1
- package/dist/admin/utils/translations.mjs.map +1 -1
- package/dist/admin/utils/users.js.map +1 -1
- package/dist/admin/utils/users.mjs.map +1 -1
- package/dist/server/migrations/shorten-stage-attribute.js.map +1 -1
- package/dist/server/migrations/shorten-stage-attribute.mjs.map +1 -1
- package/dist/server/services/metrics/weekly-metrics.js.map +1 -1
- package/dist/server/services/metrics/weekly-metrics.mjs.map +1 -1
- package/dist/server/services/stage-permissions.js.map +1 -1
- package/dist/server/services/stage-permissions.mjs.map +1 -1
- package/dist/server/services/stages.js.map +1 -1
- package/dist/server/services/stages.mjs.map +1 -1
- package/dist/server/utils/index.js.map +1 -1
- package/dist/server/utils/index.mjs.map +1 -1
- package/package.json +8 -8
|
@@ -191,6 +191,7 @@ const ReviewWorkflowsListView = ()=>{
|
|
|
191
191
|
children: [
|
|
192
192
|
canRead || canUpdate ? /*#__PURE__*/ jsx(IconButton, {
|
|
193
193
|
tag: Link,
|
|
194
|
+
onClick: (e)=>e.stopPropagation(),
|
|
194
195
|
to: workflow.id.toString(),
|
|
195
196
|
label: formatMessage({
|
|
196
197
|
id: 'Settings.review-workflows.list.page.list.column.actions.edit.label',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../../admin/src/routes/settings/index.tsx"],"sourcesContent":["/* eslint-disable check-file/no-index */\n/* eslint-disable check-file/filename-naming-convention */\nimport * as React from 'react';\n\nimport { Page, useTracking, ConfirmDialog, useRBAC, Table } from '@strapi/admin/strapi-admin';\nimport { useLicenseLimits } from '@strapi/admin/strapi-admin/ee';\nimport { Flex, IconButton, TFooter, Typography, LinkButton, Dialog } from '@strapi/design-system';\nimport { Pencil, Plus, Trash } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { NavLink, Link, useNavigate } from 'react-router-dom';\n\nimport { LimitsModal } from '../../components/LimitsModal';\nimport { CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME } from '../../constants';\nimport { useTypedSelector } from '../../modules/hooks';\nimport { ContentType, useGetContentTypesQuery } from '../../services/content-manager';\n\nimport * as Layout from './components/Layout';\nimport { useReviewWorkflows } from './hooks/useReviewWorkflows';\n\nexport const ReviewWorkflowsListView = () => {\n const { formatMessage } = useIntl();\n const navigate = useNavigate();\n const { trackUsage } = useTracking();\n const [workflowToDelete, setWorkflowToDelete] = React.useState<string | null>(null);\n const [showLimitModal, setShowLimitModal] = React.useState<boolean>(false);\n const { data, isLoading: isLoadingModels } = useGetContentTypesQuery();\n const { meta, workflows, isLoading, delete: deleteAction } = useReviewWorkflows();\n const { getFeature, isLoading: isLicenseLoading } = useLicenseLimits();\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['review-workflows']\n );\n const {\n allowedActions: { canCreate, canRead, canUpdate, canDelete },\n } = useRBAC(permissions);\n\n const limits = getFeature('review-workflows');\n const numberOfWorkflows = limits?.[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME] as string;\n\n const handleDeleteWorkflow = (workflowId: string) => {\n setWorkflowToDelete(workflowId);\n };\n\n const toggleConfirmDeleteDialog = () => {\n setWorkflowToDelete(null);\n };\n\n const handleConfirmDeleteDialog = async () => {\n if (!workflowToDelete) return;\n\n await deleteAction(workflowToDelete);\n\n setWorkflowToDelete(null);\n };\n\n const handleCreateClick: React.MouseEventHandler<HTMLAnchorElement> &\n ((event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void) = (event) => {\n event.preventDefault();\n /**\n * If the current license has a workflow limit:\n * check if the total count of workflows exceeds that limit. If so,\n * prevent the navigation and show the limits overlay.\n *\n * If the current license does not have a limit (e.g. offline license):\n * allow the user to navigate to the create-view. In case they exceed the\n * current hard-limit of 200 they will see an error thrown by the API.\n */\n\n if (numberOfWorkflows && meta && meta?.workflowCount >= parseInt(numberOfWorkflows, 10)) {\n event.preventDefault();\n setShowLimitModal(true);\n } else {\n navigate('create');\n trackUsage('willCreateWorkflow');\n }\n };\n\n /**\n * If the current license has a limit:\n * check if the total count of workflows or stages exceeds that limit and display\n * the limits modal on page load. It can be closed by the user, but the\n * API will throw an error in case they try to create a new workflow or update the\n * stages.\n *\n * If the current license does not have a limit (e.g. offline license):\n * do nothing (for now). In case they are trying to create the 201st workflow/ stage\n * the API will throw an error.\n *\n */\n React.useEffect(() => {\n if (!isLoading && !isLicenseLoading) {\n if (numberOfWorkflows && meta && meta?.workflowCount > parseInt(numberOfWorkflows, 10)) {\n setShowLimitModal(true);\n }\n }\n }, [isLicenseLoading, isLoading, meta, meta?.workflowCount, numberOfWorkflows]);\n\n const headers = [\n {\n label: formatMessage({\n id: 'Settings.review-workflows.list.page.list.column.name.title',\n defaultMessage: 'Name',\n }),\n name: 'name',\n },\n {\n label: formatMessage({\n id: 'Settings.review-workflows.list.page.list.column.stages.title',\n defaultMessage: 'Stages',\n }),\n name: 'stages',\n },\n {\n label: formatMessage({\n id: 'Settings.review-workflows.list.page.list.column.contentTypes.title',\n defaultMessage: 'Content Types',\n }),\n name: 'content-types',\n },\n ];\n\n if (isLoading || isLoadingModels) {\n return <Page.Loading />;\n }\n\n const contentTypes = Object.values(data ?? {}).reduce<ContentType[]>((acc, curr) => {\n acc.push(...curr);\n return acc;\n }, []);\n\n return (\n <>\n <Layout.Header\n primaryAction={\n canCreate ? (\n <LinkButton\n startIcon={<Plus />}\n size=\"S\"\n tag={NavLink}\n to=\"create\"\n onClick={handleCreateClick}\n >\n {formatMessage({\n id: 'Settings.review-workflows.list.page.create',\n defaultMessage: 'Create new workflow',\n })}\n </LinkButton>\n ) : null\n }\n subtitle={formatMessage({\n id: 'Settings.review-workflows.list.page.subtitle',\n defaultMessage: 'Manage your content review process',\n })}\n title={formatMessage({\n id: 'Settings.review-workflows.list.page.title',\n defaultMessage: 'Review Workflows',\n })}\n />\n\n <Layout.Root>\n <Table.Root\n isLoading={isLoading}\n rows={workflows}\n footer={\n canCreate ? (\n <TFooter cursor=\"pointer\" icon={<Plus />} onClick={handleCreateClick}>\n {formatMessage({\n id: 'Settings.review-workflows.list.page.create',\n defaultMessage: 'Create new workflow',\n })}\n </TFooter>\n ) : null\n }\n headers={headers}\n >\n <Table.Content>\n <Table.Head>\n {headers.map((head) => (\n <Table.HeaderCell key={head.name} {...head} />\n ))}\n </Table.Head>\n\n <Table.Body>\n {workflows.map((workflow) => (\n <Table.Row\n onClick={() => {\n navigate(`${workflow.id}`);\n }}\n key={workflow.id}\n >\n <Table.Cell width=\"25rem\">\n <Typography textColor=\"neutral800\" fontWeight=\"bold\" ellipsis>\n {workflow.name}\n </Typography>\n </Table.Cell>\n <Table.Cell>\n <Typography textColor=\"neutral800\">{workflow.stages.length}</Typography>\n </Table.Cell>\n <Table.Cell>\n <Typography textColor=\"neutral800\">\n {workflow.contentTypes\n .map((uid: string) => {\n const contentType = contentTypes.find(\n (contentType) => contentType.uid === uid\n );\n\n return contentType?.info.displayName ?? '';\n })\n .join(', ')}\n </Typography>\n </Table.Cell>\n <Table.Cell>\n <Flex alignItems=\"center\" justifyContent=\"end\">\n {canRead || canUpdate ? (\n <IconButton\n tag={Link}\n to={workflow.id.toString()}\n label={formatMessage(\n {\n id: 'Settings.review-workflows.list.page.list.column.actions.edit.label',\n defaultMessage: 'Edit {name}',\n },\n { name: workflow.name }\n )}\n variant=\"ghost\"\n >\n <Pencil />\n </IconButton>\n ) : null}\n {workflows.length > 1 && canDelete ? (\n <IconButton\n withTooltip={false}\n label={formatMessage(\n {\n id: 'Settings.review-workflows.list.page.list.column.actions.delete.label',\n defaultMessage: 'Delete {name}',\n },\n { name: 'Default workflow' }\n )}\n variant=\"ghost\"\n onClick={(e) => {\n e.stopPropagation();\n handleDeleteWorkflow(String(workflow.id));\n }}\n >\n <Trash />\n </IconButton>\n ) : null}\n </Flex>\n </Table.Cell>\n </Table.Row>\n ))}\n </Table.Body>\n </Table.Content>\n </Table.Root>\n\n <Dialog.Root open={!!workflowToDelete} onOpenChange={toggleConfirmDeleteDialog}>\n <ConfirmDialog onConfirm={handleConfirmDeleteDialog}>\n {formatMessage({\n id: 'Settings.review-workflows.list.page.delete.confirm.body',\n defaultMessage:\n 'If you remove this worfklow, all stage-related information will be removed for this content-type. Are you sure you want to remove it?',\n })}\n </ConfirmDialog>\n </Dialog.Root>\n\n <LimitsModal.Root open={showLimitModal} onOpenChange={() => setShowLimitModal(false)}>\n <LimitsModal.Title>\n {formatMessage({\n id: 'Settings.review-workflows.list.page.workflows.limit.title',\n defaultMessage: 'You’ve reached the limit of workflows in your plan',\n })}\n </LimitsModal.Title>\n\n <LimitsModal.Body>\n {formatMessage({\n id: 'Settings.review-workflows.list.page.workflows.limit.body',\n defaultMessage: 'Delete a workflow or contact Sales to enable more workflows.',\n })}\n </LimitsModal.Body>\n </LimitsModal.Root>\n </Layout.Root>\n </>\n );\n};\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['review-workflows']?.main\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <ReviewWorkflowsListView />\n </Page.Protect>\n );\n};\n\nexport { ProtectedListPage };\n"],"names":["ReviewWorkflowsListView","formatMessage","useIntl","navigate","useNavigate","trackUsage","useTracking","workflowToDelete","setWorkflowToDelete","React","useState","showLimitModal","setShowLimitModal","data","isLoading","isLoadingModels","useGetContentTypesQuery","meta","workflows","delete","deleteAction","useReviewWorkflows","getFeature","isLicenseLoading","useLicenseLimits","permissions","useTypedSelector","state","admin_app","settings","allowedActions","canCreate","canRead","canUpdate","canDelete","useRBAC","limits","numberOfWorkflows","CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME","handleDeleteWorkflow","workflowId","toggleConfirmDeleteDialog","handleConfirmDeleteDialog","handleCreateClick","event","preventDefault","workflowCount","parseInt","useEffect","headers","label","id","defaultMessage","name","_jsx","Page","Loading","contentTypes","Object","values","reduce","acc","curr","push","_jsxs","_Fragment","Layout","primaryAction","LinkButton","startIcon","Plus","size","tag","NavLink","to","onClick","subtitle","title","Table","Root","rows","footer","TFooter","cursor","icon","Content","Head","map","head","HeaderCell","Body","workflow","Row","Cell","width","Typography","textColor","fontWeight","ellipsis","stages","length","uid","contentType","find","info","displayName","join","Flex","alignItems","justifyContent","IconButton","Link","toString","variant","Pencil","withTooltip","e","stopPropagation","String","Trash","Dialog","open","onOpenChange","ConfirmDialog","onConfirm","LimitsModal","Title","ProtectedListPage","main","Protect"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../admin/src/routes/settings/index.tsx"],"sourcesContent":["/* eslint-disable check-file/no-index */\n/* eslint-disable check-file/filename-naming-convention */\nimport * as React from 'react';\n\nimport { Page, useTracking, ConfirmDialog, useRBAC, Table } from '@strapi/admin/strapi-admin';\nimport { useLicenseLimits } from '@strapi/admin/strapi-admin/ee';\nimport { Flex, IconButton, TFooter, Typography, LinkButton, Dialog } from '@strapi/design-system';\nimport { Pencil, Plus, Trash } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { NavLink, Link, useNavigate } from 'react-router-dom';\n\nimport { LimitsModal } from '../../components/LimitsModal';\nimport { CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME } from '../../constants';\nimport { useTypedSelector } from '../../modules/hooks';\nimport { ContentType, useGetContentTypesQuery } from '../../services/content-manager';\n\nimport * as Layout from './components/Layout';\nimport { useReviewWorkflows } from './hooks/useReviewWorkflows';\n\nexport const ReviewWorkflowsListView = () => {\n const { formatMessage } = useIntl();\n const navigate = useNavigate();\n const { trackUsage } = useTracking();\n const [workflowToDelete, setWorkflowToDelete] = React.useState<string | null>(null);\n const [showLimitModal, setShowLimitModal] = React.useState<boolean>(false);\n const { data, isLoading: isLoadingModels } = useGetContentTypesQuery();\n const { meta, workflows, isLoading, delete: deleteAction } = useReviewWorkflows();\n const { getFeature, isLoading: isLicenseLoading } = useLicenseLimits();\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['review-workflows']\n );\n const {\n allowedActions: { canCreate, canRead, canUpdate, canDelete },\n } = useRBAC(permissions);\n\n const limits = getFeature('review-workflows');\n const numberOfWorkflows = limits?.[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME] as string;\n\n const handleDeleteWorkflow = (workflowId: string) => {\n setWorkflowToDelete(workflowId);\n };\n\n const toggleConfirmDeleteDialog = () => {\n setWorkflowToDelete(null);\n };\n\n const handleConfirmDeleteDialog = async () => {\n if (!workflowToDelete) return;\n\n await deleteAction(workflowToDelete);\n\n setWorkflowToDelete(null);\n };\n\n const handleCreateClick: React.MouseEventHandler<HTMLAnchorElement> &\n ((event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void) = (event) => {\n event.preventDefault();\n /**\n * If the current license has a workflow limit:\n * check if the total count of workflows exceeds that limit. If so,\n * prevent the navigation and show the limits overlay.\n *\n * If the current license does not have a limit (e.g. offline license):\n * allow the user to navigate to the create-view. In case they exceed the\n * current hard-limit of 200 they will see an error thrown by the API.\n */\n\n if (numberOfWorkflows && meta && meta?.workflowCount >= parseInt(numberOfWorkflows, 10)) {\n event.preventDefault();\n setShowLimitModal(true);\n } else {\n navigate('create');\n trackUsage('willCreateWorkflow');\n }\n };\n\n /**\n * If the current license has a limit:\n * check if the total count of workflows or stages exceeds that limit and display\n * the limits modal on page load. It can be closed by the user, but the\n * API will throw an error in case they try to create a new workflow or update the\n * stages.\n *\n * If the current license does not have a limit (e.g. offline license):\n * do nothing (for now). In case they are trying to create the 201st workflow/ stage\n * the API will throw an error.\n *\n */\n React.useEffect(() => {\n if (!isLoading && !isLicenseLoading) {\n if (numberOfWorkflows && meta && meta?.workflowCount > parseInt(numberOfWorkflows, 10)) {\n setShowLimitModal(true);\n }\n }\n }, [isLicenseLoading, isLoading, meta, meta?.workflowCount, numberOfWorkflows]);\n\n const headers = [\n {\n label: formatMessage({\n id: 'Settings.review-workflows.list.page.list.column.name.title',\n defaultMessage: 'Name',\n }),\n name: 'name',\n },\n {\n label: formatMessage({\n id: 'Settings.review-workflows.list.page.list.column.stages.title',\n defaultMessage: 'Stages',\n }),\n name: 'stages',\n },\n {\n label: formatMessage({\n id: 'Settings.review-workflows.list.page.list.column.contentTypes.title',\n defaultMessage: 'Content Types',\n }),\n name: 'content-types',\n },\n ];\n\n if (isLoading || isLoadingModels) {\n return <Page.Loading />;\n }\n\n const contentTypes = Object.values(data ?? {}).reduce<ContentType[]>((acc, curr) => {\n acc.push(...curr);\n return acc;\n }, []);\n\n return (\n <>\n <Layout.Header\n primaryAction={\n canCreate ? (\n <LinkButton\n startIcon={<Plus />}\n size=\"S\"\n tag={NavLink}\n to=\"create\"\n onClick={handleCreateClick}\n >\n {formatMessage({\n id: 'Settings.review-workflows.list.page.create',\n defaultMessage: 'Create new workflow',\n })}\n </LinkButton>\n ) : null\n }\n subtitle={formatMessage({\n id: 'Settings.review-workflows.list.page.subtitle',\n defaultMessage: 'Manage your content review process',\n })}\n title={formatMessage({\n id: 'Settings.review-workflows.list.page.title',\n defaultMessage: 'Review Workflows',\n })}\n />\n\n <Layout.Root>\n <Table.Root\n isLoading={isLoading}\n rows={workflows}\n footer={\n canCreate ? (\n <TFooter cursor=\"pointer\" icon={<Plus />} onClick={handleCreateClick}>\n {formatMessage({\n id: 'Settings.review-workflows.list.page.create',\n defaultMessage: 'Create new workflow',\n })}\n </TFooter>\n ) : null\n }\n headers={headers}\n >\n <Table.Content>\n <Table.Head>\n {headers.map((head) => (\n <Table.HeaderCell key={head.name} {...head} />\n ))}\n </Table.Head>\n\n <Table.Body>\n {workflows.map((workflow) => (\n <Table.Row\n onClick={() => {\n navigate(`${workflow.id}`);\n }}\n key={workflow.id}\n >\n <Table.Cell width=\"25rem\">\n <Typography textColor=\"neutral800\" fontWeight=\"bold\" ellipsis>\n {workflow.name}\n </Typography>\n </Table.Cell>\n <Table.Cell>\n <Typography textColor=\"neutral800\">{workflow.stages.length}</Typography>\n </Table.Cell>\n <Table.Cell>\n <Typography textColor=\"neutral800\">\n {workflow.contentTypes\n .map((uid: string) => {\n const contentType = contentTypes.find(\n (contentType) => contentType.uid === uid\n );\n\n return contentType?.info.displayName ?? '';\n })\n .join(', ')}\n </Typography>\n </Table.Cell>\n <Table.Cell>\n <Flex alignItems=\"center\" justifyContent=\"end\">\n {canRead || canUpdate ? (\n <IconButton\n tag={Link}\n onClick={(e) => e.stopPropagation()}\n to={workflow.id.toString()}\n label={formatMessage(\n {\n id: 'Settings.review-workflows.list.page.list.column.actions.edit.label',\n defaultMessage: 'Edit {name}',\n },\n { name: workflow.name }\n )}\n variant=\"ghost\"\n >\n <Pencil />\n </IconButton>\n ) : null}\n {workflows.length > 1 && canDelete ? (\n <IconButton\n withTooltip={false}\n label={formatMessage(\n {\n id: 'Settings.review-workflows.list.page.list.column.actions.delete.label',\n defaultMessage: 'Delete {name}',\n },\n { name: 'Default workflow' }\n )}\n variant=\"ghost\"\n onClick={(e) => {\n e.stopPropagation();\n handleDeleteWorkflow(String(workflow.id));\n }}\n >\n <Trash />\n </IconButton>\n ) : null}\n </Flex>\n </Table.Cell>\n </Table.Row>\n ))}\n </Table.Body>\n </Table.Content>\n </Table.Root>\n\n <Dialog.Root open={!!workflowToDelete} onOpenChange={toggleConfirmDeleteDialog}>\n <ConfirmDialog onConfirm={handleConfirmDeleteDialog}>\n {formatMessage({\n id: 'Settings.review-workflows.list.page.delete.confirm.body',\n defaultMessage:\n 'If you remove this worfklow, all stage-related information will be removed for this content-type. Are you sure you want to remove it?',\n })}\n </ConfirmDialog>\n </Dialog.Root>\n\n <LimitsModal.Root open={showLimitModal} onOpenChange={() => setShowLimitModal(false)}>\n <LimitsModal.Title>\n {formatMessage({\n id: 'Settings.review-workflows.list.page.workflows.limit.title',\n defaultMessage: 'You’ve reached the limit of workflows in your plan',\n })}\n </LimitsModal.Title>\n\n <LimitsModal.Body>\n {formatMessage({\n id: 'Settings.review-workflows.list.page.workflows.limit.body',\n defaultMessage: 'Delete a workflow or contact Sales to enable more workflows.',\n })}\n </LimitsModal.Body>\n </LimitsModal.Root>\n </Layout.Root>\n </>\n );\n};\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['review-workflows']?.main\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <ReviewWorkflowsListView />\n </Page.Protect>\n );\n};\n\nexport { ProtectedListPage };\n"],"names":["ReviewWorkflowsListView","formatMessage","useIntl","navigate","useNavigate","trackUsage","useTracking","workflowToDelete","setWorkflowToDelete","React","useState","showLimitModal","setShowLimitModal","data","isLoading","isLoadingModels","useGetContentTypesQuery","meta","workflows","delete","deleteAction","useReviewWorkflows","getFeature","isLicenseLoading","useLicenseLimits","permissions","useTypedSelector","state","admin_app","settings","allowedActions","canCreate","canRead","canUpdate","canDelete","useRBAC","limits","numberOfWorkflows","CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME","handleDeleteWorkflow","workflowId","toggleConfirmDeleteDialog","handleConfirmDeleteDialog","handleCreateClick","event","preventDefault","workflowCount","parseInt","useEffect","headers","label","id","defaultMessage","name","_jsx","Page","Loading","contentTypes","Object","values","reduce","acc","curr","push","_jsxs","_Fragment","Layout","primaryAction","LinkButton","startIcon","Plus","size","tag","NavLink","to","onClick","subtitle","title","Table","Root","rows","footer","TFooter","cursor","icon","Content","Head","map","head","HeaderCell","Body","workflow","Row","Cell","width","Typography","textColor","fontWeight","ellipsis","stages","length","uid","contentType","find","info","displayName","join","Flex","alignItems","justifyContent","IconButton","Link","e","stopPropagation","toString","variant","Pencil","withTooltip","String","Trash","Dialog","open","onOpenChange","ConfirmDialog","onConfirm","LimitsModal","Title","ProtectedListPage","main","Protect"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content-manager.js","sources":["../../../admin/src/services/content-manager.ts"],"sourcesContent":["import * as Homepage from '../../../shared/contracts/homepage';\n\n/* eslint-disable check-file/filename-naming-convention */\nimport { reviewWorkflowsApi } from './api';\n\nimport type {\n GetStages,\n UpdateStage,\n UpdateAssignee,\n} from '../../../shared/contracts/review-workflows';\nimport type { Contracts } from '@strapi/content-manager/_internal/shared';\n\ntype ContentType = Contracts.ContentTypes.ContentType;\ninterface ContentTypes {\n collectionType: ContentType[];\n singleType: ContentType[];\n}\n\nconst SINGLE_TYPES = 'single-types';\n\nconst contentManagerApi = reviewWorkflowsApi\n .enhanceEndpoints({\n addTagTypes: ['RecentlyAssignedList', 'RecentDocumentList'],\n })\n .injectEndpoints({\n endpoints: (builder) => ({\n getStages: builder.query<\n {\n stages: NonNullable<GetStages.Response['data']>;\n meta: NonNullable<GetStages.Response['meta']>;\n },\n GetStages.Params & { slug: string; params?: object }\n >({\n query: ({ model, slug, id, params }) => ({\n url: `/review-workflows/content-manager/${slug}/${model}/${id}/stages`,\n method: 'GET',\n config: {\n params,\n },\n }),\n transformResponse: (res: GetStages.Response) => {\n return {\n meta: res.meta ?? { workflowCount: 0 },\n stages: res.data ?? [],\n };\n },\n providesTags: ['ReviewWorkflowStages'],\n }),\n updateStage: builder.mutation<\n UpdateStage.Response['data'],\n UpdateStage.Request['body'] & UpdateStage.Params & { slug: string; params?: object }\n >({\n query: ({ model, slug, id, params, ...data }) => ({\n url: `/review-workflows/content-manager/${slug}/${model}/${id}/stage`,\n method: 'PUT',\n data,\n config: {\n params,\n },\n }),\n transformResponse: (res: UpdateStage.Response) => res.data,\n invalidatesTags: (_result, _error, { slug, id, model }) => {\n return [\n {\n type: 'Document',\n id: slug !== SINGLE_TYPES ? `${model}_${id}` : model,\n },\n { type: 'Document', id: `${model}_LIST` },\n 'ReviewWorkflowStages',\n ];\n },\n }),\n updateAssignee: builder.mutation<\n UpdateAssignee.Response['data'],\n UpdateAssignee.Request['body'] & UpdateAssignee.Params & { slug: string; params?: object }\n >({\n query: ({ model, slug, id, params, ...data }) => ({\n url: `/review-workflows/content-manager/${slug}/${model}/${id}/assignee`,\n method: 'PUT',\n data,\n config: {\n params,\n },\n }),\n transformResponse: (res: UpdateAssignee.Response) => res.data,\n invalidatesTags: (_result, _error, { slug, id, model }) => {\n return [\n {\n type: 'Document',\n id: slug !== SINGLE_TYPES ? `${model}_${id}` : model,\n },\n { type: 'Document', id: `${model}_LIST` },\n 'RecentlyAssignedList',\n ];\n },\n }),\n getContentTypes: builder.query<ContentTypes, void>({\n query: () => ({\n url: `/content-manager/content-types`,\n method: 'GET',\n }),\n transformResponse: (res: { data: Contracts.ContentTypes.ContentType[] }) => {\n return res.data.reduce<ContentTypes>(\n (acc, curr) => {\n if (curr.isDisplayed) {\n acc[curr.kind].push(curr);\n }\n return acc;\n },\n {\n collectionType: [],\n singleType: [],\n }\n );\n },\n }),\n getRecentlyAssignedDocuments: builder.query<\n Homepage.GetRecentlyAssignedDocuments.Response['data'],\n void\n >({\n query: () => '/review-workflows/homepage/recently-assigned-documents',\n transformResponse: (response: Homepage.GetRecentlyAssignedDocuments.Response) =>\n response.data,\n providesTags: (_, _err) => ['RecentlyAssignedList', 'RecentDocumentList'],\n }),\n }),\n overrideExisting: true,\n });\n\nconst {\n useGetStagesQuery,\n useUpdateStageMutation,\n useUpdateAssigneeMutation,\n useGetContentTypesQuery,\n useGetRecentlyAssignedDocumentsQuery,\n} = contentManagerApi;\n\nexport {\n useGetStagesQuery,\n useUpdateStageMutation,\n useUpdateAssigneeMutation,\n useGetContentTypesQuery,\n useGetRecentlyAssignedDocumentsQuery,\n};\nexport type { ContentTypes, ContentType };\n"],"names":["SINGLE_TYPES","contentManagerApi","reviewWorkflowsApi","enhanceEndpoints","addTagTypes","injectEndpoints","endpoints","builder","getStages","query","model","slug","id","params","url","method","config","transformResponse","res","meta","workflowCount","stages","data","providesTags","updateStage","mutation","invalidatesTags","_result","_error","type","updateAssignee","getContentTypes","reduce","acc","curr","isDisplayed","kind","push","collectionType","singleType","getRecentlyAssignedDocuments","response","_","_err","overrideExisting","useGetStagesQuery","useUpdateStageMutation","useUpdateAssigneeMutation","useGetContentTypesQuery","useGetRecentlyAssignedDocumentsQuery"],"mappings":";;;;AAkBA,MAAMA,YAAe,GAAA,cAAA;AAErB,MAAMC,iBAAAA,GAAoBC,sBACvBC,CAAAA,gBAAgB,CAAC;IAChBC,WAAa,EAAA;AAAC,QAAA,sBAAA;AAAwB,QAAA;AAAqB;AAC7D,CAAA,CAAA,CACCC,eAAe,CAAC;IACfC,SAAW,EAAA,CAACC,WAAa;YACvBC,SAAWD,EAAAA,OAAAA,CAAQE,KAAK,CAMtB;gBACAA,KAAO,EAAA,CAAC,EAAEC,KAAK,EAAEC,IAAI,EAAEC,EAAE,EAAEC,MAAM,EAAE,IAAM;wBACvCC,GAAK,EAAA,CAAC,kCAAkC,EAAEH,IAAK,CAAA,CAAC,EAAED,KAAAA,CAAM,CAAC,EAAEE,EAAG,CAAA,OAAO,CAAC;wBACtEG,MAAQ,EAAA,KAAA;wBACRC,MAAQ,EAAA;AACNH,4BAAAA;AACF;qBACF,CAAA;AACAI,gBAAAA,iBAAAA,EAAmB,CAACC,GAAAA,GAAAA;oBAClB,OAAO;wBACLC,IAAMD,EAAAA,GAAAA,CAAIC,IAAI,IAAI;4BAAEC,aAAe,EAAA;AAAE,yBAAA;wBACrCC,MAAQH,EAAAA,GAAAA,CAAII,IAAI,IAAI;AACtB,qBAAA;AACF,iBAAA;gBACAC,YAAc,EAAA;AAAC,oBAAA;AAAuB;AACxC,aAAA,CAAA;YACAC,WAAajB,EAAAA,OAAAA,CAAQkB,QAAQ,CAG3B;AACAhB,gBAAAA,KAAAA,EAAO,CAAC,EAAEC,KAAK,EAAEC,IAAI,EAAEC,EAAE,EAAEC,MAAM,EAAE,GAAGS,IAAAA,EAAM,IAAM;wBAChDR,GAAK,EAAA,CAAC,kCAAkC,EAAEH,IAAK,CAAA,CAAC,EAAED,KAAAA,CAAM,CAAC,EAAEE,EAAG,CAAA,MAAM,CAAC;wBACrEG,MAAQ,EAAA,KAAA;AACRO,wBAAAA,IAAAA;wBACAN,MAAQ,EAAA;AACNH,4BAAAA;AACF;qBACF,CAAA;gBACAI,iBAAmB,EAAA,CAACC,GAA8BA,GAAAA,GAAAA,CAAII,IAAI;gBAC1DI,eAAiB,EAAA,CAACC,SAASC,MAAQ,EAAA,EAAEjB,IAAI,EAAEC,EAAE,EAAEF,KAAK,EAAE,GAAA;oBACpD,OAAO;AACL,wBAAA;4BACEmB,IAAM,EAAA,UAAA;
|
|
1
|
+
{"version":3,"file":"content-manager.js","sources":["../../../admin/src/services/content-manager.ts"],"sourcesContent":["import * as Homepage from '../../../shared/contracts/homepage';\n\n/* eslint-disable check-file/filename-naming-convention */\nimport { reviewWorkflowsApi } from './api';\n\nimport type {\n GetStages,\n UpdateStage,\n UpdateAssignee,\n} from '../../../shared/contracts/review-workflows';\nimport type { Contracts } from '@strapi/content-manager/_internal/shared';\n\ntype ContentType = Contracts.ContentTypes.ContentType;\ninterface ContentTypes {\n collectionType: ContentType[];\n singleType: ContentType[];\n}\n\nconst SINGLE_TYPES = 'single-types';\n\nconst contentManagerApi = reviewWorkflowsApi\n .enhanceEndpoints({\n addTagTypes: ['RecentlyAssignedList', 'RecentDocumentList'],\n })\n .injectEndpoints({\n endpoints: (builder) => ({\n getStages: builder.query<\n {\n stages: NonNullable<GetStages.Response['data']>;\n meta: NonNullable<GetStages.Response['meta']>;\n },\n GetStages.Params & { slug: string; params?: object }\n >({\n query: ({ model, slug, id, params }) => ({\n url: `/review-workflows/content-manager/${slug}/${model}/${id}/stages`,\n method: 'GET',\n config: {\n params,\n },\n }),\n transformResponse: (res: GetStages.Response) => {\n return {\n meta: res.meta ?? { workflowCount: 0 },\n stages: res.data ?? [],\n };\n },\n providesTags: ['ReviewWorkflowStages'],\n }),\n updateStage: builder.mutation<\n UpdateStage.Response['data'],\n UpdateStage.Request['body'] & UpdateStage.Params & { slug: string; params?: object }\n >({\n query: ({ model, slug, id, params, ...data }) => ({\n url: `/review-workflows/content-manager/${slug}/${model}/${id}/stage`,\n method: 'PUT',\n data,\n config: {\n params,\n },\n }),\n transformResponse: (res: UpdateStage.Response) => res.data,\n invalidatesTags: (_result, _error, { slug, id, model }) => {\n return [\n {\n type: 'Document',\n id: slug !== SINGLE_TYPES ? `${model}_${id}` : model,\n },\n { type: 'Document', id: `${model}_LIST` },\n 'ReviewWorkflowStages',\n ];\n },\n }),\n updateAssignee: builder.mutation<\n UpdateAssignee.Response['data'],\n UpdateAssignee.Request['body'] & UpdateAssignee.Params & { slug: string; params?: object }\n >({\n query: ({ model, slug, id, params, ...data }) => ({\n url: `/review-workflows/content-manager/${slug}/${model}/${id}/assignee`,\n method: 'PUT',\n data,\n config: {\n params,\n },\n }),\n transformResponse: (res: UpdateAssignee.Response) => res.data,\n invalidatesTags: (_result, _error, { slug, id, model }) => {\n return [\n {\n type: 'Document',\n id: slug !== SINGLE_TYPES ? `${model}_${id}` : model,\n },\n { type: 'Document', id: `${model}_LIST` },\n 'RecentlyAssignedList',\n ];\n },\n }),\n getContentTypes: builder.query<ContentTypes, void>({\n query: () => ({\n url: `/content-manager/content-types`,\n method: 'GET',\n }),\n transformResponse: (res: { data: Contracts.ContentTypes.ContentType[] }) => {\n return res.data.reduce<ContentTypes>(\n (acc, curr) => {\n if (curr.isDisplayed) {\n acc[curr.kind].push(curr);\n }\n return acc;\n },\n {\n collectionType: [],\n singleType: [],\n }\n );\n },\n }),\n getRecentlyAssignedDocuments: builder.query<\n Homepage.GetRecentlyAssignedDocuments.Response['data'],\n void\n >({\n query: () => '/review-workflows/homepage/recently-assigned-documents',\n transformResponse: (response: Homepage.GetRecentlyAssignedDocuments.Response) =>\n response.data,\n providesTags: (_, _err) => ['RecentlyAssignedList', 'RecentDocumentList'],\n }),\n }),\n overrideExisting: true,\n });\n\nconst {\n useGetStagesQuery,\n useUpdateStageMutation,\n useUpdateAssigneeMutation,\n useGetContentTypesQuery,\n useGetRecentlyAssignedDocumentsQuery,\n} = contentManagerApi;\n\nexport {\n useGetStagesQuery,\n useUpdateStageMutation,\n useUpdateAssigneeMutation,\n useGetContentTypesQuery,\n useGetRecentlyAssignedDocumentsQuery,\n};\nexport type { ContentTypes, ContentType };\n"],"names":["SINGLE_TYPES","contentManagerApi","reviewWorkflowsApi","enhanceEndpoints","addTagTypes","injectEndpoints","endpoints","builder","getStages","query","model","slug","id","params","url","method","config","transformResponse","res","meta","workflowCount","stages","data","providesTags","updateStage","mutation","invalidatesTags","_result","_error","type","updateAssignee","getContentTypes","reduce","acc","curr","isDisplayed","kind","push","collectionType","singleType","getRecentlyAssignedDocuments","response","_","_err","overrideExisting","useGetStagesQuery","useUpdateStageMutation","useUpdateAssigneeMutation","useGetContentTypesQuery","useGetRecentlyAssignedDocumentsQuery"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content-manager.mjs","sources":["../../../admin/src/services/content-manager.ts"],"sourcesContent":["import * as Homepage from '../../../shared/contracts/homepage';\n\n/* eslint-disable check-file/filename-naming-convention */\nimport { reviewWorkflowsApi } from './api';\n\nimport type {\n GetStages,\n UpdateStage,\n UpdateAssignee,\n} from '../../../shared/contracts/review-workflows';\nimport type { Contracts } from '@strapi/content-manager/_internal/shared';\n\ntype ContentType = Contracts.ContentTypes.ContentType;\ninterface ContentTypes {\n collectionType: ContentType[];\n singleType: ContentType[];\n}\n\nconst SINGLE_TYPES = 'single-types';\n\nconst contentManagerApi = reviewWorkflowsApi\n .enhanceEndpoints({\n addTagTypes: ['RecentlyAssignedList', 'RecentDocumentList'],\n })\n .injectEndpoints({\n endpoints: (builder) => ({\n getStages: builder.query<\n {\n stages: NonNullable<GetStages.Response['data']>;\n meta: NonNullable<GetStages.Response['meta']>;\n },\n GetStages.Params & { slug: string; params?: object }\n >({\n query: ({ model, slug, id, params }) => ({\n url: `/review-workflows/content-manager/${slug}/${model}/${id}/stages`,\n method: 'GET',\n config: {\n params,\n },\n }),\n transformResponse: (res: GetStages.Response) => {\n return {\n meta: res.meta ?? { workflowCount: 0 },\n stages: res.data ?? [],\n };\n },\n providesTags: ['ReviewWorkflowStages'],\n }),\n updateStage: builder.mutation<\n UpdateStage.Response['data'],\n UpdateStage.Request['body'] & UpdateStage.Params & { slug: string; params?: object }\n >({\n query: ({ model, slug, id, params, ...data }) => ({\n url: `/review-workflows/content-manager/${slug}/${model}/${id}/stage`,\n method: 'PUT',\n data,\n config: {\n params,\n },\n }),\n transformResponse: (res: UpdateStage.Response) => res.data,\n invalidatesTags: (_result, _error, { slug, id, model }) => {\n return [\n {\n type: 'Document',\n id: slug !== SINGLE_TYPES ? `${model}_${id}` : model,\n },\n { type: 'Document', id: `${model}_LIST` },\n 'ReviewWorkflowStages',\n ];\n },\n }),\n updateAssignee: builder.mutation<\n UpdateAssignee.Response['data'],\n UpdateAssignee.Request['body'] & UpdateAssignee.Params & { slug: string; params?: object }\n >({\n query: ({ model, slug, id, params, ...data }) => ({\n url: `/review-workflows/content-manager/${slug}/${model}/${id}/assignee`,\n method: 'PUT',\n data,\n config: {\n params,\n },\n }),\n transformResponse: (res: UpdateAssignee.Response) => res.data,\n invalidatesTags: (_result, _error, { slug, id, model }) => {\n return [\n {\n type: 'Document',\n id: slug !== SINGLE_TYPES ? `${model}_${id}` : model,\n },\n { type: 'Document', id: `${model}_LIST` },\n 'RecentlyAssignedList',\n ];\n },\n }),\n getContentTypes: builder.query<ContentTypes, void>({\n query: () => ({\n url: `/content-manager/content-types`,\n method: 'GET',\n }),\n transformResponse: (res: { data: Contracts.ContentTypes.ContentType[] }) => {\n return res.data.reduce<ContentTypes>(\n (acc, curr) => {\n if (curr.isDisplayed) {\n acc[curr.kind].push(curr);\n }\n return acc;\n },\n {\n collectionType: [],\n singleType: [],\n }\n );\n },\n }),\n getRecentlyAssignedDocuments: builder.query<\n Homepage.GetRecentlyAssignedDocuments.Response['data'],\n void\n >({\n query: () => '/review-workflows/homepage/recently-assigned-documents',\n transformResponse: (response: Homepage.GetRecentlyAssignedDocuments.Response) =>\n response.data,\n providesTags: (_, _err) => ['RecentlyAssignedList', 'RecentDocumentList'],\n }),\n }),\n overrideExisting: true,\n });\n\nconst {\n useGetStagesQuery,\n useUpdateStageMutation,\n useUpdateAssigneeMutation,\n useGetContentTypesQuery,\n useGetRecentlyAssignedDocumentsQuery,\n} = contentManagerApi;\n\nexport {\n useGetStagesQuery,\n useUpdateStageMutation,\n useUpdateAssigneeMutation,\n useGetContentTypesQuery,\n useGetRecentlyAssignedDocumentsQuery,\n};\nexport type { ContentTypes, ContentType };\n"],"names":["SINGLE_TYPES","contentManagerApi","reviewWorkflowsApi","enhanceEndpoints","addTagTypes","injectEndpoints","endpoints","builder","getStages","query","model","slug","id","params","url","method","config","transformResponse","res","meta","workflowCount","stages","data","providesTags","updateStage","mutation","invalidatesTags","_result","_error","type","updateAssignee","getContentTypes","reduce","acc","curr","isDisplayed","kind","push","collectionType","singleType","getRecentlyAssignedDocuments","response","_","_err","overrideExisting","useGetStagesQuery","useUpdateStageMutation","useUpdateAssigneeMutation","useGetContentTypesQuery","useGetRecentlyAssignedDocumentsQuery"],"mappings":";;AAkBA,MAAMA,YAAe,GAAA,cAAA;AAErB,MAAMC,iBAAAA,GAAoBC,kBACvBC,CAAAA,gBAAgB,CAAC;IAChBC,WAAa,EAAA;AAAC,QAAA,sBAAA;AAAwB,QAAA;AAAqB;AAC7D,CAAA,CAAA,CACCC,eAAe,CAAC;IACfC,SAAW,EAAA,CAACC,WAAa;YACvBC,SAAWD,EAAAA,OAAAA,CAAQE,KAAK,CAMtB;gBACAA,KAAO,EAAA,CAAC,EAAEC,KAAK,EAAEC,IAAI,EAAEC,EAAE,EAAEC,MAAM,EAAE,IAAM;wBACvCC,GAAK,EAAA,CAAC,kCAAkC,EAAEH,IAAK,CAAA,CAAC,EAAED,KAAAA,CAAM,CAAC,EAAEE,EAAG,CAAA,OAAO,CAAC;wBACtEG,MAAQ,EAAA,KAAA;wBACRC,MAAQ,EAAA;AACNH,4BAAAA;AACF;qBACF,CAAA;AACAI,gBAAAA,iBAAAA,EAAmB,CAACC,GAAAA,GAAAA;oBAClB,OAAO;wBACLC,IAAMD,EAAAA,GAAAA,CAAIC,IAAI,IAAI;4BAAEC,aAAe,EAAA;AAAE,yBAAA;wBACrCC,MAAQH,EAAAA,GAAAA,CAAII,IAAI,IAAI;AACtB,qBAAA;AACF,iBAAA;gBACAC,YAAc,EAAA;AAAC,oBAAA;AAAuB;AACxC,aAAA,CAAA;YACAC,WAAajB,EAAAA,OAAAA,CAAQkB,QAAQ,CAG3B;AACAhB,gBAAAA,KAAAA,EAAO,CAAC,EAAEC,KAAK,EAAEC,IAAI,EAAEC,EAAE,EAAEC,MAAM,EAAE,GAAGS,IAAAA,EAAM,IAAM;wBAChDR,GAAK,EAAA,CAAC,kCAAkC,EAAEH,IAAK,CAAA,CAAC,EAAED,KAAAA,CAAM,CAAC,EAAEE,EAAG,CAAA,MAAM,CAAC;wBACrEG,MAAQ,EAAA,KAAA;AACRO,wBAAAA,IAAAA;wBACAN,MAAQ,EAAA;AACNH,4BAAAA;AACF;qBACF,CAAA;gBACAI,iBAAmB,EAAA,CAACC,GAA8BA,GAAAA,GAAAA,CAAII,IAAI;gBAC1DI,eAAiB,EAAA,CAACC,SAASC,MAAQ,EAAA,EAAEjB,IAAI,EAAEC,EAAE,EAAEF,KAAK,EAAE,GAAA;oBACpD,OAAO;AACL,wBAAA;4BACEmB,IAAM,EAAA,UAAA;
|
|
1
|
+
{"version":3,"file":"content-manager.mjs","sources":["../../../admin/src/services/content-manager.ts"],"sourcesContent":["import * as Homepage from '../../../shared/contracts/homepage';\n\n/* eslint-disable check-file/filename-naming-convention */\nimport { reviewWorkflowsApi } from './api';\n\nimport type {\n GetStages,\n UpdateStage,\n UpdateAssignee,\n} from '../../../shared/contracts/review-workflows';\nimport type { Contracts } from '@strapi/content-manager/_internal/shared';\n\ntype ContentType = Contracts.ContentTypes.ContentType;\ninterface ContentTypes {\n collectionType: ContentType[];\n singleType: ContentType[];\n}\n\nconst SINGLE_TYPES = 'single-types';\n\nconst contentManagerApi = reviewWorkflowsApi\n .enhanceEndpoints({\n addTagTypes: ['RecentlyAssignedList', 'RecentDocumentList'],\n })\n .injectEndpoints({\n endpoints: (builder) => ({\n getStages: builder.query<\n {\n stages: NonNullable<GetStages.Response['data']>;\n meta: NonNullable<GetStages.Response['meta']>;\n },\n GetStages.Params & { slug: string; params?: object }\n >({\n query: ({ model, slug, id, params }) => ({\n url: `/review-workflows/content-manager/${slug}/${model}/${id}/stages`,\n method: 'GET',\n config: {\n params,\n },\n }),\n transformResponse: (res: GetStages.Response) => {\n return {\n meta: res.meta ?? { workflowCount: 0 },\n stages: res.data ?? [],\n };\n },\n providesTags: ['ReviewWorkflowStages'],\n }),\n updateStage: builder.mutation<\n UpdateStage.Response['data'],\n UpdateStage.Request['body'] & UpdateStage.Params & { slug: string; params?: object }\n >({\n query: ({ model, slug, id, params, ...data }) => ({\n url: `/review-workflows/content-manager/${slug}/${model}/${id}/stage`,\n method: 'PUT',\n data,\n config: {\n params,\n },\n }),\n transformResponse: (res: UpdateStage.Response) => res.data,\n invalidatesTags: (_result, _error, { slug, id, model }) => {\n return [\n {\n type: 'Document',\n id: slug !== SINGLE_TYPES ? `${model}_${id}` : model,\n },\n { type: 'Document', id: `${model}_LIST` },\n 'ReviewWorkflowStages',\n ];\n },\n }),\n updateAssignee: builder.mutation<\n UpdateAssignee.Response['data'],\n UpdateAssignee.Request['body'] & UpdateAssignee.Params & { slug: string; params?: object }\n >({\n query: ({ model, slug, id, params, ...data }) => ({\n url: `/review-workflows/content-manager/${slug}/${model}/${id}/assignee`,\n method: 'PUT',\n data,\n config: {\n params,\n },\n }),\n transformResponse: (res: UpdateAssignee.Response) => res.data,\n invalidatesTags: (_result, _error, { slug, id, model }) => {\n return [\n {\n type: 'Document',\n id: slug !== SINGLE_TYPES ? `${model}_${id}` : model,\n },\n { type: 'Document', id: `${model}_LIST` },\n 'RecentlyAssignedList',\n ];\n },\n }),\n getContentTypes: builder.query<ContentTypes, void>({\n query: () => ({\n url: `/content-manager/content-types`,\n method: 'GET',\n }),\n transformResponse: (res: { data: Contracts.ContentTypes.ContentType[] }) => {\n return res.data.reduce<ContentTypes>(\n (acc, curr) => {\n if (curr.isDisplayed) {\n acc[curr.kind].push(curr);\n }\n return acc;\n },\n {\n collectionType: [],\n singleType: [],\n }\n );\n },\n }),\n getRecentlyAssignedDocuments: builder.query<\n Homepage.GetRecentlyAssignedDocuments.Response['data'],\n void\n >({\n query: () => '/review-workflows/homepage/recently-assigned-documents',\n transformResponse: (response: Homepage.GetRecentlyAssignedDocuments.Response) =>\n response.data,\n providesTags: (_, _err) => ['RecentlyAssignedList', 'RecentDocumentList'],\n }),\n }),\n overrideExisting: true,\n });\n\nconst {\n useGetStagesQuery,\n useUpdateStageMutation,\n useUpdateAssigneeMutation,\n useGetContentTypesQuery,\n useGetRecentlyAssignedDocumentsQuery,\n} = contentManagerApi;\n\nexport {\n useGetStagesQuery,\n useUpdateStageMutation,\n useUpdateAssigneeMutation,\n useGetContentTypesQuery,\n useGetRecentlyAssignedDocumentsQuery,\n};\nexport type { ContentTypes, ContentType };\n"],"names":["SINGLE_TYPES","contentManagerApi","reviewWorkflowsApi","enhanceEndpoints","addTagTypes","injectEndpoints","endpoints","builder","getStages","query","model","slug","id","params","url","method","config","transformResponse","res","meta","workflowCount","stages","data","providesTags","updateStage","mutation","invalidatesTags","_result","_error","type","updateAssignee","getContentTypes","reduce","acc","curr","isDisplayed","kind","push","collectionType","singleType","getRecentlyAssignedDocuments","response","_","_err","overrideExisting","useGetStagesQuery","useUpdateStageMutation","useUpdateAssigneeMutation","useGetContentTypesQuery","useGetRecentlyAssignedDocumentsQuery"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.js","sources":["../../../admin/src/services/settings.ts"],"sourcesContent":["import { reviewWorkflowsApi } from './api';\n\nimport type { Create, Update, Delete, GetAll } from '../../../shared/contracts/review-workflows';\n\nconst settingsApi = reviewWorkflowsApi.injectEndpoints({\n endpoints: (builder) => ({\n getWorkflows: builder.query<\n {\n workflows: GetAll.Response['data'];\n meta?: GetAll.Response['meta'];\n },\n GetWorkflowsParams | void\n >({\n query: (args) => {\n return {\n url: '/review-workflows/workflows',\n method: 'GET',\n config: {\n params: args ?? {},\n },\n };\n },\n transformResponse: (res: GetAll.Response) => {\n return {\n workflows: res.data,\n meta: 'meta' in res ? res.meta : undefined,\n };\n },\n providesTags: (res) => {\n return [\n ...(res?.workflows.map(({ id }) => ({ type: 'ReviewWorkflow' as const, id })) ?? []),\n { type: 'ReviewWorkflow' as const, id: 'LIST' },\n ];\n },\n }),\n createWorkflow: builder.mutation<Create.Response['data'], Create.Request['body']>({\n query: (data) => ({\n url: '/review-workflows/workflows',\n method: 'POST',\n data,\n }),\n transformResponse: (res: Create.Response) => res.data,\n invalidatesTags(res) {\n return [\n { type: 'ReviewWorkflow' as const, id: 'LIST' },\n 'ReviewWorkflowStages',\n { type: 'Document', id: `ALL_LIST` },\n { type: 'ContentTypeSettings', id: 'LIST' },\n ...(res?.contentTypes.map((uid) => ({\n type: 'Document' as const,\n id: `${uid}_ALL_ITEMS`,\n })) ?? []),\n ];\n },\n }),\n updateWorkflow: builder.mutation<\n Update.Response['data'],\n Update.Request['body'] & Update.Params\n >({\n query: ({ id, ...data }) => ({\n url: `/review-workflows/workflows/${id}`,\n method: 'PUT',\n data,\n }),\n transformResponse: (res: Update.Response) => res.data,\n invalidatesTags: (res, _err, arg) => [\n { type: 'ReviewWorkflow' as const, id: arg.id },\n 'ReviewWorkflowStages',\n { type: 'Document', id: 'ALL_LIST' },\n { type: 'ContentTypeSettings', id: 'LIST' },\n ...(res?.contentTypes.map((uid) => ({\n type: 'Document' as const,\n id: `${uid}_ALL_ITEMS`,\n })) ?? []),\n ],\n }),\n deleteWorkflow: builder.mutation<Delete.Response['data'], Delete.Params>({\n query: ({ id }) => ({\n url: `/review-workflows/workflows/${id}`,\n method: 'DELETE',\n }),\n transformResponse: (res: Delete.Response) => res.data,\n invalidatesTags: (res, _err, arg) => [\n { type: 'ReviewWorkflow' as const, id: arg.id },\n 'ReviewWorkflowStages',\n { type: 'Document', id: `ALL_LIST` },\n { type: 'ContentTypeSettings', id: 'LIST' },\n ],\n }),\n }),\n overrideExisting: false,\n});\n\ntype GetWorkflowsParams = GetAll.Request['query'];\n\nconst {\n useGetWorkflowsQuery,\n useCreateWorkflowMutation,\n useDeleteWorkflowMutation,\n useUpdateWorkflowMutation,\n} = settingsApi;\n\nexport {\n useGetWorkflowsQuery,\n useCreateWorkflowMutation,\n useDeleteWorkflowMutation,\n useUpdateWorkflowMutation,\n type GetWorkflowsParams,\n};\n"],"names":["settingsApi","reviewWorkflowsApi","injectEndpoints","endpoints","builder","getWorkflows","query","args","url","method","config","params","transformResponse","res","workflows","data","meta","undefined","providesTags","map","id","type","createWorkflow","mutation","invalidatesTags","contentTypes","uid","updateWorkflow","_err","arg","deleteWorkflow","overrideExisting","useGetWorkflowsQuery","useCreateWorkflowMutation","useDeleteWorkflowMutation","useUpdateWorkflowMutation"],"mappings":";;;;AAIA,MAAMA,WAAAA,GAAcC,sBAAmBC,CAAAA,eAAe,CAAC;IACrDC,SAAW,EAAA,CAACC,WAAa;YACvBC,YAAcD,EAAAA,OAAAA,CAAQE,KAAK,CAMzB;AACAA,gBAAAA,KAAAA,EAAO,CAACC,IAAAA,GAAAA;oBACN,OAAO;wBACLC,GAAK,EAAA,6BAAA;wBACLC,MAAQ,EAAA,KAAA;wBACRC,MAAQ,EAAA;AACNC,4BAAAA,MAAAA,EAAQJ,QAAQ;AAClB;AACF,qBAAA;AACF,iBAAA;AACAK,gBAAAA,iBAAAA,EAAmB,CAACC,GAAAA,GAAAA;oBAClB,OAAO;AACLC,wBAAAA,SAAAA,EAAWD,IAAIE,IAAI;AACnBC,wBAAAA,IAAAA,EAAM,MAAUH,IAAAA,GAAAA,GAAMA,GAAIG,CAAAA,IAAI,GAAGC;AACnC,qBAAA;AACF,iBAAA;AACAC,gBAAAA,YAAAA,EAAc,CAACL,GAAAA,GAAAA;oBACb,OAAO;AACDA,wBAAAA,GAAAA,GAAAA,EAAKC,UAAUK,GAAI,CAAA,CAAC,EAAEC,EAAE,EAAE,IAAM;gCAAEC,IAAM,EAAA,gBAAA;AAA2BD,gCAAAA;AAAG,6BAAA,MAAO,EAAE;AACnF,wBAAA;4BAAEC,IAAM,EAAA,gBAAA;4BAA2BD,EAAI,EAAA;AAAO;AAC/C,qBAAA;AACH;AACF,aAAA,CAAA;YACAE,cAAgBlB,EAAAA,OAAAA,CAAQmB,QAAQ,CAAkD;gBAChFjB,KAAO,EAAA,CAACS,QAAU;wBAChBP,GAAK,EAAA,6BAAA;wBACLC,MAAQ,EAAA,MAAA;AACRM,wBAAAA;qBACF,CAAA;gBACAH,iBAAmB,EAAA,CAACC,GAAyBA,GAAAA,GAAAA,CAAIE,IAAI;AACrDS,gBAAAA,eAAAA,CAAAA,CAAgBX,GAAG,EAAA;oBACjB,OAAO;AACL,wBAAA;4BAAEQ,IAAM,EAAA,gBAAA;4BAA2BD,EAAI,EAAA;AAAO,yBAAA;AAC9C,wBAAA,sBAAA;AACA,wBAAA;4BAAEC,IAAM,EAAA,UAAA;4BAAYD,EAAI,EAAA,CAAC,QAAQ;AAAE,yBAAA;AACnC,wBAAA;4BAAEC,IAAM,EAAA,qBAAA;4BAAuBD,EAAI,EAAA;AAAO,yBAAA;AACtCP,wBAAAA,GAAAA,GAAAA,EAAKY,YAAaN,CAAAA,GAAAA,CAAI,CAACO,GAAAA,IAAS;gCAClCL,IAAM,EAAA,UAAA;
|
|
1
|
+
{"version":3,"file":"settings.js","sources":["../../../admin/src/services/settings.ts"],"sourcesContent":["import { reviewWorkflowsApi } from './api';\n\nimport type { Create, Update, Delete, GetAll } from '../../../shared/contracts/review-workflows';\n\nconst settingsApi = reviewWorkflowsApi.injectEndpoints({\n endpoints: (builder) => ({\n getWorkflows: builder.query<\n {\n workflows: GetAll.Response['data'];\n meta?: GetAll.Response['meta'];\n },\n GetWorkflowsParams | void\n >({\n query: (args) => {\n return {\n url: '/review-workflows/workflows',\n method: 'GET',\n config: {\n params: args ?? {},\n },\n };\n },\n transformResponse: (res: GetAll.Response) => {\n return {\n workflows: res.data,\n meta: 'meta' in res ? res.meta : undefined,\n };\n },\n providesTags: (res) => {\n return [\n ...(res?.workflows.map(({ id }) => ({ type: 'ReviewWorkflow' as const, id })) ?? []),\n { type: 'ReviewWorkflow' as const, id: 'LIST' },\n ];\n },\n }),\n createWorkflow: builder.mutation<Create.Response['data'], Create.Request['body']>({\n query: (data) => ({\n url: '/review-workflows/workflows',\n method: 'POST',\n data,\n }),\n transformResponse: (res: Create.Response) => res.data,\n invalidatesTags(res) {\n return [\n { type: 'ReviewWorkflow' as const, id: 'LIST' },\n 'ReviewWorkflowStages',\n { type: 'Document', id: `ALL_LIST` },\n { type: 'ContentTypeSettings', id: 'LIST' },\n ...(res?.contentTypes.map((uid) => ({\n type: 'Document' as const,\n id: `${uid}_ALL_ITEMS`,\n })) ?? []),\n ];\n },\n }),\n updateWorkflow: builder.mutation<\n Update.Response['data'],\n Update.Request['body'] & Update.Params\n >({\n query: ({ id, ...data }) => ({\n url: `/review-workflows/workflows/${id}`,\n method: 'PUT',\n data,\n }),\n transformResponse: (res: Update.Response) => res.data,\n invalidatesTags: (res, _err, arg) => [\n { type: 'ReviewWorkflow' as const, id: arg.id },\n 'ReviewWorkflowStages',\n { type: 'Document', id: 'ALL_LIST' },\n { type: 'ContentTypeSettings', id: 'LIST' },\n ...(res?.contentTypes.map((uid) => ({\n type: 'Document' as const,\n id: `${uid}_ALL_ITEMS`,\n })) ?? []),\n ],\n }),\n deleteWorkflow: builder.mutation<Delete.Response['data'], Delete.Params>({\n query: ({ id }) => ({\n url: `/review-workflows/workflows/${id}`,\n method: 'DELETE',\n }),\n transformResponse: (res: Delete.Response) => res.data,\n invalidatesTags: (res, _err, arg) => [\n { type: 'ReviewWorkflow' as const, id: arg.id },\n 'ReviewWorkflowStages',\n { type: 'Document', id: `ALL_LIST` },\n { type: 'ContentTypeSettings', id: 'LIST' },\n ],\n }),\n }),\n overrideExisting: false,\n});\n\ntype GetWorkflowsParams = GetAll.Request['query'];\n\nconst {\n useGetWorkflowsQuery,\n useCreateWorkflowMutation,\n useDeleteWorkflowMutation,\n useUpdateWorkflowMutation,\n} = settingsApi;\n\nexport {\n useGetWorkflowsQuery,\n useCreateWorkflowMutation,\n useDeleteWorkflowMutation,\n useUpdateWorkflowMutation,\n type GetWorkflowsParams,\n};\n"],"names":["settingsApi","reviewWorkflowsApi","injectEndpoints","endpoints","builder","getWorkflows","query","args","url","method","config","params","transformResponse","res","workflows","data","meta","undefined","providesTags","map","id","type","createWorkflow","mutation","invalidatesTags","contentTypes","uid","updateWorkflow","_err","arg","deleteWorkflow","overrideExisting","useGetWorkflowsQuery","useCreateWorkflowMutation","useDeleteWorkflowMutation","useUpdateWorkflowMutation"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.mjs","sources":["../../../admin/src/services/settings.ts"],"sourcesContent":["import { reviewWorkflowsApi } from './api';\n\nimport type { Create, Update, Delete, GetAll } from '../../../shared/contracts/review-workflows';\n\nconst settingsApi = reviewWorkflowsApi.injectEndpoints({\n endpoints: (builder) => ({\n getWorkflows: builder.query<\n {\n workflows: GetAll.Response['data'];\n meta?: GetAll.Response['meta'];\n },\n GetWorkflowsParams | void\n >({\n query: (args) => {\n return {\n url: '/review-workflows/workflows',\n method: 'GET',\n config: {\n params: args ?? {},\n },\n };\n },\n transformResponse: (res: GetAll.Response) => {\n return {\n workflows: res.data,\n meta: 'meta' in res ? res.meta : undefined,\n };\n },\n providesTags: (res) => {\n return [\n ...(res?.workflows.map(({ id }) => ({ type: 'ReviewWorkflow' as const, id })) ?? []),\n { type: 'ReviewWorkflow' as const, id: 'LIST' },\n ];\n },\n }),\n createWorkflow: builder.mutation<Create.Response['data'], Create.Request['body']>({\n query: (data) => ({\n url: '/review-workflows/workflows',\n method: 'POST',\n data,\n }),\n transformResponse: (res: Create.Response) => res.data,\n invalidatesTags(res) {\n return [\n { type: 'ReviewWorkflow' as const, id: 'LIST' },\n 'ReviewWorkflowStages',\n { type: 'Document', id: `ALL_LIST` },\n { type: 'ContentTypeSettings', id: 'LIST' },\n ...(res?.contentTypes.map((uid) => ({\n type: 'Document' as const,\n id: `${uid}_ALL_ITEMS`,\n })) ?? []),\n ];\n },\n }),\n updateWorkflow: builder.mutation<\n Update.Response['data'],\n Update.Request['body'] & Update.Params\n >({\n query: ({ id, ...data }) => ({\n url: `/review-workflows/workflows/${id}`,\n method: 'PUT',\n data,\n }),\n transformResponse: (res: Update.Response) => res.data,\n invalidatesTags: (res, _err, arg) => [\n { type: 'ReviewWorkflow' as const, id: arg.id },\n 'ReviewWorkflowStages',\n { type: 'Document', id: 'ALL_LIST' },\n { type: 'ContentTypeSettings', id: 'LIST' },\n ...(res?.contentTypes.map((uid) => ({\n type: 'Document' as const,\n id: `${uid}_ALL_ITEMS`,\n })) ?? []),\n ],\n }),\n deleteWorkflow: builder.mutation<Delete.Response['data'], Delete.Params>({\n query: ({ id }) => ({\n url: `/review-workflows/workflows/${id}`,\n method: 'DELETE',\n }),\n transformResponse: (res: Delete.Response) => res.data,\n invalidatesTags: (res, _err, arg) => [\n { type: 'ReviewWorkflow' as const, id: arg.id },\n 'ReviewWorkflowStages',\n { type: 'Document', id: `ALL_LIST` },\n { type: 'ContentTypeSettings', id: 'LIST' },\n ],\n }),\n }),\n overrideExisting: false,\n});\n\ntype GetWorkflowsParams = GetAll.Request['query'];\n\nconst {\n useGetWorkflowsQuery,\n useCreateWorkflowMutation,\n useDeleteWorkflowMutation,\n useUpdateWorkflowMutation,\n} = settingsApi;\n\nexport {\n useGetWorkflowsQuery,\n useCreateWorkflowMutation,\n useDeleteWorkflowMutation,\n useUpdateWorkflowMutation,\n type GetWorkflowsParams,\n};\n"],"names":["settingsApi","reviewWorkflowsApi","injectEndpoints","endpoints","builder","getWorkflows","query","args","url","method","config","params","transformResponse","res","workflows","data","meta","undefined","providesTags","map","id","type","createWorkflow","mutation","invalidatesTags","contentTypes","uid","updateWorkflow","_err","arg","deleteWorkflow","overrideExisting","useGetWorkflowsQuery","useCreateWorkflowMutation","useDeleteWorkflowMutation","useUpdateWorkflowMutation"],"mappings":";;AAIA,MAAMA,WAAAA,GAAcC,kBAAmBC,CAAAA,eAAe,CAAC;IACrDC,SAAW,EAAA,CAACC,WAAa;YACvBC,YAAcD,EAAAA,OAAAA,CAAQE,KAAK,CAMzB;AACAA,gBAAAA,KAAAA,EAAO,CAACC,IAAAA,GAAAA;oBACN,OAAO;wBACLC,GAAK,EAAA,6BAAA;wBACLC,MAAQ,EAAA,KAAA;wBACRC,MAAQ,EAAA;AACNC,4BAAAA,MAAAA,EAAQJ,QAAQ;AAClB;AACF,qBAAA;AACF,iBAAA;AACAK,gBAAAA,iBAAAA,EAAmB,CAACC,GAAAA,GAAAA;oBAClB,OAAO;AACLC,wBAAAA,SAAAA,EAAWD,IAAIE,IAAI;AACnBC,wBAAAA,IAAAA,EAAM,MAAUH,IAAAA,GAAAA,GAAMA,GAAIG,CAAAA,IAAI,GAAGC;AACnC,qBAAA;AACF,iBAAA;AACAC,gBAAAA,YAAAA,EAAc,CAACL,GAAAA,GAAAA;oBACb,OAAO;AACDA,wBAAAA,GAAAA,GAAAA,EAAKC,UAAUK,GAAI,CAAA,CAAC,EAAEC,EAAE,EAAE,IAAM;gCAAEC,IAAM,EAAA,gBAAA;AAA2BD,gCAAAA;AAAG,6BAAA,MAAO,EAAE;AACnF,wBAAA;4BAAEC,IAAM,EAAA,gBAAA;4BAA2BD,EAAI,EAAA;AAAO;AAC/C,qBAAA;AACH;AACF,aAAA,CAAA;YACAE,cAAgBlB,EAAAA,OAAAA,CAAQmB,QAAQ,CAAkD;gBAChFjB,KAAO,EAAA,CAACS,QAAU;wBAChBP,GAAK,EAAA,6BAAA;wBACLC,MAAQ,EAAA,MAAA;AACRM,wBAAAA;qBACF,CAAA;gBACAH,iBAAmB,EAAA,CAACC,GAAyBA,GAAAA,GAAAA,CAAIE,IAAI;AACrDS,gBAAAA,eAAAA,CAAAA,CAAgBX,GAAG,EAAA;oBACjB,OAAO;AACL,wBAAA;4BAAEQ,IAAM,EAAA,gBAAA;4BAA2BD,EAAI,EAAA;AAAO,yBAAA;AAC9C,wBAAA,sBAAA;AACA,wBAAA;4BAAEC,IAAM,EAAA,UAAA;4BAAYD,EAAI,EAAA,CAAC,QAAQ;AAAE,yBAAA;AACnC,wBAAA;4BAAEC,IAAM,EAAA,qBAAA;4BAAuBD,EAAI,EAAA;AAAO,yBAAA;AACtCP,wBAAAA,GAAAA,GAAAA,EAAKY,YAAaN,CAAAA,GAAAA,CAAI,CAACO,GAAAA,IAAS;gCAClCL,IAAM,EAAA,UAAA;
|
|
1
|
+
{"version":3,"file":"settings.mjs","sources":["../../../admin/src/services/settings.ts"],"sourcesContent":["import { reviewWorkflowsApi } from './api';\n\nimport type { Create, Update, Delete, GetAll } from '../../../shared/contracts/review-workflows';\n\nconst settingsApi = reviewWorkflowsApi.injectEndpoints({\n endpoints: (builder) => ({\n getWorkflows: builder.query<\n {\n workflows: GetAll.Response['data'];\n meta?: GetAll.Response['meta'];\n },\n GetWorkflowsParams | void\n >({\n query: (args) => {\n return {\n url: '/review-workflows/workflows',\n method: 'GET',\n config: {\n params: args ?? {},\n },\n };\n },\n transformResponse: (res: GetAll.Response) => {\n return {\n workflows: res.data,\n meta: 'meta' in res ? res.meta : undefined,\n };\n },\n providesTags: (res) => {\n return [\n ...(res?.workflows.map(({ id }) => ({ type: 'ReviewWorkflow' as const, id })) ?? []),\n { type: 'ReviewWorkflow' as const, id: 'LIST' },\n ];\n },\n }),\n createWorkflow: builder.mutation<Create.Response['data'], Create.Request['body']>({\n query: (data) => ({\n url: '/review-workflows/workflows',\n method: 'POST',\n data,\n }),\n transformResponse: (res: Create.Response) => res.data,\n invalidatesTags(res) {\n return [\n { type: 'ReviewWorkflow' as const, id: 'LIST' },\n 'ReviewWorkflowStages',\n { type: 'Document', id: `ALL_LIST` },\n { type: 'ContentTypeSettings', id: 'LIST' },\n ...(res?.contentTypes.map((uid) => ({\n type: 'Document' as const,\n id: `${uid}_ALL_ITEMS`,\n })) ?? []),\n ];\n },\n }),\n updateWorkflow: builder.mutation<\n Update.Response['data'],\n Update.Request['body'] & Update.Params\n >({\n query: ({ id, ...data }) => ({\n url: `/review-workflows/workflows/${id}`,\n method: 'PUT',\n data,\n }),\n transformResponse: (res: Update.Response) => res.data,\n invalidatesTags: (res, _err, arg) => [\n { type: 'ReviewWorkflow' as const, id: arg.id },\n 'ReviewWorkflowStages',\n { type: 'Document', id: 'ALL_LIST' },\n { type: 'ContentTypeSettings', id: 'LIST' },\n ...(res?.contentTypes.map((uid) => ({\n type: 'Document' as const,\n id: `${uid}_ALL_ITEMS`,\n })) ?? []),\n ],\n }),\n deleteWorkflow: builder.mutation<Delete.Response['data'], Delete.Params>({\n query: ({ id }) => ({\n url: `/review-workflows/workflows/${id}`,\n method: 'DELETE',\n }),\n transformResponse: (res: Delete.Response) => res.data,\n invalidatesTags: (res, _err, arg) => [\n { type: 'ReviewWorkflow' as const, id: arg.id },\n 'ReviewWorkflowStages',\n { type: 'Document', id: `ALL_LIST` },\n { type: 'ContentTypeSettings', id: 'LIST' },\n ],\n }),\n }),\n overrideExisting: false,\n});\n\ntype GetWorkflowsParams = GetAll.Request['query'];\n\nconst {\n useGetWorkflowsQuery,\n useCreateWorkflowMutation,\n useDeleteWorkflowMutation,\n useUpdateWorkflowMutation,\n} = settingsApi;\n\nexport {\n useGetWorkflowsQuery,\n useCreateWorkflowMutation,\n useDeleteWorkflowMutation,\n useUpdateWorkflowMutation,\n type GetWorkflowsParams,\n};\n"],"names":["settingsApi","reviewWorkflowsApi","injectEndpoints","endpoints","builder","getWorkflows","query","args","url","method","config","params","transformResponse","res","workflows","data","meta","undefined","providesTags","map","id","type","createWorkflow","mutation","invalidatesTags","contentTypes","uid","updateWorkflow","_err","arg","deleteWorkflow","overrideExisting","useGetWorkflowsQuery","useCreateWorkflowMutation","useDeleteWorkflowMutation","useUpdateWorkflowMutation"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SanitizedAdminUser } from '@strapi/admin/strapi-admin';
|
|
2
2
|
type Roles = SanitizedAdminUser['roles'];
|
|
3
|
-
declare const useGetAdminRolesQuery: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseQuery<import("@reduxjs/toolkit/query").QueryDefinition<void, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "GuidedTourMeta" | "HomepageKeyStatistics" | "AIUsage" | "ReviewWorkflow" | "ReviewWorkflowStages" | "Document" | "ContentTypeSettings", import("@strapi/admin/strapi-admin").SanitizedAdminRole[], "adminApi">>;
|
|
3
|
+
declare const useGetAdminRolesQuery: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseQuery<import("@reduxjs/toolkit/query").QueryDefinition<void, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "GuidedTourMeta" | "HomepageKeyStatistics" | "AIUsage" | "AIFeatureConfig" | "ReviewWorkflow" | "ReviewWorkflowStages" | "Document" | "ContentTypeSettings", import("@strapi/admin/strapi-admin").SanitizedAdminRole[], "adminApi">>;
|
|
4
4
|
export { useGetAdminRolesQuery };
|
|
5
5
|
export type { SanitizedAdminUser, Roles };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const reviewWorkflowsApi: import("@reduxjs/toolkit/query").Api<import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, import("@reduxjs/toolkit/dist/query/endpointDefinitions").UpdateDefinitions<{}, "GuidedTourMeta" | "HomepageKeyStatistics" | "AIUsage" | "ReviewWorkflow" | "ReviewWorkflowStages" | "Document" | "ContentTypeSettings", never>, "adminApi", "GuidedTourMeta" | "HomepageKeyStatistics" | "AIUsage" | "ReviewWorkflow" | "ReviewWorkflowStages" | "Document" | "ContentTypeSettings", typeof import("@reduxjs/toolkit/query").coreModuleName | typeof import("@reduxjs/toolkit/dist/query/react").reactHooksModuleName>;
|
|
1
|
+
declare const reviewWorkflowsApi: import("@reduxjs/toolkit/query").Api<import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, import("@reduxjs/toolkit/dist/query/endpointDefinitions").UpdateDefinitions<{}, "GuidedTourMeta" | "HomepageKeyStatistics" | "AIUsage" | "AIFeatureConfig" | "ReviewWorkflow" | "ReviewWorkflowStages" | "Document" | "ContentTypeSettings", never>, "adminApi", "GuidedTourMeta" | "HomepageKeyStatistics" | "AIUsage" | "AIFeatureConfig" | "ReviewWorkflow" | "ReviewWorkflowStages" | "Document" | "ContentTypeSettings", typeof import("@reduxjs/toolkit/query").coreModuleName | typeof import("@reduxjs/toolkit/dist/query/react").reactHooksModuleName>;
|
|
2
2
|
export { reviewWorkflowsApi };
|
|
@@ -9,7 +9,7 @@ interface ContentTypes {
|
|
|
9
9
|
declare const useGetStagesQuery: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseQuery<import("@reduxjs/toolkit/query").QueryDefinition<GetStages.Params & {
|
|
10
10
|
slug: string;
|
|
11
11
|
params?: object | undefined;
|
|
12
|
-
}, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "GuidedTourMeta" | "HomepageKeyStatistics" | "AIUsage" | "ReviewWorkflow" | "ReviewWorkflowStages" | "Document" | "ContentTypeSettings" | "RecentlyAssignedList" | "RecentDocumentList", {
|
|
12
|
+
}, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "GuidedTourMeta" | "HomepageKeyStatistics" | "AIUsage" | "AIFeatureConfig" | "ReviewWorkflow" | "ReviewWorkflowStages" | "Document" | "ContentTypeSettings" | "RecentlyAssignedList" | "RecentDocumentList", {
|
|
13
13
|
stages: NonNullable<GetStages.Response['data']>;
|
|
14
14
|
meta: NonNullable<GetStages.Response['meta']>;
|
|
15
15
|
}, "adminApi">>, useUpdateStageMutation: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseMutation<import("@reduxjs/toolkit/query").MutationDefinition<{
|
|
@@ -19,7 +19,7 @@ declare const useGetStagesQuery: import("@reduxjs/toolkit/dist/query/react/build
|
|
|
19
19
|
} & UpdateStage.Params & {
|
|
20
20
|
slug: string;
|
|
21
21
|
params?: object | undefined;
|
|
22
|
-
}, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "GuidedTourMeta" | "HomepageKeyStatistics" | "AIUsage" | "ReviewWorkflow" | "ReviewWorkflowStages" | "Document" | "ContentTypeSettings" | "RecentlyAssignedList" | "RecentDocumentList", {
|
|
22
|
+
}, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "GuidedTourMeta" | "HomepageKeyStatistics" | "AIUsage" | "AIFeatureConfig" | "ReviewWorkflow" | "ReviewWorkflowStages" | "Document" | "ContentTypeSettings" | "RecentlyAssignedList" | "RecentDocumentList", {
|
|
23
23
|
id: import("@strapi/types/dist/data").ID;
|
|
24
24
|
} & {
|
|
25
25
|
[key: string]: any;
|
|
@@ -30,10 +30,10 @@ declare const useGetStagesQuery: import("@reduxjs/toolkit/dist/query/react/build
|
|
|
30
30
|
} & UpdateAssignee.Params & {
|
|
31
31
|
slug: string;
|
|
32
32
|
params?: object | undefined;
|
|
33
|
-
}, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "GuidedTourMeta" | "HomepageKeyStatistics" | "AIUsage" | "ReviewWorkflow" | "ReviewWorkflowStages" | "Document" | "ContentTypeSettings" | "RecentlyAssignedList" | "RecentDocumentList", {
|
|
33
|
+
}, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "GuidedTourMeta" | "HomepageKeyStatistics" | "AIUsage" | "AIFeatureConfig" | "ReviewWorkflow" | "ReviewWorkflowStages" | "Document" | "ContentTypeSettings" | "RecentlyAssignedList" | "RecentDocumentList", {
|
|
34
34
|
id: import("@strapi/types/dist/data").ID;
|
|
35
35
|
} & {
|
|
36
36
|
[key: string]: any;
|
|
37
|
-
}, "adminApi">>, useGetContentTypesQuery: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseQuery<import("@reduxjs/toolkit/query").QueryDefinition<void, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "GuidedTourMeta" | "HomepageKeyStatistics" | "AIUsage" | "ReviewWorkflow" | "ReviewWorkflowStages" | "Document" | "ContentTypeSettings" | "RecentlyAssignedList" | "RecentDocumentList", ContentTypes, "adminApi">>, useGetRecentlyAssignedDocumentsQuery: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseQuery<import("@reduxjs/toolkit/query").QueryDefinition<void, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "GuidedTourMeta" | "HomepageKeyStatistics" | "AIUsage" | "ReviewWorkflow" | "ReviewWorkflowStages" | "Document" | "ContentTypeSettings" | "RecentlyAssignedList" | "RecentDocumentList", Homepage.RecentDocument[], "adminApi">>;
|
|
37
|
+
}, "adminApi">>, useGetContentTypesQuery: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseQuery<import("@reduxjs/toolkit/query").QueryDefinition<void, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "GuidedTourMeta" | "HomepageKeyStatistics" | "AIUsage" | "AIFeatureConfig" | "ReviewWorkflow" | "ReviewWorkflowStages" | "Document" | "ContentTypeSettings" | "RecentlyAssignedList" | "RecentDocumentList", ContentTypes, "adminApi">>, useGetRecentlyAssignedDocumentsQuery: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseQuery<import("@reduxjs/toolkit/query").QueryDefinition<void, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "GuidedTourMeta" | "HomepageKeyStatistics" | "AIUsage" | "AIFeatureConfig" | "ReviewWorkflow" | "ReviewWorkflowStages" | "Document" | "ContentTypeSettings" | "RecentlyAssignedList" | "RecentDocumentList", Homepage.RecentDocument[], "adminApi">>;
|
|
38
38
|
export { useGetStagesQuery, useUpdateStageMutation, useUpdateAssigneeMutation, useGetContentTypesQuery, useGetRecentlyAssignedDocumentsQuery, };
|
|
39
39
|
export type { ContentTypes, ContentType };
|
|
@@ -1728,16 +1728,16 @@ declare const useGetWorkflowsQuery: import("@reduxjs/toolkit/dist/query/react/bu
|
|
|
1728
1728
|
} & import("@strapi/types/dist/modules/entity-service/params/filters").AbstractAttributesFiltering<"admin::review-workflow">) | undefined;
|
|
1729
1729
|
} & {
|
|
1730
1730
|
populate?: import("@strapi/types/dist/modules/entity-service/params/populate").ArrayNotation<"admin::review-workflow"> | undefined;
|
|
1731
|
-
}), import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "GuidedTourMeta" | "HomepageKeyStatistics" | "AIUsage" | "ReviewWorkflow" | "ReviewWorkflowStages" | "Document" | "ContentTypeSettings", {
|
|
1731
|
+
}), import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "GuidedTourMeta" | "HomepageKeyStatistics" | "AIUsage" | "AIFeatureConfig" | "ReviewWorkflow" | "ReviewWorkflowStages" | "Document" | "ContentTypeSettings", {
|
|
1732
1732
|
workflows: GetAll.Response['data'];
|
|
1733
1733
|
meta?: GetAll.Response['meta'];
|
|
1734
1734
|
}, "adminApi">>, useCreateWorkflowMutation: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseMutation<import("@reduxjs/toolkit/query").MutationDefinition<{
|
|
1735
1735
|
data: Omit<import("../../../shared/contracts/review-workflows").Workflow, "id" | "createdAt" | "updatedAt"> & {
|
|
1736
1736
|
stageRequiredToPublishName?: string | null | undefined;
|
|
1737
1737
|
};
|
|
1738
|
-
}, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "GuidedTourMeta" | "HomepageKeyStatistics" | "AIUsage" | "ReviewWorkflow" | "ReviewWorkflowStages" | "Document" | "ContentTypeSettings", import("../../../shared/contracts/review-workflows").Workflow, "adminApi">>, useDeleteWorkflowMutation: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseMutation<import("@reduxjs/toolkit/query").MutationDefinition<Delete.Params, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "GuidedTourMeta" | "HomepageKeyStatistics" | "AIUsage" | "ReviewWorkflow" | "ReviewWorkflowStages" | "Document" | "ContentTypeSettings", import("../../../shared/contracts/review-workflows").Workflow, "adminApi">>, useUpdateWorkflowMutation: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseMutation<import("@reduxjs/toolkit/query").MutationDefinition<{
|
|
1738
|
+
}, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "GuidedTourMeta" | "HomepageKeyStatistics" | "AIUsage" | "AIFeatureConfig" | "ReviewWorkflow" | "ReviewWorkflowStages" | "Document" | "ContentTypeSettings", import("../../../shared/contracts/review-workflows").Workflow, "adminApi">>, useDeleteWorkflowMutation: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseMutation<import("@reduxjs/toolkit/query").MutationDefinition<Delete.Params, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "GuidedTourMeta" | "HomepageKeyStatistics" | "AIUsage" | "AIFeatureConfig" | "ReviewWorkflow" | "ReviewWorkflowStages" | "Document" | "ContentTypeSettings", import("../../../shared/contracts/review-workflows").Workflow, "adminApi">>, useUpdateWorkflowMutation: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseMutation<import("@reduxjs/toolkit/query").MutationDefinition<{
|
|
1739
1739
|
data: Partial<Omit<import("../../../shared/contracts/review-workflows").Workflow, "stageRequiredToPublish">> & {
|
|
1740
1740
|
stageRequiredToPublishName?: string | null | undefined;
|
|
1741
1741
|
};
|
|
1742
|
-
} & Update.Params, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "GuidedTourMeta" | "HomepageKeyStatistics" | "AIUsage" | "ReviewWorkflow" | "ReviewWorkflowStages" | "Document" | "ContentTypeSettings", import("../../../shared/contracts/review-workflows").Workflow, "adminApi">>;
|
|
1742
|
+
} & Update.Params, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "GuidedTourMeta" | "HomepageKeyStatistics" | "AIUsage" | "AIFeatureConfig" | "ReviewWorkflow" | "ReviewWorkflowStages" | "Document" | "ContentTypeSettings", import("../../../shared/contracts/review-workflows").Workflow, "adminApi">>;
|
|
1743
1743
|
export { useGetWorkflowsQuery, useCreateWorkflowMutation, useDeleteWorkflowMutation, useUpdateWorkflowMutation, type GetWorkflowsParams, };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"translations.js","sources":["../../../admin/src/utils/translations.ts"],"sourcesContent":["type TradOptions = Record<string, string>;\n\nconst prefixPluginTranslations = (trad: TradOptions, pluginId: string): TradOptions => {\n if (!pluginId) {\n throw new TypeError(\"pluginId can't be empty\");\n }\n return Object.keys(trad).reduce((acc, current) => {\n acc[`${pluginId}.${current}`] = trad[current];\n return acc;\n }, {} as TradOptions);\n};\n\nexport { prefixPluginTranslations };\n"],"names":["prefixPluginTranslations","trad","pluginId","Object","keys","reduce","acc","current"],"mappings":";;AAEMA,MAAAA,wBAAAA,GAA2B,CAACC,IAAmBC,EAAAA,QAAAA,GAAAA;AAInD,IAAA,OAAOC,OAAOC,IAAI,CAACH,MAAMI,MAAM,CAAC,CAACC,GAAKC,EAAAA,OAAAA,GAAAA;
|
|
1
|
+
{"version":3,"file":"translations.js","sources":["../../../admin/src/utils/translations.ts"],"sourcesContent":["type TradOptions = Record<string, string>;\n\nconst prefixPluginTranslations = (trad: TradOptions, pluginId: string): TradOptions => {\n if (!pluginId) {\n throw new TypeError(\"pluginId can't be empty\");\n }\n return Object.keys(trad).reduce((acc, current) => {\n acc[`${pluginId}.${current}`] = trad[current];\n return acc;\n }, {} as TradOptions);\n};\n\nexport { prefixPluginTranslations };\n"],"names":["prefixPluginTranslations","trad","pluginId","Object","keys","reduce","acc","current"],"mappings":";;AAEMA,MAAAA,wBAAAA,GAA2B,CAACC,IAAmBC,EAAAA,QAAAA,GAAAA;AAInD,IAAA,OAAOC,OAAOC,IAAI,CAACH,MAAMI,MAAM,CAAC,CAACC,GAAKC,EAAAA,OAAAA,GAAAA;QACpCD,GAAG,CAAC,CAAGJ,EAAAA,QAAAA,CAAS,CAAC,EAAEK,SAAS,CAAC,GAAGN,IAAI,CAACM,OAAQ,CAAA;QAC7C,OAAOD,GAAAA;AACT,KAAA,EAAG,EAAC,CAAA;AACN;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"translations.mjs","sources":["../../../admin/src/utils/translations.ts"],"sourcesContent":["type TradOptions = Record<string, string>;\n\nconst prefixPluginTranslations = (trad: TradOptions, pluginId: string): TradOptions => {\n if (!pluginId) {\n throw new TypeError(\"pluginId can't be empty\");\n }\n return Object.keys(trad).reduce((acc, current) => {\n acc[`${pluginId}.${current}`] = trad[current];\n return acc;\n }, {} as TradOptions);\n};\n\nexport { prefixPluginTranslations };\n"],"names":["prefixPluginTranslations","trad","pluginId","Object","keys","reduce","acc","current"],"mappings":"AAEMA,MAAAA,wBAAAA,GAA2B,CAACC,IAAmBC,EAAAA,QAAAA,GAAAA;AAInD,IAAA,OAAOC,OAAOC,IAAI,CAACH,MAAMI,MAAM,CAAC,CAACC,GAAKC,EAAAA,OAAAA,GAAAA;
|
|
1
|
+
{"version":3,"file":"translations.mjs","sources":["../../../admin/src/utils/translations.ts"],"sourcesContent":["type TradOptions = Record<string, string>;\n\nconst prefixPluginTranslations = (trad: TradOptions, pluginId: string): TradOptions => {\n if (!pluginId) {\n throw new TypeError(\"pluginId can't be empty\");\n }\n return Object.keys(trad).reduce((acc, current) => {\n acc[`${pluginId}.${current}`] = trad[current];\n return acc;\n }, {} as TradOptions);\n};\n\nexport { prefixPluginTranslations };\n"],"names":["prefixPluginTranslations","trad","pluginId","Object","keys","reduce","acc","current"],"mappings":"AAEMA,MAAAA,wBAAAA,GAA2B,CAACC,IAAmBC,EAAAA,QAAAA,GAAAA;AAInD,IAAA,OAAOC,OAAOC,IAAI,CAACH,MAAMI,MAAM,CAAC,CAACC,GAAKC,EAAAA,OAAAA,GAAAA;QACpCD,GAAG,CAAC,CAAGJ,EAAAA,QAAAA,CAAS,CAAC,EAAEK,SAAS,CAAC,GAAGN,IAAI,CAACM,OAAQ,CAAA;QAC7C,OAAOD,GAAAA;AACT,KAAA,EAAG,EAAC,CAAA;AACN;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"users.js","sources":["../../../admin/src/utils/users.ts"],"sourcesContent":["import type { SanitizedAdminUser } from '@strapi/admin/strapi-admin';\n\n/**\n * Retrieves the display name of an admin panel user\n */\nconst getDisplayName = ({\n firstname,\n lastname,\n username,\n email,\n}: Partial<\n Pick<SanitizedAdminUser, 'firstname' | 'lastname' | 'username' | 'email'>\n> = {}): string => {\n if (username) {\n return username;\n }\n\n // firstname is not required if the user is created with a username\n if (firstname) {\n return `${firstname} ${lastname ?? ''}`.trim();\n }\n\n return email ?? '';\n};\n\nexport { getDisplayName };\n"],"names":["getDisplayName","firstname","lastname","username","email","trim"],"mappings":";;AAEA;;AAEC,IACKA,MAAAA,cAAAA,GAAiB,CAAC,EACtBC,SAAS,EACTC,QAAQ,EACRC,QAAQ,EACRC,KAAK,EAGN,GAAG,EAAE,GAAA;AACJ,IAAA,IAAID,QAAU,EAAA;QACZ,OAAOA,QAAAA;AACT;;AAGA,IAAA,IAAIF,SAAW,EAAA;
|
|
1
|
+
{"version":3,"file":"users.js","sources":["../../../admin/src/utils/users.ts"],"sourcesContent":["import type { SanitizedAdminUser } from '@strapi/admin/strapi-admin';\n\n/**\n * Retrieves the display name of an admin panel user\n */\nconst getDisplayName = ({\n firstname,\n lastname,\n username,\n email,\n}: Partial<\n Pick<SanitizedAdminUser, 'firstname' | 'lastname' | 'username' | 'email'>\n> = {}): string => {\n if (username) {\n return username;\n }\n\n // firstname is not required if the user is created with a username\n if (firstname) {\n return `${firstname} ${lastname ?? ''}`.trim();\n }\n\n return email ?? '';\n};\n\nexport { getDisplayName };\n"],"names":["getDisplayName","firstname","lastname","username","email","trim"],"mappings":";;AAEA;;AAEC,IACKA,MAAAA,cAAAA,GAAiB,CAAC,EACtBC,SAAS,EACTC,QAAQ,EACRC,QAAQ,EACRC,KAAK,EAGN,GAAG,EAAE,GAAA;AACJ,IAAA,IAAID,QAAU,EAAA;QACZ,OAAOA,QAAAA;AACT;;AAGA,IAAA,IAAIF,SAAW,EAAA;AACb,QAAA,OAAO,GAAGA,SAAU,CAAA,CAAC,EAAEC,QAAY,IAAA,EAAA,CAAA,CAAI,CAACG,IAAI,EAAA;AAC9C;AAEA,IAAA,OAAOD,KAAS,IAAA,EAAA;AAClB;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"users.mjs","sources":["../../../admin/src/utils/users.ts"],"sourcesContent":["import type { SanitizedAdminUser } from '@strapi/admin/strapi-admin';\n\n/**\n * Retrieves the display name of an admin panel user\n */\nconst getDisplayName = ({\n firstname,\n lastname,\n username,\n email,\n}: Partial<\n Pick<SanitizedAdminUser, 'firstname' | 'lastname' | 'username' | 'email'>\n> = {}): string => {\n if (username) {\n return username;\n }\n\n // firstname is not required if the user is created with a username\n if (firstname) {\n return `${firstname} ${lastname ?? ''}`.trim();\n }\n\n return email ?? '';\n};\n\nexport { getDisplayName };\n"],"names":["getDisplayName","firstname","lastname","username","email","trim"],"mappings":"AAEA;;AAEC,IACKA,MAAAA,cAAAA,GAAiB,CAAC,EACtBC,SAAS,EACTC,QAAQ,EACRC,QAAQ,EACRC,KAAK,EAGN,GAAG,EAAE,GAAA;AACJ,IAAA,IAAID,QAAU,EAAA;QACZ,OAAOA,QAAAA;AACT;;AAGA,IAAA,IAAIF,SAAW,EAAA;
|
|
1
|
+
{"version":3,"file":"users.mjs","sources":["../../../admin/src/utils/users.ts"],"sourcesContent":["import type { SanitizedAdminUser } from '@strapi/admin/strapi-admin';\n\n/**\n * Retrieves the display name of an admin panel user\n */\nconst getDisplayName = ({\n firstname,\n lastname,\n username,\n email,\n}: Partial<\n Pick<SanitizedAdminUser, 'firstname' | 'lastname' | 'username' | 'email'>\n> = {}): string => {\n if (username) {\n return username;\n }\n\n // firstname is not required if the user is created with a username\n if (firstname) {\n return `${firstname} ${lastname ?? ''}`.trim();\n }\n\n return email ?? '';\n};\n\nexport { getDisplayName };\n"],"names":["getDisplayName","firstname","lastname","username","email","trim"],"mappings":"AAEA;;AAEC,IACKA,MAAAA,cAAAA,GAAiB,CAAC,EACtBC,SAAS,EACTC,QAAQ,EACRC,QAAQ,EACRC,KAAK,EAGN,GAAG,EAAE,GAAA;AACJ,IAAA,IAAID,QAAU,EAAA;QACZ,OAAOA,QAAAA;AACT;;AAGA,IAAA,IAAIF,SAAW,EAAA;AACb,QAAA,OAAO,GAAGA,SAAU,CAAA,CAAC,EAAEC,QAAY,IAAA,EAAA,CAAA,CAAI,CAACG,IAAI,EAAA;AAC9C;AAEA,IAAA,OAAOD,KAAS,IAAA,EAAA;AAClB;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shorten-stage-attribute.js","sources":["../../../server/src/migrations/shorten-stage-attribute.ts"],"sourcesContent":["import semver from 'semver';\nimport { getOr } from 'lodash/fp';\nimport { async } from '@strapi/utils';\nimport { STAGE_MODEL_UID } from '../constants/workflows';\n\nfunction checkVersionThreshold(\n startVersion: string,\n currentVersion: string,\n thresholdVersion: string\n) {\n return semver.gte(currentVersion, thresholdVersion) && semver.lt(startVersion, thresholdVersion);\n}\n\n/**\n * Shorten strapi stage name\n */\nasync function migrateStageAttribute({ oldContentTypes, contentTypes }: any) {\n const getRWVersion = getOr('0.0.0', `${STAGE_MODEL_UID}.options.version`);\n const oldRWVersion = getRWVersion(oldContentTypes);\n const currentRWVersion = getRWVersion(contentTypes);\n\n const migrationNeeded = checkVersionThreshold(oldRWVersion, currentRWVersion, '1.1.0');\n\n // TODO: Find tables with something else than `findTables` function\n // if (migrationNeeded) {\n // const oldAttributeTableName = 'strapi_review_workflows_stage';\n // const newAttributeTableName = 'strapi_stage';\n // // const tables = await findTables({ strapi }, new RegExp(oldAttributeTableName));\n\n // await async.map(tables, async (tableName: string) => {\n // const newTableName = tableName.replace(oldAttributeTableName, newAttributeTableName);\n // const alreadyHasNextTable = await strapi.db.connection.schema.hasTable(newTableName);\n\n // // The table can be already created but empty. In order to rename the old one, we need to drop the previously created empty one.\n // if (alreadyHasNextTable) {\n // const dataInTable = await strapi.db.connection(newTableName).select().limit(1);\n // if (!dataInTable.length) {\n // await strapi.db.connection.schema.dropTable(newTableName);\n // }\n // }\n\n // try {\n // await strapi.db.connection.schema.renameTable(tableName, newTableName);\n // } catch (e: any) {\n // strapi.log.warn(\n // `An error occurred during the migration of ${tableName} table to ${newTableName}.\\nIf ${newTableName} already exists, migration can't be done automatically.`\n // );\n // strapi.log.warn(e.message);\n // }\n // });\n // }\n}\n\nexport default migrateStageAttribute;\n"],"names":["checkVersionThreshold","startVersion","currentVersion","thresholdVersion","semver","gte","lt","migrateStageAttribute","oldContentTypes","contentTypes","getRWVersion","getOr","STAGE_MODEL_UID","oldRWVersion","currentRWVersion"],"mappings":";;;;;;AAKA,SAASA,qBACPC,CAAAA,YAAoB,EACpBC,cAAsB,EACtBC,gBAAwB,EAAA;IAExB,OAAOC,MAAAA,CAAOC,GAAG,CAACH,cAAAA,EAAgBC,qBAAqBC,MAAOE,CAAAA,EAAE,CAACL,YAAcE,EAAAA,gBAAAA,CAAAA;AACjF;AAEA;;AAEC,IACD,eAAeI,qBAAsB,CAAA,EAAEC,eAAe,EAAEC,YAAY,EAAO,EAAA;AACzE,IAAA,MAAMC,eAAeC,QAAM,CAAA,OAAA,EAAS,
|
|
1
|
+
{"version":3,"file":"shorten-stage-attribute.js","sources":["../../../server/src/migrations/shorten-stage-attribute.ts"],"sourcesContent":["import semver from 'semver';\nimport { getOr } from 'lodash/fp';\nimport { async } from '@strapi/utils';\nimport { STAGE_MODEL_UID } from '../constants/workflows';\n\nfunction checkVersionThreshold(\n startVersion: string,\n currentVersion: string,\n thresholdVersion: string\n) {\n return semver.gte(currentVersion, thresholdVersion) && semver.lt(startVersion, thresholdVersion);\n}\n\n/**\n * Shorten strapi stage name\n */\nasync function migrateStageAttribute({ oldContentTypes, contentTypes }: any) {\n const getRWVersion = getOr('0.0.0', `${STAGE_MODEL_UID}.options.version`);\n const oldRWVersion = getRWVersion(oldContentTypes);\n const currentRWVersion = getRWVersion(contentTypes);\n\n const migrationNeeded = checkVersionThreshold(oldRWVersion, currentRWVersion, '1.1.0');\n\n // TODO: Find tables with something else than `findTables` function\n // if (migrationNeeded) {\n // const oldAttributeTableName = 'strapi_review_workflows_stage';\n // const newAttributeTableName = 'strapi_stage';\n // // const tables = await findTables({ strapi }, new RegExp(oldAttributeTableName));\n\n // await async.map(tables, async (tableName: string) => {\n // const newTableName = tableName.replace(oldAttributeTableName, newAttributeTableName);\n // const alreadyHasNextTable = await strapi.db.connection.schema.hasTable(newTableName);\n\n // // The table can be already created but empty. In order to rename the old one, we need to drop the previously created empty one.\n // if (alreadyHasNextTable) {\n // const dataInTable = await strapi.db.connection(newTableName).select().limit(1);\n // if (!dataInTable.length) {\n // await strapi.db.connection.schema.dropTable(newTableName);\n // }\n // }\n\n // try {\n // await strapi.db.connection.schema.renameTable(tableName, newTableName);\n // } catch (e: any) {\n // strapi.log.warn(\n // `An error occurred during the migration of ${tableName} table to ${newTableName}.\\nIf ${newTableName} already exists, migration can't be done automatically.`\n // );\n // strapi.log.warn(e.message);\n // }\n // });\n // }\n}\n\nexport default migrateStageAttribute;\n"],"names":["checkVersionThreshold","startVersion","currentVersion","thresholdVersion","semver","gte","lt","migrateStageAttribute","oldContentTypes","contentTypes","getRWVersion","getOr","STAGE_MODEL_UID","oldRWVersion","currentRWVersion"],"mappings":";;;;;;AAKA,SAASA,qBACPC,CAAAA,YAAoB,EACpBC,cAAsB,EACtBC,gBAAwB,EAAA;IAExB,OAAOC,MAAAA,CAAOC,GAAG,CAACH,cAAAA,EAAgBC,qBAAqBC,MAAOE,CAAAA,EAAE,CAACL,YAAcE,EAAAA,gBAAAA,CAAAA;AACjF;AAEA;;AAEC,IACD,eAAeI,qBAAsB,CAAA,EAAEC,eAAe,EAAEC,YAAY,EAAO,EAAA;AACzE,IAAA,MAAMC,eAAeC,QAAM,CAAA,OAAA,EAAS,CAAGC,EAAAA,yBAAAA,CAAgB,gBAAgB,CAAC,CAAA;AACxE,IAAA,MAAMC,eAAeH,YAAaF,CAAAA,eAAAA,CAAAA;AAClC,IAAA,MAAMM,mBAAmBJ,YAAaD,CAAAA,YAAAA,CAAAA;IAEdT,qBAAsBa,CAAAA,YAAAA,EAAcC,gBAAkB,EAAA,OAAA;AAE9E;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shorten-stage-attribute.mjs","sources":["../../../server/src/migrations/shorten-stage-attribute.ts"],"sourcesContent":["import semver from 'semver';\nimport { getOr } from 'lodash/fp';\nimport { async } from '@strapi/utils';\nimport { STAGE_MODEL_UID } from '../constants/workflows';\n\nfunction checkVersionThreshold(\n startVersion: string,\n currentVersion: string,\n thresholdVersion: string\n) {\n return semver.gte(currentVersion, thresholdVersion) && semver.lt(startVersion, thresholdVersion);\n}\n\n/**\n * Shorten strapi stage name\n */\nasync function migrateStageAttribute({ oldContentTypes, contentTypes }: any) {\n const getRWVersion = getOr('0.0.0', `${STAGE_MODEL_UID}.options.version`);\n const oldRWVersion = getRWVersion(oldContentTypes);\n const currentRWVersion = getRWVersion(contentTypes);\n\n const migrationNeeded = checkVersionThreshold(oldRWVersion, currentRWVersion, '1.1.0');\n\n // TODO: Find tables with something else than `findTables` function\n // if (migrationNeeded) {\n // const oldAttributeTableName = 'strapi_review_workflows_stage';\n // const newAttributeTableName = 'strapi_stage';\n // // const tables = await findTables({ strapi }, new RegExp(oldAttributeTableName));\n\n // await async.map(tables, async (tableName: string) => {\n // const newTableName = tableName.replace(oldAttributeTableName, newAttributeTableName);\n // const alreadyHasNextTable = await strapi.db.connection.schema.hasTable(newTableName);\n\n // // The table can be already created but empty. In order to rename the old one, we need to drop the previously created empty one.\n // if (alreadyHasNextTable) {\n // const dataInTable = await strapi.db.connection(newTableName).select().limit(1);\n // if (!dataInTable.length) {\n // await strapi.db.connection.schema.dropTable(newTableName);\n // }\n // }\n\n // try {\n // await strapi.db.connection.schema.renameTable(tableName, newTableName);\n // } catch (e: any) {\n // strapi.log.warn(\n // `An error occurred during the migration of ${tableName} table to ${newTableName}.\\nIf ${newTableName} already exists, migration can't be done automatically.`\n // );\n // strapi.log.warn(e.message);\n // }\n // });\n // }\n}\n\nexport default migrateStageAttribute;\n"],"names":["checkVersionThreshold","startVersion","currentVersion","thresholdVersion","semver","gte","lt","migrateStageAttribute","oldContentTypes","contentTypes","getRWVersion","getOr","STAGE_MODEL_UID","oldRWVersion","currentRWVersion"],"mappings":";;;;AAKA,SAASA,qBACPC,CAAAA,YAAoB,EACpBC,cAAsB,EACtBC,gBAAwB,EAAA;IAExB,OAAOC,MAAAA,CAAOC,GAAG,CAACH,cAAAA,EAAgBC,qBAAqBC,MAAOE,CAAAA,EAAE,CAACL,YAAcE,EAAAA,gBAAAA,CAAAA;AACjF;AAEA;;AAEC,IACD,eAAeI,qBAAsB,CAAA,EAAEC,eAAe,EAAEC,YAAY,EAAO,EAAA;AACzE,IAAA,MAAMC,eAAeC,KAAM,CAAA,OAAA,EAAS,
|
|
1
|
+
{"version":3,"file":"shorten-stage-attribute.mjs","sources":["../../../server/src/migrations/shorten-stage-attribute.ts"],"sourcesContent":["import semver from 'semver';\nimport { getOr } from 'lodash/fp';\nimport { async } from '@strapi/utils';\nimport { STAGE_MODEL_UID } from '../constants/workflows';\n\nfunction checkVersionThreshold(\n startVersion: string,\n currentVersion: string,\n thresholdVersion: string\n) {\n return semver.gte(currentVersion, thresholdVersion) && semver.lt(startVersion, thresholdVersion);\n}\n\n/**\n * Shorten strapi stage name\n */\nasync function migrateStageAttribute({ oldContentTypes, contentTypes }: any) {\n const getRWVersion = getOr('0.0.0', `${STAGE_MODEL_UID}.options.version`);\n const oldRWVersion = getRWVersion(oldContentTypes);\n const currentRWVersion = getRWVersion(contentTypes);\n\n const migrationNeeded = checkVersionThreshold(oldRWVersion, currentRWVersion, '1.1.0');\n\n // TODO: Find tables with something else than `findTables` function\n // if (migrationNeeded) {\n // const oldAttributeTableName = 'strapi_review_workflows_stage';\n // const newAttributeTableName = 'strapi_stage';\n // // const tables = await findTables({ strapi }, new RegExp(oldAttributeTableName));\n\n // await async.map(tables, async (tableName: string) => {\n // const newTableName = tableName.replace(oldAttributeTableName, newAttributeTableName);\n // const alreadyHasNextTable = await strapi.db.connection.schema.hasTable(newTableName);\n\n // // The table can be already created but empty. In order to rename the old one, we need to drop the previously created empty one.\n // if (alreadyHasNextTable) {\n // const dataInTable = await strapi.db.connection(newTableName).select().limit(1);\n // if (!dataInTable.length) {\n // await strapi.db.connection.schema.dropTable(newTableName);\n // }\n // }\n\n // try {\n // await strapi.db.connection.schema.renameTable(tableName, newTableName);\n // } catch (e: any) {\n // strapi.log.warn(\n // `An error occurred during the migration of ${tableName} table to ${newTableName}.\\nIf ${newTableName} already exists, migration can't be done automatically.`\n // );\n // strapi.log.warn(e.message);\n // }\n // });\n // }\n}\n\nexport default migrateStageAttribute;\n"],"names":["checkVersionThreshold","startVersion","currentVersion","thresholdVersion","semver","gte","lt","migrateStageAttribute","oldContentTypes","contentTypes","getRWVersion","getOr","STAGE_MODEL_UID","oldRWVersion","currentRWVersion"],"mappings":";;;;AAKA,SAASA,qBACPC,CAAAA,YAAoB,EACpBC,cAAsB,EACtBC,gBAAwB,EAAA;IAExB,OAAOC,MAAAA,CAAOC,GAAG,CAACH,cAAAA,EAAgBC,qBAAqBC,MAAOE,CAAAA,EAAE,CAACL,YAAcE,EAAAA,gBAAAA,CAAAA;AACjF;AAEA;;AAEC,IACD,eAAeI,qBAAsB,CAAA,EAAEC,eAAe,EAAEC,YAAY,EAAO,EAAA;AACzE,IAAA,MAAMC,eAAeC,KAAM,CAAA,OAAA,EAAS,CAAGC,EAAAA,eAAAA,CAAgB,gBAAgB,CAAC,CAAA;AACxE,IAAA,MAAMC,eAAeH,YAAaF,CAAAA,eAAAA,CAAAA;AAClC,IAAA,MAAMM,mBAAmBJ,YAAaD,CAAAA,YAAAA,CAAAA;IAEdT,qBAAsBa,CAAAA,YAAAA,EAAcC,gBAAkB,EAAA,OAAA;AAE9E;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"weekly-metrics.js","sources":["../../../../server/src/services/metrics/weekly-metrics.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport { flow, map, sum, size, mean, max, defaultTo } from 'lodash/fp';\nimport { add } from 'date-fns';\nimport { getService } from '../../utils';\n\nconst ONE_WEEK = 7 * 24 * 60 * 60 * 1000;\n\nconst getWeeklyCronScheduleAt = (date: Date) =>\n `${date.getSeconds()} ${date.getMinutes()} ${date.getHours()} * * ${date.getDay()}`;\n\nexport default ({ strapi }: { strapi: Core.Strapi }) => {\n const metrics = getService('workflow-metrics', { strapi });\n const workflowsService = getService('workflows', { strapi });\n\n const getMetricsStoreValue = async () => {\n const value = await strapi.store.get({ type: 'plugin', name: 'ee', key: 'metrics' });\n return defaultTo({}, value);\n };\n\n const setMetricsStoreValue = (value: unknown) =>\n strapi.store.set({ type: 'plugin', name: 'ee', key: 'metrics', value });\n\n return {\n async computeMetrics() {\n // There will never be more than 200 workflow, so we can safely fetch them all\n const workflows = await workflowsService.find({ populate: 'stages' });\n\n const stagesCount = flow(\n map('stages'), // Number of stages per workflow\n map(size)\n )(workflows);\n\n const contentTypesCount = flow(\n map('contentTypes'), // Number of content types per workflow\n map(size)\n )(workflows);\n\n return {\n numberOfActiveWorkflows: size(workflows),\n avgStagesCount: mean(stagesCount),\n maxStagesCount: max(stagesCount),\n activatedContentTypes: sum(contentTypesCount),\n };\n },\n\n async sendMetrics() {\n const computedMetrics = await this.computeMetrics();\n metrics.sendDidSendReviewWorkflowPropertiesOnceAWeek(computedMetrics);\n\n const metricsInfoStored = await getMetricsStoreValue();\n // @ts-expect-error metricsInfoStored can use spread\n await setMetricsStoreValue({ ...metricsInfoStored, lastWeeklyUpdate: new Date().getTime() });\n },\n\n async ensureWeeklyStoredCronSchedule() {\n const metricsInfoStored: any = await getMetricsStoreValue();\n const { weeklySchedule: currentSchedule, lastWeeklyUpdate } = metricsInfoStored;\n\n const now = new Date();\n let weeklySchedule = currentSchedule;\n\n if (!currentSchedule || !lastWeeklyUpdate || lastWeeklyUpdate + ONE_WEEK < now.getTime()) {\n weeklySchedule = getWeeklyCronScheduleAt(add(now, { seconds: 15 }));\n await setMetricsStoreValue({ ...metricsInfoStored, weeklySchedule });\n }\n\n return weeklySchedule;\n },\n\n async registerCron() {\n const weeklySchedule = await this.ensureWeeklyStoredCronSchedule();\n\n strapi.cron.add({\n reviewWorkflowsWeekly: {\n task: this.sendMetrics.bind(this),\n options: weeklySchedule,\n },\n });\n },\n };\n};\n"],"names":["ONE_WEEK","getWeeklyCronScheduleAt","date","getSeconds","getMinutes","getHours","getDay","strapi","metrics","getService","workflowsService","getMetricsStoreValue","value","store","get","type","name","key","defaultTo","setMetricsStoreValue","set","computeMetrics","workflows","find","populate","stagesCount","flow","map","size","contentTypesCount","numberOfActiveWorkflows","avgStagesCount","mean","maxStagesCount","max","activatedContentTypes","sum","sendMetrics","computedMetrics","sendDidSendReviewWorkflowPropertiesOnceAWeek","metricsInfoStored","lastWeeklyUpdate","Date","getTime","ensureWeeklyStoredCronSchedule","weeklySchedule","currentSchedule","now","add","seconds","registerCron","cron","reviewWorkflowsWeekly","task","bind","options"],"mappings":";;;;;;AAKA,MAAMA,QAAW,GAAA,CAAA,GAAI,EAAK,GAAA,EAAA,GAAK,EAAK,GAAA,IAAA;AAEpC,MAAMC,uBAAAA,GAA0B,CAACC,IAC/B,GAAA,
|
|
1
|
+
{"version":3,"file":"weekly-metrics.js","sources":["../../../../server/src/services/metrics/weekly-metrics.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport { flow, map, sum, size, mean, max, defaultTo } from 'lodash/fp';\nimport { add } from 'date-fns';\nimport { getService } from '../../utils';\n\nconst ONE_WEEK = 7 * 24 * 60 * 60 * 1000;\n\nconst getWeeklyCronScheduleAt = (date: Date) =>\n `${date.getSeconds()} ${date.getMinutes()} ${date.getHours()} * * ${date.getDay()}`;\n\nexport default ({ strapi }: { strapi: Core.Strapi }) => {\n const metrics = getService('workflow-metrics', { strapi });\n const workflowsService = getService('workflows', { strapi });\n\n const getMetricsStoreValue = async () => {\n const value = await strapi.store.get({ type: 'plugin', name: 'ee', key: 'metrics' });\n return defaultTo({}, value);\n };\n\n const setMetricsStoreValue = (value: unknown) =>\n strapi.store.set({ type: 'plugin', name: 'ee', key: 'metrics', value });\n\n return {\n async computeMetrics() {\n // There will never be more than 200 workflow, so we can safely fetch them all\n const workflows = await workflowsService.find({ populate: 'stages' });\n\n const stagesCount = flow(\n map('stages'), // Number of stages per workflow\n map(size)\n )(workflows);\n\n const contentTypesCount = flow(\n map('contentTypes'), // Number of content types per workflow\n map(size)\n )(workflows);\n\n return {\n numberOfActiveWorkflows: size(workflows),\n avgStagesCount: mean(stagesCount),\n maxStagesCount: max(stagesCount),\n activatedContentTypes: sum(contentTypesCount),\n };\n },\n\n async sendMetrics() {\n const computedMetrics = await this.computeMetrics();\n metrics.sendDidSendReviewWorkflowPropertiesOnceAWeek(computedMetrics);\n\n const metricsInfoStored = await getMetricsStoreValue();\n // @ts-expect-error metricsInfoStored can use spread\n await setMetricsStoreValue({ ...metricsInfoStored, lastWeeklyUpdate: new Date().getTime() });\n },\n\n async ensureWeeklyStoredCronSchedule() {\n const metricsInfoStored: any = await getMetricsStoreValue();\n const { weeklySchedule: currentSchedule, lastWeeklyUpdate } = metricsInfoStored;\n\n const now = new Date();\n let weeklySchedule = currentSchedule;\n\n if (!currentSchedule || !lastWeeklyUpdate || lastWeeklyUpdate + ONE_WEEK < now.getTime()) {\n weeklySchedule = getWeeklyCronScheduleAt(add(now, { seconds: 15 }));\n await setMetricsStoreValue({ ...metricsInfoStored, weeklySchedule });\n }\n\n return weeklySchedule;\n },\n\n async registerCron() {\n const weeklySchedule = await this.ensureWeeklyStoredCronSchedule();\n\n strapi.cron.add({\n reviewWorkflowsWeekly: {\n task: this.sendMetrics.bind(this),\n options: weeklySchedule,\n },\n });\n },\n };\n};\n"],"names":["ONE_WEEK","getWeeklyCronScheduleAt","date","getSeconds","getMinutes","getHours","getDay","strapi","metrics","getService","workflowsService","getMetricsStoreValue","value","store","get","type","name","key","defaultTo","setMetricsStoreValue","set","computeMetrics","workflows","find","populate","stagesCount","flow","map","size","contentTypesCount","numberOfActiveWorkflows","avgStagesCount","mean","maxStagesCount","max","activatedContentTypes","sum","sendMetrics","computedMetrics","sendDidSendReviewWorkflowPropertiesOnceAWeek","metricsInfoStored","lastWeeklyUpdate","Date","getTime","ensureWeeklyStoredCronSchedule","weeklySchedule","currentSchedule","now","add","seconds","registerCron","cron","reviewWorkflowsWeekly","task","bind","options"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"weekly-metrics.mjs","sources":["../../../../server/src/services/metrics/weekly-metrics.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport { flow, map, sum, size, mean, max, defaultTo } from 'lodash/fp';\nimport { add } from 'date-fns';\nimport { getService } from '../../utils';\n\nconst ONE_WEEK = 7 * 24 * 60 * 60 * 1000;\n\nconst getWeeklyCronScheduleAt = (date: Date) =>\n `${date.getSeconds()} ${date.getMinutes()} ${date.getHours()} * * ${date.getDay()}`;\n\nexport default ({ strapi }: { strapi: Core.Strapi }) => {\n const metrics = getService('workflow-metrics', { strapi });\n const workflowsService = getService('workflows', { strapi });\n\n const getMetricsStoreValue = async () => {\n const value = await strapi.store.get({ type: 'plugin', name: 'ee', key: 'metrics' });\n return defaultTo({}, value);\n };\n\n const setMetricsStoreValue = (value: unknown) =>\n strapi.store.set({ type: 'plugin', name: 'ee', key: 'metrics', value });\n\n return {\n async computeMetrics() {\n // There will never be more than 200 workflow, so we can safely fetch them all\n const workflows = await workflowsService.find({ populate: 'stages' });\n\n const stagesCount = flow(\n map('stages'), // Number of stages per workflow\n map(size)\n )(workflows);\n\n const contentTypesCount = flow(\n map('contentTypes'), // Number of content types per workflow\n map(size)\n )(workflows);\n\n return {\n numberOfActiveWorkflows: size(workflows),\n avgStagesCount: mean(stagesCount),\n maxStagesCount: max(stagesCount),\n activatedContentTypes: sum(contentTypesCount),\n };\n },\n\n async sendMetrics() {\n const computedMetrics = await this.computeMetrics();\n metrics.sendDidSendReviewWorkflowPropertiesOnceAWeek(computedMetrics);\n\n const metricsInfoStored = await getMetricsStoreValue();\n // @ts-expect-error metricsInfoStored can use spread\n await setMetricsStoreValue({ ...metricsInfoStored, lastWeeklyUpdate: new Date().getTime() });\n },\n\n async ensureWeeklyStoredCronSchedule() {\n const metricsInfoStored: any = await getMetricsStoreValue();\n const { weeklySchedule: currentSchedule, lastWeeklyUpdate } = metricsInfoStored;\n\n const now = new Date();\n let weeklySchedule = currentSchedule;\n\n if (!currentSchedule || !lastWeeklyUpdate || lastWeeklyUpdate + ONE_WEEK < now.getTime()) {\n weeklySchedule = getWeeklyCronScheduleAt(add(now, { seconds: 15 }));\n await setMetricsStoreValue({ ...metricsInfoStored, weeklySchedule });\n }\n\n return weeklySchedule;\n },\n\n async registerCron() {\n const weeklySchedule = await this.ensureWeeklyStoredCronSchedule();\n\n strapi.cron.add({\n reviewWorkflowsWeekly: {\n task: this.sendMetrics.bind(this),\n options: weeklySchedule,\n },\n });\n },\n };\n};\n"],"names":["ONE_WEEK","getWeeklyCronScheduleAt","date","getSeconds","getMinutes","getHours","getDay","strapi","metrics","getService","workflowsService","getMetricsStoreValue","value","store","get","type","name","key","defaultTo","setMetricsStoreValue","set","computeMetrics","workflows","find","populate","stagesCount","flow","map","size","contentTypesCount","numberOfActiveWorkflows","avgStagesCount","mean","maxStagesCount","max","activatedContentTypes","sum","sendMetrics","computedMetrics","sendDidSendReviewWorkflowPropertiesOnceAWeek","metricsInfoStored","lastWeeklyUpdate","Date","getTime","ensureWeeklyStoredCronSchedule","weeklySchedule","currentSchedule","now","add","seconds","registerCron","cron","reviewWorkflowsWeekly","task","bind","options"],"mappings":";;;;AAKA,MAAMA,QAAW,GAAA,CAAA,GAAI,EAAK,GAAA,EAAA,GAAK,EAAK,GAAA,IAAA;AAEpC,MAAMC,uBAAAA,GAA0B,CAACC,IAC/B,GAAA,
|
|
1
|
+
{"version":3,"file":"weekly-metrics.mjs","sources":["../../../../server/src/services/metrics/weekly-metrics.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport { flow, map, sum, size, mean, max, defaultTo } from 'lodash/fp';\nimport { add } from 'date-fns';\nimport { getService } from '../../utils';\n\nconst ONE_WEEK = 7 * 24 * 60 * 60 * 1000;\n\nconst getWeeklyCronScheduleAt = (date: Date) =>\n `${date.getSeconds()} ${date.getMinutes()} ${date.getHours()} * * ${date.getDay()}`;\n\nexport default ({ strapi }: { strapi: Core.Strapi }) => {\n const metrics = getService('workflow-metrics', { strapi });\n const workflowsService = getService('workflows', { strapi });\n\n const getMetricsStoreValue = async () => {\n const value = await strapi.store.get({ type: 'plugin', name: 'ee', key: 'metrics' });\n return defaultTo({}, value);\n };\n\n const setMetricsStoreValue = (value: unknown) =>\n strapi.store.set({ type: 'plugin', name: 'ee', key: 'metrics', value });\n\n return {\n async computeMetrics() {\n // There will never be more than 200 workflow, so we can safely fetch them all\n const workflows = await workflowsService.find({ populate: 'stages' });\n\n const stagesCount = flow(\n map('stages'), // Number of stages per workflow\n map(size)\n )(workflows);\n\n const contentTypesCount = flow(\n map('contentTypes'), // Number of content types per workflow\n map(size)\n )(workflows);\n\n return {\n numberOfActiveWorkflows: size(workflows),\n avgStagesCount: mean(stagesCount),\n maxStagesCount: max(stagesCount),\n activatedContentTypes: sum(contentTypesCount),\n };\n },\n\n async sendMetrics() {\n const computedMetrics = await this.computeMetrics();\n metrics.sendDidSendReviewWorkflowPropertiesOnceAWeek(computedMetrics);\n\n const metricsInfoStored = await getMetricsStoreValue();\n // @ts-expect-error metricsInfoStored can use spread\n await setMetricsStoreValue({ ...metricsInfoStored, lastWeeklyUpdate: new Date().getTime() });\n },\n\n async ensureWeeklyStoredCronSchedule() {\n const metricsInfoStored: any = await getMetricsStoreValue();\n const { weeklySchedule: currentSchedule, lastWeeklyUpdate } = metricsInfoStored;\n\n const now = new Date();\n let weeklySchedule = currentSchedule;\n\n if (!currentSchedule || !lastWeeklyUpdate || lastWeeklyUpdate + ONE_WEEK < now.getTime()) {\n weeklySchedule = getWeeklyCronScheduleAt(add(now, { seconds: 15 }));\n await setMetricsStoreValue({ ...metricsInfoStored, weeklySchedule });\n }\n\n return weeklySchedule;\n },\n\n async registerCron() {\n const weeklySchedule = await this.ensureWeeklyStoredCronSchedule();\n\n strapi.cron.add({\n reviewWorkflowsWeekly: {\n task: this.sendMetrics.bind(this),\n options: weeklySchedule,\n },\n });\n },\n };\n};\n"],"names":["ONE_WEEK","getWeeklyCronScheduleAt","date","getSeconds","getMinutes","getHours","getDay","strapi","metrics","getService","workflowsService","getMetricsStoreValue","value","store","get","type","name","key","defaultTo","setMetricsStoreValue","set","computeMetrics","workflows","find","populate","stagesCount","flow","map","size","contentTypesCount","numberOfActiveWorkflows","avgStagesCount","mean","maxStagesCount","max","activatedContentTypes","sum","sendMetrics","computedMetrics","sendDidSendReviewWorkflowPropertiesOnceAWeek","metricsInfoStored","lastWeeklyUpdate","Date","getTime","ensureWeeklyStoredCronSchedule","weeklySchedule","currentSchedule","now","add","seconds","registerCron","cron","reviewWorkflowsWeekly","task","bind","options"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stage-permissions.js","sources":["../../../server/src/services/stage-permissions.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport { prop } from 'lodash/fp';\nimport { async, errors } from '@strapi/utils';\nimport { getService, getAdminService } from '../utils';\nimport { STAGE_TRANSITION_UID } from '../constants/workflows';\n\nconst { ApplicationError } = errors;\nconst validActions = [STAGE_TRANSITION_UID];\n\nexport default ({ strapi }: { strapi: Core.Strapi }) => {\n const roleService = getAdminService('role');\n const permissionService = getAdminService('permission');\n\n return {\n async register({ roleId, action, fromStage }: any) {\n if (!validActions.includes(action)) {\n throw new ApplicationError(`Invalid action ${action}`);\n }\n const permissions = await roleService.addPermissions(roleId, [\n {\n action,\n actionParameters: {\n from: fromStage,\n },\n },\n ]);\n\n // TODO: Filter response\n return permissions;\n },\n async registerMany(permissions: any) {\n return async.map(permissions, this.register);\n },\n async unregister(permissions: any) {\n const permissionIds = permissions.map(prop('id'));\n await permissionService.deleteByIds(permissionIds);\n },\n can(action: any, fromStage: any) {\n const requestState = strapi.requestContext.get()?.state;\n\n if (!requestState) {\n return false;\n }\n\n // Override permissions for super admin\n const userRoles = requestState.user?.roles;\n if (userRoles?.some((role: any) => role.code === 'strapi-super-admin')) {\n return true;\n }\n\n return requestState.userAbility.can({\n name: action,\n params: { from: fromStage },\n });\n },\n };\n};\n"],"names":["ApplicationError","errors","validActions","STAGE_TRANSITION_UID","strapi","roleService","getAdminService","permissionService","register","roleId","action","fromStage","includes","permissions","addPermissions","actionParameters","from","registerMany","async","map","unregister","permissionIds","prop","deleteByIds","can","requestState","requestContext","get","state","userRoles","user","roles","some","role","code","userAbility","name","params"],"mappings":";;;;;;;AAMA,MAAM,EAAEA,gBAAgB,EAAE,GAAGC,YAAAA;AAC7B,MAAMC,YAAe,GAAA;AAACC,IAAAA;AAAqB,CAAA;AAE3C,uBAAe,CAAA,CAAC,EAAEC,MAAM,EAA2B,GAAA;AACjD,IAAA,MAAMC,cAAcC,qBAAgB,CAAA,MAAA,CAAA;AACpC,IAAA,MAAMC,oBAAoBD,qBAAgB,CAAA,YAAA,CAAA;IAE1C,OAAO;AACL,QAAA,MAAME,UAAS,EAAEC,MAAM,EAAEC,MAAM,EAAEC,SAAS,EAAO,EAAA;AAC/C,YAAA,IAAI,CAACT,YAAAA,CAAaU,QAAQ,CAACF,MAAS,CAAA,EAAA;AAClC,gBAAA,MAAM,IAAIV,
|
|
1
|
+
{"version":3,"file":"stage-permissions.js","sources":["../../../server/src/services/stage-permissions.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport { prop } from 'lodash/fp';\nimport { async, errors } from '@strapi/utils';\nimport { getService, getAdminService } from '../utils';\nimport { STAGE_TRANSITION_UID } from '../constants/workflows';\n\nconst { ApplicationError } = errors;\nconst validActions = [STAGE_TRANSITION_UID];\n\nexport default ({ strapi }: { strapi: Core.Strapi }) => {\n const roleService = getAdminService('role');\n const permissionService = getAdminService('permission');\n\n return {\n async register({ roleId, action, fromStage }: any) {\n if (!validActions.includes(action)) {\n throw new ApplicationError(`Invalid action ${action}`);\n }\n const permissions = await roleService.addPermissions(roleId, [\n {\n action,\n actionParameters: {\n from: fromStage,\n },\n },\n ]);\n\n // TODO: Filter response\n return permissions;\n },\n async registerMany(permissions: any) {\n return async.map(permissions, this.register);\n },\n async unregister(permissions: any) {\n const permissionIds = permissions.map(prop('id'));\n await permissionService.deleteByIds(permissionIds);\n },\n can(action: any, fromStage: any) {\n const requestState = strapi.requestContext.get()?.state;\n\n if (!requestState) {\n return false;\n }\n\n // Override permissions for super admin\n const userRoles = requestState.user?.roles;\n if (userRoles?.some((role: any) => role.code === 'strapi-super-admin')) {\n return true;\n }\n\n return requestState.userAbility.can({\n name: action,\n params: { from: fromStage },\n });\n },\n };\n};\n"],"names":["ApplicationError","errors","validActions","STAGE_TRANSITION_UID","strapi","roleService","getAdminService","permissionService","register","roleId","action","fromStage","includes","permissions","addPermissions","actionParameters","from","registerMany","async","map","unregister","permissionIds","prop","deleteByIds","can","requestState","requestContext","get","state","userRoles","user","roles","some","role","code","userAbility","name","params"],"mappings":";;;;;;;AAMA,MAAM,EAAEA,gBAAgB,EAAE,GAAGC,YAAAA;AAC7B,MAAMC,YAAe,GAAA;AAACC,IAAAA;AAAqB,CAAA;AAE3C,uBAAe,CAAA,CAAC,EAAEC,MAAM,EAA2B,GAAA;AACjD,IAAA,MAAMC,cAAcC,qBAAgB,CAAA,MAAA,CAAA;AACpC,IAAA,MAAMC,oBAAoBD,qBAAgB,CAAA,YAAA,CAAA;IAE1C,OAAO;AACL,QAAA,MAAME,UAAS,EAAEC,MAAM,EAAEC,MAAM,EAAEC,SAAS,EAAO,EAAA;AAC/C,YAAA,IAAI,CAACT,YAAAA,CAAaU,QAAQ,CAACF,MAAS,CAAA,EAAA;AAClC,gBAAA,MAAM,IAAIV,gBAAAA,CAAiB,CAAC,eAAe,EAAEU,MAAQ,CAAA,CAAA,CAAA;AACvD;AACA,YAAA,MAAMG,WAAc,GAAA,MAAMR,WAAYS,CAAAA,cAAc,CAACL,MAAQ,EAAA;AAC3D,gBAAA;AACEC,oBAAAA,MAAAA;oBACAK,gBAAkB,EAAA;wBAChBC,IAAML,EAAAA;AACR;AACF;AACD,aAAA,CAAA;;YAGD,OAAOE,WAAAA;AACT,SAAA;AACA,QAAA,MAAMI,cAAaJ,WAAgB,EAAA;AACjC,YAAA,OAAOK,YAAMC,GAAG,CAACN,WAAa,EAAA,IAAI,CAACL,QAAQ,CAAA;AAC7C,SAAA;AACA,QAAA,MAAMY,YAAWP,WAAgB,EAAA;AAC/B,YAAA,MAAMQ,aAAgBR,GAAAA,WAAAA,CAAYM,GAAG,CAACG,OAAK,CAAA,IAAA,CAAA,CAAA;YAC3C,MAAMf,iBAAAA,CAAkBgB,WAAW,CAACF,aAAAA,CAAAA;AACtC,SAAA;QACAG,GAAId,CAAAA,CAAAA,MAAW,EAAEC,SAAc,EAAA;AAC7B,YAAA,MAAMc,YAAerB,GAAAA,MAAAA,CAAOsB,cAAc,CAACC,GAAG,EAAIC,EAAAA,KAAAA;AAElD,YAAA,IAAI,CAACH,YAAc,EAAA;gBACjB,OAAO,KAAA;AACT;;YAGA,MAAMI,SAAAA,GAAYJ,YAAaK,CAAAA,IAAI,EAAEC,KAAAA;AACrC,YAAA,IAAIF,WAAWG,IAAK,CAAA,CAACC,OAAcA,IAAKC,CAAAA,IAAI,KAAK,oBAAuB,CAAA,EAAA;gBACtE,OAAO,IAAA;AACT;AAEA,YAAA,OAAOT,YAAaU,CAAAA,WAAW,CAACX,GAAG,CAAC;gBAClCY,IAAM1B,EAAAA,MAAAA;gBACN2B,MAAQ,EAAA;oBAAErB,IAAML,EAAAA;AAAU;AAC5B,aAAA,CAAA;AACF;AACF,KAAA;AACF,CAAA;;;;"}
|