@plumix/core 0.5.0 → 0.6.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 (76) hide show
  1. package/dist/context/app.d.ts +12 -0
  2. package/dist/context/app.d.ts.map +1 -1
  3. package/dist/context/app.js +10 -4
  4. package/dist/context/app.js.map +1 -1
  5. package/dist/context/memo.d.ts +22 -0
  6. package/dist/context/memo.d.ts.map +1 -0
  7. package/dist/context/memo.js +27 -0
  8. package/dist/context/memo.js.map +1 -0
  9. package/dist/context/traced-slots.d.ts +17 -0
  10. package/dist/context/traced-slots.d.ts.map +1 -0
  11. package/dist/context/traced-slots.js +57 -0
  12. package/dist/context/traced-slots.js.map +1 -0
  13. package/dist/entries/read-service.d.ts +6 -0
  14. package/dist/entries/read-service.d.ts.map +1 -1
  15. package/dist/entries/read-service.js +14 -0
  16. package/dist/entries/read-service.js.map +1 -1
  17. package/dist/index.d.ts +3 -0
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +2 -0
  20. package/dist/index.js.map +1 -1
  21. package/dist/plugin/fields/entry.d.ts +8 -0
  22. package/dist/plugin/fields/entry.d.ts.map +1 -1
  23. package/dist/plugin/fields/entry.js.map +1 -1
  24. package/dist/plugin/lookup.d.ts +4 -9
  25. package/dist/plugin/lookup.d.ts.map +1 -1
  26. package/dist/plugin/manifest.d.ts +11 -32
  27. package/dist/plugin/manifest.d.ts.map +1 -1
  28. package/dist/plugin/manifest.js.map +1 -1
  29. package/dist/plugin/setup-context.d.ts +5 -0
  30. package/dist/plugin/setup-context.d.ts.map +1 -1
  31. package/dist/plugin/setup-context.js.map +1 -1
  32. package/dist/route/render/asset-manifest.d.ts +1 -1
  33. package/dist/route/render/asset-manifest.d.ts.map +1 -1
  34. package/dist/route/render/asset-manifest.js +7 -1
  35. package/dist/route/render/asset-manifest.js.map +1 -1
  36. package/dist/route/render/build-resolved-entries.d.ts.map +1 -1
  37. package/dist/route/render/build-resolved-entries.js +18 -10
  38. package/dist/route/render/build-resolved-entries.js.map +1 -1
  39. package/dist/route/render/render-template.d.ts +1 -1
  40. package/dist/route/render/render-template.d.ts.map +1 -1
  41. package/dist/route/render/render-template.js +38 -21
  42. package/dist/route/render/render-template.js.map +1 -1
  43. package/dist/rpc/meta/core.d.ts +3 -4
  44. package/dist/rpc/meta/core.d.ts.map +1 -1
  45. package/dist/rpc/meta/core.js +87 -152
  46. package/dist/rpc/meta/core.js.map +1 -1
  47. package/dist/rpc/procedures/entry/lookup.js +14 -11
  48. package/dist/rpc/procedures/entry/lookup.js.map +1 -1
  49. package/dist/rpc/procedures/lookup.errors.d.ts +2 -1
  50. package/dist/rpc/procedures/lookup.errors.d.ts.map +1 -1
  51. package/dist/rpc/procedures/lookup.errors.js +3 -0
  52. package/dist/rpc/procedures/lookup.errors.js.map +1 -1
  53. package/dist/rpc/procedures/term/lookup.js +3 -8
  54. package/dist/rpc/procedures/term/lookup.js.map +1 -1
  55. package/dist/runtime/dispatcher.d.ts.map +1 -1
  56. package/dist/runtime/dispatcher.js +70 -29
  57. package/dist/runtime/dispatcher.js.map +1 -1
  58. package/dist/telemetry-otel.d.ts +29 -0
  59. package/dist/telemetry-otel.d.ts.map +1 -0
  60. package/dist/telemetry-otel.js +218 -0
  61. package/dist/telemetry-otel.js.map +1 -0
  62. package/dist/template-deps-core.d.ts.map +1 -1
  63. package/dist/template-deps-core.js +31 -14
  64. package/dist/template-deps-core.js.map +1 -1
  65. package/dist/template-deps.d.ts.map +1 -1
  66. package/dist/template-deps.js +12 -8
  67. package/dist/template-deps.js.map +1 -1
  68. package/dist/test/index.d.ts +3 -0
  69. package/dist/test/index.d.ts.map +1 -1
  70. package/dist/test/index.js +4 -0
  71. package/dist/test/index.js.map +1 -1
  72. package/dist/test/traced-context.d.ts +17 -0
  73. package/dist/test/traced-context.d.ts.map +1 -0
  74. package/dist/test/traced-context.js +28 -0
  75. package/dist/test/traced-context.js.map +1 -0
  76. package/package.json +6 -2
@@ -15,6 +15,7 @@ import type { ResolvedEntity } from "../route/current.js";
15
15
  import type { OAuthProviderSummary } from "../runtime/app.js";
16
16
  import type { PlumixEnv } from "../runtime/bindings.js";
17
17
  import type { AssetsBinding, ConnectedCache, ConnectedObjectStorage, ImageDelivery } from "../runtime/slots.js";
18
+ import type { RequestMemo } from "./memo.js";
18
19
  import type { TelemetryCollector, TelemetryConfig, TelemetryConsumer } from "./telemetry.js";
19
20
  export type CoreSchema = typeof coreSchema;
20
21
  export type Db<TSchema extends Record<string, unknown> = CoreSchema> = BaseSQLiteDatabase<"async" | "sync", unknown, TSchema>;
