diff --git a/April 2 retail code.zip b/April 2 retail code.zip
new file mode 100644
index 0000000..1cf7d7b
Binary files /dev/null and b/April 2 retail code.zip differ
diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index 047665e..744ef89 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -49,7 +49,7 @@
-
+
diff --git a/index.html b/index.html
index da4fe25..3bc7693 100644
--- a/index.html
+++ b/index.html
@@ -3,9 +3,14 @@
-
-
-
+
+
@@ -77,7 +82,18 @@
}
});
-->
-
+
+
-->
+
+
+
diff --git a/package-lock.json b/package-lock.json
index 5b910b8..6c9cf87 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -9,10 +9,14 @@
"version": "0.0.0",
"dependencies": {
"@ant-design/plots": "^2.6.8",
+ "@capacitor-community/file-opener": "^8.0.0",
"@capacitor-community/speech-recognition": "^7.0.1",
"@capacitor-mlkit/barcode-scanning": "^8.0.1",
+ "@capacitor/android": "^8.3.0",
"@capacitor/app": "^8.0.1",
- "@capacitor/core": "^8.1.0",
+ "@capacitor/cli": "^8.3.0",
+ "@capacitor/core": "^8.3.0",
+ "@capacitor/filesystem": "^8.1.2",
"@dnd-kit/core": "^6.3.1",
"@dnd-kit/sortable": "^10.0.0",
"@emotion/react": "^11.11.4",
@@ -31,6 +35,7 @@
"apexcharts": "^5.10.4",
"axios": "^1.13.6",
"browser-image-compression": "^2.0.2",
+ "capacitor-usb-serial": "^1.0.3",
"classnames": "^2.5.1",
"cropperjs": "^1.6.2",
"crypto-js": "^4.1.1",
@@ -81,7 +86,9 @@
"devDependencies": {
"@types/react": "^18.3.3",
"@types/react-dom": "^18.3.0",
+ "@vitejs/plugin-legacy": "^8.0.0",
"@vitejs/plugin-react": "^6.0.1",
+ "esbuild": "^0.27.4",
"eslint": "^8.57.0",
"eslint-plugin-react": "^7.34.2",
"eslint-plugin-react-hooks": "^4.6.2",
@@ -500,6 +507,54 @@
"node": ">=6.9.0"
}
},
+ "node_modules/@babel/compat-data": {
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.0.tgz",
+ "integrity": "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/core": {
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz",
+ "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.29.0",
+ "@babel/generator": "^7.29.0",
+ "@babel/helper-compilation-targets": "^7.28.6",
+ "@babel/helper-module-transforms": "^7.28.6",
+ "@babel/helpers": "^7.28.6",
+ "@babel/parser": "^7.29.0",
+ "@babel/template": "^7.28.6",
+ "@babel/traverse": "^7.29.0",
+ "@babel/types": "^7.29.0",
+ "@jridgewell/remapping": "^2.3.5",
+ "convert-source-map": "^2.0.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.2",
+ "json5": "^2.2.3",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/babel"
+ }
+ },
+ "node_modules/@babel/core/node_modules/convert-source-map": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
+ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/@babel/generator": {
"version": "7.29.1",
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz",
@@ -516,6 +571,93 @@
"node": ">=6.9.0"
}
},
+ "node_modules/@babel/helper-annotate-as-pure": {
+ "version": "7.27.3",
+ "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz",
+ "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.27.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-compilation-targets": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz",
+ "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/compat-data": "^7.28.6",
+ "@babel/helper-validator-option": "^7.27.1",
+ "browserslist": "^4.24.0",
+ "lru-cache": "^5.1.1",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-create-class-features-plugin": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.6.tgz",
+ "integrity": "sha512-dTOdvsjnG3xNT9Y0AUg1wAl38y+4Rl4sf9caSQZOXdNqVn+H+HbbJ4IyyHaIqNR6SW9oJpA/RuRjsjCw2IdIow==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.27.3",
+ "@babel/helper-member-expression-to-functions": "^7.28.5",
+ "@babel/helper-optimise-call-expression": "^7.27.1",
+ "@babel/helper-replace-supers": "^7.28.6",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1",
+ "@babel/traverse": "^7.28.6",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-create-regexp-features-plugin": {
+ "version": "7.28.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.28.5.tgz",
+ "integrity": "sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.27.3",
+ "regexpu-core": "^6.3.1",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-define-polyfill-provider": {
+ "version": "0.6.8",
+ "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.8.tgz",
+ "integrity": "sha512-47UwBLPpQi1NoWzLuHNjRoHlYXMwIJoBf7MFou6viC/sIHWYygpvr0B6IAyh5sBdA2nr2LPIRww8lfaUVQINBA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-compilation-targets": "^7.28.6",
+ "@babel/helper-plugin-utils": "^7.28.6",
+ "debug": "^4.4.3",
+ "lodash.debounce": "^4.0.8",
+ "resolve": "^1.22.11"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+ }
+ },
"node_modules/@babel/helper-globals": {
"version": "7.28.0",
"resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz",
@@ -525,6 +667,20 @@
"node": ">=6.9.0"
}
},
+ "node_modules/@babel/helper-member-expression-to-functions": {
+ "version": "7.28.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.28.5.tgz",
+ "integrity": "sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/traverse": "^7.28.5",
+ "@babel/types": "^7.28.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
"node_modules/@babel/helper-module-imports": {
"version": "7.28.6",
"resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz",
@@ -538,6 +694,97 @@
"node": ">=6.9.0"
}
},
+ "node_modules/@babel/helper-module-transforms": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz",
+ "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-module-imports": "^7.28.6",
+ "@babel/helper-validator-identifier": "^7.28.5",
+ "@babel/traverse": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-optimise-call-expression": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz",
+ "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.27.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-plugin-utils": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz",
+ "integrity": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-remap-async-to-generator": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz",
+ "integrity": "sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.27.1",
+ "@babel/helper-wrap-function": "^7.27.1",
+ "@babel/traverse": "^7.27.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-replace-supers": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.28.6.tgz",
+ "integrity": "sha512-mq8e+laIk94/yFec3DxSjCRD2Z0TAjhVbEJY3UQrlwVo15Lmt7C2wAUbK4bjnTs4APkwsYLTahXRraQXhb1WCg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-member-expression-to-functions": "^7.28.5",
+ "@babel/helper-optimise-call-expression": "^7.27.1",
+ "@babel/traverse": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-skip-transparent-expression-wrappers": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz",
+ "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/traverse": "^7.27.1",
+ "@babel/types": "^7.27.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
"node_modules/@babel/helper-string-parser": {
"version": "7.27.1",
"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz",
@@ -556,6 +803,45 @@
"node": ">=6.9.0"
}
},
+ "node_modules/@babel/helper-validator-option": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz",
+ "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-wrap-function": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.28.6.tgz",
+ "integrity": "sha512-z+PwLziMNBeSQJonizz2AGnndLsP2DeGHIxDAn+wdHOGuo4Fo1x1HBPPXeE9TAOPHNNWQKCSlA2VZyYyyibDnQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/template": "^7.28.6",
+ "@babel/traverse": "^7.28.6",
+ "@babel/types": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helpers": {
+ "version": "7.29.2",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.2.tgz",
+ "integrity": "sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/template": "^7.28.6",
+ "@babel/types": "^7.29.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
"node_modules/@babel/parser": {
"version": "7.29.2",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.2.tgz",
@@ -571,6 +857,1108 @@
"node": ">=6.0.0"
}
},
+ "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": {
+ "version": "7.28.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.28.5.tgz",
+ "integrity": "sha512-87GDMS3tsmMSi/3bWOte1UblL+YUTFMV8SZPZ2eSEL17s74Cw/l63rR6NmGVKMYW2GYi85nE+/d6Hw5N0bEk2Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.27.1",
+ "@babel/traverse": "^7.28.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.27.1.tgz",
+ "integrity": "sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.27.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.27.1.tgz",
+ "integrity": "sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.27.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz",
+ "integrity": "sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.27.1",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1",
+ "@babel/plugin-transform-optional-chaining": "^7.27.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.13.0"
+ }
+ },
+ "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.28.6.tgz",
+ "integrity": "sha512-a0aBScVTlNaiUe35UtfxAN7A/tehvvG4/ByO6+46VPKTRSlfnAFsgKy0FUh+qAkQrDTmhDkT+IBOKlOoMUxQ0g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.28.6",
+ "@babel/traverse": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-private-property-in-object": {
+ "version": "7.21.0-placeholder-for-preset-env.2",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz",
+ "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-import-assertions": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.28.6.tgz",
+ "integrity": "sha512-pSJUpFHdx9z5nqTSirOCMtYVP2wFgoWhP0p3g8ONK/4IHhLIBd0B9NYqAvIUAhq+OkhO4VM1tENCt0cjlsNShw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-import-attributes": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.28.6.tgz",
+ "integrity": "sha512-jiLC0ma9XkQT3TKJ9uYvlakm66Pamywo+qwL+oL8HJOvc6TWdZXVfhqJr8CCzbSGUAbDOzlGHJC1U+vRfLQDvw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-unicode-sets-regex": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz",
+ "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-arrow-functions": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz",
+ "integrity": "sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.27.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-async-generator-functions": {
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.29.0.tgz",
+ "integrity": "sha512-va0VdWro4zlBr2JsXC+ofCPB2iG12wPtVGTWFx2WLDOM3nYQZZIGP82qku2eW/JR83sD+k2k+CsNtyEbUqhU6w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.28.6",
+ "@babel/helper-remap-async-to-generator": "^7.27.1",
+ "@babel/traverse": "^7.29.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-async-to-generator": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.28.6.tgz",
+ "integrity": "sha512-ilTRcmbuXjsMmcZ3HASTe4caH5Tpo93PkTxF9oG2VZsSWsahydmcEHhix9Ik122RcTnZnUzPbmux4wh1swfv7g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-module-imports": "^7.28.6",
+ "@babel/helper-plugin-utils": "^7.28.6",
+ "@babel/helper-remap-async-to-generator": "^7.27.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-block-scoped-functions": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz",
+ "integrity": "sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.27.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-block-scoping": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.6.tgz",
+ "integrity": "sha512-tt/7wOtBmwHPNMPu7ax4pdPz6shjFrmHDghvNC+FG9Qvj7D6mJcoRQIF5dy4njmxR941l6rgtvfSB2zX3VlUIw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-class-properties": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.28.6.tgz",
+ "integrity": "sha512-dY2wS3I2G7D697VHndN91TJr8/AAfXQNt5ynCTI/MpxMsSzHp+52uNivYT5wCPax3whc47DR8Ba7cmlQMg24bw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-create-class-features-plugin": "^7.28.6",
+ "@babel/helper-plugin-utils": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-class-static-block": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.28.6.tgz",
+ "integrity": "sha512-rfQ++ghVwTWTqQ7w8qyDxL1XGihjBss4CmTgGRCTAC9RIbhVpyp4fOeZtta0Lbf+dTNIVJer6ych2ibHwkZqsQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-create-class-features-plugin": "^7.28.6",
+ "@babel/helper-plugin-utils": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.12.0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-classes": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.6.tgz",
+ "integrity": "sha512-EF5KONAqC5zAqT783iMGuM2ZtmEBy+mJMOKl2BCvPZ2lVrwvXnB6o+OBWCS+CoeCCpVRF2sA2RBKUxvT8tQT5Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.27.3",
+ "@babel/helper-compilation-targets": "^7.28.6",
+ "@babel/helper-globals": "^7.28.0",
+ "@babel/helper-plugin-utils": "^7.28.6",
+ "@babel/helper-replace-supers": "^7.28.6",
+ "@babel/traverse": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-computed-properties": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.28.6.tgz",
+ "integrity": "sha512-bcc3k0ijhHbc2lEfpFHgx7eYw9KNXqOerKWfzbxEHUGKnS3sz9C4CNL9OiFN1297bDNfUiSO7DaLzbvHQQQ1BQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.28.6",
+ "@babel/template": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-destructuring": {
+ "version": "7.28.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.5.tgz",
+ "integrity": "sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.27.1",
+ "@babel/traverse": "^7.28.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-dotall-regex": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.28.6.tgz",
+ "integrity": "sha512-SljjowuNKB7q5Oayv4FoPzeB74g3QgLt8IVJw9ADvWy3QnUb/01aw8I4AVv8wYnPvQz2GDDZ/g3GhcNyDBI4Bg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.28.5",
+ "@babel/helper-plugin-utils": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-duplicate-keys": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.27.1.tgz",
+ "integrity": "sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.27.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": {
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.29.0.tgz",
+ "integrity": "sha512-zBPcW2lFGxdiD8PUnPwJjag2J9otbcLQzvbiOzDxpYXyCuYX9agOwMPGn1prVH0a4qzhCKu24rlH4c1f7yA8rw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.28.5",
+ "@babel/helper-plugin-utils": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-dynamic-import": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.27.1.tgz",
+ "integrity": "sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.27.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-explicit-resource-management": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.28.6.tgz",
+ "integrity": "sha512-Iao5Konzx2b6g7EPqTy40UZbcdXE126tTxVFr/nAIj+WItNxjKSYTEw3RC+A2/ZetmdJsgueL1KhaMCQHkLPIg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.28.6",
+ "@babel/plugin-transform-destructuring": "^7.28.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-exponentiation-operator": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.28.6.tgz",
+ "integrity": "sha512-WitabqiGjV/vJ0aPOLSFfNY1u9U3R7W36B03r5I2KoNix+a3sOhJ3pKFB3R5It9/UiK78NiO0KE9P21cMhlPkw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-export-namespace-from": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz",
+ "integrity": "sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.27.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-for-of": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz",
+ "integrity": "sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.27.1",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-function-name": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz",
+ "integrity": "sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-compilation-targets": "^7.27.1",
+ "@babel/helper-plugin-utils": "^7.27.1",
+ "@babel/traverse": "^7.27.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-json-strings": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.28.6.tgz",
+ "integrity": "sha512-Nr+hEN+0geQkzhbdgQVPoqr47lZbm+5fCUmO70722xJZd0Mvb59+33QLImGj6F+DkK3xgDi1YVysP8whD6FQAw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-literals": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz",
+ "integrity": "sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.27.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-logical-assignment-operators": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.28.6.tgz",
+ "integrity": "sha512-+anKKair6gpi8VsM/95kmomGNMD0eLz1NQ8+Pfw5sAwWH9fGYXT50E55ZpV0pHUHWf6IUTWPM+f/7AAff+wr9A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-member-expression-literals": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz",
+ "integrity": "sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.27.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-modules-amd": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.27.1.tgz",
+ "integrity": "sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-module-transforms": "^7.27.1",
+ "@babel/helper-plugin-utils": "^7.27.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-modules-commonjs": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.28.6.tgz",
+ "integrity": "sha512-jppVbf8IV9iWWwWTQIxJMAJCWBuuKx71475wHwYytrRGQ2CWiDvYlADQno3tcYpS/T2UUWFQp3nVtYfK/YBQrA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-module-transforms": "^7.28.6",
+ "@babel/helper-plugin-utils": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-modules-systemjs": {
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.29.0.tgz",
+ "integrity": "sha512-PrujnVFbOdUpw4UHiVwKvKRLMMic8+eC0CuNlxjsyZUiBjhFdPsewdXCkveh2KqBA9/waD0W1b4hXSOBQJezpQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-module-transforms": "^7.28.6",
+ "@babel/helper-plugin-utils": "^7.28.6",
+ "@babel/helper-validator-identifier": "^7.28.5",
+ "@babel/traverse": "^7.29.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-modules-umd": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.27.1.tgz",
+ "integrity": "sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-module-transforms": "^7.27.1",
+ "@babel/helper-plugin-utils": "^7.27.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-named-capturing-groups-regex": {
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.29.0.tgz",
+ "integrity": "sha512-1CZQA5KNAD6ZYQLPw7oi5ewtDNxH/2vuCh+6SmvgDfhumForvs8a1o9n0UrEoBD8HU4djO2yWngTQlXl1NDVEQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.28.5",
+ "@babel/helper-plugin-utils": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-new-target": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.27.1.tgz",
+ "integrity": "sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.27.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-nullish-coalescing-operator": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.28.6.tgz",
+ "integrity": "sha512-3wKbRgmzYbw24mDJXT7N+ADXw8BC/imU9yo9c9X9NKaLF1fW+e5H1U5QjMUBe4Qo4Ox/o++IyUkl1sVCLgevKg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-numeric-separator": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.28.6.tgz",
+ "integrity": "sha512-SJR8hPynj8outz+SlStQSwvziMN4+Bq99it4tMIf5/Caq+3iOc0JtKyse8puvyXkk3eFRIA5ID/XfunGgO5i6w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-object-rest-spread": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.6.tgz",
+ "integrity": "sha512-5rh+JR4JBC4pGkXLAcYdLHZjXudVxWMXbB6u6+E9lRL5TrGVbHt1TjxGbZ8CkmYw9zjkB7jutzOROArsqtncEA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-compilation-targets": "^7.28.6",
+ "@babel/helper-plugin-utils": "^7.28.6",
+ "@babel/plugin-transform-destructuring": "^7.28.5",
+ "@babel/plugin-transform-parameters": "^7.27.7",
+ "@babel/traverse": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-object-super": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz",
+ "integrity": "sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.27.1",
+ "@babel/helper-replace-supers": "^7.27.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-optional-catch-binding": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.28.6.tgz",
+ "integrity": "sha512-R8ja/Pyrv0OGAvAXQhSTmWyPJPml+0TMqXlO5w+AsMEiwb2fg3WkOvob7UxFSL3OIttFSGSRFKQsOhJ/X6HQdQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-optional-chaining": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.28.6.tgz",
+ "integrity": "sha512-A4zobikRGJTsX9uqVFdafzGkqD30t26ck2LmOzAuLL8b2x6k3TIqRiT2xVvA9fNmFeTX484VpsdgmKNA0bS23w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.28.6",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-parameters": {
+ "version": "7.27.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.7.tgz",
+ "integrity": "sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.27.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-private-methods": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.28.6.tgz",
+ "integrity": "sha512-piiuapX9CRv7+0st8lmuUlRSmX6mBcVeNQ1b4AYzJxfCMuBfB0vBXDiGSmm03pKJw1v6cZ8KSeM+oUnM6yAExg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-create-class-features-plugin": "^7.28.6",
+ "@babel/helper-plugin-utils": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-private-property-in-object": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.28.6.tgz",
+ "integrity": "sha512-b97jvNSOb5+ehyQmBpmhOCiUC5oVK4PMnpRvO7+ymFBoqYjeDHIU9jnrNUuwHOiL9RpGDoKBpSViarV+BU+eVA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.27.3",
+ "@babel/helper-create-class-features-plugin": "^7.28.6",
+ "@babel/helper-plugin-utils": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-property-literals": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz",
+ "integrity": "sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.27.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-regenerator": {
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.29.0.tgz",
+ "integrity": "sha512-FijqlqMA7DmRdg/aINBSs04y8XNTYw/lr1gJ2WsmBnnaNw1iS43EPkJW+zK7z65auG3AWRFXWj+NcTQwYptUog==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-regexp-modifiers": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.28.6.tgz",
+ "integrity": "sha512-QGWAepm9qxpaIs7UM9FvUSnCGlb8Ua1RhyM4/veAxLwt3gMat/LSGrZixyuj4I6+Kn9iwvqCyPTtbdxanYoWYg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.28.5",
+ "@babel/helper-plugin-utils": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-reserved-words": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.27.1.tgz",
+ "integrity": "sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.27.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-shorthand-properties": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz",
+ "integrity": "sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.27.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-spread": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.28.6.tgz",
+ "integrity": "sha512-9U4QObUC0FtJl05AsUcodau/RWDytrU6uKgkxu09mLR9HLDAtUMoPuuskm5huQsoktmsYpI+bGmq+iapDcriKA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.28.6",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-sticky-regex": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz",
+ "integrity": "sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.27.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-template-literals": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz",
+ "integrity": "sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.27.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-typeof-symbol": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.1.tgz",
+ "integrity": "sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.27.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-unicode-escapes": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.27.1.tgz",
+ "integrity": "sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.27.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-unicode-property-regex": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.28.6.tgz",
+ "integrity": "sha512-4Wlbdl/sIZjzi/8St0evF0gEZrgOswVO6aOzqxh1kDZOl9WmLrHq2HtGhnOJZmHZYKP8WZ1MDLCt5DAWwRo57A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.28.5",
+ "@babel/helper-plugin-utils": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-unicode-regex": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz",
+ "integrity": "sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.27.1",
+ "@babel/helper-plugin-utils": "^7.27.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-unicode-sets-regex": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.28.6.tgz",
+ "integrity": "sha512-/wHc/paTUmsDYN7SZkpWxogTOBNnlx7nBQYfy6JJlCT7G3mVhltk3e++N7zV0XfgGsrqBxd4rJQt9H16I21Y1Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.28.5",
+ "@babel/helper-plugin-utils": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/preset-env": {
+ "version": "7.29.2",
+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.29.2.tgz",
+ "integrity": "sha512-DYD23veRYGvBFhcTY1iUvJnDNpuqNd/BzBwCvzOTKUnJjKg5kpUBh3/u9585Agdkgj+QuygG7jLfOPWMa2KVNw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/compat-data": "^7.29.0",
+ "@babel/helper-compilation-targets": "^7.28.6",
+ "@babel/helper-plugin-utils": "^7.28.6",
+ "@babel/helper-validator-option": "^7.27.1",
+ "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.28.5",
+ "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.27.1",
+ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.27.1",
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.27.1",
+ "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.28.6",
+ "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2",
+ "@babel/plugin-syntax-import-assertions": "^7.28.6",
+ "@babel/plugin-syntax-import-attributes": "^7.28.6",
+ "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6",
+ "@babel/plugin-transform-arrow-functions": "^7.27.1",
+ "@babel/plugin-transform-async-generator-functions": "^7.29.0",
+ "@babel/plugin-transform-async-to-generator": "^7.28.6",
+ "@babel/plugin-transform-block-scoped-functions": "^7.27.1",
+ "@babel/plugin-transform-block-scoping": "^7.28.6",
+ "@babel/plugin-transform-class-properties": "^7.28.6",
+ "@babel/plugin-transform-class-static-block": "^7.28.6",
+ "@babel/plugin-transform-classes": "^7.28.6",
+ "@babel/plugin-transform-computed-properties": "^7.28.6",
+ "@babel/plugin-transform-destructuring": "^7.28.5",
+ "@babel/plugin-transform-dotall-regex": "^7.28.6",
+ "@babel/plugin-transform-duplicate-keys": "^7.27.1",
+ "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.29.0",
+ "@babel/plugin-transform-dynamic-import": "^7.27.1",
+ "@babel/plugin-transform-explicit-resource-management": "^7.28.6",
+ "@babel/plugin-transform-exponentiation-operator": "^7.28.6",
+ "@babel/plugin-transform-export-namespace-from": "^7.27.1",
+ "@babel/plugin-transform-for-of": "^7.27.1",
+ "@babel/plugin-transform-function-name": "^7.27.1",
+ "@babel/plugin-transform-json-strings": "^7.28.6",
+ "@babel/plugin-transform-literals": "^7.27.1",
+ "@babel/plugin-transform-logical-assignment-operators": "^7.28.6",
+ "@babel/plugin-transform-member-expression-literals": "^7.27.1",
+ "@babel/plugin-transform-modules-amd": "^7.27.1",
+ "@babel/plugin-transform-modules-commonjs": "^7.28.6",
+ "@babel/plugin-transform-modules-systemjs": "^7.29.0",
+ "@babel/plugin-transform-modules-umd": "^7.27.1",
+ "@babel/plugin-transform-named-capturing-groups-regex": "^7.29.0",
+ "@babel/plugin-transform-new-target": "^7.27.1",
+ "@babel/plugin-transform-nullish-coalescing-operator": "^7.28.6",
+ "@babel/plugin-transform-numeric-separator": "^7.28.6",
+ "@babel/plugin-transform-object-rest-spread": "^7.28.6",
+ "@babel/plugin-transform-object-super": "^7.27.1",
+ "@babel/plugin-transform-optional-catch-binding": "^7.28.6",
+ "@babel/plugin-transform-optional-chaining": "^7.28.6",
+ "@babel/plugin-transform-parameters": "^7.27.7",
+ "@babel/plugin-transform-private-methods": "^7.28.6",
+ "@babel/plugin-transform-private-property-in-object": "^7.28.6",
+ "@babel/plugin-transform-property-literals": "^7.27.1",
+ "@babel/plugin-transform-regenerator": "^7.29.0",
+ "@babel/plugin-transform-regexp-modifiers": "^7.28.6",
+ "@babel/plugin-transform-reserved-words": "^7.27.1",
+ "@babel/plugin-transform-shorthand-properties": "^7.27.1",
+ "@babel/plugin-transform-spread": "^7.28.6",
+ "@babel/plugin-transform-sticky-regex": "^7.27.1",
+ "@babel/plugin-transform-template-literals": "^7.27.1",
+ "@babel/plugin-transform-typeof-symbol": "^7.27.1",
+ "@babel/plugin-transform-unicode-escapes": "^7.27.1",
+ "@babel/plugin-transform-unicode-property-regex": "^7.28.6",
+ "@babel/plugin-transform-unicode-regex": "^7.27.1",
+ "@babel/plugin-transform-unicode-sets-regex": "^7.28.6",
+ "@babel/preset-modules": "0.1.6-no-external-plugins",
+ "babel-plugin-polyfill-corejs2": "^0.4.15",
+ "babel-plugin-polyfill-corejs3": "^0.14.0",
+ "babel-plugin-polyfill-regenerator": "^0.6.6",
+ "core-js-compat": "^3.48.0",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/preset-modules": {
+ "version": "0.1.6-no-external-plugins",
+ "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz",
+ "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/types": "^7.4.4",
+ "esutils": "^2.0.2"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0"
+ }
+ },
"node_modules/@babel/runtime": {
"version": "7.29.2",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.2.tgz",
@@ -625,6 +2013,19 @@
"node": ">=6.9.0"
}
},
+ "node_modules/@capacitor-community/file-opener": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/@capacitor-community/file-opener/-/file-opener-8.0.0.tgz",
+ "integrity": "sha512-kbVNxt4G45RHHeOqrE1Z0nT5iOOzmZ3WwQytpUtaIPzDTlmZxVEA3nJYEiOfGFp6msZO6QWHK3k0Qbv7hnBx+w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=16.0.0",
+ "npm": ">=8.0.0"
+ },
+ "peerDependencies": {
+ "@capacitor/core": ">=8.0.0"
+ }
+ },
"node_modules/@capacitor-community/speech-recognition": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/@capacitor-community/speech-recognition/-/speech-recognition-7.0.1.tgz",
@@ -653,6 +2054,15 @@
"@capacitor/core": ">=8.0.0"
}
},
+ "node_modules/@capacitor/android": {
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/@capacitor/android/-/android-8.3.0.tgz",
+ "integrity": "sha512-EQy6ByUuKayQBJmMm/e0byJiHavqsQHrvW23BuT2GNVQvenAvipqwaePiJHzrv2PZr7A0T0+se4kgDCeROj0mQ==",
+ "license": "MIT",
+ "peerDependencies": {
+ "@capacitor/core": "^8.3.0"
+ }
+ },
"node_modules/@capacitor/app": {
"version": "8.0.1",
"resolved": "https://registry.npmjs.org/@capacitor/app/-/app-8.0.1.tgz",
@@ -662,15 +2072,167 @@
"@capacitor/core": ">=8.0.0"
}
},
+ "node_modules/@capacitor/cli": {
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/@capacitor/cli/-/cli-8.3.0.tgz",
+ "integrity": "sha512-n3QDUimtFNbagoo8kLdjvTz3i3Y4jX1fOjvo6ptUKLzErmuqeamL8kECASoyQvg/OzJisZToGZrgLphBsptJcw==",
+ "license": "MIT",
+ "dependencies": {
+ "@ionic/cli-framework-output": "^2.2.8",
+ "@ionic/utils-subprocess": "^3.0.1",
+ "@ionic/utils-terminal": "^2.3.5",
+ "commander": "^12.1.0",
+ "debug": "^4.4.0",
+ "env-paths": "^2.2.0",
+ "fs-extra": "^11.2.0",
+ "kleur": "^4.1.5",
+ "native-run": "^2.0.3",
+ "open": "^8.4.0",
+ "plist": "^3.1.0",
+ "prompts": "^2.4.2",
+ "rimraf": "^6.0.1",
+ "semver": "^7.6.3",
+ "tar": "^7.5.3",
+ "tslib": "^2.8.1",
+ "xml2js": "^0.6.2"
+ },
+ "bin": {
+ "cap": "bin/capacitor",
+ "capacitor": "bin/capacitor"
+ },
+ "engines": {
+ "node": ">=22.0.0"
+ }
+ },
+ "node_modules/@capacitor/cli/node_modules/balanced-match": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz",
+ "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==",
+ "license": "MIT",
+ "engines": {
+ "node": "18 || 20 || >=22"
+ }
+ },
+ "node_modules/@capacitor/cli/node_modules/brace-expansion": {
+ "version": "5.0.5",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz",
+ "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==",
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^4.0.2"
+ },
+ "engines": {
+ "node": "18 || 20 || >=22"
+ }
+ },
+ "node_modules/@capacitor/cli/node_modules/commander": {
+ "version": "12.1.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz",
+ "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@capacitor/cli/node_modules/env-paths": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz",
+ "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@capacitor/cli/node_modules/glob": {
+ "version": "13.0.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz",
+ "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==",
+ "license": "BlueOak-1.0.0",
+ "dependencies": {
+ "minimatch": "^10.2.2",
+ "minipass": "^7.1.3",
+ "path-scurry": "^2.0.2"
+ },
+ "engines": {
+ "node": "18 || 20 || >=22"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/@capacitor/cli/node_modules/minimatch": {
+ "version": "10.2.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz",
+ "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==",
+ "license": "BlueOak-1.0.0",
+ "dependencies": {
+ "brace-expansion": "^5.0.5"
+ },
+ "engines": {
+ "node": "18 || 20 || >=22"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/@capacitor/cli/node_modules/rimraf": {
+ "version": "6.1.3",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-6.1.3.tgz",
+ "integrity": "sha512-LKg+Cr2ZF61fkcaK1UdkH2yEBBKnYjTyWzTJT6KNPcSPaiT7HSdhtMXQuN5wkTX0Xu72KQ1l8S42rlmexS2hSA==",
+ "license": "BlueOak-1.0.0",
+ "dependencies": {
+ "glob": "^13.0.3",
+ "package-json-from-dist": "^1.0.1"
+ },
+ "bin": {
+ "rimraf": "dist/esm/bin.mjs"
+ },
+ "engines": {
+ "node": "20 || >=22"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/@capacitor/cli/node_modules/semver": {
+ "version": "7.7.4",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",
+ "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==",
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/@capacitor/core": {
- "version": "8.2.0",
- "resolved": "https://registry.npmjs.org/@capacitor/core/-/core-8.2.0.tgz",
- "integrity": "sha512-oKaoNeNtH2iIZMDFVrb1atoyRECDGHcfLMunJ5KWN8DtvpVBeeA4c41e20NTuhMxw1cSYbpq2PV2hb+/9CJxlQ==",
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/@capacitor/core/-/core-8.3.0.tgz",
+ "integrity": "sha512-S4ajn4G/fS3VJj8salxqH/3LO5PPWv1VxGKQ27OCajnDcLJjEg9VXwgMPnlypgkIOqCJ2fmQLtk8GT+BlI9/rw==",
"license": "MIT",
"dependencies": {
"tslib": "^2.1.0"
}
},
+ "node_modules/@capacitor/filesystem": {
+ "version": "8.1.2",
+ "resolved": "https://registry.npmjs.org/@capacitor/filesystem/-/filesystem-8.1.2.tgz",
+ "integrity": "sha512-doaaMfGoFR2hWU6aV6u83I+5ZsGyJVq+Gz4r9lMpJzUKMm1eMu0hLnFdV1aXZlU9FlK/RndFrVD8oRZfNOqWgQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@capacitor/synapse": "^1.0.4"
+ },
+ "peerDependencies": {
+ "@capacitor/core": ">=8.0.0"
+ }
+ },
+ "node_modules/@capacitor/synapse": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/@capacitor/synapse/-/synapse-1.0.4.tgz",
+ "integrity": "sha512-/C1FUo8/OkKuAT4nCIu/34ny9siNHr9qtFezu4kxm6GY1wNFxrCFWjfYx5C1tUhVGz3fxBABegupkpjXvjCHrw==",
+ "license": "ISC"
+ },
"node_modules/@dnd-kit/accessibility": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/@dnd-kit/accessibility/-/accessibility-3.1.1.tgz",
@@ -904,6 +2466,448 @@
"integrity": "sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==",
"license": "MIT"
},
+ "node_modules/@esbuild/aix-ppc64": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.4.tgz",
+ "integrity": "sha512-cQPwL2mp2nSmHHJlCyoXgHGhbEPMrEEU5xhkcy3Hs/O7nGZqEpZ2sUtLaL9MORLtDfRvVl2/3PAuEkYZH0Ty8Q==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "aix"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/android-arm": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.4.tgz",
+ "integrity": "sha512-X9bUgvxiC8CHAGKYufLIHGXPJWnr0OCdR0anD2e21vdvgCI8lIfqFbnoeOz7lBjdrAGUhqLZLcQo6MLhTO2DKQ==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/android-arm64": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.4.tgz",
+ "integrity": "sha512-gdLscB7v75wRfu7QSm/zg6Rx29VLdy9eTr2t44sfTW7CxwAtQghZ4ZnqHk3/ogz7xao0QAgrkradbBzcqFPasw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/android-x64": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.4.tgz",
+ "integrity": "sha512-PzPFnBNVF292sfpfhiyiXCGSn9HZg5BcAz+ivBuSsl6Rk4ga1oEXAamhOXRFyMcjwr2DVtm40G65N3GLeH1Lvw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/darwin-arm64": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.4.tgz",
+ "integrity": "sha512-b7xaGIwdJlht8ZFCvMkpDN6uiSmnxxK56N2GDTMYPr2/gzvfdQN8rTfBsvVKmIVY/X7EM+/hJKEIbbHs9oA4tQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/darwin-x64": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.4.tgz",
+ "integrity": "sha512-sR+OiKLwd15nmCdqpXMnuJ9W2kpy0KigzqScqHI3Hqwr7IXxBp3Yva+yJwoqh7rE8V77tdoheRYataNKL4QrPw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/freebsd-arm64": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.4.tgz",
+ "integrity": "sha512-jnfpKe+p79tCnm4GVav68A7tUFeKQwQyLgESwEAUzyxk/TJr4QdGog9sqWNcUbr/bZt/O/HXouspuQDd9JxFSw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/freebsd-x64": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.4.tgz",
+ "integrity": "sha512-2kb4ceA/CpfUrIcTUl1wrP/9ad9Atrp5J94Lq69w7UwOMolPIGrfLSvAKJp0RTvkPPyn6CIWrNy13kyLikZRZQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-arm": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.4.tgz",
+ "integrity": "sha512-aBYgcIxX/wd5n2ys0yESGeYMGF+pv6g0DhZr3G1ZG4jMfruU9Tl1i2Z+Wnj9/KjGz1lTLCcorqE2viePZqj4Eg==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-arm64": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.4.tgz",
+ "integrity": "sha512-7nQOttdzVGth1iz57kxg9uCz57dxQLHWxopL6mYuYthohPKEK0vU0C3O21CcBK6KDlkYVcnDXY099HcCDXd9dA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-ia32": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.4.tgz",
+ "integrity": "sha512-oPtixtAIzgvzYcKBQM/qZ3R+9TEUd1aNJQu0HhGyqtx6oS7qTpvjheIWBbes4+qu1bNlo2V4cbkISr8q6gRBFA==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-loong64": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.4.tgz",
+ "integrity": "sha512-8mL/vh8qeCoRcFH2nM8wm5uJP+ZcVYGGayMavi8GmRJjuI3g1v6Z7Ni0JJKAJW+m0EtUuARb6Lmp4hMjzCBWzA==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-mips64el": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.4.tgz",
+ "integrity": "sha512-1RdrWFFiiLIW7LQq9Q2NES+HiD4NyT8Itj9AUeCl0IVCA459WnPhREKgwrpaIfTOe+/2rdntisegiPWn/r/aAw==",
+ "cpu": [
+ "mips64el"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-ppc64": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.4.tgz",
+ "integrity": "sha512-tLCwNG47l3sd9lpfyx9LAGEGItCUeRCWeAx6x2Jmbav65nAwoPXfewtAdtbtit/pJFLUWOhpv0FpS6GQAmPrHA==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-riscv64": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.4.tgz",
+ "integrity": "sha512-BnASypppbUWyqjd1KIpU4AUBiIhVr6YlHx/cnPgqEkNoVOhHg+YiSVxM1RLfiy4t9cAulbRGTNCKOcqHrEQLIw==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-s390x": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.4.tgz",
+ "integrity": "sha512-+eUqgb/Z7vxVLezG8bVB9SfBie89gMueS+I0xYh2tJdw3vqA/0ImZJ2ROeWwVJN59ihBeZ7Tu92dF/5dy5FttA==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-x64": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.4.tgz",
+ "integrity": "sha512-S5qOXrKV8BQEzJPVxAwnryi2+Iq5pB40gTEIT69BQONqR7JH1EPIcQ/Uiv9mCnn05jff9umq/5nqzxlqTOg9NA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/netbsd-arm64": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.4.tgz",
+ "integrity": "sha512-xHT8X4sb0GS8qTqiwzHqpY00C95DPAq7nAwX35Ie/s+LO9830hrMd3oX0ZMKLvy7vsonee73x0lmcdOVXFzd6Q==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/netbsd-x64": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.4.tgz",
+ "integrity": "sha512-RugOvOdXfdyi5Tyv40kgQnI0byv66BFgAqjdgtAKqHoZTbTF2QqfQrFwa7cHEORJf6X2ht+l9ABLMP0dnKYsgg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/openbsd-arm64": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.4.tgz",
+ "integrity": "sha512-2MyL3IAaTX+1/qP0O1SwskwcwCoOI4kV2IBX1xYnDDqthmq5ArrW94qSIKCAuRraMgPOmG0RDTA74mzYNQA9ow==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/openbsd-x64": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.4.tgz",
+ "integrity": "sha512-u8fg/jQ5aQDfsnIV6+KwLOf1CmJnfu1ShpwqdwC0uA7ZPwFws55Ngc12vBdeUdnuWoQYx/SOQLGDcdlfXhYmXQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/openharmony-arm64": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.4.tgz",
+ "integrity": "sha512-JkTZrl6VbyO8lDQO3yv26nNr2RM2yZzNrNHEsj9bm6dOwwu9OYN28CjzZkH57bh4w0I2F7IodpQvUAEd1mbWXg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openharmony"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/sunos-x64": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.4.tgz",
+ "integrity": "sha512-/gOzgaewZJfeJTlsWhvUEmUG4tWEY2Spp5M20INYRg2ZKl9QPO3QEEgPeRtLjEWSW8FilRNacPOg8R1uaYkA6g==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "sunos"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/win32-arm64": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.4.tgz",
+ "integrity": "sha512-Z9SExBg2y32smoDQdf1HRwHRt6vAHLXcxD2uGgO/v2jK7Y718Ix4ndsbNMU/+1Qiem9OiOdaqitioZwxivhXYg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/win32-ia32": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.4.tgz",
+ "integrity": "sha512-DAyGLS0Jz5G5iixEbMHi5KdiApqHBWMGzTtMiJ72ZOLhbu/bzxgAe8Ue8CTS3n3HbIUHQz/L51yMdGMeoxXNJw==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/win32-x64": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.4.tgz",
+ "integrity": "sha512-+knoa0BDoeXgkNvvV1vvbZX4+hizelrkwmGJBdT17t8FNPwG2lKemmuMZlmaNQ3ws3DKKCxpb4zRZEIp3UxFCg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
"node_modules/@eslint-community/eslint-utils": {
"version": "4.9.1",
"resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz",
@@ -1124,94 +3128,172 @@
"reflect-metadata": "0.2.2"
}
},
- "node_modules/@javascript-obfuscator/escodegen": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/@javascript-obfuscator/escodegen/-/escodegen-2.4.1.tgz",
- "integrity": "sha512-YrEJJDr4cb+pIQKWzHFoDlDkQzatcrNB6OhAD6iTSwiKwzZUMVdobwbOuLpF4EiLxUj0qP28Xl1saTHYzIPCLg==",
- "dev": true,
- "license": "BSD-2-Clause",
- "peer": true,
- "dependencies": {
- "@javascript-obfuscator/estraverse": "^5.3.0",
- "esprima": "^4.0.1",
- "esutils": "^2.0.2",
- "optionator": "^0.8.1"
- },
- "engines": {
- "node": ">=6.0"
- },
- "optionalDependencies": {
- "source-map": "~0.6.1"
- }
- },
- "node_modules/@javascript-obfuscator/escodegen/node_modules/levn": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
- "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==",
- "dev": true,
+ "node_modules/@ionic/cli-framework-output": {
+ "version": "2.2.8",
+ "resolved": "https://registry.npmjs.org/@ionic/cli-framework-output/-/cli-framework-output-2.2.8.tgz",
+ "integrity": "sha512-TshtaFQsovB4NWRBydbNFawql6yul7d5bMiW1WYYf17hd99V6xdDdk3vtF51bw6sLkxON3bDQpWsnUc9/hVo3g==",
"license": "MIT",
- "peer": true,
"dependencies": {
- "prelude-ls": "~1.1.2",
- "type-check": "~0.3.2"
+ "@ionic/utils-terminal": "2.3.5",
+ "debug": "^4.0.0",
+ "tslib": "^2.0.1"
},
"engines": {
- "node": ">= 0.8.0"
+ "node": ">=16.0.0"
}
},
- "node_modules/@javascript-obfuscator/escodegen/node_modules/optionator": {
- "version": "0.8.3",
- "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
- "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
- "dev": true,
+ "node_modules/@ionic/utils-array": {
+ "version": "2.1.6",
+ "resolved": "https://registry.npmjs.org/@ionic/utils-array/-/utils-array-2.1.6.tgz",
+ "integrity": "sha512-0JZ1Zkp3wURnv8oq6Qt7fMPo5MpjbLoUoa9Bu2Q4PJuSDWM8H8gwF3dQO7VTeUj3/0o1IB1wGkFWZZYgUXZMUg==",
"license": "MIT",
- "peer": true,
"dependencies": {
- "deep-is": "~0.1.3",
- "fast-levenshtein": "~2.0.6",
- "levn": "~0.3.0",
- "prelude-ls": "~1.1.2",
- "type-check": "~0.3.2",
- "word-wrap": "~1.2.3"
+ "debug": "^4.0.0",
+ "tslib": "^2.0.1"
},
"engines": {
- "node": ">= 0.8.0"
+ "node": ">=16.0.0"
}
},
- "node_modules/@javascript-obfuscator/escodegen/node_modules/prelude-ls": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
- "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==",
- "dev": true,
- "peer": true,
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/@javascript-obfuscator/escodegen/node_modules/source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dev": true,
- "license": "BSD-3-Clause",
- "optional": true,
- "peer": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/@javascript-obfuscator/escodegen/node_modules/type-check": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
- "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==",
- "dev": true,
+ "node_modules/@ionic/utils-fs": {
+ "version": "3.1.7",
+ "resolved": "https://registry.npmjs.org/@ionic/utils-fs/-/utils-fs-3.1.7.tgz",
+ "integrity": "sha512-2EknRvMVfhnyhL1VhFkSLa5gOcycK91VnjfrTB0kbqkTFCOXyXgVLI5whzq7SLrgD9t1aqos3lMMQyVzaQ5gVA==",
"license": "MIT",
- "peer": true,
"dependencies": {
- "prelude-ls": "~1.1.2"
+ "@types/fs-extra": "^8.0.0",
+ "debug": "^4.0.0",
+ "fs-extra": "^9.0.0",
+ "tslib": "^2.0.1"
},
"engines": {
- "node": ">= 0.8.0"
+ "node": ">=16.0.0"
+ }
+ },
+ "node_modules/@ionic/utils-fs/node_modules/fs-extra": {
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
+ "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
+ "license": "MIT",
+ "dependencies": {
+ "at-least-node": "^1.0.0",
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@ionic/utils-object": {
+ "version": "2.1.6",
+ "resolved": "https://registry.npmjs.org/@ionic/utils-object/-/utils-object-2.1.6.tgz",
+ "integrity": "sha512-vCl7sl6JjBHFw99CuAqHljYJpcE88YaH2ZW4ELiC/Zwxl5tiwn4kbdP/gxi2OT3MQb1vOtgAmSNRtusvgxI8ww==",
+ "license": "MIT",
+ "dependencies": {
+ "debug": "^4.0.0",
+ "tslib": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16.0.0"
+ }
+ },
+ "node_modules/@ionic/utils-process": {
+ "version": "2.1.12",
+ "resolved": "https://registry.npmjs.org/@ionic/utils-process/-/utils-process-2.1.12.tgz",
+ "integrity": "sha512-Jqkgyq7zBs/v/J3YvKtQQiIcxfJyplPgECMWgdO0E1fKrrH8EF0QGHNJ9mJCn6PYe2UtHNS8JJf5G21e09DfYg==",
+ "license": "MIT",
+ "dependencies": {
+ "@ionic/utils-object": "2.1.6",
+ "@ionic/utils-terminal": "2.3.5",
+ "debug": "^4.0.0",
+ "signal-exit": "^3.0.3",
+ "tree-kill": "^1.2.2",
+ "tslib": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16.0.0"
+ }
+ },
+ "node_modules/@ionic/utils-stream": {
+ "version": "3.1.7",
+ "resolved": "https://registry.npmjs.org/@ionic/utils-stream/-/utils-stream-3.1.7.tgz",
+ "integrity": "sha512-eSELBE7NWNFIHTbTC2jiMvh1ABKGIpGdUIvARsNPMNQhxJB3wpwdiVnoBoTYp+5a6UUIww4Kpg7v6S7iTctH1w==",
+ "license": "MIT",
+ "dependencies": {
+ "debug": "^4.0.0",
+ "tslib": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16.0.0"
+ }
+ },
+ "node_modules/@ionic/utils-subprocess": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@ionic/utils-subprocess/-/utils-subprocess-3.0.1.tgz",
+ "integrity": "sha512-cT4te3AQQPeIM9WCwIg8ohroJ8TjsYaMb2G4ZEgv9YzeDqHZ4JpeIKqG2SoaA3GmVQ3sOfhPM6Ox9sxphV/d1A==",
+ "license": "MIT",
+ "dependencies": {
+ "@ionic/utils-array": "2.1.6",
+ "@ionic/utils-fs": "3.1.7",
+ "@ionic/utils-process": "2.1.12",
+ "@ionic/utils-stream": "3.1.7",
+ "@ionic/utils-terminal": "2.3.5",
+ "cross-spawn": "^7.0.3",
+ "debug": "^4.0.0",
+ "tslib": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16.0.0"
+ }
+ },
+ "node_modules/@ionic/utils-terminal": {
+ "version": "2.3.5",
+ "resolved": "https://registry.npmjs.org/@ionic/utils-terminal/-/utils-terminal-2.3.5.tgz",
+ "integrity": "sha512-3cKScz9Jx2/Pr9ijj1OzGlBDfcmx7OMVBt4+P1uRR0SSW4cm1/y3Mo4OY3lfkuaYifMNBW8Wz6lQHbs1bihr7A==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/slice-ansi": "^4.0.0",
+ "debug": "^4.0.0",
+ "signal-exit": "^3.0.3",
+ "slice-ansi": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0",
+ "tslib": "^2.0.1",
+ "untildify": "^4.0.0",
+ "wrap-ansi": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=16.0.0"
+ }
+ },
+ "node_modules/@ionic/utils-terminal/node_modules/wrap-ansi": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/@isaacs/fs-minipass": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz",
+ "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==",
+ "license": "ISC",
+ "dependencies": {
+ "minipass": "^7.0.4"
+ },
+ "engines": {
+ "node": ">=18.0.0"
}
},
"node_modules/@javascript-obfuscator/estraverse": {
@@ -1234,6 +3316,17 @@
"@jridgewell/trace-mapping": "^0.3.24"
}
},
+ "node_modules/@jridgewell/remapping": {
+ "version": "2.3.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz",
+ "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.5",
+ "@jridgewell/trace-mapping": "^0.3.24"
+ }
+ },
"node_modules/@jridgewell/resolve-uri": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
@@ -1663,9 +3756,6 @@
"arm"
],
"dev": true,
- "libc": [
- "glibc"
- ],
"license": "MIT",
"optional": true,
"os": [
@@ -1687,9 +3777,6 @@
"arm"
],
"dev": true,
- "libc": [
- "musl"
- ],
"license": "MIT",
"optional": true,
"os": [
@@ -1711,9 +3798,6 @@
"arm64"
],
"dev": true,
- "libc": [
- "glibc"
- ],
"license": "MIT",
"optional": true,
"os": [
@@ -1735,9 +3819,6 @@
"arm64"
],
"dev": true,
- "libc": [
- "musl"
- ],
"license": "MIT",
"optional": true,
"os": [
@@ -1759,9 +3840,6 @@
"x64"
],
"dev": true,
- "libc": [
- "glibc"
- ],
"license": "MIT",
"optional": true,
"os": [
@@ -1783,9 +3861,6 @@
"x64"
],
"dev": true,
- "libc": [
- "musl"
- ],
"license": "MIT",
"optional": true,
"os": [
@@ -2205,9 +4280,6 @@
"arm64"
],
"dev": true,
- "libc": [
- "glibc"
- ],
"license": "MIT",
"optional": true,
"os": [
@@ -2225,9 +4297,6 @@
"arm64"
],
"dev": true,
- "libc": [
- "musl"
- ],
"license": "MIT",
"optional": true,
"os": [
@@ -2245,9 +4314,6 @@
"ppc64"
],
"dev": true,
- "libc": [
- "glibc"
- ],
"license": "MIT",
"optional": true,
"os": [
@@ -2265,9 +4331,6 @@
"s390x"
],
"dev": true,
- "libc": [
- "glibc"
- ],
"license": "MIT",
"optional": true,
"os": [
@@ -2285,9 +4348,6 @@
"x64"
],
"dev": true,
- "libc": [
- "glibc"
- ],
"license": "MIT",
"optional": true,
"os": [
@@ -2305,9 +4365,6 @@
"x64"
],
"dev": true,
- "libc": [
- "musl"
- ],
"license": "MIT",
"optional": true,
"os": [
@@ -2415,420 +4472,6 @@
}
}
},
- "node_modules/@rollup/rollup-android-arm-eabi": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.0.tgz",
- "integrity": "sha512-WOhNW9K8bR3kf4zLxbfg6Pxu2ybOUbB2AjMDHSQx86LIF4rH4Ft7vmMwNt0loO0eonglSNy4cpD3MKXXKQu0/A==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "peer": true
- },
- "node_modules/@rollup/rollup-android-arm64": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.0.tgz",
- "integrity": "sha512-u6JHLll5QKRvjciE78bQXDmqRqNs5M/3GVqZeMwvmjaNODJih/WIrJlFVEihvV0MiYFmd+ZyPr9wxOVbPAG2Iw==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "peer": true
- },
- "node_modules/@rollup/rollup-darwin-arm64": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.60.0.tgz",
- "integrity": "sha512-qEF7CsKKzSRc20Ciu2Zw1wRrBz4g56F7r/vRwY430UPp/nt1x21Q/fpJ9N5l47WWvJlkNCPJz3QRVw008fi7yA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "peer": true
- },
- "node_modules/@rollup/rollup-darwin-x64": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.0.tgz",
- "integrity": "sha512-WADYozJ4QCnXCH4wPB+3FuGmDPoFseVCUrANmA5LWwGmC6FL14BWC7pcq+FstOZv3baGX65tZ378uT6WG8ynTw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "peer": true
- },
- "node_modules/@rollup/rollup-freebsd-arm64": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.0.tgz",
- "integrity": "sha512-6b8wGHJlDrGeSE3aH5mGNHBjA0TTkxdoNHik5EkvPHCt351XnigA4pS7Wsj/Eo9Y8RBU6f35cjN9SYmCFBtzxw==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ],
- "peer": true
- },
- "node_modules/@rollup/rollup-freebsd-x64": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.0.tgz",
- "integrity": "sha512-h25Ga0t4jaylMB8M/JKAyrvvfxGRjnPQIR8lnCayyzEjEOx2EJIlIiMbhpWxDRKGKF8jbNH01NnN663dH638mA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ],
- "peer": true
- },
- "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.0.tgz",
- "integrity": "sha512-RzeBwv0B3qtVBWtcuABtSuCzToo2IEAIQrcyB/b2zMvBWVbjo8bZDjACUpnaafaxhTw2W+imQbP2BD1usasK4g==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "libc": [
- "glibc"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true
- },
- "node_modules/@rollup/rollup-linux-arm-musleabihf": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.0.tgz",
- "integrity": "sha512-Sf7zusNI2CIU1HLzuu9Tc5YGAHEZs5Lu7N1ssJG4Tkw6e0MEsN7NdjUDDfGNHy2IU+ENyWT+L2obgWiguWibWQ==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "libc": [
- "musl"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true
- },
- "node_modules/@rollup/rollup-linux-arm64-gnu": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.0.tgz",
- "integrity": "sha512-DX2x7CMcrJzsE91q7/O02IJQ5/aLkVtYFryqCjduJhUfGKG6yJV8hxaw8pZa93lLEpPTP/ohdN4wFz7yp/ry9A==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "libc": [
- "glibc"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true
- },
- "node_modules/@rollup/rollup-linux-arm64-musl": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.0.tgz",
- "integrity": "sha512-09EL+yFVbJZlhcQfShpswwRZ0Rg+z/CsSELFCnPt3iK+iqwGsI4zht3secj5vLEs957QvFFXnzAT0FFPIxSrkQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "libc": [
- "musl"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true
- },
- "node_modules/@rollup/rollup-linux-loong64-gnu": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.0.tgz",
- "integrity": "sha512-i9IcCMPr3EXm8EQg5jnja0Zyc1iFxJjZWlb4wr7U2Wx/GrddOuEafxRdMPRYVaXjgbhvqalp6np07hN1w9kAKw==",
- "cpu": [
- "loong64"
- ],
- "dev": true,
- "libc": [
- "glibc"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true
- },
- "node_modules/@rollup/rollup-linux-loong64-musl": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.0.tgz",
- "integrity": "sha512-DGzdJK9kyJ+B78MCkWeGnpXJ91tK/iKA6HwHxF4TAlPIY7GXEvMe8hBFRgdrR9Ly4qebR/7gfUs9y2IoaVEyog==",
- "cpu": [
- "loong64"
- ],
- "dev": true,
- "libc": [
- "musl"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true
- },
- "node_modules/@rollup/rollup-linux-ppc64-gnu": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.0.tgz",
- "integrity": "sha512-RwpnLsqC8qbS8z1H1AxBA1H6qknR4YpPR9w2XX0vo2Sz10miu57PkNcnHVaZkbqyw/kUWfKMI73jhmfi9BRMUQ==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "libc": [
- "glibc"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true
- },
- "node_modules/@rollup/rollup-linux-ppc64-musl": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.0.tgz",
- "integrity": "sha512-Z8pPf54Ly3aqtdWC3G4rFigZgNvd+qJlOE52fmko3KST9SoGfAdSRCwyoyG05q1HrrAblLbk1/PSIV+80/pxLg==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "libc": [
- "musl"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true
- },
- "node_modules/@rollup/rollup-linux-riscv64-gnu": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.0.tgz",
- "integrity": "sha512-3a3qQustp3COCGvnP4SvrMHnPQ9d1vzCakQVRTliaz8cIp/wULGjiGpbcqrkv0WrHTEp8bQD/B3HBjzujVWLOA==",
- "cpu": [
- "riscv64"
- ],
- "dev": true,
- "libc": [
- "glibc"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true
- },
- "node_modules/@rollup/rollup-linux-riscv64-musl": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.0.tgz",
- "integrity": "sha512-pjZDsVH/1VsghMJ2/kAaxt6dL0psT6ZexQVrijczOf+PeP2BUqTHYejk3l6TlPRydggINOeNRhvpLa0AYpCWSQ==",
- "cpu": [
- "riscv64"
- ],
- "dev": true,
- "libc": [
- "musl"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true
- },
- "node_modules/@rollup/rollup-linux-s390x-gnu": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.0.tgz",
- "integrity": "sha512-3ObQs0BhvPgiUVZrN7gqCSvmFuMWvWvsjG5ayJ3Lraqv+2KhOsp+pUbigqbeWqueGIsnn+09HBw27rJ+gYK4VQ==",
- "cpu": [
- "s390x"
- ],
- "dev": true,
- "libc": [
- "glibc"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true
- },
- "node_modules/@rollup/rollup-linux-x64-gnu": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.60.0.tgz",
- "integrity": "sha512-EtylprDtQPdS5rXvAayrNDYoJhIz1/vzN2fEubo3yLE7tfAw+948dO0g4M0vkTVFhKojnF+n6C8bDNe+gDRdTg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "libc": [
- "glibc"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true
- },
- "node_modules/@rollup/rollup-linux-x64-musl": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.60.0.tgz",
- "integrity": "sha512-k09oiRCi/bHU9UVFqD17r3eJR9bn03TyKraCrlz5ULFJGdJGi7VOmm9jl44vOJvRJ6P7WuBi/s2A97LxxHGIdw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "libc": [
- "musl"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true
- },
- "node_modules/@rollup/rollup-openbsd-x64": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.0.tgz",
- "integrity": "sha512-1o/0/pIhozoSaDJoDcec+IVLbnRtQmHwPV730+AOD29lHEEo4F5BEUB24H0OBdhbBBDwIOSuf7vgg0Ywxdfiiw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "openbsd"
- ],
- "peer": true
- },
- "node_modules/@rollup/rollup-openharmony-arm64": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.0.tgz",
- "integrity": "sha512-pESDkos/PDzYwtyzB5p/UoNU/8fJo68vcXM9ZW2V0kjYayj1KaaUfi1NmTUTUpMn4UhU4gTuK8gIaFO4UGuMbA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "openharmony"
- ],
- "peer": true
- },
- "node_modules/@rollup/rollup-win32-arm64-msvc": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.0.tgz",
- "integrity": "sha512-hj1wFStD7B1YBeYmvY+lWXZ7ey73YGPcViMShYikqKT1GtstIKQAtfUI6yrzPjAy/O7pO0VLXGmUVWXQMaYgTQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "peer": true
- },
- "node_modules/@rollup/rollup-win32-ia32-msvc": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.0.tgz",
- "integrity": "sha512-SyaIPFoxmUPlNDq5EHkTbiKzmSEmq/gOYFI/3HHJ8iS/v1mbugVa7dXUzcJGQfoytp9DJFLhHH4U3/eTy2Bq4w==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "peer": true
- },
- "node_modules/@rollup/rollup-win32-x64-gnu": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.0.tgz",
- "integrity": "sha512-RdcryEfzZr+lAr5kRm2ucN9aVlCCa2QNq4hXelZxb8GG0NJSazq44Z3PCCc8wISRuCVnGs0lQJVX5Vp6fKA+IA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "peer": true
- },
- "node_modules/@rollup/rollup-win32-x64-msvc": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.0.tgz",
- "integrity": "sha512-PrsWNQ8BuE00O3Xsx3ALh2Df8fAj9+cvvX9AIA6o4KpATR98c9mud4XtDWVvsEuyia5U4tVSTKygawyJkjm60w==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "peer": true
- },
"node_modules/@tanstack/query-core": {
"version": "5.95.0",
"resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.95.0.tgz",
@@ -3056,6 +4699,15 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/@types/fs-extra": {
+ "version": "8.1.5",
+ "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-8.1.5.tgz",
+ "integrity": "sha512-0dzKcwO+S8s2kuF5Z9oUWatQJj5Uq/iqphEtE3GQJVRRYm/tD1LglU2UnXi2A8jLq5umkGouOXOR9y0n613ZwQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
"node_modules/@types/geojson": {
"version": "7946.0.16",
"resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz",
@@ -3141,7 +4793,7 @@
"version": "18.3.7",
"resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz",
"integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==",
- "devOptional": true,
+ "dev": true,
"license": "MIT",
"peerDependencies": {
"@types/react": "^18.0.0"
@@ -3168,6 +4820,12 @@
"@types/react": "*"
}
},
+ "node_modules/@types/slice-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@types/slice-ansi/-/slice-ansi-4.0.0.tgz",
+ "integrity": "sha512-+OpjSaq85gvlZAYINyzKpLeiFkSC4EsC6IIiT6v6TLSU5k5U83fHGj9Lel8oKEXM0HqgrMVCjXPDPVICtxF7EQ==",
+ "license": "MIT"
+ },
"node_modules/@types/trusted-types": {
"version": "2.0.7",
"resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz",
@@ -3195,24 +4853,44 @@
"dev": true,
"license": "ISC"
},
- "node_modules/@vercel/blob": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/@vercel/blob/-/blob-2.3.1.tgz",
- "integrity": "sha512-6f9oWC+DbWxIgBLOdqjjn2/REpFrPDB7y5B5HA1ptYkzZaBgL6E34kWrptJvJ7teApJdbAs3I1a5A7z1y8SDHw==",
+ "node_modules/@vitejs/plugin-legacy": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/@vitejs/plugin-legacy/-/plugin-legacy-8.0.1.tgz",
+ "integrity": "sha512-8zeDeuNPqXd49rIVgFgluQYB8vQICHR7l+W2I3CxYK4gTjTorajVr0wLvSjALIwEwLRxBn68EgNVyGP4j6hP7w==",
"dev": true,
- "license": "Apache-2.0",
- "peer": true,
+ "license": "MIT",
"dependencies": {
- "async-retry": "^1.3.3",
- "is-buffer": "^2.0.5",
- "is-node-process": "^1.2.0",
- "throttleit": "^2.1.0",
- "undici": "^6.23.0"
+ "@babel/core": "^7.29.0",
+ "@babel/plugin-transform-dynamic-import": "^7.27.1",
+ "@babel/plugin-transform-modules-systemjs": "^7.29.0",
+ "@babel/preset-env": "^7.29.2",
+ "babel-plugin-polyfill-corejs3": "^0.14.2",
+ "babel-plugin-polyfill-regenerator": "^0.6.8",
+ "browserslist": "^4.28.1",
+ "browserslist-to-esbuild": "^2.1.1",
+ "core-js": "^3.49.0",
+ "magic-string": "^0.30.21",
+ "regenerator-runtime": "^0.14.1",
+ "systemjs": "^6.15.1"
},
"engines": {
- "node": ">=20.0.0"
+ "node": "^20.19.0 || >=22.12.0"
+ },
+ "funding": {
+ "url": "https://github.com/vitejs/vite?sponsor=1"
+ },
+ "peerDependencies": {
+ "terser": "^5.16.0",
+ "vite": "^8.0.0"
}
},
+ "node_modules/@vitejs/plugin-legacy/node_modules/regenerator-runtime": {
+ "version": "0.14.1",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
+ "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/@vitejs/plugin-react": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-6.0.1.tgz",
@@ -3239,6 +4917,15 @@
}
}
},
+ "node_modules/@xmldom/xmldom": {
+ "version": "0.8.12",
+ "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.12.tgz",
+ "integrity": "sha512-9k/gHF6n/pAi/9tqr3m3aqkuiNosYTurLLUtc7xQ9sxB/wm7WPygCv8GYa6mS0fLJEHhqMC1ATYhz++U/lRHqg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
"node_modules/@zxing/library": {
"version": "0.21.3",
"resolved": "https://registry.npmjs.org/@zxing/library/-/library-0.21.3.tgz",
@@ -3274,17 +4961,6 @@
"node": ">=0.4.0"
}
},
- "node_modules/acorn-import-attributes": {
- "version": "1.9.5",
- "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz",
- "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "peerDependencies": {
- "acorn": "^8"
- }
- },
"node_modules/acorn-jsx": {
"version": "5.3.2",
"resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
@@ -3739,6 +5415,15 @@
"util": "^0.12.5"
}
},
+ "node_modules/astral-regex": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
+ "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/async": {
"version": "3.2.6",
"resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz",
@@ -3755,23 +5440,21 @@
"node": ">= 0.4"
}
},
- "node_modules/async-retry": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz",
- "integrity": "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "retry": "0.13.1"
- }
- },
"node_modules/asynckit": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
"license": "MIT"
},
+ "node_modules/at-least-node": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz",
+ "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==",
+ "license": "ISC",
+ "engines": {
+ "node": ">= 4.0.0"
+ }
+ },
"node_modules/atomically": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/atomically/-/atomically-2.1.1.tgz",
@@ -3825,6 +5508,48 @@
"npm": ">=6"
}
},
+ "node_modules/babel-plugin-polyfill-corejs2": {
+ "version": "0.4.17",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.17.tgz",
+ "integrity": "sha512-aTyf30K/rqAsNwN76zYrdtx8obu0E4KoUME29B1xj+B3WxgvWkp943vYQ+z8Mv3lw9xHXMHpvSPOBxzAkIa94w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/compat-data": "^7.28.6",
+ "@babel/helper-define-polyfill-provider": "^0.6.8",
+ "semver": "^6.3.1"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+ }
+ },
+ "node_modules/babel-plugin-polyfill-corejs3": {
+ "version": "0.14.2",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.14.2.tgz",
+ "integrity": "sha512-coWpDLJ410R781Npmn/SIBZEsAetR4xVi0SxLMXPaMO4lSf1MwnkGYMtkFxew0Dn8B3/CpbpYxN0JCgg8mn67g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-define-polyfill-provider": "^0.6.8",
+ "core-js-compat": "^3.48.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+ }
+ },
+ "node_modules/babel-plugin-polyfill-regenerator": {
+ "version": "0.6.8",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.8.tgz",
+ "integrity": "sha512-M762rNHfSF1EV3SLtnCJXFoQbbIIz0OyRwnCmV0KPC7qosSfCO0QLTSuJX3ayAebubhE6oYBAYPrBA5ljowaZg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-define-polyfill-provider": "^0.6.8"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+ }
+ },
"node_modules/balanced-match": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
@@ -3860,6 +5585,19 @@
],
"license": "MIT"
},
+ "node_modules/baseline-browser-mapping": {
+ "version": "2.10.13",
+ "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.13.tgz",
+ "integrity": "sha512-BL2sTuHOdy0YT1lYieUxTw/QMtPBC3pmlJC6xk8BBYVv6vcw3SGdKemQ+Xsx9ik2F/lYDO9tqsFQH1r9PFuHKw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "bin": {
+ "baseline-browser-mapping": "dist/cli.cjs"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
"node_modules/big-integer": {
"version": "1.6.52",
"resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz",
@@ -3905,6 +5643,18 @@
"integrity": "sha512-vHdS19CnY3hwiNdkaqk93DvjVLfbEcI8mys4UjuWrlX1haDmroo8o4xCzh4wD6DGV6HxRCyauwhHRqMTfERtjw==",
"license": "MIT"
},
+ "node_modules/bplist-parser": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.2.tgz",
+ "integrity": "sha512-apC2+fspHGI3mMKj+dGevkGo/tCqVB8jMb6i+OX+E29p0Iposz07fABkRIfVUPNd5A5VbuOz1bZbnmkKLYF+wQ==",
+ "license": "MIT",
+ "dependencies": {
+ "big-integer": "1.6.x"
+ },
+ "engines": {
+ "node": ">= 5.10.0"
+ }
+ },
"node_modules/brace-expansion": {
"version": "1.1.12",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
@@ -3924,6 +5674,59 @@
"uzip": "0.20201231.0"
}
},
+ "node_modules/browserslist": {
+ "version": "4.28.2",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.2.tgz",
+ "integrity": "sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "baseline-browser-mapping": "^2.10.12",
+ "caniuse-lite": "^1.0.30001782",
+ "electron-to-chromium": "^1.5.328",
+ "node-releases": "^2.0.36",
+ "update-browserslist-db": "^1.2.3"
+ },
+ "bin": {
+ "browserslist": "cli.js"
+ },
+ "engines": {
+ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
+ }
+ },
+ "node_modules/browserslist-to-esbuild": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/browserslist-to-esbuild/-/browserslist-to-esbuild-2.1.1.tgz",
+ "integrity": "sha512-KN+mty6C3e9AN8Z5dI1xeN15ExcRNeISoC3g7V0Kax/MMF9MSoYA2G7lkTTcVUFntiEjkpI0HNgqJC1NjdyNUw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "meow": "^13.0.0"
+ },
+ "bin": {
+ "browserslist-to-esbuild": "cli/index.js"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "browserslist": "*"
+ }
+ },
"node_modules/buffer": {
"version": "5.7.1",
"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
@@ -4048,6 +5851,27 @@
"node": ">=6"
}
},
+ "node_modules/caniuse-lite": {
+ "version": "1.0.30001784",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001784.tgz",
+ "integrity": "sha512-WU346nBTklUV9YfUl60fqRbU5ZqyXlqvo1SgigE1OAXK5bFL8LL9q1K7aap3N739l4BvNqnkm3YrGHiY9sfUQw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "CC-BY-4.0"
+ },
"node_modules/canvg": {
"version": "3.0.11",
"resolved": "https://registry.npmjs.org/canvg/-/canvg-3.0.11.tgz",
@@ -4068,6 +5892,15 @@
"node": ">=10.0.0"
}
},
+ "node_modules/capacitor-usb-serial": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/capacitor-usb-serial/-/capacitor-usb-serial-1.0.3.tgz",
+ "integrity": "sha512-TwBp7bYnuQwgHoHUVzT0Xsj8U+jIHmKxpSPQuH/7vEfwUbK/yFw3dz70+lhdkKHkf52eInVFJcz7/95rj+N68A==",
+ "license": "MIT",
+ "peerDependencies": {
+ "@capacitor/core": "^6.0.0"
+ }
+ },
"node_modules/chainsaw": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz",
@@ -4140,6 +5973,15 @@
"url": "https://paulmillr.com/funding/"
}
},
+ "node_modules/chownr": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz",
+ "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==",
+ "license": "BlueOak-1.0.0",
+ "engines": {
+ "node": ">=18"
+ }
+ },
"node_modules/class-validator": {
"version": "0.14.3",
"resolved": "https://registry.npmjs.org/class-validator/-/class-validator-0.14.3.tgz",
@@ -4366,9 +6208,23 @@
"version": "3.49.0",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-3.49.0.tgz",
"integrity": "sha512-es1U2+YTtzpwkxVLwAFdSpaIMyQaq0PBgm3YD1W3Qpsn1NAmO3KSgZfu+oGSWVu6NvLHoHCV/aYcsE5wiB7ALg==",
+ "devOptional": true,
"hasInstallScript": true,
"license": "MIT",
- "optional": true,
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/core-js"
+ }
+ },
+ "node_modules/core-js-compat": {
+ "version": "3.49.0",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.49.0.tgz",
+ "integrity": "sha512-VQXt1jr9cBz03b331DFDCCP90b3fanciLkgiOoy8SBHy06gNf+vQ1A3WFLqG7I8TipYIKeYK9wxd0tUrvHcOZA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "browserslist": "^4.28.1"
+ },
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/core-js"
@@ -4446,7 +6302,6 @@
"version": "7.0.6",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
"integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
- "dev": true,
"license": "MIT",
"dependencies": {
"path-key": "^3.1.0",
@@ -4928,6 +6783,15 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/define-lazy-prop": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz",
+ "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/define-properties": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz",
@@ -5107,6 +6971,25 @@
"safe-buffer": "~5.1.0"
}
},
+ "node_modules/electron-to-chromium": {
+ "version": "1.5.330",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.330.tgz",
+ "integrity": "sha512-jFNydB5kFtYUobh4IkWUnXeyDbjf/r9gcUEXe1xcrcUxIGfTdzPXA+ld6zBRbwvgIGVzDll/LTIiDztEtckSnA==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/elementtree": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/elementtree/-/elementtree-0.1.7.tgz",
+ "integrity": "sha512-wkgGT6kugeQk/P6VZ/f4T+4HB41BVgNBq5CDIZVbQ02nvTVqAiVTbskxxu3eA/X96lMlfYOwnLQpN2v5E1zDEg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "sax": "1.1.4"
+ },
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
"node_modules/emoji-regex": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
@@ -5122,23 +7005,6 @@
"once": "^1.4.0"
}
},
- "node_modules/env-paths": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-4.0.0.tgz",
- "integrity": "sha512-pxP8eL2SwwaTRi/KHYwLYXinDs7gL3jxFcBYmEdYfZmZXbaVDvdppd0XBU8qVz03rDfKZMXg1omHCbsJjZrMsw==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "is-safe-filename": "^0.1.0"
- },
- "engines": {
- "node": ">=20"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/error-ex": {
"version": "1.3.4",
"resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz",
@@ -5332,6 +7198,58 @@
"benchmarks"
]
},
+ "node_modules/esbuild": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.4.tgz",
+ "integrity": "sha512-Rq4vbHnYkK5fws5NF7MYTU68FPRE1ajX7heQ/8QXXWqNgqqJ/GkmmyxIzUnf2Sr/bakf8l54716CcMGHYhMrrQ==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "bin": {
+ "esbuild": "bin/esbuild"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "optionalDependencies": {
+ "@esbuild/aix-ppc64": "0.27.4",
+ "@esbuild/android-arm": "0.27.4",
+ "@esbuild/android-arm64": "0.27.4",
+ "@esbuild/android-x64": "0.27.4",
+ "@esbuild/darwin-arm64": "0.27.4",
+ "@esbuild/darwin-x64": "0.27.4",
+ "@esbuild/freebsd-arm64": "0.27.4",
+ "@esbuild/freebsd-x64": "0.27.4",
+ "@esbuild/linux-arm": "0.27.4",
+ "@esbuild/linux-arm64": "0.27.4",
+ "@esbuild/linux-ia32": "0.27.4",
+ "@esbuild/linux-loong64": "0.27.4",
+ "@esbuild/linux-mips64el": "0.27.4",
+ "@esbuild/linux-ppc64": "0.27.4",
+ "@esbuild/linux-riscv64": "0.27.4",
+ "@esbuild/linux-s390x": "0.27.4",
+ "@esbuild/linux-x64": "0.27.4",
+ "@esbuild/netbsd-arm64": "0.27.4",
+ "@esbuild/netbsd-x64": "0.27.4",
+ "@esbuild/openbsd-arm64": "0.27.4",
+ "@esbuild/openbsd-x64": "0.27.4",
+ "@esbuild/openharmony-arm64": "0.27.4",
+ "@esbuild/sunos-x64": "0.27.4",
+ "@esbuild/win32-arm64": "0.27.4",
+ "@esbuild/win32-ia32": "0.27.4",
+ "@esbuild/win32-x64": "0.27.4"
+ }
+ },
+ "node_modules/escalade": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
+ "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/escape-string-regexp": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
@@ -5706,6 +7624,15 @@
"reusify": "^1.0.4"
}
},
+ "node_modules/fd-slicer": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
+ "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==",
+ "license": "MIT",
+ "dependencies": {
+ "pend": "~1.2.0"
+ }
+ },
"node_modules/fdir": {
"version": "6.5.0",
"resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
@@ -5867,6 +7794,20 @@
"integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
"license": "MIT"
},
+ "node_modules/fs-extra": {
+ "version": "11.3.4",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.4.tgz",
+ "integrity": "sha512-CTXd6rk/M3/ULNQj8FBqBWHYBVYybQ3VPBw0xGKFe3tuH7ytT6ACnvzpIQ3UZtB8yvUKC2cXn1a+x+5EVQLovA==",
+ "license": "MIT",
+ "dependencies": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=14.14"
+ }
+ },
"node_modules/fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
@@ -5967,6 +7908,16 @@
"node": ">= 0.4"
}
},
+ "node_modules/gensync": {
+ "version": "1.0.0-beta.2",
+ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
+ "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
"node_modules/get-caller-file": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
@@ -6382,6 +8333,15 @@
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
"license": "ISC"
},
+ "node_modules/ini": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.3.tgz",
+ "integrity": "sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==",
+ "license": "ISC",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
"node_modules/internal-slot": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz",
@@ -6526,31 +8486,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/is-buffer": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz",
- "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "MIT",
- "peer": true,
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/is-callable": {
"version": "1.2.7",
"resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
@@ -6614,6 +8549,21 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/is-docker": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
+ "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==",
+ "license": "MIT",
+ "bin": {
+ "is-docker": "cli.js"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/is-extglob": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
@@ -6725,14 +8675,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/is-node-process": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/is-node-process/-/is-node-process-1.2.0.tgz",
- "integrity": "sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==",
- "dev": true,
- "license": "MIT",
- "peer": true
- },
"node_modules/is-number-object": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz",
@@ -6779,20 +8721,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/is-safe-filename": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/is-safe-filename/-/is-safe-filename-0.1.1.tgz",
- "integrity": "sha512-4SrR7AdnY11LHfDKTZY1u6Ga3RuxZdl3YKWWShO5iyuG5h8QS4GD2tOb04peBJ5I7pXbR+CGBNEhTcwK+FzN3g==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "engines": {
- "node": ">=20"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/is-set": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz",
@@ -6925,6 +8853,18 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/is-wsl": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
+ "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
+ "license": "MIT",
+ "dependencies": {
+ "is-docker": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/isarray": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
@@ -6936,7 +8876,6 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
- "dev": true,
"license": "ISC"
},
"node_modules/iterator.prototype": {
@@ -6957,102 +8896,6 @@
"node": ">= 0.4"
}
},
- "node_modules/javascript-obfuscator": {
- "version": "5.4.1",
- "resolved": "https://registry.npmjs.org/javascript-obfuscator/-/javascript-obfuscator-5.4.1.tgz",
- "integrity": "sha512-HoG2vdmo0xM37YQtcjYXNBTlRvypW5G6gtTMFrCBzLkVMLWQy97+XISDNL1DUMfKQQ6Njp8SddfPJix1h2FhVg==",
- "dev": true,
- "license": "BSD-2-Clause",
- "peer": true,
- "dependencies": {
- "@javascript-obfuscator/escodegen": "2.4.1",
- "@javascript-obfuscator/estraverse": "5.4.0",
- "@vercel/blob": ">=0.23.0",
- "acorn": "8.15.0",
- "acorn-import-attributes": "^1.9.5",
- "assert": "2.1.0",
- "chalk": "4.1.2",
- "chance": "1.1.13",
- "class-validator": "0.14.3",
- "commander": "12.1.0",
- "env-paths": "4.0.0",
- "eslint-scope": "8.4.0",
- "eslint-visitor-keys": "4.2.1",
- "fast-deep-equal": "3.1.3",
- "inversify": "6.1.4",
- "js-string-escape": "1.0.1",
- "md5": "2.3.0",
- "multimatch": "5.0.0",
- "process": "0.11.10",
- "reflect-metadata": "0.2.2",
- "string-template": "1.0.0",
- "stringz": "2.1.0",
- "tslib": "2.8.1"
- },
- "bin": {
- "javascript-obfuscator": "bin/javascript-obfuscator"
- },
- "engines": {
- "node": ">=18.0.0"
- }
- },
- "node_modules/javascript-obfuscator/node_modules/acorn": {
- "version": "8.15.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz",
- "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "bin": {
- "acorn": "bin/acorn"
- },
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/javascript-obfuscator/node_modules/commander": {
- "version": "12.1.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz",
- "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/javascript-obfuscator/node_modules/eslint-scope": {
- "version": "8.4.0",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz",
- "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==",
- "dev": true,
- "license": "BSD-2-Clause",
- "peer": true,
- "dependencies": {
- "esrecurse": "^4.3.0",
- "estraverse": "^5.2.0"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/javascript-obfuscator/node_modules/eslint-visitor-keys": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",
- "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",
- "dev": true,
- "license": "Apache-2.0",
- "peer": true,
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
"node_modules/jquery": {
"version": "3.7.1",
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz",
@@ -7158,6 +9001,31 @@
"string-convert": "^0.2.0"
}
},
+ "node_modules/json5": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "json5": "lib/cli.js"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/jsonfile": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz",
+ "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==",
+ "license": "MIT",
+ "dependencies": {
+ "universalify": "^2.0.0"
+ },
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
"node_modules/jspdf": {
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/jspdf/-/jspdf-4.2.1.tgz",
@@ -7261,6 +9129,15 @@
"json-buffer": "3.0.1"
}
},
+ "node_modules/kleur": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz",
+ "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/lazystream": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz",
@@ -7482,9 +9359,6 @@
"arm64"
],
"dev": true,
- "libc": [
- "glibc"
- ],
"license": "MPL-2.0",
"optional": true,
"os": [
@@ -7506,9 +9380,6 @@
"arm64"
],
"dev": true,
- "libc": [
- "musl"
- ],
"license": "MPL-2.0",
"optional": true,
"os": [
@@ -7530,9 +9401,6 @@
"x64"
],
"dev": true,
- "libc": [
- "glibc"
- ],
"license": "MPL-2.0",
"optional": true,
"os": [
@@ -7554,9 +9422,6 @@
"x64"
],
"dev": true,
- "libc": [
- "musl"
- ],
"license": "MPL-2.0",
"optional": true,
"os": [
@@ -7762,6 +9627,16 @@
"loose-envify": "cli.js"
}
},
+ "node_modules/lru-cache": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "yallist": "^3.0.2"
+ }
+ },
"node_modules/lucide": {
"version": "0.577.0",
"resolved": "https://registry.npmjs.org/lucide/-/lucide-0.577.0.tgz",
@@ -7777,6 +9652,16 @@
"react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0"
}
},
+ "node_modules/magic-string": {
+ "version": "0.30.21",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz",
+ "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/sourcemap-codec": "^1.5.5"
+ }
+ },
"node_modules/material-colors": {
"version": "1.2.6",
"resolved": "https://registry.npmjs.org/material-colors/-/material-colors-1.2.6.tgz",
@@ -7817,6 +9702,19 @@
"integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==",
"license": "MIT"
},
+ "node_modules/meow": {
+ "version": "13.2.0",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz",
+ "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/mime-db": {
"version": "1.52.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
@@ -7872,6 +9770,27 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/minipass": {
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz",
+ "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==",
+ "license": "BlueOak-1.0.0",
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ }
+ },
+ "node_modules/minizlib": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz",
+ "integrity": "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==",
+ "license": "MIT",
+ "dependencies": {
+ "minipass": "^7.1.2"
+ },
+ "engines": {
+ "node": ">= 18"
+ }
+ },
"node_modules/mkdirp": {
"version": "0.5.6",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
@@ -7938,6 +9857,31 @@
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
}
},
+ "node_modules/native-run": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/native-run/-/native-run-2.0.3.tgz",
+ "integrity": "sha512-U1PllBuzW5d1gfan+88L+Hky2eZx+9gv3Pf6rNBxKbORxi7boHzqiA6QFGSnqMem4j0A9tZ08NMIs5+0m/VS1Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@ionic/utils-fs": "^3.1.7",
+ "@ionic/utils-terminal": "^2.3.4",
+ "bplist-parser": "^0.3.2",
+ "debug": "^4.3.4",
+ "elementtree": "^0.1.7",
+ "ini": "^4.1.1",
+ "plist": "^3.1.0",
+ "split2": "^4.2.0",
+ "through2": "^4.0.2",
+ "tslib": "^2.6.2",
+ "yauzl": "^2.10.0"
+ },
+ "bin": {
+ "native-run": "bin/native-run"
+ },
+ "engines": {
+ "node": ">=16.0.0"
+ }
+ },
"node_modules/natural-compare": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
@@ -7992,6 +9936,13 @@
}
}
},
+ "node_modules/node-releases": {
+ "version": "2.0.36",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.36.tgz",
+ "integrity": "sha512-TdC8FSgHz8Mwtw9g5L4gR/Sh9XhSP/0DEkQxfEFXOpiul5IiHgHan2VhYYb6agDSfp4KuvltmGApc8HMgUrIkA==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/normalize-path": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
@@ -8146,6 +10097,23 @@
"wrappy": "1"
}
},
+ "node_modules/open": {
+ "version": "8.4.2",
+ "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz",
+ "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==",
+ "license": "MIT",
+ "dependencies": {
+ "define-lazy-prop": "^2.0.0",
+ "is-docker": "^2.1.1",
+ "is-wsl": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/opencollective-postinstall": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz",
@@ -8232,6 +10200,12 @@
"node": ">=6"
}
},
+ "node_modules/package-json-from-dist": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz",
+ "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==",
+ "license": "BlueOak-1.0.0"
+ },
"node_modules/pako": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz",
@@ -8290,7 +10264,6 @@
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
"integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=8"
@@ -8302,6 +10275,31 @@
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
"license": "MIT"
},
+ "node_modules/path-scurry": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.2.tgz",
+ "integrity": "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==",
+ "license": "BlueOak-1.0.0",
+ "dependencies": {
+ "lru-cache": "^11.0.0",
+ "minipass": "^7.1.2"
+ },
+ "engines": {
+ "node": "18 || 20 || >=22"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/path-scurry/node_modules/lru-cache": {
+ "version": "11.2.7",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.7.tgz",
+ "integrity": "sha512-aY/R+aEsRelme17KGQa/1ZSIpLpNYYrhcrepKTZgE+W3WM16YMCaPwOHLHsmopZHELU0Ojin1lPVxKR0MihncA==",
+ "license": "BlueOak-1.0.0",
+ "engines": {
+ "node": "20 || >=22"
+ }
+ },
"node_modules/path-type": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
@@ -8341,6 +10339,12 @@
"integrity": "sha512-cq6TTu6qKSFUHwEahi68k/kqN2mfepjkGrG9Un70cgdRRKLKY6Rf8P8uvP2NvZktaQZNF3YE7agEkLj0vGK9bA==",
"license": "MIT"
},
+ "node_modules/pend": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
+ "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==",
+ "license": "MIT"
+ },
"node_modules/performance-now": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
@@ -8367,6 +10371,20 @@
"url": "https://github.com/sponsors/jonschlinkert"
}
},
+ "node_modules/plist": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/plist/-/plist-3.1.0.tgz",
+ "integrity": "sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@xmldom/xmldom": "^0.8.8",
+ "base64-js": "^1.5.1",
+ "xmlbuilder": "^15.1.1"
+ },
+ "engines": {
+ "node": ">=10.4.0"
+ }
+ },
"node_modules/pngjs": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz",
@@ -8457,6 +10475,28 @@
"integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
"license": "MIT"
},
+ "node_modules/prompts": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz",
+ "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==",
+ "license": "MIT",
+ "dependencies": {
+ "kleur": "^3.0.3",
+ "sisteransi": "^1.0.5"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/prompts/node_modules/kleur": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
+ "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/prop-types": {
"version": "15.8.1",
"resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
@@ -9677,6 +11717,26 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/regenerate": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz",
+ "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/regenerate-unicode-properties": {
+ "version": "10.2.2",
+ "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz",
+ "integrity": "sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "regenerate": "^1.4.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/regenerator-runtime": {
"version": "0.13.11",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
@@ -9704,6 +11764,44 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/regexpu-core": {
+ "version": "6.4.0",
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.4.0.tgz",
+ "integrity": "sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "regenerate": "^1.4.2",
+ "regenerate-unicode-properties": "^10.2.2",
+ "regjsgen": "^0.8.0",
+ "regjsparser": "^0.13.0",
+ "unicode-match-property-ecmascript": "^2.0.0",
+ "unicode-match-property-value-ecmascript": "^2.2.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/regjsgen": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz",
+ "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/regjsparser": {
+ "version": "0.13.0",
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.0.tgz",
+ "integrity": "sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "jsesc": "~3.1.0"
+ },
+ "bin": {
+ "regjsparser": "bin/parser"
+ }
+ },
"node_modules/require-directory": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
@@ -9770,17 +11868,6 @@
"node": ">=4"
}
},
- "node_modules/retry": {
- "version": "0.13.1",
- "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz",
- "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "engines": {
- "node": ">= 4"
- }
- },
"node_modules/reusify": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz",
@@ -9860,52 +11947,6 @@
"dev": true,
"license": "MIT"
},
- "node_modules/rollup": {
- "version": "4.60.0",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.60.0.tgz",
- "integrity": "sha512-yqjxruMGBQJ2gG4HtjZtAfXArHomazDHoFwFFmZZl0r7Pdo7qCIXKqKHZc8yeoMgzJJ+pO6pEEHa+V7uzWlrAQ==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@types/estree": "1.0.8"
- },
- "bin": {
- "rollup": "dist/bin/rollup"
- },
- "engines": {
- "node": ">=18.0.0",
- "npm": ">=8.0.0"
- },
- "optionalDependencies": {
- "@rollup/rollup-android-arm-eabi": "4.60.0",
- "@rollup/rollup-android-arm64": "4.60.0",
- "@rollup/rollup-darwin-arm64": "4.60.0",
- "@rollup/rollup-darwin-x64": "4.60.0",
- "@rollup/rollup-freebsd-arm64": "4.60.0",
- "@rollup/rollup-freebsd-x64": "4.60.0",
- "@rollup/rollup-linux-arm-gnueabihf": "4.60.0",
- "@rollup/rollup-linux-arm-musleabihf": "4.60.0",
- "@rollup/rollup-linux-arm64-gnu": "4.60.0",
- "@rollup/rollup-linux-arm64-musl": "4.60.0",
- "@rollup/rollup-linux-loong64-gnu": "4.60.0",
- "@rollup/rollup-linux-loong64-musl": "4.60.0",
- "@rollup/rollup-linux-ppc64-gnu": "4.60.0",
- "@rollup/rollup-linux-ppc64-musl": "4.60.0",
- "@rollup/rollup-linux-riscv64-gnu": "4.60.0",
- "@rollup/rollup-linux-riscv64-musl": "4.60.0",
- "@rollup/rollup-linux-s390x-gnu": "4.60.0",
- "@rollup/rollup-linux-x64-gnu": "4.60.0",
- "@rollup/rollup-linux-x64-musl": "4.60.0",
- "@rollup/rollup-openbsd-x64": "4.60.0",
- "@rollup/rollup-openharmony-arm64": "4.60.0",
- "@rollup/rollup-win32-arm64-msvc": "4.60.0",
- "@rollup/rollup-win32-ia32-msvc": "4.60.0",
- "@rollup/rollup-win32-x64-gnu": "4.60.0",
- "@rollup/rollup-win32-x64-msvc": "4.60.0",
- "fsevents": "~2.3.2"
- }
- },
"node_modules/rollup-plugin-obfuscator": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/rollup-plugin-obfuscator/-/rollup-plugin-obfuscator-1.1.0.tgz",
@@ -10052,6 +12093,12 @@
"@parcel/watcher": "^2.4.1"
}
},
+ "node_modules/sax": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.1.4.tgz",
+ "integrity": "sha512-5f3k2PbGGp+YtKJjOItpg3P99IMD84E4HOvcfleTb5joCHNXYLsR9yWFPOYGgaeMPDubQILTCMdsFb2OMeOjtg==",
+ "license": "ISC"
+ },
"node_modules/saxes": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz",
@@ -10157,7 +12204,6 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
"integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
- "dev": true,
"license": "MIT",
"dependencies": {
"shebang-regex": "^3.0.0"
@@ -10170,7 +12216,6 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
"integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=8"
@@ -10252,6 +12297,12 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/signal-exit": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
+ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
+ "license": "ISC"
+ },
"node_modules/signature_pad": {
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/signature_pad/-/signature_pad-2.3.2.tgz",
@@ -10273,6 +12324,29 @@
"integrity": "sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA==",
"license": "MIT"
},
+ "node_modules/sisteransi": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz",
+ "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==",
+ "license": "MIT"
+ },
+ "node_modules/slice-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz",
+ "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "astral-regex": "^2.0.0",
+ "is-fullwidth-code-point": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/slice-ansi?sponsor=1"
+ }
+ },
"node_modules/source-map": {
"version": "0.5.7",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
@@ -10313,6 +12387,15 @@
"node": ">=0.10.0"
}
},
+ "node_modules/split2": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz",
+ "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==",
+ "license": "ISC",
+ "engines": {
+ "node": ">= 10.x"
+ }
+ },
"node_modules/stackblur-canvas": {
"version": "2.7.0",
"resolved": "https://registry.npmjs.org/stackblur-canvas/-/stackblur-canvas-2.7.0.tgz",
@@ -10586,6 +12669,13 @@
"node": ">=12.0.0"
}
},
+ "node_modules/systemjs": {
+ "version": "6.15.1",
+ "resolved": "https://registry.npmjs.org/systemjs/-/systemjs-6.15.1.tgz",
+ "integrity": "sha512-Nk8c4lXvMB98MtbmjX7JwJRgJOL8fluecYCfCeYBznwmpOs8Bf15hLM6z4z71EDAhQVrQrI+wt1aLWSXZq+hXA==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/tagged-tag": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/tagged-tag/-/tagged-tag-1.0.0.tgz",
@@ -10599,6 +12689,22 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/tar": {
+ "version": "7.5.13",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.13.tgz",
+ "integrity": "sha512-tOG/7GyXpFevhXVh8jOPJrmtRpOTsYqUIkVdVooZYJS/z8WhfQUX8RJILmeuJNinGAMSu1veBr4asSHFt5/hng==",
+ "license": "BlueOak-1.0.0",
+ "dependencies": {
+ "@isaacs/fs-minipass": "^4.0.0",
+ "chownr": "^3.0.0",
+ "minipass": "^7.1.2",
+ "minizlib": "^3.1.0",
+ "yallist": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
"node_modules/tar-stream": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
@@ -10615,6 +12721,15 @@
"node": ">=6"
}
},
+ "node_modules/tar/node_modules/yallist": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz",
+ "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==",
+ "license": "BlueOak-1.0.0",
+ "engines": {
+ "node": ">=18"
+ }
+ },
"node_modules/terser": {
"version": "5.46.1",
"resolved": "https://registry.npmjs.org/terser/-/terser-5.46.1.tgz",
@@ -10690,18 +12805,13 @@
"node": ">=12.22"
}
},
- "node_modules/throttleit": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-2.1.0.tgz",
- "integrity": "sha512-nt6AMGKW1p/70DF/hGBdJB57B8Tspmbp5gfJ8ilhLnt7kkr2ye7hzD6NVG8GGErk2HWF34igrL2CXmNIkzKqKw==",
- "dev": true,
+ "node_modules/through2": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz",
+ "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==",
"license": "MIT",
- "peer": true,
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "dependencies": {
+ "readable-stream": "3"
}
},
"node_modules/tiny-invariant": {
@@ -10763,6 +12873,15 @@
"node": "*"
}
},
+ "node_modules/tree-kill": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz",
+ "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==",
+ "license": "MIT",
+ "bin": {
+ "tree-kill": "cli.js"
+ }
+ },
"node_modules/trim-canvas": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/trim-canvas/-/trim-canvas-0.1.2.tgz",
@@ -10946,23 +13065,56 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/undici": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/undici/-/undici-6.24.1.tgz",
- "integrity": "sha512-sC+b0tB1whOCzbtlx20fx3WgCXwkW627p4EA9uM+/tNNPkSS+eSEld6pAs9nDv7WbY1UUljBMYPtu9BCOrCWKA==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "engines": {
- "node": ">=18.17"
- }
- },
"node_modules/undici-types": {
"version": "7.18.2",
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz",
"integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==",
"license": "MIT"
},
+ "node_modules/unicode-canonical-property-names-ecmascript": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz",
+ "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/unicode-match-property-ecmascript": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz",
+ "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "unicode-canonical-property-names-ecmascript": "^2.0.0",
+ "unicode-property-aliases-ecmascript": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/unicode-match-property-value-ecmascript": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz",
+ "integrity": "sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/unicode-property-aliases-ecmascript": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz",
+ "integrity": "sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/universal-cookie": {
"version": "8.0.1",
"resolved": "https://registry.npmjs.org/universal-cookie/-/universal-cookie-8.0.1.tgz",
@@ -10972,6 +13124,24 @@
"cookie": "^1.0.2"
}
},
+ "node_modules/universalify": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
+ "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 10.0.0"
+ }
+ },
+ "node_modules/untildify": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz",
+ "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/unzipper": {
"version": "0.10.14",
"resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.10.14.tgz",
@@ -11026,6 +13196,37 @@
"safe-buffer": "~5.1.0"
}
},
+ "node_modules/update-browserslist-db": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz",
+ "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "escalade": "^3.2.0",
+ "picocolors": "^1.1.1"
+ },
+ "bin": {
+ "update-browserslist-db": "cli.js"
+ },
+ "peerDependencies": {
+ "browserslist": ">= 4.21.0"
+ }
+ },
"node_modules/uri-js": {
"version": "4.4.1",
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
@@ -11469,7 +13670,6 @@
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
"integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "dev": true,
"license": "ISC",
"dependencies": {
"isexe": "^2.0.0"
@@ -11606,6 +13806,37 @@
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
"license": "ISC"
},
+ "node_modules/xml2js": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.2.tgz",
+ "integrity": "sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==",
+ "license": "MIT",
+ "dependencies": {
+ "sax": ">=0.6.0",
+ "xmlbuilder": "~11.0.0"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/xml2js/node_modules/xmlbuilder": {
+ "version": "11.0.1",
+ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz",
+ "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/xmlbuilder": {
+ "version": "15.1.1",
+ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz",
+ "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
"node_modules/xmlchars": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz",
@@ -11618,6 +13849,13 @@
"integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==",
"license": "ISC"
},
+ "node_modules/yallist": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+ "dev": true,
+ "license": "ISC"
+ },
"node_modules/yargs": {
"version": "15.4.1",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
@@ -11705,6 +13943,16 @@
"node": ">=8"
}
},
+ "node_modules/yauzl": {
+ "version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
+ "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==",
+ "license": "MIT",
+ "dependencies": {
+ "buffer-crc32": "~0.2.3",
+ "fd-slicer": "~1.1.0"
+ }
+ },
"node_modules/yocto-queue": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
diff --git a/src/.env.development b/src/.env.development
index b98332b..1fedc8d 100644
--- a/src/.env.development
+++ b/src/.env.development
@@ -2,13 +2,13 @@ ENV_BASE_URL='/'
ENV_COMMON_BASE_URL='http://192.168.1.16:3000/'
# ENV_API_URL='http://192.168.1.25:8001'
# ENV_API_URL='http://api.pozo.co.in/Retailapi_UnderTest'
-# ENV_API_URL='https://api.pozo.dev/pozo-retail-api'
-# ENV_API_URL_COMMON='https://api.pozo.dev/pozo-common-api'
-# ENV_API_URL_TOKEN='https://api.pozo.dev/JwtToken'
-ENV_API_URL='http://192.168.1.37:8012'
-ENV_API_URL_COMMON='http://192.168.1.37:8013'
-ENV_API_URL_TOKEN='http://192.168.1.37:8001'
-ENV_API_URL_OCR='http://192.168.1.37:8070'
+ENV_API_URL='https://api.pozo.dev/pozo-retail-api'
+ENV_API_URL_COMMON='https://api.pozo.dev/pozo-common-api'
+ENV_API_URL_TOKEN='https://api.pozo.dev/JwtToken'
+# ENV_API_URL='http://192.168.1.37:8012'
+# ENV_API_URL_COMMON='http://192.168.1.37:8013'
+# ENV_API_URL_TOKEN='http://192.168.1.37:8001'
+# ENV_API_URL_OCR='http://192.168.1.37:8070'
# ENV_API_URL='https://api.pozo.app/pozo-retail-api'
# ENV_API_URL_COMMON='https://api.pozo.app/pozo-common-api'
# ENV_API_URL_TOKEN='https://api.pozo.app/JwtToken'
diff --git a/src/.env.production b/src/.env.production
index 8951740..422914b 100644
--- a/src/.env.production
+++ b/src/.env.production
@@ -20,48 +20,48 @@
# live Server (173 server)
-ENV_BASE_URL='/apps/retail/'
-ENV_COMMON_BASE_URL='https://pozo.app'
-ENV_API_URL='https://api.pozo.app/pozo-retail-api'
-ENV_API_URL_COMMON='https://api.pozo.app/pozo-common-api'
-ENV_API_URL_TOKEN='https://api.pozo.app/JwtToken'
-ENV_API_URL_OCR='http://192.168.1.37:8070'
-ENV_IMAGE_UPLOAD_API_URL="https://api.pozo.app/pozo-common-image-api/"
-ENV_SECRET_KEY="3a939a2eed2cca4b64cd47f51b23b135b2b9b765273f695d47682ea803c8429d"
-ENV_URL_SECRET_KEY="f2ef79b8b2d4fc1cc569726a5a753552257b4ff2872d6a71cf3119bce3f07c1b"
-ENV_MAIN_BASE_URL='https://pozo.app/apps/retail/'
-ENV_CUSTOM_PAYMENT_URL='https://pozo.app/CustomPaymentGateway/CustomPaymentGateway'
-ENV_IFSC_API_URL = "https://ifsc.razorpay.com"
-ENV_PAYMENT_DEVICE_URL='https://pozo.app/PaymentDevice/PaymentDevice/api/upload-transaction'
-ENV_PAYMENT_STATUS_GET_URL='https://pozo.app/PaymentDevice/PaymentDevice/api/get-transaction-status'
-ENV_ANDROID_PRINTER= 'https://pozo.app/downloads/resources/POZO%20Printer.apk'
-ENV_ANDROID_KIOSK= 'https://pozo.app/downloads/resources/POZO%20KIOSK.apk'
-ENV_ANDROID_HANDHELD= 'https://pozo.app/downloads/resources/Handheld.apk'
-ENV_ANDROID_BILLING= 'https://pozo.app/downloads/resources/PozoApp.apk'
-ENV_EMAIL_API='https://api.pozo.app/pozo-sms-email-template-api'
-ENV_SIGNALR_SERVER_URL='https://api.pozo.app/'
+# ENV_BASE_URL='/apps/retail/'
+# ENV_COMMON_BASE_URL='https://pozo.app'
+# ENV_API_URL='https://api.pozo.app/pozo-retail-api'
+# ENV_API_URL_COMMON='https://api.pozo.app/pozo-common-api'
+# ENV_API_URL_TOKEN='https://api.pozo.app/JwtToken'
+# ENV_API_URL_OCR='http://192.168.1.37:8070'
+# ENV_IMAGE_UPLOAD_API_URL="https://api.pozo.app/pozo-common-image-api/"
+# ENV_SECRET_KEY="3a939a2eed2cca4b64cd47f51b23b135b2b9b765273f695d47682ea803c8429d"
+# ENV_URL_SECRET_KEY="f2ef79b8b2d4fc1cc569726a5a753552257b4ff2872d6a71cf3119bce3f07c1b"
+# ENV_MAIN_BASE_URL='https://pozo.app/apps/retail/'
+# ENV_CUSTOM_PAYMENT_URL='https://pozo.app/CustomPaymentGateway/CustomPaymentGateway'
+# ENV_IFSC_API_URL = "https://ifsc.razorpay.com"
+# ENV_PAYMENT_DEVICE_URL='https://pozo.app/PaymentDevice/PaymentDevice/api/upload-transaction'
+# ENV_PAYMENT_STATUS_GET_URL='https://pozo.app/PaymentDevice/PaymentDevice/api/get-transaction-status'
+# ENV_ANDROID_PRINTER= 'https://pozo.app/downloads/resources/POZO%20Printer.apk'
+# ENV_ANDROID_KIOSK= 'https://pozo.app/downloads/resources/POZO%20KIOSK.apk'
+# ENV_ANDROID_HANDHELD= 'https://pozo.app/downloads/resources/Handheld.apk'
+# ENV_ANDROID_BILLING= 'https://pozo.app/downloads/resources/PozoApp.apk'
+# ENV_EMAIL_API='https://api.pozo.app/pozo-sms-email-template-api'
+# ENV_SIGNALR_SERVER_URL='https://api.pozo.app/'
#(172 server)
-# ENV_BASE_URL='/apps/retail/'
-# ENV_COMMON_BASE_URL='https://pozo.dev'
-# ENV_API_URL='https://api.pozo.dev/pozo-retail-api'
-# ENV_API_URL_COMMON='https://api.pozo.dev/pozo-common-api'
-# ENV_API_URL_TOKEN='https://api.pozo.dev/JwtToken'
-# ENV_API_URL_OCR='https://api.pozo.dev/pozo-scantext-api'
-# ENV_IMAGE_UPLOAD_API_URL="https://api.pozo.dev/pozo-common-image-api"
-# ENV_SECRET_KEY="3a939a2eed2cca4b64cd47f51b23b135b2b9b765273f695d47682ea803c8429d"
-# ENV_URL_SECRET_KEY="f2ef79b8b2d4fc1cc569726a5a753552257b4ff2872d6a71cf3119bce3f07c1b"
-# ENV_MAIN_BASE_URL='https://pozo.dev/apps/retail/'
-# ENV_SIGNALR_SERVER_URL='https://api.pozo.dev/'
-# ENV_CUSTOM_PAYMENT_URL='https://pozo.app/CustomPaymentGateway/CustomPaymentGateway'
-# ENV_IFSC_API_URL = "https://ifsc.razorpay.com"
-# ENV_PAYMENT_DEVICE_URL='https://pozo.dev/PaymentDevice/PaymentDevice/api/upload-transaction'
-# ENV_PAYMENT_STATUS_GET_URL='https://pozo.dev/PaymentDevice/PaymentDevice/api/get-transaction-status'
-# # ENV_PAYMENT_DEVICE_URL='https://www.plutuscloudserviceuat.in:8201/API/CloudBasedIntegration/V1/UploadBilledTransaction'
-# # ENV_PAYMENT_STATUS_GET_URL='https://www.plutuscloudserviceuat.in:8201/API/CloudBasedIntegration/V1/GetCloudBasedTxnStatus'
-# ENV_ANDROID_PRINTER= 'https://pozo.dev/downloads/resources/POZO%20Printer.apk'
-# ENV_ANDROID_KIOSK= 'https://pozo.dev/downloads/resources/POZO%20KIOSK.apk'
-# ENV_ANDROID_HANDHELD= 'https://pozo.dev/downloads/resources/Handheld.apk'
-# ENV_ANDROID_BILLING= 'https://pozo.dev/downloads/resources/PozoApp.apk'
-# ENV_EMAIL_API='https://api.pozo.dev/pozo-sms-email-template-api'
+ENV_BASE_URL='/'
+ENV_COMMON_BASE_URL='https://pozo.dev'
+ENV_API_URL='https://api.pozo.dev/pozo-retail-api'
+ENV_API_URL_COMMON='https://api.pozo.dev/pozo-common-api'
+ENV_API_URL_TOKEN='https://api.pozo.dev/JwtToken'
+ENV_API_URL_OCR='https://api.pozo.dev/pozo-scantext-api'
+ENV_IMAGE_UPLOAD_API_URL="https://api.pozo.dev/pozo-common-image-api"
+ENV_SECRET_KEY="3a939a2eed2cca4b64cd47f51b23b135b2b9b765273f695d47682ea803c8429d"
+ENV_URL_SECRET_KEY="f2ef79b8b2d4fc1cc569726a5a753552257b4ff2872d6a71cf3119bce3f07c1b"
+ENV_MAIN_BASE_URL='https://pozo.dev/apps/retail/'
+ENV_SIGNALR_SERVER_URL='https://api.pozo.dev/'
+ENV_CUSTOM_PAYMENT_URL='https://pozo.app/CustomPaymentGateway/CustomPaymentGateway'
+ENV_IFSC_API_URL = "https://ifsc.razorpay.com"
+ENV_PAYMENT_DEVICE_URL='https://pozo.dev/PaymentDevice/PaymentDevice/api/upload-transaction'
+ENV_PAYMENT_STATUS_GET_URL='https://pozo.dev/PaymentDevice/PaymentDevice/api/get-transaction-status'
+# ENV_PAYMENT_DEVICE_URL='https://www.plutuscloudserviceuat.in:8201/API/CloudBasedIntegration/V1/UploadBilledTransaction'
+# ENV_PAYMENT_STATUS_GET_URL='https://www.plutuscloudserviceuat.in:8201/API/CloudBasedIntegration/V1/GetCloudBasedTxnStatus'
+ENV_ANDROID_PRINTER= 'https://pozo.dev/downloads/resources/POZO%20Printer.apk'
+ENV_ANDROID_KIOSK= 'https://pozo.dev/downloads/resources/POZO%20KIOSK.apk'
+ENV_ANDROID_HANDHELD= 'https://pozo.dev/downloads/resources/Handheld.apk'
+ENV_ANDROID_BILLING= 'https://pozo.dev/downloads/resources/PozoApp.apk'
+ENV_EMAIL_API='https://api.pozo.dev/pozo-sms-email-template-api'
diff --git a/src/Pages/AppPage/AppPage.jsx b/src/Pages/AppPage/AppPage.jsx
index 9ad182a..70f3e54 100644
--- a/src/Pages/AppPage/AppPage.jsx
+++ b/src/Pages/AppPage/AppPage.jsx
@@ -1557,7 +1557,7 @@ const AppPage = () => {
),
getItem(
'HOME',
- `${subDirectory}app-page/home`,
+ `${subDirectory}`,
),
getItem(
@@ -1607,7 +1607,7 @@ const AppPage = () => {
),
getItem(
'HOME',
- `${subDirectory}app-page/home`,
+ `${subDirectory}`,
),
getItem(
@@ -1643,7 +1643,7 @@ const AppPage = () => {
getItem(
'Dashboard',
- `${subDirectory}app-page/home`,
+ `${subDirectory}`,
),
getItem('Master', `${subDirectory}master`, , [
@@ -2117,7 +2117,7 @@ const AppPage = () => {
getItem(
'Dashboard',
- `${subDirectory}app-page/home`,
+ `${subDirectory}`,
),
SadminUserSettingMenu?.length > 0 &&
@@ -2212,7 +2212,7 @@ const AppPage = () => {
),
getItem(
'Dashboard',
- `${subDirectory}app-page/home`,
+ `${subDirectory}`,
),
getItem('Master', `${subDirectory}master`, , [
@@ -2703,7 +2703,7 @@ const AppPage = () => {
),
getItem(
'Dashboard',
- `${subDirectory}app-page/home`,
+ `${subDirectory}`,
),
@@ -2787,7 +2787,7 @@ const AppPage = () => {
// Retail Menu Flow Final END
// *************************** */
- const isCurrentPath = location.pathname === `${subDirectory}app-page/home`;
+ const isCurrentPath = location.pathname === `${subDirectory}`;
console.log(items, 'itemsitems');
return (
diff --git a/src/Pages/Product/TurboAddForm.jsx b/src/Pages/Product/TurboAddForm.jsx
index ff2ffcb..9d7215f 100644
--- a/src/Pages/Product/TurboAddForm.jsx
+++ b/src/Pages/Product/TurboAddForm.jsx
@@ -177,6 +177,8 @@ const TurboAddForm = () => {
const prodSubCategories = useSelector(prodSubCatDataSelector);
const allProdSubCategories = useSelector(allProdSubCatDataSelector);
const searchText = useSelector(GlobalSearchData);
+ console.log(searchText,"GlobalSearchData");
+ console.log("new console")
// Session data
const AppId = useMemo(() => getSession('AppId'), []);
const CompId = useMemo(() => getSession('CompId'), []);
@@ -1957,7 +1959,8 @@ const TurboAddForm = () => {
{
- changeSearchedData(value);
+ console.log('Scanned value:', value);
+ handleQrData(value);
}}
/>
)}
diff --git a/src/ProtectedRoutes.jsx b/src/ProtectedRoutes.jsx
index 9c40656..316d3d0 100644
--- a/src/ProtectedRoutes.jsx
+++ b/src/ProtectedRoutes.jsx
@@ -11,7 +11,7 @@ import {
getCommonAppPreference,
changeWarehouse,
} from './Features/BrachLogin/BranchLogin.js';
-import { clearSession, getSession } from './Services/Others';
+import { clearSession, getSession, sessionStore } from './Services/Others';
import {
FeatureAddon,
GlobalFeatAddOnData,
@@ -43,7 +43,18 @@ const ProtectedRoutes = ({ routesConfig }) => {
const [accessCheckComplete, setAccessCheckComplete] = useState(false);
const FeatureAddonData = useSelector(GlobalFeatAddOnData);
useTemplate(CompId, BranchId, AppId);
-
+ sessionStore('AppId', 6);
+ sessionStore('BranchId', 556);
+ sessionStore('AppName', 'Bakery');
+ sessionStore('CompId', 462);
+ sessionStore('MobileNo', '6382594417');
+ sessionStore('UserType', 'Admin');
+ sessionStore('UserId', 1884);
+ sessionStore('userName', 'Karthiga');
+ sessionStore(
+ 'auth',
+ 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoiNjM4MjU5NDQxNyIsIlBhc3N3b3JkIjoiWkB6NDEwNDg0IiwiYXVkIjpbImh0dHBzOi8vYXBpLnBvem8uZGV2L3Bvem8tcmV0YWlsLWFwaSIsImh0dHBzOi8vYXBpLnBvem8uZGV2L3Bvem8tY29tbW9uLWFwaSIsImh0dHBzOi8vYXBpLnBvem8uZGV2L3Bvem8tc21zLWVtYWlsLXRlbXBsYXRlLWFwaSIsImh0dHBzOi8vYXBpLnBvem8uZGV2L3Bvem8tY29tbW9uLWFwaSJdLCJleHAiOjE3NzUxNTgwNTIsImlzcyI6Imh0dHBzOi8vYXBpLnBvem8uZGV2L0p3dFRva2VuIn0.xPuA6vnS7UdDWAnwMLEPhV0UcqPCwtb7tllpMYjOb-A'
+ );
useEffect(() => {
getApplicationPreference();
}, []);
@@ -269,221 +280,221 @@ const ProtectedRoutes = ({ routesConfig }) => {
).unwrap();
if (response?.data?.statusCode === 1) {
if (response?.data?.data?.length == 1) {
- navigate(`${subDirectory}app-page/home`);
+ navigate(`${subDirectory}`);
} else {
navigate(`${subDirectory}app-page/branch-login`);
}
}
};
- useEffect(() => {
- const performAccessChecks = async () => {
- if (!hasRedirected) {
- let featureAddon;
- let featureAddonData;
+ // useEffect(() => {
+ // const performAccessChecks = async () => {
+ // if (!hasRedirected) {
+ // let featureAddon;
+ // let featureAddonData;
- if (UserType !== 'Super Admin' && UserType !== 'Super Admin User') {
- if (FeatureAddonData?.FeatureDtls?.length > 0) {
- featureAddonData = FeatureAddonData?.FeatureDtls;
- } else {
- featureAddon = await dispatch(
- FeatureAddon({ AppId: AppId, UserId: UserId })
- ).unwrap();
- if (featureAddon?.data?.statusCode === 1) {
- featureAddonData =
- featureAddon?.data?.data?.[0]?.FeatAddonHdr?.[0]?.FeatureDtls;
- } else {
- featureAddonData = [];
- }
- }
- }
+ // if (UserType !== 'Super Admin' && UserType !== 'Super Admin User') {
+ // if (FeatureAddonData?.FeatureDtls?.length > 0) {
+ // featureAddonData = FeatureAddonData?.FeatureDtls;
+ // } else {
+ // featureAddon = await dispatch(
+ // FeatureAddon({ AppId: AppId, UserId: UserId })
+ // ).unwrap();
+ // if (featureAddon?.data?.statusCode === 1) {
+ // featureAddonData =
+ // featureAddon?.data?.data?.[0]?.FeatAddonHdr?.[0]?.FeatureDtls;
+ // } else {
+ // featureAddonData = [];
+ // }
+ // }
+ // }
- const currentPath = location.pathname.replace(/\/$/, ''); // Remove trailing slash
- let shouldNavigate = false;
+ // const currentPath = location.pathname.replace(/\/$/, ''); // Remove trailing slash
+ // let shouldNavigate = false;
- // Find the current route in routesConfig based on currentPath
- const currentRoute = routesConfig?.find((route) => {
- if (route.path === currentPath) return true;
- if (route.children) {
- return route.children.some((child) => {
- const childPath = `${route.path}/${child.path}`;
- return childPath === currentPath;
- });
- }
- return false;
- });
+ // // Find the current route in routesConfig based on currentPath
+ // const currentRoute = routesConfig?.find((route) => {
+ // if (route.path === currentPath) return true;
+ // if (route.children) {
+ // return route.children.some((child) => {
+ // const childPath = `${route.path}/${child.path}`;
+ // return childPath === currentPath;
+ // });
+ // }
+ // return false;
+ // });
- if (!currentRoute) {
- // alert("Unauthorized action detected. You have been logged out.")
- Logout();
- setHasRedirected(true);
- return;
- }
+ // if (!currentRoute) {
+ // // alert("Unauthorized action detected. You have been logged out.")
+ // Logout();
+ // setHasRedirected(true);
+ // return;
+ // }
- const empAccessData = getEmpAccessFromChildren(
- currentRoute,
- currentPath
- );
- const accessData = getEmpAccessDataFromChildren(
- currentRoute,
- currentPath
- );
+ // const empAccessData = getEmpAccessFromChildren(
+ // currentRoute,
+ // currentPath
+ // );
+ // const accessData = getEmpAccessDataFromChildren(
+ // currentRoute,
+ // currentPath
+ // );
- const checkPreferenceAccessData = ['Dine In', 'KOT', 'Estimate'];
- const checkPlanAccessData = [
- 'Product Catalogue',
- 'Sales Setup',
- 'Print Setup',
- 'Kiosk Setup',
- 'Kiosk Sales',
- ];
- // Cmd it start
+ // const checkPreferenceAccessData = ['Dine In', 'KOT', 'Estimate'];
+ // const checkPlanAccessData = [
+ // 'Product Catalogue',
+ // 'Sales Setup',
+ // 'Print Setup',
+ // 'Kiosk Setup',
+ // 'Kiosk Sales',
+ // ];
+ // // Cmd it start
- // if (!UserId && empAccessData != 'Public') {
- // if (!UserId && (empAccessData === "Kiosk Sales" || empAccessData === "View Bill")) {
- // // Allow KioskBookingPage to load and set session values
- // setAccessCheckComplete(true);
- // return;
- // }else{
- // console.log("UserId is undefined, logging out...");
- // // alert("User invalid. Redirecting to login...")
- // sessionStorage.clear();
- // window.location.replace(`${commonUrl}`);
- // setHasRedirected(true);
- // return;
- // }
- // }
+ // // if (!UserId && empAccessData != 'Public') {
+ // // if (!UserId && (empAccessData === "Kiosk Sales" || empAccessData === "View Bill")) {
+ // // // Allow KioskBookingPage to load and set session values
+ // // setAccessCheckComplete(true);
+ // // return;
+ // // }else{
+ // // console.log("UserId is undefined, logging out...");
+ // // // alert("User invalid. Redirecting to login...")
+ // // sessionStorage.clear();
+ // // window.location.replace(`${commonUrl}`);
+ // // setHasRedirected(true);
+ // // return;
+ // // }
+ // // }
- // Cmd it End
- const userAccessChecks = {
- 'Super Admin': () => {
- let empPreferenceCheck = true;
- if (checkPreferenceAccessData.includes(empAccessData)) {
- empPreferenceCheck = checkAccess(empAccessData);
- } else {
- empPreferenceCheck = true;
- }
- return !empPreferenceCheck;
- },
- 'Super Admin User': async () => {
- const SAdminuserPin = await dispatch(
- checkSession({ UserId, sessionId })
- ).unwrap();
- if (
- (SAdminuserPin?.data?.statusCode === 1 &&
- SAdminuserPin?.data?.data?.filter(
- (item) =>
- item?.AppId == AppId &&
- item?.CompId == CompId &&
- item?.BranchId == BranchId
- )?.[0]?.Status === 'L') ||
- BranchId === null ||
- BranchId === '' ||
- BranchId === undefined
- ) {
- if (sessionStorage.getItem('BranchId') !== null) {
- clearSession('BranchId');
- }
- fetchBranchData();
- } else {
- if (empAccessData) {
- const superAdminUserAccessCheck =
- await checkSuperAdminUserAccess(empAccessData, currentPath);
- let empPreferenceCheck = true;
- if (checkPreferenceAccessData.includes(empAccessData)) {
- empPreferenceCheck = checkAccess(empAccessData);
- } else {
- empPreferenceCheck = true;
- }
- return !superAdminUserAccessCheck || !empPreferenceCheck;
- } else {
- return false;
- }
- }
- },
- Admin: () => {
- if (accessData === 'Super Admin') {
- return true;
- } else {
- let empPreferenceCheck = true;
- let empPlanAccessCheck = true;
+ // // Cmd it End
+ // const userAccessChecks = {
+ // 'Super Admin': () => {
+ // let empPreferenceCheck = true;
+ // if (checkPreferenceAccessData.includes(empAccessData)) {
+ // empPreferenceCheck = checkAccess(empAccessData);
+ // } else {
+ // empPreferenceCheck = true;
+ // }
+ // return !empPreferenceCheck;
+ // },
+ // 'Super Admin User': async () => {
+ // const SAdminuserPin = await dispatch(
+ // checkSession({ UserId, sessionId })
+ // ).unwrap();
+ // if (
+ // (SAdminuserPin?.data?.statusCode === 1 &&
+ // SAdminuserPin?.data?.data?.filter(
+ // (item) =>
+ // item?.AppId == AppId &&
+ // item?.CompId == CompId &&
+ // item?.BranchId == BranchId
+ // )?.[0]?.Status === 'L') ||
+ // BranchId === null ||
+ // BranchId === '' ||
+ // BranchId === undefined
+ // ) {
+ // if (sessionStorage.getItem('BranchId') !== null) {
+ // clearSession('BranchId');
+ // }
+ // fetchBranchData();
+ // } else {
+ // if (empAccessData) {
+ // const superAdminUserAccessCheck =
+ // await checkSuperAdminUserAccess(empAccessData, currentPath);
+ // let empPreferenceCheck = true;
+ // if (checkPreferenceAccessData.includes(empAccessData)) {
+ // empPreferenceCheck = checkAccess(empAccessData);
+ // } else {
+ // empPreferenceCheck = true;
+ // }
+ // return !superAdminUserAccessCheck || !empPreferenceCheck;
+ // } else {
+ // return false;
+ // }
+ // }
+ // },
+ // Admin: () => {
+ // if (accessData === 'Super Admin') {
+ // return true;
+ // } else {
+ // let empPreferenceCheck = true;
+ // let empPlanAccessCheck = true;
- if (checkPreferenceAccessData.includes(empAccessData)) {
- empPreferenceCheck = checkAccess(empAccessData);
- } else {
- empPreferenceCheck = true;
- }
+ // if (checkPreferenceAccessData.includes(empAccessData)) {
+ // empPreferenceCheck = checkAccess(empAccessData);
+ // } else {
+ // empPreferenceCheck = true;
+ // }
- if (checkPlanAccessData.includes(empAccessData)) {
- empPlanAccessCheck = checkPlanAccess(
- empAccessData,
- featureAddonData
- );
- } else {
- empPlanAccessCheck = true;
- }
+ // if (checkPlanAccessData.includes(empAccessData)) {
+ // empPlanAccessCheck = checkPlanAccess(
+ // empAccessData,
+ // featureAddonData
+ // );
+ // } else {
+ // empPlanAccessCheck = true;
+ // }
- return !empPreferenceCheck || !empPlanAccessCheck;
- }
- },
- Employee: async () => {
- if (empAccessData && accessData !== 'Super Admin') {
- const empAccessCheck = await checkEmpAccess(
- empAccessData,
- currentPath
- );
- let empPreferenceCheck = true;
- let empPlanAccessCheck = true;
+ // return !empPreferenceCheck || !empPlanAccessCheck;
+ // }
+ // },
+ // Employee: async () => {
+ // if (empAccessData && accessData !== 'Super Admin') {
+ // const empAccessCheck = await checkEmpAccess(
+ // empAccessData,
+ // currentPath
+ // );
+ // let empPreferenceCheck = true;
+ // let empPlanAccessCheck = true;
- if (checkPreferenceAccessData.includes(empAccessData)) {
- empPreferenceCheck = checkAccess(empAccessData);
- } else {
- empPreferenceCheck = true;
- }
+ // if (checkPreferenceAccessData.includes(empAccessData)) {
+ // empPreferenceCheck = checkAccess(empAccessData);
+ // } else {
+ // empPreferenceCheck = true;
+ // }
- if (checkPlanAccessData.includes(empAccessData)) {
- empPlanAccessCheck = checkPlanAccess(
- empAccessData,
- featureAddonData
- );
- } else {
- empPlanAccessCheck = true;
- }
- if (location.pathname === '/app-page/relieve-request') {
- return false;
- }
- return (
- !empAccessCheck || !empPreferenceCheck || !empPlanAccessCheck
- );
- } else {
- if (accessData === 'Super Admin') {
- return true;
- } else {
- return false;
- }
- }
- },
- };
+ // if (checkPlanAccessData.includes(empAccessData)) {
+ // empPlanAccessCheck = checkPlanAccess(
+ // empAccessData,
+ // featureAddonData
+ // );
+ // } else {
+ // empPlanAccessCheck = true;
+ // }
+ // if (location.pathname === '/app-page/relieve-request') {
+ // return false;
+ // }
+ // return (
+ // !empAccessCheck || !empPreferenceCheck || !empPlanAccessCheck
+ // );
+ // } else {
+ // if (accessData === 'Super Admin') {
+ // return true;
+ // } else {
+ // return false;
+ // }
+ // }
+ // },
+ // };
- if (userAccessChecks[UserType]) {
- shouldNavigate = await userAccessChecks[UserType]();
- } else {
- shouldNavigate = true;
- }
- console.log('shouldNavigate', shouldNavigate);
- if (shouldNavigate) {
- // alert("Unauthorized action detected. You have been logged out.")
- Logout();
- setHasRedirected(true);
- } else {
- console.log('Access granted for current route.');
- }
+ // if (userAccessChecks[UserType]) {
+ // shouldNavigate = await userAccessChecks[UserType]();
+ // } else {
+ // shouldNavigate = true;
+ // }
+ // console.log('shouldNavigate', shouldNavigate);
+ // if (shouldNavigate) {
+ // // alert("Unauthorized action detected. You have been logged out.")
+ // Logout();
+ // setHasRedirected(true);
+ // } else {
+ // console.log('Access granted for current route.');
+ // }
- setAccessCheckComplete(true);
- }
- };
+ // setAccessCheckComplete(true);
+ // }
+ // };
- performAccessChecks();
- }, [UserType, routesConfig, navigate, hasRedirected, location.pathname]);
+ // performAccessChecks();
+ // }, [UserType, routesConfig, navigate, hasRedirected, location.pathname]);
const Logout = async () => {
const status = 'N'; // replace with your actual status
@@ -531,7 +542,7 @@ const ProtectedRoutes = ({ routesConfig }) => {
return (
}>
- {accessCheckComplete && renderRoutes(routesConfig)}
+ { renderRoutes(routesConfig)}
);
};
diff --git a/src/check.html b/src/check.html
index 07e345c..819b380 100644
--- a/src/check.html
+++ b/src/check.html
@@ -1,38 +1,270 @@
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Pozo Retail Software
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/check.jsx b/src/check.jsx
index 9c40656..84043bf 100644
--- a/src/check.jsx
+++ b/src/check.jsx
@@ -1,539 +1,387 @@
-import { useEffect, useState } from 'react';
-import { Routes, Route, useNavigate } from 'react-router-dom';
-import { useDispatch } from 'react-redux';
-import {
- getEmpAccesData,
- GenerateLogout,
- getSAdminUserAccesData,
- PricingAppPricingName,
- checkSession,
- getCompBranchData,
- getCommonAppPreference,
- changeWarehouse,
-} from './Features/BrachLogin/BranchLogin.js';
-import { clearSession, getSession } from './Services/Others';
-import {
- FeatureAddon,
- GlobalFeatAddOnData,
-} from './Features/BookingScreen/BookingData/BookingData.js';
-import { Suspense } from 'react';
-import { gettableData } from './Features/PreferenceMaster/PreferenceMaster.js';
-import { useSelector } from 'react-redux';
-import { useTemplate } from './utils/useTemplate.js';
+// import React, { useRef, useState, useEffect } from "react";
+// import { BarcodeScanner } from "@capacitor-mlkit/barcode-scanning";
+// import { BsUpcScan } from "react-icons/bs";
+// import { BrowserMultiFormatReader } from "@zxing/library";
+// import { Capacitor } from "@capacitor/core";
+// import { DefaultModal } from "../Components/Modal/DefaultModal";
-const commonUrl = import.meta.env.ENV_COMMON_BASE_URL;
-const subDirectory = import.meta.env.BASE_URL;
+// export default function BarCodeScan({ onScan }) {
+// const isMobileApp = Capacitor.getPlatform() !== "web";
+// const [scanning, setScanning] = useState(false);
+// const [modalOpen, setModalOpen] = useState(false);
+// const videoRef = useRef(null);
+// const codeReaderRef = useRef(null);
+// const streamRef = useRef(null);
-const ProtectedRoutes = ({ routesConfig }) => {
- useTemplate(
- getSession('CompId'),
- getSession('BranchId'),
- getSession('AppId')
- );
- const navigate = useNavigate();
- const dispatch = useDispatch();
- const UserType = getSession('UserType');
- const [hasRedirected, setHasRedirected] = useState(false);
- const AppId = getSession('AppId');
- const CompId = getSession('CompId');
- const BranchId = getSession('BranchId');
- const UserId = getSession('UserId');
- const sessionId = getSession('SessionId');
- const Warehouse = getSession('Warehouse');
- const [accessCheckComplete, setAccessCheckComplete] = useState(false);
- const FeatureAddonData = useSelector(GlobalFeatAddOnData);
- useTemplate(CompId, BranchId, AppId);
+// const startScan = async () => {
+// if (scanning) return;
+// setScanning(true);
- useEffect(() => {
- getApplicationPreference();
- }, []);
- //sri
- useEffect(() => {
- if (Warehouse) {
- dispatch(changeWarehouse(true));
- }
- }, [Warehouse]);
- const getApplicationPreference = async () => {
- await dispatch(getCommonAppPreference(AppId)).unwrap();
- };
+// if (isMobileApp) {
+// // Mobile: MLKit scanner
+// try {
+// const perm = await BarcodeScanner.requestPermissions();
+// if (perm.camera !== "granted") {
+// alert("Camera permission not granted");
+// setScanning(false);
+// return;
+// }
- const getEmpAccess = async () => {
- let data = {
- UserId: UserId,
- AppId: AppId,
- CompId: CompId,
- BranchId: BranchId,
- };
+// const { barcodes } = await BarcodeScanner.scan();
+// if (barcodes && barcodes.length > 0) {
+// onScan(barcodes[0].rawValue);
+// }
+// } catch (err) {
+// alert("Error scanning barcode: " + err.message);
+// } finally {
+// setScanning(false);
+// }
+// } else {
+// // Web: open modal and start camera
+// setModalOpen(true);
+// setTimeout(() => startWebScan(), 50); // wait for modal DOM
+// }
+// };
- const response = await dispatch(getEmpAccesData(data)).unwrap();
- if (response?.data?.statusCode === 1) {
- return response?.data?.data?.[0]?.EmpAccessDetails;
- }
- return null;
- };
+// const startWebScan = async () => {
+// try {
+// codeReaderRef.current = new BrowserMultiFormatReader();
+// streamRef.current = await navigator.mediaDevices.getUserMedia({
+// video: { facingMode: "environment" },
+// });
+// if (videoRef.current) {
+// videoRef.current.srcObject = streamRef.current;
+// videoRef.current.play();
+// }
- const getSadminUserAccess = async () => {
- let data = {
- UserId: UserId,
- AppId: AppId,
- };
- const response = await dispatch(getSAdminUserAccesData(data)).unwrap();
- if (response?.data?.statusCode === 1) {
- return response?.data?.data?.[0]?.AppMenuAccessDetails;
- }
- return null;
- };
+// codeReaderRef.current.decodeFromVideoDevice(
+// null,
+// videoRef.current,
+// (result) => {
+// if (result) {
+// onScan(result.getText());
+// stopWebScan();
+// setModalOpen(false);
+// }
+// }
+// );
+// } catch (err) {
+// alert("Error accessing camera: " + err.message);
+// setScanning(false);
+// setModalOpen(false);
+// }
+// };
- const Dinein = async () => {
- if (AppId && CompId && BranchId) {
- let DineinData = {
- AppId: AppId,
- CompId: CompId,
- BranchId: BranchId,
- UserId: UserId,
- };
- const response = await dispatch(gettableData(DineinData)).unwrap();
- if (response?.data?.statusCode === 1) {
- const SettingValueData = response?.data?.data
- ?.find((e) => e.AppId === AppId)
- ?.SettingDtlDetails?.some(
- (e) => e.SettingIdName === 'DineIn' && e.SettingValue === 'Y'
- );
- const EstimateValueData = response?.data?.data
- ?.find((e) => e.AppId === AppId)
- ?.SettingDtlDetails?.some(
- (e) => e.SettingIdName === 'Estimation' && e.SettingValue === 'Y'
- );
- return (SettingValueData, EstimateValueData);
- }
- }
- };
+// const stopWebScan = () => {
+// if (streamRef.current) {
+// streamRef.current.getTracks().forEach((track) => track.stop());
+// streamRef.current = null;
+// }
+// if (codeReaderRef.current) {
+// codeReaderRef.current.reset();
+// codeReaderRef.current = null;
+// }
+// setScanning(false);
+// };
- const checkAccess = async (empAccess) => {
- if (!empAccess) return false;
- let DineinData,
- EstimateData = await Dinein();
- switch (empAccess) {
- case 'Dine In':
- case 'KOT':
- return !!DineinData;
- case 'Estimate':
- return !!EstimateData;
- default:
- return false; // Restrict access if no valid match found
- }
- };
+// const closeModal = () => {
+// stopWebScan();
+// setModalOpen(false);
+// };
- const getPricingName = async () => {
- if (!AppId || !UserId) return;
- const data = {
- appId: AppId,
- userId: UserId,
- };
- try {
- const response = await dispatch(PricingAppPricingName(data)).unwrap();
- const responseData = response?.data;
- const pricingData = responseData?.data;
- const hasAdvance = pricingData?.some(
- (item) => item.PricingName === 'Premium'
- );
- const hasProOrAdvance =
- hasAdvance ||
- pricingData.some((item) => item.PricingName === 'Customized');
- return (hasAdvance, hasProOrAdvance);
- } catch (error) {
- console.error('Error fetching pricing name:', error);
- }
- };
+// // Stop camera if component unmounts
+// useEffect(() => () => stopWebScan(), []);
- const checkPlanAccess = async (empAccess, featureAddonData) => {
- if (!empAccess) return false;
- let Advance,
- ProORAdvance = await getPricingName();
- switch (empAccess) {
- case 'Product Catalogue':
- return (
- ProORAdvance ||
- featureAddonData?.some(
- (item) => item?.FeatureAddonName?.toLowerCase() === 'catalog'
- )
- );
- case 'Sales Setup':
- case 'Print Setup':
- return (
- Advance ||
- featureAddonData?.some(
- (item) =>
- item?.FeatureAddonName?.toLowerCase() === 'customized template'
- )
- );
- case 'Kiosk Setup':
- case 'Kiosk Sales':
- return featureAddonData?.some(
- (item) => item?.FeatureAddonName?.toLowerCase() === 'kiosk sales'
- );
- default:
- return false; // Restrict access if no valid match found
- }
- };
+// return (
+//
+// {!scanning && (
+//
+// )}
- const checkEmpAccess = async (empAccess, currentPath) => {
- if (!empAccess) return false;
- const Access = await getEmpAccess();
- let accessType;
- if (currentPath.endsWith('/new')) {
- accessType = 'AddAccess';
- } else if (currentPath.endsWith('/update')) {
- accessType = 'UpdateAccess';
- } else {
- accessType = 'ReadAccess';
- }
- // const config = Access?.find(config =>
- // config.ConfigName === empAccess && config[accessType] === 'Y'
- // );
- const config = Access?.find(
- (config) =>
- (config.ConfigName === empAccess && config[accessType] === 'Y') ||
- (currentPath.includes('supplier-master') &&
- (config.ConfigName === 'Supplier' ||
- config.ConfigName === 'Seller') &&
- config[accessType] === 'Y')
- );
+//
{
+// closeModal();
+// }}
+// >
+//
+//
- return !!config;
- };
+//
+//
+//
- const checkSuperAdminUserAccess = async (empAccess, currentPath) => {
- console.log('empAccessData1', empAccess, currentPath);
- if (!empAccess) return false;
- const Access = await getSadminUserAccess();
- let accessType;
- if (currentPath.endsWith('/new')) {
- accessType = 'AddAccess';
- } else if (currentPath.endsWith('/update')) {
- accessType = 'UpdateAccess';
- } else {
- accessType = 'ReadAccess';
- }
- console.log('empAccessData2', Access, accessType);
- // const config = Access?.find(config =>
- // config.MenuName === empAccess && config[accessType] === 'Y'
- // );
- const config = Access?.find(
- (config) =>
- (config.MenuName === empAccess && config[accessType] === 'Y') ||
- (currentPath.includes('supplier-master') &&
- (config.MenuName === 'Supplier' || config.MenuName === 'Seller') &&
- config[accessType] === 'Y')
- );
- console.log('empAccessData3', config);
+//
+// );
+// }
- return !!config;
- };
+import React, { useRef, useState, useEffect } from 'react';
+import { BarcodeScanner } from '@capacitor-mlkit/barcode-scanning';
+import { BsUpcScan } from 'react-icons/bs';
+import { Capacitor } from '@capacitor/core';
+import { DefaultModal } from '../Components/Modal/DefaultModal';
+import QrScanner from 'qr-scanner/qr-scanner.min.js';
+import { BrowserMultiFormatReader, BarcodeFormat } from '@zxing/library';
- const getEmpAccessFromChildren = (route, currentPath) => {
- if (route.path === currentPath) {
- return route.empAccess || null;
- }
+QrScanner.WORKER_PATH = new URL(
+ 'qr-scanner/qr-scanner-worker.min.js',
+ import.meta.url
+).toString();
- if (route.children) {
- for (const child of route.children) {
- const childPath = `${route.path}/${child.path}`;
- if (childPath === currentPath) {
- return child.empAccess || null;
- }
- }
- }
+export default function BarCodeScan({ onScan }) {
+ const isMobileApp = Capacitor.getPlatform() !== 'web';
+ const [scanning, setScanning] = useState(false);
+ const [modalOpen, setModalOpen] = useState(false);
- return null;
- };
+ const videoRef = useRef(null);
+ const qrScannerRef = useRef(null);
+ const barcodeReaderRef = useRef(null);
- const getEmpAccessDataFromChildren = (route, currentPath) => {
- if (route.path === currentPath) {
- return route.access || null;
- }
- if (route.children) {
- for (const child of route.children) {
- const childPath = `${route.path}/${child.path}`;
- if (childPath === currentPath) {
- return child.access || null;
- }
- }
- }
- return null;
- };
+ // -------------------------
+ // START SCAN
+ // -------------------------
+ const startScan = async () => {
+ if (scanning) return;
+ setScanning(true);
- const fetchBranchData = async () => {
- const response = await dispatch(
- getCompBranchData({ CompId: CompId, AppId: AppId })
- ).unwrap();
- if (response?.data?.statusCode === 1) {
- if (response?.data?.data?.length == 1) {
- navigate(`${subDirectory}app-page/home`);
- } else {
- navigate(`${subDirectory}app-page/branch-login`);
- }
- }
- };
- useEffect(() => {
- const performAccessChecks = async () => {
- if (!hasRedirected) {
- let featureAddon;
- let featureAddonData;
-
- if (UserType !== 'Super Admin' && UserType !== 'Super Admin User') {
- if (FeatureAddonData?.FeatureDtls?.length > 0) {
- featureAddonData = FeatureAddonData?.FeatureDtls;
- } else {
- featureAddon = await dispatch(
- FeatureAddon({ AppId: AppId, UserId: UserId })
- ).unwrap();
- if (featureAddon?.data?.statusCode === 1) {
- featureAddonData =
- featureAddon?.data?.data?.[0]?.FeatAddonHdr?.[0]?.FeatureDtls;
- } else {
- featureAddonData = [];
- }
- }
- }
-
- const currentPath = location.pathname.replace(/\/$/, ''); // Remove trailing slash
- let shouldNavigate = false;
-
- // Find the current route in routesConfig based on currentPath
- const currentRoute = routesConfig?.find((route) => {
- if (route.path === currentPath) return true;
- if (route.children) {
- return route.children.some((child) => {
- const childPath = `${route.path}/${child.path}`;
- return childPath === currentPath;
- });
- }
- return false;
- });
-
- if (!currentRoute) {
- // alert("Unauthorized action detected. You have been logged out.")
- Logout();
- setHasRedirected(true);
+ if (isMobileApp) {
+ try {
+ const perm = await BarcodeScanner.requestPermissions();
+ if (perm.camera !== 'granted') {
+ alert('Camera permission not granted');
+ setScanning(false);
return;
}
- const empAccessData = getEmpAccessFromChildren(
- currentRoute,
- currentPath
- );
- const accessData = getEmpAccessDataFromChildren(
- currentRoute,
- currentPath
- );
-
- const checkPreferenceAccessData = ['Dine In', 'KOT', 'Estimate'];
- const checkPlanAccessData = [
- 'Product Catalogue',
- 'Sales Setup',
- 'Print Setup',
- 'Kiosk Setup',
- 'Kiosk Sales',
- ];
- // Cmd it start
-
- // if (!UserId && empAccessData != 'Public') {
- // if (!UserId && (empAccessData === "Kiosk Sales" || empAccessData === "View Bill")) {
- // // Allow KioskBookingPage to load and set session values
- // setAccessCheckComplete(true);
- // return;
- // }else{
- // console.log("UserId is undefined, logging out...");
- // // alert("User invalid. Redirecting to login...")
- // sessionStorage.clear();
- // window.location.replace(`${commonUrl}`);
- // setHasRedirected(true);
- // return;
- // }
- // }
-
- // Cmd it End
- const userAccessChecks = {
- 'Super Admin': () => {
- let empPreferenceCheck = true;
- if (checkPreferenceAccessData.includes(empAccessData)) {
- empPreferenceCheck = checkAccess(empAccessData);
- } else {
- empPreferenceCheck = true;
- }
- return !empPreferenceCheck;
- },
- 'Super Admin User': async () => {
- const SAdminuserPin = await dispatch(
- checkSession({ UserId, sessionId })
- ).unwrap();
- if (
- (SAdminuserPin?.data?.statusCode === 1 &&
- SAdminuserPin?.data?.data?.filter(
- (item) =>
- item?.AppId == AppId &&
- item?.CompId == CompId &&
- item?.BranchId == BranchId
- )?.[0]?.Status === 'L') ||
- BranchId === null ||
- BranchId === '' ||
- BranchId === undefined
- ) {
- if (sessionStorage.getItem('BranchId') !== null) {
- clearSession('BranchId');
- }
- fetchBranchData();
- } else {
- if (empAccessData) {
- const superAdminUserAccessCheck =
- await checkSuperAdminUserAccess(empAccessData, currentPath);
- let empPreferenceCheck = true;
- if (checkPreferenceAccessData.includes(empAccessData)) {
- empPreferenceCheck = checkAccess(empAccessData);
- } else {
- empPreferenceCheck = true;
- }
- return !superAdminUserAccessCheck || !empPreferenceCheck;
- } else {
- return false;
- }
- }
- },
- Admin: () => {
- if (accessData === 'Super Admin') {
- return true;
- } else {
- let empPreferenceCheck = true;
- let empPlanAccessCheck = true;
-
- if (checkPreferenceAccessData.includes(empAccessData)) {
- empPreferenceCheck = checkAccess(empAccessData);
- } else {
- empPreferenceCheck = true;
- }
-
- if (checkPlanAccessData.includes(empAccessData)) {
- empPlanAccessCheck = checkPlanAccess(
- empAccessData,
- featureAddonData
- );
- } else {
- empPlanAccessCheck = true;
- }
-
- return !empPreferenceCheck || !empPlanAccessCheck;
- }
- },
- Employee: async () => {
- if (empAccessData && accessData !== 'Super Admin') {
- const empAccessCheck = await checkEmpAccess(
- empAccessData,
- currentPath
- );
- let empPreferenceCheck = true;
- let empPlanAccessCheck = true;
-
- if (checkPreferenceAccessData.includes(empAccessData)) {
- empPreferenceCheck = checkAccess(empAccessData);
- } else {
- empPreferenceCheck = true;
- }
-
- if (checkPlanAccessData.includes(empAccessData)) {
- empPlanAccessCheck = checkPlanAccess(
- empAccessData,
- featureAddonData
- );
- } else {
- empPlanAccessCheck = true;
- }
- if (location.pathname === '/app-page/relieve-request') {
- return false;
- }
- return (
- !empAccessCheck || !empPreferenceCheck || !empPlanAccessCheck
- );
- } else {
- if (accessData === 'Super Admin') {
- return true;
- } else {
- return false;
- }
- }
- },
- };
-
- if (userAccessChecks[UserType]) {
- shouldNavigate = await userAccessChecks[UserType]();
- } else {
- shouldNavigate = true;
+ const { barcodes } = await BarcodeScanner.scan();
+ if (barcodes?.length > 0) {
+ onScan(barcodes[0].rawValue);
}
- console.log('shouldNavigate', shouldNavigate);
- if (shouldNavigate) {
- // alert("Unauthorized action detected. You have been logged out.")
- Logout();
- setHasRedirected(true);
- } else {
- console.log('Access granted for current route.');
- }
-
- setAccessCheckComplete(true);
+ } catch (err) {
+ console.error(err);
+ } finally {
+ setScanning(false);
}
- };
-
- performAccessChecks();
- }, [UserType, routesConfig, navigate, hasRedirected, location.pathname]);
-
- const Logout = async () => {
- const status = 'N'; // replace with your actual status
- const res = await dispatch(GenerateLogout({ UserId, status })).unwrap();
- if (res?.data?.statusCode === 1) {
- sessionStorage.clear();
- window.location.replace(`${commonUrl}`);
+ } else {
+ setModalOpen(true);
}
};
- const renderRoutes = (routes) => {
- return routes.map(({ path, component: Component, children }) => {
- const fullPath = `${path}`;
+ // -------------------------
+ // START WEB SCAN (HYBRID)
+ // -------------------------
+ const startWebScan = async () => {
+ if (!videoRef.current) return;
- if (!Component) {
- console.error(`Component not found for path: ${fullPath}`);
- return null;
+ // Start QR scanner (fast)
+ qrScannerRef.current = new QrScanner(
+ videoRef.current,
+ (result) => {
+ stopWebScan();
+ onScan(result.data);
+ setModalOpen(false);
+ },
+ {
+ maxScansPerSecond: 25,
}
+ );
- if (children) {
- return (
- }>
- {children.map(({ path: childPath, component: ChildComponent }) => {
- if (!ChildComponent) {
- console.error(
- `Child component not found for path: ${childPath}`
- );
- return null;
- }
- return (
- }
- />
- );
- })}
-
- );
- }
+ await qrScannerRef.current.start();
- return } />;
+ // Start Barcode scanner (ZXing)
+ barcodeReaderRef.current = new BrowserMultiFormatReader(undefined, {
+ possibleFormats: [
+ BarcodeFormat.CODE_128,
+ BarcodeFormat.EAN_13,
+ BarcodeFormat.UPC_A,
+ BarcodeFormat.UPC_E,
+ ],
});
+
+ barcodeReaderRef.current.timeBetweenDecodingAttempts = 50;
+
+ barcodeReaderRef.current.decodeFromVideoDevice(
+ null,
+ videoRef.current,
+ (result) => {
+ if (result) {
+ stopWebScan();
+ onScan(result.getText());
+ setModalOpen(false);
+ }
+ }
+ );
};
- return (
- }>
- {accessCheckComplete && renderRoutes(routesConfig)}
-
- );
-};
+ const stopWebScan = () => {
+ if (qrScannerRef.current) {
+ qrScannerRef.current.stop();
+ qrScannerRef.current.destroy();
+ qrScannerRef.current = null;
+ }
-export default ProtectedRoutes;
+ if (barcodeReaderRef.current) {
+ barcodeReaderRef.current.reset();
+ barcodeReaderRef.current = null;
+ }
+
+ setScanning(false);
+ };
+
+ const closeModal = () => {
+ stopWebScan();
+ setModalOpen(false);
+ };
+
+ useEffect(() => {
+ if (modalOpen) {
+ startWebScan();
+ }
+ }, [modalOpen]);
+
+ useEffect(() => {
+ return () => stopWebScan();
+ }, []);
+
+ return (
+
+ {!scanning && (
+
+ )}
+
+
+
+ {/* VIDEO */}
+
+
+ {/* DARK OVERLAY */}
+
+
+ {/* SCAN BOX */}
+
+
+ {/* SCAN LINE */}
+
+
+
+
+
+ {/* Animation */}
+
+
+
+ );
+}
diff --git a/src/check.scss b/src/check.scss
index ab9719c..3df0d88 100644
--- a/src/check.scss
+++ b/src/check.scss
@@ -1,1702 +1,629 @@
-.productListBrowseImageButton {
- width: 65px;
- background-color: #dbd1d1;
- border: 0.5px solid gray;
- border-radius: 3px;
- font-size: 10px;
- font-weight: 600;
-}
+:root {
+ --INPUT_FIELD_WIDTH: min(60vw, 250px);
+ --HEADING_COLOR: #000000;
+ --HEADING_FONT_FAMILY: 'Gilroy';
-.productListBrowseImageButton2 {
- width: 65px;
- background-color: #dbd1d1;
- border: 0.5px solid #808080;
- border-radius: 3px;
- font-size: 10px;
- font-weight: 600;
-}
+ --PARA_FONT_FAMILY: 'Poppins';
+ --PARA_COLOR: #3f3f3f;
-.product_primary_Button {
- background-color: var(--ERROR_COLOR);
- color: #fff;
- padding: 15px;
+ --PRIMARY_BUTTON_BG_COLOR: #8f1e78;
+ --PRIMARY_BUTTON_COLOR: #ffffff;
+ --PRIMARY_BUTTON_BORDER_RADIUS: 6px;
- border: 1px solid;
- overflow: hidden;
+ --SECONDRY_BUTTON_BG_COLOR: white;
+ --SECONDRY_BUTTON_COLOR: #000000;
+ --SECONDRY_BUTTON_BORDER_RADIUS: 25.6853px;
- width: 170px;
- height: 45px;
- background-color: var(--PRIMARY_BUTTON_BG_COLOR) !important;
- color: #fff;
- font-family: var(--HEADING_FONT_FAMILY);
- font-style: normal;
- font-weight: 500;
- font-size: 14px;
- border-radius: 8px;
- display: flex;
- letter-spacing: 0.5px;
- justify-content: space-between;
- align-items: center;
- z-index: 2;
-}
+ --THIRD_BUTTON_BG_COLOR: #060606;
+ --THIRD_BUTTON_COLOR: #efefef;
+ --THIRD_BUTTON_BORDER_RADIUS: 6.53329px;
-.Counter-Category-mapping {
- border-collapse: collapse;
- border: 1px solid red;
- margin: 0 0 1rem 0;
-}
+ --BOX_SHADOW_LEVEL1: 0px 4px 15px rgba(0, 0, 0, 0.1);
+ --BOX_SHADOW_LEVEL2: 0px 4px 25px rgba(0, 0, 0, 0.2);
+ --BOX_SHADOW_LEVEL3: 0px 5.25331px 26.3077px rgba(0, 0, 0, 0.08);
-.product-delete-input {
- .example {
- width: 80px !important;
- }
-}
+ --CARD_BG_COLOR: rgba(255, 255, 255, 0.6);
+ --CARD_COLOR: #000000;
+ --CARD_FONT_FAMILY: 'Gilroy-Medium';
+ --CARD_BORDER_RADIUS: 10px;
-.delete-bulk-icon {
- display: flex;
- gap: 10px;
- align-items: center;
- justify-content: center;
- width: 100%;
+ --ANCHOR_FONT_FAMILY: 'Manrope';
+ --ANCHOR_COLOR: #314259;
- svg {
- margin-bottom: 0 !important;
- }
-}
+ --BUTTON_FONT_FAMILY: 'Gilroy-Medium';
-.userPageCustMaster {
- height: 100vh !important;
+ --BREAD_CRUMB_PADDING: 1rem;
- .formDiv {
- height: 85% !important;
- }
-}
+ --TABLE_PAGE_PADDING: 1rem;
-.samplereportTableButton {
- justify-content: flex-end;
- margin: 10px 0;
- align-items: center;
- display: flex;
- width: 100%;
-}
+ /* --PAGE_BODY_BACKGROUND_COLOR: #e8ecf1; */
+ --PAGE_BODY_BACKGROUND_COLOR: #d4e7ff;
-.uploadexcelBtn {
- .primary_Button {
- background-color: #000 !important;
+ --SELECTED_COLOR: #52c41a;
- &:focus {
- color: #000000 !important;
- border-color: #000 !important;
- }
- }
-}
+ --ERROR_COLOR: #ff4d4f;
-.productMaster-input {
- .tertiary_Button {
- font-size: 13px;
- background-color: #d37305 !important;
- }
-}
+ --DEFAULT_SELECTED_COLOR: #1292ee;
-// Customer Address Details List Styles
-.customer-address-details-list {
- display: grid;
- grid-template-columns: 1fr 1fr 1fr;
- gap: 1rem;
-
- @media (max-width: 768px) {
- grid-template-columns: 1fr 1fr;
- }
-
- @media (max-width: 500px) {
- grid-template-columns: 1fr;
- }
-
- .address-card {
- margin-bottom: 20px;
- padding: 16px;
- border: 1px solid #e1e5e9;
- border-radius: 12px;
- background-color: #ffffff;
- transition: all 0.3s ease;
- position: relative;
- overflow: auto;
- height: 245px;
- max-height: 300px;
- display: flex;
- flex-direction: column;
- align-items: flex-start;
- justify-content: center;
-
- @media (max-width: 768px) {
- height: max-content;
- }
-
- @media (max-width: 500px) {
- height: max-content;
- margin-bottom: 0;
- }
- }
-
- .address-header {
- display: flex;
- justify-content: space-between;
- align-items: center;
- margin-bottom: 16px;
- padding: 6px 12px;
- border-radius: 8px 8px 0px 0;
- margin: -20px -20px 0px -20px;
-
- .header-left {
- display: flex;
- align-items: center;
- gap: 12px;
-
- .address-number {
- width: 32px;
- height: 32px;
- border-radius: 50%;
- background-color: #b5a8ff;
- display: flex;
- align-items: center;
- justify-content: center;
- font-size: 14px;
- font-weight: bold;
- color: #23378a;
- }
-
- h4 {
- color: #23378a;
- margin: 0;
- font-size: 14px;
- font-weight: 600;
- letter-spacing: 0.5px;
- }
- }
- }
-
- .header-actions {
- display: flex;
- gap: 0px;
- align-items: flex-end;
- justify-content: flex-end;
- margin-top: 6px;
- width: 100%;
-
- svg {
- display: flex;
- }
-
- .edit-btn,
- .remove-btn {
- border: none;
- font-family: "Poppins";
- padding: 4px 10px;
- border-radius: 6px;
- cursor: pointer;
- font-size: 12px;
- font-weight: 400;
- transition: all 0.2s ease;
- display: flex;
- align-items: center;
- gap: 4px;
- height: max-content;
- }
-
- .remove-btn {
- background: unset;
- color: #cf0b0fe6;
- }
-
- .edit-btn {
- background: unset;
- color: #0ea021;
- }
- }
-
- .address-type-section {
- .ant-checkbox-inner {
- height: 14px;
- width: 14px;
- }
-
- .ant-checkbox-label {
- font-size: 12px;
- }
-
- label {
- font-size: 13px;
- font-weight: 600;
- color: #4a5568;
- margin-bottom: 8px;
- display: block;
- }
-
- .ant-checkbox-group {
- display: flex;
- gap: 0;
- flex-wrap: wrap;
- }
-
- .ant-checkbox-wrapper {
- display: flex;
- }
- }
-
- .address-details-grid {
- display: flex;
- flex-direction: row;
- flex-wrap: wrap;
- gap: 4px;
- margin-top: 10px;
-
- .address-detail-item {
- padding: 2px 2px;
- border-radius: 4px;
- line-height: 1.3;
-
- .labelCoordinates {
- font-size: 10px;
- color: #3b424d;
- font-weight: 500;
- text-transform: uppercase;
- letter-spacing: 0.5px;
- }
-
- .value {
- font-size: 13px;
- color: #000000;
- font-weight: 500;
-
- &.coordinates {
- font-size: 13px;
- display: flex;
- align-items: center;
- gap: 4px;
- margin-top: 4px;
-
- svg {
- color: #3182ce;
- }
- }
- }
- }
- }
-
- .empty-state {
- text-align: center;
- padding: 40px 20px;
- background-color: #f8fafc;
- border-radius: 12px;
- border: 2px dashed #cbd5e0;
- color: #718096;
-
- svg {
- font-size: 48px;
- margin-bottom: 16px;
- color: #cbd5e0;
- }
-
- h3 {
- margin: 0 0 8px 0;
- color: #4a5568;
- }
-
- p {
- margin: 0;
- font-size: 14px;
- }
- }
-}
-
-@media (max-width: 499px) {
- .commonMaster-btn {
- .tertiary_Button {
- width: 40vw !important;
- }
-
- .primary_Button {
- width: 35vw !important;
- font-size: 13px;
- }
-
- .productMaster-input .primary_Button {
- width: 33.33vw !important;
- font-size: 13px;
- }
-
- .subRowFlex {
- .product-add-iconMargin {
- margin-top: 15px !important;
- }
- }
- }
-
- // for all mobile screen no issue
- .searchDiv {
- width: 215px !important;
- }
-
- .searchAddDiv {
- font-size: 11px;
-
- .searchDiv {
- width: 76.39vw !important;
- }
- }
-
- .ant-table table {
- width: 800px;
- }
-
- .subinputForm {
- display: flex;
- flex-direction: row !important;
- }
-
- .Counter-Category-mapping {
- width: 80vw;
- }
-
- .MapDiv {
- width: var(--INPUT_FIELD_WIDTH);
- overflow: hidden;
- border: none;
- }
-
- .CustmasterForm-RadiaSelect .CustmasterForm-RadiaSelect-flex {
- display: flex;
- flex-wrap: wrap;
- font-size: 12px;
- }
-
- .samplereportTableButton {
- position: unset !important;
- display: flex;
- align-items: center;
- justify-content: flex-end;
- }
-
- .commonMaster-btn {
- flex-wrap: wrap;
- height: unset !important;
-
- button {
- width: 250px !important;
- }
-
- .productMaster-input {
- .tertiary_Button {
- position: unset !important;
- left: unset !important;
- }
- }
- }
-}
-
-.customerMaster-Form-percentage {
- display: flex;
- flex-wrap: wrap;
- gap: 10px;
-}
-
-.customerMaster-Form-percentage.field-DropDown {
- width: 200px !important;
-}
-
-.bulkuploadmodal {
- .ant-modal-content {
- padding: 16px 32px;
- }
-}
-
-.producttablepagination {
- z-index: 50;
- position: sticky !important;
- bottom: 0;
- margin: 0 !important;
- padding: 0.5rem;
- background-color: #fafafa;
-}
-
-.productlistgetnoinput {
- display: flex;
- align-items: center;
- gap: 10px;
-
- input {
- width: 40px;
- height: 25px;
- padding: 10px;
- border: none;
- font-size: 14px;
- border: 1px solid #c0c0c0;
- background-color: #fff;
- border-radius: 6px;
- outline: none;
- }
-}
-
-.reportTableProduct {
- .ant-table-thead {
- z-index: 150 !important;
- }
-
- .ant-table-cell {
- padding: 4px !important;
- }
-}
-
-.PricePrice-input {
- .ant-select-selection-item {
- padding-top: 2px !important;
- }
-}
-
-.MapDiv1 {
- width: 502px;
- height: 400px !important;
-}
-
-.customerMaster-Form-Form-details {
- display: flex;
- flex-wrap: wrap;
- gap: 10px;
- column-gap: 2rem;
- width: 100%;
-}
-
-.subinputFormInput {
- display: flex;
- align-items: flex-start;
- flex-wrap: wrap;
- width: 100%;
- gap: 1rem;
- column-gap: 2rem;
-}
-
-.Credits-percentage {
- display: flex;
- align-items: center;
- justify-content: center;
- border-radius: 30px;
- background-color: yellow;
- width: max-content;
- height: max-content;
- padding: 6px 12px;
-
- font-size: 13px;
- font-weight: 700;
- text-align: center;
-
- border: 1px solid #f1c40f;
- transition: all 0.3s ease;
-
- :hover {
- box-shadow: 0 6px 14px rgba(0, 0, 0, 0.25);
- transform: translateY(-2px);
- }
-}
-
-.productNameDDAuto {
- .ant-select-selector {
- width: 250px !important;
- }
-}
-
-.product-name-scan {
- position: relative;
-
- .product-scan-Icon {
- position: absolute;
- right: 10px;
- top: 35%;
- cursor: pointer;
- }
-}
-
-.Bulkuploadpost {
- width: 100vw;
- height: 99vh;
- background-color: #00000052;
- display: flex;
- align-items: center;
- justify-content: center;
- position: fixed;
- top: 0;
- right: 0;
- left: 0;
- bottom: 0;
- backdrop-filter: blur(2px);
- z-index: 499;
-}
-
-.update-and-cancel {
- display: flex;
- align-items: flex-start;
- gap: 10px;
-
- button {
- padding: 14px 18px;
- border: none;
- font-family: "Poppins", sans-serif;
- font-size: 14px;
- font-weight: 500;
- cursor: pointer;
- border-radius: 8px;
- outline: none;
- }
-
- > button:nth-child(1) {
- background-color: #daecfd;
- color: #1292ee;
- }
-
- > button:nth-child(2) {
- background-color: #ffdcdc;
- color: #ee3333;
- }
-}
-
-@media (max-width: 500px) {
- .ant-breadcrumb {
- font-size: 12px !important;
- }
-
- .breadCrumbClass {
- padding: 0.1rem 0.5rem 0.1rem 0.7rem;
- }
-
- .formName {
- flex-direction: column;
- margin-bottom: 5px;
-
- > div:nth-child(2) {
- width: max-content;
- font-size: 12px !important;
- height: max-content;
- }
- }
-}
-
-.lowStock-SaveButton {
- width: 4rem;
- background-color: #0ea021;
- border-radius: 1rem;
- display: flex;
- align-items: center;
- justify-content: center;
- padding: 8px;
- color: white;
- cursor: pointer;
-}
-
-.lowStock-SaveButton:hover {
- background-color: #13c12a;
- transform: translateY(-2px);
- box-shadow: 0 4px 6px rgba(0, 0, 0, 0.25);
-}
-
-.lowStock-button {
- display: flex;
- align-items: center;
- gap: 8px;
- background-color: #eab308;
- color: #000000;
- padding: 8px 14px;
- border-radius: 6px;
- font-weight: 500;
- cursor: pointer;
- transition: all 0.3s ease;
- height: max-content;
- font-family: "Poppins";
-}
-
-/* Hover effect */
-.lowStock-button:hover {
- background-color: #f7c530;
- transform: translateY(-2px);
-}
-
-/* Active (click) effect */
-.lowStock-button:active {
- transform: translateY(0);
- box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
-}
-
-// deilivery Address
-
-.Address-button {
- display: flex;
- align-items: center;
- gap: 8px;
- background-color: #0ea5e9;
- color: #ffffff;
- padding: 8px 14px;
- border-radius: 6px;
- font-weight: 500;
- cursor: pointer;
- transition: all 0.3s ease;
- height: max-content;
- font-family: "Poppins";
-}
-
-/* Hover effect */
-.Address-button:hover {
- background-color: #0cabf4;
- transform: translateY(-2px);
-}
-
-/* Active (click) effect */
-.Address-button:active {
- transform: translateY(0);
- box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
-}
-
-.deliveryaddress {
- display: flex;
- align-items: flex-start;
- flex-direction: column;
- background-color: #fff3f3;
- padding: 10px;
- border-radius: 4px;
- height: max-content;
- .deliveryaddress_edit {
- color: #0cabf4;
- display: flex;
- align-items: center;
- gap: 5px;
- cursor: pointer;
- }
-}
-
-.add-slot-header {
- font-size: 25px;
- font-weight: 600;
- font-family: "Gilroy";
- padding-bottom: 6px;
-}
-
-.ModalPaymentGatewayEmbedded {
- .ant-modal-content {
- overflow: hidden !important;
- }
-}
-
-.addTaxinputDrawer {
- display: flex;
- align-items: flex-start;
- flex-direction: column;
- gap: 2rem;
-}
-
-@media (max-width: 768px) {
- .productlistSearchDiv {
- flex-direction: column;
- }
-}
-
-.swicthCardScanToggle {
- button {
- background-color: #1292ee !important;
- font-family: "Poppins";
- font-weight: 500;
- }
-}
-
-.BSC1NavBar-location {
- &.scan {
- padding: 2px 3px !important;
- }
-}
-
-.searched-value {
- font-family: "Poppins";
- font-weight: 500;
-}
-
-.StorekitchenlistTable {
- scrollbar-width: thin;
- padding-right: 8px;
- margin-top: 10px;
-
- @media (max-width: 600px) {
- }
-
- .ant-table-thead {
- &:hover {
- background-color: #bad4f9 !important;
- }
-
- tr:hover {
- background-color: #bad4f9 !important;
- }
-
- .ant-table-cell {
- color: #ffffff;
- font-weight: 500;
- font-size: 12px;
- }
- }
-
- .ant-table-cell {
- &:hover {
- background-color: #bad4f9 !important;
- }
- }
-}
-
-.StoreRecipeinputForm {
- .ant-form-item-explain-error {
- top: 16px;
- }
-}
-
-.incenbtivepayBTN {
- .ant-btn {
- font-size: 16px !important;
- padding: 8px 16px !important;
- height: max-content;
- text-align: center;
- vertical-align: middle;
- }
-}
-
-.commonMaster-btn {
- .SmartScanBTN {
- button {
- background-color: #0bad77 !important;
-
- &:focus {
- color: #fff !important;
- border-color: #fff !important;
- }
- }
- }
-
- .tertiary_Button {
- position: unset !important;
- left: unset !important;
- height: 45px !important;
- width: 180px !important;
- font-size: 14px !important;
-
- &:hover {
- background-color: #d37305 !important;
- }
- }
-
- .smart_scan_Button {
- position: unset !important;
- left: unset !important;
- height: 45px !important;
- width: 180px !important;
- font-size: 14px !important;
- background-color: #28a745 !important;
-
- &:hover {
- background-color: #218838 !important;
- }
- }
-}
-
-.StoreKitchen-tables {
- .ant-form-item {
- margin-bottom: 0 !important;
- }
-
- .ant-input {
- padding: 6px 14px 6px 11px !important;
- text-align: center;
- }
-
- .ant-table table {
- border-spacing: 0 !important;
- }
-}
-
-.pricechangeTable {
- .ant-input {
- padding: 4px 11px 4px 11px !important;
- width: 80px !important;
- text-align: center;
- border-color: #1292ee;
-
- &:hover {
- background-color: #c2e6ff;
- border-color: #fff;
- }
- }
-
- .ant-table-cell {
- padding: 2px 6px !important;
- }
-}
-
-.editable-cell-value-wrap {
- width: 100%;
- display: flex;
- align-items: center;
- justify-content: flex-end;
-
- .ant-input {
- position: relative;
- }
-}
-
-.price-change-modal {
- .ant-modal-content {
- padding: 24px !important;
- }
-}
-
-.price-change-table {
- .ant-table-thead tr {
- background-color: #2c88ee !important;
- }
- .ant-form-item {
- margin-bottom: 0 !important;
- }
-
- .ant-input {
- padding: 6px 14px 6px 11px !important;
- text-align: center;
- width: 100px !important;
- border-color: #1292ee;
- }
-
- .ant-input:hover {
- background-color: #cfcfcf;
- border-color: #fff;
- }
-
- .example {
- width: 100px !important;
- }
-
- .table-notes {
- font-family: "Poppins";
- font-style: italic;
- margin-bottom: 10px;
- }
-
- .ant-table table {
- border-spacing: 0 !important;
- font-family: "Poppins";
- }
-}
-
-.formFields {
- display: flex;
- flex-direction: row;
- gap: 1rem;
- .ant-form-item {
- margin-bottom: 0 !important;
- }
-}
-
-.CommmasterPageHeader {
- display: flex;
- justify-content: space-between;
- align-items: flex-start;
- gap: 1rem;
- flex-wrap: wrap;
-}
-
-.comboProductList {
- width: 100%;
-
- .ant-table-thead,
- .ant-table-cell {
- white-space: nowrap;
-
- th {
- white-space: nowrap;
- }
- }
-}
-
-table {
- thead {
- th {
- font-family: "Gilroy" !important;
- }
- }
-
- tbody {
- td {
- font-family: "Poppins" !important;
- font-weight: 500;
- font-size: 13px;
- }
- }
-}
-
-.radio-sidebar-container {
- display: flex;
- flex-direction: column;
- gap: 4px;
- height: 30vh;
- overflow-y: auto;
overflow-x: hidden;
- scrollbar-width: thin;
- width: 340px;
}
-.radio-sidebar-item {
- padding: 8px 12px;
- border: 1px solid #d9d9d9;
- border-radius: 8px;
- cursor: pointer;
- background-color: #fff;
- transition: all 0.3s ease;
- width: 220px;
-
- &.selected {
- border-color: #901d77;
- background-color: #f6f0ff;
- }
+html,
+body {
+ overscroll-behavior: none;
}
-.radio-sidebar-title {
- font-weight: 500;
- white-space: nowrap;
-}
-
-.radio-sidebar-desc {
- font-size: 12px;
- color: #666;
-}
-
-.barcode-qr-preview {
- display: flex;
- align-items: center;
- gap: 50px;
- justify-content: space-between;
- width: 100%;
- border: 1px solid #b1b1b1;
- padding: 10px;
- border-radius: 4px;
- height: 300px;
-}
-
-.labelGrid15 {
- width: 92mm;
-}
-
-@media print {
- body {
- margin: 0 !important;
- padding: 0 !important;
- }
-}
-
-.label15 {
- width: 15mm;
- height: 15mm;
- display: flex;
- align-items: center;
- justify-content: center;
+* {
+ padding: 0px;
+ margin: 0px;
box-sizing: border-box;
}
-.BarQrprint2details {
- display: flex;
+p {
+ font-family: VAR(--PARA_FONT_FAMILY);
+}
+
+/* p {
+ margin-bottom: 0 !important;
+} */
+
+button {
+ font-family: var(--BUTTON_FONT_FAMILY);
+}
+
+header {
+ font-family: VAR(--HEADING_FONT_FAMILY);
+}
+
+a {
+ font-family: var(--PARA_FONT_FAMILY);
+}
+
+.ant-menu-title-content {
flex-direction: column;
- align-items: center;
- gap: 1mm;
- font-size: 6px;
- font-weight: 600;
- text-align: center;
- padding: 3px;
-
- .productNameBQ,
- .MRPBQ {
- line-height: 1;
- }
-}
-
-.preview-15x15-6cross {
- margin: 0 !important;
- padding: 0 !important;
-}
-
-.size-selection {
- width: 100%;
-}
-
-.default-15x15-6cross {
- margin: 0 !important;
- padding: 0 !important;
- display: grid;
- grid-template-columns: repeat(6, 1fr);
- gap: 1.5mm;
-}
-
-.Sticker0 {
- padding: 1.4mm;
- width: 15mm;
- height: 15mm;
- text-align: center;
- font-size: 6px;
- font-weight: bold;
- background-color: #fff;
display: flex;
- align-items: center;
- justify-content: center;
- border: 1px solid #dadada;
- border-radius: 4px;
- > img {
- max-width: 100%;
- max-height: 100%;
- object-fit: contain;
- }
+ /* align-items: center; */
+ text-transform: uppercase;
}
-.text-ellipsis {
- width: 90%;
- white-space: nowrap;
- overflow: hidden;
- text-align: center;
- text-overflow: ellipsis;
+/* '''''''''''''''''''''''''''''?'? */
+
+/* ScrollBar */
+
+::-webkit-scrollbar {
+ width: 2px;
}
-.grid22x35_3cross {
- width: 105mm;
- /* 35 × 3 */
- display: grid;
- grid-template-columns: repeat(3, 35mm);
- column-gap: 2mm;
+/* Track */
+::-webkit-scrollbar-track {
+ background: #f1f1f1;
}
-.Sticker1 {
- width: 35mm;
- height: 22mm;
- padding-left: 2mm;
- box-sizing: border-box;
- padding-right: 2mm;
- display: flex;
- align-items: center;
- justify-content: space-between;
-
- font-size: 9px;
- font-weight: bold;
+/* Handle */
+::-webkit-scrollbar-thumb {
+ background: #999999;
}
-.bg-white {
- background: #fff;
- border: 1px solid #dadada;
- border-radius: 4px;
-}
-
-.grid25x25_4cross {
- display: grid;
- grid-template-columns: repeat(4, 25mm);
- width: 101.6mm;
- column-gap: 3mm;
- padding: 0px 10px;
-}
-
-.sticker25x25 {
- width: 25mm;
- height: 25mm;
- box-sizing: border-box;
- padding: 3mm;
-
- display: flex;
- flex-direction: column;
- align-items: center;
- justify-content: center;
-}
-
-.sticker25-img {
- width: 13mm;
- height: 13mm;
- object-fit: contain;
-}
-
-.sticker25x25-name {
- text-align: center;
- line-height: 1;
- margin: 0;
- font-size: 8px;
-}
-
-.product-id2 {
- word-wrap: break-word;
- word-break: break-word;
- overflow-wrap: break-word;
- white-space: normal;
- font-size: 8px;
-}
-
-.grid25x50_2cross {
- justify-content: center;
- align-items: center;
- display: grid;
- grid-template-columns: repeat(2, 50mm);
- width: 106mm;
- column-gap: 6mm;
-}
-
-.Sticker3 {
- padding: 5px;
- width: 50mm;
- height: 25mm;
- text-align: center;
- font-size: 12px;
- display: flex;
- flex-direction: row;
- font-weight: bold;
- align-items: center;
- background: #fff;
-}
-
-.grid50x30_1cross {
- display: flex;
- justify-content: center;
- align-items: center;
-
- .Sticker4 {
- width: 50mm;
- height: 30mm;
- padding: 6px;
- box-sizing: border-box;
- text-align: center;
- font-size: 14px;
- font-weight: bold;
- background: #fff;
- display: flex;
- align-items: center;
- flex-direction: column;
- justify-content: center;
-
- > img {
- max-width: 100%;
- max-height: 100%;
- object-fit: contain;
- }
- }
-}
-
-.grid50x25_1cross {
- display: flex;
- justify-content: center;
- align-items: center;
-
- .Sticker5 {
- width: 50mm;
- height: 25mm;
- padding: 4px;
- box-sizing: border-box;
- text-align: center;
- font-size: 14px;
- font-weight: bold;
- background: #fff;
- display: flex;
- align-items: center;
- flex-direction: column;
- justify-content: center;
-
- > img {
- max-width: 100%;
- max-height: 100%;
- object-fit: contain;
- }
- }
-
- .Sticker5-name {
- font-size: 10px;
- display: flex;
- align-items: center;
- flex-direction: column;
- justify-content: center;
- width: 100%;
- }
-}
-
-.grid100x13_1cross {
- display: flex;
- justify-content: center;
- align-items: center;
-
- .Sticker6 {
- width: 100mm;
- height: 13mm;
- padding: 4px 4px;
- box-sizing: border-box;
- text-align: center;
- font-size: 14px;
- font-weight: bold;
- background: #fff;
- display: flex;
- align-items: center;
- flex-direction: row;
- justify-content: space-between;
-
- > img {
- max-width: 100%;
- max-height: 100%;
- object-fit: contain;
- }
- }
-}
-
-.grid100x15_1cross {
- display: flex;
- justify-content: center;
- align-items: center;
-
- .Sticker7 {
- width: 100mm;
- height: 15mm;
- padding: 4px 4px;
- box-sizing: border-box;
- text-align: center;
- font-size: 14px;
- font-weight: bold;
- background: #fff;
- display: flex;
- align-items: center;
- flex-direction: row;
- justify-content: space-between;
-
- > img {
- max-width: 100%;
- max-height: 100%;
- object-fit: contain;
- }
- }
-}
-
-.grid100x150_1cross {
- display: flex;
- justify-content: center;
- align-items: center;
- padding: 8px 8px;
-
- .OverAllSticker8 {
- width: 100mm;
- height: 150mm;
- padding: 4px 4px;
- box-sizing: border-box;
- text-align: center;
- font-size: 14px;
- font-weight: bold;
- background: #fff;
- display: flex;
- align-items: center;
- flex-direction: column;
- justify-content: space-between;
-
- > img {
- max-width: 100%;
- max-height: 100%;
- object-fit: contain;
- }
- }
-
- .Sticker8 {
- display: flex;
- justify-content: space-between;
- width: 100mm;
- height: 149mm;
- font-size: 16px;
- font-weight: bold;
- }
-
- .text-section8 {
- flex: 1;
- text-align: left;
- width: 50%;
- }
-
- .StikerBr8 {
- text-align: center;
- font-size: 16px;
- font-weight: bold;
- display: flex;
- justify-content: center;
- align-items: center;
- width: 100%;
- }
-
- .text-section8 .field-value {
- flex: 1;
- text-align: right;
- word-wrap: break-word;
- word-break: break-word;
- overflow-wrap: break-word;
- }
-}
-
-.height-max {
- height: max-content !important;
-}
-
-.Sticker4-name {
- display: flex;
- flex-direction: column;
- align-items: center;
- justify-content: center;
- width: 100%;
-}
-
-.ProductList-pwiseQrcode {
- height: max-content !important;
- max-height: 70vh;
+.samplereportTable {
overflow: auto;
- scrollbar-width: thin !important;
+ width: 80vw;
+ height: 70vh !important;
}
-.inputpwiseQR {
- width: 150px;
- height: 40px;
- border-radius: 6px;
- border: 1px solid #e0e0e0;
- background-color: #ffffff;
- font-family: "Poppins";
- font-weight: 500;
- text-align: center;
- padding: 10px;
- outline: none !important;
-}
-
-.indicationInfo {
- font-size: 12px;
- color: #555555;
- margin: 12px 0 6px 0;
- display: flex;
- align-items: center;
- gap: 10px;
-
- p {
- width: 15px;
- height: 15px;
- background-color: #c00000;
- }
-
- span {
- font-size: 12px;
- color: #333;
- font-family: "Poppins";
- font-weight: 500;
- font-size: 13px;
- }
-}
-
-.AddStockMinatain {
- display: flex;
- align-items: center;
- gap: 6px;
- background-color: #1292ee;
- color: #fff;
- font-family: "Poppins";
- font-weight: 500;
- padding: 2px 4px;
- border-radius: 4px;
- cursor: pointer;
-}
-
-.printtabs {
- display: flex;
- border-bottom: 2px solid #f0f0f0;
- margin-bottom: 1rem;
- gap: 0;
-
- .tab-item {
- padding: 6px 12px !important;
- }
-
- .print-tabs {
- display: flex;
- border-bottom: 2px solid #f0f0f0;
- margin-bottom: 1rem;
- gap: 0;
- }
-
- .count {
- margin-left: 6px;
- font-weight: 600;
- color: #555;
- }
-
- .tab-item {
- display: flex;
- padding: 12px 24px;
- cursor: pointer;
- border: 1px solid #d9d9d9;
- border-bottom: none;
- background: #fafafa;
- color: #666;
- font-weight: 500;
- transition: all 0.3s ease;
- position: relative;
- border-radius: 6px 6px 0 0;
- align-items: center;
- gap: 10px;
- }
-
- .tab-item:first-child {
- border-right: none;
- }
-
- .tab-item:hover {
- background: #f5f5f5;
- color: #901d77;
- }
-
- .tab-item.active {
- display: flex;
- background: #fff;
- color: #901d77;
- border-color: #901d77;
- border-bottom: 2px solid #fff;
- margin-bottom: -2px;
- z-index: 1;
- align-items: center;
- gap: 10px;
- }
-
- .tab-item.active::after {
- content: "";
- position: absolute;
- bottom: -2px;
- left: 0;
- right: 0;
- height: 2px;
- background: #fff;
- }
-
- .ProductList-pwiseQrcode {
- height: 70vh;
- overflow-y: auto;
- scrollbar-width: thin;
- scroll-behavior: auto;
- }
-
- .row-red {
- background-color: #ffe6e6 !important;
- }
-
- .row-red td {
- color: #c00000;
- font-weight: 500;
- }
-}
-
-.bulkChangePriceTable {
- width: 83vw;
+.reportTablepreprence {
overflow: auto;
- scrollbar-width: thin;
- height: 60vh;
+ /* width: 88vw; */
+
+ height: 70vh !important;
+}
+
+.firstTable {
+ height: 65vh;
+ overflow: auto;
+}
+
+@media (min-width: 280px) and (max-width: 768px) {
+ .anim-1 {
+ width: 30vw !important;
+ }
+
+ .reportTablepreprence {
+ overflow: auto;
+ width: 70vw;
+
+ height: 50vh !important;
+ }
+
+ .reportTablepreprence table {
+ table-layout: auto !important;
+ }
+
+ .samplereportTable .ant-table-content table {
+ table-layout: auto !important;
+ }
+
+ .firstTable {
+ /* width: 60vw !important; */
+ overflow: auto;
+ }
+
+ .SecondTable {
+ width: 60vw !important;
+ overflow: auto;
+ }
+
+ .samplereportTable {
+ overflow: auto;
+ width: 80vw;
+ height: 49vh !important;
+ }
+}
+
+.tooltip {
position: relative;
-
- .ant-table-cell {
- padding: 2px 6px !important;
- }
- .ant-table-tbody {
- height: 60vh !important;
- }
- .ant-input {
- padding: 3px 14px 4px 11px !important;
- text-align: center;
- }
- .ant-table-thead tr {
- background-color: #2c88ee !important;
- }
-}
-.PriChangeUpper {
- display: flex;
- align-items: center;
- flex-wrap: wrap;
- gap: 10px;
-
- .btnbtninfo {
- background: #8f1e78;
- color: #fff;
- vertical-align: top;
- display: flex;
- align-items: center;
- justify-content: center;
- width: 42px;
- border-radius: 4px;
- height: 42px;
-
- &:hover {
- background: #d333b3;
- }
- }
+ display: inline-block;
}
-.pruchaseCatBTN {
- display: flex;
- align-items: center;
- gap: 7px;
- padding: 8px 16px;
- background-color: #0bad77;
- border-radius: 7px;
- color: white;
- cursor: pointer;
- font-family: "Poppins";
- font-weight: 400;
- white-space: nowrap;
- font-size: 13.5px;
- transition: all 0.2s;
- &:hover {
- background-color: #069666;
- }
-}
-
-.scan-receipt-btn {
- display: flex;
- align-items: center;
- gap: 7px;
- padding: 8px 16px;
- background-color: #1292ee;
- border-radius: 7px;
- color: white;
- cursor: pointer;
- font-family: "Poppins";
- font-weight: 400;
- white-space: nowrap;
- font-size: 13.5px;
- transition: all 0.2s;
- &:hover {
- background-color: #0985be;
- }
-}
-.CustomerForm-Master {
- width: 100%;
-}
-
-// Sree
-.component-table-purchae {
- display: flex;
- flex-direction: column;
- flex-wrap: wrap;
- height: max-content;
- max-height: 300px;
- width: 100%;
- overflow-y: auto;
- & .ant-table-wrapper table {
- width: 80%;
- }
-}
-
-.component-table-new {
- display: flex;
- flex-direction: column;
- flex-wrap: wrap;
- height: 400px;
- width: 100%;
- overflow-y: auto;
- & .ant-table-wrapper table {
- width: 100%;
- }
-}
-
-.component-table-new .ant-pagination {
- position: sticky;
- bottom: 0;
- margin: 0 !important;
- padding: 0.5rem;
- background-color: #fafafa;
-}
-
-.userPageContent {
- .wspreorder-input1 {
- display: flex;
- align-items: flex-start;
- gap: 1rem;
- flex-wrap: wrap;
- }
-
- .ant-form-item-control-input-content {
- display: flex;
- align-items: flex-start;
- gap: 10px;
- }
-
- .submitButton1 {
- width: 90%;
-
- .primary_Button {
- float: inline-end;
- color: white;
- }
- }
-}
-
-@media (max-width: 768px) {
- .ClassExtraChargesList {
- .searchAddDiv {
- flex-wrap: wrap !important;
- }
- }
-}
-.LowStockAlterModal {
- .ant-input-affix-wrapper {
- width: 300px !important;
- }
- .ant-input {
- padding: 5px 14px 6px 11px !important;
- }
-}
-.LowStockAlterModalTable {
- margin-top: 1rem;
- .ant-table-thead tr {
- background-color: #2c88ee !important;
- }
-}
-
-.addFiledInProRec {
- padding: 12px;
- height: max-content;
- max-height: 70vh;
- overflow: auto;
- scrollbar-width: thin;
- background-color: #f4f4f4;
- border-radius: 8px;
- .Customized_QuickAdd {
- margin-bottom: 6px;
- font-family: "Poppins";
- font-weight: 400;
- label {
- display: flex;
- align-items: center;
- }
- }
- input {
- width: 18px !important;
- height: 20px !important;
- }
-}
-
-.Shot-KeyBoard {
- .KBwithKey,
- .ant-typography {
- font-family: "Poppins" !important ;
- font-weight: 400 !important;
- strong {
- font-weight: 500 !important;
- }
- }
- .ant-list-item {
- padding: 10px 0 !important;
- }
-}
-
-.CusAddressAddBtn {
- background-color: #1677ff;
+.tooltip .tooltiptext {
+ visibility: hidden;
+ width: 120px;
+ background-color: #000;
color: #fff;
- padding: 6px 10px;
- border: none;
+ text-align: left;
border-radius: 6px;
- cursor: pointer;
- font-size: 12px;
- margin-top: 8px;
- font-weight: 400;
- font-family: "Poppins";
+ padding: 10px 5px;
+
+ /* Position the tooltip */
+ position: absolute;
+ z-index: 1;
}
+
+.navbar-top {
+ top: 38px;
+}
+
+.tooltip:hover .tooltiptext {
+ visibility: visible;
+}
+
+/* nk */
+/* .CustomerAddSrch .bottom-0{
+ bottom: 2.5rem;
+} */
+.BSLayout1 .tooltip .tooltiptext {
+ bottom: 2.5rem !important;
+}
+
+.BSLayout2 .tooltip .tooltiptext {
+ bottom: 2.5rem !important;
+}
+
+.BSLayout3 .tooltip .tooltiptext {
+ bottom: 2.5rem !important;
+}
+
+.BsLayout4-Master .tooltip .tooltiptext {
+ bottom: 2.5rem !important;
+}
+
+.BSLayout5 .tooltip .tooltiptext {
+ bottom: 2.5rem !important;
+}
+
+.BSLayout6-fulldiv .tooltip .tooltiptext {
+ bottom: 2.5rem !important;
+}
+
+.BSBillingNavBar1-AllIcons .tooltip .tooltiptext {
+ top: 2.5rem;
+}
+
+.BSBillingNav2div2 .tooltip .tooltiptext {
+ top: 2.5rem;
+}
+
+.CustMob-Name .tooltip .tooltiptext {
+ top: 2.5rem;
+}
+
+.sentLink {
+ display: flex;
+ width: 200px;
+ height: 50px;
+ justify-content: space-evenly;
+ background-color: var(--SELECTED_COLOR);
+ border: #545454 solid 1px;
+ color: white;
+ align-items: center;
+ font-family: var(--HEADING_FONT_FAMILY);
+ cursor: pointer;
+ border-radius: 8px;
+ font-size: 15px;
+ font-weight: 600;
+ margin: 0.5rem;
+}
+
+.sentLink:hover {
+ background-color: #f3f3f3;
+ color: #000;
+}
+
+.sentok {
+ display: flex;
+ align-items: center;
+ justify-content: space-around;
+}
+
+.overall-bscombo-container .tooltip .tooltiptext {
+ bottom: 2.5rem !important;
+}
+
+.dotted-box .css-b62m3t-container {
+ pointer-events: none;
+}
+
+@keyframes blink {
+ 0% {
+ opacity: 1;
+ }
+
+ 50% {
+ opacity: 0;
+ }
+
+ 100% {
+ opacity: 1;
+ }
+}
+
+.anim-1 {
+ /* animation: blink 1s infinite; */
+ align-items: center;
+ display: flex;
+ /* width: clamp(100px, 2vw, 200px); */
+ width: 20vw;
+ /* padding: 0rem 0.5rem; */
+ font-size: clamp(0.9rem, 2vw, 1.5rem);
+ border-radius: 3px;
+ font-weight: 600;
+ font-family: var(--HEADING_FONT_FAMILY);
+}
+
+.payment-error-msg {
+ font-size: 12px;
+ font-family: VAR(--PARA_FONT_FAMILY);
+ color: VAR(--ERROR_COLOR);
+}
+
+/* Disable all Ant Design table animations and hover effects */
+.ant-table,
+.ant-table *,
+.ant-table-wrapper * {
+ transition: none !important;
+ animation: none !important;
+ animation-duration: 0s !important;
+ transition-duration: 0s !important;
+}
+
+.ant-table-tbody > tr:hover > td,
+.ant-table-tbody > tr:hover,
+.ant-table-row:hover > td,
+.ant-table-row:hover,
+.ant-table-cell-row-hover {
+ background: transparent !important;
+ background-color: transparent !important;
+}
+
+/* OverWrite code for modal */
+
+.ant-modal .ant-modal-content {
+ padding: 34px !important;
+ /* Android WebView 83 fix: ensure positioning context for close button */
+ position: relative !important;
+ overflow: visible !important;
+}
+
+/* ============================================
+ ANDROID WEBVIEW 83 - Modal Close Button Fix
+ On Chrome 83, position:absolute inside a flex
+ container loses its anchor. Force it to always
+ sit at top-right of the modal content box.
+============================================ */
+.ant-modal-close {
+ position: absolute !important;
+ top: 0 !important;
+ right: 0 !important;
+ z-index: 10 !important;
+ width: 44px !important;
+ height: 44px !important;
+ display: -webkit-box !important;
+ display: -webkit-flex !important;
+ display: flex !important;
+ -webkit-box-align: center !important;
+ -webkit-align-items: center !important;
+ align-items: center !important;
+ -webkit-box-pack: center !important;
+ -webkit-justify-content: center !important;
+ justify-content: center !important;
+ cursor: pointer !important;
+ background: transparent !important;
+ border: none !important;
+ padding: 0 !important;
+ line-height: 1 !important;
+}
+
+.ant-modal-close-x {
+ display: -webkit-box !important;
+ display: -webkit-flex !important;
+ display: flex !important;
+ -webkit-box-align: center !important;
+ -webkit-align-items: center !important;
+ align-items: center !important;
+ -webkit-box-pack: center !important;
+ -webkit-justify-content: center !important;
+ justify-content: center !important;
+ width: 100% !important;
+ height: 100% !important;
+ font-size: 16px !important;
+ line-height: 1 !important;
+}
+
+.ant-table-wrapper .ant-table-thead > tr > th,
+.ant-table-wrapper .ant-table-thead > tr > td {
+ color: #ffffff !important;
+}
+.ant-table table {
+ border-spacing: 0 0 !important;
+}
+
+.ant-table-tbody .ant-table-cell {
+ font-family: 'Poppins' !important;
+}
+.ant-modal-wrap {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+.ant-dropdown {
+ position: absolute !important;
+}
+
+/* ============================================
+ ANDROID WEBVIEW FLEX GAP FIX
+ Chrome 83 and below does not support gap in flexbox.
+ Use margin fallbacks instead.
+============================================ */
+
+/* Ant Design Space fix */
+.ant-space {
+ display: -webkit-box !important;
+ display: -webkit-flex !important;
+ display: flex !important;
+}
+
+.ant-space-horizontal > .ant-space-item:not(:last-child) {
+ margin-right: 8px !important;
+ margin-bottom: 0 !important;
+}
+
+.ant-space-vertical > .ant-space-item:not(:last-child) {
+ margin-bottom: 8px !important;
+ margin-right: 0 !important;
+}
+
+/* Ant Design Row/Col grid fix */
+.ant-row {
+ display: -webkit-box !important;
+ display: -webkit-flex !important;
+ display: flex !important;
+ -webkit-flex-wrap: wrap !important;
+ flex-wrap: wrap !important;
+ margin-left: -8px;
+ margin-right: -8px;
+}
+
+.ant-col {
+ padding-left: 8px;
+ padding-right: 8px;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+/* Global flex gap fallback for custom components.
+ If you use gap: Xpx on a flex container, add class
+ 'flex-gap-8', 'flex-gap-12', 'flex-gap-16' instead */
+.flex-gap-4 > *:not(:last-child) {
+ margin-right: 4px;
+}
+.flex-gap-8 > *:not(:last-child) {
+ margin-right: 8px;
+}
+.flex-gap-12 > *:not(:last-child) {
+ margin-right: 12px;
+}
+.flex-gap-16 > *:not(:last-child) {
+ margin-right: 16px;
+}
+.flex-gap-24 > *:not(:last-child) {
+ margin-right: 24px;
+}
+
+.flex-col-gap-4 > *:not(:last-child) {
+ margin-bottom: 4px;
+}
+.flex-col-gap-8 > *:not(:last-child) {
+ margin-bottom: 8px;
+}
+.flex-col-gap-12 > *:not(:last-child) {
+ margin-bottom: 12px;
+}
+.flex-col-gap-16 > *:not(:last-child) {
+ margin-bottom: 16px;
+}
+.flex-col-gap-24 > *:not(:last-child) {
+ margin-bottom: 24px;
+}
+
+/* Global old Android flex gap polyfill.
+ JS marks gap-using flex containers with [data-old-flex-gap="1"] and
+ writes --old-row-gap / --old-col-gap values per container. */
+/* .old-android-webview [data-old-flex-gap] {
+ margin-top: calc(var(--old-row-gap) * -0.5);
+ margin-left: calc(var(--old-col-gap) * -1.6);
+}
+
+.old-android-webview [data-old-flex-gap] > * {
+ margin-top: var(--old-row-gap);
+ margin-left: var(--old-col-gap);
+} */
+
+.old-android-webview [data-old-flex-gap] {
+ margin-top: calc(var(--old-row-gap) * -0.5);
+ margin-left: calc(var(--old-row-gap) * -0);
+}
+
+.old-android-webview [data-old-flex-gap] > * {
+ margin-top: var(--old-row-gap);
+ margin-right: var(--old-col-gap, 0px);
+}
+
+.old-android-webview [data-old-flex-gap] > *:last-child {
+ margin-right: 0px !important;
+}
+
+/* Old Android horizontal category margin spacing (gap not working - use margins) */
+.old-android-webview .CategoryHorizontal-master-container > * {
+ margin-right: 1rem !important;
+ margin-left: 0.3rem !important;
+}
+
+.old-android-webview .CategoryHorizontal-master-container > *:last-child {
+ margin-right: 0 !important;
+}
+
+.old-android-webview .CategoryHorizontal-scroll-container > * {
+ margin-right: 0.5rem !important;
+}
+
+.old-android-webview .CategoryHorizontal-scroll-container > *:last-child {
+ margin-right: 0 !important;
+}
+
+/* Table shrink fix */
+.old-android-webview .BSCategory1-tablecont,
+.old-android-webview [class*="-tablecont"] {
+ min-width: 420px !important;
+ width: 420px !important;
+ max-width: 450px !important;
+ flex-grow: 1 !important;
+}
+
+/* Old Android itemcard rupee ₹ more left space + item name centered */
+.old-android-webview .BSItemCard-itemPrice,
+.old-android-webview .BSItemCard-itemMRP,
+.old-android-webview .qtyUomName-itemCard {
+ padding-left: 0rem !important;
+ padding-right: 1.5rem !important;
+ width: 135px !important;
+ letter-spacing: 0 !important;
+ font-size: 13px !important;
+}
+
+.old-android-webview .BSItemCard-itemName {
+ text-align: center !important;
+ justify-content: center !important;
+ margin: 0 10px !important;
+ display: block !important;
+ padding: 0 1px !important;
+}
+
+/* Old Android global layout fix - BSLayout1Master table width like margin locks */
+.old-android-webview .BSLayout1Master {
+ --table-width-fix: 430px;
+}
+
+
+.flex-wrap > * {
+ margin: 4px;
+}
+
+/* gap values map */
+[data-gap='2'] > * {
+ margin: 2px;
+}
+[data-gap='4'] > * {
+ margin: 4px;
+}
+[data-gap='8'] > * {
+ margin: 8px;
+}
+[data-gap='10'] > * {
+ margin: 10px;
+}
+[data-gap='16'] > * {
+ margin: 16px;
+}
+[data-gap='24'] > * {
+ margin: 24px;
+}
+[data-gap='34'] > * {
+ margin: 34px;
+}
+
+p {
+ margin-bottom: 0;
+}
+
+/* ==============================================
+ GLOBAL MARGIN CONTROL - OLD ANDROID DEVICE
+ Easily control margins globally with CSS vars
+ Overrides polyfill auto-margins
+============================================== */
+
+:root {
+ /* Global Margin Scale - Easily adjust all at once */
+ --GLOBAL_MARGIN-XXS: 0.125rem;
+ --GLOBAL_MARGIN-XS: 0.25rem;
+ --GLOBAL_MARGIN-SM: 0.5rem;
+ --GLOBAL_MARGIN-MD: 1rem;
+ --GLOBAL_MARGIN-LG: 1.5rem;
+ --GLOBAL_MARGIN-XL: 2rem;
+
+ /* Old Android Lock - Force control */
+ --ANDROID_MARGIN-LOCK: 1px 0.4px !important;
+}
+
+/* Lock ALL margins for old Android - Full Control */
+.old-android-webview *,
+.old-android-webview *:before,
+.old-android-webview *:after {
+ margin: var(--ANDROID_MARGIN-LOCK, inherit) !important;
+}
+
+/* Per-element margin classes - Use these everywhere */
+.margin-xxs { margin: var(--GLOBAL_MARGIN-XXS) !important; }
+.margin-xs { margin: var(--GLOBAL_MARGIN-XS) !important; }
+.margin-sm { margin: var(--GLOBAL_MARGIN-SM) !important; }
+.margin-md { margin: var(--GLOBAL_MARGIN-MD) !important; }
+.margin-lg { margin: var(--GLOBAL_MARGIN-LG) !important; }
+.margin-xl { margin: var(--GLOBAL_MARGIN-XL) !important; }
+
+/* Directional control */
+.margin-t-sm { margin-top: var(--GLOBAL_MARGIN-SM) !important; }
+.margin-r-sm { margin-right: var(--GLOBAL_MARGIN-SM) !important; }
+.margin-b-sm { margin-bottom: var(--GLOBAL_MARGIN-SM) !important; }
+.margin-l-sm { margin-left: var(--GLOBAL_MARGIN-SM) !important; }
+
+/* OLD ANDROID SUMMARY TABLE FIX - Prevent collapse */
+.old-android-webview table,
+
+/* Disable AntD margin interference */
+.ant-space-item,
+.ant-row > *,
+.ant-col > * {
+ margin: var(--ANDROID_MARGIN-LOCK, 0) !important;
+
+}
+
\ No newline at end of file
diff --git a/src/index.css b/src/index.css
index 2d2d833..27a6b5d 100644
--- a/src/index.css
+++ b/src/index.css
@@ -288,8 +288,8 @@ a {
.payment-error-msg {
font-size: 12px;
- font-family: var(--PARA_FONT_FAMILY);
- color: var(--ERROR_COLOR);
+ font-family: VAR(--PARA_FONT_FAMILY);
+ color: VAR(--ERROR_COLOR);
}
/* Disable all Ant Design table animations and hover effects */
@@ -315,6 +315,54 @@ a {
.ant-modal .ant-modal-content {
padding: 34px !important;
+ /* Android WebView 83 fix: ensure positioning context for close button */
+ position: relative !important;
+ overflow: visible !important;
+}
+
+/* ============================================
+ ANDROID WEBVIEW 83 - Modal Close Button Fix
+ On Chrome 83, position:absolute inside a flex
+ container loses its anchor. Force it to always
+ sit at top-right of the modal content box.
+============================================ */
+.ant-modal-close {
+ position: absolute !important;
+ top: 0 !important;
+ right: 0 !important;
+ z-index: 10 !important;
+ width: 44px !important;
+ height: 44px !important;
+ display: -webkit-box !important;
+ display: -webkit-flex !important;
+ display: flex !important;
+ -webkit-box-align: center !important;
+ -webkit-align-items: center !important;
+ align-items: center !important;
+ -webkit-box-pack: center !important;
+ -webkit-justify-content: center !important;
+ justify-content: center !important;
+ cursor: pointer !important;
+ background: transparent !important;
+ border: none !important;
+ padding: 0 !important;
+ line-height: 1 !important;
+}
+
+.ant-modal-close-x {
+ display: -webkit-box !important;
+ display: -webkit-flex !important;
+ display: flex !important;
+ -webkit-box-align: center !important;
+ -webkit-align-items: center !important;
+ align-items: center !important;
+ -webkit-box-pack: center !important;
+ -webkit-justify-content: center !important;
+ justify-content: center !important;
+ width: 100% !important;
+ height: 100% !important;
+ font-size: 16px !important;
+ line-height: 1 !important;
}
.ant-table-wrapper .ant-table-thead > tr > th,
@@ -328,3 +376,249 @@ a {
.ant-table-tbody .ant-table-cell {
font-family: 'Poppins' !important;
}
+.ant-modal-wrap {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+.ant-dropdown {
+ position: absolute !important;
+}
+
+/* ============================================
+ ANDROID WEBVIEW FLEX GAP FIX
+ Chrome 83 and below does not support gap in flexbox.
+ Use margin fallbacks instead.
+============================================ */
+
+/* Ant Design Space fix */
+.ant-space {
+ display: -webkit-box !important;
+ display: -webkit-flex !important;
+ display: flex !important;
+}
+
+.ant-space-horizontal > .ant-space-item:not(:last-child) {
+ margin-right: 8px !important;
+ margin-bottom: 0 !important;
+}
+
+.ant-space-vertical > .ant-space-item:not(:last-child) {
+ margin-bottom: 8px !important;
+ margin-right: 0 !important;
+}
+
+/* Ant Design Row/Col grid fix */
+.ant-row {
+ display: -webkit-box !important;
+ display: -webkit-flex !important;
+ display: flex !important;
+ -webkit-flex-wrap: wrap !important;
+ flex-wrap: wrap !important;
+ margin-left: -8px;
+ margin-right: -8px;
+}
+
+.ant-col {
+ padding-left: 8px;
+ padding-right: 8px;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+/* Global flex gap fallback for custom components.
+ If you use gap: Xpx on a flex container, add class
+ 'flex-gap-8', 'flex-gap-12', 'flex-gap-16' instead */
+.flex-gap-4 > *:not(:last-child) {
+ margin-right: 4px;
+}
+.flex-gap-8 > *:not(:last-child) {
+ margin-right: 8px;
+}
+.flex-gap-12 > *:not(:last-child) {
+ margin-right: 12px;
+}
+.flex-gap-16 > *:not(:last-child) {
+ margin-right: 16px;
+}
+.flex-gap-24 > *:not(:last-child) {
+ margin-right: 24px;
+}
+
+.flex-col-gap-4 > *:not(:last-child) {
+ margin-bottom: 4px;
+}
+.flex-col-gap-8 > *:not(:last-child) {
+ margin-bottom: 8px;
+}
+.flex-col-gap-12 > *:not(:last-child) {
+ margin-bottom: 12px;
+}
+.flex-col-gap-16 > *:not(:last-child) {
+ margin-bottom: 16px;
+}
+.flex-col-gap-24 > *:not(:last-child) {
+ margin-bottom: 24px;
+}
+
+/* Global old Android flex gap polyfill.
+ JS marks gap-using flex containers with [data-old-flex-gap="1"] and
+ writes --old-row-gap / --old-col-gap values per container. */
+/* .old-android-webview [data-old-flex-gap] {
+ margin-top: calc(var(--old-row-gap) * -0.5);
+ margin-left: calc(var(--old-col-gap) * -1.6);
+}
+
+.old-android-webview [data-old-flex-gap] > * {
+ margin-top: var(--old-row-gap);
+ margin-left: var(--old-col-gap);
+} */
+
+.old-android-webview [data-old-flex-gap] {
+ margin-top: calc(var(--old-row-gap) * -0.5);
+ margin-left: calc(var(--old-row-gap) * -0);
+}
+
+.old-android-webview [data-old-flex-gap] > * {
+ margin-top: var(--old-row-gap);
+ margin-right: var(--old-col-gap, 0px);
+}
+
+.old-android-webview [data-old-flex-gap] > *:last-child {
+ margin-right: 0px !important;
+}
+
+/* Old Android horizontal category margin spacing (gap not working - use margins) */
+.old-android-webview .CategoryHorizontal-master-container > * {
+ margin-right: 1rem !important;
+ margin-left: 0.3rem !important;
+}
+
+.old-android-webview .CategoryHorizontal-master-container > *:last-child {
+ margin-right: 0 !important;
+}
+
+.old-android-webview .CategoryHorizontal-scroll-container > * {
+ margin-right: 0.5rem !important;
+}
+
+.old-android-webview .CategoryHorizontal-scroll-container > *:last-child {
+ margin-right: 0 !important;
+}
+
+/* Table shrink fix */
+.old-android-webview .BSCategory1-tablecont,
+.old-android-webview [class*="-tablecont"] {
+ min-width: 420px !important;
+ width: 420px !important;
+ max-width: 450px !important;
+ flex-grow: 1 !important;
+}
+
+/* Old Android itemcard rupee ₹ more left space + item name centered */
+.old-android-webview .BSItemCard-itemPrice,
+.old-android-webview .BSItemCard-itemMRP,
+.old-android-webview .qtyUomName-itemCard {
+ padding-left: 0rem !important;
+ padding-right: 1.5rem !important;
+ width: 135px !important;
+ letter-spacing: 0 !important;
+ font-size: 13px !important;
+}
+
+.old-android-webview .BSItemCard-itemName {
+ text-align: center !important;
+ justify-content: center !important;
+ margin: 0 10px !important;
+ display: block !important;
+ padding: 0 1px !important;
+}
+
+/* Old Android global layout fix - BSLayout1Master table width like margin locks */
+.old-android-webview .BSLayout1Master {
+ --table-width-fix: 430px;
+}
+
+
+.flex-wrap > * {
+ margin: 4px;
+}
+
+/* gap values map */
+[data-gap='2'] > * {
+ margin: 2px;
+}
+[data-gap='4'] > * {
+ margin: 4px;
+}
+[data-gap='8'] > * {
+ margin: 8px;
+}
+[data-gap='10'] > * {
+ margin: 10px;
+}
+[data-gap='16'] > * {
+ margin: 16px;
+}
+[data-gap='24'] > * {
+ margin: 24px;
+}
+[data-gap='34'] > * {
+ margin: 34px;
+}
+
+p {
+ margin-bottom: 0;
+}
+
+/* ==============================================
+ GLOBAL MARGIN CONTROL - OLD ANDROID DEVICE
+ Easily control margins globally with CSS vars
+ Overrides polyfill auto-margins
+============================================== */
+
+:root {
+ /* Global Margin Scale - Easily adjust all at once */
+ --GLOBAL_MARGIN-XXS: 0.125rem;
+ --GLOBAL_MARGIN-XS: 0.25rem;
+ --GLOBAL_MARGIN-SM: 0.5rem;
+ --GLOBAL_MARGIN-MD: 1rem;
+ --GLOBAL_MARGIN-LG: 1.5rem;
+ --GLOBAL_MARGIN-XL: 2rem;
+
+ /* Old Android Lock - Force control */
+ --ANDROID_MARGIN-LOCK: 1px 0.4px !important;
+}
+
+/* Lock ALL margins for old Android - Full Control */
+.old-android-webview *,
+.old-android-webview *:before,
+.old-android-webview *:after {
+ margin: var(--ANDROID_MARGIN-LOCK, inherit) !important;
+}
+
+/* Per-element margin classes - Use these everywhere */
+.margin-xxs { margin: var(--GLOBAL_MARGIN-XXS) !important; }
+.margin-xs { margin: var(--GLOBAL_MARGIN-XS) !important; }
+.margin-sm { margin: var(--GLOBAL_MARGIN-SM) !important; }
+.margin-md { margin: var(--GLOBAL_MARGIN-MD) !important; }
+.margin-lg { margin: var(--GLOBAL_MARGIN-LG) !important; }
+.margin-xl { margin: var(--GLOBAL_MARGIN-XL) !important; }
+
+/* Directional control */
+.margin-t-sm { margin-top: var(--GLOBAL_MARGIN-SM) !important; }
+.margin-r-sm { margin-right: var(--GLOBAL_MARGIN-SM) !important; }
+.margin-b-sm { margin-bottom: var(--GLOBAL_MARGIN-SM) !important; }
+.margin-l-sm { margin-left: var(--GLOBAL_MARGIN-SM) !important; }
+
+/* OLD ANDROID SUMMARY TABLE FIX - Prevent collapse */
+.old-android-webview table,
+
+/* Disable AntD margin interference */
+.ant-space-item,
+.ant-row > *,
+.ant-col > * {
+ margin: var(--ANDROID_MARGIN-LOCK, 0) !important;
+
+}
diff --git a/src/main.jsx b/src/main.jsx
index 46df9ad..967fa4d 100644
--- a/src/main.jsx
+++ b/src/main.jsx
@@ -1,3 +1,4 @@
+import 'antd/dist/reset.css';
import ReactDOM from 'react-dom/client';
import { Provider } from 'react-redux';
import { BrowserRouter } from 'react-router-dom';
@@ -8,9 +9,217 @@ import AppRoutes from './App.jsx';
import { AuthProvider } from './AuthContext';
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
import { ReactQueryDevtools } from '@tanstack/react-query-devtools';
+import { ConfigProvider } from 'antd';
+import {
+ StyleProvider,
+ legacyLogicalPropertiesTransformer,
+} from '@ant-design/cssinjs';
+
+import 'core-js/stable';
+import 'regenerator-runtime/runtime';
+import { isOldAndroidWebView } from './utils/isOldAndroidWebView.js';
+
+
+
+import './index.css';
+import "../src/Components/Forms/main.scss"
+// src\Components\Forms\main.scss
const queryClient = new QueryClient();
+/* -------------------------------------------------------
+ OLD ANDROID SAFE POLYFILLS
+------------------------------------------------------- */
+
+if (typeof window.Element === 'undefined') {
+ window.Element = function () {};
+}
+
+if (typeof window.HTMLElement === 'undefined') {
+ window.HTMLElement = function () {};
+}
+
+if (window.NodeList && !NodeList.prototype.forEach) {
+ NodeList.prototype.forEach = function (callback, thisArg) {
+ thisArg = thisArg || window;
+ for (var i = 0; i < this.length; i++) {
+ callback.call(thisArg, this[i], i, this);
+ }
+ };
+}
+
+if (!window.requestAnimationFrame) {
+ window.requestAnimationFrame = function (callback) {
+ return setTimeout(callback, 16);
+ };
+}
+
+/* -------------------------------------------------------
+ Detect Old Android WebView
+------------------------------------------------------- */
+
+
+/* Detect Old Android WebView - line 170 fixed */
+const ua2 = navigator.userAgent;
+const chromeMatch2 = ua2.match(/Chrome\/(\\d+)/);
+const isOldWebView =
+ chromeMatch2 && parseInt(chromeMatch2[1]) <= 85 && /Android/.test(ua2);
+
+if (isOldWebView) {
+ const applyGapFix = () => {
+ document.querySelectorAll('*').forEach((el) => {
+ const style = window.getComputedStyle(el);
+ const display = style.display;
+
+ if (display !== 'flex' && display !== 'inline-flex') return;
+
+ const rowGap = style.rowGap;
+ const colGap = style.columnGap;
+
+ if (!rowGap || rowGap === 'normal' || rowGap === '0px') return;
+
+ // ✅ Last child fix included
+ Array.from(el.children).forEach((child, i, arr) => {
+ child.style.marginBottom = rowGap;
+ child.style.marginRight = colGap || rowGap;
+
+ // Last child margin remove
+ if (i === arr.length - 1) {
+ child.style.marginRight = '0px';
+ }
+ });
+ });
+ };
+
+
+ applyGapFix();
+ setTimeout(applyGapFix, 500);
+ setTimeout(applyGapFix, 1500);
+
+
+ new MutationObserver(applyGapFix).observe(document.body, {
+ childList: true,
+ subtree: true,
+ });
+}
+
+/* -------------------------------------------------------
+ FLEX GAP POLYFILL + Table Width Fix for Old Android
+------------------------------------------------------- */
+
+/* Table Width Fix - uses existing detection (no duplicate vars) */
+if (isOldAndroidWebView) {
+ document.documentElement.classList.add('old-android-webview');
+ document.body.classList.add('old-android-webview');
+
+ // Force 420px table width immediately
+ const style = document.createElement('style');
+ style.textContent = `
+ .old-android-webview .BSCategory1-tablecont,
+ .old-android-webview [class*="-tablecont"] {
+ width: 420px !important;
+ }
+ `;
+ document.head.appendChild(style);
+
+ document.documentElement.classList.add('old-android-webview');
+ document.body.classList.add('old-android-webview');
+
+ const shouldApplyGap = (value) =>
+ !!value && value !== 'normal' && value !== '0px';
+
+ const processElement = (element) => {
+ if (typeof HTMLElement === 'undefined' || !(element instanceof HTMLElement))
+ return;
+
+ const style = window.getComputedStyle(element);
+
+ const isFlexContainer =
+ style.display === 'flex' || style.display === 'inline-flex';
+
+ if (!isFlexContainer) return;
+
+ const rowGap = style.rowGap;
+ const columnGap = style.columnGap;
+
+ const hasRowGap = shouldApplyGap(rowGap);
+ const hasColumnGap = shouldApplyGap(columnGap);
+
+ if (!hasRowGap && !hasColumnGap) {
+ element.removeAttribute('data-old-flex-gap');
+ element.style.removeProperty('--old-row-gap');
+ element.style.removeProperty('--old-col-gap');
+ return;
+ }
+
+ element.setAttribute('data-old-flex-gap', '1');
+ element.style.setProperty('--old-row-gap', hasRowGap ? rowGap : '0px');
+ element.style.setProperty(
+ '--old-col-gap',
+ hasColumnGap ? columnGap : '0px'
+ );
+ };
+
+ const processTree = (root) => {
+ if (typeof HTMLElement === 'undefined' || !(root instanceof HTMLElement))
+ return;
+
+ processElement(root);
+
+ const nodes = root.querySelectorAll('*');
+
+ for (let i = 0; i < nodes.length; i++) {
+ processElement(nodes[i]);
+ }
+ };
+
+ const applyGlobalFlexGapPolyfill = () => {
+ processTree(document.body);
+ };
+
+ if (document.readyState === 'loading') {
+ document.addEventListener('DOMContentLoaded', applyGlobalFlexGapPolyfill, {
+ once: true,
+ });
+ } else {
+ applyGlobalFlexGapPolyfill();
+ }
+
+ requestAnimationFrame(applyGlobalFlexGapPolyfill);
+ setTimeout(applyGlobalFlexGapPolyfill, 800);
+ setTimeout(applyGlobalFlexGapPolyfill, 2000);
+
+ let scheduled = false;
+
+ const observer = new MutationObserver(() => {
+ if (!scheduled) {
+ scheduled = true;
+
+ requestAnimationFrame(() => {
+ applyGlobalFlexGapPolyfill();
+ scheduled = false;
+ });
+ }
+ });
+
+ observer.observe(document.body, {
+ childList: true,
+ subtree: true,
+ });
+}
+
+/* -------------------------------------------------------
+ REACT APP
+------------------------------------------------------- */
+
ReactDOM.createRoot(document.getElementById('root')).render(
+
+
@@ -19,8 +228,11 @@ ReactDOM.createRoot(document.getElementById('root')).render(
- {process.env.NODE_ENV == 'development' && (
+
+ {process.env.NODE_ENV === 'development' && (
)}
+
+
);
diff --git a/src/routesConfig.jsx b/src/routesConfig.jsx
index 718e320..80431a2 100644
--- a/src/routesConfig.jsx
+++ b/src/routesConfig.jsx
@@ -676,19 +676,18 @@ const subDirectory = import.meta.env.BASE_URL;
const apiCommonUrl = import.meta.env.ENV_API_URL_COMMON;
const initSession = () => {
- sessionStore('AppId', 1);
- sessionStore('BranchId', 121);
- sessionStore('AppName', 'Bakery');
- sessionStore('CompId', 72);
- sessionStore('MobileNo', '8072329153');
- sessionStore('UserType', 'Admin');
- sessionStore('UserId', 39);
- sessionStore('userName', 'Karthiga');
-
- sessionStorage.setItem(
- 'auth',
- 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoiODA3MjMyOTE1MyIsIlBhc3N3b3JkIjoiWkB6MTIzNCIsImF1ZCI6WyJodHRwOi8vMTkyLjE2OC4xLjM3OjgwMTMiLCJodHRwOi8vMTkyLjE2OC4xLjM3OjgwMTIiLCJodHRwOi8vMTkyLjE2OC4xLjM3OjgwMTQiLCJodHRwOi8vMTkyLjE2OC4xLjM3OjgwMTMiXSwiZXhwIjoxNzc0Mzc5NTY2LCJpc3MiOiJodHRwOi8vMTkyLjE2OC4xLjM3OjgwMDEifQ.uTdcz-FHE4GTux7FTtT2pQt9gEe-17_mIrwJWbHdHE8'
- );
+ sessionStore('AppId', 6);
+ sessionStore('BranchId', 556);
+ sessionStore('AppName', 'Bakery');
+ sessionStore('CompId', 462);
+ sessionStore('MobileNo', '6382594417');
+ sessionStore('UserType', 'Admin');
+ sessionStore('UserId', 1884);
+ sessionStore('userName', 'Karthiga');
+ sessionStore(
+ 'auth',
+ 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoiNjM4MjU5NDQxNyIsIlBhc3N3b3JkIjoiWkB6NDEwNDg0IiwiYXVkIjpbImh0dHBzOi8vYXBpLnBvem8uZGV2L3Bvem8tcmV0YWlsLWFwaSIsImh0dHBzOi8vYXBpLnBvem8uZGV2L3Bvem8tY29tbW9uLWFwaSIsImh0dHBzOi8vYXBpLnBvem8uZGV2L3Bvem8tc21zLWVtYWlsLXRlbXBsYXRlLWFwaSIsImh0dHBzOi8vYXBpLnBvem8uZGV2L3Bvem8tY29tbW9uLWFwaSJdLCJleHAiOjE3NzUxNTgwNTIsImlzcyI6Imh0dHBzOi8vYXBpLnBvem8uZGV2L0p3dFRva2VuIn0.xPuA6vnS7UdDWAnwMLEPhV0UcqPCwtb7tllpMYjOb-A'
+ );
};
const getAppType = async () => {
@@ -779,13 +778,13 @@ export const routesConfig = [
},
{
- path: `${subDirectory}app-page`,
+ path: `${subDirectory}`,
component: React.lazy(() =>
fetchComponent().then((module) => ({ default: module.default }))
),
children: [
{
- path: 'home',
+ path: '/',
component: React.lazy(() =>
fetchHomeComponent().then((module) => ({ default: module.default }))
),
diff --git a/src/utils/gapStyle.js b/src/utils/gapStyle.js
new file mode 100644
index 0000000..cea50d3
--- /dev/null
+++ b/src/utils/gapStyle.js
@@ -0,0 +1,12 @@
+import { isOldAndroidWebView } from './isOldAndroidWebView';
+
+export const gapStyle = (size) => {
+ size = size || '8px';
+ if (isOldAndroidWebView()) {
+ return {
+ marginRight: size,
+ marginBottom: size
+ };
+ }
+ return { gap: size };
+};
diff --git a/src/utils/isOldAndroidWebView.js b/src/utils/isOldAndroidWebView.js
new file mode 100644
index 0000000..a5a83ec
--- /dev/null
+++ b/src/utils/isOldAndroidWebView.js
@@ -0,0 +1,5 @@
+export const isOldAndroidWebView = (() => {
+ const ua = navigator.userAgent;
+ const match = ua.match(/Chrome\/(\d+)/);
+ return match && parseInt(match[1]) <= 85 && /Android/.test(ua);
+})();
diff --git a/vite.config.js b/vite.config.js
index ed9a58a..2d4788c 100644
--- a/vite.config.js
+++ b/vite.config.js
@@ -1,12 +1,11 @@
-import { defineConfig } from 'vite';
-import react from '@vitejs/plugin-react';
+import { defineConfig } from "vite";
+import react from "@vitejs/plugin-react";
import legacy from '@vitejs/plugin-legacy';
import esbuild from 'esbuild';
-
export default defineConfig(({ mode }) => {
- const isProd = mode === 'production';
+ const isProd = mode === "production";
- return {
+ return {
oxc: {
target: 'es2015'
},
@@ -35,32 +34,22 @@ export default defineConfig(({ mode }) => {
}
],
- base: '/',
- envDir: 'src',
- envPrefix: 'ENV_',
- server: {
- host: '0.0.0.0',
- port: process.env.PORT || 3015,
-
- hmr: {
- host: '192.168.1.35',
- port: 3015,
- protocol: 'ws',
- clientPort: 3015,
- }
- },
+ base: isProd ? "/" : "/", //for capcitor base: isProd ? "/" : "/",
- optimizeDeps: {
- include: ['jspdf'],
+ envDir: "src",
+ envPrefix: "ENV_",
+
+ server: {
+ host: true, // 🔥 auto detect your IP
+ port: process.env.PORT || 3015,
},
build: {
- target: 'es2015',
- minify: 'esbuild',
+ minify: "esbuild",
esbuild: {
- drop: isProd ? ['console', 'debugger'] : [],
+ drop: isProd ? ["console", "debugger"] : [],
},
},
- };
-});
\ No newline at end of file
+ };
+});