@flumens/utils 0.13.0 → 0.15.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.
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});const t=require("tslib");class i{constructor(t,e,r,s){this.migrations=t,this.newVersion=e,this.currentVersion=r,this.updateVersion=s;this.migrations.sort(((t,e)=>{const r=i.versionCompare(t.version,e.version);return 1===r?1:-1===r?-1:0}))}run(){return t.__awaiter(this,void 0,void 0,(function*(){const t=yield this.currentVersion(),i=yield this.newVersion();if(t!==i){if(!this.currentVersion)return console.log(`First run - setting version to ${i}`),void(yield this.updateVersion(i));const e=this.findFirstMigrationIndex(t);if(e<0)return;yield this.applyUpdates(e)}}))}findFirstMigrationIndex(t){if(!this.migrations.length)return-1;let e=-1;return this.migrations.some(((r,s)=>1===i.versionCompare(r.version,t)&&(e=s,!0))),e}applyUpdates(i){return t.__awaiter(this,void 0,void 0,(function*(){const t=this.migrations[i];try{console.log(`Update: ${t.version} ${t.name||""}`),yield t.up(),yield this.updateVersion(t.version)}catch(t){throw console.error(t),t}this.migrations.length-1<=i||(yield this.applyUpdates(i+1))}))}static versionCompare(t,i){if(typeof t+typeof i!="stringstring")return 0;const e=t.split("."),r=i.split("."),s=Math.max(e.length,r.length);for(let t=0;t<s;t++){if(e[t]&&!r[t]&&parseInt(e[t],10)>0||parseInt(e[t],10)>parseInt(r[t],10))return 1;if(r[t]&&!e[t]&&parseInt(r[t],10)>0||parseInt(e[t],10)<parseInt(r[t],10))return-1}return 0}}exports.default=i;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("tslib");class i{constructor(t,e,r,s){this.migrations=t,this.newVersion=e,this.currentVersion=r,this.updateVersion=s;this.migrations.sort(((t,e)=>{const r=i.versionCompare(t.version,e.version);return 1===r?1:-1===r?-1:0}))}run(){return t.__awaiter(this,void 0,void 0,(function*(){const t=yield this.currentVersion(),i=yield this.newVersion();if(t!==i){if(!this.currentVersion)return console.log(`First run - setting version to ${i}`),void(yield this.updateVersion(i));const e=this.findFirstMigrationIndex(t);if(e<0)return;yield this.applyUpdates(e)}}))}findFirstMigrationIndex(t){if(!this.migrations.length)return-1;let e=-1;return this.migrations.some(((r,s)=>1===i.versionCompare(r.version,t)&&(e=s,!0))),e}applyUpdates(i){return t.__awaiter(this,void 0,void 0,(function*(){const t=this.migrations[i];try{console.log(`Update: ${t.version} ${t.name||""}`),yield t.up(),yield this.updateVersion(t.version)}catch(t){throw console.error(t),t}this.migrations.length-1<=i||(yield this.applyUpdates(i+1))}))}static versionCompare(t,i){if(typeof t+typeof i!="stringstring")return 0;const e=t.split("."),r=i.split("."),s=Math.max(e.length,r.length);for(let t=0;t<s;t++){if(e[t]&&!r[t]&&parseInt(e[t],10)>0||parseInt(e[t],10)>parseInt(r[t],10))return 1;if(r[t]&&!e[t]&&parseInt(r[t],10)>0||parseInt(e[t],10)<parseInt(r[t],10))return-1}return 0}}exports.default=i;
package/dist/cases.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getCamelCaseObj=exports.snakeCase=exports.camelCase=void 0;exports.camelCase=e=>{if(!e)return"";return e.replace(/([a-z])([A-Z])/g,"$1 $2").replace(/([A-Z])([A-Z][a-z])/g,"$1 $2").replace(/[^a-zA-Z0-9]+/g," ").trim().toLowerCase().split(/\s+/).map(((e,r)=>0===r?e:e.charAt(0).toUpperCase()+e.slice(1))).join("")};exports.snakeCase=e=>{if(!e)return"";return e.replace(/([a-z\d])([A-Z])/g,"$1 $2").replace(/([A-Z])([A-Z][a-z])/g,"$1 $2").replace(/[^a-zA-Z0-9]+/g," ").trim().toLowerCase().split(/\s+/).join("_")};exports.getCamelCaseObj=e=>((e,r)=>{const a={};return Object.keys(e).forEach((s=>{const t=s,o=r(e[t],s);a[o]=e[t]})),a})(e,((e,r)=>(0,exports.camelCase)(r)));
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});const e=e=>{if(!e)return"";return e.replace(/([a-z])([A-Z])/g,"$1 $2").replace(/([A-Z])([A-Z][a-z])/g,"$1 $2").replace(/[^a-zA-Z0-9]+/g," ").trim().toLowerCase().split(/\s+/).map(((e,r)=>0===r?e:e.charAt(0).toUpperCase()+e.slice(1))).join("")};exports.camelCase=e,exports.getCamelCaseObj=r=>((e,r)=>{const t={};return Object.keys(e).forEach((a=>{const s=a,o=r(e[s],a);t[o]=e[s]})),t})(r,((r,t)=>e(t))),exports.snakeCase=e=>{if(!e)return"";return e.replace(/([a-z\d])([A-Z])/g,"$1 $2").replace(/([A-Z])([A-Z][a-z])/g,"$1 $2").replace(/[^a-zA-Z0-9]+/g," ").trim().toLowerCase().split(/\s+/).join("_")};
package/dist/date.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.toISOTimezoneString=exports.isValidDate=exports.getRelativeDate=exports.timeFormat=exports.dateFormatISO=exports.dateFormatGB=exports.dateFormat=void 0,exports.dateFormat=new Intl.DateTimeFormat("en-GB",{day:"numeric",month:"numeric",year:"numeric"}),exports.dateFormatGB=exports.dateFormat,exports.dateFormatISO=new Intl.DateTimeFormat("lt-LT",{day:"numeric",month:"numeric",year:"numeric"}),exports.timeFormat=new Intl.DateTimeFormat("en-GB",{hour:"numeric",minute:"numeric"});exports.getRelativeDate=e=>{const t=new Date(e),r=exports.dateFormatGB.format(t),a=new Date;if(exports.dateFormatGB.format(a)===r)return"Today";const o=new Date;o.setDate(o.getDate()-1);return exports.dateFormatGB.format(o)===r?"Yesterday":r};exports.isValidDate=e=>{const t=new Date(e);return t instanceof Date&&!isNaN(t)};exports.toISOTimezoneString=e=>{const t=-e.getTimezoneOffset(),r=t>=0?"+":"-",a=function(e){return(e<10?"0":"")+e};return`${e.getFullYear()}-${a(e.getMonth()+1)}-${a(e.getDate())}T${a(e.getHours())}:${a(e.getMinutes())}:${a(e.getSeconds())}${r}${a(Math.floor(Math.abs(t)/60))}:${a(Math.abs(t)%60)}`};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});const e=new Intl.DateTimeFormat("en-GB",{day:"numeric",month:"numeric",year:"numeric"}),t=e,r=new Intl.DateTimeFormat("lt-LT",{day:"numeric",month:"numeric",year:"numeric"}),n=new Intl.DateTimeFormat("en-GB",{hour:"numeric",minute:"numeric"});exports.dateFormat=e,exports.dateFormatGB=t,exports.dateFormatISO=r,exports.getRelativeDate=e=>{const r=new Date(e),n=t.format(r),a=new Date;if(t.format(a)===n)return"Today";const o=new Date;o.setDate(o.getDate()-1);return t.format(o)===n?"Yesterday":n},exports.isValidDate=e=>{const t=new Date(e);return!Number.isNaN(t.getTime())},exports.timeFormat=n,exports.toISOTimezoneString=e=>{const t=-e.getTimezoneOffset(),r=t>=0?"+":"-",n=function(e){return(e<10?"0":"")+e};return`${e.getFullYear()}-${n(e.getMonth()+1)}-${n(e.getDate())}T${n(e.getHours())}:${n(e.getMinutes())}:${n(e.getSeconds())}${r}${n(Math.floor(Math.abs(t)/60))}:${n(Math.abs(t)%60)}`};
@@ -3,10 +3,10 @@ export declare class Deferred<T> implements Promise<T> {
3
3
  private _rejectSelf;
4
4
  private promise;
5
5
  constructor();
6
- then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): Promise<TResult1 | TResult2>;
7
- catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): Promise<T | TResult>;
8
- finally<TResult = never>(onFinally?: (() => void) | undefined | null): Promise<T | TResult>;
6
+ then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | undefined | null): Promise<TResult1 | TResult2>;
7
+ catch<TResult = never>(onrejected?: ((reason: unknown) => TResult | PromiseLike<TResult>) | undefined | null): Promise<T | TResult>;
8
+ finally(onFinally?: (() => void) | undefined | null): Promise<T>;
9
9
  resolve(val: T): void;
