@supersoniks/concorde 4.9.92 → 4.9.94
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/ai/cursor/rules/concorde.mdc +7 -0
- package/ai/jetbrains/rules/concorde.md +6 -0
- package/ai/skills/concorde/SKILL.md +48 -0
- package/build-infos.json +1 -1
- package/concorde-core.bundle.js +299 -292
- package/concorde-core.es.js +10139 -6035
- package/dist/concorde-core.bundle.js +299 -292
- package/dist/concorde-core.es.js +10139 -6035
- package/dist/docs-mock-api-sw.js +110 -0
- package/dist/docs-mock-api-sw.js.map +3 -3
- package/dist/js/core/components/functional/functional.js +1 -0
- package/dist/js/core/components/functional/functional.js.map +1 -1
- package/dist/js/core/components/functional/jsonata/jsonata.js +119 -0
- package/dist/js/core/components/functional/jsonata/jsonata.js.map +1 -0
- package/dist/js/core/components/ui/button/button.js +1 -1
- package/dist/js/core/components/ui/button/button.js.map +1 -1
- package/dist/js/core/decorators/Subscriber.js +1 -0
- package/dist/js/core/decorators/Subscriber.js.map +1 -1
- package/dist/js/core/decorators/api.js +108 -16
- package/dist/js/core/decorators/api.js.map +1 -1
- package/dist/js/core/decorators/subscriber/derive.js +60 -0
- package/dist/js/core/decorators/subscriber/derive.js.map +1 -0
- package/dist/js/core/utils/api.js +29 -8
- package/dist/js/core/utils/api.js.map +1 -1
- package/dist/js/core/utils/derive.js +246 -0
- package/dist/js/core/utils/derive.js.map +1 -0
- package/dist/js/core/utils/jsonataHelpers.js +69 -0
- package/dist/js/core/utils/jsonataHelpers.js.map +1 -0
- package/dist/js/core/utils/jsonataRuntime.js +75 -0
- package/dist/js/core/utils/jsonataRuntime.js.map +1 -0
- package/dist/js/utils.js +2 -0
- package/dist/js/utils.js.map +1 -1
- package/dist/types/core/components/functional/functional.d.ts +1 -0
- package/dist/types/core/components/functional/functional.d.ts.map +1 -1
- package/dist/types/core/components/functional/jsonata/jsonata.d.ts +29 -0
- package/dist/types/core/components/functional/jsonata/jsonata.d.ts.map +1 -0
- package/dist/types/core/components/ui/button/button.d.ts +1 -1
- package/dist/types/core/components/ui/button/button.d.ts.map +1 -1
- package/dist/types/core/components/ui/form/checkbox/checkbox.d.ts +3 -3
- package/dist/types/core/components/ui/form/input/input.d.ts +3 -3
- package/dist/types/core/components/ui/form/input-autocomplete/input-autocomplete.d.ts +3 -3
- package/dist/types/core/components/ui/form/textarea/textarea.d.ts +3 -3
- package/dist/types/core/decorators/Subscriber.d.ts +2 -0
- package/dist/types/core/decorators/Subscriber.d.ts.map +1 -1
- package/dist/types/core/decorators/api.d.ts +21 -12
- package/dist/types/core/decorators/api.d.ts.map +1 -1
- package/dist/types/core/decorators/subscriber/derive.d.ts +30 -0
- package/dist/types/core/decorators/subscriber/derive.d.ts.map +1 -0
- package/dist/types/core/utils/api.d.ts +1 -1
- package/dist/types/core/utils/api.d.ts.map +1 -1
- package/dist/types/core/utils/derive.d.ts +40 -0
- package/dist/types/core/utils/derive.d.ts.map +1 -0
- package/dist/types/core/utils/jsonataHelpers.d.ts +15 -0
- package/dist/types/core/utils/jsonataHelpers.d.ts.map +1 -0
- package/dist/types/core/utils/jsonataRuntime.d.ts +13 -0
- package/dist/types/core/utils/jsonataRuntime.d.ts.map +1 -0
- package/dist/types/mixins.d.ts +3 -3
- package/dist/types/utils.d.ts +2 -0
- package/dist/types/utils.d.ts.map +1 -1
- package/docs/assets/{index-DURr6O71.js → index-DpIkksht.js} +652 -479
- package/docs/crawl/docs/_decorators/get.html +27 -6
- package/docs/crawl/docs/_decorators/patch.html +6 -0
- package/docs/crawl/docs/_decorators/post.html +8 -0
- package/docs/crawl/docs/_decorators/put.html +6 -0
- package/docs/crawl/hubs/decorators.html +36 -31
- package/docs/crawl/hubs/remote-data.html +36 -31
- package/docs/index.html +1 -1
- package/docs/llms-full.txt +47 -3
- package/docs/src/docs/_decorators/get.md +31 -0
- package/docs/src/docs/_decorators/patch.md +9 -0
- package/docs/src/docs/_decorators/post.md +11 -0
- package/docs/src/docs/_decorators/put.md +9 -0
- package/docs/src/docs/search/docs-search.json +120 -5
- package/docs/src/tsconfig.json +268 -268
- package/package.json +28 -3
- package/public/docs-mock-api-sw.js +110 -0
- package/public/docs-mock-api-sw.js.map +3 -3
- package/src/core/components/functional/functional.ts +1 -0
- package/src/core/components/functional/jsonata/jsonata.md +56 -0
- package/src/core/components/functional/jsonata/jsonata.spec.ts +202 -0
- package/src/core/components/functional/jsonata/jsonata.ts +116 -0
- package/src/core/components/ui/button/button.ts +2 -2
- package/src/core/decorators/Subscriber.ts +2 -0
- package/src/core/decorators/api.post.spec.ts +99 -4
- package/src/core/decorators/api.spec.ts +90 -0
- package/src/core/decorators/api.ts +212 -92
- package/src/core/decorators/subscriber/derive.ts +95 -0
- package/src/core/utils/api.spec.ts +73 -0
- package/src/core/utils/api.ts +44 -11
- package/src/core/utils/derive.spec.ts +190 -0
- package/src/core/utils/derive.ts +357 -0
- package/src/core/utils/jsonataHelpers.ts +100 -0
- package/src/core/utils/jsonataRuntime.ts +88 -0
- package/src/docs/_core-concept/dataFlow.md +9 -0
- package/src/docs/_decorators/get.md +31 -0
- package/src/docs/_decorators/patch.md +9 -0
- package/src/docs/_decorators/post.md +11 -0
- package/src/docs/_decorators/put.md +9 -0
- package/src/docs/_misc/docs-mock-api.md +3 -0
- package/src/docs/components/docs-demo-sources.ts +40 -0
- package/src/docs/docs.ts +1 -0
- package/src/docs/example/decorators-demo-post.ts +70 -0
- package/src/docs/example/decorators-demo-subscribe-publish-get-demos.ts +59 -0
- package/src/docs/example/docs-jsonata-demos.ts +128 -0
- package/src/docs/mock-api/fixtures-jsonata.ts +131 -0
- package/src/docs/mock-api/router.ts +26 -0
- package/src/docs/navigation/navigation.ts +4 -0
- package/src/docs/search/docs-search.json +300 -5
- package/src/tsconfig.json +18 -0
- package/src/tsconfig.tsbuildinfo +1 -1
- package/src/utils.ts +13 -0
|
@@ -23,6 +23,8 @@ Migration get/set/dp : `.cursor/skills/concorde-get-set-dp/SKILL.md`
|
|
|
23
23
|
## Interdits (nouveau code)
|
|
24
24
|
|
|
25
25
|
- `sonic-fetch` → `sonic-queue` + filtre, ou `@get`
|
|
26
|
+
- Les décorateurs API (`@get`, `@post`, `@put`, `@patch`) s'adaptent aux
|
|
27
|
+
propriétés et aux méthodes
|
|
26
28
|
- `@onAssign` → `@handle` + `DataProviderKey`
|
|
27
29
|
- `@bind` → `@subscribe` + `DataProviderKey<T, U>` (pas sur composants métier)
|
|
28
30
|
- `data-bind` HTML → `@subscribe` / `sub()`
|
|
@@ -46,6 +48,11 @@ Placeholder `${prop}` = chaîne normale, résolu depuis le composant hôte.
|
|
|
46
48
|
## Scope / theme
|
|
47
49
|
|
|
48
50
|
- **Scope** : `<sonic-scope serviceURL="…">` · `@get(endpoint)` ou `@get(endpoint, apiConfigKey)` — skills `concorde-scope`
|
|
51
|
+
- **GET + handler** : `@get(endpoint)` sur une méthode ; le handler reçoit
|
|
52
|
+
`result`, `response`, `request`, ou `undefined`. Conserver le handle retourné
|
|
53
|
+
par `get` pour `refetch`.
|
|
54
|
+
- **Write + handler** : même modèle avec `post`, `put`, `patch` ; `@send`
|
|
55
|
+
reste le déclencheur explicite.
|
|
49
56
|
- **Theme** : `<sonic-theme background color font>` · `--sc-*` — skill `concorde-theme`
|
|
50
57
|
|
|
51
58
|
## Migration Subscriber / sonic-fetch (piège fréquent)
|
|
@@ -16,6 +16,8 @@ Référence doc : fichiers `.md` dans `node_modules/@supersoniks/concorde/src/`.
|
|
|
16
16
|
## Interdits (nouveau code)
|
|
17
17
|
|
|
18
18
|
- sonic-fetch → sonic-queue + filtre, ou @get
|
|
19
|
+
- Les décorateurs API (@get, @post, @put, @patch) s'adaptent aux propriétés
|
|
20
|
+
et aux méthodes
|
|
19
21
|
- @onAssign → @handle + DataProviderKey
|
|
20
22
|
- data-bind HTML → @subscribe / sub()
|
|
21
23
|
- sonic-input + @input → formDataProvider + name
|
|
@@ -31,6 +33,10 @@ Placeholder `${prop}` dans une chaîne normale : `"users.${userIndex}"`.
|
|
|
31
33
|
- **Scope** (`sonic-scope`) : `serviceURL`, `formDataProvider`, icônes — skill `concorde-scope`
|
|
32
34
|
- **Theme** (`sonic-theme`) : `--sc-*` tokens, dark mode — skill `concorde-theme`
|
|
33
35
|
- `@get(endpoint)` sans clé config → hérite scope ; `@get(endpoint, apiConfigKey)` → DataProvider
|
|
36
|
+
- `@get(endpoint)` sur une méthode reçoit `result`, `response`, `request`, ou
|
|
37
|
+
`undefined` ; conserver le handle retourné par `get` pour `refetch`
|
|
38
|
+
- Même modèle avec `post`, `put`, `patch` ; `@send` reste le déclencheur
|
|
39
|
+
explicite de l'opération
|
|
34
40
|
- Modale / portal : préférer `apiConfigKey` si pas de scope DOM fiable
|
|
35
41
|
|
|
36
42
|
## Migration Subscriber / sonic-fetch
|
|
@@ -29,6 +29,9 @@ Référence complète : skill **`concorde-imports`** (`.cursor/skills/concorde-i
|
|
|
29
29
|
- **Ne pas** introduire `@onAssign` — préférer `@handle` + `DataProviderKey`.
|
|
30
30
|
- **Ne pas** utiliser **`@bind`** sur les composants métier — préférer **`@subscribe`** + `DataProviderKey<T, U>` (typage + placeholders `${prop}` sur l’hôte).
|
|
31
31
|
- **Ne pas** utiliser **`sonic-fetch`** — préférer **`sonic-queue`** (+ filtre `formDataProvider`) ou **`@get`** + `Endpoint`.
|
|
32
|
+
- Les décorateurs API **`@get`**, **`@post`**, **`@put`** et **`@patch`**
|
|
33
|
+
s'adaptent aux propriétés et aux méthodes ; la méthode reçoit le
|
|
34
|
+
`ApiResult` complet.
|
|
32
35
|
- **Ne pas** importer **`PublisherManager`** — utiliser **`get` / `set`** (réexport Concorde ou wrapper projet).
|
|
33
36
|
- **Ne pas** promouvoir les templates HTML (`<template>`, `data-value`) pour **`sonic-list`** / **`sonic-queue`** — préférer **`.items`**, **`.noItems`**, **`.skeleton`**, **`.separator`** (binding propriété Lit obligatoire pour les fonctions).
|
|
34
37
|
|
|
@@ -94,6 +97,47 @@ users.path;
|
|
|
94
97
|
|
|
95
98
|
Utilisé avec `@get(endpoint)` ou `@get(endpoint, apiConfigKey)` — voir **Scope** ci-dessous.
|
|
96
99
|
|
|
100
|
+
### Décorateurs API sur une méthode
|
|
101
|
+
|
|
102
|
+
`@get`, `@post`, `@put` et `@patch` peuvent décorer une propriété ou une
|
|
103
|
+
méthode. En mode méthode, le callback reçoit le `ApiResult` complet :
|
|
104
|
+
|
|
105
|
+
```typescript
|
|
106
|
+
@get(endpoints.ticket)
|
|
107
|
+
handleTicket(payload: ApiResult<PurchaseItem> | undefined) {
|
|
108
|
+
if (!payload?.result || !payload.response?.ok) return;
|
|
109
|
+
dp<PurchaseItem>(this.dataProvider).set(payload.result);
|
|
110
|
+
}
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
La méthode reçoit le payload complet (`result`, `response`, `request`).
|
|
114
|
+
`undefined` représente un appel terminé sans payload, par exemple une erreur
|
|
115
|
+
réseau. Si un refetch nommé est nécessaire, conserver le handle et décorer la
|
|
116
|
+
méthode avec lui :
|
|
117
|
+
|
|
118
|
+
```typescript
|
|
119
|
+
const ticketGet = get(endpoints.ticket);
|
|
120
|
+
|
|
121
|
+
@ticketGet
|
|
122
|
+
handleTicket(payload: ApiResult<PurchaseItem> | undefined) {}
|
|
123
|
+
|
|
124
|
+
@refetch(ticketGet)
|
|
125
|
+
reloadTicket() {}
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
`@send(handle)` reste le décorateur de méthode qui déclenche explicitement une
|
|
129
|
+
écriture ; les mutations du body, triggers et polling conservent leur
|
|
130
|
+
comportement.
|
|
131
|
+
|
|
132
|
+
Exemple écriture :
|
|
133
|
+
|
|
134
|
+
```typescript
|
|
135
|
+
@post(endpoints.ticket, ticketBodyKey)
|
|
136
|
+
handleTicketCreation(payload: ApiResult<PurchaseItem> | undefined) {
|
|
137
|
+
if (payload?.response?.ok) console.log(payload.result);
|
|
138
|
+
}
|
|
139
|
+
```
|
|
140
|
+
|
|
97
141
|
## Scope — defaults hérités
|
|
98
142
|
|
|
99
143
|
Skill dédié : **`concorde-scope`**.
|
|
@@ -270,6 +314,8 @@ Propriétés Lit (recommandé) :
|
|
|
270
314
|
| Lire (affichage Lit) | `@subscribe(dpKey.leaf)` + `@state()` — **une fois par champ** du `render()` |
|
|
271
315
|
| Effet typé | `@handle(dpKey.a, …)` |
|
|
272
316
|
| API HTTP | `@get(Endpoint)` ou `@get(Endpoint, apiConfigKey)` |
|
|
317
|
+
| Effet après GET | `@get(endpoint)` sur une méthode |
|
|
318
|
+
| Effet après écriture | `@post` / `@put` / `@patch` sur une méthode |
|
|
273
319
|
| Écriture classe (hors form) | `@publish` |
|
|
274
320
|
| Lecture classe (hors form) | `@subscribe` + `DataProviderKey` — pas `@bind` |
|
|
275
321
|
|
|
@@ -298,3 +344,5 @@ Propriétés Lit (recommandé) :
|
|
|
298
344
|
- **Config API app-wide** : `<sonic-scope serviceURL="…">` ou `DataProviderKey<APIConfiguration>`.
|
|
299
345
|
- **Theme / couleurs** : `<sonic-theme>` + CSS `--sc-*`.
|
|
300
346
|
- **Clé dynamique** : `"chemin.${prop}"` + `DataProviderKey<T, { prop: … }>`.
|
|
347
|
+
- **GET avec effet de bord** : `@get(endpoint)` sur une méthode ; conserver
|
|
348
|
+
`const request = get(endpoint)` si un refetch nommé est nécessaire.
|
package/build-infos.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"date":
|
|
1
|
+
{"date":1790327430}
|