emdash 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/dist/{adapters-N6BF7RCD.d.mts → adapters-BLMa4JGD.d.mts} +1 -1
  2. package/dist/{adapters-N6BF7RCD.d.mts.map → adapters-BLMa4JGD.d.mts.map} +1 -1
  3. package/dist/{apply-wmVEOSbR.mjs → apply-Bqoekfbe.mjs} +6 -6
  4. package/dist/{apply-wmVEOSbR.mjs.map → apply-Bqoekfbe.mjs.map} +1 -1
  5. package/dist/astro/index.d.mts +25 -11
  6. package/dist/astro/index.d.mts.map +1 -1
  7. package/dist/astro/index.mjs +31 -19
  8. package/dist/astro/index.mjs.map +1 -1
  9. package/dist/astro/middleware/auth.d.mts +5 -5
  10. package/dist/astro/middleware/auth.mjs +1 -1
  11. package/dist/astro/middleware/redirect.mjs +2 -2
  12. package/dist/astro/middleware/setup.mjs +1 -1
  13. package/dist/astro/middleware.mjs +20 -16
  14. package/dist/astro/middleware.mjs.map +1 -1
  15. package/dist/astro/types.d.mts +9 -9
  16. package/dist/astro/types.d.mts.map +1 -1
  17. package/dist/{byline-1WQPlISL.mjs → byline-BGj9p9Ht.mjs} +3 -3
  18. package/dist/{byline-1WQPlISL.mjs.map → byline-BGj9p9Ht.mjs.map} +1 -1
  19. package/dist/{bylines-BYdTYmia.mjs → bylines-BihaoIDY.mjs} +5 -5
  20. package/dist/{bylines-BYdTYmia.mjs.map → bylines-BihaoIDY.mjs.map} +1 -1
  21. package/dist/cli/index.mjs +8 -8
  22. package/dist/client/cf-access.d.mts +1 -1
  23. package/dist/client/index.d.mts +1 -1
  24. package/dist/client/index.mjs +1 -1
  25. package/dist/{content-BmXndhdi.mjs → content-BsBoyj8G.mjs} +20 -3
  26. package/dist/content-BsBoyj8G.mjs.map +1 -0
  27. package/dist/db/index.d.mts +3 -3
  28. package/dist/db/index.mjs +2 -2
  29. package/dist/db/libsql.d.mts +1 -1
  30. package/dist/db/postgres.d.mts +1 -1
  31. package/dist/db/sqlite.d.mts +1 -1
  32. package/dist/{dialect-helpers-B9uSp2GJ.mjs → dialect-helpers-DhTzaUxP.mjs} +4 -1
  33. package/dist/dialect-helpers-DhTzaUxP.mjs.map +1 -0
  34. package/dist/{index-UHEVQMus.d.mts → index-Cff7AimE.d.mts} +40 -16
  35. package/dist/index-Cff7AimE.d.mts.map +1 -0
  36. package/dist/index.d.mts +11 -11
  37. package/dist/index.mjs +12 -12
  38. package/dist/{loader-CHb2v0jm.mjs → loader-BmYdf3Dr.mjs} +4 -2
  39. package/dist/loader-BmYdf3Dr.mjs.map +1 -0
  40. package/dist/media/index.d.mts +1 -1
  41. package/dist/media/local-runtime.d.mts +7 -7
  42. package/dist/{mode-CYeM2rPt.mjs → mode-C2EzN1uE.mjs} +1 -1
  43. package/dist/{mode-CYeM2rPt.mjs.map → mode-C2EzN1uE.mjs.map} +1 -1
  44. package/dist/page/index.d.mts +1 -1
  45. package/dist/{placeholder-bOx1xCTY.d.mts → placeholder-SvFCKbz_.d.mts} +1 -1
  46. package/dist/{placeholder-bOx1xCTY.d.mts.map → placeholder-SvFCKbz_.d.mts.map} +1 -1
  47. package/dist/plugins/adapt-sandbox-entry.d.mts +5 -5
  48. package/dist/{query-5Hcv_5ER.mjs → query-sesiOndV.mjs} +6 -6
  49. package/dist/{query-5Hcv_5ER.mjs.map → query-sesiOndV.mjs.map} +1 -1
  50. package/dist/{redirect-DIfIni3r.mjs → redirect-DUAk-Yl_.mjs} +9 -2
  51. package/dist/redirect-DUAk-Yl_.mjs.map +1 -0
  52. package/dist/{registry-1EvbAfsC.mjs → registry-DU18yVo0.mjs} +9 -3
  53. package/dist/registry-DU18yVo0.mjs.map +1 -0
  54. package/dist/{runner-BoN0-FPi.mjs → runner-Biufrii2.mjs} +3 -3
  55. package/dist/{runner-BoN0-FPi.mjs.map → runner-Biufrii2.mjs.map} +1 -1
  56. package/dist/{runner-DTqkzOzc.d.mts → runner-EAtf0ZIe.d.mts} +2 -2
  57. package/dist/{runner-DTqkzOzc.d.mts.map → runner-EAtf0ZIe.d.mts.map} +1 -1
  58. package/dist/runtime.d.mts +6 -6
  59. package/dist/runtime.mjs +2 -2
  60. package/dist/{search-BsYMed12.mjs → search-BXB-jfu2.mjs} +13 -11
  61. package/dist/search-BXB-jfu2.mjs.map +1 -0
  62. package/dist/seed/index.d.mts +2 -2
  63. package/dist/seed/index.mjs +7 -7
  64. package/dist/seo/index.d.mts +1 -1
  65. package/dist/storage/local.d.mts +1 -1
  66. package/dist/storage/s3.d.mts +11 -3
  67. package/dist/storage/s3.d.mts.map +1 -1
  68. package/dist/storage/s3.mjs +75 -14
  69. package/dist/storage/s3.mjs.map +1 -1
  70. package/dist/{transport-COOs9GSE.d.mts → transport-BFGblqwG.d.mts} +1 -1
  71. package/dist/{transport-COOs9GSE.d.mts.map → transport-BFGblqwG.d.mts.map} +1 -1
  72. package/dist/{transport-Bl8cTdYt.mjs → transport-yxiQsi8I.mjs} +1 -1
  73. package/dist/{transport-Bl8cTdYt.mjs.map → transport-yxiQsi8I.mjs.map} +1 -1
  74. package/dist/{types-CIsTnQvJ.d.mts → types-BbsYgi_R.d.mts} +1 -1
  75. package/dist/{types-CIsTnQvJ.d.mts.map → types-BbsYgi_R.d.mts.map} +1 -1
  76. package/dist/types-Bec-r_3_.mjs.map +1 -1
  77. package/dist/{types-BljtYPSd.d.mts → types-C1-PVaS_.d.mts} +14 -6
  78. package/dist/types-C1-PVaS_.d.mts.map +1 -0
  79. package/dist/{types-6dqxBqsH.d.mts → types-CaKte3hR.d.mts} +102 -4
  80. package/dist/types-CaKte3hR.d.mts.map +1 -0
  81. package/dist/{types-CcreFIIH.d.mts → types-DPfzHnjW.d.mts} +1 -1
  82. package/dist/{types-CcreFIIH.d.mts.map → types-DPfzHnjW.d.mts.map} +1 -1
  83. package/dist/{types-7-UjSEyB.d.mts → types-DRjfYOEv.d.mts} +1 -1
  84. package/dist/{types-7-UjSEyB.d.mts.map → types-DRjfYOEv.d.mts.map} +1 -1
  85. package/dist/{validate-CqRJb_xU.mjs → validate-VPnKoIzW.mjs} +11 -11
  86. package/dist/{validate-CqRJb_xU.mjs.map → validate-VPnKoIzW.mjs.map} +1 -1
  87. package/dist/{validate-B7KP7VLM.d.mts → validate-bfg9OR6N.d.mts} +4 -4
  88. package/dist/{validate-B7KP7VLM.d.mts.map → validate-bfg9OR6N.d.mts.map} +1 -1
  89. package/dist/version-REAapfsU.mjs +7 -0
  90. package/dist/version-REAapfsU.mjs.map +1 -0
  91. package/package.json +5 -5
  92. package/src/api/handlers/redirects.ts +95 -3
  93. package/src/api/schemas/redirects.ts +1 -0
  94. package/src/astro/integration/vite-config.ts +7 -4
  95. package/src/astro/routes/admin.astro +2 -2
  96. package/src/astro/routes/api/comments/[collection]/[contentId]/index.ts +2 -0
  97. package/src/astro/routes/api/import/wordpress/rewrite-urls.ts +2 -0
  98. package/src/astro/routes/api/manifest.ts +3 -1
  99. package/src/astro/storage/adapters.ts +19 -5
  100. package/src/astro/storage/types.ts +12 -4
  101. package/src/astro/types.ts +1 -0
  102. package/src/bylines/index.ts +2 -2
  103. package/src/database/dialect-helpers.ts +3 -0
  104. package/src/database/repositories/content.ts +5 -0
  105. package/src/database/repositories/redirect.ts +13 -0
  106. package/src/database/validate.ts +10 -10
  107. package/src/emdash-runtime.ts +5 -1
  108. package/src/index.ts +1 -0
  109. package/src/loader.ts +2 -0
  110. package/src/menus/index.ts +4 -0
  111. package/src/redirects/loops.ts +318 -0
  112. package/src/schema/registry.ts +3 -0
  113. package/src/search/fts-manager.ts +4 -0
  114. package/src/storage/s3.ts +94 -25
  115. package/src/storage/types.ts +13 -5
  116. package/src/utils/slugify.ts +11 -0
  117. package/src/version.ts +12 -0
  118. package/dist/content-BmXndhdi.mjs.map +0 -1
  119. package/dist/dialect-helpers-B9uSp2GJ.mjs.map +0 -1
  120. package/dist/index-UHEVQMus.d.mts.map +0 -1
  121. package/dist/loader-CHb2v0jm.mjs.map +0 -1
  122. package/dist/redirect-DIfIni3r.mjs.map +0 -1
  123. package/dist/registry-1EvbAfsC.mjs.map +0 -1
  124. package/dist/search-BsYMed12.mjs.map +0 -1
  125. package/dist/types-6dqxBqsH.d.mts.map +0 -1
  126. package/dist/types-BljtYPSd.d.mts.map +0 -1
