@sia-ui/api 0.6.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,28 @@
1
1
  # @sia-ui/api
2
2
 
3
+ ## 0.7.0
4
+
5
+ ### Minor Changes
6
+
7
+ - Adaptateur TanStack Router, mises à jour en `PATCH`, et `secretChanges`.
8
+ - **`useDataTableQuery({ router })`** — adaptateur TanStack Router livré et
9
+ testé (`createTanStackRouterStorage`). La recette de la documentation mettait
10
+ `page=2` entre guillemets (`page=%222%22`) et la page retombait à 1 ; les
11
+ nombres passent désormais comme nombres, sans perte pour les filtres.
12
+ - **Un tableau n'écrit plus que ses propres clés** (`mergeTableQuery` dans
13
+ `@sia-ui/headless`) : deux tableaux préfixés sur une page, ou un onglet dans
14
+ l'URL, ne s'effacent plus l'un l'autre — avec l'URL du navigateur comme avec
15
+ un routeur.
16
+ - **`createQueryResource(service, { updateMethod: "PATCH" })`** — pour une API
17
+ qui n'accepte que des mises à jour partielles.
18
+ - **`secretChanges(entries, storedKeys)`** — ce qu'il faut envoyer après une
19
+ saisie dans `SecretFields` : `{ set, remove, missing }`.
20
+
21
+ ### Patch Changes
22
+
23
+ - Updated dependencies
24
+ - @sia-ui/utils@0.7.0
25
+
3
26
  ## 0.6.0
4
27
 
5
28
  ### Minor Changes
package/README.md CHANGED
@@ -57,6 +57,29 @@ Le contenu ci-dessous reprend intégralement `CHANGELOG.md` pour rester visible
57
57
  <!-- sia:changelog:start -->
58
58
  # @sia-ui/api
59
59
 
60
+ ## 0.7.0
61
+
62
+ ### Minor Changes
63
+
64
+ - Adaptateur TanStack Router, mises à jour en `PATCH`, et `secretChanges`.
65
+ - **`useDataTableQuery({ router })`** — adaptateur TanStack Router livré et
66
+ testé (`createTanStackRouterStorage`). La recette de la documentation mettait
67
+ `page=2` entre guillemets (`page=%222%22`) et la page retombait à 1 ; les
68
+ nombres passent désormais comme nombres, sans perte pour les filtres.
69
+ - **Un tableau n'écrit plus que ses propres clés** (`mergeTableQuery` dans
70
+ `@sia-ui/headless`) : deux tableaux préfixés sur une page, ou un onglet dans
71
+ l'URL, ne s'effacent plus l'un l'autre — avec l'URL du navigateur comme avec
72
+ un routeur.
73
+ - **`createQueryResource(service, { updateMethod: "PATCH" })`** — pour une API
74
+ qui n'accepte que des mises à jour partielles.
75
+ - **`secretChanges(entries, storedKeys)`** — ce qu'il faut envoyer après une
76
+ saisie dans `SecretFields` : `{ set, remove, missing }`.
77
+
78
+ ### Patch Changes
79
+
80
+ - Updated dependencies
81
+ - @sia-ui/utils@0.7.0
82
+
60
83
  ## 0.6.0
61
84
 
62
85
  ### Minor Changes
package/dist/index.cjs CHANGED
@@ -1014,6 +1014,7 @@ function createResourceService(client, resourcePath) {
1014
1014
  // src/query-resource.ts
1015
1015
  function createQueryResource(service, options = {}) {
1016
1016
  const racine = options.name ?? service.path;
1017
+ const modifier = (id, values) => options.updateMethod === "PATCH" ? service.patch(id, values) : service.update(id, values);
1017
1018
  const keys = {
1018
1019
  all: [racine],
1019
1020
  lists: () => [racine, "list"],
@@ -1043,7 +1044,7 @@ function createQueryResource(service, options = {}) {
1043
1044
  * modifié : c'est ce que chaque écran écrivait à la main, ou oubliait.
1044
1045
  */
1045
1046
  saveMutation: (client) => ({
1046
- mutationFn: ({ id, values }) => id === void 0 ? service.create(values) : service.update(id, values),
1047
+ mutationFn: ({ id, values }) => id === void 0 ? service.create(values) : modifier(id, values),
1047
1048
  onSuccess: (_, { id }) => id === void 0 ? invalider(client, keys.lists()) : invalider(client, keys.lists(), keys.detail(id))
1048
1049
  }),
1049
1050
  removeMutation: (client) => ({
package/dist/index.d.cts CHANGED
@@ -495,6 +495,12 @@ interface QueryResourceOptions {
495
495
  * c'est ce nom qui les sépare.
496
496
  */
497
497
  name?: string | undefined;
498
+ /**
499
+ * Comment `saveMutation` modifie une ligne. `PUT` par défaut
500
+ * (`service.update`) ; `PATCH` (`service.patch`) pour une API qui
501
+ * n'accepte que des mises à jour partielles.
502
+ */
503
+ updateMethod?: "PUT" | "PATCH" | undefined;
498
504
  }
499
505
  /**
500
506
  * Les clés et les options de requête d'une ressource.
package/dist/index.d.ts CHANGED
@@ -495,6 +495,12 @@ interface QueryResourceOptions {
495
495
  * c'est ce nom qui les sépare.
496
496
  */
497
497
  name?: string | undefined;
498
+ /**
499
+ * Comment `saveMutation` modifie une ligne. `PUT` par défaut
500
+ * (`service.update`) ; `PATCH` (`service.patch`) pour une API qui
501
+ * n'accepte que des mises à jour partielles.
502
+ */
503
+ updateMethod?: "PUT" | "PATCH" | undefined;
498
504
  }
499
505
  /**
500
506
  * Les clés et les options de requête d'une ressource.
package/dist/index.js CHANGED
@@ -1012,6 +1012,7 @@ function createResourceService(client, resourcePath) {
1012
1012
  // src/query-resource.ts
1013
1013
  function createQueryResource(service, options = {}) {
1014
1014
  const racine = options.name ?? service.path;
1015
+ const modifier = (id, values) => options.updateMethod === "PATCH" ? service.patch(id, values) : service.update(id, values);
1015
1016
  const keys = {
1016
1017
  all: [racine],
1017
1018
  lists: () => [racine, "list"],
@@ -1041,7 +1042,7 @@ function createQueryResource(service, options = {}) {
1041
1042
  * modifié : c'est ce que chaque écran écrivait à la main, ou oubliait.
1042
1043
  */
1043
1044
  saveMutation: (client) => ({
1044
- mutationFn: ({ id, values }) => id === void 0 ? service.create(values) : service.update(id, values),
1045
+ mutationFn: ({ id, values }) => id === void 0 ? service.create(values) : modifier(id, values),
1045
1046
  onSuccess: (_, { id }) => id === void 0 ? invalider(client, keys.lists()) : invalider(client, keys.lists(), keys.detail(id))
1046
1047
  }),
1047
1048
  removeMutation: (client) => ({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sia-ui/api",
3
- "version": "0.6.0",
3
+ "version": "0.7.0",
4
4
  "description": "Typed HTTP client with CRUD services, plugins and injectable transports.",
5
5
  "keywords": [
6
6
  "sia-ui",
@@ -42,7 +42,7 @@
42
42
  "access": "public"
43
43
  },
44
44
  "dependencies": {
45
- "@sia-ui/utils": "0.6.0"
45
+ "@sia-ui/utils": "0.7.0"
46
46
  },
47
47
  "devDependencies": {
48
48
  "tsup": "^8.5.1",