@baruk/core 0.3.0 → 0.3.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/CHANGELOG.md +12 -0
- package/README.md +9 -2
- package/dist/cjs/index.js +24 -12
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/legal/company.js +36 -0
- package/dist/cjs/legal/company.js.map +1 -0
- package/dist/cjs/legal/documents.js +549 -0
- package/dist/cjs/legal/documents.js.map +1 -0
- package/dist/cjs/legal/index.js +15 -0
- package/dist/cjs/legal/index.js.map +1 -0
- package/dist/cjs/legal/types.js +33 -0
- package/dist/cjs/legal/types.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/legal/company.d.ts +32 -0
- package/dist/legal/company.d.ts.map +1 -0
- package/dist/legal/company.js +33 -0
- package/dist/legal/company.js.map +1 -0
- package/dist/legal/documents.d.ts +30 -0
- package/dist/legal/documents.d.ts.map +1 -0
- package/dist/legal/documents.js +544 -0
- package/dist/legal/documents.js.map +1 -0
- package/dist/legal/index.d.ts +5 -0
- package/dist/legal/index.d.ts.map +1 -0
- package/dist/legal/index.js +4 -0
- package/dist/legal/index.js.map +1 -0
- package/dist/legal/types.d.ts +114 -0
- package/dist/legal/types.d.ts.map +1 -0
- package/dist/legal/types.js +30 -0
- package/dist/legal/types.js.map +1 -0
- package/package.json +7 -1
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Baruk Legal Center — contratos.
|
|
3
|
+
*
|
|
4
|
+
* ## Por que isto existe fora do produto
|
|
5
|
+
*
|
|
6
|
+
* Os oito documentos jurídicos são os MESMOS para Baruk App, Dental Plataforma,
|
|
7
|
+
* Baruk Office, Baruk Connect e o que vier depois. O que muda entre eles é um
|
|
8
|
+
* punhado de fatos: nome, domínio, controlador, finalidade, integrações. Escrever
|
|
9
|
+
* oito documentos por produto garantiria divergência — a correção entra num, não
|
|
10
|
+
* entra nos outros, e o ecossistema passa a prometer coisas diferentes.
|
|
11
|
+
*
|
|
12
|
+
* Por isso o texto é uma FUNÇÃO do perfil do produto, não um arquivo por produto.
|
|
13
|
+
*
|
|
14
|
+
* ## Fronteira
|
|
15
|
+
*
|
|
16
|
+
* Nada aqui importa React, Next ou o design system. São dados. Cada produto
|
|
17
|
+
* renderiza com a própria casca. O core compartilha apenas contratos e
|
|
18
|
+
* conteúdo parametrizado; cada produto continua dono do seu perfil, rotas e UI.
|
|
19
|
+
*/
|
|
20
|
+
/** Integração de terceiro que trata dados e precisa ser declarada ao titular. */
|
|
21
|
+
export interface LegalSubprocessor {
|
|
22
|
+
name: string;
|
|
23
|
+
/** O que ele faz por nós, em português de gente. */
|
|
24
|
+
purpose: string;
|
|
25
|
+
/** País/região de tratamento, quando relevante para transferência internacional. */
|
|
26
|
+
region?: string;
|
|
27
|
+
}
|
|
28
|
+
/** Endereço cadastral do controlador, mantido de forma estruturada. */
|
|
29
|
+
export interface LegalAddress {
|
|
30
|
+
street: string;
|
|
31
|
+
number: string;
|
|
32
|
+
complement?: string;
|
|
33
|
+
district: string;
|
|
34
|
+
city: string;
|
|
35
|
+
state: string;
|
|
36
|
+
postalCode: string;
|
|
37
|
+
country: string;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Fatos societários compartilhados por todos os produtos do mesmo controlador.
|
|
41
|
+
*
|
|
42
|
+
* Este objeto fica separado do perfil do produto para que razão social, CNPJ,
|
|
43
|
+
* endereço e canal jurídico nunca sejam copiados para cada SaaS.
|
|
44
|
+
*/
|
|
45
|
+
export interface LegalCompanyProfile {
|
|
46
|
+
legalName: string;
|
|
47
|
+
tradeName: string;
|
|
48
|
+
taxId: string;
|
|
49
|
+
address: LegalAddress;
|
|
50
|
+
domain: string;
|
|
51
|
+
legalEmail: string;
|
|
52
|
+
privacyEmail: string;
|
|
53
|
+
dpo: {
|
|
54
|
+
name: string;
|
|
55
|
+
email: string;
|
|
56
|
+
} | null;
|
|
57
|
+
registryStatus: 'active';
|
|
58
|
+
verifiedAt: string;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Os fatos que distinguem um produto do outro. É a ÚNICA coisa que um produto
|
|
62
|
+
* novo precisa preencher para ganhar os oito documentos.
|
|
63
|
+
*/
|
|
64
|
+
export interface LegalProductProfile {
|
|
65
|
+
/** Controlador societário compartilhado — nunca duplicar os campos no produto. */
|
|
66
|
+
company: LegalCompanyProfile;
|
|
67
|
+
/** Nome comercial, como aparece nos documentos. */
|
|
68
|
+
productName: string;
|
|
69
|
+
/** Domínio canônico, sem protocolo. */
|
|
70
|
+
domain: string;
|
|
71
|
+
/** Canal geral de contato. */
|
|
72
|
+
contactEmail: string;
|
|
73
|
+
/** Uma frase: para que serve o produto. Entra na finalidade do tratamento. */
|
|
74
|
+
purpose: string;
|
|
75
|
+
/** Quem usa o produto — define os titulares cujos dados são tratados. */
|
|
76
|
+
audience: string;
|
|
77
|
+
/** Categorias de dados pessoais efetivamente coletadas. */
|
|
78
|
+
personalDataCollected: string[];
|
|
79
|
+
/** Terceiros que tratam dados em nome do produto. */
|
|
80
|
+
subprocessors: LegalSubprocessor[];
|
|
81
|
+
/** Dias de teste gratuito. Usado na política de cobrança. */
|
|
82
|
+
trialDays: number;
|
|
83
|
+
/** Foro de eleição. */
|
|
84
|
+
jurisdiction: string;
|
|
85
|
+
}
|
|
86
|
+
/** Um bloco de conteúdo. Deliberadamente pobre: título, parágrafos, lista. */
|
|
87
|
+
export interface LegalSection {
|
|
88
|
+
heading: string;
|
|
89
|
+
/** Parágrafos corridos. */
|
|
90
|
+
body?: string[];
|
|
91
|
+
/** Itens de lista, quando enumerar é mais claro que discorrer. */
|
|
92
|
+
bullets?: string[];
|
|
93
|
+
}
|
|
94
|
+
export interface LegalDocument {
|
|
95
|
+
/** Slug da URL. Estável — entra em links de aceite e é indexado. */
|
|
96
|
+
slug: LegalSlug;
|
|
97
|
+
title: string;
|
|
98
|
+
/** Frase para `<meta description>` e Open Graph. */
|
|
99
|
+
description: string;
|
|
100
|
+
/** Data de vigência desta versão (ISO, só a data). */
|
|
101
|
+
effectiveDate: string;
|
|
102
|
+
/** Versão semântica simples do documento. */
|
|
103
|
+
version: string;
|
|
104
|
+
/** Resumo honesto do documento, em uma frase, antes do texto formal. */
|
|
105
|
+
summary: string;
|
|
106
|
+
sections: LegalSection[];
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Slugs em português — são URLs públicas, indexadas, e o titular precisa
|
|
110
|
+
* entender para onde está indo antes de clicar.
|
|
111
|
+
*/
|
|
112
|
+
export type LegalSlug = 'privacidade' | 'termos' | 'cookies' | 'cobranca' | 'propriedade-intelectual' | 'licenca' | 'lgpd' | 'avisos-legais';
|
|
113
|
+
export declare const LEGAL_SLUGS: LegalSlug[];
|
|
114
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/legal/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,iFAAiF;AACjF,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB,oFAAoF;IACpF,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,uEAAuE;AACvE,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,YAAY,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC5C,cAAc,EAAE,QAAQ,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,kFAAkF;IAClF,OAAO,EAAE,mBAAmB,CAAC;IAC7B,mDAAmD;IACnD,WAAW,EAAE,MAAM,CAAC;IACpB,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,8EAA8E;IAC9E,OAAO,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,QAAQ,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,qDAAqD;IACrD,aAAa,EAAE,iBAAiB,EAAE,CAAC;IACnC,6DAA6D;IAC7D,SAAS,EAAE,MAAM,CAAC;IAClB,uBAAuB;IACvB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,8EAA8E;AAC9E,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,2BAA2B;IAC3B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,kEAAkE;IAClE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,oEAAoE;IACpE,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,oDAAoD;IACpD,WAAW,EAAE,MAAM,CAAC;IACpB,sDAAsD;IACtD,aAAa,EAAE,MAAM,CAAC;IACtB,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,YAAY,EAAE,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,MAAM,SAAS,GACjB,aAAa,GACb,QAAQ,GACR,SAAS,GACT,UAAU,GACV,yBAAyB,GACzB,SAAS,GACT,MAAM,GACN,eAAe,CAAC;AAEpB,eAAO,MAAM,WAAW,EAAE,SAAS,EASlC,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Baruk Legal Center — contratos.
|
|
3
|
+
*
|
|
4
|
+
* ## Por que isto existe fora do produto
|
|
5
|
+
*
|
|
6
|
+
* Os oito documentos jurídicos são os MESMOS para Baruk App, Dental Plataforma,
|
|
7
|
+
* Baruk Office, Baruk Connect e o que vier depois. O que muda entre eles é um
|
|
8
|
+
* punhado de fatos: nome, domínio, controlador, finalidade, integrações. Escrever
|
|
9
|
+
* oito documentos por produto garantiria divergência — a correção entra num, não
|
|
10
|
+
* entra nos outros, e o ecossistema passa a prometer coisas diferentes.
|
|
11
|
+
*
|
|
12
|
+
* Por isso o texto é uma FUNÇÃO do perfil do produto, não um arquivo por produto.
|
|
13
|
+
*
|
|
14
|
+
* ## Fronteira
|
|
15
|
+
*
|
|
16
|
+
* Nada aqui importa React, Next ou o design system. São dados. Cada produto
|
|
17
|
+
* renderiza com a própria casca. O core compartilha apenas contratos e
|
|
18
|
+
* conteúdo parametrizado; cada produto continua dono do seu perfil, rotas e UI.
|
|
19
|
+
*/
|
|
20
|
+
export const LEGAL_SLUGS = [
|
|
21
|
+
'privacidade',
|
|
22
|
+
'termos',
|
|
23
|
+
'cookies',
|
|
24
|
+
'cobranca',
|
|
25
|
+
'propriedade-intelectual',
|
|
26
|
+
'licenca',
|
|
27
|
+
'lgpd',
|
|
28
|
+
'avisos-legais',
|
|
29
|
+
];
|
|
30
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/legal/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AA2GH,MAAM,CAAC,MAAM,WAAW,GAAgB;IACtC,aAAa;IACb,QAAQ;IACR,SAAS;IACT,UAAU;IACV,yBAAyB;IACzB,SAAS;IACT,MAAM;IACN,eAAe;CAChB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@baruk/core",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/cjs/index.js",
|
|
6
6
|
"module": "./dist/index.js",
|
|
@@ -11,6 +11,12 @@
|
|
|
11
11
|
"import": "./dist/index.js",
|
|
12
12
|
"require": "./dist/cjs/index.js",
|
|
13
13
|
"default": "./dist/index.js"
|
|
14
|
+
},
|
|
15
|
+
"./legal": {
|
|
16
|
+
"types": "./dist/legal/index.d.ts",
|
|
17
|
+
"import": "./dist/legal/index.js",
|
|
18
|
+
"require": "./dist/cjs/legal/index.js",
|
|
19
|
+
"default": "./dist/legal/index.js"
|
|
14
20
|
}
|
|
15
21
|
},
|
|
16
22
|
"files": [
|