@rainersoft/utils 1.0.3 → 1.1.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.
- package/dist/index.d.mts +6 -2
- package/dist/index.d.ts +6 -2
- package/dist/index.js +32 -0
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +31 -1
- package/dist/index.mjs.map +1 -1
- package/dist/status/index.d.mts +2 -1
- package/dist/status/index.d.ts +2 -1
- package/dist/status/index.js +20 -0
- package/dist/status/index.js.map +1 -1
- package/dist/status/index.mjs +20 -1
- package/dist/status/index.mjs.map +1 -1
- package/package.json +87 -86
package/dist/status/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/types.ts","../../src/status/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["/**\r\n * Types & Constants\r\n *\r\n * Tipos e constantes compartilhadas entre módulos.\r\n *\r\n * @module @rainersoft/utils/types\r\n * @author Rainer Teixeira\r\n */\r\n\r\n/**\r\n * Idiomas suportados\r\n */\r\nexport type Locale = 'pt-BR' | 'en-US' | 'es-ES';\r\n\r\n/**\r\n * Configuração de localização\r\n */\r\nexport interface LocaleConfig {\r\n locale: Locale;\r\n currency?: string;\r\n dateFormat?: 'short' | 'long' | 'full';\r\n}\r\n\r\n/**\r\n * Locale padrão\r\n */\r\nexport const DEFAULT_LOCALE: Locale = 'pt-BR';\r\n\r\n/**\r\n * Mapeamento de moedas por locale\r\n */\r\nexport const CURRENCY_MAP: Record<Locale, string> = {\r\n 'pt-BR': 'BRL',\r\n 'en-US': 'USD',\r\n 'es-ES': 'EUR',\r\n} as const;\r\n","/**\r\n * Status Utilities\r\n *\r\n * Utilitários para tradução e manipulação de status.\r\n * Agnóstico de domínio - pode ser usado para posts, pedidos, tarefas, etc.\r\n * Suporte para múltiplos idiomas: pt-BR, en-US, es-ES.\r\n *\r\n * @module @rainersoft/utils/status\r\n * @author Rainer Teixeira\r\n */\r\n\r\nimport type { Locale } from '../types';\r\nimport { DEFAULT_LOCALE } from '../types';\r\n\r\n/**\r\n * Status genéricos de entidades\r\n */\r\nexport type GenericStatus =\r\n | 'DRAFT'\r\n | 'PENDING'\r\n | 'PUBLISHED'\r\n | 'ACTIVE'\r\n | 'INACTIVE'\r\n | 'ARCHIVED'\r\n | 'DELETED'\r\n | 'SCHEDULED'\r\n | 'COMPLETED'\r\n | 'CANCELLED'\r\n | 'APPROVED'\r\n | 'REJECTED';\r\n\r\n/**\r\n * Traduções de status por idioma\r\n */\r\nconst STATUS_TRANSLATIONS: Record<Locale, Record<string, string>> = {\r\n 'pt-BR': {\r\n // Estados de conteúdo\r\n DRAFT: 'Rascunho',\r\n PUBLISHED: 'Publicado',\r\n ARCHIVED: 'Arquivado',\r\n SCHEDULED: 'Agendado',\r\n DELETED: 'Excluído',\r\n \r\n // Estados de processo\r\n PENDING: 'Pendente',\r\n ACTIVE: 'Ativo',\r\n INACTIVE: 'Inativo',\r\n COMPLETED: 'Concluído',\r\n CANCELLED: 'Cancelado',\r\n \r\n // Estados de aprovação\r\n APPROVED: 'Aprovado',\r\n REJECTED: 'Rejeitado',\r\n \r\n // Estados de pedido/pagamento\r\n PROCESSING: 'Processando',\r\n PAID: 'Pago',\r\n UNPAID: 'Não Pago',\r\n REFUNDED: 'Reembolsado',\r\n FAILED: 'Falhou',\r\n \r\n // Estados de usuário\r\n VERIFIED: 'Verificado',\r\n UNVERIFIED: 'Não Verificado',\r\n BANNED: 'Banido',\r\n SUSPENDED: 'Suspenso',\r\n },\r\n 'en-US': {\r\n DRAFT: 'Draft',\r\n PUBLISHED: 'Published',\r\n ARCHIVED: 'Archived',\r\n SCHEDULED: 'Scheduled',\r\n DELETED: 'Deleted',\r\n PENDING: 'Pending',\r\n ACTIVE: 'Active',\r\n INACTIVE: 'Inactive',\r\n COMPLETED: 'Completed',\r\n CANCELLED: 'Cancelled',\r\n APPROVED: 'Approved',\r\n REJECTED: 'Rejected',\r\n PROCESSING: 'Processing',\r\n PAID: 'Paid',\r\n UNPAID: 'Unpaid',\r\n REFUNDED: 'Refunded',\r\n FAILED: 'Failed',\r\n VERIFIED: 'Verified',\r\n UNVERIFIED: 'Unverified',\r\n BANNED: 'Banned',\r\n SUSPENDED: 'Suspended',\r\n },\r\n 'es-ES': {\r\n DRAFT: 'Borrador',\r\n PUBLISHED: 'Publicado',\r\n ARCHIVED: 'Archivado',\r\n SCHEDULED: 'Programado',\r\n DELETED: 'Eliminado',\r\n PENDING: 'Pendiente',\r\n ACTIVE: 'Activo',\r\n INACTIVE: 'Inactivo',\r\n COMPLETED: 'Completado',\r\n CANCELLED: 'Cancelado',\r\n APPROVED: 'Aprobado',\r\n REJECTED: 'Rechazado',\r\n PROCESSING: 'Procesando',\r\n PAID: 'Pagado',\r\n UNPAID: 'No Pagado',\r\n REFUNDED: 'Reembolsado',\r\n FAILED: 'Fallido',\r\n VERIFIED: 'Verificado',\r\n UNVERIFIED: 'No Verificado',\r\n BANNED: 'Bloqueado',\r\n SUSPENDED: 'Suspendido',\r\n },\r\n} as const;\r\n\r\n/**\r\n * Traduz status com suporte a idiomas\r\n *\r\n * @param status - Status em inglês (uppercase)\r\n * @param locale - Idioma (padrão: 'pt-BR')\r\n * @returns Status traduzido\r\n *\r\n * @example\r\n * translateStatus('DRAFT') // 'Rascunho' (pt-BR)\r\n * translateStatus('DRAFT', 'en-US') // 'Draft'\r\n * translateStatus('DRAFT', 'es-ES') // 'Borrador'\r\n */\r\nexport function translateStatus(status: string, locale: Locale = DEFAULT_LOCALE): string {\r\n const normalized = status.toUpperCase();\r\n return STATUS_TRANSLATIONS[locale][normalized] || status;\r\n}\r\n\r\n/**\r\n * Obtém cor baseada no status\r\n *\r\n * @param status - Status\r\n * @returns Classe Tailwind de cor\r\n *\r\n * @example\r\n * getStatusColor('PUBLISHED') // 'text-green-600'\r\n * getStatusColor('DRAFT') // 'text-gray-600'\r\n */\r\nexport function getStatusColor(status: string): string {\r\n const normalized = status.toUpperCase();\r\n \r\n const colorMap: Record<string, string> = {\r\n DRAFT: 'text-gray-600',\r\n PENDING: 'text-yellow-600',\r\n PUBLISHED: 'text-green-600',\r\n ACTIVE: 'text-green-600',\r\n INACTIVE: 'text-gray-600',\r\n ARCHIVED: 'text-orange-600',\r\n DELETED: 'text-red-600',\r\n SCHEDULED: 'text-blue-600',\r\n COMPLETED: 'text-green-600',\r\n CANCELLED: 'text-red-600',\r\n APPROVED: 'text-green-600',\r\n REJECTED: 'text-red-600',\r\n FAILED: 'text-red-600',\r\n VERIFIED: 'text-green-600',\r\n BANNED: 'text-red-600',\r\n };\r\n \r\n return colorMap[normalized] || 'text-gray-600';\r\n}\r\n\r\n/**\r\n * Obtém badge variant baseado no status\r\n *\r\n * @param status - Status\r\n * @returns Variant do badge\r\n *\r\n * @example\r\n * getStatusVariant('PUBLISHED') // 'success'\r\n * getStatusVariant('DRAFT') // 'secondary'\r\n */\r\nexport function getStatusVariant(status: string): 'default' | 'secondary' | 'destructive' | 'outline' {\r\n const normalized = status.toUpperCase();\r\n \r\n if (['PUBLISHED', 'ACTIVE', 'COMPLETED', 'APPROVED', 'VERIFIED'].includes(normalized)) {\r\n return 'default'; // Verde/sucesso\r\n }\r\n \r\n if (['DELETED', 'CANCELLED', 'REJECTED', 'FAILED', 'BANNED'].includes(normalized)) {\r\n return 'destructive'; // Vermelho/erro\r\n }\r\n \r\n if (['DRAFT', 'INACTIVE', 'ARCHIVED'].includes(normalized)) {\r\n return 'secondary'; // Cinza/neutro\r\n }\r\n \r\n return 'outline'; // Padrão\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/types.ts","../../src/status/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["/**\r\n * Types & Constants\r\n *\r\n * Tipos e constantes compartilhadas entre módulos.\r\n *\r\n * @module @rainersoft/utils/types\r\n * @author Rainer Teixeira\r\n */\r\n\r\n/**\r\n * Idiomas suportados\r\n */\r\nexport type Locale = 'pt-BR' | 'en-US' | 'es-ES';\r\n\r\n/**\r\n * Configuração de localização\r\n */\r\nexport interface LocaleConfig {\r\n locale: Locale;\r\n currency?: string;\r\n dateFormat?: 'short' | 'long' | 'full';\r\n}\r\n\r\n/**\r\n * Locale padrão\r\n */\r\nexport const DEFAULT_LOCALE: Locale = 'pt-BR';\r\n\r\n/**\r\n * Mapeamento de moedas por locale\r\n */\r\nexport const CURRENCY_MAP: Record<Locale, string> = {\r\n 'pt-BR': 'BRL',\r\n 'en-US': 'USD',\r\n 'es-ES': 'EUR',\r\n} as const;\r\n","/**\r\n * Status Utilities\r\n *\r\n * Utilitários para tradução e manipulação de status.\r\n * Agnóstico de domínio - pode ser usado para posts, pedidos, tarefas, etc.\r\n * Suporte para múltiplos idiomas: pt-BR, en-US, es-ES.\r\n *\r\n * @module @rainersoft/utils/status\r\n * @author Rainer Teixeira\r\n */\r\n\r\nimport type { Locale } from '../types';\r\nimport { DEFAULT_LOCALE } from '../types';\r\n\r\n/**\r\n * Status genéricos de entidades\r\n */\r\nexport type GenericStatus =\r\n | 'DRAFT'\r\n | 'PENDING'\r\n | 'PUBLISHED'\r\n | 'ACTIVE'\r\n | 'INACTIVE'\r\n | 'ARCHIVED'\r\n | 'DELETED'\r\n | 'SCHEDULED'\r\n | 'COMPLETED'\r\n | 'CANCELLED'\r\n | 'APPROVED'\r\n | 'REJECTED';\r\n\r\n/**\r\n * Traduções de status por idioma\r\n */\r\nconst STATUS_TRANSLATIONS: Record<Locale, Record<string, string>> = {\r\n 'pt-BR': {\r\n // Estados de conteúdo\r\n DRAFT: 'Rascunho',\r\n PUBLISHED: 'Publicado',\r\n ARCHIVED: 'Arquivado',\r\n SCHEDULED: 'Agendado',\r\n DELETED: 'Excluído',\r\n \r\n // Estados de processo\r\n PENDING: 'Pendente',\r\n ACTIVE: 'Ativo',\r\n INACTIVE: 'Inativo',\r\n COMPLETED: 'Concluído',\r\n CANCELLED: 'Cancelado',\r\n \r\n // Estados de aprovação\r\n APPROVED: 'Aprovado',\r\n REJECTED: 'Rejeitado',\r\n \r\n // Estados de pedido/pagamento\r\n PROCESSING: 'Processando',\r\n PAID: 'Pago',\r\n UNPAID: 'Não Pago',\r\n REFUNDED: 'Reembolsado',\r\n FAILED: 'Falhou',\r\n \r\n // Estados de usuário\r\n VERIFIED: 'Verificado',\r\n UNVERIFIED: 'Não Verificado',\r\n BANNED: 'Banido',\r\n SUSPENDED: 'Suspenso',\r\n },\r\n 'en-US': {\r\n DRAFT: 'Draft',\r\n PUBLISHED: 'Published',\r\n ARCHIVED: 'Archived',\r\n SCHEDULED: 'Scheduled',\r\n DELETED: 'Deleted',\r\n PENDING: 'Pending',\r\n ACTIVE: 'Active',\r\n INACTIVE: 'Inactive',\r\n COMPLETED: 'Completed',\r\n CANCELLED: 'Cancelled',\r\n APPROVED: 'Approved',\r\n REJECTED: 'Rejected',\r\n PROCESSING: 'Processing',\r\n PAID: 'Paid',\r\n UNPAID: 'Unpaid',\r\n REFUNDED: 'Refunded',\r\n FAILED: 'Failed',\r\n VERIFIED: 'Verified',\r\n UNVERIFIED: 'Unverified',\r\n BANNED: 'Banned',\r\n SUSPENDED: 'Suspended',\r\n },\r\n 'es-ES': {\r\n DRAFT: 'Borrador',\r\n PUBLISHED: 'Publicado',\r\n ARCHIVED: 'Archivado',\r\n SCHEDULED: 'Programado',\r\n DELETED: 'Eliminado',\r\n PENDING: 'Pendiente',\r\n ACTIVE: 'Activo',\r\n INACTIVE: 'Inactivo',\r\n COMPLETED: 'Completado',\r\n CANCELLED: 'Cancelado',\r\n APPROVED: 'Aprobado',\r\n REJECTED: 'Rechazado',\r\n PROCESSING: 'Procesando',\r\n PAID: 'Pagado',\r\n UNPAID: 'No Pagado',\r\n REFUNDED: 'Reembolsado',\r\n FAILED: 'Fallido',\r\n VERIFIED: 'Verificado',\r\n UNVERIFIED: 'No Verificado',\r\n BANNED: 'Bloqueado',\r\n SUSPENDED: 'Suspendido',\r\n },\r\n} as const;\r\n\r\n/**\r\n * Traduz status com suporte a idiomas\r\n *\r\n * @param status - Status em inglês (uppercase)\r\n * @param locale - Idioma (padrão: 'pt-BR')\r\n * @returns Status traduzido\r\n *\r\n * @example\r\n * translateStatus('DRAFT') // 'Rascunho' (pt-BR)\r\n * translateStatus('DRAFT', 'en-US') // 'Draft'\r\n * translateStatus('DRAFT', 'es-ES') // 'Borrador'\r\n */\r\nexport function translateStatus(status: string, locale: Locale = DEFAULT_LOCALE): string {\r\n const normalized = status.toUpperCase();\r\n return STATUS_TRANSLATIONS[locale][normalized] || status;\r\n}\r\n\r\n/**\r\n * Obtém cor baseada no status\r\n *\r\n * @param status - Status\r\n * @returns Classe Tailwind de cor\r\n *\r\n * @example\r\n * getStatusColor('PUBLISHED') // 'text-green-600'\r\n * getStatusColor('DRAFT') // 'text-gray-600'\r\n */\r\nexport function getStatusColor(status: string): string {\r\n const normalized = status.toUpperCase();\r\n \r\n const colorMap: Record<string, string> = {\r\n DRAFT: 'text-gray-600',\r\n PENDING: 'text-yellow-600',\r\n PUBLISHED: 'text-green-600',\r\n ACTIVE: 'text-green-600',\r\n INACTIVE: 'text-gray-600',\r\n ARCHIVED: 'text-orange-600',\r\n DELETED: 'text-red-600',\r\n SCHEDULED: 'text-blue-600',\r\n COMPLETED: 'text-green-600',\r\n CANCELLED: 'text-red-600',\r\n APPROVED: 'text-green-600',\r\n REJECTED: 'text-red-600',\r\n FAILED: 'text-red-600',\r\n VERIFIED: 'text-green-600',\r\n BANNED: 'text-red-600',\r\n };\r\n \r\n return colorMap[normalized] || 'text-gray-600';\r\n}\r\n\r\n/**\r\n * Obtém badge variant baseado no status\r\n *\r\n * @param status - Status\r\n * @returns Variant do badge\r\n *\r\n * @example\r\n * getStatusVariant('PUBLISHED') // 'success'\r\n * getStatusVariant('DRAFT') // 'secondary'\r\n */\r\nexport function getStatusVariant(status: string): 'default' | 'secondary' | 'destructive' | 'outline' {\r\n const normalized = status.toUpperCase();\r\n \r\n if (['PUBLISHED', 'ACTIVE', 'COMPLETED', 'APPROVED', 'VERIFIED'].includes(normalized)) {\r\n return 'default'; // Verde/sucesso\r\n }\r\n \r\n if (['DELETED', 'CANCELLED', 'REJECTED', 'FAILED', 'BANNED'].includes(normalized)) {\r\n return 'destructive'; // Vermelho/erro\r\n }\r\n \r\n if (['DRAFT', 'INACTIVE', 'ARCHIVED'].includes(normalized)) {\r\n return 'secondary'; // Cinza/neutro\r\n }\r\n \r\n return 'outline'; // Padrão\r\n}\r\n\r\n/**\r\n * Traduz status de posts do blog (alias para translateStatus)\r\n * Mantém compatibilidade com código legado\r\n *\r\n * @param status - Status do post (draft, published, archived, etc)\r\n * @param locale - Idioma (padrão: 'pt-BR')\r\n * @returns Status traduzido\r\n *\r\n * @example\r\n * translatePostStatus('draft') // 'Rascunho'\r\n * translatePostStatus('published') // 'Publicado'\r\n * translatePostStatus('pending_review') // 'Aguardando Revisão'\r\n */\r\nexport function translatePostStatus(status: string, locale: Locale = DEFAULT_LOCALE): string {\r\n // Mapeamento de status específicos de posts\r\n const postStatusMap: Record<string, string> = {\r\n 'draft': 'DRAFT',\r\n 'published': 'PUBLISHED',\r\n 'archived': 'ARCHIVED',\r\n 'scheduled': 'SCHEDULED',\r\n 'pending_review': 'PENDING',\r\n };\r\n \r\n // Normaliza o status (lowercase com underscores para uppercase)\r\n const normalized = postStatusMap[status.toLowerCase()] || status.toUpperCase();\r\n \r\n // Traduções específicas para pending_review\r\n if (status.toLowerCase() === 'pending_review') {\r\n const translations = {\r\n 'pt-BR': 'Aguardando Revisão',\r\n 'en-US': 'Pending Review',\r\n 'es-ES': 'Pendiente de Revisión'\r\n };\r\n return translations[locale] || translations['pt-BR'];\r\n }\r\n \r\n return translateStatus(normalized, locale);\r\n}\r\n"]}
|
package/dist/status/index.mjs
CHANGED
|
@@ -116,7 +116,26 @@ function getStatusVariant(status) {
|
|
|
116
116
|
}
|
|
117
117
|
return "outline";
|
|
118
118
|
}
|
|
119
|
+
function translatePostStatus(status, locale = DEFAULT_LOCALE) {
|
|
120
|
+
const postStatusMap = {
|
|
121
|
+
"draft": "DRAFT",
|
|
122
|
+
"published": "PUBLISHED",
|
|
123
|
+
"archived": "ARCHIVED",
|
|
124
|
+
"scheduled": "SCHEDULED",
|
|
125
|
+
"pending_review": "PENDING"
|
|
126
|
+
};
|
|
127
|
+
const normalized = postStatusMap[status.toLowerCase()] || status.toUpperCase();
|
|
128
|
+
if (status.toLowerCase() === "pending_review") {
|
|
129
|
+
const translations = {
|
|
130
|
+
"pt-BR": "Aguardando Revis\xE3o",
|
|
131
|
+
"en-US": "Pending Review",
|
|
132
|
+
"es-ES": "Pendiente de Revisi\xF3n"
|
|
133
|
+
};
|
|
134
|
+
return translations[locale] || translations["pt-BR"];
|
|
135
|
+
}
|
|
136
|
+
return translateStatus(normalized, locale);
|
|
137
|
+
}
|
|
119
138
|
|
|
120
|
-
export { getStatusColor, getStatusVariant, translateStatus };
|
|
139
|
+
export { getStatusColor, getStatusVariant, translatePostStatus, translateStatus };
|
|
121
140
|
//# sourceMappingURL=index.mjs.map
|
|
122
141
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/types.ts","../../src/status/index.ts"],"names":[],"mappings":";AA0BO,IAAM,cAAA,GAAyB,OAAA;;;ACQtC,IAAM,mBAAA,GAA8D;AAAA,EAClE,OAAA,EAAS;AAAA;AAAA,IAET,KAAA,EAAO,UAAA;AAAA,IACP,SAAA,EAAW,WAAA;AAAA,IACX,QAAA,EAAU,WAAA;AAAA,IACV,SAAA,EAAW,UAAA;AAAA,IACX,OAAA,EAAS,aAAA;AAAA;AAAA,IAGT,OAAA,EAAS,UAAA;AAAA,IACT,MAAA,EAAQ,OAAA;AAAA,IACR,QAAA,EAAU,SAAA;AAAA,IACV,SAAA,EAAW,cAAA;AAAA,IACX,SAAA,EAAW,WAAA;AAAA;AAAA,IAGX,QAAA,EAAU,UAAA;AAAA,IACV,QAAA,EAAU,WAAA;AAAA;AAAA,IAGV,UAAA,EAAY,aAAA;AAAA,IACZ,IAAA,EAAM,MAAA;AAAA,IACN,MAAA,EAAQ,aAAA;AAAA,IACR,QAAA,EAAU,aAAA;AAAA,IACV,MAAA,EAAQ,QAAA;AAAA;AAAA,IAGN,QAAA,EAAU,YAAA;AAAA,IACV,UAAA,EAAY,mBAAA;AAAA,IACZ,MAAA,EAAQ,QAAA;AAAA,IACR,SAAA,EAAW;AAAA,GACb;AAAA,EACA,OAAA,EAAS;AAAA,IACP,KAAA,EAAO,OAAA;AAAA,IACP,SAAA,EAAW,WAAA;AAAA,IACX,QAAA,EAAU,UAAA;AAAA,IACV,SAAA,EAAW,WAAA;AAAA,IACX,OAAA,EAAS,SAAA;AAAA,IACT,OAAA,EAAS,SAAA;AAAA,IACT,MAAA,EAAQ,QAAA;AAAA,IACR,QAAA,EAAU,UAAA;AAAA,IACV,SAAA,EAAW,WAAA;AAAA,IACX,SAAA,EAAW,WAAA;AAAA,IACX,QAAA,EAAU,UAAA;AAAA,IACV,QAAA,EAAU,UAAA;AAAA,IACV,UAAA,EAAY,YAAA;AAAA,IACZ,IAAA,EAAM,MAAA;AAAA,IACN,MAAA,EAAQ,QAAA;AAAA,IACR,QAAA,EAAU,UAAA;AAAA,IACV,MAAA,EAAQ,QAAA;AAAA,IACR,QAAA,EAAU,UAAA;AAAA,IACV,UAAA,EAAY,YAAA;AAAA,IACZ,MAAA,EAAQ,QAAA;AAAA,IACR,SAAA,EAAW;AAAA,GACb;AAAA,EACA,OAAA,EAAS;AAAA,IACP,KAAA,EAAO,UAAA;AAAA,IACP,SAAA,EAAW,WAAA;AAAA,IACX,QAAA,EAAU,WAAA;AAAA,IACV,SAAA,EAAW,YAAA;AAAA,IACX,OAAA,EAAS,WAAA;AAAA,IACT,OAAA,EAAS,WAAA;AAAA,IACT,MAAA,EAAQ,QAAA;AAAA,IACR,QAAA,EAAU,UAAA;AAAA,IACV,SAAA,EAAW,YAAA;AAAA,IACX,SAAA,EAAW,WAAA;AAAA,IACX,QAAA,EAAU,UAAA;AAAA,IACV,QAAA,EAAU,WAAA;AAAA,IACV,UAAA,EAAY,YAAA;AAAA,IACZ,IAAA,EAAM,QAAA;AAAA,IACN,MAAA,EAAQ,WAAA;AAAA,IACR,QAAA,EAAU,aAAA;AAAA,IACV,MAAA,EAAQ,SAAA;AAAA,IACR,QAAA,EAAU,YAAA;AAAA,IACV,UAAA,EAAY,eAAA;AAAA,IACZ,MAAA,EAAQ,WAAA;AAAA,IACR,SAAA,EAAW;AAAA;AAEf,CAAA;AAcO,SAAS,eAAA,CAAgB,MAAA,EAAgB,MAAA,GAAiB,cAAA,EAAwB;AACvF,EAAA,MAAM,UAAA,GAAa,OAAO,WAAA,EAAY;AACtC,EAAA,OAAO,mBAAA,CAAoB,MAAM,CAAA,CAAE,UAAU,CAAA,IAAK,MAAA;AACpD;AAYO,SAAS,eAAe,MAAA,EAAwB;AACrD,EAAA,MAAM,UAAA,GAAa,OAAO,WAAA,EAAY;AAEtC,EAAA,MAAM,QAAA,GAAmC;AAAA,IACvC,KAAA,EAAO,eAAA;AAAA,IACP,OAAA,EAAS,iBAAA;AAAA,IACT,SAAA,EAAW,gBAAA;AAAA,IACX,MAAA,EAAQ,gBAAA;AAAA,IACR,QAAA,EAAU,eAAA;AAAA,IACV,QAAA,EAAU,iBAAA;AAAA,IACV,OAAA,EAAS,cAAA;AAAA,IACT,SAAA,EAAW,eAAA;AAAA,IACX,SAAA,EAAW,gBAAA;AAAA,IACX,SAAA,EAAW,cAAA;AAAA,IACX,QAAA,EAAU,gBAAA;AAAA,IACV,QAAA,EAAU,cAAA;AAAA,IACV,MAAA,EAAQ,cAAA;AAAA,IACR,QAAA,EAAU,gBAAA;AAAA,IACV,MAAA,EAAQ;AAAA,GACV;AAEA,EAAA,OAAO,QAAA,CAAS,UAAU,CAAA,IAAK,eAAA;AACjC;AAYO,SAAS,iBAAiB,MAAA,EAAqE;AACpG,EAAA,MAAM,UAAA,GAAa,OAAO,WAAA,EAAY;AAEtC,EAAA,IAAI,CAAC,aAAa,QAAA,EAAU,WAAA,EAAa,YAAY,UAAU,CAAA,CAAE,QAAA,CAAS,UAAU,CAAA,EAAG;AACrF,IAAA,OAAO,SAAA;AAAA,EACT;AAEA,EAAA,IAAI,CAAC,WAAW,WAAA,EAAa,UAAA,EAAY,UAAU,QAAQ,CAAA,CAAE,QAAA,CAAS,UAAU,CAAA,EAAG;AACjF,IAAA,OAAO,aAAA;AAAA,EACT;AAEA,EAAA,IAAI,CAAC,OAAA,EAAS,UAAA,EAAY,UAAU,CAAA,CAAE,QAAA,CAAS,UAAU,CAAA,EAAG;AAC1D,IAAA,OAAO,WAAA;AAAA,EACT;AAEA,EAAA,OAAO,SAAA;AACT","file":"index.mjs","sourcesContent":["/**\r\n * Types & Constants\r\n *\r\n * Tipos e constantes compartilhadas entre módulos.\r\n *\r\n * @module @rainersoft/utils/types\r\n * @author Rainer Teixeira\r\n */\r\n\r\n/**\r\n * Idiomas suportados\r\n */\r\nexport type Locale = 'pt-BR' | 'en-US' | 'es-ES';\r\n\r\n/**\r\n * Configuração de localização\r\n */\r\nexport interface LocaleConfig {\r\n locale: Locale;\r\n currency?: string;\r\n dateFormat?: 'short' | 'long' | 'full';\r\n}\r\n\r\n/**\r\n * Locale padrão\r\n */\r\nexport const DEFAULT_LOCALE: Locale = 'pt-BR';\r\n\r\n/**\r\n * Mapeamento de moedas por locale\r\n */\r\nexport const CURRENCY_MAP: Record<Locale, string> = {\r\n 'pt-BR': 'BRL',\r\n 'en-US': 'USD',\r\n 'es-ES': 'EUR',\r\n} as const;\r\n","/**\r\n * Status Utilities\r\n *\r\n * Utilitários para tradução e manipulação de status.\r\n * Agnóstico de domínio - pode ser usado para posts, pedidos, tarefas, etc.\r\n * Suporte para múltiplos idiomas: pt-BR, en-US, es-ES.\r\n *\r\n * @module @rainersoft/utils/status\r\n * @author Rainer Teixeira\r\n */\r\n\r\nimport type { Locale } from '../types';\r\nimport { DEFAULT_LOCALE } from '../types';\r\n\r\n/**\r\n * Status genéricos de entidades\r\n */\r\nexport type GenericStatus =\r\n | 'DRAFT'\r\n | 'PENDING'\r\n | 'PUBLISHED'\r\n | 'ACTIVE'\r\n | 'INACTIVE'\r\n | 'ARCHIVED'\r\n | 'DELETED'\r\n | 'SCHEDULED'\r\n | 'COMPLETED'\r\n | 'CANCELLED'\r\n | 'APPROVED'\r\n | 'REJECTED';\r\n\r\n/**\r\n * Traduções de status por idioma\r\n */\r\nconst STATUS_TRANSLATIONS: Record<Locale, Record<string, string>> = {\r\n 'pt-BR': {\r\n // Estados de conteúdo\r\n DRAFT: 'Rascunho',\r\n PUBLISHED: 'Publicado',\r\n ARCHIVED: 'Arquivado',\r\n SCHEDULED: 'Agendado',\r\n DELETED: 'Excluído',\r\n \r\n // Estados de processo\r\n PENDING: 'Pendente',\r\n ACTIVE: 'Ativo',\r\n INACTIVE: 'Inativo',\r\n COMPLETED: 'Concluído',\r\n CANCELLED: 'Cancelado',\r\n \r\n // Estados de aprovação\r\n APPROVED: 'Aprovado',\r\n REJECTED: 'Rejeitado',\r\n \r\n // Estados de pedido/pagamento\r\n PROCESSING: 'Processando',\r\n PAID: 'Pago',\r\n UNPAID: 'Não Pago',\r\n REFUNDED: 'Reembolsado',\r\n FAILED: 'Falhou',\r\n \r\n // Estados de usuário\r\n VERIFIED: 'Verificado',\r\n UNVERIFIED: 'Não Verificado',\r\n BANNED: 'Banido',\r\n SUSPENDED: 'Suspenso',\r\n },\r\n 'en-US': {\r\n DRAFT: 'Draft',\r\n PUBLISHED: 'Published',\r\n ARCHIVED: 'Archived',\r\n SCHEDULED: 'Scheduled',\r\n DELETED: 'Deleted',\r\n PENDING: 'Pending',\r\n ACTIVE: 'Active',\r\n INACTIVE: 'Inactive',\r\n COMPLETED: 'Completed',\r\n CANCELLED: 'Cancelled',\r\n APPROVED: 'Approved',\r\n REJECTED: 'Rejected',\r\n PROCESSING: 'Processing',\r\n PAID: 'Paid',\r\n UNPAID: 'Unpaid',\r\n REFUNDED: 'Refunded',\r\n FAILED: 'Failed',\r\n VERIFIED: 'Verified',\r\n UNVERIFIED: 'Unverified',\r\n BANNED: 'Banned',\r\n SUSPENDED: 'Suspended',\r\n },\r\n 'es-ES': {\r\n DRAFT: 'Borrador',\r\n PUBLISHED: 'Publicado',\r\n ARCHIVED: 'Archivado',\r\n SCHEDULED: 'Programado',\r\n DELETED: 'Eliminado',\r\n PENDING: 'Pendiente',\r\n ACTIVE: 'Activo',\r\n INACTIVE: 'Inactivo',\r\n COMPLETED: 'Completado',\r\n CANCELLED: 'Cancelado',\r\n APPROVED: 'Aprobado',\r\n REJECTED: 'Rechazado',\r\n PROCESSING: 'Procesando',\r\n PAID: 'Pagado',\r\n UNPAID: 'No Pagado',\r\n REFUNDED: 'Reembolsado',\r\n FAILED: 'Fallido',\r\n VERIFIED: 'Verificado',\r\n UNVERIFIED: 'No Verificado',\r\n BANNED: 'Bloqueado',\r\n SUSPENDED: 'Suspendido',\r\n },\r\n} as const;\r\n\r\n/**\r\n * Traduz status com suporte a idiomas\r\n *\r\n * @param status - Status em inglês (uppercase)\r\n * @param locale - Idioma (padrão: 'pt-BR')\r\n * @returns Status traduzido\r\n *\r\n * @example\r\n * translateStatus('DRAFT') // 'Rascunho' (pt-BR)\r\n * translateStatus('DRAFT', 'en-US') // 'Draft'\r\n * translateStatus('DRAFT', 'es-ES') // 'Borrador'\r\n */\r\nexport function translateStatus(status: string, locale: Locale = DEFAULT_LOCALE): string {\r\n const normalized = status.toUpperCase();\r\n return STATUS_TRANSLATIONS[locale][normalized] || status;\r\n}\r\n\r\n/**\r\n * Obtém cor baseada no status\r\n *\r\n * @param status - Status\r\n * @returns Classe Tailwind de cor\r\n *\r\n * @example\r\n * getStatusColor('PUBLISHED') // 'text-green-600'\r\n * getStatusColor('DRAFT') // 'text-gray-600'\r\n */\r\nexport function getStatusColor(status: string): string {\r\n const normalized = status.toUpperCase();\r\n \r\n const colorMap: Record<string, string> = {\r\n DRAFT: 'text-gray-600',\r\n PENDING: 'text-yellow-600',\r\n PUBLISHED: 'text-green-600',\r\n ACTIVE: 'text-green-600',\r\n INACTIVE: 'text-gray-600',\r\n ARCHIVED: 'text-orange-600',\r\n DELETED: 'text-red-600',\r\n SCHEDULED: 'text-blue-600',\r\n COMPLETED: 'text-green-600',\r\n CANCELLED: 'text-red-600',\r\n APPROVED: 'text-green-600',\r\n REJECTED: 'text-red-600',\r\n FAILED: 'text-red-600',\r\n VERIFIED: 'text-green-600',\r\n BANNED: 'text-red-600',\r\n };\r\n \r\n return colorMap[normalized] || 'text-gray-600';\r\n}\r\n\r\n/**\r\n * Obtém badge variant baseado no status\r\n *\r\n * @param status - Status\r\n * @returns Variant do badge\r\n *\r\n * @example\r\n * getStatusVariant('PUBLISHED') // 'success'\r\n * getStatusVariant('DRAFT') // 'secondary'\r\n */\r\nexport function getStatusVariant(status: string): 'default' | 'secondary' | 'destructive' | 'outline' {\r\n const normalized = status.toUpperCase();\r\n \r\n if (['PUBLISHED', 'ACTIVE', 'COMPLETED', 'APPROVED', 'VERIFIED'].includes(normalized)) {\r\n return 'default'; // Verde/sucesso\r\n }\r\n \r\n if (['DELETED', 'CANCELLED', 'REJECTED', 'FAILED', 'BANNED'].includes(normalized)) {\r\n return 'destructive'; // Vermelho/erro\r\n }\r\n \r\n if (['DRAFT', 'INACTIVE', 'ARCHIVED'].includes(normalized)) {\r\n return 'secondary'; // Cinza/neutro\r\n }\r\n \r\n return 'outline'; // Padrão\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/types.ts","../../src/status/index.ts"],"names":[],"mappings":"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","file":"index.mjs","sourcesContent":["/**\r\n * Types & Constants\r\n *\r\n * Tipos e constantes compartilhadas entre módulos.\r\n *\r\n * @module @rainersoft/utils/types\r\n * @author Rainer Teixeira\r\n */\r\n\r\n/**\r\n * Idiomas suportados\r\n */\r\nexport type Locale = 'pt-BR' | 'en-US' | 'es-ES';\r\n\r\n/**\r\n * Configuração de localização\r\n */\r\nexport interface LocaleConfig {\r\n locale: Locale;\r\n currency?: string;\r\n dateFormat?: 'short' | 'long' | 'full';\r\n}\r\n\r\n/**\r\n * Locale padrão\r\n */\r\nexport const DEFAULT_LOCALE: Locale = 'pt-BR';\r\n\r\n/**\r\n * Mapeamento de moedas por locale\r\n */\r\nexport const CURRENCY_MAP: Record<Locale, string> = {\r\n 'pt-BR': 'BRL',\r\n 'en-US': 'USD',\r\n 'es-ES': 'EUR',\r\n} as const;\r\n","/**\r\n * Status Utilities\r\n *\r\n * Utilitários para tradução e manipulação de status.\r\n * Agnóstico de domínio - pode ser usado para posts, pedidos, tarefas, etc.\r\n * Suporte para múltiplos idiomas: pt-BR, en-US, es-ES.\r\n *\r\n * @module @rainersoft/utils/status\r\n * @author Rainer Teixeira\r\n */\r\n\r\nimport type { Locale } from '../types';\r\nimport { DEFAULT_LOCALE } from '../types';\r\n\r\n/**\r\n * Status genéricos de entidades\r\n */\r\nexport type GenericStatus =\r\n | 'DRAFT'\r\n | 'PENDING'\r\n | 'PUBLISHED'\r\n | 'ACTIVE'\r\n | 'INACTIVE'\r\n | 'ARCHIVED'\r\n | 'DELETED'\r\n | 'SCHEDULED'\r\n | 'COMPLETED'\r\n | 'CANCELLED'\r\n | 'APPROVED'\r\n | 'REJECTED';\r\n\r\n/**\r\n * Traduções de status por idioma\r\n */\r\nconst STATUS_TRANSLATIONS: Record<Locale, Record<string, string>> = {\r\n 'pt-BR': {\r\n // Estados de conteúdo\r\n DRAFT: 'Rascunho',\r\n PUBLISHED: 'Publicado',\r\n ARCHIVED: 'Arquivado',\r\n SCHEDULED: 'Agendado',\r\n DELETED: 'Excluído',\r\n \r\n // Estados de processo\r\n PENDING: 'Pendente',\r\n ACTIVE: 'Ativo',\r\n INACTIVE: 'Inativo',\r\n COMPLETED: 'Concluído',\r\n CANCELLED: 'Cancelado',\r\n \r\n // Estados de aprovação\r\n APPROVED: 'Aprovado',\r\n REJECTED: 'Rejeitado',\r\n \r\n // Estados de pedido/pagamento\r\n PROCESSING: 'Processando',\r\n PAID: 'Pago',\r\n UNPAID: 'Não Pago',\r\n REFUNDED: 'Reembolsado',\r\n FAILED: 'Falhou',\r\n \r\n // Estados de usuário\r\n VERIFIED: 'Verificado',\r\n UNVERIFIED: 'Não Verificado',\r\n BANNED: 'Banido',\r\n SUSPENDED: 'Suspenso',\r\n },\r\n 'en-US': {\r\n DRAFT: 'Draft',\r\n PUBLISHED: 'Published',\r\n ARCHIVED: 'Archived',\r\n SCHEDULED: 'Scheduled',\r\n DELETED: 'Deleted',\r\n PENDING: 'Pending',\r\n ACTIVE: 'Active',\r\n INACTIVE: 'Inactive',\r\n COMPLETED: 'Completed',\r\n CANCELLED: 'Cancelled',\r\n APPROVED: 'Approved',\r\n REJECTED: 'Rejected',\r\n PROCESSING: 'Processing',\r\n PAID: 'Paid',\r\n UNPAID: 'Unpaid',\r\n REFUNDED: 'Refunded',\r\n FAILED: 'Failed',\r\n VERIFIED: 'Verified',\r\n UNVERIFIED: 'Unverified',\r\n BANNED: 'Banned',\r\n SUSPENDED: 'Suspended',\r\n },\r\n 'es-ES': {\r\n DRAFT: 'Borrador',\r\n PUBLISHED: 'Publicado',\r\n ARCHIVED: 'Archivado',\r\n SCHEDULED: 'Programado',\r\n DELETED: 'Eliminado',\r\n PENDING: 'Pendiente',\r\n ACTIVE: 'Activo',\r\n INACTIVE: 'Inactivo',\r\n COMPLETED: 'Completado',\r\n CANCELLED: 'Cancelado',\r\n APPROVED: 'Aprobado',\r\n REJECTED: 'Rechazado',\r\n PROCESSING: 'Procesando',\r\n PAID: 'Pagado',\r\n UNPAID: 'No Pagado',\r\n REFUNDED: 'Reembolsado',\r\n FAILED: 'Fallido',\r\n VERIFIED: 'Verificado',\r\n UNVERIFIED: 'No Verificado',\r\n BANNED: 'Bloqueado',\r\n SUSPENDED: 'Suspendido',\r\n },\r\n} as const;\r\n\r\n/**\r\n * Traduz status com suporte a idiomas\r\n *\r\n * @param status - Status em inglês (uppercase)\r\n * @param locale - Idioma (padrão: 'pt-BR')\r\n * @returns Status traduzido\r\n *\r\n * @example\r\n * translateStatus('DRAFT') // 'Rascunho' (pt-BR)\r\n * translateStatus('DRAFT', 'en-US') // 'Draft'\r\n * translateStatus('DRAFT', 'es-ES') // 'Borrador'\r\n */\r\nexport function translateStatus(status: string, locale: Locale = DEFAULT_LOCALE): string {\r\n const normalized = status.toUpperCase();\r\n return STATUS_TRANSLATIONS[locale][normalized] || status;\r\n}\r\n\r\n/**\r\n * Obtém cor baseada no status\r\n *\r\n * @param status - Status\r\n * @returns Classe Tailwind de cor\r\n *\r\n * @example\r\n * getStatusColor('PUBLISHED') // 'text-green-600'\r\n * getStatusColor('DRAFT') // 'text-gray-600'\r\n */\r\nexport function getStatusColor(status: string): string {\r\n const normalized = status.toUpperCase();\r\n \r\n const colorMap: Record<string, string> = {\r\n DRAFT: 'text-gray-600',\r\n PENDING: 'text-yellow-600',\r\n PUBLISHED: 'text-green-600',\r\n ACTIVE: 'text-green-600',\r\n INACTIVE: 'text-gray-600',\r\n ARCHIVED: 'text-orange-600',\r\n DELETED: 'text-red-600',\r\n SCHEDULED: 'text-blue-600',\r\n COMPLETED: 'text-green-600',\r\n CANCELLED: 'text-red-600',\r\n APPROVED: 'text-green-600',\r\n REJECTED: 'text-red-600',\r\n FAILED: 'text-red-600',\r\n VERIFIED: 'text-green-600',\r\n BANNED: 'text-red-600',\r\n };\r\n \r\n return colorMap[normalized] || 'text-gray-600';\r\n}\r\n\r\n/**\r\n * Obtém badge variant baseado no status\r\n *\r\n * @param status - Status\r\n * @returns Variant do badge\r\n *\r\n * @example\r\n * getStatusVariant('PUBLISHED') // 'success'\r\n * getStatusVariant('DRAFT') // 'secondary'\r\n */\r\nexport function getStatusVariant(status: string): 'default' | 'secondary' | 'destructive' | 'outline' {\r\n const normalized = status.toUpperCase();\r\n \r\n if (['PUBLISHED', 'ACTIVE', 'COMPLETED', 'APPROVED', 'VERIFIED'].includes(normalized)) {\r\n return 'default'; // Verde/sucesso\r\n }\r\n \r\n if (['DELETED', 'CANCELLED', 'REJECTED', 'FAILED', 'BANNED'].includes(normalized)) {\r\n return 'destructive'; // Vermelho/erro\r\n }\r\n \r\n if (['DRAFT', 'INACTIVE', 'ARCHIVED'].includes(normalized)) {\r\n return 'secondary'; // Cinza/neutro\r\n }\r\n \r\n return 'outline'; // Padrão\r\n}\r\n\r\n/**\r\n * Traduz status de posts do blog (alias para translateStatus)\r\n * Mantém compatibilidade com código legado\r\n *\r\n * @param status - Status do post (draft, published, archived, etc)\r\n * @param locale - Idioma (padrão: 'pt-BR')\r\n * @returns Status traduzido\r\n *\r\n * @example\r\n * translatePostStatus('draft') // 'Rascunho'\r\n * translatePostStatus('published') // 'Publicado'\r\n * translatePostStatus('pending_review') // 'Aguardando Revisão'\r\n */\r\nexport function translatePostStatus(status: string, locale: Locale = DEFAULT_LOCALE): string {\r\n // Mapeamento de status específicos de posts\r\n const postStatusMap: Record<string, string> = {\r\n 'draft': 'DRAFT',\r\n 'published': 'PUBLISHED',\r\n 'archived': 'ARCHIVED',\r\n 'scheduled': 'SCHEDULED',\r\n 'pending_review': 'PENDING',\r\n };\r\n \r\n // Normaliza o status (lowercase com underscores para uppercase)\r\n const normalized = postStatusMap[status.toLowerCase()] || status.toUpperCase();\r\n \r\n // Traduções específicas para pending_review\r\n if (status.toLowerCase() === 'pending_review') {\r\n const translations = {\r\n 'pt-BR': 'Aguardando Revisão',\r\n 'en-US': 'Pending Review',\r\n 'es-ES': 'Pendiente de Revisión'\r\n };\r\n return translations[locale] || translations['pt-BR'];\r\n }\r\n \r\n return translateStatus(normalized, locale);\r\n}\r\n"]}
|
package/package.json
CHANGED
|
@@ -1,86 +1,87 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@rainersoft/utils",
|
|
3
|
-
"version": "1.0
|
|
4
|
-
"description": "Utilitários universais para formatação, conversão e manipulação de dados - Web, Desktop e Mobile",
|
|
5
|
-
"
|
|
6
|
-
|
|
7
|
-
"
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
"
|
|
11
|
-
|
|
12
|
-
"
|
|
13
|
-
"
|
|
14
|
-
"
|
|
15
|
-
"
|
|
16
|
-
"
|
|
17
|
-
"
|
|
18
|
-
"
|
|
19
|
-
"
|
|
20
|
-
"
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
"
|
|
39
|
-
"
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
"
|
|
49
|
-
"
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
"
|
|
56
|
-
"
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
"
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
"
|
|
66
|
-
"
|
|
67
|
-
"
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
"
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
"
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
"
|
|
78
|
-
"
|
|
79
|
-
"
|
|
80
|
-
"
|
|
81
|
-
"
|
|
82
|
-
"
|
|
83
|
-
"
|
|
84
|
-
"
|
|
85
|
-
|
|
86
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@rainersoft/utils",
|
|
3
|
+
"version": "1.1.0",
|
|
4
|
+
"description": "Utilitários universais para formatação, conversão e manipulação de dados - Web, Desktop e Mobile",
|
|
5
|
+
"packageManager": "pnpm@9.0.0",
|
|
6
|
+
"author": {
|
|
7
|
+
"name": "Rainer Teixeira",
|
|
8
|
+
"email": "suporte@rainersoft.com.br"
|
|
9
|
+
},
|
|
10
|
+
"license": "MIT",
|
|
11
|
+
"keywords": [
|
|
12
|
+
"utils",
|
|
13
|
+
"utilities",
|
|
14
|
+
"formatters",
|
|
15
|
+
"date",
|
|
16
|
+
"string",
|
|
17
|
+
"number",
|
|
18
|
+
"currency",
|
|
19
|
+
"slug",
|
|
20
|
+
"status",
|
|
21
|
+
"typescript"
|
|
22
|
+
],
|
|
23
|
+
"main": "dist/index.js",
|
|
24
|
+
"module": "dist/index.mjs",
|
|
25
|
+
"types": "dist/index.d.ts",
|
|
26
|
+
"exports": {
|
|
27
|
+
".": {
|
|
28
|
+
"types": "./dist/index.d.ts",
|
|
29
|
+
"import": "./dist/index.mjs",
|
|
30
|
+
"require": "./dist/index.js"
|
|
31
|
+
},
|
|
32
|
+
"./date": {
|
|
33
|
+
"types": "./dist/date/index.d.ts",
|
|
34
|
+
"import": "./dist/date/index.mjs",
|
|
35
|
+
"require": "./dist/date/index.js"
|
|
36
|
+
},
|
|
37
|
+
"./string": {
|
|
38
|
+
"types": "./dist/string/index.d.ts",
|
|
39
|
+
"import": "./dist/string/index.mjs",
|
|
40
|
+
"require": "./dist/string/index.js"
|
|
41
|
+
},
|
|
42
|
+
"./number": {
|
|
43
|
+
"types": "./dist/number/index.d.ts",
|
|
44
|
+
"import": "./dist/number/index.mjs",
|
|
45
|
+
"require": "./dist/number/index.js"
|
|
46
|
+
},
|
|
47
|
+
"./status": {
|
|
48
|
+
"types": "./dist/status/index.d.ts",
|
|
49
|
+
"import": "./dist/status/index.mjs",
|
|
50
|
+
"require": "./dist/status/index.js"
|
|
51
|
+
},
|
|
52
|
+
"./package.json": "./package.json"
|
|
53
|
+
},
|
|
54
|
+
"files": [
|
|
55
|
+
"dist",
|
|
56
|
+
"README.md",
|
|
57
|
+
"LICENSE"
|
|
58
|
+
],
|
|
59
|
+
"scripts": {
|
|
60
|
+
"dev": "tsup --watch",
|
|
61
|
+
"build": "tsup",
|
|
62
|
+
"test": "jest",
|
|
63
|
+
"test:watch": "jest --watch",
|
|
64
|
+
"test:coverage": "jest --coverage",
|
|
65
|
+
"lint": "eslint src --ext .ts",
|
|
66
|
+
"format": "prettier --write \"src/**/*.ts\"",
|
|
67
|
+
"typecheck": "tsc --noEmit"
|
|
68
|
+
},
|
|
69
|
+
"peerDependencies": {
|
|
70
|
+
"react": "^18.0.0 || ^19.0.0"
|
|
71
|
+
},
|
|
72
|
+
"publishConfig": {
|
|
73
|
+
"access": "public"
|
|
74
|
+
},
|
|
75
|
+
"devDependencies": {
|
|
76
|
+
"@types/jest": "^29.5.12",
|
|
77
|
+
"@types/node": "^20.19.25",
|
|
78
|
+
"@typescript-eslint/eslint-plugin": "^7.0.1",
|
|
79
|
+
"@typescript-eslint/parser": "^7.0.1",
|
|
80
|
+
"eslint": "^8.56.0",
|
|
81
|
+
"jest": "^29.7.0",
|
|
82
|
+
"prettier": "^3.2.5",
|
|
83
|
+
"ts-jest": "^29.1.2",
|
|
84
|
+
"tsup": "^8.5.1",
|
|
85
|
+
"typescript": "^5.9.3"
|
|
86
|
+
}
|
|
87
|
+
}
|