@elaraai/e3-ui 1.0.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.
Files changed (53) hide show
  1. package/CLA.md +26 -0
  2. package/CONTRIBUTING.md +28 -0
  3. package/LICENSE.md +31 -0
  4. package/README.md +149 -0
  5. package/dist/src/buttons.d.ts +2 -0
  6. package/dist/src/buttons.d.ts.map +1 -0
  7. package/dist/src/buttons.js +2 -0
  8. package/dist/src/buttons.js.map +1 -0
  9. package/dist/src/data.d.ts +241 -0
  10. package/dist/src/data.d.ts.map +1 -0
  11. package/dist/src/data.js +195 -0
  12. package/dist/src/data.js.map +1 -0
  13. package/dist/src/derive.d.ts +33 -0
  14. package/dist/src/derive.d.ts.map +1 -0
  15. package/dist/src/derive.js +64 -0
  16. package/dist/src/derive.js.map +1 -0
  17. package/dist/src/diff.d.ts +335 -0
  18. package/dist/src/diff.d.ts.map +1 -0
  19. package/dist/src/diff.js +197 -0
  20. package/dist/src/diff.js.map +1 -0
  21. package/dist/src/index.d.ts +25 -0
  22. package/dist/src/index.d.ts.map +1 -0
  23. package/dist/src/index.js +25 -0
  24. package/dist/src/index.js.map +1 -0
  25. package/dist/src/manifest.d.ts +27 -0
  26. package/dist/src/manifest.d.ts.map +1 -0
  27. package/dist/src/manifest.js +29 -0
  28. package/dist/src/manifest.js.map +1 -0
  29. package/dist/src/ontology.d.ts +517 -0
  30. package/dist/src/ontology.d.ts.map +1 -0
  31. package/dist/src/ontology.js +311 -0
  32. package/dist/src/ontology.js.map +1 -0
  33. package/dist/src/ui.d.ts +57 -0
  34. package/dist/src/ui.d.ts.map +1 -0
  35. package/dist/src/ui.js +72 -0
  36. package/dist/src/ui.js.map +1 -0
  37. package/dist/src/utils.d.ts +21 -0
  38. package/dist/src/utils.d.ts.map +1 -0
  39. package/dist/src/utils.js +24 -0
  40. package/dist/src/utils.js.map +1 -0
  41. package/dist/test/data.examples.d.ts +20 -0
  42. package/dist/test/data.examples.d.ts.map +1 -0
  43. package/dist/test/data.examples.js +156 -0
  44. package/dist/test/data.examples.js.map +1 -0
  45. package/dist/test/diff.examples.d.ts +138 -0
  46. package/dist/test/diff.examples.d.ts.map +1 -0
  47. package/dist/test/diff.examples.js +964 -0
  48. package/dist/test/diff.examples.js.map +1 -0
  49. package/dist/test/ontology.examples.d.ts +412 -0
  50. package/dist/test/ontology.examples.d.ts.map +1 -0
  51. package/dist/test/ontology.examples.js +298 -0
  52. package/dist/test/ontology.examples.js.map +1 -0
  53. package/package.json +80 -0
