@wordrhyme/auto-crud 1.2.0 → 1.2.1
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/dist/index.cjs +17 -19
- package/dist/index.d.cts +17 -17
- package/dist/index.d.ts +1 -1
- package/dist/index.js +15 -18
- package/package.json +10 -6
package/dist/index.cjs
CHANGED
|
@@ -61,6 +61,8 @@ let __formily_react = require("@formily/react");
|
|
|
61
61
|
__formily_react = __toESM(__formily_react);
|
|
62
62
|
let sonner = require("sonner");
|
|
63
63
|
sonner = __toESM(sonner);
|
|
64
|
+
let __tanstack_react_query = require("@tanstack/react-query");
|
|
65
|
+
__tanstack_react_query = __toESM(__tanstack_react_query);
|
|
64
66
|
|
|
65
67
|
//#region src/lib/utils.ts
|
|
66
68
|
function cn(...inputs) {
|
|
@@ -5173,12 +5175,8 @@ function getComponentProps(type, parsed) {
|
|
|
5173
5175
|
function createFormSchema(schema, options) {
|
|
5174
5176
|
const shape = schema.shape;
|
|
5175
5177
|
const properties = {};
|
|
5176
|
-
const { overrides, exclude = [], layout = "vertical", gridColumns = 1
|
|
5178
|
+
const { overrides, exclude = [], layout = "vertical", gridColumns = 1 } = options ?? {};
|
|
5177
5179
|
const decoratorProps = { className: "space-y-2" };
|
|
5178
|
-
if (labelAlign) decoratorProps.labelAlign = labelAlign;
|
|
5179
|
-
if (labelWidth) decoratorProps.labelWidth = labelWidth;
|
|
5180
|
-
if (labelCol) decoratorProps.labelCol = labelCol;
|
|
5181
|
-
if (wrapperCol) decoratorProps.wrapperCol = wrapperCol;
|
|
5182
5180
|
for (const [key, fieldSchema] of Object.entries(shape)) {
|
|
5183
5181
|
if (exclude.includes(key)) continue;
|
|
5184
5182
|
const parsed = parseZodField(fieldSchema);
|
|
@@ -5430,16 +5428,22 @@ function AutoFormInner({ schema: zodSchema, initialValues, onSubmit, overrides,
|
|
|
5430
5428
|
const formSchema = (0, react.useMemo)(() => createEditFormSchema(zodSchema, {
|
|
5431
5429
|
overrides,
|
|
5432
5430
|
layout: "grid",
|
|
5433
|
-
gridColumns
|
|
5434
|
-
labelAlign,
|
|
5435
|
-
labelWidth
|
|
5431
|
+
gridColumns
|
|
5436
5432
|
}), [
|
|
5437
5433
|
zodSchema,
|
|
5438
5434
|
overrides,
|
|
5439
|
-
gridColumns
|
|
5440
|
-
labelAlign,
|
|
5441
|
-
labelWidth
|
|
5435
|
+
gridColumns
|
|
5442
5436
|
]);
|
|
5437
|
+
const formLayout = (0, react.useMemo)(() => {
|
|
5438
|
+
const inlineLabel = labelAlign === "left" || labelAlign === "right";
|
|
5439
|
+
return {
|
|
5440
|
+
labelPlacement: inlineLabel ? "start" : "top",
|
|
5441
|
+
itemProps: inlineLabel ? { label: {
|
|
5442
|
+
className: labelAlign === "right" ? "text-right" : void 0,
|
|
5443
|
+
style: labelWidth != null ? { width: labelWidth } : void 0
|
|
5444
|
+
} } : void 0
|
|
5445
|
+
};
|
|
5446
|
+
}, [labelAlign, labelWidth]);
|
|
5443
5447
|
const fieldComponents = (0, react.useMemo)(() => ({ fields: {
|
|
5444
5448
|
...defaultFieldComponents,
|
|
5445
5449
|
...formComponents.all()
|
|
@@ -5452,6 +5456,7 @@ function AutoFormInner({ schema: zodSchema, initialValues, onSubmit, overrides,
|
|
|
5452
5456
|
(0, react.useImperativeHandle)(ref, () => ({ submit: handleSubmit }));
|
|
5453
5457
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__pixpilot_formily_shadcn.Form, {
|
|
5454
5458
|
form,
|
|
5459
|
+
layout: formLayout,
|
|
5455
5460
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(__pixpilot_formily_shadcn.JsonSchemaField, {
|
|
5456
5461
|
schema: formSchema,
|
|
5457
5462
|
components: fieldComponents
|
|
@@ -7560,13 +7565,6 @@ function DataTableToolbarFilter({ column }) {
|
|
|
7560
7565
|
}
|
|
7561
7566
|
}
|
|
7562
7567
|
|
|
7563
|
-
//#endregion
|
|
7564
|
-
//#region ../../node_modules/.pnpm/@tanstack+query-core@5.90.20/node_modules/@tanstack/query-core/build/modern/utils.js
|
|
7565
|
-
var isServer = typeof window === "undefined" || "Deno" in globalThis;
|
|
7566
|
-
function keepPreviousData(previousData) {
|
|
7567
|
-
return previousData;
|
|
7568
|
-
}
|
|
7569
|
-
|
|
7570
7568
|
//#endregion
|
|
7571
7569
|
//#region src/hooks/use-auto-crud-resource.ts
|
|
7572
7570
|
/** 默认 toast 适配器(使用 sonner) */
|
|
@@ -7716,7 +7714,7 @@ function useAutoCrudResource({ router, schema, query: queryTransform, options =
|
|
|
7716
7714
|
queryTransform
|
|
7717
7715
|
]);
|
|
7718
7716
|
const listQuery = router.list.useQuery(queryInput, {
|
|
7719
|
-
placeholderData: keepPreviousData,
|
|
7717
|
+
placeholderData: __tanstack_react_query.keepPreviousData,
|
|
7720
7718
|
staleTime: 0
|
|
7721
7719
|
});
|
|
7722
7720
|
const tableRows = listQuery.data?.data ?? [];
|
package/dist/index.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime3 from "react/jsx-runtime";
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
import * as _tanstack_react_table0 from "@tanstack/react-table";
|
|
4
4
|
import { Column, ColumnDef, ColumnSort, Row, RowData, Table, TableOptions, TableState } from "@tanstack/react-table";
|
|
@@ -362,7 +362,7 @@ declare function AutoTableActionBar<TData>({
|
|
|
362
362
|
enableDelete,
|
|
363
363
|
extraActions,
|
|
364
364
|
actions
|
|
365
|
-
}: AutoTableActionBarProps<TData>):
|
|
365
|
+
}: AutoTableActionBarProps<TData>): react_jsx_runtime3.JSX.Element;
|
|
366
366
|
//#endregion
|
|
367
367
|
//#region src/lib/schema-bridge/types.d.ts
|
|
368
368
|
/**
|
|
@@ -530,7 +530,7 @@ declare function AutoTable<T extends z.ZodObject<z.ZodRawShape>>({
|
|
|
530
530
|
showDefaultExport,
|
|
531
531
|
onSelectedCountChange,
|
|
532
532
|
getSelectedRows
|
|
533
|
-
}: AutoTableProps<T>):
|
|
533
|
+
}: AutoTableProps<T>): react_jsx_runtime3.JSX.Element;
|
|
534
534
|
//#endregion
|
|
535
535
|
//#region src/i18n/locale.d.ts
|
|
536
536
|
/**
|
|
@@ -935,7 +935,7 @@ declare function AutoCrudTable<TSchema extends z.ZodObject<z.ZodRawShape>>({
|
|
|
935
935
|
toolbarActions,
|
|
936
936
|
locale: localeProp,
|
|
937
937
|
onCreate
|
|
938
|
-
}: AutoCrudTableProps<TSchema>):
|
|
938
|
+
}: AutoCrudTableProps<TSchema>): react_jsx_runtime3.JSX.Element;
|
|
939
939
|
//#endregion
|
|
940
940
|
//#region src/components/auto-crud/auto-form.d.ts
|
|
941
941
|
interface AutoFormProps<T extends z.ZodObject<z.ZodRawShape>> {
|
|
@@ -967,7 +967,7 @@ declare function AutoFormInner<T extends z.ZodObject<z.ZodRawShape>>({
|
|
|
967
967
|
labelAlign,
|
|
968
968
|
labelWidth,
|
|
969
969
|
showSubmitButton
|
|
970
|
-
}: AutoFormProps<T>, ref: React.Ref<AutoFormRef>):
|
|
970
|
+
}: AutoFormProps<T>, ref: React.Ref<AutoFormRef>): react_jsx_runtime3.JSX.Element;
|
|
971
971
|
declare const AutoForm: <T extends z.ZodObject<z.ZodRawShape>>(props: AutoFormProps<T> & {
|
|
972
972
|
ref?: React.Ref<AutoFormRef>;
|
|
973
973
|
}) => ReturnType<typeof AutoFormInner>;
|
|
@@ -1269,7 +1269,7 @@ declare function AutoTableSimpleFilters<TData>({
|
|
|
1269
1269
|
filters: externalFilters,
|
|
1270
1270
|
onFiltersChange,
|
|
1271
1271
|
leading
|
|
1272
|
-
}: AutoTableSimpleFiltersProps<TData>):
|
|
1272
|
+
}: AutoTableSimpleFiltersProps<TData>): react_jsx_runtime3.JSX.Element | null;
|
|
1273
1273
|
//#endregion
|
|
1274
1274
|
//#region src/components/auto-crud/form-modal.d.ts
|
|
1275
1275
|
type ModalVariant = "dialog" | "sheet";
|
|
@@ -1311,7 +1311,7 @@ declare function CrudFormModal<T extends z.ZodObject<z.ZodRawShape>>({
|
|
|
1311
1311
|
labelAlign,
|
|
1312
1312
|
labelWidth,
|
|
1313
1313
|
className
|
|
1314
|
-
}: CrudFormModalProps<T>):
|
|
1314
|
+
}: CrudFormModalProps<T>): react_jsx_runtime3.JSX.Element;
|
|
1315
1315
|
//#endregion
|
|
1316
1316
|
//#region src/components/auto-crud/import-dialog.d.ts
|
|
1317
1317
|
interface ImportDialogProps {
|
|
@@ -1333,7 +1333,7 @@ declare function ImportDialog({
|
|
|
1333
1333
|
columns,
|
|
1334
1334
|
title,
|
|
1335
1335
|
locale
|
|
1336
|
-
}: ImportDialogProps):
|
|
1336
|
+
}: ImportDialogProps): react_jsx_runtime3.JSX.Element;
|
|
1337
1337
|
//#endregion
|
|
1338
1338
|
//#region src/components/auto-crud/export-dialog.d.ts
|
|
1339
1339
|
type ExportMode = "selected" | "filtered";
|
|
@@ -1353,7 +1353,7 @@ declare function ExportDialog({
|
|
|
1353
1353
|
selectedCount,
|
|
1354
1354
|
onExport,
|
|
1355
1355
|
canExportFiltered
|
|
1356
|
-
}: ExportDialogProps):
|
|
1356
|
+
}: ExportDialogProps): react_jsx_runtime3.JSX.Element;
|
|
1357
1357
|
//#endregion
|
|
1358
1358
|
//#region src/components/data-table/data-table.d.ts
|
|
1359
1359
|
interface DataTableProps<TData> extends React$1.ComponentProps<"div"> {
|
|
@@ -1366,7 +1366,7 @@ declare function DataTable<TData>({
|
|
|
1366
1366
|
children,
|
|
1367
1367
|
className,
|
|
1368
1368
|
...props
|
|
1369
|
-
}: DataTableProps<TData>):
|
|
1369
|
+
}: DataTableProps<TData>): react_jsx_runtime3.JSX.Element;
|
|
1370
1370
|
//#endregion
|
|
1371
1371
|
//#region src/components/data-table/data-table-advanced-toolbar.d.ts
|
|
1372
1372
|
interface DataTableAdvancedToolbarProps<TData> extends React$1.ComponentProps<"div"> {
|
|
@@ -1377,7 +1377,7 @@ declare function DataTableAdvancedToolbar<TData>({
|
|
|
1377
1377
|
children,
|
|
1378
1378
|
className,
|
|
1379
1379
|
...props
|
|
1380
|
-
}: DataTableAdvancedToolbarProps<TData>):
|
|
1380
|
+
}: DataTableAdvancedToolbarProps<TData>): react_jsx_runtime3.JSX.Element;
|
|
1381
1381
|
//#endregion
|
|
1382
1382
|
//#region src/components/data-table/data-table-column-header.d.ts
|
|
1383
1383
|
interface DataTableColumnHeaderProps<TData, TValue> extends React.ComponentProps<typeof DropdownMenuTrigger> {
|
|
@@ -1389,7 +1389,7 @@ declare function DataTableColumnHeader<TData, TValue>({
|
|
|
1389
1389
|
label,
|
|
1390
1390
|
className,
|
|
1391
1391
|
...props
|
|
1392
|
-
}: DataTableColumnHeaderProps<TData, TValue>):
|
|
1392
|
+
}: DataTableColumnHeaderProps<TData, TValue>): react_jsx_runtime3.JSX.Element;
|
|
1393
1393
|
//#endregion
|
|
1394
1394
|
//#region src/components/data-table/data-table-faceted-filter.d.ts
|
|
1395
1395
|
interface DataTableFacetedFilterProps<TData, TValue> {
|
|
@@ -1403,7 +1403,7 @@ declare function DataTableFacetedFilter<TData, TValue>({
|
|
|
1403
1403
|
title,
|
|
1404
1404
|
options,
|
|
1405
1405
|
multiple
|
|
1406
|
-
}: DataTableFacetedFilterProps<TData, TValue>):
|
|
1406
|
+
}: DataTableFacetedFilterProps<TData, TValue>): react_jsx_runtime3.JSX.Element;
|
|
1407
1407
|
//#endregion
|
|
1408
1408
|
//#region src/components/data-table/data-table-pagination.d.ts
|
|
1409
1409
|
interface DataTablePaginationProps<TData> extends React.ComponentProps<"div"> {
|
|
@@ -1415,7 +1415,7 @@ declare function DataTablePagination<TData>({
|
|
|
1415
1415
|
pageSizeOptions,
|
|
1416
1416
|
className,
|
|
1417
1417
|
...props
|
|
1418
|
-
}: DataTablePaginationProps<TData>):
|
|
1418
|
+
}: DataTablePaginationProps<TData>): react_jsx_runtime3.JSX.Element;
|
|
1419
1419
|
//#endregion
|
|
1420
1420
|
//#region src/components/data-table/data-table-toolbar.d.ts
|
|
1421
1421
|
interface DataTableToolbarProps<TData> extends React$1.ComponentProps<"div"> {
|
|
@@ -1426,7 +1426,7 @@ declare function DataTableToolbar<TData>({
|
|
|
1426
1426
|
children,
|
|
1427
1427
|
className,
|
|
1428
1428
|
...props
|
|
1429
|
-
}: DataTableToolbarProps<TData>):
|
|
1429
|
+
}: DataTableToolbarProps<TData>): react_jsx_runtime3.JSX.Element;
|
|
1430
1430
|
//#endregion
|
|
1431
1431
|
//#region src/components/data-table/data-table-view-options.d.ts
|
|
1432
1432
|
interface DataTableViewOptionsProps<TData> extends React$1.ComponentProps<typeof PopoverContent> {
|
|
@@ -1437,7 +1437,7 @@ declare function DataTableViewOptions<TData>({
|
|
|
1437
1437
|
table,
|
|
1438
1438
|
disabled,
|
|
1439
1439
|
...props
|
|
1440
|
-
}: DataTableViewOptionsProps<TData>):
|
|
1440
|
+
}: DataTableViewOptionsProps<TData>): react_jsx_runtime3.JSX.Element;
|
|
1441
1441
|
//#endregion
|
|
1442
1442
|
//#region src/components/ui/multi-combobox.d.ts
|
|
1443
1443
|
interface MultiComboboxOption {
|
|
@@ -1523,7 +1523,7 @@ declare function createFormSchema<T extends z.ZodObject<z.ZodRawShape>>(schema:
|
|
|
1523
1523
|
/**
|
|
1524
1524
|
* 为编辑模式创建 Form Schema(排除 id, createdAt, updatedAt)
|
|
1525
1525
|
*/
|
|
1526
|
-
declare function createEditFormSchema<T extends z.ZodObject<z.ZodRawShape>>(schema: T, options?: Omit<CreateFormSchemaOptions,
|
|
1526
|
+
declare function createEditFormSchema<T extends z.ZodObject<z.ZodRawShape>>(schema: T, options?: Omit<CreateFormSchemaOptions, 'exclude'>): ISchema;
|
|
1527
1527
|
//#endregion
|
|
1528
1528
|
//#region src/lib/schema-bridge/schema-adapter.d.ts
|
|
1529
1529
|
/**
|
package/dist/index.d.ts
CHANGED
|
@@ -1523,7 +1523,7 @@ declare function createFormSchema<T extends z.ZodObject<z.ZodRawShape>>(schema:
|
|
|
1523
1523
|
/**
|
|
1524
1524
|
* 为编辑模式创建 Form Schema(排除 id, createdAt, updatedAt)
|
|
1525
1525
|
*/
|
|
1526
|
-
declare function createEditFormSchema<T extends z.ZodObject<z.ZodRawShape>>(schema: T, options?: Omit<CreateFormSchemaOptions,
|
|
1526
|
+
declare function createEditFormSchema<T extends z.ZodObject<z.ZodRawShape>>(schema: T, options?: Omit<CreateFormSchemaOptions, 'exclude'>): ISchema;
|
|
1527
1527
|
//#endregion
|
|
1528
1528
|
//#region src/lib/schema-bridge/schema-adapter.d.ts
|
|
1529
1529
|
/**
|
package/dist/index.js
CHANGED
|
@@ -19,6 +19,7 @@ import { createForm, onFieldValueChange } from "@formily/core";
|
|
|
19
19
|
import { Form, JsonSchemaField } from "@pixpilot/formily-shadcn";
|
|
20
20
|
import { connect, mapProps } from "@formily/react";
|
|
21
21
|
import { toast } from "sonner";
|
|
22
|
+
import { keepPreviousData } from "@tanstack/react-query";
|
|
22
23
|
|
|
23
24
|
//#region src/lib/utils.ts
|
|
24
25
|
function cn(...inputs) {
|
|
@@ -5131,12 +5132,8 @@ function getComponentProps(type, parsed) {
|
|
|
5131
5132
|
function createFormSchema(schema, options) {
|
|
5132
5133
|
const shape = schema.shape;
|
|
5133
5134
|
const properties = {};
|
|
5134
|
-
const { overrides, exclude = [], layout = "vertical", gridColumns = 1
|
|
5135
|
+
const { overrides, exclude = [], layout = "vertical", gridColumns = 1 } = options ?? {};
|
|
5135
5136
|
const decoratorProps = { className: "space-y-2" };
|
|
5136
|
-
if (labelAlign) decoratorProps.labelAlign = labelAlign;
|
|
5137
|
-
if (labelWidth) decoratorProps.labelWidth = labelWidth;
|
|
5138
|
-
if (labelCol) decoratorProps.labelCol = labelCol;
|
|
5139
|
-
if (wrapperCol) decoratorProps.wrapperCol = wrapperCol;
|
|
5140
5137
|
for (const [key, fieldSchema] of Object.entries(shape)) {
|
|
5141
5138
|
if (exclude.includes(key)) continue;
|
|
5142
5139
|
const parsed = parseZodField(fieldSchema);
|
|
@@ -5388,16 +5385,22 @@ function AutoFormInner({ schema: zodSchema, initialValues, onSubmit, overrides,
|
|
|
5388
5385
|
const formSchema = useMemo(() => createEditFormSchema(zodSchema, {
|
|
5389
5386
|
overrides,
|
|
5390
5387
|
layout: "grid",
|
|
5391
|
-
gridColumns
|
|
5392
|
-
labelAlign,
|
|
5393
|
-
labelWidth
|
|
5388
|
+
gridColumns
|
|
5394
5389
|
}), [
|
|
5395
5390
|
zodSchema,
|
|
5396
5391
|
overrides,
|
|
5397
|
-
gridColumns
|
|
5398
|
-
labelAlign,
|
|
5399
|
-
labelWidth
|
|
5392
|
+
gridColumns
|
|
5400
5393
|
]);
|
|
5394
|
+
const formLayout = useMemo(() => {
|
|
5395
|
+
const inlineLabel = labelAlign === "left" || labelAlign === "right";
|
|
5396
|
+
return {
|
|
5397
|
+
labelPlacement: inlineLabel ? "start" : "top",
|
|
5398
|
+
itemProps: inlineLabel ? { label: {
|
|
5399
|
+
className: labelAlign === "right" ? "text-right" : void 0,
|
|
5400
|
+
style: labelWidth != null ? { width: labelWidth } : void 0
|
|
5401
|
+
} } : void 0
|
|
5402
|
+
};
|
|
5403
|
+
}, [labelAlign, labelWidth]);
|
|
5401
5404
|
const fieldComponents = useMemo(() => ({ fields: {
|
|
5402
5405
|
...defaultFieldComponents,
|
|
5403
5406
|
...formComponents.all()
|
|
@@ -5410,6 +5413,7 @@ function AutoFormInner({ schema: zodSchema, initialValues, onSubmit, overrides,
|
|
|
5410
5413
|
useImperativeHandle(ref, () => ({ submit: handleSubmit }));
|
|
5411
5414
|
return /* @__PURE__ */ jsxs(Form, {
|
|
5412
5415
|
form,
|
|
5416
|
+
layout: formLayout,
|
|
5413
5417
|
children: [/* @__PURE__ */ jsx(JsonSchemaField, {
|
|
5414
5418
|
schema: formSchema,
|
|
5415
5419
|
components: fieldComponents
|
|
@@ -7518,13 +7522,6 @@ function DataTableToolbarFilter({ column }) {
|
|
|
7518
7522
|
}
|
|
7519
7523
|
}
|
|
7520
7524
|
|
|
7521
|
-
//#endregion
|
|
7522
|
-
//#region ../../node_modules/.pnpm/@tanstack+query-core@5.90.20/node_modules/@tanstack/query-core/build/modern/utils.js
|
|
7523
|
-
var isServer = typeof window === "undefined" || "Deno" in globalThis;
|
|
7524
|
-
function keepPreviousData(previousData) {
|
|
7525
|
-
return previousData;
|
|
7526
|
-
}
|
|
7527
|
-
|
|
7528
7525
|
//#endregion
|
|
7529
7526
|
//#region src/hooks/use-auto-crud-resource.ts
|
|
7530
7527
|
/** 默认 toast 适配器(使用 sonner) */
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wordrhyme/auto-crud",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "1.2.
|
|
4
|
+
"version": "1.2.1",
|
|
5
5
|
"description": "Schema-first CRUD components with auto-generated tables and forms",
|
|
6
6
|
"author": "wordrhyme",
|
|
7
7
|
"license": "MIT",
|
|
@@ -27,6 +27,7 @@
|
|
|
27
27
|
"access": "public"
|
|
28
28
|
},
|
|
29
29
|
"peerDependencies": {
|
|
30
|
+
"@tanstack/react-query": "^5.0.0",
|
|
30
31
|
"react": "^18.0.0 || ^19.0.0",
|
|
31
32
|
"react-dom": "^18.0.0 || ^19.0.0",
|
|
32
33
|
"sonner": "^2.0.0",
|
|
@@ -66,11 +67,12 @@
|
|
|
66
67
|
"tailwind-merge": "^3.5.0",
|
|
67
68
|
"vaul": "^1.1.2",
|
|
68
69
|
"@pixpilot/formily-shadcn": "1.11.20",
|
|
69
|
-
"@pixpilot/shadcn
|
|
70
|
-
"@pixpilot/shadcn": "1.
|
|
70
|
+
"@pixpilot/shadcn": "1.2.7",
|
|
71
|
+
"@pixpilot/shadcn-ui": "1.21.1"
|
|
71
72
|
},
|
|
72
73
|
"devDependencies": {
|
|
73
74
|
"@tanstack/react-query": "^5.90.15",
|
|
75
|
+
"@testing-library/jest-dom": "^6.9.1",
|
|
74
76
|
"@testing-library/react": "^16.3.2",
|
|
75
77
|
"@trpc/server": "^11.0.0",
|
|
76
78
|
"@types/node": "^22.19.17",
|
|
@@ -78,15 +80,17 @@
|
|
|
78
80
|
"@types/react-dom": "^19.2.3",
|
|
79
81
|
"drizzle-orm": "1.0.0-beta.15-859cf75",
|
|
80
82
|
"eslint": "^9.39.4",
|
|
83
|
+
"jsdom": "^27.4.0",
|
|
81
84
|
"react": "19.2.4",
|
|
82
85
|
"react-dom": "19.2.4",
|
|
83
86
|
"tsdown": "^0.15.12",
|
|
84
87
|
"typescript": "^5.9.3",
|
|
85
|
-
"
|
|
88
|
+
"vitest": "^3.2.4",
|
|
89
|
+
"@internal/tsconfig": "0.1.0",
|
|
86
90
|
"@internal/prettier-config": "0.0.1",
|
|
87
|
-
"@internal/tsdown-config": "0.1.0",
|
|
88
91
|
"@internal/vitest-config": "0.1.0",
|
|
89
|
-
"@internal/
|
|
92
|
+
"@internal/eslint-config": "0.3.0",
|
|
93
|
+
"@internal/tsdown-config": "0.1.0"
|
|
90
94
|
},
|
|
91
95
|
"prettier": "@internal/prettier-config",
|
|
92
96
|
"scripts": {
|