@@ -1,4 +1,4 @@
1
- import { t as Database } from "./types-7-UjSEyB.mjs";
1
+ import { t as Database } from "./types-DRjfYOEv.mjs";
2
2
  import { Kysely } from "kysely";
3
3
 
4
4
  //#region src/database/migrations/runner.d.ts
@@ -24,4 +24,4 @@ declare function rollbackMigration(db: Kysely<Database>): Promise<{
24
24
  }>;
25
25
  //#endregion
26
26
  export { runMigrations as i, getMigrationStatus as n, rollbackMigration as r, MigrationStatus as t };
27
- //# sourceMappingURL=runner-DTqkzOzc.d.mts.map
27
+ //# sourceMappingURL=runner-EAtf0ZIe.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runner-DTqkzOzc.d.mts","names":[],"sources":["../src/database/migrations/runner.ts"],"mappings":";;;;UAuFiB,eAAA;EAChB,OAAA;EACA,OAAA;AAAA;;AAUD;;iBAAsB,kBAAA,CAAmB,EAAA,EAAI,MAAA,CAAO,QAAA,IAAY,OAAA,CAAQ,eAAA;;;;iBA2BlD,aAAA,CAAc,EAAA,EAAI,MAAA,CAAO,QAAA,IAAY,OAAA;EAAU,OAAA;AAAA;;;;iBAgC/C,iBAAA,CACrB,EAAA,EAAI,MAAA,CAAO,QAAA,IACT,OAAA;EAAU,UAAA;AAAA"}
1
+ {"version":3,"file":"runner-EAtf0ZIe.d.mts","names":[],"sources":["../src/database/migrations/runner.ts"],"mappings":";;;;UAuFiB,eAAA;EAChB,OAAA;EACA,OAAA;AAAA;;AAUD;;iBAAsB,kBAAA,CAAmB,EAAA,EAAI,MAAA,CAAO,QAAA,IAAY,OAAA,CAAQ,eAAA;;;;iBA2BlD,aAAA,CAAc,EAAA,EAAI,MAAA,CAAO,QAAA,IAAY,OAAA;EAAU,OAAA;AAAA;;;;iBAgC/C,iBAAA,CACrB,EAAA,EAAI,MAAA,CAAO,QAAA,IACT,OAAA;EAAU,UAAA;AAAA"}
@@ -1,9 +1,9 @@
1
- import { f as MediaProvider } from "./placeholder-bOx1xCTY.mjs";
2
- import "./types-7-UjSEyB.mjs";
3
- import { Fn as getDb, Mn as EntryData, Nn as EntryFilter, Pn as emdashLoader, jn as CollectionFilter } from "./index-UHEVQMus.mjs";
4
- import "./runner-DTqkzOzc.mjs";
5
- import "./types-6dqxBqsH.mjs";
6
- import "./validate-B7KP7VLM.mjs";
1
+ import { f as MediaProvider } from "./placeholder-SvFCKbz_.mjs";
2
+ import "./types-DRjfYOEv.mjs";
3
+ import { Fn as getDb, Mn as EntryData, Nn as EntryFilter, Pn as emdashLoader, jn as CollectionFilter } from "./index-Cff7AimE.mjs";
4
+ import "./runner-EAtf0ZIe.mjs";
5
+ import "./types-CaKte3hR.mjs";
6
+ import "./validate-bfg9OR6N.mjs";
7
7
 
