'use strict'; // Keep editable/auditable maps separate in source, but ship at most two // same-province stages per classic script to meet the 200-file ZIP limit. module.exports=function packCountyMaps(index,readStage){ const levels=index.levels.map(meta=>({...meta})),provinces=new Map(),files=new Map(),seen=new Set(); for(const meta of levels){if(!/^\d{6}$/.test(meta.id)||!/^\d{6}$/.test(meta.province)||seen.has(meta.id))throw Error('Invalid county catalog');seen.add(meta.id);if(!provinces.has(meta.province))provinces.set(meta.province,[]);provinces.get(meta.province).push(meta);} for(const entries of provinces.values()){entries.sort((a,b)=>a.id.localeCompare(b.id));for(let i=0;ireadStage(meta.id)).join('\n'));}} return {index:{...index,levels},files}; };