@@ -97,6 +98,17 @@ export interface AppContextBase<TSchema extends Record<string, unknown> = CoreSc
97
98
  */
98
99
  readonly shortcodes: ShortcodeRegistry;
99
100
  readonly logger: Logger;
101
+ /**
102
+ * Request-scoped read-through memo for repeated reads (issue #1493).
103
+ * `memo(key, load)` runs `load` once per key per request and replays
104
+ * the settled value to later callers — hot single-row lookups
105
+ * (settings group, author row, entry type, menu cluster) dedupe
106
+ * inside the service functions without new API surface. The cache
107
+ * dies with the context; rejections are not memoized. No invalidation
108
+ * on writes, and `withUser` derivations share it — see the contract
109
+ * notes on {@link RequestMemo}.
110
+ */
111
+ readonly memo: RequestMemo;
100
112
  /**
101
113
  * Request-scoped telemetry collector — spans + records for what happened
102
114
  * during this request. Core and plugins record via `ctx.telemetry.record`/
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/context/app.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,OAAO,KAAK,EACV,aAAa,EACb,QAAQ,EACR,iBAAiB,EAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAG7D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,KAAK,UAAU,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,sBAAsB,EACtB,aAAa,EACd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EACV,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EAClB,MAAM,gBAAgB,CAAC;AAoBxB,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAC;AAE3C,MAAM,MAAM,EAAE,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,IACjE,kBAAkB,CAAC,OAAO,GAAG,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAEzD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,wEAAwE;IACxE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,MAAM;IACrB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC7D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC5D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC5D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC9D;AAED,MAAM,WAAW,aAAa;IAI5B,GAAG,CAAC,UAAU,EAAE,eAAe,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC;CAC3D;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;AAE1D;;;;;;;;GAQG;AAEH,MAAM,WAAW,oBAAoB;CAAG;AAExC,MAAM,WAAW,cAAc,CAC7B,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU;IAEpD,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;IACzB,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACxC;;;;;;;OAOG;IACH,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;IAC/C,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,CAAC;IACpC;;;;OAIG;IACH,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB;;;;;;OAMG;IACH,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;IACvC;;;;;;;OAOG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IACxC;;;;OAIG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAC3D,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,EAAE,oBAAoB,CAAC;IAC7C;;;;OAIG;IACH,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC;;;;;OAKG;IACH,QAAQ,CAAC,cAAc,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACzD;;;;;;OAMG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC;IAChC;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,sBAAsB,CAAC;IAC1C;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC;IAChC;;;;;;OAMG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;IACvC,8FAA8F;IAC9F,QAAQ,CAAC,mBAAmB,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IACxD;;;;;;;OAOG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;;OAMG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB;;;;;;OAMG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC;IAClC;;;;;;OAMG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;;;;;;;OAOG;IACH,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;IACtC;;;;;OAKG;IACH,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED,MAAM,MAAM,UAAU,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,IACzE,cAAc,CAAC,OAAO,CAAC,GAAG,oBAAoB,CAAC;AAEjD,MAAM,MAAM,uBAAuB,CACjC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,IAClD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,GAAG;IACtC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;CAClC,CAAC;AAEF,MAAM,WAAW,oBAAoB,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC3E,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;IACzB,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAC;IACrC,QAAQ,CAAC,UAAU,CAAC,EAAE,iBAAiB,CAAC;IACxC,QAAQ,CAAC,IAAI,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;IAChD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC;IAClC,yEAAyE;IACzE,QAAQ,CAAC,SAAS,CAAC,EAAE,eAAe,CAAC;IACrC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,OAAO,CAAC,EAAE,sBAAsB,CAAC;IAC1C,QAAQ,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;IACvC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IACxD;6EACyE;IACzE,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAC1D,QAAQ,CAAC,aAAa,CAAC,EAAE,oBAAoB,CAAC;IAC9C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IACpC;;;;;OAKG;IACH,QAAQ,CAAC,oBAAoB,CAAC,EAAE,WAAW,CACzC,MAAM,EACN;QAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;KAAE,CAC5B,CAAC;CACH;AA4DD,wBAAgB,gBAAgB,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtE,IAAI,EAAE,oBAAoB,CAAC,OAAO,CAAC,GAClC,UAAU,CAAC,OAAO,CAAC,CAyFrB;AAsBD,wBAAgB,QAAQ,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9D,GAAG,EAAE,UAAU,CAAC,OAAO,CAAC,EACxB,IAAI,EAAE,iBAAiB,EACvB,WAAW,GAAE,SAAS,MAAM,EAAE,GAAG,IAAW,GAC3C,uBAAuB,CAAC,OAAO,CAAC,CAYlC;AAED,eAAO,MAAM,aAAa,EAAE,MAK3B,CAAC"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/context/app.ts"],"names":[],"mappings":"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"}
@@ -7,8 +7,10 @@ import { resolveLocales } from "../i18n/locale-registry.js";
7
7
  import { resolveLocale } from "../i18n/resolve-locale.js";
8
8
  import { createTelemetryCollector } from "./collector.js";
9
9
  import { ContextError } from "./errors.js";
10
+ import { createRequestMemo } from "./memo.js";
10
11
  import { NOOP_TELEMETRY } from "./telemetry.js";
11
12
  import { createTracedFetch } from "./traced-fetch.js";
13
+ import { traceAssets, traceCache, traceMailer, traceStorage, } from "./traced-slots.js";
12
14
  const EMPTY_BLOCK_REGISTRY = createBlockRegistry([]);
13
15
  const EMPTY_MARK_LIST = Object.freeze([]);
14
16
  const EMPTY_SHORTCODE_REGISTRY = new Map();
@@ -75,6 +77,7 @@ export function createAppContext(args) {
75
77
  const tokenScopes = args.tokenScopes ?? null;
76
78
  const i18n = args.i18n ?? DEFAULT_I18N;
77
79
  const locale = resolveLocale({ request: args.request, user, i18n });
80
+ const mailer = resolveMailer(args.mailer, args.env);
78
81
  const base = {
79
82
  db: args.db,
80
83
  env: args.env,
@@ -87,16 +90,19 @@ export function createAppContext(args) {
87
90
  marks: args.marks ?? EMPTY_MARK_LIST,
88
91
  shortcodes: args.shortcodes ?? EMPTY_SHORTCODE_REGISTRY,
89
92
  logger: args.logger ?? consoleLogger,
93
+ memo: createRequestMemo(),
90
94
  auth: {
91
95
  can: makeAuthCan(resolver, user, tokenScopes),
92
96
  },
93
97
  defer: wrapDefer(args.logger ?? consoleLogger, args.defer),
94
- assets: args.assets,
95
- storage: args.storage,
96
- cache: args.cache,
98
+ // I/O slots wrapped once here so every consumer gets spans; the getters
99
+ // read `base.telemetry` per call like `fetch` below.
100
+ assets: args.assets && traceAssets(args.assets, () => base.telemetry),
101
+ storage: args.storage && traceStorage(args.storage, () => base.telemetry),
102
+ cache: args.cache && traceCache(args.cache, () => base.telemetry),
97
103
  imageDelivery: args.imageDelivery,
98
104
  imageRemotePatterns: args.imageRemotePatterns,
99
- mailer: resolveMailer(args.mailer, args.env),
105
+ mailer: mailer && traceMailer(mailer, () => base.telemetry),
100
106
  i18n,
101
107
  locale,
102
108
  oauthProviders: args.oauthProviders ?? [],
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/context/app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/context/app.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Request-scoped read-through memo — see `AppContextBase.memo`. Callers
3
+ * namespace keys (`core:settings-group:site`, `menu:data:primary`) since
4
+ * all consumers share one map per context.
5
+ *
6
+ * There is no invalidation: a write in the same execution is invisible to
7
+ * keys already loaded (cron runs share one memo across every task in the
8
+ * invocation). Loaders must also be principal-invariant — `withUser`
9
+ * derivations share the same memo, so anything user-dependent must embed
10
+ * the principal in the key.
11
+ */
12
+ export type RequestMemo = <T>(key: string, load: () => Promise<T>) => Promise<T>;
13
+ export declare function createRequestMemo(): RequestMemo;
14
+ /**
15
+ * Per-id memo over a batched load: each id resolves through `memo`, and
16
+ * all misses share one lazy `loadAll` (single-flight, so the batch runs
17
+ * at most once per call). `loadAll` may fetch every requested id — hits
18
+ * keep their first-seen value regardless. Ids absent from the loaded map
19
+ * memoize as `null`.
20
+ */
21
+ export declare function memoBatch<K, T>(memo: RequestMemo, ids: readonly K[], keyFor: (id: K) => string, loadAll: () => Promise<ReadonlyMap<K, T>>): Promise<(T | null)[]>;
22
+ //# sourceMappingURL=memo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memo.d.ts","sourceRoot":"","sources":["../../src/context/memo.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,EAC1B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,KACnB,OAAO,CAAC,CAAC,CAAC,CAAC;AAEhB,wBAAgB,iBAAiB,IAAI,WAAW,CAY/C;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,CAAC,EAC5B,IAAI,EAAE,WAAW,EACjB,GAAG,EAAE,SAAS,CAAC,EAAE,EACjB,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,MAAM,EACzB,OAAO,EAAE,MAAM,OAAO,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GACxC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAQvB"}
@@ -0,0 +1,27 @@
1
+ export function createRequestMemo() {
2
+ const cache = new Map();
3
+ return (key, load) => {
4
+ const hit = cache.get(key);
5
+ if (hit !== undefined)
6
+ return hit;
7
+ const entry = load();
8
+ cache.set(key, entry);
9
+ // Rejections are not memoized — a transient DB error on one read
10
+ // shouldn't poison every later read of the same key in the request.
11
+ entry.catch(() => cache.delete(key));
12
+ return entry;
13
+ };
14
+ }
15
+ /**
16
+ * Per-id memo over a batched load: each id resolves through `memo`, and
17
+ * all misses share one lazy `loadAll` (single-flight, so the batch runs
18
+ * at most once per call). `loadAll` may fetch every requested id — hits
19
+ * keep their first-seen value regardless. Ids absent from the loaded map
20
+ * memoize as `null`.
21
+ */
22
+ export function memoBatch(memo, ids, keyFor, loadAll) {
23
+ let batch;
24
+ const load = () => (batch ??= loadAll());
25
+ return Promise.all(ids.map((id) => memo(keyFor(id), async () => (await load()).get(id) ?? null)));
26
+ }
27
+ //# sourceMappingURL=memo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memo.js","sourceRoot":"","sources":["../../src/context/memo.ts"],"names":[],"mappings":"AAgBA,MAAM,UAAU,iBAAiB;IAC/B,MAAM,KAAK,GAAG,IAAI,GAAG,EAA4B,CAAC;IAClD,OAAO,CAAI,GAAW,EAAE,IAAsB,EAAc,EAAE;QAC5D,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO,GAAiB,CAAC;QAChD,MAAM,KAAK,GAAG,IAAI,EAAE,CAAC;QACrB,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACtB,iEAAiE;QACjE,oEAAoE;QACpE,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACrC,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CACvB,IAAiB,EACjB,GAAiB,EACjB,MAAyB,EACzB,OAAyC;IAEzC,IAAI,KAA6C,CAAC;IAClD,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC,CAAC;IACzC,OAAO,OAAO,CAAC,GAAG,CAChB,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CACb,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAC7D,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { Mailer } from "../auth/mailer/types.js";
2
+ import type { AssetsBinding, ConnectedCache, ConnectedObjectStorage } from "../runtime/slots.js";
3
+ import type { TelemetryCollector } from "./telemetry.js";
4
+ /**
5
+ * Platform I/O slot tracing — the counterpart of `createTracedFetch` for the
6
+ * remaining context slots (#1494). Each wrapper is applied once at context
7
+ * assembly; the collector is read per call so the post-vote swap in
8
+ * `createAppContext` is always observed, and with no consumer sampled every
9
+ * span() is the no-op pass-through.
10
+ */
11
+ type GetTelemetry = () => TelemetryCollector;
12
+ export declare function traceCache(cache: ConnectedCache, getTelemetry: GetTelemetry): ConnectedCache;
13
+ export declare function traceAssets(assets: AssetsBinding, getTelemetry: GetTelemetry): AssetsBinding;
14
+ export declare function traceStorage(storage: ConnectedObjectStorage, getTelemetry: GetTelemetry): ConnectedObjectStorage;
15
+ export declare function traceMailer(mailer: Mailer, getTelemetry: GetTelemetry): Mailer;
16
+ export {};
17
+ //# sourceMappingURL=traced-slots.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"traced-slots.d.ts","sourceRoot":"","sources":["../../src/context/traced-slots.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,sBAAsB,EACvB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEzD;;;;;;GAMG;AACH,KAAK,YAAY,GAAG,MAAM,kBAAkB,CAAC;AAE7C,wBAAgB,UAAU,CACxB,KAAK,EAAE,cAAc,EACrB,YAAY,EAAE,YAAY,GACzB,cAAc,CAiBhB;AAED,wBAAgB,WAAW,CACzB,MAAM,EAAE,aAAa,EACrB,YAAY,EAAE,YAAY,GACzB,aAAa,CAUf;AAED,wBAAgB,YAAY,CAC1B,OAAO,EAAE,sBAAsB,EAC/B,YAAY,EAAE,YAAY,GACzB,sBAAsB,CA2BxB;AAED,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,YAAY,GACzB,MAAM,CASR"}
@@ -0,0 +1,57 @@
1
+ export function traceCache(cache, getTelemetry) {
2
+ return {
3
+ match: (request) => getTelemetry().span("cache: match", async (s) => {
4
+ const hit = await cache.match(request);
5
+ s.set("cache.hit", hit !== undefined);
6
+ return hit;
7
+ }),
8
+ put: (request, response, tags) => getTelemetry().span("cache: put", (s) => {
9
+ s.set("cache.tags", () => [...tags]);
10
+ return cache.put(request, response, tags);
11
+ }),
12
+ // Untraced on purpose: purges fire post-response (after the snapshot is
13
+ // delivered), so a span here would dangle as an unfinished root.
14
+ purgeTags: (tags) => cache.purgeTags(tags),
15
+ };
16
+ }
17
+ export function traceAssets(assets, getTelemetry) {
18
+ return {
19
+ fetch: (request) => getTelemetry().span("assets: fetch", async (s) => {
20
+ s.set("url.full", request.url);
21
+ const response = await assets.fetch(request);
22
+ s.set("http.response.status_code", response.status);
23
+ return response;
24
+ }),
25
+ };
26
+ }
27
+ export function traceStorage(storage, getTelemetry) {
28
+ const spanned = (op, key, run) => getTelemetry().span(`storage: ${op}`, (s) => {
29
+ s.set("storage.key", key);
30
+ return run();
31
+ });
32
+ const presignPut = storage.presignPut?.bind(storage);
33
+ return {
34
+ put: (key, body, opts) => spanned("put", key, () => storage.put(key, body, opts)),
35
+ get: (key, opts) => spanned("get", key, () => storage.get(key, opts)),
36
+ head: (key) => spanned("head", key, () => storage.head(key)),
37
+ delete: (key) => spanned("delete", key, () => storage.delete(key)),
38
+ list: (prefix, opts) => getTelemetry().span("storage: list", (s) => {
39
+ s.set("storage.prefix", prefix ?? "");
40
+ return storage.list(prefix, opts);
41
+ }),
42
+ // URL minting (plain URL math / local signing), not object I/O — spanning
43
+ // it would put 0ms noise rows next to real bucket round-trips.
44
+ url: (key, opts) => storage.url(key, opts),
45
+ ...(presignPut ? { presignPut } : {}),
46
+ };
47
+ }
48
+ export function traceMailer(mailer, getTelemetry) {
49
+ return {
50
+ send: (message) => getTelemetry().span("mailer: send", (s) => {
51
+ s.set("mail.to", message.to);
52
+ s.set("mail.subject", message.subject);
53
+ return mailer.send(message);
54
+ }),
55
+ };
56
+ }
57
+ //# sourceMappingURL=traced-slots.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"traced-slots.js","sourceRoot":"","sources":["../../src/context/traced-slots.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,12 @@
1
1
  import type { AppContext } from "../context/app.js";