@@ -0,0 +1,298 @@
1
+ /**
2
+ * Copyright (c) 2025 Elara AI Pty Ltd
3
+ * Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
4
+ */
5
+ /**
6
+ * Ontology component examples — each scene binds an `OntologyType`-typed
7
+ * `e3.input` to the Ontology editor, with the input's default value spelled
8
+ * out fully inline (no builder helpers — every `variant()` / `some()` /
9
+ * `none` call lives at the construction site).
10
+ *
11
+ * Pattern:
12
+ * 1. Declare `e3.input(name, OntologyType, default)` with `default` fully
13
+ * inline (no shared constants, no `node()` / `link()` wrappers).
14
+ * 2. Inside `Reactive.Root`, bind via `Data.bind([OntologyType], path)`.
15
+ * 3. Pass `view.binding` to `Ontology.Root(...)`.
16
+ * 4. (Optional) Stack a `Diff.Root({ bindings: [view.binding] })` next
17
+ * to it to surface the pending node/link patch.
18
+ */
19
+ import { East, none, some, variant, example } from '@elaraai/east';
20
+ import { Card, Stack, Text, Reactive, UIComponentType } from '@elaraai/east-ui';
21
+ import { Data, Diff, Ontology, OntologyType } from '@elaraai/e3-ui';
22
+ import * as e3 from '@elaraai/e3';
23
+ // ============================================================================
24
+ // Inputs — one per scene; exported so the showcase can forward as extras.
25
+ // ============================================================================
26
+ export const simpleOntologyInput = e3.input('simple_ontology', OntologyType, {
27
+ nodes: [],
28
+ links: [],
29
+ metadata: none,
30
+ });
31
+ export const supplyChainOntologyInput = e3.input('supply_chain_ontology', OntologyType, {
32
+ nodes: [
33
+ { id: 'obj-1', name: 'Reduce stockout rate', description: some('Strategic target for FY26.'), type: variant('objective', null) },
34
+ { id: 'kpi-1', name: 'Fill rate (weekly)', description: some('Orders fulfilled / total.'), type: variant('kpi', null) },
35
+ { id: 'kpi-2', name: 'Inventory turnover', description: none, type: variant('kpi', null) },
36
+ { id: 'proc-1', name: 'Receive raw goods', description: some('Dock-to-stock receipt.'), type: variant('process', null) },
37
+ { id: 'proc-2', name: 'Quality inspection', description: none, type: variant('process', null) },
38
+ { id: 'proc-3', name: 'Pick & pack', description: none, type: variant('process', null) },
39
+ { id: 'proc-4', name: 'Dispatch', description: none, type: variant('process', null) },
40
+ { id: 'res-1', name: 'Pallet inventory', description: some('On-hand pallets at DC-West.'), type: variant('resource', null) },
41
+ { id: 'res-2', name: 'Picker pool', description: none, type: variant('resource', null) },
42
+ { id: 'data-1', name: 'WMS order stream', description: none, type: variant('data', null) },
43
+ { id: 'data-2', name: 'Carrier API', description: some('Shipment status webhook.'), type: variant('data', null) },
44
+ { id: 'pol-1', name: 'FEFO picking policy', description: some('First-expiring-first-out.'), type: variant('policy', null) },
45
+ ],
46
+ links: [
47
+ { id: 'l-1', source: 'kpi-1', target: 'obj-1', type: variant('drives', null) },
48
+ { id: 'l-2', source: 'kpi-2', target: 'obj-1', type: variant('drives', null) },
49
+ { id: 'l-3', source: 'proc-1', target: 'res-1', type: variant('produces', null) },
50
+ { id: 'l-4', source: 'proc-2', target: 'res-1', type: variant('used_by', null) },
51
+ { id: 'l-5', source: 'proc-3', target: 'res-1', type: variant('uses', null) },
52
+ { id: 'l-6', source: 'proc-3', target: 'res-2', type: variant('uses', null) },
53
+ { id: 'l-7', source: 'proc-4', target: 'data-2', type: variant('inserts_data_into', null) },
54
+ { id: 'l-8', source: 'data-1', target: 'proc-3', type: variant('informs', null) },
55
+ { id: 'l-9', source: 'data-2', target: 'kpi-1', type: variant('gets_data_from', null) },
56
+ { id: 'l-10', source: 'pol-1', target: 'proc-3', type: variant('constrains', null) },
57
+ { id: 'l-11', source: 'kpi-1', target: 'proc-4', type: variant('measures', null) },
58
+ { id: 'l-12', source: 'kpi-2', target: 'res-1', type: variant('measures', null) },
59
+ { id: 'l-13', source: 'proc-2', target: 'proc-3', type: variant('informs', null) },
60
+ { id: 'l-14', source: 'proc-1', target: 'proc-2', type: variant('informs', null) },
61
+ { id: 'l-15', source: 'proc-3', target: 'proc-4', type: variant('informs', null) },
62
+ ],
63
+ metadata: some({
64
+ version: '1.0.0',
65
+ created: new Date('2026-01-15T00:00:00Z'),
66
+ updated: new Date('2026-05-01T12:00:00Z'),
67
+ description: some('Supply-chain operations ontology — fulfilment leg.'),
68
+ }),
69
+ });
70
+ export const governanceOntologyInput = e3.input('governance_ontology', OntologyType, {
71
+ nodes: [
72
+ { id: 'obj-g', name: 'SOC 2 Type II readiness', description: none, type: variant('objective', null) },
73
+ { id: 'pol-acl', name: 'Access-control policy', description: some('Least privilege; quarterly.'), type: variant('policy', null) },
74
+ { id: 'pol-ret', name: 'Data retention policy', description: none, type: variant('policy', null) },
75
+ { id: 'pol-enc', name: 'Encryption-at-rest', description: none, type: variant('policy', null) },
76
+ { id: 'doc-iso', name: 'ISO 27001 controls', description: none, type: variant('document', null) },
77
+ { id: 'doc-dpa', name: 'Customer DPA template', description: none, type: variant('document', null) },
78
+ { id: 'dec-q1', name: 'Q1 audit scope review', description: some('Quarterly board-level review.'), type: variant('decision', null) },
79
+ { id: 'proc-rev', name: 'Access review', description: none, type: variant('process', null) },
80
+ { id: 'proc-log', name: 'Audit-log monitoring', description: none, type: variant('process', null) },
81
+ { id: 'kpi-mttr', name: 'MTTR (security tickets)', description: none, type: variant('kpi', null) },
82
+ ],
83
+ links: [
84
+ { id: 'lg-1', source: 'pol-acl', target: 'obj-g', type: variant('drives', null) },
85
+ { id: 'lg-2', source: 'pol-ret', target: 'obj-g', type: variant('drives', null) },
86
+ { id: 'lg-3', source: 'pol-enc', target: 'obj-g', type: variant('drives', null) },
87
+ { id: 'lg-4', source: 'doc-iso', target: 'pol-acl', type: variant('defines', null) },
88
+ { id: 'lg-5', source: 'doc-iso', target: 'pol-ret', type: variant('defines', null) },
89
+ { id: 'lg-6', source: 'doc-iso', target: 'pol-enc', type: variant('defines', null) },
90
+ { id: 'lg-7', source: 'dec-q1', target: 'proc-rev', type: variant('executes', null) },
91
+ { id: 'lg-8', source: 'doc-dpa', target: 'pol-ret', type: variant('references', null) },
92
+ { id: 'lg-9', source: 'pol-acl', target: 'proc-rev', type: variant('constrains', null) },
93
+ { id: 'lg-10', source: 'proc-log', target: 'kpi-mttr', type: variant('informs', null) },
94
+ { id: 'lg-11', source: 'kpi-mttr', target: 'obj-g', type: variant('drives', null) },
95
+ ],
96
+ metadata: none,
97
+ });
98
+ export const readonlyOntologyInput = e3.input('readonly_ontology', OntologyType, {
99
+ nodes: [
100
+ { id: 'r-obj', name: 'Customer NPS ≥ 60', description: some('Locked target — read-only view.'), type: variant('objective', null) },
101
+ { id: 'r-kpi', name: 'Quarterly NPS', description: none, type: variant('kpi', null) },
102
+ { id: 'r-data', name: 'Survey responses', description: none, type: variant('data', null) },
103
+ { id: 'r-proc', name: 'Compute NPS', description: none, type: variant('process', null) },
104
+ ],
105
+ links: [
106
+ { id: 'r-l1', source: 'r-kpi', target: 'r-obj', type: variant('drives', null) },
107
+ { id: 'r-l2', source: 'r-data', target: 'r-proc', type: variant('informs', null) },
108
+ { id: 'r-l3', source: 'r-proc', target: 'r-kpi', type: variant('results_in', null) },
109
+ { id: 'r-l4', source: 'r-data', target: 'r-kpi', type: variant('gets_data_from', null) },
110
+ ],
111
+ metadata: none,
112
+ });
113
+ export const compactOntologyInput = e3.input('compact_ontology', OntologyType, {
114
+ nodes: [
115
+ { id: 'c-pr1', name: 'Source data', description: none, type: variant('process', null) },
116
+ { id: 'c-pr2', name: 'Transform', description: none, type: variant('process', null) },
117
+ { id: 'c-pr3', name: 'Load', description: none, type: variant('process', null) },
118
+ { id: 'c-d1', name: 'Bronze tier', description: none, type: variant('data', null) },
119
+ { id: 'c-d2', name: 'Silver tier', description: none, type: variant('data', null) },
120
+ { id: 'c-d3', name: 'Gold tier', description: none, type: variant('data', null) },
121
+ ],
122
+ links: [
123
+ { id: 'c-l1', source: 'c-pr1', target: 'c-d1', type: variant('produces', null) },
124
+ { id: 'c-l2', source: 'c-pr2', target: 'c-d1', type: variant('uses', null) },
125
+ { id: 'c-l3', source: 'c-pr2', target: 'c-d2', type: variant('produces', null) },
126
+ { id: 'c-l4', source: 'c-pr3', target: 'c-d2', type: variant('uses', null) },
127
+ { id: 'c-l5', source: 'c-pr3', target: 'c-d3', type: variant('produces', null) },
128
+ { id: 'c-l6', source: 'c-pr1', target: 'c-pr2', type: variant('informs', null) },
129
+ { id: 'c-l7', source: 'c-pr2', target: 'c-pr3', type: variant('informs', null) },
130
+ ],
131
+ metadata: none,
132
+ });
133
+ export const ontologyWithDiffInput = e3.input('with_diff_ontology', OntologyType, {
134
+ nodes: [
135
+ { id: 'wd-obj', name: 'Reduce churn', description: none, type: variant('objective', null) },
136
+ { id: 'wd-kpi', name: 'Monthly churn %', description: none, type: variant('kpi', null) },
137
+ { id: 'wd-proc', name: 'Win-back campaign', description: none, type: variant('process', null) },
138
+ { id: 'wd-data', name: 'CRM signals', description: none, type: variant('data', null) },
139
+ { id: 'wd-pol', name: 'Discount policy', description: none, type: variant('policy', null) },
140
+ ],
141
+ links: [
142
+ { id: 'wd-l1', source: 'wd-kpi', target: 'wd-obj', type: variant('drives', null) },
143
+ { id: 'wd-l2', source: 'wd-proc', target: 'wd-kpi', type: variant('results_in', null) },
144
+ { id: 'wd-l3', source: 'wd-data', target: 'wd-proc', type: variant('informs', null) },
145
+ { id: 'wd-l4', source: 'wd-pol', target: 'wd-proc', type: variant('constrains', null) },
146
+ ],
147
+ metadata: none,
148
+ });
149
+ export const dashboardLeftInput = e3.input('dashboard_left', OntologyType, {
150
+ nodes: [
151
+ { id: 'dl-obj', name: 'Ops uptime ≥ 99.9%', description: none, type: variant('objective', null) },
152
+ { id: 'dl-kpi', name: 'P99 latency', description: none, type: variant('kpi', null) },
153
+ { id: 'dl-proc', name: 'Health check', description: none, type: variant('process', null) },
154
+ ],
155
+ links: [
156
+ { id: 'dl-l1', source: 'dl-kpi', target: 'dl-obj', type: variant('drives', null) },
157
+ { id: 'dl-l2', source: 'dl-proc', target: 'dl-kpi', type: variant('measures', null) },
158
+ ],
159
+ metadata: none,
160
+ });
161
+ export const dashboardRightInput = e3.input('dashboard_right', OntologyType, {
162
+ nodes: [
163
+ { id: 'dr-obj', name: 'Audit pass', description: none, type: variant('objective', null) },
164
+ { id: 'dr-pol', name: 'Logging policy', description: none, type: variant('policy', null) },
165
+ { id: 'dr-doc', name: 'Control matrix', description: none, type: variant('document', null) },
166
+ ],
167
+ links: [
168
+ { id: 'dr-l1', source: 'dr-pol', target: 'dr-obj', type: variant('drives', null) },
169
+ { id: 'dr-l2', source: 'dr-doc', target: 'dr-pol', type: variant('defines', null) },
170
+ ],
171
+ metadata: none,
172
+ });
173
+ // ============================================================================
174
+ // 1. Minimal call site — empty default, all options at their defaults.
175
+ // ============================================================================
176
+ export const simpleOntologyEditor = example({
177
+ keywords: ['Ontology', 'bindStaged', 'editor', 'minimal'],
178
+ description: 'Empty Ontology editor — minimal call site bound to a defaulted input',
179
+ fn: East.function([], UIComponentType, (_$) => {
180
+ return Reactive.Root(East.function([], UIComponentType, $ => {
181
+ const view = $.let(Data.bind([OntologyType], simpleOntologyInput.path, { mode: 'direct' }));
182
+ return Ontology.Root({ binding: view.binding });
183
+ }));
184
+ }),
185
+ inputs: [],
186
+ });
187
+ // ============================================================================
188
+ // 2. Supply-chain ontology — 12 nodes / 15 links across process, resource,
189
+ // data, kpi, objective, policy kinds.
190
+ // ============================================================================
191
+ export const supplyChainOntology = example({
192
+ keywords: ['Ontology', 'supply-chain', 'process', 'kpi', 'objective', 'bindStaged'],
193
+ description: 'Supply-chain ontology — process/resource/data/kpi graph with policy constraints',
194
+ fn: East.function([], UIComponentType, (_$) => {
195
+ return Reactive.Root(East.function([], UIComponentType, $ => {
196
+ const view = $.let(Data.bind([OntologyType], supplyChainOntologyInput.path, { mode: 'direct' }));
197
+ return Ontology.Root({ binding: view.binding });
198
+ }));
199
+ }),
200
+ inputs: [],
201
+ });
202
+ // ============================================================================
203
+ // 3. Governance ontology — policy / decision / document heavy.
204
+ // ============================================================================
205
+ export const governanceOntology = example({
206
+ keywords: ['Ontology', 'governance', 'policy', 'decision', 'document', 'bindStaged'],
207
+ description: 'Governance ontology — policy/decision/document graph for SOC 2 readiness',
208
+ fn: East.function([], UIComponentType, (_$) => {
209
+ return Reactive.Root(East.function([], UIComponentType, $ => {
210
+ const view = $.let(Data.bind([OntologyType], governanceOntologyInput.path, { mode: 'direct' }));
211
+ return Ontology.Root({ binding: view.binding });
212
+ }));
213
+ }),
214
+ inputs: [],
215
+ });
216
+ // ============================================================================
217
+ // 4. Read-only viewer — mutation surfaces hidden.
218
+ // ============================================================================
219
+ export const readonlyOntologyViewer = example({
220
+ keywords: ['Ontology', 'readonly', 'viewer'],
221
+ description: 'Read-only Ontology viewer — drawer/context menus/handles disabled',
222
+ fn: East.function([], UIComponentType, (_$) => {
223
+ return Reactive.Root(East.function([], UIComponentType, $ => {
224
+ const view = $.let(Data.bind([OntologyType], readonlyOntologyInput.path, { mode: 'direct' }));
225
+ return Ontology.Root({ binding: view.binding, readonly: some(true) });
226
+ }));
227
+ }),
228
+ inputs: [],
229
+ });
230
+ // ============================================================================
231
+ // 5. Compact-density editor — smaller node cards, tighter row gaps.
232
+ // ============================================================================
233
+ export const compactDensityOntology = example({
234
+ keywords: ['Ontology', 'density', 'compact'],
235
+ description: 'Compact-density Ontology editor — tighter node cards and toolbar spacing',
236
+ fn: East.function([], UIComponentType, (_$) => {
237
+ return Reactive.Root(East.function([], UIComponentType, $ => {
238
+ const view = $.let(Data.bind([OntologyType], compactOntologyInput.path, { mode: 'direct' }));
239
+ return Ontology.Root({ binding: view.binding, density: 'compact' });
240
+ }));
241
+ }),
242
+ inputs: [],
243
+ });
244
+ // ============================================================================
245
+ // 6. Ontology + Diff — editor on top, Diff card below shows the in-flight
246
+ // node/link patch before commit.
247
+ // ============================================================================
248
+ export const ontologyWithDiff = example({
249
+ keywords: ['Ontology', 'Diff', 'bindStaged', 'review'],
250
+ description: 'Ontology editor + Diff panel — pending node/link patch surfaces in Diff card',
251
+ fn: East.function([], UIComponentType, (_$) => {
252
+ return Reactive.Root(East.function([], UIComponentType, $ => {
253
+ const view = $.let(Data.bind([OntologyType], ontologyWithDiffInput.path));
254
+ return Card.Root([
255
+ Stack.VStack([
256
+ Text.Root('Churn-reduction ontology', { textStyle: 'heading-md' }),
257
+ Text.Root('Edit nodes and links above; review the pending patch below before applying.'),
258
+ Ontology.Root({ binding: view.binding }),
259
+ Diff.Root({ bindings: [view.binding], hideUnchanged: some(true) }),
260
+ ], { gap: '4', align: 'stretch' }),
261
+ ]);
262
+ }));
263
+ }),
264
+ inputs: [],
265
+ });
266
+ // ============================================================================
267
+ // 7. Multi-binding dashboard — two Ontology editors side by side, independent
268
+ // staging buffers per binding.
269
+ // ============================================================================
270
+ export const multiBindingDashboard = example({
271
+ keywords: ['Ontology', 'dashboard', 'multi-binding', 'Stack'],
272
+ description: 'Two Ontology editors side by side — independent staging buffers per binding',
273
+ fn: East.function([], UIComponentType, (_$) => {
274
+ return Reactive.Root(East.function([], UIComponentType, $ => {
275
+ const left = $.let(Data.bind([OntologyType], dashboardLeftInput.path, { mode: 'direct' }));
276
+ const right = $.let(Data.bind([OntologyType], dashboardRightInput.path, { mode: 'direct' }));
277
+ return Stack.VStack([
278
+ Text.Root('Operations · Governance', { textStyle: 'heading-md' }),
279
+ Stack.HStack([
280
+ Card.Root([
281
+ Stack.VStack([
282
+ Text.Root('Operations', { textStyle: 'heading-sm' }),
283
+ Ontology.Root({ binding: left.binding }),
284
+ ], { gap: '3', align: 'stretch' }),
285
+ ]),
286
+ Card.Root([
287
+ Stack.VStack([
288
+ Text.Root('Governance', { textStyle: 'heading-sm' }),
289
+ Ontology.Root({ binding: right.binding }),
290
+ ], { gap: '3', align: 'stretch' }),
291
+ ]),
292
+ ], { gap: '4', align: 'stretch' }),
293
+ ], { gap: '4', align: 'stretch' });
294
+ }));
295
+ }),
296
+ inputs: [],
297
+ });
298
+ //# sourceMappingURL=ontology.examples.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ontology.examples.js","sourceRoot":"","sources":["../../test/ontology.examples.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,80 @@
1
+ {
2
+ "name": "@elaraai/e3-ui",
3
+ "version": "1.0.0",
4
+ "description": "e3 + UI bridge — Data bindings, ui() task, manifest",
5
+ "main": "dist/src/index.js",
6
+ "types": "dist/src/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./dist/src/index.d.ts",
10
+ "default": "./dist/src/index.js"
11
+ },
12
+ "./ui": {
13
+ "types": "./dist/src/ui.d.ts",
14
+ "default": "./dist/src/ui.js"
15
+ },
16
+ "./examples/data": {
17
+ "types": "./dist/test/data.examples.d.ts",
18
+ "default": "./dist/test/data.examples.js"
19
+ },
20
+ "./examples/diff": {
21
+ "types": "./dist/test/diff.examples.d.ts",
22
+ "default": "./dist/test/diff.examples.js"
23
+ },
24
+ "./examples/ontology": {
25
+ "types": "./dist/test/ontology.examples.d.ts",
26
+ "default": "./dist/test/ontology.examples.js"
27
+ }
28
+ },
29
+ "files": [
30
+ "dist/src",
31
+ "dist/test/**/*.examples.*",
32
+ "!dist/**/*.spec.*",
33
+ "README.md",
34
+ "CONTRIBUTING.md",
35
+ "CLA.md",
36
+ "LICENSE.md"
37
+ ],
38
+ "repository": {
39
+ "type": "git",
40
+ "url": "git+https://github.com/elaraai/east-workspace.git",
41
+ "directory": "libs/east-ui/packages/e3-ui"
42
+ },
43
+ "keywords": [
44
+ "east",
45
+ "elara",
46
+ "e3",
47
+ "ui",
48
+ "data",
49
+ "bindings"
50
+ ],
51
+ "author": "Elara AI Pty Ltd",
52
+ "license": "AGPL-3.0-or-later",
53
+ "type": "module",
54
+ "sideEffects": false,
55
+ "engines": {
56
+ "node": ">=22.0.0"
57
+ },
58
+ "dependencies": {
59
+ "@elaraai/e3-types": "1.0.0"
60
+ },
61
+ "peerDependencies": {
62
+ "@elaraai/e3": "1.0.0",
63
+ "@elaraai/east": "1.0.0",
64
+ "@elaraai/east-ui": "1.0.0"
65
+ },
66
+ "devDependencies": {
67
+ "@types/node": "^22",
68
+ "@typescript-eslint/eslint-plugin": "^8",
69
+ "@typescript-eslint/parser": "^8",
70
+ "eslint": "^9",
71
+ "typescript": "~5.9.2",
72
+ "@elaraai/east-node-std": "1.0.0",
73
+ "@elaraai/e3": "1.0.0"
74
+ },
75
+ "scripts": {
76
+ "build": "tsc",
77
+ "lint": "eslint .",
78
+ "test": "node --enable-source-maps --test-reporter=spec --test 'dist/test/**/*.spec.js'"
79
+ }
80
+ }