sanity-plugin-internationalized-array

5.1.175.1.18
~

Modified (6 files)

Index: package/dist/index.js
===================================================================
--- package/dist/index.js
+++ package/dist/index.js
@@ -97,10 +97,10 @@
 	}
 	if (typeof value == "object" && value) {
 		let startsWithUnderscoreRegex = /^_/;
 		return Object.keys(value).filter((key) => !key.match(startsWithUnderscoreRegex)).flatMap((item) => {
-			let selectedValue = value[item];
-			return getDocumentsToTranslate(selectedValue, [...rootPath, item]);
+			let selectedValue = value[item], path = [...rootPath, item];
+			return getDocumentsToTranslate(selectedValue, path);
 		});
 	}
 	return [];
 };
@@ -134,9 +134,9 @@
 	if (!select || !document) return {};
 	let selection = select || {}, selectedValue = {};
 	for (let [key, path] of Object.entries(selection)) {
 		let value = get(document, path);
-		Array.isArray(value) && (value = value.filter((item) => typeof item == "object" ? item?._type === "reference" && "_ref" in item : !0)), selectedValue[key] = value;
+		Array.isArray(value) && (value = value.filter((item) => typeof item != "object" || item?._type === "reference" && "_ref" in item)), selectedValue[key] = value;
 	}
 	return selectedValue;
 }, InternationalizedArrayContext = createContext({
 	...CONFIG_DEFAULT,
@@ -452,12 +452,12 @@
 */
 function createAddLanguagePatches(config) {
 	let { addLanguageKeys, schemaTypeName, languages, filteredLanguages, value, path = [] } = config, type = `${schemaTypeName}Value`;
 	if (!isInternationalizedArrayItemType(type)) throw Error(`Invalid internationalized array type: ${type}`);
-	let itemBase = { _type: type }, newItems = Array.isArray(addLanguageKeys) && addLanguageKeys.length > 0 ? addLanguageKeys.filter((id) => value?.length ? !value.find((v) => v[LANGUAGE_FIELD_NAME] === id) : !0).map((id) => Object.assign({}, itemBase, {
+	let itemBase = { _type: type }, newItems = Array.isArray(addLanguageKeys) && addLanguageKeys.length > 0 ? addLanguageKeys.filter((id) => !value?.length || !value.find((v) => v[LANGUAGE_FIELD_NAME] === id)).map((id) => Object.assign({}, itemBase, {
 		_key: randomKey(),
 		[LANGUAGE_FIELD_NAME]: id
-	})) : filteredLanguages.filter((language) => value?.length ? !value.find((v) => v[LANGUAGE_FIELD_NAME] === language.id) : !0).map((language) => Object.assign({}, itemBase, {
+	})) : filteredLanguages.filter((language) => !value?.length || !value.find((v) => v[LANGUAGE_FIELD_NAME] === language.id)).map((language) => Object.assign({}, itemBase, {
 		_key: randomKey(),
 		[LANGUAGE_FIELD_NAME]: language.id
 	})), languagesInUse = value?.length ? value.map((v) => v) : [];
 	return newItems.map((item) => {
@@ -962,12 +962,12 @@
 				paths: nonLanguageKeys.map((item) => [{ _key: item._key }])
 			};
 			let seenLanguages = /* @__PURE__ */ new Set(), duplicateValues = [];
 			for (let item of value) item?.language && (seenLanguages.has(item.language) ? duplicateValues.push(item) : seenLanguages.add(item[LANGUAGE_FIELD_NAME]));
-			return duplicateValues.length ? {
+			return !duplicateValues.length || {
 				message: "There can only be one field per language",
 				paths: duplicateValues.map((item) => [{ _key: item._key }])
-			} : !0;
+			};
 		})
 	});
 };
 /**
@@ -1086,10 +1086,10 @@
 			let initPatch = valueField === void 0 ? {
 				type: "setIfMissing",
 				path: ["value"],
 				value: []
-			} : null, fixedPatches = patches.map(_temp3);
-			return originalOnChange(initPatch ? [initPatch, ...fixedPatches] : fixedPatches);
+			} : null, fixedPatches = patches.map(_temp3), allPatches = initPatch ? [initPatch, ...fixedPatches] : fixedPatches;
+			return originalOnChange(allPatches);
 		}
 		return originalOnChange(patches);
 	}, $[0] = originalOnChange, $[1] = props.value?.value, $[2] = t0) : t0 = $[2], props.value?.value;
 	let wrappedOnChange = t0, { languages, languageDisplay, defaultLanguages } = useInternationalizedArrayContext(), t1;
Index: package/package.json
===================================================================
--- package/package.json
+++ package/package.json
@@ -1,7 +1,7 @@
 {
   "name": "sanity-plugin-internationalized-array",
-  "version": "5.1.17",
+  "version": "5.1.18",
   "description": "Store localized fields in an array to save on attributes",
   "keywords": [
     "sanity",
     "sanity-plugin"
@@ -28,36 +28,36 @@
     "./package.json": "./package.json"
   },
   "dependencies": {
     "@sanity/icons": "^5.0.0",
-    "@sanity/ui": "^3.3.1",
+    "@sanity/ui": "^3.3.5",
     "@sanity/util": "^6.3.0",
     "lodash-es": "^4.18.1"
   },
   "devDependencies": {
     "@sanity/tsconfig": "^2.2.0",
-    "@sanity/tsdown-config": "^0.11.0",
+    "@sanity/tsdown-config": "^0.13.1",
     "@testing-library/jest-dom": "^6.9.1",
     "@testing-library/react": "^16.3.2",
     "@types/lodash-es": "^4.17.12",
-    "@types/node": "^24.13.2",
+    "@types/node": "^24.13.3",
     "@types/react": "^19.2.17",
     "@types/react-dom": "^19.2.3",
     "babel-plugin-react-compiler": "^1.0.0",
     "jsdom": "^29.1.1",
     "react": "^19.2.7",
     "react-dom": "^19.2.7",
     "sanity": "^6.3.0",
     "styled-components": "^6.4.3",
-    "tsdown": "^0.22.3",
-    "@sanity/language-filter": "5.0.7"
+    "tsdown": "^0.22.5",
+    "@sanity/language-filter": "5.0.8"
   },
   "peerDependencies": {
     "react": "^19.2",
     "react-dom": "^19.2",
     "sanity": "^5 || ^6.0.0-0",
-    "@sanity/assist": "^6.1.10",
-    "@sanity/language-filter": "^5.0.7"
+    "@sanity/assist": "^6.1.11",
+    "@sanity/language-filter": "^5.0.8"
   },
   "peerDependenciesMeta": {
     "@sanity/assist": {
       "optional": true
Index: package/dist/index.d.ts.map
===================================================================
--- package/dist/index.d.ts.map
+++ package/dist/index.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"index.d.ts","names":[],"sources":["../src/types.ts","../src/cache.ts","../src/constants.ts","../src/plugin.tsx","../src/utils/internationalizedArrayLanguageFilter.ts"],"mappings":";;KAEY,QAAA;EACV,EAAA,EAAI,IAAA,CAAK,4BAA4B;EACrC,KAAA;AAAA;AAAA,KAGU,WAAA;AAAA,KAEA,WAAA;EACV,IAAA;EACA,IAAA,EAAM,WAAA;EACN,SAAA,EAAW,QAAA;EACX,KAAA;EACA,KAAA;EACA,MAAA;EACA,QAAA;EACA,UAAA,GAAa,IAAA,GAAO,IAAA;EACpB,KAAA;IAAA,CAAU,GAAA;IAAuB,OAAA;MAAA,CAAW,GAAA;IAAA;EAAA;AAAA;;;;KAMlC,KAAA;EACV,IAAA,UAdA;EAgBA,QAAA;EACA,KAAA;AAAA;AAAA,iBAGc,gCAAA,CACd,IAAA,WACC,IAAA,IAAQ,0BAA0B;AAAA,KAIzB,0BAAA;EACV,IAAA;EACA,KAAA,GAAQ,CAAC,EAtBT;EAwBA,QAAA;EAxBoB;;;EA4BpB,KAAA;AAAA;AAAA,KAGU,gBAAA,IACV,MAAA,EAAQ,YAAA,EACR,aAAA,EAAe,MAAA,sBACZ,OAAA,CAAQ,QAAA;AAAA,KAED,eAAA;AAAA,KAEA,YAAA;EA/BK;;;;EAoCf,UAAA;EAhCA;;AAAK;AAGP;;;;;;;;AAEqC;EAwCnC,MAAA,GAAS,MAAA;EApC2B;;;;;;;;;;AAQ/B;AAGP;;;;;;;;;;;;;;;;EAqDE,SAAA,EAAW,QAAA,KAAa,gBAAA;EAhDd;;;;AAAe;AAE3B;;;EAuDE,gBAAA;EATW;;;;;;;;;;;;;;;;;;;;;;;EAkCX,UAAA,YAAsB,kBAAA,GAAqB,eAAA;EAyB3C;;;;EApBA,eAAA;EAiC0B;;;;EA5B1B,YAAA;;ACpHF;;;EDyHE,eAAA,GAAkB,eAAA;ECvHnB;;ACND;;;;AAAsD;;ACZtD;EHmJE,sBAAA,IAA0B,YAAA;;;AGnJO;;ACJnC;;;;;;;EJmKE,cAAA;IACE,aAAA,EAAe,QAAA,CAAS,oBAAA;IACxB,gBAAA,GAAmB,oBAAA;EAAA;AAAA;AAAA,cCjJV,KAAA;;;AD3Bb;;;;;;;;;AAEO;AAGP;;;;AAAuB;AAEvB;;;;;;cEgBa,mBAAA;AAAA,cCZA,sBAAA,mBAAsB,MAAA,CAAA,YAAA;;AHXnC;;;cIOa,oCAAA,GAAoC,aAAA,EAChC,gBAAA,EAAgB,OAAA,EACtB,WAAA,GAAc,aAAA,EAAa,mBAAA,YACP,WAAA,EAChB,MAAA,+BAAmC,SAAA,EACrC,QAAA"}
\ No newline at end of file
+{"version":3,"file":"index.d.ts","names":[],"sources":["../src/types.ts","../src/cache.ts","../src/constants.ts","../src/plugin.tsx","../src/utils/internationalizedArrayLanguageFilter.ts"],"mappings":";;KAEY;EACV,IAAI,KAAK;EACT;;KAGU;KAEA;EACV;EACA,MAAM;EACN,WAAW;EACX;EACA;EACA;EACA;EACA,aAAa,OAAO;EACpB;KAAU;IAAuB;OAAW;;;;;;;KAMlC;EACV;;EAEA;EACA;;iBAGc,iCACd,eACC,QAAQ;KAIC,2BAA2B;EACrC;EACA,QAAQ;;EAER;;;;EAIA;;KAGU,oBACV,QAAQ,cACR,eAAe,4BACZ,QAAQ;KAED;KAEA;;;;;EAKV;;;;;;;;;;;;;EAaA,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4BT,WAAW,aAAa;;;;;;;;;EASxB;;;;;;;;;;;;;;;;;;;;;;;;EAyBA,sBAAsB,qBAAqB;;;;;EAK3C;;;;;EAKA;;;;;EAKA,kBAAkB;;;;;;;;;;EAUlB,0BAA0B;;;;;;;;;;;;EAY1B;IACE,eAAe,SAAS;IACxB,mBAAmB;;;cCjJV;;;;;;;;;;;;;;;;;;;;;;;;cCJA;cCZA,yCAAsB,OAAA;;;;;cCJtB,uCAAoC,eAChC,kBAAgB,SACtB,cAAc,eAAa,+BACP,aAChB,qCAAmC,WACrC"}
\ No newline at end of file
Index: package/dist/migrations/index.d.ts.map
===================================================================
--- package/dist/migrations/index.d.ts.map
+++ package/dist/migrations/index.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"index.d.ts","names":[],"sources":["../../migrations/migrateToLanguageField.ts"],"mappings":"AA2BA;;;;;;;;;;AAAA,iBAAgB,sBAAA,CAAuB,aAAA;;;;mEAAD,IAAA,kCAAA,IAAA;MAAA"}
\ No newline at end of file
+{"version":3,"file":"index.d.ts","names":[],"sources":["../../migrations/migrateToLanguageField.ts"],"mappings":"AA2BA;;;;;;;;;;iBAAgB,uBAAuB;;;;mEAAvB,sCAAA"}
\ No newline at end of file
File too large for inline diff
Index: package/dist/index.d.ts
===================================================================
--- package/dist/index.d.ts
+++ package/dist/index.d.ts
@@ -24,16 +24,18 @@
 /**
  * @deprecated Use InternationalizedArrayItem instead
  */
 type Value = {
-  _key: string; /** Language identifier (e.g., 'en', 'fr'). Added in v5. */
+  _key: string;
+  /** Language identifier (e.g., 'en', 'fr'). Added in v5. */
   language: string;
   value?: unknown;
 };
 declare function isInternationalizedArrayItemType(type: string): type is InternationalizedArrayItem['_type'];
 type InternationalizedArrayItem<T = unknown> = {
   _key: string;
-  value?: T; /** Language identifier (e.g., 'en', 'fr'). Added in v5. */
+  value?: T;
+  /** Language identifier (e.g., 'en', 'fr'). Added in v5. */
   language: string;
   /**
    * string that starts with "internationalizedArray" and ends with "Value"
    */