@nomalism-com/types 0.50.3 → 0.51.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 +853 -472
- package/dist/index.js +852 -472
- package/dist/main.d.ts +2 -1
- package/dist/modules/document/propostaBuilder/interface.d.ts +166 -0
- package/package.json +3 -3
package/dist/main.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ import * as NPF from "./modules/document/NPF/interface";
|
|
|
6
6
|
import * as NRCL from "./modules/document/NRCL/interface";
|
|
7
7
|
import * as Order from "./modules/document/order/interfaces";
|
|
8
8
|
import * as Proforma from "./modules/document/proforma/interfaces";
|
|
9
|
+
import * as PropostaBuilder from "./modules/document/propostaBuilder/interface";
|
|
9
10
|
import * as PropostaFornecedor from "./modules/document/propostaFornecedor/interfaces";
|
|
10
11
|
import * as PropostaSheets from "./modules/document/propostaSheets/interface";
|
|
11
12
|
import * as ProviderCreditNoteFromReturn from "./modules/document/providerCreditNoteFromReturn/interfaces";
|
|
@@ -141,4 +142,4 @@ import * as stockErrors from "./shared/errors/stockErrors";
|
|
|
141
142
|
import * as userErrors from "./shared/errors/userErrors";
|
|
142
143
|
import * as viewErrors from "./shared/errors/viewErrors";
|
|
143
144
|
import * as shared from "./shared/interface";
|
|
144
|
-
export { AccountCode, AdminPanel, AllowedDevice, BankData, BillOfLading, Catalogo, Channel, Chat, ChatRapidMessage, ChatSubscriber, Client, ClientType, CLT, Commissioner, ConferirEncomenda, Country, CurrentAccount, Dashboard, DeliveryMethods, DisplayLabel, DisplayLabels, DocumentHeader, DocumentHeaderHistory, DocumentHeaderSubscriber, DocumentHeaderSurvey, DocumentLine, DocumentLineAssoc, DocumentLineMt, DocumentLineNote, DocumentLineRm, documentManagementErrors, DocumentSet, DocumentType, EmailAccount, EmailLog, EmailTemplate, EmailTemplateAttachment, EmailVerification, ErrorLog, EuPago, ExternalDocumentHeader, ExternalDocumentType, Favorites, File, Gmails, GoogleCalendar, GoogleFilePermission, GoogleSheetPool, GoogleSheets, integrationErrors, Inventario, Language, LLM, Location, MaterialEntrance, MaturityDates, MobilePrint, Multimedia, Npc, NPF, NRCL, Observation, Order, OrderManagement, Password, PatchNotes, Payment, PaymentBatch, PaymentMethods, Persona, PersonaMerge, Portal, PreSale, PreSaleProduct, Printer, Prison, ProductGoogleSheets, ProductImage, ProductLocation, ProductUpdate, Proforma, ProjectInfo, Promotion, PropostaFornecedor, PropostaSheets, ProviderCreditNoteFromReturn, ProviderFinancialCreditNote, Providers, ProviderServiceInvoice, ProviderType, Purchase, PurchaseConditions, Quebra, QueryList, QueryParameter, ReasonForExemption, RecurrentTasks, RefreshToken, ReturnReason, ReturnToProvider, Saft, SavedEmPicking, SavedProviderProposal, Schedule, SchedulePrintJob, SegmentsArea, Sessions, Settings, shared, Shippings, SideMenu, SidemenuHighlight, SmsSender, SmsTemplate, StartDocumentHeaderLastUpdate, stockErrors, StockMovement, StoreOperator, StoreOperatorSaftLock, Swift, SystemModule, Tag, Task, TaskMessage, Tenant, TenantSaftLock, Theme, Tickets, TicketsLanguage, TimeSheet, Transformado, UnitOfMeasure, UpfrontReturn, userErrors, Users, UserTokens, VatTax, VatTaxZone, VatValidation, Vehicles, viewErrors, WebSocket, Workflow, };
|
|
145
|
+
export { AccountCode, AdminPanel, AllowedDevice, BankData, BillOfLading, Catalogo, Channel, Chat, ChatRapidMessage, ChatSubscriber, Client, ClientType, CLT, Commissioner, ConferirEncomenda, Country, CurrentAccount, Dashboard, DeliveryMethods, DisplayLabel, DisplayLabels, DocumentHeader, DocumentHeaderHistory, DocumentHeaderSubscriber, DocumentHeaderSurvey, DocumentLine, DocumentLineAssoc, DocumentLineMt, DocumentLineNote, DocumentLineRm, documentManagementErrors, DocumentSet, DocumentType, EmailAccount, EmailLog, EmailTemplate, EmailTemplateAttachment, EmailVerification, ErrorLog, EuPago, ExternalDocumentHeader, ExternalDocumentType, Favorites, File, Gmails, GoogleCalendar, GoogleFilePermission, GoogleSheetPool, GoogleSheets, integrationErrors, Inventario, Language, LLM, Location, MaterialEntrance, MaturityDates, MobilePrint, Multimedia, Npc, NPF, NRCL, Observation, Order, OrderManagement, Password, PatchNotes, Payment, PaymentBatch, PaymentMethods, Persona, PersonaMerge, Portal, PreSale, PreSaleProduct, Printer, Prison, ProductGoogleSheets, ProductImage, ProductLocation, ProductUpdate, Proforma, ProjectInfo, Promotion, PropostaBuilder, PropostaFornecedor, PropostaSheets, ProviderCreditNoteFromReturn, ProviderFinancialCreditNote, Providers, ProviderServiceInvoice, ProviderType, Purchase, PurchaseConditions, Quebra, QueryList, QueryParameter, ReasonForExemption, RecurrentTasks, RefreshToken, ReturnReason, ReturnToProvider, Saft, SavedEmPicking, SavedProviderProposal, Schedule, SchedulePrintJob, SegmentsArea, Sessions, Settings, shared, Shippings, SideMenu, SidemenuHighlight, SmsSender, SmsTemplate, StartDocumentHeaderLastUpdate, stockErrors, StockMovement, StoreOperator, StoreOperatorSaftLock, Swift, SystemModule, Tag, Task, TaskMessage, Tenant, TenantSaftLock, Theme, Tickets, TicketsLanguage, TimeSheet, Transformado, UnitOfMeasure, UpfrontReturn, userErrors, Users, UserTokens, VatTax, VatTaxZone, VatValidation, Vehicles, viewErrors, WebSocket, Workflow, };
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import * as IShared from "../../../shared/interface";
|
|
2
|
+
import * as IGoogleSheets from "../../integration/googleSheets/interfaces";
|
|
3
|
+
/**
|
|
4
|
+
* Proposta builder: substitui a MASTER PROPOSTA (Google Sheets) por linhas
|
|
5
|
+
* guardadas no próprio sistema. O cálculo é feito no backend (stockservice) e
|
|
6
|
+
* o resultado alimenta o importador de propostas existente (PropostaSheets).
|
|
7
|
+
*/
|
|
8
|
+
export declare const Route = "proposta_builder";
|
|
9
|
+
export declare const groupValues: readonly ["cortinado", "estore", "almofada", "estofo", "papel", "outros", "tapete", "terceiros"];
|
|
10
|
+
export type IGroup = (typeof groupValues)[number];
|
|
11
|
+
/** Chave de importação usada no lugar de `google_sheet_id` (ver PropostaSheets.isProcessing). */
|
|
12
|
+
export declare const BUILDER_IMPORT_KEY_PREFIX = "builder:";
|
|
13
|
+
export type IValue = string | number | null;
|
|
14
|
+
/** Entradas de uma linha de qualquer grupo (chaves do grupo: ver `inputKeysByGroup`). */
|
|
15
|
+
export type IInputs = Partial<Record<string, IValue>>;
|
|
16
|
+
/** Resultado calculado de uma linha de qualquer grupo (chaves do grupo: ver `calcKeysByGroup`). */
|
|
17
|
+
export type ICalc = Record<string, IValue>;
|
|
18
|
+
export declare const cortinadoInputKeys: readonly ["janela", "largura", "altura", "altura_2", "altura_3", "origem_medida", "coef", "molde", "tecido2_coef", "cortina_qtd", "cortina_modelo", "cortina_forro", "cortina_abertura", "cortina_bainha", "cortina_extra", "cortina_notas", "cortina_desconto", "cortina_deslizadores", "cortina_preco_ml_manual", "calha_qtd", "calha_modelo", "calha_sistema", "calha_espacamento", "calha_cordao", "calha_fixacao", "calha_cor", "calha_embelezadores", "calha_cor_acessorios", "calha_notas", "calha_suporte_qtd", "calha_suporte", "calha_suporte_preco", "calha_uniao_qtd", "calha_uniao_preco", "calha_comando_qtd", "calha_comando", "calha_comando_preco", "calha_curva_qtd", "calha_curva_preco", "calha_desconto", "calha_molde", "calha_abertura", "calha_comprimento", "calha_preco_manual", "varao_qtd", "varao_modelo", "varao_cor", "varao_notas", "varao_suporte_qtd", "varao_suporte", "varao_suporte_preco", "varao_terminal_qtd", "varao_terminal", "varao_terminal_preco", "varao_argolas_qtd", "varao_argolas", "varao_argolas_preco", "varao_uniao_qtd", "varao_uniao", "varao_uniao_preco", "varao_desconto", "varao_molde", "varao_preco_manual", "tecido1_ref", "tecido1_preco_m", "tecido1_orientacao", "tecido1_acerto_cv", "tecido1_acerto_ch", "tecido1_desconto", "tecido1_metragem_manual", "tecido1_bh", "tecido1_bl", "tecido2_ref", "tecido2_preco_m", "tecido2_orientacao", "tecido2_acerto_cv", "tecido2_acerto_ch", "tecido2_desconto", "tecido2_metragem_manual", "tecido2_bh", "tecido2_bl"];
|
|
19
|
+
export type ICortinadoInputKey = (typeof cortinadoInputKeys)[number];
|
|
20
|
+
/** Valores introduzidos pela lojista (células brancas do sheet). Chaves em falta = células vazias. */
|
|
21
|
+
export type ICortinadoInputs = Partial<Record<ICortinadoInputKey, IValue>>;
|
|
22
|
+
export declare const cortinadoCalcKeys: readonly ["descricao_cortina", "descricao_calha", "descricao_varao", "descricao_tecido1", "descricao_tecido2", "descricao_cliente", "descricao_producao", "tecido1_nome", "tecido2_nome", "alertas", "cortina_multiplicador", "cortina_preco_ml", "cortina_desconto_valor", "cortina_total", "calha_cortada_a", "calha_preco_un", "calha_desconto_valor", "calha_total", "varao_largura", "varao_preco_un", "varao_desconto_valor", "varao_total", "tecido1_largura", "tecido1_largura_bruta", "tecido1_altura_bruta", "tecido1_alturas_cv", "tecido1_tecido_cv", "tecido1_alturas_ch", "tecido1_tecido_ch", "tecido1_alerta", "tecido1_calculos", "tecido1_metragem_unit", "tecido1_metragem_total", "tecido1_desconto_valor", "tecido1_total", "tecido2_largura", "tecido2_largura_bruta", "tecido2_altura_bruta", "tecido2_alturas_cv", "tecido2_tecido_cv", "tecido2_alturas_ch", "tecido2_tecido_ch", "tecido2_alerta", "tecido2_calculos", "tecido2_metragem_unit", "tecido2_metragem_total", "tecido2_desconto_valor", "tecido2_total", "total_sem_desconto", "desconto_total", "total"];
|
|
23
|
+
export type ICortinadoCalcKey = (typeof cortinadoCalcKeys)[number];
|
|
24
|
+
/** Resultado calculado (células cinzentas do sheet). `null` = célula vazia ou erro (#N/A…). */
|
|
25
|
+
export type ICortinadoCalc = Record<ICortinadoCalcKey, IValue>;
|
|
26
|
+
export declare const estoreInputKeys: readonly ["janela", "largura", "altura", "estore_qtd", "estore_modelo", "estore_tela", "estore_fornecedor", "estore_fixacao", "estore_enrolamento", "estore_base", "estore_cor_acessorios", "estore_poleia", "estore_mola", "estore_lado_corrente", "estore_altura_instalacao", "estore_preco_manual", "motor_qtd", "motor", "motor_posicao", "comando_qtd", "comando", "acessorio_qtd", "acessorio", "estore_notas", "estore_desconto"];
|
|
27
|
+
export type IEstoreInputKey = (typeof estoreInputKeys)[number];
|
|
28
|
+
export type IEstoreInputs = Partial<Record<IEstoreInputKey, IValue>>;
|
|
29
|
+
export declare const estoreCalcKeys: readonly ["descricao_producao", "descricao_cliente", "largura_calculo", "altura_calculo", "estore_preco_un", "motor_preco_un", "comando_preco_un", "acessorio_preco_un", "total_sem_desconto", "desconto_total", "total"];
|
|
30
|
+
export type IEstoreCalcKey = (typeof estoreCalcKeys)[number];
|
|
31
|
+
export type IEstoreCalc = Record<IEstoreCalcKey, IValue>;
|
|
32
|
+
export declare const almofadaInputKeys: readonly ["almofada_qtd", "almofada_modelo", "almofada_largura", "almofada_altura", "almofada_notas", "almofada_desconto", "almofada_preco_manual", "tecido1_ref", "tecido1_preco_m", "tecido1_metragem", "tecido1_uso", "tecido1_desconto", "tecido2_ref", "tecido2_preco_m", "tecido2_metragem", "tecido2_uso", "tecido2_desconto"];
|
|
33
|
+
export type IAlmofadaInputKey = (typeof almofadaInputKeys)[number];
|
|
34
|
+
export type IAlmofadaInputs = Partial<Record<IAlmofadaInputKey, IValue>>;
|
|
35
|
+
export declare const almofadaCalcKeys: readonly ["descricao_cliente", "descricao_producao", "preco_modelo", "confecao_desconto_valor", "confecao_total", "tecido1_desconto_valor", "tecido1_total", "tecido2_desconto_valor", "tecido2_total", "total_sem_desconto", "desconto_total", "total"];
|
|
36
|
+
export type IAlmofadaCalcKey = (typeof almofadaCalcKeys)[number];
|
|
37
|
+
export type IAlmofadaCalc = Record<IAlmofadaCalcKey, IValue>;
|
|
38
|
+
export declare const estofoInputKeys: readonly ["estofo_qtd", "estofo_descricao", "estofo_preco_un", "estofo_desconto", "tecido1_qtd", "tecido1_ref", "tecido1_preco_m", "tecido1_desconto", "tecido2_qtd", "tecido2_ref", "tecido2_preco_m", "tecido2_desconto"];
|
|
39
|
+
export type IEstofoInputKey = (typeof estofoInputKeys)[number];
|
|
40
|
+
export type IEstofoInputs = Partial<Record<IEstofoInputKey, IValue>>;
|
|
41
|
+
export declare const estofoCalcKeys: readonly ["descricao_cliente", "confecao_desconto_valor", "confecao_total", "tecido1_desconto_valor", "tecido1_total", "tecido2_desconto_valor", "tecido2_total", "total_sem_desconto", "desconto_total", "total"];
|
|
42
|
+
export type IEstofoCalcKey = (typeof estofoCalcKeys)[number];
|
|
43
|
+
export type IEstofoCalc = Record<IEstofoCalcKey, IValue>;
|
|
44
|
+
export declare const artigoInputKeys: readonly ["artigo_qtd", "artigo_ref", "artigo_descricao", "artigo_preco_un", "artigo_desconto"];
|
|
45
|
+
export type IArtigoInputKey = (typeof artigoInputKeys)[number];
|
|
46
|
+
export type IArtigoInputs = Partial<Record<IArtigoInputKey, IValue>>;
|
|
47
|
+
export declare const artigoCalcKeys: readonly ["descricao_cliente", "total_sem_desconto", "desconto_total", "total"];
|
|
48
|
+
export type IArtigoCalcKey = (typeof artigoCalcKeys)[number];
|
|
49
|
+
export type IArtigoCalc = Record<IArtigoCalcKey, IValue>;
|
|
50
|
+
export declare const tapeteInputKeys: readonly ["tapete_divisao", "tapete_largura", "tapete_altura", "tapete_diametro", "tapete_qtd", "tapete_modelo", "tapete_cor", "tapete_acabamento", "tapete_emenda", "tapete_notas", "tapete_desconto", "acabamento_extra", "acabamento_extra_cor", "acabamento_extra_desconto", "transporte_especial"];
|
|
51
|
+
export type ITapeteInputKey = (typeof tapeteInputKeys)[number];
|
|
52
|
+
export type ITapeteInputs = Partial<Record<ITapeteInputKey, IValue>>;
|
|
53
|
+
export declare const tapeteCalcKeys: readonly ["descricao_producao", "area_m2", "preco_m2", "tapete_desconto_valor", "tapete_total", "acabamento_extra_ml", "acabamento_extra_preco_ml", "acabamento_extra_desconto_valor", "acabamento_extra_total", "preco_un", "total_sem_desconto", "desconto_total", "total"];
|
|
54
|
+
export type ITapeteCalcKey = (typeof tapeteCalcKeys)[number];
|
|
55
|
+
export type ITapeteCalc = Record<ITapeteCalcKey, IValue>;
|
|
56
|
+
export declare const servicoInputKeys: readonly ["servico_valor", "servico_descricao", "servico_morada"];
|
|
57
|
+
export type IServicoInputKey = (typeof servicoInputKeys)[number];
|
|
58
|
+
export type IServicoInputs = Partial<Record<IServicoInputKey, IValue>>;
|
|
59
|
+
export declare const servicoCalcKeys: readonly ["descricao_noma", "pago_a", "total_sem_desconto", "desconto_total", "total"];
|
|
60
|
+
export type IServicoCalcKey = (typeof servicoCalcKeys)[number];
|
|
61
|
+
export type IServicoCalc = Record<IServicoCalcKey, IValue>;
|
|
62
|
+
/** Chaves de entrada válidas por grupo. */
|
|
63
|
+
export declare const inputKeysByGroup: Record<IGroup, readonly string[]>;
|
|
64
|
+
/** Chaves de cálculo por grupo. */
|
|
65
|
+
export declare const calcKeysByGroup: Record<IGroup, readonly string[]>;
|
|
66
|
+
export type IFieldKind = "text" | "number" | "percent" | "list";
|
|
67
|
+
export interface IFieldDef {
|
|
68
|
+
key: string;
|
|
69
|
+
label: string;
|
|
70
|
+
section: string;
|
|
71
|
+
kind: IFieldKind;
|
|
72
|
+
/** chave em `IGroupSchema.lists` quando `kind === "list"` */
|
|
73
|
+
list?: string;
|
|
74
|
+
/** false = calculado (cinzento no sheet), readonly na UI */
|
|
75
|
+
editable: boolean;
|
|
76
|
+
/** coluna de origem no sheet, só para rastreabilidade */
|
|
77
|
+
sheet_column: string;
|
|
78
|
+
default?: string | number;
|
|
79
|
+
}
|
|
80
|
+
export interface ISchemaSection {
|
|
81
|
+
key: string;
|
|
82
|
+
label: string;
|
|
83
|
+
}
|
|
84
|
+
export interface ISchemaList {
|
|
85
|
+
values: string[];
|
|
86
|
+
/** false = o sheet só avisa (aceita outros valores). */
|
|
87
|
+
strict: boolean;
|
|
88
|
+
}
|
|
89
|
+
export interface IGroupSchema {
|
|
90
|
+
group: IGroup;
|
|
91
|
+
max_lines: number;
|
|
92
|
+
line_label_prefix: string;
|
|
93
|
+
/** rótulos próprios das linhas (ex.: serviços "N1".."RM"); sem isto usa-se `line_label_prefix + (n + 1)` */
|
|
94
|
+
line_labels?: string[];
|
|
95
|
+
/** posição da 1.ª linha do grupo no `CONFIG!A3:B` do sheet (identidade usada pelo importador) */
|
|
96
|
+
index_offset: number;
|
|
97
|
+
sections: ISchemaSection[];
|
|
98
|
+
fields: IFieldDef[];
|
|
99
|
+
lists: Record<string, ISchemaList>;
|
|
100
|
+
}
|
|
101
|
+
export interface IFindSchemaRequest {
|
|
102
|
+
group: IGroup;
|
|
103
|
+
}
|
|
104
|
+
export interface ILineInput {
|
|
105
|
+
/** posição da linha no grupo (0 = C1). Identidade usada pelo importador. */
|
|
106
|
+
index: number;
|
|
107
|
+
inputs: IInputs;
|
|
108
|
+
}
|
|
109
|
+
export interface IFindLinesRequest {
|
|
110
|
+
document_header_id: string;
|
|
111
|
+
group: IGroup;
|
|
112
|
+
}
|
|
113
|
+
export interface IFindLinesResponse {
|
|
114
|
+
lines: ILineInput[];
|
|
115
|
+
}
|
|
116
|
+
export interface ISaveLinesRequest {
|
|
117
|
+
document_header_id: string;
|
|
118
|
+
group: IGroup;
|
|
119
|
+
lines: ILineInput[];
|
|
120
|
+
}
|
|
121
|
+
export interface IPreviewRequest {
|
|
122
|
+
document_header_id: string;
|
|
123
|
+
group: IGroup;
|
|
124
|
+
lines: ILineInput[];
|
|
125
|
+
}
|
|
126
|
+
export interface ILineCalc {
|
|
127
|
+
index: number;
|
|
128
|
+
label: string;
|
|
129
|
+
/** a linha tem pelo menos um valor preenchido */
|
|
130
|
+
filled: boolean;
|
|
131
|
+
calc: ICalc;
|
|
132
|
+
/** problemas que impedem a importação (erro de preço, tecido inexistente…) */
|
|
133
|
+
errors: string[];
|
|
134
|
+
/** String Noma equivalente à coluna `CONFIG!B` do sheet (útil para auditoria/paridade) */
|
|
135
|
+
noma_string: string;
|
|
136
|
+
products: IGoogleSheets.IGetProduct[];
|
|
137
|
+
}
|
|
138
|
+
export interface ITotals {
|
|
139
|
+
lines: number;
|
|
140
|
+
/** soma dos totais sem desconto (com IVA) */
|
|
141
|
+
total_sem_desconto: number;
|
|
142
|
+
/** soma dos descontos (com IVA) */
|
|
143
|
+
desconto_total: number;
|
|
144
|
+
/** total a pagar (com IVA) */
|
|
145
|
+
total: number;
|
|
146
|
+
}
|
|
147
|
+
export interface IPreviewResponse {
|
|
148
|
+
lines: ILineCalc[];
|
|
149
|
+
totals: ITotals;
|
|
150
|
+
}
|
|
151
|
+
export interface IImportRequest {
|
|
152
|
+
id: string;
|
|
153
|
+
}
|
|
154
|
+
export interface IImportResponse {
|
|
155
|
+
document_header_id: string;
|
|
156
|
+
/** valor a usar em PropostaSheets.isProcessing / estado de importação */
|
|
157
|
+
import_key: string;
|
|
158
|
+
}
|
|
159
|
+
export interface IRepository {
|
|
160
|
+
findSchema(params: IFindSchemaRequest): Promise<IGroupSchema>;
|
|
161
|
+
findLines(params: IFindLinesRequest): Promise<IFindLinesResponse>;
|
|
162
|
+
saveLines(params: ISaveLinesRequest): Promise<void>;
|
|
163
|
+
preview(params: IPreviewRequest): Promise<IPreviewResponse>;
|
|
164
|
+
importToDocument(params: IImportRequest): Promise<IImportResponse>;
|
|
165
|
+
}
|
|
166
|
+
export type IController = IShared.IEntityWithUserToken<IRepository>;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nomalism-com/types",
|
|
3
3
|
"description": "A nomalism package with all necessary types and validations for developing APIs",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.51.1",
|
|
5
5
|
"author": "Nomalism <it.nomalism@gmail.com> (https://nomalism.com/)",
|
|
6
6
|
"license": "UNLICENSED",
|
|
7
7
|
"type": "module",
|
|
@@ -31,14 +31,14 @@
|
|
|
31
31
|
"@types/node": "^26.6.5",
|
|
32
32
|
"@typescript-eslint/eslint-plugin": "^8.62.0",
|
|
33
33
|
"@typescript-eslint/parser": "^8.62.0",
|
|
34
|
-
"eslint": "^10.
|
|
34
|
+
"eslint": "^10.13.0",
|
|
35
35
|
"eslint-config-prettier": "^10.1.8",
|
|
36
36
|
"eslint-plugin-simple-import-sort": "^14.0.0",
|
|
37
37
|
"globals": "^17.13.0",
|
|
38
38
|
"husky": "^9.1.7",
|
|
39
39
|
"lint-staged": "^17.6.0",
|
|
40
40
|
"prettier": "^3.9.10",
|
|
41
|
-
"tsup": "^
|
|
41
|
+
"tsup": "^9.0.0",
|
|
42
42
|
"typescript-eslint": "^8.71.2"
|
|
43
43
|
},
|
|
44
44
|
"repository": {
|