@bluemarble/bm-components 2.4.7 → 2.5.2

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.d.cts CHANGED
@@ -535,20 +535,29 @@ declare class DomainError extends Error {
535
535
  constructor(message: any);
536
536
  }
537
537
 
538
- interface HelperRequest {
539
- url?: string;
538
+ interface BaseRequest {
540
539
  method?: string;
540
+ }
541
+ interface BaseResponse {
542
+ status(code: number): {
543
+ json(data: any): any;
544
+ send(data: any): any;
545
+ end(data?: any): any;
546
+ };
547
+ }
548
+ interface HelperRequest extends BaseRequest {
549
+ url?: string;
541
550
  headers: {
542
551
  authorization?: string;
543
552
  cookie?: string;
544
553
  [key: string]: string | string[] | undefined;
545
554
  };
546
- cookies: Record<string, string>;
555
+ cookies: Partial<Record<string, string>>;
547
556
  body?: any;
548
- query: Record<string, string | string[]>;
557
+ query: Partial<Record<string, string | string[]>>;
549
558
  user?: any;
550
559
  }
551
- interface HelperResponse {
560
+ interface HelperResponse extends BaseResponse {
552
561
  finished?: boolean;
553
562
  status(code: number): HelperResponse;
554
563
  json(data: any): any;
@@ -563,39 +572,53 @@ interface ServerSidePropsContext {
563
572
  }
564
573
 
565
574
  type PossibleMethods = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'ALL';
566
- type NextHandlerApiRequest<T = string> = HelperRequest & {
575
+ type NextHandlerApiRequest<T = string, Req extends BaseRequest = HelperRequest> = Req & {
567
576
  user?: T;
568
577
  };
569
- type HandlerProps<UserKeyType> = (req: NextHandlerApiRequest<UserKeyType>, res: HelperResponse, options?: TApiOptions) => Promise<any>;
570
- type MethodProps<T> = Partial<Record<PossibleMethods, HandlerProps<T>>>;
571
- type MiddlewaresProps<T> = ((handler: HandlerProps<T>, options?: TApiOptions) => HandlerProps<T>)[];
572
- type ConstructorProps$1<T> = {
578
+ type HandlerProps<UserKeyType, Req extends BaseRequest = HelperRequest, Res extends BaseResponse = HelperResponse> = (req: NextHandlerApiRequest<UserKeyType, Req>, res: Res, options?: TApiOptions<Req, Res>) => Promise<any>;
579
+ type MethodProps<T, Req extends BaseRequest = HelperRequest, Res extends BaseResponse = HelperResponse> = Partial<Record<PossibleMethods, HandlerProps<T, Req, Res>>>;
580
+ type MiddlewaresProps<T, Req extends BaseRequest = HelperRequest, Res extends BaseResponse = HelperResponse> = ((handler: HandlerProps<T, Req, Res>, options?: TApiOptions<Req, Res>) => HandlerProps<T, Req, Res>)[];
581
+ type TApiHelperProps<T, Req extends BaseRequest = HelperRequest, Res extends BaseResponse = HelperResponse> = {
573
582
  public?: boolean;
574
- middlewares?: MiddlewaresProps<T>;
575
- onFinally?: (req: HelperRequest, res: HelperResponse) => Promise<void>;
576
- onError?: (req: HelperRequest, res: HelperResponse) => Promise<void>;
583
+ middlewares?: MiddlewaresProps<T, Req, Res>;
584
+ onFinally?: (req: Req, res: Res) => Promise<void>;
585
+ onError?: (req: Req, res: Res) => Promise<void>;
577
586
  };
578
- type TApiOptions = {
587
+ type TApiOptions<Req extends BaseRequest = HelperRequest, Res extends BaseResponse = HelperResponse> = {
579
588
  public?: boolean;
580
- middlewares?: MiddlewaresProps<any>;
589
+ middlewares?: MiddlewaresProps<any, Req, Res>;
581
590
  };
582
- declare class ApiHelper<T> {
591
+ declare class ApiHelper<T = string, Req extends BaseRequest = HelperRequest, Res extends BaseResponse = HelperResponse> {
583
592
  private middlewares;
584
593
  private public;
585
594
  private onFinally;
586
595
  private onError;
587
- constructor(props?: ConstructorProps$1<T>);
588
- createMethods(methods: MethodProps<T>): (req: HelperRequest, res: HelperResponse) => Promise<any>;
596
+ constructor(props?: TApiHelperProps<T, Req, Res>);
597
+ createMethods(methods: MethodProps<T, Req, Res>): (req: NextHandlerApiRequest<T, Req>, res: Res) => Promise<any>;
589
598
  private buildFactory;
590
- static build(factory: (req: NextHandlerApiRequest, res: HelperResponse) => MethodProps<string>, options?: TApiOptions): (req: NextHandlerApiRequest, res: HelperResponse) => Promise<any>;
599
+ static build<T = string, Req extends BaseRequest = HelperRequest, Res extends BaseResponse = HelperResponse>(factory: (req: NextHandlerApiRequest<T, Req>, res: Res) => MethodProps<T, Req, Res>, options?: TApiOptions<Req, Res>): (req: NextHandlerApiRequest<T, Req>, res: Res) => Promise<any>;
591
600
  static parse<Output, Def>(body: Record<string, any>, parser: ZodSchema<Output, Def>): Output;
592
- /** @deprecated Use {@link ApiHelper.parser} instead. */
601
+ /** @deprecated Use {@link ApiHelper.parse} instead. */
593
602
  static parserErrorWrapper: typeof ApiHelper.parse;
594
603
  /** @deprecated Use {@Link ApiHelper.build} instead. */
595
604
  static create({ onFinally }: {
596
605
  onFinally: any;
597
- }): ApiHelper<unknown>;
606
+ }): ApiHelper<string, HelperRequest, HelperResponse>;
598
607
  }
608
+ declare function createApiHelper<Req extends BaseRequest, Res extends BaseResponse, T = string>(defaults?: {
609
+ public?: boolean;
610
+ middlewares?: MiddlewaresProps<T, Req, Res>;
611
+ }): {
612
+ new (props?: TApiHelperProps<T, Req, Res>): {
613
+ /** @internal instância subjacente; não faz parte da API pública. */
614
+ readonly helper: ApiHelper<T, Req, Res>;
615
+ createMethods(methods: MethodProps<T, Req, Res>): (req: NextHandlerApiRequest<T, Req>, res: Res) => Promise<any>;
616
+ };
617
+ build(factory: (req: NextHandlerApiRequest<T, Req>, res: Res) => MethodProps<T, Req, Res>, options?: TApiOptions<Req, Res>): (req: NextHandlerApiRequest<T, Req>, res: Res) => Promise<any>;
618
+ parse: typeof ApiHelper.parse;
619
+ /** @deprecated Use `parse` instead. */
620
+ parserErrorWrapper: typeof ApiHelper.parse;
621
+ };
599
622
 
600
623
  type AuthRequest = HelperRequest & {
601
624
  user?: any;
@@ -749,4 +772,4 @@ declare function useFormHelper(): {
749
772
  createAlert(message: string, type: _mui_material.AlertColor): void;
750
773
  };
751
774
 
752
- export { AlertContext, AlertProvider, ApiHelper, type AuthContextProps, AuthHelper, Autocomplete, BaseDialog, BaseDialogBody, BaseDialogContainer, BaseDialogCreate, BaseDialogTrigger, BaseGrid, BaseGridAutoRows, Checkbox, type ColumnTitleProps, type ColumnsProps, CreateAuthProvider, Dialog, DialogConfirm, DomainError, EditableTableCell, type FilterCompareType, type FilterProps, FormHelperContext, FormHelperProvider, GetInputLabel, Grid, type HandlerProps, type HelperRequest, type HelperResponse, HttpError, type IBaseDialogBodyProps, type IBaseDialogContainerProps, type IBaseDialogTriggerProps, type IDialogConfirmProps, type IFilter, Input, InputMask, LargeButton, type MethodProps, type MiddlewaresProps, Modal, type NextHandlerApiRequest, type NookiesRequest, type NookiesResponse, Radio, Select, type ServerSidePropsContext, type SortedByProps$1 as SortedByProps, Switch, type TApiOptions, type TUseDialogConfirm, TabPanel, type TabPanelProps, Td, Tr, UseDialogConfirm, createAuthContext, createFilter, destroyCookie, filterData, getTabProps, nookies, parseCookies, setCookie, useAlert, useAsyncGrid, useBaseDialog, useBaseDialogInstance, useEvent, useFilter, useFormHelper, useGrid, useLoading };
775
+ export { AlertContext, AlertProvider, ApiHelper, type AuthContextProps, AuthHelper, Autocomplete, BaseDialog, BaseDialogBody, BaseDialogContainer, BaseDialogCreate, BaseDialogTrigger, BaseGrid, BaseGridAutoRows, type BaseRequest, type BaseResponse, Checkbox, type ColumnTitleProps, type ColumnsProps, CreateAuthProvider, Dialog, DialogConfirm, DomainError, EditableTableCell, type FilterCompareType, type FilterProps, FormHelperContext, FormHelperProvider, GetInputLabel, Grid, type HandlerProps, type HelperRequest, type HelperResponse, HttpError, type IBaseDialogBodyProps, type IBaseDialogContainerProps, type IBaseDialogTriggerProps, type IDialogConfirmProps, type IFilter, Input, InputMask, LargeButton, type MethodProps, type MiddlewaresProps, Modal, type NextHandlerApiRequest, type NookiesRequest, type NookiesResponse, Radio, Select, type ServerSidePropsContext, type SortedByProps$1 as SortedByProps, Switch, type TApiHelperProps, type TApiOptions, type TUseDialogConfirm, TabPanel, type TabPanelProps, Td, Tr, UseDialogConfirm, createApiHelper, createAuthContext, createFilter, destroyCookie, filterData, getTabProps, nookies, parseCookies, setCookie, useAlert, useAsyncGrid, useBaseDialog, useBaseDialogInstance, useEvent, useFilter, useFormHelper, useGrid, useLoading };
package/dist/index.d.ts CHANGED
@@ -535,20 +535,29 @@ declare class DomainError extends Error {
535
535
  constructor(message: any);
536
536
  }
537
537
 
538
- interface HelperRequest {
539
- url?: string;
538
+ interface BaseRequest {
540
539
  method?: string;
540
+ }
541
+ interface BaseResponse {
542
+ status(code: number): {
543
+ json(data: any): any;
544
+ send(data: any): any;
545
+ end(data?: any): any;
546
+ };
547
+ }
548
+ interface HelperRequest extends BaseRequest {
549
+ url?: string;
541
550
  headers: {
542
551
  authorization?: string;
543
552
  cookie?: string;
544
553
  [key: string]: string | string[] | undefined;
545
554
  };
546
- cookies: Record<string, string>;
555
+ cookies: Partial<Record<string, string>>;
547
556
  body?: any;
548
- query: Record<string, string | string[]>;
557
+ query: Partial<Record<string, string | string[]>>;
549
558
  user?: any;
550
559
  }
551
- interface HelperResponse {
560
+ interface HelperResponse extends BaseResponse {
552
561
  finished?: boolean;
553
562
  status(code: number): HelperResponse;
554
563
  json(data: any): any;
@@ -563,39 +572,53 @@ interface ServerSidePropsContext {
563
572
  }
564
573
 
565
574
  type PossibleMethods = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'ALL';
566
- type NextHandlerApiRequest<T = string> = HelperRequest & {
575
+ type NextHandlerApiRequest<T = string, Req extends BaseRequest = HelperRequest> = Req & {
567
576
  user?: T;
568
577
  };
569
- type HandlerProps<UserKeyType> = (req: NextHandlerApiRequest<UserKeyType>, res: HelperResponse, options?: TApiOptions) => Promise<any>;
570
- type MethodProps<T> = Partial<Record<PossibleMethods, HandlerProps<T>>>;
571
- type MiddlewaresProps<T> = ((handler: HandlerProps<T>, options?: TApiOptions) => HandlerProps<T>)[];
572
- type ConstructorProps$1<T> = {
578
+ type HandlerProps<UserKeyType, Req extends BaseRequest = HelperRequest, Res extends BaseResponse = HelperResponse> = (req: NextHandlerApiRequest<UserKeyType, Req>, res: Res, options?: TApiOptions<Req, Res>) => Promise<any>;
579
+ type MethodProps<T, Req extends BaseRequest = HelperRequest, Res extends BaseResponse = HelperResponse> = Partial<Record<PossibleMethods, HandlerProps<T, Req, Res>>>;
580
+ type MiddlewaresProps<T, Req extends BaseRequest = HelperRequest, Res extends BaseResponse = HelperResponse> = ((handler: HandlerProps<T, Req, Res>, options?: TApiOptions<Req, Res>) => HandlerProps<T, Req, Res>)[];
581
+ type TApiHelperProps<T, Req extends BaseRequest = HelperRequest, Res extends BaseResponse = HelperResponse> = {
573
582
  public?: boolean;
574
- middlewares?: MiddlewaresProps<T>;
575
- onFinally?: (req: HelperRequest, res: HelperResponse) => Promise<void>;
576
- onError?: (req: HelperRequest, res: HelperResponse) => Promise<void>;
583
+ middlewares?: MiddlewaresProps<T, Req, Res>;
584
+ onFinally?: (req: Req, res: Res) => Promise<void>;
585
+ onError?: (req: Req, res: Res) => Promise<void>;
577
586
  };
578
- type TApiOptions = {
587
+ type TApiOptions<Req extends BaseRequest = HelperRequest, Res extends BaseResponse = HelperResponse> = {
579
588
  public?: boolean;
580
- middlewares?: MiddlewaresProps<any>;
589
+ middlewares?: MiddlewaresProps<any, Req, Res>;
581
590
  };
582
- declare class ApiHelper<T> {
591
+ declare class ApiHelper<T = string, Req extends BaseRequest = HelperRequest, Res extends BaseResponse = HelperResponse> {
583
592
  private middlewares;
584
593
  private public;
585
594
  private onFinally;
586
595
  private onError;
587
- constructor(props?: ConstructorProps$1<T>);
588
- createMethods(methods: MethodProps<T>): (req: HelperRequest, res: HelperResponse) => Promise<any>;
596
+ constructor(props?: TApiHelperProps<T, Req, Res>);
597
+ createMethods(methods: MethodProps<T, Req, Res>): (req: NextHandlerApiRequest<T, Req>, res: Res) => Promise<any>;
589
598
  private buildFactory;
590
- static build(factory: (req: NextHandlerApiRequest, res: HelperResponse) => MethodProps<string>, options?: TApiOptions): (req: NextHandlerApiRequest, res: HelperResponse) => Promise<any>;
599
+ static build<T = string, Req extends BaseRequest = HelperRequest, Res extends BaseResponse = HelperResponse>(factory: (req: NextHandlerApiRequest<T, Req>, res: Res) => MethodProps<T, Req, Res>, options?: TApiOptions<Req, Res>): (req: NextHandlerApiRequest<T, Req>, res: Res) => Promise<any>;
591
600
  static parse<Output, Def>(body: Record<string, any>, parser: ZodSchema<Output, Def>): Output;
592
- /** @deprecated Use {@link ApiHelper.parser} instead. */
601
+ /** @deprecated Use {@link ApiHelper.parse} instead. */
593
602
  static parserErrorWrapper: typeof ApiHelper.parse;
594
603
  /** @deprecated Use {@Link ApiHelper.build} instead. */
595
604
  static create({ onFinally }: {
596
605
  onFinally: any;
597
- }): ApiHelper<unknown>;
606
+ }): ApiHelper<string, HelperRequest, HelperResponse>;
598
607
  }
608
+ declare function createApiHelper<Req extends BaseRequest, Res extends BaseResponse, T = string>(defaults?: {
609
+ public?: boolean;
610
+ middlewares?: MiddlewaresProps<T, Req, Res>;
611
+ }): {
612
+ new (props?: TApiHelperProps<T, Req, Res>): {
613
+ /** @internal instância subjacente; não faz parte da API pública. */
614
+ readonly helper: ApiHelper<T, Req, Res>;
615
+ createMethods(methods: MethodProps<T, Req, Res>): (req: NextHandlerApiRequest<T, Req>, res: Res) => Promise<any>;
616
+ };
617
+ build(factory: (req: NextHandlerApiRequest<T, Req>, res: Res) => MethodProps<T, Req, Res>, options?: TApiOptions<Req, Res>): (req: NextHandlerApiRequest<T, Req>, res: Res) => Promise<any>;
618
+ parse: typeof ApiHelper.parse;
619
+ /** @deprecated Use `parse` instead. */
620
+ parserErrorWrapper: typeof ApiHelper.parse;
621
+ };
599
622
 
600
623
  type AuthRequest = HelperRequest & {
601
624
  user?: any;
@@ -749,4 +772,4 @@ declare function useFormHelper(): {
749
772
  createAlert(message: string, type: _mui_material.AlertColor): void;
750
773
  };
751
774
 
752
- export { AlertContext, AlertProvider, ApiHelper, type AuthContextProps, AuthHelper, Autocomplete, BaseDialog, BaseDialogBody, BaseDialogContainer, BaseDialogCreate, BaseDialogTrigger, BaseGrid, BaseGridAutoRows, Checkbox, type ColumnTitleProps, type ColumnsProps, CreateAuthProvider, Dialog, DialogConfirm, DomainError, EditableTableCell, type FilterCompareType, type FilterProps, FormHelperContext, FormHelperProvider, GetInputLabel, Grid, type HandlerProps, type HelperRequest, type HelperResponse, HttpError, type IBaseDialogBodyProps, type IBaseDialogContainerProps, type IBaseDialogTriggerProps, type IDialogConfirmProps, type IFilter, Input, InputMask, LargeButton, type MethodProps, type MiddlewaresProps, Modal, type NextHandlerApiRequest, type NookiesRequest, type NookiesResponse, Radio, Select, type ServerSidePropsContext, type SortedByProps$1 as SortedByProps, Switch, type TApiOptions, type TUseDialogConfirm, TabPanel, type TabPanelProps, Td, Tr, UseDialogConfirm, createAuthContext, createFilter, destroyCookie, filterData, getTabProps, nookies, parseCookies, setCookie, useAlert, useAsyncGrid, useBaseDialog, useBaseDialogInstance, useEvent, useFilter, useFormHelper, useGrid, useLoading };
775
+ export { AlertContext, AlertProvider, ApiHelper, type AuthContextProps, AuthHelper, Autocomplete, BaseDialog, BaseDialogBody, BaseDialogContainer, BaseDialogCreate, BaseDialogTrigger, BaseGrid, BaseGridAutoRows, type BaseRequest, type BaseResponse, Checkbox, type ColumnTitleProps, type ColumnsProps, CreateAuthProvider, Dialog, DialogConfirm, DomainError, EditableTableCell, type FilterCompareType, type FilterProps, FormHelperContext, FormHelperProvider, GetInputLabel, Grid, type HandlerProps, type HelperRequest, type HelperResponse, HttpError, type IBaseDialogBodyProps, type IBaseDialogContainerProps, type IBaseDialogTriggerProps, type IDialogConfirmProps, type IFilter, Input, InputMask, LargeButton, type MethodProps, type MiddlewaresProps, Modal, type NextHandlerApiRequest, type NookiesRequest, type NookiesResponse, Radio, Select, type ServerSidePropsContext, type SortedByProps$1 as SortedByProps, Switch, type TApiHelperProps, type TApiOptions, type TUseDialogConfirm, TabPanel, type TabPanelProps, Td, Tr, UseDialogConfirm, createApiHelper, createAuthContext, createFilter, destroyCookie, filterData, getTabProps, nookies, parseCookies, setCookie, useAlert, useAsyncGrid, useBaseDialog, useBaseDialogInstance, useEvent, useFilter, useFormHelper, useGrid, useLoading };
package/dist/index.js CHANGED
@@ -4546,7 +4546,8 @@ var BaseDialogContainer = ({
4546
4546
  }) => {
4547
4547
  const { name } = useBaseDialogInstance();
4548
4548
  const { isOpened, close: closeDialog } = useBaseDialog();
4549
- return /* @__PURE__ */ React29.createElement(Modal2, { open: isOpened(name), onClose: () => closeDialog(name), ...rest }, /* @__PURE__ */ React29.createElement(
4549
+ const close = React29.useCallback(() => closeDialog(name), [closeDialog, name]);
4550
+ return /* @__PURE__ */ React29.createElement(Modal2, { open: isOpened(name), onClose: close, ...rest }, /* @__PURE__ */ React29.createElement(
4550
4551
  Box8,
4551
4552
  {
4552
4553
  ...BoxProps3,
@@ -4561,7 +4562,7 @@ var BaseDialogContainer = ({
4561
4562
  ...BoxProps3?.sx
4562
4563
  }
4563
4564
  },
4564
- children
4565
+ typeof children === "function" ? children({ close }) : children
4565
4566
  ));
4566
4567
  };
4567
4568
  var BaseDialogBody = (props) => {
@@ -5421,7 +5422,7 @@ var _ApiHelper = class _ApiHelper {
5421
5422
  static build(factory, options) {
5422
5423
  const helper = new _ApiHelper({
5423
5424
  ...options
5424
- }).buildFactory(factory);
5425
+ })["buildFactory"](factory);
5425
5426
  return helper;
5426
5427
  }
5427
5428
  static parse(body, parser) {
@@ -5443,9 +5444,35 @@ var _ApiHelper = class _ApiHelper {
5443
5444
  });
5444
5445
  }
5445
5446
  };
5446
- /** @deprecated Use {@link ApiHelper.parser} instead. */
5447
+ /** @deprecated Use {@link ApiHelper.parse} instead. */
5447
5448
  _ApiHelper.parserErrorWrapper = _ApiHelper.parse;
5448
5449
  var ApiHelper = _ApiHelper;
5450
+ function createApiHelper(defaults) {
5451
+ var _a;
5452
+ const mergeOptions = (options) => ({
5453
+ ...defaults,
5454
+ ...options,
5455
+ middlewares: [
5456
+ ...defaults?.middlewares ?? [],
5457
+ ...options?.middlewares ?? []
5458
+ ]
5459
+ });
5460
+ return _a = class {
5461
+ constructor(props) {
5462
+ this.helper = new ApiHelper({
5463
+ ...props,
5464
+ middlewares: mergeOptions(props).middlewares
5465
+ });
5466
+ }
5467
+ createMethods(methods) {
5468
+ return this.helper.createMethods(methods);
5469
+ }
5470
+ static build(factory, options) {
5471
+ return ApiHelper.build(factory, mergeOptions(options));
5472
+ }
5473
+ }, _a.parse = ApiHelper.parse, /** @deprecated Use `parse` instead. */
5474
+ _a.parserErrorWrapper = ApiHelper.parse, _a;
5475
+ }
5449
5476
 
5450
5477
  // src/helpers/authHelper.ts
5451
5478
  import { serialize as serialize2 } from "cookie";
@@ -5745,6 +5772,7 @@ export {
5745
5772
  Td,
5746
5773
  Tr,
5747
5774
  UseDialogConfirm,
5775
+ createApiHelper,
5748
5776
  createAuthContext,
5749
5777
  createFilter,
5750
5778
  destroyCookie,