@objectstack/rest 8.0.1 → 9.0.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.
package/dist/index.cjs CHANGED
@@ -254,6 +254,9 @@ var RouteGroupBuilder = class {
254
254
  var import_meta = {};
255
255
  var logError = (...args) => globalThis.console?.error(...args);
256
256
  var TRANSLATABLE_META_TYPES = /* @__PURE__ */ new Set(["view", "action", "object", "app", "dashboard"]);
257
+ function isMetaEnvelope(value) {
258
+ return !!value && typeof value === "object" && typeof value.type === "string" && typeof value.name === "string" && value.item != null && typeof value.item === "object" && !Array.isArray(value.item);
259
+ }
257
260
  function mapDataError(error, object) {
258
261
  if (error?.code === "CONCURRENT_UPDATE" || error?.name === "ConcurrentUpdateError") {
259
262
  return {
@@ -937,21 +940,28 @@ var RestServer = class {
937
940
  const locale = this.extractLocale(req, i18n);
938
941
  if (!locale) return item;
939
942
  const { translateMetadataDocument } = await import("@objectstack/spec/system");
943
+ if (isMetaEnvelope(item)) {
944
+ return { ...item, item: translateMetadataDocument(type, item.item, bundle, { locale }) };
945
+ }
940
946
  return translateMetadataDocument(type, item, bundle, { locale });
941
947
  }
942
948
  /**
943
949
  * Translate a list of metadata documents using `translateMetaItem`.
944
950
  */
945
951
  async translateMetaItems(req, type, environmentId, items) {
946
- if (!Array.isArray(items)) return items;
947
952
  if (!TRANSLATABLE_META_TYPES.has(type)) return items;
953
+ const arr = Array.isArray(items) ? items : items && typeof items === "object" && Array.isArray(items.items) ? items.items : null;
954
+ if (!arr) return items;
948
955
  const i18n = await this.resolveI18nService(environmentId, req);
949
956
  const bundle = this.buildTranslationBundle(i18n);
950
957
  if (!bundle) return items;
951
958
  const locale = this.extractLocale(req, i18n);
952
959
  if (!locale) return items;
953
960
  const { translateMetadataDocument } = await import("@objectstack/spec/system");
954
- return items.map((item) => translateMetadataDocument(type, item, bundle, { locale }));
961
+ const translated = arr.map(
962
+ (item) => isMetaEnvelope(item) ? { ...item, item: translateMetadataDocument(type, item.item, bundle, { locale }) } : translateMetadataDocument(type, item, bundle, { locale })
963
+ );
964
+ return Array.isArray(items) ? translated : { ...items, items: translated };
955
965
  }
956
966
  /**
957
967
  * Translate the `entries` payload returned by `getMetaTypes()` — applies