@strapi/content-releases 5.50.1 → 5.51.0
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/index.js +1 -0
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +1 -0
- package/dist/admin/index.mjs.map +1 -1
- package/dist/admin/translations/ko.json.js +111 -0
- package/dist/admin/translations/ko.json.js.map +1 -0
- package/dist/admin/translations/ko.json.mjs +109 -0
- package/dist/admin/translations/ko.json.mjs.map +1 -0
- package/dist/server/services/scheduling.js +9 -7
- package/dist/server/services/scheduling.js.map +1 -1
- package/dist/server/services/scheduling.mjs +9 -7
- package/dist/server/services/scheduling.mjs.map +1 -1
- package/dist/server/src/index.d.ts +20 -18
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/routes/index.d.ts +3 -1
- package/dist/server/src/routes/index.d.ts.map +1 -1
- package/dist/server/src/services/index.d.ts +13 -13
- package/dist/server/src/services/scheduling.d.ts +4 -4
- package/dist/server/src/services/scheduling.d.ts.map +1 -1
- package/dist/server/src/utils/index.d.ts +1 -1
- package/dist/server/src/utils/index.d.ts.map +1 -1
- package/package.json +15 -11
package/dist/admin/index.js
CHANGED
|
@@ -17,6 +17,7 @@ function __variableDynamicImportRuntime4__(path) {
|
|
|
17
17
|
case './translations/en.json': return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('./translations/en.json.js')); });
|
|
18
18
|
case './translations/es.json': return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('./translations/es.json.js')); });
|
|
19
19
|
case './translations/ja.json': return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('./translations/ja.json.js')); });
|
|
20
|
+
case './translations/ko.json': return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('./translations/ko.json.js')); });
|
|
20
21
|
case './translations/nl.json': return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('./translations/nl.json.js')); });
|
|
21
22
|
case './translations/pl.json': return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('./translations/pl.json.js')); });
|
|
22
23
|
case './translations/sk.json': return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('./translations/sk.json.js')); });
|
package/dist/admin/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../admin/src/index.ts"],"sourcesContent":["import { PaperPlane } from '@strapi/icons';\n\nimport { ReleaseAction } from './components/ReleaseAction';\nimport { ReleaseActionModalForm } from './components/ReleaseActionModal';\nimport { addColumnToTableHook } from './components/ReleaseListCell';\nimport { Panel as ReleasesPanel } from './components/ReleasesPanel';\nimport { PERMISSIONS, PLUGIN_ID } from './constants';\nimport { pluginId } from './pluginId';\nimport { prefixPluginTranslations } from './utils/prefixPluginTranslations';\n\nimport type { StrapiApp } from '@strapi/admin/strapi-admin';\nimport type {\n DocumentActionComponent,\n BulkActionComponent,\n} from '@strapi/content-manager/strapi-admin';\nimport type { Plugin } from '@strapi/types';\n\n// eslint-disable-next-line import/no-default-export\nconst admin: Plugin.Config.AdminInput = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n register(app: StrapiApp) {\n /**\n * Hook that adds the locale column in the Release Details table\n * @constant\n * @type {string}\n */\n app.createHook('ContentReleases/pages/ReleaseDetails/add-locale-in-releases');\n\n if (window.strapi.features.isEnabled('cms-content-releases')) {\n app.addMenuLink({\n to: `plugins/${pluginId}`,\n icon: PaperPlane,\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Releases',\n },\n Component: () => import('./pages/App').then((mod) => ({ default: mod.App })),\n permissions: PERMISSIONS.main,\n position: 2,\n });\n\n // Insert the releases container into the CM's sidebar on the Edit View\n const contentManagerPluginApis = app.getPlugin('content-manager').apis;\n if (\n 'addEditViewSidePanel' in contentManagerPluginApis &&\n typeof contentManagerPluginApis.addEditViewSidePanel === 'function'\n ) {\n contentManagerPluginApis.addEditViewSidePanel([ReleasesPanel]);\n }\n\n // Insert the \"add to release\" action into the CM's Edit View\n if (\n 'addDocumentAction' in contentManagerPluginApis &&\n typeof contentManagerPluginApis.addDocumentAction === 'function'\n ) {\n contentManagerPluginApis.addDocumentAction((actions: DocumentActionComponent[]) => {\n const indexOfDeleteAction = actions.findIndex((action) => action.type === 'unpublish');\n actions.splice(indexOfDeleteAction, 0, ReleaseActionModalForm);\n return actions;\n });\n }\n\n app.addSettingsLink('global', {\n id: pluginId,\n to: 'releases',\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Releases',\n },\n licenseOnly: true,\n permissions: [],\n Component() {\n return import('./pages/ReleasesSettingsPage').then((mod) => ({\n default: mod.ProtectedReleasesSettingsPage,\n }));\n },\n });\n\n if (\n 'addBulkAction' in contentManagerPluginApis &&\n typeof contentManagerPluginApis.addBulkAction === 'function'\n ) {\n contentManagerPluginApis.addBulkAction((actions: BulkActionComponent[]) => {\n // We want to add this action to just before the delete action all the time\n const deleteActionIndex = actions.findIndex((action) => action.type === 'delete');\n\n actions.splice(deleteActionIndex, 0, ReleaseAction);\n return actions;\n });\n }\n\n // Hook that adds a column into the CM's LV table\n app.registerHook('Admin/CM/pages/ListView/inject-column-in-table', addColumnToTableHook);\n\n app.widgets.register([\n {\n icon: PaperPlane,\n title: {\n id: `${PLUGIN_ID}.widget.upcoming-releases.title`,\n defaultMessage: 'Upcoming releases',\n },\n component: async () => {\n const { UpcomingReleasesWidget } = await import('./components/Widgets');\n return UpcomingReleasesWidget;\n },\n pluginId: PLUGIN_ID,\n id: 'upcoming-releases',\n link: {\n label: {\n id: `${PLUGIN_ID}.widget.upcoming-releases.link`,\n defaultMessage: 'Open Releases',\n },\n href: '/plugins/content-releases',\n },\n },\n ]);\n } else if (\n !window.strapi.features.isEnabled('cms-content-releases') &&\n window.strapi?.flags?.promoteEE\n ) {\n app.addSettingsLink('global', {\n id: pluginId,\n to: 'purchase-content-releases',\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Releases',\n },\n permissions: [],\n Component() {\n return import('./pages/PurchaseContentReleases').then((mod) => ({\n default: mod.PurchaseContentReleases,\n }));\n },\n licenseOnly: true,\n });\n }\n },\n async registerTrads({ locales }: { locales: string[] }) {\n const importedTrads = await Promise.all(\n locales.map((locale) => {\n return import(`./translations/${locale}.json`)\n .then(({ default: data }) => {\n return {\n data: prefixPluginTranslations(data, 'content-releases'),\n locale,\n };\n })\n .catch(() => {\n return {\n data: {},\n locale,\n };\n });\n })\n );\n\n return Promise.resolve(importedTrads);\n },\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default admin;\n"],"names":["admin","register","app","createHook","window","strapi","features","isEnabled","addMenuLink","to","pluginId","icon","PaperPlane","intlLabel","id","defaultMessage","Component","then","mod","default","App","permissions","PERMISSIONS","main","position","contentManagerPluginApis","getPlugin","apis","addEditViewSidePanel","ReleasesPanel","addDocumentAction","actions","indexOfDeleteAction","findIndex","action","type","splice","ReleaseActionModalForm","addSettingsLink","licenseOnly","ProtectedReleasesSettingsPage","addBulkAction","deleteActionIndex","ReleaseAction","registerHook","addColumnToTableHook","widgets","title","PLUGIN_ID","component","UpcomingReleasesWidget","link","label","href","flags","promoteEE","PurchaseContentReleases","registerTrads","locales","importedTrads","Promise","all","map","locale","data","prefixPluginTranslations","catch","resolve"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../admin/src/index.ts"],"sourcesContent":["import { PaperPlane } from '@strapi/icons';\n\nimport { ReleaseAction } from './components/ReleaseAction';\nimport { ReleaseActionModalForm } from './components/ReleaseActionModal';\nimport { addColumnToTableHook } from './components/ReleaseListCell';\nimport { Panel as ReleasesPanel } from './components/ReleasesPanel';\nimport { PERMISSIONS, PLUGIN_ID } from './constants';\nimport { pluginId } from './pluginId';\nimport { prefixPluginTranslations } from './utils/prefixPluginTranslations';\n\nimport type { StrapiApp } from '@strapi/admin/strapi-admin';\nimport type {\n DocumentActionComponent,\n BulkActionComponent,\n} from '@strapi/content-manager/strapi-admin';\nimport type { Plugin } from '@strapi/types';\n\n// eslint-disable-next-line import/no-default-export\nconst admin: Plugin.Config.AdminInput = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n register(app: StrapiApp) {\n /**\n * Hook that adds the locale column in the Release Details table\n * @constant\n * @type {string}\n */\n app.createHook('ContentReleases/pages/ReleaseDetails/add-locale-in-releases');\n\n if (window.strapi.features.isEnabled('cms-content-releases')) {\n app.addMenuLink({\n to: `plugins/${pluginId}`,\n icon: PaperPlane,\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Releases',\n },\n Component: () => import('./pages/App').then((mod) => ({ default: mod.App })),\n permissions: PERMISSIONS.main,\n position: 2,\n });\n\n // Insert the releases container into the CM's sidebar on the Edit View\n const contentManagerPluginApis = app.getPlugin('content-manager').apis;\n if (\n 'addEditViewSidePanel' in contentManagerPluginApis &&\n typeof contentManagerPluginApis.addEditViewSidePanel === 'function'\n ) {\n contentManagerPluginApis.addEditViewSidePanel([ReleasesPanel]);\n }\n\n // Insert the \"add to release\" action into the CM's Edit View\n if (\n 'addDocumentAction' in contentManagerPluginApis &&\n typeof contentManagerPluginApis.addDocumentAction === 'function'\n ) {\n contentManagerPluginApis.addDocumentAction((actions: DocumentActionComponent[]) => {\n const indexOfDeleteAction = actions.findIndex((action) => action.type === 'unpublish');\n actions.splice(indexOfDeleteAction, 0, ReleaseActionModalForm);\n return actions;\n });\n }\n\n app.addSettingsLink('global', {\n id: pluginId,\n to: 'releases',\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Releases',\n },\n licenseOnly: true,\n permissions: [],\n Component() {\n return import('./pages/ReleasesSettingsPage').then((mod) => ({\n default: mod.ProtectedReleasesSettingsPage,\n }));\n },\n });\n\n if (\n 'addBulkAction' in contentManagerPluginApis &&\n typeof contentManagerPluginApis.addBulkAction === 'function'\n ) {\n contentManagerPluginApis.addBulkAction((actions: BulkActionComponent[]) => {\n // We want to add this action to just before the delete action all the time\n const deleteActionIndex = actions.findIndex((action) => action.type === 'delete');\n\n actions.splice(deleteActionIndex, 0, ReleaseAction);\n return actions;\n });\n }\n\n // Hook that adds a column into the CM's LV table\n app.registerHook('Admin/CM/pages/ListView/inject-column-in-table', addColumnToTableHook);\n\n app.widgets.register([\n {\n icon: PaperPlane,\n title: {\n id: `${PLUGIN_ID}.widget.upcoming-releases.title`,\n defaultMessage: 'Upcoming releases',\n },\n component: async () => {\n const { UpcomingReleasesWidget } = await import('./components/Widgets');\n return UpcomingReleasesWidget;\n },\n pluginId: PLUGIN_ID,\n id: 'upcoming-releases',\n link: {\n label: {\n id: `${PLUGIN_ID}.widget.upcoming-releases.link`,\n defaultMessage: 'Open Releases',\n },\n href: '/plugins/content-releases',\n },\n },\n ]);\n } else if (\n !window.strapi.features.isEnabled('cms-content-releases') &&\n window.strapi?.flags?.promoteEE\n ) {\n app.addSettingsLink('global', {\n id: pluginId,\n to: 'purchase-content-releases',\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Releases',\n },\n permissions: [],\n Component() {\n return import('./pages/PurchaseContentReleases').then((mod) => ({\n default: mod.PurchaseContentReleases,\n }));\n },\n licenseOnly: true,\n });\n }\n },\n async registerTrads({ locales }: { locales: string[] }) {\n const importedTrads = await Promise.all(\n locales.map((locale) => {\n return import(`./translations/${locale}.json`)\n .then(({ default: data }) => {\n return {\n data: prefixPluginTranslations(data, 'content-releases'),\n locale,\n };\n })\n .catch(() => {\n return {\n data: {},\n locale,\n };\n });\n })\n );\n\n return Promise.resolve(importedTrads);\n },\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default admin;\n"],"names":["admin","register","app","createHook","window","strapi","features","isEnabled","addMenuLink","to","pluginId","icon","PaperPlane","intlLabel","id","defaultMessage","Component","then","mod","default","App","permissions","PERMISSIONS","main","position","contentManagerPluginApis","getPlugin","apis","addEditViewSidePanel","ReleasesPanel","addDocumentAction","actions","indexOfDeleteAction","findIndex","action","type","splice","ReleaseActionModalForm","addSettingsLink","licenseOnly","ProtectedReleasesSettingsPage","addBulkAction","deleteActionIndex","ReleaseAction","registerHook","addColumnToTableHook","widgets","title","PLUGIN_ID","component","UpcomingReleasesWidget","link","label","href","flags","promoteEE","PurchaseContentReleases","registerTrads","locales","importedTrads","Promise","all","map","locale","data","prefixPluginTranslations","catch","resolve"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiBA;AACA,MAAMA,KAAAA,GAAkC;;AAEtCC,IAAAA,QAAAA,CAAAA,CAASC,GAAc,EAAA;AACrB;;;;QAKAA,GAAAA,CAAIC,UAAU,CAAC,6DAAA,CAAA;AAEf,QAAA,IAAIC,OAAOC,MAAM,CAACC,QAAQ,CAACC,SAAS,CAAC,sBAAA,CAAA,EAAyB;AAC5DL,YAAAA,GAAAA,CAAIM,WAAW,CAAC;gBACdC,EAAAA,EAAI,CAAC,QAAQ,EAAEC,iBAAAA,CAAAA,CAAU;gBACzBC,IAAAA,EAAMC,gBAAAA;gBACNC,SAAAA,EAAW;oBACTC,EAAAA,EAAI,CAAA,EAAGJ,iBAAAA,CAAS,YAAY,CAAC;oBAC7BK,cAAAA,EAAgB;AAClB,iBAAA;gBACAC,SAAAA,EAAW,IAAM,oDAAO,gBAAA,KAAA,CAAeC,IAAI,CAAC,CAACC,OAAS;AAAEC,4BAAAA,OAAAA,EAASD,IAAIE;yBAAI,CAAA,CAAA;AACzEC,gBAAAA,WAAAA,EAAaC,sBAAYC,IAAI;gBAC7BC,QAAAA,EAAU;AACZ,aAAA,CAAA;;AAGA,YAAA,MAAMC,wBAAAA,GAA2BvB,GAAAA,CAAIwB,SAAS,CAAC,mBAAmBC,IAAI;AACtE,YAAA,IACE,0BAA0BF,wBAAAA,IAC1B,OAAOA,wBAAAA,CAAyBG,oBAAoB,KAAK,UAAA,EACzD;AACAH,gBAAAA,wBAAAA,CAAyBG,oBAAoB,CAAC;AAACC,oBAAAA;AAAc,iBAAA,CAAA;AAC/D,YAAA;;AAGA,YAAA,IACE,uBAAuBJ,wBAAAA,IACvB,OAAOA,wBAAAA,CAAyBK,iBAAiB,KAAK,UAAA,EACtD;gBACAL,wBAAAA,CAAyBK,iBAAiB,CAAC,CAACC,OAAAA,GAAAA;oBAC1C,MAAMC,mBAAAA,GAAsBD,QAAQE,SAAS,CAAC,CAACC,MAAAA,GAAWA,MAAAA,CAAOC,IAAI,KAAK,WAAA,CAAA;oBAC1EJ,OAAAA,CAAQK,MAAM,CAACJ,mBAAAA,EAAqB,CAAA,EAAGK,yCAAAA,CAAAA;oBACvC,OAAON,OAAAA;AACT,gBAAA,CAAA,CAAA;AACF,YAAA;YAEA7B,GAAAA,CAAIoC,eAAe,CAAC,QAAA,EAAU;gBAC5BxB,EAAAA,EAAIJ,iBAAAA;gBACJD,EAAAA,EAAI,UAAA;gBACJI,SAAAA,EAAW;oBACTC,EAAAA,EAAI,CAAA,EAAGJ,iBAAAA,CAAS,YAAY,CAAC;oBAC7BK,cAAAA,EAAgB;AAClB,iBAAA;gBACAwB,WAAAA,EAAa,IAAA;AACblB,gBAAAA,WAAAA,EAAa,EAAE;AACfL,gBAAAA,SAAAA,CAAAA,GAAAA;AACE,oBAAA,OAAO,oDAAO,iCAAA,KAAA,CAAgCC,IAAI,CAAC,CAACC,OAAS;AAC3DC,4BAAAA,OAAAA,EAASD,IAAIsB;yBACf,CAAA,CAAA;AACF,gBAAA;AACF,aAAA,CAAA;AAEA,YAAA,IACE,mBAAmBf,wBAAAA,IACnB,OAAOA,wBAAAA,CAAyBgB,aAAa,KAAK,UAAA,EAClD;gBACAhB,wBAAAA,CAAyBgB,aAAa,CAAC,CAACV,OAAAA,GAAAA;;oBAEtC,MAAMW,iBAAAA,GAAoBX,QAAQE,SAAS,CAAC,CAACC,MAAAA,GAAWA,MAAAA,CAAOC,IAAI,KAAK,QAAA,CAAA;oBAExEJ,OAAAA,CAAQK,MAAM,CAACM,iBAAAA,EAAmB,CAAA,EAAGC,2BAAAA,CAAAA;oBACrC,OAAOZ,OAAAA;AACT,gBAAA,CAAA,CAAA;AACF,YAAA;;YAGA7B,GAAAA,CAAI0C,YAAY,CAAC,gDAAA,EAAkDC,oCAAAA,CAAAA;YAEnE3C,GAAAA,CAAI4C,OAAO,CAAC7C,QAAQ,CAAC;AACnB,gBAAA;oBACEU,IAAAA,EAAMC,gBAAAA;oBACNmC,KAAAA,EAAO;wBACLjC,EAAAA,EAAI,CAAA,EAAGkC,mBAAAA,CAAU,+BAA+B,CAAC;wBACjDjC,cAAAA,EAAgB;AAClB,qBAAA;oBACAkC,SAAAA,EAAW,UAAA;AACT,wBAAA,MAAM,EAAEC,sBAAsB,EAAE,GAAG,MAAM,oDAAO,yBAAA,KAAA;wBAChD,OAAOA,sBAAAA;AACT,oBAAA,CAAA;oBACAxC,QAAAA,EAAUsC,mBAAAA;oBACVlC,EAAAA,EAAI,mBAAA;oBACJqC,IAAAA,EAAM;wBACJC,KAAAA,EAAO;4BACLtC,EAAAA,EAAI,CAAA,EAAGkC,mBAAAA,CAAU,8BAA8B,CAAC;4BAChDjC,cAAAA,EAAgB;AAClB,yBAAA;wBACAsC,IAAAA,EAAM;AACR;AACF;AACD,aAAA,CAAA;AACH,QAAA,CAAA,MAAO,IACL,CAACjD,MAAAA,CAAOC,MAAM,CAACC,QAAQ,CAACC,SAAS,CAAC,sBAAA,CAAA,IAClCH,MAAAA,CAAOC,MAAM,EAAEiD,OAAOC,SAAAA,EACtB;YACArD,GAAAA,CAAIoC,eAAe,CAAC,QAAA,EAAU;gBAC5BxB,EAAAA,EAAIJ,iBAAAA;gBACJD,EAAAA,EAAI,2BAAA;gBACJI,SAAAA,EAAW;oBACTC,EAAAA,EAAI,CAAA,EAAGJ,iBAAAA,CAAS,YAAY,CAAC;oBAC7BK,cAAAA,EAAgB;AAClB,iBAAA;AACAM,gBAAAA,WAAAA,EAAa,EAAE;AACfL,gBAAAA,SAAAA,CAAAA,GAAAA;AACE,oBAAA,OAAO,oDAAO,oCAAA,KAAA,CAAmCC,IAAI,CAAC,CAACC,OAAS;AAC9DC,4BAAAA,OAAAA,EAASD,IAAIsC;yBACf,CAAA,CAAA;AACF,gBAAA,CAAA;gBACAjB,WAAAA,EAAa;AACf,aAAA,CAAA;AACF,QAAA;AACF,IAAA,CAAA;IACA,MAAMkB,aAAAA,CAAAA,CAAc,EAAEC,OAAO,EAAyB,EAAA;QACpD,MAAMC,aAAAA,GAAgB,MAAMC,OAAAA,CAAQC,GAAG,CACrCH,OAAAA,CAAQI,GAAG,CAAC,CAACC,MAAAA,GAAAA;AACX,YAAA,OAAO,iCAAM,CAAC,CAAC,eAAe,EAAEA,MAAAA,CAAO,KAAK,CAAC,CAAA,CAC1C9C,IAAI,CAAC,CAAC,EAAEE,OAAAA,EAAS6C,IAAI,EAAE,GAAA;gBACtB,OAAO;AACLA,oBAAAA,IAAAA,EAAMC,kDAAyBD,IAAAA,EAAM,kBAAA,CAAA;AACrCD,oBAAAA;AACF,iBAAA;AACF,YAAA,CAAA,CAAA,CACCG,KAAK,CAAC,IAAA;gBACL,OAAO;AACLF,oBAAAA,IAAAA,EAAM,EAAC;AACPD,oBAAAA;AACF,iBAAA;AACF,YAAA,CAAA,CAAA;AACJ,QAAA,CAAA,CAAA,CAAA;QAGF,OAAOH,OAAAA,CAAQO,OAAO,CAACR,aAAAA,CAAAA;AACzB,IAAA;AACF;;;;"}
|
package/dist/admin/index.mjs
CHANGED
|
@@ -13,6 +13,7 @@ function __variableDynamicImportRuntime4__(path) {
|
|
|
13
13
|
case './translations/en.json': return import('./translations/en.json.mjs');
|
|
14
14
|
case './translations/es.json': return import('./translations/es.json.mjs');
|
|
15
15
|
case './translations/ja.json': return import('./translations/ja.json.mjs');
|
|
16
|
+
case './translations/ko.json': return import('./translations/ko.json.mjs');
|
|
16
17
|
case './translations/nl.json': return import('./translations/nl.json.mjs');
|
|
17
18
|
case './translations/pl.json': return import('./translations/pl.json.mjs');
|
|
18
19
|
case './translations/sk.json': return import('./translations/sk.json.mjs');
|
package/dist/admin/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../admin/src/index.ts"],"sourcesContent":["import { PaperPlane } from '@strapi/icons';\n\nimport { ReleaseAction } from './components/ReleaseAction';\nimport { ReleaseActionModalForm } from './components/ReleaseActionModal';\nimport { addColumnToTableHook } from './components/ReleaseListCell';\nimport { Panel as ReleasesPanel } from './components/ReleasesPanel';\nimport { PERMISSIONS, PLUGIN_ID } from './constants';\nimport { pluginId } from './pluginId';\nimport { prefixPluginTranslations } from './utils/prefixPluginTranslations';\n\nimport type { StrapiApp } from '@strapi/admin/strapi-admin';\nimport type {\n DocumentActionComponent,\n BulkActionComponent,\n} from '@strapi/content-manager/strapi-admin';\nimport type { Plugin } from '@strapi/types';\n\n// eslint-disable-next-line import/no-default-export\nconst admin: Plugin.Config.AdminInput = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n register(app: StrapiApp) {\n /**\n * Hook that adds the locale column in the Release Details table\n * @constant\n * @type {string}\n */\n app.createHook('ContentReleases/pages/ReleaseDetails/add-locale-in-releases');\n\n if (window.strapi.features.isEnabled('cms-content-releases')) {\n app.addMenuLink({\n to: `plugins/${pluginId}`,\n icon: PaperPlane,\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Releases',\n },\n Component: () => import('./pages/App').then((mod) => ({ default: mod.App })),\n permissions: PERMISSIONS.main,\n position: 2,\n });\n\n // Insert the releases container into the CM's sidebar on the Edit View\n const contentManagerPluginApis = app.getPlugin('content-manager').apis;\n if (\n 'addEditViewSidePanel' in contentManagerPluginApis &&\n typeof contentManagerPluginApis.addEditViewSidePanel === 'function'\n ) {\n contentManagerPluginApis.addEditViewSidePanel([ReleasesPanel]);\n }\n\n // Insert the \"add to release\" action into the CM's Edit View\n if (\n 'addDocumentAction' in contentManagerPluginApis &&\n typeof contentManagerPluginApis.addDocumentAction === 'function'\n ) {\n contentManagerPluginApis.addDocumentAction((actions: DocumentActionComponent[]) => {\n const indexOfDeleteAction = actions.findIndex((action) => action.type === 'unpublish');\n actions.splice(indexOfDeleteAction, 0, ReleaseActionModalForm);\n return actions;\n });\n }\n\n app.addSettingsLink('global', {\n id: pluginId,\n to: 'releases',\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Releases',\n },\n licenseOnly: true,\n permissions: [],\n Component() {\n return import('./pages/ReleasesSettingsPage').then((mod) => ({\n default: mod.ProtectedReleasesSettingsPage,\n }));\n },\n });\n\n if (\n 'addBulkAction' in contentManagerPluginApis &&\n typeof contentManagerPluginApis.addBulkAction === 'function'\n ) {\n contentManagerPluginApis.addBulkAction((actions: BulkActionComponent[]) => {\n // We want to add this action to just before the delete action all the time\n const deleteActionIndex = actions.findIndex((action) => action.type === 'delete');\n\n actions.splice(deleteActionIndex, 0, ReleaseAction);\n return actions;\n });\n }\n\n // Hook that adds a column into the CM's LV table\n app.registerHook('Admin/CM/pages/ListView/inject-column-in-table', addColumnToTableHook);\n\n app.widgets.register([\n {\n icon: PaperPlane,\n title: {\n id: `${PLUGIN_ID}.widget.upcoming-releases.title`,\n defaultMessage: 'Upcoming releases',\n },\n component: async () => {\n const { UpcomingReleasesWidget } = await import('./components/Widgets');\n return UpcomingReleasesWidget;\n },\n pluginId: PLUGIN_ID,\n id: 'upcoming-releases',\n link: {\n label: {\n id: `${PLUGIN_ID}.widget.upcoming-releases.link`,\n defaultMessage: 'Open Releases',\n },\n href: '/plugins/content-releases',\n },\n },\n ]);\n } else if (\n !window.strapi.features.isEnabled('cms-content-releases') &&\n window.strapi?.flags?.promoteEE\n ) {\n app.addSettingsLink('global', {\n id: pluginId,\n to: 'purchase-content-releases',\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Releases',\n },\n permissions: [],\n Component() {\n return import('./pages/PurchaseContentReleases').then((mod) => ({\n default: mod.PurchaseContentReleases,\n }));\n },\n licenseOnly: true,\n });\n }\n },\n async registerTrads({ locales }: { locales: string[] }) {\n const importedTrads = await Promise.all(\n locales.map((locale) => {\n return import(`./translations/${locale}.json`)\n .then(({ default: data }) => {\n return {\n data: prefixPluginTranslations(data, 'content-releases'),\n locale,\n };\n })\n .catch(() => {\n return {\n data: {},\n locale,\n };\n });\n })\n );\n\n return Promise.resolve(importedTrads);\n },\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default admin;\n"],"names":["admin","register","app","createHook","window","strapi","features","isEnabled","addMenuLink","to","pluginId","icon","PaperPlane","intlLabel","id","defaultMessage","Component","then","mod","default","App","permissions","PERMISSIONS","main","position","contentManagerPluginApis","getPlugin","apis","addEditViewSidePanel","ReleasesPanel","addDocumentAction","actions","indexOfDeleteAction","findIndex","action","type","splice","ReleaseActionModalForm","addSettingsLink","licenseOnly","ProtectedReleasesSettingsPage","addBulkAction","deleteActionIndex","ReleaseAction","registerHook","addColumnToTableHook","widgets","title","PLUGIN_ID","component","UpcomingReleasesWidget","link","label","href","flags","promoteEE","PurchaseContentReleases","registerTrads","locales","importedTrads","Promise","all","map","locale","data","prefixPluginTranslations","catch","resolve"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../admin/src/index.ts"],"sourcesContent":["import { PaperPlane } from '@strapi/icons';\n\nimport { ReleaseAction } from './components/ReleaseAction';\nimport { ReleaseActionModalForm } from './components/ReleaseActionModal';\nimport { addColumnToTableHook } from './components/ReleaseListCell';\nimport { Panel as ReleasesPanel } from './components/ReleasesPanel';\nimport { PERMISSIONS, PLUGIN_ID } from './constants';\nimport { pluginId } from './pluginId';\nimport { prefixPluginTranslations } from './utils/prefixPluginTranslations';\n\nimport type { StrapiApp } from '@strapi/admin/strapi-admin';\nimport type {\n DocumentActionComponent,\n BulkActionComponent,\n} from '@strapi/content-manager/strapi-admin';\nimport type { Plugin } from '@strapi/types';\n\n// eslint-disable-next-line import/no-default-export\nconst admin: Plugin.Config.AdminInput = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n register(app: StrapiApp) {\n /**\n * Hook that adds the locale column in the Release Details table\n * @constant\n * @type {string}\n */\n app.createHook('ContentReleases/pages/ReleaseDetails/add-locale-in-releases');\n\n if (window.strapi.features.isEnabled('cms-content-releases')) {\n app.addMenuLink({\n to: `plugins/${pluginId}`,\n icon: PaperPlane,\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Releases',\n },\n Component: () => import('./pages/App').then((mod) => ({ default: mod.App })),\n permissions: PERMISSIONS.main,\n position: 2,\n });\n\n // Insert the releases container into the CM's sidebar on the Edit View\n const contentManagerPluginApis = app.getPlugin('content-manager').apis;\n if (\n 'addEditViewSidePanel' in contentManagerPluginApis &&\n typeof contentManagerPluginApis.addEditViewSidePanel === 'function'\n ) {\n contentManagerPluginApis.addEditViewSidePanel([ReleasesPanel]);\n }\n\n // Insert the \"add to release\" action into the CM's Edit View\n if (\n 'addDocumentAction' in contentManagerPluginApis &&\n typeof contentManagerPluginApis.addDocumentAction === 'function'\n ) {\n contentManagerPluginApis.addDocumentAction((actions: DocumentActionComponent[]) => {\n const indexOfDeleteAction = actions.findIndex((action) => action.type === 'unpublish');\n actions.splice(indexOfDeleteAction, 0, ReleaseActionModalForm);\n return actions;\n });\n }\n\n app.addSettingsLink('global', {\n id: pluginId,\n to: 'releases',\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Releases',\n },\n licenseOnly: true,\n permissions: [],\n Component() {\n return import('./pages/ReleasesSettingsPage').then((mod) => ({\n default: mod.ProtectedReleasesSettingsPage,\n }));\n },\n });\n\n if (\n 'addBulkAction' in contentManagerPluginApis &&\n typeof contentManagerPluginApis.addBulkAction === 'function'\n ) {\n contentManagerPluginApis.addBulkAction((actions: BulkActionComponent[]) => {\n // We want to add this action to just before the delete action all the time\n const deleteActionIndex = actions.findIndex((action) => action.type === 'delete');\n\n actions.splice(deleteActionIndex, 0, ReleaseAction);\n return actions;\n });\n }\n\n // Hook that adds a column into the CM's LV table\n app.registerHook('Admin/CM/pages/ListView/inject-column-in-table', addColumnToTableHook);\n\n app.widgets.register([\n {\n icon: PaperPlane,\n title: {\n id: `${PLUGIN_ID}.widget.upcoming-releases.title`,\n defaultMessage: 'Upcoming releases',\n },\n component: async () => {\n const { UpcomingReleasesWidget } = await import('./components/Widgets');\n return UpcomingReleasesWidget;\n },\n pluginId: PLUGIN_ID,\n id: 'upcoming-releases',\n link: {\n label: {\n id: `${PLUGIN_ID}.widget.upcoming-releases.link`,\n defaultMessage: 'Open Releases',\n },\n href: '/plugins/content-releases',\n },\n },\n ]);\n } else if (\n !window.strapi.features.isEnabled('cms-content-releases') &&\n window.strapi?.flags?.promoteEE\n ) {\n app.addSettingsLink('global', {\n id: pluginId,\n to: 'purchase-content-releases',\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Releases',\n },\n permissions: [],\n Component() {\n return import('./pages/PurchaseContentReleases').then((mod) => ({\n default: mod.PurchaseContentReleases,\n }));\n },\n licenseOnly: true,\n });\n }\n },\n async registerTrads({ locales }: { locales: string[] }) {\n const importedTrads = await Promise.all(\n locales.map((locale) => {\n return import(`./translations/${locale}.json`)\n .then(({ default: data }) => {\n return {\n data: prefixPluginTranslations(data, 'content-releases'),\n locale,\n };\n })\n .catch(() => {\n return {\n data: {},\n locale,\n };\n });\n })\n );\n\n return Promise.resolve(importedTrads);\n },\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default admin;\n"],"names":["admin","register","app","createHook","window","strapi","features","isEnabled","addMenuLink","to","pluginId","icon","PaperPlane","intlLabel","id","defaultMessage","Component","then","mod","default","App","permissions","PERMISSIONS","main","position","contentManagerPluginApis","getPlugin","apis","addEditViewSidePanel","ReleasesPanel","addDocumentAction","actions","indexOfDeleteAction","findIndex","action","type","splice","ReleaseActionModalForm","addSettingsLink","licenseOnly","ProtectedReleasesSettingsPage","addBulkAction","deleteActionIndex","ReleaseAction","registerHook","addColumnToTableHook","widgets","title","PLUGIN_ID","component","UpcomingReleasesWidget","link","label","href","flags","promoteEE","PurchaseContentReleases","registerTrads","locales","importedTrads","Promise","all","map","locale","data","prefixPluginTranslations","catch","resolve"],"mappings":"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"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var ko = {
|
|
4
|
+
"content-manager-edit-view.add-to-release.select-label": "릴리스 선택",
|
|
5
|
+
"content-manager-edit-view.add-to-release.select-placeholder": "선택",
|
|
6
|
+
"content-manager-edit-view.add-to-release.action-type-label": "이 항목으로 무엇을 하시겠습니까?",
|
|
7
|
+
"content-manager-edit-view.add-to-release.cancel-button": "취소",
|
|
8
|
+
"content-manager-edit-view.add-to-release.continue-button": "계속",
|
|
9
|
+
"content-manager-edit-view.add-to-release": "릴리스에 추가",
|
|
10
|
+
"content-manager-edit-view.add-to-release.notification.success": "항목이 릴리스에 추가되었습니다",
|
|
11
|
+
"content-manager-edit-view.add-to-release.no-releases-message": "사용 가능한 릴리스가 없습니다. 릴리스 목록을 열어 새 릴리스를 생성하세요.",
|
|
12
|
+
"content-manager-edit-view.add-to-release.redirect-button": "릴리스 목록 열기",
|
|
13
|
+
"content-manager-edit-view.list-releases.title": "{isPublish, select, true {배포 예정} other {배포 취소 예정}}",
|
|
14
|
+
"content-manager-edit-view.remove-from-release": "릴리스에서 제거",
|
|
15
|
+
"content-manager-edit-view.scheduled.date": "{date} {time} ({offset})",
|
|
16
|
+
"content-manager-edit-view.edit-release": "릴리스 수정",
|
|
17
|
+
"content-releases.content-manager-edit-view.edit-entry": "항목 수정",
|
|
18
|
+
"content-manager-edit-view.remove-from-release.notification.success": "항목이 릴리스에서 제거되었습니다",
|
|
19
|
+
"content-manager-edit-view.release-action-menu": "릴리스 작업 옵션",
|
|
20
|
+
"content-manager.list-view.releases.header": "릴리스 예정",
|
|
21
|
+
"content-manager-list-view.add-to-release": "릴리스에 추가",
|
|
22
|
+
"content-manager-list-view.add-to-release.cancel-button": "취소",
|
|
23
|
+
"content-manager-list-view.add-to-release.continue-button": "계속",
|
|
24
|
+
"content-manager-list-view.add-to-release.select-label": "릴리스 선택",
|
|
25
|
+
"content-manager-list-view.add-to-release.select-placeholder": "선택",
|
|
26
|
+
"content-manager-list-view.add-to-release.action-type-label": "이 항목들로 무엇을 하시겠습니까?",
|
|
27
|
+
"content-manager-list-view.add-to-release.notification.success.title": "릴리스에 추가되었습니다.",
|
|
28
|
+
"content-manager-list-view.add-to-release.notification.success.message": "{totalEntries}개 항목 중 {entriesAlreadyInRelease}개는 이미 릴리스에 포함되어 있었습니다.",
|
|
29
|
+
"content-manager.notification.entry-error": "항목 데이터를 가져오지 못했습니다",
|
|
30
|
+
"content-manager.list-view.releases-number": "{number} {number, plural, one {릴리스} other {릴리스}}",
|
|
31
|
+
"plugin.name": "릴리스",
|
|
32
|
+
"pages.Releases.title": "릴리스",
|
|
33
|
+
"pages.Releases.header-subtitle": "콘텐츠 업데이트를 생성하고 관리하세요",
|
|
34
|
+
"pages.Releases.max-limit-reached.title": "대기 중인 {number} {number, plural, one {릴리스} other {릴리스}} 한도에 도달했습니다.",
|
|
35
|
+
"pages.Releases.max-limit-reached.message": "업그레이드하여 무제한으로 릴리스를 관리하세요.",
|
|
36
|
+
"pages.Releases.max-limit-reached.action": "요금제 보기",
|
|
37
|
+
"pages.PurchaseRelease.subTitle": "콘텐츠 업데이트와 릴리스를 관리하세요.",
|
|
38
|
+
"pages.PurchaseRelease.not-available": "릴리스는 유료 요금제에서만 사용할 수 있습니다. 업그레이드하여 릴리스를 생성하고 관리하세요.",
|
|
39
|
+
"pages.PurchaseRelease.description": "콘텐츠를 그룹화하여 업데이트를 한 번에 배포하세요",
|
|
40
|
+
"pages.PurchaseRelease.perks1": "여러 항목을 릴리스에 추가",
|
|
41
|
+
"pages.PurchaseRelease.perks2": "오류가 있는 항목을 빠르게 확인",
|
|
42
|
+
"pages.PurchaseRelease.perks3": "배포 일정을 예약하거나 직접 배포",
|
|
43
|
+
"header.actions.add-release": "새 릴리스",
|
|
44
|
+
"header.actions.refresh": "새로고침",
|
|
45
|
+
"header.actions.publish": "배포",
|
|
46
|
+
"header.actions.open-release-actions": "릴리스 수정 및 삭제 메뉴",
|
|
47
|
+
"header.actions.edit": "수정",
|
|
48
|
+
"header.actions.delete": "삭제",
|
|
49
|
+
"header.actions.created": "생성됨",
|
|
50
|
+
"header.actions.created.description": "{hasCreatedByUser, select, true { (작성자: {createdBy})} other { (작성자: 삭제된 사용자)}}",
|
|
51
|
+
"modal.release-created-notification-success": "릴리스가 생성되었습니다",
|
|
52
|
+
"modal.release-updated-notification-success": "릴리스가 수정되었습니다",
|
|
53
|
+
"modal.title": "{isCreatingRelease, select, true {새 릴리스} other {릴리스 수정}}",
|
|
54
|
+
"modal.form.input.label.release-name": "이름",
|
|
55
|
+
"modal.form.input.label.schedule-release": "릴리스 예약",
|
|
56
|
+
"modal.form.input.label.date": "날짜",
|
|
57
|
+
"modal.form.input.label.time": "시간",
|
|
58
|
+
"modal.form.input.label.timezone": "시간대",
|
|
59
|
+
"modal.form.input.clearLabel": "지우기",
|
|
60
|
+
"modal.form.button.submit": "{isCreatingRelease, select, true {계속} other {저장}}",
|
|
61
|
+
"modal.form.time.has-passed": "선택한 시간이 이미 지났습니다.",
|
|
62
|
+
"pages.Details.header-subtitle": "{number, plural, =0 {항목 없음} one {항목 #개} other {항목 #개}}",
|
|
63
|
+
"pages.Releases.tab-group.label": "릴리스 목록",
|
|
64
|
+
"pages.Releases.tab.pending": "대기 중 ({count})",
|
|
65
|
+
"pages.Releases.tab.done": "완료",
|
|
66
|
+
"page.Releases.tab.emptyEntries": "릴리스 없음",
|
|
67
|
+
"pages.Details.tab.emptyEntries": "이 릴리스는 비어 있습니다. 콘텐츠 관리자를 열어 항목을 선택한 다음 릴리스에 추가하세요.",
|
|
68
|
+
"page.ReleaseDetails.table.header.label.name": "이름",
|
|
69
|
+
"page.ReleaseDetails.table.header.label.locale": "로케일",
|
|
70
|
+
"page.ReleaseDetails.table.header.label.content-type": "콘텐츠 타입",
|
|
71
|
+
"page.ReleaseDetails.table.header.label.action": "작업",
|
|
72
|
+
"content-releases.page.ReleaseDetails.table.header.label.status": "상태",
|
|
73
|
+
"page.ReleaseDetails.table.action-published": "이 항목은 <b>{isPublish, select, true {배포} other {배포 취소}}</b>되었습니다.",
|
|
74
|
+
"pages.ReleaseDetails.publish-notification-success": "릴리스가 성공적으로 배포되었습니다.",
|
|
75
|
+
"dialog.confirmation-message": "이 릴리스를 삭제하시겠습니까?",
|
|
76
|
+
"page.Details.button.openContentManager": "콘텐츠 관리자 열기",
|
|
77
|
+
"pages.Releases.notification.error.title": "요청을 처리할 수 없습니다.",
|
|
78
|
+
"pages.Releases.notification.error.message": "다시 시도하거나 다른 릴리스를 열어 보세요.",
|
|
79
|
+
"pages.Releases.not-scheduled": "예약되지 않음",
|
|
80
|
+
"pages.ReleaseDetails.groupBy.label": "{groupBy}별로 그룹화",
|
|
81
|
+
"pages.ReleaseDetails.groupBy.aria-label": "그룹화 기준",
|
|
82
|
+
"pages.ReleaseDetails.entry-validation.already-published": "이미 배포됨",
|
|
83
|
+
"pages.ReleaseDetails.entry-validation.ready-to-publish": "배포 준비 완료",
|
|
84
|
+
"pages.ReleaseDetails.entry-validation.modified": "변경 사항 배포 준비 완료",
|
|
85
|
+
"pages.ReleaseDetails.entry-validation.already-unpublished": "이미 배포 취소됨",
|
|
86
|
+
"pages.ReleaseDetails.entry-validation.ready-to-unpublish": "배포 취소 준비 완료",
|
|
87
|
+
"pages.ReleaseDetails.entry-validation.not-ready": "배포 준비 안 됨",
|
|
88
|
+
"pages.ReleaseDetails.groupBy.option.content-type": "콘텐츠 타입",
|
|
89
|
+
"pages.ReleaseDetails.groupBy.option.locales": "로케일",
|
|
90
|
+
"pages.ReleaseDetails.groupBy.option.actions": "작업",
|
|
91
|
+
"pages.ReleaseDetails.header-subtitle.scheduled": "{date} {time} ({offset})에 예약됨",
|
|
92
|
+
"pages.ReleaseDetails.entry-validation.fields": "필드",
|
|
93
|
+
"pages.Settings.releases.description": "콘텐츠 업데이트를 생성하고 관리하세요",
|
|
94
|
+
"pages.Settings.releases.preferences.title": "환경설정",
|
|
95
|
+
"pages.Settings.releases.timezone.label": "기본 시간대",
|
|
96
|
+
"pages.Settings.releases.timezone.hint": "각 릴리스의 시간대는 개별적으로 변경할 수 있습니다.",
|
|
97
|
+
"pages.Settings.releases.setting.default-timezone-notification-success": "기본 시간대가 업데이트되었습니다.",
|
|
98
|
+
"pages.ReleaseDetails.entry-validation.fields.error": "필드에 오류 {errors}개.",
|
|
99
|
+
"pages.ReleaseDetails.entry-validation.fields.success": "모든 필드가 올바르게 입력되었습니다.",
|
|
100
|
+
"pages.ReleaseDetails.entry-validation.fields.see-errors": "오류 보기",
|
|
101
|
+
"pages.ReleaseDetails.entry-validation.review-stage.not-enabled": "이 항목은 어떤 워크플로우에도 연결되어 있지 않습니다.",
|
|
102
|
+
"pages.ReleaseDetails.entry-validation.review-stage.not-ready": "이 항목이 배포에 필요한 단계에 있지 않습니다. ({stageName})",
|
|
103
|
+
"pages.ReleaseDetails.entry-validation.review-stage.ready": "이 항목이 배포에 필요한 단계에 있습니다. ({stageName})",
|
|
104
|
+
"pages.ReleaseDetails.entry-validation.review-stage.stage-not-required": "배포에 필요한 단계가 없습니다.",
|
|
105
|
+
"widget.upcoming-releases.link": "릴리스 열기",
|
|
106
|
+
"widget.upcoming-releases.title": "예정된 릴리스",
|
|
107
|
+
"widget.upcoming-releases.no-data": "릴리스 없음"
|
|
108
|
+
};
|
|
109
|
+
|
|
110
|
+
module.exports = ko;
|
|
111
|
+
//# sourceMappingURL=ko.json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ko.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
var ko = {
|
|
2
|
+
"content-manager-edit-view.add-to-release.select-label": "릴리스 선택",
|
|
3
|
+
"content-manager-edit-view.add-to-release.select-placeholder": "선택",
|
|
4
|
+
"content-manager-edit-view.add-to-release.action-type-label": "이 항목으로 무엇을 하시겠습니까?",
|
|
5
|
+
"content-manager-edit-view.add-to-release.cancel-button": "취소",
|
|
6
|
+
"content-manager-edit-view.add-to-release.continue-button": "계속",
|
|
7
|
+
"content-manager-edit-view.add-to-release": "릴리스에 추가",
|
|
8
|
+
"content-manager-edit-view.add-to-release.notification.success": "항목이 릴리스에 추가되었습니다",
|
|
9
|
+
"content-manager-edit-view.add-to-release.no-releases-message": "사용 가능한 릴리스가 없습니다. 릴리스 목록을 열어 새 릴리스를 생성하세요.",
|
|
10
|
+
"content-manager-edit-view.add-to-release.redirect-button": "릴리스 목록 열기",
|
|
11
|
+
"content-manager-edit-view.list-releases.title": "{isPublish, select, true {배포 예정} other {배포 취소 예정}}",
|
|
12
|
+
"content-manager-edit-view.remove-from-release": "릴리스에서 제거",
|
|
13
|
+
"content-manager-edit-view.scheduled.date": "{date} {time} ({offset})",
|
|
14
|
+
"content-manager-edit-view.edit-release": "릴리스 수정",
|
|
15
|
+
"content-releases.content-manager-edit-view.edit-entry": "항목 수정",
|
|
16
|
+
"content-manager-edit-view.remove-from-release.notification.success": "항목이 릴리스에서 제거되었습니다",
|
|
17
|
+
"content-manager-edit-view.release-action-menu": "릴리스 작업 옵션",
|
|
18
|
+
"content-manager.list-view.releases.header": "릴리스 예정",
|
|
19
|
+
"content-manager-list-view.add-to-release": "릴리스에 추가",
|
|
20
|
+
"content-manager-list-view.add-to-release.cancel-button": "취소",
|
|
21
|
+
"content-manager-list-view.add-to-release.continue-button": "계속",
|
|
22
|
+
"content-manager-list-view.add-to-release.select-label": "릴리스 선택",
|
|
23
|
+
"content-manager-list-view.add-to-release.select-placeholder": "선택",
|
|
24
|
+
"content-manager-list-view.add-to-release.action-type-label": "이 항목들로 무엇을 하시겠습니까?",
|
|
25
|
+
"content-manager-list-view.add-to-release.notification.success.title": "릴리스에 추가되었습니다.",
|
|
26
|
+
"content-manager-list-view.add-to-release.notification.success.message": "{totalEntries}개 항목 중 {entriesAlreadyInRelease}개는 이미 릴리스에 포함되어 있었습니다.",
|
|
27
|
+
"content-manager.notification.entry-error": "항목 데이터를 가져오지 못했습니다",
|
|
28
|
+
"content-manager.list-view.releases-number": "{number} {number, plural, one {릴리스} other {릴리스}}",
|
|
29
|
+
"plugin.name": "릴리스",
|
|
30
|
+
"pages.Releases.title": "릴리스",
|
|
31
|
+
"pages.Releases.header-subtitle": "콘텐츠 업데이트를 생성하고 관리하세요",
|
|
32
|
+
"pages.Releases.max-limit-reached.title": "대기 중인 {number} {number, plural, one {릴리스} other {릴리스}} 한도에 도달했습니다.",
|
|
33
|
+
"pages.Releases.max-limit-reached.message": "업그레이드하여 무제한으로 릴리스를 관리하세요.",
|
|
34
|
+
"pages.Releases.max-limit-reached.action": "요금제 보기",
|
|
35
|
+
"pages.PurchaseRelease.subTitle": "콘텐츠 업데이트와 릴리스를 관리하세요.",
|
|
36
|
+
"pages.PurchaseRelease.not-available": "릴리스는 유료 요금제에서만 사용할 수 있습니다. 업그레이드하여 릴리스를 생성하고 관리하세요.",
|
|
37
|
+
"pages.PurchaseRelease.description": "콘텐츠를 그룹화하여 업데이트를 한 번에 배포하세요",
|
|
38
|
+
"pages.PurchaseRelease.perks1": "여러 항목을 릴리스에 추가",
|
|
39
|
+
"pages.PurchaseRelease.perks2": "오류가 있는 항목을 빠르게 확인",
|
|
40
|
+
"pages.PurchaseRelease.perks3": "배포 일정을 예약하거나 직접 배포",
|
|
41
|
+
"header.actions.add-release": "새 릴리스",
|
|
42
|
+
"header.actions.refresh": "새로고침",
|
|
43
|
+
"header.actions.publish": "배포",
|
|
44
|
+
"header.actions.open-release-actions": "릴리스 수정 및 삭제 메뉴",
|
|
45
|
+
"header.actions.edit": "수정",
|
|
46
|
+
"header.actions.delete": "삭제",
|
|
47
|
+
"header.actions.created": "생성됨",
|
|
48
|
+
"header.actions.created.description": "{hasCreatedByUser, select, true { (작성자: {createdBy})} other { (작성자: 삭제된 사용자)}}",
|
|
49
|
+
"modal.release-created-notification-success": "릴리스가 생성되었습니다",
|
|
50
|
+
"modal.release-updated-notification-success": "릴리스가 수정되었습니다",
|
|
51
|
+
"modal.title": "{isCreatingRelease, select, true {새 릴리스} other {릴리스 수정}}",
|
|
52
|
+
"modal.form.input.label.release-name": "이름",
|
|
53
|
+
"modal.form.input.label.schedule-release": "릴리스 예약",
|
|
54
|
+
"modal.form.input.label.date": "날짜",
|
|
55
|
+
"modal.form.input.label.time": "시간",
|
|
56
|
+
"modal.form.input.label.timezone": "시간대",
|
|
57
|
+
"modal.form.input.clearLabel": "지우기",
|
|
58
|
+
"modal.form.button.submit": "{isCreatingRelease, select, true {계속} other {저장}}",
|
|
59
|
+
"modal.form.time.has-passed": "선택한 시간이 이미 지났습니다.",
|
|
60
|
+
"pages.Details.header-subtitle": "{number, plural, =0 {항목 없음} one {항목 #개} other {항목 #개}}",
|
|
61
|
+
"pages.Releases.tab-group.label": "릴리스 목록",
|
|
62
|
+
"pages.Releases.tab.pending": "대기 중 ({count})",
|
|
63
|
+
"pages.Releases.tab.done": "완료",
|
|
64
|
+
"page.Releases.tab.emptyEntries": "릴리스 없음",
|
|
65
|
+
"pages.Details.tab.emptyEntries": "이 릴리스는 비어 있습니다. 콘텐츠 관리자를 열어 항목을 선택한 다음 릴리스에 추가하세요.",
|
|
66
|
+
"page.ReleaseDetails.table.header.label.name": "이름",
|
|
67
|
+
"page.ReleaseDetails.table.header.label.locale": "로케일",
|
|
68
|
+
"page.ReleaseDetails.table.header.label.content-type": "콘텐츠 타입",
|
|
69
|
+
"page.ReleaseDetails.table.header.label.action": "작업",
|
|
70
|
+
"content-releases.page.ReleaseDetails.table.header.label.status": "상태",
|
|
71
|
+
"page.ReleaseDetails.table.action-published": "이 항목은 <b>{isPublish, select, true {배포} other {배포 취소}}</b>되었습니다.",
|
|
72
|
+
"pages.ReleaseDetails.publish-notification-success": "릴리스가 성공적으로 배포되었습니다.",
|
|
73
|
+
"dialog.confirmation-message": "이 릴리스를 삭제하시겠습니까?",
|
|
74
|
+
"page.Details.button.openContentManager": "콘텐츠 관리자 열기",
|
|
75
|
+
"pages.Releases.notification.error.title": "요청을 처리할 수 없습니다.",
|
|
76
|
+
"pages.Releases.notification.error.message": "다시 시도하거나 다른 릴리스를 열어 보세요.",
|
|
77
|
+
"pages.Releases.not-scheduled": "예약되지 않음",
|
|
78
|
+
"pages.ReleaseDetails.groupBy.label": "{groupBy}별로 그룹화",
|
|
79
|
+
"pages.ReleaseDetails.groupBy.aria-label": "그룹화 기준",
|
|
80
|
+
"pages.ReleaseDetails.entry-validation.already-published": "이미 배포됨",
|
|
81
|
+
"pages.ReleaseDetails.entry-validation.ready-to-publish": "배포 준비 완료",
|
|
82
|
+
"pages.ReleaseDetails.entry-validation.modified": "변경 사항 배포 준비 완료",
|
|
83
|
+
"pages.ReleaseDetails.entry-validation.already-unpublished": "이미 배포 취소됨",
|
|
84
|
+
"pages.ReleaseDetails.entry-validation.ready-to-unpublish": "배포 취소 준비 완료",
|
|
85
|
+
"pages.ReleaseDetails.entry-validation.not-ready": "배포 준비 안 됨",
|
|
86
|
+
"pages.ReleaseDetails.groupBy.option.content-type": "콘텐츠 타입",
|
|
87
|
+
"pages.ReleaseDetails.groupBy.option.locales": "로케일",
|
|
88
|
+
"pages.ReleaseDetails.groupBy.option.actions": "작업",
|
|
89
|
+
"pages.ReleaseDetails.header-subtitle.scheduled": "{date} {time} ({offset})에 예약됨",
|
|
90
|
+
"pages.ReleaseDetails.entry-validation.fields": "필드",
|
|
91
|
+
"pages.Settings.releases.description": "콘텐츠 업데이트를 생성하고 관리하세요",
|
|
92
|
+
"pages.Settings.releases.preferences.title": "환경설정",
|
|
93
|
+
"pages.Settings.releases.timezone.label": "기본 시간대",
|
|
94
|
+
"pages.Settings.releases.timezone.hint": "각 릴리스의 시간대는 개별적으로 변경할 수 있습니다.",
|
|
95
|
+
"pages.Settings.releases.setting.default-timezone-notification-success": "기본 시간대가 업데이트되었습니다.",
|
|
96
|
+
"pages.ReleaseDetails.entry-validation.fields.error": "필드에 오류 {errors}개.",
|
|
97
|
+
"pages.ReleaseDetails.entry-validation.fields.success": "모든 필드가 올바르게 입력되었습니다.",
|
|
98
|
+
"pages.ReleaseDetails.entry-validation.fields.see-errors": "오류 보기",
|
|
99
|
+
"pages.ReleaseDetails.entry-validation.review-stage.not-enabled": "이 항목은 어떤 워크플로우에도 연결되어 있지 않습니다.",
|
|
100
|
+
"pages.ReleaseDetails.entry-validation.review-stage.not-ready": "이 항목이 배포에 필요한 단계에 있지 않습니다. ({stageName})",
|
|
101
|
+
"pages.ReleaseDetails.entry-validation.review-stage.ready": "이 항목이 배포에 필요한 단계에 있습니다. ({stageName})",
|
|
102
|
+
"pages.ReleaseDetails.entry-validation.review-stage.stage-not-required": "배포에 필요한 단계가 없습니다.",
|
|
103
|
+
"widget.upcoming-releases.link": "릴리스 열기",
|
|
104
|
+
"widget.upcoming-releases.title": "예정된 릴리스",
|
|
105
|
+
"widget.upcoming-releases.no-data": "릴리스 없음"
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
export { ko as default };
|
|
109
|
+
//# sourceMappingURL=ko.json.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ko.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -8,6 +8,7 @@ const createSchedulingService = ({ strapi })=>{
|
|
|
8
8
|
const scheduledJobs = new Map();
|
|
9
9
|
return {
|
|
10
10
|
async set (releaseId, scheduleDate) {
|
|
11
|
+
const id = String(releaseId); // callers pass both numeric (db row) and string (ctx.params) ids
|
|
11
12
|
const release = await strapi.db.query(constants.RELEASE_MODEL_UID).findOne({
|
|
12
13
|
where: {
|
|
13
14
|
id: releaseId,
|
|
@@ -17,7 +18,7 @@ const createSchedulingService = ({ strapi })=>{
|
|
|
17
18
|
if (!release) {
|
|
18
19
|
throw new utils.errors.NotFoundError(`No release found for id ${releaseId}`);
|
|
19
20
|
}
|
|
20
|
-
const taskName = `publishRelease_${
|
|
21
|
+
const taskName = `publishRelease_${id}`;
|
|
21
22
|
strapi.cron.add({
|
|
22
23
|
[taskName]: {
|
|
23
24
|
async task () {
|
|
@@ -28,16 +29,17 @@ const createSchedulingService = ({ strapi })=>{
|
|
|
28
29
|
options: scheduleDate
|
|
29
30
|
}
|
|
30
31
|
});
|
|
31
|
-
if (scheduledJobs.has(
|
|
32
|
-
this.cancel(
|
|
32
|
+
if (scheduledJobs.has(id)) {
|
|
33
|
+
this.cancel(id);
|
|
33
34
|
}
|
|
34
|
-
scheduledJobs.set(
|
|
35
|
+
scheduledJobs.set(id, taskName);
|
|
35
36
|
return scheduledJobs;
|
|
36
37
|
},
|
|
37
38
|
cancel (releaseId) {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
scheduledJobs.
|
|
39
|
+
const id = String(releaseId); // normalise to match key from set()
|
|
40
|
+
if (scheduledJobs.has(id)) {
|
|
41
|
+
strapi.cron.remove(scheduledJobs.get(id));
|
|
42
|
+
scheduledJobs.delete(id);
|
|
41
43
|
}
|
|
42
44
|
return scheduledJobs;
|
|
43
45
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scheduling.js","sources":["../../../server/src/services/scheduling.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nimport { errors } from '@strapi/utils';\nimport { Release } from '../../../shared/contracts/releases';\nimport { getService } from '../utils';\nimport { RELEASE_MODEL_UID } from '../constants';\n\nconst createSchedulingService = ({ strapi }: { strapi: Core.Strapi }) => {\n const scheduledJobs = new Map<Release['id'], string>();\n\n return {\n async set(releaseId: Release['id'], scheduleDate: Date) {\n const release = await strapi.db\n .query(RELEASE_MODEL_UID)\n .findOne({ where: { id: releaseId, releasedAt: null } });\n\n if (!release) {\n throw new errors.NotFoundError(`No release found for id ${releaseId}`);\n }\n\n const taskName = `publishRelease_${
|
|
1
|
+
{"version":3,"file":"scheduling.js","sources":["../../../server/src/services/scheduling.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nimport { errors } from '@strapi/utils';\nimport { Release } from '../../../shared/contracts/releases';\nimport { getService } from '../utils';\nimport { RELEASE_MODEL_UID } from '../constants';\n\nconst createSchedulingService = ({ strapi }: { strapi: Core.Strapi }) => {\n const scheduledJobs = new Map<Release['id'], string>();\n\n return {\n async set(releaseId: Release['id'], scheduleDate: Date) {\n const id = String(releaseId); // callers pass both numeric (db row) and string (ctx.params) ids\n\n const release = await strapi.db\n .query(RELEASE_MODEL_UID)\n .findOne({ where: { id: releaseId, releasedAt: null } });\n\n if (!release) {\n throw new errors.NotFoundError(`No release found for id ${releaseId}`);\n }\n\n const taskName = `publishRelease_${id}`;\n\n strapi.cron.add({\n [taskName]: {\n async task() {\n await getService('release', { strapi }).publish(releaseId);\n },\n options: scheduleDate,\n },\n });\n\n if (scheduledJobs.has(id)) {\n this.cancel(id);\n }\n\n scheduledJobs.set(id, taskName);\n\n return scheduledJobs;\n },\n\n cancel(releaseId: Release['id']) {\n const id = String(releaseId); // normalise to match key from set()\n\n if (scheduledJobs.has(id)) {\n strapi.cron.remove(scheduledJobs.get(id)!);\n scheduledJobs.delete(id);\n }\n\n return scheduledJobs;\n },\n\n getAll() {\n return scheduledJobs;\n },\n\n /**\n * On bootstrap, we can use this function to make sure to sync the scheduled jobs from the database that are not yet released\n * This is useful in case the server was restarted and the scheduled jobs were lost\n * This also could be used to sync different Strapi instances in case of a cluster\n */\n async syncFromDatabase() {\n const releases = await strapi.db.query(RELEASE_MODEL_UID).findMany({\n where: {\n scheduledAt: {\n $gte: new Date(),\n },\n releasedAt: null,\n },\n });\n\n for (const release of releases) {\n this.set(release.id, release.scheduledAt);\n }\n\n return scheduledJobs;\n },\n };\n};\n\nexport default createSchedulingService;\n"],"names":["createSchedulingService","strapi","scheduledJobs","Map","set","releaseId","scheduleDate","id","String","release","db","query","RELEASE_MODEL_UID","findOne","where","releasedAt","errors","NotFoundError","taskName","cron","add","task","getService","publish","options","has","cancel","remove","get","delete","getAll","syncFromDatabase","releases","findMany","scheduledAt","$gte","Date"],"mappings":";;;;;;AAOA,MAAMA,uBAAAA,GAA0B,CAAC,EAAEC,MAAM,EAA2B,GAAA;AAClE,IAAA,MAAMC,gBAAgB,IAAIC,GAAAA,EAAAA;IAE1B,OAAO;QACL,MAAMC,GAAAA,CAAAA,CAAIC,SAAwB,EAAEC,YAAkB,EAAA;YACpD,MAAMC,EAAAA,GAAKC,MAAAA,CAAOH,SAAAA,CAAAA,CAAAA;YAElB,MAAMI,OAAAA,GAAU,MAAMR,MAAAA,CAAOS,EAAE,CAC5BC,KAAK,CAACC,2BAAAA,CAAAA,CACNC,OAAO,CAAC;gBAAEC,KAAAA,EAAO;oBAAEP,EAAAA,EAAIF,SAAAA;oBAAWU,UAAAA,EAAY;AAAK;AAAE,aAAA,CAAA;AAExD,YAAA,IAAI,CAACN,OAAAA,EAAS;AACZ,gBAAA,MAAM,IAAIO,YAAAA,CAAOC,aAAa,CAAC,CAAC,wBAAwB,EAAEZ,SAAAA,CAAAA,CAAW,CAAA;AACvE,YAAA;AAEA,YAAA,MAAMa,QAAAA,GAAW,CAAC,eAAe,EAAEX,EAAAA,CAAAA,CAAI;YAEvCN,MAAAA,CAAOkB,IAAI,CAACC,GAAG,CAAC;AACd,gBAAA,CAACF,WAAW;oBACV,MAAMG,IAAAA,CAAAA,GAAAA;AACJ,wBAAA,MAAMC,iBAAW,SAAA,EAAW;AAAErB,4BAAAA;AAAO,yBAAA,CAAA,CAAGsB,OAAO,CAAClB,SAAAA,CAAAA;AAClD,oBAAA,CAAA;oBACAmB,OAAAA,EAASlB;AACX;AACF,aAAA,CAAA;YAEA,IAAIJ,aAAAA,CAAcuB,GAAG,CAAClB,EAAAA,CAAAA,EAAK;gBACzB,IAAI,CAACmB,MAAM,CAACnB,EAAAA,CAAAA;AACd,YAAA;YAEAL,aAAAA,CAAcE,GAAG,CAACG,EAAAA,EAAIW,QAAAA,CAAAA;YAEtB,OAAOhB,aAAAA;AACT,QAAA,CAAA;AAEAwB,QAAAA,MAAAA,CAAAA,CAAOrB,SAAwB,EAAA;YAC7B,MAAME,EAAAA,GAAKC,MAAAA,CAAOH,SAAAA,CAAAA,CAAAA;YAElB,IAAIH,aAAAA,CAAcuB,GAAG,CAAClB,EAAAA,CAAAA,EAAK;AACzBN,gBAAAA,MAAAA,CAAOkB,IAAI,CAACQ,MAAM,CAACzB,aAAAA,CAAc0B,GAAG,CAACrB,EAAAA,CAAAA,CAAAA;AACrCL,gBAAAA,aAAAA,CAAc2B,MAAM,CAACtB,EAAAA,CAAAA;AACvB,YAAA;YAEA,OAAOL,aAAAA;AACT,QAAA,CAAA;AAEA4B,QAAAA,MAAAA,CAAAA,GAAAA;YACE,OAAO5B,aAAAA;AACT,QAAA,CAAA;AAEA;;;;AAIC,QACD,MAAM6B,gBAAAA,CAAAA,GAAAA;YACJ,MAAMC,QAAAA,GAAW,MAAM/B,MAAAA,CAAOS,EAAE,CAACC,KAAK,CAACC,2BAAAA,CAAAA,CAAmBqB,QAAQ,CAAC;gBACjEnB,KAAAA,EAAO;oBACLoB,WAAAA,EAAa;AACXC,wBAAAA,IAAAA,EAAM,IAAIC,IAAAA;AACZ,qBAAA;oBACArB,UAAAA,EAAY;AACd;AACF,aAAA,CAAA;YAEA,KAAK,MAAMN,WAAWuB,QAAAA,CAAU;AAC9B,gBAAA,IAAI,CAAC5B,GAAG,CAACK,QAAQF,EAAE,EAAEE,QAAQyB,WAAW,CAAA;AAC1C,YAAA;YAEA,OAAOhC,aAAAA;AACT,QAAA;AACF,KAAA;AACF;;;;"}
|
|
@@ -6,6 +6,7 @@ const createSchedulingService = ({ strapi })=>{
|
|
|
6
6
|
const scheduledJobs = new Map();
|
|
7
7
|
return {
|
|
8
8
|
async set (releaseId, scheduleDate) {
|
|
9
|
+
const id = String(releaseId); // callers pass both numeric (db row) and string (ctx.params) ids
|
|
9
10
|
const release = await strapi.db.query(RELEASE_MODEL_UID).findOne({
|
|
10
11
|
where: {
|
|
11
12
|
id: releaseId,
|
|
@@ -15,7 +16,7 @@ const createSchedulingService = ({ strapi })=>{
|
|
|
15
16
|
if (!release) {
|
|
16
17
|
throw new errors.NotFoundError(`No release found for id ${releaseId}`);
|
|
17
18
|
}
|
|
18
|
-
const taskName = `publishRelease_${
|
|
19
|
+
const taskName = `publishRelease_${id}`;
|
|
19
20
|
strapi.cron.add({
|
|
20
21
|
[taskName]: {
|
|
21
22
|
async task () {
|
|
@@ -26,16 +27,17 @@ const createSchedulingService = ({ strapi })=>{
|
|
|
26
27
|
options: scheduleDate
|
|
27
28
|
}
|
|
28
29
|
});
|
|
29
|
-
if (scheduledJobs.has(
|
|
30
|
-
this.cancel(
|
|
30
|
+
if (scheduledJobs.has(id)) {
|
|
31
|
+
this.cancel(id);
|
|
31
32
|
}
|
|
32
|
-
scheduledJobs.set(
|
|
33
|
+
scheduledJobs.set(id, taskName);
|
|
33
34
|
return scheduledJobs;
|
|
34
35
|
},
|
|
35
36
|
cancel (releaseId) {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
scheduledJobs.
|
|
37
|
+
const id = String(releaseId); // normalise to match key from set()
|
|
38
|
+
if (scheduledJobs.has(id)) {
|
|
39
|
+
strapi.cron.remove(scheduledJobs.get(id));
|
|
40
|
+
scheduledJobs.delete(id);
|
|
39
41
|
}
|
|
40
42
|
return scheduledJobs;
|
|
41
43
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scheduling.mjs","sources":["../../../server/src/services/scheduling.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nimport { errors } from '@strapi/utils';\nimport { Release } from '../../../shared/contracts/releases';\nimport { getService } from '../utils';\nimport { RELEASE_MODEL_UID } from '../constants';\n\nconst createSchedulingService = ({ strapi }: { strapi: Core.Strapi }) => {\n const scheduledJobs = new Map<Release['id'], string>();\n\n return {\n async set(releaseId: Release['id'], scheduleDate: Date) {\n const release = await strapi.db\n .query(RELEASE_MODEL_UID)\n .findOne({ where: { id: releaseId, releasedAt: null } });\n\n if (!release) {\n throw new errors.NotFoundError(`No release found for id ${releaseId}`);\n }\n\n const taskName = `publishRelease_${
|
|
1
|
+
{"version":3,"file":"scheduling.mjs","sources":["../../../server/src/services/scheduling.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nimport { errors } from '@strapi/utils';\nimport { Release } from '../../../shared/contracts/releases';\nimport { getService } from '../utils';\nimport { RELEASE_MODEL_UID } from '../constants';\n\nconst createSchedulingService = ({ strapi }: { strapi: Core.Strapi }) => {\n const scheduledJobs = new Map<Release['id'], string>();\n\n return {\n async set(releaseId: Release['id'], scheduleDate: Date) {\n const id = String(releaseId); // callers pass both numeric (db row) and string (ctx.params) ids\n\n const release = await strapi.db\n .query(RELEASE_MODEL_UID)\n .findOne({ where: { id: releaseId, releasedAt: null } });\n\n if (!release) {\n throw new errors.NotFoundError(`No release found for id ${releaseId}`);\n }\n\n const taskName = `publishRelease_${id}`;\n\n strapi.cron.add({\n [taskName]: {\n async task() {\n await getService('release', { strapi }).publish(releaseId);\n },\n options: scheduleDate,\n },\n });\n\n if (scheduledJobs.has(id)) {\n this.cancel(id);\n }\n\n scheduledJobs.set(id, taskName);\n\n return scheduledJobs;\n },\n\n cancel(releaseId: Release['id']) {\n const id = String(releaseId); // normalise to match key from set()\n\n if (scheduledJobs.has(id)) {\n strapi.cron.remove(scheduledJobs.get(id)!);\n scheduledJobs.delete(id);\n }\n\n return scheduledJobs;\n },\n\n getAll() {\n return scheduledJobs;\n },\n\n /**\n * On bootstrap, we can use this function to make sure to sync the scheduled jobs from the database that are not yet released\n * This is useful in case the server was restarted and the scheduled jobs were lost\n * This also could be used to sync different Strapi instances in case of a cluster\n */\n async syncFromDatabase() {\n const releases = await strapi.db.query(RELEASE_MODEL_UID).findMany({\n where: {\n scheduledAt: {\n $gte: new Date(),\n },\n releasedAt: null,\n },\n });\n\n for (const release of releases) {\n this.set(release.id, release.scheduledAt);\n }\n\n return scheduledJobs;\n },\n };\n};\n\nexport default createSchedulingService;\n"],"names":["createSchedulingService","strapi","scheduledJobs","Map","set","releaseId","scheduleDate","id","String","release","db","query","RELEASE_MODEL_UID","findOne","where","releasedAt","errors","NotFoundError","taskName","cron","add","task","getService","publish","options","has","cancel","remove","get","delete","getAll","syncFromDatabase","releases","findMany","scheduledAt","$gte","Date"],"mappings":";;;;AAOA,MAAMA,uBAAAA,GAA0B,CAAC,EAAEC,MAAM,EAA2B,GAAA;AAClE,IAAA,MAAMC,gBAAgB,IAAIC,GAAAA,EAAAA;IAE1B,OAAO;QACL,MAAMC,GAAAA,CAAAA,CAAIC,SAAwB,EAAEC,YAAkB,EAAA;YACpD,MAAMC,EAAAA,GAAKC,MAAAA,CAAOH,SAAAA,CAAAA,CAAAA;YAElB,MAAMI,OAAAA,GAAU,MAAMR,MAAAA,CAAOS,EAAE,CAC5BC,KAAK,CAACC,iBAAAA,CAAAA,CACNC,OAAO,CAAC;gBAAEC,KAAAA,EAAO;oBAAEP,EAAAA,EAAIF,SAAAA;oBAAWU,UAAAA,EAAY;AAAK;AAAE,aAAA,CAAA;AAExD,YAAA,IAAI,CAACN,OAAAA,EAAS;AACZ,gBAAA,MAAM,IAAIO,MAAAA,CAAOC,aAAa,CAAC,CAAC,wBAAwB,EAAEZ,SAAAA,CAAAA,CAAW,CAAA;AACvE,YAAA;AAEA,YAAA,MAAMa,QAAAA,GAAW,CAAC,eAAe,EAAEX,EAAAA,CAAAA,CAAI;YAEvCN,MAAAA,CAAOkB,IAAI,CAACC,GAAG,CAAC;AACd,gBAAA,CAACF,WAAW;oBACV,MAAMG,IAAAA,CAAAA,GAAAA;AACJ,wBAAA,MAAMC,WAAW,SAAA,EAAW;AAAErB,4BAAAA;AAAO,yBAAA,CAAA,CAAGsB,OAAO,CAAClB,SAAAA,CAAAA;AAClD,oBAAA,CAAA;oBACAmB,OAAAA,EAASlB;AACX;AACF,aAAA,CAAA;YAEA,IAAIJ,aAAAA,CAAcuB,GAAG,CAAClB,EAAAA,CAAAA,EAAK;gBACzB,IAAI,CAACmB,MAAM,CAACnB,EAAAA,CAAAA;AACd,YAAA;YAEAL,aAAAA,CAAcE,GAAG,CAACG,EAAAA,EAAIW,QAAAA,CAAAA;YAEtB,OAAOhB,aAAAA;AACT,QAAA,CAAA;AAEAwB,QAAAA,MAAAA,CAAAA,CAAOrB,SAAwB,EAAA;YAC7B,MAAME,EAAAA,GAAKC,MAAAA,CAAOH,SAAAA,CAAAA,CAAAA;YAElB,IAAIH,aAAAA,CAAcuB,GAAG,CAAClB,EAAAA,CAAAA,EAAK;AACzBN,gBAAAA,MAAAA,CAAOkB,IAAI,CAACQ,MAAM,CAACzB,aAAAA,CAAc0B,GAAG,CAACrB,EAAAA,CAAAA,CAAAA;AACrCL,gBAAAA,aAAAA,CAAc2B,MAAM,CAACtB,EAAAA,CAAAA;AACvB,YAAA;YAEA,OAAOL,aAAAA;AACT,QAAA,CAAA;AAEA4B,QAAAA,MAAAA,CAAAA,GAAAA;YACE,OAAO5B,aAAAA;AACT,QAAA,CAAA;AAEA;;;;AAIC,QACD,MAAM6B,gBAAAA,CAAAA,GAAAA;YACJ,MAAMC,QAAAA,GAAW,MAAM/B,MAAAA,CAAOS,EAAE,CAACC,KAAK,CAACC,iBAAAA,CAAAA,CAAmBqB,QAAQ,CAAC;gBACjEnB,KAAAA,EAAO;oBACLoB,WAAAA,EAAa;AACXC,wBAAAA,IAAAA,EAAM,IAAIC,IAAAA;AACZ,qBAAA;oBACArB,UAAAA,EAAY;AACd;AACF,aAAA,CAAA;YAEA,KAAK,MAAMN,WAAWuB,QAAAA,CAAU;AAC9B,gBAAA,IAAI,CAAC5B,GAAG,CAACK,QAAQF,EAAE,EAAEE,QAAQyB,WAAW,CAAA;AAC1C,YAAA;YAEA,OAAOhC,aAAAA;AACT,QAAA;AACF,KAAA;AACF;;;;"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
declare const _default: {
|
|
2
2
|
register: ({ strapi }: {
|
|
3
|
-
strapi: import("@strapi/types/dist/core").Strapi;
|
|
3
|
+
strapi: import("@strapi/types/dist/core/strapi.js").Strapi;
|
|
4
4
|
}) => Promise<void>;
|
|
5
5
|
bootstrap: ({ strapi }: {
|
|
6
|
-
strapi: import("@strapi/types/dist/core").Strapi;
|
|
6
|
+
strapi: import("@strapi/types/dist/core/strapi.js").Strapi;
|
|
7
7
|
}) => Promise<void>;
|
|
8
8
|
destroy: ({ strapi }: {
|
|
9
|
-
strapi: import("@strapi/types/dist/core").Strapi;
|
|
9
|
+
strapi: import("@strapi/types/dist/core/strapi.js").Strapi;
|
|
10
10
|
}) => Promise<void>;
|
|
11
11
|
contentTypes: {
|
|
12
12
|
release: {
|
|
@@ -106,12 +106,12 @@ declare const _default: {
|
|
|
106
106
|
};
|
|
107
107
|
services: {
|
|
108
108
|
homepage: ({ strapi }: {
|
|
109
|
-
strapi: import("@strapi/types/dist/core").Strapi;
|
|
109
|
+
strapi: import("@strapi/types/dist/core/strapi.js").Strapi;
|
|
110
110
|
}) => {
|
|
111
111
|
getUpcomingReleases(): Promise<import("../../shared/contracts/homepage").GetUpcomingReleases.Response["data"]>;
|
|
112
112
|
};
|
|
113
113
|
release: ({ strapi }: {
|
|
114
|
-
strapi: import("@strapi/types/dist/core").Strapi;
|
|
114
|
+
strapi: import("@strapi/types/dist/core/strapi.js").Strapi;
|
|
115
115
|
}) => {
|
|
116
116
|
create(releaseData: import("../../shared/contracts/releases").CreateRelease.Request["body"], { user }: {
|
|
117
117
|
user: import("../../shared/types").UserInfo;
|
|
@@ -127,7 +127,7 @@ declare const _default: {
|
|
|
127
127
|
};
|
|
128
128
|
}>;
|
|
129
129
|
findMany(query?: any): Promise<any[]>;
|
|
130
|
-
update(id: import("@strapi/types/dist/data").ID, releaseData: import("../../shared/contracts/releases").UpdateRelease.Request["body"], { user }: {
|
|
130
|
+
update(id: import("@strapi/types/dist/data/constants.js").ID, releaseData: import("../../shared/contracts/releases").UpdateRelease.Request["body"], { user }: {
|
|
131
131
|
user: import("../../shared/types").UserInfo;
|
|
132
132
|
}): Promise<any>;
|
|
133
133
|
getAllComponents(): Promise<any>;
|
|
@@ -136,7 +136,7 @@ declare const _default: {
|
|
|
136
136
|
updateReleaseStatus(releaseId: import("../../shared/contracts/releases").Release["id"]): Promise<any>;
|
|
137
137
|
};
|
|
138
138
|
'release-action': ({ strapi }: {
|
|
139
|
-
strapi: import("@strapi/types/dist/core").Strapi;
|
|
139
|
+
strapi: import("@strapi/types/dist/core/strapi.js").Strapi;
|
|
140
140
|
}) => {
|
|
141
141
|
create(releaseId: import("../../shared/contracts/release-actions").CreateReleaseAction.Request["params"]["releaseId"], action: import("../../shared/contracts/release-actions").CreateReleaseAction.Request["body"], { disableUpdateReleaseStatus }?: {
|
|
142
142
|
disableUpdateReleaseStatus?: boolean;
|
|
@@ -152,13 +152,13 @@ declare const _default: {
|
|
|
152
152
|
}>;
|
|
153
153
|
groupActions(actions: import("../../shared/contracts/release-actions").ReleaseAction[], groupBy: import("../../shared/contracts/release-actions").ReleaseActionGroupBy): Promise<import("lodash").Dictionary<(null | undefined)[]>>;
|
|
154
154
|
getContentTypeModelsFromActions(actions: import("../../shared/contracts/release-actions").ReleaseAction[]): Promise<{} | undefined>;
|
|
155
|
-
countActions(query: import("@strapi/types/dist/modules/entity-service/params").Pick<typeof import("./constants").RELEASE_ACTION_MODEL_UID, "filters">): Promise<number>;
|
|
155
|
+
countActions(query: import("@strapi/types/dist/modules/entity-service/params/index.js").Pick<typeof import("./constants").RELEASE_ACTION_MODEL_UID, "filters">): Promise<number>;
|
|
156
156
|
update(actionId: import("../../shared/contracts/release-actions").UpdateReleaseAction.Request["params"]["actionId"], releaseId: import("../../shared/contracts/release-actions").UpdateReleaseAction.Request["params"]["releaseId"], update: import("../../shared/contracts/release-actions").UpdateReleaseAction.Request["body"]): Promise<any>;
|
|
157
157
|
delete(actionId: import("../../shared/contracts/release-actions").DeleteReleaseAction.Request["params"]["actionId"], releaseId: import("../../shared/contracts/release-actions").DeleteReleaseAction.Request["params"]["releaseId"]): Promise<any>;
|
|
158
|
-
validateActionsByContentTypes(contentTypeUids: import("@strapi/types/dist/uid").ContentType[]): Promise<void>;
|
|
158
|
+
validateActionsByContentTypes(contentTypeUids: import("@strapi/types/dist/uid/index.js").ContentType[]): Promise<void>;
|
|
159
159
|
};
|
|
160
160
|
'release-validation': ({ strapi }: {
|
|
161
|
-
strapi: import("@strapi/types/dist/core").Strapi;
|
|
161
|
+
strapi: import("@strapi/types/dist/core/strapi.js").Strapi;
|
|
162
162
|
}) => {
|
|
163
163
|
validateUniqueEntry(releaseId: import("../../shared/contracts/release-actions").CreateReleaseAction.Request["params"]["releaseId"], releaseActionArgs: import("../../shared/contracts/release-actions").CreateReleaseAction.Request["body"]): Promise<void>;
|
|
164
164
|
validateEntryData(contentTypeUid: import("../../shared/contracts/release-actions").CreateReleaseAction.Request["body"]["contentType"], entryDocumentId: import("../../shared/contracts/release-actions").CreateReleaseAction.Request["body"]["entryDocumentId"]): void;
|
|
@@ -167,15 +167,15 @@ declare const _default: {
|
|
|
167
167
|
validateScheduledAtIsLaterThanNow(scheduledAt: import("../../shared/contracts/releases").CreateRelease.Request["body"]["scheduledAt"]): Promise<void>;
|
|
168
168
|
};
|
|
169
169
|
scheduling: ({ strapi }: {
|
|
170
|
-
strapi: import("@strapi/types/dist/core").Strapi;
|
|
170
|
+
strapi: import("@strapi/types/dist/core/strapi.js").Strapi;
|
|
171
171
|
}) => {
|
|
172
|
-
set(releaseId: import("../../shared/contracts/releases").Release["id"], scheduleDate: Date): Promise<Map<import("@strapi/types/dist/data").ID, string>>;
|
|
173
|
-
cancel(releaseId: import("../../shared/contracts/releases").Release["id"]): Map<import("@strapi/types/dist/data").ID, string>;
|
|
174
|
-
getAll(): Map<import("@strapi/types/dist/data").ID, string>;
|
|
175
|
-
syncFromDatabase(): Promise<Map<import("@strapi/types/dist/data").ID, string>>;
|
|
172
|
+
set(releaseId: import("../../shared/contracts/releases").Release["id"], scheduleDate: Date): Promise<Map<import("@strapi/types/dist/data/constants.js").ID, string>>;
|
|
173
|
+
cancel(releaseId: import("../../shared/contracts/releases").Release["id"]): Map<import("@strapi/types/dist/data/constants.js").ID, string>;
|
|
174
|
+
getAll(): Map<import("@strapi/types/dist/data/constants.js").ID, string>;
|
|
175
|
+
syncFromDatabase(): Promise<Map<import("@strapi/types/dist/data/constants.js").ID, string>>;
|
|
176
176
|
};
|
|
177
177
|
settings: ({ strapi }: {
|
|
178
|
-
strapi: import("@strapi/types/dist/core").Strapi;
|
|
178
|
+
strapi: import("@strapi/types/dist/core/strapi.js").Strapi;
|
|
179
179
|
}) => {
|
|
180
180
|
update({ settings }: {
|
|
181
181
|
settings: import("../../shared/contracts/settings").Settings;
|
|
@@ -210,7 +210,9 @@ declare const _default: {
|
|
|
210
210
|
};
|
|
211
211
|
};
|
|
212
212
|
routes: {
|
|
213
|
-
homepage: import("@strapi/types/dist/core").Router
|
|
213
|
+
homepage: import("@strapi/types/dist/core/router.js").Router | ((params: {
|
|
214
|
+
strapi: import("@strapi/types/dist/core/strapi.js").Strapi;
|
|
215
|
+
}) => import("@strapi/types/dist/core/router.js").Router);
|
|
214
216
|
settings: {
|
|
215
217
|
type: string;
|
|
216
218
|
routes: {
|
|
@@ -262,7 +264,7 @@ declare const _default: {
|
|
|
262
264
|
};
|
|
263
265
|
} | {
|
|
264
266
|
register: ({ strapi }: {
|
|
265
|
-
strapi: import("@strapi/types/dist/core").Strapi;
|
|
267
|
+
strapi: import("@strapi/types/dist/core/strapi.js").Strapi;
|
|
266
268
|
}) => Promise<void>;
|
|
267
269
|
contentTypes: {
|
|
268
270
|
release: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../server/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBA+BylF,sEAA6B;;;;;;;;;;;;;;;8BAA2gG,yEAAgC;+BAAuxC,0EAAiC;;;;;;8BAAlgL,sFAAsC;0CAA4I,CAAC;;gCAAmiE,oFAAoC;;;;;;;;;;;;6BAAkvI,sFAAsC,yBAA8B,sFAAsC;6BAA63C,sFAAsC,yBAA8B,sFAAsC;;;;;;2CAPzgT,sFACwB;8CAMysC,oFAAoC,kCAAqC,oFAAoC;;sDAAi2C,uEAA8B,eAAkB,yEAAgC;2DAAse,uEAA8B
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../server/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBA+BylF,sEAA6B;;;;;;;;;;;;;;;8BAA2gG,yEAAgC;+BAAuxC,0EAAiC;;;;;;8BAAlgL,sFAAsC;0CAA4I,CAAC;;gCAAmiE,oFAAoC;;;;;;;;;;;;6BAAkvI,sFAAsC,yBAA8B,sFAAsC;6BAA63C,sFAAsC,yBAA8B,sFAAsC;;;;;;2CAPzgT,sFACwB;8CAMysC,oFAAoC,kCAAqC,oFAAoC;;sDAAi2C,uEAA8B,eAAkB,yEAAgC;2DAAse,uEAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAD9wG,wBAA2B"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export declare const routes: {
|
|
2
|
-
homepage: import("@strapi/types/dist/core").Router
|
|
2
|
+
homepage: import("@strapi/types/dist/core/router.js").Router | ((params: {
|
|
3
|
+
strapi: import("@strapi/types/dist/core/strapi.js").Strapi;
|
|
4
|
+
}) => import("@strapi/types/dist/core/router.js").Router);
|
|
3
5
|
settings: {
|
|
4
6
|
type: string;
|
|
5
7
|
routes: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/routes/index.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,MAAM
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/routes/index.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKlB,CAAC"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
export declare const services: {
|
|
2
2
|
homepage: ({ strapi }: {
|
|
3
|
-
strapi: import("@strapi/types/dist/core").Strapi;
|
|
3
|
+
strapi: import("@strapi/types/dist/core/strapi.js").Strapi;
|
|
4
4
|
}) => {
|
|
5
5
|
getUpcomingReleases(): Promise<import("../../../shared/contracts/homepage").GetUpcomingReleases.Response["data"]>;
|
|
6
6
|
};
|
|
7
7
|
release: ({ strapi }: {
|
|
8
|
-
strapi: import("@strapi/types/dist/core").Strapi;
|
|
8
|
+
strapi: import("@strapi/types/dist/core/strapi.js").Strapi;
|
|
9
9
|
}) => {
|
|
10
10
|
create(releaseData: import("../../../shared/contracts/releases").CreateRelease.Request["body"], { user }: {
|
|
11
11
|
user: import("../../../shared/types").UserInfo;
|
|
@@ -21,7 +21,7 @@ export declare const services: {
|
|
|
21
21
|
};
|
|
22
22
|
}>;
|
|
23
23
|
findMany(query?: any): Promise<any[]>;
|
|
24
|
-
update(id: import("@strapi/types/dist/data").ID, releaseData: import("../../../shared/contracts/releases").UpdateRelease.Request["body"], { user }: {
|
|
24
|
+
update(id: import("@strapi/types/dist/data/constants.js").ID, releaseData: import("../../../shared/contracts/releases").UpdateRelease.Request["body"], { user }: {
|
|
25
25
|
user: import("../../../shared/types").UserInfo;
|
|
26
26
|
}): Promise<any>;
|
|
27
27
|
getAllComponents(): Promise<any>;
|
|
@@ -30,7 +30,7 @@ export declare const services: {
|
|
|
30
30
|
updateReleaseStatus(releaseId: import("../../../shared/contracts/releases").Release["id"]): Promise<any>;
|
|
31
31
|
};
|
|
32
32
|
'release-action': ({ strapi }: {
|
|
33
|
-
strapi: import("@strapi/types/dist/core").Strapi;
|
|
33
|
+
strapi: import("@strapi/types/dist/core/strapi.js").Strapi;
|
|
34
34
|
}) => {
|
|
35
35
|
create(releaseId: import("../../../shared/contracts/release-actions").CreateReleaseAction.Request["params"]["releaseId"], action: import("../../../shared/contracts/release-actions").CreateReleaseAction.Request["body"], { disableUpdateReleaseStatus }?: {
|
|
36
36
|
disableUpdateReleaseStatus?: boolean;
|
|
@@ -46,13 +46,13 @@ export declare const services: {
|
|
|
46
46
|
}>;
|
|
47
47
|
groupActions(actions: import("../../../shared/contracts/release-actions").ReleaseAction[], groupBy: import("../../../shared/contracts/release-actions").ReleaseActionGroupBy): Promise<import("lodash").Dictionary<(null | undefined)[]>>;
|
|
48
48
|
getContentTypeModelsFromActions(actions: import("../../../shared/contracts/release-actions").ReleaseAction[]): Promise<{} | undefined>;
|
|
49
|
-
countActions(query: import("@strapi/types/dist/modules/entity-service/params").Pick<typeof import("../constants").RELEASE_ACTION_MODEL_UID, "filters">): Promise<number>;
|
|
49
|
+
countActions(query: import("@strapi/types/dist/modules/entity-service/params/index.js").Pick<typeof import("../constants").RELEASE_ACTION_MODEL_UID, "filters">): Promise<number>;
|
|
50
50
|
update(actionId: import("../../../shared/contracts/release-actions").UpdateReleaseAction.Request["params"]["actionId"], releaseId: import("../../../shared/contracts/release-actions").UpdateReleaseAction.Request["params"]["releaseId"], update: import("../../../shared/contracts/release-actions").UpdateReleaseAction.Request["body"]): Promise<any>;
|
|
51
51
|
delete(actionId: import("../../../shared/contracts/release-actions").DeleteReleaseAction.Request["params"]["actionId"], releaseId: import("../../../shared/contracts/release-actions").DeleteReleaseAction.Request["params"]["releaseId"]): Promise<any>;
|
|
52
|
-
validateActionsByContentTypes(contentTypeUids: import("@strapi/types/dist/uid").ContentType[]): Promise<void>;
|
|
52
|
+
validateActionsByContentTypes(contentTypeUids: import("@strapi/types/dist/uid/index.js").ContentType[]): Promise<void>;
|
|
53
53
|
};
|
|
54
54
|
'release-validation': ({ strapi }: {
|
|
55
|
-
strapi: import("@strapi/types/dist/core").Strapi;
|
|
55
|
+
strapi: import("@strapi/types/dist/core/strapi.js").Strapi;
|
|
56
56
|
}) => {
|
|
57
57
|
validateUniqueEntry(releaseId: import("../../../shared/contracts/release-actions").CreateReleaseAction.Request["params"]["releaseId"], releaseActionArgs: import("../../../shared/contracts/release-actions").CreateReleaseAction.Request["body"]): Promise<void>;
|
|
58
58
|
validateEntryData(contentTypeUid: import("../../../shared/contracts/release-actions").CreateReleaseAction.Request["body"]["contentType"], entryDocumentId: import("../../../shared/contracts/release-actions").CreateReleaseAction.Request["body"]["entryDocumentId"]): void;
|
|
@@ -61,15 +61,15 @@ export declare const services: {
|
|
|
61
61
|
validateScheduledAtIsLaterThanNow(scheduledAt: import("../../../shared/contracts/releases").CreateRelease.Request["body"]["scheduledAt"]): Promise<void>;
|
|
62
62
|
};
|
|
63
63
|
scheduling: ({ strapi }: {
|
|
64
|
-
strapi: import("@strapi/types/dist/core").Strapi;
|
|
64
|
+
strapi: import("@strapi/types/dist/core/strapi.js").Strapi;
|
|
65
65
|
}) => {
|
|
66
|
-
set(releaseId: import("../../../shared/contracts/releases").Release["id"], scheduleDate: Date): Promise<Map<import("@strapi/types/dist/data").ID, string>>;
|
|
67
|
-
cancel(releaseId: import("../../../shared/contracts/releases").Release["id"]): Map<import("@strapi/types/dist/data").ID, string>;
|
|
68
|
-
getAll(): Map<import("@strapi/types/dist/data").ID, string>;
|
|
69
|
-
syncFromDatabase(): Promise<Map<import("@strapi/types/dist/data").ID, string>>;
|
|
66
|
+
set(releaseId: import("../../../shared/contracts/releases").Release["id"], scheduleDate: Date): Promise<Map<import("@strapi/types/dist/data/constants.js").ID, string>>;
|
|
67
|
+
cancel(releaseId: import("../../../shared/contracts/releases").Release["id"]): Map<import("@strapi/types/dist/data/constants.js").ID, string>;
|
|
68
|
+
getAll(): Map<import("@strapi/types/dist/data/constants.js").ID, string>;
|
|
69
|
+
syncFromDatabase(): Promise<Map<import("@strapi/types/dist/data/constants.js").ID, string>>;
|
|
70
70
|
};
|
|
71
71
|
settings: ({ strapi }: {
|
|
72
|
-
strapi: import("@strapi/types/dist/core").Strapi;
|
|
72
|
+
strapi: import("@strapi/types/dist/core/strapi.js").Strapi;
|
|
73
73
|
}) => {
|
|
74
74
|
update({ settings }: {
|
|
75
75
|
settings: import("../../../shared/contracts/settings").Settings;
|
|
@@ -3,15 +3,15 @@ import { Release } from '../../../shared/contracts/releases';
|
|
|
3
3
|
declare const createSchedulingService: ({ strapi }: {
|
|
4
4
|
strapi: Core.Strapi;
|
|
5
5
|
}) => {
|
|
6
|
-
set(releaseId: Release["id"], scheduleDate: Date): Promise<Map<import("@strapi/types/dist/data").ID, string>>;
|
|
7
|
-
cancel(releaseId: Release["id"]): Map<import("@strapi/types/dist/data").ID, string>;
|
|
8
|
-
getAll(): Map<import("@strapi/types/dist/data").ID, string>;
|
|
6
|
+
set(releaseId: Release["id"], scheduleDate: Date): Promise<Map<import("@strapi/types/dist/data/constants.js").ID, string>>;
|
|
7
|
+
cancel(releaseId: Release["id"]): Map<import("@strapi/types/dist/data/constants.js").ID, string>;
|
|
8
|
+
getAll(): Map<import("@strapi/types/dist/data/constants.js").ID, string>;
|
|
9
9
|
/**
|
|
10
10
|
* On bootstrap, we can use this function to make sure to sync the scheduled jobs from the database that are not yet released
|
|
11
11
|
* This is useful in case the server was restarted and the scheduled jobs were lost
|
|
12
12
|
* This also could be used to sync different Strapi instances in case of a cluster
|
|
13
13
|
*/
|
|
14
|
-
syncFromDatabase(): Promise<Map<import("@strapi/types/dist/data").ID, string>>;
|
|
14
|
+
syncFromDatabase(): Promise<Map<import("@strapi/types/dist/data/constants.js").ID, string>>;
|
|
15
15
|
};
|
|
16
16
|
export default createSchedulingService;
|
|
17
17
|
//# sourceMappingURL=scheduling.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scheduling.d.ts","sourceRoot":"","sources":["../../../../server/src/services/scheduling.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAG1C,OAAO,EAAE,OAAO,EAAE,MAAM,oCAAoC,CAAC;AAI7D,QAAA,MAAM,uBAAuB,GAAI,YAAY;IAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAA;CAAE;mBAI3C,OAAO,CAAC,IAAI,CAAC,gBAAgB,IAAI;
|
|
1
|
+
{"version":3,"file":"scheduling.d.ts","sourceRoot":"","sources":["../../../../server/src/services/scheduling.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAG1C,OAAO,EAAE,OAAO,EAAE,MAAM,oCAAoC,CAAC;AAI7D,QAAA,MAAM,uBAAuB,GAAI,YAAY;IAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAA;CAAE;mBAI3C,OAAO,CAAC,IAAI,CAAC,gBAAgB,IAAI;sBA+BpC,OAAO,CAAC,IAAI,CAAC;;IAe/B;;;;OAIG;;CAkBN,CAAC;AAEF,eAAe,uBAAuB,CAAC"}
|
|
@@ -29,7 +29,7 @@ export declare const getEntry: ({ contentType, documentId, locale, populate, sta
|
|
|
29
29
|
populate: any;
|
|
30
30
|
}, { strapi }: {
|
|
31
31
|
strapi: Core.Strapi;
|
|
32
|
-
}) => Promise<import("@strapi/types/dist/modules/documents").AnyDocument | null>;
|
|
32
|
+
}) => Promise<import("@strapi/types/dist/modules/documents/index.js").AnyDocument | null>;
|
|
33
33
|
export declare const getEntryStatus: (contentType: UID.ContentType, entry: Data.ContentType) => Promise<"draft" | "published" | "modified">;
|
|
34
34
|
/**
|
|
35
35
|
* Returns content type UIDs sorted by relation dependency order for publishing.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/utils/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAErD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAEvE,KAAK,QAAQ,GAAG;IACd,OAAO,EAAE,cAAc,CAAC;IACxB,oBAAoB,EAAE,GAAG,CAAC;IAC1B,UAAU,EAAE,GAAG,CAAC;IAChB,gBAAgB,EAAE,oBAAoB,CAAC;IACvC,eAAe,EAAE,GAAG,CAAC;IACrB,QAAQ,EAAE,eAAe,CAAC;CAC3B,CAAC;AAEF,UAAU,MAAM;IACd,WAAW,EAAE,GAAG,CAAC,WAAW,CAAC;IAC7B,UAAU,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,UAAU,GAAI,KAAK,SAAS,MAAM,QAAQ,EACrD,MAAM,KAAK,EACX,YAAY;IAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAA;CAAE,KAClC,QAAQ,CAAC,KAAK,CAEhB,CAAC;AAEF,eAAO,MAAM,wBAAwB,GACnC,qCAAqC,MAAM,EAC3C,YAAY;IAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAA;CAAE,qBASpC,CAAC;AAEF,eAAO,MAAM,YAAY,GACvB,gBAAgB,MAAM,EACtB,OAAO,GAAG,EACV,YAAY;IAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAA;CAAE,qBA0BpC,CAAC;AAEF,eAAO,MAAM,QAAQ,GACnB,wDAMG,MAAM,GAAG;IAAE,MAAM,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC;IAAC,QAAQ,EAAE,GAAG,CAAA;CAAE,EAC7D,YAAY;IAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAA;CAAE
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/utils/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAErD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAEvE,KAAK,QAAQ,GAAG;IACd,OAAO,EAAE,cAAc,CAAC;IACxB,oBAAoB,EAAE,GAAG,CAAC;IAC1B,UAAU,EAAE,GAAG,CAAC;IAChB,gBAAgB,EAAE,oBAAoB,CAAC;IACvC,eAAe,EAAE,GAAG,CAAC;IACrB,QAAQ,EAAE,eAAe,CAAC;CAC3B,CAAC;AAEF,UAAU,MAAM;IACd,WAAW,EAAE,GAAG,CAAC,WAAW,CAAC;IAC7B,UAAU,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,UAAU,GAAI,KAAK,SAAS,MAAM,QAAQ,EACrD,MAAM,KAAK,EACX,YAAY;IAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAA;CAAE,KAClC,QAAQ,CAAC,KAAK,CAEhB,CAAC;AAEF,eAAO,MAAM,wBAAwB,GACnC,qCAAqC,MAAM,EAC3C,YAAY;IAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAA;CAAE,qBASpC,CAAC;AAEF,eAAO,MAAM,YAAY,GACvB,gBAAgB,MAAM,EACtB,OAAO,GAAG,EACV,YAAY;IAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAA;CAAE,qBA0BpC,CAAC;AAEF,eAAO,MAAM,QAAQ,GACnB,wDAMG,MAAM,GAAG;IAAE,MAAM,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC;IAAC,QAAQ,EAAE,GAAG,CAAA;CAAE,EAC7D,YAAY;IAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAA;CAAE,wFAmBpC,CAAC;AAEF,eAAO,MAAM,cAAc,GAAU,aAAa,GAAG,CAAC,WAAW,EAAE,OAAO,IAAI,CAAC,WAAW,gDAwBzF,CAAC;AA+CF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,8BAA8B,GACzC,iBAAiB,GAAG,CAAC,WAAW,EAAE,EAClC,YAAY;IAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAA;CAAE,KAClC,GAAG,CAAC,WAAW,EAsDjB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@strapi/content-releases",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.51.0",
|
|
4
4
|
"description": "Strapi plugin for organizing and releasing content",
|
|
5
5
|
"homepage": "https://strapi.io",
|
|
6
6
|
"bugs": {
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
"build:types:server": "run -T tsc -p server/tsconfig.build.json --emitDeclarationOnly",
|
|
53
53
|
"build:types:admin": "run -T tsc -p admin/tsconfig.build.json --emitDeclarationOnly",
|
|
54
54
|
"clean": "run -T rimraf ./dist",
|
|
55
|
-
"lint": "run -T eslint .",
|
|
55
|
+
"lint": "run -T eslint . --max-warnings=0",
|
|
56
56
|
"test:front": "run -T cross-env IS_EE=true jest --config ./jest.config.front.js",
|
|
57
57
|
"test:front:ce": "run -T cross-env IS_EE=false jest --config ./jest.config.front.js",
|
|
58
58
|
"test:front:watch": "run -T cross-env IS_EE=true jest --config ./jest.config.front.js --watchAll",
|
|
@@ -64,14 +64,14 @@
|
|
|
64
64
|
},
|
|
65
65
|
"dependencies": {
|
|
66
66
|
"@reduxjs/toolkit": "1.9.7",
|
|
67
|
-
"@strapi/database": "5.
|
|
68
|
-
"@strapi/design-system": "2.2.
|
|
69
|
-
"@strapi/icons": "2.2.
|
|
70
|
-
"@strapi/types": "5.
|
|
71
|
-
"@strapi/utils": "5.
|
|
67
|
+
"@strapi/database": "5.51.0",
|
|
68
|
+
"@strapi/design-system": "2.2.3",
|
|
69
|
+
"@strapi/icons": "2.2.3",
|
|
70
|
+
"@strapi/types": "5.51.0",
|
|
71
|
+
"@strapi/utils": "5.51.0",
|
|
72
72
|
"date-fns": "2.30.0",
|
|
73
73
|
"date-fns-tz": "2.0.1",
|
|
74
|
-
"formik": "2.4.
|
|
74
|
+
"formik": "2.4.9",
|
|
75
75
|
"lodash": "4.18.1",
|
|
76
76
|
"qs": "6.15.3",
|
|
77
77
|
"react-intl": "6.6.2",
|
|
@@ -79,13 +79,17 @@
|
|
|
79
79
|
"yup": "0.32.9"
|
|
80
80
|
},
|
|
81
81
|
"devDependencies": {
|
|
82
|
-
"@strapi/admin": "5.
|
|
83
|
-
"@strapi/admin-test-utils": "5.
|
|
84
|
-
"@strapi/content-manager": "5.
|
|
82
|
+
"@strapi/admin": "5.51.0",
|
|
83
|
+
"@strapi/admin-test-utils": "5.51.0",
|
|
84
|
+
"@strapi/content-manager": "5.51.0",
|
|
85
85
|
"@testing-library/dom": "10.4.1",
|
|
86
|
+
"@testing-library/jest-dom": "6.9.1",
|
|
86
87
|
"@testing-library/react": "16.3.2",
|
|
87
88
|
"@testing-library/user-event": "14.6.1",
|
|
89
|
+
"@types/jest": "29.5.2",
|
|
88
90
|
"@types/koa": "2.15.2",
|
|
91
|
+
"@types/node": "20.19.41",
|
|
92
|
+
"jest": "29.6.0",
|
|
89
93
|
"koa": "2.16.4",
|
|
90
94
|
"msw": "2.13.4",
|
|
91
95
|
"react": "18.3.1",
|