10
- reject(reason: any): void;
11
- [Symbol.toStringTag]: 'Promise';
10
+ reject(reason?: unknown): void;
11
+ [Symbol.toStringTag]: string;
12
12
  }
package/dist/deferred.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Deferred=void 0;exports.Deferred=class{constructor(){this.promise=new Promise(((e,r)=>{this._resolveSelf=e,this._rejectSelf=r}))}then(e,r){return this.promise.then(e,r)}catch(e){return this.promise.catch(e)}finally(e){return this.promise.finally(e)}resolve(e){this._resolveSelf(e)}reject(e){this._rejectSelf(e)}};
1
+ "use strict";var e;Object.defineProperty(exports,"__esModule",{value:!0});e=Symbol.toStringTag,exports.Deferred=class{constructor(){this[e]="Promise",this.promise=new Promise(((e,r)=>{this._resolveSelf=e,this._rejectSelf=r}))}then(e,r){return this.promise.then(e,r)}catch(e){return this.promise.catch(e)}finally(e){return this.promise.finally(e)}resolve(e){this._resolveSelf(e)}reject(e){this._rejectSelf(e)}};
package/dist/device.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});const e=require("tslib"),n=require("mobx"),i=require("@capacitor/device"),o=require("@capacitor/network"),t=(0,n.observable)({isOnline:!1,connectionType:"unknown",info:void 0});o.Network.addListener("networkStatusChange",(({connected:e})=>{t.isOnline=e})),e.__awaiter(void 0,void 0,void 0,(function*(){const{connected:e,connectionType:n}=yield o.Network.getStatus();t.isOnline=e,t.connectionType=n})),e.__awaiter(void 0,void 0,void 0,(function*(){const e=yield i.Device.getInfo();t.info=e})),exports.default=t;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("tslib"),n=require("mobx"),i=require("@capacitor/device"),o=require("@capacitor/network");const t=n.observable({isOnline:!1,connectionType:"unknown",info:void 0});o.Network.addListener("networkStatusChange",(({connected:e})=>{t.isOnline=e})),e.__awaiter(void 0,void 0,void 0,(function*(){const{connected:e,connectionType:n}=yield o.Network.getStatus();t.isOnline=e,t.connectionType=n})),e.__awaiter(void 0,void 0,void 0,(function*(){const e=yield i.Device.getInfo();t.info=e})),exports.default=t;
package/dist/errors.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- import { AxiosError } from 'axios';
2
1
  /**
3
2
  * Error that should not be sent to the backend analytics. Can still be displayed
4
3
  * to the user in the UI.
@@ -6,4 +5,6 @@ import { AxiosError } from 'axios';
6
5
  export declare class HandledError extends Error {
7
6
  isHandled: boolean;
8
7
  }
9
- export declare const isAxiosNetworkError: (error: AxiosError) => boolean;
8
+ export declare const isAxiosNetworkError: (error: {
9
+ code?: string;
10
+ }) => boolean;
package/dist/errors.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.isAxiosNetworkError=exports.HandledError=void 0;const r=require("axios");class o extends Error{constructor(){super(...arguments),this.isHandled=!0}}exports.HandledError=o;exports.isAxiosNetworkError=o=>r.AxiosError.ETIMEDOUT===o.code||r.AxiosError.ECONNABORTED===o.code||r.AxiosError.ERR_CANCELED===o.code||r.AxiosError.ERR_NETWORK===o.code;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});class e extends Error{constructor(){super(...arguments),this.isHandled=!0}}exports.HandledError=e,exports.isAxiosNetworkError=e=>["ETIMEDOUT","ECONNABORTED","ERR_CANCELED","ERR_NETWORK"].includes(e.code||"");
package/dist/image.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.createImage=void 0,exports.getObjectURL=a,exports.saveFile=function(e,o){return t.__awaiter(this,void 0,void 0,(function*(){if(!r.Capacitor.isNativePlatform())return a(e);yield i.Filesystem.writeFile({path:o,data:e,directory:i.Directory.Data});const{uri:t}=yield i.Filesystem.stat({path:o,directory:i.Directory.Data});return t}))},exports.deleteFile=function(e){return t.__awaiter(this,void 0,void 0,(function*(){r.Capacitor.isNativePlatform()&&(yield i.Filesystem.deleteFile({path:e,directory:i.Directory.Data}))}))},exports.resizeImage=o,exports.cropImage=function(e,r){return t.__awaiter(this,arguments,void 0,(function*(t,e,r=0){const i=yield(0,exports.createImage)(t),a=document.createElement("canvas"),o=a.getContext("2d");if(!o)return"";const s=n(r),{width:c,height:l}=function(t,e,r){const i=n(r),a=Math.abs(Math.cos(i)*t)+Math.abs(Math.sin(i)*e),o=Math.abs(Math.sin(i)*t)+Math.abs(Math.cos(i)*e);return{width:a,height:o}}(i.width,i.height,r);a.width=c,a.height=l,o.translate(c/2,l/2),o.rotate(s),o.translate(-i.width/2,-i.height/2),o.drawImage(i,0,0);const u=document.createElement("canvas"),d=u.getContext("2d");return d?(u.width=e.width,u.height=e.height,d.drawImage(a,e.x,e.y,e.width,e.height,0,0,e.width,e.height),u.toDataURL()):""}))},exports.isDataURL=c,exports.dataURItoBlob=l,exports.getBlobFromURL=function(t,e){if(c(t)){const r=l(t,e);return Promise.resolve(r)}return new Promise((e=>{const r=new XMLHttpRequest;r.open("GET",t,!0),r.responseType="blob",r.onload=()=>{const t=r.response;e(t)},r.send()}))},exports.captureImage=function(){return t.__awaiter(this,arguments,void 0,(function*(r={}){const a=yield function(r){return t.__awaiter(this,void 0,void 0,(function*(){const{camera:i,multiple:a,getPhoto:o}=r,n=t.__rest(r,["camera","multiple","getPhoto"]);if(o){const t=yield o();return t?[t]:[]}if(a)try{const t=Object.assign({quality:40,correctOrientation:!0,limit:30},n);return(yield e.Camera.pickImages(t)).photos}catch(t){if(t.message.includes("User cancelled photos app")||t.message.includes("No images picked"))return[];throw t}try{const t=Object.assign({quality:40,allowEditing:!1,saveToGallery:!0,webUseInput:!0,correctOrientation:!0,resultType:e.CameraResultType.Uri,source:i?e.CameraSource.Camera:e.CameraSource.Photos},n);return[yield e.Camera.getPhoto(t)]}catch(t){if(t.message.includes("User cancelled photos app")||t.message.includes("No image picked"))return[];throw t}}))}(r),o=[];for(const t of a){const{path:e}=t;if(!e){t.webPath&&o.push(t.webPath);continue}const r=yield s(e);if(e.includes("/tmp/")||e.includes("/cache/"))try{yield i.Filesystem.deleteFile({path:e})}catch(t){}o.push(r)}return o}))};const t=require("tslib"),e=require("@capacitor/camera"),r=require("@capacitor/core"),i=require("@capacitor/filesystem");function a(t){const e=t.split(",")[0].split(":")[1].split(";")[0],r=window.atob(t.split(",")[1]),i=[];for(let t=0;t<r.length;t++)i.push(r.charCodeAt(t));const a=new Blob([new Uint8Array(i)],{type:e});return window.URL.createObjectURL(a)}function o({url:t,fileType:e="image/jpeg",MAX_WIDTH:r=2e3,MAX_HEIGHT:i=2e3}){return new Promise((a=>{const o=new window.Image;o.onload=()=>{var t;let{width:n}=o,{height:s}=o;let c=null;c=n>s?n/(r>n?n:r):s/(i>s?s:i),n/=c,s/=c;const l=document.createElement("canvas");l.width=n,l.height=s,null===(t=l.getContext("2d"))||void 0===t||t.drawImage(o,0,0,n,s),a([o,l.toDataURL(e)])},o.src=t}))}function n(t){return t*Math.PI/180}function s(e){return t.__awaiter(this,void 0,void 0,(function*(){const t=`${Date.now()}.jpeg`,[,a]=yield o({url:r.Capacitor.convertFileSrc(e)});yield i.Filesystem.writeFile({path:t,data:a,directory:i.Directory.Data});const{uri:n}=yield i.Filesystem.stat({path:t,directory:i.Directory.Data});return n}))}function c(t){if(!t)return!1;return!!t.toString().match(/^\s*data:([a-z]+\/[a-z]+(;[a-z\-]+\=[a-z\-]+)?)?(;base64)?,[a-z0-9\!\$\&\'\,\(\)\*\+\,\;\=\-\.\_\~\:\@\/\?\%\s]*\s*$/i)}function l(t,e){const r=atob(t.split(",")[1]),i=[];for(let t=0;t<r.length;t++)i.push(r.charCodeAt(t));return new Blob([new Uint8Array(i)],{type:e})}exports.createImage=t=>new Promise(((e,r)=>{const i=new window.Image;i.onload=()=>e(i),i.onerror=t=>r(t),i.src=t}));
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("tslib"),e=require("@capacitor/camera"),r=require("@capacitor/core"),i=require("@capacitor/filesystem");function o(t){const e=t.split(",")[0].split(":")[1].split(";")[0],r=window.atob(t.split(",")[1]),i=[];for(let t=0;t<r.length;t++)i.push(r.charCodeAt(t));const o=new Blob([new Uint8Array(i)],{type:e});return window.URL.createObjectURL(o)}const a=t=>new Promise(((e,r)=>{const i=new window.Image;i.onload=()=>e(i),i.onerror=t=>r(t),i.src=t}));function n({url:t,fileType:e="image/jpeg",MAX_WIDTH:r=2e3,MAX_HEIGHT:i=2e3}){return new Promise((o=>{const a=new window.Image;a.onload=()=>{var t;let{width:n}=a,{height:s}=a;let c=null;c=n>s?n/(r>n?n:r):s/(i>s?s:i),n/=c,s/=c;const l=document.createElement("canvas");l.width=n,l.height=s,null===(t=l.getContext("2d"))||void 0===t||t.drawImage(a,0,0,n,s),o([a,l.toDataURL(e)])},a.src=t}))}function s(t){return t*Math.PI/180}function c(e){return t.__awaiter(this,void 0,void 0,(function*(){const t=`${Date.now()}.jpeg`,[,o]=yield n({url:r.Capacitor.convertFileSrc(e)});yield i.Filesystem.writeFile({path:t,data:o,directory:i.Directory.Data});const{uri:a}=yield i.Filesystem.stat({path:t,directory:i.Directory.Data});return a}))}function l(t){if(!t)return!1;return!!t.toString().match(/^\s*data:([a-z]+\/[a-z]+(;[a-z\-]+\=[a-z\-]+)?)?(;base64)?,[a-z0-9\!\$\&\'\,\(\)\*\+\,\;\=\-\.\_\~\:\@\/\?\%\s]*\s*$/i)}function u(t,e){const r=atob(t.split(",")[1]),i=[];for(let t=0;t<r.length;t++)i.push(r.charCodeAt(t));return new Blob([new Uint8Array(i)],{type:e})}exports.captureImage=function(){return t.__awaiter(this,arguments,void 0,(function*(r={}){const o=yield function(r){return t.__awaiter(this,void 0,void 0,(function*(){const{camera:i,multiple:o,getPhoto:a}=r,n=t.__rest(r,["camera","multiple","getPhoto"]);if(a){const t=yield a();return t?[t]:[]}if(o)try{const t=Object.assign({quality:40,correctOrientation:!0,limit:30},n);return(yield e.Camera.pickImages(t)).photos}catch(t){const e=t instanceof Error?t.message:String(t);if(e.includes("User cancelled photos app")||e.includes("No images picked"))return[];throw t}try{const t=Object.assign({quality:40,allowEditing:!1,saveToGallery:!0,webUseInput:!0,correctOrientation:!0,resultType:e.CameraResultType.Uri,source:i?e.CameraSource.Camera:e.CameraSource.Photos},n);return[yield e.Camera.getPhoto(t)]}catch(t){const e=t instanceof Error?t.message:String(t);if(e.includes("User cancelled photos app")||e.includes("No image picked"))return[];throw t}}))}(r),a=[];for(const t of o){const{path:e}=t;if(!e){t.webPath&&a.push(t.webPath);continue}const r=yield c(e);if(e.includes("/tmp/")||e.includes("/cache/"))try{yield i.Filesystem.deleteFile({path:e})}catch(t){}a.push(r)}return a}))},exports.createImage=a,exports.cropImage=function(e,r){return t.__awaiter(this,arguments,void 0,(function*(t,e,r=0){const i=yield a(t),o=document.createElement("canvas"),n=o.getContext("2d");if(!n)return"";const c=s(r),{width:l,height:u}=function(t,e,r){const i=s(r);return{width:Math.abs(Math.cos(i)*t)+Math.abs(Math.sin(i)*e),height:Math.abs(Math.sin(i)*t)+Math.abs(Math.cos(i)*e)}}(i.width,i.height,r);o.width=l,o.height=u,n.translate(l/2,u/2),n.rotate(c),n.translate(-i.width/2,-i.height/2),n.drawImage(i,0,0);const d=document.createElement("canvas"),h=d.getContext("2d");return h?(d.width=e.width,d.height=e.height,h.drawImage(o,e.x,e.y,e.width,e.height,0,0,e.width,e.height),d.toDataURL()):""}))},exports.dataURItoBlob=u,exports.deleteFile=function(e){return t.__awaiter(this,void 0,void 0,(function*(){r.Capacitor.isNativePlatform()&&(yield i.Filesystem.deleteFile({path:e,directory:i.Directory.Data}))}))},exports.getBlobFromURL=function(t,e){if(l(t)){const r=u(t,e);return Promise.resolve(r)}return new Promise((e=>{const r=new XMLHttpRequest;r.open("GET",t,!0),r.responseType="blob",r.onload=()=>{const t=r.response;e(t)},r.send()}))},exports.getObjectURL=o,exports.isDataURL=l,exports.resizeImage=n,exports.saveFile=function(e,a){return t.__awaiter(this,void 0,void 0,(function*(){if(!r.Capacitor.isNativePlatform())return o(e);yield i.Filesystem.writeFile({path:a,data:e,directory:i.Directory.Data});const{uri:t}=yield i.Filesystem.stat({path:a,directory:i.Directory.Data});return t}))};
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.device=void 0;const e=require("tslib");e.__exportStar(require("./string.js"),exports);var r=require("./device.js");Object.defineProperty(exports,"device",{enumerable:!0,get:function(){return e.__importDefault(r).default}}),e.__exportStar(require("./cases.js"),exports),e.__exportStar(require("./deferred.js"),exports),e.__exportStar(require("./date.js"),exports),e.__exportStar(require("./image.js"),exports),e.__exportStar(require("./location.js"),exports),e.__exportStar(require("./type.js"),exports),e.__exportStar(require("./sentry.js"),exports),e.__exportStar(require("./errors.js"),exports),e.__exportStar(require("./platform.js"),exports),e.__exportStar(require("./uuid.js"),exports),e.__exportStar(require("./MigrationManager.js"),exports);
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./string.js"),r=require("./device.js"),t=require("./cases.js"),o=require("./deferred.js"),s=require("./date.js"),a=require("./image.js"),i=require("./location.js"),p=require("./sentry.js"),d=require("./errors.js"),x=require("./platform.js"),c=require("./uuid.js");require("tslib"),exports.capitalize=e.capitalize,exports.escape=e.escape,exports.limit=e.limit,exports.device=r.default,exports.camelCase=t.camelCase,exports.getCamelCaseObj=t.getCamelCaseObj,exports.snakeCase=t.snakeCase,exports.Deferred=o.Deferred,exports.dateFormat=s.dateFormat,exports.dateFormatGB=s.dateFormatGB,exports.dateFormatISO=s.dateFormatISO,exports.getRelativeDate=s.getRelativeDate,exports.isValidDate=s.isValidDate,exports.timeFormat=s.timeFormat,exports.toISOTimezoneString=s.toISOTimezoneString,exports.captureImage=a.captureImage,exports.createImage=a.createImage,exports.cropImage=a.cropImage,exports.dataURItoBlob=a.dataURItoBlob,exports.deleteFile=a.deleteFile,exports.getBlobFromURL=a.getBlobFromURL,exports.getObjectURL=a.getObjectURL,exports.isDataURL=a.isDataURL,exports.resizeImage=a.resizeImage,exports.saveFile=a.saveFile,exports.calculateLineLength=i.calculateLineLength,exports.checkGridType=i.checkGridType,exports.coordsToMeters=i.coordsToMeters,exports.doesExceedGridRef=i.doesExceedGridRef,exports.getGeomCenter=i.getGeomCenter,exports.getGeomMetersToLatLon=i.getGeomMetersToLatLon,exports.getGeomWKT=i.getGeomWKT,exports.getGridSquareCenter=i.getGridSquareCenter,exports.gridrefAccuracy=i.gridrefAccuracy,exports.gridrefStringToLatLng=i.gridrefStringToLatLng,exports.isInGB=i.isInGB,exports.isValidGridRef=i.isValidGridRef,exports.isValidLocation=i.isValidLocation,exports.locationToGrid=i.locationToGrid,exports.metersToCoords=i.metersToCoords,exports.normalizeCoords=i.normalizeCoords,exports.normalizeGridRefAcc=i.normalizeGridRefAcc,exports.parseGrid=i.parseGrid,exports.prettyPrintGridRef=i.prettyPrintGridRef,exports.prettyPrintLocation=i.prettyPrintLocation,exports.updateModelLocation=i.updateModelLocation,exports.options=p.options,exports.HandledError=d.HandledError,exports.isAxiosNetworkError=d.isAxiosNetworkError,exports.isPlatform=x.isPlatform,exports.UUIDv7=c.UUIDv7,exports.hashCode=c.hashCode;
@@ -1,9 +1,16 @@
1
1
  import { Polygon, LineString, MultiPolygon, Point } from 'geojson';
2
+ type GridCoords = {
3
+ x: number;
4
+ y: number;
5
+ country: string;
6
+ to_gridref: (precision: number) => string | null;
7
+ to_latLng: () => LatLng;
8
+ };
2
9
  export type Position = [number, number];
3
10
  export type Location = {
4
11
  latitude: number;
5
12
  longitude: number;
6
- gridref?: string;
13
+ gridref?: string | null;
7
14
  source?: string;
8
15
  accuracy?: number;
9
16
  altitude?: number;
@@ -13,11 +20,20 @@ export type Location = {
13
20
  center: Position;
14
21
  };
15
22
  };
16
- export declare const gridrefAccuracy: any;
23
+ export declare const gridrefAccuracy: {
24
+ readonly tetrad: {
25
+ readonly label: "Tetrad (2km square)";
26
+ readonly length: 5;
27
+ };
28
+ readonly monad: {
29
+ readonly label: "Monad (1km square)";
30
+ readonly length: 6;
31
+ };
32
+ };
17
33
  export declare function prettyPrintGridRef(gridRef: string): string;
18
- export declare function locationToGrid(location: Location): any;
19
- export declare function parseGrid(gridrefString: string): any;
20
- export declare function gridrefStringToLatLng(gridrefString: string): any;
34
+ export declare function locationToGrid(location: Location): string | null;
35
+ export declare function parseGrid(gridrefString: string): GridCoords | undefined;
36
+ export declare function gridrefStringToLatLng(gridrefString: string): LatLng | null;
21
37
  export declare function isValidGridRef(gridrefString: string): boolean;
22
38
  /**
23
39
  *
@@ -25,20 +41,37 @@ export declare function isValidGridRef(gridrefString: string): boolean;
25
41
  * @returns {Boolean}
26
42
  */