8
8
  //#region src/media/provider-loader.d.ts
9
9
  /**
package/dist/runtime.mjs CHANGED
@@ -1,7 +1,7 @@
1
- import "./dialect-helpers-B9uSp2GJ.mjs";
1
+ import "./dialect-helpers-DhTzaUxP.mjs";
2
2
  import "./base64-MBPo9ozB.mjs";
3
3
  import "./types-CMMN0pNg.mjs";
4
- import { n as getDb, t as emdashLoader } from "./loader-CHb2v0jm.mjs";
4
+ import { n as getDb, t as emdashLoader } from "./loader-BmYdf3Dr.mjs";
5
5
 
6
6
  //#region src/media/provider-loader.ts
7
7
  let virtualMediaProviders;
@@ -1,15 +1,15 @@
1
- import { o as jsonExtractExpr } from "./dialect-helpers-B9uSp2GJ.mjs";
2
- import { n as validateJsonFieldName, r as validatePluginIdentifier, t as validateIdentifier } from "./validate-CqRJb_xU.mjs";
3
- import { i as slugify, r as RevisionRepository, t as ContentRepository } from "./content-BmXndhdi.mjs";
1
+ import { n as validateJsonFieldName, r as validatePluginIdentifier, t as validateIdentifier } from "./validate-VPnKoIzW.mjs";
2
+ import { o as jsonExtractExpr } from "./dialect-helpers-DhTzaUxP.mjs";
3
+ import { a as slugify, r as RevisionRepository, t as ContentRepository } from "./content-BsBoyj8G.mjs";
4
4
  import { r as encodeBase64, t as decodeBase64 } from "./base64-MBPo9ozB.mjs";
5
5
  import { n as decodeCursor, r as encodeCursor, t as EmDashValidationError } from "./types-CMMN0pNg.mjs";
6
6
  import { t as MediaRepository } from "./media-DqHVh136.mjs";
7
- import { a as stripCredentialHeaders, f as OptionsRepository, i as ssrfSafeFetch, o as validateExternalUrl, r as SsrfError } from "./apply-wmVEOSbR.mjs";
8
- import { a as withTransaction, i as FTSManager, n as SchemaRegistry } from "./registry-1EvbAfsC.mjs";
9
- import { t as RedirectRepository } from "./redirect-DIfIni3r.mjs";
10
- import { n as SQL_BATCH_SIZE, r as chunks, t as BylineRepository } from "./byline-1WQPlISL.mjs";
7
+ import { a as stripCredentialHeaders, f as OptionsRepository, i as ssrfSafeFetch, o as validateExternalUrl, r as SsrfError } from "./apply-Bqoekfbe.mjs";
8
+ import { a as withTransaction, i as FTSManager, n as SchemaRegistry } from "./registry-DU18yVo0.mjs";
9
+ import { t as RedirectRepository } from "./redirect-DUAk-Yl_.mjs";
10
+ import { n as SQL_BATCH_SIZE, r as chunks, t as BylineRepository } from "./byline-BGj9p9Ht.mjs";
11
11
  import { r as isI18nEnabled } from "./config-Cq8H0SfX.mjs";
12
- import { n as getDb } from "./loader-CHb2v0jm.mjs";
12
+ import { n as getDb } from "./loader-BmYdf3Dr.mjs";
13
13
  import { i as pluginManifestSchema } from "./manifest-schema-CuMio1A9.mjs";
14
14
  import { t as generatePreviewToken } from "./tokens-DrB-W6Q-.mjs";
15
15
  import { sql } from "kysely";
@@ -3662,7 +3662,8 @@ const redirectSchema = z$1.object({
3662
3662
  }).meta({ id: "Redirect" });
3663
3663
  const redirectListResponseSchema = z$1.object({
3664
3664
  items: z$1.array(redirectSchema),
3665
- nextCursor: z$1.string().optional()
3665
+ nextCursor: z$1.string().optional(),
3666
+ loopRedirectIds: z$1.array(z$1.string()).optional()
3666
3667
  }).meta({ id: "RedirectListResponse" });
3667
3668
  const notFoundEntrySchema = z$1.object({
3668
3669
  id: z$1.string(),
@@ -8762,6 +8763,7 @@ function interpolateUrlPattern(pattern, slug, id) {
8762
8763
  async function resolveContentUrl(collection, entryId, db, urlPatterns) {
8763
8764
  if (!entryId) return null;
8764
8765
  try {
8766
+ validateIdentifier(collection, "menu item collection");
8765
8767
  const row = (await sql`
8766
8768
  SELECT slug FROM ${sql.ref(`ec_${collection}`)} WHERE id = ${entryId} LIMIT 1
8767
8769
  `.execute(db)).rows[0];
@@ -8936,7 +8938,7 @@ async function getTermsForEntries(collection, entryIds, taxonomyName) {
8936
8938
  * Get entries by term (wraps getEmDashCollection)
8937
8939
  */
