@wallavi/vercel-build 0.1.1 → 0.1.3

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 (3) hide show
  1. package/dist/index.d.ts +403 -12
  2. package/dist/index.js +381 -47
  3. package/package.json +3 -3
package/dist/index.d.ts CHANGED
@@ -92,6 +92,19 @@ declare function ejecutarIgnorar(opciones: OpcionesIgnorar): number;
92
92
  declare function comandoIgnorar(args: string[], entorno: Entorno): number;
93
93
  declare const ignorar: typeof comandoIgnorar;
94
94
 
95
+ interface ArgumentosDesplegar {
96
+ carpeta: string;
97
+ antes?: string;
98
+ urlSalud?: string;
99
+ }
100
+ declare function leerArgumentosDesplegar(args: readonly string[]): {
101
+ ok: true;
102
+ valor: ArgumentosDesplegar;
103
+ } | {
104
+ ok: false;
105
+ motivo: string;
106
+ };
107
+
95
108
  declare const API_VERCEL_URL = "https://api.vercel.com";
96
109
  declare const LIMITE_PAGINA_VERCEL = 100;
97
110
  declare const MAX_PAGINAS_VERCEL = 1000;
@@ -918,7 +931,8 @@ interface RespuestaHttp {
918
931
  estado: number;
919
932
  cuerpo: string;
920
933
  }
921
- type SolicitarVercel = (url: string, headers: Record<string, string>) => RespuestaHttp;
934
+ type MetodoHttpVercel = "GET" | "POST";
935
+ type SolicitarVercel = (url: string, headers: Record<string, string>, metodo?: MetodoHttpVercel) => RespuestaHttp;
922
936
  declare const solicitarVercel: SolicitarVercel;