27
43
  export declare function isInGB(location: Location): boolean;
28
- export declare function updateModelLocation(model: any, location: Location, skipGridRef?: boolean): Promise<void>;
29
- export declare function prettyPrintLocation(location: any): string;
44
+ export type LocationModelLike = {
45
+ data: {
46
+ deleted?: boolean;
47
+ location?: (Partial<Location> & Record<string, unknown>) | null;
48
+ };
49
+ } & ({
50
+ setGPSLocation: (location: Location) => unknown;
51
+ save?: () => unknown;
52
+ } | {
53
+ setGPSLocation?: never;
54
+ save: () => unknown;
55
+ });
56
+ export declare function updateModelLocation(model: LocationModelLike, location: Location, skipGridRef?: boolean): Promise<void>;
57
+ type GridLocation = Pick<Location, 'latitude'> & {
58
+ gridref: string;
59
+ };
60
+ export declare function prettyPrintLocation(location?: Location | GridLocation | null): string;
30
61
  /**
31
62
  * Checks if location gridref size matches the provided one.
32
63
  * @param location
33
64
  * @param gridRefSize
34
65
  * @returns {boolean}
35
66
  */
36
- export declare function checkGridType(location: any, gridRefSize: any): boolean;
67
+ export declare function checkGridType(location: Pick<Location, 'gridref'>, gridRefSize?: keyof typeof gridrefAccuracy | null): boolean;
37
68
  /**
38
69
  * Checks if the location fits in the calculated grid reference square.
39
70
  * @private
40
71
  */
