rapida-partner 1.0.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.
Files changed (107) hide show
  1. package/README.md +85 -0
  2. package/index.ts +13 -0
  3. package/package.json +27 -0
  4. package/rapidaObject.json +3024 -0
  5. package/src/constants/options/agendaStatus.ts +3 -0
  6. package/src/constants/options/citiesFromBrazil.ts +27852 -0
  7. package/src/constants/options/countriesFromEarth.ts +1761 -0
  8. package/src/constants/options/currencies.ts +142 -0
  9. package/src/constants/options/eventJobs.ts +94 -0
  10. package/src/constants/options/events.ts +22 -0
  11. package/src/constants/options/hours.ts +26 -0
  12. package/src/constants/options/languages.ts +34 -0
  13. package/src/constants/options/statesFromBrazil.ts +29 -0
  14. package/src/controllers/ts_project_to_json_project.ts +17 -0
  15. package/src/controllers/validate-project-json-schema.ts +11 -0
  16. package/src/examples/components/forms/character.form.ts +92 -0
  17. package/src/examples/components/forms/company.form.ts +648 -0
  18. package/src/examples/components/forms/movie.form.ts +205 -0
  19. package/src/examples/components/forms/movieGenre.form.ts +43 -0
  20. package/src/examples/components/forms/person.form.ts +474 -0
  21. package/src/examples/components/lists/character.list.ts +47 -0
  22. package/src/examples/components/lists/company.list.ts +49 -0
  23. package/src/examples/components/lists/movie.list.ts +60 -0
  24. package/src/examples/components/lists/movieGenre.list.ts +51 -0
  25. package/src/examples/components/lists/person.list.ts +50 -0
  26. package/src/examples/modules/character.ts +13 -0
  27. package/src/examples/modules/company.ts +13 -0
  28. package/src/examples/modules/movie.ts +17 -0
  29. package/src/examples/modules/person.ts +13 -0
  30. package/src/examples/projects/movieBackoffice.ts +110 -0
  31. package/src/interfaces/backend-framework-structure.interface.ts +44 -0
  32. package/src/interfaces/data-card.interface.ts +102 -0
  33. package/src/interfaces/data-chart.interface.ts +84 -0
  34. package/src/interfaces/data-detail.interface.ts +123 -0
  35. package/src/interfaces/data-grid.interface.ts +48 -0
  36. package/src/interfaces/data-table.interface.ts +84 -0
  37. package/src/interfaces/form-array.interface.ts +14 -0
  38. package/src/interfaces/form-autocomplete.interface.ts +79 -0
  39. package/src/interfaces/form-button.interface.ts +34 -0
  40. package/src/interfaces/form-condition.interface.ts +26 -0
  41. package/src/interfaces/form-datepicker.interface.ts +18 -0
  42. package/src/interfaces/form-fieldset.interface.ts +13 -0
  43. package/src/interfaces/form-file.interface.ts +57 -0
  44. package/src/interfaces/form-input.interface.ts +69 -0
  45. package/src/interfaces/form-numeric.interface.ts +22 -0
  46. package/src/interfaces/form-pattern.interface.ts +16 -0
  47. package/src/interfaces/form-radiogroup.interface.ts +21 -0
  48. package/src/interfaces/form-select.interface.ts +60 -0
  49. package/src/interfaces/form-switch.interface.ts +15 -0
  50. package/src/interfaces/form-tab.interface.ts +17 -0
  51. package/src/interfaces/form.interface.ts +73 -0
  52. package/src/interfaces/frontend-framework-structure.interface.ts +39 -0
  53. package/src/interfaces/layout-dashboard.interface.ts +52 -0
  54. package/src/interfaces/layout-panel.interface.ts +45 -0
  55. package/src/interfaces/list.interface.ts +50 -0
  56. package/src/interfaces/project-backend.interface.ts +48 -0
  57. package/src/interfaces/project-style.interface.ts +129 -0
  58. package/src/interfaces/project.interface.ts +79 -0
  59. package/src/interfaces/yaml-template-skeleton.interface.ts +35 -0
  60. package/src/schemas/backend-framework-structure.schema.json +194 -0
  61. package/src/schemas/backend.ref.json +77 -0
  62. package/src/schemas/bdd-and-e2e-narratives.ref.json +57 -0
  63. package/src/schemas/bdd-and-e2e.json +36 -0
  64. package/src/schemas/business-plan.ref.json +25 -0
  65. package/src/schemas/business-rules.ref.json +34 -0
  66. package/src/schemas/component-one-of.ref.json +15 -0
  67. package/src/schemas/dashboard.ref.json +111 -0
  68. package/src/schemas/data-card.ref.json +245 -0
  69. package/src/schemas/data-chart.ref.json +168 -0
  70. package/src/schemas/data-detail.ref.json +297 -0
  71. package/src/schemas/data-grid.ref.json +101 -0
  72. package/src/schemas/data-table.ref.json +181 -0
  73. package/src/schemas/external-application.ref.json +97 -0
  74. package/src/schemas/form-array.ref.json +35 -0
  75. package/src/schemas/form-autocomplete-options-api.ref.json +53 -0
  76. package/src/schemas/form-autocomplete.ref.json +204 -0
  77. package/src/schemas/form-button.ref.json +88 -0
  78. package/src/schemas/form-common-api-request.ref.json +29 -0
  79. package/src/schemas/form-common-filters-from-other-form-fields.ref.json +22 -0
  80. package/src/schemas/form-common-form-fields-filled-by-api-response.ref.json +28 -0
  81. package/src/schemas/form-condition.ref.json +70 -0
  82. package/src/schemas/form-datepicker.ref.json +50 -0
  83. package/src/schemas/form-fieldset.ref.json +28 -0
  84. package/src/schemas/form-file.ref.json +115 -0
  85. package/src/schemas/form-input.ref.json +105 -0
  86. package/src/schemas/form-numeric.ref.json +60 -0
  87. package/src/schemas/form-one-of.ref.json +22 -0
  88. package/src/schemas/form-pattern.ref.json +42 -0
  89. package/src/schemas/form-radiogroup.ref.json +64 -0
  90. package/src/schemas/form-select.ref.json +123 -0
  91. package/src/schemas/form-switch.ref.json +39 -0
  92. package/src/schemas/form-tab.ref.json +50 -0
  93. package/src/schemas/form.ref.json +107 -0
  94. package/src/schemas/frontend-framework-structure.schema.json +178 -0
  95. package/src/schemas/frontend.ref.json +30 -0
  96. package/src/schemas/list.ref.json +196 -0
  97. package/src/schemas/module.ref.json +39 -0
  98. package/src/schemas/panel.ref.json +127 -0
  99. package/src/schemas/project.schema.json +39 -0
  100. package/src/schemas/todo.ref.json +10 -0
  101. package/src/utils/email.ts +56 -0
  102. package/src/utils/env.ts +9 -0
  103. package/src/utils/file.ts +139 -0
  104. package/src/utils/json.ts +100 -0
  105. package/src/utils/path.ts +51 -0
  106. package/src/utils/rapida-project.ts +17 -0
  107. package/tsconfig.json +27 -0
