@supersoniks/concorde 4.9.93 → 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/build-infos.json +1 -1
- package/concorde-core.bundle.js +299 -292
- package/concorde-core.es.js +10104 -6071
- package/dist/concorde-core.bundle.js +299 -292
- package/dist/concorde-core.es.js +10104 -6071
- 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/subscriber/derive.js +60 -0
- package/dist/js/core/decorators/subscriber/derive.js.map +1 -0
- 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/subscriber/derive.d.ts +30 -0
- package/dist/types/core/decorators/subscriber/derive.d.ts.map +1 -0
- 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/subscriber/derive.ts +95 -0
- 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/_misc/docs-mock-api.md +3 -0
- package/src/docs/components/docs-demo-sources.ts +26 -0
- package/src/docs/docs.ts +1 -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 +180 -0
- package/src/tsconfig.json +18 -0
- package/src/tsconfig.tsbuildinfo +1 -1
- package/src/utils.ts +13 -0
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { html, LitElement } from "lit";
|
|
2
|
+
import { customElement } from "lit/decorators.js";
|
|
3
|
+
import { tailwind } from "../tailwind";
|
|
4
|
+
import { DOCS_MOCK_API_BASE } from "../mock-api/urls";
|
|
5
|
+
import { Endpoint } from "@supersoniks/concorde/core/utils/endpoint";
|
|
6
|
+
import { DataProviderKey } from "@supersoniks/concorde/dataProviderKey";
|
|
7
|
+
import { set } from "@supersoniks/concorde/utils";
|
|
8
|
+
|
|
9
|
+
import "../../core/components/functional/fetch/fetch";
|
|
10
|
+
import "../../core/components/functional/jsonata/jsonata";
|
|
11
|
+
import "../../core/components/functional/list/list";
|
|
12
|
+
import "../../core/components/functional/value/value";
|
|
13
|
+
import "../../core/components/ui/form/input/input";
|
|
14
|
+
|
|
15
|
+
const missions = new Endpoint<unknown>("api/space-cats");
|
|
16
|
+
const topForm = new DataProviderKey<{ top: number | string }>(
|
|
17
|
+
"jsonataTopForm",
|
|
18
|
+
);
|
|
19
|
+
|
|
20
|
+
const order = new Endpoint<unknown>("api/market-order");
|
|
21
|
+
const taxForm = new DataProviderKey<{ taxPercent: number | string }>(
|
|
22
|
+
"jsonataTaxForm",
|
|
23
|
+
);
|
|
24
|
+
|
|
25
|
+
/** Cas 1 — groupby + top N (recalcul via form, sans refetch). */
|
|
26
|
+
@customElement("docs-jsonata-space-cats-demo")
|
|
27
|
+
export class DocsJsonataSpaceCatsDemo extends LitElement {
|
|
28
|
+
static styles = [tailwind];
|
|
29
|
+
|
|
30
|
+
connectedCallback(): void {
|
|
31
|
+
super.connectedCallback();
|
|
32
|
+
set(topForm, { top: 3 });
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
render() {
|
|
36
|
+
return html`
|
|
37
|
+
<div serviceURL=${DOCS_MOCK_API_BASE} class="flex flex-col gap-3">
|
|
38
|
+
<div formDataProvider=${topForm.path} class="max-w-xs">
|
|
39
|
+
<sonic-input name="top" type="number" label="Top N" value="3"></sonic-input>
|
|
40
|
+
</div>
|
|
41
|
+
|
|
42
|
+
<sonic-fetch
|
|
43
|
+
dataProvider=${missions.path}
|
|
44
|
+
endPoint=${missions.path}
|
|
45
|
+
key="data"
|
|
46
|
+
></sonic-fetch>
|
|
47
|
+
|
|
48
|
+
<sonic-jsonata
|
|
49
|
+
inputProvider=${missions.path}
|
|
50
|
+
outputProvider="spaceCatLeaderboard"
|
|
51
|
+
formDataProvider=${topForm.path}
|
|
52
|
+
expression='$input{name: $sum(points)} ~> $each(function($v,$k){{"name":$k,"points":$v}}) ^(>points)[[0..$number($top)-1]]'
|
|
53
|
+
></sonic-jsonata>
|
|
54
|
+
|
|
55
|
+
<sonic-list
|
|
56
|
+
dataProvider="spaceCatLeaderboard"
|
|
57
|
+
class="flex flex-col gap-1"
|
|
58
|
+
.items=${({ name, points }: { name: string; points: number }) =>
|
|
59
|
+
html`<div class="flex gap-3 text-sm">
|
|
60
|
+
<span class="font-medium">${name}</span>
|
|
61
|
+
<span class="ml-auto tabular-nums text-neutral-500">${points}</span>
|
|
62
|
+
</div>`}
|
|
63
|
+
></sonic-list>
|
|
64
|
+
</div>
|
|
65
|
+
`;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/** Cas 2 — totaux d’un tableau (somme + taxe via form). */
|
|
70
|
+
@customElement("docs-jsonata-table-totals-demo")
|
|
71
|
+
export class DocsJsonataTableTotalsDemo extends LitElement {
|
|
72
|
+
static styles = [tailwind];
|
|
73
|
+
|
|
74
|
+
connectedCallback(): void {
|
|
75
|
+
super.connectedCallback();
|
|
76
|
+
set(taxForm, { taxPercent: 10 });
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
render() {
|
|
80
|
+
return html`
|
|
81
|
+
<div serviceURL=${DOCS_MOCK_API_BASE} class="flex flex-col gap-3">
|
|
82
|
+
<div formDataProvider=${taxForm.path} class="max-w-xs">
|
|
83
|
+
<sonic-input
|
|
84
|
+
name="taxPercent"
|
|
85
|
+
type="number"
|
|
86
|
+
label="Tax %"
|
|
87
|
+
value="10"
|
|
88
|
+
></sonic-input>
|
|
89
|
+
</div>
|
|
90
|
+
|
|
91
|
+
<sonic-fetch
|
|
92
|
+
dataProvider=${order.path}
|
|
93
|
+
endPoint=${order.path}
|
|
94
|
+
key="data"
|
|
95
|
+
></sonic-fetch>
|
|
96
|
+
|
|
97
|
+
<sonic-jsonata
|
|
98
|
+
inputProvider=${order.path}
|
|
99
|
+
outputProvider="marketOrderTotals"
|
|
100
|
+
formDataProvider=${taxForm.path}
|
|
101
|
+
expression='(
|
|
102
|
+
$sub := $sum($input.(qty * unitPrice));
|
|
103
|
+
{
|
|
104
|
+
"subtotal": $round($sub, 2),
|
|
105
|
+
"tax": $round($sub * $number($taxPercent) / 100, 2),
|
|
106
|
+
"grandTotal": $round($sub * (1 + $number($taxPercent) / 100), 2)
|
|
107
|
+
}
|
|
108
|
+
)'
|
|
109
|
+
></sonic-jsonata>
|
|
110
|
+
|
|
111
|
+
<div dataProvider="marketOrderTotals" class="flex gap-6 text-sm">
|
|
112
|
+
<div>
|
|
113
|
+
<div class="text-neutral-400">Subtotal</div>
|
|
114
|
+
<sonic-value key="subtotal"></sonic-value>
|
|
115
|
+
</div>
|
|
116
|
+
<div>
|
|
117
|
+
<div class="text-neutral-400">Tax</div>
|
|
118
|
+
<sonic-value key="tax"></sonic-value>
|
|
119
|
+
</div>
|
|
120
|
+
<div>
|
|
121
|
+
<div class="text-neutral-400">Total</div>
|
|
122
|
+
<span class="font-semibold"><sonic-value key="grandTotal"></sonic-value></span>
|
|
123
|
+
</div>
|
|
124
|
+
</div>
|
|
125
|
+
</div>
|
|
126
|
+
`;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fixtures fun pour démos / tests sonic-jsonata (hors billetterie).
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
const avatar = (seed: string) =>
|
|
6
|
+
`https://i.pravatar.cc/150?u=${encodeURIComponent(seed)}`;
|
|
7
|
+
|
|
8
|
+
/** Missions de chats spatiaux — groupby name + top N points. */
|
|
9
|
+
export type SpaceCatMission = {
|
|
10
|
+
id: number;
|
|
11
|
+
name: string;
|
|
12
|
+
planet: string;
|
|
13
|
+
mission: string;
|
|
14
|
+
points: number;
|
|
15
|
+
avatar: string;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export const DOCS_SPACE_CAT_MISSIONS: SpaceCatMission[] = [
|
|
19
|
+
{
|
|
20
|
+
id: 1,
|
|
21
|
+
name: "Captain Whiskers",
|
|
22
|
+
planet: "Mars",
|
|
23
|
+
mission: "Laser hunt",
|
|
24
|
+
points: 40,
|
|
25
|
+
avatar: avatar("captain-whiskers"),
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
id: 2,
|
|
29
|
+
name: "Captain Whiskers",
|
|
30
|
+
planet: "Mars",
|
|
31
|
+
mission: "Dust nap",
|
|
32
|
+
points: 25,
|
|
33
|
+
avatar: avatar("captain-whiskers"),
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
id: 3,
|
|
37
|
+
name: "Nebula Paws",
|
|
38
|
+
planet: "Europa",
|
|
39
|
+
mission: "Ice fishing",
|
|
40
|
+
points: 55,
|
|
41
|
+
avatar: avatar("nebula-paws"),
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
id: 4,
|
|
45
|
+
name: "Astro Mittens",
|
|
46
|
+
planet: "Titan",
|
|
47
|
+
mission: "Methane surf",
|
|
48
|
+
points: 33,
|
|
49
|
+
avatar: avatar("astro-mittens"),
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
id: 5,
|
|
53
|
+
name: "Nebula Paws",
|
|
54
|
+
planet: "Europa",
|
|
55
|
+
mission: "Comet chase",
|
|
56
|
+
points: 20,
|
|
57
|
+
avatar: avatar("nebula-paws"),
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
id: 6,
|
|
61
|
+
name: "Professor Meowington",
|
|
62
|
+
planet: "Venus",
|
|
63
|
+
mission: "Cloud tasting",
|
|
64
|
+
points: 48,
|
|
65
|
+
avatar: avatar("prof-meowington"),
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
id: 7,
|
|
69
|
+
name: "Astro Mittens",
|
|
70
|
+
planet: "Titan",
|
|
71
|
+
mission: "Antenna polish",
|
|
72
|
+
points: 12,
|
|
73
|
+
avatar: avatar("astro-mittens"),
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
id: 8,
|
|
77
|
+
name: "Zero-G Socks",
|
|
78
|
+
planet: "Moon",
|
|
79
|
+
mission: "Flag knitting",
|
|
80
|
+
points: 61,
|
|
81
|
+
avatar: avatar("zero-g-socks"),
|
|
82
|
+
},
|
|
83
|
+
];
|
|
84
|
+
|
|
85
|
+
/** Sacs de café — groupby origin + filtre roast. */
|
|
86
|
+
export type CoffeeBag = {
|
|
87
|
+
id: number;
|
|
88
|
+
origin: string;
|
|
89
|
+
roast: "light" | "medium" | "dark";
|
|
90
|
+
kg: number;
|
|
91
|
+
farm: string;
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
export const DOCS_COFFEE_BAGS: CoffeeBag[] = [
|
|
95
|
+
{ id: 1, origin: "Ethiopia", roast: "light", kg: 12, farm: "Yirgacheffe Hills" },
|
|
96
|
+
{ id: 2, origin: "Ethiopia", roast: "medium", kg: 8, farm: "Sidamo Ridge" },
|
|
97
|
+
{ id: 3, origin: "Colombia", roast: "medium", kg: 15, farm: "Huila Valley" },
|
|
98
|
+
{ id: 4, origin: "Colombia", roast: "dark", kg: 6, farm: "Cauca Peak" },
|
|
99
|
+
{ id: 5, origin: "Brazil", roast: "dark", kg: 22, farm: "Minas Gerais" },
|
|
100
|
+
{ id: 6, origin: "Brazil", roast: "medium", kg: 10, farm: "Cerrado" },
|
|
101
|
+
{ id: 7, origin: "Guatemala", roast: "light", kg: 9, farm: "Antigua" },
|
|
102
|
+
{ id: 8, origin: "Guatemala", roast: "dark", kg: 5, farm: "Huehuetenango" },
|
|
103
|
+
{ id: 9, origin: "Ethiopia", roast: "light", kg: 4, farm: "Guji Forest" },
|
|
104
|
+
];
|
|
105
|
+
|
|
106
|
+
export function filterCoffeeBags(
|
|
107
|
+
bags: CoffeeBag[],
|
|
108
|
+
roast: string | null | undefined,
|
|
109
|
+
): CoffeeBag[] {
|
|
110
|
+
const r = roast?.trim().toLowerCase();
|
|
111
|
+
if (!r || r === "all") return bags;
|
|
112
|
+
return bags.filter((b) => b.roast === r);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/** Lignes de commande (table) — total / moyenne par ligne. */
|
|
116
|
+
export type MarketOrderLine = {
|
|
117
|
+
id: number;
|
|
118
|
+
name: string;
|
|
119
|
+
qty: number;
|
|
120
|
+
unitPrice: number;
|
|
121
|
+
category: string;
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
export const DOCS_MARKET_ORDER_LINES: MarketOrderLine[] = [
|
|
125
|
+
{ id: 1, name: "Heirloom tomatoes", qty: 4, unitPrice: 3.5, category: "veg" },
|
|
126
|
+
{ id: 2, name: "Sourdough loaf", qty: 2, unitPrice: 6.0, category: "bakery" },
|
|
127
|
+
{ id: 3, name: "Goat cheese", qty: 1, unitPrice: 8.5, category: "dairy" },
|
|
128
|
+
{ id: 4, name: "Honey jar", qty: 3, unitPrice: 5.2, category: "pantry" },
|
|
129
|
+
{ id: 5, name: "Sunflowers", qty: 5, unitPrice: 2.0, category: "flowers" },
|
|
130
|
+
{ id: 6, name: "Free-range eggs", qty: 2, unitPrice: 4.8, category: "dairy" },
|
|
131
|
+
];
|
|
@@ -8,6 +8,12 @@ import {
|
|
|
8
8
|
type ReqresUserResponse,
|
|
9
9
|
type ReqresUsersListResponse,
|
|
10
10
|
} from "./fixtures";
|
|
11
|
+
import {
|
|
12
|
+
DOCS_COFFEE_BAGS,
|
|
13
|
+
DOCS_MARKET_ORDER_LINES,
|
|
14
|
+
DOCS_SPACE_CAT_MISSIONS,
|
|
15
|
+
filterCoffeeBags,
|
|
16
|
+
} from "./fixtures-jsonata";
|
|
11
17
|
|
|
12
18
|
export const DOCS_MOCK_API_PREFIX = "/docs-mock-api";
|
|
13
19
|
|
|
@@ -241,6 +247,26 @@ export async function handleDocsMockApiRequest(
|
|
|
241
247
|
return json(paginateUsers(url));
|
|
242
248
|
}
|
|
243
249
|
|
|
250
|
+
if (subPath === "/api/space-cats") {
|
|
251
|
+
return json({
|
|
252
|
+
data: DOCS_SPACE_CAT_MISSIONS,
|
|
253
|
+
total: DOCS_SPACE_CAT_MISSIONS.length,
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
if (subPath === "/api/coffee-bags") {
|
|
258
|
+
const roast = url.searchParams.get("roast");
|
|
259
|
+
const data = filterCoffeeBags(DOCS_COFFEE_BAGS, roast);
|
|
260
|
+
return json({ data, total: data.length });
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
if (subPath === "/api/market-order") {
|
|
264
|
+
return json({
|
|
265
|
+
data: DOCS_MARKET_ORDER_LINES,
|
|
266
|
+
total: DOCS_MARKET_ORDER_LINES.length,
|
|
267
|
+
});
|
|
268
|
+
}
|
|
269
|
+
|
|
244
270
|
if (subPath === "/geo/communes" || subPath.startsWith("/geo/communes")) {
|
|
245
271
|
return json(geoCommunes(url), {
|
|
246
272
|
headers: { "X-Fetched-At": new Date().toISOString() },
|
|
@@ -40,6 +40,10 @@ export class DocsNavigation extends LitElement {
|
|
|
40
40
|
{ label: "If", href: "#core/components/functional/if/if.md/if" },
|
|
41
41
|
{ label: "List", href: "#core/components/functional/list/list.md/list" },
|
|
42
42
|
{ label: "Mix", href: "#core/components/functional/mix/mix.md/mix" },
|
|
43
|
+
{
|
|
44
|
+
label: "Jsonata",
|
|
45
|
+
href: "#core/components/functional/jsonata/jsonata.md/jsonata",
|
|
46
|
+
},
|
|
43
47
|
{
|
|
44
48
|
label: "Queue",
|
|
45
49
|
href: "#core/components/functional/queue/queue.md/queue",
|
|
@@ -549,6 +549,171 @@
|
|
|
549
549
|
}
|
|
550
550
|
}
|
|
551
551
|
},
|
|
552
|
+
{
|
|
553
|
+
"search": "Jsonata",
|
|
554
|
+
"files": {
|
|
555
|
+
"core/components/functional/jsonata/jsonata.md": {
|
|
556
|
+
"title": "Jsonata",
|
|
557
|
+
"hashes": {
|
|
558
|
+
"jsonata": {
|
|
559
|
+
"count": 1,
|
|
560
|
+
"title": "",
|
|
561
|
+
"type": "page"
|
|
562
|
+
}
|
|
563
|
+
}
|
|
564
|
+
}
|
|
565
|
+
}
|
|
566
|
+
},
|
|
567
|
+
{
|
|
568
|
+
"search": "sonic-jsonata adapts the derive primitive: it watches input DataProviders (and optional form variables), evaluates a JSONata expression, and publishes a read-only output DataProvider.\n",
|
|
569
|
+
"files": {
|
|
570
|
+
"core/components/functional/jsonata/jsonata.md": {
|
|
571
|
+
"title": "Jsonata",
|
|
572
|
+
"hashes": {
|
|
573
|
+
"jsonata": {
|
|
574
|
+
"count": 1,
|
|
575
|
+
"title": "",
|
|
576
|
+
"type": "paragraph"
|
|
577
|
+
}
|
|
578
|
+
}
|
|
579
|
+
}
|
|
580
|
+
}
|
|
581
|
+
},
|
|
582
|
+
{
|
|
583
|
+
"search": "Unlike sonic-mix (bidirectional composition, no compute), sonic-jsonata is unidirectional (fetch → compute → display).\n",
|
|
584
|
+
"files": {
|
|
585
|
+
"core/components/functional/jsonata/jsonata.md": {
|
|
586
|
+
"title": "Jsonata",
|
|
587
|
+
"hashes": {
|
|
588
|
+
"jsonata": {
|
|
589
|
+
"count": 1,
|
|
590
|
+
"title": "",
|
|
591
|
+
"type": "paragraph"
|
|
592
|
+
}
|
|
593
|
+
}
|
|
594
|
+
}
|
|
595
|
+
}
|
|
596
|
+
},
|
|
597
|
+
{
|
|
598
|
+
"search": "Seed sessions via mock API or imperative set, then:\n",
|
|
599
|
+
"files": {
|
|
600
|
+
"core/components/functional/jsonata/jsonata.md": {
|
|
601
|
+
"title": "Jsonata",
|
|
602
|
+
"hashes": {
|
|
603
|
+
"sdui-example-palmarès": {
|
|
604
|
+
"count": 1,
|
|
605
|
+
"title": "SDUI example (palmarès)",
|
|
606
|
+
"type": "paragraph"
|
|
607
|
+
}
|
|
608
|
+
}
|
|
609
|
+
}
|
|
610
|
+
}
|
|
611
|
+
},
|
|
612
|
+
{
|
|
613
|
+
"search": "No DOM, no network, no eval.\n",
|
|
614
|
+
"files": {
|
|
615
|
+
"core/components/functional/jsonata/jsonata.md": {
|
|
616
|
+
"title": "Jsonata",
|
|
617
|
+
"hashes": {
|
|
618
|
+
"helpers-whitelist": {
|
|
619
|
+
"count": 1,
|
|
620
|
+
"title": "Helpers (whitelist)",
|
|
621
|
+
"type": "paragraph"
|
|
622
|
+
}
|
|
623
|
+
}
|
|
624
|
+
}
|
|
625
|
+
}
|
|
626
|
+
},
|
|
627
|
+
{
|
|
628
|
+
"search": "type Session = { edito: { title: string }; stock: { internal: { revenue: number } } };\ntype Row = { titre: string; ca: number };\n",
|
|
629
|
+
"files": {
|
|
630
|
+
"core/components/functional/jsonata/jsonata.md": {
|
|
631
|
+
"title": "Jsonata",
|
|
632
|
+
"hashes": {
|
|
633
|
+
"typescript--derive--dataproviderkey": {
|
|
634
|
+
"count": 1,
|
|
635
|
+
"title": "TypeScript — `derive` + `DataProviderKey`",
|
|
636
|
+
"type": "paragraph"
|
|
637
|
+
}
|
|
638
|
+
}
|
|
639
|
+
}
|
|
640
|
+
}
|
|
641
|
+
},
|
|
642
|
+
{
|
|
643
|
+
"search": "const sessions = new DataProviderKey<Session[]>("sessions");\nconst form = new DataProviderKey<{ top: number }>("lbForm");\nconst palmares = new DataProviderKey<Row[]>("palmares");\n",
|
|
644
|
+
"files": {
|
|
645
|
+
"core/components/functional/jsonata/jsonata.md": {
|
|
646
|
+
"title": "Jsonata",
|
|
647
|
+
"hashes": {
|
|
648
|
+
"typescript--derive--dataproviderkey": {
|
|
649
|
+
"count": 1,
|
|
650
|
+
"title": "TypeScript — `derive` + `DataProviderKey`",
|
|
651
|
+
"type": "paragraph"
|
|
652
|
+
}
|
|
653
|
+
}
|
|
654
|
+
}
|
|
655
|
+
}
|
|
656
|
+
},
|
|
657
|
+
{
|
|
658
|
+
"search": "const handle = derive({\n inputs: { s: sessions },\n variables: form,\n output: palmares,\n compute: async (i, v) => {\n const expr = compileJsonata(\n '$s{edito.title: $sum(stock.internal.revenue)} ~> $each(function($v,$k){{"titre":$k,"ca":$v}}) ^(>ca)[[0..$number($top)-1]]',\n );\n return expr.evaluate({}, { ...i, ...v }) as Row[];\n },\n});\n// handle.stop() on disconnect\n \n\n",
|
|
659
|
+
"files": {
|
|
660
|
+
"core/components/functional/jsonata/jsonata.md": {
|
|
661
|
+
"title": "Jsonata",
|
|
662
|
+
"hashes": {
|
|
663
|
+
"typescript--derive--dataproviderkey": {
|
|
664
|
+
"count": 1,
|
|
665
|
+
"title": "TypeScript — `derive` + `DataProviderKey`",
|
|
666
|
+
"type": "paragraph"
|
|
667
|
+
}
|
|
668
|
+
}
|
|
669
|
+
}
|
|
670
|
+
}
|
|
671
|
+
},
|
|
672
|
+
{
|
|
673
|
+
"search": "Compile-safe: pass DataProviderKey&lt;T&gt; — not bare untyped strings — for TS callers.\n",
|
|
674
|
+
"files": {
|
|
675
|
+
"core/components/functional/jsonata/jsonata.md": {
|
|
676
|
+
"title": "Jsonata",
|
|
677
|
+
"hashes": {
|
|
678
|
+
"typescript--derive--dataproviderkey": {
|
|
679
|
+
"count": 1,
|
|
680
|
+
"title": "TypeScript — `derive` + `DataProviderKey`",
|
|
681
|
+
"type": "paragraph"
|
|
682
|
+
}
|
|
683
|
+
}
|
|
684
|
+
}
|
|
685
|
+
}
|
|
686
|
+
},
|
|
687
|
+
{
|
|
688
|
+
"search": "Status is published on {outputRoot}/_state_ as { status, error? } with status ∈ loading | ready | error | empty. Wire sonic-states with dataProvider="palmares/_state_" and data-path="status".\n",
|
|
689
|
+
"files": {
|
|
690
|
+
"core/components/functional/jsonata/jsonata.md": {
|
|
691
|
+
"title": "Jsonata",
|
|
692
|
+
"hashes": {
|
|
693
|
+
"states": {
|
|
694
|
+
"count": 1,
|
|
695
|
+
"title": "States",
|
|
696
|
+
"type": "paragraph"
|
|
697
|
+
}
|
|
698
|
+
}
|
|
699
|
+
}
|
|
700
|
+
}
|
|
701
|
+
},
|
|
702
|
+
{
|
|
703
|
+
"search": "See the live demo embedded below (fixtures demo14).\n",
|
|
704
|
+
"files": {
|
|
705
|
+
"core/components/functional/jsonata/jsonata.md": {
|
|
706
|
+
"title": "Jsonata",
|
|
707
|
+
"hashes": {
|
|
708
|
+
"demo-widget": {
|
|
709
|
+
"count": 1,
|
|
710
|
+
"title": "Demo widget",
|
|
711
|
+
"type": "paragraph"
|
|
712
|
+
}
|
|
713
|
+
}
|
|
714
|
+
}
|
|
715
|
+
}
|
|
716
|
+
},
|
|
552
717
|
{
|
|
553
718
|
"search": "List",
|
|
554
719
|
"files": {
|
|
@@ -3304,6 +3469,21 @@
|
|
|
3304
3469
|
}
|
|
3305
3470
|
}
|
|
3306
3471
|
},
|
|
3472
|
+
{
|
|
3473
|
+
"search": "Use when you need client-side aggregations (groupby, top N, chart shapes) from existing DataProviders — without inline app JS in SDUI.\n",
|
|
3474
|
+
"files": {
|
|
3475
|
+
"docs/_core-concept/dataFlow.md": {
|
|
3476
|
+
"title": "Data flow",
|
|
3477
|
+
"hashes": {
|
|
3478
|
+
"derived-data-derive--sonic-jsonata": {
|
|
3479
|
+
"count": 1,
|
|
3480
|
+
"title": "Derived data (`derive` / `sonic-jsonata`)",
|
|
3481
|
+
"type": "paragraph"
|
|
3482
|
+
}
|
|
3483
|
+
}
|
|
3484
|
+
}
|
|
3485
|
+
}
|
|
3486
|
+
},
|
|
3307
3487
|
{
|
|
3308
3488
|
"search": "lit + tailwind + vite",
|
|
3309
3489
|
"files": {
|
package/src/tsconfig.json
CHANGED
|
@@ -54,6 +54,12 @@
|
|
|
54
54
|
"./functional/if": [
|
|
55
55
|
"/sites/concorde/src/core/components/functional/if/if.ts"
|
|
56
56
|
],
|
|
57
|
+
"./jsonata": [
|
|
58
|
+
"/sites/concorde/src/core/components/functional/jsonata/jsonata.ts"
|
|
59
|
+
],
|
|
60
|
+
"./functional/jsonata": [
|
|
61
|
+
"/sites/concorde/src/core/components/functional/jsonata/jsonata.ts"
|
|
62
|
+
],
|
|
57
63
|
"./list": [
|
|
58
64
|
"/sites/concorde/src/core/components/functional/list/list.ts"
|
|
59
65
|
],
|
|
@@ -714,6 +720,9 @@
|
|
|
714
720
|
"./decorators/subscriber/common": [
|
|
715
721
|
"/sites/concorde/src/core/decorators/subscriber/common.ts"
|
|
716
722
|
],
|
|
723
|
+
"./decorators/subscriber/derive": [
|
|
724
|
+
"/sites/concorde/src/core/decorators/subscriber/derive.ts"
|
|
725
|
+
],
|
|
717
726
|
"./decorators/subscriber/dynamicPath": [
|
|
718
727
|
"/sites/concorde/src/core/decorators/subscriber/dynamicPath.ts"
|
|
719
728
|
],
|
|
@@ -804,9 +813,18 @@
|
|
|
804
813
|
"./utils/dataProviderKey": [
|
|
805
814
|
"/sites/concorde/src/core/utils/dataProviderKey.ts"
|
|
806
815
|
],
|
|
816
|
+
"./utils/derive": [
|
|
817
|
+
"/sites/concorde/src/core/utils/derive.ts"
|
|
818
|
+
],
|
|
807
819
|
"./utils/endpoint": [
|
|
808
820
|
"/sites/concorde/src/core/utils/endpoint.ts"
|
|
809
821
|
],
|
|
822
|
+
"./utils/jsonataHelpers": [
|
|
823
|
+
"/sites/concorde/src/core/utils/jsonataHelpers.ts"
|
|
824
|
+
],
|
|
825
|
+
"./utils/jsonataRuntime": [
|
|
826
|
+
"/sites/concorde/src/core/utils/jsonataRuntime.ts"
|
|
827
|
+
],
|
|
810
828
|
"./utils/route": [
|
|
811
829
|
"/sites/concorde/src/core/utils/route.ts"
|
|
812
830
|
],
|
package/src/tsconfig.tsbuildinfo
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"root":["./components.ts","./concorde-loaded.ts","./css.d.ts","./dataprovider.ts","./decorators.ts","./directives.ts","./index.ts","./mixins.ts","./utils.ts","./core/core.ts","./core/_types/endpoint.ts","./core/_types/key.ts","./core/_types/types.ts","./core/components/functional/functional.ts","./core/components/functional/date/date.ts","./core/components/functional/example/example.ts","./core/components/functional/fetch/fetch.ts","./core/components/functional/if/if.test.ts","./core/components/functional/if/if.ts","./core/components/functional/list/list.demo.ts","./core/components/functional/list/list.spec.ts","./core/components/functional/list/list.ts","./core/components/functional/mix/mix.ts","./core/components/functional/queue/queue.demo.ts","./core/components/functional/queue/queue.ts","./core/components/functional/router/redirect.ts","./core/components/functional/router/router.demo.ts","./core/components/functional/router/router.spec.ts","./core/components/functional/router/router.ts","./core/components/functional/sdui/SDUIDescriptorTransformer.ts","./core/components/functional/sdui/sdui-utils.ts","./core/components/functional/sdui/sdui.ts","./core/components/functional/sdui/types.ts","./core/components/functional/sonic-scope/sonic-scope.ts","./core/components/functional/states/states.demo.ts","./core/components/functional/states/states.spec.ts","./core/components/functional/states/states.ts","./core/components/functional/submit/submit.ts","./core/components/functional/subscriber/subscriber.ts","./core/components/functional/translation/translation.ts","./core/components/functional/value/value.ts","./core/components/ui/ui.ts","./core/components/ui/_css/scroll.ts","./core/components/ui/_css/shadow.ts","./core/components/ui/_css/size.ts","./core/components/ui/_css/type.ts","./core/components/ui/alert/alert.ts","./core/components/ui/alert-messages/alert-messages.ts","./core/components/ui/badge/badge.ts","./core/components/ui/button/button.ts","./core/components/ui/captcha/altchaStyles.ts","./core/components/ui/captcha/captcha.ts","./core/components/ui/card/card-footer.ts","./core/components/ui/card/card-header-descripton.ts","./core/components/ui/card/card-header.ts","./core/components/ui/card/card-main.ts","./core/components/ui/card/card.ts","./core/components/ui/divider/divider.ts","./core/components/ui/form/checkbox/checkbox.ts","./core/components/ui/form/css/form-control.ts","./core/components/ui/form/fieldset/fieldset.ts","./core/components/ui/form/fieldset/legend-description.ts","./core/components/ui/form/fieldset/legend.ts","./core/components/ui/form/form-actions/form-actions.ts","./core/components/ui/form/form-layout/form-layout.ts","./core/components/ui/form/input/input.ts","./core/components/ui/form/input/password-helper.ts","./core/components/ui/form/input/same-value-helper.ts","./core/components/ui/form/input-autocomplete/input-autocomplete.ts","./core/components/ui/form/radio/radio.ts","./core/components/ui/form/select/select.ts","./core/components/ui/form/switch/switch.ts","./core/components/ui/form/textarea/textarea.ts","./core/components/ui/group/group.ts","./core/components/ui/icon/icon.stories.ts","./core/components/ui/icon/icon.ts","./core/components/ui/icon/icons.ts","./core/components/ui/image/image.ts","./core/components/ui/link/link.ts","./core/components/ui/loader/loader.stories.ts","./core/components/ui/loader/loader.ts","./core/components/ui/loader/styles/fixed.ts","./core/components/ui/loader/styles/inline.ts","./core/components/ui/menu/menu-item.ts","./core/components/ui/menu/menu.ts","./core/components/ui/modal/modal-actions.ts","./core/components/ui/modal/modal-close.ts","./core/components/ui/modal/modal-content.ts","./core/components/ui/modal/modal-subtitle.ts","./core/components/ui/modal/modal-title.ts","./core/components/ui/modal/modal-utils.ts","./core/components/ui/modal/modal.ts","./core/components/ui/pop/pop.ts","./core/components/ui/progress/progress.ts","./core/components/ui/table/table-caption.ts","./core/components/ui/table/table-tbody.ts","./core/components/ui/table/table-td.ts","./core/components/ui/table/table-tfoot.ts","./core/components/ui/table/table-th.ts","./core/components/ui/table/table-thead.ts","./core/components/ui/table/table-tr.ts","./core/components/ui/table/table.ts","./core/components/ui/theme/theme.ts","./core/components/ui/theme/theme-collection/core-variables.ts","./core/components/ui/theme/theme-collection/dark.ts","./core/components/ui/theme/theme-collection/light.ts","./core/components/ui/toast/message-subscriber.ts","./core/components/ui/toast/toast-item.ts","./core/components/ui/toast/toast.ts","./core/components/ui/toast/types.ts","./core/components/ui/tooltip/tooltip.ts","./core/decorators/Subscriber.ts","./core/decorators/api.post.spec.ts","./core/decorators/api.spec.ts","./core/decorators/api.ts","./core/decorators/lifecycle.ts","./core/decorators/subscriber/ancestorAttribute.spec.ts","./core/decorators/subscriber/ancestorAttribute.ts","./core/decorators/subscriber/autoFill.ts","./core/decorators/subscriber/autoSubscribe.ts","./core/decorators/subscriber/bind.ts","./core/decorators/subscriber/common.ts","./core/decorators/subscriber/dynamicPath.spec.ts","./core/decorators/subscriber/dynamicPath.ts","./core/decorators/subscriber/dynamicPropertyWatch.spec.ts","./core/decorators/subscriber/dynamicPropertyWatch.ts","./core/decorators/subscriber/handle.disambig.spec.ts","./core/decorators/subscriber/handle.skip.spec.ts","./core/decorators/subscriber/handle.ts","./core/decorators/subscriber/onAssign.ts","./core/decorators/subscriber/publish.spec.ts","./core/decorators/subscriber/publish.ts","./core/decorators/subscriber/publisherPath.ts","./core/decorators/subscriber/subscribe.spec.ts","./core/decorators/subscriber/subscribe.ts","./core/directives/DataProvider.sub.spec.ts","./core/directives/DataProvider.ts","./core/directives/Wording.ts","./core/mixins/Fetcher.ts","./core/mixins/FormCheckable.ts","./core/mixins/FormElement.ts","./core/mixins/FormInput.ts","./core/mixins/Subscriber.ts","./core/mixins/TemplatesContainer.ts","./core/mixins/mixins.ts","./core/utils/AncestorAttributeObserver.ts","./core/utils/Arrays.ts","./core/utils/DataBindObserver.ts","./core/utils/Electron.ts","./core/utils/Format.ts","./core/utils/HTML.ts","./core/utils/LocationHandler.ts","./core/utils/Objects.ts","./core/utils/PublisherProxy.ts","./core/utils/SafariScrollGuard.ts","./core/utils/Utils.ts","./core/utils/aesCrypto.ts","./core/utils/api.spec.ts","./core/utils/api.ts","./core/utils/dataProviderKey.spec.ts","./core/utils/dataProviderKey.ts","./core/utils/dpOptions.spec.ts","./core/utils/endpoint.spec.ts","./core/utils/endpoint.ts","./core/utils/publisherPathKey.spec.ts","./core/utils/route.spec.ts","./core/utils/route.ts","./core/utils/url-pattern.ts","./test-utils/TestUtils.ts"],"version":"5.9.2"}
|
|
1
|
+
{"root":["./components.ts","./concorde-loaded.ts","./css.d.ts","./dataprovider.ts","./decorators.ts","./directives.ts","./index.ts","./mixins.ts","./utils.ts","./core/core.ts","./core/_types/endpoint.ts","./core/_types/key.ts","./core/_types/types.ts","./core/components/functional/functional.ts","./core/components/functional/date/date.ts","./core/components/functional/example/example.ts","./core/components/functional/fetch/fetch.ts","./core/components/functional/if/if.test.ts","./core/components/functional/if/if.ts","./core/components/functional/jsonata/jsonata.spec.ts","./core/components/functional/jsonata/jsonata.ts","./core/components/functional/list/list.demo.ts","./core/components/functional/list/list.spec.ts","./core/components/functional/list/list.ts","./core/components/functional/mix/mix.ts","./core/components/functional/queue/queue.demo.ts","./core/components/functional/queue/queue.ts","./core/components/functional/router/redirect.ts","./core/components/functional/router/router.demo.ts","./core/components/functional/router/router.spec.ts","./core/components/functional/router/router.ts","./core/components/functional/sdui/SDUIDescriptorTransformer.ts","./core/components/functional/sdui/sdui-utils.ts","./core/components/functional/sdui/sdui.ts","./core/components/functional/sdui/types.ts","./core/components/functional/sonic-scope/sonic-scope.ts","./core/components/functional/states/states.demo.ts","./core/components/functional/states/states.spec.ts","./core/components/functional/states/states.ts","./core/components/functional/submit/submit.ts","./core/components/functional/subscriber/subscriber.ts","./core/components/functional/translation/translation.ts","./core/components/functional/value/value.ts","./core/components/ui/ui.ts","./core/components/ui/_css/scroll.ts","./core/components/ui/_css/shadow.ts","./core/components/ui/_css/size.ts","./core/components/ui/_css/type.ts","./core/components/ui/alert/alert.ts","./core/components/ui/alert-messages/alert-messages.ts","./core/components/ui/badge/badge.ts","./core/components/ui/button/button.ts","./core/components/ui/captcha/altchaStyles.ts","./core/components/ui/captcha/captcha.ts","./core/components/ui/card/card-footer.ts","./core/components/ui/card/card-header-descripton.ts","./core/components/ui/card/card-header.ts","./core/components/ui/card/card-main.ts","./core/components/ui/card/card.ts","./core/components/ui/divider/divider.ts","./core/components/ui/form/checkbox/checkbox.ts","./core/components/ui/form/css/form-control.ts","./core/components/ui/form/fieldset/fieldset.ts","./core/components/ui/form/fieldset/legend-description.ts","./core/components/ui/form/fieldset/legend.ts","./core/components/ui/form/form-actions/form-actions.ts","./core/components/ui/form/form-layout/form-layout.ts","./core/components/ui/form/input/input.ts","./core/components/ui/form/input/password-helper.ts","./core/components/ui/form/input/same-value-helper.ts","./core/components/ui/form/input-autocomplete/input-autocomplete.ts","./core/components/ui/form/radio/radio.ts","./core/components/ui/form/select/select.ts","./core/components/ui/form/switch/switch.ts","./core/components/ui/form/textarea/textarea.ts","./core/components/ui/group/group.ts","./core/components/ui/icon/icon.stories.ts","./core/components/ui/icon/icon.ts","./core/components/ui/icon/icons.ts","./core/components/ui/image/image.ts","./core/components/ui/link/link.ts","./core/components/ui/loader/loader.stories.ts","./core/components/ui/loader/loader.ts","./core/components/ui/loader/styles/fixed.ts","./core/components/ui/loader/styles/inline.ts","./core/components/ui/menu/menu-item.ts","./core/components/ui/menu/menu.ts","./core/components/ui/modal/modal-actions.ts","./core/components/ui/modal/modal-close.ts","./core/components/ui/modal/modal-content.ts","./core/components/ui/modal/modal-subtitle.ts","./core/components/ui/modal/modal-title.ts","./core/components/ui/modal/modal-utils.ts","./core/components/ui/modal/modal.ts","./core/components/ui/pop/pop.ts","./core/components/ui/progress/progress.ts","./core/components/ui/table/table-caption.ts","./core/components/ui/table/table-tbody.ts","./core/components/ui/table/table-td.ts","./core/components/ui/table/table-tfoot.ts","./core/components/ui/table/table-th.ts","./core/components/ui/table/table-thead.ts","./core/components/ui/table/table-tr.ts","./core/components/ui/table/table.ts","./core/components/ui/theme/theme.ts","./core/components/ui/theme/theme-collection/core-variables.ts","./core/components/ui/theme/theme-collection/dark.ts","./core/components/ui/theme/theme-collection/light.ts","./core/components/ui/toast/message-subscriber.ts","./core/components/ui/toast/toast-item.ts","./core/components/ui/toast/toast.ts","./core/components/ui/toast/types.ts","./core/components/ui/tooltip/tooltip.ts","./core/decorators/Subscriber.ts","./core/decorators/api.post.spec.ts","./core/decorators/api.spec.ts","./core/decorators/api.ts","./core/decorators/lifecycle.ts","./core/decorators/subscriber/ancestorAttribute.spec.ts","./core/decorators/subscriber/ancestorAttribute.ts","./core/decorators/subscriber/autoFill.ts","./core/decorators/subscriber/autoSubscribe.ts","./core/decorators/subscriber/bind.ts","./core/decorators/subscriber/common.ts","./core/decorators/subscriber/derive.ts","./core/decorators/subscriber/dynamicPath.spec.ts","./core/decorators/subscriber/dynamicPath.ts","./core/decorators/subscriber/dynamicPropertyWatch.spec.ts","./core/decorators/subscriber/dynamicPropertyWatch.ts","./core/decorators/subscriber/handle.disambig.spec.ts","./core/decorators/subscriber/handle.skip.spec.ts","./core/decorators/subscriber/handle.ts","./core/decorators/subscriber/onAssign.ts","./core/decorators/subscriber/publish.spec.ts","./core/decorators/subscriber/publish.ts","./core/decorators/subscriber/publisherPath.ts","./core/decorators/subscriber/subscribe.spec.ts","./core/decorators/subscriber/subscribe.ts","./core/directives/DataProvider.sub.spec.ts","./core/directives/DataProvider.ts","./core/directives/Wording.ts","./core/mixins/Fetcher.ts","./core/mixins/FormCheckable.ts","./core/mixins/FormElement.ts","./core/mixins/FormInput.ts","./core/mixins/Subscriber.ts","./core/mixins/TemplatesContainer.ts","./core/mixins/mixins.ts","./core/utils/AncestorAttributeObserver.ts","./core/utils/Arrays.ts","./core/utils/DataBindObserver.ts","./core/utils/Electron.ts","./core/utils/Format.ts","./core/utils/HTML.ts","./core/utils/LocationHandler.ts","./core/utils/Objects.ts","./core/utils/PublisherProxy.ts","./core/utils/SafariScrollGuard.ts","./core/utils/Utils.ts","./core/utils/aesCrypto.ts","./core/utils/api.spec.ts","./core/utils/api.ts","./core/utils/dataProviderKey.spec.ts","./core/utils/dataProviderKey.ts","./core/utils/derive.spec.ts","./core/utils/derive.ts","./core/utils/dpOptions.spec.ts","./core/utils/endpoint.spec.ts","./core/utils/endpoint.ts","./core/utils/jsonataHelpers.ts","./core/utils/jsonataRuntime.ts","./core/utils/publisherPathKey.spec.ts","./core/utils/route.spec.ts","./core/utils/route.ts","./core/utils/url-pattern.ts","./test-utils/TestUtils.ts"],"version":"5.9.2"}
|
package/src/utils.ts
CHANGED
|
@@ -24,6 +24,19 @@ export const URLPattern = myURLPattern.default;
|
|
|
24
24
|
import { Endpoint } from "./core/utils/endpoint";
|
|
25
25
|
import { DataProviderKey } from "./core/utils/dataProviderKey";
|
|
26
26
|
export { Endpoint, DataProviderKey };
|
|
27
|
+
export {
|
|
28
|
+
derive,
|
|
29
|
+
deriveStateKey,
|
|
30
|
+
type DeriveOptions,
|
|
31
|
+
type DeriveHandle,
|
|
32
|
+
type DeriveState,
|
|
33
|
+
type DeriveStatus,
|
|
34
|
+
} from "./core/utils/derive";
|
|
35
|
+
export {
|
|
36
|
+
compileJsonata,
|
|
37
|
+
validateOutputSchema,
|
|
38
|
+
} from "./core/utils/jsonataRuntime";
|
|
39
|
+
|
|
27
40
|
export {
|
|
28
41
|
installSafariScrollGuard,
|
|
29
42
|
watchScrollRoot,
|