2024-11-14
19
.ddev/addon-metadata/redis/manifest.yaml
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
name: redis
|
||||
repository: ddev/ddev-redis-7
|
||||
version: v2.7.1
|
||||
install_date: "2024-11-14T13:56:41+01:00"
|
||||
project_files:
|
||||
- commands/redis/redis
|
||||
- commands/redis/redis-flush
|
||||
- redis/redis.conf
|
||||
- redis/advanced.conf
|
||||
- redis/append.conf
|
||||
- redis/general.conf
|
||||
- redis/io.conf
|
||||
- redis/memory.conf
|
||||
- redis/network.conf
|
||||
- redis/security.conf
|
||||
- redis/snapshots.conf
|
||||
- docker-compose.redis.yaml
|
||||
global_files: []
|
||||
removal_actions: []
|
||||
7
.ddev/commands/redis/redis
Executable file
|
|
@ -0,0 +1,7 @@
|
|||
#!/bin/sh
|
||||
#ddev-generated
|
||||
## Description: Run redis-cli inside the redis container
|
||||
## Usage: redis [flags] [args]
|
||||
## Example: "redis KEYS *" or "ddev redis-cli INFO" or "ddev redis-cli --version"
|
||||
|
||||
redis-cli -p 6379 -h redis -a redis --no-auth-warning "$@"
|
||||
7
.ddev/commands/redis/redis-cli
Executable file
|
|
@ -0,0 +1,7 @@
|
|||
#!/bin/bash
|
||||
#ddev-generated
|
||||
## Description: Run redis-cli inside the redis container
|
||||
## Usage: redis-cli [flags] [args]
|
||||
## Example: "ddev redis-cli KEYS *" or "ddev redis-cli INFO" or "ddev redis-cli --version"
|
||||
|
||||
redis-cli -p 6379 -h redis $@
|
||||
7
.ddev/commands/redis/redis-flush
Executable file
|
|
@ -0,0 +1,7 @@
|
|||
#!/bin/sh
|
||||
#ddev-generated
|
||||
## Description: Run redis-cli inside the redis container
|
||||
## Usage: redis-flush
|
||||
## Example: "redis-flush"
|
||||
|
||||
redis-cli -a redis --no-auth-warning FLUSHALL ASYNC
|
||||
|
|
@ -225,12 +225,12 @@ corepack_enable: true
|
|||
# The default time that DDEV waits for all containers to become ready can be increased from
|
||||
# the default 120. This helps in importing huge databases, for example.
|
||||
|
||||
# web_extra_exposed_ports:
|
||||
# - name: nodejs
|
||||
#web_extra_exposed_ports:
|
||||
#- name: nodejs
|
||||
# container_port: 3000
|
||||
# http_port: 2999
|
||||
# https_port: 3000
|
||||
# - name: something
|
||||
#- name: something
|
||||
# container_port: 4000
|
||||
# https_port: 4000
|
||||
# http_port: 3999
|
||||
|
|
@ -248,11 +248,11 @@ corepack_enable: true
|
|||
# http_port: 9998
|
||||
# https_port: 9999
|
||||
|
||||
# web_extra_daemons:
|
||||
# - name: "http-1"
|
||||
#web_extra_daemons:
|
||||
#- name: "http-1"
|
||||
# command: "/var/www/html/node_modules/.bin/http-server -p 3000"
|
||||
# directory: /var/www/html
|
||||
# - name: "http-2"
|
||||
#- name: "http-2"
|
||||
# command: "/var/www/html/node_modules/.bin/http-server /var/www/html/sub -p 3000"
|
||||
# directory: /var/www/html
|
||||
|
||||
|
|
@ -278,7 +278,7 @@ corepack_enable: true
|
|||
# See https://ddev.readthedocs.io/en/stable/users/extend/custom-commands/ for more
|
||||
# information on the commands that can be extended and the tasks you can define
|
||||
# for them. Example:
|
||||
# hooks:
|
||||
#hooks:
|
||||
# Un-comment to emit the WP CLI version after ddev start.
|
||||
# post-start:
|
||||
# - exec: wp cli version
|
||||
|
|
|
|||
34
.ddev/docker-compose.redis.yaml
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
# ddev-generated
|
||||
volumes:
|
||||
redis:
|
||||
name: ddev-${DDEV_SITENAME}-redis
|
||||
labels:
|
||||
com.ddev.site-name: ${DDEV_SITENAME}
|
||||
|
||||
services:
|
||||
redis:
|
||||
container_name: ddev-${DDEV_SITENAME}-redis
|
||||
hostname: ddev-${DDEV_SITENAME}-minio
|
||||
image: redis:7.2-alpine
|
||||
command: /etc/redis/conf/redis.conf
|
||||
volumes:
|
||||
- ".:/mnt/ddev_config"
|
||||
- "ddev-global-cache:/mnt/ddev-global-cache"
|
||||
- "./redis:/etc/redis/conf"
|
||||
- "redis:/data"
|
||||
expose:
|
||||
- 6379
|
||||
networks:
|
||||
- default
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: "2.5"
|
||||
memory: "768M"
|
||||
reservations:
|
||||
cpus: "1.5"
|
||||
memory: "512M"
|
||||
restart: "no"
|
||||
labels:
|
||||
com.ddev.site-name: ${DDEV_SITENAME}
|
||||
com.ddev.approot: $DDEV_APPROOT
|
||||
341
.ddev/redis/advanced.conf
Normal file
|
|
@ -0,0 +1,341 @@
|
|||
# #ddev-generated
|
||||
############################### ADVANCED CONFIG ###############################
|
||||
|
||||
# Hashes are encoded using a memory efficient data structure when they have a
|
||||
# small number of entries, and the biggest entry does not exceed a given
|
||||
# threshold. These thresholds can be configured using the following directives.
|
||||
hash-max-ziplist-entries 512
|
||||
hash-max-ziplist-value 64
|
||||
|
||||
# Lists are also encoded in a special way to save a lot of space.
|
||||
# The number of entries allowed per internal list node can be specified
|
||||
# as a fixed maximum size or a maximum number of elements.
|
||||
# For a fixed maximum size, use -5 through -1, meaning:
|
||||
# -5: max size: 64 Kb <-- not recommended for normal workloads
|
||||
# -4: max size: 32 Kb <-- not recommended
|
||||
# -3: max size: 16 Kb <-- probably not recommended
|
||||
# -2: max size: 8 Kb <-- good
|
||||
# -1: max size: 4 Kb <-- good
|
||||
# Positive numbers mean store up to _exactly_ that number of elements
|
||||
# per list node.
|
||||
# The highest performing option is usually -2 (8 Kb size) or -1 (4 Kb size),
|
||||
# but if your use case is unique, adjust the settings as necessary.
|
||||
list-max-ziplist-size -2
|
||||
|
||||
# Lists may also be compressed.
|
||||
# Compress depth is the number of quicklist ziplist nodes from *each* side of
|
||||
# the list to *exclude* from compression. The head and tail of the list
|
||||
# are always uncompressed for fast push/pop operations. Settings are:
|
||||
# 0: disable all list compression
|
||||
# 1: depth 1 means "don't start compressing until after 1 node into the list,
|
||||
# going from either the head or tail"
|
||||
# So: [head]->node->node->...->node->[tail]
|
||||
# [head], [tail] will always be uncompressed; inner nodes will compress.
|
||||
# 2: [head]->[next]->node->node->...->node->[prev]->[tail]
|
||||
# 2 here means: don't compress head or head->next or tail->prev or tail,
|
||||
# but compress all nodes between them.
|
||||
# 3: [head]->[next]->[next]->node->node->...->node->[prev]->[prev]->[tail]
|
||||
# etc.
|
||||
list-compress-depth 0
|
||||
|
||||
# Sets have a special encoding in just one case: when a set is composed
|
||||
# of just strings that happen to be integers in radix 10 in the range
|
||||
# of 64 bit signed integers.
|
||||
# The following configuration setting sets the limit in the size of the
|
||||
# set in order to use this special memory saving encoding.
|
||||
set-max-intset-entries 512
|
||||
|
||||
# Similarly to hashes and lists, sorted sets are also specially encoded in
|
||||
# order to save a lot of space. This encoding is only used when the length and
|
||||
# elements of a sorted set are below the following limits:
|
||||
zset-max-ziplist-entries 128
|
||||
zset-max-ziplist-value 64
|
||||
|
||||
# HyperLogLog sparse representation bytes limit. The limit includes the
|
||||
# 16 bytes header. When an HyperLogLog using the sparse representation crosses
|
||||
# this limit, it is converted into the dense representation.
|
||||
#
|
||||
# A value greater than 16000 is totally useless, since at that point the
|
||||
# dense representation is more memory efficient.
|
||||
#
|
||||
# The suggested value is ~ 3000 in order to have the benefits of
|
||||
# the space efficient encoding without slowing down too much PFADD,
|
||||
# which is O(N) with the sparse encoding. The value can be raised to
|
||||
# ~ 10000 when CPU is not a concern, but space is, and the data set is
|
||||
# composed of many HyperLogLogs with cardinality in the 0 - 15000 range.
|
||||
hll-sparse-max-bytes 3000
|
||||
|
||||
# Streams macro node max size / items. The stream data structure is a radix
|
||||
# tree of big nodes that encode multiple items inside. Using this configuration
|
||||
# it is possible to configure how big a single node can be in bytes, and the
|
||||
# maximum number of items it may contain before switching to a new node when
|
||||
# appending new stream entries. If any of the following settings are set to
|
||||
# zero, the limit is ignored, so for instance it is possible to set just a
|
||||
# max entires limit by setting max-bytes to 0 and max-entries to the desired
|
||||
# value.
|
||||
stream-node-max-bytes 4096
|
||||
stream-node-max-entries 100
|
||||
|
||||
# Active rehashing uses 1 millisecond every 100 milliseconds of CPU time in
|
||||
# order to help rehashing the main Redis hash table (the one mapping top-level
|
||||
# keys to values). The hash table implementation Redis uses (see dict.c)
|
||||
# performs a lazy rehashing: the more operation you run into a hash table
|
||||
# that is rehashing, the more rehashing "steps" are performed, so if the
|
||||
# server is idle the rehashing is never complete and some more memory is used
|
||||
# by the hash table.
|
||||
#
|
||||
# The default is to use this millisecond 10 times every second in order to
|
||||
# actively rehash the main dictionaries, freeing memory when possible.
|
||||
#
|
||||
# If unsure:
|
||||
# use "activerehashing no" if you have hard latency requirements and it is
|
||||
# not a good thing in your environment that Redis can reply from time to time
|
||||
# to queries with 2 milliseconds delay.
|
||||
#
|
||||
# use "activerehashing yes" if you don't have such hard requirements but
|
||||
# want to free memory asap when possible.
|
||||
activerehashing yes
|
||||
|
||||
# The client output buffer limits can be used to force disconnection of clients
|
||||
# that are not reading data from the server fast enough for some reason (a
|
||||
# common reason is that a Pub/Sub client can't consume messages as fast as the
|
||||
# publisher can produce them).
|
||||
#
|
||||
# The limit can be set differently for the three different classes of clients:
|
||||
#
|
||||
# normal -> normal clients including MONITOR clients
|
||||
# replica -> replica clients
|
||||
# pubsub -> clients subscribed to at least one pubsub channel or pattern
|
||||
#
|
||||
# The syntax of every client-output-buffer-limit directive is the following:
|
||||
#
|
||||
# client-output-buffer-limit <class> <hard limit> <soft limit> <soft seconds>
|
||||
#
|
||||
# A client is immediately disconnected once the hard limit is reached, or if
|
||||
# the soft limit is reached and remains reached for the specified number of
|
||||
# seconds (continuously).
|
||||
# So for instance if the hard limit is 32 megabytes and the soft limit is
|
||||
# 16 megabytes / 10 seconds, the client will get disconnected immediately
|
||||
# if the size of the output buffers reach 32 megabytes, but will also get
|
||||
# disconnected if the client reaches 16 megabytes and continuously overcomes
|
||||
# the limit for 10 seconds.
|
||||
#
|
||||
# By default normal clients are not limited because they don't receive data
|
||||
# without asking (in a push way), but just after a request, so only
|
||||
# asynchronous clients may create a scenario where data is requested faster
|
||||
# than it can read.
|
||||
#
|
||||
# Instead there is a default limit for pubsub and replica clients, since
|
||||
# subscribers and replicas receive data in a push fashion.
|
||||
#
|
||||
# Both the hard or the soft limit can be disabled by setting them to zero.
|
||||
client-output-buffer-limit normal 0 0 0
|
||||
client-output-buffer-limit replica 256mb 64mb 60
|
||||
client-output-buffer-limit pubsub 32mb 8mb 60
|
||||
|
||||
# Client query buffers accumulate new commands. They are limited to a fixed
|
||||
# amount by default in order to avoid that a protocol desynchronization (for
|
||||
# instance due to a bug in the client) will lead to unbound memory usage in
|
||||
# the query buffer. However you can configure it here if you have very special
|
||||
# needs, such us huge multi/exec requests or alike.
|
||||
#
|
||||
# client-query-buffer-limit 1gb
|
||||
|
||||
# In the Redis protocol, bulk requests, that are, elements representing single
|
||||
# strings, are normally limited to 512 mb. However you can change this limit
|
||||
# here, but must be 1mb or greater
|
||||
#
|
||||
# proto-max-bulk-len 512mb
|
||||
|
||||
# Redis calls an internal function to perform many background tasks, like
|
||||
# closing connections of clients in timeout, purging expired keys that are
|
||||
# never requested, and so forth.
|
||||
#
|
||||
# Not all tasks are performed with the same frequency, but Redis checks for
|
||||
# tasks to perform according to the specified "hz" value.
|
||||
#
|
||||
# By default "hz" is set to 10. Raising the value will use more CPU when
|
||||
# Redis is idle, but at the same time will make Redis more responsive when
|
||||
# there are many keys expiring at the same time, and timeouts may be
|
||||
# handled with more precision.
|
||||
#
|
||||
# The range is between 1 and 500, however a value over 100 is usually not
|
||||
# a good idea. Most users should use the default of 10 and raise this up to
|
||||
# 100 only in environments where very low latency is required.
|
||||
hz 10
|
||||
|
||||
# Normally it is useful to have an HZ value which is proportional to the
|
||||
# number of clients connected. This is useful in order, for instance, to
|
||||
# avoid too many clients are processed for each background task invocation
|
||||
# in order to avoid latency spikes.
|
||||
#
|
||||
# Since the default HZ value by default is conservatively set to 10, Redis
|
||||
# offers, and enables by default, the ability to use an adaptive HZ value
|
||||
# which will temporarily raise when there are many connected clients.
|
||||
#
|
||||
# When dynamic HZ is enabled, the actual configured HZ will be used
|
||||
# as a baseline, but multiples of the configured HZ value will be actually
|
||||
# used as needed once more clients are connected. In this way an idle
|
||||
# instance will use very little CPU time while a busy instance will be
|
||||
# more responsive.
|
||||
dynamic-hz yes
|
||||
|
||||
# When a child rewrites the AOF file, if the following option is enabled
|
||||
# the file will be fsync-ed every 32 MB of data generated. This is useful
|
||||
# in order to commit the file to the disk more incrementally and avoid
|
||||
# big latency spikes.
|
||||
aof-rewrite-incremental-fsync yes
|
||||
|
||||
# When redis saves RDB file, if the following option is enabled
|
||||
# the file will be fsync-ed every 32 MB of data generated. This is useful
|
||||
# in order to commit the file to the disk more incrementally and avoid
|
||||
# big latency spikes.
|
||||
rdb-save-incremental-fsync yes
|
||||
|
||||
# Redis LFU eviction (see maxmemory setting) can be tuned. However it is a good
|
||||
# idea to start with the default settings and only change them after investigating
|
||||
# how to improve the performances and how the keys LFU change over time, which
|
||||
# is possible to inspect via the OBJECT FREQ command.
|
||||
#
|
||||
# There are two tunable parameters in the Redis LFU implementation: the
|
||||
# counter logarithm factor and the counter decay time. It is important to
|
||||
# understand what the two parameters mean before changing them.
|
||||
#
|
||||
# The LFU counter is just 8 bits per key, it's maximum value is 255, so Redis
|
||||
# uses a probabilistic increment with logarithmic behavior. Given the value
|
||||
# of the old counter, when a key is accessed, the counter is incremented in
|
||||
# this way:
|
||||
#
|
||||
# 1. A random number R between 0 and 1 is extracted.
|
||||
# 2. A probability P is calculated as 1/(old_value*lfu_log_factor+1).
|
||||
# 3. The counter is incremented only if R < P.
|
||||
#
|
||||
# The default lfu-log-factor is 10. This is a table of how the frequency
|
||||
# counter changes with a different number of accesses with different
|
||||
# logarithmic factors:
|
||||
#
|
||||
# +--------+------------+------------+------------+------------+------------+
|
||||
# | factor | 100 hits | 1000 hits | 100K hits | 1M hits | 10M hits |
|
||||
# +--------+------------+------------+------------+------------+------------+
|
||||
# | 0 | 104 | 255 | 255 | 255 | 255 |
|
||||
# +--------+------------+------------+------------+------------+------------+
|
||||
# | 1 | 18 | 49 | 255 | 255 | 255 |
|
||||
# +--------+------------+------------+------------+------------+------------+
|
||||
# | 10 | 10 | 18 | 142 | 255 | 255 |
|
||||
# +--------+------------+------------+------------+------------+------------+
|
||||
# | 100 | 8 | 11 | 49 | 143 | 255 |
|
||||
# +--------+------------+------------+------------+------------+------------+
|
||||
#
|
||||
# NOTE: The above table was obtained by running the following commands:
|
||||
#
|
||||
# redis-benchmark -n 1000000 incr foo
|
||||
# redis-cli object freq foo
|
||||
#
|
||||
# NOTE 2: The counter initial value is 5 in order to give new objects a chance
|
||||
# to accumulate hits.
|
||||
#
|
||||
# The counter decay time is the time, in minutes, that must elapse in order
|
||||
# for the key counter to be divided by two (or decremented if it has a value
|
||||
# less <= 10).
|
||||
#
|
||||
# The default value for the lfu-decay-time is 1. A special value of 0 means to
|
||||
# decay the counter every time it happens to be scanned.
|
||||
#
|
||||
# lfu-log-factor 10
|
||||
# lfu-decay-time 1
|
||||
|
||||
############################## DEBUG COMMAND #############################
|
||||
|
||||
enable-debug-command yes
|
||||
|
||||
########################### ACTIVE DEFRAGMENTATION #######################
|
||||
#
|
||||
# What is active defragmentation?
|
||||
# -------------------------------
|
||||
#
|
||||
# Active (online) defragmentation allows a Redis server to compact the
|
||||
# spaces left between small allocations and deallocations of data in memory,
|
||||
# thus allowing to reclaim back memory.
|
||||
#
|
||||
# Fragmentation is a natural process that happens with every allocator (but
|
||||
# less so with Jemalloc, fortunately) and certain workloads. Normally a server
|
||||
# restart is needed in order to lower the fragmentation, or at least to flush
|
||||
# away all the data and create it again. However thanks to this feature
|
||||
# implemented by Oran Agra for Redis 4.0 this process can happen at runtime
|
||||
# in a "hot" way, while the server is running.
|
||||
#
|
||||
# Basically when the fragmentation is over a certain level (see the
|
||||
# configuration options below) Redis will start to create new copies of the
|
||||
# values in contiguous memory regions by exploiting certain specific Jemalloc
|
||||
# features (in order to understand if an allocation is causing fragmentation
|
||||
# and to allocate it in a better place), and at the same time, will release the
|
||||
# old copies of the data. This process, repeated incrementally for all the keys
|
||||
# will cause the fragmentation to drop back to normal values.
|
||||
#
|
||||
# Important things to understand:
|
||||
#
|
||||
# 1. This feature is disabled by default, and only works if you compiled Redis
|
||||
# to use the copy of Jemalloc we ship with the source code of Redis.
|
||||
# This is the default with Linux builds.
|
||||
#
|
||||
# 2. You never need to enable this feature if you don't have fragmentation
|
||||
# issues.
|
||||
#
|
||||
# 3. Once you experience fragmentation, you can enable this feature when
|
||||
# needed with the command "CONFIG SET activedefrag yes".
|
||||
#
|
||||
# The configuration parameters are able to fine tune the behavior of the
|
||||
# defragmentation process. If you are not sure about what they mean it is
|
||||
# a good idea to leave the defaults untouched.
|
||||
|
||||
# Enabled active defragmentation
|
||||
# activedefrag no
|
||||
|
||||
# Minimum amount of fragmentation waste to start active defrag
|
||||
# active-defrag-ignore-bytes 100mb
|
||||
|
||||
# Minimum percentage of fragmentation to start active defrag
|
||||
# active-defrag-threshold-lower 10
|
||||
|
||||
# Maximum percentage of fragmentation at which we use maximum effort
|
||||
# active-defrag-threshold-upper 100
|
||||
|
||||
# Minimal effort for defrag in CPU percentage, to be used when the lower
|
||||
# threshold is reached
|
||||
# active-defrag-cycle-min 1
|
||||
|
||||
# Maximal effort for defrag in CPU percentage, to be used when the upper
|
||||
# threshold is reached
|
||||
# active-defrag-cycle-max 25
|
||||
|
||||
# Maximum number of set/hash/zset/list fields that will be processed from
|
||||
# the main dictionary scan
|
||||
# active-defrag-max-scan-fields 1000
|
||||
|
||||
# Jemalloc background thread for purging will be enabled by default
|
||||
jemalloc-bg-thread yes
|
||||
|
||||
# It is possible to pin different threads and processes of Redis to specific
|
||||
# CPUs in your system, in order to maximize the performances of the server.
|
||||
# This is useful both in order to pin different Redis threads in different
|
||||
# CPUs, but also in order to make sure that multiple Redis instances running
|
||||
# in the same host will be pinned to different CPUs.
|
||||
#
|
||||
# Normally you can do this using the "taskset" command, however it is also
|
||||
# possible to this via Redis configuration directly, both in Linux and FreeBSD.
|
||||
#
|
||||
# You can pin the server/IO threads, bio threads, aof rewrite child process, and
|
||||
# the bgsave child process. The syntax to specify the cpu list is the same as
|
||||
# the taskset command:
|
||||
#
|
||||
# Set redis server/io threads to cpu affinity 0,2,4,6:
|
||||
# server_cpulist 0-7:2
|
||||
#
|
||||
# Set bio threads to cpu affinity 1,3:
|
||||
# bio_cpulist 1,3
|
||||
#
|
||||
# Set aof rewrite child process to cpu affinity 8,9,10,11:
|
||||
# aof_rewrite_cpulist 8-11
|
||||
#
|
||||
# Set bgsave child process to cpu affinity 1,10,11
|
||||
# bgsave_cpulist 1,10-11
|
||||
133
.ddev/redis/append.conf
Normal file
|
|
@ -0,0 +1,133 @@
|
|||
# #ddev-generated
|
||||
############################## APPEND ONLY MODE ###############################
|
||||
|
||||
# By default Redis asynchronously dumps the dataset on disk. This mode is
|
||||
# good enough in many applications, but an issue with the Redis process or
|
||||
# a power outage may result into a few minutes of writes lost (depending on
|
||||
# the configured save points).
|
||||
#
|
||||
# The Append Only File is an alternative persistence mode that provides
|
||||
# much better durability. For instance using the default data fsync policy
|
||||
# (see later in the config file) Redis can lose just one second of writes in a
|
||||
# dramatic event like a server power outage, or a single write if something
|
||||
# wrong with the Redis process itself happens, but the operating system is
|
||||
# still running correctly.
|
||||
#
|
||||
# AOF and RDB persistence can be enabled at the same time without problems.
|
||||
# If the AOF is enabled on startup Redis will load the AOF, that is the file
|
||||
# with the better durability guarantees.
|
||||
#
|
||||
# Please check http://redis.io/topics/persistence for more information.
|
||||
|
||||
appendonly yes
|
||||
|
||||
# The name of the append only file (default: "appendonly.aof")
|
||||
|
||||
appendfilename "appendonly.aof"
|
||||
|
||||
# For convenience, Redis stores all persistent append-only files in a dedicated
|
||||
# directory. The name of the directory is determined by the appenddirname
|
||||
# configuration parameter.
|
||||
|
||||
appenddirname "append"
|
||||
|
||||
# The fsync() call tells the Operating System to actually write data on disk
|
||||
# instead of waiting for more data in the output buffer. Some OS will really flush
|
||||
# data on disk, some other OS will just try to do it ASAP.
|
||||
#
|
||||
# Redis supports three different modes:
|
||||
#
|
||||
# no: don't fsync, just let the OS flush the data when it wants. Faster.
|
||||
# always: fsync after every write to the append only log. Slow, Safest.
|
||||
# everysec: fsync only one time every second. Compromise.
|
||||
#
|
||||
# The default is "everysec", as that's usually the right compromise between
|
||||
# speed and data safety. It's up to you to understand if you can relax this to
|
||||
# "no" that will let the operating system flush the output buffer when
|
||||
# it wants, for better performances (but if you can live with the idea of
|
||||
# some data loss consider the default persistence mode that's snapshotting),
|
||||
# or on the contrary, use "always" that's very slow but a bit safer than
|
||||
# everysec.
|
||||
#
|
||||
# More details please check the following article:
|
||||
# http://antirez.com/post/redis-persistence-demystified.html
|
||||
#
|
||||
# If unsure, use "everysec".
|
||||
|
||||
appendfsync no
|
||||
|
||||
# When the AOF fsync policy is set to always or everysec, and a background
|
||||
# saving process (a background save or AOF log background rewriting) is
|
||||
# performing a lot of I/O against the disk, in some Linux configurations
|
||||
# Redis may block too long on the fsync() call. Note that there is no fix for
|
||||
# this currently, as even performing fsync in a different thread will block
|
||||
# our synchronous write(2) call.
|
||||
#
|
||||
# In order to mitigate this problem it's possible to use the following option
|
||||
# that will prevent fsync() from being called in the main process while a
|
||||
# BGSAVE or BGREWRITEAOF is in progress.
|
||||
#
|
||||
# This means that while another child is saving, the durability of Redis is
|
||||
# the same as "appendfsync none". In practical terms, this means that it is
|
||||
# possible to lose up to 30 seconds of log in the worst scenario (with the
|
||||
# default Linux settings).
|
||||
#
|
||||
# If you have latency problems turn this to "yes". Otherwise leave it as
|
||||
# "no" that is the safest pick from the point of view of durability.
|
||||
|
||||
no-appendfsync-on-rewrite no
|
||||
|
||||
# Automatic rewrite of the append only file.
|
||||
# Redis is able to automatically rewrite the log file implicitly calling
|
||||
# BGREWRITEAOF when the AOF log size grows by the specified percentage.
|
||||
#
|
||||
# This is how it works: Redis remembers the size of the AOF file after the
|
||||
# latest rewrite (if no rewrite has happened since the restart, the size of
|
||||
# the AOF at startup is used).
|
||||
#
|
||||
# This base size is compared to the current size. If the current size is
|
||||
# bigger than the specified percentage, the rewrite is triggered. Also
|
||||
# you need to specify a minimal size for the AOF file to be rewritten, this
|
||||
# is useful to avoid rewriting the AOF file even if the percentage increase
|
||||
# is reached but it is still pretty small.
|
||||
#
|
||||
# Specify a percentage of zero in order to disable the automatic AOF
|
||||
# rewrite feature.
|
||||
|
||||
auto-aof-rewrite-percentage 100
|
||||
auto-aof-rewrite-min-size 64mb
|
||||
|
||||
# An AOF file may be found to be truncated at the end during the Redis
|
||||
# startup process, when the AOF data gets loaded back into memory.
|
||||
# This may happen when the system where Redis is running
|
||||
# crashes, especially when an ext4 filesystem is mounted without the
|
||||
# data=ordered option (however this can't happen when Redis itself
|
||||
# crashes or aborts but the operating system still works correctly).
|
||||
#
|
||||
# Redis can either exit with an error when this happens, or load as much
|
||||
# data as possible (the default now) and start if the AOF file is found
|
||||
# to be truncated at the end. The following option controls this behavior.
|
||||
#
|
||||
# If aof-load-truncated is set to yes, a truncated AOF file is loaded and
|
||||
# the Redis server starts emitting a log to inform the user of the event.
|
||||
# Otherwise if the option is set to no, the server aborts with an error
|
||||
# and refuses to start. When the option is set to no, the user requires
|
||||
# to fix the AOF file using the "redis-check-aof" utility before to restart
|
||||
# the server.
|
||||
#
|
||||
# Note that if the AOF file will be found to be corrupted in the middle
|
||||
# the server will still exit with an error. This option only applies when
|
||||
# Redis will try to read more data from the AOF file but not enough bytes
|
||||
# will be found.
|
||||
aof-load-truncated yes
|
||||
|
||||
# When rewriting the AOF file, Redis is able to use an RDB preamble in the
|
||||
# AOF file for faster rewrites and recoveries. When this option is turned
|
||||
# on the rewritten AOF file is composed of two different stanzas:
|
||||
#
|
||||
# [RDB file][AOF tail]
|
||||
#
|
||||
# When loading, Redis recognizes that the AOF file starts with the "REDIS"
|
||||
# string and loads the prefixed RDB file, then continues loading the AOF
|
||||
# tail.
|
||||
aof-use-rdb-preamble yes
|
||||
44
.ddev/redis/general.conf
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
# #ddev-generated
|
||||
################################# GENERAL #####################################
|
||||
|
||||
# By default Redis does not run as a daemon. Use 'yes' if you need it.
|
||||
# Note that Redis will write a pid file in /var/run/redis.pid when daemonized.
|
||||
daemonize no
|
||||
|
||||
# If you run Redis from upstart or systemd, Redis can interact with your
|
||||
# supervision tree. Options:
|
||||
# supervised no - no supervision interaction
|
||||
# supervised upstart - signal upstart by putting Redis into SIGSTOP mode
|
||||
# requires "expect stop" in your upstart job config
|
||||
# supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET
|
||||
# supervised auto - detect upstart or systemd method based on
|
||||
# UPSTART_JOB or NOTIFY_SOCKET environment variables
|
||||
# Note: these supervision methods only signal "process is ready."
|
||||
# They do not enable continuous pings back to your supervisor.
|
||||
supervised no
|
||||
|
||||
# Specify the server verbosity level.
|
||||
# This can be one of:
|
||||
# debug (a lot of information, useful for development/testing)
|
||||
# verbose (many rarely useful info, but not a mess like the debug level)
|
||||
# notice (moderately verbose, what you want in production probably)
|
||||
# warning (only very important / critical messages are logged)
|
||||
loglevel notice
|
||||
|
||||
# Specify the log file name. Also the empty string can be used to force
|
||||
# Redis to log on the standard output. Note that if you use standard
|
||||
# output for logging but daemonize, logs will be sent to /dev/null
|
||||
logfile ""
|
||||
|
||||
# Set the number of databases. The default database is DB 0, you can select
|
||||
# a different one on a per-connection basis using SELECT <dbid> where
|
||||
# dbid is a number between 0 and 'databases'-1
|
||||
databases 4
|
||||
|
||||
# By default Redis shows an ASCII art logo only when started to log to the
|
||||
# standard output and if the standard output is a TTY. Basically this means
|
||||
# that normally a logo is displayed only in interactive sessions.
|
||||
#
|
||||
# However it is possible to force the pre-4.0 behavior and always show a
|
||||
# ASCII art logo in startup logs by setting the following option to yes.
|
||||
always-show-logo yes
|
||||
98
.ddev/redis/io.conf
Normal file
|
|
@ -0,0 +1,98 @@
|
|||
# #ddev-generated
|
||||
################################ THREADED I/O #################################
|
||||
|
||||
# Redis is mostly single threaded, however there are certain threaded
|
||||
# operations such as UNLINK, slow I/O accesses and other things that are
|
||||
# performed on side threads.
|
||||
#
|
||||
# Now it is also possible to handle Redis clients socket reads and writes
|
||||
# in different I/O threads. Since especially writing is so slow, normally
|
||||
# Redis users use pipelining in order to speed up the Redis performances per
|
||||
# core, and spawn multiple instances in order to scale more. Using I/O
|
||||
# threads it is possible to easily speedup two times Redis without resorting
|
||||
# to pipelining nor sharding of the instance.
|
||||
#
|
||||
# By default threading is disabled, we suggest enabling it only in machines
|
||||
# that have at least 4 or more cores, leaving at least one spare core.
|
||||
# Using more than 8 threads is unlikely to help much. We also recommend using
|
||||
# threaded I/O only if you actually have performance problems, with Redis
|
||||
# instances being able to use a quite big percentage of CPU time, otherwise
|
||||
# there is no point in using this feature.
|
||||
#
|
||||
# So for instance if you have a four cores boxes, try to use 2 or 3 I/O
|
||||
# threads, if you have a 8 cores, try to use 6 threads. In order to
|
||||
# enable I/O threads use the following configuration directive:
|
||||
#
|
||||
io-threads 1
|
||||
|
||||
#
|
||||
# Setting io-threads to 1 will just use the main thread as usual.
|
||||
# When I/O threads are enabled, we only use threads for writes, that is
|
||||
# to thread the write(2) syscall and transfer the client buffers to the
|
||||
# socket. However it is also possible to enable threading of reads and
|
||||
# protocol parsing using the following configuration directive, by setting
|
||||
# it to yes:
|
||||
#
|
||||
io-threads-do-reads no
|
||||
|
||||
#
|
||||
# Usually threading reads doesn't help much.
|
||||
#
|
||||
# NOTE 1: This configuration directive cannot be changed at runtime via
|
||||
# CONFIG SET. Aso this feature currently does not work when SSL is
|
||||
# enabled.
|
||||
#
|
||||
# NOTE 2: If you want to test the Redis speedup using redis-benchmark, make
|
||||
# sure you also run the benchmark itself in threaded mode, using the
|
||||
# --threads option to match the number of Redis threads, otherwise you'll not
|
||||
# be able to notice the improvements.
|
||||
|
||||
############################ KERNEL OOM CONTROL ##############################
|
||||
|
||||
# On Linux, it is possible to hint the kernel OOM killer on what processes
|
||||
# should be killed first when out of memory.
|
||||
#
|
||||
# Enabling this feature makes Redis actively control the oom_score_adj value
|
||||
# for all its processes, depending on their role. The default scores will
|
||||
# attempt to have background child processes killed before all others, and
|
||||
# replicas killed before masters.
|
||||
|
||||
oom-score-adj no
|
||||
|
||||
# When oom-score-adj is used, this directive controls the specific values used
|
||||
# for master, replica and background child processes. Values range -1000 to
|
||||
# 1000 (higher means more likely to be killed).
|
||||
#
|
||||
# Unprivileged processes (not root, and without CAP_SYS_RESOURCE capabilities)
|
||||
# can freely increase their value, but not decrease it below its initial
|
||||
# settings.
|
||||
#
|
||||
# Values are used relative to the initial value of oom_score_adj when the server
|
||||
# starts. Because typically the initial value is 0, they will often match the
|
||||
# absolute values.
|
||||
|
||||
oom-score-adj-values 0 200 800
|
||||
|
||||
################################## SLOW LOG ###################################
|
||||
|
||||
# The Redis Slow Log is a system to log queries that exceeded a specified
|
||||
# execution time. The execution time does not include the I/O operations
|
||||
# like talking with the client, sending the reply and so forth,
|
||||
# but just the time needed to actually execute the command (this is the only
|
||||
# stage of command execution where the thread is blocked and can not serve
|
||||
# other requests in the meantime).
|
||||
#
|
||||
# You can configure the slow log with two parameters: one tells Redis
|
||||
# what is the execution time, in microseconds, to exceed in order for the
|
||||
# command to get logged, and the other parameter is the length of the
|
||||
# slow log. When a new command is logged the oldest one is removed from the
|
||||
# queue of logged commands.
|
||||
|
||||
# The following time is expressed in microseconds, so 1000000 is equivalent
|
||||
# to one second. Note that a negative number disables the slow log, while
|
||||
# a value of zero forces the logging of every command.
|
||||
slowlog-log-slower-than 10000
|
||||
|
||||
# There is no limit to this length. Just be aware that it will consume memory.
|
||||
# You can reclaim memory used by the slow log with SLOWLOG RESET.
|
||||
slowlog-max-len 128
|
||||
142
.ddev/redis/memory.conf
Normal file
|
|
@ -0,0 +1,142 @@
|
|||
# #ddev-generated
|
||||
############################## MEMORY MANAGEMENT ################################
|
||||
|
||||
# Set a memory usage limit to the specified amount of bytes.
|
||||
# When the memory limit is reached Redis will try to remove keys
|
||||
# according to the eviction policy selected (see maxmemory-policy).
|
||||
#
|
||||
# If Redis can't remove keys according to the policy, or if the policy is
|
||||
# set to 'noeviction', Redis will start to reply with errors to commands
|
||||
# that would use more memory, like SET, LPUSH, and so on, and will continue
|
||||
# to reply to read-only commands like GET.
|
||||
#
|
||||
# This option is usually useful when using Redis as an LRU or LFU cache, or to
|
||||
# set a hard memory limit for an instance (using the 'noeviction' policy).
|
||||
#
|
||||
# WARNING: If you have replicas attached to an instance with maxmemory on,
|
||||
# the size of the output buffers needed to feed the replicas are subtracted
|
||||
# from the used memory count, so that network problems / resyncs will
|
||||
# not trigger a loop where keys are evicted, and in turn the output
|
||||
# buffer of replicas is full with DELs of keys evicted triggering the deletion
|
||||
# of more keys, and so forth until the database is completely emptied.
|
||||
#
|
||||
# In short... if you have replicas attached it is suggested that you set a lower
|
||||
# limit for maxmemory so that there is some free RAM on the system for replica
|
||||
# output buffers (but this is not needed if the policy is 'noeviction').
|
||||
#
|
||||
maxmemory 512mb
|
||||
|
||||
# MAXMEMORY POLICY: how Redis will select what to remove when maxmemory
|
||||
# is reached. You can select one from the following behaviors:
|
||||
#
|
||||
# volatile-lru -> Evict using approximated LRU, only keys with an expire set.
|
||||
# allkeys-lru -> Evict any key using approximated LRU.
|
||||
# volatile-lfu -> Evict using approximated LFU, only keys with an expire set.
|
||||
# allkeys-lfu -> Evict any key using approximated LFU.
|
||||
# volatile-random -> Remove a random key having an expire set.
|
||||
# allkeys-random -> Remove a random key, any key.
|
||||
# volatile-ttl -> Remove the key with the nearest expire time (minor TTL)
|
||||
# noeviction -> Don't evict anything, just return an error on write operations.
|
||||
#
|
||||
# LRU means Least Recently Used
|
||||
# LFU means Least Frequently Used
|
||||
#
|
||||
# Both LRU, LFU and volatile-ttl are implemented using approximated
|
||||
# randomized algorithms.
|
||||
#
|
||||
# Note: with any of the above policies, Redis will return an error on write
|
||||
# operations, when there are no suitable keys for eviction.
|
||||
#
|
||||
# At the date of writing these commands are: set setnx setex append
|
||||
# incr decr rpush lpush rpushx lpushx linsert lset rpoplpush sadd
|
||||
# sinter sinterstore sunion sunionstore sdiff sdiffstore zadd zincrby
|
||||
# zunionstore zinterstore hset hsetnx hmset hincrby incrby decrby
|
||||
# getset mset msetnx exec sort
|
||||
#
|
||||
# The default is:
|
||||
#
|
||||
maxmemory-policy allkeys-lru
|
||||
|
||||
# LRU, LFU and minimal TTL algorithms are not precise algorithms but approximated
|
||||
# algorithms (in order to save memory), so you can tune it for speed or
|
||||
# accuracy. By default Redis will check five keys and pick the one that was
|
||||
# used least recently, you can change the sample size using the following
|
||||
# configuration directive.
|
||||
#
|
||||
# The default of 5 produces good enough results. 10 Approximates very closely
|
||||
# true LRU but costs more CPU. 3 is faster but not very accurate.
|
||||
#
|
||||
maxmemory-samples 4
|
||||
|
||||
# Redis reclaims expired keys in two ways: upon access when those keys are
|
||||
# found to be expired, and also in background, in what is called the
|
||||
# "active expire key". The key space is slowly and interactively scanned
|
||||
# looking for expired keys to reclaim, so that it is possible to free memory
|
||||
# of keys that are expired and will never be accessed again in a short time.
|
||||
#
|
||||
# The default effort of the expire cycle will try to avoid having more than
|
||||
# ten percent of expired keys still in memory, and will try to avoid consuming
|
||||
# more than 25% of total memory and to add latency to the system. However
|
||||
# it is possible to increase the expire "effort" that is normally set to
|
||||
# "1", to a greater value, up to the value "10". At its maximum value the
|
||||
# system will use more CPU, longer cycles (and technically may introduce
|
||||
# more latency), and will tolerate less already expired keys still present
|
||||
# in the system. It's a tradeoff between memory, CPU and latency.
|
||||
#
|
||||
active-expire-effort 2
|
||||
|
||||
############################# LAZY FREEING ####################################
|
||||
|
||||
# Redis has two primitives to delete keys. One is called DEL and is a blocking
|
||||
# deletion of the object. It means that the server stops processing new commands
|
||||
# in order to reclaim all the memory associated with an object in a synchronous
|
||||
# way. If the key deleted is associated with a small object, the time needed
|
||||
# in order to execute the DEL command is very small and comparable to most other
|
||||
# O(1) or O(log_N) commands in Redis. However if the key is associated with an
|
||||
# aggregated value containing millions of elements, the server can block for
|
||||
# a long time (even seconds) in order to complete the operation.
|
||||
#
|
||||
# For the above reasons Redis also offers non blocking deletion primitives
|
||||
# such as UNLINK (non blocking DEL) and the ASYNC option of FLUSHALL and
|
||||
# FLUSHDB commands, in order to reclaim memory in background. Those commands
|
||||
# are executed in constant time. Another thread will incrementally free the
|
||||
# object in the background as fast as possible.
|
||||
#
|
||||
# DEL, UNLINK and ASYNC option of FLUSHALL and FLUSHDB are user-controlled.
|
||||
# It's up to the design of the application to understand when it is a good
|
||||
# idea to use one or the other. However the Redis server sometimes has to
|
||||
# delete keys or flush the whole database as a side effect of other operations.
|
||||
# Specifically Redis deletes objects independently of a user call in the
|
||||
# following scenarios:
|
||||
#
|
||||
# 1) On eviction, because of the maxmemory and maxmemory policy configurations,
|
||||
# in order to make room for new data, without going over the specified
|
||||
# memory limit.
|
||||
# 2) Because of expire: when a key with an associated time to live (see the
|
||||
# EXPIRE command) must be deleted from memory.
|
||||
# 3) Because of a side effect of a command that stores data on a key that may
|
||||
# already exist. For example the RENAME command may delete the old key
|
||||
# content when it is replaced with another one. Similarly SUNIONSTORE
|
||||
# or SORT with STORE option may delete existing keys. The SET command
|
||||
# itself removes any old content of the specified key in order to replace
|
||||
# it with the specified string.
|
||||
# 4) During replication, when a replica performs a full resynchronization with
|
||||
# its master, the content of the whole database is removed in order to
|
||||
# load the RDB file just transferred.
|
||||
#
|
||||
# In all the above cases the default is to delete objects in a blocking way,
|
||||
# like if DEL was called. However you can configure each case specifically
|
||||
# in order to instead release memory in a non-blocking way like if UNLINK
|
||||
# was called, using the following configuration directives.
|
||||
|
||||
lazyfree-lazy-eviction no
|
||||
lazyfree-lazy-expire no
|
||||
lazyfree-lazy-server-del no
|
||||
replica-lazy-flush no
|
||||
|
||||
# It is also possible, for the case when to replace the user code DEL calls
|
||||
# with UNLINK calls is not easy, to modify the default behavior of the DEL
|
||||
# command to act exactly like UNLINK, using the following configuration
|
||||
# directive:
|
||||
|
||||
lazyfree-lazy-user-del no
|
||||
85
.ddev/redis/network.conf
Normal file
|
|
@ -0,0 +1,85 @@
|
|||
# #ddev-generated
|
||||
################################## NETWORK #####################################
|
||||
|
||||
# By default, if no "bind" configuration directive is specified, Redis listens
|
||||
# for connections from all available network interfaces on the host machine.
|
||||
# It is possible to listen to just one or multiple selected interfaces using
|
||||
# the "bind" configuration directive, followed by one or more IP addresses.
|
||||
#
|
||||
# Examples:
|
||||
#
|
||||
# bind 192.168.1.100 10.0.0.1
|
||||
# bind 127.0.0.1 ::1
|
||||
#
|
||||
# ~~~ WARNING ~~~ If the computer running Redis is directly exposed to the
|
||||
# internet, binding to all the interfaces is dangerous and will expose the
|
||||
# instance to everybody on the internet. So by default we uncomment the
|
||||
# following bind directive, that will force Redis to listen only on the
|
||||
# IPv4 loopback interface address (this means Redis will only be able to
|
||||
# accept client connections from the same host that it is running on).
|
||||
#
|
||||
# IF YOU ARE SURE YOU WANT YOUR INSTANCE TO LISTEN TO ALL THE INTERFACES
|
||||
# JUST COMMENT OUT THE FOLLOWING LINE.
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
bind 0.0.0.0
|
||||
|
||||
# Protected mode is a layer of security protection, in order to avoid that
|
||||
# Redis instances left open on the internet are accessed and exploited.
|
||||
#
|
||||
# When protected mode is on and if:
|
||||
#
|
||||
# 1) The server is not binding explicitly to a set of addresses using the
|
||||
# "bind" directive.
|
||||
# 2) No password is configured.
|
||||
#
|
||||
# The server only accepts connections from clients connecting from the
|
||||
# IPv4 and IPv6 loopback addresses 127.0.0.1 and ::1, and from Unix domain
|
||||
# sockets.
|
||||
#
|
||||
# By default protected mode is enabled. You should disable it only if
|
||||
# you are sure you want clients from other hosts to connect to Redis
|
||||
# even if no authentication is configured, nor a specific set of interfaces
|
||||
# are explicitly listed using the "bind" directive.
|
||||
protected-mode yes
|
||||
|
||||
# Accept connections on the specified port, default is 6379 (IANA #815344).
|
||||
# If port 0 is specified Redis will not listen on a TCP socket.
|
||||
port 6379
|
||||
|
||||
# TCP listen() backlog.
|
||||
#
|
||||
# In high requests-per-second environments you need a high backlog in order
|
||||
# to avoid slow clients connection issues. Note that the Linux kernel
|
||||
# will silently truncate it to the value of /proc/sys/net/core/somaxconn so
|
||||
# make sure to raise both the value of somaxconn and tcp_max_syn_backlog
|
||||
# in order to get the desired effect.
|
||||
tcp-backlog 4096
|
||||
|
||||
# Unix socket.
|
||||
#
|
||||
# Specify the path for the Unix socket that will be used to listen for
|
||||
# incoming connections. There is no default, so Redis will not listen
|
||||
# on a unix socket when not specified.
|
||||
#
|
||||
# unixsocket /tmp/redis.sock
|
||||
# unixsocketperm 700
|
||||
|
||||
# Close the connection after a client is idle for N seconds (0 to disable)
|
||||
timeout 0
|
||||
|
||||
# TCP keepalive.
|
||||
#
|
||||
# If non-zero, use SO_KEEPALIVE to send TCP ACKs to clients in absence
|
||||
# of communication. This is useful for two reasons:
|
||||
#
|
||||
# 1) Detect dead peers.
|
||||
# 2) Force network equipment in the middle to consider the connection to be
|
||||
# alive.
|
||||
#
|
||||
# On Linux, the specified value (in seconds) is the period used to send ACKs.
|
||||
# Note that to close the connection the double of the time is needed.
|
||||
# On other kernels the period depends on the kernel configuration.
|
||||
#
|
||||
# A reasonable value for this option is 300 seconds, which is the new
|
||||
# Redis default starting with Redis 3.2.1.
|
||||
tcp-keepalive 0
|
||||
26
.ddev/redis/redis.conf
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
# #ddev-generated
|
||||
################################## INCLUDES ###################################
|
||||
|
||||
# Network
|
||||
include /etc/redis/conf/network.conf
|
||||
|
||||
# General
|
||||
include /etc/redis/conf/general.conf
|
||||
|
||||
# Snapshots
|
||||
include /etc/redis/conf/snapshots.conf
|
||||
|
||||
# Security
|
||||
include /etc/redis/conf/security.conf
|
||||
|
||||
# Memory management
|
||||
include /etc/redis/conf/memory.conf
|
||||
|
||||
# CPU management
|
||||
include /etc/redis/conf/io.conf
|
||||
|
||||
# Append mode
|
||||
include /etc/redis/conf/append.conf
|
||||
|
||||
# Advanced config
|
||||
include /etc/redis/conf/advanced.conf
|
||||
12
.ddev/redis/security.conf
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
# #ddev-generated
|
||||
################################## SECURITY ###################################
|
||||
|
||||
# Warning: since Redis is pretty fast, an outside user can try up to
|
||||
# 1 million passwords per second against a modern box. This means that you
|
||||
# should use very strong passwords, otherwise they will be very easy to break.
|
||||
# Note that because the password is really a shared secret between the client
|
||||
# and the server, and should not be memorized by any human, the password
|
||||
# can be easily a long string from /dev/urandom or whatever, so by using a
|
||||
# long and unguessable password no brute force attack will be possible.
|
||||
user default ~* &* +@all on >redis
|
||||
user redis ~* &* +@all on >redis
|
||||
66
.ddev/redis/snapshots.conf
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
# #ddev-generated
|
||||
################################ SNAPSHOTTING ################################
|
||||
#
|
||||
# Save the DB on disk:
|
||||
#
|
||||
# save <seconds> <changes>
|
||||
#
|
||||
# Will save the DB if both the given number of seconds and the given
|
||||
# number of write operations against the DB occurred.
|
||||
#
|
||||
# In the example below the behavior will be to save:
|
||||
# after 300 sec (5 min) if at least 1 key changed
|
||||
# after 150 sec (2.5 min) if at least 10 keys changed
|
||||
# after 30 sec if at least 10000 keys changed
|
||||
#
|
||||
# Note: you can disable saving completely by commenting out all "save" lines.
|
||||
#
|
||||
# It is also possible to remove all the previously configured save
|
||||
# points by adding a save directive with a single empty string argument
|
||||
# like in the following example:
|
||||
#
|
||||
# save ""
|
||||
save 3600 1 300 100 60 10000
|
||||
|
||||
# By default Redis will stop accepting writes if RDB snapshots are enabled
|
||||
# (at least one save point) and the latest background save failed.
|
||||
# This will make the user aware (in a hard way) that data is not persisting
|
||||
# on disk properly, otherwise chances are that no one will notice and some
|
||||
# disaster will happen.
|
||||
#
|
||||
# If the background saving process will start working again Redis will
|
||||
# automatically allow writes again.
|
||||
#
|
||||
# However if you have setup your proper monitoring of the Redis server
|
||||
# and persistence, you may want to disable this feature so that Redis will
|
||||
# continue to work as usual even if there are problems with disk,
|
||||
# permissions, and so forth.
|
||||
stop-writes-on-bgsave-error yes
|
||||
|
||||
# Compress string objects using LZF when dump .rdb databases?
|
||||
# By default compression is enabled as it's almost always a win.
|
||||
# If you want to save some CPU in the saving child set it to 'no' but
|
||||
# the dataset will likely be bigger if you have compressible values or keys.
|
||||
rdbcompression no
|
||||
|
||||
# Since version 5 of RDB a CRC64 checksum is placed at the end of the file.
|
||||
# This makes the format more resistant to corruption but there is a performance
|
||||
# hit to pay (around 10%) when saving and loading RDB files, so you can disable it
|
||||
# for maximum performances.
|
||||
#
|
||||
# RDB files created with checksum disabled have a checksum of zero that will
|
||||
# tell the loading code to skip the check.
|
||||
rdbchecksum no
|
||||
|
||||
# The filename where to dump the DB
|
||||
dbfilename haikuatelier.fr.rdb
|
||||
|
||||
# The working directory.
|
||||
#
|
||||
# The DB will be written inside this directory, with the filename specified
|
||||
# above using the 'dbfilename' configuration directive.
|
||||
#
|
||||
# The Append Only File will also be created inside this directory.
|
||||
#
|
||||
# Note that you must specify a directory here, not a file name.
|
||||
dir /data
|
||||
|
|
@ -39,6 +39,7 @@
|
|||
"wpackagist-plugin/falcon": "^2.8",
|
||||
"wpackagist-plugin/force-regenerate-thumbnails": "^2.2",
|
||||
"wpackagist-plugin/query-monitor": "^3.16",
|
||||
"wpackagist-plugin/redis-cache": "^2.5",
|
||||
"wpackagist-plugin/wc-multishipping": "^2.5",
|
||||
"wpackagist-plugin/woocommerce": "^9.1",
|
||||
"wpackagist-plugin/wp-openapi": "^1.0",
|
||||
|
|
|
|||
33
composer.lock
generated
|
|
@ -4,7 +4,7 @@
|
|||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "6066b99e687fd33769663e50f74c5ec5",
|
||||
"content-hash": "84307ecd31836b2fb3dc265e87ea5712",
|
||||
"packages": [
|
||||
{
|
||||
"name": "brick/math",
|
||||
|
|
@ -3499,6 +3499,24 @@
|
|||
"type": "wordpress-plugin",
|
||||
"homepage": "https://wordpress.org/plugins/query-monitor/"
|
||||
},
|
||||
{
|
||||
"name": "wpackagist-plugin/redis-cache",
|
||||
"version": "2.5.4",
|
||||
"source": {
|
||||
"type": "svn",
|
||||
"url": "https://plugins.svn.wordpress.org/redis-cache/",
|
||||
"reference": "tags/2.5.4"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://downloads.wordpress.org/plugin/redis-cache.2.5.4.zip"
|
||||
},
|
||||
"require": {
|
||||
"composer/installers": "^1.0 || ^2.0"
|
||||
},
|
||||
"type": "wordpress-plugin",
|
||||
"homepage": "https://wordpress.org/plugins/redis-cache/"
|
||||
},
|
||||
{
|
||||
"name": "wpackagist-plugin/wc-multishipping",
|
||||
"version": "2.5.3",
|
||||
|
|
@ -4696,12 +4714,12 @@
|
|||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Roave/SecurityAdvisories.git",
|
||||
"reference": "1b71197bf4ffb07c6beb67162144e07052aac77c"
|
||||
"reference": "9f1d9b2460cdd0422e8cfd58763bf3156ad7f487"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/1b71197bf4ffb07c6beb67162144e07052aac77c",
|
||||
"reference": "1b71197bf4ffb07c6beb67162144e07052aac77c",
|
||||
"url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/9f1d9b2460cdd0422e8cfd58763bf3156ad7f487",
|
||||
"reference": "9f1d9b2460cdd0422e8cfd58763bf3156ad7f487",
|
||||
"shasum": ""
|
||||
},
|
||||
"conflict": {
|
||||
|
|
@ -4747,6 +4765,7 @@
|
|||
"azuracast/azuracast": "<0.18.3",
|
||||
"backdrop/backdrop": "<1.27.3|>=1.28,<1.28.2",
|
||||
"backpack/crud": "<3.4.9",
|
||||
"backpack/filemanager": "<3.0.9",
|
||||
"bacula-web/bacula-web": "<8.0.0.0-RC2-dev",
|
||||
"badaso/core": "<2.7",
|
||||
"bagisto/bagisto": "<2.1",
|
||||
|
|
@ -5078,7 +5097,7 @@
|
|||
"mojo42/jirafeau": "<4.4",
|
||||
"mongodb/mongodb": ">=1,<1.9.2",
|
||||
"monolog/monolog": ">=1.8,<1.12",
|
||||
"moodle/moodle": "<4.3.6|>=4.4,<4.4.2",
|
||||
"moodle/moodle": "<4.3.6|>=4.4,<4.4.4",
|
||||
"mos/cimage": "<0.7.19",
|
||||
"movim/moxl": ">=0.8,<=0.10",
|
||||
"movingbytes/social-network": "<=1.2.1",
|
||||
|
|
@ -5392,7 +5411,7 @@
|
|||
"ua-parser/uap-php": "<3.8",
|
||||
"uasoft-indonesia/badaso": "<=2.9.7",
|
||||
"unisharp/laravel-filemanager": "<2.6.4",
|
||||
"unopim/unopim": "<0.1.4",
|
||||
"unopim/unopim": "<0.1.5",
|
||||
"userfrosting/userfrosting": ">=0.3.1,<4.6.3",
|
||||
"usmanhalalit/pixie": "<1.0.3|>=2,<2.0.2",
|
||||
"uvdesk/community-skeleton": "<=1.1.1",
|
||||
|
|
@ -5529,7 +5548,7 @@
|
|||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2024-11-13T16:05:45+00:00"
|
||||
"time": "2024-11-13T19:05:18+00:00"
|
||||
},
|
||||
{
|
||||
"name": "sebastian/diff",
|
||||
|
|
|
|||
|
|
@ -27,5 +27,9 @@ Config::define("WOOCOMMERCE_API_CONSUMER_SECRET", env("WOOCOMMERCE_API_CONSUMER_
|
|||
// Stripe
|
||||
Config::define("STRIPE_API_SECRET", env("STRIPE_API_SECRET"));
|
||||
|
||||
// Redis
|
||||
Config::define("WP_REDIS_HOST", env("WP_REDIS_HOST"));
|
||||
Config::define("WP_REDIS_PASSWORD", env("WP_REDIS_PASSWORD"));
|
||||
|
||||
// Désactive la mise à jour des traductions automatiques
|
||||
Config::define("WP_AUTO_UPDATE_TRANSLATION", false);
|
||||
|
|
|
|||
12589
db/haiku_atelier-2024-11-14-c4a1900.sql
Normal file
2
justfile
|
|
@ -88,7 +88,7 @@ build-js:
|
|||
|
||||
# Compile TypeScript à chaque changement de fichier
|
||||
watch-js:
|
||||
watchexec -w "web/app/themes/haiku-atelier-2024/src/scripts" just build-js
|
||||
pnpm vite build --watch
|
||||
|
||||
# Vérifie le code TypeScript avec des analyseurs statiques
|
||||
lint-js:
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
"description": "",
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"packageManager": "pnpm@9.12.3",
|
||||
"packageManager": "pnpm@9.13.0",
|
||||
"main": "index.js",
|
||||
"keywords": [],
|
||||
"scripts": { "knip": "knip", "test": "echo \"Error: no test specified\" && exit 1" },
|
||||
|
|
@ -34,13 +34,13 @@
|
|||
"eslint-plugin-perfectionist": "^3.9.1",
|
||||
"fdir": "^6.4.2",
|
||||
"globals": "^15.12.0",
|
||||
"knip": "^5.36.7",
|
||||
"knip": "^5.37.0",
|
||||
"oxlint": "^0.11.1",
|
||||
"picomatch": "^4.0.2",
|
||||
"prettier": "^3.3.3",
|
||||
"prettier-plugin-pkg": "^0.18.1",
|
||||
"prettier-plugin-sh": "^0.14.0",
|
||||
"sass-embedded": "^1.80.7",
|
||||
"sass-embedded": "^1.81.0",
|
||||
"stylelint": "^16.10.0",
|
||||
"stylelint-config-clean-order": "^6.1.0",
|
||||
"stylelint-config-sass-guidelines": "^12.1.0",
|
||||
|
|
@ -54,7 +54,7 @@
|
|||
"vite-plugin-node-polyfills": "^0.22.0",
|
||||
"vite-plugin-valibot-env": "^0.8.5",
|
||||
"vite-tsconfig-paths": "^5.1.2",
|
||||
"wp-types": "^4.66.1"
|
||||
"wp-types": "^4.67.0"
|
||||
},
|
||||
"browserslist": [
|
||||
"chrome >0 and last 3 years",
|
||||
|
|
|
|||
402
pnpm-lock.yaml
generated
|
|
@ -76,8 +76,8 @@ importers:
|
|||
specifier: ^15.12.0
|
||||
version: 15.12.0
|
||||
knip:
|
||||
specifier: ^5.36.7
|
||||
version: 5.36.7(@types/node@22.9.0)(typescript@5.7.0-dev.20241105)
|
||||
specifier: ^5.37.0
|
||||
version: 5.37.0(@types/node@22.9.0)(typescript@5.7.0-dev.20241105)
|
||||
oxlint:
|
||||
specifier: ^0.11.1
|
||||
version: 0.11.1
|
||||
|
|
@ -94,8 +94,8 @@ importers:
|
|||
specifier: ^0.14.0
|
||||
version: 0.14.0(prettier@3.3.3)
|
||||
sass-embedded:
|
||||
specifier: ^1.80.7
|
||||
version: 1.80.7
|
||||
specifier: ^1.81.0
|
||||
version: 1.81.0
|
||||
stylelint:
|
||||
specifier: ^16.10.0
|
||||
version: 16.10.0(typescript@5.7.0-dev.20241105)
|
||||
|
|
@ -122,22 +122,22 @@ importers:
|
|||
version: 8.14.0(eslint@9.14.0(jiti@2.4.0))(typescript@5.7.0-dev.20241105)
|
||||
vite:
|
||||
specifier: ^5.4.11
|
||||
version: 5.4.11(@types/node@22.9.0)(sass-embedded@1.80.7)(sass@1.80.6)
|
||||
version: 5.4.11(@types/node@22.9.0)(sass-embedded@1.81.0)(sass@1.80.6)
|
||||
vite-plugin-manifest-sri:
|
||||
specifier: ^0.2.0
|
||||
version: 0.2.0
|
||||
vite-plugin-node-polyfills:
|
||||
specifier: ^0.22.0
|
||||
version: 0.22.0(rollup@4.26.0)(vite@5.4.11(@types/node@22.9.0)(sass-embedded@1.80.7)(sass@1.80.6))
|
||||
version: 0.22.0(rollup@4.27.0)(vite@5.4.11(@types/node@22.9.0)(sass-embedded@1.81.0)(sass@1.80.6))
|
||||
vite-plugin-valibot-env:
|
||||
specifier: ^0.8.5
|
||||
version: 0.8.5(valibot@1.0.0-beta.3(typescript@5.7.0-dev.20241105))(vite@5.4.11(@types/node@22.9.0)(sass-embedded@1.80.7)(sass@1.80.6))
|
||||
version: 0.8.5(valibot@1.0.0-beta.3(typescript@5.7.0-dev.20241105))(vite@5.4.11(@types/node@22.9.0)(sass-embedded@1.81.0)(sass@1.80.6))
|
||||
vite-tsconfig-paths:
|
||||
specifier: ^5.1.2
|
||||
version: 5.1.2(typescript@5.7.0-dev.20241105)(vite@5.4.11(@types/node@22.9.0)(sass-embedded@1.80.7)(sass@1.80.6))
|
||||
version: 5.1.2(typescript@5.7.0-dev.20241105)(vite@5.4.11(@types/node@22.9.0)(sass-embedded@1.81.0)(sass@1.80.6))
|
||||
wp-types:
|
||||
specifier: ^4.66.1
|
||||
version: 4.66.1
|
||||
specifier: ^4.67.0
|
||||
version: 4.67.0
|
||||
|
||||
packages:
|
||||
|
||||
|
|
@ -479,8 +479,8 @@ packages:
|
|||
resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
'@eslint/plugin-kit@0.2.2':
|
||||
resolution: {integrity: sha512-CXtq5nR4Su+2I47WPOlWud98Y5Lv8Kyxp2ukhgFx/eW6Blm18VXJO5WuQylPugRo8nbluoi6GvvxBLqHcvqUUw==}
|
||||
'@eslint/plugin-kit@0.2.3':
|
||||
resolution: {integrity: sha512-2b/g5hRmpbb1o4GnTZax9N9m0FXzz9OV42ZzI4rDDMDuHUqigAiQCEWChBWCY4ztAGVRjoWT19v0yMmc5/L5kA==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
'@humanfs/core@0.19.1':
|
||||
|
|
@ -776,93 +776,93 @@ packages:
|
|||
rollup:
|
||||
optional: true
|
||||
|
||||
'@rollup/rollup-android-arm-eabi@4.26.0':
|
||||
resolution: {integrity: sha512-gJNwtPDGEaOEgejbaseY6xMFu+CPltsc8/T+diUTTbOQLqD+bnrJq9ulH6WD69TqwqWmrfRAtUv30cCFZlbGTQ==}
|
||||
'@rollup/rollup-android-arm-eabi@4.27.0':
|
||||
resolution: {integrity: sha512-e312hTjuM89YLqlcqEs7mSvwhxN5pgXqRobUob7Jsz1wDQlpAb2WTX4jzvrx5NrL1h2SE4fGdHSNyPxbLfzyeA==}
|
||||
cpu: [arm]
|
||||
os: [android]
|
||||
|
||||
'@rollup/rollup-android-arm64@4.26.0':
|
||||
resolution: {integrity: sha512-YJa5Gy8mEZgz5JquFruhJODMq3lTHWLm1fOy+HIANquLzfIOzE9RA5ie3JjCdVb9r46qfAQY/l947V0zfGJ0OQ==}
|
||||
'@rollup/rollup-android-arm64@4.27.0':
|
||||
resolution: {integrity: sha512-cBUOny8GNXP++gN00Bo5L04I2oqUEFAU0OSDb+4hqp4/R/pZL/zlGzp7lJkhtPX52Rj+PIe0S8aOqhK4hztxHQ==}
|
||||
cpu: [arm64]
|
||||
os: [android]
|
||||
|
||||
'@rollup/rollup-darwin-arm64@4.26.0':
|
||||
resolution: {integrity: sha512-ErTASs8YKbqTBoPLp/kA1B1Um5YSom8QAc4rKhg7b9tyyVqDBlQxy7Bf2wW7yIlPGPg2UODDQcbkTlruPzDosw==}
|
||||
'@rollup/rollup-darwin-arm64@4.27.0':
|
||||
resolution: {integrity: sha512-aauK2M2ptFQQYdOqbKGYCg1LHlPbm6IxepSnHLLaMIGcd9YBiKRGl2+KtzQL/IkurP+b54EKBkvtZaWXijmzfQ==}
|
||||
cpu: [arm64]
|
||||
os: [darwin]
|
||||
|
||||
'@rollup/rollup-darwin-x64@4.26.0':
|
||||
resolution: {integrity: sha512-wbgkYDHcdWW+NqP2mnf2NOuEbOLzDblalrOWcPyY6+BRbVhliavon15UploG7PpBRQ2bZJnbmh8o3yLoBvDIHA==}
|
||||
'@rollup/rollup-darwin-x64@4.27.0':
|
||||
resolution: {integrity: sha512-VAjOnHUwpvxf3XT33sMpsLGKq24Rz1sTQhLuUicYrV9pxB4TNi0w11qAGPOyR+dQu/iZf88DmEmG0+2Gaqa1gg==}
|
||||
cpu: [x64]
|
||||
os: [darwin]
|
||||
|
||||
'@rollup/rollup-freebsd-arm64@4.26.0':
|
||||
resolution: {integrity: sha512-Y9vpjfp9CDkAG4q/uwuhZk96LP11fBz/bYdyg9oaHYhtGZp7NrbkQrj/66DYMMP2Yo/QPAsVHkV891KyO52fhg==}
|
||||
'@rollup/rollup-freebsd-arm64@4.27.0':
|
||||
resolution: {integrity: sha512-I2eRlZG87gl6WxP6PvSB5bfFA1btE7tWnG6QAoEU/0Gr47f6KaxRwiRfBujHlzkuMPqtpTlSOW4aOEOyMtQqfg==}
|
||||
cpu: [arm64]
|
||||
os: [freebsd]
|
||||
|
||||
'@rollup/rollup-freebsd-x64@4.26.0':
|
||||
resolution: {integrity: sha512-A/jvfCZ55EYPsqeaAt/yDAG4q5tt1ZboWMHEvKAH9Zl92DWvMIbnZe/f/eOXze65aJaaKbL+YeM0Hz4kLQvdwg==}
|
||||
'@rollup/rollup-freebsd-x64@4.27.0':
|
||||
resolution: {integrity: sha512-G05JNYFdjikD/2hJTf1gHdD5KjI2TotjiDn17amHtB5JgwrRF1EA9hJ3TRGIvT3zGXilNWWlR71R/2TT1pXRDg==}
|
||||
cpu: [x64]
|
||||
os: [freebsd]
|
||||
|
||||
'@rollup/rollup-linux-arm-gnueabihf@4.26.0':
|
||||
resolution: {integrity: sha512-paHF1bMXKDuizaMODm2bBTjRiHxESWiIyIdMugKeLnjuS1TCS54MF5+Y5Dx8Ui/1RBPVRE09i5OUlaLnv8OGnA==}
|
||||
'@rollup/rollup-linux-arm-gnueabihf@4.27.0':
|
||||
resolution: {integrity: sha512-FMXxMZ7qnMULwgdmGSFVlOduAhFyqDPoK1A2Q8HBkzGYX9SMFU3ITKfLdIiCzTaaj/pt1OiEbpF2szUw6Kh++Q==}
|
||||
cpu: [arm]
|
||||
os: [linux]
|
||||
|
||||
'@rollup/rollup-linux-arm-musleabihf@4.26.0':
|
||||
resolution: {integrity: sha512-cwxiHZU1GAs+TMxvgPfUDtVZjdBdTsQwVnNlzRXC5QzIJ6nhfB4I1ahKoe9yPmoaA/Vhf7m9dB1chGPpDRdGXg==}
|
||||
'@rollup/rollup-linux-arm-musleabihf@4.27.0':
|
||||
resolution: {integrity: sha512-0315TiPsJfOY+jAwEeqxcy9yVcAy/jg99GrMcd/L7CRESzi1vhyLPbnkDnz7giaEttSRf/d3llJYfoC+44Nl3A==}
|
||||
cpu: [arm]
|
||||
os: [linux]
|
||||
|
||||
'@rollup/rollup-linux-arm64-gnu@4.26.0':
|
||||
resolution: {integrity: sha512-4daeEUQutGRCW/9zEo8JtdAgtJ1q2g5oHaoQaZbMSKaIWKDQwQ3Yx0/3jJNmpzrsScIPtx/V+1AfibLisb3AMQ==}
|
||||
'@rollup/rollup-linux-arm64-gnu@4.27.0':
|
||||
resolution: {integrity: sha512-4zCKY5E9djPyHzvoCWIouFsuAvg+dk+rNia8lz1bjKpzKz02QvK4JPHyjcDT8CFR2J/aA98WccCirdDOy+VDWQ==}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
|
||||
'@rollup/rollup-linux-arm64-musl@4.26.0':
|
||||
resolution: {integrity: sha512-eGkX7zzkNxvvS05ROzJ/cO/AKqNvR/7t1jA3VZDi2vRniLKwAWxUr85fH3NsvtxU5vnUUKFHKh8flIBdlo2b3Q==}
|
||||
'@rollup/rollup-linux-arm64-musl@4.27.0':
|
||||
resolution: {integrity: sha512-6St9rrPSLbYBbbJAClpU4gmnO7cdZCMMzx2MT0UCIIIevoLAmsCDOAG6t3J/RgN4CPUpdaGr/UnPqQTHZ4oDwA==}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
|
||||
'@rollup/rollup-linux-powerpc64le-gnu@4.26.0':
|
||||
resolution: {integrity: sha512-Odp/lgHbW/mAqw/pU21goo5ruWsytP7/HCC/liOt0zcGG0llYWKrd10k9Fj0pdj3prQ63N5yQLCLiE7HTX+MYw==}
|
||||
'@rollup/rollup-linux-powerpc64le-gnu@4.27.0':
|
||||
resolution: {integrity: sha512-dIBfp8NDrgvwUJxyqFv7501coIba+7xxBJy1gQEF0RGkIKa3Tq0Mh3sF9hmstDLtaMt7gL2aXsCNG9SCKyVVZg==}
|
||||
cpu: [ppc64]
|
||||
os: [linux]
|
||||
|
||||
'@rollup/rollup-linux-riscv64-gnu@4.26.0':
|
||||
resolution: {integrity: sha512-MBR2ZhCTzUgVD0OJdTzNeF4+zsVogIR1U/FsyuFerwcqjZGvg2nYe24SAHp8O5sN8ZkRVbHwlYeHqcSQ8tcYew==}
|
||||
'@rollup/rollup-linux-riscv64-gnu@4.27.0':
|
||||
resolution: {integrity: sha512-Pu7xLHRy+5UjFCKR/vWsbFmiBYUC9993v99YoKWhAgK4VsdNuWHPs17NuCJEtVsZpYCNVPbRyBpQw58Ma8BmeA==}
|
||||
cpu: [riscv64]
|
||||
os: [linux]
|
||||
|
||||
'@rollup/rollup-linux-s390x-gnu@4.26.0':
|
||||
resolution: {integrity: sha512-YYcg8MkbN17fMbRMZuxwmxWqsmQufh3ZJFxFGoHjrE7bv0X+T6l3glcdzd7IKLiwhT+PZOJCblpnNlz1/C3kGQ==}
|
||||
'@rollup/rollup-linux-s390x-gnu@4.27.0':
|
||||
resolution: {integrity: sha512-2Q9qQnk/eWdvXzzHl22y7tpDHREppFUh7N6cCs70HZEbQSgB7wd/2S/B05SSiyAiIn5BL+fYiASLds5bz0IQFw==}
|
||||
cpu: [s390x]
|
||||
os: [linux]
|
||||
|
||||
'@rollup/rollup-linux-x64-gnu@4.26.0':
|
||||
resolution: {integrity: sha512-ZuwpfjCwjPkAOxpjAEjabg6LRSfL7cAJb6gSQGZYjGhadlzKKywDkCUnJ+KEfrNY1jH5EEoSIKLCb572jSiglA==}
|
||||
'@rollup/rollup-linux-x64-gnu@4.27.0':
|
||||
resolution: {integrity: sha512-CNnqMZ4Yz0Ga0A75qux7DNChq0P9oAWn2S7yjZPRC+AaEF8Ysw5K/1lzT25/a3reJ4V2abcShIVG+tfZHb1UrQ==}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
|
||||
'@rollup/rollup-linux-x64-musl@4.26.0':
|
||||
resolution: {integrity: sha512-+HJD2lFS86qkeF8kNu0kALtifMpPCZU80HvwztIKnYwym3KnA1os6nsX4BGSTLtS2QVAGG1P3guRgsYyMA0Yhg==}
|
||||
'@rollup/rollup-linux-x64-musl@4.27.0':
|
||||
resolution: {integrity: sha512-dS1+eCbbao54XB+wLW6uuwRkChq4L0UfKhd3wvt6s+EN1rTIi24ee5Lk3HfRGq9J2jsRm12/AGKLA0kd82Sp/g==}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
|
||||
'@rollup/rollup-win32-arm64-msvc@4.26.0':
|
||||
resolution: {integrity: sha512-WUQzVFWPSw2uJzX4j6YEbMAiLbs0BUysgysh8s817doAYhR5ybqTI1wtKARQKo6cGop3pHnrUJPFCsXdoFaimQ==}
|
||||
'@rollup/rollup-win32-arm64-msvc@4.27.0':
|
||||
resolution: {integrity: sha512-VrYQHY5+Y71OU/uOSRE9lLhph16bbuWGrMwGwZDPxCUXUW5NgLA+K+q0kv7rafHRlnrsZSVcMOkZskzTNnR3ZQ==}
|
||||
cpu: [arm64]
|
||||
os: [win32]
|
||||
|
||||
'@rollup/rollup-win32-ia32-msvc@4.26.0':
|
||||
resolution: {integrity: sha512-D4CxkazFKBfN1akAIY6ieyOqzoOoBV1OICxgUblWxff/pSjCA2khXlASUx7mK6W1oP4McqhgcCsu6QaLj3WMWg==}
|
||||
'@rollup/rollup-win32-ia32-msvc@4.27.0':
|
||||
resolution: {integrity: sha512-LCqk4Xi3e4GzLqaq+QDM7gP5DtJ/RgWMzV3U2brwp/vEz9RTA5YBgIDP69xYfrTXexes6xPsOIquy79+kLifiA==}
|
||||
cpu: [ia32]
|
||||
os: [win32]
|
||||
|
||||
'@rollup/rollup-win32-x64-msvc@4.26.0':
|
||||
resolution: {integrity: sha512-2x8MO1rm4PGEP0xWbubJW5RtbNLk3puzAMaLQd3B3JHVw4KcHlmXcO+Wewx9zCoo7EUFiMlu/aZbCJ7VjMzAag==}
|
||||
'@rollup/rollup-win32-x64-msvc@4.27.0':
|
||||
resolution: {integrity: sha512-dj2ZolfViR3chLWwSHID2mBzLLwYvXFldIplR6BSkdACXqAsrcmItKTff4h7enYB3Ugoh0v41WbxijE9HJb1Hw==}
|
||||
cpu: [x64]
|
||||
os: [win32]
|
||||
|
||||
|
|
@ -1420,8 +1420,8 @@ packages:
|
|||
easy-table@1.2.0:
|
||||
resolution: {integrity: sha512-OFzVOv03YpvtcWGe5AayU5G2hgybsg3iqA6drU8UaoZyB9jLGMTrz9+asnLp/E+6qPh88yEI1gvyZFZ41dmgww==}
|
||||
|
||||
electron-to-chromium@1.5.57:
|
||||
resolution: {integrity: sha512-xS65H/tqgOwUBa5UmOuNSLuslDo7zho0y/lgQw35pnrqiZh7UOWHCeL/Bt6noJATbA6tpQJGCifsFsIRZj1Fqg==}
|
||||
electron-to-chromium@1.5.60:
|
||||
resolution: {integrity: sha512-HcraRUkTKJ+8yA3b10i9qvhUlPBRDlKjn1XGek1zDGVfAKcvi8TsUnImGqLiEm9j6ZulxXIWWIo9BmbkbCTGgA==}
|
||||
|
||||
elliptic@6.6.1:
|
||||
resolution: {integrity: sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==}
|
||||
|
|
@ -1912,8 +1912,8 @@ packages:
|
|||
resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==}
|
||||
engines: {node: '>=6'}
|
||||
|
||||
knip@5.36.7:
|
||||
resolution: {integrity: sha512-PSuu62+6wqd1Q1V/ZzbDhvJ3X+RU8wZILon90h2s93+d1OZL118ZE9WihzSqwP29GVt72MTlbS/HHG+O47H68w==}
|
||||
knip@5.37.0:
|
||||
resolution: {integrity: sha512-ppbIumjNNnFKGr+DGWJtnfc4kXgEzNI+TxHwnyafr0IxT5nfonwGL0Qs53ZgSiIswSWM77m7KRzzP1AEvBEn6Q==}
|
||||
engines: {node: '>=18.6.0'}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
|
|
@ -2258,8 +2258,8 @@ packages:
|
|||
engines: {node: '>=14'}
|
||||
hasBin: true
|
||||
|
||||
pretty-ms@9.1.0:
|
||||
resolution: {integrity: sha512-o1piW0n3tgKIKCwk2vpM/vOV13zjJzvP37Ioze54YlTHE06m4tjEbzg9WsKkvTuyYln2DHjo5pY4qrZGI0otpw==}
|
||||
pretty-ms@9.2.0:
|
||||
resolution: {integrity: sha512-4yf0QO/sllf/1zbZWYnvWw3NxCQwLXKzIj0G849LSufP15BXKM0rbD2Z3wVnkMfjdn/CB0Dpp444gYAACdsplg==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
process-nextick-args@2.0.1:
|
||||
|
|
@ -2356,8 +2356,8 @@ packages:
|
|||
ripemd160@2.0.2:
|
||||
resolution: {integrity: sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==}
|
||||
|
||||
rollup@4.26.0:
|
||||
resolution: {integrity: sha512-ilcl12hnWonG8f+NxU6BlgysVA0gvY2l8N0R84S1HcINbW20bvwuCngJkkInV6LXhwRpucsW5k1ovDwEdBVrNg==}
|
||||
rollup@4.27.0:
|
||||
resolution: {integrity: sha512-nrOD/RrnAMssruS7bPa7MYpEuH6tUpOa43NLtxQiLKem0An8HZyXun5Ndig6JzbkJoIbaKkt85V67VCaQ59GyA==}
|
||||
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
|
||||
hasBin: true
|
||||
|
||||
|
|
@ -2373,128 +2373,128 @@ packages:
|
|||
safe-buffer@5.2.1:
|
||||
resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
|
||||
|
||||
sass-embedded-android-arm64@1.80.7:
|
||||
resolution: {integrity: sha512-Gwl/OY80uEA14MLm7efJvc1ErgGT51SvAv4/kIpTziOJpkk+999/nrEJHQ6YAJ7r5DuQcKvC3lHipcENUIpP9A==}
|
||||
sass-embedded-android-arm64@1.81.0:
|
||||
resolution: {integrity: sha512-I36P77/PKAHx6sqOmexO2iEY5kpsmQ1VxcgITZSOxPMQhdB6m4t3bTabfDuWQQmCrqqiNFtLQHeytB65bUqwiw==}
|
||||
engines: {node: '>=14.0.0'}
|
||||
cpu: [arm64]
|
||||
os: [android]
|
||||
|
||||
sass-embedded-android-arm@1.80.7:
|
||||
resolution: {integrity: sha512-pMxJ70yOGXYGmfoGlAMKqnr/nuP/UgKV3jc7v5kpmWGpPPMF2u63DM2QkvTqM32FyfwyxSycVaNFNT+gPomTiw==}
|
||||
sass-embedded-android-arm@1.81.0:
|
||||
resolution: {integrity: sha512-NWEmIuaIEsGFNsIRa+5JpIpPJyZ32H15E85CNZqEIhhwWlk9UNw7vlOCmTH8MtabtnACwC/2NG8VyNa3nxKzUQ==}
|
||||
engines: {node: '>=14.0.0'}
|
||||
cpu: [arm]
|
||||
os: [android]
|
||||
|
||||
sass-embedded-android-ia32@1.80.7:
|
||||
resolution: {integrity: sha512-CJccGPgBePPYiXhyQWvgHF8AqjIDSGf+mcC4Ac/f5upRd9Z/vhQVrJfsDxt4c4tV0HGEfbQpT9xOCYF1Z6luZQ==}
|
||||
sass-embedded-android-ia32@1.81.0:
|
||||
resolution: {integrity: sha512-k8V1usXw30w1GVxvrteG1RzgYJzYQ9PfL2aeOqGdroBN7zYTD9VGJXTGcxA4IeeRxmRd7szVW2mKXXS472fh8g==}
|
||||
engines: {node: '>=14.0.0'}
|
||||
cpu: [ia32]
|
||||
os: [android]
|
||||
|
||||
sass-embedded-android-riscv64@1.80.7:
|
||||
resolution: {integrity: sha512-kIGcyuhNes9NUDzJ9VHy/ZGKdADCCt7JAwiC7lFSc6/xs5rJtGRn6hZ+mcG7gQWAezb5oK/VMQl8ps7HBFUEXw==}
|
||||
sass-embedded-android-riscv64@1.81.0:
|
||||
resolution: {integrity: sha512-RXlanyLXEpN/DEehXgLuKPsqT//GYlsGFxKXgRiCc8hIPAueFLQXKJmLWlL3BEtHgmFdbsStIu4aZCcb1hOFlQ==}
|
||||
engines: {node: '>=14.0.0'}
|
||||
cpu: [riscv64]
|
||||
os: [android]
|
||||
|
||||
sass-embedded-android-x64@1.80.7:
|
||||
resolution: {integrity: sha512-oLMQiFpbSczOrGZSWlZvVJ1T9L6nDjS2u8PTxfT0MFX/FT3EhaxylHeiYKrmtY4epRufNCC/G96DMVqnSNa1QQ==}
|
||||
sass-embedded-android-x64@1.81.0:
|
||||
resolution: {integrity: sha512-RQG0FxGQ1DERNyUDED8+BDVaLIjI+BNg8lVcyqlLZUrWY6NhzjwYEeiN/DNZmMmHtqDucAPNDcsdVUNQqsBy2A==}
|
||||
engines: {node: '>=14.0.0'}
|
||||
cpu: [x64]
|
||||
os: [android]
|
||||
|
||||
sass-embedded-darwin-arm64@1.80.7:
|
||||
resolution: {integrity: sha512-Vi5BbTWd9OO0tC60CPw5IY7w3Tccr1/Gy2DdkfE4qP6Rc368WmUis5ceG8ehAye0IT7aoRXpw8XTzWyXAZHbfw==}
|
||||
sass-embedded-darwin-arm64@1.81.0:
|
||||
resolution: {integrity: sha512-gLKbsfII9Ppua76N41ODFnKGutla9qv0OGAas8gxe0jYBeAQFi/1iKQYdNtQtKi4mA9n5TQTqz+HHCKszZCoyA==}
|
||||
engines: {node: '>=14.0.0'}
|
||||
cpu: [arm64]
|
||||
os: [darwin]
|
||||
|
||||
sass-embedded-darwin-x64@1.80.7:
|
||||
resolution: {integrity: sha512-yeANclgSHJ7K/XLG4Lnk7aQ5dk7K+oqIOtoOP0bjXgWsdPbes9V7k1ZJ9mZGl+f/XAPaRRPqjKs4WHU9s8m8MA==}
|
||||
sass-embedded-darwin-x64@1.81.0:
|
||||
resolution: {integrity: sha512-7uMOlT9hD2KUJCbTN2XcfghDxt/rc50ujjfSjSHjX1SYj7mGplkINUXvVbbvvaV2wt6t9vkGkCo5qNbeBhfwBg==}
|
||||
engines: {node: '>=14.0.0'}
|
||||
cpu: [x64]
|
||||
os: [darwin]
|
||||
|
||||
sass-embedded-linux-arm64@1.80.7:
|
||||
resolution: {integrity: sha512-Idb5K9LHHWklN7A/kqWUd6sktA36V70bSjZ/gvCDu/5CBJBkMsVNdrxcdpGzrZe7pYV4XUTkMZOwf91owEywtQ==}
|
||||
sass-embedded-linux-arm64@1.81.0:
|
||||
resolution: {integrity: sha512-jy4bvhdUmqbyw1jv1f3Uxl+MF8EU/Y/GDx4w6XPJm4Ds+mwH/TwnyAwsxxoBhWfnBnW8q2ADy039DlS5p+9csQ==}
|
||||
engines: {node: '>=14.0.0'}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
|
||||
sass-embedded-linux-arm@1.80.7:
|
||||
resolution: {integrity: sha512-ZttC6H2Z9YXUVFlprqZ0AgXuHdzqhvhUWsG7UUqkND9JSHvyFSwRij4h90aOK3gKg3PBGI4yG5tonLq2yV525A==}
|
||||
sass-embedded-linux-arm@1.81.0:
|
||||
resolution: {integrity: sha512-REqR9qM4RchCE3cKqzRy9Q4zigIV82SbSpCi/O4O3oK3pg2I1z7vkb3TiJsivusG/li7aqKZGmYOtAXjruGQDA==}
|
||||
engines: {node: '>=14.0.0'}
|
||||
cpu: [arm]
|
||||
os: [linux]
|
||||
|
||||
sass-embedded-linux-ia32@1.80.7:
|
||||
resolution: {integrity: sha512-xKnWWEFz1jFc9xDAG7nMcjPBCTuiJbqvTmEtwQoWj79hQrzVdkLM6SiUGVbGa1c2s2fJMS3Bg2fkDJBK6/BcuQ==}
|
||||
sass-embedded-linux-ia32@1.81.0:
|
||||
resolution: {integrity: sha512-ga/Jk4q5Bn1aC+iHJteDZuLSKnmBUiS3dEg1fnl/Z7GaHIChceKDJOw0zNaILRXI0qT2E1at9MwzoRaRA5Nn/g==}
|
||||
engines: {node: '>=14.0.0'}
|
||||
cpu: [ia32]
|
||||
os: [linux]
|
||||
|
||||
sass-embedded-linux-musl-arm64@1.80.7:
|
||||
resolution: {integrity: sha512-7+GCYIh+c1BG4ot/PbTvVXUxd2GxDWcMxV7i3sARStQBDpTZFfohWdjUytLyqGxQgJIrbq0Q60Ucrw6HUJtJ9A==}
|
||||
sass-embedded-linux-musl-arm64@1.81.0:
|
||||
resolution: {integrity: sha512-hpntWf5kjkoxncA1Vh8vhsUOquZ8AROZKx0rQh7ZjSRs4JrYZASz1cfevPKaEM3wIim/nYa6TJqm0VqWsrERlA==}
|
||||
engines: {node: '>=14.0.0'}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
|
||||
sass-embedded-linux-musl-arm@1.80.7:
|
||||
resolution: {integrity: sha512-gJLfSFiiuGaqWjaj0bcuhOlQ+t1jS9StuzXnW1b9gy2I6Y0uCprgbbELgtRVPSZlCG2BBolR76YCGQTB85M43Q==}
|
||||
sass-embedded-linux-musl-arm@1.81.0:
|
||||
resolution: {integrity: sha512-oWVUvQ4d5Kx1Md75YXZl5z1WBjc+uOhfRRqzkJ3nWc8tjszxJN+y/5EOJavhsNI3/2yoTt6eMXRTqDD9b0tWSQ==}
|
||||
engines: {node: '>=14.0.0'}
|
||||
cpu: [arm]
|
||||
os: [linux]
|
||||
|
||||
sass-embedded-linux-musl-ia32@1.80.7:
|
||||
resolution: {integrity: sha512-Iw2E6P1lha335C5tGNgPjLD7Oll7OdLBJ7uPKaU+I7KbiOPk7ELsxUL9AYIrKO0/MLtgxGqOWWfTo/5cvU8xSA==}
|
||||
sass-embedded-linux-musl-ia32@1.81.0:
|
||||
resolution: {integrity: sha512-UEXUYkBuqTSwg5JNWiNlfMZ1Jx6SJkaEdx+fsL3Tk099L8cKSoJWH2EPz4ZJjNbyIMymrSdVfymheTeZ8u24xA==}
|
||||
engines: {node: '>=14.0.0'}
|
||||
cpu: [ia32]
|
||||
os: [linux]
|
||||
|
||||
sass-embedded-linux-musl-riscv64@1.80.7:
|
||||
resolution: {integrity: sha512-gd92dkDVpTh4xJb2hpX82E6el30h4MxCb7VJLwtbQSrQuxOlZgaDX4plMSZifsNTLvOsafdLCYyI+QsZRr8bkA==}
|
||||
sass-embedded-linux-musl-riscv64@1.81.0:
|
||||
resolution: {integrity: sha512-1D7OznytbIhx2XDHWi1nuQ8d/uCVR7FGGzELgaU//T8A9DapVTUgPKvB70AF1k4GzChR9IXU/WvFZs2hDTbaJg==}
|
||||
engines: {node: '>=14.0.0'}
|
||||
cpu: [riscv64]
|
||||
os: [linux]
|
||||
|
||||
sass-embedded-linux-musl-x64@1.80.7:
|
||||
resolution: {integrity: sha512-i5udU+i0LZrL3dhHAgIfK7LBaHtScwAceiykndNIHyRXc1TY2DX3lG0EolVUvPyWFUNnvGCgxZF8oUToPzJ+pw==}
|
||||
sass-embedded-linux-musl-x64@1.81.0:
|
||||
resolution: {integrity: sha512-ia6VCTeVDQtBSMktXRFza1AZCt8/6aUoujot6Ugf4KmdytQqPJIHxkHaGftm5xwi9WdrMGYS7zgolToPijR11A==}
|
||||
engines: {node: '>=14.0.0'}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
|
||||
sass-embedded-linux-riscv64@1.80.7:
|
||||
resolution: {integrity: sha512-DvnXvu019c6THNQnSWfy2eY/HFWZ2ogGUjRkdKAxj7U7i/YD+bsDIxdDQHZ48qzOguzx8n2aRa/clriM0HQPUA==}
|
||||
sass-embedded-linux-riscv64@1.81.0:
|
||||
resolution: {integrity: sha512-KbxSsqu4tT1XbhZfJV/5NfW0VtJIGlD58RjqJqJBi8Rnjrx29/upBsuwoDWtsPV/LhoGwwU1XkSa9Q1ifCz4fQ==}
|
||||
engines: {node: '>=14.0.0'}
|
||||
cpu: [riscv64]
|
||||
os: [linux]
|
||||
|
||||
sass-embedded-linux-x64@1.80.7:
|
||||
resolution: {integrity: sha512-nQB+IZwCzVPpPkP5L9zV416/AGPLky7L2GGPWtvxG2CEeTV1Rzet+gkhzk2eYEdbh+3py/w9YVRTaQuZ3QV0vQ==}
|
||||
sass-embedded-linux-x64@1.81.0:
|
||||
resolution: {integrity: sha512-AMDeVY2T9WAnSFkuQcsOn5c29GRs/TuqnCiblKeXfxCSKym5uKdBl/N7GnTV6OjzoxiJBbkYKdVIaS5By7Gj4g==}
|
||||
engines: {node: '>=14.0.0'}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
|
||||
sass-embedded-win32-arm64@1.80.7:
|
||||
resolution: {integrity: sha512-Q6Rh/CM30m8txoKK5SIVamnwPXs028Mvfq4Ol4saHgSYro9kY/HTrrWlG/RPd6sPvYBCYIm1mX8oBteDUMCajQ==}
|
||||
sass-embedded-win32-arm64@1.81.0:
|
||||
resolution: {integrity: sha512-YOmBRYnygwWUmCoH14QbMRHjcvCJufeJBAp0m61tOJXIQh64ziwV4mjdqjS/Rx3zhTT4T+nulDUw4d3kLiMncA==}
|
||||
engines: {node: '>=14.0.0'}
|
||||
cpu: [arm64]
|
||||
os: [win32]
|
||||
|
||||
sass-embedded-win32-ia32@1.80.7:
|
||||
resolution: {integrity: sha512-VZMRp81KWUZZDqNwkL3yTDT+VRxB7ScJKUJD1M8fq6P1nyJP35+r1byXLF4UQMoNgpC5B16txxMvqdkv43OqAA==}
|
||||
sass-embedded-win32-ia32@1.81.0:
|
||||
resolution: {integrity: sha512-HFfr/C+uLJGGTENdnssuNTmXI/xnIasUuEHEKqI+2J0FHCWT5cpz3PGAOHymPyJcZVYGUG/7gIxIx/d7t0LFYw==}
|
||||
engines: {node: '>=14.0.0'}
|
||||
cpu: [ia32]
|
||||
os: [win32]
|
||||
|
||||
sass-embedded-win32-x64@1.80.7:
|
||||
resolution: {integrity: sha512-4p+GzOJJ1KqxPKrkIkKisod4YAcC70fj4WMRLrQLLuUW+MzAvtKgX2+ZJf90D50CozSdgETGBvdPSj3VLjBzZw==}
|
||||
sass-embedded-win32-x64@1.81.0:
|
||||
resolution: {integrity: sha512-wxj52jDcIAwWcXb7ShZ7vQYKcVUkJ+04YM9l46jDY+qwHzliGuorAUyujLyKTE9heGD3gShJ3wPPC1lXzq6v9A==}
|
||||
engines: {node: '>=14.0.0'}
|
||||
cpu: [x64]
|
||||
os: [win32]
|
||||
|
||||
sass-embedded@1.80.7:
|
||||
resolution: {integrity: sha512-OwF0QvpDUjW2udPCvxgaObU0tQHycpsIgCDtHBVHuOqZ2LN0OkkY+uxSO7bOaw9wD7vXtt+1V+jiIZDTxiSRVQ==}
|
||||
sass-embedded@1.81.0:
|
||||
resolution: {integrity: sha512-uZQ2Faxb1oWBHpeSSzjxnhClbMb3QadN0ql0ZFNuqWOLUxwaVhrMlMhPq6TDPbbfDUjihuwrMCuy695Bgna5RA==}
|
||||
engines: {node: '>=16.0.0'}
|
||||
hasBin: true
|
||||
|
||||
|
|
@ -2920,8 +2920,8 @@ packages:
|
|||
resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
||||
wp-types@4.66.1:
|
||||
resolution: {integrity: sha512-T2sEGcg3MdQ1vojiEMfzO4JpXUPdb+FWgflM6FZln0UTvFwmDBKyNyTik3ODu0nNdAtaSAJzR/HYyqBerKP31g==}
|
||||
wp-types@4.67.0:
|
||||
resolution: {integrity: sha512-pf8cDXo3cGLx4GR+lgLz4GzYglRXlv2mkUrkXYLvFDH76ZmYZERNWnvQdWgCJdWpPOXj5cTzv3qvrGKFcRKtXA==}
|
||||
|
||||
wrappy@1.0.2:
|
||||
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
|
||||
|
|
@ -3186,7 +3186,7 @@ snapshots:
|
|||
|
||||
'@eslint/object-schema@2.1.4': {}
|
||||
|
||||
'@eslint/plugin-kit@0.2.2':
|
||||
'@eslint/plugin-kit@0.2.3':
|
||||
dependencies:
|
||||
levn: 0.4.1
|
||||
|
||||
|
|
@ -3394,74 +3394,74 @@ snapshots:
|
|||
'@xml-tools/parser': 1.0.11
|
||||
prettier: 3.3.3
|
||||
|
||||
'@rollup/plugin-inject@5.0.5(rollup@4.26.0)':
|
||||
'@rollup/plugin-inject@5.0.5(rollup@4.27.0)':
|
||||
dependencies:
|
||||
'@rollup/pluginutils': 5.1.3(rollup@4.26.0)
|
||||
'@rollup/pluginutils': 5.1.3(rollup@4.27.0)
|
||||
estree-walker: 2.0.2
|
||||
magic-string: 0.30.12
|
||||
optionalDependencies:
|
||||
rollup: 4.26.0
|
||||
rollup: 4.27.0
|
||||
|
||||
'@rollup/pluginutils@5.1.3(rollup@4.26.0)':
|
||||
'@rollup/pluginutils@5.1.3(rollup@4.27.0)':
|
||||
dependencies:
|
||||
'@types/estree': 1.0.6
|
||||
estree-walker: 2.0.2
|
||||
picomatch: 4.0.2
|
||||
optionalDependencies:
|
||||
rollup: 4.26.0
|
||||
rollup: 4.27.0
|
||||
|
||||
'@rollup/rollup-android-arm-eabi@4.26.0':
|
||||
'@rollup/rollup-android-arm-eabi@4.27.0':
|
||||
optional: true
|
||||
|
||||
'@rollup/rollup-android-arm64@4.26.0':
|
||||
'@rollup/rollup-android-arm64@4.27.0':
|
||||
optional: true
|
||||
|
||||
'@rollup/rollup-darwin-arm64@4.26.0':
|
||||
'@rollup/rollup-darwin-arm64@4.27.0':
|
||||
optional: true
|
||||
|
||||
'@rollup/rollup-darwin-x64@4.26.0':
|
||||
'@rollup/rollup-darwin-x64@4.27.0':
|
||||
optional: true
|
||||
|
||||
'@rollup/rollup-freebsd-arm64@4.26.0':
|
||||
'@rollup/rollup-freebsd-arm64@4.27.0':
|
||||
optional: true
|
||||
|
||||
'@rollup/rollup-freebsd-x64@4.26.0':
|
||||
'@rollup/rollup-freebsd-x64@4.27.0':
|
||||
optional: true
|
||||
|
||||
'@rollup/rollup-linux-arm-gnueabihf@4.26.0':
|
||||
'@rollup/rollup-linux-arm-gnueabihf@4.27.0':
|
||||
optional: true
|
||||
|
||||
'@rollup/rollup-linux-arm-musleabihf@4.26.0':
|
||||
'@rollup/rollup-linux-arm-musleabihf@4.27.0':
|
||||
optional: true
|
||||
|
||||
'@rollup/rollup-linux-arm64-gnu@4.26.0':
|
||||
'@rollup/rollup-linux-arm64-gnu@4.27.0':
|
||||
optional: true
|
||||
|
||||
'@rollup/rollup-linux-arm64-musl@4.26.0':
|
||||
'@rollup/rollup-linux-arm64-musl@4.27.0':
|
||||
optional: true
|
||||
|
||||
'@rollup/rollup-linux-powerpc64le-gnu@4.26.0':
|
||||
'@rollup/rollup-linux-powerpc64le-gnu@4.27.0':
|
||||
optional: true
|
||||
|
||||
'@rollup/rollup-linux-riscv64-gnu@4.26.0':
|
||||
'@rollup/rollup-linux-riscv64-gnu@4.27.0':
|
||||
optional: true
|
||||
|
||||
'@rollup/rollup-linux-s390x-gnu@4.26.0':
|
||||
'@rollup/rollup-linux-s390x-gnu@4.27.0':
|
||||
optional: true
|
||||
|
||||
'@rollup/rollup-linux-x64-gnu@4.26.0':
|
||||
'@rollup/rollup-linux-x64-gnu@4.27.0':
|
||||
optional: true
|
||||
|
||||
'@rollup/rollup-linux-x64-musl@4.26.0':
|
||||
'@rollup/rollup-linux-x64-musl@4.27.0':
|
||||
optional: true
|
||||
|
||||
'@rollup/rollup-win32-arm64-msvc@4.26.0':
|
||||
'@rollup/rollup-win32-arm64-msvc@4.27.0':
|
||||
optional: true
|
||||
|
||||
'@rollup/rollup-win32-ia32-msvc@4.26.0':
|
||||
'@rollup/rollup-win32-ia32-msvc@4.27.0':
|
||||
optional: true
|
||||
|
||||
'@rollup/rollup-win32-x64-msvc@4.26.0':
|
||||
'@rollup/rollup-win32-x64-msvc@4.27.0':
|
||||
optional: true
|
||||
|
||||
'@sentry-internal/browser-utils@8.38.0':
|
||||
|
|
@ -3898,7 +3898,7 @@ snapshots:
|
|||
browserslist@4.24.2:
|
||||
dependencies:
|
||||
caniuse-lite: 1.0.30001680
|
||||
electron-to-chromium: 1.5.57
|
||||
electron-to-chromium: 1.5.60
|
||||
node-releases: 2.0.18
|
||||
update-browserslist-db: 1.1.1(browserslist@4.24.2)
|
||||
|
||||
|
|
@ -4115,7 +4115,7 @@ snapshots:
|
|||
optionalDependencies:
|
||||
wcwidth: 1.0.1
|
||||
|
||||
electron-to-chromium@1.5.57: {}
|
||||
electron-to-chromium@1.5.60: {}
|
||||
|
||||
elliptic@6.6.1:
|
||||
dependencies:
|
||||
|
|
@ -4214,7 +4214,7 @@ snapshots:
|
|||
'@eslint/core': 0.7.0
|
||||
'@eslint/eslintrc': 3.1.0
|
||||
'@eslint/js': 9.14.0
|
||||
'@eslint/plugin-kit': 0.2.2
|
||||
'@eslint/plugin-kit': 0.2.3
|
||||
'@humanfs/node': 0.16.6
|
||||
'@humanwhocodes/module-importer': 1.0.1
|
||||
'@humanwhocodes/retry': 0.4.1
|
||||
|
|
@ -4618,7 +4618,7 @@ snapshots:
|
|||
|
||||
kleur@4.1.5: {}
|
||||
|
||||
knip@5.36.7(@types/node@22.9.0)(typescript@5.7.0-dev.20241105):
|
||||
knip@5.37.0(@types/node@22.9.0)(typescript@5.7.0-dev.20241105):
|
||||
dependencies:
|
||||
'@nodelib/fs.walk': 1.2.8
|
||||
'@snyk/github-codeowners': 1.1.0
|
||||
|
|
@ -4631,7 +4631,7 @@ snapshots:
|
|||
minimist: 1.2.8
|
||||
picocolors: 1.1.1
|
||||
picomatch: 4.0.2
|
||||
pretty-ms: 9.1.0
|
||||
pretty-ms: 9.2.0
|
||||
smol-toml: 1.3.0
|
||||
strip-json-comments: 5.0.1
|
||||
summary: 2.1.0
|
||||
|
|
@ -4958,7 +4958,7 @@ snapshots:
|
|||
|
||||
prettier@3.3.3: {}
|
||||
|
||||
pretty-ms@9.1.0:
|
||||
pretty-ms@9.2.0:
|
||||
dependencies:
|
||||
parse-ms: 4.0.0
|
||||
|
||||
|
|
@ -5059,28 +5059,28 @@ snapshots:
|
|||
hash-base: 3.0.4
|
||||
inherits: 2.0.4
|
||||
|
||||
rollup@4.26.0:
|
||||
rollup@4.27.0:
|
||||
dependencies:
|
||||
'@types/estree': 1.0.6
|
||||
optionalDependencies:
|
||||
'@rollup/rollup-android-arm-eabi': 4.26.0
|
||||
'@rollup/rollup-android-arm64': 4.26.0
|
||||
'@rollup/rollup-darwin-arm64': 4.26.0
|
||||
'@rollup/rollup-darwin-x64': 4.26.0
|
||||
'@rollup/rollup-freebsd-arm64': 4.26.0
|
||||
'@rollup/rollup-freebsd-x64': 4.26.0
|
||||
'@rollup/rollup-linux-arm-gnueabihf': 4.26.0
|
||||
'@rollup/rollup-linux-arm-musleabihf': 4.26.0
|
||||
'@rollup/rollup-linux-arm64-gnu': 4.26.0
|
||||
'@rollup/rollup-linux-arm64-musl': 4.26.0
|
||||
'@rollup/rollup-linux-powerpc64le-gnu': 4.26.0
|
||||
'@rollup/rollup-linux-riscv64-gnu': 4.26.0
|
||||
'@rollup/rollup-linux-s390x-gnu': 4.26.0
|
||||
'@rollup/rollup-linux-x64-gnu': 4.26.0
|
||||
'@rollup/rollup-linux-x64-musl': 4.26.0
|
||||
'@rollup/rollup-win32-arm64-msvc': 4.26.0
|
||||
'@rollup/rollup-win32-ia32-msvc': 4.26.0
|
||||
'@rollup/rollup-win32-x64-msvc': 4.26.0
|
||||
'@rollup/rollup-android-arm-eabi': 4.27.0
|
||||
'@rollup/rollup-android-arm64': 4.27.0
|
||||
'@rollup/rollup-darwin-arm64': 4.27.0
|
||||
'@rollup/rollup-darwin-x64': 4.27.0
|
||||
'@rollup/rollup-freebsd-arm64': 4.27.0
|
||||
'@rollup/rollup-freebsd-x64': 4.27.0
|
||||
'@rollup/rollup-linux-arm-gnueabihf': 4.27.0
|
||||
'@rollup/rollup-linux-arm-musleabihf': 4.27.0
|
||||
'@rollup/rollup-linux-arm64-gnu': 4.27.0
|
||||
'@rollup/rollup-linux-arm64-musl': 4.27.0
|
||||
'@rollup/rollup-linux-powerpc64le-gnu': 4.27.0
|
||||
'@rollup/rollup-linux-riscv64-gnu': 4.27.0
|
||||
'@rollup/rollup-linux-s390x-gnu': 4.27.0
|
||||
'@rollup/rollup-linux-x64-gnu': 4.27.0
|
||||
'@rollup/rollup-linux-x64-musl': 4.27.0
|
||||
'@rollup/rollup-win32-arm64-msvc': 4.27.0
|
||||
'@rollup/rollup-win32-ia32-msvc': 4.27.0
|
||||
'@rollup/rollup-win32-x64-msvc': 4.27.0
|
||||
fsevents: 2.3.3
|
||||
|
||||
run-parallel@1.2.0:
|
||||
|
|
@ -5095,67 +5095,67 @@ snapshots:
|
|||
|
||||
safe-buffer@5.2.1: {}
|
||||
|
||||
sass-embedded-android-arm64@1.80.7:
|
||||
sass-embedded-android-arm64@1.81.0:
|
||||
optional: true
|
||||
|
||||
sass-embedded-android-arm@1.80.7:
|
||||
sass-embedded-android-arm@1.81.0:
|
||||
optional: true
|
||||
|
||||
sass-embedded-android-ia32@1.80.7:
|
||||
sass-embedded-android-ia32@1.81.0:
|
||||
optional: true
|
||||
|
||||
sass-embedded-android-riscv64@1.80.7:
|
||||
sass-embedded-android-riscv64@1.81.0:
|
||||
optional: true
|
||||
|
||||
sass-embedded-android-x64@1.80.7:
|
||||
sass-embedded-android-x64@1.81.0:
|
||||
optional: true
|
||||
|
||||
sass-embedded-darwin-arm64@1.80.7:
|
||||
sass-embedded-darwin-arm64@1.81.0:
|
||||
optional: true
|
||||
|
||||
sass-embedded-darwin-x64@1.80.7:
|
||||
sass-embedded-darwin-x64@1.81.0:
|
||||
optional: true
|
||||
|
||||
sass-embedded-linux-arm64@1.80.7:
|
||||
sass-embedded-linux-arm64@1.81.0:
|
||||
optional: true
|
||||
|
||||
sass-embedded-linux-arm@1.80.7:
|
||||
sass-embedded-linux-arm@1.81.0:
|
||||
optional: true
|
||||
|
||||
sass-embedded-linux-ia32@1.80.7:
|
||||
sass-embedded-linux-ia32@1.81.0:
|
||||
optional: true
|
||||
|
||||
sass-embedded-linux-musl-arm64@1.80.7:
|
||||
sass-embedded-linux-musl-arm64@1.81.0:
|
||||
optional: true
|
||||
|
||||
sass-embedded-linux-musl-arm@1.80.7:
|
||||
sass-embedded-linux-musl-arm@1.81.0:
|
||||
optional: true
|
||||
|
||||
sass-embedded-linux-musl-ia32@1.80.7:
|
||||
sass-embedded-linux-musl-ia32@1.81.0:
|
||||
optional: true
|
||||
|
||||
sass-embedded-linux-musl-riscv64@1.80.7:
|
||||
sass-embedded-linux-musl-riscv64@1.81.0:
|
||||
optional: true
|
||||
|
||||
sass-embedded-linux-musl-x64@1.80.7:
|
||||
sass-embedded-linux-musl-x64@1.81.0:
|
||||
optional: true
|
||||
|
||||
sass-embedded-linux-riscv64@1.80.7:
|
||||
sass-embedded-linux-riscv64@1.81.0:
|
||||
optional: true
|
||||
|
||||
sass-embedded-linux-x64@1.80.7:
|
||||
sass-embedded-linux-x64@1.81.0:
|
||||
optional: true
|
||||
|
||||
sass-embedded-win32-arm64@1.80.7:
|
||||
sass-embedded-win32-arm64@1.81.0:
|
||||
optional: true
|
||||
|
||||
sass-embedded-win32-ia32@1.80.7:
|
||||
sass-embedded-win32-ia32@1.81.0:
|
||||
optional: true
|
||||
|
||||
sass-embedded-win32-x64@1.80.7:
|
||||
sass-embedded-win32-x64@1.81.0:
|
||||
optional: true
|
||||
|
||||
sass-embedded@1.80.7:
|
||||
sass-embedded@1.81.0:
|
||||
dependencies:
|
||||
'@bufbuild/protobuf': 2.2.2
|
||||
buffer-builder: 0.2.0
|
||||
|
|
@ -5166,26 +5166,26 @@ snapshots:
|
|||
sync-child-process: 1.0.2
|
||||
varint: 6.0.0
|
||||
optionalDependencies:
|
||||
sass-embedded-android-arm: 1.80.7
|
||||
sass-embedded-android-arm64: 1.80.7
|
||||
sass-embedded-android-ia32: 1.80.7
|
||||
sass-embedded-android-riscv64: 1.80.7
|
||||
sass-embedded-android-x64: 1.80.7
|
||||
sass-embedded-darwin-arm64: 1.80.7
|
||||
sass-embedded-darwin-x64: 1.80.7
|
||||
sass-embedded-linux-arm: 1.80.7
|
||||
sass-embedded-linux-arm64: 1.80.7
|
||||
sass-embedded-linux-ia32: 1.80.7
|
||||
sass-embedded-linux-musl-arm: 1.80.7
|
||||
sass-embedded-linux-musl-arm64: 1.80.7
|
||||
sass-embedded-linux-musl-ia32: 1.80.7
|
||||
sass-embedded-linux-musl-riscv64: 1.80.7
|
||||
sass-embedded-linux-musl-x64: 1.80.7
|
||||
sass-embedded-linux-riscv64: 1.80.7
|
||||
sass-embedded-linux-x64: 1.80.7
|
||||
sass-embedded-win32-arm64: 1.80.7
|
||||
sass-embedded-win32-ia32: 1.80.7
|
||||
sass-embedded-win32-x64: 1.80.7
|
||||
sass-embedded-android-arm: 1.81.0
|
||||
sass-embedded-android-arm64: 1.81.0
|
||||
sass-embedded-android-ia32: 1.81.0
|
||||
sass-embedded-android-riscv64: 1.81.0
|
||||
sass-embedded-android-x64: 1.81.0
|
||||
sass-embedded-darwin-arm64: 1.81.0
|
||||
sass-embedded-darwin-x64: 1.81.0
|
||||
sass-embedded-linux-arm: 1.81.0
|
||||
sass-embedded-linux-arm64: 1.81.0
|
||||
sass-embedded-linux-ia32: 1.81.0
|
||||
sass-embedded-linux-musl-arm: 1.81.0
|
||||
sass-embedded-linux-musl-arm64: 1.81.0
|
||||
sass-embedded-linux-musl-ia32: 1.81.0
|
||||
sass-embedded-linux-musl-riscv64: 1.81.0
|
||||
sass-embedded-linux-musl-x64: 1.81.0
|
||||
sass-embedded-linux-riscv64: 1.81.0
|
||||
sass-embedded-linux-x64: 1.81.0
|
||||
sass-embedded-win32-arm64: 1.81.0
|
||||
sass-embedded-win32-ia32: 1.81.0
|
||||
sass-embedded-win32-x64: 1.81.0
|
||||
|
||||
sass@1.80.6:
|
||||
dependencies:
|
||||
|
|
@ -5547,42 +5547,42 @@ snapshots:
|
|||
|
||||
vite-plugin-manifest-sri@0.2.0: {}
|
||||
|
||||
vite-plugin-node-polyfills@0.22.0(rollup@4.26.0)(vite@5.4.11(@types/node@22.9.0)(sass-embedded@1.80.7)(sass@1.80.6)):
|
||||
vite-plugin-node-polyfills@0.22.0(rollup@4.27.0)(vite@5.4.11(@types/node@22.9.0)(sass-embedded@1.81.0)(sass@1.80.6)):
|
||||
dependencies:
|
||||
'@rollup/plugin-inject': 5.0.5(rollup@4.26.0)
|
||||
'@rollup/plugin-inject': 5.0.5(rollup@4.27.0)
|
||||
node-stdlib-browser: 1.2.1
|
||||
vite: 5.4.11(@types/node@22.9.0)(sass-embedded@1.80.7)(sass@1.80.6)
|
||||
vite: 5.4.11(@types/node@22.9.0)(sass-embedded@1.81.0)(sass@1.80.6)
|
||||
transitivePeerDependencies:
|
||||
- rollup
|
||||
|
||||
vite-plugin-valibot-env@0.8.5(valibot@1.0.0-beta.3(typescript@5.7.0-dev.20241105))(vite@5.4.11(@types/node@22.9.0)(sass-embedded@1.80.7)(sass@1.80.6)):
|
||||
vite-plugin-valibot-env@0.8.5(valibot@1.0.0-beta.3(typescript@5.7.0-dev.20241105))(vite@5.4.11(@types/node@22.9.0)(sass-embedded@1.81.0)(sass@1.80.6)):
|
||||
dependencies:
|
||||
kleur: 4.1.5
|
||||
log-symbols: 7.0.0
|
||||
valibot: 1.0.0-beta.3(typescript@5.7.0-dev.20241105)
|
||||
vite: 5.4.11(@types/node@22.9.0)(sass-embedded@1.80.7)(sass@1.80.6)
|
||||
vite: 5.4.11(@types/node@22.9.0)(sass-embedded@1.81.0)(sass@1.80.6)
|
||||
|
||||
vite-tsconfig-paths@5.1.2(typescript@5.7.0-dev.20241105)(vite@5.4.11(@types/node@22.9.0)(sass-embedded@1.80.7)(sass@1.80.6)):
|
||||
vite-tsconfig-paths@5.1.2(typescript@5.7.0-dev.20241105)(vite@5.4.11(@types/node@22.9.0)(sass-embedded@1.81.0)(sass@1.80.6)):
|
||||
dependencies:
|
||||
debug: 4.3.7
|
||||
globrex: 0.1.2
|
||||
tsconfck: 3.1.4(typescript@5.7.0-dev.20241105)
|
||||
optionalDependencies:
|
||||
vite: 5.4.11(@types/node@22.9.0)(sass-embedded@1.80.7)(sass@1.80.6)
|
||||
vite: 5.4.11(@types/node@22.9.0)(sass-embedded@1.81.0)(sass@1.80.6)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
- typescript
|
||||
|
||||
vite@5.4.11(@types/node@22.9.0)(sass-embedded@1.80.7)(sass@1.80.6):
|
||||
vite@5.4.11(@types/node@22.9.0)(sass-embedded@1.81.0)(sass@1.80.6):
|
||||
dependencies:
|
||||
esbuild: 0.21.5
|
||||
postcss: 8.4.49
|
||||
rollup: 4.26.0
|
||||
rollup: 4.27.0
|
||||
optionalDependencies:
|
||||
'@types/node': 22.9.0
|
||||
fsevents: 2.3.3
|
||||
sass: 1.80.6
|
||||
sass-embedded: 1.80.7
|
||||
sass-embedded: 1.81.0
|
||||
|
||||
vm-browserify@1.1.2: {}
|
||||
|
||||
|
|
@ -5609,7 +5609,7 @@ snapshots:
|
|||
|
||||
word-wrap@1.2.5: {}
|
||||
|
||||
wp-types@4.66.1:
|
||||
wp-types@4.67.0:
|
||||
dependencies:
|
||||
typescript: 5.6.3
|
||||
|
||||
|
|
|
|||
|
|
@ -44,7 +44,6 @@ export default defineConfig({
|
|||
},
|
||||
sourcemap: true,
|
||||
target: "es2020",
|
||||
watch: { clearScreen: true },
|
||||
write: true,
|
||||
},
|
||||
plugins: [
|
||||
|
|
|
|||
3085
web/app/object-cache.php
Normal file
|
|
@ -181,24 +181,24 @@ button {
|
|||
outline: 2px solid transparent;
|
||||
transition: 0.2s background, 0.2s color;
|
||||
}
|
||||
button:focus-visible {
|
||||
button:not[disabled]:focus-visible {
|
||||
z-index: 5;
|
||||
outline: 2px solid var(--couleur-noir);
|
||||
}
|
||||
button:disabled, button[disabled] {
|
||||
background: repeating-conic-gradient(var(--couleur-noir) 0% 25%, transparent 0% 100%) 1px 0.5px/2px 2px;
|
||||
outline-color: transparent;
|
||||
}
|
||||
button:active {
|
||||
button:not[disabled]:active {
|
||||
color: var(--couleur-blanc) !important;
|
||||
background: var(--couleur-noir) !important;
|
||||
}
|
||||
@media (hover: hover) {
|
||||
button:hover {
|
||||
button:not[disabled]:hover {
|
||||
color: var(--couleur-noir);
|
||||
background: var(--couleur-jaune);
|
||||
}
|
||||
}
|
||||
button:disabled, button[disabled] {
|
||||
background: repeating-conic-gradient(var(--couleur-noir) 0% 25%, transparent 0% 100%) 1px 0.5px/2px 2px;
|
||||
outline-color: transparent;
|
||||
}
|
||||
button.bouton-case-pleine {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
|
@ -1094,7 +1094,8 @@ body:has(#menu-mobile:not([aria-hidden=true])) {
|
|||
border-top-color: transparent;
|
||||
}
|
||||
.informations-produit .onglets-details-produit > ul li a:focus-visible {
|
||||
outline-color: transparent;
|
||||
outline: 2px solid var(--couleur-noir);
|
||||
outline-offset: -2px;
|
||||
}
|
||||
@media (hover: hover) {
|
||||
.informations-produit .onglets-details-produit > ul li a:hover {
|
||||
|
|
|
|||
|
|
@ -4,40 +4,40 @@
|
|||
"name": "Either",
|
||||
"integrity": "sha512-iA88qYfaqIo+2/H0VzUP5VPULY8gMF4bgybyguKQQj/k1/LKHmurwKDvKCIPz3/kdz+2jUjG9/vlqu9+i6/klg=="
|
||||
},
|
||||
"_MaybeAsync.AE1jnxuc.js": {
|
||||
"file": "MaybeAsync.AE1jnxuc.js",
|
||||
"_MaybeAsync.Ba-OfjWy.js": {
|
||||
"file": "MaybeAsync.Ba-OfjWy.js",
|
||||
"name": "MaybeAsync",
|
||||
"imports": [
|
||||
"_Either.wHNxn7Os.js"
|
||||
],
|
||||
"integrity": "sha512-zBecrvIRiJOu6YYRpnc0k8S2hhntD+UpPtg3zhLd4KQSyWdXQTt6ubhfDTOhBtMYi/W1LLcZX89krSQqxkWfGA=="
|
||||
"integrity": "sha512-iLyoaxrZR9rsJL8d2tu48LymRiSdej5+2ZWqaIDBVWtM8n5PMvng5xVtXGPNJ5UZpEtZvAUOf7w+jNrY2LP10g=="
|
||||
},
|
||||
"_belt_Option-91f3b350.D8kNxoqg.js": {
|
||||
"file": "belt_Option-91f3b350.D8kNxoqg.js",
|
||||
"_belt_Option-91f3b350.BKMoZFhU.js": {
|
||||
"file": "belt_Option-91f3b350.BKMoZFhU.js",
|
||||
"name": "belt_Option-91f3b350",
|
||||
"imports": [
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/dom.ts"
|
||||
],
|
||||
"integrity": "sha512-jq2VqkmFq7qCXj0sEA6g969jMAwRb8i2zXXVrNjRWFEn6hj7sc2kc30RK+UOtV5zpVHicKVw4wNzTuF5nIgLMg=="
|
||||
"integrity": "sha512-aQFt1IL5vfOZ0G3wLQlW0OxXxOVtECojJ1MLeZKU4ZUa5wEsjWZy8e+hxxA01tMRNvQ0sGvS9VeUkSqtIM5Cjg=="
|
||||
},
|
||||
"_exports.DtgtFHVi.js": {
|
||||
"file": "exports.DtgtFHVi.js",
|
||||
"_exports.DT-46nyp.js": {
|
||||
"file": "exports.DT-46nyp.js",
|
||||
"name": "exports",
|
||||
"integrity": "sha512-4cRVLOnpaeyA6k5R693OlrBhMVC+rhYTAHtn0u4057IvKs0PfWmjhBN1wkaEYJqrmLuI4lbosNuCqW6umZGNbw=="
|
||||
"integrity": "sha512-guj1IEABa9hA7TonTv4PlBhvqlwPQeE1vPyMmeRSOemTg5Mih4jIfeZOsFr+pVP0AYgP4dJO0+Vj3YCWwPVZZg=="
|
||||
},
|
||||
"_index-0eef19ec.DjnU1cik.js": {
|
||||
"file": "index-0eef19ec.DjnU1cik.js",
|
||||
"_index-0eef19ec.CFsloYN6.js": {
|
||||
"file": "index-0eef19ec.CFsloYN6.js",
|
||||
"name": "index-0eef19ec",
|
||||
"imports": [
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/dom.ts",
|
||||
"_belt_Option-91f3b350.D8kNxoqg.js"
|
||||
"_belt_Option-91f3b350.BKMoZFhU.js"
|
||||
],
|
||||
"integrity": "sha512-J+PW1bnDI0vPW0+cLy0fNldUj6bC6EIPoqFhPUuTuCNQ5i8NyLAbAa0TIlLnzx4Fsoetx2Vof4RDwylmGyLO6Q=="
|
||||
"integrity": "sha512-wORZ0WkOfNuzAUKhf7XA8LXG4geR64dUCIHwukqdLnUhkEFdeLpLtmDfuYMl5Aff09c7XjJxUQIVGwRb8uTbcA=="
|
||||
},
|
||||
"_index.BulDzU6h.js": {
|
||||
"file": "index.BulDzU6h.js",
|
||||
"_index.BueHQ6RV.js": {
|
||||
"file": "index.BueHQ6RV.js",
|
||||
"name": "index",
|
||||
"integrity": "sha512-3NcVKviJYwWo1JXzPuDxuwEs8BRmMM/4YAukKx2+Zl9klpzEWszVRGw1LsAP1X9O0RkrK5h0/0H/WZKkKAd9+g=="
|
||||
"integrity": "sha512-JBA3vYABLBXOw7LPZvJ/nt9oHANX6kp2Z2E/w1XzsUXxOaoZO3nu42tV+lS4ZPZuhfTlrKRT+UVfAzLwMapX5A=="
|
||||
},
|
||||
"_index.CeK6pfoJ.js": {
|
||||
"file": "index.CeK6pfoJ.js",
|
||||
|
|
@ -54,7 +54,7 @@
|
|||
"name": "api",
|
||||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts",
|
||||
"isEntry": true,
|
||||
"integrity": "sha512-KODb/K3N+dC4z6EFoCFWi62eYova7cUTt6WLY5LHGfyXylv+amTCs+LUo3n6GSpEfdvmwbsqWOtpYVulFNZ4tQ=="
|
||||
"integrity": "sha512-IwhkTU893yoVKm6XHK5H3hAtfFt/SDe0ftjM4h2RttKPvlxIl71FP6sOYCNeLEuGsuCx0Hz6FsrdqsUEqOpqVg=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts": {
|
||||
"file": "cart2.js",
|
||||
|
|
@ -68,7 +68,7 @@
|
|||
"name": "dom",
|
||||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/constantes/dom.ts",
|
||||
"isEntry": true,
|
||||
"integrity": "sha512-VLt7z6q/6b774swD4ORVonEVYt9aEjZtyjD5/xL9vqUGxZF5LIMhatbRDJw26N512OSTVzazhDD2yf8mNrQsQg=="
|
||||
"integrity": "sha512-AUdY+bNzLgbYp948Md+Ja5sr822XkYFXSUlfPjF+YTiFxiN9hzYRQAUsTRtsk9z17FBRSOvwOWTS50pwApnMBA=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/messages.ts": {
|
||||
"file": "messages3.js",
|
||||
|
|
@ -89,7 +89,7 @@
|
|||
"name": "products",
|
||||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/constantes/products.ts",
|
||||
"isEntry": true,
|
||||
"integrity": "sha512-Hh8yxeOZedoSWNSUhV6BuO/YXUgZt2KaGQZgbZRedtz0jM90Yc7d2Ir6YJhnbZVRzedow6+uXlxutG9oHeGB0Q=="
|
||||
"integrity": "sha512-kSyYMKtrlEELmR+Oi/SElrlhfn/mg/1QJkddMt+/w4jlrhYrUlApLvwAr1/ynpCBzj0g4CmBOYen5rTO53bJ1w=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/gaffe.ts": {
|
||||
"file": "gaffe.js",
|
||||
|
|
@ -98,10 +98,10 @@
|
|||
"isEntry": true,
|
||||
"imports": [
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts",
|
||||
"_exports.DtgtFHVi.js",
|
||||
"_exports.DT-46nyp.js",
|
||||
"_pipe.XPB0wEfw.js"
|
||||
],
|
||||
"integrity": "sha512-879kPDiJLnXB+lzNRxL4ShyFPUmbSM13BV6whvCU+Iz0FdNICq8HXYUoGXnvrYBALbphqpGgy0qgZq+7cJpvfw=="
|
||||
"integrity": "sha512-QQ4AgRankxszy2lL9PwpKn4u1qftdAEfH2fjKIsz2r1r1vbAVy9RxvnRolMzQoDMp9Z5u0LYBibtRl0phcP6Bg=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/dom.ts": {
|
||||
"file": "dom2.js",
|
||||
|
|
@ -110,11 +110,11 @@
|
|||
"isEntry": true,
|
||||
"imports": [
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
|
||||
"_pipe.XPB0wEfw.js",
|
||||
"_Either.wHNxn7Os.js",
|
||||
"_exports.DtgtFHVi.js"
|
||||
"_pipe.XPB0wEfw.js",
|
||||
"_exports.DT-46nyp.js"
|
||||
],
|
||||
"integrity": "sha512-MkD15qSuTmRpn0Wx1vE9hEAZnI+sjDf3VUqaOoiLWWzY0ZVpxNXwgSb+WmvsEi/Qqh699j5U7cm80F/u0BfSfA=="
|
||||
"integrity": "sha512-q4nE3OSywq1d12PYGyULtsAdxT2OtFe5E0Ec81VSvKP0/+g1qbHqqu7FPYzCcxNXTGuLEsmtdZLPowfIESBzyg=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts": {
|
||||
"file": "erreurs.js",
|
||||
|
|
@ -122,9 +122,9 @@
|
|||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_exports.DtgtFHVi.js"
|
||||
"_exports.DT-46nyp.js"
|
||||
],
|
||||
"integrity": "sha512-b8Bd2KjSABlP1YIg9Ye5YaSyPmlazvDe1MKBS89/Hy5Ao31Yrh7HXPu+qqnHXAvEvhL4H1wIZSEKBdp1nufxEg=="
|
||||
"integrity": "sha512-VCvTqmBichQ2MC4UG1jCaBSZYI814NOS6zm+RJJ8dfvdR9foeXGuvnAEtZAU1U4tBk79bkIHUc6O/hkR8JpcmA=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/gardes.ts": {
|
||||
"file": "gardes.js",
|
||||
|
|
@ -140,10 +140,10 @@
|
|||
"isEntry": true,
|
||||
"imports": [
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts",
|
||||
"_MaybeAsync.AE1jnxuc.js",
|
||||
"_MaybeAsync.Ba-OfjWy.js",
|
||||
"_Either.wHNxn7Os.js"
|
||||
],
|
||||
"integrity": "sha512-4aRzHNyzaWfKoOZofItv0GCb6MFmOL6BlIikWmLx/PnovqoFp6Roj/pysTgAgegVNj5i82d3+ueX5zAFEKMFvQ=="
|
||||
"integrity": "sha512-cPmRTewvt0FOjnKDlX4Bj+7BhUXeBTVJc1FMaFYBFbiaePTsftZ084cwHuR2eQRV4dSoK6H0JfRwjAolgfcGQA=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/messages.ts": {
|
||||
"file": "messages.js",
|
||||
|
|
@ -151,18 +151,18 @@
|
|||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/messages.ts",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.BulDzU6h.js",
|
||||
"_index.BueHQ6RV.js",
|
||||
"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/schemas/messages.ts",
|
||||
"_Either.wHNxn7Os.js",
|
||||
"_exports.DtgtFHVi.js",
|
||||
"_exports.DT-46nyp.js",
|
||||
"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/lib/schemas/api/adresses.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/couts-livraison.ts"
|
||||
],
|
||||
"integrity": "sha512-QAXhm7cuT2COvlqofJVbZ4t+7eExXtBJxAnub6i0uZLAPWDiNsKlzLjj/xeaDFcwvGCGX+Lwezerw5YJ3qGW3w=="
|
||||
"integrity": "sha512-eCAQZVQSA+5btfz3LobyZKZKLeygRne9GOvE2bMw7YNvUkvUd/CGfRXOzhRIE99MkTRjDfYk6nBv03Kdo/Dahw=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/nombres.ts": {
|
||||
"file": "nombres.js",
|
||||
|
|
@ -178,14 +178,14 @@
|
|||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.CeK6pfoJ.js",
|
||||
"_index.BulDzU6h.js",
|
||||
"_index.BueHQ6RV.js",
|
||||
"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/schemas/api/erreurs.ts",
|
||||
"_pipe.XPB0wEfw.js",
|
||||
"_exports.DtgtFHVi.js"
|
||||
"_exports.DT-46nyp.js"
|
||||
],
|
||||
"integrity": "sha512-Kleti69vNizn9p7F18Vp1FJkVEsO7QPWUn+mXM5KBtWe6k0TJsJ7Sk1FVX1sLrQc3d1Kg7uADDh+tGRRDs8oog=="
|
||||
"integrity": "sha512-Wb8z//28EPg7tcrbAGMTUWNyJ4pZsqXr4WA1U5JSewStanmdiKKmkn0Z1T4PYdei4n01mwu+0Q9q7W9JhzQKzQ=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts": {
|
||||
"file": "adresses.js",
|
||||
|
|
@ -193,9 +193,9 @@
|
|||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.BulDzU6h.js"
|
||||
"_index.BueHQ6RV.js"
|
||||
],
|
||||
"integrity": "sha512-PGP3Ki5F8Vhhfnv6YiSb1p55IygKJ66DPC8wTJfrEiKpWM7XEYHEPDlChAun2MgM/ITTxyP9H6CREVXLsVkUag=="
|
||||
"integrity": "sha512-l7cyXThYwsirOWk5NiFfPijbV8SnXS8HN9wWAsFAU7y1XufGR9Ly0EkiDLnqFtmTdwavl7Mu4OeeqLePol3z0g=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-add-item.ts": {
|
||||
"file": "cart-add-item.js",
|
||||
|
|
@ -203,9 +203,9 @@
|
|||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-add-item.ts",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.BulDzU6h.js"
|
||||
"_index.BueHQ6RV.js"
|
||||
],
|
||||
"integrity": "sha512-0sUMF0qZ3NFZCrEDlik+erBzKGTW2avFSRUdTqQWt5SEmNApUirsBb/xTObjynrVEJ2oRfN1QGMUByahE3ZO0w=="
|
||||
"integrity": "sha512-1L1gE2CvO306LqYlQlM4NJa4yPg6OQDShh6O/E0aauxb9uWLtyVAkS6F2I7i+B2YVtyWW1TvSpkES90hF9Qx8g=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-remove-item.ts": {
|
||||
"file": "cart-remove-item.js",
|
||||
|
|
@ -213,9 +213,9 @@
|
|||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-remove-item.ts",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.BulDzU6h.js"
|
||||
"_index.BueHQ6RV.js"
|
||||
],
|
||||
"integrity": "sha512-HVnZLnKmJjnfmwl1NRme6CWz+ja3Ywb4Hzi9sa7m+ZbU9CGKpawhKM0zdqMV8bKyPPShpY6uXmAPoWjfiCwt8A=="
|
||||
"integrity": "sha512-6/1H1KIM6V1DSOrQ9DfPm1nWL+TfjgakrWtXFPHqwN06Am5fW6fMgwc3MpOx9O+64mM5x6/OWCP4S9Vfkf4oOA=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-update-customer.ts": {
|
||||
"file": "cart-update-customer.js",
|
||||
|
|
@ -223,10 +223,10 @@
|
|||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-update-customer.ts",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.BulDzU6h.js",
|
||||
"_index.BueHQ6RV.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts"
|
||||
],
|
||||
"integrity": "sha512-wkgyzSixpqLjG9iyIrXE1mVaJg8ysSpmTgsPa8ySWEiuuGem7fWTwhs4rvTH7fn0zWWjCbmFW3b9nFvFqQJRyA=="
|
||||
"integrity": "sha512-oAEKlHsEbWgZpB6hXfn+BOyXYrEdUPTWPTn0jb02G86LlqNA1QxtXAyvG374HCT+0VbCwIj+vOIoTEsYWKCtAA=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-update-item.ts": {
|
||||
"file": "cart-update-item.js",
|
||||
|
|
@ -234,9 +234,9 @@
|
|||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-update-item.ts",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.BulDzU6h.js"
|
||||
"_index.BueHQ6RV.js"
|
||||
],
|
||||
"integrity": "sha512-bZWlPjJ4gPiYxWbhaQpZ1hppyk8iJa0ufXd42ZkrPkFLAirpx5T6UNJw5u4+twg/WUZW21QRgaSs63jwNVFFUQ=="
|
||||
"integrity": "sha512-i5nOdW2LgVQLh2RtxfxbzVEOmdgOu2C6rckoxPKeETkyBppGdHMlUGqdDdy10u73KlLRArjnIrtiz/AGnKIp+w=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart.ts": {
|
||||
"file": "cart.js",
|
||||
|
|
@ -244,12 +244,12 @@
|
|||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart.ts",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.BulDzU6h.js",
|
||||
"_index.BueHQ6RV.js",
|
||||
"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/couts-livraison.ts"
|
||||
],
|
||||
"integrity": "sha512-KjUpNFeD1I2uENVaTghYfAE7lpzMp2DMV9SljEa7AWKkIvLrxsEEEUs2EWgcA2lQqjgDhMHSBMG5raoOiuesyg=="
|
||||
"integrity": "sha512-4yTWIWIkf/MYbBJCaHxxfVVs1djAGOlLL2+uLKC9WoWMUiTkD4MvayvDvSSbimr7c/FF6N/dk9EdM5YC1Ycflw=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/couts-livraison.ts": {
|
||||
"file": "couts-livraison.js",
|
||||
|
|
@ -257,10 +257,10 @@
|
|||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/couts-livraison.ts",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.BulDzU6h.js",
|
||||
"_index.BueHQ6RV.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts"
|
||||
],
|
||||
"integrity": "sha512-tVVpy5w7joiInPVK4fkK6ZzKbwLWNDvvshLTGRKcxMwUOUUJxH/KysTKoqjIqBlpzxXZ0YV8RQu81JbHvW7k1g=="
|
||||
"integrity": "sha512-mu/KcAH7KjbWMUDGatCbRUUkqsVskBxmIw3Gsaxz+tAlVMEfqvjKBJ+PB/yW1Em91eMSCHl7tF95Bq1hOLv0oA=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/erreurs.ts": {
|
||||
"file": "erreurs2.js",
|
||||
|
|
@ -268,9 +268,9 @@
|
|||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/erreurs.ts",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.BulDzU6h.js"
|
||||
"_index.BueHQ6RV.js"
|
||||
],
|
||||
"integrity": "sha512-v6MUQqPZYiFCoxTwCQD2rv8TWt0AeIBjuo2zZObPziBqX2n5waPa84+rBfWE4oljnVWfmhAkVHYd1bILH3evFg=="
|
||||
"integrity": "sha512-KHz2JNlQR5m9V3daJ5+NQvhfvx0ZngG6Aic0Uug8OO7TkTTc9OXGzCxPuorNqQXH52FfLXkCqlnELH5tlSNA0A=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/products.ts": {
|
||||
"file": "products3.js",
|
||||
|
|
@ -278,10 +278,10 @@
|
|||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/products.ts",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.BulDzU6h.js",
|
||||
"_index.BueHQ6RV.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/products.ts"
|
||||
],
|
||||
"integrity": "sha512-xdX2dnN0BITg490rVCxD4iB+IloAMAE6DyE1D1/ajtTDsUl3zh+wLUkeYQFiMcz8GSsFD8SVVyi44uyuVBbS0A=="
|
||||
"integrity": "sha512-R4IyPyalPJS2dinZnRB0MWTnv0oyfo35iQhpElTXWoRcPXFJAYqcma0Uuz5SBpNl6RBlG9JTzvMdaeeB8BApVA=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/v3/orders.ts": {
|
||||
"file": "orders2.js",
|
||||
|
|
@ -289,11 +289,11 @@
|
|||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/v3/orders.ts",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.BulDzU6h.js",
|
||||
"_index.BueHQ6RV.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/orders.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts"
|
||||
],
|
||||
"integrity": "sha512-cuMhUff7PT0cSvT7qKrqUQsAHS0owAUjarvBnR0BBIYHUG4dEqyQyTzyOX8/v0HSyPUiRYs3EfgRyFbR5rUZSg=="
|
||||
"integrity": "sha512-c5+UiPuLEs8VaqHU08+BZhULPTykmcG2lvEBzN5KrIvu+vU0gzQ4CvieROpHLoaMJ+GooVMG4vxCnPcupSDtrg=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/v3/products.ts": {
|
||||
"file": "products.js",
|
||||
|
|
@ -301,10 +301,10 @@
|
|||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/v3/products.ts",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.BulDzU6h.js",
|
||||
"_index.BueHQ6RV.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/products.ts"
|
||||
],
|
||||
"integrity": "sha512-2snokc3zNKtXO/5uSZKk46RiixFNm6ilVrl9rpS3oxE9WO0J3PPY4i501kZWeDx66fXTfhFxZCT8Njxef4b2Hg=="
|
||||
"integrity": "sha512-vqzsZjVwevOjikB2eQx/Ksd/iusSTiyCI6/tyC0pIxyrAb7dN/PHRh0X1hWJyMgE0LA7Vibe9j6jxhz4E+uXkw=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts": {
|
||||
"file": "messages2.js",
|
||||
|
|
@ -312,14 +312,14 @@
|
|||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.BulDzU6h.js",
|
||||
"_index.BueHQ6RV.js",
|
||||
"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/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/couts-livraison.ts"
|
||||
],
|
||||
"integrity": "sha512-o3qH4I14gxkuaYiiKsh+M5vI9ReEX3U9kuVfQ6WsXiouUYLHYnbcImsZweeqSQ9RR5jVVBFx7GYIaMbYMTVHqw=="
|
||||
"integrity": "sha512-DeWFclQ++JTWvSSRkaPB20ZUDIgmRIyuGb5DRSUI1I80Mx4ZOR+bLnCiiWevRtyti9AXTuCCZAft5f9CUxhk0A=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/types/api/v3/orders.ts": {
|
||||
"file": "orders.js",
|
||||
|
|
@ -345,9 +345,9 @@
|
|||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
|
||||
"_pipe.XPB0wEfw.js",
|
||||
"_Either.wHNxn7Os.js",
|
||||
"_exports.DtgtFHVi.js"
|
||||
"_exports.DT-46nyp.js"
|
||||
],
|
||||
"integrity": "sha512-h9Qawq0Y7PDPsiOQHoVjkrZU5r8lm8xsFo7s/Nxgbz9/ndkiN9P5ikp/sBdIkBf+pfoVJp9x8txTY4ncAkssTw=="
|
||||
"integrity": "sha512-F3Lt50ZQrOGB4auHPp9I2CNbXTxd8bjMyUaNHrYYw2Ujy8p+EW8VqHTj2aAperb/C+0VrKEIYn4u2QtZiY/PWw=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/validation.ts": {
|
||||
"file": "validation.js",
|
||||
|
|
@ -355,10 +355,10 @@
|
|||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/validation.ts",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.BulDzU6h.js",
|
||||
"_index.BueHQ6RV.js",
|
||||
"_Either.wHNxn7Os.js"
|
||||
],
|
||||
"integrity": "sha512-WnABT8GHyiP4YBzt4BRB9fdA1zfvLrd5TZWAVF3OXgT8HHz1/JzJlPei6ZauSHS/G42oV0r/ZyOFs/XdJTqHkg=="
|
||||
"integrity": "sha512-cXdOshDN3m5f4K9MkDFTGd3++CFabxWu3SWHuXfn4h6d08cwXm8jzWKsYU2tn7bKFGrEMamY/l13znqyAMi1Gg=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-bouton-panier.ts": {
|
||||
"file": "scripts-bouton-panier.js",
|
||||
|
|
@ -373,16 +373,16 @@
|
|||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts",
|
||||
"_pipe.XPB0wEfw.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
|
||||
"_exports.DtgtFHVi.js",
|
||||
"_exports.DT-46nyp.js",
|
||||
"_Either.wHNxn7Os.js",
|
||||
"_index.BulDzU6h.js",
|
||||
"_index.BueHQ6RV.js",
|
||||
"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/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/couts-livraison.ts"
|
||||
],
|
||||
"integrity": "sha512-iVzK9QmdXDUkfvUfJAq8Z1BKC6x1uDEwZiuPmHr9KHkbfXtukW7xKL5kOh8KSKrkg8M/k3Izj/uf/5Tashp6hw=="
|
||||
"integrity": "sha512-yUikXIr9hYYjSvORQsWQB8+N3FlCZN4um77zcgiuCIhB0rYkDlHlCJnvuos3kfSpKLAcaxUNP/TdJW1hv12Hxw=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-menu-categories.ts": {
|
||||
"file": "scripts-menu-categories.js",
|
||||
|
|
@ -395,11 +395,11 @@
|
|||
"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/erreurs.ts",
|
||||
"_exports.DtgtFHVi.js",
|
||||
"_exports.DT-46nyp.js",
|
||||
"_pipe.XPB0wEfw.js",
|
||||
"_Either.wHNxn7Os.js"
|
||||
],
|
||||
"integrity": "sha512-RAN+4IVXl0wdb8e7p/F6UW3U8BHX7KXRZO1YypbdHRTNh9HgJ3dz8fytDdz2jA3XdhczDnRCOTDqF3vL2BEb8g=="
|
||||
"integrity": "sha512-hcAmR1lM0Iu4YQT67krIiilSomqNJTYIMLWJpyOz7Kqm9yEFRuCE/CDo12l1cIbFz5vpxi6IaCEUjPBSkL7wbQ=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-menu-mobile.ts": {
|
||||
"file": "scripts-menu-mobile.js",
|
||||
|
|
@ -411,11 +411,11 @@
|
|||
"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/erreurs.ts",
|
||||
"_exports.DtgtFHVi.js",
|
||||
"_pipe.XPB0wEfw.js",
|
||||
"_Either.wHNxn7Os.js"
|
||||
"_exports.DT-46nyp.js",
|
||||
"_Either.wHNxn7Os.js",
|
||||
"_pipe.XPB0wEfw.js"
|
||||
],
|
||||
"integrity": "sha512-x0vjlFuSXzr3AkvtWyF9Z1LwW+pGeoOwj8n9qYm+vqajMMTlxTwYpbvVe2mSE/6Xmj14lWKnLu4wrKiJOqLPVA=="
|
||||
"integrity": "sha512-uyzeoXWRG05f3lSoXisLuii8AFAHjvj9t0YziQU+tGkpZYPo6ReS6rr62zFMqTerYTa8XHpmEEt7lKeRFD4qrw=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-a-propos.ts": {
|
||||
"file": "scripts-page-a-propos.js",
|
||||
|
|
@ -427,12 +427,12 @@
|
|||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/dom.ts",
|
||||
"_pipe.XPB0wEfw.js",
|
||||
"_belt_Option-91f3b350.D8kNxoqg.js",
|
||||
"_belt_Option-91f3b350.BKMoZFhU.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
|
||||
"_exports.DtgtFHVi.js",
|
||||
"_exports.DT-46nyp.js",
|
||||
"_Either.wHNxn7Os.js"
|
||||
],
|
||||
"integrity": "sha512-Ot2NrjxvJ3ovohcl4cUxwsglsSVLEPYxcCEmqQjWSrKW+4Hh16ZYq0S6aGLAk4BPIJwlyJN1TcNt0Vnfr8d0DQ=="
|
||||
"integrity": "sha512-qpXsDfaYPZjzKYKEJrzasSO1utgzizcR9KWVJO6XVjSgJ99R5niOSe+3zkPzSTNXRLDc9AXoiPahP2QCOfSOgA=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-accueil.ts": {
|
||||
"file": "scripts-page-accueil.js",
|
||||
|
|
@ -445,11 +445,11 @@
|
|||
"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/erreurs.ts",
|
||||
"_exports.DtgtFHVi.js",
|
||||
"_pipe.XPB0wEfw.js",
|
||||
"_Either.wHNxn7Os.js"
|
||||
"_exports.DT-46nyp.js",
|
||||
"_Either.wHNxn7Os.js",
|
||||
"_pipe.XPB0wEfw.js"
|
||||
],
|
||||
"integrity": "sha512-U+g0gq1deXRSXexG36LTOEvslcFj5v5s+nolLMfJipuSkTHifUpNU+fSTpFTEEZBynQTybTnNuGImWW4cgGrCg=="
|
||||
"integrity": "sha512-7LblNdCZyF4JvOcu4bu+66BL2bwPMDfTqkHlIVvEfyK5DBtuR0IgDCdyJ/bOa6t/gWODVzRCzDYWQPqc0RjJrg=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-boutique.ts": {
|
||||
"file": "scripts-page-boutique.js",
|
||||
|
|
@ -458,7 +458,7 @@
|
|||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.CeK6pfoJ.js",
|
||||
"_index.BulDzU6h.js",
|
||||
"_index.BueHQ6RV.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/lib/dom.ts",
|
||||
|
|
@ -467,16 +467,16 @@
|
|||
"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/utils.ts",
|
||||
"_MaybeAsync.AE1jnxuc.js",
|
||||
"_MaybeAsync.Ba-OfjWy.js",
|
||||
"_pipe.XPB0wEfw.js",
|
||||
"_index-0eef19ec.DjnU1cik.js",
|
||||
"_index-0eef19ec.CFsloYN6.js",
|
||||
"_Either.wHNxn7Os.js",
|
||||
"_exports.DtgtFHVi.js",
|
||||
"_exports.DT-46nyp.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/erreurs.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/products.ts",
|
||||
"_belt_Option-91f3b350.D8kNxoqg.js"
|
||||
"_belt_Option-91f3b350.BKMoZFhU.js"
|
||||
],
|
||||
"integrity": "sha512-bJw/FzsilZIfynZiM/W28WEuC0YgZpgucFWIlA9t/V6G2/RZM36Q3zyQ3OdB/YCNW+eYX6zwzyzViQjuc/xSBw=="
|
||||
"integrity": "sha512-auB29T3SZpasyR61fK363JAMfgU0xakNPRG/UyMGT9HLNADOBcQLVZrhvj7BJrs6T3pE5Qeq0C5vVecIhB7xtQ=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-panier.ts": {
|
||||
"file": "scripts-page-panier.js",
|
||||
|
|
@ -485,7 +485,7 @@
|
|||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.CeK6pfoJ.js",
|
||||
"_index.BulDzU6h.js",
|
||||
"_index.BueHQ6RV.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/messages.ts",
|
||||
|
|
@ -503,17 +503,17 @@
|
|||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/validation.ts",
|
||||
"_pipe.XPB0wEfw.js",
|
||||
"_index-0eef19ec.DjnU1cik.js",
|
||||
"_index-0eef19ec.CFsloYN6.js",
|
||||
"_Either.wHNxn7Os.js",
|
||||
"_exports.DtgtFHVi.js",
|
||||
"_exports.DT-46nyp.js",
|
||||
"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/constantes/cart.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/orders.ts",
|
||||
"_belt_Option-91f3b350.D8kNxoqg.js"
|
||||
"_belt_Option-91f3b350.BKMoZFhU.js"
|
||||
],
|
||||
"integrity": "sha512-bdh3hOkICfduk3ISqD6YxxdK3Ewons0zTpRzr8tQ9gCZi/ZKkpT1XFCHbOgo2+B9r8sd/tvSChTd1TE3zwlSfA=="
|
||||
"integrity": "sha512-fp2E3bO0cLM1/k29tp+AVwSD7jOyu4GxspyAGtQHv1i0+6P58iumwE3ByvI+i6m6iJB5uUQMz+QYJv1JOQaF+A=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-produit.ts": {
|
||||
"file": "scripts-page-produit.js",
|
||||
|
|
@ -522,28 +522,30 @@
|
|||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.CeK6pfoJ.js",
|
||||
"_index.BulDzU6h.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/lib/dom.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.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/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-add-item.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/erreurs.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/validation.ts",
|
||||
"_pipe.XPB0wEfw.js",
|
||||
"_index-0eef19ec.DjnU1cik.js",
|
||||
"_index-0eef19ec.CFsloYN6.js",
|
||||
"_Either.wHNxn7Os.js",
|
||||
"_exports.DtgtFHVi.js",
|
||||
"_exports.DT-46nyp.js",
|
||||
"_index.BueHQ6RV.js",
|
||||
"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/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/couts-livraison.ts",
|
||||
"_belt_Option-91f3b350.D8kNxoqg.js"
|
||||
"_belt_Option-91f3b350.BKMoZFhU.js"
|
||||
],
|
||||
"integrity": "sha512-+lzTczsVRFSM6Gq6iaA6O/Xj1vaR+nL6PZAoNkR0AZiCaPEZjQG9fE7G/OJTia+ZWEKMiwIMoYmKm/X87nTtiw=="
|
||||
"integrity": "sha512-JyLoXCoym4LGwN9MCrYmQ1wD/YmiZ9edQAUWT12MHkgaS7bdtivh0nFwexmnT/aEVXgFxGEg8a8jN8+Azkg41g=="
|
||||
}
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
import { E as Either, r as right, l as left, M as Maybe, n as nothing, j as just } from "./Either.wHNxn7Os.js";
|
||||
import { r as right, l as left, E as Either, n as nothing, j as just, M as Maybe } from "./Either.wHNxn7Os.js";
|
||||
var _a$1;
|
||||
const helpers$1 = {
|
||||
liftEither(either) {
|
||||
|
|
@ -311,4 +311,4 @@ MaybeAsyncImpl.prototype.constructor = MaybeAsync;
|
|||
export {
|
||||
EitherAsync as E
|
||||
};
|
||||
//# sourceMappingURL=MaybeAsync.AE1jnxuc.js.map
|
||||
//# sourceMappingURL=MaybeAsync.Ba-OfjWy.js.map
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
import { o as object, s as string } from "./index.BulDzU6h.js";
|
||||
import { o as object, s as string } from "./index.BueHQ6RV.js";
|
||||
const WCStoreBillingAddressSchema = object({
|
||||
address_1: string(),
|
||||
address_2: string(),
|
||||
|
|
@ -26,7 +26,7 @@ const WCStoreShippingAddressSchema = object({
|
|||
state: string()
|
||||
});
|
||||
export {
|
||||
WCStoreBillingAddressSchema as W,
|
||||
WCStoreShippingAddressSchema as a
|
||||
WCStoreShippingAddressSchema as W,
|
||||
WCStoreBillingAddressSchema as a
|
||||
};
|
||||
//# sourceMappingURL=adresses.js.map
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ export {
|
|||
ROUTE_API_NOUVELLE_COMMANDES as d,
|
||||
ROUTE_API_AJOUTE_ARTICLE_PANIER as e,
|
||||
ROUTE_API_PANIER as f,
|
||||
ENTETE_GLITCHTIP_RATE_LIMITS as g,
|
||||
ENTETE_GLITCHTIP_RETRY_AFTER as h
|
||||
ENTETE_GLITCHTIP_RETRY_AFTER as g,
|
||||
ENTETE_GLITCHTIP_RATE_LIMITS as h
|
||||
};
|
||||
//# sourceMappingURL=api.js.map
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { v as valFromOption, i as some } from "./dom2.js";
|
||||
import { v as valFromOption, s as some } from "./dom2.js";
|
||||
function sub(n2, r, t) {
|
||||
var e = new Array(t);
|
||||
var u = 0;
|
||||
|
|
@ -136,14 +136,14 @@ function isNone(t) {
|
|||
export {
|
||||
_1 as _,
|
||||
isSome as a,
|
||||
getWithDefault as b,
|
||||
isNone as b,
|
||||
create as c,
|
||||
isNone as d,
|
||||
getExn as d,
|
||||
mapU as e,
|
||||
flatMap as f,
|
||||
getExn as g,
|
||||
flatMapU as h,
|
||||
flatMapU as f,
|
||||
getWithDefault as g,
|
||||
flatMap as h,
|
||||
is_extension as i,
|
||||
mapWithDefaultU as m
|
||||
};
|
||||
//# sourceMappingURL=belt_Option-91f3b350.D8kNxoqg.js.map
|
||||
//# sourceMappingURL=belt_Option-91f3b350.BKMoZFhU.js.map
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
import { p as parse, o as object, c as optional, n as number, b as array, s as string } from "./index.BulDzU6h.js";
|
||||
import { o as object, c as optional, b as array, s as string, n as number } from "./index.BueHQ6RV.js";
|
||||
const WCStoreCartAddItemArgsItemsSchema = object({
|
||||
/** Variation attribute name. */
|
||||
attribute: string(),
|
||||
|
|
@ -13,8 +13,7 @@ const WCStoreCartAddItemArgsSchema = object({
|
|||
/** Chosen attributes (for variations). */
|
||||
variation: optional(array(WCStoreCartAddItemArgsItemsSchema))
|
||||
});
|
||||
const parseWCStoreCartAddItemArgs = (args) => parse(WCStoreCartAddItemArgsSchema, args);
|
||||
export {
|
||||
parseWCStoreCartAddItemArgs as p
|
||||
WCStoreCartAddItemArgsSchema as W
|
||||
};
|
||||
//# sourceMappingURL=cart-add-item.js.map
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"cart-add-item.js","sources":["../../src/scripts/lib/schemas/api/cart-add-item.ts"],"sourcesContent":["import * as v from \"valibot\";\n\nimport type { WCStoreCartAddItemArgs } from \"../../types/api/cart-add-item\";\n\nexport const WCStoreCartAddItemArgsItemsSchema = v.object({\n /** Variation attribute name. */\n attribute: v.string(),\n /** Variation attribute value. */\n value: v.string(),\n});\n\nexport const WCStoreCartAddItemArgsSchema = v.object({\n /** The basket item product or variation ID. */\n id: v.optional(v.number()),\n /** Quantity of this item to add to the basket. */\n quantity: v.optional(v.number()),\n /** Chosen attributes (for variations). */\n variation: v.optional(v.array(WCStoreCartAddItemArgsItemsSchema)),\n});\n\nexport const parseWCStoreCartAddItemArgs: (args: unknown) => WCStoreCartAddItemArgs = args =>\n v.parse(WCStoreCartAddItemArgsSchema, args);\n"],"names":["v.object","v.string","v.optional","v.number","v.array","v.parse"],"mappings":";AAIa,MAAA,oCAAoCA,OAAS;AAAA;AAAA,EAExD,WAAWC,OAAS;AAAA;AAAA,EAEpB,OAAOA,OAAS;AAClB,CAAC;AAEY,MAAA,+BAA+BD,OAAS;AAAA;AAAA,EAEnD,IAAIE,SAAWC,QAAU;AAAA;AAAA,EAEzB,UAAUD,SAAWC,QAAU;AAAA;AAAA,EAE/B,WAAWD,SAAWE,MAAQ,iCAAiC,CAAC;AAClE,CAAC;AAEM,MAAM,8BAAyE,CAAA,SACpFC,MAAQ,8BAA8B,IAAI;"}
|
||||
{"version":3,"file":"cart-add-item.js","sources":["../../src/scripts/lib/schemas/api/cart-add-item.ts"],"sourcesContent":["import * as v from \"valibot\";\n\nimport type { WCStoreCartAddItemArgs } from \"../../types/api/cart-add-item\";\n\nexport const WCStoreCartAddItemArgsItemsSchema = v.object({\n /** Variation attribute name. */\n attribute: v.string(),\n /** Variation attribute value. */\n value: v.string(),\n});\n\nexport const WCStoreCartAddItemArgsSchema = v.object({\n /** The basket item product or variation ID. */\n id: v.optional(v.number()),\n /** Quantity of this item to add to the basket. */\n quantity: v.optional(v.number()),\n /** Chosen attributes (for variations). */\n variation: v.optional(v.array(WCStoreCartAddItemArgsItemsSchema)),\n});\n\nexport const parseWCStoreCartAddItemArgs: (args: unknown) => WCStoreCartAddItemArgs = args =>\n v.parse(WCStoreCartAddItemArgsSchema, args);\n"],"names":["v.object","v.string","v.optional","v.number","v.array"],"mappings":";AAIa,MAAA,oCAAoCA,OAAS;AAAA;AAAA,EAExD,WAAWC,OAAS;AAAA;AAAA,EAEpB,OAAOA,OAAS;AAClB,CAAC;AAEY,MAAA,+BAA+BD,OAAS;AAAA;AAAA,EAEnD,IAAIE,SAAWC,QAAU;AAAA;AAAA,EAEzB,UAAUD,SAAWC,QAAU;AAAA;AAAA,EAE/B,WAAWD,SAAWE,MAAQ,iCAAiC,CAAC;AAClE,CAAC;"}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
import { o as object, s as string } from "./index.BulDzU6h.js";
|
||||
import { o as object, s as string } from "./index.BueHQ6RV.js";
|
||||
const WCStoreCartRemoveItemArgsSchema = object({
|
||||
/** Unique identifier (key) for the basket item. */
|
||||
key: string()
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import { o as object, c as optional } from "./index.BulDzU6h.js";
|
||||
import { W as WCStoreBillingAddressSchema, a as WCStoreShippingAddressSchema } from "./adresses.js";
|
||||
import { o as object, c as optional } from "./index.BueHQ6RV.js";
|
||||
import { W as WCStoreShippingAddressSchema, a as WCStoreBillingAddressSchema } from "./adresses.js";
|
||||
const WCStoreCartUpdateCustomerArgsSchema = object({
|
||||
billing_address: optional(WCStoreBillingAddressSchema),
|
||||
shipping_address: optional(WCStoreShippingAddressSchema)
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { o as object, s as string, a as pipe, m as minValue, n as number } from "./index.BulDzU6h.js";
|
||||
import { o as object, a as pipe, m as minValue, n as number, s as string } from "./index.BueHQ6RV.js";
|
||||
const WCStoreCartUpdateItemArgsSchema = object({
|
||||
/** Unique identifier (key) for the basket item to update. */
|
||||
key: string(),
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
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.BulDzU6h.js";
|
||||
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.BueHQ6RV.js";
|
||||
import { C as CATALOG_VISIBILITIES } from "./cart2.js";
|
||||
import { W as WCStoreBillingAddressSchema, a as WCStoreShippingAddressSchema } from "./adresses.js";
|
||||
import { W as WCStoreShippingAddressSchema, a as WCStoreBillingAddressSchema } from "./adresses.js";
|
||||
import { a as WCStoreShippingRateSchema } from "./couts-livraison.js";
|
||||
const WCStoreCartItemTotalsSchema = object({
|
||||
currency_code: string(),
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import { o as object, j as omit, b as array, s as string, n as number, u as unknown, d as boolean } from "./index.BulDzU6h.js";
|
||||
import { a as WCStoreShippingAddressSchema } from "./adresses.js";
|
||||
import { o as object, b as array, s as string, d as boolean, u as unknown, n as number, j as omit } from "./index.BueHQ6RV.js";
|
||||
import { W as WCStoreShippingAddressSchema } from "./adresses.js";
|
||||
const WCStoreShippingRateItemSchema = object({
|
||||
key: string(),
|
||||
name: string(),
|
||||
|
|
|
|||
|
|
@ -54,42 +54,42 @@ const SELECTEUR_IMAGE_COLONNE_GAUCHE = ".colonne-gauche img";
|
|||
const SELECTEUR_IMAGES_COLONNE_DROITE = ".colonne-droite img";
|
||||
const SELECTEUR_PRIX_PRODUIT = ".selecteur-produit__prix";
|
||||
export {
|
||||
SELECTEUR_BOITE_TEXTE as $,
|
||||
CLASS_EPINGLE as $,
|
||||
ATTRIBUT_CONTIENT_ARTICLES as A,
|
||||
SELECTEUR_PRIX_LIGNE_PANIER as B,
|
||||
ATTRIBUT_DESACTIVE as C,
|
||||
ATTRIBUT_DESACTIVE as B,
|
||||
SELECTEUR_PRIX_LIGNE_PANIER as C,
|
||||
SELECTEUR_BOUTON_AJOUT_PANIER as D,
|
||||
SELECTEUR_SELECTEUR_QUANTITE as E,
|
||||
SELECTEUR_LIENS_ONGLETS as F,
|
||||
SELECTEUR_SECTIONS_CONTENUS as G,
|
||||
SELECTEUR_PRIX_PRODUIT as H,
|
||||
SELECTEUR_CONTENEUR_FLECHES_DEFILEMENT as I,
|
||||
SELECTEUR_FLECHE_DEFILEMENT_GAUCHE as J,
|
||||
SELECTEUR_FLECHE_DEFILEMENT_DROITE as K,
|
||||
SELECTEUR_PHOTOS_PRODUIT as L,
|
||||
SELECTEUR_IMAGE_COLONNE_GAUCHE as M,
|
||||
SELECTEUR_IMAGES_COLONNE_DROITE as N,
|
||||
ATTRIBUT_INDEX_IMAGE_ACTIVE as O,
|
||||
ATTRIBUT_ARIA_SELECTED as P,
|
||||
ATTRIBUT_PRIX as Q,
|
||||
SELECTEUR_PRIX_PRODUIT as F,
|
||||
SELECTEUR_LIENS_ONGLETS as G,
|
||||
SELECTEUR_SECTIONS_CONTENUS as H,
|
||||
ATTRIBUT_ARIA_SELECTED as I,
|
||||
ATTRIBUT_PRIX as J,
|
||||
SELECTEUR_CONTENEUR_FLECHES_DEFILEMENT as K,
|
||||
SELECTEUR_FLECHE_DEFILEMENT_GAUCHE as L,
|
||||
SELECTEUR_FLECHE_DEFILEMENT_DROITE as M,
|
||||
SELECTEUR_PHOTOS_PRODUIT as N,
|
||||
SELECTEUR_IMAGE_COLONNE_GAUCHE as O,
|
||||
SELECTEUR_IMAGES_COLONNE_DROITE as P,
|
||||
ATTRIBUT_INDEX_IMAGE_ACTIVE as Q,
|
||||
SELECTEUR_BOUTON_MENU_MOBILE as R,
|
||||
SELECTEUR_BOUTON_PANIER as S,
|
||||
SELECTEUR_MENU_MOBILE as T,
|
||||
ATTRIBUT_MENU_MOBILE_ACTIVE as U,
|
||||
ATTRIBUT_ID_ENSEMBLE_EPINGLE_BOITE as V,
|
||||
ATTRIBUT_ENSEMBLE_EPINGLE_BOITE_ACTIF as W,
|
||||
CLASS_BOUTON_FERMETURE_BOITE_TEXTE as X,
|
||||
CLASS_EPINGLE as Y,
|
||||
SELECTEUR_CONTENEUR_STORYTELLING_A_PROPOS as Z,
|
||||
SELECTEUR_EPINGLE as _,
|
||||
SELECTEUR_CONTENEUR_STORYTELLING_A_PROPOS as V,
|
||||
SELECTEUR_EPINGLE as W,
|
||||
SELECTEUR_BOITE_TEXTE as X,
|
||||
ATTRIBUT_ID_ENSEMBLE_EPINGLE_BOITE as Y,
|
||||
ATTRIBUT_ENSEMBLE_EPINGLE_BOITE_ACTIF as Z,
|
||||
CLASS_BOUTON_FERMETURE_BOITE_TEXTE as _,
|
||||
SELECTEUR_MENU_CATEGORIES_PRODUITS as a,
|
||||
SELECTEUR_ENTREE_MENU_CATEGORIES_PRODUITS as b,
|
||||
SELECTEUR_CONTENEUR_STORYTELLING as c,
|
||||
SELECTEUR_IMAGES_STORYTELLING as d,
|
||||
ATTRIBUT_CACHE as e,
|
||||
ATTRIBUT_ARIA_HIDDEN as f,
|
||||
SELECTEUR_BOUTON_PLUS_PRODUITS as g,
|
||||
SELECTEUR_GRILLE_PRODUITS as h,
|
||||
SELECTEUR_GRILLE_PRODUITS as g,
|
||||
SELECTEUR_BOUTON_PLUS_PRODUITS as h,
|
||||
ATTRIBUT_ID_CATEGORIE_PRODUITS as i,
|
||||
ATTRIBUT_PAGE as j,
|
||||
ATTRIBUT_HIDDEN as k,
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import { e as creeSyntaxError, f as reporteEtLeveErreur, g as ErreurEntreeInexistante, h as ERREUR_SYNTAXE_INVALIDE, i as ERREUR_SELECTEUR_INEXISTANT } from "./erreurs.js";
|
||||
import { p as pipe } from "./pipe.XPB0wEfw.js";
|
||||
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 Either, r as right, l as left, M as Maybe } from "./Either.wHNxn7Os.js";
|
||||
import "./exports.DtgtFHVi.js";
|
||||
import { p as pipe } from "./pipe.XPB0wEfw.js";
|
||||
import "./exports.DT-46nyp.js";
|
||||
function int_compare(e, r) {
|
||||
if (e < r) {
|
||||
return -1;
|
||||
|
|
@ -2037,26 +2037,26 @@ const eitherSessionStorageGet = (cle) => Maybe.fromNullable(sessionStorage.getIt
|
|||
const eitherJsonParse = (chaine) => Either.encase(() => JSON.parse(chaine));
|
||||
export {
|
||||
Ra as R,
|
||||
recupereElementsAvecSelecteur as a,
|
||||
eitherJsonParse as b,
|
||||
recupereElementAvecSelecteur as c,
|
||||
recupereElementAvecSelecteur as a,
|
||||
recupereElementsAvecSelecteur as b,
|
||||
eitherJsonParse as c,
|
||||
recupereElementsOuLeve as d,
|
||||
eitherSessionStorageGet as e,
|
||||
equal as f,
|
||||
someU as f,
|
||||
everyU as g,
|
||||
html as h,
|
||||
some$1 as i,
|
||||
values as j,
|
||||
fromArray as k,
|
||||
get$1 as l,
|
||||
forEachU as m,
|
||||
mapU as n,
|
||||
reduceU as o,
|
||||
append as p,
|
||||
nullable_to_opt as q,
|
||||
equal as i,
|
||||
fromArray as j,
|
||||
reduceU as k,
|
||||
append as l,
|
||||
mapU as m,
|
||||
forEachU as n,
|
||||
get$1 as o,
|
||||
values as p,
|
||||
concat$1 as q,
|
||||
recupereElementOuLeve as r,
|
||||
someU as s,
|
||||
concat$1 as t,
|
||||
some$1 as s,
|
||||
nullable_to_opt as t,
|
||||
unsafeDeleteKey as u,
|
||||
valFromOption as v
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { c as captureException } from "./exports.DtgtFHVi.js";
|
||||
import { c as captureException } from "./exports.DT-46nyp.js";
|
||||
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 creeSyntaxError = (message) => new SyntaxError(message);
|
||||
|
|
@ -77,10 +77,10 @@ export {
|
|||
leveUnauthorizedError as c,
|
||||
leveNotFoundError as d,
|
||||
creeSyntaxError as e,
|
||||
reporteEtLeveErreur as f,
|
||||
ErreurEntreeInexistante as g,
|
||||
ERREUR_SYNTAXE_INVALIDE as h,
|
||||
ERREUR_SELECTEUR_INEXISTANT as i,
|
||||
ERREUR_SYNTAXE_INVALIDE as f,
|
||||
ERREUR_SELECTEUR_INEXISTANT as g,
|
||||
reporteEtLeveErreur as h,
|
||||
ErreurEntreeInexistante as i,
|
||||
leveServerError as l,
|
||||
reporteErreur as r
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { l as is, o as object, n as number, s as string } from "./index.BulDzU6h.js";
|
||||
import { l as is, o as object, n as number, s as string } from "./index.BueHQ6RV.js";
|
||||
const WCErrorBodySchema = object({
|
||||
code: string(),
|
||||
data: object({
|
||||
|
|
|
|||
|
|
@ -84,7 +84,7 @@ function safeJoin(input, delimiter) {
|
|||
const SDK_VERSION = "8.38.0";
|
||||
const GLOBAL_OBJ = globalThis;
|
||||
function getGlobalSingleton(name, creator, obj) {
|
||||
const gbl = GLOBAL_OBJ;
|
||||
const gbl = obj || GLOBAL_OBJ;
|
||||
const __SENTRY__ = gbl.__SENTRY__ = gbl.__SENTRY__ || {};
|
||||
const versionedCarrier = __SENTRY__[SDK_VERSION] = __SENTRY__[SDK_VERSION] || {};
|
||||
return versionedCarrier[name] || (versionedCarrier[name] = creator());
|
||||
|
|
@ -2117,8 +2117,8 @@ function captureEvent(event, hint) {
|
|||
}
|
||||
export {
|
||||
getCurrentScope as $,
|
||||
isPlainObject as A,
|
||||
isParameterizedString as B,
|
||||
isThenable as A,
|
||||
isPlainObject as B,
|
||||
CONSOLE_LEVELS as C,
|
||||
DEBUG_BUILD$1 as D,
|
||||
SDK_VERSION as E,
|
||||
|
|
@ -2126,24 +2126,24 @@ export {
|
|||
GLOBAL_OBJ as G,
|
||||
getOriginalFunction as H,
|
||||
getFramesFromEvent as I,
|
||||
addExceptionMechanism as J,
|
||||
isErrorEvent as K,
|
||||
isDOMError as L,
|
||||
isDOMException as M,
|
||||
addExceptionTypeValue as N,
|
||||
isEvent as O,
|
||||
normalizeToSize as P,
|
||||
extractExceptionKeysForMessage as Q,
|
||||
isErrorEvent as J,
|
||||
isDOMError as K,
|
||||
isDOMException as L,
|
||||
addExceptionTypeValue as M,
|
||||
isEvent as N,
|
||||
normalizeToSize as O,
|
||||
extractExceptionKeysForMessage as P,
|
||||
addExceptionMechanism as Q,
|
||||
isString as R,
|
||||
SyncPromise as S,
|
||||
createStackParser as T,
|
||||
UNKNOWN_FUNCTION as U,
|
||||
getEventDescription as V,
|
||||
safeJoin as V,
|
||||
htmlTreeAsString as W,
|
||||
safeJoin as X,
|
||||
getEventDescription as X,
|
||||
getComponentName as Y,
|
||||
captureEvent as Z,
|
||||
getLocationHref as _,
|
||||
getLocationHref as Z,
|
||||
captureEvent as _,
|
||||
consoleSandbox as a,
|
||||
timestampInSeconds as b,
|
||||
captureException as c,
|
||||
|
|
@ -2151,7 +2151,7 @@ export {
|
|||
addNonEnumerableProperty as e,
|
||||
fill as f,
|
||||
getFunctionName as g,
|
||||
resolvedSyncPromise as h,
|
||||
rejectedSyncPromise as h,
|
||||
isInstanceOf as i,
|
||||
dropUndefinedKeys as j,
|
||||
dateTimestampInSeconds as k,
|
||||
|
|
@ -2161,14 +2161,14 @@ export {
|
|||
originalConsoleMethods as o,
|
||||
uuid4 as p,
|
||||
checkOrSetAlreadyCaught as q,
|
||||
rejectedSyncPromise as r,
|
||||
resolvedSyncPromise as r,
|
||||
isPrimitive as s,
|
||||
truncate as t,
|
||||
urlEncode as u,
|
||||
updateSession as v,
|
||||
prepareEvent as w,
|
||||
getDynamicSamplingContextFromClient as x,
|
||||
getIsolationScope as y,
|
||||
isThenable as z
|
||||
isParameterizedString as v,
|
||||
updateSession as w,
|
||||
prepareEvent as x,
|
||||
getDynamicSamplingContextFromClient as y,
|
||||
getIsolationScope as z
|
||||
};
|
||||
//# sourceMappingURL=exports.DtgtFHVi.js.map
|
||||
//# sourceMappingURL=exports.DT-46nyp.js.map
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
import { g as ENTETE_GLITCHTIP_RATE_LIMITS, h 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, 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.DtgtFHVi.js";
|
||||
import { g as ENTETE_GLITCHTIP_RETRY_AFTER, h as ENTETE_GLITCHTIP_RATE_LIMITS } 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 { p as pipe } from "./pipe.XPB0wEfw.js";
|
||||
function applyAggregateErrorsToEvent(exceptionFromErrorImplementation, parser, maxValueLimit = 250, key, limit, event, hint) {
|
||||
if (!event.exception || !event.exception.values || !hint || !isInstanceOf(hint.originalException, Error)) {
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import { f as ROUTE_API_PANIER, E as ENTETE_WC_NONCE } from "./api.js";
|
||||
import { E as EitherAsync } from "./MaybeAsync.AE1jnxuc.js";
|
||||
import { E as EitherAsync } from "./MaybeAsync.Ba-OfjWy.js";
|
||||
import { r as right, l as left } from "./Either.wHNxn7Os.js";
|
||||
const ETATS = _etats;
|
||||
const requeteRecuperePanier = () => fetch(
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import { f as equal, g as everyU, s as someU, i as some, v as valFromOption } from "./dom2.js";
|
||||
import { i as is_extension, a as isSome, m as mapWithDefaultU } from "./belt_Option-91f3b350.D8kNxoqg.js";
|
||||
import { s as some, v as valFromOption, f as someU, g as everyU, i as equal } from "./dom2.js";
|
||||
import { i as is_extension, m as mapWithDefaultU, a as isSome } from "./belt_Option-91f3b350.BKMoZFhU.js";
|
||||
function internalToOCamlException(e) {
|
||||
if (is_extension(e)) {
|
||||
return e;
|
||||
|
|
@ -580,4 +580,4 @@ export {
|
|||
l,
|
||||
tap as t
|
||||
};
|
||||
//# sourceMappingURL=index-0eef19ec.DjnU1cik.js.map
|
||||
//# sourceMappingURL=index-0eef19ec.CFsloYN6.js.map
|
||||
|
|
@ -584,9 +584,9 @@ export {
|
|||
optional as c,
|
||||
boolean as d,
|
||||
enum_ as e,
|
||||
union as f,
|
||||
null_ as g,
|
||||
url as h,
|
||||
url as f,
|
||||
union as g,
|
||||
null_ as h,
|
||||
integer as i,
|
||||
omit as j,
|
||||
maxValue as k,
|
||||
|
|
@ -599,4 +599,4 @@ export {
|
|||
unknown as u,
|
||||
value as v
|
||||
};
|
||||
//# sourceMappingURL=index.BulDzU6h.js.map
|
||||
//# sourceMappingURL=index.BueHQ6RV.js.map
|
||||
|
|
@ -1,9 +1,9 @@
|
|||
import { p as parse } from "./index.BulDzU6h.js";
|
||||
import { p as parse } from "./index.BueHQ6RV.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 { M as MessageMajBoutonPanierSchema, a as MessageMajContenuPanierSchema } from "./messages2.js";
|
||||
import { E as Either } from "./Either.wHNxn7Os.js";
|
||||
import "./exports.DtgtFHVi.js";
|
||||
import "./exports.DT-46nyp.js";
|
||||
import "./cart.js";
|
||||
import "./cart2.js";
|
||||
import "./adresses.js";
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { e as enum_, o as object, a as pipe, v as value, s as string, n as number, b as array } from "./index.BulDzU6h.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.BueHQ6RV.js";
|
||||
import { T as TYPES_MESSAGES } from "./messages3.js";
|
||||
import { a as WCStoreCartItemSchema } from "./cart.js";
|
||||
import "./cart2.js";
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import { o as object, a as pipe, b as array, s as string, e as enum_, c as optional, f as union, d as boolean, u as unknown, i as integer, n as number, g as null_ } from "./index.BulDzU6h.js";
|
||||
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, c as optional, d as boolean, g as union, h as null_ } from "./index.BueHQ6RV.js";
|
||||
import { T as TAX_STATUSES, O as ORDER_STATUSES } from "./orders3.js";
|
||||
import { W as WCStoreBillingAddressSchema, a as WCStoreShippingAddressSchema } from "./adresses.js";
|
||||
import { W as WCStoreShippingAddressSchema, a as WCStoreBillingAddressSchema } from "./adresses.js";
|
||||
const WCV3OrdersCouponLineMetaDataSchema = object({
|
||||
id: pipe(number(), integer()),
|
||||
key: string(),
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
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.BulDzU6h.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";
|
||||
import { o as object, c as optional, e as enum_, s as string, b as array, a as pipe, k as maxValue, m 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.BueHQ6RV.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";
|
||||
const WCV3ProductsArgsSchema = object({
|
||||
// Date ISO8601
|
||||
after: optional(string()),
|
||||
|
|
|
|||
|
|
@ -86,17 +86,17 @@ const BACKORDERS_SETTINGS = {
|
|||
export {
|
||||
ATTRIBUTES_RELATIONS as A,
|
||||
BACKORDERS_SETTINGS as B,
|
||||
CATALOG_VISIBILITIES as C,
|
||||
CATEGORY_OPERATORS as C,
|
||||
DATE_COLUMN_VALUES as D,
|
||||
ORDER_VALUES as O,
|
||||
PRODUCTS_CONTEXTES as P,
|
||||
ORDERBY_VALUES as O,
|
||||
PRODUCT_TYPES as P,
|
||||
RATINGS as R,
|
||||
STOCK_STATUSES as S,
|
||||
TAG_OPERATORS as T,
|
||||
CATEGORY_OPERATORS as a,
|
||||
ORDERBY_VALUES as b,
|
||||
PRODUCT_STATUTES as c,
|
||||
PRODUCT_TYPES as d,
|
||||
PRODUCT_STATUTES as a,
|
||||
ORDER_VALUES as b,
|
||||
PRODUCTS_CONTEXTES as c,
|
||||
CATALOG_VISIBILITIES as d,
|
||||
TAX_STATUTES as e
|
||||
};
|
||||
//# sourceMappingURL=products2.js.map
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
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.BulDzU6h.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";
|
||||
import { o as object, c as optional, e as enum_, s as string, b as array, a as pipe, k as maxValue, m as minValue, n as number, i as integer, d as boolean, u as unknown, g as union, h as null_ } from "./index.BueHQ6RV.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";
|
||||
object({
|
||||
// Date ISO8601
|
||||
after: optional(optional(string())),
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
import { z, N } from "./index.CeK6pfoJ.js";
|
||||
import { p as parse } from "./index.BulDzU6h.js";
|
||||
import { p as parse } from "./index.BueHQ6RV.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 { e as estWCError } from "./erreurs2.js";
|
||||
import { p as pipe } from "./pipe.XPB0wEfw.js";
|
||||
import "./exports.DtgtFHVi.js";
|
||||
import "./exports.DT-46nyp.js";
|
||||
const getBackend = (args) => fetch(
|
||||
`${args.route}?${args.searchParams}`,
|
||||
{
|
||||
|
|
|
|||
|
|
@ -5,9 +5,9 @@ import { v as valideMessageMajBoutonPanier } from "./messages.js";
|
|||
import { r as recupereElementDocumentEither } from "./utils.js";
|
||||
import { p as pipe } from "./pipe.XPB0wEfw.js";
|
||||
import "./erreurs.js";
|
||||
import "./exports.DtgtFHVi.js";
|
||||
import "./exports.DT-46nyp.js";
|
||||
import "./Either.wHNxn7Os.js";
|
||||
import "./index.BulDzU6h.js";
|
||||
import "./index.BueHQ6RV.js";
|
||||
import "./messages2.js";
|
||||
import "./cart.js";
|
||||
import "./cart2.js";
|
||||
|
|
|
|||
|
|
@ -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 { R as Ra } from "./dom2.js";
|
||||
import "./erreurs.js";
|
||||
import "./exports.DtgtFHVi.js";
|
||||
import "./exports.DT-46nyp.js";
|
||||
import "./pipe.XPB0wEfw.js";
|
||||
import "./Either.wHNxn7Os.js";
|
||||
document.addEventListener("DOMContentLoaded", () => {
|
||||
|
|
|
|||
|
|
@ -5,9 +5,9 @@ import { R as SELECTEUR_BOUTON_MENU_MOBILE, T as SELECTEUR_MENU_MOBILE, U as ATT
|
|||
import { a as recupereElementDansDocumentOuLeve } from "./utils.js";
|
||||
import "./dom2.js";
|
||||
import "./erreurs.js";
|
||||
import "./exports.DtgtFHVi.js";
|
||||
import "./pipe.XPB0wEfw.js";
|
||||
import "./exports.DT-46nyp.js";
|
||||
import "./Either.wHNxn7Os.js";
|
||||
import "./pipe.XPB0wEfw.js";
|
||||
const not = {
|
||||
inert: ":not([inert]):not([inert] *)",
|
||||
negTabIndex: ':not([tabindex^="-"])',
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
import { V as ATTRIBUT_ID_ENSEMBLE_EPINGLE_BOITE, W as ATTRIBUT_ENSEMBLE_EPINGLE_BOITE_ACTIF, X as CLASS_BOUTON_FERMETURE_BOITE_TEXTE, Y as CLASS_EPINGLE, Z as SELECTEUR_CONTENEUR_STORYTELLING_A_PROPOS, _ as SELECTEUR_EPINGLE, $ as SELECTEUR_BOITE_TEXTE } from "./dom.js";
|
||||
import { V as SELECTEUR_CONTENEUR_STORYTELLING_A_PROPOS, W as SELECTEUR_EPINGLE, X as SELECTEUR_BOITE_TEXTE, Y as ATTRIBUT_ID_ENSEMBLE_EPINGLE_BOITE, Z as ATTRIBUT_ENSEMBLE_EPINGLE_BOITE_ACTIF, _ as CLASS_BOUTON_FERMETURE_BOITE_TEXTE, $ as CLASS_EPINGLE } from "./dom.js";
|
||||
import { a as recupereElementDansDocumentOuLeve, b as recupereElementsDansDocumentOuLeve } from "./utils.js";
|
||||
import { i as some, o as reduceU, q as nullable_to_opt, v as valFromOption, f as equal, t as concat, R as Ra } from "./dom2.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 { p as pipe } from "./pipe.XPB0wEfw.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.D8kNxoqg.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 "./erreurs.js";
|
||||
import "./exports.DtgtFHVi.js";
|
||||
import "./exports.DT-46nyp.js";
|
||||
import "./Either.wHNxn7Os.js";
|
||||
var t = create("Promise.JsError");
|
||||
function $$catch(r, s) {
|
||||
|
|
|
|||
|
|
@ -3,9 +3,9 @@ import { e as estEntreDeuxNombres } from "./nombres.js";
|
|||
import { a as recupereElementDansDocumentOuLeve, b as recupereElementsDansDocumentOuLeve } from "./utils.js";
|
||||
import "./dom2.js";
|
||||
import "./erreurs.js";
|
||||
import "./exports.DtgtFHVi.js";
|
||||
import "./pipe.XPB0wEfw.js";
|
||||
import "./exports.DT-46nyp.js";
|
||||
import "./Either.wHNxn7Os.js";
|
||||
import "./pipe.XPB0wEfw.js";
|
||||
const initialiseScrollStorytelling = () => {
|
||||
const STORYTELLING = recupereElementDansDocumentOuLeve(SELECTEUR_CONTENEUR_STORYTELLING);
|
||||
const CONTENEUR_STORYTELLING = recupereElementDansDocumentOuLeve(".storytelling__conteneur");
|
||||
|
|
|
|||
|
|
@ -1,21 +1,21 @@
|
|||
import { z, N } from "./index.CeK6pfoJ.js";
|
||||
import { p as parse } from "./index.BulDzU6h.js";
|
||||
import { p as parse } from "./index.BueHQ6RV.js";
|
||||
import { R as ROUTE_API_NOUVELLE_PRODUCTS } from "./api.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 { 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 { h as html } from "./dom2.js";
|
||||
import { l as leveServerError } from "./erreurs.js";
|
||||
import { e as estReponse500 } from "./gardes.js";
|
||||
import { g as getBackend, t as traiteReponseBackendWCSelonCodesHTTP } from "./reseau.js";
|
||||
import { W as WCV3ProductsArgsSchema, a as WCV3ProductsSchema } from "./products.js";
|
||||
import { a as recupereElementDansDocumentOuLeve, r as recupereElementDocumentEither } from "./utils.js";
|
||||
import { E as EitherAsync } from "./MaybeAsync.AE1jnxuc.js";
|
||||
import { E as EitherAsync } from "./MaybeAsync.Ba-OfjWy.js";
|
||||
import { p as pipe } from "./pipe.XPB0wEfw.js";
|
||||
import { t as tap } from "./index-0eef19ec.DjnU1cik.js";
|
||||
import { t as tap } from "./index-0eef19ec.CFsloYN6.js";
|
||||
import { E as Either } from "./Either.wHNxn7Os.js";
|
||||
import "./exports.DtgtFHVi.js";
|
||||
import "./exports.DT-46nyp.js";
|
||||
import "./erreurs2.js";
|
||||
import "./products2.js";
|
||||
import "./belt_Option-91f3b350.D8kNxoqg.js";
|
||||
import "./belt_Option-91f3b350.BKMoZFhU.js";
|
||||
const ETATS_PAGE = _etats;
|
||||
const GRILLE_PRODUITS = recupereElementDansDocumentOuLeve(SELECTEUR_GRILLE_PRODUITS);
|
||||
const BOUTON_PLUS_DE_PRODUITS = recupereElementDocumentEither(
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
import { z } from "./index.CeK6pfoJ.js";
|
||||
import { p as parse, V as ValiError } from "./index.BulDzU6h.js";
|
||||
import { p as parse, V as ValiError } from "./index.BueHQ6RV.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 { 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 ATTRIBUT_CLE_PANIER, w as SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE, x as SELECTEUR_CHAMP_QUANTITE_LIGNE_PANIER, y as SELECTEUR_BOUTON_ADDITION_QUANTITE, z as SELECTEUR_BOUTON_SUPPRESSION_PANIER, A as ATTRIBUT_CONTIENT_ARTICLES, B as SELECTEUR_PRIX_LIGNE_PANIER, k as ATTRIBUT_HIDDEN, C as ATTRIBUT_DESACTIVE } 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 ATTRIBUT_CLE_PANIER, w as SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE, x as SELECTEUR_CHAMP_QUANTITE_LIGNE_PANIER, y as SELECTEUR_BOUTON_ADDITION_QUANTITE, z as SELECTEUR_BOUTON_SUPPRESSION_PANIER, B as ATTRIBUT_DESACTIVE, A as ATTRIBUT_CONTIENT_ARTICLES, C as SELECTEUR_PRIX_LIGNE_PANIER, k as ATTRIBUT_HIDDEN } from "./dom.js";
|
||||
import { N as NOM_CANAL_BOUTON_PANIER, a as NOM_CANAL_CONTENU_PANIER } from "./messages3.js";
|
||||
import { r as recupereElementOuLeve, a as recupereElementsAvecSelecteur, e as eitherSessionStorageGet, b as eitherJsonParse, c as recupereElementAvecSelecteur } from "./dom2.js";
|
||||
import { r as recupereElementOuLeve, a as recupereElementAvecSelecteur, b as recupereElementsAvecSelecteur, e as eitherSessionStorageGet, c as eitherJsonParse } from "./dom2.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 emetMessageMajBoutonPanier, a as emetMessageMajContenuPanier, v as valideMessageMajBoutonPanier, b as valideMessageMajContenuPanier } from "./messages.js";
|
||||
|
|
@ -17,15 +17,15 @@ import { W as WCV3OrdersArgsSchema, a as WCV3OrderSchema } from "./orders2.js";
|
|||
import { c as recupereElementsDocumentEither, r as recupereElementDocumentEither, y, p as propEither, a as recupereElementDansDocumentOuLeve } from "./utils.js";
|
||||
import { e as eitherParse } from "./validation.js";
|
||||
import { p as pipe } from "./pipe.XPB0wEfw.js";
|
||||
import { l } from "./index-0eef19ec.DjnU1cik.js";
|
||||
import { l } from "./index-0eef19ec.CFsloYN6.js";
|
||||
import { M as Maybe, E as Either } from "./Either.wHNxn7Os.js";
|
||||
import "./exports.DtgtFHVi.js";
|
||||
import "./exports.DT-46nyp.js";
|
||||
import "./messages2.js";
|
||||
import "./erreurs2.js";
|
||||
import "./cart2.js";
|
||||
import "./adresses.js";
|
||||
import "./orders3.js";
|
||||
import "./belt_Option-91f3b350.D8kNxoqg.js";
|
||||
import "./belt_Option-91f3b350.BKMoZFhU.js";
|
||||
const ETATS_PAGE = _etats;
|
||||
const ENTREES_PANIER_EITHER = recupereElementsDocumentEither(
|
||||
SELECTEUR_ENTREES_PANIER
|
||||
|
|
@ -419,7 +419,6 @@ const initialiseBoutonCreationCommande = () => {
|
|||
}
|
||||
]
|
||||
};
|
||||
console.debug(argumentsFormulaire);
|
||||
eitherParse(argumentsFormulaire, WCV3OrdersArgsSchema).map(async (args) => {
|
||||
await postBackend({
|
||||
authString: ETATS_PAGE.authString,
|
||||
|
|
@ -434,12 +433,7 @@ const initialiseBoutonCreationCommande = () => {
|
|||
// Traite tous les codes HTTP possibles
|
||||
(corpsReponse) => {
|
||||
console.debug(corpsReponse);
|
||||
return Either.encase(
|
||||
() => traiteReponseBackendWCSelonCodesHTTP(
|
||||
corpsReponse,
|
||||
WCV3OrderSchema
|
||||
)
|
||||
);
|
||||
return eitherParse(corpsReponse, WCV3OrderSchema);
|
||||
},
|
||||
(reponse2) => reponse2.ifRight((r) => {
|
||||
const url = new URL(`https://${window.location.host}/checkout`);
|
||||
|
|
|
|||
|
|
@ -1,25 +1,27 @@
|
|||
import { z, N } from "./index.CeK6pfoJ.js";
|
||||
import { p as parse } from "./index.BulDzU6h.js";
|
||||
import { z } from "./index.CeK6pfoJ.js";
|
||||
import { e as ROUTE_API_AJOUTE_ARTICLE_PANIER, E as ENTETE_WC_NONCE } from "./api.js";
|
||||
import { D as SELECTEUR_BOUTON_AJOUT_PANIER, E as SELECTEUR_SELECTEUR_QUANTITE, F as SELECTEUR_LIENS_ONGLETS, G as SELECTEUR_SECTIONS_CONTENUS, H as SELECTEUR_PRIX_PRODUIT, I as SELECTEUR_CONTENEUR_FLECHES_DEFILEMENT, J as SELECTEUR_FLECHE_DEFILEMENT_GAUCHE, K as SELECTEUR_FLECHE_DEFILEMENT_DROITE, L as SELECTEUR_PHOTOS_PRODUIT, M as SELECTEUR_IMAGE_COLONNE_GAUCHE, N as SELECTEUR_IMAGES_COLONNE_DROITE, O as ATTRIBUT_INDEX_IMAGE_ACTIVE, P as ATTRIBUT_ARIA_SELECTED, k as ATTRIBUT_HIDDEN, C as ATTRIBUT_DESACTIVE, Q as ATTRIBUT_PRIX } from "./dom.js";
|
||||
import { D as SELECTEUR_BOUTON_AJOUT_PANIER, E as SELECTEUR_SELECTEUR_QUANTITE, F as SELECTEUR_PRIX_PRODUIT, G as SELECTEUR_LIENS_ONGLETS, H as SELECTEUR_SECTIONS_CONTENUS, I as ATTRIBUT_ARIA_SELECTED, k as ATTRIBUT_HIDDEN, B as ATTRIBUT_DESACTIVE, J as ATTRIBUT_PRIX, K as SELECTEUR_CONTENEUR_FLECHES_DEFILEMENT, L as SELECTEUR_FLECHE_DEFILEMENT_GAUCHE, M as SELECTEUR_FLECHE_DEFILEMENT_DROITE, N as SELECTEUR_PHOTOS_PRODUIT, O as SELECTEUR_IMAGE_COLONNE_GAUCHE, P as SELECTEUR_IMAGES_COLONNE_DROITE, Q as ATTRIBUT_INDEX_IMAGE_ACTIVE } from "./dom.js";
|
||||
import { r as recupereElementOuLeve, d as recupereElementsOuLeve, R as Ra } from "./dom2.js";
|
||||
import { l as leveServerError, b as leveBadRequestError, c as leveUnauthorizedError, d as leveNotFoundError, E as ErreurInconnue, a as leveErreur, 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 { e as emetMessageMajBoutonPanier } from "./messages.js";
|
||||
import { t as traiteReponseBackendWCSelonCodesHTTP } from "./reseau.js";
|
||||
import { W as WCStoreCartSchema } from "./cart.js";
|
||||
import { p as parseWCStoreCartAddItemArgs } from "./cart-add-item.js";
|
||||
import { e as estWCError } from "./erreurs2.js";
|
||||
import { r as recupereElementDocumentEither, a as recupereElementDansDocumentOuLeve, c as recupereElementsDocumentEither, b as recupereElementsDansDocumentOuLeve, y } from "./utils.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 { e as eitherParse } from "./validation.js";
|
||||
import { p as pipe } from "./pipe.XPB0wEfw.js";
|
||||
import { l } from "./index-0eef19ec.DjnU1cik.js";
|
||||
import { M as Maybe, E as Either } from "./Either.wHNxn7Os.js";
|
||||
import "./exports.DtgtFHVi.js";
|
||||
import { l } from "./index-0eef19ec.CFsloYN6.js";
|
||||
import { M as Maybe } from "./Either.wHNxn7Os.js";
|
||||
import "./exports.DT-46nyp.js";
|
||||
import "./index.BueHQ6RV.js";
|
||||
import "./messages3.js";
|
||||
import "./messages2.js";
|
||||
import "./erreurs2.js";
|
||||
import "./cart2.js";
|
||||
import "./adresses.js";
|
||||
import "./couts-livraison.js";
|
||||
import "./belt_Option-91f3b350.D8kNxoqg.js";
|
||||
import "./belt_Option-91f3b350.BKMoZFhU.js";
|
||||
const ETATS_PAGE = _etats;
|
||||
const deplieToutesSections = (ensembleLiensContenus) => {
|
||||
ensembleLiensContenus.forEach((ensemble) => {
|
||||
|
|
@ -130,16 +132,14 @@ const gereBoiteInformationsProduit = () => {
|
|||
};
|
||||
const ajouteProduitAuPanier = () => {
|
||||
BOUTON_AJOUT_PANIER.textContent = "Adding...";
|
||||
console.debug(SELECTEUR_VARIATION);
|
||||
const idProduit = SELECTEUR_VARIATION.map((selecteur) => selecteur.value).orDefault(String(ETATS_PAGE.idProduit));
|
||||
Either.encase(
|
||||
() => parseWCStoreCartAddItemArgs({
|
||||
const args = {
|
||||
id: Number(idProduit),
|
||||
quantity: 1
|
||||
})
|
||||
).map((args) => {
|
||||
};
|
||||
eitherParse(args, WCStoreCartAddItemArgsSchema).map((args2) => {
|
||||
fetch(ROUTE_API_AJOUTE_ARTICLE_PANIER, {
|
||||
body: JSON.stringify(args),
|
||||
body: JSON.stringify(args2),
|
||||
credentials: "same-origin",
|
||||
headers: {
|
||||
Accept: "application/json",
|
||||
|
|
@ -155,7 +155,10 @@ const ajouteProduitAuPanier = () => {
|
|||
// Récupère la Réponse
|
||||
await reponse.json(),
|
||||
// Traite tous les codes HTTPs possibles
|
||||
(corpsReponse) => z(corpsReponse).with({ body: N.select(), status: 400 }, estWCError, leveBadRequestError).with({ body: N.select(), status: 401 }, estWCError, leveUnauthorizedError).with({ body: N.select(), status: 404 }, estWCError, leveNotFoundError).with(N._, (corpsOkInconnu) => parse(WCStoreCartSchema, corpsOkInconnu)).otherwise((e) => pipe(e, ErreurInconnue, leveErreur)),
|
||||
(corpsReponse) => traiteReponseBackendWCSelonCodesHTTP(
|
||||
corpsReponse,
|
||||
WCStoreCartSchema
|
||||
),
|
||||
// Récupère le nombre de Produits dans la Panier
|
||||
y.getUnsafe("items_count"),
|
||||
// Déclenche les effets pour la mise à jour de l'IU
|
||||
|
|
@ -180,7 +183,7 @@ const ajouteProduitAuPanier = () => {
|
|||
}
|
||||
BOUTON_AJOUT_PANIER.textContent = "Add to cart";
|
||||
});
|
||||
});
|
||||
}).ifLeft((e) => console.error(e.issues));
|
||||
};
|
||||
document.addEventListener("DOMContentLoaded", () => {
|
||||
gereBoiteInformationsProduit();
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
import { j as values, k as fromArray, f as equal, l as get$1, u as unsafeDeleteKey, m as forEachU, n as mapU, o as reduceU, p as append, a as recupereElementsAvecSelecteur, c as recupereElementAvecSelecteur, r as recupereElementOuLeve, d as recupereElementsOuLeve } from "./dom2.js";
|
||||
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 { C as CleNonTrouveError } from "./erreurs.js";
|
||||
import { p as pipe } from "./pipe.XPB0wEfw.js";
|
||||
import { M as Maybe } from "./Either.wHNxn7Os.js";
|
||||
import "./exports.DtgtFHVi.js";
|
||||
import "./exports.DT-46nyp.js";
|
||||
function placeholder(e) {
|
||||
}
|
||||
function makeEmpty(e) {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { p as parse } from "./index.BulDzU6h.js";
|
||||
import { p as parse } from "./index.BueHQ6RV.js";
|
||||
import { E as Either } from "./Either.wHNxn7Os.js";
|
||||
const eitherParse = (valeur, schema) => Either.encase(() => parse(schema, valeur));
|
||||
export {
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"validation.js","sources":["../../src/scripts/lib/validation.ts"],"sourcesContent":["/**\n * Fonctions utilitaires de validation via Valibot.\n */\n\nimport { Either } from \"purify-ts\";\nimport { type GenericSchema, InferOutput, parse, type ValiError } from \"valibot\";\n\nexport const eitherParse = <Schema extends GenericSchema>(\n valeur: unknown,\n schema: Schema,\n): Either<ValiError<Schema>, InferOutput<Schema>> => Either.encase(() => parse(schema, valeur));\n"],"names":[],"mappings":";;AAOa,MAAA,cAAc,CACzB,QACA,WACmD,OAAO,OAAO,MAAM,MAAM,QAAQ,MAAM,CAAC;"}
|
||||
{"version":3,"file":"validation.js","sources":["../../src/scripts/lib/validation.ts"],"sourcesContent":["/**\n * Fonctions utilitaires de validation via Valibot.\n */\n\nimport { Either } from \"purify-ts\";\nimport { type GenericSchema, type InferOutput, parse, type ValiError } from \"valibot\";\n\nexport const eitherParse = <Schema extends GenericSchema>(\n valeur: unknown,\n schema: Schema,\n): Either<ValiError<Schema>, InferOutput<Schema>> => Either.encase(() => parse(schema, valeur));\n"],"names":[],"mappings":";;AAOa,MAAA,cAAc,CACzB,QACA,WACmD,OAAO,OAAO,MAAM,MAAM,QAAQ,MAAM,CAAC;"}
|
||||
|
|
@ -14,14 +14,15 @@ use function Crell\fp\pipe;
|
|||
|
||||
require_once __DIR__ . "/src/inc/TraitementInformations.php";
|
||||
|
||||
/** @var string */
|
||||
/** @var string $url_accueil L'URL de la page d'Accueil. */
|
||||
$url_accueil = get_page_link(get_page_by_path("home")->ID);
|
||||
|
||||
/** @var string $session_id L'ID de la Session Stripe. */
|
||||
/** @var string $session_id L'ID de la Session Stripe liée à la Commande. */
|
||||
$session_id = $_GET["session_id"];
|
||||
|
||||
// Redirige à l'Accueil si le paramètre d'ID de Session Stripe n'est pas présent
|
||||
if (!$session_id) {
|
||||
// Retourne un code HTTP 301
|
||||
header("Location: $url_accueil");
|
||||
return;
|
||||
}
|
||||
|
|
@ -33,7 +34,7 @@ $client_stripe = new StripeClient(Config::get("STRIPE_API_SECRET"));
|
|||
try {
|
||||
/** @var Session $session La Session Stripe pour la Commande. */
|
||||
$session = $client_stripe->checkout->sessions->retrieve($session_id);
|
||||
/** @var string $order_id L'ID de la Commande WooCommerce passée en métadonnée à la Session Stripe. */
|
||||
/** @var string $order_id L'ID de la Commande WooCommerce passée en métadonnée à la Session. */
|
||||
$order_id = $session->metadata["order_id"];
|
||||
/** @var WC_Order|WC_Order_Refund|bool $commande La Commande WooCommerce liée à la Session Stripe, `false` si inexistante. */
|
||||
$commande = wc_get_order("$order_id");
|
||||
|
|
@ -53,31 +54,35 @@ try {
|
|||
$contexte = Timber::context();
|
||||
$modeles = ["succes-commande.twig"];
|
||||
|
||||
/** @var WC_Order_Item[] $articles Les Articles de la Commande. */
|
||||
$articles = $commande->get_items();
|
||||
|
||||
$articles_formates = Arr::map(
|
||||
array: $articles,
|
||||
callback: function (WC_Order_Item $article) {
|
||||
$donnees = $article->get_data();
|
||||
$est_variation = $article["variation_id"] !== null;
|
||||
$id_produit = $est_variation ? $article["variation_id"] : $article["product_id"];
|
||||
// Récupère les données des Produits
|
||||
/** @var mixed $produits Les Produits de la Commande sous forme de tableau contenant uniquement les données affichées nécessaires pour le Page. */
|
||||
$produits = pipe(
|
||||
$commande->get_items(),
|
||||
fn($a) => Arr::map(
|
||||
array: $a,
|
||||
callback: function (WC_Order_Item $produit_commande) {
|
||||
/** @var string $id_produit L'ID du Produit, différent selon qu'il soit un Produit Simple ou Variable. */
|
||||
$id_produit =
|
||||
$produit_commande["variation_id"] !== null
|
||||
? $produit_commande["variation_id"]
|
||||
: $produit_commande["product_id"];
|
||||
/** @var WC_Product|false $produit Les informations du Produit. */
|
||||
$produit = wc_get_product($id_produit);
|
||||
$titre_produit = $produit->get_title();
|
||||
$attributs_produit = recupere_et_formate_attributs_produit($produit->get_attributes());
|
||||
|
||||
return [
|
||||
"attributs" => $attributs_produit,
|
||||
"attributs" => recupere_et_formate_attributs_produit($produit->get_attributes()),
|
||||
"id_produit" => $id_produit,
|
||||
"image" => pipe($produit->get_image_id(), fn($id) => genere_balise_img_multiformats(id: $id, lazy: true)),
|
||||
"permalien" => $produit->get_permalink(),
|
||||
"prix" => $donnees["total"],
|
||||
"quantite" => $article->get_quantity(),
|
||||
"titre" => $titre_produit,
|
||||
"prix" => $produit_commande->get_data()["total"],
|
||||
"quantite" => $produit_commande->get_quantity(),
|
||||
"titre" => $produit->get_title(),
|
||||
];
|
||||
},
|
||||
),
|
||||
);
|
||||
$contexte["articles"] = $articles_formates;
|
||||
|
||||
$contexte["produits"] = $produits;
|
||||
|
||||
// echo "<pre>";
|
||||
// print_r($articles_formates);
|
||||
|
|
|
|||
|
|
@ -15,27 +15,21 @@ require_once __DIR__ . "/src/inc/TraitementInformations.php";
|
|||
$contexte = Timber::context();
|
||||
$modeles = ["produit.twig"];
|
||||
|
||||
$produit = recupere_informations_produit_page_produit(wc_get_product());
|
||||
$valeurs_attribut_cotes = pipe(
|
||||
wc_get_product(),
|
||||
fn($produit) => $produit->get_attribute("pa_side"),
|
||||
fn($string) => explode(",", $string),
|
||||
/** @var WC_Product $produit */
|
||||
$produit = wc_get_product();
|
||||
$donnees_produit = recupere_informations_produit_page_produit(wc_get_product());
|
||||
|
||||
$est_variation = $produit->get_type() == "variable";
|
||||
$attributs = pipe(
|
||||
match ($est_variation) {
|
||||
$produit->get_attribute("pa_side") !== "" => $produit->get_attribute("pa_side"),
|
||||
$produit->get_attribute("pa_stone") !== "" => $produit->get_attribute("pa_stone"),
|
||||
$produit->get_attribute("pa_size") !== "" => $produit->get_attribute("pa_size"),
|
||||
default => "",
|
||||
},
|
||||
fn($chaine) => explode(", ", $chaine),
|
||||
);
|
||||
$valeurs_attribut_pierres = pipe(
|
||||
wc_get_product(),
|
||||
fn($produit) => $produit->get_attribute("pa_stone"),
|
||||
fn($string) => explode(",", $string),
|
||||
);
|
||||
$valeurs_attribut_tailles = pipe(
|
||||
wc_get_product(),
|
||||
fn($produit) => $produit->get_attribute("pa_size"),
|
||||
fn($string) => explode(",", $string),
|
||||
);
|
||||
$produits_meme_collection = array_map(
|
||||
callback: "recupere_informations_produit_page_produit",
|
||||
array: recupere_produits_meme_collection($produit["collection"])($produit["id"]),
|
||||
);
|
||||
$prix = pipe(
|
||||
$prix_variations = pipe(
|
||||
// Récupère les Variations
|
||||
wc_get_product()->get_children(),
|
||||
// Récupère les informations de chaque Variation
|
||||
|
|
@ -44,12 +38,16 @@ $prix = pipe(
|
|||
fn($variations) => array_map(callback: fn($variation) => $variation->get_price(), array: $variations),
|
||||
);
|
||||
|
||||
$contexte["produit"] = $produit;
|
||||
$produits_meme_collection = array_map(
|
||||
callback: "recupere_informations_produit_page_produit",
|
||||
array: recupere_produits_meme_collection($donnees_produit["collection"])($donnees_produit["id"]),
|
||||
);
|
||||
|
||||
$contexte["produit"] = $donnees_produit;
|
||||
$contexte["produits_meme_collection"] = $produits_meme_collection;
|
||||
$contexte["cotes_produit"] = $valeurs_attribut_cotes;
|
||||
$contexte["pierres_produit"] = $valeurs_attribut_pierres;
|
||||
$contexte["tailles_produit"] = $valeurs_attribut_tailles;
|
||||
$contexte["prix"] = $prix;
|
||||
$contexte["est_variation"] = $est_variation;
|
||||
$contexte["attributs"] = $attributs;
|
||||
$contexte["prix_variations"] = $prix_variations;
|
||||
|
||||
/**
|
||||
* Charge les Scripts nécessaires pour la page Produit.
|
||||
|
|
|
|||
|
|
@ -13,17 +13,12 @@ button {
|
|||
outline: 2px solid transparent;
|
||||
transition: 0.2s background, 0.2s color;
|
||||
|
||||
&:not[disabled] {
|
||||
&:focus-visible {
|
||||
z-index: 5;
|
||||
outline: 2px solid var(--couleur-noir);
|
||||
}
|
||||
|
||||
&:disabled, &[disabled] {
|
||||
background: repeating-conic-gradient(var(--couleur-noir) 0% 25%, transparent 0% 100%) 1px 0.5px
|
||||
/ 2px 2px;
|
||||
outline-color: transparent;
|
||||
}
|
||||
|
||||
&:active {
|
||||
color: var(--couleur-blanc) !important;
|
||||
background: var(--couleur-noir) !important;
|
||||
|
|
@ -35,6 +30,13 @@ button {
|
|||
background: var(--couleur-jaune);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&:disabled, &[disabled] {
|
||||
background: repeating-conic-gradient(var(--couleur-noir) 0% 25%, transparent 0% 100%) 1px 0.5px
|
||||
/ 2px 2px;
|
||||
outline-color: transparent;
|
||||
}
|
||||
|
||||
// Particularismes
|
||||
&.bouton-case-pleine {
|
||||
|
|
|
|||
|
|
@ -126,7 +126,8 @@
|
|||
}
|
||||
|
||||
&:focus-visible {
|
||||
outline-color: transparent;
|
||||
outline: 2px solid var(--couleur-noir);
|
||||
outline-offset: -2px;
|
||||
}
|
||||
|
||||
@media (hover: hover) {
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
*/
|
||||
|
||||
import { Either } from "purify-ts";
|
||||
import { type GenericSchema, InferOutput, parse, type ValiError } from "valibot";
|
||||
import { type GenericSchema, type InferOutput, parse, type ValiError } from "valibot";
|
||||
|
||||
export const eitherParse = <Schema extends GenericSchema>(
|
||||
valeur: unknown,
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ import type { WCStoreCart, WCStoreCartItem, WCStoreShippingRateShippingRate } fr
|
|||
import type { WCStoreCartRemoveItemArgs } from "./lib/types/api/cart-remove-item";
|
||||
import type { WCStoreCartUpdateCustomerArgs } from "./lib/types/api/cart-update-customer";
|
||||
import type { WCStoreCartUpdateItemArgs } from "./lib/types/api/cart-update-item";
|
||||
import type { WCV3Order, WCV3OrdersArgs } from "./lib/types/api/v3/orders.ts";
|
||||
import type { WCV3OrdersArgs } from "./lib/types/api/v3/orders.ts";
|
||||
import type { MessageMajBoutonPanierDonnees, MessageMajContenuPanierDonnees } from "./lib/types/messages";
|
||||
|
||||
import {
|
||||
|
|
@ -639,7 +639,6 @@ const initialiseBoutonCreationCommande = (): void => {
|
|||
},
|
||||
],
|
||||
};
|
||||
console.debug(argumentsFormulaire);
|
||||
|
||||
eitherParse<typeof WCV3OrdersArgsSchema>(argumentsFormulaire, WCV3OrdersArgsSchema)
|
||||
.map(async (args: WCV3OrdersArgs) => {
|
||||
|
|
@ -657,13 +656,7 @@ const initialiseBoutonCreationCommande = (): void => {
|
|||
// Traite tous les codes HTTP possibles
|
||||
(corpsReponse: unknown) => {
|
||||
console.debug(corpsReponse);
|
||||
return Either.encase<Error, WCV3Order>(
|
||||
() =>
|
||||
traiteReponseBackendWCSelonCodesHTTP<WCV3Order, typeof WCV3OrderSchema>(
|
||||
corpsReponse,
|
||||
WCV3OrderSchema,
|
||||
),
|
||||
);
|
||||
return eitherParse<typeof WCV3OrderSchema>(corpsReponse, WCV3OrderSchema);
|
||||
},
|
||||
reponse =>
|
||||
reponse.ifRight(r => {
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
// Scripts pour la Page Produit
|
||||
|
||||
import { A, D, F, pipe } from "@mobily/ts-belt";
|
||||
import { Either, Maybe } from "purify-ts";
|
||||
import { match, P } from "ts-pattern";
|
||||
import { parse } from "valibot";
|
||||
import { type Either, Maybe } from "purify-ts";
|
||||
import { match } from "ts-pattern";
|
||||
|
||||
import type { WCStoreCart } from "./lib/types/api/cart";
|
||||
import type { WCStoreCartAddItemArgs } from "./lib/types/api/cart-add-item.ts";
|
||||
|
||||
import { ENTETE_WC_NONCE, ROUTE_API_AJOUTE_ARTICLE_PANIER } from "./constantes/api.ts";
|
||||
|
|
@ -27,27 +27,19 @@ import {
|
|||
SELECTEUR_SELECTEUR_QUANTITE,
|
||||
} from "./constantes/dom";
|
||||
import { recupereElementOuLeve, recupereElementsOuLeve } from "./lib/dom.ts";
|
||||
import {
|
||||
ErreurInconnue,
|
||||
leveBadRequestError,
|
||||
leveErreur,
|
||||
leveNotFoundError,
|
||||
leveServerError,
|
||||
leveUnauthorizedError,
|
||||
reporteErreur,
|
||||
type UnknownError,
|
||||
} from "./lib/erreurs.ts";
|
||||
import { leveServerError, reporteErreur } from "./lib/erreurs.ts";
|
||||
import { estError, estHTMLSelectElement, estReponse500 } from "./lib/gardes.ts";
|
||||
import { emetMessageMajBoutonPanier } from "./lib/messages.ts";
|
||||
import { traiteReponseBackendWCSelonCodesHTTP } from "./lib/reseau.ts";
|
||||
import { WCStoreCartSchema } from "./lib/schemas/api/cart.ts";
|
||||
import { parseWCStoreCartAddItemArgs } from "./lib/schemas/api/cart-add-item.ts";
|
||||
import { estWCError } from "./lib/schemas/api/erreurs.ts";
|
||||
import { WCStoreCartAddItemArgsSchema } from "./lib/schemas/api/cart-add-item.ts";
|
||||
import {
|
||||
recupereElementDansDocumentOuLeve,
|
||||
recupereElementDocumentEither,
|
||||
recupereElementsDansDocumentOuLeve,
|
||||
recupereElementsDocumentEither,
|
||||
} from "./lib/utils.ts";
|
||||
import { eitherParse } from "./lib/validation.ts";
|
||||
|
||||
/** États utiles pour les scripts de la page. */
|
||||
type EtatsPage = {
|
||||
|
|
@ -220,21 +212,17 @@ const gereBoiteInformationsProduit = (): void => {
|
|||
const ajouteProduitAuPanier = () => {
|
||||
// État de chargement
|
||||
BOUTON_AJOUT_PANIER.textContent = "Adding...";
|
||||
console.debug(SELECTEUR_VARIATION);
|
||||
const idProduit = SELECTEUR_VARIATION
|
||||
const idProduit: string = SELECTEUR_VARIATION
|
||||
.map(selecteur => selecteur.value)
|
||||
.orDefault(String(ETATS_PAGE.idProduit));
|
||||
|
||||
// TODO: Rendre ça moins long
|
||||
// TODO: Créer une méthode pour fetch()
|
||||
// TODO: Créer une méthode pour traiter les codes HTTP
|
||||
// Exécution de la requête
|
||||
Either.encase<Error, WCStoreCartAddItemArgs>(() =>
|
||||
parseWCStoreCartAddItemArgs({
|
||||
const args: WCStoreCartAddItemArgs = {
|
||||
id: Number(idProduit),
|
||||
quantity: 1,
|
||||
})
|
||||
).map((args: WCStoreCartAddItemArgs) => {
|
||||
};
|
||||
|
||||
// Exécute la requête
|
||||
eitherParse<typeof WCStoreCartAddItemArgsSchema>(args, WCStoreCartAddItemArgsSchema)
|
||||
.map((args: WCStoreCartAddItemArgs) => {
|
||||
fetch(ROUTE_API_AJOUTE_ARTICLE_PANIER, {
|
||||
body: JSON.stringify(args),
|
||||
credentials: "same-origin",
|
||||
|
|
@ -256,15 +244,10 @@ const ajouteProduitAuPanier = () => {
|
|||
await reponse.json(),
|
||||
// Traite tous les codes HTTPs possibles
|
||||
(corpsReponse: unknown) =>
|
||||
match(corpsReponse)
|
||||
// Réponses problématiques
|
||||
.with({ body: P.select(), status: 400 }, estWCError, leveBadRequestError)
|
||||
.with({ body: P.select(), status: 401 }, estWCError, leveUnauthorizedError)
|
||||
.with({ body: P.select(), status: 404 }, estWCError, leveNotFoundError)
|
||||
// Réponse OK (201)
|
||||
.with(P._, corpsOkInconnu => parse(WCStoreCartSchema, corpsOkInconnu))
|
||||
// Réponses inconnues
|
||||
.otherwise(e => pipe(e, ErreurInconnue, leveErreur<UnknownError>)),
|
||||
traiteReponseBackendWCSelonCodesHTTP<WCStoreCart, typeof WCStoreCartSchema>(
|
||||
corpsReponse,
|
||||
WCStoreCartSchema,
|
||||
),
|
||||
// Récupère le nombre de Produits dans la Panier
|
||||
D.getUnsafe("items_count"),
|
||||
// Déclenche les effets pour la mise à jour de l'IU
|
||||
|
|
@ -292,7 +275,8 @@ const ajouteProduitAuPanier = () => {
|
|||
}
|
||||
BOUTON_AJOUT_PANIER.textContent = "Add to cart";
|
||||
});
|
||||
});
|
||||
})
|
||||
.ifLeft(e => console.error(e.issues));
|
||||
};
|
||||
|
||||
document.addEventListener("DOMContentLoaded", () => {
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@
|
|||
<section class="selecteur-produit">
|
||||
<h3 class="selecteur-produit__nom">{{ produit.nom }}</h3>
|
||||
|
||||
{% if produit.variations_ids|length > 1 %}
|
||||
{% if attributs|length > 1 %}
|
||||
<div class="selecteur-produit__selection-variation">
|
||||
<label
|
||||
for="selecteur-variation"
|
||||
|
|
@ -99,36 +99,14 @@
|
|||
>
|
||||
--
|
||||
</option>
|
||||
{% if cotes_produit|length > 1 %}
|
||||
{% for cote in cotes_produit %}
|
||||
{% for attribut in attributs %}
|
||||
<option
|
||||
data-prix="{{ prix[loop.index0] }}"
|
||||
data-prix="{{ prix_variations[loop.index0] }}"
|
||||
value="{{ produit.variations_ids[loop.index0] }}"
|
||||
>
|
||||
{{ cote }}
|
||||
{{ attribut }}
|
||||
</option>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if pierres_produit|length > 1 %}
|
||||
{% for pierre in pierres_produit %}
|
||||
<option
|
||||
data-prix="{{ prix[loop.index0] }}"
|
||||
value="{{ produit.variations_ids[loop.index0] }}"
|
||||
>
|
||||
{{ pierre }}
|
||||
</option>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if tailles_produit|length > 1 %}
|
||||
{% for taille in tailles_produit %}
|
||||
<option
|
||||
data-prix="{{ prix[loop.index0] }}"
|
||||
value="{{ produit.variations_ids[loop.index0] }}"
|
||||
>
|
||||
{{ taille }}
|
||||
</option>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -140,7 +118,7 @@
|
|||
<section class="actions-produit">
|
||||
<button
|
||||
class="bouton-case-pleine"
|
||||
disabled
|
||||
{{ attributs|length > 1 ? "disabled" : "" }}
|
||||
id="bouton-ajout-panier"
|
||||
type="button"
|
||||
>
|
||||
|
|
|
|||
|
|
@ -7,50 +7,55 @@
|
|||
<h2>Successful order!</h2>
|
||||
</header>
|
||||
|
||||
{# Rappel de la Commande avec ses Articles #}
|
||||
<div class="contenu__rappel-commande">
|
||||
{% for article in articles %}
|
||||
<article class="contenu__rappel-commande__produit">
|
||||
{# Illustration cliquable du Produit #}
|
||||
<div class="contenu__rappel-commande__produit__illustratif">
|
||||
<a href="{{ article.permalien }}">
|
||||
<picture>{{ article.image }}</picture>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="contenu__rappel-commande__produit__textuel detail-produit">
|
||||
<h3 class="detail-produit__nom-prix">
|
||||
<a href="{{ article.permalien }}">{{ article.titre }}.</a>
|
||||
<span>{{ article.prix }}€</span>
|
||||
</h3>
|
||||
|
||||
<p class="detail-produit__description">
|
||||
{# Affiche tous les attributs relevants pour la variation choisie #}
|
||||
{% for attribut in article.attributs %}
|
||||
{% if attribut.valeur %}
|
||||
{{ attribut.nom }}: <strong>{{ attribut.valeur }}</strong><br />
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
qty: <strong>{{ article.quantite }}</strong>
|
||||
</p>
|
||||
</div>
|
||||
</article>
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
<div class="contenu__textuel">
|
||||
<p>
|
||||
Thank you for your order, {{ session.name }}!
|
||||
</p>
|
||||
|
||||
<p>
|
||||
You will receive an email conforming your order in a short while.
|
||||
You will receive an email with your order's details in a short while.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
If you have any questions, don't hesitate to <a class="lien-lien" href="/contact">contact us</a>!
|
||||
If you have any questions, don't hesitate to <a
|
||||
class="lien-lien"
|
||||
href="/contact"
|
||||
>
|
||||
contact us
|
||||
</a>!
|
||||
</p>
|
||||
</div>
|
||||
|
||||
{# Rappel de la Commande avec ses Produits #}
|
||||
<div class="contenu__rappel-commande">
|
||||
{% for produit in produits %}
|
||||
<article class="contenu__rappel-commande__produit">
|
||||
{# Illustration cliquable du Produit #}
|
||||
<div class="contenu__rappel-commande__produit__illustratif">
|
||||
<a href="{{ produit.permalien }}">
|
||||
<picture>{{ produit.image }}</picture>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="contenu__rappel-commande__produit__textuel detail-produit">
|
||||
<h3 class="detail-produit__nom-prix">
|
||||
<a href="{{ produit.permalien }}">{{ produit.titre }}.</a>
|
||||
<span>{{ produit.prix }}€</span>
|
||||
</h3>
|
||||
|
||||
<p class="detail-produit__description">
|
||||
{# Affiche tous les attributs relevants pour la variation choisie #}
|
||||
{% for attribut in produit.attributs %}
|
||||
{% if attribut.valeur %}
|
||||
{{ attribut.nom }}: <strong>{{ attribut.valeur }}</strong><br />
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
qty: <strong>{{ produit.quantite }}</strong>
|
||||
</p>
|
||||
</div>
|
||||
</article>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
{% endblock contenu %}
|
||||
|
|
|
|||
BIN
web/app/uploads/2024/09/DSC9897.avif
Normal file
|
After Width: | Height: | Size: 83 KiB |
BIN
web/app/uploads/2024/09/DSC9897.jpg
Normal file
|
After Width: | Height: | Size: 1.3 MiB |
BIN
web/app/uploads/2024/09/DSC9897.jxl
Normal file
BIN
web/app/uploads/2024/09/DSC9897.webp
Normal file
|
After Width: | Height: | Size: 206 KiB |
|
Before Width: | Height: | Size: 49 KiB |
BIN
web/app/uploads/2024/10/BOROBORO-BO-g.avif
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
web/app/uploads/2024/10/BOROBORO-BO-g.jpg
Normal file
|
After Width: | Height: | Size: 983 KiB |
BIN
web/app/uploads/2024/10/BOROBORO-BO-g.jxl
Normal file
BIN
web/app/uploads/2024/10/BOROBORO-BO-g.webp
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
web/app/uploads/2024/10/BOROBORO-BO-s.avif
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
web/app/uploads/2024/10/BOROBORO-BO-s.jpg
Normal file
|
After Width: | Height: | Size: 764 KiB |
BIN
web/app/uploads/2024/10/BOROBORO-BO-s.jxl
Normal file
BIN
web/app/uploads/2024/10/BOROBORO-BO-s.webp
Normal file
|
After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 48 KiB |
BIN
web/app/uploads/2024/10/DSC9341.avif
Normal file
|
After Width: | Height: | Size: 154 KiB |
BIN
web/app/uploads/2024/10/DSC9341.jpg
Normal file
|
After Width: | Height: | Size: 1.4 MiB |
BIN
web/app/uploads/2024/10/DSC9341.jxl
Normal file
BIN
web/app/uploads/2024/10/DSC9341.webp
Normal file
|
After Width: | Height: | Size: 154 KiB |