8938
8940
  async function getEntriesByTerm(collection, taxonomyName, termSlug) {
8939
- const { getEmDashCollection } = await import("./query-5Hcv_5ER.mjs").then((n) => n.a);
8941
+ const { getEmDashCollection } = await import("./query-sesiOndV.mjs").then((n) => n.a);
8940
8942
  const { entries } = await getEmDashCollection(collection, { where: { [taxonomyName]: termSlug } });
8941
8943
  return entries;
8942
8944
  }
@@ -9445,4 +9447,4 @@ function extractSearchableFields(entry, fields) {
9445
9447
 
9446
9448
  //#endregion
9447
9449
  export { sanitizeHeadersForSandbox as $, getAllSources as A, handleContentGet as At, createNoopSandboxRunner as B, handleContentUnschedule as Bt, isPreviewRequest as C, handleContentCompare as Ct, parseWxrDate as D, handleContentDelete as Dt, wordpressRestSource as E, handleContentCreate as Et, registerSource as F, handleContentPublish as Ft, DEV_CONSOLE_EMAIL_PLUGIN_ID as G, image as Gt, createPluginManager as H, validateRev as Ht, importReusableBlocksAsSections as I, handleContentRestore as It, HookPipeline as J, devConsoleEmailDeliver as K, isStandardPluginDefinition as L, handleContentSchedule as Lt, getSource as M, handleContentList as Mt, getUrlSources as N, handleContentListTrashed as Nt, wxrSource as O, handleContentDiscardDraft as Ot, probeUrl as P, handleContentPermanentDelete as Pt, extractRequestMeta as Q, NoopSandboxRunner as R, handleContentTranslations as Rt, getPreviewToken as S, hashString as St, getPreviewUrl as T, handleContentCountTrashed as Tt, PluginRouteError as U, portableText as Ut, PluginManager as V, handleContentUpdate as Vt, PluginRouteRegistry as W, reference as Wt, resolveExclusiveHooks as X, createHookPipeline as Y, CronExecutor as Z, getTermsForEntries as _, handleRevisionGet as _t, search as a, isSafeHref as at, getCommentCount as b, generateManifest as bt, getWidgetArea as c, getSection as ct, getEntriesByTerm as d, getCollectionInfo as dt, definePlugin as et, getEntryTerms as f, handleMediaCreate as ft, getTerm as g, handleMediaUpdate as gt, getTaxonomyTerms as h, handleMediaList as ht, getSuggestions as i, prosemirrorToPortableText as it, getFileSources as j, handleContentGetIncludingTrashed as jt, clearSources as k, handleContentDuplicate as kt, getWidgetAreas as l, getSections as lt, getTaxonomyDefs as m, handleMediaGet as mt, extractSearchableFields as n, parseWxrString as nt, searchCollection as o, sanitizeHref as ot, getTaxonomyDef as p, handleMediaDelete as pt, EmailPipeline as q, getSearchStats as r, portableTextToProsemirror as rt, searchWithDb as s, loadBundleFromR2 as st, extractPlainText as t, parseWxr as tt, getWidgetComponents as u, PluginStateRepository as ut, getMenu as v, handleRevisionList as vt, buildPreviewUrl as w, handleContentCountScheduled as wt, getComments as x, computeContentHash as xt, getMenus as y, handleRevisionRestore as yt, SandboxNotAvailableError as z, handleContentUnpublish as zt };
9448
- //# sourceMappingURL=search-BsYMed12.mjs.map
9450
+ //# sourceMappingURL=search-BXB-jfu2.mjs.map