2
2
  import type { Entry } from "../db/schema/entries.js";
3
3
  import type { EntryGetInput, EntryListInput } from "../rpc/procedures/entry/schemas.js";
4
+ /**
5
+ * The `type` of an entry by id, `null` when the entry doesn't exist.
6
+ * Request-memoized (#1493): unrelated consumers gating on the resolved
7
+ * entry's type in one render share a single query through this read.
8
+ */
9
+ export declare function readEntryType(ctx: AppContext, id: number): Promise<string | null>;
4
10
  type EntryRead = Omit<Entry, "meta"> & {
5
11
  readonly meta: Record<string, unknown>;
6
12
  readonly terms: Record<string, number[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"read-service.d.ts","sourceRoot":"","sources":["../../src/entries/read-service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,KAAK,EAAE,KAAK,EAAe,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EAEf,MAAM,oCAAoC,CAAC;AAmB5C,KAAK,SAAS,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CAC1C,CAAC;AAEF;;;;;;GAMG;AACH,wBAAsB,WAAW,CAC/B,GAAG,EAAE,UAAU,EACf,KAAK,EAAE,cAAc,GACpB,OAAO,CAAC,SAAS,KAAK,EAAE,CAAC,CAyD3B;AAED;;;;;;GAMG;AACH,wBAAsB,QAAQ,CAC5B,GAAG,EAAE,UAAU,EACf,KAAK,EAAE,aAAa,GACnB,OAAO,CAAC,SAAS,CAAC,CAqBpB"}
1
+ {"version":3,"file":"read-service.d.ts","sourceRoot":"","sources":["../../src/entries/read-service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,KAAK,EAAE,KAAK,EAAe,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EAEf,MAAM,oCAAoC,CAAC;AAmB5C;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,UAAU,EACf,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAQxB;AAED,KAAK,SAAS,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CAC1C,CAAC;AAEF;;;;;;GAMG;AACH,wBAAsB,WAAW,CAC/B,GAAG,EAAE,UAAU,EACf,KAAK,EAAE,cAAc,GACpB,OAAO,CAAC,SAAS,KAAK,EAAE,CAAC,CAyD3B;AAED;;;;;;GAMG;AACH,wBAAsB,QAAQ,CAC5B,GAAG,EAAE,UAAU,EACf,KAAK,EAAE,aAAa,GACnB,OAAO,CAAC,SAAS,CAAC,CAqBpB"}
@@ -10,6 +10,20 @@ import { loadEntryTerms } from "../rpc/procedures/entry/terms.js";
10
10
  import { EntryReadError } from "./errors.js";
11
11
  const PUBLIC_STATUS = "published";
12
12
  const TRASH_STATUS = "trash";
13
+ /**
14
+ * The `type` of an entry by id, `null` when the entry doesn't exist.
15
+ * Request-memoized (#1493): unrelated consumers gating on the resolved
16
+ * entry's type in one render share a single query through this read.
17
+ */
18
+ export async function readEntryType(ctx, id) {
19
+ return ctx.memo(`core:entry-type:${String(id)}`, async () => {
20
+ const [row] = await ctx.db
21
+ .select({ type: entries.type })
22
+ .from(entries)
23
+ .where(eq(entries.id, id));
24
+ return row?.type ?? null;
25
+ });
26
+ }
13
27
  /**
14
28
  * List entries of a type, clamped to what the caller may see. Capability checks
15
29
  * and status clamping live here so every transport (oRPC, MCP) reads through
@@ -1 +1 @@
1
- {"version":3,"file":"read-service.js","sourceRoot":"","sources":["../../src/entries/read-service.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC/E,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EACL,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,aAAa,GAAgB,WAAW,CAAC;AAC/C,MAAM,YAAY,GAAgB,OAAO,CAAC;AAO1C;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,GAAe,EACf,KAAqB;IAErB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC;IAClC,IAAI,cAAc,CAAC,IAAI,CAAC;QAAE,MAAM,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAClE,MAAM,cAAc,GAAG,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACrD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;QAClC,MAAM,cAAc,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,eAAe,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;IACxE,MAAM,YAAY,GAAG,mBAAmB,CAAC,KAAK,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACxE,IAAI,YAAY,KAAK,WAAW;QAAE,OAAO,EAAE,CAAC;IAE5C,MAAM,UAAU,GAAU,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,YAAY,CAAC,CAAC;IACjE,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACjC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;IACxD,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;QAC5B,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC5C,CAAC;SAAM,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACxC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;IACxD,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,KAAK,MAAM,IAAI,IAAI,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YACrD,UAAU,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IACD,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;QACzB,KAAK,MAAM,CAAC,YAAY,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;YACzE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YACjC,wEAAwE;YACxE,mEAAmE;YACnE,sEAAsE;YACtE,MAAM,QAAQ,GAAG,GAAG,CAAC,EAAE;iBACpB,MAAM,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC;iBACtC,IAAI,CAAC,SAAS,CAAC;iBACf,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;iBAChD,KAAK,CACJ,GAAG,CACD,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,YAAY,CAAC,EAChC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAChC,CACF,CAAC;YACJ,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvE,uEAAuE;IACvE,iDAAiD;IACjD,OAAO,GAAG,CAAC,EAAE;SACV,MAAM,EAAE;SACR,IAAI,CAAC,OAAO,CAAC;SACb,KAAK,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;SACzB,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;SAClC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;SAClB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC1B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,GAAe,EACf,KAAoB;IAEpB,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;QAC/C,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC;KAChC,CAAC,CAAC;IACH,IAAI,CAAC,GAAG;QAAE,MAAM,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClD,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,MAAM,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACtE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;QACrD,MAAM,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,GAAG,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;QACjC,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;QACtE,MAAM,cAAc,GAClB,GAAG,CAAC,QAAQ,KAAK,GAAG,CAAC,IAAI,EAAE,EAAE;YAC7B,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,SAAS,IAAI,CAAC,cAAc;YAAE,MAAM,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IACvD,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IACrD,OAAO,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AAC7C,CAAC;AAED,6EAA6E;AAC7E,MAAM,aAAa,GAAkD;IACnE,UAAU,EAAE,OAAO,CAAC,SAAS;IAC7B,YAAY,EAAE,OAAO,CAAC,WAAW;IACjC,KAAK,EAAE,OAAO,CAAC,KAAK;IACpB,UAAU,EAAE,OAAO,CAAC,SAAS;CAC9B,CAAC;AAKF;;;;;;;;;GASG;AACH,SAAS,mBAAmB,CAC1B,KAAkB,EAClB,eAAwB;IAExB,MAAM,UAAU,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAE/C,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,IAAI,UAAU,KAAK,SAAS;YAAE,OAAO,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QACvE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,aAAa,EAAE,CAAC;YAC/D,OAAO,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;IAC3E,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,UAAU,CAAC;IACnC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC7E,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAC7C,CAAC;AAED,2EAA2E;AAC3E,SAAS,oBAAoB,CAC3B,KAAkB;IAElB,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAC/B,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAoB,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC;QACxD,CAAC,CAAC,CAAC,KAAoB,CAAC,CAAC;IAC3B,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9C,CAAC;AAED,yEAAyE;AACzE,2EAA2E;AAC3E,4EAA4E;AAC5E,gFAAgF;AAChF,SAAS,mBAAmB,CAAC,IAAgB;IAC3C,MAAM,OAAO,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;IACrD,MAAM,KAAK,GAAG,GAAG,CAAA;eACJ,OAAO,CAAC,KAAK,cAAc,OAAO;kBAC/B,OAAO,CAAC,OAAO,cAAc,OAAO;kBACpC,OAAO,CAAC,OAAO,cAAc,OAAO;IAClD,CAAC;IACH,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAC3C,CAAC"}
1
+ {"version":3,"file":"read-service.js","sourceRoot":"","sources":["../../src/entries/read-service.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -33,6 +33,9 @@ export { runScheduledTasks } from "./runtime/scheduled.js";
33
33
  export type * from "./runtime/slots.js";
34
34
  export { slugify } from "./slugify.js";
35
35
  export { buildResolvedEntries } from "./route/render/build-resolved-entries.js";
36
+ export { readEntryType } from "./entries/read-service.js";
37
+ export { memoBatch } from "./context/memo.js";
38
+ export type { RequestMemo } from "./context/memo.js";
36
39
  export { archive, author, date, entry, collectNamedTemplates, fallback, forArchiveType, forAuthor, forDate, forEntryType, forTermTaxonomy, frontPage, NAMED_TEMPLATE_META_KEY, notFound, search, serverError, taxonomy, templateRules, } from "./route/render/template-builders.js";
37
40
  export type { NamedTemplateChoice } from "./route/render/template-builders.js";
38
41
  export type { ArchiveDataOf, ArchiveTypeName, ArchiveTypeRegistry, EntryProjection, EntryTypeName, EntryTypeRegistry, MetaOf, TermMetaOf, TermTaxonomyName, TermTaxonomyRegistry, TermProjection, } from "./template-registry.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -25,6 +25,8 @@ export { memoryStorage } from "./runtime/memory-storage.js";
25
25
  export { runScheduledTasks } from "./runtime/scheduled.js";
26
26
  export { slugify } from "./slugify.js";
27
27
  export { buildResolvedEntries } from "./route/render/build-resolved-entries.js";
28
+ export { readEntryType } from "./entries/read-service.js";
29
+ export { memoBatch } from "./context/memo.js";
28
30
  export { archive, author, date, entry, collectNamedTemplates, fallback, forArchiveType, forAuthor, forDate, forEntryType, forTermTaxonomy, frontPage, NAMED_TEMPLATE_META_KEY, notFound, search, serverError, taxonomy, templateRules, } from "./route/render/template-builders.js";
29
31
  export { resolveErrorTemplate, resolveTemplate, } from "./route/render/template-hierarchy.js";
30
32
  export { defineTemplate } from "./template.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,OAAO,yBAAyB,CAAC;AAEjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,8EAA8E;AAC9E,wEAAwE;AACxE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE3D,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAIrD,cAAc,gBAAgB,CAAC;AAE/B,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAG5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAGjE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAChF,OAAO,EACL,OAAO,EACP,MAAM,EACN,IAAI,EACJ,KAAK,EACL,qBAAqB,EACrB,QAAQ,EACR,cAAc,EACd,SAAS,EACT,OAAO,EACP,YAAY,EACZ,eAAe,EACf,SAAS,EACT,uBAAuB,EACvB,QAAQ,EACR,MAAM,EACN,WAAW,EACX,QAAQ,EACR,aAAa,GACd,MAAM,qCAAqC,CAAC;AAe7C,OAAO,EACL,oBAAoB,EACpB,eAAe,GAChB,MAAM,sCAAsC,CAAC;AAgB9C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAQ/C,OAAO,EACL,WAAW,EACX,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,OAAO,EACP,OAAO,EACP,WAAW,EACX,QAAQ,EACR,UAAU,GACX,MAAM,YAAY,CAAC;AAcpB,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,OAAO,yBAAyB,CAAC;AAEjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,8EAA8E;AAC9E,wEAAwE;AACxE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE3D,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAIrD,cAAc,gBAAgB,CAAC;AAE/B,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAG5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAGjE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,OAAO,EACL,OAAO,EACP,MAAM,EACN,IAAI,EACJ,KAAK,EACL,qBAAqB,EACrB,QAAQ,EACR,cAAc,EACd,SAAS,EACT,OAAO,EACP,YAAY,EACZ,eAAe,EACf,SAAS,EACT,uBAAuB,EACvB,QAAQ,EACR,MAAM,EACN,WAAW,EACX,QAAQ,EACR,aAAa,GACd,MAAM,qCAAqC,CAAC;AAe7C,OAAO,EACL,oBAAoB,EACpB,eAAe,GAChB,MAAM,sCAAsC,CAAC;AAgB9C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAQ/C,OAAO,EACL,WAAW,EACX,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,OAAO,EACP,OAAO,EACP,WAAW,EACX,QAAQ,EACR,UAAU,GACX,MAAM,YAAY,CAAC;AAcpB,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -1,3 +1,4 @@
1
+ import type { EntryStatus } from "../../db/schema/entries.js";
1
2
  import type { Label } from "../../i18n/label.js";
2
3
  import type { EntryReferenceMetaBoxField, MetaBoxFieldSpan } from "../manifest.js";
3
4
  /**
@@ -18,6 +19,13 @@ export interface EntryFieldScope {
18
19
  * entries are usually invalid reference targets.
19
20
  */
20
21
  readonly includeTrashed?: boolean;
22
+ /**
23
+ * Restrict matches to exactly this lifecycle status; supersedes the
24
+ * `includeTrashed` default. Public-render consumers (e.g. menu nav)
25
+ * pass `"published"` so drafts never surface; the admin picker leaves
26
+ * it unset and keeps admitting drafts/scheduled.
27
+ */
28
+ readonly status?: EntryStatus;
21
29
  }
22
30
  export interface EntryFieldOptions {
23
31
  readonly key: string;
@@ -1 +1 @@
1
- {"version":3,"file":"entry.d.ts","sourceRoot":"","sources":["../../../src/plugin/fields/entry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EACV,0BAA0B,EAC1B,gBAAgB,EACjB,MAAM,gBAAgB,CAAC;AAExB;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC;;;OAGG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;CACnC;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;CACnC;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,iBAAiB,GAAG,0BAA0B,CAiB5E"}
1
+ {"version":3,"file":"entry.d.ts","sourceRoot":"","sources":["../../../src/plugin/fields/entry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EACV,0BAA0B,EAC1B,gBAAgB,EACjB,MAAM,gBAAgB,CAAC;AAExB;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC;;;OAGG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;CACnC;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,iBAAiB,GAAG,0BAA0B,CAiB5E"}
@@ -1 +1 @@
1
- {"version":3,"file":"entry.js","sourceRoot":"","sources":["../../../src/plugin/fields/entry.ts"],"names":[],"mappings":"AAsCA;;;;;GAKG;AACH,MAAM,UAAU,KAAK,CAAC,OAA0B;IAC9C,MAAM,KAAK,GAAoB;QAC7B,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,cAAc,EAAE,OAAO,CAAC,cAAc;KACvC,CAAC;IACF,OAAO;QACL,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,IAAI,EAAE,QAAQ;QACd,SAAS,EAAE,OAAO;QAClB,eAAe,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE;QACzC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,UAAU,EAAE,OAAO,CAAC,UAAU;KAC/B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"entry.js","sourceRoot":"","sources":["../../../src/plugin/fields/entry.ts"],"names":[],"mappings":"AA8CA;;;;;GAKG;AACH,MAAM,UAAU,KAAK,CAAC,OAA0B;IAC9C,MAAM,KAAK,GAAoB;QAC7B,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,cAAc,EAAE,OAAO,CAAC,cAAc;KACvC,CAAC;IACF,OAAO;QACL,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,IAAI,EAAE,QAAQ;QACd,SAAS,EAAE,OAAO;QAClB,eAAe,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE;QACzC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,UAAU,EAAE,OAAO,CAAC,UAAU;KAC/B,CAAC;AACJ,CAAC"}
@@ -20,16 +20,11 @@ export interface LookupResult {
20
20
  readonly targetType?: string;
21
21
  readonly subtitle?: string;
22
22
  /**
23
- * Adapter-provided cached fields. When the field's
24
- * `referenceTarget.valueShape === "object"`, the meta pipeline
25
- * merges these into the stored value on every write so reads can
26
- * render without a resolve round-trip. Examples: `mime`,
27
- * `filename` for media; could be `width`/`height` later.
28
- *
29
- * Picker UIs may also read `cached` to render preview thumbnails
30
- * (e.g. `cached.mime` to decide image vs file icon).
23
+ * Public URL for the row, when it has one — entry permalink, term
24
+ * archive. Read-time consumers (menu resolution) render links from
25
+ * it; adapters whose rows have no public URL omit it.
31
26
  */
32
- readonly cached?: Readonly<Record<string, unknown>>;
27
+ readonly href?: string;
33
28
  }
34
29
  export interface LookupListOptions<TScope = unknown> {
35
30
  readonly query?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"lookup.d.ts","sourceRoot":"","sources":["../../src/plugin/lookup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AASpD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB;;;;;;OAMG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B;;;;;;;OAOG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;;;;;OASG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACrD;AAED,MAAM,WAAW,iBAAiB,CAAC,MAAM,GAAG,OAAO;IACjD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;;;;OAQG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAClC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,aAAa,CAAC,MAAM,GAAG,OAAO;IAC7C,IAAI,CACF,GAAG,EAAE,UAAU,EACf,OAAO,EAAE,iBAAiB,CAAC,MAAM,CAAC,GACjC,OAAO,CAAC,SAAS,YAAY,EAAE,CAAC,CAAC;IAEpC,kFAAkF;IAClF,OAAO,CACL,GAAG,EAAE,UAAU,EACf,EAAE,EAAE,MAAM,EACV,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;CACjC;AAMD,MAAM,WAAW,uBAAuB,CACtC,MAAM,GAAG,OAAO,CAChB,SAAQ,oBAAoB,CAAC,MAAM,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACxC;;;;;;;;OAQG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC;AAED,MAAM,WAAW,oBAAoB,CAAC,MAAM,GAAG,OAAO;IACpD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACxC,iFAAiF;IACjF,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC"}
1
+ {"version":3,"file":"lookup.d.ts","sourceRoot":"","sources":["../../src/plugin/lookup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AASpD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB;;;;;;OAMG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B;;;;;;;OAOG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB,CAAC,MAAM,GAAG,OAAO;IACjD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;;;;OAQG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAClC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,aAAa,CAAC,MAAM,GAAG,OAAO;IAC7C,IAAI,CACF,GAAG,EAAE,UAAU,EACf,OAAO,EAAE,iBAAiB,CAAC,MAAM,CAAC,GACjC,OAAO,CAAC,SAAS,YAAY,EAAE,CAAC,CAAC;IAEpC,kFAAkF;IAClF,OAAO,CACL,GAAG,EAAE,UAAU,EACf,EAAE,EAAE,MAAM,EACV,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;CACjC;AAMD,MAAM,WAAW,uBAAuB,CACtC,MAAM,GAAG,OAAO,CAChB,SAAQ,oBAAoB,CAAC,MAAM,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACxC;;;;;;;;OAQG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC;AAED,MAAM,WAAW,oBAAoB,CAAC,MAAM,GAAG,OAAO;IACpD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACxC,iFAAiF;IACjF,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC"}
@@ -455,26 +455,12 @@ export interface ReferenceTarget<TScope = unknown> {
455
455
  readonly kind: string;
456
456
  readonly scope?: TScope;
457
457
  /**
458
- * Storage cardinality. `false`/absent → single value (string or
459
- * cached object). `true` → array (of strings or cached objects).
460
- * The server-side write validator and read-side orphan filter
461
- * dispatch on this flag to handle both shapes uniformly.
458
+ * Storage cardinality. `false`/absent → single bare id string.
459
+ * `true` → array of bare id strings. The server-side write
460
+ * validator and read-side orphan filter dispatch on this flag to
461
+ * handle both shapes uniformly.
462
462
  */
463
463
  readonly multiple?: boolean;
464
- /**
465
- * Storage shape per item. `"id"` (default) → bare id string —
466
- * every read needs a join/resolve to get a label. `"object"` →
467
- * `{ id, ...cachedFields, ...userFields }` — the meta pipeline
468
- * normalizes cached fields from the adapter on every write so
469
- * reads can render without a join. Used by `media` (where the
470
- * thumbnail/mime/filename are needed on every render and a
471
- * resolve per render is wasteful on the edge).
472
- *
473
- * The cached fields come from `LookupResult.cached` returned by
474
- * the adapter; user-supplied keys (e.g. per-usage `alt`) survive
475
- * the merge so editors can override per-usage metadata.
476
- */
477
- readonly valueShape?: "id" | "object";
478
464
  }
479
465
  /**
480
466
  * Single user reference. Storage is the bare user id as a string
@@ -556,13 +542,9 @@ export interface TermListMetaBoxField extends MetaBoxFieldBase {
556
542
  readonly max?: number;
557
543
  }
558
544
  /**
559
- * Single media reference with cached metadata. Storage is the
560
- * `MediaValue` object `{ id, mime?, filename?, alt? }` not a
561
- * bare id, so admin renders show a thumbnail + filename without an
562
- * extra resolve round-trip per render. `referenceTarget.valueShape`
563
- * is `"object"`; the meta pipeline overwrites the cached fields
564
- * (mime/filename) from the lookup adapter on every write but lets
565
- * user-supplied keys (e.g. per-usage `alt`) survive the merge.
545
+ * Single media reference. Storage is the bare media id as a string;
546
+ * reads return `null` for orphans / scope mismatches, and admin
547
+ * renders resolve labels through the lookup path.
566
548
  *
567
549
  * Lives in core so the typed builder narrows correctly at call
568
550
  * sites — same convention as `entry` / `term`. The actual builder
@@ -574,13 +556,10 @@ export interface MediaMetaBoxField extends MetaBoxFieldBase {
574
556
  readonly referenceTarget: ReferenceTarget;
575
557
  }
576
558
  /**
577
- * Multi media reference. Storage is a JSON array of `MediaValue`
578
- * objects `[{ id, mime?, filename? }, ...]` — extending the cached-
579
- * object pattern from `MediaMetaBoxField` to the array shape. The
580
- * meta pipeline rewrites each entry's cached fields on every write,
581
- * so admin renders thumbnails for every item without a per-item
582
- * resolve. `referenceTarget.multiple` is `true`, `valueShape` is
583
- * `"object"`; `max` caps the array length at write time.
559
+ * Multi media reference. Storage is a JSON array of bare media ids;
560
+ * reads filter out orphans the same way `EntryListMetaBoxField`
561
+ * does. `referenceTarget.multiple` is `true`; `max` caps the array
562
+ * length at write time.
584
563
  */
585
564
  export interface MediaListMetaBoxField extends MetaBoxFieldBase {
586
565
  readonly inputType: "mediaList";