@@ -2770,7 +2770,7 @@ __d(function(g,r,i,a,m,e,d){var n=r(d[0]),c=/^\s+/;m.exports=function(t){return
27702770__d(function(g,r,i,a,m,e,d){var t=/\s/;m.exports=function(n){for(var o=n.length;o--&&t.test(n.charAt(o)););return o}},2622,[]);
27712771__d(function(g,r,i,a,m,e,d){},2623,[]);
27722772__d(function(g,r,i,a,m,_e,d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"searchPlugin",{enumerable:!0,get:function(){return x}});var e,t=r(d[0]),c=(e=t)&&e.__esModule?e:{default:e},s=r(d[1]),o=r(d[2]),n=r(d[3]);const l=(0,o.getLogger)(['wcpos','db','search']);function h(e){return e.slice(0,2).toLowerCase()}function u(e,t){e._localeLRU||(e._localeLRU=[]);const c=e._localeLRU.indexOf(t);c>-1&&e._localeLRU.splice(c,1),e._localeLRU.push(t)}async function _(e){if(e._localeLRU&&e._searchInstances)for(;e._localeLRU.length>3&&e._searchInstances.size>3;){const t=e._localeLRU.shift();if(t&&e._searchInstances.has(t)){l.debug('Evicting LRU search instance',{context:{collection:e.name,locale:t}});const c=e._searchInstances.get(t);if(e._searchInstances.delete(t),c?.collection&&'function'==typeof c.collection.destroy)try{await c.collection.destroy()}catch(c){l.warn('Failed to destroy evicted search instance',{context:{collection:e.name,locale:t,error:c.message}})}}}}async function f(e,t){const o=e.options?.searchFields,n=`${e.name}-search-${t}_flexsearch`,h=e.database;if(l.debug('Creating search instance',{context:{collection:e.name,locale:t,fields:o}}),h.collections[n]){l.debug('FlexSearch collection already exists, removing first',{context:{searchCollection:n}});try{await h.collections[n].remove()}catch(e){l.warn('Failed to remove existing FlexSearch collection',{context:{searchCollection:n,error:e.message}})}}const u=await(0,s.addFulltextSearch)({identifier:`${e.name}-search-${t}`,collection:e,docToString:e=>o.map(t=>(0,c.default)(e,t)||'').join(' '),initialization:'lazy',indexOptions:{preset:'performance',tokenize:'forward',language:t}});return l.debug('Search instance created successfully',{context:{collection:e.name,locale:t}}),u}async function y(e,t){const c=`${e.name}-search-${t}_flexsearch`,s=e.database;l.debug('Attempting to destroy search collection',{context:{searchCollection:c}});try{const e=s.collections[c];if(e)return await e.remove(),l.info('Destroyed corrupted search collection',{context:{searchCollection:c}}),!0}catch(e){l.warn('Could not destroy search collection via database',{context:{searchCollection:c,error:e.message}})}return!1}const x={name:'search',rxdb:!0,prototypes:{RxCollection(e){e.initSearch=async function(e="en"){if(!Array.isArray(this.options?.searchFields))return null;if(e=h(e),this._searchInstances||(this._searchInstances=new Map),this._searchPromises||(this._searchPromises=new Map),this._searchInstances.has(e))return u(this,e),this._searchInstances.get(e);if(this._searchPromises.has(e))return this._searchPromises.get(e);const t=(async()=>{try{const t=await f(this,e);return this._searchInstances.set(e,t),this._searchPromises.delete(e),u(this,e),await _(this),t}catch(t){this._searchPromises.delete(e),l.error('Failed to initialize search',{showToast:!1,saveToDb:!0,context:{errorCode:n.ERROR_CODES.INVALID_CONFIGURATION,collection:this.name,locale:e,error:t.message}}),l.info('Attempting search recovery',{context:{collection:this.name,locale:e}});if(await y(this,e))try{const t=await f(this,e);return this._searchInstances.set(e,t),u(this,e),await _(this),l.info('Search recovery successful',{context:{collection:this.name,locale:e}}),t}catch(t){l.error('Search recovery failed',{showToast:!0,saveToDb:!0,context:{errorCode:n.ERROR_CODES.SERVICE_UNAVAILABLE,collection:this.name,locale:e,error:t.message}})}throw t}})();return this._searchPromises.set(e,t),this._cleanupRegistered||(this._cleanupRegistered=!0,this.onClose.push(async()=>{const e=this.destroyed;if(l.debug('Cleaning up search instances',{context:{collection:this.name,locales:this._searchInstances?Array.from(this._searchInstances.keys()):[],isCollectionDestroyed:e}}),e)return l.debug('Skipping search cleanup - collection already destroyed',{context:{collection:this.name}}),this._searchInstances?.clear(),this._searchPromises?.clear(),void(this._localeLRU&&(this._localeLRU=[]));if(this._searchInstances){for(const[e,t]of this._searchInstances.entries()){const c=t?.collection?Object.keys(t.collection):[],s=t?.collection?Object.getOwnPropertyNames(Object.getPrototypeOf(t.collection)):[];if(l.debug('Inspecting search instance for cleanup',{context:{mainCollection:this.name,locale:e,hasSearchInstance:!!t,hasCollection:!!t?.collection,collectionName:t?.collection?.name||'none',hasDestroyFn:'function'==typeof t?.collection?.destroy,collectionType:t?.collection?.constructor?.name||'unknown',collectionKeys:c.slice(0,10),protoMethods:s.slice(0,10)}}),t.collection&&'function'==typeof t.collection.destroy){const c=t.collection?.name||'unknown',s=t.collection?.database?.name||'unknown',o=c.endsWith('_flexsearch'),n=t.collection?.destroyed;if(l.debug('About to destroy search instance collection',{context:{mainCollection:this.name,locale:e,searchCollectionName:c,searchCollectionDb:s,isFlexSearchCollection:o,isAlreadyDestroyed:n}}),!o){l.warn('Skipping non-FlexSearch collection destruction',{context:{mainCollection:this.name,locale:e,searchCollectionName:c,expectedPattern:`${this.name}-search-${e}_flexsearch`}});continue}if(n){l.debug('Skipping already-destroyed FlexSearch collection',{context:{mainCollection:this.name,locale:e}});continue}try{await t.collection.destroy(),l.debug('Search instance collection destroyed',{context:{mainCollection:this.name,locale:e}})}catch(t){l.warn('Error destroying search instance on cleanup',{context:{collection:this.name,locale:e,error:t.message}})}}}this._searchInstances.clear(),l.debug('Search instances map cleared',{context:{collection:this.name}})}this._searchPromises&&this._searchPromises.clear(),this._localeLRU&&(this._localeLRU=[])})),t},e.setLocale=async function(e){const t=await this.initSearch(e);return this._activeLocale=h(e),t},e.search=async function(e){if(!this._activeLocale)throw new Error('Search locale not initialized. Call setLocale(locale) first.');const t=this._searchInstances?.get(this._activeLocale);if(!t)throw new Error(`Search instance for locale '${this._activeLocale}' is not initialized.`);return u(this,this._activeLocale),t.search(e)},e.recreateSearch=async function(e){if(!Array.isArray(this.options?.searchFields))return null;if(e=h(e||this._activeLocale||'en'),l.info('Recreating search index',{context:{collection:this.name,locale:e}}),this._searchInstances?.has(e)){const t=this._searchInstances.get(e);if(this._searchInstances.delete(e),t?.collection&&'function'==typeof t.collection.destroy)try{await t.collection.destroy()}catch(t){l.warn('Error destroying old search instance',{context:{collection:this.name,locale:e,error:t.message}})}}if(await y(this,e),this._localeLRU){const t=this._localeLRU.indexOf(e);t>-1&&this._localeLRU.splice(t,1)}this._searchPromises?.delete(e);try{const t=await f(this,e);return this._searchInstances||(this._searchInstances=new Map),this._searchInstances.set(e,t),u(this,e),await _(this),l.info('Search index recreated successfully',{context:{collection:this.name,locale:e}}),t}catch(t){throw l.error('Failed to recreate search index',{showToast:!0,saveToDb:!0,context:{errorCode:n.ERROR_CODES.SERVICE_UNAVAILABLE,collection:this.name,locale:e,error:t.message}}),t}}}},overwritable:{}}},2624,[1314,2420,1930,2595]);
2773- __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"createUserDB",{enumerable:!0,get:function(){return O}}),Object.defineProperty(e,"createStoreDB",{enumerable:!0,get:function(){return N}}),Object.defineProperty(e,"createFastStoreDB",{enumerable:!0,get:function(){return p}}),Object.defineProperty(e,"createTemporaryDB",{enumerable:!0,get:function(){return y}});var t=r(d[0]),o=r(d[1]),s=r(d[2]),n=r(d[3]),c=r(d[4]),l=r(d[5]),u=r(d[6]),b=r(d[7]),f=r(d[8]);const C=(0,o.getLogger)(['wcpos','db','create']),D=async(t,o,s,n)=>{const[{getStorageMigrationConfig:c,prepareOldDatabaseForStorageMigration:l},{runStorageMigration:u},{verifyStorageMigration:b}]=await Promise.all([r(d[10])(d[9],d.paths),r(d[10])(d[11],d.paths),r(d[10])(d[12],d.paths)]),{oldStorage:f,sourceStorage:C,targetStorage:D}=c(t);await b({database:o,oldDatabaseName:s,sourceStorage:C,targetStorage:D}),await u({database:o,oldDatabaseName:s,oldStorage:f,sourceStorage:C,targetStorage:D,prepareOldDatabase:n?()=>l({oldDatabaseName:s,oldStorage:f,collections:n}):void 0})},w=t=>{if(t){if(t.data)return t.data;if('function'==typeof t.toJSON){const o=t.toJSON();return o?.data??o}return t}},S=async({database:o,name:s,config:n,recreate:c})=>{const l=await o.getLocal((0,f.getMigrationLocalDocId)(s));return'failed'!==(u=l,w(u)?.status)?o:(C.warn(`Storage migration previously failed for "${s}" \u2014 resetting target database`,{context:{databaseName:s}}),await o.close(),await(0,t.removeRxDatabase)(s,n.storage,n.multiInstance??!0),c());var u},O=async()=>{const{oldName:o,newName:c}=(0,b.getUserDatabaseNames)();try{const s=await(0,t.createRxDatabase)(Object.assign({name:c},n.defaultConfig,{localDocuments:!0})),l=await S({database:s,name:c,config:n.defaultConfig,recreate:()=>(0,t.createRxDatabase)(Object.assign({name:c},n.defaultConfig,{localDocuments:!0}))});return await(l?.addCollections(u.userCollections)),await D('user',l,o,u.userCollections),l}catch(t){C.error('Failed to create user database',{showToast:!0,saveToDb:!0,context:{errorCode:s.ERROR_CODES.CONNECTION_FAILED,databaseName:c,error:t instanceof Error?t.message:String(t)}})}},N=async o=>{const{oldName:c,newName:l}=(0,b.getStoreDatabaseNames)(o);try{const o=await(0,t.createRxDatabase)(Object.assign({name:l,allowSlowCount:!0},n.defaultConfig,{localDocuments:!0,closeDuplicates:!0})),s=await S({database:o,name:l,config:n.defaultConfig,recreate:()=>(0,t.createRxDatabase)(Object.assign({name:l,allowSlowCount:!0},n.defaultConfig,{localDocuments:!0,closeDuplicates:!0}))});return await(s?.addCollections(u.storeCollections)),await D('store',s,c,u.storeCollections),s}catch(t){C.error('Failed to create store database',{showToast:!0,saveToDb:!0,context:{errorCode:s.ERROR_CODES.CONNECTION_FAILED,databaseName:l,storeId:o,error:t instanceof Error?t.message:String(t)}})}},p=async o=>{const{oldName:n,newName:c}=(0,b.getFastStoreDatabaseNames)(o);try{const o=await(0,t.createRxDatabase)(Object.assign({name:c,allowSlowCount:!0},l.fastStorageConfig,{localDocuments:!0,closeDuplicates:!0})),s=await S({database:o,name:c,config:l.fastStorageConfig,recreate:()=>(0,t.createRxDatabase)(Object.assign({name:c,allowSlowCount:!0},l.fastStorageConfig,{localDocuments:!0,closeDuplicates:!0}))});return await(s?.addCollections(u.syncCollections)),await D('fast-store',s,n,u.syncCollections),s}catch(t){C.error('Failed to create fast store database',{showToast:!0,saveToDb:!0,context:{errorCode:s.ERROR_CODES.CONNECTION_FAILED,databaseName:c,storeId:o,error:t instanceof Error?t.message:String(t)}})}},y=async()=>{try{const o=await(0,t.createRxDatabase)(Object.assign({name:'temporary'},c.ephemeralStorageConfig));return(await(o?.addCollections(u.temporaryCollections))).orders.postCreate(function(t,o){Object.defineProperty(o,'isNew',{get:()=>!0})}),o}catch(t){C.error('Failed to create temporary database',{showToast:!0,saveToDb:!0,context:{errorCode:s.ERROR_CODES.CONNECTION_FAILED,databaseName:'temporary',error:t instanceof Error?t.message:String(t)}})}}},2625,{"0":1989,"1":1930,"2":2595,"3":2626,"4":3107,"5":3116,"6":2596,"7":3117,"8":3118,"9":2707,"10":1939,"11":5621,"12":5622,"paths":{"5621":((window.cdnBaseUrl||"").replace(/\/$/,""))+"/_expo/static/js/web/run-storage-migration-f05d8684c4a6f54aa51497bbc8719e4b.js","5622":((window.cdnBaseUrl||"").replace(/\/$/,""))+"/_expo/static/js/web/verify-migration-8b158f6ee6fa844a09031efae0961c1d.js"}});
2773+ __d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"createUserDB",{enumerable:!0,get:function(){return O}}),Object.defineProperty(e,"createStoreDB",{enumerable:!0,get:function(){return N}}),Object.defineProperty(e,"createFastStoreDB",{enumerable:!0,get:function(){return p}}),Object.defineProperty(e,"createTemporaryDB",{enumerable:!0,get:function(){return y}});var t=r(d[0]),o=r(d[1]),s=r(d[2]),n=r(d[3]),c=r(d[4]),l=r(d[5]),u=r(d[6]),b=r(d[7]),f=r(d[8]);const C=(0,o.getLogger)(['wcpos','db','create']),A=Date.now(),D=async(t,o,s,n)=>{const[{getStorageMigrationConfig:c,prepareOldDatabaseForStorageMigration:l},{runStorageMigration:u},{verifyStorageMigration:b}]=await Promise.all([r(d[10])(d[9],d.paths),r(d[10])(d[11],d.paths),r(d[10])(d[12],d.paths)]),{oldStorage:f,sourceStorage:C,targetStorage:D}=c(t);await b({database:o,oldDatabaseName:s,sourceStorage:C,targetStorage:D,launchStartedAt:A}),await u({database:o,oldDatabaseName:s,oldStorage:f,sourceStorage:C,targetStorage:D,prepareOldDatabase:n?()=>l({oldDatabaseName:s,oldStorage:f,collections:n}):void 0})},w=t=>{if(t){if(t.data)return t.data;if('function'==typeof t.toJSON){const o=t.toJSON();return o?.data??o}return t}},S=async({database:o,name:s,config:n,recreate:c})=>{const l=await o.getLocal((0,f.getMigrationLocalDocId)(s));return'failed'!==(u=l,w(u)?.status)?o:(C.warn(`Storage migration previously failed for "${s}" \u2014 resetting target database`,{context:{databaseName:s}}),await o.close(),await(0,t.removeRxDatabase)(s,n.storage,n.multiInstance??!0),c());var u},O=async()=>{const{oldName:o,newName:c}=(0,b.getUserDatabaseNames)();try{const s=await(0,t.createRxDatabase)(Object.assign({name:c},n.defaultConfig,{localDocuments:!0})),l=await S({database:s,name:c,config:n.defaultConfig,recreate:()=>(0,t.createRxDatabase)(Object.assign({name:c},n.defaultConfig,{localDocuments:!0}))});return await(l?.addCollections(u.userCollections)),await D('user',l,o,u.userCollections),l}catch(t){C.error('Failed to create user database',{showToast:!0,saveToDb:!0,context:{errorCode:s.ERROR_CODES.CONNECTION_FAILED,databaseName:c,error:t instanceof Error?t.message:String(t)}})}},N=async o=>{const{oldName:c,newName:l}=(0,b.getStoreDatabaseNames)(o);try{const o=await(0,t.createRxDatabase)(Object.assign({name:l,allowSlowCount:!0},n.defaultConfig,{localDocuments:!0,closeDuplicates:!0})),s=await S({database:o,name:l,config:n.defaultConfig,recreate:()=>(0,t.createRxDatabase)(Object.assign({name:l,allowSlowCount:!0},n.defaultConfig,{localDocuments:!0,closeDuplicates:!0}))});return await(s?.addCollections(u.storeCollections)),await D('store',s,c,u.storeCollections),s}catch(t){C.error('Failed to create store database',{showToast:!0,saveToDb:!0,context:{errorCode:s.ERROR_CODES.CONNECTION_FAILED,databaseName:l,storeId:o,error:t instanceof Error?t.message:String(t)}})}},p=async o=>{const{oldName:n,newName:c}=(0,b.getFastStoreDatabaseNames)(o);try{const o=await(0,t.createRxDatabase)(Object.assign({name:c,allowSlowCount:!0},l.fastStorageConfig,{localDocuments:!0,closeDuplicates:!0})),s=await S({database:o,name:c,config:l.fastStorageConfig,recreate:()=>(0,t.createRxDatabase)(Object.assign({name:c,allowSlowCount:!0},l.fastStorageConfig,{localDocuments:!0,closeDuplicates:!0}))});return await(s?.addCollections(u.syncCollections)),await D('fast-store',s,n,u.syncCollections),s}catch(t){C.error('Failed to create fast store database',{showToast:!0,saveToDb:!0,context:{errorCode:s.ERROR_CODES.CONNECTION_FAILED,databaseName:c,storeId:o,error:t instanceof Error?t.message:String(t)}})}},y=async()=>{try{const o=await(0,t.createRxDatabase)(Object.assign({name:'temporary'},c.ephemeralStorageConfig));return(await(o?.addCollections(u.temporaryCollections))).orders.postCreate(function(t,o){Object.defineProperty(o,'isNew',{get:()=>!0})}),o}catch(t){C.error('Failed to create temporary database',{showToast:!0,saveToDb:!0,context:{errorCode:s.ERROR_CODES.CONNECTION_FAILED,databaseName:'temporary',error:t instanceof Error?t.message:String(t)}})}}},2625,{"0":1989,"1":1930,"2":2595,"3":2626,"4":3107,"5":3116,"6":2596,"7":3117,"8":3118,"9":2707,"10":1939,"11":5621,"12":5622,"paths":{"5621":((window.cdnBaseUrl||"").replace(/\/$/,""))+"/_expo/static/js/web/run-storage-migration-f05d8684c4a6f54aa51497bbc8719e4b.js","5622":((window.cdnBaseUrl||"").replace(/\/$/,""))+"/_expo/static/js/web/verify-migration-8b158f6ee6fa844a09031efae0961c1d.js"}});
27742774__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"storage",{enumerable:!0,get:function(){return c}}),Object.defineProperty(e,"defaultConfig",{enumerable:!0,get:function(){return f}});var t=r(d[0]),o=r(d[1]),n=r(d[2]);const u=(0,o.getWebNewStorage)(),c=(0,n.wrappedErrorHandlerStorage)({storage:u}),f=((0,t.wrappedValidateZSchemaStorage)({storage:c}),{storage:c,ignoreDuplicate:!1})},2626,[2627,2707,3106]);
27752775__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0});var t=r(d[0]);Object.keys(t).forEach(function(n){'default'===n||Object.prototype.hasOwnProperty.call(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})})},2627,[2628]);
27762776__d(function(g,r,i,a,m,_e,d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"ZSchemaClass",{enumerable:!0,get:function(){return l}}),_e.getZSchema=o,_e.getValidator=s,Object.defineProperty(_e,"wrappedValidateZSchemaStorage",{enumerable:!0,get:function(){return f}});var e,t,n=r(d[0]),u=(e=n)&&e.__esModule?e:{default:e},c=r(d[1]),l=u.default;function o(){return t||(t=u.default.create({strictMode:!1})),t}function s(e){return t=>{var n,u=(n=t,o().validateSafe(n,e));if(u.valid)return[];var c=u.error?.details||u.err?.details||[];return c?c.map(({title:e,description:t,message:n,path:u})=>({title:e,description:t,message:n,path:u})):[]}}var f=(0,c.wrappedValidateStorageFactory)(s,'z-schema')},2628,[2629,2353]);
0 commit comments