@caretcms/core 0.1.0 → 0.1.2
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/README.md +182 -6
- package/dist/browser-runtime.d.ts +16 -0
- package/dist/browser-runtime.d.ts.map +1 -1
- package/dist/browser-runtime.js +42 -23
- package/dist/browser-runtime.js.map +1 -1
- package/dist/contracts.d.ts +14 -0
- package/dist/contracts.d.ts.map +1 -0
- package/dist/contracts.js +14 -0
- package/dist/contracts.js.map +1 -0
- package/dist/editable.d.ts +28 -0
- package/dist/editable.d.ts.map +1 -0
- package/dist/editable.js +122 -0
- package/dist/editable.js.map +1 -0
- package/dist/index.d.ts +53 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +274 -4
- package/dist/index.js.map +1 -1
- package/dist/loader.d.ts.map +1 -1
- package/dist/loader.js +45 -3
- package/dist/loader.js.map +1 -1
- package/dist/providers/storage/markdown.d.ts +7 -0
- package/dist/providers/storage/markdown.d.ts.map +1 -0
- package/dist/providers/storage/markdown.js +6 -0
- package/dist/providers/storage/markdown.js.map +1 -0
- package/dist/runtime/auth/cookie-utils.d.ts +1 -0
- package/dist/runtime/auth/cookie-utils.d.ts.map +1 -1
- package/dist/runtime/auth/cookie-utils.js +1 -1
- package/dist/runtime/auth/cookie-utils.js.map +1 -1
- package/dist/runtime/auth/rate-limiter.d.ts.map +1 -1
- package/dist/runtime/auth/rate-limiter.js +19 -13
- package/dist/runtime/auth/rate-limiter.js.map +1 -1
- package/dist/runtime/auth/session.d.ts +8 -0
- package/dist/runtime/auth/session.d.ts.map +1 -1
- package/dist/runtime/auth/session.js +72 -11
- package/dist/runtime/auth/session.js.map +1 -1
- package/dist/runtime/config.d.ts +1 -0
- package/dist/runtime/config.d.ts.map +1 -1
- package/dist/runtime/config.js +2 -1
- package/dist/runtime/config.js.map +1 -1
- package/dist/runtime/git-journal.d.ts +19 -0
- package/dist/runtime/git-journal.d.ts.map +1 -0
- package/dist/runtime/git-journal.js +64 -0
- package/dist/runtime/git-journal.js.map +1 -0
- package/dist/runtime/index.d.ts +1 -1
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +1 -1
- package/dist/runtime/index.js.map +1 -1
- package/dist/runtime/middleware.d.ts.map +1 -1
- package/dist/runtime/middleware.js +125 -8
- package/dist/runtime/middleware.js.map +1 -1
- package/dist/runtime/mutations/contracts.d.ts.map +1 -1
- package/dist/runtime/mutations/contracts.js +7 -4
- package/dist/runtime/mutations/contracts.js.map +1 -1
- package/dist/runtime/mutations/engine.d.ts +7 -0
- package/dist/runtime/mutations/engine.d.ts.map +1 -1
- package/dist/runtime/mutations/engine.js +30 -17
- package/dist/runtime/mutations/engine.js.map +1 -1
- package/dist/runtime/providers.d.ts +16 -0
- package/dist/runtime/providers.d.ts.map +1 -1
- package/dist/runtime/providers.js +16 -0
- package/dist/runtime/providers.js.map +1 -1
- package/dist/runtime/publish.d.ts +40 -0
- package/dist/runtime/publish.d.ts.map +1 -0
- package/dist/runtime/publish.js +75 -0
- package/dist/runtime/publish.js.map +1 -0
- package/dist/runtime/rebuild-webhook.d.ts +29 -0
- package/dist/runtime/rebuild-webhook.d.ts.map +1 -0
- package/dist/runtime/rebuild-webhook.js +37 -0
- package/dist/runtime/rebuild-webhook.js.map +1 -0
- package/dist/runtime/request-context.d.ts +19 -0
- package/dist/runtime/request-context.d.ts.map +1 -1
- package/dist/runtime/request-context.js.map +1 -1
- package/dist/runtime/rewrite.d.ts +29 -1
- package/dist/runtime/rewrite.d.ts.map +1 -1
- package/dist/runtime/rewrite.js +30 -16
- package/dist/runtime/rewrite.js.map +1 -1
- package/dist/runtime/rich-allowlist.d.ts +29 -0
- package/dist/runtime/rich-allowlist.d.ts.map +1 -0
- package/dist/runtime/rich-allowlist.js +49 -0
- package/dist/runtime/rich-allowlist.js.map +1 -0
- package/dist/runtime/routes/_helpers.d.ts +33 -0
- package/dist/runtime/routes/_helpers.d.ts.map +1 -1
- package/dist/runtime/routes/_helpers.js +117 -1
- package/dist/runtime/routes/_helpers.js.map +1 -1
- package/dist/runtime/routes/admin-entry.d.ts +1 -0
- package/dist/runtime/routes/admin-entry.d.ts.map +1 -1
- package/dist/runtime/routes/admin-entry.js +3 -2
- package/dist/runtime/routes/admin-entry.js.map +1 -1
- package/dist/runtime/routes/admin.d.ts +1 -0
- package/dist/runtime/routes/admin.d.ts.map +1 -1
- package/dist/runtime/routes/admin.js +61 -9
- package/dist/runtime/routes/admin.js.map +1 -1
- package/dist/runtime/routes/auth-login.d.ts +1 -0
- package/dist/runtime/routes/auth-login.d.ts.map +1 -1
- package/dist/runtime/routes/auth-login.js +26 -8
- package/dist/runtime/routes/auth-login.js.map +1 -1
- package/dist/runtime/routes/auth-logout.d.ts +1 -0
- package/dist/runtime/routes/auth-logout.d.ts.map +1 -1
- package/dist/runtime/routes/auth-logout.js +5 -0
- package/dist/runtime/routes/auth-logout.js.map +1 -1
- package/dist/runtime/routes/auth-session.d.ts +1 -0
- package/dist/runtime/routes/auth-session.d.ts.map +1 -1
- package/dist/runtime/routes/auth-session.js +1 -0
- package/dist/runtime/routes/auth-session.js.map +1 -1
- package/dist/runtime/routes/collection-list.d.ts +1 -0
- package/dist/runtime/routes/collection-list.d.ts.map +1 -1
- package/dist/runtime/routes/collection-list.js +3 -2
- package/dist/runtime/routes/collection-list.js.map +1 -1
- package/dist/runtime/routes/collections-metadata.d.ts +1 -0
- package/dist/runtime/routes/collections-metadata.d.ts.map +1 -1
- package/dist/runtime/routes/collections-metadata.js +7 -4
- package/dist/runtime/routes/collections-metadata.js.map +1 -1
- package/dist/runtime/routes/draft.d.ts +13 -0
- package/dist/runtime/routes/draft.d.ts.map +1 -0
- package/dist/runtime/routes/draft.js +55 -0
- package/dist/runtime/routes/draft.js.map +1 -0
- package/dist/runtime/routes/editor-assets.d.ts +1 -0
- package/dist/runtime/routes/editor-assets.d.ts.map +1 -1
- package/dist/runtime/routes/editor-assets.js +1 -0
- package/dist/runtime/routes/editor-assets.js.map +1 -1
- package/dist/runtime/routes/entries.d.ts +1 -0
- package/dist/runtime/routes/entries.d.ts.map +1 -1
- package/dist/runtime/routes/entries.js +3 -2
- package/dist/runtime/routes/entries.js.map +1 -1
- package/dist/runtime/routes/history.d.ts +1 -0
- package/dist/runtime/routes/history.d.ts.map +1 -1
- package/dist/runtime/routes/history.js +24 -10
- package/dist/runtime/routes/history.js.map +1 -1
- package/dist/runtime/routes/mutate.d.ts +1 -0
- package/dist/runtime/routes/mutate.d.ts.map +1 -1
- package/dist/runtime/routes/mutate.js +7 -10
- package/dist/runtime/routes/mutate.js.map +1 -1
- package/dist/runtime/routes/publish.d.ts +10 -0
- package/dist/runtime/routes/publish.d.ts.map +1 -0
- package/dist/runtime/routes/publish.js +75 -0
- package/dist/runtime/routes/publish.js.map +1 -0
- package/dist/runtime/routes/schema.d.ts +1 -0
- package/dist/runtime/routes/schema.d.ts.map +1 -1
- package/dist/runtime/routes/schema.js +7 -4
- package/dist/runtime/routes/schema.js.map +1 -1
- package/dist/runtime/routes/studio-home.d.ts +1 -0
- package/dist/runtime/routes/studio-home.d.ts.map +1 -1
- package/dist/runtime/routes/studio-home.js +10 -9
- package/dist/runtime/routes/studio-home.js.map +1 -1
- package/dist/runtime/routes/theme-stylesheet.d.ts +1 -0
- package/dist/runtime/routes/theme-stylesheet.d.ts.map +1 -1
- package/dist/runtime/routes/theme-stylesheet.js +1 -0
- package/dist/runtime/routes/theme-stylesheet.js.map +1 -1
- package/dist/runtime/routes/upload.d.ts +1 -0
- package/dist/runtime/routes/upload.d.ts.map +1 -1
- package/dist/runtime/routes/upload.js +17 -3
- package/dist/runtime/routes/upload.js.map +1 -1
- package/dist/runtime/sanitize-html.d.ts +8 -2
- package/dist/runtime/sanitize-html.d.ts.map +1 -1
- package/dist/runtime/sanitize-html.js +57 -38
- package/dist/runtime/sanitize-html.js.map +1 -1
- package/dist/runtime/static-bake.d.ts +20 -0
- package/dist/runtime/static-bake.d.ts.map +1 -0
- package/dist/runtime/static-bake.js +58 -0
- package/dist/runtime/static-bake.js.map +1 -0
- package/dist/runtime/stega.d.ts +38 -0
- package/dist/runtime/stega.d.ts.map +1 -0
- package/dist/runtime/stega.js +98 -0
- package/dist/runtime/stega.js.map +1 -0
- package/dist/runtime/storage/atomic-write.d.ts +22 -0
- package/dist/runtime/storage/atomic-write.d.ts.map +1 -0
- package/dist/runtime/storage/atomic-write.js +44 -0
- package/dist/runtime/storage/atomic-write.js.map +1 -0
- package/dist/runtime/storage/filesystem-adapter.d.ts +14 -11
- package/dist/runtime/storage/filesystem-adapter.d.ts.map +1 -1
- package/dist/runtime/storage/filesystem-adapter.js +71 -201
- package/dist/runtime/storage/filesystem-adapter.js.map +1 -1
- package/dist/runtime/storage/frontmatter-codec.d.ts +47 -0
- package/dist/runtime/storage/frontmatter-codec.d.ts.map +1 -0
- package/dist/runtime/storage/frontmatter-codec.js +523 -0
- package/dist/runtime/storage/frontmatter-codec.js.map +1 -0
- package/dist/runtime/storage/fs-runtime.d.ts +8 -0
- package/dist/runtime/storage/fs-runtime.d.ts.map +1 -0
- package/dist/runtime/storage/fs-runtime.js +40 -0
- package/dist/runtime/storage/fs-runtime.js.map +1 -0
- package/dist/runtime/storage/id-contracts.d.ts +22 -0
- package/dist/runtime/storage/id-contracts.d.ts.map +1 -0
- package/dist/runtime/storage/id-contracts.js +27 -0
- package/dist/runtime/storage/id-contracts.js.map +1 -0
- package/dist/runtime/storage/image-validation.d.ts +10 -0
- package/dist/runtime/storage/image-validation.d.ts.map +1 -1
- package/dist/runtime/storage/image-validation.js +17 -4
- package/dist/runtime/storage/image-validation.js.map +1 -1
- package/dist/runtime/storage/in-memory-adapter.d.ts +4 -0
- package/dist/runtime/storage/in-memory-adapter.d.ts.map +1 -1
- package/dist/runtime/storage/in-memory-adapter.js +11 -0
- package/dist/runtime/storage/in-memory-adapter.js.map +1 -1
- package/dist/runtime/storage/markdown-adapter.d.ts +63 -0
- package/dist/runtime/storage/markdown-adapter.d.ts.map +1 -0
- package/dist/runtime/storage/markdown-adapter.js +227 -0
- package/dist/runtime/storage/markdown-adapter.js.map +1 -0
- package/dist/runtime/storage/quota-upload-handler.d.ts +2 -0
- package/dist/runtime/storage/quota-upload-handler.d.ts.map +1 -1
- package/dist/runtime/storage/quota-upload-handler.js +34 -8
- package/dist/runtime/storage/quota-upload-handler.js.map +1 -1
- package/dist/runtime/storage/session-overlay-adapter.d.ts +3 -0
- package/dist/runtime/storage/session-overlay-adapter.d.ts.map +1 -1
- package/dist/runtime/storage/session-overlay-adapter.js +3 -1
- package/dist/runtime/storage/session-overlay-adapter.js.map +1 -1
- package/dist/runtime/storage/sidecar-meta-store.d.ts +51 -0
- package/dist/runtime/storage/sidecar-meta-store.d.ts.map +1 -0
- package/dist/runtime/storage/sidecar-meta-store.js +209 -0
- package/dist/runtime/storage/sidecar-meta-store.js.map +1 -0
- package/dist/runtime/themes/preset-tokens.d.ts +0 -1
- package/dist/runtime/themes/preset-tokens.d.ts.map +1 -1
- package/dist/runtime/themes/preset-tokens.js +1 -1
- package/dist/runtime/themes/preset-tokens.js.map +1 -1
- package/dist/runtime/utils.d.ts +9 -1
- package/dist/runtime/utils.d.ts.map +1 -1
- package/dist/runtime/utils.js +21 -1
- package/dist/runtime/utils.js.map +1 -1
- package/dist/runtime/views/studio-layout.d.ts.map +1 -1
- package/dist/runtime/views/studio-layout.js +11 -10
- package/dist/runtime/views/studio-layout.js.map +1 -1
- package/dist/schema-utils.d.ts.map +1 -1
- package/dist/schema-utils.js +1 -0
- package/dist/schema-utils.js.map +1 -1
- package/dist/types.d.ts +17 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +9 -1
- package/static/cms/dev-toolbar/app.js +265 -0
- package/static/cms/editor/config.js +10 -0
- package/static/cms/editor/helpers.js +5 -1
- package/static/cms/editor/highlight.js +44 -0
- package/static/cms/editor/sanitize.js +56 -9
- package/static/cms/editor/stega-hydrate.js +80 -0
- package/static/cms/editor/text-edit.js +22 -0
- package/static/cms/editor/tokens-and-text.css +1 -1
- package/static/cms/editor/toolbar.css +101 -4
- package/static/cms/editor/toolbar.js +171 -21
- package/static/cms/editor.js +18 -1
- package/static/cms/signin-hint.css +74 -0
- package/static/cms/studio-login.css +70 -0
- package/static/cms/studio.css +80 -13
- package/dist/runtime/schema/template.d.ts +0 -15
- package/dist/runtime/schema/template.d.ts.map +0 -1
- package/dist/runtime/schema/template.js +0 -38
- package/dist/runtime/schema/template.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_helpers.js","sourceRoot":"","sources":["../../../src/runtime/routes/_helpers.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"_helpers.js","sourceRoot":"","sources":["../../../src/runtime/routes/_helpers.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,EACjB,qBAAqB,GAEtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,IAAI,gBAAgB,GAAwC,IAAI,CAAC;AAEjE,KAAK,UAAU,uBAAuB;IACpC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,gBAAgB,GAAG,kBAAkB,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC1D,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,aAAa,EAAE,QAAQ,CAAC,aAAa;YACrC,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,KAAK;YACf,aAAa,EAAE,KAAK;YACpB,MAAM,EAAE,KAAK;SACd,CAAC,CAAC,CAAC;IACN,CAAC;IACD,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,MAAM,GAAG,GAAG,iBAAiB,EAAE,CAAC;IAChC,IAAI,GAAG;QAAE,OAAO,GAAG,CAAC,OAAO,CAAC;IAC5B,OAAO,CAAC,MAAM,uBAAuB,EAAE,CAAC,CAAC,OAAO,CAAC;AACnD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,MAAM,GAAG,GAAG,iBAAiB,EAAE,CAAC;IAChC,IAAI,GAAG;QAAE,OAAO,GAAG,CAAC,aAAa,CAAC;IAClC,OAAO,CAAC,MAAM,uBAAuB,EAAE,CAAC,CAAC,aAAa,CAAC;AACzD,CAAC;AAED,MAAM,WAAW,GAAG,iBAAiB,CAAC;AACtC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAE9B,MAAM,UAAU,IAAI,CAAC,IAA6B,EAAE,MAAM,GAAG,GAAG;IAC9D,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;QACxC,MAAM;QACN,OAAO,EAAE,EAAE,cAAc,EAAE,iCAAiC,EAAE;KAC/D,CAAC,CAAC;AACL,CAAC;AAED,oEAAoE;AACpE,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO;AACvD,uEAAuE;AACvE,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,QAAQ;AAE/D;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAAgB,EAChB,QAAgB;IAEhB,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC;IACrE,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,QAAQ,EAAE,CAAC;QACrD,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAE,GAAG,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAMD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAAgB,EAChB,WAAmB,mBAAmB;IAEtC,MAAM,QAAQ,GAAG,oBAAoB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACzD,IAAI,QAAQ;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;IAEvD,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACrD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,iBAAiB,EAAE,CAAC;YACvC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC;QAC5E,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC;IACvE,CAAC;IAED,IAAI,CAAC;QACH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC;IACvE,CAAC;AACH,CAAC;AAED,MAAM,iBAAkB,SAAQ,KAAK;CAAG;AAExC,KAAK,UAAU,kBAAkB,CAC/B,OAAgB,EAChB,QAAgB;IAEhB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;QAClC,IAAI,IAAI,CAAC,MAAM,GAAG,QAAQ;YAAE,MAAM,IAAI,iBAAiB,EAAE,CAAC;QAC1D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IAChC,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,CAAC;QACH,SAAS,CAAC;YACR,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YAC5C,IAAI,IAAI;gBAAE,MAAM;YAChB,IAAI,CAAC,KAAK;gBAAE,SAAS;YACrB,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC;YAC1B,IAAI,KAAK,GAAG,QAAQ,EAAE,CAAC;gBACrB,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;gBACtC,MAAM,IAAI,iBAAiB,EAAE,CAAC;YAChC,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;IACrC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC;IAC7B,CAAC;IACD,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC1C,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAgB;IAChD,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,iBAAiB,EAAE,CAAC;QAC3D,OAAO,IAAI,CACT;YACE,KAAK,EAAE,iCAAiC;YACxC,MAAM,EAAE,SAAS,WAAW,KAAK,iBAAiB,6BAA6B;SAChF,EACD,GAAG,CACJ,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,OAAO,qBAAqB,EAAE,CAAC,OAAO,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,qBAAqB,EAAE,CAAC,aAAa,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO,qBAAqB,EAAE,CAAC,SAAS,CAAC;AAC3C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin-entry.d.ts","sourceRoot":"","sources":["../../../src/runtime/routes/admin-entry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAexC,wBAAsB,GAAG,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,CA2KhE"}
|
|
1
|
+
{"version":3,"file":"admin-entry.d.ts","sourceRoot":"","sources":["../../../src/runtime/routes/admin-entry.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,QAAQ,CAAC;AAE/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAexC,wBAAsB,GAAG,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,CA2KhE"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
export const prerender = false;
|
|
1
2
|
import { isEditorAuthenticated } from "../auth/session.js";
|
|
2
3
|
import { getRuntimeConfig } from "../config.js";
|
|
3
|
-
import {
|
|
4
|
+
import { resolveAdapter } from "./_helpers.js";
|
|
4
5
|
import { escapeHtml, htmlResponse, redirectResponse, renderStudioPage, } from "../views/studio-layout.js";
|
|
5
6
|
function humanize(name) {
|
|
6
7
|
return name.replace(/[-_]+/g, " ").replace(/\b\w/g, (c) => c.toUpperCase());
|
|
@@ -16,7 +17,7 @@ export async function GET(context) {
|
|
|
16
17
|
if (!collection || !id) {
|
|
17
18
|
return redirectResponse(`${runtime.mountPath}/cms`);
|
|
18
19
|
}
|
|
19
|
-
const adapter =
|
|
20
|
+
const adapter = await resolveAdapter();
|
|
20
21
|
const known = await adapter.discoverCollections();
|
|
21
22
|
if (!known.includes(collection)) {
|
|
22
23
|
return redirectResponse(`${runtime.mountPath}/cms`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin-entry.js","sourceRoot":"","sources":["../../../src/runtime/routes/admin-entry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"admin-entry.js","sourceRoot":"","sources":["../../../src/runtime/routes/admin-entry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../../src/runtime/routes/admin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../../src/runtime/routes/admin.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,QAAQ,CAAC;AAE/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AA0PxC,wBAAsB,GAAG,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,CAgChE"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
export const prerender = false;
|
|
2
|
+
import { hasConfiguredEditorPassword, isDevEditorPasswordActive, isEditorAuthenticated, } from "../auth/session.js";
|
|
2
3
|
import { sanitizeRedirect } from "../auth/cookie-utils.js";
|
|
3
4
|
import { getRuntimeConfig } from "../config.js";
|
|
4
5
|
function escapeHtml(value) {
|
|
@@ -20,12 +21,44 @@ function renderBrandMark(logoUrl) {
|
|
|
20
21
|
</div>`;
|
|
21
22
|
}
|
|
22
23
|
function renderLogin(opts) {
|
|
23
|
-
const { hasPassword, apiBasePath, redirectTo, brandName, brandLogo, faviconUrl, themeCssHref, studioCssHref, loginCssHref, } = opts;
|
|
24
|
+
const { hasPassword, devActive, apiBasePath, redirectTo, editorHome, brandName, brandLogo, faviconUrl, themeCssHref, studioCssHref, loginCssHref, } = opts;
|
|
24
25
|
const safeBrand = escapeHtml(brandName);
|
|
25
26
|
const safeRedirect = escapeHtml(redirectTo);
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
const safeEditorHome = escapeHtml(editorHome);
|
|
28
|
+
const statusNote = !hasPassword
|
|
29
|
+
? "Caret needs an editor password before you can sign in."
|
|
30
|
+
: devActive
|
|
31
|
+
? "Temporary dev password active — check your terminal to sign in."
|
|
32
|
+
: "Sign in to manage content.";
|
|
33
|
+
// When no password is configured the form is disabled, so give the developer
|
|
34
|
+
// an actionable setup guide instead of a dead end. When a dev fallback is
|
|
35
|
+
// active the form works — just nudge them toward a permanent password.
|
|
36
|
+
const docsUrl = "https://caretcms.com/docs";
|
|
37
|
+
let helperBlock = "";
|
|
38
|
+
if (!hasPassword) {
|
|
39
|
+
helperBlock = `
|
|
40
|
+
<div class="studio-login-setup">
|
|
41
|
+
<p class="studio-login-setup-title">Finish setting up Caret</p>
|
|
42
|
+
<ol>
|
|
43
|
+
<li>Create a <code>.env</code> file in your project root</li>
|
|
44
|
+
<li>
|
|
45
|
+
Add this line:
|
|
46
|
+
<div class="studio-login-setup-snippet-row">
|
|
47
|
+
<code id="caret-env-snippet" class="studio-login-setup-snippet">CARET_EDIT_PASSWORD=your-password</code>
|
|
48
|
+
<button type="button" id="caret-copy-env" class="studio-login-setup-copy">Copy</button>
|
|
49
|
+
</div>
|
|
50
|
+
</li>
|
|
51
|
+
<li>Restart the dev server, then refresh this page</li>
|
|
52
|
+
</ol>
|
|
53
|
+
<a href="${docsUrl}" class="studio-login-setup-link">Read the setup guide →</a>
|
|
54
|
+
</div>`;
|
|
55
|
+
}
|
|
56
|
+
else if (devActive) {
|
|
57
|
+
helperBlock = `
|
|
58
|
+
<div class="studio-login-setup studio-login-setup--dev">
|
|
59
|
+
Signed in with a <strong>temporary dev password</strong> printed in your terminal. To set a permanent one, add <code>CARET_EDIT_PASSWORD</code> to a <code>.env</code> file and restart.
|
|
60
|
+
</div>`;
|
|
61
|
+
}
|
|
29
62
|
const favicon = faviconUrl
|
|
30
63
|
? `<link rel="icon" href="${escapeHtml(faviconUrl)}" />`
|
|
31
64
|
: "";
|
|
@@ -34,7 +67,7 @@ function renderLogin(opts) {
|
|
|
34
67
|
<head>
|
|
35
68
|
<meta charset="utf-8" />
|
|
36
69
|
<meta name="viewport" content="width=device-width,initial-scale=1" />
|
|
37
|
-
<title>${safeBrand} — Sign
|
|
70
|
+
<title>${safeBrand} — Sign in</title>
|
|
38
71
|
${favicon}
|
|
39
72
|
<link rel="stylesheet" href="${themeCssHref}" />
|
|
40
73
|
<link rel="stylesheet" href="${studioCssHref}" />
|
|
@@ -95,22 +128,35 @@ function renderLogin(opts) {
|
|
|
95
128
|
|
|
96
129
|
<button type="submit" class="studio-login-submit" ${hasPassword ? "" : "disabled"}>
|
|
97
130
|
<span class="studio-login-submit-content">
|
|
98
|
-
<span>Sign
|
|
131
|
+
<span>Sign in</span>
|
|
99
132
|
<svg class="studio-login-submit-arrow" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2" aria-hidden="true">
|
|
100
133
|
<path stroke-linecap="round" stroke-linejoin="round" d="M14 5l7 7m0 0l-7 7m7-7H3"/>
|
|
101
134
|
</svg>
|
|
102
135
|
</span>
|
|
103
136
|
</button>
|
|
104
137
|
</form>
|
|
138
|
+
${helperBlock}
|
|
105
139
|
|
|
106
140
|
<div class="studio-login-footer">
|
|
107
|
-
<a href="
|
|
141
|
+
<a href="${safeEditorHome}">← Back to site</a>
|
|
108
142
|
</div>
|
|
109
143
|
</div>
|
|
110
144
|
</div>
|
|
111
145
|
|
|
112
146
|
<script>
|
|
113
147
|
(function () {
|
|
148
|
+
var copyBtn = document.getElementById('caret-copy-env');
|
|
149
|
+
var snippet = document.getElementById('caret-env-snippet');
|
|
150
|
+
if (copyBtn && snippet && navigator.clipboard && navigator.clipboard.writeText) {
|
|
151
|
+
copyBtn.addEventListener('click', function () {
|
|
152
|
+
navigator.clipboard.writeText(snippet.textContent || '').then(function () {
|
|
153
|
+
var prev = copyBtn.textContent;
|
|
154
|
+
copyBtn.textContent = 'Copied';
|
|
155
|
+
setTimeout(function () { copyBtn.textContent = prev; }, 1500);
|
|
156
|
+
}).catch(function () {});
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
|
|
114
160
|
var form = document.getElementById('login-form');
|
|
115
161
|
var error = document.getElementById('login-error');
|
|
116
162
|
var errorText = document.getElementById('login-error-text');
|
|
@@ -138,6 +184,7 @@ function renderLogin(opts) {
|
|
|
138
184
|
})
|
|
139
185
|
.then(function (result) {
|
|
140
186
|
if (result.ok && result.data && result.data.redirect) {
|
|
187
|
+
try { sessionStorage.setItem('caret:welcome', '1'); } catch (e) {}
|
|
141
188
|
window.location.href = result.data.redirect;
|
|
142
189
|
return;
|
|
143
190
|
}
|
|
@@ -167,7 +214,10 @@ function html(content, status = 200, setCookie) {
|
|
|
167
214
|
}
|
|
168
215
|
export async function GET(context) {
|
|
169
216
|
const runtime = getRuntimeConfig();
|
|
170
|
-
|
|
217
|
+
// Default post-login landing is the live site so the inline editor activates
|
|
218
|
+
// immediately (Caret is inline-first). The Studio stays reachable at
|
|
219
|
+
// `${mountPath}/cms`, and a `?redirect=` param still overrides this.
|
|
220
|
+
const redirectTarget = sanitizeRedirect(context.url.searchParams.get("redirect"), runtime.editorHome);
|
|
171
221
|
if (isEditorAuthenticated(context)) {
|
|
172
222
|
return new Response(null, {
|
|
173
223
|
status: 302,
|
|
@@ -176,8 +226,10 @@ export async function GET(context) {
|
|
|
176
226
|
}
|
|
177
227
|
return html(renderLogin({
|
|
178
228
|
hasPassword: hasConfiguredEditorPassword(),
|
|
229
|
+
devActive: isDevEditorPasswordActive(),
|
|
179
230
|
apiBasePath: runtime.apiBasePath,
|
|
180
231
|
redirectTo: redirectTarget,
|
|
232
|
+
editorHome: runtime.editorHome,
|
|
181
233
|
brandName: runtime.brand.name,
|
|
182
234
|
brandLogo: runtime.brand.logo,
|
|
183
235
|
faviconUrl: runtime.brand.faviconUrl,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin.js","sourceRoot":"","sources":["../../../src/runtime/routes/admin.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"admin.js","sourceRoot":"","sources":["../../../src/runtime/routes/admin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-login.d.ts","sourceRoot":"","sources":["../../../src/runtime/routes/auth-login.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"auth-login.d.ts","sourceRoot":"","sources":["../../../src/runtime/routes/auth-login.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,QAAQ,CAAC;AAE/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAkCxC,wBAAsB,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,CAyEjE;AAED,wBAAsB,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,CAQ7C"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
export const prerender = false;
|
|
1
2
|
import { hasConfiguredEditorPassword, isEditorPasswordValid, issueEditorSessionCookie, } from "../auth/session.js";
|
|
2
3
|
import { sanitizeRedirect } from "../auth/cookie-utils.js";
|
|
3
4
|
import { checkLoginRateLimit, clearLoginAttempts, extractRateLimitKey, recordLoginFailure, } from "../auth/rate-limiter.js";
|
|
4
5
|
import { getRuntimeConfig } from "../config.js";
|
|
6
|
+
import { enforceContentLength, MAX_JSON_BODY_BYTES } from "./_helpers.js";
|
|
5
7
|
function redirect(pathname, setCookie) {
|
|
6
8
|
const headers = { Location: pathname };
|
|
7
9
|
if (setCookie)
|
|
@@ -20,6 +22,9 @@ export async function POST(context) {
|
|
|
20
22
|
if (!hasConfiguredEditorPassword()) {
|
|
21
23
|
return json({ error: "Editor password is not configured." }, 500);
|
|
22
24
|
}
|
|
25
|
+
const tooLarge = enforceContentLength(context.request, MAX_JSON_BODY_BYTES);
|
|
26
|
+
if (tooLarge)
|
|
27
|
+
return tooLarge;
|
|
23
28
|
const rateLimitKey = extractRateLimitKey(context.request);
|
|
24
29
|
const rateLimit = checkLoginRateLimit(rateLimitKey);
|
|
25
30
|
if (!rateLimit.allowed) {
|
|
@@ -48,15 +53,28 @@ export async function POST(context) {
|
|
|
48
53
|
? formData?.get("redirect")
|
|
49
54
|
: redirectTo;
|
|
50
55
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
56
|
+
// Default to the live site (inline editor) when no explicit redirect is given;
|
|
57
|
+
// `editorHome` (default "/") makes that landing page configurable.
|
|
58
|
+
const safeRedirect = sanitizeRedirect(redirectTo, runtime.editorHome);
|
|
59
|
+
// Password check + session minting both derive HMACs from the session
|
|
60
|
+
// secret, which throws in production when CARET_SESSION_SECRET is unset.
|
|
61
|
+
// Surface that as a configuration error instead of an unhandled 500.
|
|
62
|
+
let passwordValid;
|
|
63
|
+
let cookie;
|
|
64
|
+
try {
|
|
65
|
+
passwordValid = isEditorPasswordValid(password);
|
|
66
|
+
if (!passwordValid) {
|
|
67
|
+
recordLoginFailure(rateLimitKey);
|
|
68
|
+
if (wantsJsonResponse)
|
|
69
|
+
return json({ error: "Invalid password" }, 401);
|
|
70
|
+
return redirect(`${runtime.mountPath}?error=invalid`);
|
|
71
|
+
}
|
|
72
|
+
clearLoginAttempts(rateLimitKey);
|
|
73
|
+
cookie = issueEditorSessionCookie("/", context.request);
|
|
74
|
+
}
|
|
75
|
+
catch (err) {
|
|
76
|
+
return json({ error: err.message }, 500);
|
|
57
77
|
}
|
|
58
|
-
clearLoginAttempts(rateLimitKey);
|
|
59
|
-
const cookie = issueEditorSessionCookie("/", context.request);
|
|
60
78
|
if (wantsJsonResponse) {
|
|
61
79
|
return json({ ok: true, redirect: safeRedirect }, 200, { "Set-Cookie": cookie });
|
|
62
80
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-login.js","sourceRoot":"","sources":["../../../src/runtime/routes/auth-login.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"auth-login.js","sourceRoot":"","sources":["../../../src/runtime/routes/auth-login.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-logout.d.ts","sourceRoot":"","sources":["../../../src/runtime/routes/auth-logout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"auth-logout.d.ts","sourceRoot":"","sources":["../../../src/runtime/routes/auth-logout.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,QAAQ,CAAC;AAE/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAwBxC,wBAAsB,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,CA4BjE;AAED,wBAAsB,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,CAQ7C"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
export const prerender = false;
|
|
1
2
|
import { clearEditorSessionCookie } from "../auth/session.js";
|
|
2
3
|
import { sanitizeRedirect } from "../auth/cookie-utils.js";
|
|
3
4
|
import { getRuntimeConfig } from "../config.js";
|
|
5
|
+
import { enforceContentLength, MAX_JSON_BODY_BYTES } from "./_helpers.js";
|
|
4
6
|
function redirect(pathname, setCookie) {
|
|
5
7
|
const headers = { Location: pathname };
|
|
6
8
|
if (setCookie)
|
|
@@ -16,6 +18,9 @@ function json(body, status = 200, setCookie) {
|
|
|
16
18
|
return new Response(JSON.stringify(body), { status, headers });
|
|
17
19
|
}
|
|
18
20
|
export async function POST(context) {
|
|
21
|
+
const tooLarge = enforceContentLength(context.request, MAX_JSON_BODY_BYTES);
|
|
22
|
+
if (tooLarge)
|
|
23
|
+
return tooLarge;
|
|
19
24
|
const runtime = getRuntimeConfig();
|
|
20
25
|
const contentType = context.request.headers.get("content-type") ?? "";
|
|
21
26
|
const isJson = contentType.includes("application/json");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-logout.js","sourceRoot":"","sources":["../../../src/runtime/routes/auth-logout.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"auth-logout.js","sourceRoot":"","sources":["../../../src/runtime/routes/auth-logout.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-session.d.ts","sourceRoot":"","sources":["../../../src/runtime/routes/auth-session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAIxC,wBAAsB,GAAG,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,CAIhE"}
|
|
1
|
+
{"version":3,"file":"auth-session.d.ts","sourceRoot":"","sources":["../../../src/runtime/routes/auth-session.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,QAAQ,CAAC;AAE/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAIxC,wBAAsB,GAAG,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,CAIhE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-session.js","sourceRoot":"","sources":["../../../src/runtime/routes/auth-session.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"auth-session.js","sourceRoot":"","sources":["../../../src/runtime/routes/auth-session.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC;AAG/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAErC,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,OAAmB;IAC3C,OAAO,IAAI,CAAC;QACV,aAAa,EAAE,qBAAqB,CAAC,OAAO,CAAC;KAC9C,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collection-list.d.ts","sourceRoot":"","sources":["../../../src/runtime/routes/collection-list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAexC,wBAAsB,GAAG,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,CAqahE"}
|
|
1
|
+
{"version":3,"file":"collection-list.d.ts","sourceRoot":"","sources":["../../../src/runtime/routes/collection-list.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,QAAQ,CAAC;AAE/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAexC,wBAAsB,GAAG,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,CAqahE"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
export const prerender = false;
|
|
1
2
|
import { isEditorAuthenticated } from "../auth/session.js";
|
|
2
3
|
import { getRuntimeConfig } from "../config.js";
|
|
3
|
-
import {
|
|
4
|
+
import { resolveAdapter } from "./_helpers.js";
|
|
4
5
|
import { escapeHtml, htmlResponse, redirectResponse, renderStudioPage, } from "../views/studio-layout.js";
|
|
5
6
|
function humanize(name) {
|
|
6
7
|
return name.replace(/[-_]+/g, " ").replace(/\b\w/g, (c) => c.toUpperCase());
|
|
@@ -15,7 +16,7 @@ export async function GET(context) {
|
|
|
15
16
|
if (!collection) {
|
|
16
17
|
return redirectResponse(`${runtime.mountPath}/cms`);
|
|
17
18
|
}
|
|
18
|
-
const adapter =
|
|
19
|
+
const adapter = await resolveAdapter();
|
|
19
20
|
const known = await adapter.discoverCollections();
|
|
20
21
|
if (!known.includes(collection)) {
|
|
21
22
|
return redirectResponse(`${runtime.mountPath}/cms`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collection-list.js","sourceRoot":"","sources":["../../../src/runtime/routes/collection-list.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"collection-list.js","sourceRoot":"","sources":["../../../src/runtime/routes/collection-list.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC;AAG/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EACL,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,2BAA2B,CAAC;AAEnC,SAAS,QAAQ,CAAC,IAAY;IAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,OAAmB;IAC3C,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;IACnC,MAAM,UAAU,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;IAChE,MAAM,aAAa,GAAG,GAAG,OAAO,CAAC,SAAS,aAAa,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;IAElG,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;QACpC,OAAO,gBAAgB,CAAC,aAAa,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,gBAAgB,CAAC,GAAG,OAAO,CAAC,SAAS,MAAM,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,cAAc,EAAE,CAAC;IACvC,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAClD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAChC,OAAO,gBAAgB,CAAC,GAAG,OAAO,CAAC,SAAS,MAAM,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;IACnC,MAAM,cAAc,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IAE9C,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmEnB,CAAC;IAEF,MAAM,IAAI,GAAG,4GAA4G,cAAc;;;kHAGvB,UAAU,CAAC,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAoD1H,CAAC;IAER,MAAM,YAAY,GAAG;uBACA,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;gBACjC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC;kBACjC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAkQ3C,CAAC;IAEP,OAAO,YAAY,CACjB,gBAAgB,CAAC;QACf,OAAO;QACP,KAAK,EAAE,KAAK;QACZ,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;QACvB,IAAI;QACJ,WAAW;QACX,YAAY;KACb,CAAC,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collections-metadata.d.ts","sourceRoot":"","sources":["../../../src/runtime/routes/collections-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAIxC,wBAAsB,GAAG,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"collections-metadata.d.ts","sourceRoot":"","sources":["../../../src/runtime/routes/collections-metadata.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,QAAQ,CAAC;AAE/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAIxC,wBAAsB,GAAG,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,CAgBhE"}
|
|
@@ -1,17 +1,20 @@
|
|
|
1
|
+
export const prerender = false;
|
|
1
2
|
import { isEditorAuthenticated } from "../auth/session.js";
|
|
2
|
-
import { json,
|
|
3
|
+
import { json, resolveAdapter } from "./_helpers.js";
|
|
3
4
|
export async function GET(context) {
|
|
4
5
|
if (!isEditorAuthenticated(context)) {
|
|
5
6
|
return json({ error: "Unauthorized" }, 401);
|
|
6
7
|
}
|
|
7
|
-
const adapter =
|
|
8
|
+
const adapter = await resolveAdapter();
|
|
8
9
|
try {
|
|
9
10
|
const collections = await adapter.listCollectionMetadata();
|
|
10
11
|
return json({ collections });
|
|
11
12
|
}
|
|
12
13
|
catch (error) {
|
|
13
|
-
|
|
14
|
-
|
|
14
|
+
// Don't echo the raw error to the client — it can carry filesystem paths
|
|
15
|
+
// or other internal detail. Log it server-side, return an opaque message.
|
|
16
|
+
console.error("[caretcms] Failed to load collection metadata:", error);
|
|
17
|
+
return json({ error: "Failed to load collections" }, 500);
|
|
15
18
|
}
|
|
16
19
|
}
|
|
17
20
|
//# sourceMappingURL=collections-metadata.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collections-metadata.js","sourceRoot":"","sources":["../../../src/runtime/routes/collections-metadata.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"collections-metadata.js","sourceRoot":"","sources":["../../../src/runtime/routes/collections-metadata.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC;AAG/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAErD,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,OAAmB;IAC3C,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,GAAG,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,cAAc,EAAE,CAAC;IAEvC,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,sBAAsB,EAAE,CAAC;QAC3D,OAAO,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,yEAAyE;QACzE,0EAA0E;QAC1E,OAAO,CAAC,KAAK,CAAC,gDAAgD,EAAE,KAAK,CAAC,CAAC;QACvE,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,4BAA4B,EAAE,EAAE,GAAG,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare const prerender = false;
|
|
2
|
+
import type { APIContext } from "astro";
|
|
3
|
+
/**
|
|
4
|
+
* GET /api/cms/draft — report whether the current editor has unpublished drafts.
|
|
5
|
+
*/
|
|
6
|
+
export declare function GET(context: APIContext): Promise<Response>;
|
|
7
|
+
/**
|
|
8
|
+
* DELETE /api/cms/draft — discard the current editor's draft(s) without
|
|
9
|
+
* publishing. Optional `?collection=&id=` query scopes it to one entry or
|
|
10
|
+
* collection; absent, the editor's whole draft is dropped.
|
|
11
|
+
*/
|
|
12
|
+
export declare function DELETE(context: APIContext): Promise<Response>;
|
|
13
|
+
//# sourceMappingURL=draft.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"draft.d.ts","sourceRoot":"","sources":["../../../src/runtime/routes/draft.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,QAAQ,CAAC;AAE/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAMxC;;GAEG;AACH,wBAAsB,GAAG,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,CAYhE;AAED;;;;GAIG;AACH,wBAAsB,MAAM,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,CAyBnE"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
export const prerender = false;
|
|
2
|
+
import { isEditorAuthenticated, getEditorId } from "../auth/session.js";
|
|
3
|
+
import { getRuntimeServices } from "../providers.js";
|
|
4
|
+
import { countOverlayDrafts, discardOverlay } from "../publish.js";
|
|
5
|
+
import { json, enforceCsrfHeader } from "./_helpers.js";
|
|
6
|
+
/**
|
|
7
|
+
* GET /api/cms/draft — report whether the current editor has unpublished drafts.
|
|
8
|
+
*/
|
|
9
|
+
export async function GET(context) {
|
|
10
|
+
if (!isEditorAuthenticated(context))
|
|
11
|
+
return json({ error: "Unauthorized" }, 401);
|
|
12
|
+
const editorId = getEditorId(context);
|
|
13
|
+
if (!editorId)
|
|
14
|
+
return json({ hasDrafts: false, count: 0 });
|
|
15
|
+
const { adapter: base } = await getRuntimeServices();
|
|
16
|
+
if (!base.makeEditorOverlay)
|
|
17
|
+
return json({ hasDrafts: false, count: 0 });
|
|
18
|
+
const overlay = await base.makeEditorOverlay(editorId);
|
|
19
|
+
const count = await countOverlayDrafts(overlay);
|
|
20
|
+
return json({ hasDrafts: count > 0, count });
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* DELETE /api/cms/draft — discard the current editor's draft(s) without
|
|
24
|
+
* publishing. Optional `?collection=&id=` query scopes it to one entry or
|
|
25
|
+
* collection; absent, the editor's whole draft is dropped.
|
|
26
|
+
*/
|
|
27
|
+
export async function DELETE(context) {
|
|
28
|
+
const csrf = enforceCsrfHeader(context.request);
|
|
29
|
+
if (csrf)
|
|
30
|
+
return csrf;
|
|
31
|
+
if (!isEditorAuthenticated(context))
|
|
32
|
+
return json({ error: "Unauthorized" }, 401);
|
|
33
|
+
const editorId = getEditorId(context);
|
|
34
|
+
if (!editorId)
|
|
35
|
+
return json({ error: "No editor draft session" }, 400);
|
|
36
|
+
const url = new URL(context.request.url);
|
|
37
|
+
const scope = {};
|
|
38
|
+
const collection = url.searchParams.get("collection");
|
|
39
|
+
const id = url.searchParams.get("id");
|
|
40
|
+
if (collection)
|
|
41
|
+
scope.collection = collection;
|
|
42
|
+
if (id)
|
|
43
|
+
scope.id = id;
|
|
44
|
+
if (scope.id && !scope.collection) {
|
|
45
|
+
return json({ error: "id requires a collection" }, 400);
|
|
46
|
+
}
|
|
47
|
+
const { adapter: base } = await getRuntimeServices();
|
|
48
|
+
if (!base.makeEditorOverlay) {
|
|
49
|
+
return json({ error: "Drafts are not supported by the configured storage adapter" }, 400);
|
|
50
|
+
}
|
|
51
|
+
const overlay = await base.makeEditorOverlay(editorId);
|
|
52
|
+
const cleared = await discardOverlay(overlay, scope);
|
|
53
|
+
return json({ ok: true, cleared });
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=draft.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"draft.js","sourceRoot":"","sources":["../../../src/runtime/routes/draft.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor-assets.d.ts","sourceRoot":"","sources":["../../../src/runtime/routes/editor-assets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AA0DxC,wBAAsB,GAAG,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,CA2BhE"}
|
|
1
|
+
{"version":3,"file":"editor-assets.d.ts","sourceRoot":"","sources":["../../../src/runtime/routes/editor-assets.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,QAAQ,CAAC;AAE/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AA0DxC,wBAAsB,GAAG,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,CA2BhE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor-assets.js","sourceRoot":"","sources":["../../../src/runtime/routes/editor-assets.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"editor-assets.js","sourceRoot":"","sources":["../../../src/runtime/routes/editor-assets.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entries.d.ts","sourceRoot":"","sources":["../../../src/runtime/routes/entries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AA8DxC,wBAAsB,GAAG,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,CAyEhE"}
|
|
1
|
+
{"version":3,"file":"entries.d.ts","sourceRoot":"","sources":["../../../src/runtime/routes/entries.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,QAAQ,CAAC;AAE/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AA8DxC,wBAAsB,GAAG,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,CAyEhE"}
|