@@ -0,0 +1,22 @@
1
+ {
2
+ "$id": "form-common-filters-from-other-form-fields.ref.json",
3
+ "type": "array",
4
+ "items": {
5
+ "type": "object",
6
+ "properties": {
7
+ "formFieldName": {
8
+ "type": "string"
9
+ },
10
+ "filterPropertyName": {
11
+ "type": "string"
12
+ },
13
+ "conditions": {
14
+ "$ref": "form-condition.ref.json"
15
+ }
16
+ },
17
+ "required": [
18
+ "formFieldName",
19
+ "filterPropertyName"
20
+ ]
21
+ }
22
+ }
@@ -0,0 +1,28 @@
1
+ {
2
+ "$id": "form-common-form-fields-filled-by-api-response.ref.json",
3
+ "type": "array",
4
+ "items": {
5
+ "type": "object",
6
+ "properties": {
7
+ "formFieldName": {
8
+ "type": "string"
9
+ },
10
+ "propertiesFromApiToFillFormField": {
11
+ "type": "array",
12
+ "items": {
13
+ "type": "string"
14
+ }
15
+ },
16
+ "arrayParents": {
17
+ "type": "array",
18
+ "items": {
19
+ "type": "string"
20
+ }
21
+ }
22
+ },
23
+ "required": [
24
+ "formFieldName",
25
+ "propertiesFromApiToFillFormField"
26
+ ]
27
+ }
28
+ }
@@ -0,0 +1,70 @@
1
+ {
2
+ "$id": "form-condition.ref.json",
3
+ "type": "array",
4
+ "items": {
5
+ "type": "object",
6
+ "properties": {
7
+ "type": {
8
+ "type": "string",
9
+ "enum": ["form", "code", "array"]
10
+ },
11
+ "elements": {
12
+ "type": "array",
13
+ "items": {
14
+ "type": "object",
15
+ "properties": {
16
+ "key": {
17
+ "type": "string"
18
+ },
19
+ "value": {},
20
+ "array": {
21
+ "type": "string"
22
+ },
23
+ "comparisonOperator": {
24
+ "type": "string",
25
+ "enum": ["===", ">", ">=", "in", "<", "<=", "!==", "nin"]
26
+ },
27
+ "logicalOperator": {
28
+ "type": "string",
29
+ "enum": ["&&", "!", "nor", "||"]
30
+ }
31
+ },
32
+ "required": ["key", "comparisonOperator"]
33
+ }
34
+ },
35
+ "code": {
36
+ "type": "object",
37
+ "properties": {
38
+ "triggerField": {
39
+ "type": "string"
40
+ },
41
+ "code": {
42
+ "type": "string"
43
+ }
44
+ },
45
+ "required": ["triggerField", "code"]
46
+ },
47
+ "businessRules": {
48
+ "$ref": "business-rules.ref.json"
49
+ },
50
+ "conditionResponse": {
51
+ "type": "string",
52
+ "enum": ["show", "hide", "enable", "disable", "fillFields"]
53
+ },
54
+ "fillFields": {
55
+ "type": "array",
56
+ "items": {
57
+ "type": "object",
58
+ "properties": {
59
+ "fieldKey": {
60
+ "type": "string"
61
+ },
62
+ "value": {}
63
+ },
64
+ "required": ["fieldKey", "value"]
65
+ }
66
+ }
67
+ },
68
+ "required": ["type"]
69
+ }
70
+ }
@@ -0,0 +1,50 @@
1
+ {
2
+ "$id": "form-datepicker.ref.json",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "type": "object",
5
+ "properties": {
6
+ "type": {
7
+ "type": "string",
8
+ "const": "datepicker"
9
+ },
10
+ "name": {
11
+ "type": "string"
12
+ },
13
+ "label": {
14
+ "type": "string"
15
+ },
16
+ "placeholder": {
17
+ "type": "string"
18
+ },
19
+ "tooltip": {
20
+ "type": "string"
21
+ },
22
+ "minDate": {
23
+ "type": "string",
24
+ "format": "date"
25
+ },
26
+ "maxDate": {
27
+ "type": "string",
28
+ "format": "date"
29
+ },
30
+ "isDisabled": {
31
+ "type": "boolean"
32
+ },
33
+ "isDisabledOnUpdate": {
34
+ "type": "boolean"
35
+ },
36
+ "isRequired": {
37
+ "type": "boolean"
38
+ },
39
+ "conditions": {
40
+ "$ref": "form-condition.ref.json"
41
+ },
42
+ "todo": {
43
+ "type": "string"
44
+ },
45
+ "businessRules": {
46
+ "$ref": "business-rules.ref.json"
47
+ }
48
+ },
49
+ "required": ["type", "name", "label"]
50
+ }
@@ -0,0 +1,28 @@
1
+ {
2
+ "$id": "form-fieldset.ref.json",
3
+ "type": "object",
4
+ "properties": {
5
+ "type": {
6
+ "const": "fieldset"
7
+ },
8
+ "conditions": {
9
+ "$ref": "form-condition.ref.json"
10
+ },
11
+ "todo": {
12
+ "type": "string"
13
+ },
14
+ "businessRules": {
15
+ "$ref": "business-rules.ref.json"
16
+ },
17
+ "id": {
18
+ "type": "string"
19
+ },
20
+ "title": {
21
+ "type": "string"
22
+ },
23
+ "elements": {
24
+ "$ref": "form-one-of.ref.json"
25
+ }
26
+ },
27
+ "required": ["type", "id", "title"]
28
+ }
@@ -0,0 +1,115 @@
1
+ {
2
+ "$id": "form-file.ref.json",
3
+ "type": "object",
4
+ "properties": {
5
+ "type": {
6
+ "type": "string",
7
+ "const": "file"
8
+ },
9
+ "name": {
10
+ "type": "string"
11
+ },
12
+ "dataType": {
13
+ "type": "string",
14
+ "enum": [
15
+ "text",
16
+ "number",
17
+ "password",
18
+ "email",
19
+ "color",
20
+ "date",
21
+ "wysiwyg",
22
+ "time",
23
+ "file",
24
+ "array",
25
+ "char",
26
+ "nchar",
27
+ "varchar",
28
+ "varchar2",
29
+ "nvarchar",
30
+ "longtext",
31
+ "clob",
32
+ "nclob",
33
+ "decimal",
34
+ "numeric",
35
+ "integer",
36
+ "float",
37
+ "double",
38
+ "real",
39
+ "timestamp",
40
+ "datetime",
41
+ "datetime2",
42
+ "uniqueidentifier",
43
+ "boolean"
44
+ ]
45
+ },
46
+ "label": {
47
+ "type": "string"
48
+ },
49
+ "placeholder": {
50
+ "type": "string"
51
+ },
52
+ "tooltip": {
53
+ "type": "string"
54
+ },
55
+ "accept": {
56
+ "type": "object",
57
+ "additionalProperties": {
58
+ "type": "array",
59
+ "items": {
60
+ "type": "string"
61
+ }
62
+ }
63
+ },
64
+ "isMultiple": {
65
+ "type": "boolean"
66
+ },
67
+ "maxSize": {
68
+ "type": "number"
69
+ },
70
+ "isDisabled": {
71
+ "type": "boolean"
72
+ },
73
+ "isDisabledOnUpdate": {
74
+ "type": "boolean"
75
+ },
76
+ "isRequired": {
77
+ "type": "boolean"
78
+ },
79
+ "conditions": {
80
+ "$ref": "form-condition.ref.json"
81
+ },
82
+ "todo": {
83
+ "type": "string"
84
+ },
85
+ "businessRules": {
86
+ "$ref": "business-rules.ref.json"
87
+ },
88
+ "validators": {
89
+ "type": "array",
90
+ "items": {
91
+ "type": "string",
92
+ "enum": ["onlyImages", "png", "jpg", "pdf"]
93
+ }
94
+ },
95
+ "storageConfig": {
96
+ "type": "object",
97
+ "properties": {
98
+ "path": {
99
+ "type": "string",
100
+ "description": "Path prefix inside the bucket. E.g., 'public/movies/' or 'private/documents/'. The generator will determine the bucket based on the first segment ('public' or 'private')."
101
+ },
102
+ "fileNameStrategy": {
103
+ "type": "string",
104
+ "enum": ["uuid", "original", "timestamp"]
105
+ },
106
+ "visibility": {
107
+ "type": "string",
108
+ "enum": ["public", "private"]
109
+ }
110
+ },
111
+ "required": ["path", "fileNameStrategy"]
112
+ }
113
+ },
114
+ "required": ["type", "name", "label", "storageConfig"]
115
+ }
@@ -0,0 +1,105 @@
1
+ {
2
+ "$id": "form-input.ref.json",
3
+ "type": "object",
4
+ "properties": {
5
+ "type": {
6
+ "const": "input"
7
+ },
8
+ "name": {
9
+ "type": "string"
10
+ },
11
+ "dataType": {
12
+ "type": "string",
13
+ "enum": [
14
+ "text",
15
+ "number",
16
+ "password",
17
+ "email",
18
+ "color",
19
+ "date",
20
+ "wysiwyg",
21
+ "time",
22
+ "file",
23
+ "array",
24
+ "char",
25
+ "nchar",
26
+ "varchar",
27
+ "varchar2",
28
+ "nvarchar",
29
+ "longtext",
30
+ "clob",
31
+ "nclob",
32
+ "decimal",
33
+ "numeric",
34
+ "integer",
35
+ "float",
36
+ "double",
37
+ "real",
38
+ "timestamp",
39
+ "datetime",
40
+ "datetime2",
41
+ "uniqueidentifier",
42
+ "boolean"
43
+ ]
44
+ },
45
+ "label": {
46
+ "type": "string"
47
+ },
48
+ "placeholder": {
49
+ "type": "string"
50
+ },
51
+ "tooltip": {
52
+ "type": "string"
53
+ },
54
+ "isAutofocus": {
55
+ "type": "boolean"
56
+ },
57
+ "isDisabled": {
58
+ "type": "boolean"
59
+ },
60
+ "isDisabledOnUpdate": {
61
+ "type": "boolean"
62
+ },
63
+ "isRequired": {
64
+ "type": "boolean"
65
+ },
66
+ "isUnique": {
67
+ "type": "boolean"
68
+ },
69
+ "conditions": {
70
+ "$ref": "form-condition.ref.json"
71
+ },
72
+ "validators": {
73
+ "type": "array",
74
+ "items": {
75
+ "type": "string",
76
+ "enum": ["cep", "cpf", "cnpj", "onlyNumbers", "phone", "email"]
77
+ }
78
+ },
79
+ "todo": {
80
+ "type": "string"
81
+ },
82
+ "businessRules": {
83
+ "$ref": "business-rules.ref.json"
84
+ },
85
+ "maxLength": {
86
+ "type": "number"
87
+ },
88
+ "minLength": {
89
+ "type": "number"
90
+ },
91
+ "apiRequest": {
92
+ "$ref": "form-common-api-request.ref.json"
93
+ },
94
+ "maskRegex": {
95
+ "type": "string"
96
+ },
97
+ "suffix": {
98
+ "type": "string"
99
+ },
100
+ "prefix": {
101
+ "type": "string"
102
+ }
103
+ },
104
+ "required": ["type", "dataType", "name", "label"]
105
+ }
@@ -0,0 +1,60 @@
1
+ {
2
+ "$id": "form-numeric.ref.json",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "type": "object",
5
+ "properties": {
6
+ "type": {
7
+ "type": "string",
8
+ "const": "numeric"
9
+ },
10
+ "name": {
11
+ "type": "string"
12
+ },
13
+ "label": {
14
+ "type": "string"
15
+ },
16
+ "placeholder": {
17
+ "type": "string"
18
+ },
19
+ "tooltip": {
20
+ "type": "string"
21
+ },
22
+ "prefix": {
23
+ "type": "string"
24
+ },
25
+ "suffix": {
26
+ "type": "string"
27
+ },
28
+ "decimalScale": {
29
+ "type": "number"
30
+ },
31
+ "fixedDecimalScale": {
32
+ "type": "boolean"
33
+ },
34
+ "thousandSeparator": {
35
+ "type": "boolean"
36
+ },
37
+ "isDisabled": {
38
+ "type": "boolean"
39
+ },
40
+ "isDisabledOnUpdate": {
41
+ "type": "boolean"
42
+ },
43
+ "isRequired": {
44
+ "type": "boolean"
45
+ },
46
+ "isUnique": {
47
+ "type": "boolean"
48
+ },
49
+ "conditions": {
50
+ "$ref": "form-condition.ref.json"
51
+ },
52
+ "todo": {
53
+ "type": "string"
54
+ },
55
+ "businessRules": {
56
+ "$ref": "business-rules.ref.json"
57
+ }
58
+ },
59
+ "required": ["type", "name", "label"]
60
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "$id": "form-one-of.ref.json",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "type": "array",
5
+ "items": {
6
+ "oneOf": [
7
+ { "$ref": "form-array.ref.json" },
8
+ { "$ref": "form-autocomplete.ref.json" },
9
+ { "$ref": "form-input.ref.json" },
10
+ { "$ref": "form-select.ref.json" },
11
+ { "$ref": "form-file.ref.json" },
12
+ { "$ref": "form-tab.ref.json" },
13
+ { "$ref": "form-fieldset.ref.json" },
14
+ { "$ref": "form-button.ref.json" },
15
+ { "$ref": "form-numeric.ref.json" },
16
+ { "$ref": "form-pattern.ref.json" },
17
+ { "$ref": "form-datepicker.ref.json" },
18
+ { "$ref": "form-radiogroup.ref.json" },
19
+ { "$ref": "form-switch.ref.json" }
20
+ ]
21
+ }
22
+ }
@@ -0,0 +1,42 @@
1
+ {
2
+ "$id": "form-pattern.ref.json",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "type": "object",
5
+ "properties": {
6
+ "type": {
7
+ "type": "string",
8
+ "const": "pattern"
9
+ },
10
+ "name": {
11
+ "type": "string"
12
+ },
13
+ "label": {
14
+ "type": "string"
15
+ },
16
+ "format": {
17
+ "type": "string"
18
+ },
19
+ "placeholder": {
20
+ "type": "string"
21
+ },
22
+ "tooltip": {
23
+ "type": "string"
24
+ },
25
+ "isDisabled": {
26
+ "type": "boolean"
27
+ },
28
+ "isRequired": {
29
+ "type": "boolean"
30
+ },
31
+ "conditions": {
32
+ "$ref": "form-condition.ref.json"
33
+ },
34
+ "todo": {
35
+ "type": "string"
36
+ },
37
+ "businessRules": {
38
+ "$ref": "business-rules.ref.json"
39
+ }
40
+ },
41
+ "required": ["type", "name", "label", "format"]
42
+ }
@@ -0,0 +1,64 @@
1
+ {
2
+ "$id": "form-radiogroup.ref.json",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "type": "object",
5
+ "properties": {
6
+ "type": {
7
+ "type": "string",
8
+ "const": "radiogroup"
9
+ },
10
+ "name": {
11
+ "type": "string"
12
+ },
13
+ "label": {
14
+ "type": "string"
15
+ },
16
+ "options": {
17
+ "type": "array",
18
+ "items": {
19
+ "type": "object",
20
+ "properties": {
21
+ "label": {
22
+ "type": "string"
23
+ },
24
+ "value": {
25
+ "oneOf": [
26
+ {
27
+ "type": "string"
28
+ },
29
+ {
30
+ "type": "number"
31
+ },
32
+ {
33
+ "type": "boolean"
34
+ }
35
+ ]
36
+ }
37
+ },
38
+ "required": ["label", "value"]
39
+ }
40
+ },
41
+ "tooltip": {
42
+ "type": "string"
43
+ },
44
+ "isDisabled": {
45
+ "type": "boolean"
46
+ },
47
+ "isDisabledOnUpdate": {
48
+ "type": "boolean"
49
+ },
50
+ "isRequired": {
51
+ "type": "boolean"
52
+ },
53
+ "conditions": {
54
+ "$ref": "form-condition.ref.json"
55
+ },
56
+ "todo": {
57
+ "type": "string"
58
+ },
59
+ "businessRules": {
60
+ "$ref": "business-rules.ref.json"
61
+ }
62
+ },
63
+ "required": ["type", "name", "label", "options"]
64
+ }