@dyrected/core 2.8.0 → 2.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -4103,14 +4103,7 @@ var SENSITIVE_DETAIL_FIELDS = /* @__PURE__ */ new Set([
4103
4103
  ]);
4104
4104
  function generateDefaultDetailSchema(schema) {
4105
4105
  const fields = schema.fields || [];
4106
- const sidebarFieldTypes = /* @__PURE__ */ new Set([
4107
- "select",
4108
- "radio",
4109
- "boolean",
4110
- "date",
4111
- "datetime",
4112
- "relationship"
4113
- ]);
4106
+ const sidebarFieldTypes = /* @__PURE__ */ new Set(["select", "radio", "boolean", "date", "datetime", "relationship"]);
4114
4107
  const mainFields = [];
4115
4108
  const sidebarFields = [];
4116
4109
  for (const field of fields) {
package/dist/index.d.cts CHANGED
@@ -1,5 +1,5 @@
1
- import { F as Field, B as Block, D as DyrectedConfig, C as CollectionConfig, A as AdminAuthConfig, P as PublicAdminAuthConfig, G as GlobalConfig, a as DeclarativeHookExpression, W as WorkflowConfig, b as AuthenticatedUser, c as WorkflowTransition, L as LifecycleEventName, d as LifecycleEvent, e as BaseDocument, H as HookRequestContext, f as DetailComputedOptions, g as ComputedHandler, h as DetailComputed, i as DetailCustomOptions, j as DetailCustom, k as DetailDividerOptions, l as DetailDivider, m as DisplayFieldOptions, n as DetailField, o as DetailItem, p as DetailGridOptions, q as DetailGrid, r as DetailRepeatOptions, s as DetailRepeat, t as DetailSectionOptions, u as DetailSection, v as DetailTabOptions, w as DetailTab, x as DetailTabsOptions, y as DetailTabs, z as DetailTextOptions, E as DetailText, I as DetailSchema, J as ArrayField, K as BlocksField, M as BooleanField, N as AuthConfig, O as AccessPolicyResolver, Q as DateField, R as DateTimeField, S as EmailField, T as IconField, U as ImageField, V as JoinField, X as JsonField, Y as MultiSelectField, Z as NumberField, _ as ObjectField, $ as RadioField, a0 as RelationshipField, a1 as RichTextField, a2 as RowField, a3 as SelectField, a4 as TextField, a5 as TextareaField, a6 as TimeField, a7 as UrlField } from './app-config-DO3laV58.cjs';
2
- export { a8 as AccessFunction, a9 as AccessFunctionArgs, aa as AccessResult, ab as AccessRule, ac as AdminAuthAccessResolution, ad as AdminAuthClaimMapping, ae as AdminAuthMember, af as AdminAuthProvider, ag as AdminAuthProviderMembersConfig, ah as AdminAuthProvisioningMode, ai as AdminAuthResolveAccessArgs, aj as AdminAuthResolvedIdentity, ak as AdminConfig, al as AdminDashboardComponentSlots, am as AdminIconName, an as AggregateArgs, ao as AggregateCastType, ap as AggregateInput, aq as AggregateOperation, ar as AggregateResult, as as BaseAdminAuthProvider, at as BaseFieldAdmin, au as BlockVariant, av as BooleanFieldAdmin, aw as BooleanFormat, ax as CharacterLimitFieldAdmin, ay as CharacterLimitFieldConfig, az as CollectionAfterChangeHook, aA as CollectionAfterDeleteHook, aB as CollectionAfterReadHook, aC as CollectionAfterReadHookEntry, aD as CollectionAfterTransitionHook, aE as CollectionBeforeChangeHook, aF as CollectionBeforeChangeHookEntry, aG as CollectionBeforeDeleteHook, aH as CollectionBeforeReadHook, aI as CollectionBeforeReadHookEntry, aJ as CollectionBeforeTransitionHook, aK as CollectionListComponentSlots, aL as CountOperation, aM as CustomAdminAuthProvider, aN as DatabaseAdapter, aO as DateFieldAdmin, aP as DateFormat, aQ as DetailSpan, aR as DisplayTone, aS as DisplayVariant, aT as DynamicOptionItem, aU as DynamicOptionsConfig, aV as DynamicOptionsResolver, aW as DynamicOptionsResolverArgs, aX as DyrectedLoggerConfig, aY as DyrectedObservabilityConfig, aZ as EmailFieldAdmin, a_ as FieldAdminHooks, a$ as FieldAdminOnChangeHook, b0 as FieldAdminOnChangeHookArgs, b1 as FieldAdminOptionsHook, b2 as FieldAdminOptionsHookArgs, b3 as FieldAdminOptionsHookResult, b4 as FieldAfterReadHook, b5 as FieldAfterReadHookArgs, b6 as FieldBase, b7 as FieldBeforeChangeHook, b8 as FieldBeforeChangeHookArgs, b9 as FieldHook, ba as FieldHooks, bb as FieldType, bc as FileData, bd as GlobalAfterChangeHook, be as GlobalAfterReadHook, bf as GlobalAfterReadHookEntry, bg as GlobalBeforeChangeHook, bh as GlobalBeforeChangeHookEntry, bi as GlobalBeforeReadHook, bj as GlobalBeforeReadHookEntry, bk as HeadingLevel, bl as HookFunction, bm as IconFieldAdmin, bn as ImageService, bo as InferAggregateResult, bp as JoinFieldAdmin, bq as JsonFieldAdmin, br as JsonFormat, bs as LIFECYCLE_EVENT_NAMES, bt as LifecycleEventHandler, bu as LinkFormat, bv as MultiSelectFieldAdmin, bw as NamedAccessPolicy, bx as NumberFieldAdmin, by as NumberFormat, bz as NumberLimitFieldAdmin, bA as NumberLimitFieldConfig, bB as NumericOperation, bC as OIDCAdminAuthProvider, bD as OptionFormat, bE as PaginatedResult, bF as PublicAdminAuthProvider, bG as RadioFieldAdmin, bH as RateLimitConfig, bI as ReadonlyDatabaseAdapter, bJ as RichTextFeature, bK as RichTextFieldConfig, bL as SelectFieldAdmin, bM as StorageAdapter, bN as TextFieldAdmin, bO as TextFormat, bP as TextareaFieldAdmin, bQ as TrustProxyConfig, bR as TypedField, bS as UploadConfig, bT as UrlFieldAdmin, bU as UrlLinkValue, bV as WordLimitFieldAdmin, bW as WordLimitFieldConfig, bX as WorkflowMetadata, bY as WorkflowRole, bZ as WorkflowState, b_ as WorkflowTransitionContext } from './app-config-DO3laV58.cjs';
1
+ import { F as Field, B as Block, D as DyrectedConfig, C as CollectionConfig, A as AdminAuthConfig, P as PublicAdminAuthConfig, G as GlobalConfig, a as DeclarativeHookExpression, W as WorkflowConfig, b as AuthenticatedUser, c as WorkflowTransition, L as LifecycleEventName, d as LifecycleEvent, e as BaseDocument, H as HookRequestContext, f as DetailComputedOptions, g as ComputedHandler, h as DetailComputed, i as DetailCustomOptions, j as DetailCustom, k as DetailDividerOptions, l as DetailDivider, m as DisplayFieldOptions, n as DetailField, o as DetailItem, p as DetailGridOptions, q as DetailGrid, r as DetailRepeatOptions, s as DetailRepeat, t as DetailSectionOptions, u as DetailSection, v as DetailTabOptions, w as DetailTab, x as DetailTabsOptions, y as DetailTabs, z as DetailTextOptions, E as DetailText, I as DetailSchema, J as ArrayField, K as BlocksField, M as BooleanField, N as AuthConfig, O as AccessPolicyResolver, Q as DateField, R as DateTimeField, S as EmailField, T as IconField, U as ImageField, V as JoinField, X as JsonField, Y as MultiSelectField, Z as NumberField, _ as ObjectField, $ as RadioField, a0 as RelationshipField, a1 as RichTextField, a2 as RowField, a3 as SelectField, a4 as TextField, a5 as TextareaField, a6 as TimeField, a7 as UrlField } from './app-config-WzqpuZMr.cjs';
2
+ export { a8 as AccessFunction, a9 as AccessFunctionArgs, aa as AccessResult, ab as AccessRule, ac as AdminAuthAccessResolution, ad as AdminAuthClaimMapping, ae as AdminAuthMember, af as AdminAuthProvider, ag as AdminAuthProviderMembersConfig, ah as AdminAuthProvisioningMode, ai as AdminAuthResolveAccessArgs, aj as AdminAuthResolvedIdentity, ak as AdminConfig, al as AdminDashboardComponentSlots, am as AdminIconName, an as AggregateArgs, ao as AggregateCastType, ap as AggregateInput, aq as AggregateOperation, ar as AggregateResult, as as BaseAdminAuthProvider, at as BaseFieldAdmin, au as BlockVariant, av as BooleanFieldAdmin, aw as BooleanFormat, ax as CharacterLimitFieldAdmin, ay as CharacterLimitFieldConfig, az as CollectionAfterChangeHook, aA as CollectionAfterDeleteHook, aB as CollectionAfterReadHook, aC as CollectionAfterReadHookEntry, aD as CollectionAfterTransitionHook, aE as CollectionBeforeChangeHook, aF as CollectionBeforeChangeHookEntry, aG as CollectionBeforeDeleteHook, aH as CollectionBeforeReadHook, aI as CollectionBeforeReadHookEntry, aJ as CollectionBeforeTransitionHook, aK as CollectionListComponentSlots, aL as CountOperation, aM as CustomAdminAuthProvider, aN as DatabaseAdapter, aO as DateFieldAdmin, aP as DateFormat, aQ as DetailSpan, aR as DisplayTone, aS as DisplayVariant, aT as DynamicOptionItem, aU as DynamicOptionsConfig, aV as DynamicOptionsResolver, aW as DynamicOptionsResolverArgs, aX as DyrectedLoggerConfig, aY as DyrectedObservabilityConfig, aZ as EmailFieldAdmin, a_ as FieldAdminHooks, a$ as FieldAdminOnChangeHook, b0 as FieldAdminOnChangeHookArgs, b1 as FieldAdminOptionsHook, b2 as FieldAdminOptionsHookArgs, b3 as FieldAdminOptionsHookResult, b4 as FieldAfterReadHook, b5 as FieldAfterReadHookArgs, b6 as FieldBase, b7 as FieldBeforeChangeHook, b8 as FieldBeforeChangeHookArgs, b9 as FieldHook, ba as FieldHooks, bb as FieldType, bc as FileData, bd as GlobalAfterChangeHook, be as GlobalAfterReadHook, bf as GlobalAfterReadHookEntry, bg as GlobalBeforeChangeHook, bh as GlobalBeforeChangeHookEntry, bi as GlobalBeforeReadHook, bj as GlobalBeforeReadHookEntry, bk as HeadingLevel, bl as HookFunction, bm as IconFieldAdmin, bn as ImageService, bo as InferAggregateResult, bp as JoinFieldAdmin, bq as JsonFieldAdmin, br as JsonFormat, bs as LIFECYCLE_EVENT_NAMES, bt as LifecycleEventHandler, bu as LinkFormat, bv as MultiSelectFieldAdmin, bw as NamedAccessPolicy, bx as NumberFieldAdmin, by as NumberFormat, bz as NumberLimitFieldAdmin, bA as NumberLimitFieldConfig, bB as NumericOperation, bC as OIDCAdminAuthProvider, bD as OptionFormat, bE as PaginatedResult, bF as PublicAdminAuthProvider, bG as RadioFieldAdmin, bH as RateLimitConfig, bI as ReadonlyDatabaseAdapter, bJ as RichTextFeature, bK as RichTextFieldConfig, bL as SelectFieldAdmin, bM as StorageAdapter, bN as TextFieldAdmin, bO as TextFormat, bP as TextareaFieldAdmin, bQ as TrustProxyConfig, bR as TypedField, bS as UploadConfig, bT as UrlFieldAdmin, bU as UrlLinkValue, bV as WordLimitFieldAdmin, bW as WordLimitFieldConfig, bX as WorkflowMetadata, bY as WorkflowRole, bZ as WorkflowState, b_ as WorkflowTransitionContext } from './app-config-WzqpuZMr.cjs';
3
3
  import jexl from 'jexl';
4
4
  import 'lucide-react';
5
5
  import 'pino';
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { F as Field, B as Block, D as DyrectedConfig, C as CollectionConfig, A as AdminAuthConfig, P as PublicAdminAuthConfig, G as GlobalConfig, a as DeclarativeHookExpression, W as WorkflowConfig, b as AuthenticatedUser, c as WorkflowTransition, L as LifecycleEventName, d as LifecycleEvent, e as BaseDocument, H as HookRequestContext, f as DetailComputedOptions, g as ComputedHandler, h as DetailComputed, i as DetailCustomOptions, j as DetailCustom, k as DetailDividerOptions, l as DetailDivider, m as DisplayFieldOptions, n as DetailField, o as DetailItem, p as DetailGridOptions, q as DetailGrid, r as DetailRepeatOptions, s as DetailRepeat, t as DetailSectionOptions, u as DetailSection, v as DetailTabOptions, w as DetailTab, x as DetailTabsOptions, y as DetailTabs, z as DetailTextOptions, E as DetailText, I as DetailSchema, J as ArrayField, K as BlocksField, M as BooleanField, N as AuthConfig, O as AccessPolicyResolver, Q as DateField, R as DateTimeField, S as EmailField, T as IconField, U as ImageField, V as JoinField, X as JsonField, Y as MultiSelectField, Z as NumberField, _ as ObjectField, $ as RadioField, a0 as RelationshipField, a1 as RichTextField, a2 as RowField, a3 as SelectField, a4 as TextField, a5 as TextareaField, a6 as TimeField, a7 as UrlField } from './app-config-DO3laV58.js';
2
- export { a8 as AccessFunction, a9 as AccessFunctionArgs, aa as AccessResult, ab as AccessRule, ac as AdminAuthAccessResolution, ad as AdminAuthClaimMapping, ae as AdminAuthMember, af as AdminAuthProvider, ag as AdminAuthProviderMembersConfig, ah as AdminAuthProvisioningMode, ai as AdminAuthResolveAccessArgs, aj as AdminAuthResolvedIdentity, ak as AdminConfig, al as AdminDashboardComponentSlots, am as AdminIconName, an as AggregateArgs, ao as AggregateCastType, ap as AggregateInput, aq as AggregateOperation, ar as AggregateResult, as as BaseAdminAuthProvider, at as BaseFieldAdmin, au as BlockVariant, av as BooleanFieldAdmin, aw as BooleanFormat, ax as CharacterLimitFieldAdmin, ay as CharacterLimitFieldConfig, az as CollectionAfterChangeHook, aA as CollectionAfterDeleteHook, aB as CollectionAfterReadHook, aC as CollectionAfterReadHookEntry, aD as CollectionAfterTransitionHook, aE as CollectionBeforeChangeHook, aF as CollectionBeforeChangeHookEntry, aG as CollectionBeforeDeleteHook, aH as CollectionBeforeReadHook, aI as CollectionBeforeReadHookEntry, aJ as CollectionBeforeTransitionHook, aK as CollectionListComponentSlots, aL as CountOperation, aM as CustomAdminAuthProvider, aN as DatabaseAdapter, aO as DateFieldAdmin, aP as DateFormat, aQ as DetailSpan, aR as DisplayTone, aS as DisplayVariant, aT as DynamicOptionItem, aU as DynamicOptionsConfig, aV as DynamicOptionsResolver, aW as DynamicOptionsResolverArgs, aX as DyrectedLoggerConfig, aY as DyrectedObservabilityConfig, aZ as EmailFieldAdmin, a_ as FieldAdminHooks, a$ as FieldAdminOnChangeHook, b0 as FieldAdminOnChangeHookArgs, b1 as FieldAdminOptionsHook, b2 as FieldAdminOptionsHookArgs, b3 as FieldAdminOptionsHookResult, b4 as FieldAfterReadHook, b5 as FieldAfterReadHookArgs, b6 as FieldBase, b7 as FieldBeforeChangeHook, b8 as FieldBeforeChangeHookArgs, b9 as FieldHook, ba as FieldHooks, bb as FieldType, bc as FileData, bd as GlobalAfterChangeHook, be as GlobalAfterReadHook, bf as GlobalAfterReadHookEntry, bg as GlobalBeforeChangeHook, bh as GlobalBeforeChangeHookEntry, bi as GlobalBeforeReadHook, bj as GlobalBeforeReadHookEntry, bk as HeadingLevel, bl as HookFunction, bm as IconFieldAdmin, bn as ImageService, bo as InferAggregateResult, bp as JoinFieldAdmin, bq as JsonFieldAdmin, br as JsonFormat, bs as LIFECYCLE_EVENT_NAMES, bt as LifecycleEventHandler, bu as LinkFormat, bv as MultiSelectFieldAdmin, bw as NamedAccessPolicy, bx as NumberFieldAdmin, by as NumberFormat, bz as NumberLimitFieldAdmin, bA as NumberLimitFieldConfig, bB as NumericOperation, bC as OIDCAdminAuthProvider, bD as OptionFormat, bE as PaginatedResult, bF as PublicAdminAuthProvider, bG as RadioFieldAdmin, bH as RateLimitConfig, bI as ReadonlyDatabaseAdapter, bJ as RichTextFeature, bK as RichTextFieldConfig, bL as SelectFieldAdmin, bM as StorageAdapter, bN as TextFieldAdmin, bO as TextFormat, bP as TextareaFieldAdmin, bQ as TrustProxyConfig, bR as TypedField, bS as UploadConfig, bT as UrlFieldAdmin, bU as UrlLinkValue, bV as WordLimitFieldAdmin, bW as WordLimitFieldConfig, bX as WorkflowMetadata, bY as WorkflowRole, bZ as WorkflowState, b_ as WorkflowTransitionContext } from './app-config-DO3laV58.js';
1
+ import { F as Field, B as Block, D as DyrectedConfig, C as CollectionConfig, A as AdminAuthConfig, P as PublicAdminAuthConfig, G as GlobalConfig, a as DeclarativeHookExpression, W as WorkflowConfig, b as AuthenticatedUser, c as WorkflowTransition, L as LifecycleEventName, d as LifecycleEvent, e as BaseDocument, H as HookRequestContext, f as DetailComputedOptions, g as ComputedHandler, h as DetailComputed, i as DetailCustomOptions, j as DetailCustom, k as DetailDividerOptions, l as DetailDivider, m as DisplayFieldOptions, n as DetailField, o as DetailItem, p as DetailGridOptions, q as DetailGrid, r as DetailRepeatOptions, s as DetailRepeat, t as DetailSectionOptions, u as DetailSection, v as DetailTabOptions, w as DetailTab, x as DetailTabsOptions, y as DetailTabs, z as DetailTextOptions, E as DetailText, I as DetailSchema, J as ArrayField, K as BlocksField, M as BooleanField, N as AuthConfig, O as AccessPolicyResolver, Q as DateField, R as DateTimeField, S as EmailField, T as IconField, U as ImageField, V as JoinField, X as JsonField, Y as MultiSelectField, Z as NumberField, _ as ObjectField, $ as RadioField, a0 as RelationshipField, a1 as RichTextField, a2 as RowField, a3 as SelectField, a4 as TextField, a5 as TextareaField, a6 as TimeField, a7 as UrlField } from './app-config-WzqpuZMr.js';
2
+ export { a8 as AccessFunction, a9 as AccessFunctionArgs, aa as AccessResult, ab as AccessRule, ac as AdminAuthAccessResolution, ad as AdminAuthClaimMapping, ae as AdminAuthMember, af as AdminAuthProvider, ag as AdminAuthProviderMembersConfig, ah as AdminAuthProvisioningMode, ai as AdminAuthResolveAccessArgs, aj as AdminAuthResolvedIdentity, ak as AdminConfig, al as AdminDashboardComponentSlots, am as AdminIconName, an as AggregateArgs, ao as AggregateCastType, ap as AggregateInput, aq as AggregateOperation, ar as AggregateResult, as as BaseAdminAuthProvider, at as BaseFieldAdmin, au as BlockVariant, av as BooleanFieldAdmin, aw as BooleanFormat, ax as CharacterLimitFieldAdmin, ay as CharacterLimitFieldConfig, az as CollectionAfterChangeHook, aA as CollectionAfterDeleteHook, aB as CollectionAfterReadHook, aC as CollectionAfterReadHookEntry, aD as CollectionAfterTransitionHook, aE as CollectionBeforeChangeHook, aF as CollectionBeforeChangeHookEntry, aG as CollectionBeforeDeleteHook, aH as CollectionBeforeReadHook, aI as CollectionBeforeReadHookEntry, aJ as CollectionBeforeTransitionHook, aK as CollectionListComponentSlots, aL as CountOperation, aM as CustomAdminAuthProvider, aN as DatabaseAdapter, aO as DateFieldAdmin, aP as DateFormat, aQ as DetailSpan, aR as DisplayTone, aS as DisplayVariant, aT as DynamicOptionItem, aU as DynamicOptionsConfig, aV as DynamicOptionsResolver, aW as DynamicOptionsResolverArgs, aX as DyrectedLoggerConfig, aY as DyrectedObservabilityConfig, aZ as EmailFieldAdmin, a_ as FieldAdminHooks, a$ as FieldAdminOnChangeHook, b0 as FieldAdminOnChangeHookArgs, b1 as FieldAdminOptionsHook, b2 as FieldAdminOptionsHookArgs, b3 as FieldAdminOptionsHookResult, b4 as FieldAfterReadHook, b5 as FieldAfterReadHookArgs, b6 as FieldBase, b7 as FieldBeforeChangeHook, b8 as FieldBeforeChangeHookArgs, b9 as FieldHook, ba as FieldHooks, bb as FieldType, bc as FileData, bd as GlobalAfterChangeHook, be as GlobalAfterReadHook, bf as GlobalAfterReadHookEntry, bg as GlobalBeforeChangeHook, bh as GlobalBeforeChangeHookEntry, bi as GlobalBeforeReadHook, bj as GlobalBeforeReadHookEntry, bk as HeadingLevel, bl as HookFunction, bm as IconFieldAdmin, bn as ImageService, bo as InferAggregateResult, bp as JoinFieldAdmin, bq as JsonFieldAdmin, br as JsonFormat, bs as LIFECYCLE_EVENT_NAMES, bt as LifecycleEventHandler, bu as LinkFormat, bv as MultiSelectFieldAdmin, bw as NamedAccessPolicy, bx as NumberFieldAdmin, by as NumberFormat, bz as NumberLimitFieldAdmin, bA as NumberLimitFieldConfig, bB as NumericOperation, bC as OIDCAdminAuthProvider, bD as OptionFormat, bE as PaginatedResult, bF as PublicAdminAuthProvider, bG as RadioFieldAdmin, bH as RateLimitConfig, bI as ReadonlyDatabaseAdapter, bJ as RichTextFeature, bK as RichTextFieldConfig, bL as SelectFieldAdmin, bM as StorageAdapter, bN as TextFieldAdmin, bO as TextFormat, bP as TextareaFieldAdmin, bQ as TrustProxyConfig, bR as TypedField, bS as UploadConfig, bT as UrlFieldAdmin, bU as UrlLinkValue, bV as WordLimitFieldAdmin, bW as WordLimitFieldConfig, bX as WorkflowMetadata, bY as WorkflowRole, bZ as WorkflowState, b_ as WorkflowTransitionContext } from './app-config-WzqpuZMr.js';
3
3
  import jexl from 'jexl';
4
4
  import 'lucide-react';
5
5
  import 'pino';
package/dist/index.js CHANGED
@@ -101,7 +101,7 @@ import {
101
101
  validatePreviewUrlExpression,
102
102
  wordCount,
103
103
  workflowCapabilities
104
- } from "./chunk-XX7N64NL.js";
104
+ } from "./chunk-GFFGDHST.js";
105
105
 
106
106
  // src/types/workflows.ts
107
107
  var LIFECYCLE_EVENT_NAMES = [
package/dist/server.cjs CHANGED
@@ -747,9 +747,13 @@ var PopulationService = class {
747
747
  }
748
748
  if (!field.name) continue;
749
749
  const value = populatedDoc[field.name];
750
- if (field.type === "relationship" && field.relationTo && value) {
750
+ const fieldType = field.type;
751
+ const isRelationship = fieldType === "relationship";
752
+ const isUpload = fieldType === "upload" || fieldType === "image" || fieldType === "media";
753
+ const targetRelationTo = field.relationTo || (isUpload ? this.collections.find((c) => c.upload)?.slug || "media" : void 0);
754
+ if ((isRelationship || isUpload) && targetRelationTo && value) {
751
755
  const relatedCollection = this.collections.find(
752
- (c) => c.slug === field.relationTo
756
+ (c) => c.slug === targetRelationTo
753
757
  );
754
758
  if (!relatedCollection) continue;
755
759
  if (Array.isArray(value)) {
@@ -759,7 +763,7 @@ var PopulationService = class {
759
763
  let doc = id;
760
764
  if (typeof id === "string") {
761
765
  doc = await this.db.findOne({
762
- collection: field.relationTo,
766
+ collection: targetRelationTo,
763
767
  id
764
768
  });
765
769
  }
@@ -780,7 +784,7 @@ var PopulationService = class {
780
784
  let doc = value;
781
785
  if (typeof value === "string") {
782
786
  doc = await this.db.findOne({
783
- collection: field.relationTo,
787
+ collection: targetRelationTo,
784
788
  id: value
785
789
  });
786
790
  }
package/dist/server.d.cts CHANGED
@@ -2,7 +2,7 @@ import * as hono_types from 'hono/types';
2
2
  import * as hono from 'hono';
3
3
  import { Context, Hono } from 'hono';
4
4
  import { Logger } from 'pino';
5
- import { D as DyrectedConfig, aY as DyrectedObservabilityConfig, C as CollectionConfig, G as GlobalConfig } from './app-config-DO3laV58.cjs';
5
+ import { D as DyrectedConfig, aY as DyrectedObservabilityConfig, C as CollectionConfig, G as GlobalConfig } from './app-config-WzqpuZMr.cjs';
6
6
  import { JWTPayload } from 'jose';
7
7
  import { Tracer, Counter, Attributes, Histogram, Span } from '@opentelemetry/api';
8
8
  import { PrometheusExporter } from '@opentelemetry/exporter-prometheus';
package/dist/server.d.ts CHANGED
@@ -2,7 +2,7 @@ import * as hono_types from 'hono/types';
2
2
  import * as hono from 'hono';
3
3
  import { Context, Hono } from 'hono';
4
4
  import { Logger } from 'pino';
5
- import { D as DyrectedConfig, aY as DyrectedObservabilityConfig, C as CollectionConfig, G as GlobalConfig } from './app-config-DO3laV58.js';
5
+ import { D as DyrectedConfig, aY as DyrectedObservabilityConfig, C as CollectionConfig, G as GlobalConfig } from './app-config-WzqpuZMr.js';
6
6
  import { JWTPayload } from 'jose';
7
7
  import { Tracer, Counter, Attributes, Histogram, Span } from '@opentelemetry/api';
8
8
  import { PrometheusExporter } from '@opentelemetry/exporter-prometheus';
package/dist/server.js CHANGED
@@ -29,7 +29,7 @@ import {
29
29
  touchAuthSession,
30
30
  transitionWorkflow,
31
31
  verifyCollectionToken
32
- } from "./chunk-XX7N64NL.js";
32
+ } from "./chunk-GFFGDHST.js";
33
33
  import {
34
34
  attachRequestMetrics,
35
35
  bindObservabilityRuntime,
@@ -163,9 +163,13 @@ var PopulationService = class {
163
163
  }
164
164
  if (!field.name) continue;
165
165
  const value = populatedDoc[field.name];
166
- if (field.type === "relationship" && field.relationTo && value) {
166
+ const fieldType = field.type;
167
+ const isRelationship = fieldType === "relationship";
168
+ const isUpload = fieldType === "upload" || fieldType === "image" || fieldType === "media";
169
+ const targetRelationTo = field.relationTo || (isUpload ? this.collections.find((c) => c.upload)?.slug || "media" : void 0);
170
+ if ((isRelationship || isUpload) && targetRelationTo && value) {
167
171
  const relatedCollection = this.collections.find(
168
- (c) => c.slug === field.relationTo
172
+ (c) => c.slug === targetRelationTo
169
173
  );
170
174
  if (!relatedCollection) continue;
171
175
  if (Array.isArray(value)) {
@@ -175,7 +179,7 @@ var PopulationService = class {
175
179
  let doc = id;
176
180
  if (typeof id === "string") {
177
181
  doc = await this.db.findOne({
178
- collection: field.relationTo,
182
+ collection: targetRelationTo,
179
183
  id
180
184
  });
181
185
  }
@@ -196,7 +200,7 @@ var PopulationService = class {
196
200
  let doc = value;
197
201
  if (typeof value === "string") {
198
202
  doc = await this.db.findOne({
199
- collection: field.relationTo,
203
+ collection: targetRelationTo,
200
204
  id: value
201
205
  });
202
206
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dyrected/core",
3
- "version": "2.8.0",
3
+ "version": "2.8.1",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",