@mimi-ng/cli 0.3.0 → 0.4.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/README.md +20 -1
- package/dist/init/css.js +1 -1
- package/dist/init/index.js +25 -0
- package/dist/init/paths.js +20 -0
- package/dist/registry.json +112 -1
- package/dist/templates/blocks/login-01/index.ts +1 -0
- package/dist/templates/blocks/login-01/login-01.html +174 -0
- package/dist/templates/blocks/login-01/login-01.ts +105 -0
- package/dist/templates/blocks/login-02/index.ts +1 -0
- package/dist/templates/blocks/login-02/login-02.html +186 -0
- package/dist/templates/blocks/login-02/login-02.ts +92 -0
- package/dist/templates/blocks/otp-01/index.ts +1 -0
- package/dist/templates/blocks/otp-01/otp-01.html +166 -0
- package/dist/templates/blocks/otp-01/otp-01.ts +212 -0
- package/dist/templates/blocks/pricing-01/index.ts +1 -0
- package/dist/templates/blocks/pricing-01/pricing-01.html +173 -0
- package/dist/templates/blocks/pricing-01/pricing-01.ts +178 -0
- package/dist/templates/blocks/settings-01/index.ts +1 -0
- package/dist/templates/blocks/settings-01/settings-01.html +424 -0
- package/dist/templates/blocks/settings-01/settings-01.ts +382 -0
- package/dist/templates/blocks/signup-01/index.ts +1 -0
- package/dist/templates/blocks/signup-01/signup-01.html +332 -0
- package/dist/templates/blocks/signup-01/signup-01.ts +176 -0
- package/dist/templates/components/tabs/tabs.ts +88 -23
- package/dist/ui/index.js +128 -10
- package/dist/ui/schema.json +26 -2
- package/dist/utils/project.js +35 -0
- package/dist/utils/tailwind.js +80 -0
- package/dist/utils/write-files.js +37 -7
- package/package.json +1 -1
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.hasFileChanges = exports.emptyReport = exports.MANIFEST = exports.BASE_DIR = void 0;
|
|
3
|
+
exports.isBlockFile = exports.hasFileChanges = exports.emptyReport = exports.MANIFEST = exports.BASE_DIR = void 0;
|
|
4
4
|
exports.projectPathOf = projectPathOf;
|
|
5
|
+
exports.targetPathOf = targetPathOf;
|
|
5
6
|
exports.basePathOf = basePathOf;
|
|
6
7
|
exports.writeTemplates = writeTemplates;
|
|
7
8
|
exports.blockedMessages = blockedMessages;
|
|
@@ -9,6 +10,7 @@ exports.compareVersions = compareVersions;
|
|
|
9
10
|
exports.updatedMessages = updatedMessages;
|
|
10
11
|
const schematics_1 = require("@angular-devkit/schematics");
|
|
11
12
|
const registry_1 = require("../registry");
|
|
13
|
+
const project_1 = require("./project");
|
|
12
14
|
/** Carpeta de las copias originales, en la raíz del workspace. Debe quedar en git. */
|
|
13
15
|
exports.BASE_DIR = '.mimi/base';
|
|
14
16
|
/** Versión de Mimi con la que se escribió la base de cada archivo. */
|
|
@@ -34,7 +36,26 @@ exports.hasFileChanges = hasFileChanges;
|
|
|
34
36
|
function projectPathOf(file) {
|
|
35
37
|
return file.replace(/^components\//, '');
|
|
36
38
|
}
|
|
37
|
-
/**
|
|
39
|
+
/** Prefijo de los archivos de un Block en las plantillas (`blocks/login-01/login-01.ts`). */
|
|
40
|
+
const BLOCKS_PREFIX = 'blocks/';
|
|
41
|
+
/** ¿Es un archivo de un Block? */
|
|
42
|
+
const isBlockFile = (file) => file.startsWith(BLOCKS_PREFIX);
|
|
43
|
+
exports.isBlockFile = isBlockFile;
|
|
44
|
+
/**
|
|
45
|
+
* Ruta en el proyecto de un archivo de las plantillas: los Blocks van a su carpeta, sin
|
|
46
|
+
* `blocks/` (`blocks/login-01/login-01.ts` → `<blocksDir>/login-01/login-01.ts`); el resto, a la
|
|
47
|
+
* de componentes (ver projectPathOf).
|
|
48
|
+
*/
|
|
49
|
+
function targetPathOf(file, componentsDir, blocksDir) {
|
|
50
|
+
return (0, exports.isBlockFile)(file)
|
|
51
|
+
? `${blocksDir}/${file.slice(BLOCKS_PREFIX.length)}`
|
|
52
|
+
: `${componentsDir}/${projectPathOf(file)}`;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Copia original en .mimi/base, con la misma estructura (`.mimi/base/button/button.ts`). Los
|
|
56
|
+
* Blocks conservan `blocks/` (`.mimi/base/blocks/login-01/login-01.ts`), y esa es también su
|
|
57
|
+
* clave en el manifiesto.
|
|
58
|
+
*/
|
|
38
59
|
function basePathOf(file) {
|
|
39
60
|
return `${exports.BASE_DIR}/${projectPathOf(file)}`;
|
|
40
61
|
}
|
|
@@ -88,7 +109,7 @@ function writeTemplates(options) {
|
|
|
88
109
|
const write = (tree) => {
|
|
89
110
|
const manifest = readManifest(tree);
|
|
90
111
|
let manifestChanged = false;
|
|
91
|
-
const targetOf = (file) =>
|
|
112
|
+
const targetOf = (file) => targetPathOf(file, options.componentsDir, options.blocksDir ?? (0, project_1.defaultBlocksDir)(options.componentsDir));
|
|
92
113
|
const stateOf = (file) => {
|
|
93
114
|
const target = targetOf(file);
|
|
94
115
|
if (!tree.exists(target))
|
|
@@ -219,8 +240,8 @@ function writeTemplates(options) {
|
|
|
219
240
|
* Los avisos de los ítems que no se escribieron (`report.blocked`): qué no se actualizó, por qué
|
|
220
241
|
* y qué hacer. Nunca dicen «actualizado».
|
|
221
242
|
*/
|
|
222
|
-
function blockedMessages(report, componentsDir, version) {
|
|
223
|
-
const path = (file) =>
|
|
243
|
+
function blockedMessages(report, componentsDir, version, blocksDir = (0, project_1.defaultBlocksDir)(componentsDir)) {
|
|
244
|
+
const path = (file) => targetPathOf(file, componentsDir, blocksDir);
|
|
224
245
|
return report.blocked.map(({ item, files, dependency, installed }) => {
|
|
225
246
|
if (dependency) {
|
|
226
247
|
const needs = `necesita ${dependency} ${version}, que no se actualizó (ver el aviso de ${dependency}).`;
|
|
@@ -228,9 +249,18 @@ function blockedMessages(report, componentsDir, version) {
|
|
|
228
249
|
? `${item} no se actualizó a ${version}: ${needs}`
|
|
229
250
|
: `${item} no se agregó: ${needs}`;
|
|
230
251
|
}
|
|
231
|
-
const
|
|
232
|
-
const label = isTheme ? 'El tema' : item;
|
|
252
|
+
const type = registry_1.registry.items[item]?.type;
|
|
233
253
|
const dir = projectPathOf(files[0]).split('/').slice(0, -1).join('/');
|
|
254
|
+
if (type === 'block') {
|
|
255
|
+
// Lo normal es editar un Block (es una pantalla del usuario): el aviso no alarma (B.1-b).
|
|
256
|
+
return (`${item} no se actualizó a ${version}: es tu pantalla y la modificaste ` +
|
|
257
|
+
`(${files.map(path).join(', ')}), así que no se tocó ninguno de sus archivos. Es lo ` +
|
|
258
|
+
`normal con un Block. La versión de Mimi que modificaste está en ${exports.BASE_DIR}/${dir}/, ` +
|
|
259
|
+
'para comparar. Si quieres la nueva, guarda tus cambios (por ejemplo, en git) y vuelve ' +
|
|
260
|
+
'a ejecutar el comando con --overwrite: reemplaza tu pantalla entera.');
|
|
261
|
+
}
|
|
262
|
+
const isTheme = type === 'theme';
|
|
263
|
+
const label = isTheme ? 'El tema' : item;
|
|
234
264
|
return (`${label} no se actualizó a ${version} porque modificaste ${files.map(path).join(', ')}. ` +
|
|
235
265
|
'No se cambió ninguno de sus archivos, para no mezclar versiones.' +
|
|
236
266
|
(isTheme
|
package/package.json
CHANGED