2024-11-19

This commit is contained in:
gcch 2024-11-19 23:34:40 +01:00
commit 85c44279a3
80 changed files with 1478 additions and 1399 deletions

16
composer.lock generated
View file

@ -4762,12 +4762,12 @@
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/Roave/SecurityAdvisories.git", "url": "https://github.com/Roave/SecurityAdvisories.git",
"reference": "9f1d9b2460cdd0422e8cfd58763bf3156ad7f487" "reference": "d521fa951b3fc37146a2fe9aef1b06c0af78fd3f"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/9f1d9b2460cdd0422e8cfd58763bf3156ad7f487", "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/d521fa951b3fc37146a2fe9aef1b06c0af78fd3f",
"reference": "9f1d9b2460cdd0422e8cfd58763bf3156ad7f487", "reference": "d521fa951b3fc37146a2fe9aef1b06c0af78fd3f",
"shasum": "" "shasum": ""
}, },
"conflict": { "conflict": {
@ -4813,7 +4813,7 @@
"azuracast/azuracast": "<0.18.3", "azuracast/azuracast": "<0.18.3",
"backdrop/backdrop": "<1.27.3|>=1.28,<1.28.2", "backdrop/backdrop": "<1.27.3|>=1.28,<1.28.2",
"backpack/crud": "<3.4.9", "backpack/crud": "<3.4.9",
"backpack/filemanager": "<3.0.9", "backpack/filemanager": "<2.0.2|>=3,<3.0.9",
"bacula-web/bacula-web": "<8.0.0.0-RC2-dev", "bacula-web/bacula-web": "<8.0.0.0-RC2-dev",
"badaso/core": "<2.7", "badaso/core": "<2.7",
"bagisto/bagisto": "<2.1", "bagisto/bagisto": "<2.1",
@ -5145,7 +5145,7 @@
"mojo42/jirafeau": "<4.4", "mojo42/jirafeau": "<4.4",
"mongodb/mongodb": ">=1,<1.9.2", "mongodb/mongodb": ">=1,<1.9.2",
"monolog/monolog": ">=1.8,<1.12", "monolog/monolog": ">=1.8,<1.12",
"moodle/moodle": "<4.3.6|>=4.4,<4.4.4", "moodle/moodle": "<4.3.8|>=4.4,<4.4.4",
"mos/cimage": "<0.7.19", "mos/cimage": "<0.7.19",
"movim/moxl": ">=0.8,<=0.10", "movim/moxl": ">=0.8,<=0.10",
"movingbytes/social-network": "<=1.2.1", "movingbytes/social-network": "<=1.2.1",
@ -5233,7 +5233,7 @@
"phpmyfaq/phpmyfaq": "<3.2.5|==3.2.5", "phpmyfaq/phpmyfaq": "<3.2.5|==3.2.5",
"phpoffice/common": "<0.2.9", "phpoffice/common": "<0.2.9",
"phpoffice/phpexcel": "<1.8.1", "phpoffice/phpexcel": "<1.8.1",
"phpoffice/phpspreadsheet": "<1.29.2|>=2,<2.1.1|>=2.2,<2.3", "phpoffice/phpspreadsheet": "<1.29.4|>=2,<2.1.3|>=2.2,<2.3.2|>=3.3,<3.4",
"phpseclib/phpseclib": "<2.0.47|>=3,<3.0.36", "phpseclib/phpseclib": "<2.0.47|>=3,<3.0.36",
"phpservermon/phpservermon": "<3.6", "phpservermon/phpservermon": "<3.6",
"phpsysinfo/phpsysinfo": "<3.4.3", "phpsysinfo/phpsysinfo": "<3.4.3",
@ -5343,7 +5343,7 @@
"slim/slim": "<2.6", "slim/slim": "<2.6",
"slub/slub-events": "<3.0.3", "slub/slub-events": "<3.0.3",
"smarty/smarty": "<4.5.3|>=5,<5.1.1", "smarty/smarty": "<4.5.3|>=5,<5.1.1",
"snipe/snipe-it": "<7.0.10", "snipe/snipe-it": "<=7.0.13",
"socalnick/scn-social-auth": "<1.15.2", "socalnick/scn-social-auth": "<1.15.2",
"socialiteproviders/steam": "<1.1", "socialiteproviders/steam": "<1.1",
"spatie/browsershot": "<3.57.4", "spatie/browsershot": "<3.57.4",
@ -5596,7 +5596,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2024-11-13T19:05:18+00:00" "time": "2024-11-19T00:20:23+00:00"
}, },
{ {
"name": "sebastian/diff", "name": "sebastian/diff",

View file

@ -11,7 +11,7 @@
"scripts": { "knip": "knip", "test": "echo \"Error: no test specified\" && exit 1" }, "scripts": { "knip": "knip", "test": "echo \"Error: no test specified\" && exit 1" },
"dependencies": { "dependencies": {
"@mobily/ts-belt": "4.0.0-rc.5", "@mobily/ts-belt": "4.0.0-rc.5",
"@sentry/browser": "8.38.0", "@sentry/browser": "8.39.0",
"@swan-io/boxed": "^3.1.2", "@swan-io/boxed": "^3.1.2",
"a11y-dialog": "^8.1.1", "a11y-dialog": "^8.1.1",
"purify-ts": "^2.1.0", "purify-ts": "^2.1.0",
@ -23,15 +23,15 @@
"@eslint/js": "^9.15.0", "@eslint/js": "^9.15.0",
"@prettier/plugin-php": "^0.22.2", "@prettier/plugin-php": "^0.22.2",
"@prettier/plugin-xml": "^3.4.1", "@prettier/plugin-xml": "^3.4.1",
"@sentry/types": "8.38.0", "@sentry/types": "8.39.0",
"@swc/cli": "0.5.0", "@swc/cli": "0.5.1",
"@types/eslint__js": "^8.42.3", "@types/eslint__js": "^8.42.3",
"@types/node": "^22.9.0", "@types/node": "^22.9.0",
"better-typescript-lib": "^2.9.0", "better-typescript-lib": "^2.9.0",
"browserslist": "^4.24.2", "browserslist": "^4.24.2",
"eslint": "^9.15.0", "eslint": "^9.15.0",
"eslint-plugin-oxlint": "^0.11.1", "eslint-plugin-oxlint": "^0.11.1",
"eslint-plugin-perfectionist": "^3.9.1", "eslint-plugin-perfectionist": "^4.0.2",
"fdir": "^6.4.2", "fdir": "^6.4.2",
"globals": "^15.12.0", "globals": "^15.12.0",
"knip": "^5.37.1", "knip": "^5.37.1",
@ -48,7 +48,7 @@
"stylelint-declaration-block-no-ignored-properties": "^2.8.0", "stylelint-declaration-block-no-ignored-properties": "^2.8.0",
"stylelint-plugin-logical-css": "^1.2.1", "stylelint-plugin-logical-css": "^1.2.1",
"typescript": "5.7.0-dev.20241105", "typescript": "5.7.0-dev.20241105",
"typescript-eslint": "^8.14.0", "typescript-eslint": "^8.15.0",
"vite": "^5.4.11", "vite": "^5.4.11",
"vite-plugin-manifest-sri": "^0.2.0", "vite-plugin-manifest-sri": "^0.2.0",
"vite-plugin-node-polyfills": "^0.22.0", "vite-plugin-node-polyfills": "^0.22.0",

1154
pnpm-lock.yaml generated

File diff suppressed because it is too large Load diff

View file

@ -4,45 +4,45 @@
"name": "Either", "name": "Either",
"integrity": "sha512-iA88qYfaqIo+2/H0VzUP5VPULY8gMF4bgybyguKQQj/k1/LKHmurwKDvKCIPz3/kdz+2jUjG9/vlqu9+i6/klg==" "integrity": "sha512-iA88qYfaqIo+2/H0VzUP5VPULY8gMF4bgybyguKQQj/k1/LKHmurwKDvKCIPz3/kdz+2jUjG9/vlqu9+i6/klg=="
}, },
"_MaybeAsync.Ba-OfjWy.js": { "_MaybeAsync.AE1jnxuc.js": {
"file": "MaybeAsync.Ba-OfjWy.js", "file": "MaybeAsync.AE1jnxuc.js",
"name": "MaybeAsync", "name": "MaybeAsync",
"imports": [ "imports": [
"_Either.wHNxn7Os.js" "_Either.wHNxn7Os.js"
], ],
"integrity": "sha512-iLyoaxrZR9rsJL8d2tu48LymRiSdej5+2ZWqaIDBVWtM8n5PMvng5xVtXGPNJ5UZpEtZvAUOf7w+jNrY2LP10g==" "integrity": "sha512-zBecrvIRiJOu6YYRpnc0k8S2hhntD+UpPtg3zhLd4KQSyWdXQTt6ubhfDTOhBtMYi/W1LLcZX89krSQqxkWfGA=="
}, },
"_belt_Option-91f3b350.BKMoZFhU.js": { "_belt_Option-91f3b350.cBye8bLJ.js": {
"file": "belt_Option-91f3b350.BKMoZFhU.js", "file": "belt_Option-91f3b350.cBye8bLJ.js",
"name": "belt_Option-91f3b350", "name": "belt_Option-91f3b350",
"imports": [ "imports": [
"web/app/themes/haiku-atelier-2024/src/scripts/lib/dom.ts" "web/app/themes/haiku-atelier-2024/src/scripts/lib/dom.ts"
], ],
"integrity": "sha512-aQFt1IL5vfOZ0G3wLQlW0OxXxOVtECojJ1MLeZKU4ZUa5wEsjWZy8e+hxxA01tMRNvQ0sGvS9VeUkSqtIM5Cjg==" "integrity": "sha512-9jLdf+ptxzABI2/IowOZjgnuQLIzj36EJ7+u1FMIXffUF+jtqNSBFfsTSpmVe1MaAivun9Bb3/fjur20hZhk8w=="
}, },
"_exports.DT-46nyp.js": { "_exports.3IcOsN8u.js": {
"file": "exports.DT-46nyp.js", "file": "exports.3IcOsN8u.js",
"name": "exports", "name": "exports",
"integrity": "sha512-guj1IEABa9hA7TonTv4PlBhvqlwPQeE1vPyMmeRSOemTg5Mih4jIfeZOsFr+pVP0AYgP4dJO0+Vj3YCWwPVZZg==" "integrity": "sha512-cypdx7oMHdSZiIga2ymXfkWqiMhM+7lluZ4vfwcWozGCOLB0tS7QuuClk9yHMEjJjiMZB9U3bdeV3Gg0x+YrbQ=="
}, },
"_index-0eef19ec.CFsloYN6.js": { "_index-0eef19ec.DoJSf22Z.js": {
"file": "index-0eef19ec.CFsloYN6.js", "file": "index-0eef19ec.DoJSf22Z.js",
"name": "index-0eef19ec", "name": "index-0eef19ec",
"imports": [ "imports": [
"web/app/themes/haiku-atelier-2024/src/scripts/lib/dom.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/dom.ts",
"_belt_Option-91f3b350.BKMoZFhU.js" "_belt_Option-91f3b350.cBye8bLJ.js"
], ],
"integrity": "sha512-wORZ0WkOfNuzAUKhf7XA8LXG4geR64dUCIHwukqdLnUhkEFdeLpLtmDfuYMl5Aff09c7XjJxUQIVGwRb8uTbcA==" "integrity": "sha512-BYIJDDOI3NTIytshd2k13/Wyep1oJ6pfwg9dCdZ18XVQrzO9uj99f5wF9bS0pjKa7OkbM2F27wF817UKn6thgg=="
}, },
"_index.CeK6pfoJ.js": { "_index.CeK6pfoJ.js": {
"file": "index.CeK6pfoJ.js", "file": "index.CeK6pfoJ.js",
"name": "index", "name": "index",
"integrity": "sha512-cxTw0sKKut2H95JwMgiKgEVLyZ0QswK/HydKTapcqcs3w6xHIHNUpYBLdRzEYdeRfHKUsA0kvPNBXBk/QeazjQ==" "integrity": "sha512-cxTw0sKKut2H95JwMgiKgEVLyZ0QswK/HydKTapcqcs3w6xHIHNUpYBLdRzEYdeRfHKUsA0kvPNBXBk/QeazjQ=="
}, },
"_index.DeCaB8sW.js": { "_index.DKC_Jv5v.js": {
"file": "index.DeCaB8sW.js", "file": "index.DKC_Jv5v.js",
"name": "index", "name": "index",
"integrity": "sha512-VESVuActn/4kpl+gzqYgRTFoQLbW4WDZeuMjQEyixdpUaEK7n+ALNomAYHW9H2rNclHjlKCd8AIRi3Pnof+bpw==" "integrity": "sha512-FnNBV2ecIkPlV7wsbCaK1Hc8B4+HEgZvdZrMBVdKa7JAnwDm6gH9PpuM7z/KfTM6Ee+bDTJeyJnZbRpjOfvlLA=="
}, },
"_pipe.XPB0wEfw.js": { "_pipe.XPB0wEfw.js": {
"file": "pipe.XPB0wEfw.js", "file": "pipe.XPB0wEfw.js",
@ -54,7 +54,7 @@
"name": "api", "name": "api",
"src": "web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts", "src": "web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts",
"isEntry": true, "isEntry": true,
"integrity": "sha512-oDVrrWjz3SSnlBy/OeAAxg+LjpBmHDxBzGsUS1fqirjK1CP2l29BqQqM4rfdvE38iMsvu0WlEYve3uCmyB7PIA==" "integrity": "sha512-DrDkVrVqdTqe7XX60O++FWFn1nm/X7naPDhDe61T2m57a2seCAi0NdNoaA7+76GLG5WL7fywLGIG9V9uOhoXyg=="
}, },
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts": { "web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts": {
"file": "cart2.js", "file": "cart2.js",
@ -68,7 +68,7 @@
"name": "dom", "name": "dom",
"src": "web/app/themes/haiku-atelier-2024/src/scripts/constantes/dom.ts", "src": "web/app/themes/haiku-atelier-2024/src/scripts/constantes/dom.ts",
"isEntry": true, "isEntry": true,
"integrity": "sha512-sSwUifw859f7ljok6cQWFI9El3qerOTqmW3nVQbjXUjYhTYT6G+iIEAUwVjsAFJw+opvE93EHcIkfETrKNVhFg==" "integrity": "sha512-xjjWPpOvFbqRaz8tTHQddCsAUitaALWYAqg54uc6zi1ZEMq3m4+DwuL6NtupZJj1yM52vGcALkzUaWIcmh2wqg=="
}, },
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/messages.ts": { "web/app/themes/haiku-atelier-2024/src/scripts/constantes/messages.ts": {
"file": "messages3.js", "file": "messages3.js",
@ -78,18 +78,18 @@
"integrity": "sha512-M8me/iGRLfItVHaEf+BhA3xdEIxEwdyNuN+H87daJ1jl1oOENbROB7ub6RPP47NdFsQUChTRphEhQglT+qc6RA==" "integrity": "sha512-M8me/iGRLfItVHaEf+BhA3xdEIxEwdyNuN+H87daJ1jl1oOENbROB7ub6RPP47NdFsQUChTRphEhQglT+qc6RA=="
}, },
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/orders.ts": { "web/app/themes/haiku-atelier-2024/src/scripts/constantes/orders.ts": {
"file": "orders2.js", "file": "orders3.js",
"name": "orders", "name": "orders",
"src": "web/app/themes/haiku-atelier-2024/src/scripts/constantes/orders.ts", "src": "web/app/themes/haiku-atelier-2024/src/scripts/constantes/orders.ts",
"isEntry": true, "isEntry": true,
"integrity": "sha512-wV9B3cW/1TnjBcesuc4a2M+28+67nsmX2++/Up1QUraP4Bdzbn9RiToohkone5Z+1mZNOjB/Hrd8x7Gc+jtVvg==" "integrity": "sha512-dLV15du4JF6iPF2I93pExJpqAG13hXNCrRj8hF1dO47SFaa/7S74hT3puqnojjF5g1vStbjuGX+dLVklMIZuOw=="
}, },
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/products.ts": { "web/app/themes/haiku-atelier-2024/src/scripts/constantes/products.ts": {
"file": "products2.js", "file": "products2.js",
"name": "products", "name": "products",
"src": "web/app/themes/haiku-atelier-2024/src/scripts/constantes/products.ts", "src": "web/app/themes/haiku-atelier-2024/src/scripts/constantes/products.ts",
"isEntry": true, "isEntry": true,
"integrity": "sha512-kSyYMKtrlEELmR+Oi/SElrlhfn/mg/1QJkddMt+/w4jlrhYrUlApLvwAr1/ynpCBzj0g4CmBOYen5rTO53bJ1w==" "integrity": "sha512-Hh8yxeOZedoSWNSUhV6BuO/YXUgZt2KaGQZgbZRedtz0jM90Yc7d2Ir6YJhnbZVRzedow6+uXlxutG9oHeGB0Q=="
}, },
"web/app/themes/haiku-atelier-2024/src/scripts/gaffe.ts": { "web/app/themes/haiku-atelier-2024/src/scripts/gaffe.ts": {
"file": "gaffe.js", "file": "gaffe.js",
@ -98,10 +98,10 @@
"isEntry": true, "isEntry": true,
"imports": [ "imports": [
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts", "web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts",
"_exports.DT-46nyp.js", "_exports.3IcOsN8u.js",
"_pipe.XPB0wEfw.js" "_pipe.XPB0wEfw.js"
], ],
"integrity": "sha512-VOFE4Hcn84/zkx9+7f96xARQfIjFTjxj77+vPW+axDmgJdzTqzeepoUlWWlMvMhnXPzlZg8hECzJ9LPbbaMkdQ==" "integrity": "sha512-mskLArAQPBWERMQR6U4/xLPd+NfjZ59hrptjz2G/7KUnC8cVe33bzBkQzUHZDNxy2/YlDFXTWO6NwQjgKKzgxQ=="
}, },
"web/app/themes/haiku-atelier-2024/src/scripts/lib/dom.ts": { "web/app/themes/haiku-atelier-2024/src/scripts/lib/dom.ts": {
"file": "dom2.js", "file": "dom2.js",
@ -110,11 +110,11 @@
"isEntry": true, "isEntry": true,
"imports": [ "imports": [
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
"_Either.wHNxn7Os.js",
"_pipe.XPB0wEfw.js", "_pipe.XPB0wEfw.js",
"_exports.DT-46nyp.js" "_Either.wHNxn7Os.js",
"_exports.3IcOsN8u.js"
], ],
"integrity": "sha512-q4nE3OSywq1d12PYGyULtsAdxT2OtFe5E0Ec81VSvKP0/+g1qbHqqu7FPYzCcxNXTGuLEsmtdZLPowfIESBzyg==" "integrity": "sha512-RVlTwrCnvAW250x/R9UG3yxyQ0p+fnLIe3HUZN8rIGnWpg0yd3YGpVSClQGPohi2YNPppWS74J3zWlmdRP7qiw=="
}, },
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts": { "web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts": {
"file": "erreurs.js", "file": "erreurs.js",
@ -122,9 +122,9 @@
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts", "src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
"isEntry": true, "isEntry": true,
"imports": [ "imports": [
"_exports.DT-46nyp.js" "_exports.3IcOsN8u.js"
], ],
"integrity": "sha512-ycCJdagUL+AOJ9CK7idsyochoV+fGvM1apEuijceXsjZ9RfROHMbweTcpZYs8OvQ8h/GVd6gP3F7ajOeNDLm6A==" "integrity": "sha512-tiEWQ6pmEHs+n04C+vJHPXibpUZ+9ZA5iH4nQzN5jvgK6R058rm+q8dO8Lwem25Jh+cSo8np4/c76yVXI5zl/w=="
}, },
"web/app/themes/haiku-atelier-2024/src/scripts/lib/gardes.ts": { "web/app/themes/haiku-atelier-2024/src/scripts/lib/gardes.ts": {
"file": "gardes.js", "file": "gardes.js",
@ -140,10 +140,10 @@
"isEntry": true, "isEntry": true,
"imports": [ "imports": [
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts", "web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts",
"_MaybeAsync.Ba-OfjWy.js", "_MaybeAsync.AE1jnxuc.js",
"_Either.wHNxn7Os.js" "_Either.wHNxn7Os.js"
], ],
"integrity": "sha512-5w6tDnjHcmdQkNGKIfoCvHl92oc+ofbg4S0QY3PS5Fe7Opiwx2chB9+KWBBYBFek2mG3hekzTyznvrr7JZKYXA==" "integrity": "sha512-4Z9hRY3XtEbYTEViQK/Rpzxlfvx5zXtLRQtXIDbqNg7gxXbkOgF3KZaYwZdOytvbMfGDgf9XVk75VakJOdFJOA=="
}, },
"web/app/themes/haiku-atelier-2024/src/scripts/lib/messages.ts": { "web/app/themes/haiku-atelier-2024/src/scripts/lib/messages.ts": {
"file": "messages.js", "file": "messages.js",
@ -151,18 +151,19 @@
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/messages.ts", "src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/messages.ts",
"isEntry": true, "isEntry": true,
"imports": [ "imports": [
"_index.DeCaB8sW.js", "_index.DKC_Jv5v.js",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/messages.ts", "web/app/themes/haiku-atelier-2024/src/scripts/constantes/messages.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts",
"_Either.wHNxn7Os.js", "_Either.wHNxn7Os.js",
"_exports.DT-46nyp.js", "_exports.3IcOsN8u.js",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts", "web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-coupons.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/couts-livraison.ts" "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/couts-livraison.ts"
], ],
"integrity": "sha512-mVB7iJ9eYAlGmsedqDBABBDBz7QBbEbJOira6EczLdLFjMoXRqOmBSvq/T2yTVPZE7Vm4bOy1MEseSxJRBt9Dw==" "integrity": "sha512-94orRrPxJFN+qWNi1NyL15PG3iKx9mivWneHmduvAzPFzhJOl2UpJFX80rIGGOQKx76DvkrNs0r8Lz0S5E/lXA=="
}, },
"web/app/themes/haiku-atelier-2024/src/scripts/lib/nombres.ts": { "web/app/themes/haiku-atelier-2024/src/scripts/lib/nombres.ts": {
"file": "nombres.js", "file": "nombres.js",
@ -178,14 +179,14 @@
"isEntry": true, "isEntry": true,
"imports": [ "imports": [
"_index.CeK6pfoJ.js", "_index.CeK6pfoJ.js",
"_index.DeCaB8sW.js", "_index.DKC_Jv5v.js",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts", "web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/erreurs.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/erreurs.ts",
"_pipe.XPB0wEfw.js", "_pipe.XPB0wEfw.js",
"_exports.DT-46nyp.js" "_exports.3IcOsN8u.js"
], ],
"integrity": "sha512-l7cBiK3u4J6noRj/5bRjsdUywP+ITyBUK/UBJHSdEAXr0IkZDLy3gZjrWeO7gV81cZyfFQ+qtWBQzlsIlKsCzw==" "integrity": "sha512-jamYkNXH2680XzDhjyTyaJhA5N6Qbgj9L5NPBpQ94nmQQKIWOnlhB5ECY3ulny2PX4fmgUVWZskYOgkx/DrbjA=="
}, },
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts": { "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts": {
"file": "adresses.js", "file": "adresses.js",
@ -193,9 +194,9 @@
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts", "src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts",
"isEntry": true, "isEntry": true,
"imports": [ "imports": [
"_index.DeCaB8sW.js" "_index.DKC_Jv5v.js"
], ],
"integrity": "sha512-MMxY7Qev3mDi/rNKwRhL+VvzA17YL7+/Ne2X/Gfr8UlhmDjnqN5WAeJmVFUQarUe5af7+XXYBS97jPTuhwxmwg==" "integrity": "sha512-hp7nWc3CrWm2+zbU0mlAqbILcj5jeIp3bNBLiD1ZJCZkQYBttIyEA26+1m5s0smj4zPCYh7cnGoxqFd8/XeLRQ=="
}, },
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-add-item.ts": { "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-add-item.ts": {
"file": "cart-add-item.js", "file": "cart-add-item.js",
@ -203,9 +204,9 @@
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-add-item.ts", "src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-add-item.ts",
"isEntry": true, "isEntry": true,
"imports": [ "imports": [
"_index.DeCaB8sW.js" "_index.DKC_Jv5v.js"
], ],
"integrity": "sha512-jtLTsorapki2SSs3gEQ4o/ElG1ecJQXOM8C9M8ropdjFYjLhnNTsRjOQN3JSxc7Fdm/6mvn9M2lRRFdliJ85CQ==" "integrity": "sha512-mbHXCUexMdgzCAGOEVUQaIPaMQiI04HXWCQEx9L541qkkLJVKQGD4TWVRuHmetCyNuOJ4B3etIEHv9M3jqveXA=="
}, },
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-apply-coupon.ts": { "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-apply-coupon.ts": {
"file": "cart-apply-coupon.js", "file": "cart-apply-coupon.js",
@ -213,16 +214,19 @@
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-apply-coupon.ts", "src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-apply-coupon.ts",
"isEntry": true, "isEntry": true,
"imports": [ "imports": [
"_index.DeCaB8sW.js" "_index.DKC_Jv5v.js"
], ],
"integrity": "sha512-BMCLu7o5txvpnrvMbaO+fCvx40S+B+1kFRa4zhJTip+tMfA8VGucuJVgSZOs1G7RFbKQKhk4Sxv0Djd5louYGA==" "integrity": "sha512-qUrpZo097VcnjC5rGxl7boGS7m8evPkHAnsYn1jHKzKVGBRLu+W5bdjXAGzIdaB7TmUBC+xxbANZx79F/xL+wQ=="
}, },
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-coupons.ts": { "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-coupons.ts": {
"file": "cart-coupons.js", "file": "cart-coupons.js",
"name": "cart-coupons", "name": "cart-coupons",
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-coupons.ts", "src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-coupons.ts",
"isEntry": true, "isEntry": true,
"integrity": "sha512-kamZpV4ivpmgTZOvxlrFF28P97K9C2tlKIuLt2yYIUj40qbTrS1JZNn1WTEF+jiFvIVDJTt1zKrKJOD2ptDBvg==" "imports": [
"_index.DKC_Jv5v.js"
],
"integrity": "sha512-Xgd5HYn6SPOvNb1VVKEjVaSng7kwIQYrDQs288KrtXf4DTOVymIhvXl/o6diMCGsCuPVoh67cK9eFckdCbs/Dg=="
}, },
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-remove-coupon.ts": { "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-remove-coupon.ts": {
"file": "cart-remove-coupon.js", "file": "cart-remove-coupon.js",
@ -230,9 +234,9 @@
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-remove-coupon.ts", "src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-remove-coupon.ts",
"isEntry": true, "isEntry": true,
"imports": [ "imports": [
"_index.DeCaB8sW.js" "_index.DKC_Jv5v.js"
], ],
"integrity": "sha512-hRxsjUgQbfhkmW9NTopSXU+2JLiARm+iz6Ub09lTaqnvjPT28QUTrTRQ+g96SQlyvZl4Pxmr5qeevo4nRN1ZPw==" "integrity": "sha512-i4ks7+X0CnmjMd2CRT5ytUC4LBvu4lEHKzJkTqdeYnAG7mlFkdjbrifNU/UqvO6ZLA293f2/pNvV8XrXDp7erw=="
}, },
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-remove-item.ts": { "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-remove-item.ts": {
"file": "cart-remove-item.js", "file": "cart-remove-item.js",
@ -240,9 +244,9 @@
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-remove-item.ts", "src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-remove-item.ts",
"isEntry": true, "isEntry": true,
"imports": [ "imports": [
"_index.DeCaB8sW.js" "_index.DKC_Jv5v.js"
], ],
"integrity": "sha512-prpxKV2zTo++qCwxAXdHHnOR5PzaYKVZvZe0yYCGTlRaBHYHlnC1+5jfN9EKjsshwd+agH91mMOuVsM5q6Ptcw==" "integrity": "sha512-97h5QCYr2tffzqwnv+45xT8RViFIYVdtHeT/xdarjjYS6lSF6F8mjwo0o9szKwb1wXry5vvvLfzEzWphl+649w=="
}, },
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-update-customer.ts": { "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-update-customer.ts": {
"file": "cart-update-customer.js", "file": "cart-update-customer.js",
@ -250,10 +254,10 @@
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-update-customer.ts", "src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-update-customer.ts",
"isEntry": true, "isEntry": true,
"imports": [ "imports": [
"_index.DeCaB8sW.js", "_index.DKC_Jv5v.js",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts" "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts"
], ],
"integrity": "sha512-ioQUabvwDl6JWayPctjngWpjmb7BkIFnWcoAYVQjfeue1sfv8Aa7NXcTB8Bmmd2ZGm7nX2xur91I1DrYz0BnYQ==" "integrity": "sha512-6YBAVIuC4+D6f2ro2U4nVUHk3hEIqs2+Z0MtGRzL3/1ZdM+oGqF5WyNYLU96qRAlSohmUzbhoONqpb+WVJVsbA=="
}, },
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-update-item.ts": { "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-update-item.ts": {
"file": "cart-update-item.js", "file": "cart-update-item.js",
@ -261,9 +265,9 @@
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-update-item.ts", "src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-update-item.ts",
"isEntry": true, "isEntry": true,
"imports": [ "imports": [
"_index.DeCaB8sW.js" "_index.DKC_Jv5v.js"
], ],
"integrity": "sha512-DqeR6ekRzBk1cWAlhFx25NBxMsulAEstDkb87ZZ8sPIjLlgwe5TfqBYegXclTC9Wg9cLK1VR6DHoWrNDDrUHpw==" "integrity": "sha512-gjO4tVbq4MQ3PJpSDl11Uw9wFXN2dq580DH9Br8fZCJvTT15Liw4bewqcXjOlFMQSeyh2o5DfJTEpeNNFUbWcQ=="
}, },
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart.ts": { "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart.ts": {
"file": "cart.js", "file": "cart.js",
@ -271,12 +275,13 @@
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart.ts", "src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart.ts",
"isEntry": true, "isEntry": true,
"imports": [ "imports": [
"_index.DeCaB8sW.js", "_index.DKC_Jv5v.js",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts", "web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-coupons.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/couts-livraison.ts" "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/couts-livraison.ts"
], ],
"integrity": "sha512-quTwNVIvYDgwjiQDgZQUc8usQML19ABUBTtLtSPFVD11yrfTKCe3qgnvjH4sy/8URUN/JChYhgxKA+6tf2GQHw==" "integrity": "sha512-Vij49uAaSPn0pnPskrurveRYMvbODXDXfGCeRaW8A0hUJNPtopBdhMslppSpom3UoEOg8iRh4Pr0FUmUB7oThQ=="
}, },
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/couts-livraison.ts": { "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/couts-livraison.ts": {
"file": "couts-livraison.js", "file": "couts-livraison.js",
@ -284,10 +289,10 @@
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/couts-livraison.ts", "src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/couts-livraison.ts",
"isEntry": true, "isEntry": true,
"imports": [ "imports": [
"_index.DeCaB8sW.js", "_index.DKC_Jv5v.js",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts" "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts"
], ],
"integrity": "sha512-zOIvFVeeme0okbWtPxAgYiJ9ApVZ3WqFRGm8pPeTivjgxwbVVb/f7bSbtvK3Wr1yUALE7wQXulTvFMpwO+vH1A==" "integrity": "sha512-YuWaVfcugmGKrrcrxarYURiOQuOvqG+woBDw79SAa/DkvoV9j8s26xkuHV0lPCSWGmJ+lIhP0r9DeMxVqq6oeQ=="
}, },
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/erreurs.ts": { "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/erreurs.ts": {
"file": "erreurs2.js", "file": "erreurs2.js",
@ -295,9 +300,9 @@
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/erreurs.ts", "src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/erreurs.ts",
"isEntry": true, "isEntry": true,
"imports": [ "imports": [
"_index.DeCaB8sW.js" "_index.DKC_Jv5v.js"
], ],
"integrity": "sha512-0aovUwOkfcV+G3x1owksl5ILTHx7ER0ka0Af2eL0ZB7rj0kyWkQXpUP5MlerrMKrOPDUBmIqjJbVg6sMGMFvsA==" "integrity": "sha512-kx+Bf9zzHdCwB0vxBE+/KLElyW0soM0ki0d3lT/b40LweGGJD5OyEF1fdc54RqLEvXT2/XDksDRUGdwKdLudrQ=="
}, },
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/products.ts": { "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/products.ts": {
"file": "products3.js", "file": "products3.js",
@ -305,22 +310,22 @@
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/products.ts", "src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/products.ts",
"isEntry": true, "isEntry": true,
"imports": [ "imports": [
"_index.DeCaB8sW.js", "_index.DKC_Jv5v.js",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/products.ts" "web/app/themes/haiku-atelier-2024/src/scripts/constantes/products.ts"
], ],
"integrity": "sha512-Trpy89hQymfheaW8dgJR4VhW5JAi/KPRC1RqCxmJFZUToqNqA7W2GAAIpaGGywMwwlVqmXndfTN5U0fpOCM3Tg==" "integrity": "sha512-frGqySW9ausejkcUyAeJZNecXA5vq9/XfvDiYe8ccJb96v2kZdCQaHCdGVbYJPb0wOF/JdVUsNfTTeSu7U8DcA=="
}, },
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/v3/orders.ts": { "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/v3/orders.ts": {
"file": "orders.js", "file": "orders2.js",
"name": "orders", "name": "orders",
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/v3/orders.ts", "src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/v3/orders.ts",
"isEntry": true, "isEntry": true,
"imports": [ "imports": [
"_index.DeCaB8sW.js", "_index.DKC_Jv5v.js",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/orders.ts", "web/app/themes/haiku-atelier-2024/src/scripts/constantes/orders.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts" "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts"
], ],
"integrity": "sha512-Kre4n1ECvEQb4rJ2CSvaCfYQDiMPwseQAltQuaQ7bIgXfnRGCRXWZ+H8xK7hKGenaZQnSp8kVwZ2lcyGzSC4dw==" "integrity": "sha512-SqTZk6JurX847irpPtuz4+pFmu52sZ5PtytHR63XJ3foElbLgMdyorTU6P8jc0OELmL6qAsSNTpmWufkbJKqAA=="
}, },
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/v3/products.ts": { "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/v3/products.ts": {
"file": "products.js", "file": "products.js",
@ -328,10 +333,10 @@
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/v3/products.ts", "src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/v3/products.ts",
"isEntry": true, "isEntry": true,
"imports": [ "imports": [
"_index.DeCaB8sW.js", "_index.DKC_Jv5v.js",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/products.ts" "web/app/themes/haiku-atelier-2024/src/scripts/constantes/products.ts"
], ],
"integrity": "sha512-drUCjv7zIsJahz4nwVEcEEFS6McC4Jk/NVfabKHIajgdC6r/PpAhMT9Dv6udLFLODbu/hYSGxfnRAuyXSv4GJw==" "integrity": "sha512-nDODvHALLqwSzO0AKoZzYVKPg4BGO8VBwJGEMyEgjNO2NBDHrGD85/ptRVgWEZdYHcAHu2mGw10KXkcb+0QEnQ=="
}, },
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts": { "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts": {
"file": "messages2.js", "file": "messages2.js",
@ -339,21 +344,22 @@
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts", "src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts",
"isEntry": true, "isEntry": true,
"imports": [ "imports": [
"_index.DeCaB8sW.js", "_index.DKC_Jv5v.js",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/messages.ts", "web/app/themes/haiku-atelier-2024/src/scripts/constantes/messages.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts", "web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-coupons.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/couts-livraison.ts" "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/couts-livraison.ts"
], ],
"integrity": "sha512-JKw9KmQsaKjXeXDkKkxPWyLGP7os2etoHcOeei88t3+XbDgGddzVbAVFallljGaDLMRYDRhl81aCwFohyRe8qA==" "integrity": "sha512-Z1k+lR05ggnpPfMRz+rkIz/hgZaOSn4QEoMO0gn9PqfulMuAwc+Enbm+4tHey/kPnYVthqLVU9JD45T6WwFkgw=="
}, },
"web/app/themes/haiku-atelier-2024/src/scripts/lib/types/api/v3/orders.ts": { "web/app/themes/haiku-atelier-2024/src/scripts/lib/types/api/v3/orders.ts": {
"file": "orders3.js", "file": "orders.js",
"name": "orders", "name": "orders",
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/types/api/v3/orders.ts", "src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/types/api/v3/orders.ts",
"isEntry": true, "isEntry": true,
"integrity": "sha512-nqCjj7B9DjVJS7/4WgLDt58w1LMfLMxDfutD7vY99PNX9rjdiF1ckCffcMuxCGureeEu8qw9RCRKMavMDEX2bw==" "integrity": "sha512-FxX8RZIDDZuWNSNyFz9fYxNVJyRtwOZfK0KQ6c3Vn98d/Ovd3m+OjmjXXiYnENzH86EpLIuHjxc/RiUIVsAvDQ=="
}, },
"web/app/themes/haiku-atelier-2024/src/scripts/lib/types/api/v3/products.ts": { "web/app/themes/haiku-atelier-2024/src/scripts/lib/types/api/v3/products.ts": {
"file": "products4.js", "file": "products4.js",
@ -372,9 +378,9 @@
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
"_pipe.XPB0wEfw.js", "_pipe.XPB0wEfw.js",
"_Either.wHNxn7Os.js", "_Either.wHNxn7Os.js",
"_exports.DT-46nyp.js" "_exports.3IcOsN8u.js"
], ],
"integrity": "sha512-F3Lt50ZQrOGB4auHPp9I2CNbXTxd8bjMyUaNHrYYw2Ujy8p+EW8VqHTj2aAperb/C+0VrKEIYn4u2QtZiY/PWw==" "integrity": "sha512-x3y5f8DNLaNwFU4OIZWHmBHwTKsay8L54ocQdNS+YtIALQETdiLIU3DWBhcflJQagMHjs18d7GHMBAU91t6z+Q=="
}, },
"web/app/themes/haiku-atelier-2024/src/scripts/lib/validation.ts": { "web/app/themes/haiku-atelier-2024/src/scripts/lib/validation.ts": {
"file": "validation.js", "file": "validation.js",
@ -382,10 +388,10 @@
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/validation.ts", "src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/validation.ts",
"isEntry": true, "isEntry": true,
"imports": [ "imports": [
"_index.DeCaB8sW.js", "_index.DKC_Jv5v.js",
"_Either.wHNxn7Os.js" "_Either.wHNxn7Os.js"
], ],
"integrity": "sha512-+JFwOCgnzY60Mc2eSWHulo7Pmg1WdcghpZICm82dY6cCnu9MfszbqTvAis8mH7lk0Jq0+FdWNXYMNdmoHzA3fg==" "integrity": "sha512-Dhmgzl/XrIuQ1eQdlXuLMdzZpBFlSVPMsGPJV24H4uetPrFJS5ifvqOCuL2vYT50sK8boIg2OSWzRSbDO2l/ZQ=="
}, },
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-bouton-panier.ts": { "web/app/themes/haiku-atelier-2024/src/scripts/scripts-bouton-panier.ts": {
"file": "scripts-bouton-panier.js", "file": "scripts-bouton-panier.js",
@ -400,16 +406,17 @@
"web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts",
"_pipe.XPB0wEfw.js", "_pipe.XPB0wEfw.js",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
"_exports.DT-46nyp.js", "_exports.3IcOsN8u.js",
"_Either.wHNxn7Os.js", "_Either.wHNxn7Os.js",
"_index.DeCaB8sW.js", "_index.DKC_Jv5v.js",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts", "web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-coupons.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/couts-livraison.ts" "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/couts-livraison.ts"
], ],
"integrity": "sha512-c2lPVLw4/BtVqdses0KHAGQL3WRcx6r78mek0FwrCD10x6Lrzg1VEt4c96Z/QX8gx0upzZt7XZwo+GfwQU/1sA==" "integrity": "sha512-mHc6AtX1ym8HmptAgpbetiNRV1BLrBYZaz5ERTFv38/uFGTgaF6eR3I+51YLVSL84di4HeU/JmhYgUPmzIXRdg=="
}, },
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-menu-categories.ts": { "web/app/themes/haiku-atelier-2024/src/scripts/scripts-menu-categories.ts": {
"file": "scripts-menu-categories.js", "file": "scripts-menu-categories.js",
@ -422,11 +429,11 @@
"web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/dom.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/dom.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
"_exports.DT-46nyp.js", "_exports.3IcOsN8u.js",
"_pipe.XPB0wEfw.js", "_pipe.XPB0wEfw.js",
"_Either.wHNxn7Os.js" "_Either.wHNxn7Os.js"
], ],
"integrity": "sha512-hcAmR1lM0Iu4YQT67krIiilSomqNJTYIMLWJpyOz7Kqm9yEFRuCE/CDo12l1cIbFz5vpxi6IaCEUjPBSkL7wbQ==" "integrity": "sha512-j3ILSBME932tOctTi7Zh/O0nNcWVK6CZXnP0cDwVutrUSuIgQZUedocLvyZoqhqEZDE3bDylXvbOdmL97ovovw=="
}, },
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-menu-mobile.ts": { "web/app/themes/haiku-atelier-2024/src/scripts/scripts-menu-mobile.ts": {
"file": "scripts-menu-mobile.js", "file": "scripts-menu-mobile.js",
@ -438,11 +445,11 @@
"web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/dom.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/dom.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
"_exports.DT-46nyp.js", "_exports.3IcOsN8u.js",
"_Either.wHNxn7Os.js", "_pipe.XPB0wEfw.js",
"_pipe.XPB0wEfw.js" "_Either.wHNxn7Os.js"
], ],
"integrity": "sha512-ur8F71PhcmJxjz5vOWwvpEDwgvtt3DIvUs70ZoHky1dc3366AxxW/eneNBhh2brWTxr+XB06JVVMDSVywZ0D8A==" "integrity": "sha512-ug1m3ReK/rEWNlcqtQSpt4mUMSkEFt9vqH+TDliSml0CQNHdyFx5k5/+B9gwpBCu7aJi0WLxExOzO1JnnKhb3Q=="
}, },
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-a-propos.ts": { "web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-a-propos.ts": {
"file": "scripts-page-a-propos.js", "file": "scripts-page-a-propos.js",
@ -454,12 +461,12 @@
"web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/dom.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/dom.ts",
"_pipe.XPB0wEfw.js", "_pipe.XPB0wEfw.js",
"_belt_Option-91f3b350.BKMoZFhU.js", "_belt_Option-91f3b350.cBye8bLJ.js",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
"_exports.DT-46nyp.js", "_exports.3IcOsN8u.js",
"_Either.wHNxn7Os.js" "_Either.wHNxn7Os.js"
], ],
"integrity": "sha512-n5kzxn/FUDN7WZaghlqMv3n+7wgBbO5ntBQYGvtpO0f3maqwXSw16O5Kz0FPxQpif97Xgh8xdxL7SRWeUHkg8A==" "integrity": "sha512-i8fpg/m7dfAfi1JtF5Dg+JqmW7Me3NkOtlhjVyQnatzYO+KAmbifg/6hLnJmPlKnNoDcpLzWWurmp+LUUayt5w=="
}, },
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-accueil.ts": { "web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-accueil.ts": {
"file": "scripts-page-accueil.js", "file": "scripts-page-accueil.js",
@ -472,11 +479,11 @@
"web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/dom.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/dom.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
"_exports.DT-46nyp.js", "_exports.3IcOsN8u.js",
"_Either.wHNxn7Os.js", "_pipe.XPB0wEfw.js",
"_pipe.XPB0wEfw.js" "_Either.wHNxn7Os.js"
], ],
"integrity": "sha512-7LblNdCZyF4JvOcu4bu+66BL2bwPMDfTqkHlIVvEfyK5DBtuR0IgDCdyJ/bOa6t/gWODVzRCzDYWQPqc0RjJrg==" "integrity": "sha512-h+g7IEbO5YmdMbcfG4JK+FISSSVIy0VQJRL8JQXY/kyy76KIYosJOMmWbi+Xf9wIFJmkQdS8/eUIbwmfztYqOA=="
}, },
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-boutique.ts": { "web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-boutique.ts": {
"file": "scripts-page-boutique.js", "file": "scripts-page-boutique.js",
@ -485,7 +492,7 @@
"isEntry": true, "isEntry": true,
"imports": [ "imports": [
"_index.CeK6pfoJ.js", "_index.CeK6pfoJ.js",
"_index.DeCaB8sW.js", "_index.DKC_Jv5v.js",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts", "web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/dom.ts", "web/app/themes/haiku-atelier-2024/src/scripts/constantes/dom.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/dom.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/dom.ts",
@ -494,16 +501,16 @@
"web/app/themes/haiku-atelier-2024/src/scripts/lib/reseau.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/reseau.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/v3/products.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/v3/products.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts",
"_MaybeAsync.Ba-OfjWy.js", "_MaybeAsync.AE1jnxuc.js",
"_pipe.XPB0wEfw.js", "_pipe.XPB0wEfw.js",
"_index-0eef19ec.CFsloYN6.js", "_index-0eef19ec.DoJSf22Z.js",
"_Either.wHNxn7Os.js", "_Either.wHNxn7Os.js",
"_exports.DT-46nyp.js", "_exports.3IcOsN8u.js",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/erreurs.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/erreurs.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/products.ts", "web/app/themes/haiku-atelier-2024/src/scripts/constantes/products.ts",
"_belt_Option-91f3b350.BKMoZFhU.js" "_belt_Option-91f3b350.cBye8bLJ.js"
], ],
"integrity": "sha512-UJ65bimSLn101pT4fvkq+ri0VXxmg9iZ/y66jq5XBmPLi2E788SZs/mtVaFVLKGCIyil64JSIH9J8dhFx0D1Ow==" "integrity": "sha512-uNYyKGhjHeqYncjAyE+T/e7QBoQ/f9UvdSiQDykcwh166q7omicesrkD2sIlLz/N439aSMU26A09bm+GRe6elg=="
}, },
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-panier-code-promo.ts": { "web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-panier-code-promo.ts": {
"file": "scripts-page-panier-code-promo.js", "file": "scripts-page-panier-code-promo.js",
@ -511,15 +518,30 @@
"src": "web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-panier-code-promo.ts", "src": "web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-panier-code-promo.ts",
"isEntry": true, "isEntry": true,
"imports": [ "imports": [
"_index.CeK6pfoJ.js",
"_index.DKC_Jv5v.js",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/dom.ts", "web/app/themes/haiku-atelier-2024/src/scripts/constantes/dom.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/dom.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/dom.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
"_exports.DT-46nyp.js", "web/app/themes/haiku-atelier-2024/src/scripts/lib/gardes.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/reseau.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-apply-coupon.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-remove-coupon.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/validation.ts",
"_MaybeAsync.AE1jnxuc.js",
"_pipe.XPB0wEfw.js",
"_Either.wHNxn7Os.js", "_Either.wHNxn7Os.js",
"_pipe.XPB0wEfw.js" "_exports.3IcOsN8u.js",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/erreurs.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-coupons.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/couts-livraison.ts"
], ],
"integrity": "sha512-WgxyPzbqGfZbXTo1NrcaGULnyN53Ad2srjXoTRkx990EVtK5DcrPEP6BvA1YOc1p/vOfu8Ry8KpeTSl4blwXwg==" "integrity": "sha512-22TkRIZOEsST92UYKs46BLpB7h9wrAHlaPGzlEtapPuHZRDzN5KDgh/iWTC9Wy16m/4MMTCJ42UNZD3cGIpgOg=="
}, },
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-panier.ts": { "web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-panier.ts": {
"file": "scripts-page-panier.js", "file": "scripts-page-panier.js",
@ -528,7 +550,7 @@
"isEntry": true, "isEntry": true,
"imports": [ "imports": [
"_index.CeK6pfoJ.js", "_index.CeK6pfoJ.js",
"_index.DeCaB8sW.js", "_index.DKC_Jv5v.js",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts", "web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/dom.ts", "web/app/themes/haiku-atelier-2024/src/scripts/constantes/dom.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/messages.ts", "web/app/themes/haiku-atelier-2024/src/scripts/constantes/messages.ts",
@ -537,8 +559,6 @@
"web/app/themes/haiku-atelier-2024/src/scripts/lib/gardes.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/gardes.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/messages.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/messages.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/reseau.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/reseau.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-apply-coupon.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-remove-coupon.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-remove-item.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-remove-item.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-update-customer.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-update-customer.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-update-item.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-update-item.ts",
@ -547,19 +567,23 @@
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/v3/orders.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/v3/orders.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/validation.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/validation.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-panier-code-promo.ts",
"_pipe.XPB0wEfw.js", "_pipe.XPB0wEfw.js",
"_index-0eef19ec.CFsloYN6.js", "_index-0eef19ec.DoJSf22Z.js",
"_MaybeAsync.Ba-OfjWy.js",
"_Either.wHNxn7Os.js", "_Either.wHNxn7Os.js",
"_exports.DT-46nyp.js", "_exports.3IcOsN8u.js",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/erreurs.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/erreurs.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts", "web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-coupons.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/orders.ts", "web/app/themes/haiku-atelier-2024/src/scripts/constantes/orders.ts",
"_belt_Option-91f3b350.BKMoZFhU.js" "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-apply-coupon.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-remove-coupon.ts",
"_MaybeAsync.AE1jnxuc.js",
"_belt_Option-91f3b350.cBye8bLJ.js"
], ],
"integrity": "sha512-JT02QHHnBgQjwcB2dwaM08tKsQO3HaQLSmy1hkB4xxKuC92rBv2jBd6Hj2SBMTjch4H0270NPMC98esVTcET+g==" "integrity": "sha512-pjdI16uzECwZBDM0wQrEmMY5cAcToOu2qjDsct0nuz5TqNsP8VqtQ36TqPKJ7ADy+LKVyaajCqpUr4KaErg2Dg=="
}, },
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-produit.ts": { "web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-produit.ts": {
"file": "scripts-page-produit.js", "file": "scripts-page-produit.js",
@ -580,18 +604,19 @@
"web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/validation.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/validation.ts",
"_pipe.XPB0wEfw.js", "_pipe.XPB0wEfw.js",
"_index-0eef19ec.CFsloYN6.js", "_index-0eef19ec.DoJSf22Z.js",
"_Either.wHNxn7Os.js", "_Either.wHNxn7Os.js",
"_exports.DT-46nyp.js", "_exports.3IcOsN8u.js",
"_index.DeCaB8sW.js", "_index.DKC_Jv5v.js",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/messages.ts", "web/app/themes/haiku-atelier-2024/src/scripts/constantes/messages.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/erreurs.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/erreurs.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts", "web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-coupons.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/couts-livraison.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/couts-livraison.ts",
"_belt_Option-91f3b350.BKMoZFhU.js" "_belt_Option-91f3b350.cBye8bLJ.js"
], ],
"integrity": "sha512-xezJYeBOyJhax3Kdcv6WJqp1RgZF7WG5wKf9XMjyTKsvUAlppMnhADz/xFhUEGJIAHIsvkKep4Z02GslZRN0oQ==" "integrity": "sha512-AfazFsXwZx7Jw4OFVOqn67aMHb33rZaKnWzJWhXb065QNCmsGpBpTpXIN+MceSmx/b/6uKsieqH6PwFKyIk9jw=="
} }
} }