41
- export declare function doesExceedGridRef(gridCoords: any, location: any, normAcc: any): boolean;
72
+ export declare function doesExceedGridRef(gridCoords: Pick<GridCoords, 'x' | 'y'>, location: {
73
+ accuracy: number;
74
+ }, normAcc: number): boolean;
42
75
  /**
43
76
  * Returns a normalized grid square that takes into account the accuracy
44
77
  * of the location.
@@ -59,8 +92,10 @@ export declare function doesExceedGridRef(gridCoords: any, location: any, normAc
59
92
  * @param normAcc
60
93
  * @returns {*}
61
94
  */
62
- export declare function normalizeGridRefAcc(gridCoords: any, location: any, normAcc: any): any;
63
- export declare function getGridSquareCenter(gridref: string): any;
95
+ export declare function normalizeGridRefAcc(gridCoords: Pick<GridCoords, 'x' | 'y' | 'to_gridref'>, location: {
96
+ accuracy: number;
97
+ }, normAcc: number): string | null;
98
+ export declare function getGridSquareCenter(gridref: string): LatLng | null;
64
99
  type LatLng = {
65
100
  lat: number;
66
101
  lng: number;
package/dist/location.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.isValidLocation=exports.normalizeCoords=exports.gridrefAccuracy=void 0,exports.prettyPrintGridRef=n,exports.locationToGrid=i,exports.parseGrid=function(t){let e;const o=r.default.GridRefParser.factory(t);o&&(o.osRef.x+=o.length/2,o.osRef.y+=o.length/2,e=o.osRef);return e},exports.gridrefStringToLatLng=function(t){try{const e=r.default.GridRefParser.factory(t);return e?e.osRef.to_latLng():null}catch(t){console.error(t.message)}return null},exports.isValidGridRef=function(t){try{const e=r.default.GridRefParser.factory(t);return!(!e||!r.default.MappingUtils.is_gb_hectad(e.hectad))}catch(t){console.error(t.message)}return!1},exports.isInGB=function(t){if(t.latitude){const e=r.default.latlng_to_grid_coords(t.latitude,t.longitude);return!!e&&"GB"===e.country}return!1},exports.updateModelLocation=function(e,r){return t.__awaiter(this,arguments,void 0,(function*(t,e,r=!1){var o;if(null===(o=t.metadata)||void 0===o?void 0:o.deleted)return void console.warn("LocationUtils: skipping deleted model location set");const n=Object.assign({},e);n.latitude=parseFloat(parseFloat(`${n.latitude}`).toFixed(5)),n.longitude=parseFloat(parseFloat(`${n.longitude}`).toFixed(5)),(n.accuracy||Number.isFinite(n.accuracy))&&(n.accuracy=parseFloat(parseFloat(`${n.accuracy}`).toFixed(2))),(n.altitude||Number.isFinite(n.altitude))&&(n.altitude=parseFloat(parseFloat(`${n.altitude}`).toFixed(2))),(n.altitudeAccuracy||Number.isFinite(n.altitudeAccuracy))&&(n.altitudeAccuracy=parseFloat(parseFloat(`${n.altitudeAccuracy}`).toFixed(2))),n.source="gps",r||(n.gridref=i(n));const a=t.data.location,s=Object.assign(Object.assign({},a),n);t.setGPSLocation?yield t.setGPSLocation(s):(t.data.location=s,yield t.save())}))},exports.prettyPrintLocation=function(t){if(!t||!t.latitude)return"";if(t.gridref)return n(t.gridref);const e=i(t);if(e)return n(e);return`${parseFloat(t.latitude).toFixed(4)}, ${parseFloat(t.longitude).toFixed(4)}`},exports.checkGridType=function(t,e){if(!e)return!1;const r=t.gridref||"";let{length:o}=exports.gridrefAccuracy[e];/^.\d/.test(r)&&(o-=1);return r.length===o},exports.doesExceedGridRef=a,exports.normalizeGridRefAcc=function t(e,r,o){if(o>=1e4)return null;if(a(e,r,o))return t(e,r,10*o);return e.to_gridref(o)},exports.getGridSquareCenter=function(t){const e=r.default.GridRefParser.factory(t);if(!e)return null;const o=e.osRef;return new e.NationalRef(o.x+e.length/2,o.y+e.length/2).to_latLng()},exports.coordsToMeters=s,exports.metersToCoords=c,exports.getGeomMetersToLatLon=function(t){if("Point"===t.type)return Object.assign(Object.assign({},t),{coordinates:c(t.coordinates)});if("LineString"===t.type)return Object.assign(Object.assign({},t),{coordinates:t.coordinates.map((t=>c(t)))});if("Polygon"===t.type)return Object.assign(Object.assign({},t),{coordinates:t.coordinates.map((t=>t.map((t=>c(t)))))});return Object.assign(Object.assign({},t),{coordinates:t.coordinates.map((t=>t.map((t=>t.map((t=>c(t)))))))})},exports.getGeomWKT=function(t){const r=JSON.parse(JSON.stringify(t));"Polygon"===r.type?r.coordinates[0]=r.coordinates[0].map(s):r.coordinates=r.coordinates.map(s);return e.default.stringify(r)},exports.getGeomCenter=function(t){const e=JSON.parse(JSON.stringify(t));if("Polygon"===e.type)return[e.coordinates[0][0][0],e.coordinates[0][0][1]];return[e.coordinates[0][0],e.coordinates[0][1]]},exports.calculateLineLength=function(t){function e(t,e,r,o){const n=(r-t)*Math.PI/180;e=e*Math.PI/180,o=o*Math.PI/180;const i=n*Math.cos((e+o)/2),a=o-e;return 6371e3*Math.sqrt(i*i+a*a)}if(t.length<2)return 0;let r=0;for(let o=1;o<t.length;o++)r+=e(t[o-1][0],t[o-1][1],t[o][0],t[o][1]);return r};const t=require("tslib"),e=t.__importDefault(require("wellknown")),r=t.__importDefault(require("@flumens/bigu")),o=require("@mapbox/sphericalmercator");function n(t){const[,e]=t.match(/^([A-Z]*)\d/i),r=t.replace(e,""),o=r.length;if(o%2)return`${e} ${r}`;return`${e} ${r.slice(0,o/2)} ${r.slice(o/2)}`}function i(t){const e=r.default.latlng_to_grid_coords(t.latitude,t.longitude);if(!e||!Number.isFinite(t.accuracy))return null;const o=r.default.GridRefParser.get_normalized_precision(2*t.accuracy);return e.to_gridref(o)}function a(t,e,r){const{accuracy:o}=e,{x:n}=t,{y:i}=t;return n%r-o<0||(n%r+o>r||(i%r-o<0||i%r+o>r))}exports.gridrefAccuracy={tetrad:{label:"Tetrad (2km square)",length:5},monad:{label:"Monad (1km square)",length:6}};exports.normalizeCoords=({lat:t,lng:e})=>e>180?{lat:t,lng:e-180-180}:e<-180?{lat:t,lng:180+(e+180)}:{lat:t,lng:e};function s(t){const e=new o.SphericalMercator;return(([t,r])=>e.forward([t,r]))(t)}function c(t){const e=new o.SphericalMercator;return(([t,r])=>e.inverse([t,r]))(t)}exports.isValidLocation=t=>Number.isFinite(null==t?void 0:t.latitude)&&Number.isFinite(null==t?void 0:t.longitude);
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("tslib"),e=require("wellknown"),r=require("@flumens/bigu"),o=require("@mapbox/sphericalmercator");function n(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var i=n(e);const a=n(r).default,c={tetrad:{label:"Tetrad (2km square)",length:5},monad:{label:"Monad (1km square)",length:6}};function s(t){var e;const r=(null===(e=t.match(/^([A-Z]*)\d/i))||void 0===e?void 0:e[1])||"",o=t.replace(r,""),n=o.length;if(n%2)return`${r} ${o}`;return`${r} ${o.slice(0,n/2)} ${o.slice(n/2)}`}function l(t){const e=a.latlng_to_grid_coords(t.latitude,t.longitude);if(!e||!Number.isFinite(t.accuracy))return null;const r=a.GridRefParser.get_normalized_precision(2*t.accuracy);return e.to_gridref(r)}function u(t,e,r){const{accuracy:o}=e,{x:n}=t,{y:i}=t;return n%r-o<0||(n%r+o>r||(i%r-o<0||i%r+o>r))}function d(t){const e=new o.SphericalMercator;return(([t,r])=>e.forward([t,r]))(t)}function f(t){const e=new o.SphericalMercator;return(([t,r])=>e.inverse([t,r]))(t)}exports.calculateLineLength=function(t){function e(t,e,r,o){const n=(r-t)*Math.PI/180;e=e*Math.PI/180,o=o*Math.PI/180;const i=n*Math.cos((e+o)/2),a=o-e;return 6371e3*Math.sqrt(i*i+a*a)}if(t.length<2)return 0;let r=0;for(let o=1;o<t.length;o++)r+=e(t[o-1][0],t[o-1][1],t[o][0],t[o][1]);return r},exports.checkGridType=function(t,e){if(!e)return!1;const r=t.gridref||"";let{length:o}=c[e];return/^.\d/.test(r)&&(o-=1),r.length===o},exports.coordsToMeters=d,exports.doesExceedGridRef=u,exports.getGeomCenter=function(t){const e=JSON.parse(JSON.stringify(t));return"Polygon"===e.type?[e.coordinates[0][0][0],e.coordinates[0][0][1]]:[e.coordinates[0][0],e.coordinates[0][1]]},exports.getGeomMetersToLatLon=function(t){return"Point"===t.type?Object.assign(Object.assign({},t),{coordinates:f(t.coordinates)}):"LineString"===t.type?Object.assign(Object.assign({},t),{coordinates:t.coordinates.map((t=>f(t)))}):"Polygon"===t.type?Object.assign(Object.assign({},t),{coordinates:t.coordinates.map((t=>t.map((t=>f(t)))))}):Object.assign(Object.assign({},t),{coordinates:t.coordinates.map((t=>t.map((t=>t.map((t=>f(t)))))))})},exports.getGeomWKT=function(t){return"Polygon"===t.type?i.default.stringify({type:t.type,coordinates:t.coordinates.map(((t,e)=>t.map((t=>e?t:d(t)))))}):i.default.stringify({type:t.type,coordinates:t.coordinates.map((t=>d(t)))})},exports.getGridSquareCenter=function(t){const e=a.GridRefParser.factory(t);if(!e)return null;const r=e.osRef;return new e.NationalRef(r.x+e.length/2,r.y+e.length/2).to_latLng()},exports.gridrefAccuracy=c,exports.gridrefStringToLatLng=function(t){try{const e=a.GridRefParser.factory(t);return e?e.osRef.to_latLng():null}catch(t){console.error(t)}return null},exports.isInGB=function(t){if(t.latitude){const e=a.latlng_to_grid_coords(t.latitude,t.longitude);return!!e&&"GB"===e.country}return!1},exports.isValidGridRef=function(t){try{const e=a.GridRefParser.factory(t);return!(!e||!a.MappingUtils.is_gb_hectad(e.hectad))}catch(t){console.error(t)}return!1},exports.isValidLocation=t=>Number.isFinite(null==t?void 0:t.latitude)&&Number.isFinite(null==t?void 0:t.longitude),exports.locationToGrid=l,exports.metersToCoords=f,exports.normalizeCoords=({lat:t,lng:e})=>e>180?{lat:t,lng:e-180-180}:e<-180?{lat:t,lng:180+(e+180)}:{lat:t,lng:e},exports.normalizeGridRefAcc=function t(e,r,o){return o>=1e4?null:u(e,r,o)?t(e,r,10*o):e.to_gridref(o)},exports.parseGrid=function(t){let e;const r=a.GridRefParser.factory(t);return r&&(r.osRef.x+=r.length/2,r.osRef.y+=r.length/2,e=r.osRef),e},exports.prettyPrintGridRef=s,exports.prettyPrintLocation=function(t){if(!(null==t?void 0:t.latitude))return"";if(t.gridref)return s(t.gridref);const e=t,r=l(e);return r?s(r):`${t.latitude.toFixed(4)}, ${e.longitude.toFixed(4)}`},exports.updateModelLocation=function(e,r){return t.__awaiter(this,arguments,void 0,(function*(t,e,r=!1){if(t.data.deleted)return void console.warn("LocationUtils: skipping deleted model location set");const o=Object.assign({},e);o.latitude=parseFloat(parseFloat(`${o.latitude}`).toFixed(5)),o.longitude=parseFloat(parseFloat(`${o.longitude}`).toFixed(5)),(o.accuracy||Number.isFinite(o.accuracy))&&(o.accuracy=parseFloat(parseFloat(`${o.accuracy}`).toFixed(2))),(o.altitude||Number.isFinite(o.altitude))&&(o.altitude=parseFloat(parseFloat(`${o.altitude}`).toFixed(2))),(o.altitudeAccuracy||Number.isFinite(o.altitudeAccuracy))&&(o.altitudeAccuracy=parseFloat(parseFloat(`${o.altitudeAccuracy}`).toFixed(2))),o.source="gps",r||(o.gridref=l(o));const n=t.data.location,i=Object.assign(Object.assign({},n),o);t.setGPSLocation?yield t.setGPSLocation(i):(t.data.location=i,yield t.save())}))};
package/dist/platform.js CHANGED
@@ -1 +1 @@
1
- "use strict";var i;Object.defineProperty(exports,"__esModule",{value:!0}),exports.isPlatform=void 0;const o=!!(window||{}).cordova||!!(null===(i=(window||{}).Capacitor)||void 0===i?void 0:i.isNative);exports.isPlatform=i=>{if("undefined"==typeof window)return!1;const e=(i,o)=>o.test(i.navigator.userAgent);return"android"===i?(r=window,e(r,/android|sink/i)):"ios"===i?(i=>e(i,/iPhone|iPod/i)||(i=>!!e(i,/iPad/i)||!(!e(i,/Macintosh/i)||!(i=>((i,o)=>{var e;return null===(e=i.matchMedia)||void 0===e?void 0:e.call(i,o).matches})(i,"(any-pointer:coarse)"))(i)))(i))(window):"hybrid"===i&&o;var r};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.isPlatform=i=>{if("undefined"==typeof window)return!1;const o=(i,o)=>o.test(i.navigator.userAgent);return"android"===i?(e=window,o(e,/android|sink/i)):"ios"===i?(i=>o(i,/iPhone|iPod/i)||(i=>!!o(i,/iPad/i)||!(!o(i,/Macintosh/i)||!(i=>((i,o)=>{var e;return null===(e=i.matchMedia)||void 0===e?void 0:e.call(i,o).matches})(i,"(any-pointer:coarse)"))(i)))(i))(window):"hybrid"===i&&(i=>{const{cordova:o,Capacitor:e}=i;return Boolean(o||(null==e?void 0:e.isNative))})(window);var e};
package/dist/sentry.d.ts CHANGED
@@ -1 +1,2 @@
1
- export declare const options: any;
1
+ import * as Sentry from '@sentry/browser';
2
+ export declare const options: Sentry.BrowserOptions;
package/dist/sentry.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.options=void 0;const e=require("tslib").__importStar(require("@sentry/browser"));function t(e){return e.replace(/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/gi,"UUID")}const a=["timeout","network error","load failed","request aborted","request failed"],r=["re-login is required","incorrect password","refresh token is invalid"],o=["Unable to preventDefault inside passive event listener invocation.","AbortError: Fetch is aborted","Attempted to load an infinite number of tiles","No images picked","User cancelled photos app","No image picked","User denied access to camera","User denied access to photos","Failed to fetch"];exports.options={maxBreadcrumbs:400,ignoreErrors:o,beforeSend:(e,t)=>{var i,s,n,d;const l=(null===(s=null===(i=null==t?void 0:t.originalException)||void 0===i?void 0:i.message)||void 0===s?void 0:s.toLowerCase())||"";if("[object Object]"===e.message){const{message:t}=(null===(d=null===(n=e.extra)||void 0===n?void 0:n.arguments)||void 0===d?void 0:d[0])||{};if(!t||o.includes(t))return null;e.message=t}return a.find((e=>l.includes(e)))&&(e.tags||(e.tags={}),e.tags.type="network"),r.find((e=>l.includes(e)))&&(e.tags||(e.tags={}),e.tags.type="authentication"),e},beforeBreadcrumb:function(e,a){if("navigation"===e.category)return e.data={to:t(e.data.to),from:t(e.data.from)},e;if(e.category.startsWith("ui")){const{innerText:t,dataset:r}=a.event.target;t&&t.length<15&&(e.message=`[${t}] ${e.message}`),r.label&&(e.message=`[${r.label}] ${e.message}`)}if(["xhr","fetch"].includes(e.category)){if(e.data.url.startsWith("data:"))return null;if("GET"===e.data.method&&e.data.url.match(/api.mapbox.com/))return null;"GET"===e.data.method&&e.data.url.match(/jpeg$/i)&&(e.data.url=e.data.url.replace(/files\/\d+\.jpeg/i,"files/FILENAME.jpeg"))}return e},integrations:[e.captureConsoleIntegration({levels:["error"]}),e.dedupeIntegration()]};
1
+ "use strict";function e(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}Object.defineProperty(exports,"__esModule",{value:!0});var t=e(require("@sentry/browser"));function r(e){return e.replace(/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/gi,"UUID")}function n(e){return e instanceof Error||e&&"object"==typeof e&&"message"in e&&"string"==typeof e.message?e.message:""}const a=["timeout","network error","load failed","request aborted","request failed"],o=["re-login is required","incorrect password","refresh token is invalid"],i=["Unable to preventDefault inside passive event listener invocation.","AbortError: Fetch is aborted","Attempted to load an infinite number of tiles","No images picked","User cancelled photos app","No image picked","User denied access to camera","User denied access to photos","Failed to fetch"],s={maxBreadcrumbs:400,ignoreErrors:i,beforeSend:(e,t)=>{var r;const s=n(t.originalException).toLowerCase();if("[object Object]"===e.message){const t=null===(r=e.extra)||void 0===r?void 0:r.arguments,a=Array.isArray(t)?n(t[0]):"";if(!a||i.includes(a))return null;e.message=a}return a.find((e=>s.includes(e)))&&(e.tags||(e.tags={}),e.tags.type="network"),o.find((e=>s.includes(e)))&&(e.tags||(e.tags={}),e.tags.type="authentication"),e},beforeBreadcrumb:function(e,t){var n;if("navigation"===e.category){const{to:t,from:n}=e.data||{};return e.data={to:"string"==typeof t?r(t):t,from:"string"==typeof n?r(n):n},e}if(null===(n=e.category)||void 0===n?void 0:n.startsWith("ui")){const r=null==t?void 0:t.event,n=r instanceof Event?r.target:null;if(n instanceof HTMLElement){const{innerText:t,dataset:r}=n;t&&t.length<15&&(e.message=`[${t}] ${e.message}`),r.label&&(e.message=`[${r.label}] ${e.message}`)}}if(e.category&&["xhr","fetch"].includes(e.category)){const{method:t,url:r}=e.data||{};if("string"!=typeof r)return e;if(r.startsWith("data:"))return null;if("GET"===t&&r.match(/api.mapbox.com/))return null;"GET"===t&&r.match(/jpeg$/i)&&e.data&&(e.data.url=r.replace(/files\/\d+\.jpeg/i,"files/FILENAME.jpeg"))}return e},integrations:[t.captureConsoleIntegration({levels:["error"]}),t.dedupeIntegration()]};exports.options=s;
package/dist/string.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.capitalize=exports.escape=exports.limit=void 0;exports.limit=(e,t=20)=>{if(!e)return"";const r=e.toString(),i=r&&r.length>t?"...":"";return r?r.substring(0,t)+i:""};exports.escape=e=>{const t=document.createElement("div");t.appendChild(document.createTextNode(e.toString()));return t.innerHTML.trim()};exports.capitalize=e=>"string"!=typeof e?"":e.charAt(0).toUpperCase()+e.slice(1);
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.capitalize=e=>"string"!=typeof e?"":e.charAt(0).toUpperCase()+e.slice(1),exports.escape=e=>{const t=document.createElement("div");t.appendChild(document.createTextNode(e.toString()));return t.innerHTML.trim()},exports.limit=(e,t=20)=>{if(!e)return"";const r=e.toString(),n=r&&r.length>t?"...":"";return r?r.substring(0,t)+n:""};
package/dist/type.d.ts CHANGED
@@ -40,7 +40,7 @@ export type Optional<T, K extends keyof T> = Omit<T, K> & Partial<T>;
40
40
  * {a; b?; c}
41
41
  */
42
42
  export type OptionalExcept<T, K extends keyof T> = Pick<T, K> & Partial<T>;
43
- type CamelCase<S extends string> = S extends `${infer P1}_${infer P2}${infer P3}` ? `${Lowercase<P1>}${Uppercase<P2>}${CamelCase<P3>}` : Lowercase<S>;
43
+ type CamelCase<S extends string> = S extends `${infer P1}_${infer P2}${infer P3}` ? `${Lowercase<P1>}${Uppercase<P2>}${CamelCase<P3>}` : S extends Uncapitalize<S> ? S : Lowercase<S>;
44
44
  /**
45
45
  * Transforms snake-case keys to camel-case.
46
46
  */
package/dist/type.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});
1
+ "use strict";
package/dist/uuid.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.UUIDv7=void 0,exports.hashCode=function(t){let e,r,n=0;if(0===t.length)return n;for(e=0;e<t.length;e++)r=t.charCodeAt(e),n=(n<<5)-n+r,n|=0;return n};exports.UUIDv7=function(t){let e=-1,r=0;return()=>{const n=Math.max(Date.now(),e);r=n===e?r+1:0,e=n;const o=new Uint32Array(2);t(o),o[0]=2<<30|o[0]>>>2;const a=n.toString(16).padStart(12,"0")+"7"+r.toString(16).padStart(3,"0")+o[0].toString(16).padStart(8,"0")+o[1].toString(16).padStart(8,"0");return a.slice(0,8)+"-"+a.slice(8,12)+"-"+a.slice(12,16)+"-"+a.slice(16,20)+"-"+a.slice(20)}}((t=>crypto.getRandomValues(t)));
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});const t=function(t){let e=-1,r=0;return()=>{const n=Math.max(Date.now(),e);r=n===e?r+1:0,e=n;const o=new Uint32Array(2);t(o),o[0]=2<<30|o[0]>>>2;const a=n.toString(16).padStart(12,"0")+"7"+r.toString(16).padStart(3,"0")+o[0].toString(16).padStart(8,"0")+o[1].toString(16).padStart(8,"0");return a.slice(0,8)+"-"+a.slice(8,12)+"-"+a.slice(12,16)+"-"+a.slice(16,20)+"-"+a.slice(20)}}((t=>crypto.getRandomValues(t)));exports.UUIDv7=t,exports.hashCode=function(t){let e,r,n=0;if(0===t.length)return n;for(e=0;e<t.length;e++)r=t.charCodeAt(e),n=(n<<5)-n+r,n|=0;return n};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flumens/utils",
3
- "version": "0.13.0",
3
+ "version": "0.15.0",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "scripts": {
@@ -38,7 +38,7 @@
38
38
  "@sentry/browser": "^7 || ^8 || ^9 || ^10",
39
39
  "axios": "^1",
40
40
  "geojson": "^0.5.0",
41
- "mobx": "^6",
41
+ "mobx": "^6 || ^7",
42
42
  "wellknown": "0.5.0"
43
43
  },
44
44
  "jest": {