ghost 5.130.5 → 5.130.6
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/components/{tryghost-i18n-5.130.5.tgz → tryghost-i18n-5.130.6.tgz} +0 -0
- package/core/built/admin/assets/{chunk.524.4950f5af0a97db42aa14.js → chunk.524.9c2366b9ec011d61ea88.js} +6 -6
- package/core/built/admin/assets/{chunk.582.95d41867e50ad479fad8.js → chunk.582.75249fe6d3786009dfe6.js} +9 -9
- package/core/built/admin/assets/{ghost-bf886dc6db7f0d5d41ebe6a468fadc90.js → ghost-060c0f303364be7ed22510336af44764.js} +8 -8
- package/core/built/admin/index.html +2 -2
- package/core/server/api/endpoints/session.js +0 -2
- package/core/server/api/endpoints/utils/serializers/output/authentication.js +2 -1
- package/core/server/services/auth/otp.js +33 -0
- package/core/server/services/auth/passwordreset.js +8 -0
- package/core/server/services/auth/session/session-service.js +14 -14
- package/core/server/services/media-inliner/ExternalMediaInliner.js +1 -1
- package/core/server/services/members/members-api/repositories/EventRepository.js +22 -11
- package/core/server/web/api/endpoints/admin/middleware.js +3 -2
- package/package.json +3 -3
|
Binary file
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
var __ember_auto_import__;(()=>{var e,r={
|
|
1
|
+
var __ember_auto_import__;(()=>{var e,r={9662:function(e,r){window._eai_r=require,window._eai_d=define},17171:(e,r,n)=>{e.exports=function(){var e=_eai_d,r=_eai_r
|
|
2
|
+
function t(e){return e&&e.__esModule?e:Object.assign({default:e},e)}window.emberAutoImportDynamic=function(e){return 1===arguments.length?r("_eai_dyn_"+e):r("_eai_dynt_"+e)(Array.prototype.slice.call(arguments,1))},window.emberAutoImportSync=function(e){return r("_eai_sync_"+e)(Array.prototype.slice.call(arguments,1))},e("@sentry/browser",[],function(){return t(n(51294))}),e("@sentry/core",[],function(){return t(n(16154))}),e("@sentry/integrations",[],function(){return t(n(20080))}),e("@sentry/replay",[],function(){return t(n(51633))}),e("@sentry/utils",[],function(){return t(n(88414))}),e("@tryghost/color-utils",[],function(){return t(n(86797))}),e("@tryghost/kg-clean-basic-html",[],function(){return t(n(3414))}),e("@tryghost/kg-converters",[],function(){return t(n(23075))}),e("@tryghost/limit-service",[],function(){return t(n(55983))}),e("@tryghost/members-csv/lib/unparse",[],function(){return t(n(17246))}),e("@tryghost/nql",[],function(){return t(n(39365))}),e("@tryghost/nql-lang",[],function(){return t(n(716))}),e("@tryghost/string",[],function(){return t(n(96107))}),e("@tryghost/timezone-data",[],function(){return t(n(27019))}),e("animejs/lib/anime.es.js",[],function(){return t(n(62282))}),e("element-resize-detector",[],function(){return t(n(29540))}),e("ember-assign-helper/helpers/assign",[],function(){return t(n(31113))}),e("ember-css-transitions/modifiers/css-transition",["@ember/test-waiters"],function(){return t(n(95895))}),e("ember-keyboard/helpers/if-key.js",[],function(){return t(n(10530))}),e("ember-keyboard/helpers/on-key.js",[],function(){return t(n(13692))}),e("ember-keyboard/modifiers/on-key.js",[],function(){return t(n(40985))}),e("ember-keyboard/services/keyboard.js",[],function(){return t(n(89697))}),e("ember-modifier",[],function(){return t(n(37777))}),e("ember-moment/helpers/-base",[],function(){return t(n(91366))}),e("ember-moment/helpers/is-after",[],function(){return t(n(91461))}),e("ember-moment/helpers/is-before",[],function(){return t(n(61e3))}),e("ember-moment/helpers/is-between",[],function(){return t(n(447))}),e("ember-moment/helpers/is-same",[],function(){return t(n(64193))}),e("ember-moment/helpers/is-same-or-after",[],function(){return t(n(7916))}),e("ember-moment/helpers/is-same-or-before",[],function(){return t(n(54351))}),e("ember-moment/helpers/moment",[],function(){return t(n(41678))}),e("ember-moment/helpers/moment-add",[],function(){return t(n(50080))}),e("ember-moment/helpers/moment-calendar",[],function(){return t(n(96625))}),e("ember-moment/helpers/moment-diff",[],function(){return t(n(85340))}),e("ember-moment/helpers/moment-duration",[],function(){return t(n(42967))}),e("ember-moment/helpers/moment-format",[],function(){return t(n(10536))}),e("ember-moment/helpers/moment-from",[],function(){return t(n(50727))}),e("ember-moment/helpers/moment-from-now",[],function(){return t(n(706))}),e("ember-moment/helpers/moment-subtract",[],function(){return t(n(54651))}),e("ember-moment/helpers/moment-to",[],function(){return t(n(84818))}),e("ember-moment/helpers/moment-to-date",[],function(){return t(n(81183))}),e("ember-moment/helpers/moment-to-now",[],function(){return t(n(17083))}),e("ember-moment/helpers/now",[],function(){return t(n(34980))}),e("ember-moment/helpers/unix",[],function(){return t(n(79272))}),e("ember-moment/helpers/utc",[],function(){return t(n(36022))}),e("ember-moment/services/moment",[],function(){return t(n(39879))}),e("fast-deep-equal",[],function(){return t(n(25383))}),e("flexsearch",[],function(){return t(n(12248))}),e("focus-trap",[],function(){return t(n(39632))}),e("intersection-observer-admin",[],function(){return t(n(21431))}),e("jose",[],function(){return t(n(82765))}),e("microdiff",[],function(){return t(n(59086))}),e("moment-timezone",[],function(){return t(n(41101))}),e("papaparse",[],function(){return t(n(78695))}),e("raf-pool",[],function(){return t(n(60695))}),e("react",[],function(){return t(n(72854))}),e("react-dom",[],function(){return t(n(95303))}),e("react-dom/client",[],function(){return t(n(70816))}),e("semver/functions/coerce",[],function(){return t(n(18576))}),e("semver/functions/lt",[],function(){return t(n(32817))}),e("semver/functions/parse",[],function(){return t(n(47898))}),e("tooltip.js",[],function(){return t(n(85557))}),e("tracked-built-ins",["ember-tracked-storage-polyfill"],function(){return t(n(67708))}),e("validator",[],function(){return t(n(29119))}),e("_eai_dyn_@sentry/browser",[],function(){return Promise.resolve().then(n.bind(n,51294))})}()},31048:()=>{},32186:e=>{"use strict"
|
|
2
3
|
e.exports=require("@ember/test-waiters")},56857:(e,r,n)=>{var t={"./af":58547,"./af.js":58547,"./ar":28167,"./ar-dz":35298,"./ar-dz.js":35298,"./ar-kw":11314,"./ar-kw.js":11314,"./ar-ly":66455,"./ar-ly.js":66455,"./ar-ma":15998,"./ar-ma.js":15998,"./ar-sa":55388,"./ar-sa.js":55388,"./ar-tn":73358,"./ar-tn.js":73358,"./ar.js":28167,"./az":92367,"./az.js":92367,"./be":9161,"./be.js":9161,"./bg":359,"./bg.js":359,"./bm":32625,"./bm.js":32625,"./bn":52984,"./bn.js":52984,"./bo":87343,"./bo.js":87343,"./br":87948,"./br.js":87948,"./bs":88211,"./bs.js":88211,"./ca":34700,"./ca.js":34700,"./cs":27430,"./cs.js":27430,"./cv":55913,"./cv.js":55913,"./cy":16004,"./cy.js":16004,"./da":26839,"./da.js":26839,"./de":22131,"./de-at":6729,"./de-at.js":6729,"./de-ch":74743,"./de-ch.js":74743,"./de.js":22131,"./dv":14598,"./dv.js":14598,"./el":38737,"./el.js":38737,"./en-SG":94978,"./en-SG.js":94978,"./en-au":22606,"./en-au.js":22606,"./en-ca":60052,"./en-ca.js":60052,"./en-gb":17305,"./en-gb.js":17305,"./en-ie":76390,"./en-ie.js":76390,"./en-il":89549,"./en-il.js":89549,"./en-nz":67584,"./en-nz.js":67584,"./eo":24408,"./eo.js":24408,"./es":45644,"./es-do":21888,"./es-do.js":21888,"./es-us":23537,"./es-us.js":23537,"./es.js":45644,"./et":27257,"./et.js":27257,"./eu":57002,"./eu.js":57002,"./fa":90241,"./fa.js":90241,"./fi":74009,"./fi.js":74009,"./fo":81267,"./fo.js":81267,"./fr":71160,"./fr-ca":39433,"./fr-ca.js":39433,"./fr-ch":20130,"./fr-ch.js":20130,"./fr.js":71160,"./fy":20553,"./fy.js":20553,"./ga":18232,"./ga.js":18232,"./gd":33771,"./gd.js":33771,"./gl":99747,"./gl.js":99747,"./gom-latn":80289,"./gom-latn.js":80289,"./gu":148,"./gu.js":148,"./he":68247,"./he.js":68247,"./hi":39835,"./hi.js":39835,"./hr":69734,"./hr.js":69734,"./hu":40999,"./hu.js":40999,"./hy-am":95002,"./hy-am.js":95002,"./id":23021,"./id.js":23021,"./is":96232,"./is.js":96232,"./it":15581,"./it-ch":4809,"./it-ch.js":4809,"./it.js":15581,"./ja":45981,"./ja.js":45981,"./jv":12568,"./jv.js":12568,"./ka":17924,"./ka.js":17924,"./kk":1062,"./kk.js":1062,"./km":65456,"./km.js":65456,"./kn":15817,"./kn.js":15817,"./ko":45306,"./ko.js":45306,"./ku":39016,"./ku.js":39016,"./ky":71308,"./ky.js":71308,"./lb":67330,"./lb.js":67330,"./lo":18949,"./lo.js":18949,"./lt":58804,"./lt.js":58804,"./lv":47006,"./lv.js":47006,"./me":83346,"./me.js":83346,"./mi":630,"./mi.js":630,"./mk":88876,"./mk.js":88876,"./ml":86841,"./ml.js":86841,"./mn":93847,"./mn.js":93847,"./mr":57515,"./mr.js":57515,"./ms":51844,"./ms-my":44391,"./ms-my.js":44391,"./ms.js":51844,"./mt":81969,"./mt.js":81969,"./my":34982,"./my.js":34982,"./nb":41632,"./nb.js":41632,"./ne":81781,"./ne.js":81781,"./nl":14910,"./nl-be":72506,"./nl-be.js":72506,"./nl.js":14910,"./nn":12980,"./nn.js":12980,"./pa-in":33791,"./pa-in.js":33791,"./pl":1872,"./pl.js":1872,"./pt":9064,"./pt-br":85273,"./pt-br.js":85273,"./pt.js":9064,"./ro":63167,"./ro.js":63167,"./ru":28649,"./ru.js":28649,"./sd":14823,"./sd.js":14823,"./se":90672,"./se.js":90672,"./si":26244,"./si.js":26244,"./sk":40654,"./sk.js":40654,"./sl":44335,"./sl.js":44335,"./sq":79116,"./sq.js":79116,"./sr":60693,"./sr-cyrl":1436,"./sr-cyrl.js":1436,"./sr.js":60693,"./ss":51734,"./ss.js":51734,"./sv":37945,"./sv.js":37945,"./sw":41514,"./sw.js":41514,"./ta":1991,"./ta.js":1991,"./te":95011,"./te.js":95011,"./tet":19463,"./tet.js":19463,"./tg":43109,"./tg.js":43109,"./th":97144,"./th.js":97144,"./tl-ph":70401,"./tl-ph.js":70401,"./tlh":26678,"./tlh.js":26678,"./tr":28682,"./tr.js":28682,"./tzl":59084,"./tzl.js":59084,"./tzm":64307,"./tzm-latn":68869,"./tzm-latn.js":68869,"./tzm.js":64307,"./ug-cn":78812,"./ug-cn.js":78812,"./uk":25812,"./uk.js":25812,"./ur":25411,"./ur.js":25411,"./uz":59435,"./uz-latn":94589,"./uz-latn.js":94589,"./uz.js":59435,"./vi":50569,"./vi.js":50569,"./x-pseudo":85241,"./x-pseudo.js":85241,"./yo":96972,"./yo.js":96972,"./zh-cn":18422,"./zh-cn.js":18422,"./zh-hk":84106,"./zh-hk.js":84106,"./zh-tw":69362,"./zh-tw.js":69362}
|
|
3
4
|
function s(e){var r=o(e)
|
|
4
5
|
return n(r)}function o(e){if(!n.o(t,e)){var r=new Error("Cannot find module '"+e+"'")
|
|
5
6
|
throw r.code="MODULE_NOT_FOUND",r}return t[e]}s.keys=function(){return Object.keys(t)},s.resolve=o,e.exports=s,s.id=56857},80032:e=>{"use strict"
|
|
6
|
-
e.exports=require("ember-tracked-storage-polyfill")},86625:()=>{},
|
|
7
|
-
function t(e){return e&&e.__esModule?e:Object.assign({default:e},e)}window.emberAutoImportDynamic=function(e){return 1===arguments.length?r("_eai_dyn_"+e):r("_eai_dynt_"+e)(Array.prototype.slice.call(arguments,1))},window.emberAutoImportSync=function(e){return r("_eai_sync_"+e)(Array.prototype.slice.call(arguments,1))},e("@sentry/browser",[],function(){return t(n(51294))}),e("@sentry/core",[],function(){return t(n(16154))}),e("@sentry/integrations",[],function(){return t(n(20080))}),e("@sentry/replay",[],function(){return t(n(51633))}),e("@sentry/utils",[],function(){return t(n(88414))}),e("@tryghost/color-utils",[],function(){return t(n(86797))}),e("@tryghost/kg-clean-basic-html",[],function(){return t(n(3414))}),e("@tryghost/kg-converters",[],function(){return t(n(23075))}),e("@tryghost/limit-service",[],function(){return t(n(55983))}),e("@tryghost/members-csv/lib/unparse",[],function(){return t(n(17246))}),e("@tryghost/nql",[],function(){return t(n(39365))}),e("@tryghost/nql-lang",[],function(){return t(n(716))}),e("@tryghost/string",[],function(){return t(n(96107))}),e("@tryghost/timezone-data",[],function(){return t(n(27019))}),e("animejs/lib/anime.es.js",[],function(){return t(n(62282))}),e("element-resize-detector",[],function(){return t(n(29540))}),e("ember-assign-helper/helpers/assign",[],function(){return t(n(31113))}),e("ember-css-transitions/modifiers/css-transition",["@ember/test-waiters"],function(){return t(n(95895))}),e("ember-keyboard/helpers/if-key.js",[],function(){return t(n(10530))}),e("ember-keyboard/helpers/on-key.js",[],function(){return t(n(13692))}),e("ember-keyboard/modifiers/on-key.js",[],function(){return t(n(40985))}),e("ember-keyboard/services/keyboard.js",[],function(){return t(n(89697))}),e("ember-modifier",[],function(){return t(n(37777))}),e("ember-moment/helpers/-base",[],function(){return t(n(91366))}),e("ember-moment/helpers/is-after",[],function(){return t(n(91461))}),e("ember-moment/helpers/is-before",[],function(){return t(n(61e3))}),e("ember-moment/helpers/is-between",[],function(){return t(n(447))}),e("ember-moment/helpers/is-same",[],function(){return t(n(64193))}),e("ember-moment/helpers/is-same-or-after",[],function(){return t(n(7916))}),e("ember-moment/helpers/is-same-or-before",[],function(){return t(n(54351))}),e("ember-moment/helpers/moment",[],function(){return t(n(41678))}),e("ember-moment/helpers/moment-add",[],function(){return t(n(50080))}),e("ember-moment/helpers/moment-calendar",[],function(){return t(n(96625))}),e("ember-moment/helpers/moment-diff",[],function(){return t(n(85340))}),e("ember-moment/helpers/moment-duration",[],function(){return t(n(42967))}),e("ember-moment/helpers/moment-format",[],function(){return t(n(10536))}),e("ember-moment/helpers/moment-from",[],function(){return t(n(50727))}),e("ember-moment/helpers/moment-from-now",[],function(){return t(n(706))}),e("ember-moment/helpers/moment-subtract",[],function(){return t(n(54651))}),e("ember-moment/helpers/moment-to",[],function(){return t(n(84818))}),e("ember-moment/helpers/moment-to-date",[],function(){return t(n(81183))}),e("ember-moment/helpers/moment-to-now",[],function(){return t(n(17083))}),e("ember-moment/helpers/now",[],function(){return t(n(34980))}),e("ember-moment/helpers/unix",[],function(){return t(n(79272))}),e("ember-moment/helpers/utc",[],function(){return t(n(36022))}),e("ember-moment/services/moment",[],function(){return t(n(39879))}),e("fast-deep-equal",[],function(){return t(n(25383))}),e("flexsearch",[],function(){return t(n(12248))}),e("focus-trap",[],function(){return t(n(39632))}),e("intersection-observer-admin",[],function(){return t(n(21431))}),e("jose",[],function(){return t(n(82765))}),e("microdiff",[],function(){return t(n(59086))}),e("moment-timezone",[],function(){return t(n(41101))}),e("papaparse",[],function(){return t(n(78695))}),e("raf-pool",[],function(){return t(n(60695))}),e("react",[],function(){return t(n(72854))}),e("react-dom",[],function(){return t(n(95303))}),e("react-dom/client",[],function(){return t(n(70816))}),e("semver/functions/coerce",[],function(){return t(n(18576))}),e("semver/functions/lt",[],function(){return t(n(32817))}),e("semver/functions/parse",[],function(){return t(n(47898))}),e("tooltip.js",[],function(){return t(n(85557))}),e("tracked-built-ins",["ember-tracked-storage-polyfill"],function(){return t(n(67708))}),e("validator",[],function(){return t(n(29119))}),e("_eai_dyn_@sentry/browser",[],function(){return Promise.resolve().then(n.bind(n,51294))})}()}},n={}
|
|
7
|
+
e.exports=require("ember-tracked-storage-polyfill")},86625:()=>{}},n={}
|
|
8
8
|
function t(e){var s=n[e]
|
|
9
9
|
if(void 0!==s)return s.exports
|
|
10
10
|
var o=n[e]={id:e,loaded:!1,exports:{}}
|
|
@@ -21,8 +21,8 @@ var r=(r,n)=>{var s,o,[u,i,m]=n,a=0
|
|
|
21
21
|
if(u.some(r=>0!==e[r])){for(s in i)t.o(i,s)&&(t.m[s]=i[s])
|
|
22
22
|
if(m)var c=m(t)}for(r&&r(n);a<u.length;a++)o=u[a],t.o(e,o)&&e[o]&&e[o][0](),e[o]=0
|
|
23
23
|
return t.O(c)},n=globalThis.webpackChunk_ember_auto_import_=globalThis.webpackChunk_ember_auto_import_||[]
|
|
24
|
-
n.forEach(r.bind(null,0)),n.push=r.bind(null,n.push.bind(n))})(),t.O(void 0,[728],()=>t(t.s=
|
|
25
|
-
var s=t.O(void 0,[728],()=>t(t.s=
|
|
24
|
+
n.forEach(r.bind(null,0)),n.push=r.bind(null,n.push.bind(n))})(),t.O(void 0,[728],()=>t(t.s=9662))
|
|
25
|
+
var s=t.O(void 0,[728],()=>t(t.s=17171))
|
|
26
26
|
s=t.O(s),__ember_auto_import__=s})()
|
|
27
27
|
|
|
28
|
-
//# sourceMappingURL=chunk.524.
|
|
28
|
+
//# sourceMappingURL=chunk.524.9c2366b9ec011d61ea88.map
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
var __ember_auto_import__;(()=>{var e,r={
|
|
2
|
-
|
|
3
|
-
window.emberAutoImportDynamic=function(r){return 1===arguments.length?e("_eai_dyn_"+r):e("_eai_dynt_"+r)(Array.prototype.slice.call(arguments,1))},window.emberAutoImportSync=function(r){return e("_eai_sync_"+r)(Array.prototype.slice.call(arguments,1))},t(88702)}()},32186:e=>{"use strict"
|
|
1
|
+
var __ember_auto_import__;(()=>{var e,r={9662:function(e,r){window._eai_r=require,window._eai_d=define},17171:(e,r,t)=>{e.exports=function(){var e=_eai_d,r=_eai_r
|
|
2
|
+
function n(e){return e&&e.__esModule?e:Object.assign({default:e},e)}window.emberAutoImportDynamic=function(e){return 1===arguments.length?r("_eai_dyn_"+e):r("_eai_dynt_"+e)(Array.prototype.slice.call(arguments,1))},window.emberAutoImportSync=function(e){return r("_eai_sync_"+e)(Array.prototype.slice.call(arguments,1))},e("@sentry/browser",EAI_DISCOVERED_EXTERNALS("@sentry/browser"),function(){return n(t(51294))}),e("@sentry/core",EAI_DISCOVERED_EXTERNALS("@sentry/core"),function(){return n(t(16154))}),e("@sentry/integrations",EAI_DISCOVERED_EXTERNALS("@sentry/integrations"),function(){return n(t(20080))}),e("@sentry/replay",EAI_DISCOVERED_EXTERNALS("@sentry/replay"),function(){return n(t(51633))}),e("@sentry/utils",EAI_DISCOVERED_EXTERNALS("@sentry/utils"),function(){return n(t(88414))}),e("@tryghost/color-utils",EAI_DISCOVERED_EXTERNALS("@tryghost/color-utils"),function(){return n(t(86797))}),e("@tryghost/kg-clean-basic-html",EAI_DISCOVERED_EXTERNALS("@tryghost/kg-clean-basic-html"),function(){return n(t(3414))}),e("@tryghost/kg-converters",EAI_DISCOVERED_EXTERNALS("@tryghost/kg-converters"),function(){return n(t(23075))}),e("@tryghost/limit-service",EAI_DISCOVERED_EXTERNALS("@tryghost/limit-service"),function(){return n(t(55983))}),e("@tryghost/members-csv/lib/unparse",EAI_DISCOVERED_EXTERNALS("@tryghost/members-csv/lib/unparse"),function(){return n(t(17246))}),e("@tryghost/nql",EAI_DISCOVERED_EXTERNALS("@tryghost/nql"),function(){return n(t(39365))}),e("@tryghost/nql-lang",EAI_DISCOVERED_EXTERNALS("@tryghost/nql-lang"),function(){return n(t(716))}),e("@tryghost/string",EAI_DISCOVERED_EXTERNALS("@tryghost/string"),function(){return n(t(96107))}),e("@tryghost/timezone-data",EAI_DISCOVERED_EXTERNALS("@tryghost/timezone-data"),function(){return n(t(27019))}),e("animejs/lib/anime.es.js",EAI_DISCOVERED_EXTERNALS("animejs/lib/anime.es.js"),function(){return n(t(62282))}),e("element-resize-detector",EAI_DISCOVERED_EXTERNALS("element-resize-detector"),function(){return n(t(29540))}),e("ember-assign-helper/helpers/assign",EAI_DISCOVERED_EXTERNALS("ember-assign-helper/helpers/assign"),function(){return n(t(31113))}),e("ember-css-transitions/modifiers/css-transition",EAI_DISCOVERED_EXTERNALS("ember-css-transitions/modifiers/css-transition"),function(){return n(t(95895))}),e("ember-keyboard/helpers/if-key.js",EAI_DISCOVERED_EXTERNALS("ember-keyboard/helpers/if-key.js"),function(){return n(t(10530))}),e("ember-keyboard/helpers/on-key.js",EAI_DISCOVERED_EXTERNALS("ember-keyboard/helpers/on-key.js"),function(){return n(t(13692))}),e("ember-keyboard/modifiers/on-key.js",EAI_DISCOVERED_EXTERNALS("ember-keyboard/modifiers/on-key.js"),function(){return n(t(40985))}),e("ember-keyboard/services/keyboard.js",EAI_DISCOVERED_EXTERNALS("ember-keyboard/services/keyboard.js"),function(){return n(t(89697))}),e("ember-modifier",EAI_DISCOVERED_EXTERNALS("ember-modifier"),function(){return n(t(37777))}),e("ember-moment/helpers/-base",EAI_DISCOVERED_EXTERNALS("ember-moment/helpers/-base"),function(){return n(t(91366))}),e("ember-moment/helpers/is-after",EAI_DISCOVERED_EXTERNALS("ember-moment/helpers/is-after"),function(){return n(t(91461))}),e("ember-moment/helpers/is-before",EAI_DISCOVERED_EXTERNALS("ember-moment/helpers/is-before"),function(){return n(t(61e3))}),e("ember-moment/helpers/is-between",EAI_DISCOVERED_EXTERNALS("ember-moment/helpers/is-between"),function(){return n(t(447))}),e("ember-moment/helpers/is-same",EAI_DISCOVERED_EXTERNALS("ember-moment/helpers/is-same"),function(){return n(t(64193))}),e("ember-moment/helpers/is-same-or-after",EAI_DISCOVERED_EXTERNALS("ember-moment/helpers/is-same-or-after"),function(){return n(t(7916))}),e("ember-moment/helpers/is-same-or-before",EAI_DISCOVERED_EXTERNALS("ember-moment/helpers/is-same-or-before"),function(){return n(t(54351))}),e("ember-moment/helpers/moment",EAI_DISCOVERED_EXTERNALS("ember-moment/helpers/moment"),function(){return n(t(41678))}),e("ember-moment/helpers/moment-add",EAI_DISCOVERED_EXTERNALS("ember-moment/helpers/moment-add"),function(){return n(t(50080))}),e("ember-moment/helpers/moment-calendar",EAI_DISCOVERED_EXTERNALS("ember-moment/helpers/moment-calendar"),function(){return n(t(96625))}),e("ember-moment/helpers/moment-diff",EAI_DISCOVERED_EXTERNALS("ember-moment/helpers/moment-diff"),function(){return n(t(85340))}),e("ember-moment/helpers/moment-duration",EAI_DISCOVERED_EXTERNALS("ember-moment/helpers/moment-duration"),function(){return n(t(42967))}),e("ember-moment/helpers/moment-format",EAI_DISCOVERED_EXTERNALS("ember-moment/helpers/moment-format"),function(){return n(t(10536))}),e("ember-moment/helpers/moment-from",EAI_DISCOVERED_EXTERNALS("ember-moment/helpers/moment-from"),function(){return n(t(50727))}),e("ember-moment/helpers/moment-from-now",EAI_DISCOVERED_EXTERNALS("ember-moment/helpers/moment-from-now"),function(){return n(t(706))}),e("ember-moment/helpers/moment-subtract",EAI_DISCOVERED_EXTERNALS("ember-moment/helpers/moment-subtract"),function(){return n(t(54651))}),e("ember-moment/helpers/moment-to",EAI_DISCOVERED_EXTERNALS("ember-moment/helpers/moment-to"),function(){return n(t(84818))}),e("ember-moment/helpers/moment-to-date",EAI_DISCOVERED_EXTERNALS("ember-moment/helpers/moment-to-date"),function(){return n(t(81183))}),e("ember-moment/helpers/moment-to-now",EAI_DISCOVERED_EXTERNALS("ember-moment/helpers/moment-to-now"),function(){return n(t(17083))}),e("ember-moment/helpers/now",EAI_DISCOVERED_EXTERNALS("ember-moment/helpers/now"),function(){return n(t(34980))}),e("ember-moment/helpers/unix",EAI_DISCOVERED_EXTERNALS("ember-moment/helpers/unix"),function(){return n(t(79272))}),e("ember-moment/helpers/utc",EAI_DISCOVERED_EXTERNALS("ember-moment/helpers/utc"),function(){return n(t(36022))}),e("ember-moment/services/moment",EAI_DISCOVERED_EXTERNALS("ember-moment/services/moment"),function(){return n(t(39879))}),e("fast-deep-equal",EAI_DISCOVERED_EXTERNALS("fast-deep-equal"),function(){return n(t(25383))}),e("flexsearch",EAI_DISCOVERED_EXTERNALS("flexsearch"),function(){return n(t(12248))}),e("focus-trap",EAI_DISCOVERED_EXTERNALS("focus-trap"),function(){return n(t(39632))}),e("intersection-observer-admin",EAI_DISCOVERED_EXTERNALS("intersection-observer-admin"),function(){return n(t(21431))}),e("jose",EAI_DISCOVERED_EXTERNALS("jose"),function(){return n(t(82765))}),e("microdiff",EAI_DISCOVERED_EXTERNALS("microdiff"),function(){return n(t(59086))}),e("moment-timezone",EAI_DISCOVERED_EXTERNALS("moment-timezone"),function(){return n(t(41101))}),e("papaparse",EAI_DISCOVERED_EXTERNALS("papaparse"),function(){return n(t(78695))}),e("raf-pool",EAI_DISCOVERED_EXTERNALS("raf-pool"),function(){return n(t(60695))}),e("react",EAI_DISCOVERED_EXTERNALS("react"),function(){return n(t(72854))}),e("react-dom",EAI_DISCOVERED_EXTERNALS("react-dom"),function(){return n(t(95303))}),e("react-dom/client",EAI_DISCOVERED_EXTERNALS("react-dom/client"),function(){return n(t(70816))}),e("semver/functions/coerce",EAI_DISCOVERED_EXTERNALS("semver/functions/coerce"),function(){return n(t(18576))}),e("semver/functions/lt",EAI_DISCOVERED_EXTERNALS("semver/functions/lt"),function(){return n(t(32817))}),e("semver/functions/parse",EAI_DISCOVERED_EXTERNALS("semver/functions/parse"),function(){return n(t(47898))}),e("tooltip.js",EAI_DISCOVERED_EXTERNALS("tooltip.js"),function(){return n(t(85557))}),e("tracked-built-ins",EAI_DISCOVERED_EXTERNALS("tracked-built-ins"),function(){return n(t(67708))}),e("validator",EAI_DISCOVERED_EXTERNALS("validator"),function(){return n(t(29119))}),e("_eai_dyn_@sentry/browser",[],function(){return Promise.resolve().then(t.bind(t,51294))})}()},31048:()=>{},32186:e=>{"use strict"
|
|
4
3
|
e.exports=require("@ember/test-waiters")},56857:(e,r,t)=>{var n={"./af":58547,"./af.js":58547,"./ar":28167,"./ar-dz":35298,"./ar-dz.js":35298,"./ar-kw":11314,"./ar-kw.js":11314,"./ar-ly":66455,"./ar-ly.js":66455,"./ar-ma":15998,"./ar-ma.js":15998,"./ar-sa":55388,"./ar-sa.js":55388,"./ar-tn":73358,"./ar-tn.js":73358,"./ar.js":28167,"./az":92367,"./az.js":92367,"./be":9161,"./be.js":9161,"./bg":359,"./bg.js":359,"./bm":32625,"./bm.js":32625,"./bn":52984,"./bn.js":52984,"./bo":87343,"./bo.js":87343,"./br":87948,"./br.js":87948,"./bs":88211,"./bs.js":88211,"./ca":34700,"./ca.js":34700,"./cs":27430,"./cs.js":27430,"./cv":55913,"./cv.js":55913,"./cy":16004,"./cy.js":16004,"./da":26839,"./da.js":26839,"./de":22131,"./de-at":6729,"./de-at.js":6729,"./de-ch":74743,"./de-ch.js":74743,"./de.js":22131,"./dv":14598,"./dv.js":14598,"./el":38737,"./el.js":38737,"./en-SG":94978,"./en-SG.js":94978,"./en-au":22606,"./en-au.js":22606,"./en-ca":60052,"./en-ca.js":60052,"./en-gb":17305,"./en-gb.js":17305,"./en-ie":76390,"./en-ie.js":76390,"./en-il":89549,"./en-il.js":89549,"./en-nz":67584,"./en-nz.js":67584,"./eo":24408,"./eo.js":24408,"./es":45644,"./es-do":21888,"./es-do.js":21888,"./es-us":23537,"./es-us.js":23537,"./es.js":45644,"./et":27257,"./et.js":27257,"./eu":57002,"./eu.js":57002,"./fa":90241,"./fa.js":90241,"./fi":74009,"./fi.js":74009,"./fo":81267,"./fo.js":81267,"./fr":71160,"./fr-ca":39433,"./fr-ca.js":39433,"./fr-ch":20130,"./fr-ch.js":20130,"./fr.js":71160,"./fy":20553,"./fy.js":20553,"./ga":18232,"./ga.js":18232,"./gd":33771,"./gd.js":33771,"./gl":99747,"./gl.js":99747,"./gom-latn":80289,"./gom-latn.js":80289,"./gu":148,"./gu.js":148,"./he":68247,"./he.js":68247,"./hi":39835,"./hi.js":39835,"./hr":69734,"./hr.js":69734,"./hu":40999,"./hu.js":40999,"./hy-am":95002,"./hy-am.js":95002,"./id":23021,"./id.js":23021,"./is":96232,"./is.js":96232,"./it":15581,"./it-ch":4809,"./it-ch.js":4809,"./it.js":15581,"./ja":45981,"./ja.js":45981,"./jv":12568,"./jv.js":12568,"./ka":17924,"./ka.js":17924,"./kk":1062,"./kk.js":1062,"./km":65456,"./km.js":65456,"./kn":15817,"./kn.js":15817,"./ko":45306,"./ko.js":45306,"./ku":39016,"./ku.js":39016,"./ky":71308,"./ky.js":71308,"./lb":67330,"./lb.js":67330,"./lo":18949,"./lo.js":18949,"./lt":58804,"./lt.js":58804,"./lv":47006,"./lv.js":47006,"./me":83346,"./me.js":83346,"./mi":630,"./mi.js":630,"./mk":88876,"./mk.js":88876,"./ml":86841,"./ml.js":86841,"./mn":93847,"./mn.js":93847,"./mr":57515,"./mr.js":57515,"./ms":51844,"./ms-my":44391,"./ms-my.js":44391,"./ms.js":51844,"./mt":81969,"./mt.js":81969,"./my":34982,"./my.js":34982,"./nb":41632,"./nb.js":41632,"./ne":81781,"./ne.js":81781,"./nl":14910,"./nl-be":72506,"./nl-be.js":72506,"./nl.js":14910,"./nn":12980,"./nn.js":12980,"./pa-in":33791,"./pa-in.js":33791,"./pl":1872,"./pl.js":1872,"./pt":9064,"./pt-br":85273,"./pt-br.js":85273,"./pt.js":9064,"./ro":63167,"./ro.js":63167,"./ru":28649,"./ru.js":28649,"./sd":14823,"./sd.js":14823,"./se":90672,"./se.js":90672,"./si":26244,"./si.js":26244,"./sk":40654,"./sk.js":40654,"./sl":44335,"./sl.js":44335,"./sq":79116,"./sq.js":79116,"./sr":60693,"./sr-cyrl":1436,"./sr-cyrl.js":1436,"./sr.js":60693,"./ss":51734,"./ss.js":51734,"./sv":37945,"./sv.js":37945,"./sw":41514,"./sw.js":41514,"./ta":1991,"./ta.js":1991,"./te":95011,"./te.js":95011,"./tet":19463,"./tet.js":19463,"./tg":43109,"./tg.js":43109,"./th":97144,"./th.js":97144,"./tl-ph":70401,"./tl-ph.js":70401,"./tlh":26678,"./tlh.js":26678,"./tr":28682,"./tr.js":28682,"./tzl":59084,"./tzl.js":59084,"./tzm":64307,"./tzm-latn":68869,"./tzm-latn.js":68869,"./tzm.js":64307,"./ug-cn":78812,"./ug-cn.js":78812,"./uk":25812,"./uk.js":25812,"./ur":25411,"./ur.js":25411,"./uz":59435,"./uz-latn":94589,"./uz-latn.js":94589,"./uz.js":59435,"./vi":50569,"./vi.js":50569,"./x-pseudo":85241,"./x-pseudo.js":85241,"./yo":96972,"./yo.js":96972,"./zh-cn":18422,"./zh-cn.js":18422,"./zh-hk":84106,"./zh-hk.js":84106,"./zh-tw":69362,"./zh-tw.js":69362}
|
|
5
4
|
function s(e){var r=o(e)
|
|
6
5
|
return t(r)}function o(e){if(!t.o(n,e)){var r=new Error("Cannot find module '"+e+"'")
|
|
7
|
-
throw r.code="MODULE_NOT_FOUND",r}return n[e]}s.keys=function(){return Object.keys(n)},s.resolve=o,e.exports=s,s.id=56857},
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
throw r.code="MODULE_NOT_FOUND",r}return n[e]}s.keys=function(){return Object.keys(n)},s.resolve=o,e.exports=s,s.id=56857},72913:(e,r,t)=>{e.exports=function(){_eai_d
|
|
7
|
+
var e=_eai_r
|
|
8
|
+
window.emberAutoImportDynamic=function(r){return 1===arguments.length?e("_eai_dyn_"+r):e("_eai_dynt_"+r)(Array.prototype.slice.call(arguments,1))},window.emberAutoImportSync=function(r){return e("_eai_sync_"+r)(Array.prototype.slice.call(arguments,1))},t(17171)}()},80032:e=>{"use strict"
|
|
9
|
+
e.exports=require("ember-tracked-storage-polyfill")},86625:()=>{}},t={}
|
|
10
10
|
function n(e){var s=t[e]
|
|
11
11
|
if(void 0!==s)return s.exports
|
|
12
12
|
var o=t[e]={id:e,loaded:!1,exports:{}}
|
|
@@ -23,8 +23,8 @@ var r=(r,t)=>{var s,o,[m,E,i]=t,u=0
|
|
|
23
23
|
if(m.some(r=>0!==e[r])){for(s in E)n.o(E,s)&&(n.m[s]=E[s])
|
|
24
24
|
if(i)var a=i(n)}for(r&&r(t);u<m.length;u++)o=m[u],n.o(e,o)&&e[o]&&e[o][0](),e[o]=0
|
|
25
25
|
return n.O(a)},t=globalThis.webpackChunk_ember_auto_import_=globalThis.webpackChunk_ember_auto_import_||[]
|
|
26
|
-
t.forEach(r.bind(null,0)),t.push=r.bind(null,t.push.bind(t))})(),n.O(void 0,[728],()=>n(n.s=
|
|
27
|
-
var s=n.O(void 0,[728],()=>n(n.s=
|
|
26
|
+
t.forEach(r.bind(null,0)),t.push=r.bind(null,t.push.bind(t))})(),n.O(void 0,[728],()=>n(n.s=9662))
|
|
27
|
+
var s=n.O(void 0,[728],()=>n(n.s=72913))
|
|
28
28
|
s=n.O(s),__ember_auto_import__=s})()
|
|
29
29
|
|
|
30
|
-
//# sourceMappingURL=chunk.582.
|
|
30
|
+
//# sourceMappingURL=chunk.582.75249fe6d3786009dfe6.map
|
|
@@ -82,11 +82,11 @@ return this.ajax(r,"GET",{data:{include:"roles"}})}}e.default=r}),define("ghost-
|
|
|
82
82
|
const o=Ember.Application.extend({Resolver:r.default,modulePrefix:n.default.modulePrefix,podModulePrefix:n.default.podModulePrefix,customEvents:{touchstart:null,touchmove:null,touchend:null,touchcancel:null}})
|
|
83
83
|
Ember.Debug.registerWarnHandler((e,t,i)=>{["ds.errors.add","ds.errors.remove","ds.errors.clear"].includes(t.id)||i(e,t)}),(0,a.default)(o,n.default.modulePrefix)
|
|
84
84
|
e.default=o}),define("ghost-admin/authenticators/cookie",["exports","ember-simple-auth/authenticators/base"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
85
|
-
e.default=t.default.extend({ajax:Ember.inject.service(),ghostPaths:Ember.inject.service(),sessionEndpoint:Ember.computed("ghostPaths.apiRoot",function(){return`${this.ghostPaths.apiRoot}/session`}),sessionVerifyEndpoint:Ember.computed("ghostPaths.apiRoot",function(){return`${this.ghostPaths.apiRoot}/session/verify`}),restore:function(){return Ember.RSVP.resolve()},authenticate({identification:e,password:t,token:i
|
|
86
|
-
return this.ajax.put(this.sessionVerifyEndpoint,e)}const
|
|
87
|
-
|
|
88
|
-
const
|
|
89
|
-
return this.ajax.post(this.sessionEndpoint,
|
|
85
|
+
e.default=t.default.extend({ajax:Ember.inject.service(),ghostPaths:Ember.inject.service(),sessionEndpoint:Ember.computed("ghostPaths.apiRoot",function(){return`${this.ghostPaths.apiRoot}/session`}),sessionVerifyEndpoint:Ember.computed("ghostPaths.apiRoot",function(){return`${this.ghostPaths.apiRoot}/session/verify`}),restore:function(){return Ember.RSVP.resolve()},authenticate({identification:e,password:t,token:i}){if(i&&!e&&!t){const e={data:{token:i},contentType:"application/json;charset=utf-8",dataType:"text"}
|
|
86
|
+
return this.ajax.put(this.sessionVerifyEndpoint,e)}const r={username:e,password:t}
|
|
87
|
+
i&&(r.token=i)
|
|
88
|
+
const n={data:r,contentType:"application/json;charset=utf-8",dataType:"text"}
|
|
89
|
+
return this.ajax.post(this.sessionEndpoint,n)},invalidate(){return this.ajax.skipSessionDeletion?(this.ajax.skipSessionDeletion=!1,Ember.RSVP.resolve()):this.ajax.del(this.sessionEndpoint)}})}),define("ghost-admin/component-managers/glimmer",["exports","@glimmer/component/-private/ember-component-manager"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/components/-dynamic-element-alt",["exports","@glimmer/component"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
90
90
|
class i extends t.default{}e.default=i}),define("ghost-admin/components/-dynamic-element",["exports","@glimmer/component"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
91
91
|
class i extends t.default{}e.default=i}),define("ghost-admin/components/admin-x/activitypub",["exports","ghost-admin/components/admin-x/admin-x-component"],function(e,t){var i,r,n,a,s,o
|
|
92
92
|
function l(e,t,i,r){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(r):void 0})}function u(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e
|
|
@@ -2839,8 +2839,8 @@ return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerabl
|
|
|
2839
2839
|
e.default=(n=Ember.inject.service,a=Ember.inject.service,s=Ember.inject.service,o=Ember.inject.service,l=Ember._tracked,u=Ember._tracked,d=Ember._tracked,c=Ember._tracked,p=Ember._action,m=(0,r.task)({drop:!0}),h=class extends(Ember.Controller.extend(t.default)){constructor(...e){super(...e),_(this,"ghostPaths",b,this),_(this,"notifications",f,this),_(this,"session",g,this),_(this,"ajax",v,this),_(this,"config",y,this),_(this,"newPassword",w,this),_(this,"ne2Password",E,this),_(this,"token",k,this),_(this,"flowErrors",P,this),O(this,"validationType","reset")}get email(){return atob(this.token).split("|")[1]}clearData(){this.newPassword="",this.ne2Password="",this.token="",document.querySelector("form#reset")?.reset()}handleInput(e){this.flowErrors="",this.errors.clear(),this.hasValidated.addObjects(["newPassword","ne2Password"]),this[e.currentTarget.name]=e.target.value}*resetPasswordTask(){const{email:e,newPassword:t,ne2Password:i,token:r}=this,n=this.ghostPaths.url.api("authentication","password_reset")
|
|
2840
2840
|
this.flowErrors="",this.hasValidated.addObjects(["newPassword","ne2Password"])
|
|
2841
2841
|
try{yield this.validate()
|
|
2842
|
-
try{let
|
|
2843
|
-
return this.notifications.showNotification(a
|
|
2842
|
+
try{let{password_reset:[{message:a,emailVerificationToken:s}]}=yield this.ajax.put(n,{data:{password_reset:[{newPassword:t,ne2Password:i,token:r}]}})
|
|
2843
|
+
return this.notifications.showNotification(a,{type:"info",delayed:!0,key:"password.reset"}),yield this.session.authenticate("authenticator:cookie",{identification:e,password:t,token:s}),!0}catch(a){this.notifications.showAPIError(a,{key:"password.reset"})}}catch(a){if(this.errors.errorsFor("newPassword").length&&(this.flowErrors=this.errors.errorsFor("newPassword")[0].message),this.errors.errorsFor("ne2Password").length&&(this.flowErrors=this.errors.errorsFor("ne2Password")[0].message),a&&0===this.errors.length)throw a}}},b=j(h.prototype,"ghostPaths",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),f=j(h.prototype,"notifications",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),g=j(h.prototype,"session",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),v=j(h.prototype,"ajax",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),y=j(h.prototype,"config",[i.inject],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),w=j(h.prototype,"newPassword",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return""}}),E=j(h.prototype,"ne2Password",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return""}}),k=j(h.prototype,"token",[d],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return""}}),P=j(h.prototype,"flowErrors",[c],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return""}}),j(h.prototype,"handleInput",[p],Object.getOwnPropertyDescriptor(h.prototype,"handleInput"),h.prototype),j(h.prototype,"resetPasswordTask",[m],Object.getOwnPropertyDescriptor(h.prototype,"resetPasswordTask"),h.prototype),h)}),define("ghost-admin/controllers/restore-posts",["exports","ember-concurrency"],function(e,t){var i,r,n,a,s
|
|
2844
2844
|
function o(e,t,i,r){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(r):void 0})}function l(e,t,i,r,n){var a={}
|
|
2845
2845
|
return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2846
2846
|
e.default=(i=Ember.inject.service,r=Ember.inject.service,n=class extends Ember.Controller{constructor(...e){super(...e),o(this,"localRevisions",a,this),o(this,"notifications",s,this)}*restorePostTask(e){try{return yield this.localRevisions.restore(e.key),this.notifications.showNotification("Post restored successfully",{type:"success"}),!0}catch(t){return this.notifications.showNotification("Failed to restore post",{type:"error"}),console.error("Failed to restore post:",t),!1}}},a=l(n.prototype,"localRevisions",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),s=l(n.prototype,"notifications",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),l(n.prototype,"restorePostTask",[t.task],Object.getOwnPropertyDescriptor(n.prototype,"restorePostTask"),n.prototype),n)}),define("ghost-admin/controllers/settings-x",["exports","ghost-admin/components/modals/settings/about"],function(e,t){var i,r,n,a,s,o
|
|
@@ -4841,4 +4841,4 @@ e.default=t.default.create({properties:["name","event","targetUrl","secret"],nam
|
|
|
4841
4841
|
e.default=Ember.Component.extend({})}),define("ghost-admin/config/environment",[],function(){try{var e="ghost-admin/config/environment",t=document.querySelector('meta[name="'+e+'"]').getAttribute("content"),i={default:JSON.parse(decodeURIComponent(t))}
|
|
4842
4842
|
return Object.defineProperty(i,"__esModule",{value:!0}),i}catch(r){throw new Error('Could not read config from meta tag with name "'+e+'".')}}),runningTests||require("ghost-admin/app").default.create({version:"5.130",name:"ghost-admin"})
|
|
4843
4843
|
|
|
4844
|
-
//# sourceMappingURL=ghost-
|
|
4844
|
+
//# sourceMappingURL=ghost-fc1d10004373f7b3183d998c2d308da5.map
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
|
|
50
50
|
<script src="assets/vendor-aed0068cf9b67d042dd23a6343545b7b.js"></script>
|
|
51
51
|
<script src="assets/chunk.728.985c45ad584b4b91ca60.js"></script>
|
|
52
|
-
<script src="assets/chunk.524.
|
|
53
|
-
<script src="assets/ghost-
|
|
52
|
+
<script src="assets/chunk.524.9c2366b9ec011d61ea88.js"></script>
|
|
53
|
+
<script src="assets/ghost-060c0f303364be7ed22510336af44764.js"></script>
|
|
54
54
|
</body>
|
|
55
55
|
</html>
|
|
@@ -33,8 +33,6 @@ const controller = {
|
|
|
33
33
|
return models.User.getByEmail(object.username).then((user) => {
|
|
34
34
|
if (user && !user.hasLoggedIn()) {
|
|
35
35
|
skipVerification = true;
|
|
36
|
-
} else if (frame.data.skipEmailVerification) {
|
|
37
|
-
skipVerification = true;
|
|
38
36
|
}
|
|
39
37
|
|
|
40
38
|
return models.User.check({
|
|
@@ -42,7 +42,8 @@ module.exports = {
|
|
|
42
42
|
resetPassword(data, apiConfig, frame) {
|
|
43
43
|
frame.response = {
|
|
44
44
|
password_reset: [{
|
|
45
|
-
message: tpl(messages.passwordChanged)
|
|
45
|
+
message: tpl(messages.passwordChanged),
|
|
46
|
+
emailVerificationToken: data.emailVerificationToken
|
|
46
47
|
}]
|
|
47
48
|
};
|
|
48
49
|
},
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
const {totp} = require('otplib');
|
|
2
|
+
|
|
3
|
+
totp.options = {
|
|
4
|
+
digits: 6,
|
|
5
|
+
step: 60,
|
|
6
|
+
window: [10, 10]
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Generate a TOTP token for a user
|
|
11
|
+
* @param {string} userId - The user's ID
|
|
12
|
+
* @param {string} secret - The admin session secret
|
|
13
|
+
* @returns {string} - The generated 6-digit token
|
|
14
|
+
*/
|
|
15
|
+
function generate(userId, secret) {
|
|
16
|
+
return totp.generate(secret + userId);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Verify a TOTP token for a user
|
|
21
|
+
* @param {string} userId - The user's ID
|
|
22
|
+
* @param {string} token - The token to verify
|
|
23
|
+
* @param {string} secret - The admin session secret
|
|
24
|
+
* @returns {boolean} - Whether the token is valid
|
|
25
|
+
*/
|
|
26
|
+
function verify(userId, token, secret) {
|
|
27
|
+
return totp.check(token, secret + userId);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
module.exports = {
|
|
31
|
+
generate,
|
|
32
|
+
verify
|
|
33
|
+
};
|
|
@@ -7,6 +7,8 @@ const moment = require('moment');
|
|
|
7
7
|
const models = require('../../models');
|
|
8
8
|
const urlUtils = require('../../../shared/url-utils');
|
|
9
9
|
const mail = require('../mail');
|
|
10
|
+
const otp = require('./otp');
|
|
11
|
+
const settingsCache = require('../../../shared/settings-cache');
|
|
10
12
|
|
|
11
13
|
const messages = {
|
|
12
14
|
userNotFound: 'User not found.',
|
|
@@ -145,6 +147,12 @@ function doReset(options, tokenParts, settingsAPI) {
|
|
|
145
147
|
updatedUser.set('status', 'active');
|
|
146
148
|
return updatedUser.save(options);
|
|
147
149
|
})
|
|
150
|
+
.then((savedUser) => {
|
|
151
|
+
// Generate email verification token for 2FA bypass on login
|
|
152
|
+
const secret = settingsCache.get('admin_session_secret');
|
|
153
|
+
const emailVerificationToken = otp.generate(savedUser.id, secret);
|
|
154
|
+
return {emailVerificationToken};
|
|
155
|
+
})
|
|
148
156
|
.catch((err) => {
|
|
149
157
|
if (errors.utils.isGhostError(err)) {
|
|
150
158
|
return Promise.reject(err);
|
|
@@ -5,16 +5,10 @@ const errors = require('@tryghost/errors');
|
|
|
5
5
|
const emailTemplate = require('./emails/signin');
|
|
6
6
|
const UAParser = require('ua-parser-js');
|
|
7
7
|
const got = require('got');
|
|
8
|
+
const otp = require('../otp');
|
|
8
9
|
const IPV4_REGEX = /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;
|
|
9
10
|
const IPV6_REGEX = /^(?:[A-F0-9]{1,4}:){7}[A-F0-9]{1,4}$/i;
|
|
10
11
|
|
|
11
|
-
const {totp} = require('otplib');
|
|
12
|
-
totp.options = {
|
|
13
|
-
digits: 6,
|
|
14
|
-
step: 60,
|
|
15
|
-
window: [10, 10]
|
|
16
|
-
};
|
|
17
|
-
|
|
18
12
|
/**
|
|
19
13
|
* @typedef {object} User
|
|
20
14
|
* @prop {string} id
|
|
@@ -54,7 +48,7 @@ totp.options = {
|
|
|
54
48
|
* @param {(req: Req, res: Res) => Promise<Session>} deps.getSession
|
|
55
49
|
* @param {(data: {id: string}) => Promise<User>} deps.findUserById
|
|
56
50
|
* @param {(req: Req) => string} deps.getOriginOfRequest
|
|
57
|
-
* @param {(key: 'require_email_mfa'
|
|
51
|
+
* @param {((key: 'require_email_mfa') => boolean) & ((key: 'admin_session_secret' | 'title') => string)} deps.getSettingsCache
|
|
58
52
|
* @param {() => string} deps.getBlogLogo
|
|
59
53
|
* @param {import('../../core/core/server/services/mail').GhostMailer} deps.mailer
|
|
60
54
|
* @param {import('../../core/core/server/services/i18n').t} deps.t
|
|
@@ -128,6 +122,14 @@ module.exports = function createSessionService({
|
|
|
128
122
|
session.user_agent = req.get('user-agent');
|
|
129
123
|
session.ip = req.ip;
|
|
130
124
|
|
|
125
|
+
// If a verification token was provided with the login request, verify it
|
|
126
|
+
if (req.body && req.body.token) {
|
|
127
|
+
const secret = getSettingsCache('admin_session_secret');
|
|
128
|
+
if (otp.verify(session.user_id, req.body.token, secret)) {
|
|
129
|
+
session.verified = true;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
|
|
131
133
|
if (isStaffDeviceVerificationDisabled()) {
|
|
132
134
|
session.verified = true;
|
|
133
135
|
}
|
|
@@ -155,9 +157,8 @@ module.exports = function createSessionService({
|
|
|
155
157
|
*/
|
|
156
158
|
async function generateAuthCodeForUser(req, res) {
|
|
157
159
|
const session = await getSession(req, res);
|
|
158
|
-
const secret = getSettingsCache('admin_session_secret')
|
|
159
|
-
|
|
160
|
-
return token;
|
|
160
|
+
const secret = getSettingsCache('admin_session_secret');
|
|
161
|
+
return otp.generate(session.user_id, secret);
|
|
161
162
|
}
|
|
162
163
|
|
|
163
164
|
/**
|
|
@@ -169,9 +170,8 @@ module.exports = function createSessionService({
|
|
|
169
170
|
*/
|
|
170
171
|
async function verifyAuthCodeForUser(req, res) {
|
|
171
172
|
const session = await getSession(req, res);
|
|
172
|
-
const secret = getSettingsCache('admin_session_secret')
|
|
173
|
-
|
|
174
|
-
return isValid;
|
|
173
|
+
const secret = getSettingsCache('admin_session_secret');
|
|
174
|
+
return otp.verify(session.user_id, req.body.token, secret);
|
|
175
175
|
}
|
|
176
176
|
|
|
177
177
|
const formatTime = new Intl.DateTimeFormat('en-GB', {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
const mime = require('mime-types');
|
|
2
2
|
const FileType = require('file-type');
|
|
3
|
-
const request = require('
|
|
3
|
+
const request = require('../../lib/request-external');
|
|
4
4
|
const errors = require('@tryghost/errors');
|
|
5
5
|
const logging = require('@tryghost/logging');
|
|
6
6
|
const string = require('@tryghost/string');
|
|
@@ -2,6 +2,7 @@ const errors = require('@tryghost/errors');
|
|
|
2
2
|
const nql = require('@tryghost/nql');
|
|
3
3
|
const mingo = require('mingo');
|
|
4
4
|
const {replaceFilters, expandFilters, splitFilter, getUsedKeys, chainTransformers, mapKeys, rejectStatements} = require('@tryghost/mongo-utils');
|
|
5
|
+
const {default: ObjectID} = require('bson-objectid');
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* This mongo transformer ignores the provided filter option and replaces the filter with a custom filter that was provided to the transformer. Allowing us to set a mongo filter instead of a string based NQL filter.
|
|
@@ -485,26 +486,36 @@ module.exports = class EventRepository {
|
|
|
485
486
|
};
|
|
486
487
|
}
|
|
487
488
|
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
*/
|
|
491
|
-
async getAggregatedClickEvents(options = {}, filter) {
|
|
492
|
-
let postId = '';
|
|
489
|
+
getPostIdFromFilter(filter) {
|
|
490
|
+
let postIdString = '';
|
|
493
491
|
|
|
494
492
|
if (filter && filter.$and) {
|
|
495
493
|
// Case when there is an $and condition
|
|
496
|
-
|
|
494
|
+
postIdString = filter.$and.find(condition => condition['data.post_id'])?.['data.post_id'];
|
|
497
495
|
} else {
|
|
498
496
|
// Case when there's no $and condition, directly look for data.post_id
|
|
499
|
-
|
|
497
|
+
postIdString = filter ? filter['data.post_id'] : '';
|
|
500
498
|
}
|
|
501
499
|
|
|
502
|
-
|
|
500
|
+
if (!ObjectID.isValid(postIdString)) {
|
|
501
|
+
return null;
|
|
502
|
+
}
|
|
503
|
+
|
|
504
|
+
return ObjectID.createFromHexString(postIdString);
|
|
505
|
+
}
|
|
506
|
+
|
|
507
|
+
/**
|
|
508
|
+
* This groups click events per member for the same post, and only returns the first actual event, and includes the total clicks per event (for the same member and post)
|
|
509
|
+
*/
|
|
510
|
+
async getAggregatedClickEvents(options = {}, filter) {
|
|
511
|
+
const postId = this.getPostIdFromFilter(filter);
|
|
512
|
+
|
|
513
|
+
//Remove type filter as we don't need it in the query
|
|
503
514
|
const [typeFilter, otherFilter] = this.getNQLSubset(options.filter); // eslint-disable-line
|
|
504
515
|
|
|
505
516
|
filter = this.removePostIdFilter(otherFilter); //Remove post_id filter as we don't need it in the query
|
|
506
517
|
|
|
507
|
-
let postClicksQuery = postId
|
|
518
|
+
let postClicksQuery = postId ? `SELECT
|
|
508
519
|
mce.id,
|
|
509
520
|
mce.member_id,
|
|
510
521
|
mce.redirect_id,
|
|
@@ -514,7 +525,7 @@ module.exports = class EventRepository {
|
|
|
514
525
|
INNER JOIN
|
|
515
526
|
redirects r ON mce.redirect_id = r.id
|
|
516
527
|
WHERE
|
|
517
|
-
r.post_id = '${postId}'
|
|
528
|
+
r.post_id = '${postId.toHexString()}'
|
|
518
529
|
`
|
|
519
530
|
: `SELECT
|
|
520
531
|
mce.id,
|
|
@@ -914,7 +925,7 @@ module.exports = class EventRepository {
|
|
|
914
925
|
if (!filter) {
|
|
915
926
|
return filter;
|
|
916
927
|
}
|
|
917
|
-
|
|
928
|
+
|
|
918
929
|
try {
|
|
919
930
|
return rejectStatements(filter, key => key === 'data.post_id');
|
|
920
931
|
} catch (e) {
|
|
@@ -24,8 +24,9 @@ const notImplemented = function notImplemented(req, res, next) {
|
|
|
24
24
|
// Staff tokens have a user_id associated with them, integration tokens don't
|
|
25
25
|
if (req.api_key?.get('user_id')) {
|
|
26
26
|
// Check if staff token is trying to access blocked endpoints
|
|
27
|
-
|
|
28
|
-
const
|
|
27
|
+
// Match both with and without trailing slash since Express routes accept both
|
|
28
|
+
const isDeleteAllContent = req.method === 'DELETE' && (req.path === '/db/' || req.path === '/db');
|
|
29
|
+
const isTransferOwnership = req.method === 'PUT' && (req.path === '/users/owner/' || req.path === '/users/owner');
|
|
29
30
|
|
|
30
31
|
if (isDeleteAllContent || isTransferOwnership) {
|
|
31
32
|
return next(new errors.NoPermissionError({
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ghost",
|
|
3
|
-
"version": "5.130.
|
|
3
|
+
"version": "5.130.6",
|
|
4
4
|
"description": "The professional publishing platform",
|
|
5
5
|
"author": "Ghost Foundation",
|
|
6
6
|
"homepage": "https://ghost.org",
|
|
@@ -86,7 +86,7 @@
|
|
|
86
86
|
"@tryghost/helpers": "1.1.97",
|
|
87
87
|
"@tryghost/html-to-plaintext": "1.0.4",
|
|
88
88
|
"@tryghost/http-cache-utils": "0.1.20",
|
|
89
|
-
"@tryghost/i18n": "file:components/tryghost-i18n-5.130.
|
|
89
|
+
"@tryghost/i18n": "file:components/tryghost-i18n-5.130.6.tgz",
|
|
90
90
|
"@tryghost/image-transform": "1.4.6",
|
|
91
91
|
"@tryghost/job-manager": "1.0.3",
|
|
92
92
|
"@tryghost/kg-card-factory": "5.1.2",
|
|
@@ -274,7 +274,7 @@
|
|
|
274
274
|
"jackspeak": "2.3.6",
|
|
275
275
|
"moment": "2.24.0",
|
|
276
276
|
"moment-timezone": "0.5.45",
|
|
277
|
-
"@tryghost/i18n": "file:components/tryghost-i18n-5.130.
|
|
277
|
+
"@tryghost/i18n": "file:components/tryghost-i18n-5.130.6.tgz"
|
|
278
278
|
},
|
|
279
279
|
"nx": {
|
|
280
280
|
"targets": {
|