View file

@ -1,4 +1,4 @@
import { r as right, l as left, E as Either, n as nothing, j as just, M as Maybe } from "./Either.wHNxn7Os.js"; import { E as Either, r as right, l as left, M as Maybe, n as nothing, j as just } from "./Either.wHNxn7Os.js";
var _a$1; var _a$1;
const helpers$1 = { const helpers$1 = {
liftEither(either) { liftEither(either) {
@ -311,4 +311,4 @@ MaybeAsyncImpl.prototype.constructor = MaybeAsync;
export { export {
EitherAsync as E EitherAsync as E
}; };
//# sourceMappingURL=MaybeAsync.Ba-OfjWy.js.map //# sourceMappingURL=MaybeAsync.AE1jnxuc.js.map

View file

@ -1,4 +1,4 @@
import { o as object, s as string } from "./index.DeCaB8sW.js"; import { o as object, s as string } from "./index.DKC_Jv5v.js";
const WCStoreBillingAddressSchema = object({ const WCStoreBillingAddressSchema = object({
address_1: string(), address_1: string(),
address_2: string(), address_2: string(),
@ -26,7 +26,7 @@ const WCStoreShippingAddressSchema = object({
state: string() state: string()
}); });
export { export {
WCStoreShippingAddressSchema as W, WCStoreBillingAddressSchema as W,
WCStoreBillingAddressSchema as a WCStoreShippingAddressSchema as a
}; };
//# sourceMappingURL=adresses.js.map //# sourceMappingURL=adresses.js.map

View file

@ -18,11 +18,11 @@ export {
ROUTE_API_MAJ_ARTICLE_PANIER as b, ROUTE_API_MAJ_ARTICLE_PANIER as b,
ROUTE_API_MAJ_CLIENT as c, ROUTE_API_MAJ_CLIENT as c,
ROUTE_API_NOUVELLE_COMMANDES as d, ROUTE_API_NOUVELLE_COMMANDES as d,
ROUTE_API_RETIRE_COUPON as e, ROUTE_API_APPLIQUE_COUPON as e,
ROUTE_API_APPLIQUE_COUPON as f, ROUTE_API_RETIRE_COUPON as f,
ROUTE_API_AJOUTE_ARTICLE_PANIER as g, ROUTE_API_AJOUTE_ARTICLE_PANIER as g,
ROUTE_API_PANIER as h, ROUTE_API_PANIER as h,
ENTETE_GLITCHTIP_RETRY_AFTER as i, ENTETE_GLITCHTIP_RATE_LIMITS as i,
ENTETE_GLITCHTIP_RATE_LIMITS as j ENTETE_GLITCHTIP_RETRY_AFTER as j
}; };
//# sourceMappingURL=api.js.map //# sourceMappingURL=api.js.map

View file

@ -1,4 +1,4 @@
import { v as valFromOption, s as some } from "./dom2.js"; import { v as valFromOption, k as some } from "./dom2.js";
function sub(n2, r, t) { function sub(n2, r, t) {
var e = new Array(t); var e = new Array(t);
var u = 0; var u = 0;
@ -136,14 +136,14 @@ function isNone(t) {
export { export {
_1 as _, _1 as _,
isSome as a, isSome as a,
isNone as b, getWithDefault as b,
create as c, create as c,
getExn as d, isNone as d,
mapU as e, mapU as e,
flatMapU as f, flatMap as f,
getWithDefault as g, getExn as g,
flatMap as h, flatMapU as h,
is_extension as i, is_extension as i,
mapWithDefaultU as m mapWithDefaultU as m
}; };
//# sourceMappingURL=belt_Option-91f3b350.BKMoZFhU.js.map //# sourceMappingURL=belt_Option-91f3b350.cBye8bLJ.js.map

View file

@ -1,4 +1,4 @@
import { o as object, c as optional, b as array, s as string, n as number } from "./index.DeCaB8sW.js"; import { o as object, c as optional, n as number, b as array, s as string } from "./index.DKC_Jv5v.js";
const WCStoreCartAddItemArgsItemsSchema = object({ const WCStoreCartAddItemArgsItemsSchema = object({
/** Variation attribute name. */ /** Variation attribute name. */
attribute: string(), attribute: string(),

View file

@ -1,4 +1,4 @@
import { o as object, c as optional, s as string } from "./index.DeCaB8sW.js"; import { o as object, c as optional, s as string } from "./index.DKC_Jv5v.js";
const WCStoreCartApplyCouponArgsSchema = object({ const WCStoreCartApplyCouponArgsSchema = object({
/** Unique identifier for the coupon within the basket */ /** Unique identifier for the coupon within the basket */
code: optional(string()) code: optional(string())

View file

@ -1,2 +1,32 @@
import { o as object, s as string, a as pipe, i as integer, n as number } from "./index.DKC_Jv5v.js";
const WCStoreCartCouponsSchema = object({
/** The coupon's unique code. */
code: string(),
// The discount type for the coupon (eg percentage or fixed amount)
discount_type: string(),
// Total amounts provided using the smallest unit of the currency.
totals: object({
// Currency code (in ISO format) for returned prices.
currency_code: string(),
// Decimal separator for the currency which can be used to format returned prices.
currency_decimal_separator: string(),
// Currency minor unit (number of digits after the decimal separator) for returned prices.
currency_minor_unit: pipe(number(), integer()),
// Price prefix for the currency which can be used to format returned prices.
currency_prefix: string(),
// Price prefix for the currency which can be used to format returned prices.
currency_suffix: string(),
// Currency symbol for the currency which can be used to format returned prices.
currency_symbol: string(),
// Thousand separator for the currency which can be used to format returned prices.
currency_thousand_separator: string(),
// Total discount applied by this coupon.
total_discount: string(),
// Total tax removed due to discount applied by this coupon.
total_discount_tax: string()
})
});
export {
WCStoreCartCouponsSchema as W
};
//# sourceMappingURL=cart-coupons.js.map //# sourceMappingURL=cart-coupons.js.map

View file

@ -1 +1 @@
{"version":3,"file":"cart-coupons.js","sources":[],"sourcesContent":[],"names":[],"mappings":""} {"version":3,"file":"cart-coupons.js","sources":["../../src/scripts/lib/schemas/api/cart-coupons.ts"],"sourcesContent":["import * as v from \"valibot\";\n\nexport const WCStoreCartCouponsArgSchema = v.object({\n // Unique identifier for the coupon within the basket.\n code: v.string(),\n});\n\nexport const WCStoreCartCouponsSchema = v.object({\n /** The coupon's unique code. */\n code: v.string(),\n // The discount type for the coupon (eg percentage or fixed amount)\n discount_type: v.string(),\n // Total amounts provided using the smallest unit of the currency.\n totals: v.object({\n // Currency code (in ISO format) for returned prices.\n currency_code: v.string(),\n // Decimal separator for the currency which can be used to format returned prices.\n currency_decimal_separator: v.string(),\n // Currency minor unit (number of digits after the decimal separator) for returned prices.\n currency_minor_unit: v.pipe(v.number(), v.integer()),\n // Price prefix for the currency which can be used to format returned prices.\n currency_prefix: v.string(),\n // Price prefix for the currency which can be used to format returned prices.\n currency_suffix: v.string(),\n // Currency symbol for the currency which can be used to format returned prices.\n currency_symbol: v.string(),\n // Thousand separator for the currency which can be used to format returned prices.\n currency_thousand_separator: v.string(),\n // Total discount applied by this coupon.\n total_discount: v.string(),\n // Total tax removed due to discount applied by this coupon.\n total_discount_tax: v.string(),\n }),\n});\n"],"names":["v.object","v.string","v.pipe","v.number","v.integer"],"mappings":";AAOa,MAAA,2BAA2BA,OAAS;AAAA;AAAA,EAE/C,MAAMC,OAAS;AAAA;AAAA,EAEf,eAAeA,OAAS;AAAA;AAAA,EAExB,QAAQD,OAAS;AAAA;AAAA,IAEf,eAAeC,OAAS;AAAA;AAAA,IAExB,4BAA4BA,OAAS;AAAA;AAAA,IAErC,qBAAqBC,KAAOC,OAAY,GAAAC,SAAW;AAAA;AAAA,IAEnD,iBAAiBH,OAAS;AAAA;AAAA,IAE1B,iBAAiBA,OAAS;AAAA;AAAA,IAE1B,iBAAiBA,OAAS;AAAA;AAAA,IAE1B,6BAA6BA,OAAS;AAAA;AAAA,IAEtC,gBAAgBA,OAAS;AAAA;AAAA,IAEzB,oBAAoBA,OAAS;AAAA,EAC9B,CAAA;AACH,CAAC;"}

View file

@ -1,4 +1,4 @@
import { o as object, c as optional, s as string } from "./index.DeCaB8sW.js"; import { o as object, c as optional, s as string } from "./index.DKC_Jv5v.js";
const WCStoreCartRemoveCouponArgsSchema = object({ const WCStoreCartRemoveCouponArgsSchema = object({
/** Unique identifier for the coupon within the basket */ /** Unique identifier for the coupon within the basket */
code: optional(string()) code: optional(string())

View file

@ -1,4 +1,4 @@
import { o as object, s as string } from "./index.DeCaB8sW.js"; import { o as object, s as string } from "./index.DKC_Jv5v.js";
const WCStoreCartRemoveItemArgsSchema = object({ const WCStoreCartRemoveItemArgsSchema = object({
/** Unique identifier (key) for the basket item. */ /** Unique identifier (key) for the basket item. */
key: string() key: string()

View file

@ -1,5 +1,5 @@
import { o as object, c as optional } from "./index.DeCaB8sW.js"; import { o as object, c as optional } from "./index.DKC_Jv5v.js";
import { W as WCStoreShippingAddressSchema, a as WCStoreBillingAddressSchema } from "./adresses.js"; import { W as WCStoreBillingAddressSchema, a as WCStoreShippingAddressSchema } from "./adresses.js";
const WCStoreCartUpdateCustomerArgsSchema = object({ const WCStoreCartUpdateCustomerArgsSchema = object({
billing_address: optional(WCStoreBillingAddressSchema), billing_address: optional(WCStoreBillingAddressSchema),
shipping_address: optional(WCStoreShippingAddressSchema) shipping_address: optional(WCStoreShippingAddressSchema)

View file

@ -1,4 +1,4 @@
import { o as object, a as pipe, k as minValue, n as number, s as string } from "./index.DeCaB8sW.js"; import { o as object, s as string, a as pipe, m as minValue, n as number } from "./index.DKC_Jv5v.js";
const WCStoreCartUpdateItemArgsSchema = object({ const WCStoreCartUpdateItemArgsSchema = object({
/** Unique identifier (key) for the basket item to update. */ /** Unique identifier (key) for the basket item to update. */
key: string(), key: string(),

View file

@ -1,6 +1,7 @@
import { o as object, b as array, u as unknown, s as string, n as number, d as boolean, a as pipe, f as url, g as union, h as null_, e as enum_, i as integer } from "./index.DeCaB8sW.js"; import { o as object, d as boolean, e as enum_, s as string, u as unknown, n as number, b as array, f as union, a as pipe, g as null_, h as url, i as integer } from "./index.DKC_Jv5v.js";
import { C as CATALOG_VISIBILITIES } from "./cart2.js"; import { C as CATALOG_VISIBILITIES } from "./cart2.js";
import { W as WCStoreShippingAddressSchema, a as WCStoreBillingAddressSchema } from "./adresses.js"; import { W as WCStoreBillingAddressSchema, a as WCStoreShippingAddressSchema } from "./adresses.js";
import { W as WCStoreCartCouponsSchema } from "./cart-coupons.js";
import { a as WCStoreShippingRateSchema } from "./couts-livraison.js"; import { a as WCStoreShippingRateSchema } from "./couts-livraison.js";
const WCStoreCartItemTotalsSchema = object({ const WCStoreCartItemTotalsSchema = object({
currency_code: string(), currency_code: string(),
@ -60,7 +61,8 @@ const WCStoreCartTotalsSchema = object({
}); });
const WCStoreCartSchema = object({ const WCStoreCartSchema = object({
billing_address: WCStoreBillingAddressSchema, billing_address: WCStoreBillingAddressSchema,
coupons: unknown(), /** List of applied basket coupons. */
coupons: array(WCStoreCartCouponsSchema),
cross_sells: unknown(), cross_sells: unknown(),
errors: unknown(), errors: unknown(),
extensions: unknown(), extensions: unknown(),

File diff suppressed because one or more lines are too long

View file

@ -1,5 +1,5 @@
import { o as object, b as array, s as string, d as boolean, u as unknown, n as number, j as omit } from "./index.DeCaB8sW.js"; import { o as object, j as omit, b as array, s as string, n as number, u as unknown, d as boolean } from "./index.DKC_Jv5v.js";
import { W as WCStoreShippingAddressSchema } from "./adresses.js"; import { a as WCStoreShippingAddressSchema } from "./adresses.js";
const WCStoreShippingRateItemSchema = object({ const WCStoreShippingRateItemSchema = object({
key: string(), key: string(),
name: string(), name: string(),

View file

@ -63,64 +63,64 @@ const SELECTEUR_PRIX_PRODUIT = ".selecteur-produit__prix";
export { export {
ATTRIBUT_MENU_MOBILE_ACTIVE as $, ATTRIBUT_MENU_MOBILE_ACTIVE as $,
ATTRIBUT_CONTIENT_ARTICLES as A, ATTRIBUT_CONTIENT_ARTICLES as A,
SELECTEUR_BOUTON_ACTIONS_FORMULAIRE as B, SELECTEUR_BOUTON_CODE_PROMO as B,
ATTRIBUT_CLE_PANIER as C, ATTRIBUT_CLE_PANIER as C,
SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE as D, SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE as D,
SELECTEUR_CHAMP_QUANTITE_LIGNE_PANIER as E, SELECTEUR_CHAMP_QUANTITE_LIGNE_PANIER as E,
SELECTEUR_BOUTON_ADDITION_QUANTITE as F, SELECTEUR_BOUTON_ADDITION_QUANTITE as F,
SELECTEUR_BOUTON_SUPPRESSION_PANIER as G, SELECTEUR_BOUTON_SUPPRESSION_PANIER as G,
ATTRIBUT_DESACTIVE as H, SELECTEUR_PRIX_LIGNE_PANIER as H,
SELECTEUR_PRIX_LIGNE_PANIER as I, ATTRIBUT_DESACTIVE as I,
ATTRIBUT_CODE_PROMO_PRESENT as J, ATTRIBUT_CODE_PROMO_PRESENT as J,
SELECTEUR_BOUTON_AJOUT_PANIER as K, SELECTEUR_BOUTON_AJOUT_PANIER as K,
SELECTEUR_SELECTEUR_QUANTITE as L, SELECTEUR_SELECTEUR_QUANTITE as L,
SELECTEUR_PRIX_PRODUIT as M, SELECTEUR_LIENS_ONGLETS as M,
SELECTEUR_LIENS_ONGLETS as N, SELECTEUR_SECTIONS_CONTENUS as N,
SELECTEUR_SECTIONS_CONTENUS as O, SELECTEUR_PRIX_PRODUIT as O,
ATTRIBUT_ARIA_SELECTED as P, SELECTEUR_CONTENEUR_FLECHES_DEFILEMENT as P,
ATTRIBUT_PRIX as Q, SELECTEUR_FLECHE_DEFILEMENT_GAUCHE as Q,
SELECTEUR_CONTENEUR_FLECHES_DEFILEMENT as R, SELECTEUR_FLECHE_DEFILEMENT_DROITE as R,
SELECTEUR_BOUTON_PANIER as S, SELECTEUR_BOUTON_PANIER as S,
SELECTEUR_FLECHE_DEFILEMENT_GAUCHE as T, SELECTEUR_PHOTOS_PRODUIT as T,
SELECTEUR_FLECHE_DEFILEMENT_DROITE as U, SELECTEUR_IMAGE_COLONNE_GAUCHE as U,
SELECTEUR_PHOTOS_PRODUIT as V, SELECTEUR_IMAGES_COLONNE_DROITE as V,
SELECTEUR_IMAGE_COLONNE_GAUCHE as W, ATTRIBUT_INDEX_IMAGE_ACTIVE as W,
SELECTEUR_IMAGES_COLONNE_DROITE as X, ATTRIBUT_ARIA_SELECTED as X,
ATTRIBUT_INDEX_IMAGE_ACTIVE as Y, ATTRIBUT_PRIX as Y,
SELECTEUR_BOUTON_MENU_MOBILE as Z, SELECTEUR_BOUTON_MENU_MOBILE as Z,
SELECTEUR_MENU_MOBILE as _, SELECTEUR_MENU_MOBILE as _,
SELECTEUR_MENU_CATEGORIES_PRODUITS as a, SELECTEUR_MENU_CATEGORIES_PRODUITS as a,
SELECTEUR_CONTENEUR_STORYTELLING_A_PROPOS as a0, ATTRIBUT_ID_ENSEMBLE_EPINGLE_BOITE as a0,
SELECTEUR_EPINGLE as a1, ATTRIBUT_ENSEMBLE_EPINGLE_BOITE_ACTIF as a1,
SELECTEUR_BOITE_TEXTE as a2, CLASS_BOUTON_FERMETURE_BOITE_TEXTE as a2,
ATTRIBUT_ID_ENSEMBLE_EPINGLE_BOITE as a3, CLASS_EPINGLE as a3,
ATTRIBUT_ENSEMBLE_EPINGLE_BOITE_ACTIF as a4, SELECTEUR_CONTENEUR_STORYTELLING_A_PROPOS as a4,
CLASS_BOUTON_FERMETURE_BOITE_TEXTE as a5, SELECTEUR_EPINGLE as a5,
CLASS_EPINGLE as a6, SELECTEUR_BOITE_TEXTE as a6,
SELECTEUR_ENTREE_MENU_CATEGORIES_PRODUITS as b, SELECTEUR_ENTREE_MENU_CATEGORIES_PRODUITS as b,
SELECTEUR_CONTENEUR_STORYTELLING as c, SELECTEUR_CONTENEUR_STORYTELLING as c,
SELECTEUR_IMAGES_STORYTELLING as d, SELECTEUR_IMAGES_STORYTELLING as d,
ATTRIBUT_CACHE as e, ATTRIBUT_CACHE as e,
ATTRIBUT_ARIA_HIDDEN as f, ATTRIBUT_ARIA_HIDDEN as f,
SELECTEUR_GRILLE_PRODUITS as g, SELECTEUR_BOUTON_PLUS_PRODUITS as g,
SELECTEUR_BOUTON_PLUS_PRODUITS as h, SELECTEUR_GRILLE_PRODUITS as h,
ATTRIBUT_ID_CATEGORIE_PRODUITS as i, ATTRIBUT_ID_CATEGORIE_PRODUITS as i,
ATTRIBUT_PAGE as j, ATTRIBUT_PAGE as j,
ATTRIBUT_HIDDEN as k, ATTRIBUT_HIDDEN as k,
SELECTEUR_BOUTON_CODE_PROMO as l, SELECTEUR_ENTREES_PANIER as l,
SELECTEUR_CHAMP_CODE_PROMO as m, SELECTEUR_CONTENEUR_PANIER as m,
SELECTEUR_ENSEMBLE_CODE_PROMO as n, SELECTEUR_SOUS_TOTAL_PRODUITS as n,
SELECTEUR_TOTAL_REDUCTION_VALEUR as o, SELECTEUR_SOUS_TOTAL_LIVRAISON_COUT as o,
SELECTEUR_TOTAL_REDUCTION as p, SELECTEUR_SOUS_TOTAL_LIVRAISON_PRESTATAIRE as p,
SELECTEUR_ENTREES_PANIER as q, SELECTEUR_TOTAL_PANIER as q,
SELECTEUR_CONTENEUR_PANIER as r, SELECTEUR_BOUTON_SEPARATION_ADRESSES as r,
SELECTEUR_SOUS_TOTAL_PRODUITS as s, SELECTEUR_FORMULAIRE_PANIER as s,
SELECTEUR_SOUS_TOTAL_LIVRAISON_COUT as t, SELECTEUR_FORMULAIRE_FACTURATION as t,
SELECTEUR_SOUS_TOTAL_LIVRAISON_PRESTATAIRE as u, SELECTEUR_BOUTON_ACTIONS_FORMULAIRE as u,
SELECTEUR_INSTRUCTIONS_CLIENT as v, SELECTEUR_TOTAL_REDUCTION as v,
SELECTEUR_TOTAL_PANIER as w, SELECTEUR_TOTAL_REDUCTION_VALEUR as w,
SELECTEUR_BOUTON_SEPARATION_ADRESSES as x, SELECTEUR_INSTRUCTIONS_CLIENT as x,
SELECTEUR_FORMULAIRE_PANIER as y, SELECTEUR_ENSEMBLE_CODE_PROMO as y,
SELECTEUR_FORMULAIRE_FACTURATION as z SELECTEUR_CHAMP_CODE_PROMO as z
}; };
//# sourceMappingURL=dom.js.map //# sourceMappingURL=dom.js.map

View file

@ -1,7 +1,7 @@
import { e as creeSyntaxError, f as ERREUR_SYNTAXE_INVALIDE, g as ERREUR_SELECTEUR_INEXISTANT, h as reporteEtLeveErreur, i as ErreurEntreeInexistante } from "./erreurs.js"; import { e as creeSyntaxError, f as reporteEtLeveErreur, g as ErreurEntreeInexistante, h as ERREUR_SYNTAXE_INVALIDE, i as ERREUR_SELECTEUR_INEXISTANT } from "./erreurs.js";
import { E as Either, r as right, l as left, M as Maybe } from "./Either.wHNxn7Os.js";
import { p as pipe } from "./pipe.XPB0wEfw.js"; import { p as pipe } from "./pipe.XPB0wEfw.js";
import "./exports.DT-46nyp.js"; import { E as Either, r as right, l as left, M as Maybe } from "./Either.wHNxn7Os.js";
import "./exports.3IcOsN8u.js";
function int_compare(e, r) { function int_compare(e, r) {
if (e < r) { if (e < r) {
return -1; return -1;
@ -2035,29 +2035,32 @@ const html = (strings, ...args) => pipe(
); );
const eitherSessionStorageGet = (cle) => Maybe.fromNullable(sessionStorage.getItem(cle)).toEither(ErreurEntreeInexistante(`Clé ${cle} absente dans le stockage de session.`)); const eitherSessionStorageGet = (cle) => Maybe.fromNullable(sessionStorage.getItem(cle)).toEither(ErreurEntreeInexistante(`Clé ${cle} absente dans le stockage de session.`));
const eitherJsonParse = (chaine) => Either.encase(() => JSON.parse(chaine)); const eitherJsonParse = (chaine) => Either.encase(() => JSON.parse(chaine));
const correspondCibleSelecteur = (cible, selecteur) => cible !== null && cible.matches(selecteur);
export { export {
Ra as R, Ra as R,
recupereElementAvecSelecteur as a, recupereElementsAvecSelecteur as a,
recupereElementsAvecSelecteur as b, eitherJsonParse as b,
eitherJsonParse as c, recupereElementAvecSelecteur as c,
recupereElementsOuLeve as d, correspondCibleSelecteur as d,
eitherSessionStorageGet as e, eitherSessionStorageGet as e,
someU as f, recupereElementsOuLeve as f,
everyU as g, equal as g,
html as h, html as h,
equal as i, identity as i,
fromArray as j, everyU as j,
reduceU as k, some$1 as k,
append as l, values as l,
mapU as m, fromArray as m,
forEachU as n, get$1 as n,
get$1 as o, forEachU as o,
values as p, mapU as p,
concat$1 as q, reduceU as q,
recupereElementOuLeve as r, recupereElementOuLeve as r,
some$1 as s, someU as s,
nullable_to_opt as t, append as t,
unsafeDeleteKey as u, unsafeDeleteKey as u,
valFromOption as v valFromOption as v,
nullable_to_opt as w,
concat$1 as x
}; };
//# sourceMappingURL=dom2.js.map //# sourceMappingURL=dom2.js.map

File diff suppressed because one or more lines are too long

View file

@ -1,4 +1,4 @@
import { c as captureException } from "./exports.DT-46nyp.js"; import { c as captureException } from "./exports.3IcOsN8u.js";
const ERREUR_SYNTAXE_INVALIDE = (selecteur) => `Le selecteur "${selecteur}" est invalide`; const ERREUR_SYNTAXE_INVALIDE = (selecteur) => `Le selecteur "${selecteur}" est invalide`;
const ERREUR_SELECTEUR_INEXISTANT = (selecteur) => `La requête "${selecteur}" n'a retourné aucun Élément.`; const ERREUR_SELECTEUR_INEXISTANT = (selecteur) => `La requête "${selecteur}" n'a retourné aucun Élément.`;
const creeSyntaxError = (message) => new SyntaxError(message); const creeSyntaxError = (message) => new SyntaxError(message);
@ -78,10 +78,10 @@ export {
leveUnauthorizedError as c, leveUnauthorizedError as c,
leveNotFoundError as d, leveNotFoundError as d,
creeSyntaxError as e, creeSyntaxError as e,
ERREUR_SYNTAXE_INVALIDE as f, reporteEtLeveErreur as f,
ERREUR_SELECTEUR_INEXISTANT as g, ErreurEntreeInexistante as g,
reporteEtLeveErreur as h, ERREUR_SYNTAXE_INVALIDE as h,
ErreurEntreeInexistante as i, ERREUR_SELECTEUR_INEXISTANT as i,
leveServerError as l, leveServerError as l,
reporteErreur as r reporteErreur as r
}; };

View file

@ -1,4 +1,4 @@
import { l as is, o as object, n as number, s as string } from "./index.DeCaB8sW.js"; import { l as is, o as object, n as number, s as string } from "./index.DKC_Jv5v.js";
const WCErrorBodySchema = object({ const WCErrorBodySchema = object({
code: string(), code: string(),
data: object({ data: object({

View file

@ -81,10 +81,10 @@ function safeJoin(input, delimiter) {
} }
return output.join(delimiter); return output.join(delimiter);
} }
const SDK_VERSION = "8.38.0"; const SDK_VERSION = "8.39.0";
const GLOBAL_OBJ = globalThis; const GLOBAL_OBJ = globalThis;
function getGlobalSingleton(name, creator, obj) { function getGlobalSingleton(name, creator, obj) {
const gbl = obj || GLOBAL_OBJ; const gbl = GLOBAL_OBJ;
const __SENTRY__ = gbl.__SENTRY__ = gbl.__SENTRY__ || {}; const __SENTRY__ = gbl.__SENTRY__ = gbl.__SENTRY__ || {};
const versionedCarrier = __SENTRY__[SDK_VERSION] = __SENTRY__[SDK_VERSION] || {}; const versionedCarrier = __SENTRY__[SDK_VERSION] = __SENTRY__[SDK_VERSION] || {};
return versionedCarrier[name] || (versionedCarrier[name] = creator()); return versionedCarrier[name] || (versionedCarrier[name] = creator());
@ -2117,8 +2117,8 @@ function captureEvent(event, hint) {
} }
export { export {
getCurrentScope as $, getCurrentScope as $,
isThenable as A, isPlainObject as A,
isPlainObject as B, isParameterizedString as B,
CONSOLE_LEVELS as C, CONSOLE_LEVELS as C,
DEBUG_BUILD$1 as D, DEBUG_BUILD$1 as D,
SDK_VERSION as E, SDK_VERSION as E,
@ -2126,24 +2126,24 @@ export {
GLOBAL_OBJ as G, GLOBAL_OBJ as G,
getOriginalFunction as H, getOriginalFunction as H,
getFramesFromEvent as I, getFramesFromEvent as I,
isErrorEvent as J, addExceptionMechanism as J,
isDOMError as K, isErrorEvent as K,
isDOMException as L, isDOMError as L,
addExceptionTypeValue as M, isDOMException as M,
isEvent as N, addExceptionTypeValue as N,
normalizeToSize as O, isEvent as O,
extractExceptionKeysForMessage as P, normalizeToSize as P,
addExceptionMechanism as Q, extractExceptionKeysForMessage as Q,
isString as R, isString as R,
SyncPromise as S, SyncPromise as S,
createStackParser as T, createStackParser as T,
UNKNOWN_FUNCTION as U, UNKNOWN_FUNCTION as U,
safeJoin as V, getEventDescription as V,
htmlTreeAsString as W, htmlTreeAsString as W,
getEventDescription as X, safeJoin as X,
getComponentName as Y, getComponentName as Y,
getLocationHref as Z, captureEvent as Z,
captureEvent as _, getLocationHref as _,
consoleSandbox as a, consoleSandbox as a,
timestampInSeconds as b, timestampInSeconds as b,
captureException as c, captureException as c,
@ -2151,7 +2151,7 @@ export {
addNonEnumerableProperty as e, addNonEnumerableProperty as e,
fill as f, fill as f,
getFunctionName as g, getFunctionName as g,
rejectedSyncPromise as h, resolvedSyncPromise as h,
isInstanceOf as i, isInstanceOf as i,
dropUndefinedKeys as j, dropUndefinedKeys as j,
dateTimestampInSeconds as k, dateTimestampInSeconds as k,
@ -2161,14 +2161,14 @@ export {
originalConsoleMethods as o, originalConsoleMethods as o,
uuid4 as p, uuid4 as p,
checkOrSetAlreadyCaught as q, checkOrSetAlreadyCaught as q,
resolvedSyncPromise as r, rejectedSyncPromise as r,
isPrimitive as s, isPrimitive as s,
truncate as t, truncate as t,
urlEncode as u, urlEncode as u,
isParameterizedString as v, updateSession as v,
updateSession as w, prepareEvent as w,
prepareEvent as x, getDynamicSamplingContextFromClient as x,
getDynamicSamplingContextFromClient as y, getIsolationScope as y,
getIsolationScope as z isThenable as z
}; };
//# sourceMappingURL=exports.DT-46nyp.js.map //# sourceMappingURL=exports.3IcOsN8u.js.map

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,5 +1,5 @@
import { i as ENTETE_GLITCHTIP_RETRY_AFTER, j as ENTETE_GLITCHTIP_RATE_LIMITS } from "./api.js"; import { i as ENTETE_GLITCHTIP_RATE_LIMITS, j as ENTETE_GLITCHTIP_RETRY_AFTER } from "./api.js";
import { i as isInstanceOf, t as truncate, a as consoleSandbox, D as DEBUG_BUILD$1, l as logger, g as getFunctionName, G as GLOBAL_OBJ, C as CONSOLE_LEVELS, f as fill, o as originalConsoleMethods, b as timestampInSeconds, d as isError, e as addNonEnumerableProperty, S as SyncPromise, r as resolvedSyncPromise, h as rejectedSyncPromise, j as dropUndefinedKeys, n as normalize, k as dateTimestampInSeconds, m as DEBUG_BUILD$2, u as urlEncode, p as uuid4, q as checkOrSetAlreadyCaught, s as isPrimitive, v as isParameterizedString, w as updateSession, x as prepareEvent, y as getDynamicSamplingContextFromClient, z as getIsolationScope, A as isThenable, B as isPlainObject, E as SDK_VERSION, F as getClient, H as getOriginalFunction, I as getFramesFromEvent, J as isErrorEvent$1, K as isDOMError, L as isDOMException, M as addExceptionTypeValue, N as isEvent, O as normalizeToSize, P as extractExceptionKeysForMessage, Q as addExceptionMechanism, R as isString, T as createStackParser, U as UNKNOWN_FUNCTION, V as safeJoin, W as htmlTreeAsString, X as getEventDescription, Y as getComponentName, Z as getLocationHref, _ as captureEvent, $ as getCurrentScope } from "./exports.DT-46nyp.js"; import { i as isInstanceOf, t as truncate, a as consoleSandbox, D as DEBUG_BUILD$1, l as logger, g as getFunctionName, G as GLOBAL_OBJ, C as CONSOLE_LEVELS, f as fill, o as originalConsoleMethods, b as timestampInSeconds, d as isError, e as addNonEnumerableProperty, r as rejectedSyncPromise, S as SyncPromise, h as resolvedSyncPromise, j as dropUndefinedKeys, n as normalize, k as dateTimestampInSeconds, m as DEBUG_BUILD$2, u as urlEncode, p as uuid4, q as checkOrSetAlreadyCaught, s as isPrimitive, v as updateSession, w as prepareEvent, x as getDynamicSamplingContextFromClient, y as getIsolationScope, z as isThenable, A as isPlainObject, B as isParameterizedString, E as SDK_VERSION, F as getClient, H as getOriginalFunction, I as getFramesFromEvent, J as addExceptionMechanism, K as isErrorEvent$1, L as isDOMError, M as isDOMException, N as addExceptionTypeValue, O as isEvent, P as normalizeToSize, Q as extractExceptionKeysForMessage, R as isString, T as createStackParser, U as UNKNOWN_FUNCTION, V as getEventDescription, W as htmlTreeAsString, X as safeJoin, Y as getComponentName, Z as captureEvent, _ as getLocationHref, $ as getCurrentScope } from "./exports.3IcOsN8u.js";
import { p as pipe } from "./pipe.XPB0wEfw.js"; import { p as pipe } from "./pipe.XPB0wEfw.js";
function applyAggregateErrorsToEvent(exceptionFromErrorImplementation, parser, maxValueLimit = 250, key, limit, event, hint) { function applyAggregateErrorsToEvent(exceptionFromErrorImplementation, parser, maxValueLimit = 250, key, limit, event, hint) {
if (!event.exception || !event.exception.values || !hint || !isInstanceOf(hint.originalException, Error)) { if (!event.exception || !event.exception.values || !hint || !isInstanceOf(hint.originalException, Error)) {

File diff suppressed because one or more lines are too long

View file

@ -1,5 +1,5 @@
import { h as ROUTE_API_PANIER, E as ENTETE_WC_NONCE } from "./api.js"; import { h as ROUTE_API_PANIER, E as ENTETE_WC_NONCE } from "./api.js";
import { E as EitherAsync } from "./MaybeAsync.Ba-OfjWy.js"; import { E as EitherAsync } from "./MaybeAsync.AE1jnxuc.js";
import { r as right, l as left } from "./Either.wHNxn7Os.js"; import { r as right, l as left } from "./Either.wHNxn7Os.js";
const ETATS = _etats; const ETATS = _etats;
const requeteRecuperePanier = () => fetch( const requeteRecuperePanier = () => fetch(

View file

@ -1,5 +1,5 @@
import { s as some, v as valFromOption, f as someU, g as everyU, i as equal } from "./dom2.js"; import { g as equal, j as everyU, s as someU, k as some, v as valFromOption } from "./dom2.js";
import { i as is_extension, m as mapWithDefaultU, a as isSome } from "./belt_Option-91f3b350.BKMoZFhU.js"; import { i as is_extension, a as isSome, m as mapWithDefaultU } from "./belt_Option-91f3b350.cBye8bLJ.js";
function internalToOCamlException(e) { function internalToOCamlException(e) {
if (is_extension(e)) { if (is_extension(e)) {
return e; return e;
@ -580,4 +580,4 @@ export {
l, l,
tap as t tap as t
}; };
//# sourceMappingURL=index-0eef19ec.CFsloYN6.js.map //# sourceMappingURL=index-0eef19ec.DoJSf22Z.js.map

View file

@ -603,14 +603,14 @@ export {
optional as c, optional as c,
boolean as d, boolean as d,
enum_ as e, enum_ as e,
url as f, union as f,
union as g, null_ as g,
null_ as h, url as h,
integer as i, integer as i,
omit as j, omit as j,
minValue as k, maxValue as k,
is as l, is as l,
maxValue as m, minValue as m,
number as n, number as n,
object as o, object as o,
parse as p, parse as p,
@ -618,4 +618,4 @@ export {
unknown as u, unknown as u,
value as v value as v
}; };
//# sourceMappingURL=index.DeCaB8sW.js.map //# sourceMappingURL=index.DKC_Jv5v.js.map

View file

@ -1,12 +1,13 @@
import { p as parse } from "./index.DeCaB8sW.js"; import { p as parse } from "./index.DKC_Jv5v.js";
import { N as NOM_CANAL_BOUTON_PANIER, T as TYPES_MESSAGES, a as NOM_CANAL_CONTENU_PANIER } from "./messages3.js"; import { N as NOM_CANAL_BOUTON_PANIER, T as TYPES_MESSAGES, a as NOM_CANAL_CONTENU_PANIER } from "./messages3.js";
import { r as reporteErreur } from "./erreurs.js"; import { r as reporteErreur } from "./erreurs.js";
import { M as MessageMajBoutonPanierSchema, a as MessageMajContenuPanierSchema } from "./messages2.js"; import { M as MessageMajBoutonPanierSchema, a as MessageMajContenuPanierSchema } from "./messages2.js";
import { E as Either } from "./Either.wHNxn7Os.js"; import { E as Either } from "./Either.wHNxn7Os.js";
import "./exports.DT-46nyp.js"; import "./exports.3IcOsN8u.js";
import "./cart.js"; import "./cart.js";
import "./cart2.js"; import "./cart2.js";
import "./adresses.js"; import "./adresses.js";
import "./cart-coupons.js";
import "./couts-livraison.js"; import "./couts-livraison.js";
const emetMessageMajBoutonPanier = (args) => { const emetMessageMajBoutonPanier = (args) => {
const canal = new BroadcastChannel(NOM_CANAL_BOUTON_PANIER); const canal = new BroadcastChannel(NOM_CANAL_BOUTON_PANIER);

View file

@ -1 +1 @@
{"version":3,"file":"messages.js","sources":["../../src/scripts/lib/messages.ts"],"sourcesContent":["import { Either } from \"purify-ts\";\nimport { parse, type ValiError } from \"valibot\";\n\nimport type {\n MessageMajBoutonPanier,\n MessageMajBoutonPanierDonnees,\n MessageMajContenuPanier,\n MessageMajContenuPanierDonnees,\n} from \"./types/messages\";\n\nimport { NOM_CANAL_BOUTON_PANIER, NOM_CANAL_CONTENU_PANIER, TYPES_MESSAGES } from \"../constantes/messages.ts\";\nimport { reporteErreur } from \"./erreurs.ts\";\nimport { MessageMajBoutonPanierSchema, MessageMajContenuPanierSchema } from \"./schemas/messages.ts\";\n\n// Émissions\nexport const emetMessageMajBoutonPanier = (args: MessageMajBoutonPanierDonnees): void => {\n const canal = new BroadcastChannel(NOM_CANAL_BOUTON_PANIER);\n canal.postMessage({\n donnees: {\n quantiteProduits: args.quantiteProduits,\n },\n type: TYPES_MESSAGES.MajBoutonPanier,\n } as MessageMajBoutonPanier);\n canal.close();\n};\n\nexport const emetMessageMajContenuPanier = (args: MessageMajContenuPanierDonnees): void => {\n const canal = new BroadcastChannel(NOM_CANAL_CONTENU_PANIER);\n canal.postMessage({\n donnees: {\n produits: args.produits,\n sousTotalPanier: args.sousTotalPanier,\n totalPanier: args.totalPanier,\n },\n type: TYPES_MESSAGES.MajContenuPanier,\n } as MessageMajContenuPanier);\n canal.close();\n};\n\n// Validations\nexport const valideMessageMajBoutonPanier = (\n evenementMessage: MessageEvent<unknown>,\n): Either<ValiError<typeof MessageMajBoutonPanierSchema>, MessageMajBoutonPanier> =>\n Either\n .of<ValiError<typeof MessageMajBoutonPanierSchema>, MessageMajBoutonPanier>(\n parse(MessageMajBoutonPanierSchema, evenementMessage.data),\n )\n .ifLeft(erreur => reporteErreur(erreur));\n\nexport const valideMessageMajContenuPanier = (\n evenementMessage: MessageEvent<unknown>,\n): Either<ValiError<typeof MessageMajContenuPanierSchema>, MessageMajContenuPanier> =>\n Either\n .of<ValiError<typeof MessageMajContenuPanierSchema>, MessageMajContenuPanier>(\n parse(MessageMajContenuPanierSchema, evenementMessage.data),\n )\n .ifLeft(erreur => reporteErreur(erreur));\n"],"names":[],"mappings":";;;;;;;;;;AAea,MAAA,6BAA6B,CAAC,SAA8C;AACjF,QAAA,QAAQ,IAAI,iBAAiB,uBAAuB;AAC1D,QAAM,YAAY;AAAA,IAChB,SAAS;AAAA,MACP,kBAAkB,KAAK;AAAA,IACzB;AAAA,IACA,MAAM,eAAe;AAAA,EAAA,CACI;AAC3B,QAAM,MAAM;AACd;AAEa,MAAA,8BAA8B,CAAC,SAA+C;AACnF,QAAA,QAAQ,IAAI,iBAAiB,wBAAwB;AAC3D,QAAM,YAAY;AAAA,IAChB,SAAS;AAAA,MACP,UAAU,KAAK;AAAA,MACf,iBAAiB,KAAK;AAAA,MACtB,aAAa,KAAK;AAAA,IACpB;AAAA,IACA,MAAM,eAAe;AAAA,EAAA,CACK;AAC5B,QAAM,MAAM;AACd;AAGa,MAAA,+BAA+B,CAC1C,qBAEA,OACG;AAAA,EACC,MAAM,8BAA8B,iBAAiB,IAAI;AAC3D,EACC,OAAO,CAAA,WAAU,cAAc,MAAM,CAAC;AAE9B,MAAA,gCAAgC,CAC3C,qBAEA,OACG;AAAA,EACC,MAAM,+BAA+B,iBAAiB,IAAI;AAC5D,EACC,OAAO,CAAA,WAAU,cAAc,MAAM,CAAC;"} {"version":3,"file":"messages.js","sources":["../../src/scripts/lib/messages.ts"],"sourcesContent":["import { Either } from \"purify-ts\";\nimport { parse, type ValiError } from \"valibot\";\n\nimport type {\n MessageMajBoutonPanier,\n MessageMajBoutonPanierDonnees,\n MessageMajContenuPanier,\n MessageMajContenuPanierDonnees,\n} from \"./types/messages\";\n\nimport { NOM_CANAL_BOUTON_PANIER, NOM_CANAL_CONTENU_PANIER, TYPES_MESSAGES } from \"../constantes/messages.ts\";\nimport { reporteErreur } from \"./erreurs.ts\";\nimport { MessageMajBoutonPanierSchema, MessageMajContenuPanierSchema } from \"./schemas/messages.ts\";\n\n// Émissions\nexport const emetMessageMajBoutonPanier = (args: MessageMajBoutonPanierDonnees): void => {\n const canal = new BroadcastChannel(NOM_CANAL_BOUTON_PANIER);\n canal.postMessage({\n donnees: {\n quantiteProduits: args.quantiteProduits,\n },\n type: TYPES_MESSAGES.MajBoutonPanier,\n } as MessageMajBoutonPanier);\n canal.close();\n};\n\nexport const emetMessageMajContenuPanier = (args: MessageMajContenuPanierDonnees): void => {\n const canal = new BroadcastChannel(NOM_CANAL_CONTENU_PANIER);\n canal.postMessage({\n donnees: {\n produits: args.produits,\n sousTotalPanier: args.sousTotalPanier,\n totalPanier: args.totalPanier,\n },\n type: TYPES_MESSAGES.MajContenuPanier,\n } as MessageMajContenuPanier);\n canal.close();\n};\n\n// Validations\nexport const valideMessageMajBoutonPanier = (\n evenementMessage: MessageEvent<unknown>,\n): Either<ValiError<typeof MessageMajBoutonPanierSchema>, MessageMajBoutonPanier> =>\n Either\n .of<ValiError<typeof MessageMajBoutonPanierSchema>, MessageMajBoutonPanier>(\n parse(MessageMajBoutonPanierSchema, evenementMessage.data),\n )\n .ifLeft(erreur => reporteErreur(erreur));\n\nexport const valideMessageMajContenuPanier = (\n evenementMessage: MessageEvent<unknown>,\n): Either<ValiError<typeof MessageMajContenuPanierSchema>, MessageMajContenuPanier> =>\n Either\n .of<ValiError<typeof MessageMajContenuPanierSchema>, MessageMajContenuPanier>(\n parse(MessageMajContenuPanierSchema, evenementMessage.data),\n )\n .ifLeft(erreur => reporteErreur(erreur));\n"],"names":[],"mappings":";;;;;;;;;;;AAea,MAAA,6BAA6B,CAAC,SAA8C;AACjF,QAAA,QAAQ,IAAI,iBAAiB,uBAAuB;AAC1D,QAAM,YAAY;AAAA,IAChB,SAAS;AAAA,MACP,kBAAkB,KAAK;AAAA,IACzB;AAAA,IACA,MAAM,eAAe;AAAA,EAAA,CACI;AAC3B,QAAM,MAAM;AACd;AAEa,MAAA,8BAA8B,CAAC,SAA+C;AACnF,QAAA,QAAQ,IAAI,iBAAiB,wBAAwB;AAC3D,QAAM,YAAY;AAAA,IAChB,SAAS;AAAA,MACP,UAAU,KAAK;AAAA,MACf,iBAAiB,KAAK;AAAA,MACtB,aAAa,KAAK;AAAA,IACpB;AAAA,IACA,MAAM,eAAe;AAAA,EAAA,CACK;AAC5B,QAAM,MAAM;AACd;AAGa,MAAA,+BAA+B,CAC1C,qBAEA,OACG;AAAA,EACC,MAAM,8BAA8B,iBAAiB,IAAI;AAC3D,EACC,OAAO,CAAA,WAAU,cAAc,MAAM,CAAC;AAE9B,MAAA,gCAAgC,CAC3C,qBAEA,OACG;AAAA,EACC,MAAM,+BAA+B,iBAAiB,IAAI;AAC5D,EACC,OAAO,CAAA,WAAU,cAAc,MAAM,CAAC;"}

View file

@ -1,8 +1,9 @@
import { e as enum_, o as object, a as pipe, v as value, s as string, n as number, b as array } from "./index.DeCaB8sW.js"; import { e as enum_, o as object, a as pipe, v as value, s as string, n as number, b as array } from "./index.DKC_Jv5v.js";
import { T as TYPES_MESSAGES } from "./messages3.js"; import { T as TYPES_MESSAGES } from "./messages3.js";
import { a as WCStoreCartItemSchema } from "./cart.js"; import { a as WCStoreCartItemSchema } from "./cart.js";
import "./cart2.js"; import "./cart2.js";
import "./adresses.js"; import "./adresses.js";
import "./cart-coupons.js";
import "./couts-livraison.js"; import "./couts-livraison.js";
enum_(TYPES_MESSAGES); enum_(TYPES_MESSAGES);
const MessageMajBoutonPanierDonneesSchema = object({ const MessageMajBoutonPanierDonneesSchema = object({

View file

@ -1 +1 @@
{"version":3,"file":"messages2.js","sources":["../../src/scripts/lib/schemas/messages.ts"],"sourcesContent":["/**\n * Schémas des Messages passés avec BroadcastChannel.\n */\n\nimport * as v from \"valibot\";\n\nimport { TYPES_MESSAGES } from \"../../constantes/messages.ts\";\nimport { WCStoreCartItemSchema } from \"./api/cart.ts\";\n\nexport const TypesMessagesSchema = v.enum(TYPES_MESSAGES);\n\nexport const MessageMajBoutonPanierDonneesSchema = v.object({\n quantiteProduits: v.number(),\n});\n\nexport const MessageMajBoutonPanierSchema = v.object({\n donnees: MessageMajBoutonPanierDonneesSchema,\n type: v.pipe(v.string(), v.value(TYPES_MESSAGES.MajBoutonPanier)),\n});\n\nexport const MessageMajContenuPanierDonneesSchema = v.object({\n produits: v.array(WCStoreCartItemSchema),\n sousTotalPanier: v.number(),\n totalPanier: v.number(),\n});\n\nexport const MessageMajContenuPanierSchema = v.object({\n donnees: MessageMajContenuPanierDonneesSchema,\n type: v.pipe(v.string(), v.value(TYPES_MESSAGES.MajContenuPanier)),\n});\n"],"names":["v.enum","v.object","v.number","v.pipe","v.string","v.value","v.array"],"mappings":";;;;;;AASmCA,MAAO,cAAc;AAE3C,MAAA,sCAAsCC,OAAS;AAAA,EAC1D,kBAAkBC,OAAS;AAC7B,CAAC;AAEY,MAAA,+BAA+BD,OAAS;AAAA,EACnD,SAAS;AAAA,EACT,MAAME,KAAOC,OAAE,GAAUC,MAAQ,eAAe,eAAe,CAAC;AAClE,CAAC;AAEY,MAAA,uCAAuCJ,OAAS;AAAA,EAC3D,UAAUK,MAAQ,qBAAqB;AAAA,EACvC,iBAAiBJ,OAAS;AAAA,EAC1B,aAAaA,OAAS;AACxB,CAAC;AAEY,MAAA,gCAAgCD,OAAS;AAAA,EACpD,SAAS;AAAA,EACT,MAAME,KAAOC,OAAE,GAAUC,MAAQ,eAAe,gBAAgB,CAAC;AACnE,CAAC;"} {"version":3,"file":"messages2.js","sources":["../../src/scripts/lib/schemas/messages.ts"],"sourcesContent":["/**\n * Schémas des Messages passés avec BroadcastChannel.\n */\n\nimport * as v from \"valibot\";\n\nimport { TYPES_MESSAGES } from \"../../constantes/messages.ts\";\nimport { WCStoreCartItemSchema } from \"./api/cart.ts\";\n\nexport const TypesMessagesSchema = v.enum(TYPES_MESSAGES);\n\nexport const MessageMajBoutonPanierDonneesSchema = v.object({\n quantiteProduits: v.number(),\n});\n\nexport const MessageMajBoutonPanierSchema = v.object({\n donnees: MessageMajBoutonPanierDonneesSchema,\n type: v.pipe(v.string(), v.value(TYPES_MESSAGES.MajBoutonPanier)),\n});\n\nexport const MessageMajContenuPanierDonneesSchema = v.object({\n produits: v.array(WCStoreCartItemSchema),\n sousTotalPanier: v.number(),\n totalPanier: v.number(),\n});\n\nexport const MessageMajContenuPanierSchema = v.object({\n donnees: MessageMajContenuPanierDonneesSchema,\n type: v.pipe(v.string(), v.value(TYPES_MESSAGES.MajContenuPanier)),\n});\n"],"names":["v.enum","v.object","v.number","v.pipe","v.string","v.value","v.array"],"mappings":";;;;;;;AASmCA,MAAO,cAAc;AAE3C,MAAA,sCAAsCC,OAAS;AAAA,EAC1D,kBAAkBC,OAAS;AAC7B,CAAC;AAEY,MAAA,+BAA+BD,OAAS;AAAA,EACnD,SAAS;AAAA,EACT,MAAME,KAAOC,OAAE,GAAUC,MAAQ,eAAe,eAAe,CAAC;AAClE,CAAC;AAEY,MAAA,uCAAuCJ,OAAS;AAAA,EAC3D,UAAUK,MAAQ,qBAAqB;AAAA,EACvC,iBAAiBJ,OAAS;AAAA,EAC1B,aAAaA,OAAS;AACxB,CAAC;AAEY,MAAA,gCAAgCD,OAAS;AAAA,EACpD,SAAS;AAAA,EACT,MAAME,KAAOC,OAAE,GAAUC,MAAQ,eAAe,gBAAgB,CAAC;AACnE,CAAC;"}

View file

@ -1,162 +1,2 @@
import { o as object, s as string, b as array, a as pipe, i as integer, n as number, e as enum_, u as unknown, g as union, c as optional, h as null_, d as boolean } from "./index.DeCaB8sW.js";
import { T as TAX_STATUSES, O as ORDER_STATUSES } from "./orders2.js";
import { W as WCStoreShippingAddressSchema, a as WCStoreBillingAddressSchema } from "./adresses.js";
const WCV3OrdersCouponLineMetaDataSchema = object({
id: pipe(number(), integer()),
key: string(),
value: unknown()
});
const WCV3OrdersCouponLineSchema = object({
code: string(),
discount: string(),
discount_tax: string(),
discount_type: string(),
free_shipping: boolean(),
id: pipe(number(), integer()),
meta_data: array(WCV3OrdersCouponLineMetaDataSchema),
nominal_amount: number()
});
const WCV3OrdersFeeLineMetaDataSchema = object({
id: pipe(number(), integer()),
key: string(),
value: unknown()
});
const WCV3OrdersFeeLineTaxSchema = object({
id: pipe(number(), integer()),
subtotal: string(),
total: string()
});
const WCV3OrdersFeeLineSchema = object({
id: pipe(number(), integer()),
meta_data: array(WCV3OrdersFeeLineMetaDataSchema),
name: string(),
tax_class: string(),
tax_status: enum_(TAX_STATUSES),
taxes: array(WCV3OrdersFeeLineTaxSchema),
total: string(),
total_tax: string()
});
const WCV3OrdersShippingLineMetaDataSchema = object({
id: pipe(number(), integer()),
key: string(),
value: unknown()
});
const WCV3OrdersShippingLineTaxSchema = object({
id: pipe(number(), integer()),
total: string()
});
const WCV3OrdersShippingLineSchema = object({
id: optional(pipe(number(), integer())),
meta_data: optional(array(WCV3OrdersShippingLineMetaDataSchema)),
method_id: optional(string()),
method_title: optional(string()),
taxes: optional(array(WCV3OrdersShippingLineTaxSchema)),
total: optional(string()),
total_tax: optional(string())
});
const WCV3OrdersLineItemImageSchema = object({
id: union([string(), pipe(number(), integer())]),
src: string()
});
const WCV3OrdersLineItemMetaDataSchema = object({
display_key: string(),
display_value: string(),
id: pipe(number(), integer()),
key: string(),
value: unknown()
});
const WCV3OrdersLineItemTaxSchema = object({
id: pipe(number(), integer()),
subtotal: string(),
total: string()
});
const WCV3OrdersLineItemSchema = object({
id: optional(pipe(number(), integer())),
image: optional(WCV3OrdersLineItemImageSchema),
meta_data: optional(array(WCV3OrdersLineItemMetaDataSchema)),
name: optional(string()),
parent_name: optional(union([string(), null_()])),
price: optional(number()),
product_id: optional(pipe(number(), integer())),
quantity: optional(pipe(number(), integer())),
sku: optional(string()),
subtotal: optional(string()),
subtotal_tax: optional(string()),
tax_class: optional(string()),
taxes: optional(array(WCV3OrdersLineItemTaxSchema)),
total: optional(string()),
total_tax: optional(string()),
variation_id: optional(pipe(number(), integer()))
});
const WCV3OrdersArgsSchema = object({
billing: optional(WCStoreBillingAddressSchema),
coupon_lines: optional(array(WCV3OrdersCouponLineSchema)),
currency: optional(string()),
customer_id: optional(pipe(number(), integer())),
customer_note: optional(string()),
fee_lines: optional(array(WCV3OrdersFeeLineSchema)),
line_items: optional(array(WCV3OrdersLineItemSchema)),
manual_update: optional(boolean()),
parent_id: optional(pipe(number(), integer())),
payment_method: optional(string()),
payment_method_title: optional(string()),
set_paid: optional(boolean()),
shipping: optional(WCStoreShippingAddressSchema),
shipping_lines: optional(array(WCV3OrdersShippingLineSchema)),
status: optional(enum_(ORDER_STATUSES)),
transaction_id: optional(string())
});
const WCV3OrderSchema = object({
billing: WCStoreBillingAddressSchema,
cart_hash: string(),
cart_tax: string(),
coupon_lines: array(WCV3OrdersCouponLineSchema),
created_via: string(),
currency: string(),
currency_symbol: string(),
customer_id: pipe(number(), integer()),
customer_ip_address: string(),
customer_note: string(),
customer_user_agent: string(),
date_completed: union([string(), null_()]),
date_completed_gmt: union([string(), null_()]),
// Date
date_created: string(),
date_created_gmt: string(),
date_modified: string(),
date_modified_gmt: string(),
date_paid: union([string(), null_()]),
date_paid_gmt: union([string(), null_()]),
discount_tax: string(),
discount_total: string(),
fee_lines: array(WCV3OrdersFeeLineSchema),
id: pipe(number(), integer()),
is_editable: boolean(),
line_items: array(WCV3OrdersLineItemSchema),
meta_data: unknown(),
needs_payment: boolean(),
needs_processing: boolean(),
number: string(),
order_key: string(),
parent_id: pipe(number(), integer()),
payment_method: string(),
payment_method_title: string(),
payment_url: string(),
prices_include_tax: boolean(),
refunds: array(unknown()),
shipping: WCStoreShippingAddressSchema,
shipping_lines: array(WCV3OrdersShippingLineSchema),
shipping_tax: string(),
shipping_total: string(),
status: enum_(ORDER_STATUSES),
tax_lines: array(unknown()),
total: string(),
total_tax: string(),
transaction_id: string(),
version: string()
});
export {
WCV3OrdersArgsSchema as W,
WCV3OrderSchema as a
};
//# sourceMappingURL=orders.js.map //# sourceMappingURL=orders.js.map

File diff suppressed because one or more lines are too long

View file

@ -1,20 +1,162 @@
const ORDER_STATUSES = { import { o as object, a as pipe, b as array, s as string, e as enum_, f as union, c as optional, d as boolean, u as unknown, i as integer, n as number, g as null_ } from "./index.DKC_Jv5v.js";
AUTO_DRAFT: "auto-draft", import { T as TAX_STATUSES, O as ORDER_STATUSES } from "./orders3.js";
CANCELLED: "cancelled", import { W as WCStoreBillingAddressSchema, a as WCStoreShippingAddressSchema } from "./adresses.js";
CHECKOUT_DRAFT: "checkout-draft", const WCV3OrdersCouponLineMetaDataSchema = object({
COMPLETED: "completed", id: pipe(number(), integer()),
FAILED: "failed", key: string(),
ON_HOLD: "on-hold", value: unknown()
PENDING: "pending", });
PROCESSING: "processing", const WCV3OrdersCouponLineSchema = object({
REFUNDED: "refuneded" code: string(),
}; discount: string(),
const TAX_STATUSES = { discount_tax: string(),
NONE: "none", discount_type: string(),
TAXABLE: "taxable" free_shipping: boolean(),
}; id: pipe(number(), integer()),
meta_data: array(WCV3OrdersCouponLineMetaDataSchema),
nominal_amount: number()
});
const WCV3OrdersFeeLineMetaDataSchema = object({
id: pipe(number(), integer()),
key: string(),
value: unknown()
});
const WCV3OrdersFeeLineTaxSchema = object({
id: pipe(number(), integer()),
subtotal: string(),
total: string()
});
const WCV3OrdersFeeLineSchema = object({
id: pipe(number(), integer()),
meta_data: array(WCV3OrdersFeeLineMetaDataSchema),
name: string(),
tax_class: string(),
tax_status: enum_(TAX_STATUSES),
taxes: array(WCV3OrdersFeeLineTaxSchema),
total: string(),
total_tax: string()
});
const WCV3OrdersShippingLineMetaDataSchema = object({
id: pipe(number(), integer()),
key: string(),
value: unknown()
});
const WCV3OrdersShippingLineTaxSchema = object({
id: pipe(number(), integer()),
total: string()
});
const WCV3OrdersShippingLineSchema = object({
id: optional(pipe(number(), integer())),
meta_data: optional(array(WCV3OrdersShippingLineMetaDataSchema)),
method_id: optional(string()),
method_title: optional(string()),
taxes: optional(array(WCV3OrdersShippingLineTaxSchema)),
total: optional(string()),
total_tax: optional(string())
});
const WCV3OrdersLineItemImageSchema = object({
id: union([string(), pipe(number(), integer())]),
src: string()
});
const WCV3OrdersLineItemMetaDataSchema = object({
display_key: string(),
display_value: string(),
id: pipe(number(), integer()),
key: string(),
value: unknown()
});
const WCV3OrdersLineItemTaxSchema = object({
id: pipe(number(), integer()),
subtotal: string(),
total: string()
});
const WCV3OrdersLineItemSchema = object({
id: optional(pipe(number(), integer())),
image: optional(WCV3OrdersLineItemImageSchema),
meta_data: optional(array(WCV3OrdersLineItemMetaDataSchema)),
name: optional(string()),
parent_name: optional(union([string(), null_()])),
price: optional(number()),
product_id: optional(pipe(number(), integer())),
quantity: optional(pipe(number(), integer())),
sku: optional(string()),
subtotal: optional(string()),
subtotal_tax: optional(string()),
tax_class: optional(string()),
taxes: optional(array(WCV3OrdersLineItemTaxSchema)),
total: optional(string()),
total_tax: optional(string()),
variation_id: optional(pipe(number(), integer()))
});
const WCV3OrdersArgsSchema = object({
billing: optional(WCStoreBillingAddressSchema),
coupon_lines: optional(array(WCV3OrdersCouponLineSchema)),
currency: optional(string()),
customer_id: optional(pipe(number(), integer())),
customer_note: optional(string()),
fee_lines: optional(array(WCV3OrdersFeeLineSchema)),
line_items: optional(array(WCV3OrdersLineItemSchema)),
manual_update: optional(boolean()),
parent_id: optional(pipe(number(), integer())),
payment_method: optional(string()),
payment_method_title: optional(string()),
set_paid: optional(boolean()),
shipping: optional(WCStoreShippingAddressSchema),
shipping_lines: optional(array(WCV3OrdersShippingLineSchema)),
status: optional(enum_(ORDER_STATUSES)),
transaction_id: optional(string())
});
const WCV3OrderSchema = object({
billing: WCStoreBillingAddressSchema,
cart_hash: string(),
cart_tax: string(),
coupon_lines: array(WCV3OrdersCouponLineSchema),
created_via: string(),
currency: string(),
currency_symbol: string(),
customer_id: pipe(number(), integer()),
customer_ip_address: string(),
customer_note: string(),
customer_user_agent: string(),
date_completed: union([string(), null_()]),
date_completed_gmt: union([string(), null_()]),
// Date
date_created: string(),
date_created_gmt: string(),
date_modified: string(),
date_modified_gmt: string(),
date_paid: union([string(), null_()]),
date_paid_gmt: union([string(), null_()]),
discount_tax: string(),
discount_total: string(),
fee_lines: array(WCV3OrdersFeeLineSchema),
id: pipe(number(), integer()),
is_editable: boolean(),
line_items: array(WCV3OrdersLineItemSchema),
meta_data: unknown(),
needs_payment: boolean(),
needs_processing: boolean(),
number: string(),
order_key: string(),
parent_id: pipe(number(), integer()),
payment_method: string(),
payment_method_title: string(),
payment_url: string(),
prices_include_tax: boolean(),
refunds: array(unknown()),
shipping: WCStoreShippingAddressSchema,
shipping_lines: array(WCV3OrdersShippingLineSchema),
shipping_tax: string(),
shipping_total: string(),
status: enum_(ORDER_STATUSES),
tax_lines: array(unknown()),
total: string(),
total_tax: string(),
transaction_id: string(),
version: string()
});
export { export {
ORDER_STATUSES as O, WCV3OrdersArgsSchema as W,
TAX_STATUSES as T WCV3OrderSchema as a
}; };
//# sourceMappingURL=orders2.js.map //# sourceMappingURL=orders2.js.map

File diff suppressed because one or more lines are too long

View file

@ -1,2 +1,20 @@
const ORDER_STATUSES = {
AUTO_DRAFT: "auto-draft",
CANCELLED: "cancelled",
CHECKOUT_DRAFT: "checkout-draft",
COMPLETED: "completed",
FAILED: "failed",
ON_HOLD: "on-hold",
PENDING: "pending",
PROCESSING: "processing",
REFUNDED: "refuneded"
};
const TAX_STATUSES = {
NONE: "none",
TAXABLE: "taxable"
};
export {
ORDER_STATUSES as O,
TAX_STATUSES as T
};
//# sourceMappingURL=orders3.js.map //# sourceMappingURL=orders3.js.map

View file

@ -1 +1 @@
{"version":3,"file":"orders3.js","sources":[],"sourcesContent":[],"names":[],"mappings":""} {"version":3,"file":"orders3.js","sources":["../../src/scripts/constantes/orders.ts"],"sourcesContent":["export const ORDER_STATUSES = {\n AUTO_DRAFT: \"auto-draft\",\n CANCELLED: \"cancelled\",\n CHECKOUT_DRAFT: \"checkout-draft\",\n COMPLETED: \"completed\",\n FAILED: \"failed\",\n ON_HOLD: \"on-hold\",\n PENDING: \"pending\",\n PROCESSING: \"processing\",\n REFUNDED: \"refuneded\",\n} as const;\n\nexport const TAX_STATUSES = {\n NONE: \"none\",\n TAXABLE: \"taxable\",\n};\n"],"names":[],"mappings":"AAAO,MAAM,iBAAiB;AAAA,EAC5B,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,gBAAgB;AAAA,EAChB,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,UAAU;AACZ;AAEO,MAAM,eAAe;AAAA,EAC1B,MAAM;AAAA,EACN,SAAS;AACX;"}

View file

@ -1,5 +1,5 @@
import { o as object, c as optional, e as enum_, s as string, b as array, a as pipe, m as maxValue, k as minValue, n as number, i as integer, d as boolean, u as unknown, g as union, h as null_, f as url } from "./index.DeCaB8sW.js"; import { o as object, c as optional, e as enum_, a as pipe, m as minValue, n as number, k as maxValue, b as array, s as string, d as boolean, f as union, u as unknown, i as integer, g as null_, h as url } from "./index.DKC_Jv5v.js";
import { P as PRODUCT_TYPES, T as TAG_OPERATORS, S as STOCK_STATUSES, a as PRODUCT_STATUTES, R as RATINGS, O as ORDERBY_VALUES, b as ORDER_VALUES, D as DATE_COLUMN_VALUES, c as PRODUCTS_CONTEXTES, C as CATEGORY_OPERATORS, d as CATALOG_VISIBILITIES, A as ATTRIBUTES_RELATIONS, e as TAX_STATUTES, B as BACKORDERS_SETTINGS } from "./products2.js"; import { A as ATTRIBUTES_RELATIONS, C as CATALOG_VISIBILITIES, a as CATEGORY_OPERATORS, P as PRODUCTS_CONTEXTES, D as DATE_COLUMN_VALUES, O as ORDER_VALUES, b as ORDERBY_VALUES, R as RATINGS, c as PRODUCT_STATUTES, S as STOCK_STATUSES, T as TAG_OPERATORS, d as PRODUCT_TYPES, B as BACKORDERS_SETTINGS, e as TAX_STATUTES } from "./products2.js";
const WCV3ProductsArgsSchema = object({ const WCV3ProductsArgsSchema = object({
// Date ISO8601 // Date ISO8601
after: optional(string()), after: optional(string()),

View file

@ -86,17 +86,17 @@ const BACKORDERS_SETTINGS = {
export { export {
ATTRIBUTES_RELATIONS as A, ATTRIBUTES_RELATIONS as A,
BACKORDERS_SETTINGS as B, BACKORDERS_SETTINGS as B,
CATEGORY_OPERATORS as C, CATALOG_VISIBILITIES as C,
DATE_COLUMN_VALUES as D, DATE_COLUMN_VALUES as D,
ORDERBY_VALUES as O, ORDER_VALUES as O,
PRODUCT_TYPES as P, PRODUCTS_CONTEXTES as P,
RATINGS as R, RATINGS as R,
STOCK_STATUSES as S, STOCK_STATUSES as S,
TAG_OPERATORS as T, TAG_OPERATORS as T,
PRODUCT_STATUTES as a, CATEGORY_OPERATORS as a,
ORDER_VALUES as b, ORDERBY_VALUES as b,
PRODUCTS_CONTEXTES as c, PRODUCT_STATUTES as c,
CATALOG_VISIBILITIES as d, PRODUCT_TYPES as d,
TAX_STATUTES as e TAX_STATUTES as e
}; };
//# sourceMappingURL=products2.js.map //# sourceMappingURL=products2.js.map

View file

@ -1,5 +1,5 @@
import { o as object, c as optional, e as enum_, s as string, b as array, a as pipe, m as maxValue, k as minValue, n as number, i as integer, d as boolean, u as unknown, g as union, h as null_ } from "./index.DeCaB8sW.js"; import { o as object, c as optional, e as enum_, a as pipe, m as minValue, n as number, k as maxValue, b as array, s as string, u as unknown, d as boolean, f as union, i as integer, g as null_ } from "./index.DKC_Jv5v.js";
import { P as PRODUCT_TYPES, T as TAG_OPERATORS, S as STOCK_STATUSES, R as RATINGS, O as ORDERBY_VALUES, b as ORDER_VALUES, D as DATE_COLUMN_VALUES, c as PRODUCTS_CONTEXTES, C as CATEGORY_OPERATORS, d as CATALOG_VISIBILITIES, A as ATTRIBUTES_RELATIONS } from "./products2.js"; import { A as ATTRIBUTES_RELATIONS, C as CATALOG_VISIBILITIES, a as CATEGORY_OPERATORS, P as PRODUCTS_CONTEXTES, D as DATE_COLUMN_VALUES, O as ORDER_VALUES, b as ORDERBY_VALUES, R as RATINGS, S as STOCK_STATUSES, T as TAG_OPERATORS, d as PRODUCT_TYPES } from "./products2.js";
object({ object({
// Date ISO8601 // Date ISO8601
after: optional(optional(string())), after: optional(optional(string())),

View file

@ -1,10 +1,10 @@
import { z, N } from "./index.CeK6pfoJ.js"; import { z, N } from "./index.CeK6pfoJ.js";
import { p as parse } from "./index.DeCaB8sW.js"; import { p as parse } from "./index.DKC_Jv5v.js";
import { E as ENTETE_WC_NONCE } from "./api.js"; import { E as ENTETE_WC_NONCE } from "./api.js";
import { b as leveBadRequestError, c as leveUnauthorizedError, d as leveNotFoundError, E as ErreurInconnue, a as leveErreur } from "./erreurs.js"; import { b as leveBadRequestError, c as leveUnauthorizedError, d as leveNotFoundError, E as ErreurInconnue, a as leveErreur } from "./erreurs.js";
import { e as estWCError } from "./erreurs2.js"; import { e as estWCError } from "./erreurs2.js";
import { p as pipe } from "./pipe.XPB0wEfw.js"; import { p as pipe } from "./pipe.XPB0wEfw.js";
import "./exports.DT-46nyp.js"; import "./exports.3IcOsN8u.js";
const getBackendAvecParametresUrl = (args) => fetch( const getBackendAvecParametresUrl = (args) => fetch(
`${args.route}?${args.searchParams}`, `${args.route}?${args.searchParams}`,
{ {

View file

@ -5,13 +5,14 @@ import { v as valideMessageMajBoutonPanier } from "./messages.js";
import { r as recupereElementDocumentEither } from "./utils.js"; import { r as recupereElementDocumentEither } from "./utils.js";
import { p as pipe } from "./pipe.XPB0wEfw.js"; import { p as pipe } from "./pipe.XPB0wEfw.js";
import "./erreurs.js"; import "./erreurs.js";
import "./exports.DT-46nyp.js"; import "./exports.3IcOsN8u.js";
import "./Either.wHNxn7Os.js"; import "./Either.wHNxn7Os.js";
import "./index.DeCaB8sW.js"; import "./index.DKC_Jv5v.js";
import "./messages2.js"; import "./messages2.js";
import "./cart.js"; import "./cart.js";
import "./cart2.js"; import "./cart2.js";
import "./adresses.js"; import "./adresses.js";
import "./cart-coupons.js";
import "./couts-livraison.js"; import "./couts-livraison.js";
const initialiseBoutonPanier = () => { const initialiseBoutonPanier = () => {
const BOUTON_PANIER = pipe( const BOUTON_PANIER = pipe(

View file

@ -1 +1 @@
{"version":3,"file":"scripts-bouton-panier.js","sources":["../../src/scripts/scripts-bouton-panier.ts"],"sourcesContent":["/**\n * Scripts pour la mise à jour trans-fenêtres/trans-onglets du Bouton du Panier.\n */\n\nimport { pipe } from \"@mobily/ts-belt\";\n\nimport type { MessageMajBoutonPanier } from \"./lib/types/messages\";\n\nimport { ATTRIBUT_CONTIENT_ARTICLES, SELECTEUR_BOUTON_PANIER } from \"./constantes/dom.ts\";\nimport { NOM_CANAL_BOUTON_PANIER } from \"./constantes/messages.ts\";\nimport { recupereElementOuLeve } from \"./lib/dom.ts\";\nimport { valideMessageMajBoutonPanier } from \"./lib/messages.ts\";\nimport { recupereElementDocumentEither } from \"./lib/utils.ts\";\n\nconst initialiseBoutonPanier = (): void => {\n /** Le « Bouton » vers le Panier dont le texte est un indicateur du nombre de Produits dedans. */\n const BOUTON_PANIER: HTMLAnchorElement = pipe(\n recupereElementDocumentEither<HTMLAnchorElement>(SELECTEUR_BOUTON_PANIER),\n recupereElementOuLeve,\n );\n const CANAL_BOUTON_PANIER: BroadcastChannel = new BroadcastChannel(NOM_CANAL_BOUTON_PANIER);\n\n CANAL_BOUTON_PANIER.onmessage = (evenementMessage: MessageEvent<unknown>): void => {\n valideMessageMajBoutonPanier(evenementMessage)\n // Met à jour le Bouton du Panier\n .ifRight((message: MessageMajBoutonPanier) => {\n BOUTON_PANIER.textContent = `cart (${String(message.donnees.quantiteProduits)})`;\n BOUTON_PANIER.setAttribute(ATTRIBUT_CONTIENT_ARTICLES, String(message.donnees.quantiteProduits > 0));\n });\n };\n\n // Ferme le BroadcastChannel à la fermeture de la page\n document.addEventListener(\"visibilitychange\", (): void => {\n CANAL_BOUTON_PANIER.close();\n });\n};\n\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n initialiseBoutonPanier();\n});\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAcA,MAAM,yBAAyB,MAAY;AAEzC,QAAM,gBAAmC;AAAA,IACvC,8BAAiD,uBAAuB;AAAA,IACxE;AAAA,EACF;AACM,QAAA,sBAAwC,IAAI,iBAAiB,uBAAuB;AAEtE,sBAAA,YAAY,CAAC,qBAAkD;AACjF,iCAA6B,gBAAgB,EAE1C,QAAQ,CAAC,YAAoC;AAC5C,oBAAc,cAAc,SAAS,OAAO,QAAQ,QAAQ,gBAAgB,CAAC;AAC7E,oBAAc,aAAa,4BAA4B,OAAO,QAAQ,QAAQ,mBAAmB,CAAC,CAAC;AAAA,IAAA,CACpG;AAAA,EACL;AAGS,WAAA,iBAAiB,oBAAoB,MAAY;AACxD,wBAAoB,MAAM;AAAA,EAAA,CAC3B;AACH;AAEA,SAAS,iBAAiB,oBAAoB,MAAM;AAC3B,yBAAA;AACzB,CAAC;"} {"version":3,"file":"scripts-bouton-panier.js","sources":["../../src/scripts/scripts-bouton-panier.ts"],"sourcesContent":["/**\n * Scripts pour la mise à jour trans-fenêtres/trans-onglets du Bouton du Panier.\n */\n\nimport { pipe } from \"@mobily/ts-belt\";\n\nimport type { MessageMajBoutonPanier } from \"./lib/types/messages\";\n\nimport { ATTRIBUT_CONTIENT_ARTICLES, SELECTEUR_BOUTON_PANIER } from \"./constantes/dom.ts\";\nimport { NOM_CANAL_BOUTON_PANIER } from \"./constantes/messages.ts\";\nimport { recupereElementOuLeve } from \"./lib/dom.ts\";\nimport { valideMessageMajBoutonPanier } from \"./lib/messages.ts\";\nimport { recupereElementDocumentEither } from \"./lib/utils.ts\";\n\nconst initialiseBoutonPanier = (): void => {\n /** Le « Bouton » vers le Panier dont le texte est un indicateur du nombre de Produits dedans. */\n const BOUTON_PANIER: HTMLAnchorElement = pipe(\n recupereElementDocumentEither<HTMLAnchorElement>(SELECTEUR_BOUTON_PANIER),\n recupereElementOuLeve,\n );\n const CANAL_BOUTON_PANIER: BroadcastChannel = new BroadcastChannel(NOM_CANAL_BOUTON_PANIER);\n\n CANAL_BOUTON_PANIER.onmessage = (evenementMessage: MessageEvent<unknown>): void => {\n valideMessageMajBoutonPanier(evenementMessage)\n // Met à jour le Bouton du Panier\n .ifRight((message: MessageMajBoutonPanier) => {\n BOUTON_PANIER.textContent = `cart (${String(message.donnees.quantiteProduits)})`;\n BOUTON_PANIER.setAttribute(ATTRIBUT_CONTIENT_ARTICLES, String(message.donnees.quantiteProduits > 0));\n });\n };\n\n // Ferme le BroadcastChannel à la fermeture de la page\n document.addEventListener(\"visibilitychange\", (): void => {\n CANAL_BOUTON_PANIER.close();\n });\n};\n\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n initialiseBoutonPanier();\n});\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAcA,MAAM,yBAAyB,MAAY;AAEzC,QAAM,gBAAmC;AAAA,IACvC,8BAAiD,uBAAuB;AAAA,IACxE;AAAA,EACF;AACM,QAAA,sBAAwC,IAAI,iBAAiB,uBAAuB;AAEtE,sBAAA,YAAY,CAAC,qBAAkD;AACjF,iCAA6B,gBAAgB,EAE1C,QAAQ,CAAC,YAAoC;AAC5C,oBAAc,cAAc,SAAS,OAAO,QAAQ,QAAQ,gBAAgB,CAAC;AAC7E,oBAAc,aAAa,4BAA4B,OAAO,QAAQ,QAAQ,mBAAmB,CAAC,CAAC;AAAA,IAAA,CACpG;AAAA,EACL;AAGS,WAAA,iBAAiB,oBAAoB,MAAY;AACxD,wBAAoB,MAAM;AAAA,EAAA,CAC3B;AACH;AAEA,SAAS,iBAAiB,oBAAoB,MAAM;AAC3B,yBAAA;AACzB,CAAC;"}

View file

@ -3,7 +3,7 @@ import { a as SELECTEUR_MENU_CATEGORIES_PRODUITS, b as SELECTEUR_ENTREE_MENU_CAT
import { a as recupereElementDansDocumentOuLeve, b as recupereElementsDansDocumentOuLeve } from "./utils.js"; import { a as recupereElementDansDocumentOuLeve, b as recupereElementsDansDocumentOuLeve } from "./utils.js";
import { R as Ra } from "./dom2.js"; import { R as Ra } from "./dom2.js";
import "./erreurs.js"; import "./erreurs.js";
import "./exports.DT-46nyp.js"; import "./exports.3IcOsN8u.js";
import "./pipe.XPB0wEfw.js"; import "./pipe.XPB0wEfw.js";
import "./Either.wHNxn7Os.js"; import "./Either.wHNxn7Os.js";
document.addEventListener("DOMContentLoaded", () => { document.addEventListener("DOMContentLoaded", () => {

View file

@ -5,9 +5,9 @@ import { Z as SELECTEUR_BOUTON_MENU_MOBILE, _ as SELECTEUR_MENU_MOBILE, $ as ATT
import { a as recupereElementDansDocumentOuLeve } from "./utils.js"; import { a as recupereElementDansDocumentOuLeve } from "./utils.js";
import "./dom2.js"; import "./dom2.js";
import "./erreurs.js"; import "./erreurs.js";
import "./exports.DT-46nyp.js"; import "./exports.3IcOsN8u.js";
import "./Either.wHNxn7Os.js";
import "./pipe.XPB0wEfw.js"; import "./pipe.XPB0wEfw.js";
import "./Either.wHNxn7Os.js";
const not = { const not = {
inert: ":not([inert]):not([inert] *)", inert: ":not([inert]):not([inert] *)",
negTabIndex: ':not([tabindex^="-"])', negTabIndex: ':not([tabindex^="-"])',

View file

@ -1,10 +1,10 @@
import { a0 as SELECTEUR_CONTENEUR_STORYTELLING_A_PROPOS, a1 as SELECTEUR_EPINGLE, a2 as SELECTEUR_BOITE_TEXTE, a3 as ATTRIBUT_ID_ENSEMBLE_EPINGLE_BOITE, a4 as ATTRIBUT_ENSEMBLE_EPINGLE_BOITE_ACTIF, a5 as CLASS_BOUTON_FERMETURE_BOITE_TEXTE, a6 as CLASS_EPINGLE } from "./dom.js"; import { a0 as ATTRIBUT_ID_ENSEMBLE_EPINGLE_BOITE, a1 as ATTRIBUT_ENSEMBLE_EPINGLE_BOITE_ACTIF, a2 as CLASS_BOUTON_FERMETURE_BOITE_TEXTE, a3 as CLASS_EPINGLE, a4 as SELECTEUR_CONTENEUR_STORYTELLING_A_PROPOS, a5 as SELECTEUR_EPINGLE, a6 as SELECTEUR_BOITE_TEXTE } from "./dom.js";
import { a as recupereElementDansDocumentOuLeve, b as recupereElementsDansDocumentOuLeve } from "./utils.js"; import { a as recupereElementDansDocumentOuLeve, b as recupereElementsDansDocumentOuLeve } from "./utils.js";
import { k as reduceU, q as concat, v as valFromOption, s as some, i as equal, t as nullable_to_opt, R as Ra } from "./dom2.js"; import { k as some, q as reduceU, w as nullable_to_opt, v as valFromOption, g as equal, x as concat, R as Ra } from "./dom2.js";
import { p as pipe } from "./pipe.XPB0wEfw.js"; import { p as pipe } from "./pipe.XPB0wEfw.js";
import { _ as _1, i as is_extension, c as create, f as flatMapU, m as mapWithDefaultU, a as isSome, b as isNone, g as getWithDefault$1, d as getExn, e as mapU, h as flatMap$1 } from "./belt_Option-91f3b350.BKMoZFhU.js"; import { _ as _1, i as is_extension, c as create, g as getExn, b as getWithDefault$1, d as isNone, a as isSome, f as flatMap$1, e as mapU, h as flatMapU, m as mapWithDefaultU } from "./belt_Option-91f3b350.cBye8bLJ.js";
import "./erreurs.js"; import "./erreurs.js";
import "./exports.DT-46nyp.js"; import "./exports.3IcOsN8u.js";
import "./Either.wHNxn7Os.js"; import "./Either.wHNxn7Os.js";
var t = create("Promise.JsError"); var t = create("Promise.JsError");
function $$catch(r, s) { function $$catch(r, s) {

View file

@ -3,9 +3,9 @@ import { e as estEntreDeuxNombres } from "./nombres.js";
import { a as recupereElementDansDocumentOuLeve, b as recupereElementsDansDocumentOuLeve } from "./utils.js"; import { a as recupereElementDansDocumentOuLeve, b as recupereElementsDansDocumentOuLeve } from "./utils.js";
import "./dom2.js"; import "./dom2.js";
import "./erreurs.js"; import "./erreurs.js";
import "./exports.DT-46nyp.js"; import "./exports.3IcOsN8u.js";
import "./Either.wHNxn7Os.js";
import "./pipe.XPB0wEfw.js"; import "./pipe.XPB0wEfw.js";
import "./Either.wHNxn7Os.js";
const initialiseScrollStorytelling = () => { const initialiseScrollStorytelling = () => {
const STORYTELLING = recupereElementDansDocumentOuLeve(SELECTEUR_CONTENEUR_STORYTELLING); const STORYTELLING = recupereElementDansDocumentOuLeve(SELECTEUR_CONTENEUR_STORYTELLING);
const CONTENEUR_STORYTELLING = recupereElementDansDocumentOuLeve(".storytelling__conteneur"); const CONTENEUR_STORYTELLING = recupereElementDansDocumentOuLeve(".storytelling__conteneur");

View file

@ -1,21 +1,21 @@
import { z, N } from "./index.CeK6pfoJ.js"; import { z, N } from "./index.CeK6pfoJ.js";
import { p as parse } from "./index.DeCaB8sW.js"; import { p as parse } from "./index.DKC_Jv5v.js";
import { R as ROUTE_API_NOUVELLE_PRODUCTS } from "./api.js"; import { R as ROUTE_API_NOUVELLE_PRODUCTS } from "./api.js";
import { g as SELECTEUR_GRILLE_PRODUITS, h as SELECTEUR_BOUTON_PLUS_PRODUITS, i as ATTRIBUT_ID_CATEGORIE_PRODUITS, j as ATTRIBUT_PAGE, k as ATTRIBUT_HIDDEN } from "./dom.js"; import { g as SELECTEUR_BOUTON_PLUS_PRODUITS, h as SELECTEUR_GRILLE_PRODUITS, i as ATTRIBUT_ID_CATEGORIE_PRODUITS, j as ATTRIBUT_PAGE, k as ATTRIBUT_HIDDEN } from "./dom.js";
import { h as html } from "./dom2.js"; import { h as html } from "./dom2.js";
import { l as leveServerError } from "./erreurs.js"; import { l as leveServerError } from "./erreurs.js";
import { e as estReponse500 } from "./gardes.js"; import { e as estReponse500 } from "./gardes.js";
import { g as getBackendAvecParametresUrl, t as traiteReponseBackendWCSelonCodesHTTP } from "./reseau.js"; import { g as getBackendAvecParametresUrl, t as traiteReponseBackendWCSelonCodesHTTP } from "./reseau.js";
import { W as WCV3ProductsArgsSchema, a as WCV3ProductsSchema } from "./products.js"; import { W as WCV3ProductsArgsSchema, a as WCV3ProductsSchema } from "./products.js";
import { a as recupereElementDansDocumentOuLeve, r as recupereElementDocumentEither } from "./utils.js"; import { a as recupereElementDansDocumentOuLeve, r as recupereElementDocumentEither } from "./utils.js";
import { E as EitherAsync } from "./MaybeAsync.Ba-OfjWy.js"; import { E as EitherAsync } from "./MaybeAsync.AE1jnxuc.js";
import { p as pipe } from "./pipe.XPB0wEfw.js"; import { p as pipe } from "./pipe.XPB0wEfw.js";
import { t as tap } from "./index-0eef19ec.CFsloYN6.js"; import { t as tap } from "./index-0eef19ec.DoJSf22Z.js";
import { E as Either } from "./Either.wHNxn7Os.js"; import { E as Either } from "./Either.wHNxn7Os.js";
import "./exports.DT-46nyp.js"; import "./exports.3IcOsN8u.js";
import "./erreurs2.js"; import "./erreurs2.js";
import "./products2.js"; import "./products2.js";
import "./belt_Option-91f3b350.BKMoZFhU.js"; import "./belt_Option-91f3b350.cBye8bLJ.js";
const ETATS_PAGE = _etats; const ETATS_PAGE = _etats;
const GRILLE_PRODUITS = recupereElementDansDocumentOuLeve(SELECTEUR_GRILLE_PRODUITS); const GRILLE_PRODUITS = recupereElementDansDocumentOuLeve(SELECTEUR_GRILLE_PRODUITS);
const BOUTON_PLUS_DE_PRODUITS = recupereElementDocumentEither( const BOUTON_PLUS_DE_PRODUITS = recupereElementDocumentEither(

View file

@ -1,15 +1,106 @@
import { l as SELECTEUR_BOUTON_CODE_PROMO, m as SELECTEUR_CHAMP_CODE_PROMO, n as SELECTEUR_ENSEMBLE_CODE_PROMO, o as SELECTEUR_TOTAL_REDUCTION_VALEUR, p as SELECTEUR_TOTAL_REDUCTION } from "./dom.js"; import { z, N } from "./index.CeK6pfoJ.js";
import { V as ValiError } from "./index.DKC_Jv5v.js";
import { e as ROUTE_API_APPLIQUE_COUPON, f as ROUTE_API_RETIRE_COUPON } from "./api.js";
import { B as SELECTEUR_BOUTON_CODE_PROMO, z as SELECTEUR_CHAMP_CODE_PROMO, y as SELECTEUR_ENSEMBLE_CODE_PROMO, q as SELECTEUR_TOTAL_PANIER, v as SELECTEUR_TOTAL_REDUCTION, w as SELECTEUR_TOTAL_REDUCTION_VALEUR, I as ATTRIBUT_DESACTIVE, J as ATTRIBUT_CODE_PROMO_PRESENT, k as ATTRIBUT_HIDDEN } from "./dom.js";
import { d as correspondCibleSelecteur, i as identity } from "./dom2.js";
import { S as ServerError } from "./erreurs.js";
import { e as estReponse500 } from "./gardes.js";
import { p as postBackend } from "./reseau.js";
import { W as WCStoreCartSchema } from "./cart.js";
import { W as WCStoreCartApplyCouponArgsSchema } from "./cart-apply-coupon.js";
import { W as WCStoreCartRemoveCouponArgsSchema } from "./cart-remove-coupon.js";
import { a as recupereElementDansDocumentOuLeve } from "./utils.js"; import { a as recupereElementDansDocumentOuLeve } from "./utils.js";
import "./dom2.js"; import { e as eitherParse } from "./validation.js";
import "./erreurs.js"; import { E as EitherAsync } from "./MaybeAsync.AE1jnxuc.js";
import "./exports.DT-46nyp.js"; import { p as pipe } from "./pipe.XPB0wEfw.js";
import "./Either.wHNxn7Os.js"; import { M as Maybe } from "./Either.wHNxn7Os.js";
import "./pipe.XPB0wEfw.js"; import "./exports.3IcOsN8u.js";
({ import "./erreurs2.js";
TOTAL_REDUCTION_LIGNE: recupereElementDansDocumentOuLeve(SELECTEUR_TOTAL_REDUCTION), import "./cart2.js";
TOTAL_REDUCTION_VALEUR: recupereElementDansDocumentOuLeve(SELECTEUR_TOTAL_REDUCTION_VALEUR), import "./adresses.js";
ENSEMBLE_CODE_PROMO: recupereElementDansDocumentOuLeve(SELECTEUR_ENSEMBLE_CODE_PROMO), import "./cart-coupons.js";
import "./couts-livraison.js";
const ETATS_PAGE = _etats;
const ELEMENTS = {
BOUTON_CODE_PROMO: recupereElementDansDocumentOuLeve(SELECTEUR_BOUTON_CODE_PROMO),
CHAMP_CODE_PROMO: recupereElementDansDocumentOuLeve(SELECTEUR_CHAMP_CODE_PROMO), CHAMP_CODE_PROMO: recupereElementDansDocumentOuLeve(SELECTEUR_CHAMP_CODE_PROMO),
BOUTON_CODE_PROMO: recupereElementDansDocumentOuLeve(SELECTEUR_BOUTON_CODE_PROMO) ENSEMBLE_CODE_PROMO: recupereElementDansDocumentOuLeve(SELECTEUR_ENSEMBLE_CODE_PROMO),
}); TOTAL_PANIER: recupereElementDansDocumentOuLeve(SELECTEUR_TOTAL_PANIER),
TOTAL_REDUCTION_LIGNE: recupereElementDansDocumentOuLeve(SELECTEUR_TOTAL_REDUCTION),
TOTAL_REDUCTION_VALEUR: recupereElementDansDocumentOuLeve(SELECTEUR_TOTAL_REDUCTION_VALEUR)
};
const initialiseElementsCodePromo = () => {
const recupereCodePromoValeur = () => Maybe.fromFalsy(ELEMENTS.CHAMP_CODE_PROMO.value.trim()).extractNullable();
const recupereCodePromoPresent = () => ELEMENTS.ENSEMBLE_CODE_PROMO.hasAttribute(ATTRIBUT_CODE_PROMO_PRESENT);
ELEMENTS.ENSEMBLE_CODE_PROMO.addEventListener(
"click",
(evenement) => z({
cible: evenement.target,
codePromoPresent: recupereCodePromoPresent(),
codePromoValeur: recupereCodePromoValeur()
}).with(
{
cible: N.when((cible) => correspondCibleSelecteur(cible, SELECTEUR_BOUTON_CODE_PROMO)),
codePromoPresent: false,
codePromoValeur: N.string
},
({ codePromoValeur }) => void EitherAsync.liftEither(eitherParse({ code: codePromoValeur }, WCStoreCartApplyCouponArgsSchema)).map(
(args) => postBackend({
corps: JSON.stringify(args),
nonce: ETATS_PAGE.nonce,
route: ROUTE_API_APPLIQUE_COUPON
})
).chain(
(reponse) => EitherAsync(async ({ throwE }) => {
if (estReponse500(reponse)) throwE(new ServerError("500 Server Error"));
return await reponse.json();
})
).chain((corpsReponse) => EitherAsync.liftEither(eitherParse(corpsReponse, WCStoreCartSchema))).ifRight((panier) => {
const totalReduction = pipe(Number(panier.totals.total_discount) / 100, String, (v) => `-${v}`);
const totalPanier = pipe(Number(panier.totals.total_price) / 100, String, (v) => `${v}`);
ELEMENTS.BOUTON_CODE_PROMO.textContent = "Remove";
ELEMENTS.CHAMP_CODE_PROMO.toggleAttribute(ATTRIBUT_DESACTIVE);
ELEMENTS.CHAMP_CODE_PROMO.value = panier.coupons[0]?.code ?? "";
ELEMENTS.ENSEMBLE_CODE_PROMO.toggleAttribute(ATTRIBUT_CODE_PROMO_PRESENT);
ELEMENTS.TOTAL_PANIER.textContent = totalPanier;
ELEMENTS.TOTAL_REDUCTION_LIGNE.toggleAttribute(ATTRIBUT_HIDDEN);
ELEMENTS.TOTAL_REDUCTION_VALEUR.textContent = totalReduction;
}).ifLeft(
(erreur) => z(erreur).with(N.instanceOf(ValiError), (e) => console.error("retour ajout code promo", e.issues)).with(N.instanceOf(ServerError), (e) => console.error("retour ajout code promo", e)).with(N.instanceOf(TypeError), (e) => console.error("retour ajout code promo", e)).exhaustive()
).run()
).with(
{
cible: N.when((cible) => correspondCibleSelecteur(cible, SELECTEUR_BOUTON_CODE_PROMO)),
codePromoPresent: true,
codePromoValeur: N.string
},
({ codePromoValeur }) => void EitherAsync.liftEither(eitherParse({ code: codePromoValeur }, WCStoreCartRemoveCouponArgsSchema)).map(
(args) => postBackend({
corps: JSON.stringify(args),
nonce: ETATS_PAGE.nonce,
route: ROUTE_API_RETIRE_COUPON
})
).chain(
(reponse) => EitherAsync(async ({ throwE }) => {
if (estReponse500(reponse)) throwE(new ServerError("500 server Error"));
return await reponse.json();
})
).chain((corpsReponse) => EitherAsync.liftEither(eitherParse(corpsReponse, WCStoreCartSchema))).ifRight((panier) => {
const totalPanier = pipe(Number(panier.totals.total_price) / 100, String, (v) => `${v}`);
ELEMENTS.BOUTON_CODE_PROMO.textContent = "Apply";
ELEMENTS.CHAMP_CODE_PROMO.toggleAttribute(ATTRIBUT_DESACTIVE);
ELEMENTS.CHAMP_CODE_PROMO.value = "";
ELEMENTS.ENSEMBLE_CODE_PROMO.toggleAttribute(ATTRIBUT_CODE_PROMO_PRESENT);
ELEMENTS.TOTAL_PANIER.textContent = totalPanier;
ELEMENTS.TOTAL_REDUCTION_LIGNE.toggleAttribute(ATTRIBUT_HIDDEN);
ELEMENTS.TOTAL_REDUCTION_VALEUR.textContent = "-0€";
}).ifLeft(
(erreur) => z(erreur).with(N.instanceOf(ValiError), (e) => console.error("retour ajout code promo", e.issues)).with(N.instanceOf(ServerError), (e) => console.error("retour ajout code promo", e)).with(N.instanceOf(TypeError), (e) => console.error("retour ajout code promo", e)).exhaustive()
).run()
).with(N._, identity)
);
};
export {
initialiseElementsCodePromo as i
};
//# sourceMappingURL=scripts-page-panier-code-promo.js.map //# sourceMappingURL=scripts-page-panier-code-promo.js.map

File diff suppressed because one or more lines are too long

View file

@ -1,34 +1,36 @@
import { z, N } from "./index.CeK6pfoJ.js"; import { z } from "./index.CeK6pfoJ.js";
import { p as parse, V as ValiError } from "./index.DeCaB8sW.js"; import { p as parse, V as ValiError } from "./index.DKC_Jv5v.js";
import { a as ROUTE_API_RETIRE_ARTICLE_PANIER, b as ROUTE_API_MAJ_ARTICLE_PANIER, c as ROUTE_API_MAJ_CLIENT, d as ROUTE_API_NOUVELLE_COMMANDES, e as ROUTE_API_RETIRE_COUPON, f as ROUTE_API_APPLIQUE_COUPON } from "./api.js"; import { a as ROUTE_API_RETIRE_ARTICLE_PANIER, b as ROUTE_API_MAJ_ARTICLE_PANIER, c as ROUTE_API_MAJ_CLIENT, d as ROUTE_API_NOUVELLE_COMMANDES } from "./api.js";
import { q as SELECTEUR_ENTREES_PANIER, r as SELECTEUR_CONTENEUR_PANIER, s as SELECTEUR_SOUS_TOTAL_PRODUITS, t as SELECTEUR_SOUS_TOTAL_LIVRAISON_COUT, u as SELECTEUR_SOUS_TOTAL_LIVRAISON_PRESTATAIRE, p as SELECTEUR_TOTAL_REDUCTION, o as SELECTEUR_TOTAL_REDUCTION_VALEUR, v as SELECTEUR_INSTRUCTIONS_CLIENT, w as SELECTEUR_TOTAL_PANIER, x as SELECTEUR_BOUTON_SEPARATION_ADRESSES, n as SELECTEUR_ENSEMBLE_CODE_PROMO, m as SELECTEUR_CHAMP_CODE_PROMO, l as SELECTEUR_BOUTON_CODE_PROMO, y as SELECTEUR_FORMULAIRE_PANIER, z as SELECTEUR_FORMULAIRE_FACTURATION, B as SELECTEUR_BOUTON_ACTIONS_FORMULAIRE, C as ATTRIBUT_CLE_PANIER, D as SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE, E as SELECTEUR_CHAMP_QUANTITE_LIGNE_PANIER, F as SELECTEUR_BOUTON_ADDITION_QUANTITE, G as SELECTEUR_BOUTON_SUPPRESSION_PANIER, H as ATTRIBUT_DESACTIVE, A as ATTRIBUT_CONTIENT_ARTICLES, I as SELECTEUR_PRIX_LIGNE_PANIER, k as ATTRIBUT_HIDDEN, J as ATTRIBUT_CODE_PROMO_PRESENT } from "./dom.js"; import { l as SELECTEUR_ENTREES_PANIER, m as SELECTEUR_CONTENEUR_PANIER, n as SELECTEUR_SOUS_TOTAL_PRODUITS, o as SELECTEUR_SOUS_TOTAL_LIVRAISON_COUT, p as SELECTEUR_SOUS_TOTAL_LIVRAISON_PRESTATAIRE, q as SELECTEUR_TOTAL_PANIER, r as SELECTEUR_BOUTON_SEPARATION_ADRESSES, s as SELECTEUR_FORMULAIRE_PANIER, t as SELECTEUR_FORMULAIRE_FACTURATION, u as SELECTEUR_BOUTON_ACTIONS_FORMULAIRE, v as SELECTEUR_TOTAL_REDUCTION, w as SELECTEUR_TOTAL_REDUCTION_VALEUR, x as SELECTEUR_INSTRUCTIONS_CLIENT, y as SELECTEUR_ENSEMBLE_CODE_PROMO, z as SELECTEUR_CHAMP_CODE_PROMO, B as SELECTEUR_BOUTON_CODE_PROMO, C as ATTRIBUT_CLE_PANIER, D as SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE, E as SELECTEUR_CHAMP_QUANTITE_LIGNE_PANIER, F as SELECTEUR_BOUTON_ADDITION_QUANTITE, G as SELECTEUR_BOUTON_SUPPRESSION_PANIER, A as ATTRIBUT_CONTIENT_ARTICLES, H as SELECTEUR_PRIX_LIGNE_PANIER, k as ATTRIBUT_HIDDEN, I as ATTRIBUT_DESACTIVE } from "./dom.js";
import { N as NOM_CANAL_BOUTON_PANIER, a as NOM_CANAL_CONTENU_PANIER } from "./messages3.js"; import { N as NOM_CANAL_BOUTON_PANIER, a as NOM_CANAL_CONTENU_PANIER } from "./messages3.js";
import { r as recupereElementOuLeve, a as recupereElementAvecSelecteur, b as recupereElementsAvecSelecteur, e as eitherSessionStorageGet, c as eitherJsonParse } from "./dom2.js"; import { r as recupereElementOuLeve, a as recupereElementsAvecSelecteur, e as eitherSessionStorageGet, b as eitherJsonParse, c as recupereElementAvecSelecteur } from "./dom2.js";
import { l as leveServerError, r as reporteErreur, a as leveErreur, S as ServerError } from "./erreurs.js"; import { l as leveServerError, r as reporteErreur, a as leveErreur } from "./erreurs.js";
import { e as estReponse500, a as estError } from "./gardes.js"; import { e as estReponse500, a as estError } from "./gardes.js";
import { e as emetMessageMajBoutonPanier, a as emetMessageMajContenuPanier, v as valideMessageMajBoutonPanier, b as valideMessageMajContenuPanier } from "./messages.js"; import { e as emetMessageMajBoutonPanier, a as emetMessageMajContenuPanier, v as valideMessageMajBoutonPanier, b as valideMessageMajContenuPanier } from "./messages.js";
import { p as postBackend, t as traiteReponseBackendWCSelonCodesHTTP } from "./reseau.js"; import { p as postBackend, t as traiteReponseBackendWCSelonCodesHTTP } from "./reseau.js";
import { W as WCStoreCartApplyCouponArgsSchema } from "./cart-apply-coupon.js";
import { W as WCStoreCartRemoveCouponArgsSchema } from "./cart-remove-coupon.js";
import { W as WCStoreCartRemoveItemArgsSchema } from "./cart-remove-item.js"; import { W as WCStoreCartRemoveItemArgsSchema } from "./cart-remove-item.js";
import { W as WCStoreCartUpdateCustomerArgsSchema } from "./cart-update-customer.js"; import { W as WCStoreCartUpdateCustomerArgsSchema } from "./cart-update-customer.js";
import { W as WCStoreCartUpdateItemArgsSchema } from "./cart-update-item.js"; import { W as WCStoreCartUpdateItemArgsSchema } from "./cart-update-item.js";
import { W as WCStoreCartSchema } from "./cart.js"; import { W as WCStoreCartSchema } from "./cart.js";
import { W as WCStoreShippingRateShippingRateSchema } from "./couts-livraison.js"; import { W as WCStoreShippingRateShippingRateSchema } from "./couts-livraison.js";
import { W as WCV3OrdersArgsSchema, a as WCV3OrderSchema } from "./orders.js"; import { W as WCV3OrdersArgsSchema, a as WCV3OrderSchema } from "./orders2.js";
import { c as recupereElementsDocumentEither, r as recupereElementDocumentEither, a as recupereElementDansDocumentOuLeve, y, p as propEither } from "./utils.js"; import { c as recupereElementsDocumentEither, r as recupereElementDocumentEither, a as recupereElementDansDocumentOuLeve, y, p as propEither } from "./utils.js";
import { e as eitherParse } from "./validation.js"; import { e as eitherParse } from "./validation.js";
import { i as initialiseElementsCodePromo } from "./scripts-page-panier-code-promo.js";
import { p as pipe } from "./pipe.XPB0wEfw.js"; import { p as pipe } from "./pipe.XPB0wEfw.js";
import { l } from "./index-0eef19ec.CFsloYN6.js"; import { l } from "./index-0eef19ec.DoJSf22Z.js";
import { E as EitherAsync } from "./MaybeAsync.Ba-OfjWy.js";
import { M as Maybe, E as Either } from "./Either.wHNxn7Os.js"; import { M as Maybe, E as Either } from "./Either.wHNxn7Os.js";
import "./exports.DT-46nyp.js"; import "./exports.3IcOsN8u.js";
import "./messages2.js"; import "./messages2.js";
import "./erreurs2.js"; import "./erreurs2.js";
import "./adresses.js"; import "./adresses.js";
import "./cart2.js"; import "./cart2.js";
import "./orders2.js"; import "./cart-coupons.js";
import "./belt_Option-91f3b350.BKMoZFhU.js"; import "./orders3.js";
import "./cart-apply-coupon.js";
import "./cart-remove-coupon.js";
import "./MaybeAsync.AE1jnxuc.js";
import "./belt_Option-91f3b350.cBye8bLJ.js";
const ETATS_PAGE = _etats; const ETATS_PAGE = _etats;
const ENTREES_PANIER_EITHER = recupereElementsDocumentEither( const ENTREES_PANIER_EITHER = recupereElementsDocumentEither(
SELECTEUR_ENTREES_PANIER SELECTEUR_ENTREES_PANIER
@ -49,8 +51,8 @@ const SOUS_TOTAL_LIVRAISON_PRESTATAIRE = pipe(
recupereElementDocumentEither(SELECTEUR_SOUS_TOTAL_LIVRAISON_PRESTATAIRE), recupereElementDocumentEither(SELECTEUR_SOUS_TOTAL_LIVRAISON_PRESTATAIRE),
recupereElementOuLeve recupereElementOuLeve
); );
const SOUS_TOTAL_REDUCTION_LIGNE = recupereElementDansDocumentOuLeve(SELECTEUR_TOTAL_REDUCTION); recupereElementDansDocumentOuLeve(SELECTEUR_TOTAL_REDUCTION);
const SOUS_TOTAL_REDUCTION_VALEUR = recupereElementDansDocumentOuLeve( recupereElementDansDocumentOuLeve(
SELECTEUR_TOTAL_REDUCTION_VALEUR SELECTEUR_TOTAL_REDUCTION_VALEUR
); );
const INSTRUCTIONS_CLIENT = recupereElementDansDocumentOuLeve( const INSTRUCTIONS_CLIENT = recupereElementDansDocumentOuLeve(
@ -64,13 +66,13 @@ const BOUTON_SEPARATION_ADRESSES = pipe(
recupereElementDocumentEither(SELECTEUR_BOUTON_SEPARATION_ADRESSES), recupereElementDocumentEither(SELECTEUR_BOUTON_SEPARATION_ADRESSES),
recupereElementOuLeve recupereElementOuLeve
); );
const ENSEMBLE_CODE_PROMO = recupereElementDansDocumentOuLeve( recupereElementDansDocumentOuLeve(
SELECTEUR_ENSEMBLE_CODE_PROMO SELECTEUR_ENSEMBLE_CODE_PROMO
); );
const CHAMP_CODE_PROMO = recupereElementDansDocumentOuLeve( recupereElementDansDocumentOuLeve(
SELECTEUR_CHAMP_CODE_PROMO SELECTEUR_CHAMP_CODE_PROMO
); );
let BOUTON_CODE_PROMO = recupereElementDansDocumentOuLeve( recupereElementDansDocumentOuLeve(
SELECTEUR_BOUTON_CODE_PROMO SELECTEUR_BOUTON_CODE_PROMO
); );
const FORMULAIRE_PANIER = pipe( const FORMULAIRE_PANIER = pipe(
@ -375,81 +377,6 @@ const initialiseBoutonActions = () => {
}); });
}); });
}; };
const initialiseElementsCodePromo = () => {
const codePromoPresent = ENSEMBLE_CODE_PROMO.hasAttribute(ATTRIBUT_CODE_PROMO_PRESENT);
BOUTON_CODE_PROMO.outerHTML = BOUTON_CODE_PROMO.outerHTML;
BOUTON_CODE_PROMO = recupereElementDansDocumentOuLeve(SELECTEUR_BOUTON_CODE_PROMO);
if (codePromoPresent) {
BOUTON_CODE_PROMO.addEventListener("click", () => {
const code = CHAMP_CODE_PROMO.value;
EitherAsync.liftEither(eitherParse({ code }, WCStoreCartRemoveCouponArgsSchema)).map(
(args) => postBackend({
corps: JSON.stringify(args),
nonce: ETATS_PAGE.nonce,
route: ROUTE_API_RETIRE_COUPON
})
).chain(
async (reponse) => EitherAsync(async ({ throwE }) => {
if (estReponse500(reponse)) throwE(new ServerError("500 Server Error"));
return await reponse.json();
})
).chain(
(corpsReponse) => EitherAsync(
({ liftEither }) => liftEither(eitherParse(corpsReponse, WCStoreCartSchema))
)
).ifRight((panier) => {
const totalPanier = `${String(Number(panier.totals.total_price) / 100)}`;
ENSEMBLE_CODE_PROMO.removeAttribute(ATTRIBUT_CODE_PROMO_PRESENT);
BOUTON_CODE_PROMO.textContent = "Apply";
CHAMP_CODE_PROMO.value = "";
CHAMP_CODE_PROMO.toggleAttribute(ATTRIBUT_DESACTIVE);
TOTAL_PANIER.textContent = totalPanier;
SOUS_TOTAL_REDUCTION_VALEUR.textContent = "-0€";
SOUS_TOTAL_REDUCTION_LIGNE.setAttribute(ATTRIBUT_HIDDEN, "");
initialiseElementsCodePromo();
}).ifLeft((e) => {
console.error("requête", e);
if (e instanceof ValiError) console.error(e.issues);
}).run();
});
return;
}
BOUTON_CODE_PROMO.addEventListener("click", () => {
const codePromo = Maybe.fromFalsy(CHAMP_CODE_PROMO.value.trim()).toEither(new TypeError("Aucun code promo n'a été renseigné.")).chain((code) => eitherParse({ code }, WCStoreCartApplyCouponArgsSchema)).ifRight((args) => console.debug(args)).ifLeft(
(erreur) => z(erreur).with(N.instanceOf(ValiError), (e) => console.error("codePromo", e.issues)).with(N.instanceOf(TypeError), (e) => console.error("codePromo", e)).exhaustive()
);
EitherAsync.liftEither(codePromo).map(
async (args) => await postBackend({
corps: JSON.stringify(args),
nonce: ETATS_PAGE.nonce,
route: ROUTE_API_APPLIQUE_COUPON
})
).chain(
async (reponse) => EitherAsync(async ({ throwE }) => {
if (estReponse500(reponse)) throwE(new ServerError("500 Server Error"));
return await reponse.json();
})
).chain(
(corpsReponse) => EitherAsync(
({ liftEither }) => liftEither(eitherParse(corpsReponse, WCStoreCartSchema))
)
).ifRight((panier) => {
const totalReduction = `-${String(Number(panier.totals.total_discount) / 100)}`;
const totalPanier = `${Number(panier.totals.total_price) / 100}`;
ENSEMBLE_CODE_PROMO.setAttribute(ATTRIBUT_CODE_PROMO_PRESENT, "");
BOUTON_CODE_PROMO.textContent = "Remove";
CHAMP_CODE_PROMO.value = panier.coupons[0].code;
CHAMP_CODE_PROMO.toggleAttribute(ATTRIBUT_DESACTIVE);
TOTAL_PANIER.textContent = totalPanier;
SOUS_TOTAL_REDUCTION_VALEUR.textContent = totalReduction;
SOUS_TOTAL_REDUCTION_LIGNE.removeAttribute(ATTRIBUT_HIDDEN);
initialiseElementsCodePromo();
}).ifLeft((e) => {
console.error("requête", e);
if (e instanceof ValiError) console.error(e.issues);
}).run();
});
};
const initialiseBoutonCreationCommande = () => { const initialiseBoutonCreationCommande = () => {
BOUTON_ACTIONS_FORMULAIRE.outerHTML = BOUTON_ACTIONS_FORMULAIRE.outerHTML; BOUTON_ACTIONS_FORMULAIRE.outerHTML = BOUTON_ACTIONS_FORMULAIRE.outerHTML;
BOUTON_ACTIONS_FORMULAIRE = recupereElementDansDocumentOuLeve(SELECTEUR_BOUTON_ACTIONS_FORMULAIRE); BOUTON_ACTIONS_FORMULAIRE = recupereElementDansDocumentOuLeve(SELECTEUR_BOUTON_ACTIONS_FORMULAIRE);
@ -491,8 +418,8 @@ const initialiseBoutonCreationCommande = () => {
postcode: donneesFormulaire["facturation-code-postal"] ?? donneesFormulaire["livraison-code-postal"] ?? "", postcode: donneesFormulaire["facturation-code-postal"] ?? donneesFormulaire["livraison-code-postal"] ?? "",
state: donneesFormulaire["facturation-region-etat"] ?? donneesFormulaire["livraison-region-etat"] ?? "" state: donneesFormulaire["facturation-region-etat"] ?? donneesFormulaire["livraison-region-etat"] ?? ""
}, },
customer_note: INSTRUCTIONS_CLIENT.value,
currency: methodeLivraison.currency_code, currency: methodeLivraison.currency_code,
customer_note: INSTRUCTIONS_CLIENT.value,
line_items: articlesPanier, line_items: articlesPanier,
shipping: { shipping: {
address_1: donneesFormulaire["livraison-adresse"] ?? "", address_1: donneesFormulaire["livraison-adresse"] ?? "",

File diff suppressed because one or more lines are too long

View file

@ -1,27 +1,28 @@
import { z } from "./index.CeK6pfoJ.js"; import { z } from "./index.CeK6pfoJ.js";
import { g as ROUTE_API_AJOUTE_ARTICLE_PANIER, E as ENTETE_WC_NONCE } from "./api.js"; import { g as ROUTE_API_AJOUTE_ARTICLE_PANIER, E as ENTETE_WC_NONCE } from "./api.js";
import { K as SELECTEUR_BOUTON_AJOUT_PANIER, L as SELECTEUR_SELECTEUR_QUANTITE, M as SELECTEUR_PRIX_PRODUIT, N as SELECTEUR_LIENS_ONGLETS, O as SELECTEUR_SECTIONS_CONTENUS, P as ATTRIBUT_ARIA_SELECTED, k as ATTRIBUT_HIDDEN, H as ATTRIBUT_DESACTIVE, Q as ATTRIBUT_PRIX, R as SELECTEUR_CONTENEUR_FLECHES_DEFILEMENT, T as SELECTEUR_FLECHE_DEFILEMENT_GAUCHE, U as SELECTEUR_FLECHE_DEFILEMENT_DROITE, V as SELECTEUR_PHOTOS_PRODUIT, W as SELECTEUR_IMAGE_COLONNE_GAUCHE, X as SELECTEUR_IMAGES_COLONNE_DROITE, Y as ATTRIBUT_INDEX_IMAGE_ACTIVE } from "./dom.js"; import { K as SELECTEUR_BOUTON_AJOUT_PANIER, L as SELECTEUR_SELECTEUR_QUANTITE, M as SELECTEUR_LIENS_ONGLETS, N as SELECTEUR_SECTIONS_CONTENUS, O as SELECTEUR_PRIX_PRODUIT, P as SELECTEUR_CONTENEUR_FLECHES_DEFILEMENT, Q as SELECTEUR_FLECHE_DEFILEMENT_GAUCHE, R as SELECTEUR_FLECHE_DEFILEMENT_DROITE, T as SELECTEUR_PHOTOS_PRODUIT, U as SELECTEUR_IMAGE_COLONNE_GAUCHE, V as SELECTEUR_IMAGES_COLONNE_DROITE, W as ATTRIBUT_INDEX_IMAGE_ACTIVE, X as ATTRIBUT_ARIA_SELECTED, k as ATTRIBUT_HIDDEN, I as ATTRIBUT_DESACTIVE, Y as ATTRIBUT_PRIX } from "./dom.js";
import { r as recupereElementOuLeve, d as recupereElementsOuLeve, R as Ra } from "./dom2.js"; import { r as recupereElementOuLeve, f as recupereElementsOuLeve, R as Ra } from "./dom2.js";
import { l as leveServerError, r as reporteErreur } from "./erreurs.js"; import { l as leveServerError, r as reporteErreur } from "./erreurs.js";
import { b as estHTMLSelectElement, e as estReponse500, a as estError } from "./gardes.js"; import { b as estHTMLSelectElement, e as estReponse500, a as estError } from "./gardes.js";
import { e as emetMessageMajBoutonPanier } from "./messages.js"; import { e as emetMessageMajBoutonPanier } from "./messages.js";
import { t as traiteReponseBackendWCSelonCodesHTTP } from "./reseau.js"; import { t as traiteReponseBackendWCSelonCodesHTTP } from "./reseau.js";
import { W as WCStoreCartSchema } from "./cart.js"; import { W as WCStoreCartSchema } from "./cart.js";
import { W as WCStoreCartAddItemArgsSchema } from "./cart-add-item.js"; import { W as WCStoreCartAddItemArgsSchema } from "./cart-add-item.js";
import { r as recupereElementDocumentEither, a as recupereElementDansDocumentOuLeve, c as recupereElementsDocumentEither, y, b as recupereElementsDansDocumentOuLeve } from "./utils.js"; import { r as recupereElementDocumentEither, a as recupereElementDansDocumentOuLeve, c as recupereElementsDocumentEither, b as recupereElementsDansDocumentOuLeve, y } from "./utils.js";
import { e as eitherParse } from "./validation.js"; import { e as eitherParse } from "./validation.js";
import { p as pipe } from "./pipe.XPB0wEfw.js"; import { p as pipe } from "./pipe.XPB0wEfw.js";
import { l } from "./index-0eef19ec.CFsloYN6.js"; import { l } from "./index-0eef19ec.DoJSf22Z.js";
import { M as Maybe } from "./Either.wHNxn7Os.js"; import { M as Maybe } from "./Either.wHNxn7Os.js";
import "./exports.DT-46nyp.js"; import "./exports.3IcOsN8u.js";
import "./index.DeCaB8sW.js"; import "./index.DKC_Jv5v.js";
import "./messages3.js"; import "./messages3.js";
import "./messages2.js"; import "./messages2.js";
import "./erreurs2.js"; import "./erreurs2.js";
import "./cart2.js"; import "./cart2.js";
import "./adresses.js"; import "./adresses.js";
import "./cart-coupons.js";
import "./couts-livraison.js"; import "./couts-livraison.js";
import "./belt_Option-91f3b350.BKMoZFhU.js"; import "./belt_Option-91f3b350.cBye8bLJ.js";
const ETATS_PAGE = _etats; const ETATS_PAGE = _etats;
const deplieToutesSections = (ensembleLiensContenus) => { const deplieToutesSections = (ensembleLiensContenus) => {
ensembleLiensContenus.forEach((ensemble) => { ensembleLiensContenus.forEach((ensemble) => {

File diff suppressed because one or more lines are too long

View file

@ -1,8 +1,8 @@
import { i as equal, j as fromArray, k as reduceU, l as append, m as mapU, n as forEachU, u as unsafeDeleteKey, o as get$1, p as values, a as recupereElementAvecSelecteur, r as recupereElementOuLeve, b as recupereElementsAvecSelecteur, d as recupereElementsOuLeve } from "./dom2.js"; import { l as values, m as fromArray, g as equal, n as get$1, u as unsafeDeleteKey, o as forEachU, p as mapU, q as reduceU, t as append, a as recupereElementsAvecSelecteur, c as recupereElementAvecSelecteur, r as recupereElementOuLeve, f as recupereElementsOuLeve } from "./dom2.js";
import { C as CleNonTrouveError } from "./erreurs.js"; import { C as CleNonTrouveError } from "./erreurs.js";
import { p as pipe } from "./pipe.XPB0wEfw.js"; import { p as pipe } from "./pipe.XPB0wEfw.js";
import { M as Maybe } from "./Either.wHNxn7Os.js"; import { M as Maybe } from "./Either.wHNxn7Os.js";
import "./exports.DT-46nyp.js"; import "./exports.3IcOsN8u.js";
function placeholder(e) { function placeholder(e) {
} }
function makeEmpty(e) { function makeEmpty(e) {

View file

@ -1,4 +1,4 @@
import { p as parse } from "./index.DeCaB8sW.js"; import { p as parse } from "./index.DKC_Jv5v.js";
import { E as Either } from "./Either.wHNxn7Os.js"; import { E as Either } from "./Either.wHNxn7Os.js";
const eitherParse = (valeur, schema) => Either.encase(() => parse(schema, valeur)); const eitherParse = (valeur, schema) => Either.encase(() => parse(schema, valeur));
export { export {

View file

@ -21,10 +21,22 @@ export class BadRequestError extends Error {
this.name = "BadRequestError"; this.name = "BadRequestError";
} }
} }
export class UnauthorizedError extends Error { export class CleNonTrouveError extends Error {
constructor(message = "401 UnauthorizedError") { constructor(message: unknown) {
super(message); super(JSON.stringify(message));
this.name = "UnauthorizedError"; this.name = "CleNonTrouveError";
}
}
export class DOMElementAbsentError extends Error {
constructor(message: unknown) {
super(JSON.stringify(message));
this.name = "DOMElementAbsentError";
}
}
export class NonExistingKeyError extends Error {
constructor(message: unknown) {
super(JSON.stringify(message));
this.name = "NonExistingKeyError";
} }
} }
export class NotFoundError extends Error { export class NotFoundError extends Error {
@ -39,30 +51,18 @@ export class ServerError extends Error {
this.name = "ServerError"; this.name = "ServerError";
} }
} }
export class UnauthorizedError extends Error {
constructor(message = "401 UnauthorizedError") {
super(message);
this.name = "UnauthorizedError";
}
}
export class UnknownError extends Error { export class UnknownError extends Error {
constructor(message: unknown) { constructor(message: unknown) {
super(JSON.stringify(message)); super(JSON.stringify(message));
this.name = "UnknownError"; this.name = "UnknownError";
} }
} }
export class DOMElementAbsentError extends Error {
constructor(message: unknown) {
super(JSON.stringify(message));
this.name = "DOMElementAbsentError";
}
}
export class CleNonTrouveError extends Error {
constructor(message: unknown) {
super(JSON.stringify(message));
this.name = "CleNonTrouveError";
}
}
export class NonExistingKeyError extends Error {
constructor(message: unknown) {
super(JSON.stringify(message));
this.name = "NonExistingKeyError";
}
}
/* Fonction utilitaire pour créer ou lever des Erreurs */ /* Fonction utilitaire pour créer ou lever des Erreurs */
export const Erreur = (message: string): Error => new Error(message); export const Erreur = (message: string): Error => new Error(message);

View file

@ -17,6 +17,14 @@ import {
} from "./erreurs.ts"; } from "./erreurs.ts";
import { estWCError } from "./schemas/api/erreurs.ts"; import { estWCError } from "./schemas/api/erreurs.ts";
type ArgumentsDeleteBackendWC = {
authString?: string;
/** Une chaîne de caractères généré par le backend et à joindre à chaque requête pour l'authentifier. */
nonce: string;
/** La route, ou chemin, de l'API à demander au backend. */
route: string;
};
type ArgumentsGetBackendWC = { type ArgumentsGetBackendWC = {
authString?: string; authString?: string;
/** Une chaîne de caractères généré par le backend et à joindre à chaque requête pour l'authentifier. */ /** Une chaîne de caractères généré par le backend et à joindre à chaque requête pour l'authentifier. */
@ -27,14 +35,6 @@ type ArgumentsGetBackendWC = {
searchParams?: string; searchParams?: string;
}; };
type ArgumentsDeleteBackendWC = {
authString?: string;
/** Une chaîne de caractères généré par le backend et à joindre à chaque requête pour l'authentifier. */
nonce: string;
/** La route, ou chemin, de l'API à demander au backend. */
route: string;
};
type ArgumentsPostBackendWC = { type ArgumentsPostBackendWC = {
authString?: string; authString?: string;
/** Le corps de la requête (ses arguments). */ /** Le corps de la requête (ses arguments). */
@ -47,7 +47,7 @@ type ArgumentsPostBackendWC = {
export const getBackend = (args: ArgumentsGetBackendWC) => export const getBackend = (args: ArgumentsGetBackendWC) =>
fetch( fetch(
`${args.route}`, args.route,
{ {
credentials: "same-origin", credentials: "same-origin",
headers: { headers: {
@ -134,16 +134,16 @@ export const traiteReponseBackendWCSelonCodesHTTP = <R, S extends GenericSchema<
// Réponses inconnues // Réponses inconnues
.otherwise(e => pipe(e, ErreurInconnue, leveErreur<UnknownError>)); .otherwise(e => pipe(e, ErreurInconnue, leveErreur<UnknownError>));
export type TraitementReponseBackend<R, S extends GenericSchema<R>> = Either<
TraitementReponseBackendErrors<R, S>,
R
>;
export type TraitementReponseBackendErrors<R, S extends GenericSchema<R>> = export type TraitementReponseBackendErrors<R, S extends GenericSchema<R>> =
| BadRequestError | BadRequestError
| NotFoundError | NotFoundError
| UnauthorizedError | UnauthorizedError
| UnknownError | UnknownError
| ValiError<S>; | ValiError<S>;
export type TraitementReponseBackend<R, S extends GenericSchema<R>> = Either<
TraitementReponseBackendErrors<R, S>,
R
>;
export const eitherTraiteReponseBackend = <R, S extends GenericSchema<R>>( export const eitherTraiteReponseBackend = <R, S extends GenericSchema<R>>(
corpsReponse: unknown, corpsReponse: unknown,

View file

@ -6,7 +6,7 @@ export const WCStoreCartCouponsArgSchema = v.object({
}); });
export const WCStoreCartCouponsSchema = v.object({ export const WCStoreCartCouponsSchema = v.object({
// The coupon's unique code. /** The coupon's unique code. */
code: v.string(), code: v.string(),
// The discount type for the coupon (eg percentage or fixed amount) // The discount type for the coupon (eg percentage or fixed amount)
discount_type: v.string(), discount_type: v.string(),
@ -14,18 +14,18 @@ export const WCStoreCartCouponsSchema = v.object({
totals: v.object({ totals: v.object({
// Currency code (in ISO format) for returned prices. // Currency code (in ISO format) for returned prices.
currency_code: v.string(), currency_code: v.string(),
// Currency symbol for the currency which can be used to format returned prices.
currency_symbol: v.string(),
// Currency minor unit (number of digits after the decimal separator) for returned prices.
currency_minor_unit: v.pipe(v.number(), v.integer()),
// Decimal separator for the currency which can be used to format returned prices. // Decimal separator for the currency which can be used to format returned prices.
currency_decimal_separator: v.string(), currency_decimal_separator: v.string(),
// Thousand separator for the currency which can be used to format returned prices. // Currency minor unit (number of digits after the decimal separator) for returned prices.
currency_thousand_separator: v.string(), currency_minor_unit: v.pipe(v.number(), v.integer()),
// Price prefix for the currency which can be used to format returned prices. // Price prefix for the currency which can be used to format returned prices.
currency_prefix: v.string(), currency_prefix: v.string(),
// Price prefix for the currency which can be used to format returned prices. // Price prefix for the currency which can be used to format returned prices.
currency_suffix: v.string(), currency_suffix: v.string(),
// Currency symbol for the currency which can be used to format returned prices.
currency_symbol: v.string(),
// Thousand separator for the currency which can be used to format returned prices.
currency_thousand_separator: v.string(),
// Total discount applied by this coupon. // Total discount applied by this coupon.
total_discount: v.string(), total_discount: v.string(),
// Total tax removed due to discount applied by this coupon. // Total tax removed due to discount applied by this coupon.

View file

@ -2,6 +2,7 @@ import * as v from "valibot";
import { CATALOG_VISIBILITIES } from "../../../constantes/cart.ts"; import { CATALOG_VISIBILITIES } from "../../../constantes/cart.ts";
import { WCStoreBillingAddressSchema, WCStoreShippingAddressSchema } from "./adresses.ts"; import { WCStoreBillingAddressSchema, WCStoreShippingAddressSchema } from "./adresses.ts";
import { WCStoreCartCouponsSchema } from "./cart-coupons.ts";
import { WCStoreShippingRateSchema } from "./couts-livraison.ts"; import { WCStoreShippingRateSchema } from "./couts-livraison.ts";
export const WCStoreCartItemTotalsSchema = v.object({ export const WCStoreCartItemTotalsSchema = v.object({
@ -65,7 +66,8 @@ export const WCStoreCartTotalsSchema = v.object({
export const WCStoreCartSchema = v.object({ export const WCStoreCartSchema = v.object({
billing_address: WCStoreBillingAddressSchema, billing_address: WCStoreBillingAddressSchema,
coupons: v.unknown(), /** List of applied basket coupons. */
coupons: v.array(WCStoreCartCouponsSchema),
cross_sells: v.unknown(), cross_sells: v.unknown(),
errors: v.unknown(), errors: v.unknown(),
extensions: v.unknown(), extensions: v.unknown(),

View file

@ -5,5 +5,5 @@ import type {
WCStoreCartAddItemArgsSchema, WCStoreCartAddItemArgsSchema,
} from "../../schemas/api/cart-add-item.ts"; } from "../../schemas/api/cart-add-item.ts";
export type WCStoreCartAddItemArgsItems = InferOutput<typeof WCStoreCartAddItemArgsItemsSchema>;
export type WCStoreCartAddItemArgs = InferOutput<typeof WCStoreCartAddItemArgsSchema>; export type WCStoreCartAddItemArgs = InferOutput<typeof WCStoreCartAddItemArgsSchema>;
export type WCStoreCartAddItemArgsItems = InferOutput<typeof WCStoreCartAddItemArgsItemsSchema>;

View file

@ -1,4 +1,5 @@
import type { InferOutput } from "valibot"; import type { InferOutput } from "valibot";
import type { WCStoreCartApplyCouponArgsSchema } from "../../schemas/api/cart-apply-coupon"; import type { WCStoreCartApplyCouponArgsSchema } from "../../schemas/api/cart-apply-coupon";
export type WCStoreCartApplyCouponArgs = InferOutput<typeof WCStoreCartApplyCouponArgsSchema>; export type WCStoreCartApplyCouponArgs = InferOutput<typeof WCStoreCartApplyCouponArgsSchema>;

View file

@ -1,6 +1,7 @@
import type { InferOutput } from "valibot"; import type { InferOutput } from "valibot";
import type { WCStoreCartApplyCouponArgsSchema } from "../../schemas/api/cart-apply-coupon"; import type { WCStoreCartApplyCouponArgsSchema } from "../../schemas/api/cart-apply-coupon";
import type { WCStoreCartCouponsSchema } from "../../schemas/api/cart-coupons"; import type { WCStoreCartCouponsSchema } from "../../schemas/api/cart-coupons";
export type WCStoreCartCouponsArgs = InferOutput<typeof WCStoreCartApplyCouponArgsSchema>;
export type WCStoreCartCoupons = InferOutput<typeof WCStoreCartCouponsSchema>; export type WCStoreCartCoupons = InferOutput<typeof WCStoreCartCouponsSchema>;
export type WCStoreCartCouponsArgs = InferOutput<typeof WCStoreCartApplyCouponArgsSchema>;

View file

@ -1,4 +1,5 @@
import type { InferOutput } from "valibot"; import type { InferOutput } from "valibot";
import type { WCStoreCartRemoveCouponArgsSchema } from "../../schemas/api/cart-remove-coupon"; import type { WCStoreCartRemoveCouponArgsSchema } from "../../schemas/api/cart-remove-coupon";
export type WCStoreCartRemoveCouponArgs = InferOutput<typeof WCStoreCartRemoveCouponArgsSchema>; export type WCStoreCartRemoveCouponArgs = InferOutput<typeof WCStoreCartRemoveCouponArgsSchema>;

View file

@ -6,6 +6,6 @@ import type {
WCStoreShippingRateShippingRateSchema, WCStoreShippingRateShippingRateSchema,
} from "../../schemas/api/couts-livraison.ts"; } from "../../schemas/api/couts-livraison.ts";
export type WCStoreShippingRateShippingRate = InferOutput<typeof WCStoreShippingRateShippingRateSchema>;
export type WCStoreCartItem = InferOutput<typeof WCStoreCartItemSchema>;
export type WCStoreCart = InferOutput<typeof WCStoreCartSchema>; export type WCStoreCart = InferOutput<typeof WCStoreCartSchema>;
export type WCStoreCartItem = InferOutput<typeof WCStoreCartItemSchema>;
export type WCStoreShippingRateShippingRate = InferOutput<typeof WCStoreShippingRateShippingRateSchema>;

View file

@ -3,12 +3,12 @@ import type { InferOutput } from "valibot";
import type { BadRequestError, NotFoundError, ServerError, UnauthorizedError, UnknownError } from "../../erreurs.ts"; import type { BadRequestError, NotFoundError, ServerError, UnauthorizedError, UnknownError } from "../../erreurs.ts";
import type { WCErrorBodySchema, WCErrorSchema } from "../../schemas/api/erreurs.ts"; import type { WCErrorBodySchema, WCErrorSchema } from "../../schemas/api/erreurs.ts";
export type WCErrorBody = InferOutput<typeof WCErrorBodySchema>;
export type WCError = InferOutput<typeof WCErrorSchema>;
export type APIFetchErrors = export type APIFetchErrors =
| BadRequestError | BadRequestError
| NotFoundError | NotFoundError
| ServerError | ServerError
| UnauthorizedError | UnauthorizedError
| UnknownError; | UnknownError;
export type WCError = InferOutput<typeof WCErrorSchema>;
export type WCErrorBody = InferOutput<typeof WCErrorBodySchema>;

View file

@ -7,8 +7,8 @@ import type {
MessageMajContenuPanierSchema, MessageMajContenuPanierSchema,
} from "../schemas/messages.ts"; } from "../schemas/messages.ts";
export type MessageMajBoutonPanierDonnees = InferOutput<typeof MessageMajBoutonPanierDonneesSchema>;
export type MessageMajBoutonPanier = InferOutput<typeof MessageMajBoutonPanierSchema>; export type MessageMajBoutonPanier = InferOutput<typeof MessageMajBoutonPanierSchema>;
export type MessageMajContenuPanierDonnees = InferOutput<typeof MessageMajContenuPanierDonneesSchema>;
export type MessageMajBoutonPanierDonnees = InferOutput<typeof MessageMajBoutonPanierDonneesSchema>;
export type MessageMajContenuPanier = InferOutput<typeof MessageMajContenuPanierSchema>; export type MessageMajContenuPanier = InferOutput<typeof MessageMajContenuPanierSchema>;
export type MessageMajContenuPanierDonnees = InferOutput<typeof MessageMajContenuPanierDonneesSchema>;

View file

@ -2,18 +2,36 @@
* Scripts pour la gestion des codes promos (coupons) sur la Page Panier. * Scripts pour la gestion des codes promos (coupons) sur la Page Panier.
*/ */
import { Maybe } from "purify-ts"; import { pipe } from "@mobily/ts-belt";
import { EitherAsync, identity, Maybe } from "purify-ts";
import { match, P } from "ts-pattern"; import { match, P } from "ts-pattern";
import { ValiError } from "valibot";
import type { WCStoreCart } from "./lib/types/api/cart";
import type { WCStoreCartApplyCouponArgs } from "./lib/types/api/cart-apply-coupon";
import type { WCStoreCartRemoveCouponArgs } from "./lib/types/api/cart-remove-coupon";
import { ROUTE_API_APPLIQUE_COUPON, ROUTE_API_RETIRE_COUPON } from "./constantes/api";
import { import {
ATTRIBUT_CODE_PROMO_PRESENT, ATTRIBUT_CODE_PROMO_PRESENT,
ATTRIBUT_DESACTIVE,
ATTRIBUT_HIDDEN,
SELECTEUR_BOUTON_CODE_PROMO, SELECTEUR_BOUTON_CODE_PROMO,
SELECTEUR_CHAMP_CODE_PROMO, SELECTEUR_CHAMP_CODE_PROMO,
SELECTEUR_ENSEMBLE_CODE_PROMO, SELECTEUR_ENSEMBLE_CODE_PROMO,
SELECTEUR_TOTAL_PANIER,
SELECTEUR_TOTAL_REDUCTION, SELECTEUR_TOTAL_REDUCTION,
SELECTEUR_TOTAL_REDUCTION_VALEUR, SELECTEUR_TOTAL_REDUCTION_VALEUR,
} from "./constantes/dom"; } from "./constantes/dom";
import { correspondCibleSelecteur } from "./lib/dom"; import { correspondCibleSelecteur } from "./lib/dom";
import { ServerError } from "./lib/erreurs";
import { estReponse500 } from "./lib/gardes";
import { postBackend } from "./lib/reseau";
import { WCStoreCartSchema } from "./lib/schemas/api/cart";
import { WCStoreCartApplyCouponArgsSchema } from "./lib/schemas/api/cart-apply-coupon";
import { WCStoreCartRemoveCouponArgsSchema } from "./lib/schemas/api/cart-remove-coupon";
import { recupereElementDansDocumentOuLeve } from "./lib/utils"; import { recupereElementDansDocumentOuLeve } from "./lib/utils";
import { eitherParse } from "./lib/validation";
/** États utiles pour les scripts de la page. */ /** États utiles pour les scripts de la page. */
type EtatsPage = { type EtatsPage = {
@ -27,45 +45,120 @@ type EtatsPage = {
const ETATS_PAGE: EtatsPage = _etats; const ETATS_PAGE: EtatsPage = _etats;
const ELEMENTS = { const ELEMENTS = {
BOUTON_CODE_PROMO: recupereElementDansDocumentOuLeve<HTMLButtonElement>(SELECTEUR_BOUTON_CODE_PROMO),
CHAMP_CODE_PROMO: recupereElementDansDocumentOuLeve<HTMLInputElement>(SELECTEUR_CHAMP_CODE_PROMO),
ENSEMBLE_CODE_PROMO: recupereElementDansDocumentOuLeve<HTMLDivElement>(SELECTEUR_ENSEMBLE_CODE_PROMO),
TOTAL_PANIER: recupereElementDansDocumentOuLeve<HTMLParagraphElement>(SELECTEUR_TOTAL_PANIER),
TOTAL_REDUCTION_LIGNE: recupereElementDansDocumentOuLeve<HTMLDivElement>(SELECTEUR_TOTAL_REDUCTION), TOTAL_REDUCTION_LIGNE: recupereElementDansDocumentOuLeve<HTMLDivElement>(SELECTEUR_TOTAL_REDUCTION),
TOTAL_REDUCTION_VALEUR: recupereElementDansDocumentOuLeve<HTMLSpanElement>(SELECTEUR_TOTAL_REDUCTION_VALEUR), TOTAL_REDUCTION_VALEUR: recupereElementDansDocumentOuLeve<HTMLSpanElement>(SELECTEUR_TOTAL_REDUCTION_VALEUR),
ENSEMBLE_CODE_PROMO: recupereElementDansDocumentOuLeve<HTMLDivElement>(SELECTEUR_ENSEMBLE_CODE_PROMO),
CHAMP_CODE_PROMO: recupereElementDansDocumentOuLeve<HTMLInputElement>(SELECTEUR_CHAMP_CODE_PROMO),
BOUTON_CODE_PROMO: recupereElementDansDocumentOuLeve<HTMLButtonElement>(SELECTEUR_BOUTON_CODE_PROMO),
}; };
const initialiseElementsCodePromo = (): void => { export const initialiseElementsCodePromo = (): void => {
// Récupère la présence s'il existe // Récupère le code promo s'il existe
const recupereCodePromo = (): null | string => const recupereCodePromoValeur = (): null | string =>
Maybe Maybe.fromFalsy(ELEMENTS.CHAMP_CODE_PROMO.value.trim()).extractNullable();
.fromFalsy(ELEMENTS.ENSEMBLE_CODE_PROMO.hasAttribute(ATTRIBUT_CODE_PROMO_PRESENT)) const recupereCodePromoPresent = (): boolean =>
.chain(() => Maybe.fromNullable(ELEMENTS.CHAMP_CODE_PROMO.value)) ELEMENTS.ENSEMBLE_CODE_PROMO.hasAttribute(ATTRIBUT_CODE_PROMO_PRESENT);
.extractNullable();
// Créé la délégation d'Événements // Créé la délégation d'Événements
ELEMENTS.ENSEMBLE_CODE_PROMO.addEventListener("click", (evenement: Event) => { ELEMENTS.ENSEMBLE_CODE_PROMO.addEventListener(
match({ "click",
codePromo: recupereCodePromo(), (evenement: Event) =>
cible: evenement.target, match({
}) cible: evenement.target,
.with( codePromoPresent: recupereCodePromoPresent(),
{ codePromoValeur: recupereCodePromoValeur(),
codePromo: P.string, })
cible: P.when(cible => correspondCibleSelecteur<HTMLButtonElement>(cible, SELECTEUR_BOUTON_CODE_PROMO)), // Un code promo doit être ajouté
}, .with(
v => { {
console.debug(v); cible: P.when(cible => correspondCibleSelecteur<HTMLButtonElement>(cible, SELECTEUR_BOUTON_CODE_PROMO)),
}, codePromoPresent: false,
) codePromoValeur: P.string,
// Ne rien faire en cas de code promo absent },
.with( ({ codePromoValeur }) =>
{ void EitherAsync
codePromo: P.nullish, .liftEither(eitherParse({ code: codePromoValeur }, WCStoreCartApplyCouponArgsSchema))
cible: P.when(cible => correspondCibleSelecteur<HTMLButtonElement>(cible, SELECTEUR_BOUTON_CODE_PROMO)), .map((args: WCStoreCartApplyCouponArgs) =>
}, postBackend({
v => { corps: JSON.stringify(args),
console.debug(v); nonce: ETATS_PAGE.nonce,
}, route: ROUTE_API_APPLIQUE_COUPON,
); })
}); )
.chain((reponse: Response) =>
EitherAsync<ServerError, unknown>(async ({ throwE }) => {
if (estReponse500(reponse)) throwE(new ServerError("500 Server Error"));
return await reponse.json();
})
)
.chain((corpsReponse: unknown) => EitherAsync.liftEither(eitherParse(corpsReponse, WCStoreCartSchema)))
.ifRight((panier: WCStoreCart) => {
const totalReduction = pipe(Number(panier.totals.total_discount) / 100, String, v => `-${v}`);
const totalPanier = pipe(Number(panier.totals.total_price) / 100, String, v => `${v}`);
ELEMENTS.BOUTON_CODE_PROMO.textContent = "Remove";
ELEMENTS.CHAMP_CODE_PROMO.toggleAttribute(ATTRIBUT_DESACTIVE);
ELEMENTS.CHAMP_CODE_PROMO.value = panier.coupons[0]?.code ?? "";
ELEMENTS.ENSEMBLE_CODE_PROMO.toggleAttribute(ATTRIBUT_CODE_PROMO_PRESENT);
ELEMENTS.TOTAL_PANIER.textContent = totalPanier;
ELEMENTS.TOTAL_REDUCTION_LIGNE.toggleAttribute(ATTRIBUT_HIDDEN);
ELEMENTS.TOTAL_REDUCTION_VALEUR.textContent = totalReduction;
})
.ifLeft(erreur =>
match(erreur)
.with(P.instanceOf(ValiError), e => console.error("retour ajout code promo", e.issues))
.with(P.instanceOf(ServerError), e => console.error("retour ajout code promo", e))
.with(P.instanceOf(TypeError), e => console.error("retour ajout code promo", e))
.exhaustive()
)
.run(),
)
// Un code promo doit être retiré
.with(
{
cible: P.when(cible => correspondCibleSelecteur<HTMLButtonElement>(cible, SELECTEUR_BOUTON_CODE_PROMO)),
codePromoPresent: true,
codePromoValeur: P.string,
},
({ codePromoValeur }) =>
void EitherAsync
.liftEither(eitherParse({ code: codePromoValeur }, WCStoreCartRemoveCouponArgsSchema))
.map((args: WCStoreCartRemoveCouponArgs) =>
postBackend({
corps: JSON.stringify(args),
nonce: ETATS_PAGE.nonce,
route: ROUTE_API_RETIRE_COUPON,
})
)
.chain((reponse: Response) =>
EitherAsync<ServerError, unknown>(async ({ throwE }) => {
if (estReponse500(reponse)) throwE(new ServerError("500 server Error"));
return await reponse.json();
})
)
.chain((corpsReponse: unknown) => EitherAsync.liftEither(eitherParse(corpsReponse, WCStoreCartSchema)))
.ifRight((panier: WCStoreCart) => {
const totalPanier = pipe(Number(panier.totals.total_price) / 100, String, v => `${v}`);
ELEMENTS.BOUTON_CODE_PROMO.textContent = "Apply";
ELEMENTS.CHAMP_CODE_PROMO.toggleAttribute(ATTRIBUT_DESACTIVE);
ELEMENTS.CHAMP_CODE_PROMO.value = "";
ELEMENTS.ENSEMBLE_CODE_PROMO.toggleAttribute(ATTRIBUT_CODE_PROMO_PRESENT);
ELEMENTS.TOTAL_PANIER.textContent = totalPanier;
ELEMENTS.TOTAL_REDUCTION_LIGNE.toggleAttribute(ATTRIBUT_HIDDEN);
ELEMENTS.TOTAL_REDUCTION_VALEUR.textContent = "-0€";
})
.ifLeft(erreur =>
match(erreur)
.with(P.instanceOf(ValiError), e => console.error("retour ajout code promo", e.issues))
.with(P.instanceOf(ServerError), e => console.error("retour ajout code promo", e))
.with(P.instanceOf(TypeError), e => console.error("retour ajout code promo", e))
.exhaustive()
)
.run(),
)
// Ne rien faire en dehors de ces deux situations
.with(P._, identity),
);
}; };

View file

@ -5,6 +5,8 @@ import { parse, ValiError } from "valibot";
import type { MessageMajContenuPanierSchema } from "./lib/schemas/messages.ts"; import type { MessageMajContenuPanierSchema } from "./lib/schemas/messages.ts";
import type { WCStoreCart, WCStoreCartItem, WCStoreShippingRateShippingRate } from "./lib/types/api/cart"; import type { WCStoreCart, WCStoreCartItem, WCStoreShippingRateShippingRate } from "./lib/types/api/cart";
import type { WCStoreCartApplyCouponArgs } from "./lib/types/api/cart-apply-coupon";
import type { WCStoreCartRemoveCouponArgs } from "./lib/types/api/cart-remove-coupon";
import type { WCStoreCartRemoveItemArgs } from "./lib/types/api/cart-remove-item"; import type { WCStoreCartRemoveItemArgs } from "./lib/types/api/cart-remove-item";
import type { WCStoreCartUpdateCustomerArgs } from "./lib/types/api/cart-update-customer"; import type { WCStoreCartUpdateCustomerArgs } from "./lib/types/api/cart-update-customer";
import type { WCStoreCartUpdateItemArgs } from "./lib/types/api/cart-update-item"; import type { WCStoreCartUpdateItemArgs } from "./lib/types/api/cart-update-item";
@ -43,9 +45,9 @@ import {
SELECTEUR_SOUS_TOTAL_LIVRAISON_COUT, SELECTEUR_SOUS_TOTAL_LIVRAISON_COUT,
SELECTEUR_SOUS_TOTAL_LIVRAISON_PRESTATAIRE, SELECTEUR_SOUS_TOTAL_LIVRAISON_PRESTATAIRE,
SELECTEUR_SOUS_TOTAL_PRODUITS, SELECTEUR_SOUS_TOTAL_PRODUITS,
SELECTEUR_TOTAL_PANIER,
SELECTEUR_TOTAL_REDUCTION, SELECTEUR_TOTAL_REDUCTION,
SELECTEUR_TOTAL_REDUCTION_VALEUR, SELECTEUR_TOTAL_REDUCTION_VALEUR,
SELECTEUR_TOTAL_PANIER,
} from "./constantes/dom.ts"; } from "./constantes/dom.ts";
import { NOM_CANAL_BOUTON_PANIER, NOM_CANAL_CONTENU_PANIER } from "./constantes/messages.ts"; import { NOM_CANAL_BOUTON_PANIER, NOM_CANAL_CONTENU_PANIER } from "./constantes/messages.ts";
import { import {
@ -72,8 +74,6 @@ import { WCStoreCartUpdateItemArgsSchema } from "./lib/schemas/api/cart-update-i
import { WCStoreCartSchema } from "./lib/schemas/api/cart.ts"; import { WCStoreCartSchema } from "./lib/schemas/api/cart.ts";
import { WCStoreShippingRateShippingRateSchema } from "./lib/schemas/api/couts-livraison.ts"; import { WCStoreShippingRateShippingRateSchema } from "./lib/schemas/api/couts-livraison.ts";
import { WCV3OrdersArgsSchema, WCV3OrderSchema } from "./lib/schemas/api/v3/orders.ts"; import { WCV3OrdersArgsSchema, WCV3OrderSchema } from "./lib/schemas/api/v3/orders.ts";
import type { WCStoreCartApplyCouponArgs } from "./lib/types/api/cart-apply-coupon";
import type { WCStoreCartRemoveCouponArgs } from "./lib/types/api/cart-remove-coupon";
import { import {
propEither, propEither,
recupereElementDansDocumentOuLeve, recupereElementDansDocumentOuLeve,
@ -81,13 +81,7 @@ import {
recupereElementsDocumentEither, recupereElementsDocumentEither,
} from "./lib/utils.ts"; } from "./lib/utils.ts";
import { eitherParse } from "./lib/validation.ts"; import { eitherParse } from "./lib/validation.ts";
import { initialiseElementsCodePromo } from "./scripts-page-panier-code-promo.ts";
/** États utiles pour les scripts de la page. */
type EtatsPage = {
authString: string;
/** Un nonce pour l'authentification de requêtes API vers le backend WooCommerce. */
nonce: string;
};
type ElementsEntreePanier = { type ElementsEntreePanier = {
boutonAddition: HTMLButtonElement; boutonAddition: HTMLButtonElement;
@ -96,6 +90,13 @@ type ElementsEntreePanier = {
champQuantite?: HTMLInputElement; champQuantite?: HTMLInputElement;
}; };
/** États utiles pour les scripts de la page. */
type EtatsPage = {
authString: string;
/** Un nonce pour l'authentification de requêtes API vers le backend WooCommerce. */
nonce: string;
};
// @ts-expect-error -- États injectés par le modèle PHP // @ts-expect-error -- États injectés par le modèle PHP
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- États injectés par le modèle PHP // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- États injectés par le modèle PHP
const ETATS_PAGE: EtatsPage = _etats; const ETATS_PAGE: EtatsPage = _etats;
@ -141,7 +142,7 @@ const ENSEMBLE_CODE_PROMO: HTMLDivElement = recupereElementDansDocumentOuLeve(
const CHAMP_CODE_PROMO: HTMLInputElement = recupereElementDansDocumentOuLeve( const CHAMP_CODE_PROMO: HTMLInputElement = recupereElementDansDocumentOuLeve(
SELECTEUR_CHAMP_CODE_PROMO, SELECTEUR_CHAMP_CODE_PROMO,
); );
let BOUTON_CODE_PROMO: HTMLButtonElement = recupereElementDansDocumentOuLeve( const BOUTON_CODE_PROMO: HTMLButtonElement = recupereElementDansDocumentOuLeve(
SELECTEUR_BOUTON_CODE_PROMO, SELECTEUR_BOUTON_CODE_PROMO,
); );
const FORMULAIRE_PANIER: HTMLFormElement = pipe( const FORMULAIRE_PANIER: HTMLFormElement = pipe(
@ -584,130 +585,6 @@ const initialiseBoutonActions = (): void => {
}); });
}; };
const initialiseElementsCodePromo = (): void => {
// Récupérer un code promo assigné au Panier s'il existe
const codePromoPresent = ENSEMBLE_CODE_PROMO.hasAttribute(ATTRIBUT_CODE_PROMO_PRESENT);
BOUTON_CODE_PROMO.outerHTML = BOUTON_CODE_PROMO.outerHTML;
BOUTON_CODE_PROMO = recupereElementDansDocumentOuLeve(SELECTEUR_BOUTON_CODE_PROMO);
// Au clic, retire le code promo présent
if (codePromoPresent) {
BOUTON_CODE_PROMO.addEventListener("click", () => {
const code = CHAMP_CODE_PROMO.value;
EitherAsync
.liftEither(eitherParse<typeof WCStoreCartRemoveCouponArgsSchema>({ code }, WCStoreCartRemoveCouponArgsSchema))
.map((args: WCStoreCartRemoveCouponArgs) =>
postBackend({
corps: JSON.stringify(args),
nonce: ETATS_PAGE.nonce,
route: ROUTE_API_RETIRE_COUPON,
})
)
// Traite le cas d'une erreur 500 et récupère le corps de la Réponse
.chain(async (reponse: Response) =>
EitherAsync<ServerError, unknown>(async ({ throwE }) => {
if (estReponse500(reponse)) throwE(new ServerError("500 Server Error"));
return await reponse.json();
})
)
// Vérifie le schéma de la Réponse
.chain((corpsReponse: unknown) =>
EitherAsync<ValiError<typeof WCStoreCartSchema>, WCStoreCart>(({ liftEither }) =>
liftEither(eitherParse(corpsReponse, WCStoreCartSchema))
)
)
.ifRight((panier: WCStoreCart) => {
const totalPanier: string = `${String(Number(panier.totals.total_price) / 100)}`;
ENSEMBLE_CODE_PROMO.removeAttribute(ATTRIBUT_CODE_PROMO_PRESENT);
BOUTON_CODE_PROMO.textContent = "Apply";
CHAMP_CODE_PROMO.value = "";
CHAMP_CODE_PROMO.toggleAttribute(ATTRIBUT_DESACTIVE);
TOTAL_PANIER.textContent = totalPanier;
SOUS_TOTAL_REDUCTION_VALEUR.textContent = "-0€";
SOUS_TOTAL_REDUCTION_LIGNE.setAttribute(ATTRIBUT_HIDDEN, "");
initialiseElementsCodePromo();
})
.ifLeft(e => {
console.error("requête", e);
if (e instanceof ValiError) console.error(e.issues);
})
.run();
});
return;
}
// Au clic, ajoute le code promo demandé
BOUTON_CODE_PROMO.addEventListener("click", () => {
// Récupère le code promo du champ et valide sa forme
const codePromo: Either<
TypeError | ValiError<typeof WCStoreCartApplyCouponArgsSchema>,
WCStoreCartApplyCouponArgs
> = Maybe
.fromFalsy(CHAMP_CODE_PROMO.value.trim())
// Transforme le Maybe en Either avec à Gauche une Erreur en cas d'absence de valeur, à Droite le code renseigné
.toEither(new TypeError("Aucun code promo n'a été renseigné."))
.chain((code: string) => eitherParse({ code }, WCStoreCartApplyCouponArgsSchema))
.ifRight((args: WCStoreCartApplyCouponArgs) => console.debug(args))
// Traitement différencié des Erreurs
.ifLeft(erreur =>
match(erreur)
.with(P.instanceOf(ValiError), e => console.error("codePromo", e.issues))
.with(P.instanceOf(TypeError), e => console.error("codePromo", e))
.exhaustive()
);
EitherAsync
.liftEither(codePromo)
// Réalise la requête
.map(async args =>
await postBackend({
corps: JSON.stringify(args),
nonce: ETATS_PAGE.nonce,
route: ROUTE_API_APPLIQUE_COUPON,
})
)
// Traite le cas d'une erreur 500 et récupère le corps de la Réponse
.chain(async (reponse: Response) =>
EitherAsync<ServerError, unknown>(async ({ throwE }) => {
if (estReponse500(reponse)) throwE(new ServerError("500 Server Error"));
return await reponse.json();
})
)
// Vérifie le schéma de la Réponse
.chain((corpsReponse: unknown) =>
EitherAsync<ValiError<typeof WCStoreCartSchema>, WCStoreCart>(({ liftEither }) =>
liftEither(eitherParse(corpsReponse, WCStoreCartSchema))
)
)
.ifRight((panier: WCStoreCart) => {
const totalReduction: string = `-${String(Number(panier.totals.total_discount) / 100)}`;
const totalPanier: string = `${Number(panier.totals.total_price) / 100}`;
ENSEMBLE_CODE_PROMO.setAttribute(ATTRIBUT_CODE_PROMO_PRESENT, "");
BOUTON_CODE_PROMO.textContent = "Remove";
CHAMP_CODE_PROMO.value = panier.coupons[0].code;
CHAMP_CODE_PROMO.toggleAttribute(ATTRIBUT_DESACTIVE);
TOTAL_PANIER.textContent = totalPanier;
SOUS_TOTAL_REDUCTION_VALEUR.textContent = totalReduction;
SOUS_TOTAL_REDUCTION_LIGNE.removeAttribute(ATTRIBUT_HIDDEN);
initialiseElementsCodePromo();
})
.ifLeft(e => {
console.error("requête", e);
if (e instanceof ValiError) console.error(e.issues);
})
.run();
});
};
const initialiseBoutonCreationCommande = (): void => { const initialiseBoutonCreationCommande = (): void => {
// Permet de supprimer tout Écouteur d'Évènement assigné au Bouton // Permet de supprimer tout Écouteur d'Évènement assigné au Bouton
BOUTON_ACTIONS_FORMULAIRE.outerHTML = BOUTON_ACTIONS_FORMULAIRE.outerHTML; BOUTON_ACTIONS_FORMULAIRE.outerHTML = BOUTON_ACTIONS_FORMULAIRE.outerHTML;
@ -769,8 +646,8 @@ const initialiseBoutonCreationCommande = (): void => {
postcode: donneesFormulaire["facturation-code-postal"] ?? donneesFormulaire["livraison-code-postal"] ?? "", postcode: donneesFormulaire["facturation-code-postal"] ?? donneesFormulaire["livraison-code-postal"] ?? "",
state: donneesFormulaire["facturation-region-etat"] ?? donneesFormulaire["livraison-region-etat"] ?? "", state: donneesFormulaire["facturation-region-etat"] ?? donneesFormulaire["livraison-region-etat"] ?? "",
}, },
customer_note: INSTRUCTIONS_CLIENT.value,
currency: methodeLivraison.currency_code, currency: methodeLivraison.currency_code,
customer_note: INSTRUCTIONS_CLIENT.value,
line_items: articlesPanier, line_items: articlesPanier,
shipping: { shipping: {
address_1: donneesFormulaire["livraison-adresse"] ?? "", address_1: donneesFormulaire["livraison-adresse"] ?? "",

View file

@ -31,8 +31,8 @@ import { leveServerError, reporteErreur } from "./lib/erreurs.ts";
import { estError, estHTMLSelectElement, estReponse500 } from "./lib/gardes.ts"; import { estError, estHTMLSelectElement, estReponse500 } from "./lib/gardes.ts";
import { emetMessageMajBoutonPanier } from "./lib/messages.ts"; import { emetMessageMajBoutonPanier } from "./lib/messages.ts";
import { traiteReponseBackendWCSelonCodesHTTP } from "./lib/reseau.ts"; import { traiteReponseBackendWCSelonCodesHTTP } from "./lib/reseau.ts";
import { WCStoreCartSchema } from "./lib/schemas/api/cart.ts";
import { WCStoreCartAddItemArgsSchema } from "./lib/schemas/api/cart-add-item.ts"; import { WCStoreCartAddItemArgsSchema } from "./lib/schemas/api/cart-add-item.ts";
import { WCStoreCartSchema } from "./lib/schemas/api/cart.ts";
import { import {
recupereElementDansDocumentOuLeve, recupereElementDansDocumentOuLeve,
recupereElementDocumentEither, recupereElementDocumentEither,
@ -41,6 +41,7 @@ import {
} from "./lib/utils.ts"; } from "./lib/utils.ts";
import { eitherParse } from "./lib/validation.ts"; import { eitherParse } from "./lib/validation.ts";
type EnsembleLienContenu = [HTMLAnchorElement, HTMLElement];
/** États utiles pour les scripts de la page. */ /** États utiles pour les scripts de la page. */
type EtatsPage = { type EtatsPage = {
/** L'ID en base de données du Produit. */ /** L'ID en base de données du Produit. */
@ -48,7 +49,6 @@ type EtatsPage = {
/** Un nonce pour l'authentification de requêtes API vers le backend WooCommerce. */ /** Un nonce pour l'authentification de requêtes API vers le backend WooCommerce. */
nonce: string; nonce: string;
}; };
type EnsembleLienContenu = [HTMLAnchorElement, HTMLElement];
// @ts-expect-error -- États injectés par le modèle PHP // @ts-expect-error -- États injectés par le modèle PHP
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- États injectés par le modèle PHP // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- États injectés par le modèle PHP

View file

@ -1,12 +1,12 @@
/// <reference types="vite/client" /> /// <reference types="vite/client" />
interface ImportMeta {
readonly env: ImportMetaEnv;
}
interface ImportMetaEnv { interface ImportMetaEnv {
/** URL du endpoint pour le report d'Erreurs au service GlitchTip. */ /** URL du endpoint pour le report d'Erreurs au service GlitchTip. */
readonly VITE_GLITCHTIP_NSD: string; readonly VITE_GLITCHTIP_NSD: string;
/** URL du site. */ /** URL du site. */
readonly VITE_URL: string; readonly VITE_URL: string;
} }
interface ImportMeta {
readonly env: ImportMetaEnv;
}