923
937
  declare function pedirJsonVercel(rutaQuery: string, token: string, solicitar?: SolicitarVercel, baseUrl?: string): {
924
938
  estado: number;
@@ -955,22 +969,394 @@ declare function ejecutarMedir(opciones: OpcionesMedir): number;
955
969
  declare function comandoMedir(args: string[], entorno: Entorno): number;
956
970
  declare const medir: typeof comandoMedir;
957
971
 
958
- declare const VARIABLES_VERCEL: readonly ["VERCEL_TOKEN", "VERCEL_ORG_ID", "VERCEL_PROJECT_ID"];
959
- declare const PASOS_VERCEL: readonly [readonly ["pull", "--yes", "--environment=production"], readonly ["build", "--prod"], readonly ["deploy", "--prebuilt", "--prod"]];
960
- declare const PASO_DEPLOY_REMOTO: readonly ["deploy", "--prod", "--yes"];
961
- declare const ARCHIVO_ENV_PRODUCCION: string;
962
- interface ArgumentosDesplegar {
963
- carpeta: string;
964
- antes?: string;
965
- urlSalud?: string;
972
+ declare const INTERVALO_POLL_DEPLOY_MS = 5000;
973
+ declare const TIMEOUT_POLL_DEPLOY_MS = 600000;
974
+ type Dormir = (ms: number) => void;
975
+ declare const dormirSincrono: Dormir;
976
+ declare const esquemaDeploymentPromocion: z.ZodEffects<z.ZodEffects<z.ZodObject<{
977
+ id: z.ZodOptional<z.ZodString>;
978
+ uid: z.ZodOptional<z.ZodString>;
979
+ projectId: z.ZodOptional<z.ZodString>;
980
+ target: z.ZodOptional<z.ZodNullable<z.ZodString>>;
981
+ state: z.ZodOptional<z.ZodEnum<["BUILDING", "ERROR", "INITIALIZING", "QUEUED", "READY", "CANCELED"]>>;
982
+ readyState: z.ZodOptional<z.ZodEnum<["BUILDING", "ERROR", "INITIALIZING", "QUEUED", "READY", "CANCELED"]>>;
983
+ readySubstate: z.ZodOptional<z.ZodString>;
984
+ url: z.ZodOptional<z.ZodString>;
985
+ alias: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>;
986
+ aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
987
+ meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
988
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
989
+ id: z.ZodOptional<z.ZodString>;
990
+ uid: z.ZodOptional<z.ZodString>;
991
+ projectId: z.ZodOptional<z.ZodString>;
992
+ target: z.ZodOptional<z.ZodNullable<z.ZodString>>;
993
+ state: z.ZodOptional<z.ZodEnum<["BUILDING", "ERROR", "INITIALIZING", "QUEUED", "READY", "CANCELED"]>>;
994
+ readyState: z.ZodOptional<z.ZodEnum<["BUILDING", "ERROR", "INITIALIZING", "QUEUED", "READY", "CANCELED"]>>;
995
+ readySubstate: z.ZodOptional<z.ZodString>;
996
+ url: z.ZodOptional<z.ZodString>;
997
+ alias: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>;
998
+ aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
999
+ meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1000
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1001
+ id: z.ZodOptional<z.ZodString>;
1002
+ uid: z.ZodOptional<z.ZodString>;
1003
+ projectId: z.ZodOptional<z.ZodString>;
1004
+ target: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1005
+ state: z.ZodOptional<z.ZodEnum<["BUILDING", "ERROR", "INITIALIZING", "QUEUED", "READY", "CANCELED"]>>;
1006
+ readyState: z.ZodOptional<z.ZodEnum<["BUILDING", "ERROR", "INITIALIZING", "QUEUED", "READY", "CANCELED"]>>;
1007
+ readySubstate: z.ZodOptional<z.ZodString>;
1008
+ url: z.ZodOptional<z.ZodString>;
1009
+ alias: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>;
1010
+ aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1011
+ meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1012
+ }, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{
1013
+ id: z.ZodOptional<z.ZodString>;
1014
+ uid: z.ZodOptional<z.ZodString>;
1015
+ projectId: z.ZodOptional<z.ZodString>;
1016
+ target: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1017
+ state: z.ZodOptional<z.ZodEnum<["BUILDING", "ERROR", "INITIALIZING", "QUEUED", "READY", "CANCELED"]>>;
1018
+ readyState: z.ZodOptional<z.ZodEnum<["BUILDING", "ERROR", "INITIALIZING", "QUEUED", "READY", "CANCELED"]>>;
1019
+ readySubstate: z.ZodOptional<z.ZodString>;
1020
+ url: z.ZodOptional<z.ZodString>;
1021
+ alias: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>;
1022
+ aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1023
+ meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1024
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1025
+ id: z.ZodOptional<z.ZodString>;
1026
+ uid: z.ZodOptional<z.ZodString>;
1027
+ projectId: z.ZodOptional<z.ZodString>;
1028
+ target: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1029
+ state: z.ZodOptional<z.ZodEnum<["BUILDING", "ERROR", "INITIALIZING", "QUEUED", "READY", "CANCELED"]>>;
1030
+ readyState: z.ZodOptional<z.ZodEnum<["BUILDING", "ERROR", "INITIALIZING", "QUEUED", "READY", "CANCELED"]>>;
1031
+ readySubstate: z.ZodOptional<z.ZodString>;
1032
+ url: z.ZodOptional<z.ZodString>;
1033
+ alias: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>;
1034
+ aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1035
+ meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1036
+ }, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{
1037
+ id: z.ZodOptional<z.ZodString>;
1038
+ uid: z.ZodOptional<z.ZodString>;
1039
+ projectId: z.ZodOptional<z.ZodString>;
1040
+ target: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1041
+ state: z.ZodOptional<z.ZodEnum<["BUILDING", "ERROR", "INITIALIZING", "QUEUED", "READY", "CANCELED"]>>;
1042
+ readyState: z.ZodOptional<z.ZodEnum<["BUILDING", "ERROR", "INITIALIZING", "QUEUED", "READY", "CANCELED"]>>;
1043
+ readySubstate: z.ZodOptional<z.ZodString>;
1044
+ url: z.ZodOptional<z.ZodString>;
1045
+ alias: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>;
1046
+ aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1047
+ meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1048
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1049
+ id: z.ZodOptional<z.ZodString>;
1050
+ uid: z.ZodOptional<z.ZodString>;
1051
+ projectId: z.ZodOptional<z.ZodString>;
1052
+ target: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1053
+ state: z.ZodOptional<z.ZodEnum<["BUILDING", "ERROR", "INITIALIZING", "QUEUED", "READY", "CANCELED"]>>;
1054
+ readyState: z.ZodOptional<z.ZodEnum<["BUILDING", "ERROR", "INITIALIZING", "QUEUED", "READY", "CANCELED"]>>;
1055
+ readySubstate: z.ZodOptional<z.ZodString>;
1056
+ url: z.ZodOptional<z.ZodString>;
1057
+ alias: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>;
1058
+ aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1059
+ meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1060
+ }, z.ZodTypeAny, "passthrough">>;
1061
+ declare const esquemaListaDeploymentsPromocion: z.ZodObject<{
1062
+ deployments: z.ZodArray<z.ZodEffects<z.ZodEffects<z.ZodObject<{
1063
+ id: z.ZodOptional<z.ZodString>;
1064
+ uid: z.ZodOptional<z.ZodString>;
1065
+ projectId: z.ZodOptional<z.ZodString>;
1066
+ target: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1067
+ state: z.ZodOptional<z.ZodEnum<["BUILDING", "ERROR", "INITIALIZING", "QUEUED", "READY", "CANCELED"]>>;
1068
+ readyState: z.ZodOptional<z.ZodEnum<["BUILDING", "ERROR", "INITIALIZING", "QUEUED", "READY", "CANCELED"]>>;
1069
+ readySubstate: z.ZodOptional<z.ZodString>;
1070
+ url: z.ZodOptional<z.ZodString>;
1071
+ alias: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>;
1072
+ aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1073
+ meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1074
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
1075
+ id: z.ZodOptional<z.ZodString>;
1076
+ uid: z.ZodOptional<z.ZodString>;
1077
+ projectId: z.ZodOptional<z.ZodString>;
1078
+ target: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1079
+ state: z.ZodOptional<z.ZodEnum<["BUILDING", "ERROR", "INITIALIZING", "QUEUED", "READY", "CANCELED"]>>;
1080
+ readyState: z.ZodOptional<z.ZodEnum<["BUILDING", "ERROR", "INITIALIZING", "QUEUED", "READY", "CANCELED"]>>;
1081
+ readySubstate: z.ZodOptional<z.ZodString>;
1082
+ url: z.ZodOptional<z.ZodString>;
1083
+ alias: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>;
1084
+ aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1085
+ meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1086
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1087
+ id: z.ZodOptional<z.ZodString>;
1088
+ uid: z.ZodOptional<z.ZodString>;
1089
+ projectId: z.ZodOptional<z.ZodString>;
1090
+ target: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1091
+ state: z.ZodOptional<z.ZodEnum<["BUILDING", "ERROR", "INITIALIZING", "QUEUED", "READY", "CANCELED"]>>;
1092
+ readyState: z.ZodOptional<z.ZodEnum<["BUILDING", "ERROR", "INITIALIZING", "QUEUED", "READY", "CANCELED"]>>;
1093
+ readySubstate: z.ZodOptional<z.ZodString>;
1094
+ url: z.ZodOptional<z.ZodString>;
1095
+ alias: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>;
1096
+ aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1097
+ meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1098
+ }, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{
1099
+ id: z.ZodOptional<z.ZodString>;
1100
+ uid: z.ZodOptional<z.ZodString>;
1101
+ projectId: z.ZodOptional<z.ZodString>;
1102
+ target: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1103
+ state: z.ZodOptional<z.ZodEnum<["BUILDING", "ERROR", "INITIALIZING", "QUEUED", "READY", "CANCELED"]>>;
1104
+ readyState: z.ZodOptional<z.ZodEnum<["BUILDING", "ERROR", "INITIALIZING", "QUEUED", "READY", "CANCELED"]>>;
1105
+ readySubstate: z.ZodOptional<z.ZodString>;
1106
+ url: z.ZodOptional<z.ZodString>;
1107
+ alias: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>;
1108
+ aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1109
+ meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1110
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1111
+ id: z.ZodOptional<z.ZodString>;
1112
+ uid: z.ZodOptional<z.ZodString>;
1113
+ projectId: z.ZodOptional<z.ZodString>;
1114
+ target: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1115
+ state: z.ZodOptional<z.ZodEnum<["BUILDING", "ERROR", "INITIALIZING", "QUEUED", "READY", "CANCELED"]>>;
1116
+ readyState: z.ZodOptional<z.ZodEnum<["BUILDING", "ERROR", "INITIALIZING", "QUEUED", "READY", "CANCELED"]>>;
1117
+ readySubstate: z.ZodOptional<z.ZodString>;
1118
+ url: z.ZodOptional<z.ZodString>;
1119
+ alias: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>;
1120
+ aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1121
+ meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1122
+ }, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{
1123
+ id: z.ZodOptional<z.ZodString>;
1124
+ uid: z.ZodOptional<z.ZodString>;
1125
+ projectId: z.ZodOptional<z.ZodString>;
1126
+ target: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1127
+ state: z.ZodOptional<z.ZodEnum<["BUILDING", "ERROR", "INITIALIZING", "QUEUED", "READY", "CANCELED"]>>;
1128
+ readyState: z.ZodOptional<z.ZodEnum<["BUILDING", "ERROR", "INITIALIZING", "QUEUED", "READY", "CANCELED"]>>;
1129
+ readySubstate: z.ZodOptional<z.ZodString>;
1130
+ url: z.ZodOptional<z.ZodString>;
1131
+ alias: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>;
1132
+ aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1133
+ meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1134
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1135
+ id: z.ZodOptional<z.ZodString>;
1136
+ uid: z.ZodOptional<z.ZodString>;
1137
+ projectId: z.ZodOptional<z.ZodString>;
1138
+ target: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1139
+ state: z.ZodOptional<z.ZodEnum<["BUILDING", "ERROR", "INITIALIZING", "QUEUED", "READY", "CANCELED"]>>;
1140
+ readyState: z.ZodOptional<z.ZodEnum<["BUILDING", "ERROR", "INITIALIZING", "QUEUED", "READY", "CANCELED"]>>;
1141
+ readySubstate: z.ZodOptional<z.ZodString>;
1142
+ url: z.ZodOptional<z.ZodString>;
1143
+ alias: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>;
1144
+ aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1145
+ meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1146
+ }, z.ZodTypeAny, "passthrough">>, "many">;
1147
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
1148
+ deployments: z.ZodArray<z.ZodEffects<z.ZodEffects<z.ZodObject<{
1149
+ id: z.ZodOptional<z.ZodString>;
1150
+ uid: z.ZodOptional<z.ZodString>;
1151
+ projectId: z.ZodOptional<z.ZodString>;
1152
+ target: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1153
+ state: z.ZodOptional<z.ZodEnum<["BUILDING", "ERROR", "INITIALIZING", "QUEUED", "READY", "CANCELED"]>>;
1154
+ readyState: z.ZodOptional<z.ZodEnum<["BUILDING", "ERROR", "INITIALIZING", "QUEUED", "READY", "CANCELED"]>>;
1155
+ readySubstate: z.ZodOptional<z.ZodString>;
1156
+ url: z.ZodOptional<z.ZodString>;
1157
+ alias: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>;
1158
+ aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1159
+ meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1160
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
1161
+ id: z.ZodOptional<z.ZodString>;
1162
+ uid: z.ZodOptional<z.ZodString>;
1163
+ projectId: z.ZodOptional<z.ZodString>;
1164
+ target: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1165
+ state: z.ZodOptional<z.ZodEnum<["BUILDING", "ERROR", "INITIALIZING", "QUEUED", "READY", "CANCELED"]>>;
1166
+ readyState: z.ZodOptional<z.ZodEnum<["BUILDING", "ERROR", "INITIALIZING", "QUEUED", "READY", "CANCELED"]>>;
1167
+ readySubstate: z.ZodOptional<z.ZodString>;
1168
+ url: z.ZodOptional<z.ZodString>;
1169
+ alias: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>;
1170
+ aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1171
+ meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1172
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1173
+ id: z.ZodOptional<z.ZodString>;
1174
+ uid: z.ZodOptional<z.ZodString>;
1175
+ projectId: z.ZodOptional<z.ZodString>;
1176
+ target: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1177
+ state: z.ZodOptional<z.ZodEnum<["BUILDING", "ERROR", "INITIALIZING", "QUEUED", "READY", "CANCELED"]>>;
1178
+ readyState: z.ZodOptional<z.ZodEnum<["BUILDING", "ERROR", "INITIALIZING", "QUEUED", "READY", "CANCELED"]>>;
1179
+ readySubstate: z.ZodOptional<z.ZodString>;
1180
+ url: z.ZodOptional<z.ZodString>;
1181
+ alias: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>;
1182
+ aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1183
+ meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1184
+ }, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{
1185
+ id: z.ZodOptional<z.ZodString>;
1186
+ uid: z.ZodOptional<z.ZodString>;
1187
+ projectId: z.ZodOptional<z.ZodString>;
1188
+ target: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1189
+ state: z.ZodOptional<z.ZodEnum<["BUILDING", "ERROR", "INITIALIZING", "QUEUED", "READY", "CANCELED"]>>;
1190
+ readyState: z.ZodOptional<z.ZodEnum<["BUILDING", "ERROR", "INITIALIZING", "QUEUED", "READY", "CANCELED"]>>;
1191
+ readySubstate: z.ZodOptional<z.ZodString>;
1192
+ url: z.ZodOptional<z.ZodString>;
1193
+ alias: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>;
1194
+ aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1195
+ meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1196
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1197
+ id: z.ZodOptional<z.ZodString>;
1198
+ uid: z.ZodOptional<z.ZodString>;
1199
+ projectId: z.ZodOptional<z.ZodString>;
1200
+ target: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1201
+ state: z.ZodOptional<z.ZodEnum<["BUILDING", "ERROR", "INITIALIZING", "QUEUED", "READY", "CANCELED"]>>;
1202
+ readyState: z.ZodOptional<z.ZodEnum<["BUILDING", "ERROR", "INITIALIZING", "QUEUED", "READY", "CANCELED"]>>;
1203
+ readySubstate: z.ZodOptional<z.ZodString>;
1204
+ url: z.ZodOptional<z.ZodString>;
1205
+ alias: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>;
1206
+ aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1207
+ meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1208
+ }, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{
1209
+ id: z.ZodOptional<z.ZodString>;
1210
+ uid: z.ZodOptional<z.ZodString>;
1211
+ projectId: z.ZodOptional<z.ZodString>;
1212
+ target: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1213
+ state: z.ZodOptional<z.ZodEnum<["BUILDING", "ERROR", "INITIALIZING", "QUEUED", "READY", "CANCELED"]>>;
1214
+ readyState: z.ZodOptional<z.ZodEnum<["BUILDING", "ERROR", "INITIALIZING", "QUEUED", "READY", "CANCELED"]>>;
1215
+ readySubstate: z.ZodOptional<z.ZodString>;
1216
+ url: z.ZodOptional<z.ZodString>;
1217
+ alias: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>;
1218
+ aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1219
+ meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1220
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1221
+ id: z.ZodOptional<z.ZodString>;
1222
+ uid: z.ZodOptional<z.ZodString>;
1223
+ projectId: z.ZodOptional<z.ZodString>;
1224
+ target: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1225
+ state: z.ZodOptional<z.ZodEnum<["BUILDING", "ERROR", "INITIALIZING", "QUEUED", "READY", "CANCELED"]>>;
1226
+ readyState: z.ZodOptional<z.ZodEnum<["BUILDING", "ERROR", "INITIALIZING", "QUEUED", "READY", "CANCELED"]>>;
1227
+ readySubstate: z.ZodOptional<z.ZodString>;
1228
+ url: z.ZodOptional<z.ZodString>;
1229
+ alias: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>;
1230
+ aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1231
+ meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1232
+ }, z.ZodTypeAny, "passthrough">>, "many">;
1233
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1234
+ deployments: z.ZodArray<z.ZodEffects<z.ZodEffects<z.ZodObject<{
1235
+ id: z.ZodOptional<z.ZodString>;
1236
+ uid: z.ZodOptional<z.ZodString>;
1237
+ projectId: z.ZodOptional<z.ZodString>;
1238
+ target: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1239
+ state: z.ZodOptional<z.ZodEnum<["BUILDING", "ERROR", "INITIALIZING", "QUEUED", "READY", "CANCELED"]>>;
1240
+ readyState: z.ZodOptional<z.ZodEnum<["BUILDING", "ERROR", "INITIALIZING", "QUEUED", "READY", "CANCELED"]>>;
1241
+ readySubstate: z.ZodOptional<z.ZodString>;
1242
+ url: z.ZodOptional<z.ZodString>;
1243
+ alias: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>;
1244
+ aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1245
+ meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1246
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
1247
+ id: z.ZodOptional<z.ZodString>;
1248
+ uid: z.ZodOptional<z.ZodString>;
1249
+ projectId: z.ZodOptional<z.ZodString>;
1250
+ target: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1251
+ state: z.ZodOptional<z.ZodEnum<["BUILDING", "ERROR", "INITIALIZING", "QUEUED", "READY", "CANCELED"]>>;
1252
+ readyState: z.ZodOptional<z.ZodEnum<["BUILDING", "ERROR", "INITIALIZING", "QUEUED", "READY", "CANCELED"]>>;
1253
+ readySubstate: z.ZodOptional<z.ZodString>;
1254
+ url: z.ZodOptional<z.ZodString>;
1255
+ alias: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>;
1256
+ aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1257
+ meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1258
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1259
+ id: z.ZodOptional<z.ZodString>;
1260
+ uid: z.ZodOptional<z.ZodString>;
1261
+ projectId: z.ZodOptional<z.ZodString>;
1262
+ target: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1263
+ state: z.ZodOptional<z.ZodEnum<["BUILDING", "ERROR", "INITIALIZING", "QUEUED", "READY", "CANCELED"]>>;
1264
+ readyState: z.ZodOptional<z.ZodEnum<["BUILDING", "ERROR", "INITIALIZING", "QUEUED", "READY", "CANCELED"]>>;
1265
+ readySubstate: z.ZodOptional<z.ZodString>;
1266
+ url: z.ZodOptional<z.ZodString>;
1267
+ alias: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>;
1268
+ aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1269
+ meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1270
+ }, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{
1271
+ id: z.ZodOptional<z.ZodString>;
1272
+ uid: z.ZodOptional<z.ZodString>;
1273
+ projectId: z.ZodOptional<z.ZodString>;
1274
+ target: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1275
+ state: z.ZodOptional<z.ZodEnum<["BUILDING", "ERROR", "INITIALIZING", "QUEUED", "READY", "CANCELED"]>>;
1276
+ readyState: z.ZodOptional<z.ZodEnum<["BUILDING", "ERROR", "INITIALIZING", "QUEUED", "READY", "CANCELED"]>>;
1277
+ readySubstate: z.ZodOptional<z.ZodString>;
1278
+ url: z.ZodOptional<z.ZodString>;
1279
+ alias: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>;
1280
+ aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1281
+ meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1282
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1283
+ id: z.ZodOptional<z.ZodString>;
1284
+ uid: z.ZodOptional<z.ZodString>;
1285
+ projectId: z.ZodOptional<z.ZodString>;
1286
+ target: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1287
+ state: z.ZodOptional<z.ZodEnum<["BUILDING", "ERROR", "INITIALIZING", "QUEUED", "READY", "CANCELED"]>>;
1288
+ readyState: z.ZodOptional<z.ZodEnum<["BUILDING", "ERROR", "INITIALIZING", "QUEUED", "READY", "CANCELED"]>>;
1289
+ readySubstate: z.ZodOptional<z.ZodString>;
1290
+ url: z.ZodOptional<z.ZodString>;
1291
+ alias: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>;
1292
+ aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1293
+ meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1294
+ }, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{
1295
+ id: z.ZodOptional<z.ZodString>;
1296
+ uid: z.ZodOptional<z.ZodString>;
1297
+ projectId: z.ZodOptional<z.ZodString>;
1298
+ target: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1299
+ state: z.ZodOptional<z.ZodEnum<["BUILDING", "ERROR", "INITIALIZING", "QUEUED", "READY", "CANCELED"]>>;
1300
+ readyState: z.ZodOptional<z.ZodEnum<["BUILDING", "ERROR", "INITIALIZING", "QUEUED", "READY", "CANCELED"]>>;
1301
+ readySubstate: z.ZodOptional<z.ZodString>;
1302
+ url: z.ZodOptional<z.ZodString>;
1303
+ alias: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>;
1304
+ aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1305
+ meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1306
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1307
+ id: z.ZodOptional<z.ZodString>;
1308
+ uid: z.ZodOptional<z.ZodString>;
1309
+ projectId: z.ZodOptional<z.ZodString>;
1310
+ target: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1311
+ state: z.ZodOptional<z.ZodEnum<["BUILDING", "ERROR", "INITIALIZING", "QUEUED", "READY", "CANCELED"]>>;
1312
+ readyState: z.ZodOptional<z.ZodEnum<["BUILDING", "ERROR", "INITIALIZING", "QUEUED", "READY", "CANCELED"]>>;
1313
+ readySubstate: z.ZodOptional<z.ZodString>;
1314
+ url: z.ZodOptional<z.ZodString>;
1315
+ alias: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>;
1316
+ aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1317
+ meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1318
+ }, z.ZodTypeAny, "passthrough">>, "many">;
1319
+ }, z.ZodTypeAny, "passthrough">>;
1320
+ type DeploymentPromocion = z.infer<typeof esquemaDeploymentPromocion>;
1321
+ declare function limpiarIdOUrlDeploy(valor: string): string | null;
1322
+ declare function extraerIdOUrlDeploy(salida: string, error?: string): string | null;
1323
+ declare function extraerAliasProduccion(deployment: DeploymentPromocion): string | null;
1324
+ interface OpcionesPromover {
1325
+ teamId?: string;
1326
+ projectId?: string;
1327
+ token?: string;
1328
+ sha?: string;
1329
+ urlDeploy?: string | null;
1330
+ salidaDeploy?: string;
1331
+ errorDeploy?: string;
1332
+ cwd?: string;
1333
+ carpeta?: string;
1334
+ env?: NodeJS.ProcessEnv;
1335
+ ejecutar?: Ejecutar;
1336
+ solicitar?: SolicitarVercel;
1337
+ dormir?: Dormir;
1338
+ intervaloMs?: number;
1339
+ timeoutMs?: number;
1340
+ maxIntentos?: number;
1341
+ baseUrl?: string;
966
1342
  }
967
- declare function leerArgumentosDesplegar(args: readonly string[]): {
1343
+ type ResultadoPromocion = {
968
1344
  ok: true;
969
- valor: ArgumentosDesplegar;
1345
+ codigo: 0;
1346
+ deploymentId: string;
1347
+ alias: string | null;
1348
+ url: string | null;
970
1349
  } | {
971
1350
  ok: false;
1351
+ codigo: 1;
972
1352
  motivo: string;
973
1353
  };
1354
+ declare function esperarYPromoverDeploy(opciones: OpcionesPromover): ResultadoPromocion;
1355
+
1356
+ declare const VARIABLES_VERCEL: readonly ["VERCEL_TOKEN", "VERCEL_ORG_ID", "VERCEL_PROJECT_ID"];
1357
+ declare const PASOS_VERCEL: readonly [readonly ["pull", "--yes", "--environment=production"], readonly ["build", "--prod"], readonly ["deploy", "--prebuilt", "--prod"]];
1358
+ declare const PASO_DEPLOY_REMOTO: readonly ["deploy", "--prod", "--yes", "--no-wait"];
1359
+ declare const ARCHIVO_ENV_PRODUCCION: string;
974
1360
  declare function tieneVariablesSensibles(carpeta: string): boolean;
975
1361
  declare function extraerUrlSalud(salida: string, error?: string): string | null;
976
1362
  interface OpcionesDesplegar extends Entorno {
@@ -980,6 +1366,11 @@ interface OpcionesDesplegar extends Entorno {
980
1366
  ejecutar?: Ejecutar;
981
1367
  evaluar?: (opciones: OpcionesCambios) => Evaluacion;
982
1368
  solicitar?: SolicitarVercel;
1369
+ dormir?: Dormir;
1370
+ intervaloPollMs?: number;
1371
+ timeoutPollMs?: number;
1372
+ maxIntentosPoll?: number;
1373
+ baseUrl?: string;
983
1374
  }
984
1375
  declare function ejecutarDesplegar(opciones: OpcionesDesplegar): number;
985
1376
  declare function comandoDesplegar(args: string[], entorno: Entorno): number;
@@ -1291,4 +1682,4 @@ type Comando = (args: string[], entorno: Entorno) => number;
1291
1682
  declare const COMANDOS: Record<string, Comando>;
1292
1683
  declare function principal(argv: string[], entorno: Entorno): number;
1293
1684
 
1294
- export { API_VERCEL_URL, ARCHIVO_CAPTURA_V6, ARCHIVO_CONFIG, ARCHIVO_DEPLOYMENTS_V6, ARCHIVO_ENV_PRODUCCION, type ArgumentosCapturar, type ArgumentosDesplegar, type ArgumentosMedir, COMANDOS, type CapturaV6, type Comando, type ConfigVercelBuild, type DeploymentVercel, type DiaMinutos, ESTADOS_DEPLOYMENT, type Ejecutar, type Entorno, type EquipoVercel, ErrorContratoVercel, ErrorRedVercel, type Evaluacion, LIMITE_PAGINA_VERCEL, MAX_PAGINAS_VERCEL, type OpcionesCambios, type OpcionesCapturar, type OpcionesDesplegar, type OpcionesIgnorar, type OpcionesMedir, type OpcionesProceso, PASOS_VERCEL, PASO_DEPLOY_REMOTO, PREFIJO_PREVIEW, type PaginaDeployments, type PaginaTeams, type PaginacionVercel, type PedidoCaptura, type ProyectoVercelBuild, RAMA_PRINCIPAL, REFERENCIA_DEPLOYMENTS_V6, type RespuestaHttp, type Resultado, type ResultadoDeployments, type ResultadoProceso, type SolicitarVercel, USO, VARIABLES_VERCEL, armarCapturaV6, calcularMinutosPorDia, capturar, comandoCapturar, comandoDesplegar, comandoIgnorar, comandoMedir, comandoTurbo, configVacia, consultarDeployments, desplegar, ejecutar, ejecutarCapturar, ejecutarDesplegar, ejecutarIgnorar, ejecutarMedir, esquemaArchivoDeployments, esquemaCapturaV6, esquemaConfig, esquemaDeployment, esquemaEquipo, esquemaEstadoDeployment, esquemaPaginaDeployments, esquemaPaginaTeams, esquemaPaginacion, esquemaPedidoCaptura, evaluarCambios, extraerUrlSalud, ignorar, leerArgumentosCapturar, leerArgumentosDesplegar, leerArgumentosMedir, leerConfig, leerFlagsCli, leerRespuestaDeployments, medir, normalizarCarpeta, paquetesDeTurbo, pedirJsonVercel, principal, proyectoDeCarpeta, ramaPermitida, rangoFechasUtc, redactarToken, resolverEquipo, solicitarVercel, tieneVariablesSensibles, ubicarEnRepo, validarConfig, validarFechaIso };
1685
+ export { API_VERCEL_URL, ARCHIVO_CAPTURA_V6, ARCHIVO_CONFIG, ARCHIVO_DEPLOYMENTS_V6, ARCHIVO_ENV_PRODUCCION, type ArgumentosCapturar, type ArgumentosDesplegar, type ArgumentosMedir, COMANDOS, type CapturaV6, type Comando, type ConfigVercelBuild, type DeploymentPromocion, type DeploymentVercel, type DiaMinutos, type Dormir, ESTADOS_DEPLOYMENT, type Ejecutar, type Entorno, type EquipoVercel, ErrorContratoVercel, ErrorRedVercel, type Evaluacion, INTERVALO_POLL_DEPLOY_MS, LIMITE_PAGINA_VERCEL, MAX_PAGINAS_VERCEL, type MetodoHttpVercel, type OpcionesCambios, type OpcionesCapturar, type OpcionesDesplegar, type OpcionesIgnorar, type OpcionesMedir, type OpcionesProceso, type OpcionesPromover, PASOS_VERCEL, PASO_DEPLOY_REMOTO, PREFIJO_PREVIEW, type PaginaDeployments, type PaginaTeams, type PaginacionVercel, type PedidoCaptura, type ProyectoVercelBuild, RAMA_PRINCIPAL, REFERENCIA_DEPLOYMENTS_V6, type RespuestaHttp, type Resultado, type ResultadoDeployments, type ResultadoProceso, type ResultadoPromocion, type SolicitarVercel, TIMEOUT_POLL_DEPLOY_MS, USO, VARIABLES_VERCEL, armarCapturaV6, calcularMinutosPorDia, capturar, comandoCapturar, comandoDesplegar, comandoIgnorar, comandoMedir, comandoTurbo, configVacia, consultarDeployments, desplegar, dormirSincrono, ejecutar, ejecutarCapturar, ejecutarDesplegar, ejecutarIgnorar, ejecutarMedir, esperarYPromoverDeploy, esquemaArchivoDeployments, esquemaCapturaV6, esquemaConfig, esquemaDeployment, esquemaDeploymentPromocion, esquemaEquipo, esquemaEstadoDeployment, esquemaListaDeploymentsPromocion, esquemaPaginaDeployments, esquemaPaginaTeams, esquemaPaginacion, esquemaPedidoCaptura, evaluarCambios, extraerAliasProduccion, extraerIdOUrlDeploy, extraerUrlSalud, ignorar, leerArgumentosCapturar, leerArgumentosDesplegar, leerArgumentosMedir, leerConfig, leerFlagsCli, leerRespuestaDeployments, limpiarIdOUrlDeploy, medir, normalizarCarpeta, paquetesDeTurbo, pedirJsonVercel, principal, proyectoDeCarpeta, ramaPermitida, rangoFechasUtc, redactarToken, resolverEquipo, solicitarVercel, tieneVariablesSensibles, ubicarEnRepo, validarConfig, validarFechaIso };
package/dist/index.js CHANGED
@@ -91,13 +91,13 @@ var esquemaArchivoDeployments = zod.z.object({
91
91
  paginas: zod.z.array(esquemaPaginaDeployments).min(1)
92
92
  }).passthrough();
93
93
  var SCRIPT_FETCH = [
94
- "const [u] = process.argv.slice(1), h = require('node:fs').readFileSync(0, 'utf8');",
95
- "fetch(u, { method: 'GET', headers: JSON.parse(h) })",
94
+ "const [u, m = 'GET'] = process.argv.slice(1), h = require('node:fs').readFileSync(0, 'utf8');",
95
+ "fetch(u, { method: m, headers: JSON.parse(h) })",
96
96
  " .then(async (r) => process.stdout.write(JSON.stringify({ estado: r.status, cuerpo: await r.text() })))",
97
97
  " .catch((e) => { process.stderr.write(String(e?.message || e)); process.exit(1); });"
98
98
  ].join("\n");
99
- var solicitarVercel = (url, headers) => {
100
- const r = child_process.spawnSync(process.execPath, ["-e", SCRIPT_FETCH, url], {
99
+ var solicitarVercel = (url, headers, metodo = "GET") => {
100
+ const r = child_process.spawnSync(process.execPath, ["-e", SCRIPT_FETCH, url, metodo], {
101
101
  input: JSON.stringify(headers),
102
102
  shell: false,
103
103
  encoding: "utf8",
@@ -113,26 +113,22 @@ var solicitarVercel = (url, headers) => {
113
113
  function pedirJsonVercel(rutaQuery, token, solicitar = solicitarVercel, baseUrl = API_VERCEL_URL) {
114
114
  let respuesta;
115
115
  try {
116
- respuesta = solicitar(`${baseUrl}${rutaQuery}`, {
117
- Authorization: `Bearer ${token}`
118
- });
116
+ const headers = { Authorization: `Bearer ${token}` };
117
+ respuesta = solicitar(`${baseUrl}${rutaQuery}`, headers);
119
118
  } catch (e) {
120
119
  if (e instanceof ErrorRedVercel || e instanceof ErrorContratoVercel)
121
120
  throw e;
122
121
  throw new ErrorRedVercel(e.message);
123
122
  }
124
123
  if (respuesta.estado < 200 || respuesta.estado >= 300) {
125
- throw new ErrorRedVercel(
126
- `HTTP ${respuesta.estado} en GET ${rutaQuery}`,
127
- respuesta.estado
128
- );
124
+ const msg = `HTTP ${respuesta.estado} en GET ${rutaQuery}`;
125
+ throw new ErrorRedVercel(msg, respuesta.estado);
129
126
  }
130
127
  try {
131
128
  return { estado: respuesta.estado, valor: JSON.parse(respuesta.cuerpo) };
132
129
  } catch (e) {
133
- throw new ErrorContratoVercel(
134
- `JSON inv\xE1lido en GET ${rutaQuery}: ${e.message}`
135
- );
130
+ const msg = `JSON inv\xE1lido en GET ${rutaQuery}: ${e.message}`;
131
+ throw new ErrorContratoVercel(msg);
136
132
  }
137
133
  }
138
134
  function resolverEquipo(equipo, token, solicitar = solicitarVercel, baseUrl = API_VERCEL_URL) {
@@ -233,12 +229,8 @@ function calcularMinutosPorDia(paginas, desde, hasta) {
233
229
  };
234
230
  }
235
231
  function leerArgumentosMedir(args) {
236
- const f = leerFlagsCli(args, [
237
- "--equipo",
238
- "--desde",
239
- "--hasta",
240
- "--respuesta"
241
- ]);
232
+ const flags = ["--equipo", "--desde", "--hasta", "--respuesta"];
233
+ const f = leerFlagsCli(args, flags);
242
234
  if (!f.ok) return f;
243
235
  const { equipo, desde, hasta, respuesta } = f.valores;
244
236
  if (!equipo) return { ok: false, motivo: "falta --equipo <slug|team_id>" };
@@ -585,12 +577,12 @@ function ejecutar(comando, args, opciones) {
585
577
  maxBuffer: 64 * 1024 * 1024,
586
578
  stdio: opciones.heredar ? "inherit" : "pipe"
587
579
  });
588
- const fallo = r.error?.message ?? (r.signal ? `termin\xF3 por la se\xF1al ${r.signal}` : void 0);
580
+ const fallo2 = r.error?.message ?? (r.signal ? `termin\xF3 por la se\xF1al ${r.signal}` : void 0);
589
581
  return {
590
582
  codigo: r.status,
591
583
  salida: r.stdout ?? "",
592
584
  error: r.stderr ?? "",
593
- ...fallo ? { fallo } : {}
585
+ ...fallo2 ? { fallo: fallo2 } : {}
594
586
  };
595
587
  }
596
588
  var incierto = (motivo) => ({
@@ -711,27 +703,7 @@ function evaluarCambios(opciones) {
711
703
  };
712
704
  }
713
705
 
714
- // src/comandos/desplegar.ts
715
- var VARIABLES_VERCEL = [
716
- "VERCEL_TOKEN",
717
- "VERCEL_ORG_ID",
718
- "VERCEL_PROJECT_ID"
719
- ];
720
- var PASOS_VERCEL = [
721
- ["pull", "--yes", "--environment=production"],
722
- ["build", "--prod"],
723
- ["deploy", "--prebuilt", "--prod"]
724
- ];
725
- var PASO_DEPLOY_REMOTO = ["deploy", "--prod", "--yes"];
726
- var ARCHIVO_ENV_PRODUCCION = path3__namespace.join(
727
- ".vercel",
728
- ".env.production.local"
729
- );
730
- var MARCADOR_SENSITIVE = "[SENSITIVE]";
731
- var REGEX_ANSI = new RegExp(
732
- `${String.fromCharCode(27)}\\[[0-9;]*[a-zA-Z]`,
733
- "g"
734
- );
706
+ // src/comandos/desplegar-argumentos.ts
735
707
  function leerArgumentosDesplegar(args) {
736
708
  let carpeta;
737
709
  let antes;
@@ -779,14 +751,300 @@ function leerArgumentosDesplegar(args) {
779
751
  }
780
752
  };
781
753
  }
754
+ var INTERVALO_POLL_DEPLOY_MS = 5e3;
755
+ var TIMEOUT_POLL_DEPLOY_MS = 6e5;
756
+ var REGEX_ANSI = new RegExp(
757
+ `${String.fromCharCode(27)}\\[[0-9;]*[a-zA-Z]`,
758
+ "g"
759
+ );
760
+ var dormirSincrono = (ms) => {
761
+ if (ms > 0) Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, ms);
762
+ };
763
+ var esquemaDeploymentPromocion = zod.z.object({
764
+ id: zod.z.string().min(1).optional(),
765
+ uid: zod.z.string().min(1).optional(),
766
+ projectId: zod.z.string().min(1).optional(),
767
+ target: zod.z.string().nullable().optional(),
768
+ state: esquemaEstadoDeployment.optional(),
769
+ readyState: esquemaEstadoDeployment.optional(),
770
+ readySubstate: zod.z.string().min(1).optional(),
771
+ url: zod.z.string().min(1).optional(),
772
+ alias: zod.z.union([zod.z.array(zod.z.string()), zod.z.string()]).optional(),
773
+ aliases: zod.z.array(zod.z.string()).optional(),
774
+ meta: zod.z.record(zod.z.unknown()).optional()
775
+ }).passthrough().refine((d) => d.id !== void 0 || d.uid !== void 0, {
776
+ message: "el deployment debe incluir id o uid"
777
+ }).refine((d) => d.state !== void 0 || d.readyState !== void 0, {
778
+ message: "el deployment debe incluir state o readyState"
779
+ });
780
+ var esquemaListaDeploymentsPromocion = zod.z.object({ deployments: zod.z.array(esquemaDeploymentPromocion) }).passthrough();
781
+ function limpiarIdOUrlDeploy(valor) {
782
+ const sinAnsi = valor.replace(REGEX_ANSI, "").trim();
783
+ const limpio = sinAnsi.replace(/^https?:\/\//i, "").replace(/[/?#].*$/, "").replace(/[.,;]+$/, "").trim();
784
+ return limpio || null;
785
+ }
786
+ function extraerIdOUrlDeploy(salida, error = "") {
787
+ const stdout = salida.replace(REGEX_ANSI, "");
788
+ const texto = `${error}
789
+ ${salida}`.replace(REGEX_ANSI, "");
790
+ const urlStdout = /^\s*(https?:\/\/[^\s\]"')>]+)/im.exec(stdout)?.[1];
791
+ const produccion = /\bProduction\s*:\s*(https?:\/\/[^\s\]"')>]+)/i.exec(
792
+ texto
793
+ )?.[1];
794
+ const alias = /\bAlias(?:ed)?\s*:\s*(https?:\/\/[^\s\]"')>]+)/i.exec(
795
+ texto
796
+ )?.[1];
797
+ const candidata = urlStdout ?? produccion ?? alias;
798
+ if (candidata) {
799
+ const limpio = limpiarIdOUrlDeploy(candidata);
800
+ if (limpio && limpio !== "vercel.com") return limpio;
801
+ }
802
+ return /\b(dpl_[a-zA-Z0-9]+)\b/.exec(texto)?.[1] ?? null;
803
+ }
804
+ function normalizarUrlHttps(dominioOUrl) {
805
+ const limpio = dominioOUrl.trim().replace(/[.,;]+$/, "").replace(/\/+$/, "");
806
+ return /^https?:\/\//i.test(limpio) ? limpio : `https://${limpio}`;
807
+ }
808
+ function esDominioVercelApp(dominioOUrl) {
809
+ const host = dominioOUrl.trim().replace(/^https?:\/\//i, "").split("/")[0]?.toLowerCase() ?? "";
810
+ return host === "vercel.app" || host.endsWith(".vercel.app");
811
+ }
812
+ function extraerAliasProduccion(deployment) {
813
+ const crudos = [];
814
+ if (Array.isArray(deployment.alias)) crudos.push(...deployment.alias);
815
+ else if (typeof deployment.alias === "string") crudos.push(deployment.alias);
816
+ if (Array.isArray(deployment.aliases)) crudos.push(...deployment.aliases);
817
+ const candidatos = crudos.map((c) => c.trim()).filter(Boolean);
818
+ if (candidatos.length === 0) {
819
+ return deployment.url && !esDominioVercelApp(deployment.url) ? normalizarUrlHttps(deployment.url) : null;
820
+ }
821
+ const dominioPropio = candidatos.find((c) => !esDominioVercelApp(c));
822
+ return normalizarUrlHttps(dominioPropio ?? candidatos[0]);
823
+ }
824
+ function obtenerShaCommit(opc, ej) {
825
+ const explicito = opc.sha?.trim() || opc.env?.VERCEL_GIT_COMMIT_SHA?.trim();
826
+ if (explicito) return explicito;
827
+ const dirs = [opc.carpeta, opc.cwd].filter((d) => Boolean(d));
828
+ for (const dir of dirs) {
829
+ const raiz = ubicarEnRepo(dir, ej)?.raiz ?? dir;
830
+ const r = ej("git", ["rev-parse", "HEAD"], {
831
+ cwd: raiz,
832
+ ...opc.env ? { env: opc.env } : {}
833
+ });
834
+ if (r.codigo === 0 && r.salida.trim() !== "") return r.salida.trim();
835
+ }
836
+ return null;
837
+ }
838
+ var err = (motivo) => ({ ok: false, motivo });
839
+ var fallo = (motivo) => ({
840
+ ok: false,
841
+ codigo: 1,
842
+ motivo
843
+ });
844
+ function llamarApiVercel(rutaQuery, ctx, metodo = "GET") {
845
+ let respuesta;
846
+ try {
847
+ const auth = { Authorization: `Bearer ${ctx.token}` };
848
+ respuesta = ctx.solicitar(`${ctx.baseUrl}${rutaQuery}`, auth, metodo);
849
+ } catch (e) {
850
+ const msg = e instanceof Error ? e.message : String(e);
851
+ return err(`fallo de red en ${metodo} ${rutaQuery} (${msg})`);
852
+ }
853
+ if (respuesta.estado < 200 || respuesta.estado >= 300) {
854
+ return err(`HTTP ${respuesta.estado} en ${metodo} ${rutaQuery}`);
855
+ }
856
+ return { ok: true, cuerpo: respuesta.cuerpo };
857
+ }
858
+ function validarIdentidadDeployment(d, ctx) {
859
+ const deploymentId = d.id ?? d.uid;
860
+ if (d.projectId !== void 0 && d.projectId !== ctx.projectId) {
861
+ return err(
862
+ `el deploy ${deploymentId} pertenece al proyecto ${d.projectId} y no a ${ctx.projectId}`
863
+ );
864
+ }
865
+ if (d.target !== void 0 && d.target !== null && d.target !== "production") {
866
+ return err(
867
+ `el deploy ${deploymentId} no es de producci\xF3n (target=${d.target})`
868
+ );
869
+ }
870
+ const shaMeta = typeof d.meta?.githubCommitSha === "string" ? d.meta.githubCommitSha.trim() : typeof d.meta?.gitCommitSha === "string" ? d.meta.gitCommitSha.trim() : "";
871
+ if (!shaMeta || shaMeta !== ctx.sha) {
872
+ return err(
873
+ `el deploy ${deploymentId} corresponde al SHA ${shaMeta || "desconocido"} y no a ${ctx.sha}`
874
+ );
875
+ }
876
+ return { ok: true, deploymentId };
877
+ }
878
+ function consultarDeploymentV13(idOrUrl, ctx) {
879
+ const ruta = `/v13/deployments/${encodeURIComponent(idOrUrl)}?${ctx.qTeam}`;
880
+ const resp = llamarApiVercel(ruta, ctx, "GET");
881
+ if (!resp.ok) return resp;
882
+ let json;
883
+ try {
884
+ json = JSON.parse(resp.cuerpo);
885
+ } catch (e) {
886
+ return err(`JSON inv\xE1lido en GET ${ruta} (${e.message})`);
887
+ }
888
+ const r = esquemaDeploymentPromocion.safeParse(json);
889
+ if (!r.success) {
890
+ return err(`respuesta inv\xE1lida en GET ${ruta} (${r.error.message})`);
891
+ }
892
+ const val = validarIdentidadDeployment(r.data, ctx);
893
+ if (!val.ok) return val;
894
+ return { ok: true, valor: r.data, deploymentId: val.deploymentId };
895
+ }
896
+ function esperarYPromoverDeploy(opciones) {
897
+ const ej = opciones.ejecutar ?? ejecutar;
898
+ const solicitar = opciones.solicitar ?? solicitarVercel;
899
+ const dormir = opciones.dormir ?? dormirSincrono;
900
+ const intervaloMs = opciones.intervaloMs ?? INTERVALO_POLL_DEPLOY_MS;
901
+ const timeoutMs = opciones.timeoutMs ?? TIMEOUT_POLL_DEPLOY_MS;
902
+ const maxIntentos = opciones.maxIntentos;
903
+ const token = opciones.token?.trim() || opciones.env?.VERCEL_TOKEN?.trim() || "";
904
+ const teamId = opciones.teamId?.trim() || opciones.env?.VERCEL_ORG_ID?.trim() || "";
905
+ const projectId = opciones.projectId?.trim() || opciones.env?.VERCEL_PROJECT_ID?.trim() || "";
906
+ const baseUrl = (opciones.baseUrl ?? opciones.env?.VERCEL_API_URL)?.trim() || API_VERCEL_URL;
907
+ if (!token || !teamId || !projectId) {
908
+ return fallo("faltan credenciales de Vercel para promover el deploy");
909
+ }
910
+ const sha = obtenerShaCommit(opciones, ej);
911
+ if (!sha) {
912
+ return fallo(
913
+ "no se pudo determinar el SHA actual para verificar el deploy"
914
+ );
915
+ }
916
+ const ctx = {
917
+ qTeam: `teamId=${encodeURIComponent(teamId)}`,
918
+ projectId,
919
+ sha,
920
+ token,
921
+ solicitar,
922
+ baseUrl
923
+ };
924
+ let idOrUrl = opciones.urlDeploy !== void 0 && opciones.urlDeploy !== null ? limpiarIdOUrlDeploy(opciones.urlDeploy) : extraerIdOUrlDeploy(
925
+ opciones.salidaDeploy ?? "",
926
+ opciones.errorDeploy ?? ""
927
+ );
928
+ let transcurridoMs = 0;
929
+ let intentos = 0;
930
+ let deployListo = null;
931
+ let deploymentId = "";
932
+ while (deployListo === null) {
933
+ intentos++;
934
+ let actual;
935
+ if (idOrUrl) {
936
+ const c = consultarDeploymentV13(idOrUrl, ctx);
937
+ if (!c.ok) return fallo(c.motivo);
938
+ actual = c.valor;
939
+ deploymentId = c.deploymentId;
940
+ } else {
941
+ const q = `${ctx.qTeam}&projectId=${encodeURIComponent(projectId)}&target=production&sha=${encodeURIComponent(sha)}`;
942
+ const ruta = `/v6/deployments?${q}`;
943
+ const resp = llamarApiVercel(ruta, ctx, "GET");
944
+ if (!resp.ok) return fallo(resp.motivo);
945
+ let json;
946
+ try {
947
+ json = JSON.parse(resp.cuerpo);
948
+ } catch (e) {
949
+ return fallo(`JSON inv\xE1lido en GET ${ruta} (${e.message})`);
950
+ }
951
+ const lista = esquemaListaDeploymentsPromocion.safeParse(json);
952
+ if (!lista.success || lista.data.deployments.length === 0) {
953
+ return fallo(
954
+ `no se encontr\xF3 deployment de producci\xF3n para el SHA ${sha}`
955
+ );
956
+ }
957
+ actual = lista.data.deployments[0];
958
+ const val = validarIdentidadDeployment(actual, ctx);
959
+ if (!val.ok) return fallo(val.motivo);
960
+ deploymentId = val.deploymentId;
961
+ idOrUrl = deploymentId;
962
+ }
963
+ const estado = actual.readyState ?? actual.state;
964
+ if (estado === "ERROR" || estado === "CANCELED") {
965
+ return fallo(`el deploy ${deploymentId} termin\xF3 en estado ${estado}`);
966
+ }
967
+ if (estado === "READY") {
968
+ deployListo = actual;
969
+ break;
970
+ }
971
+ if (maxIntentos !== void 0 && intentos >= maxIntentos || transcurridoMs + intervaloMs > timeoutMs) {
972
+ return fallo(
973
+ `timeout esperando a que el deploy ${deploymentId} llegue a READY (estado: ${estado})`
974
+ );
975
+ }
976
+ dormir(intervaloMs);
977
+ transcurridoMs += intervaloMs;
978
+ }
979
+ let deployFinal = deployListo;
980
+ if (deployListo.readySubstate !== "PROMOTED") {
981
+ const rutaPromote = `/v10/projects/${encodeURIComponent(projectId)}/promote/${encodeURIComponent(deploymentId)}?${ctx.qTeam}`;
982
+ const respPromote = llamarApiVercel(rutaPromote, ctx, "POST");
983
+ if (!respPromote.ok) return fallo(respPromote.motivo);
984
+ for (; ; ) {
985
+ intentos++;
986
+ const c = consultarDeploymentV13(deploymentId, ctx);
987
+ if (!c.ok) return fallo(c.motivo);
988
+ const dConf = c.valor;
989
+ const estadoConf = dConf.readyState ?? dConf.state;
990
+ if (estadoConf === "ERROR" || estadoConf === "CANCELED") {
991
+ return fallo(
992
+ `el deploy ${deploymentId} termin\xF3 en estado ${estadoConf} durante la promoci\xF3n`
993
+ );
994
+ }
995
+ if (estadoConf === "READY" && dConf.readySubstate === "PROMOTED") {
996
+ deployFinal = dConf;
997
+ break;
998
+ }
999
+ if (maxIntentos !== void 0 && intentos >= maxIntentos || transcurridoMs + intervaloMs > timeoutMs) {
1000
+ return fallo(
1001
+ `timeout esperando que el deploy ${deploymentId} quede PROMOTED (subestado: ${dConf.readySubstate ?? "sin subestado"})`
1002
+ );
1003
+ }
1004
+ dormir(intervaloMs);
1005
+ transcurridoMs += intervaloMs;
1006
+ }
1007
+ }
1008
+ const alias = extraerAliasProduccion(deployFinal) ?? extraerAliasProduccion(deployListo);
1009
+ const urlRaw = deployFinal.url ?? deployListo.url;
1010
+ const url = urlRaw ? normalizarUrlHttps(urlRaw) : null;
1011
+ return { ok: true, codigo: 0, deploymentId, alias, url };
1012
+ }
1013
+
1014
+ // src/comandos/desplegar.ts
1015
+ var VARIABLES_VERCEL = [
1016
+ "VERCEL_TOKEN",
1017
+ "VERCEL_ORG_ID",
1018
+ "VERCEL_PROJECT_ID"
1019
+ ];
1020
+ var PASOS_VERCEL = [
1021
+ ["pull", "--yes", "--environment=production"],
1022
+ ["build", "--prod"],
1023
+ ["deploy", "--prebuilt", "--prod"]
1024
+ ];
1025
+ var PASO_DEPLOY_REMOTO = [
1026
+ "deploy",
1027
+ "--prod",
1028
+ "--yes",
1029
+ "--no-wait"
1030
+ ];
1031
+ var ARCHIVO_ENV_PRODUCCION = path3__namespace.join(
1032
+ ".vercel",
1033
+ ".env.production.local"
1034
+ );
1035
+ var MARCADOR_SENSITIVE = "[SENSITIVE]";
1036
+ var REGEX_ANSI2 = new RegExp(
1037
+ `${String.fromCharCode(27)}\\[[0-9;]*[a-zA-Z]`,
1038
+ "g"
1039
+ );
782
1040
  function tieneVariablesSensibles(carpeta) {
783
1041
  const archivo = path3__namespace.join(carpeta, ARCHIVO_ENV_PRODUCCION);
784
1042
  return fs.existsSync(archivo) && fs.statSync(archivo).isFile() && fs.readFileSync(archivo, "utf8").includes(MARCADOR_SENSITIVE);
785
1043
  }
786
1044
  function extraerUrlSalud(salida, error = "") {
787
- const stdout = salida.replace(REGEX_ANSI, "");
1045
+ const stdout = salida.replace(REGEX_ANSI2, "");
788
1046
  const texto = `${error}
789
- ${salida}`.replace(REGEX_ANSI, "");
1047
+ ${salida}`.replace(REGEX_ANSI2, "");
790
1048
  const alias = /\bAlias(?:ed)?\s*:\s*(https?:\/\/[^\s\]"')>]+)/i.exec(
791
1049
  texto
792
1050
  )?.[1];
@@ -844,6 +1102,26 @@ function ejecutarDesplegar(opciones) {
844
1102
  opciones.error(`wallavi-vercel desplegar: faltan ${faltan.join(", ")}`);
845
1103
  return 2;
846
1104
  }
1105
+ const head = ej("git", ["rev-parse", "HEAD"], { cwd: rutaCarpeta });
1106
+ const sha = head.salida.trim();
1107
+ if (head.codigo !== 0 || !/^[0-9a-f]{40}$/.test(sha)) {
1108
+ opciones.error("wallavi-vercel desplegar: no se pudo verificar HEAD");
1109
+ return 1;
1110
+ }
1111
+ for (const nombre of ["WORKFLOW_RUN_HEAD_SHA", "VERCEL_GIT_COMMIT_SHA"]) {
1112
+ const esperado = opciones.env[nombre]?.trim();
1113
+ if (esperado && esperado !== sha) {
1114
+ opciones.error(
1115
+ `wallavi-vercel desplegar: HEAD no coincide con el SHA de ${nombre}`
1116
+ );
1117
+ return 1;
1118
+ }
1119
+ }
1120
+ const identidad = {
1121
+ sha,
1122
+ proyecto: opciones.env.VERCEL_PROJECT_ID.trim(),
1123
+ carpeta: opciones.carpeta
1124
+ };
847
1125
  const evaluacion = evaluar({
848
1126
  carpeta: rutaCarpeta,
849
1127
  ...opciones.antes !== void 0 ? { antes: opciones.antes } : {},
@@ -854,6 +1132,13 @@ function ejecutarDesplegar(opciones) {
854
1132
  opciones.salida(
855
1133
  `wallavi-vercel desplegar: sin cambios (${evaluacion.motivo})`
856
1134
  );
1135
+ opciones.salida(
1136
+ JSON.stringify({
1137
+ resultado: "omitido",
1138
+ motivo: "sin-cambios",
1139
+ ...identidad
1140
+ })
1141
+ );
857
1142
  return 0;
858
1143
  }
859
1144
  const rPull = correrPasoVercel(ej, PASOS_VERCEL[0], rutaCarpeta, opciones);
@@ -874,7 +1159,7 @@ function ejecutarDesplegar(opciones) {
874
1159
  fs.rmSync(path3__namespace.join(dir, ARCHIVO_ENV_PRODUCCION), { force: true });
875
1160
  }
876
1161
  opciones.salida(
877
- "wallavi-vercel desplegar: .vercel/.env.production.local contiene [SENSITIVE]; se omite --prebuilt y se delega a vercel deploy --prod --yes"
1162
+ "wallavi-vercel desplegar: .vercel/.env.production.local contiene [SENSITIVE]; se omite --prebuilt y se delega a vercel deploy --prod --yes --no-wait"
878
1163
  );
879
1164
  }
880
1165
  const pasosRestantes = haySensibles ? [PASO_DEPLOY_REMOTO] : PASOS_VERCEL.slice(1);
@@ -884,7 +1169,39 @@ function ejecutarDesplegar(opciones) {
884
1169
  if (!r.ok) return r.codigo;
885
1170
  ultimoDeploy = r.resultado;
886
1171
  }
887
- const urlSalud = opciones.urlSalud?.trim() || opciones.env.VERCEL_HEALTHCHECK_URL?.trim() || extraerUrlSalud(ultimoDeploy.salida, ultimoDeploy.error);
1172
+ let aliasPromovido = null;
1173
+ let urlDeployPromovido = null;
1174
+ let deploymentId;
1175
+ {
1176
+ const promocion = esperarYPromoverDeploy({
1177
+ sha,
1178
+ cwd: opciones.cwd,
1179
+ carpeta: rutaCarpeta,
1180
+ env: opciones.env,
1181
+ salidaDeploy: ultimoDeploy.salida,
1182
+ errorDeploy: ultimoDeploy.error,
1183
+ ejecutar: ej,
1184
+ solicitar,
1185
+ ...opciones.dormir !== void 0 ? { dormir: opciones.dormir } : {},
1186
+ ...opciones.intervaloPollMs !== void 0 ? { intervaloMs: opciones.intervaloPollMs } : {},
1187
+ ...opciones.timeoutPollMs !== void 0 ? { timeoutMs: opciones.timeoutPollMs } : {},
1188
+ ...opciones.maxIntentosPoll !== void 0 ? { maxIntentos: opciones.maxIntentosPoll } : {},
1189
+ ...opciones.baseUrl !== void 0 ? { baseUrl: opciones.baseUrl } : {}
1190
+ });
1191
+ if (!promocion.ok) {
1192
+ opciones.error(
1193
+ redactarCredenciales(
1194
+ `wallavi-vercel desplegar: ${promocion.motivo}`,
1195
+ opciones.env
1196
+ )
1197
+ );
1198
+ return promocion.codigo;
1199
+ }
1200
+ aliasPromovido = promocion.alias;
1201
+ urlDeployPromovido = promocion.url;
1202
+ deploymentId = promocion.deploymentId;
1203
+ }
1204
+ const urlSalud = opciones.urlSalud?.trim() || opciones.env.VERCEL_HEALTHCHECK_URL?.trim() || aliasPromovido || extraerUrlSalud(ultimoDeploy.salida, ultimoDeploy.error) || urlDeployPromovido;
888
1205
  if (!urlSalud) {
889
1206
  opciones.error(
890
1207
  redactarCredenciales(
@@ -918,6 +1235,14 @@ function ejecutarDesplegar(opciones) {
918
1235
  opciones.salida(
919
1236
  `wallavi-vercel desplegar: desplegado (${evaluacion.motivo})`
920
1237
  );
1238
+ opciones.salida(
1239
+ JSON.stringify({
1240
+ resultado: "desplegado",
1241
+ ...identidad,
1242
+ deploymentId,
1243
+ urlSalud
1244
+ })
1245
+ );
921
1246
  return 0;
922
1247
  }
923
1248
  function comandoDesplegar(args, entorno) {
@@ -1053,6 +1378,7 @@ exports.COMANDOS = COMANDOS;
1053
1378
  exports.ESTADOS_DEPLOYMENT = ESTADOS_DEPLOYMENT;
1054
1379
  exports.ErrorContratoVercel = ErrorContratoVercel;
1055
1380
  exports.ErrorRedVercel = ErrorRedVercel;
1381
+ exports.INTERVALO_POLL_DEPLOY_MS = INTERVALO_POLL_DEPLOY_MS;
1056
1382
  exports.LIMITE_PAGINA_VERCEL = LIMITE_PAGINA_VERCEL;
1057
1383
  exports.MAX_PAGINAS_VERCEL = MAX_PAGINAS_VERCEL;
1058
1384
  exports.PASOS_VERCEL = PASOS_VERCEL;
@@ -1060,6 +1386,7 @@ exports.PASO_DEPLOY_REMOTO = PASO_DEPLOY_REMOTO;
1060
1386
  exports.PREFIJO_PREVIEW = PREFIJO_PREVIEW;
1061
1387
  exports.RAMA_PRINCIPAL = RAMA_PRINCIPAL;
1062
1388
  exports.REFERENCIA_DEPLOYMENTS_V6 = REFERENCIA_DEPLOYMENTS_V6;
1389
+ exports.TIMEOUT_POLL_DEPLOY_MS = TIMEOUT_POLL_DEPLOY_MS;
1063
1390
  exports.USO = USO;
1064
1391
  exports.VARIABLES_VERCEL = VARIABLES_VERCEL;
1065
1392
  exports.armarCapturaV6 = armarCapturaV6;
@@ -1073,22 +1400,28 @@ exports.comandoTurbo = comandoTurbo;
1073
1400
  exports.configVacia = configVacia;
1074
1401
  exports.consultarDeployments = consultarDeployments;
1075
1402
  exports.desplegar = desplegar;
1403
+ exports.dormirSincrono = dormirSincrono;
1076
1404
  exports.ejecutar = ejecutar;
1077
1405
  exports.ejecutarCapturar = ejecutarCapturar;
1078
1406
  exports.ejecutarDesplegar = ejecutarDesplegar;
1079
1407
  exports.ejecutarIgnorar = ejecutarIgnorar;
1080
1408
  exports.ejecutarMedir = ejecutarMedir;
1409
+ exports.esperarYPromoverDeploy = esperarYPromoverDeploy;
1081
1410
  exports.esquemaArchivoDeployments = esquemaArchivoDeployments;
1082
1411
  exports.esquemaCapturaV6 = esquemaCapturaV6;
1083
1412
  exports.esquemaConfig = esquemaConfig;
1084
1413
  exports.esquemaDeployment = esquemaDeployment;
1414
+ exports.esquemaDeploymentPromocion = esquemaDeploymentPromocion;
1085
1415
  exports.esquemaEquipo = esquemaEquipo;
1086
1416
  exports.esquemaEstadoDeployment = esquemaEstadoDeployment;
1417
+ exports.esquemaListaDeploymentsPromocion = esquemaListaDeploymentsPromocion;
1087
1418
  exports.esquemaPaginaDeployments = esquemaPaginaDeployments;
1088
1419
  exports.esquemaPaginaTeams = esquemaPaginaTeams;
1089
1420
  exports.esquemaPaginacion = esquemaPaginacion;
1090
1421
  exports.esquemaPedidoCaptura = esquemaPedidoCaptura;
1091
1422
  exports.evaluarCambios = evaluarCambios;
1423
+ exports.extraerAliasProduccion = extraerAliasProduccion;
1424
+ exports.extraerIdOUrlDeploy = extraerIdOUrlDeploy;
1092
1425
  exports.extraerUrlSalud = extraerUrlSalud;
1093
1426
  exports.ignorar = ignorar;
1094
1427
  exports.leerArgumentosCapturar = leerArgumentosCapturar;
@@ -1097,6 +1430,7 @@ exports.leerArgumentosMedir = leerArgumentosMedir;
1097
1430
  exports.leerConfig = leerConfig;
1098
1431
  exports.leerFlagsCli = leerFlagsCli;
1099
1432
  exports.leerRespuestaDeployments = leerRespuestaDeployments;
1433
+ exports.limpiarIdOUrlDeploy = limpiarIdOUrlDeploy;
1100
1434
  exports.medir = medir;
1101
1435
  exports.normalizarCarpeta = normalizarCarpeta;
1102
1436
  exports.paquetesDeTurbo = paquetesDeTurbo;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wallavi/vercel-build",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "private": false,
5
5
  "description": "Detección de cambios y despliegue compartidos para los proyectos de Vercel del monorepo",
6
6
  "license": "MIT",
@@ -24,8 +24,8 @@
24
24
  "tsup": "^8.3.5",
25
25
  "tsx": "^4.19.2",
26
26
  "typescript": "^5.7.3",
27
- "@wallavi/eslint-config": "0.0.1",
28
- "@wallavi/typescript-config": "0.0.1"
27
+ "@wallavi/typescript-config": "0.0.1",
28
+ "@wallavi/eslint-config": "0.0.1"
29
29
  },
30
30
  "scripts": {
31
31
  "build": "tsup",