@happyvertical/smrt-svelte 0.57.3 → 0.57.4
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/agents/import-export.md +29 -0
- package/dist/components/cookbook/build.d.ts +4 -1
- package/dist/components/cookbook/build.d.ts.map +1 -1
- package/dist/components/cookbook/build.js +6 -1
- package/dist/components/overview/widgets/LineItemsWidget.svelte +2 -1
- package/dist/components/overview/widgets/LineItemsWidget.svelte.d.ts.map +1 -1
- package/dist/components/overview/widgets/line-totals.d.ts +7 -0
- package/dist/components/overview/widgets/line-totals.d.ts.map +1 -1
- package/dist/components/overview/widgets/line-totals.js +12 -0
- package/dist/i18n/strings.overview.js +2 -2
- package/package.json +21 -16
package/agents/import-export.md
CHANGED
|
@@ -60,3 +60,32 @@ component.
|
|
|
60
60
|
Native `.xlsx` read/write (save as CSV first), server-side dry-run endpoints,
|
|
61
61
|
upsert-by-key, and recipe/nav wiring (offering the panel on list screens waits
|
|
62
62
|
on the recipe surface contract, #3708).
|
|
63
|
+
|
|
64
|
+
## Server CSV entry (#4080)
|
|
65
|
+
|
|
66
|
+
Plain Node ingestion workers import the existing pure CSV API from
|
|
67
|
+
`@happyvertical/smrt-svelte/import-export/csv`. This subpath exposes `parseTable`,
|
|
68
|
+
`parseDelimited`, `formatDelimited`, delimiter/BOM helpers, formula helpers,
|
|
69
|
+
`CsvParseError`, and their option/result types without loading Svelte or DOM code.
|
|
70
|
+
The `./import-export` barrel remains the component-facing entry.
|
|
71
|
+
|
|
72
|
+
```ts
|
|
73
|
+
import { parseTable } from '@happyvertical/smrt-svelte/import-export/csv';
|
|
74
|
+
|
|
75
|
+
const table = parseTable(csvText, { delimiter: ',', maxRecords: 10_001 });
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
The parser does not authorize, map, or persist business records. Hosts enforce
|
|
79
|
+
input size and domain validation and retain source evidence independently.
|
|
80
|
+
|
|
81
|
+
### Export validation
|
|
82
|
+
|
|
83
|
+
| Behavior | Evidence |
|
|
84
|
+
| --- | --- |
|
|
85
|
+
| Existing parsing, escaping, bounds and spreadsheet helpers | Focused `src/components/import-export/__tests__/csv.test.ts` |
|
|
86
|
+
| Node consumers can resolve public entry without a Svelte loader | Build and pack package, extract into an isolated `node_modules/@happyvertical/smrt-svelte`, and import `./import-export/csv` in plain Node; assert BOM/quoted-newline parse and row-limit error |
|
|
87
|
+
| TypeScript consumers resolve declarations | Packed `exports` target and generated `csv.d.ts` exist; normal package export/type verifier |
|
|
88
|
+
| Component entry remains compatible | Existing component export untouched; no parser or component behavior changed |
|
|
89
|
+
|
|
90
|
+
No schema, authorization, transaction, or tenant mutation is introduced by
|
|
91
|
+
this additive export; those behavioral test dimensions are not applicable.
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import type { BuildCookbookShellOptions, CookbookShell } from './types.js';
|
|
2
2
|
/** `PurchaseOrder` -> `Purchase Order`. */
|
|
3
3
|
export declare function humanize(name: string): string;
|
|
4
|
-
/**
|
|
4
|
+
/**
|
|
5
|
+
* `Customer` -> `Customers`, `Category` -> `Categories`. A noun that is its
|
|
6
|
+
* own plural stays as it is: `Event Series` -> `Event Series`.
|
|
7
|
+
*/
|
|
5
8
|
export declare function pluralize(noun: string): string;
|
|
6
9
|
/** Derive the shell configuration from a cookbook (see {@link CookbookShell}). */
|
|
7
10
|
export declare function buildCookbookShell(options: BuildCookbookShellOptions): CookbookShell;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../src/components/cookbook/build.ts"],"names":[],"mappings":"AAqCA,OAAO,KAAK,EACV,yBAAyB,EAQzB,aAAa,EAEd,MAAM,YAAY,CAAC;AAEpB,2CAA2C;AAC3C,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../src/components/cookbook/build.ts"],"names":[],"mappings":"AAqCA,OAAO,KAAK,EACV,yBAAyB,EAQzB,aAAa,EAEd,MAAM,YAAY,CAAC;AAEpB,2CAA2C;AAC3C,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAK9C;AA0ED,kFAAkF;AAClF,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,yBAAyB,GACjC,aAAa,CAyOf"}
|
|
@@ -6,8 +6,13 @@ import { resolveCookbookTheme } from './theme.js';
|
|
|
6
6
|
export function humanize(name) {
|
|
7
7
|
return name.replace(/([a-z0-9])([A-Z])/g, '$1 $2');
|
|
8
8
|
}
|
|
9
|
-
/**
|
|
9
|
+
/**
|
|
10
|
+
* `Customer` -> `Customers`, `Category` -> `Categories`. A noun that is its
|
|
11
|
+
* own plural stays as it is: `Event Series` -> `Event Series`.
|
|
12
|
+
*/
|
|
10
13
|
export function pluralize(noun) {
|
|
14
|
+
if (/(series|species)$/i.test(noun))
|
|
15
|
+
return noun;
|
|
11
16
|
if (/[^aeiou]y$/i.test(noun))
|
|
12
17
|
return `${noun.slice(0, -1)}ies`;
|
|
13
18
|
if (/(s|x|z|ch|sh)$/i.test(noun))
|
|
@@ -17,6 +17,7 @@ import {
|
|
|
17
17
|
isStoredLineItemsTotals,
|
|
18
18
|
lineItemTotals,
|
|
19
19
|
sumLineAmounts,
|
|
20
|
+
taxComponentLabel,
|
|
20
21
|
} from './line-totals.js';
|
|
21
22
|
import RecordTable from './RecordTable.svelte';
|
|
22
23
|
import {
|
|
@@ -129,7 +130,7 @@ const LABELS = {
|
|
|
129
130
|
{/if}
|
|
130
131
|
{#each storedTaxes as tax (`${tax.taxComponentId}-${tax.name}-${tax.percent}`)}
|
|
131
132
|
<div class="smrt-line-items__total smrt-line-items__total--muted">
|
|
132
|
-
<dt>{t(M[storedTotals.lineAmountType === 'inclusive' ? 'ui.overview.line_items.tax_included' : 'ui.overview.line_items.tax_on'], {
|
|
133
|
+
<dt>{t(M[storedTotals.lineAmountType === 'inclusive' ? 'ui.overview.line_items.tax_included' : 'ui.overview.line_items.tax_on'], { label: taxComponentLabel(tax.name, tax.percent) })} {money(storedTotals.lineAmountType === 'inclusive' ? tax.tax : tax.taxable)}</dt>
|
|
133
134
|
{#if storedTotals.lineAmountType !== 'inclusive'}<dd>{money(tax.tax)}</dd>{/if}
|
|
134
135
|
</div>
|
|
135
136
|
{/each}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LineItemsWidget.svelte.d.ts","sourceRoot":"","sources":["../../../../src/components/overview/widgets/LineItemsWidget.svelte.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAY,KAAK,mBAAmB,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"LineItemsWidget.svelte.d.ts","sourceRoot":"","sources":["../../../../src/components/overview/widgets/LineItemsWidget.svelte.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAY,KAAK,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAqK/D,QAAA,MAAM,eAAe,+EAAwC,CAAC;AAC9D,KAAK,eAAe,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;AAC1D,eAAe,eAAe,CAAC"}
|
|
@@ -64,6 +64,13 @@ export declare function isStoredLineItemsTotals(value: unknown): value is Stored
|
|
|
64
64
|
* separate; this does not calculate or reallocate tax.
|
|
65
65
|
*/
|
|
66
66
|
export declare function groupStoredTaxComponents(taxes: readonly StoredTaxComponent[]): StoredTaxComponentGroup[];
|
|
67
|
+
/**
|
|
68
|
+
* A tax component's name with its rate, for a totals line: "GST 5%". A name
|
|
69
|
+
* that already states the rate ("Canada GST 5%", as smrt-commerce's example
|
|
70
|
+
* pack and cookbook activation name theirs) is used as it is, so the rate is
|
|
71
|
+
* not repeated.
|
|
72
|
+
*/
|
|
73
|
+
export declare function taxComponentLabel(name: string, percent: string): string;
|
|
67
74
|
export type LineTotalKey = 'subtotal' | 'discount' | 'tax' | 'total';
|
|
68
75
|
export interface LineTotalLine {
|
|
69
76
|
key: LineTotalKey;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"line-totals.d.ts","sourceRoot":"","sources":["../../../../src/components/overview/widgets/line-totals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,gFAAgF;AAChF,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,WAAW,GAAG,MAAM,CAAC;AAEhE,wFAAwF;AACxF,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,+DAA+D;IAC/D,cAAc,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;CACxC;AAED,0EAA0E;AAC1E,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,cAAc,CAExE;AAED,gEAAgE;AAChE,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;GAIG;AACH,MAAM,WAAW,qBAAsB,SAAQ,eAAe;IAC5D,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,cAAc,CAAC;IAC/B,aAAa,EAAE,MAAM,GAAG,UAAU,CAAC;IACnC,0EAA0E;IAC1E,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,KAAK,EAAE,SAAS,kBAAkB,EAAE,CAAC;CACtC;AAED,sEAAsE;AACtE,MAAM,WAAW,uBAAwB,SAAQ,kBAAkB;CAAG;AAEtE,4EAA4E;AAC5E,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,qBAAqB,CAYhC;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,SAAS,kBAAkB,EAAE,GACnC,uBAAuB,EAAE,CA0B3B;AAED,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,UAAU,GAAG,KAAK,GAAG,OAAO,CAAC;AAErE,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,YAAY,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,uFAAuF;IACvF,QAAQ,EAAE,OAAO,CAAC;IAClB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,iDAAiD;IACjD,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC;IAC5B,0BAA0B;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,6EAA6E;IAC7E,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,oEAAoE;IACpE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,kBAAkB,GAAG,IAAI,CAAC;CACrC;AAQD,yFAAyF;AACzF,wBAAgB,cAAc,CAAC,OAAO,EAAE,SAAS,OAAO,EAAE,GAAG,MAAM,GAAG,IAAI,CAUzE;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,eAAe,GAAG,SAAS,EACnC,OAAO,EAAE,MAAM,GAAG,IAAI,GACrB,gBAAgB,CAwElB"}
|
|
1
|
+
{"version":3,"file":"line-totals.d.ts","sourceRoot":"","sources":["../../../../src/components/overview/widgets/line-totals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,gFAAgF;AAChF,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,WAAW,GAAG,MAAM,CAAC;AAEhE,wFAAwF;AACxF,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,+DAA+D;IAC/D,cAAc,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;CACxC;AAED,0EAA0E;AAC1E,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,cAAc,CAExE;AAED,gEAAgE;AAChE,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;GAIG;AACH,MAAM,WAAW,qBAAsB,SAAQ,eAAe;IAC5D,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,cAAc,CAAC;IAC/B,aAAa,EAAE,MAAM,GAAG,UAAU,CAAC;IACnC,0EAA0E;IAC1E,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,KAAK,EAAE,SAAS,kBAAkB,EAAE,CAAC;CACtC;AAED,sEAAsE;AACtE,MAAM,WAAW,uBAAwB,SAAQ,kBAAkB;CAAG;AAEtE,4EAA4E;AAC5E,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,qBAAqB,CAYhC;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,SAAS,kBAAkB,EAAE,GACnC,uBAAuB,EAAE,CA0B3B;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAKvE;AAED,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,UAAU,GAAG,KAAK,GAAG,OAAO,CAAC;AAErE,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,YAAY,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,uFAAuF;IACvF,QAAQ,EAAE,OAAO,CAAC;IAClB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,iDAAiD;IACjD,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC;IAC5B,0BAA0B;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,6EAA6E;IAC7E,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,oEAAoE;IACpE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,kBAAkB,GAAG,IAAI,CAAC;CACrC;AAQD,yFAAyF;AACzF,wBAAgB,cAAc,CAAC,OAAO,EAAE,SAAS,OAAO,EAAE,GAAG,MAAM,GAAG,IAAI,CAUzE;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,eAAe,GAAG,SAAS,EACnC,OAAO,EAAE,MAAM,GAAG,IAAI,GACrB,gBAAgB,CAwElB"}
|
|
@@ -63,6 +63,18 @@ export function groupStoredTaxComponents(taxes) {
|
|
|
63
63
|
}
|
|
64
64
|
return [...groups.values()];
|
|
65
65
|
}
|
|
66
|
+
/**
|
|
67
|
+
* A tax component's name with its rate, for a totals line: "GST 5%". A name
|
|
68
|
+
* that already states the rate ("Canada GST 5%", as smrt-commerce's example
|
|
69
|
+
* pack and cookbook activation name theirs) is used as it is, so the rate is
|
|
70
|
+
* not repeated.
|
|
71
|
+
*/
|
|
72
|
+
export function taxComponentLabel(name, percent) {
|
|
73
|
+
const rate = percent.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
74
|
+
return new RegExp(`(^|[^\\d.])${rate}\\s?%`).test(name)
|
|
75
|
+
? name
|
|
76
|
+
: `${name} ${percent}%`;
|
|
77
|
+
}
|
|
66
78
|
function money(value) {
|
|
67
79
|
return typeof value === 'number' && Number.isSafeInteger(value)
|
|
68
80
|
? value
|
|
@@ -136,8 +136,8 @@ export const M = defineMessages({
|
|
|
136
136
|
'ui.overview.line_items.total': 'Total',
|
|
137
137
|
'ui.overview.line_items.subtotal_excluding_tax': 'Subtotal (excl. tax)',
|
|
138
138
|
'ui.overview.line_items.discount_included': 'Includes discounts of',
|
|
139
|
-
'ui.overview.line_items.tax_on': '{
|
|
140
|
-
'ui.overview.line_items.tax_included': 'Includes {
|
|
139
|
+
'ui.overview.line_items.tax_on': '{label} on',
|
|
140
|
+
'ui.overview.line_items.tax_included': 'Includes {label} of',
|
|
141
141
|
'ui.overview.line_items.rounded_document': 'Rounded per document',
|
|
142
142
|
'ui.overview.line_items.computed': '(from the lines)',
|
|
143
143
|
'ui.overview.line_items.mismatch': 'Lines add up to {amount}.',
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@happyvertical/smrt-svelte",
|
|
3
|
-
"version": "0.57.
|
|
3
|
+
"version": "0.57.4",
|
|
4
4
|
"smrtJsdoc": "strict",
|
|
5
5
|
"description": "Svelte 5 components for SMRT user management - auth, users, tenants, roles, permissions, groups",
|
|
6
6
|
"type": "module",
|
|
@@ -51,6 +51,11 @@
|
|
|
51
51
|
"import": "./dist/components/import-export/index.js",
|
|
52
52
|
"default": "./dist/components/import-export/index.js"
|
|
53
53
|
},
|
|
54
|
+
"./import-export/csv": {
|
|
55
|
+
"types": "./dist/components/import-export/csv.d.ts",
|
|
56
|
+
"import": "./dist/components/import-export/csv.js",
|
|
57
|
+
"default": "./dist/components/import-export/csv.js"
|
|
58
|
+
},
|
|
54
59
|
"./command-palette": {
|
|
55
60
|
"types": "./dist/components/command-palette/index.d.ts",
|
|
56
61
|
"svelte": "./dist/components/command-palette/index.js",
|
|
@@ -204,12 +209,12 @@
|
|
|
204
209
|
"access": "public"
|
|
205
210
|
},
|
|
206
211
|
"dependencies": {
|
|
207
|
-
"@happyvertical/logger": "^0.
|
|
208
|
-
"@happyvertical/smrt-languages": "0.57.
|
|
209
|
-
"@happyvertical/smrt-mcp-apps": "0.57.
|
|
210
|
-
"@happyvertical/smrt-types": "0.57.
|
|
211
|
-
"@happyvertical/smrt-ui": "0.57.
|
|
212
|
-
"@happyvertical/smrt-web": "0.57.
|
|
212
|
+
"@happyvertical/logger": "^0.105.1",
|
|
213
|
+
"@happyvertical/smrt-languages": "0.57.4",
|
|
214
|
+
"@happyvertical/smrt-mcp-apps": "0.57.4",
|
|
215
|
+
"@happyvertical/smrt-types": "0.57.4",
|
|
216
|
+
"@happyvertical/smrt-ui": "0.57.4",
|
|
217
|
+
"@happyvertical/smrt-web": "0.57.4",
|
|
213
218
|
"@tanstack/db": "^0.6.14",
|
|
214
219
|
"@tanstack/svelte-db": "^0.1.91",
|
|
215
220
|
"esm-env": "^1.2.2"
|
|
@@ -244,15 +249,15 @@
|
|
|
244
249
|
}
|
|
245
250
|
},
|
|
246
251
|
"devDependencies": {
|
|
247
|
-
"@happyvertical/smrt-agents": "0.57.
|
|
248
|
-
"@happyvertical/smrt-chat": "0.57.
|
|
249
|
-
"@happyvertical/smrt-content": "0.57.
|
|
250
|
-
"@happyvertical/smrt-core": "0.57.
|
|
251
|
-
"@happyvertical/smrt-reports": "0.57.
|
|
252
|
-
"@happyvertical/smrt-scanner": "0.57.
|
|
253
|
-
"@happyvertical/smrt-tenancy": "0.57.
|
|
254
|
-
"@happyvertical/smrt-users": "0.57.
|
|
255
|
-
"@happyvertical/speech": "^0.
|
|
252
|
+
"@happyvertical/smrt-agents": "0.57.4",
|
|
253
|
+
"@happyvertical/smrt-chat": "0.57.4",
|
|
254
|
+
"@happyvertical/smrt-content": "0.57.4",
|
|
255
|
+
"@happyvertical/smrt-core": "0.57.4",
|
|
256
|
+
"@happyvertical/smrt-reports": "0.57.4",
|
|
257
|
+
"@happyvertical/smrt-scanner": "0.57.4",
|
|
258
|
+
"@happyvertical/smrt-tenancy": "0.57.4",
|
|
259
|
+
"@happyvertical/smrt-users": "0.57.4",
|
|
260
|
+
"@happyvertical/speech": "^0.105.1",
|
|
256
261
|
"@sveltejs/package": "^2.5.8",
|
|
257
262
|
"@sveltejs/vite-plugin-svelte": "^7.3.0",
|
|
258
263
|
"@testing-library/jest-dom": "^7.0.1",
|