@wallavi/vercel-build 0.1.4 → 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +32 -3
- package/dist/index.js +155 -133
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -985,6 +985,7 @@ declare const esquemaDeploymentPromocion: z.ZodEffects<z.ZodEffects<z.ZodObject<
|
|
|
985
985
|
alias: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>;
|
|
986
986
|
aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
987
987
|
meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
988
|
+
gitSource: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
988
989
|
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
989
990
|
id: z.ZodOptional<z.ZodString>;
|
|
990
991
|
uid: z.ZodOptional<z.ZodString>;
|
|
@@ -997,6 +998,7 @@ declare const esquemaDeploymentPromocion: z.ZodEffects<z.ZodEffects<z.ZodObject<
|
|
|
997
998
|
alias: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>;
|
|
998
999
|
aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
999
1000
|
meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
1001
|
+
gitSource: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
1000
1002
|
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
1001
1003
|
id: z.ZodOptional<z.ZodString>;
|
|
1002
1004
|
uid: z.ZodOptional<z.ZodString>;
|
|
@@ -1009,6 +1011,7 @@ declare const esquemaDeploymentPromocion: z.ZodEffects<z.ZodEffects<z.ZodObject<
|
|
|
1009
1011
|
alias: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>;
|
|
1010
1012
|
aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1011
1013
|
meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
1014
|
+
gitSource: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
1012
1015
|
}, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{
|
|
1013
1016
|
id: z.ZodOptional<z.ZodString>;
|
|
1014
1017
|
uid: z.ZodOptional<z.ZodString>;
|
|
@@ -1021,6 +1024,7 @@ declare const esquemaDeploymentPromocion: z.ZodEffects<z.ZodEffects<z.ZodObject<
|
|
|
1021
1024
|
alias: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>;
|
|
1022
1025
|
aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1023
1026
|
meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
1027
|
+
gitSource: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
1024
1028
|
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
1025
1029
|
id: z.ZodOptional<z.ZodString>;
|
|
1026
1030
|
uid: z.ZodOptional<z.ZodString>;
|
|
@@ -1033,6 +1037,7 @@ declare const esquemaDeploymentPromocion: z.ZodEffects<z.ZodEffects<z.ZodObject<
|
|
|
1033
1037
|
alias: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>;
|
|
1034
1038
|
aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1035
1039
|
meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
1040
|
+
gitSource: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
1036
1041
|
}, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{
|
|
1037
1042
|
id: z.ZodOptional<z.ZodString>;
|
|
1038
1043
|
uid: z.ZodOptional<z.ZodString>;
|
|
@@ -1045,6 +1050,7 @@ declare const esquemaDeploymentPromocion: z.ZodEffects<z.ZodEffects<z.ZodObject<
|
|
|
1045
1050
|
alias: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>;
|
|
1046
1051
|
aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1047
1052
|
meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
1053
|
+
gitSource: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
1048
1054
|
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
1049
1055
|
id: z.ZodOptional<z.ZodString>;
|
|
1050
1056
|
uid: z.ZodOptional<z.ZodString>;
|
|
@@ -1057,6 +1063,7 @@ declare const esquemaDeploymentPromocion: z.ZodEffects<z.ZodEffects<z.ZodObject<
|
|
|
1057
1063
|
alias: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>;
|
|
1058
1064
|
aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1059
1065
|
meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
1066
|
+
gitSource: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
1060
1067
|
}, z.ZodTypeAny, "passthrough">>;
|
|
1061
1068
|
declare const esquemaListaDeploymentsPromocion: z.ZodObject<{
|
|
1062
1069
|
deployments: z.ZodArray<z.ZodEffects<z.ZodEffects<z.ZodObject<{
|
|
@@ -1071,6 +1078,7 @@ declare const esquemaListaDeploymentsPromocion: z.ZodObject<{
|
|
|
1071
1078
|
alias: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>;
|
|
1072
1079
|
aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1073
1080
|
meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
1081
|
+
gitSource: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
1074
1082
|
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
1075
1083
|
id: z.ZodOptional<z.ZodString>;
|
|
1076
1084
|
uid: z.ZodOptional<z.ZodString>;
|
|
@@ -1083,6 +1091,7 @@ declare const esquemaListaDeploymentsPromocion: z.ZodObject<{
|
|
|
1083
1091
|
alias: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>;
|
|
1084
1092
|
aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1085
1093
|
meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
1094
|
+
gitSource: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
1086
1095
|
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
1087
1096
|
id: z.ZodOptional<z.ZodString>;
|
|
1088
1097
|
uid: z.ZodOptional<z.ZodString>;
|
|
@@ -1095,6 +1104,7 @@ declare const esquemaListaDeploymentsPromocion: z.ZodObject<{
|
|
|
1095
1104
|
alias: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>;
|
|
1096
1105
|
aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1097
1106
|
meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
1107
|
+
gitSource: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
1098
1108
|
}, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{
|
|
1099
1109
|
id: z.ZodOptional<z.ZodString>;
|
|
1100
1110
|
uid: z.ZodOptional<z.ZodString>;
|
|
@@ -1107,6 +1117,7 @@ declare const esquemaListaDeploymentsPromocion: z.ZodObject<{
|
|
|
1107
1117
|
alias: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>;
|
|
1108
1118
|
aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1109
1119
|
meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
1120
|
+
gitSource: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
1110
1121
|
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
1111
1122
|
id: z.ZodOptional<z.ZodString>;
|
|
1112
1123
|
uid: z.ZodOptional<z.ZodString>;
|
|
@@ -1119,6 +1130,7 @@ declare const esquemaListaDeploymentsPromocion: z.ZodObject<{
|
|
|
1119
1130
|
alias: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>;
|
|
1120
1131
|
aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1121
1132
|
meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
1133
|
+
gitSource: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
1122
1134
|
}, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{
|
|
1123
1135
|
id: z.ZodOptional<z.ZodString>;
|
|
1124
1136
|
uid: z.ZodOptional<z.ZodString>;
|
|
@@ -1131,6 +1143,7 @@ declare const esquemaListaDeploymentsPromocion: z.ZodObject<{
|
|
|
1131
1143
|
alias: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>;
|
|
1132
1144
|
aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1133
1145
|
meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
1146
|
+
gitSource: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
1134
1147
|
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
1135
1148
|
id: z.ZodOptional<z.ZodString>;
|
|
1136
1149
|
uid: z.ZodOptional<z.ZodString>;
|
|
@@ -1143,6 +1156,7 @@ declare const esquemaListaDeploymentsPromocion: z.ZodObject<{
|
|
|
1143
1156
|
alias: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>;
|
|
1144
1157
|
aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1145
1158
|
meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
1159
|
+
gitSource: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
1146
1160
|
}, z.ZodTypeAny, "passthrough">>, "many">;
|
|
1147
1161
|
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
1148
1162
|
deployments: z.ZodArray<z.ZodEffects<z.ZodEffects<z.ZodObject<{
|
|
@@ -1157,6 +1171,7 @@ declare const esquemaListaDeploymentsPromocion: z.ZodObject<{
|
|
|
1157
1171
|
alias: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>;
|
|
1158
1172
|
aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1159
1173
|
meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
1174
|
+
gitSource: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
1160
1175
|
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
1161
1176
|
id: z.ZodOptional<z.ZodString>;
|
|
1162
1177
|
uid: z.ZodOptional<z.ZodString>;
|
|
@@ -1169,6 +1184,7 @@ declare const esquemaListaDeploymentsPromocion: z.ZodObject<{
|
|
|
1169
1184
|
alias: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>;
|
|
1170
1185
|
aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1171
1186
|
meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
1187
|
+
gitSource: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
1172
1188
|
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
1173
1189
|
id: z.ZodOptional<z.ZodString>;
|
|
1174
1190
|
uid: z.ZodOptional<z.ZodString>;
|
|
@@ -1181,6 +1197,7 @@ declare const esquemaListaDeploymentsPromocion: z.ZodObject<{
|
|
|
1181
1197
|
alias: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>;
|
|
1182
1198
|
aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1183
1199
|
meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
1200
|
+
gitSource: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
1184
1201
|
}, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{
|
|
1185
1202
|
id: z.ZodOptional<z.ZodString>;
|
|
1186
1203
|
uid: z.ZodOptional<z.ZodString>;
|
|
@@ -1193,6 +1210,7 @@ declare const esquemaListaDeploymentsPromocion: z.ZodObject<{
|
|
|
1193
1210
|
alias: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>;
|
|
1194
1211
|
aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1195
1212
|
meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
1213
|
+
gitSource: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
1196
1214
|
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
1197
1215
|
id: z.ZodOptional<z.ZodString>;
|
|
1198
1216
|
uid: z.ZodOptional<z.ZodString>;
|
|
@@ -1205,6 +1223,7 @@ declare const esquemaListaDeploymentsPromocion: z.ZodObject<{
|
|
|
1205
1223
|
alias: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>;
|
|
1206
1224
|
aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1207
1225
|
meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
1226
|
+
gitSource: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
1208
1227
|
}, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{
|
|
1209
1228
|
id: z.ZodOptional<z.ZodString>;
|
|
1210
1229
|
uid: z.ZodOptional<z.ZodString>;
|
|
@@ -1217,6 +1236,7 @@ declare const esquemaListaDeploymentsPromocion: z.ZodObject<{
|
|
|
1217
1236
|
alias: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>;
|
|
1218
1237
|
aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1219
1238
|
meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
1239
|
+
gitSource: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
1220
1240
|
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
1221
1241
|
id: z.ZodOptional<z.ZodString>;
|
|
1222
1242
|
uid: z.ZodOptional<z.ZodString>;
|
|
@@ -1229,6 +1249,7 @@ declare const esquemaListaDeploymentsPromocion: z.ZodObject<{
|
|
|
1229
1249
|
alias: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>;
|
|
1230
1250
|
aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1231
1251
|
meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
1252
|
+
gitSource: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
1232
1253
|
}, z.ZodTypeAny, "passthrough">>, "many">;
|
|
1233
1254
|
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
1234
1255
|
deployments: z.ZodArray<z.ZodEffects<z.ZodEffects<z.ZodObject<{
|
|
@@ -1243,6 +1264,7 @@ declare const esquemaListaDeploymentsPromocion: z.ZodObject<{
|
|
|
1243
1264
|
alias: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>;
|
|
1244
1265
|
aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1245
1266
|
meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
1267
|
+
gitSource: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
1246
1268
|
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
1247
1269
|
id: z.ZodOptional<z.ZodString>;
|
|
1248
1270
|
uid: z.ZodOptional<z.ZodString>;
|
|
@@ -1255,6 +1277,7 @@ declare const esquemaListaDeploymentsPromocion: z.ZodObject<{
|
|
|
1255
1277
|
alias: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>;
|
|
1256
1278
|
aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1257
1279
|
meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
1280
|
+
gitSource: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
1258
1281
|
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
1259
1282
|
id: z.ZodOptional<z.ZodString>;
|
|
1260
1283
|
uid: z.ZodOptional<z.ZodString>;
|
|
@@ -1267,6 +1290,7 @@ declare const esquemaListaDeploymentsPromocion: z.ZodObject<{
|
|
|
1267
1290
|
alias: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>;
|
|
1268
1291
|
aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1269
1292
|
meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
1293
|
+
gitSource: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
1270
1294
|
}, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{
|
|
1271
1295
|
id: z.ZodOptional<z.ZodString>;
|
|
1272
1296
|
uid: z.ZodOptional<z.ZodString>;
|
|
@@ -1279,6 +1303,7 @@ declare const esquemaListaDeploymentsPromocion: z.ZodObject<{
|
|
|
1279
1303
|
alias: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>;
|
|
1280
1304
|
aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1281
1305
|
meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
1306
|
+
gitSource: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
1282
1307
|
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
1283
1308
|
id: z.ZodOptional<z.ZodString>;
|
|
1284
1309
|
uid: z.ZodOptional<z.ZodString>;
|
|
@@ -1291,6 +1316,7 @@ declare const esquemaListaDeploymentsPromocion: z.ZodObject<{
|
|
|
1291
1316
|
alias: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>;
|
|
1292
1317
|
aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1293
1318
|
meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
1319
|
+
gitSource: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
1294
1320
|
}, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{
|
|
1295
1321
|
id: z.ZodOptional<z.ZodString>;
|
|
1296
1322
|
uid: z.ZodOptional<z.ZodString>;
|
|
@@ -1303,6 +1329,7 @@ declare const esquemaListaDeploymentsPromocion: z.ZodObject<{
|
|
|
1303
1329
|
alias: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>;
|
|
1304
1330
|
aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1305
1331
|
meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
1332
|
+
gitSource: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
1306
1333
|
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
1307
1334
|
id: z.ZodOptional<z.ZodString>;
|
|
1308
1335
|
uid: z.ZodOptional<z.ZodString>;
|
|
@@ -1315,12 +1342,13 @@ declare const esquemaListaDeploymentsPromocion: z.ZodObject<{
|
|
|
1315
1342
|
alias: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString]>>;
|
|
1316
1343
|
aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1317
1344
|
meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
1345
|
+
gitSource: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
1318
1346
|
}, z.ZodTypeAny, "passthrough">>, "many">;
|
|
1319
1347
|
}, z.ZodTypeAny, "passthrough">>;
|
|
1320
1348
|
type DeploymentPromocion = z.infer<typeof esquemaDeploymentPromocion>;
|
|
1321
1349
|
declare function limpiarIdOUrlDeploy(valor: string): string | null;
|
|
1322
1350
|
declare function extraerIdOUrlDeploy(salida: string, error?: string): string | null;
|
|
1323
|
-
declare function extraerAliasProduccion(
|
|
1351
|
+
declare function extraerAliasProduccion(d: DeploymentPromocion): string | null;
|
|
1324
1352
|
interface OpcionesPromover {
|
|
1325
1353
|
teamId?: string;
|
|
1326
1354
|
projectId?: string;
|
|
@@ -1351,11 +1379,12 @@ type ResultadoPromocion = {
|
|
|
1351
1379
|
codigo: 1;
|
|
1352
1380
|
motivo: string;
|
|
1353
1381
|
};
|
|
1354
|
-
declare function esperarYPromoverDeploy(
|
|
1382
|
+
declare function esperarYPromoverDeploy(opc: OpcionesPromover): ResultadoPromocion;
|
|
1355
1383
|
|
|
1356
1384
|
declare const VARIABLES_VERCEL: readonly ["VERCEL_TOKEN", "VERCEL_ORG_ID", "VERCEL_PROJECT_ID"];
|
|
1357
1385
|
declare const PASOS_VERCEL: readonly [readonly ["pull", "--yes", "--environment=production"], readonly ["build", "--prod"], readonly ["deploy", "--prebuilt", "--prod"]];
|
|
1358
1386
|
declare const PASO_DEPLOY_REMOTO: readonly ["deploy", "--prod", "--yes", "--no-wait"];
|
|
1387
|
+
declare function argumentosPasoVercel(paso: readonly string[], sha: string): string[];
|
|
1359
1388
|
declare const ARCHIVO_ENV_PRODUCCION: string;
|
|
1360
1389
|
declare function tieneVariablesSensibles(carpeta: string): boolean;
|
|
1361
1390
|
declare function extraerUrlSalud(salida: string, error?: string): string | null;
|
|
@@ -1682,4 +1711,4 @@ type Comando = (args: string[], entorno: Entorno) => number;
|
|
|
1682
1711
|
declare const COMANDOS: Record<string, Comando>;
|
|
1683
1712
|
declare function principal(argv: string[], entorno: Entorno): number;
|
|
1684
1713
|
|
|
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 };
|
|
1714
|
+
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, argumentosPasoVercel, 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
|
@@ -772,7 +772,8 @@ var esquemaDeploymentPromocion = zod.z.object({
|
|
|
772
772
|
url: zod.z.string().min(1).optional(),
|
|
773
773
|
alias: zod.z.union([zod.z.array(zod.z.string()), zod.z.string()]).optional(),
|
|
774
774
|
aliases: zod.z.array(zod.z.string()).optional(),
|
|
775
|
-
meta: zod.z.record(zod.z.unknown()).optional()
|
|
775
|
+
meta: zod.z.record(zod.z.unknown()).optional(),
|
|
776
|
+
gitSource: zod.z.record(zod.z.unknown()).nullable().optional()
|
|
776
777
|
}).passthrough().refine((d) => d.id !== void 0 || d.uid !== void 0, {
|
|
777
778
|
message: "el deployment debe incluir id o uid"
|
|
778
779
|
}).refine((d) => d.state !== void 0 || d.readyState !== void 0, {
|
|
@@ -780,56 +781,54 @@ var esquemaDeploymentPromocion = zod.z.object({
|
|
|
780
781
|
});
|
|
781
782
|
var esquemaListaDeploymentsPromocion = zod.z.object({ deployments: zod.z.array(esquemaDeploymentPromocion) }).passthrough();
|
|
782
783
|
function limpiarIdOUrlDeploy(valor) {
|
|
783
|
-
const
|
|
784
|
-
|
|
785
|
-
return limpio || null;
|
|
784
|
+
const s = valor.replace(REGEX_ANSI, "").trim().replace(/^https?:\/\//i, "").replace(/[/?#].*$/, "").replace(/[.,;]+$/, "").trim();
|
|
785
|
+
return s || null;
|
|
786
786
|
}
|
|
787
787
|
function extraerIdOUrlDeploy(salida, error = "") {
|
|
788
788
|
const stdout = salida.replace(REGEX_ANSI, "");
|
|
789
789
|
const texto = `${error}
|
|
790
790
|
${salida}`.replace(REGEX_ANSI, "");
|
|
791
|
-
const
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
)
|
|
791
|
+
const urlsStdout = Array.from(
|
|
792
|
+
stdout.matchAll(/^\s*(https?:\/\/[^\s\]"')>]+)/gim),
|
|
793
|
+
(m) => m[1]
|
|
794
|
+
);
|
|
795
|
+
const prod = /\bProduction\s*:\s*(https?:\/\/[^\s\]"')>]+)/i.exec(texto)?.[1];
|
|
795
796
|
const alias = /\bAlias(?:ed)?\s*:\s*(https?:\/\/[^\s\]"')>]+)/i.exec(
|
|
796
797
|
texto
|
|
797
798
|
)?.[1];
|
|
798
|
-
const candidata
|
|
799
|
-
|
|
800
|
-
const limpio = limpiarIdOUrlDeploy(candidata);
|
|
799
|
+
for (const candidata of [...urlsStdout, prod, alias]) {
|
|
800
|
+
const limpio = candidata ? limpiarIdOUrlDeploy(candidata) : null;
|
|
801
801
|
if (limpio && limpio !== "vercel.com") return limpio;
|
|
802
802
|
}
|
|
803
803
|
return /\b(dpl_[a-zA-Z0-9]+)\b/.exec(texto)?.[1] ?? null;
|
|
804
804
|
}
|
|
805
|
-
function normalizarUrlHttps(
|
|
806
|
-
const
|
|
807
|
-
return /^https?:\/\//i.test(
|
|
805
|
+
function normalizarUrlHttps(u) {
|
|
806
|
+
const s = u.trim().replace(/[.,;]+$/, "").replace(/\/+$/, "");
|
|
807
|
+
return /^https?:\/\//i.test(s) ? s : `https://${s}`;
|
|
808
808
|
}
|
|
809
|
-
function esDominioVercelApp(
|
|
810
|
-
const
|
|
811
|
-
return
|
|
809
|
+
function esDominioVercelApp(u) {
|
|
810
|
+
const h = (limpiarIdOUrlDeploy(u) ?? "").toLowerCase();
|
|
811
|
+
return h === "vercel.app" || h.endsWith(".vercel.app");
|
|
812
812
|
}
|
|
813
|
-
function extraerAliasProduccion(
|
|
814
|
-
const crudos = [
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
return normalizarUrlHttps(dominioPropio ?? candidatos[0]);
|
|
813
|
+
function extraerAliasProduccion(d) {
|
|
814
|
+
const crudos = [
|
|
815
|
+
...Array.isArray(d.alias) ? d.alias : d.alias ? [d.alias] : [],
|
|
816
|
+
...d.aliases ?? []
|
|
817
|
+
].map((c) => c.trim()).filter(Boolean);
|
|
818
|
+
if (crudos.length === 0)
|
|
819
|
+
return d.url && !esDominioVercelApp(d.url) ? normalizarUrlHttps(d.url) : null;
|
|
820
|
+
return normalizarUrlHttps(
|
|
821
|
+
crudos.find((c) => !esDominioVercelApp(c)) ?? crudos[0]
|
|
822
|
+
);
|
|
824
823
|
}
|
|
825
824
|
function obtenerShaCommit(opc, ej) {
|
|
826
825
|
const explicito = opc.sha?.trim() || opc.env?.VERCEL_GIT_COMMIT_SHA?.trim();
|
|
827
826
|
if (explicito) return explicito;
|
|
828
|
-
const
|
|
829
|
-
|
|
830
|
-
const
|
|
827
|
+
for (const dir of [opc.carpeta, opc.cwd]) {
|
|
828
|
+
if (!dir) continue;
|
|
829
|
+
const cwd = ubicarEnRepo(dir, ej)?.raiz ?? dir;
|
|
831
830
|
const r = ej("git", ["rev-parse", "HEAD"], {
|
|
832
|
-
cwd
|
|
831
|
+
cwd,
|
|
833
832
|
...opc.env ? { env: opc.env } : {}
|
|
834
833
|
});
|
|
835
834
|
if (r.codigo === 0 && r.salida.trim() !== "") return r.salida.trim();
|
|
@@ -843,143 +842,145 @@ var fallo = (motivo) => ({
|
|
|
843
842
|
motivo
|
|
844
843
|
});
|
|
845
844
|
function llamarApiVercel(rutaQuery, ctx, metodo = "GET") {
|
|
846
|
-
let respuesta;
|
|
847
845
|
try {
|
|
848
846
|
const auth = { Authorization: `Bearer ${ctx.token}` };
|
|
849
|
-
|
|
847
|
+
const r = ctx.solicitar(`${ctx.baseUrl}${rutaQuery}`, auth, metodo);
|
|
848
|
+
return r.estado >= 200 && r.estado < 300 ? { ok: true, cuerpo: r.cuerpo } : err(`HTTP ${r.estado} en ${metodo} ${rutaQuery}`);
|
|
850
849
|
} catch (e) {
|
|
851
850
|
const msg = e instanceof Error ? e.message : String(e);
|
|
852
851
|
return err(`fallo de red en ${metodo} ${rutaQuery} (${msg})`);
|
|
853
852
|
}
|
|
854
|
-
if (respuesta.estado < 200 || respuesta.estado >= 300) {
|
|
855
|
-
return err(`HTTP ${respuesta.estado} en ${metodo} ${rutaQuery}`);
|
|
856
|
-
}
|
|
857
|
-
return { ok: true, cuerpo: respuesta.cuerpo };
|
|
858
853
|
}
|
|
859
|
-
function
|
|
860
|
-
const
|
|
854
|
+
function obtenerShaDeployment(d) {
|
|
855
|
+
for (const c of [
|
|
856
|
+
d.meta?.githubCommitSha,
|
|
857
|
+
d.meta?.gitCommitSha,
|
|
858
|
+
d.gitSource?.sha
|
|
859
|
+
]) {
|
|
860
|
+
if (typeof c === "string" && c.trim() !== "") return c.trim();
|
|
861
|
+
}
|
|
862
|
+
return "";
|
|
863
|
+
}
|
|
864
|
+
function validarIdentidadDeployment(d, ctx, fijar = false) {
|
|
865
|
+
const id = d.id ?? d.uid;
|
|
861
866
|
if (d.projectId !== ctx.projectId) {
|
|
862
867
|
return err(
|
|
863
|
-
`el deploy ${
|
|
868
|
+
`el deploy ${id} no confirma projectId=${JSON.stringify(d.projectId) ?? "ausente"} (esperado ${ctx.projectId})`
|
|
864
869
|
);
|
|
865
870
|
}
|
|
866
871
|
if (d.target !== "production") {
|
|
867
872
|
return err(
|
|
868
|
-
`el deploy ${
|
|
873
|
+
`el deploy ${id} no es de producci\xF3n (target=${JSON.stringify(d.target) ?? "ausente"}; esperado production)`
|
|
869
874
|
);
|
|
870
875
|
}
|
|
871
|
-
const
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
876
|
+
const sha = obtenerShaDeployment(d);
|
|
877
|
+
return sha && sha === ctx.sha ? { ok: true, valor: d, id, fijar } : err(
|
|
878
|
+
`el deploy ${id} corresponde al SHA ${sha || "desconocido"} y no a ${ctx.sha}`
|
|
879
|
+
);
|
|
880
|
+
}
|
|
881
|
+
function pedirDeploymentsV6(ruta, ctx) {
|
|
882
|
+
const resp = llamarApiVercel(ruta, ctx, "GET");
|
|
883
|
+
if (!resp.ok) return resp;
|
|
884
|
+
try {
|
|
885
|
+
const r = esquemaListaDeploymentsPromocion.safeParse(
|
|
886
|
+
JSON.parse(resp.cuerpo)
|
|
875
887
|
);
|
|
888
|
+
return r.success ? { ok: true, deployments: r.data.deployments } : err(`no se encontr\xF3 deployment de producci\xF3n para el SHA ${ctx.sha}`);
|
|
889
|
+
} catch (e) {
|
|
890
|
+
return err(`JSON inv\xE1lido en GET ${ruta} (${e.message})`);
|
|
876
891
|
}
|
|
877
|
-
return { ok: true, deploymentId };
|
|
878
892
|
}
|
|
879
893
|
function consultarDeploymentV13(idOrUrl, ctx) {
|
|
880
894
|
const ruta = `/v13/deployments/${encodeURIComponent(idOrUrl)}?${ctx.qTeam}`;
|
|
881
895
|
const resp = llamarApiVercel(ruta, ctx, "GET");
|
|
882
896
|
if (!resp.ok) return resp;
|
|
883
|
-
let json;
|
|
884
897
|
try {
|
|
885
|
-
|
|
898
|
+
const r = esquemaDeploymentPromocion.safeParse(JSON.parse(resp.cuerpo));
|
|
899
|
+
return r.success ? validarIdentidadDeployment(r.data, ctx) : err(`respuesta inv\xE1lida en GET ${ruta} (${r.error.message})`);
|
|
886
900
|
} catch (e) {
|
|
887
901
|
return err(`JSON inv\xE1lido en GET ${ruta} (${e.message})`);
|
|
888
902
|
}
|
|
889
|
-
const r = esquemaDeploymentPromocion.safeParse(json);
|
|
890
|
-
if (!r.success) {
|
|
891
|
-
return err(`respuesta inv\xE1lida en GET ${ruta} (${r.error.message})`);
|
|
892
|
-
}
|
|
893
|
-
const val = validarIdentidadDeployment(r.data, ctx);
|
|
894
|
-
if (!val.ok) return val;
|
|
895
|
-
return { ok: true, valor: r.data, deploymentId: val.deploymentId };
|
|
896
903
|
}
|
|
897
|
-
function
|
|
898
|
-
const
|
|
899
|
-
const
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
904
|
+
function resolverDeployment(idOrUrl, ctx) {
|
|
905
|
+
const qBase = `${ctx.qTeam}&projectId=${encodeURIComponent(ctx.projectId)}&target=production`;
|
|
906
|
+
const respaldoV6 = () => {
|
|
907
|
+
const r = pedirDeploymentsV6(`/v6/deployments?${qBase}`, ctx);
|
|
908
|
+
if (!r.ok) return r;
|
|
909
|
+
const d = r.deployments.find((x) => obtenerShaDeployment(x) === ctx.sha);
|
|
910
|
+
return d ? validarIdentidadDeployment(d, ctx, true) : err(`no se encontr\xF3 deployment de producci\xF3n para el SHA ${ctx.sha}`);
|
|
911
|
+
};
|
|
912
|
+
if (idOrUrl) {
|
|
913
|
+
const c = consultarDeploymentV13(idOrUrl, ctx);
|
|
914
|
+
if (c.ok || idOrUrl.startsWith("dpl_") || !c.motivo.includes("corresponde al SHA"))
|
|
915
|
+
return c;
|
|
916
|
+
const respaldo = respaldoV6();
|
|
917
|
+
return respaldo.ok ? respaldo : c;
|
|
918
|
+
}
|
|
919
|
+
const lista = pedirDeploymentsV6(
|
|
920
|
+
`/v6/deployments?${qBase}&sha=${encodeURIComponent(ctx.sha)}`,
|
|
921
|
+
ctx
|
|
922
|
+
);
|
|
923
|
+
if (!lista.ok) return lista;
|
|
924
|
+
if (lista.deployments.length === 0) return respaldoV6();
|
|
925
|
+
const actual = lista.deployments.find((d) => obtenerShaDeployment(d) === ctx.sha) ?? lista.deployments[0];
|
|
926
|
+
return validarIdentidadDeployment(actual, ctx, true);
|
|
927
|
+
}
|
|
928
|
+
function esperarYPromoverDeploy(opc) {
|
|
929
|
+
const {
|
|
930
|
+
ejecutar: ej = ejecutar,
|
|
931
|
+
solicitar = solicitarVercel,
|
|
932
|
+
dormir = dormirSincrono,
|
|
933
|
+
intervaloMs = INTERVALO_POLL_DEPLOY_MS,
|
|
934
|
+
timeoutMs = TIMEOUT_POLL_DEPLOY_MS,
|
|
935
|
+
maxIntentos
|
|
936
|
+
} = opc;
|
|
937
|
+
const token = opc.token?.trim() || opc.env?.VERCEL_TOKEN?.trim() || "";
|
|
938
|
+
const teamId = opc.teamId?.trim() || opc.env?.VERCEL_ORG_ID?.trim() || "";
|
|
939
|
+
const projectId = opc.projectId?.trim() || opc.env?.VERCEL_PROJECT_ID?.trim() || "";
|
|
940
|
+
const baseUrl = (opc.baseUrl ?? opc.env?.VERCEL_API_URL)?.trim() || API_VERCEL_URL;
|
|
941
|
+
if (!token || !teamId || !projectId)
|
|
909
942
|
return fallo("faltan credenciales de Vercel para promover el deploy");
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
if (!sha) {
|
|
943
|
+
const sha = obtenerShaCommit(opc, ej);
|
|
944
|
+
if (!sha)
|
|
913
945
|
return fallo(
|
|
914
946
|
"no se pudo determinar el SHA actual para verificar el deploy"
|
|
915
947
|
);
|
|
916
|
-
}
|
|
917
|
-
const ctx = {
|
|
918
|
-
|
|
919
|
-
projectId,
|
|
920
|
-
sha,
|
|
921
|
-
token,
|
|
922
|
-
solicitar,
|
|
923
|
-
baseUrl
|
|
924
|
-
};
|
|
925
|
-
let idOrUrl = opciones.urlDeploy !== void 0 && opciones.urlDeploy !== null ? limpiarIdOUrlDeploy(opciones.urlDeploy) : extraerIdOUrlDeploy(
|
|
926
|
-
opciones.salidaDeploy ?? "",
|
|
927
|
-
opciones.errorDeploy ?? ""
|
|
928
|
-
);
|
|
948
|
+
const qTeam = `teamId=${encodeURIComponent(teamId)}`;
|
|
949
|
+
const ctx = { qTeam, projectId, sha, token, solicitar, baseUrl };
|
|
950
|
+
let idOrUrl = opc.urlDeploy != null ? limpiarIdOUrlDeploy(opc.urlDeploy) : extraerIdOUrlDeploy(opc.salidaDeploy ?? "", opc.errorDeploy ?? "");
|
|
929
951
|
let transcurridoMs = 0;
|
|
930
952
|
let intentos = 0;
|
|
931
953
|
let deployListo = null;
|
|
932
954
|
let deploymentId = "";
|
|
955
|
+
const esperar = () => {
|
|
956
|
+
if (maxIntentos !== void 0 && intentos >= maxIntentos || transcurridoMs + intervaloMs > timeoutMs)
|
|
957
|
+
return false;
|
|
958
|
+
dormir(intervaloMs);
|
|
959
|
+
transcurridoMs += intervaloMs;
|
|
960
|
+
return true;
|
|
961
|
+
};
|
|
933
962
|
while (deployListo === null) {
|
|
934
963
|
intentos++;
|
|
935
|
-
|
|
936
|
-
if (
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
deploymentId = c.deploymentId;
|
|
941
|
-
} else {
|
|
942
|
-
const q = `${ctx.qTeam}&projectId=${encodeURIComponent(projectId)}&target=production&sha=${encodeURIComponent(sha)}`;
|
|
943
|
-
const ruta = `/v6/deployments?${q}`;
|
|
944
|
-
const resp = llamarApiVercel(ruta, ctx, "GET");
|
|
945
|
-
if (!resp.ok) return fallo(resp.motivo);
|
|
946
|
-
let json;
|
|
947
|
-
try {
|
|
948
|
-
json = JSON.parse(resp.cuerpo);
|
|
949
|
-
} catch (e) {
|
|
950
|
-
return fallo(`JSON inv\xE1lido en GET ${ruta} (${e.message})`);
|
|
951
|
-
}
|
|
952
|
-
const lista = esquemaListaDeploymentsPromocion.safeParse(json);
|
|
953
|
-
if (!lista.success || lista.data.deployments.length === 0) {
|
|
954
|
-
return fallo(
|
|
955
|
-
`no se encontr\xF3 deployment de producci\xF3n para el SHA ${sha}`
|
|
956
|
-
);
|
|
957
|
-
}
|
|
958
|
-
actual = lista.data.deployments[0];
|
|
959
|
-
const val = validarIdentidadDeployment(actual, ctx);
|
|
960
|
-
if (!val.ok) return fallo(val.motivo);
|
|
961
|
-
deploymentId = val.deploymentId;
|
|
962
|
-
idOrUrl = deploymentId;
|
|
963
|
-
}
|
|
964
|
+
const r = resolverDeployment(idOrUrl, ctx);
|
|
965
|
+
if (!r.ok) return fallo(r.motivo);
|
|
966
|
+
const actual = r.valor;
|
|
967
|
+
deploymentId = r.id;
|
|
968
|
+
if (r.fijar) idOrUrl = deploymentId;
|
|
964
969
|
const estado = actual.readyState ?? actual.state;
|
|
965
|
-
if (estado === "ERROR" || estado === "CANCELED")
|
|
970
|
+
if (estado === "ERROR" || estado === "CANCELED")
|
|
966
971
|
return fallo(`el deploy ${deploymentId} termin\xF3 en estado ${estado}`);
|
|
967
|
-
}
|
|
968
972
|
if (estado === "READY") {
|
|
969
973
|
deployListo = actual;
|
|
970
974
|
break;
|
|
971
975
|
}
|
|
972
|
-
if (
|
|
976
|
+
if (!esperar())
|
|
973
977
|
return fallo(
|
|
974
978
|
`timeout esperando a que el deploy ${deploymentId} llegue a READY (estado: ${estado})`
|
|
975
979
|
);
|
|
976
|
-
}
|
|
977
|
-
dormir(intervaloMs);
|
|
978
|
-
transcurridoMs += intervaloMs;
|
|
979
980
|
}
|
|
980
981
|
let deployFinal = deployListo;
|
|
981
|
-
if (deployListo.readySubstate
|
|
982
|
-
const rutaPromote = `/v10/projects/${encodeURIComponent(projectId)}/promote/${encodeURIComponent(deploymentId)}?${
|
|
982
|
+
if (deployListo.readySubstate === "STAGED") {
|
|
983
|
+
const rutaPromote = `/v10/projects/${encodeURIComponent(projectId)}/promote/${encodeURIComponent(deploymentId)}?${qTeam}`;
|
|
983
984
|
const respPromote = llamarApiVercel(rutaPromote, ctx, "POST");
|
|
984
985
|
if (!respPromote.ok) return fallo(respPromote.motivo);
|
|
985
986
|
for (; ; ) {
|
|
@@ -988,22 +989,18 @@ function esperarYPromoverDeploy(opciones) {
|
|
|
988
989
|
if (!c.ok) return fallo(c.motivo);
|
|
989
990
|
const dConf = c.valor;
|
|
990
991
|
const estadoConf = dConf.readyState ?? dConf.state;
|
|
991
|
-
if (estadoConf === "ERROR" || estadoConf === "CANCELED")
|
|
992
|
+
if (estadoConf === "ERROR" || estadoConf === "CANCELED")
|
|
992
993
|
return fallo(
|
|
993
994
|
`el deploy ${deploymentId} termin\xF3 en estado ${estadoConf} durante la promoci\xF3n`
|
|
994
995
|
);
|
|
995
|
-
|
|
996
|
-
if (estadoConf === "READY" && dConf.readySubstate === "PROMOTED") {
|
|
996
|
+
if (estadoConf === "READY" && (dConf.readySubstate === "PROMOTED" || dConf.readySubstate !== "STAGED" && extraerAliasProduccion(dConf) !== null)) {
|
|
997
997
|
deployFinal = dConf;
|
|
998
998
|
break;
|
|
999
999
|
}
|
|
1000
|
-
if (
|
|
1000
|
+
if (!esperar())
|
|
1001
1001
|
return fallo(
|
|
1002
1002
|
`timeout esperando que el deploy ${deploymentId} quede PROMOTED (subestado: ${dConf.readySubstate ?? "sin subestado"})`
|
|
1003
1003
|
);
|
|
1004
|
-
}
|
|
1005
|
-
dormir(intervaloMs);
|
|
1006
|
-
transcurridoMs += intervaloMs;
|
|
1007
1004
|
}
|
|
1008
1005
|
}
|
|
1009
1006
|
const alias = extraerAliasProduccion(deployFinal) ?? extraerAliasProduccion(deployListo);
|
|
@@ -1029,6 +1026,15 @@ var PASO_DEPLOY_REMOTO = [
|
|
|
1029
1026
|
"--yes",
|
|
1030
1027
|
"--no-wait"
|
|
1031
1028
|
];
|
|
1029
|
+
function argumentosPasoVercel(paso, sha) {
|
|
1030
|
+
return paso[0] === "deploy" ? [
|
|
1031
|
+
...paso,
|
|
1032
|
+
"--meta",
|
|
1033
|
+
`githubCommitSha=${sha}`,
|
|
1034
|
+
"--meta",
|
|
1035
|
+
`gitCommitSha=${sha}`
|
|
1036
|
+
] : [...paso];
|
|
1037
|
+
}
|
|
1032
1038
|
var ARCHIVO_ENV_PRODUCCION = path3__namespace.join(
|
|
1033
1039
|
".vercel",
|
|
1034
1040
|
".env.production.local"
|
|
@@ -1049,7 +1055,13 @@ ${salida}`.replace(REGEX_ANSI2, "");
|
|
|
1049
1055
|
const alias = /\bAlias(?:ed)?\s*:\s*(https?:\/\/[^\s\]"')>]+)/i.exec(
|
|
1050
1056
|
texto
|
|
1051
1057
|
)?.[1];
|
|
1052
|
-
const urlStdout =
|
|
1058
|
+
const urlStdout = Array.from(
|
|
1059
|
+
stdout.matchAll(/^\s*(https?:\/\/[^\s\]"')>]+)/gim),
|
|
1060
|
+
(m) => m[1]
|
|
1061
|
+
).find((u) => {
|
|
1062
|
+
const host = limpiarIdOUrlDeploy(u);
|
|
1063
|
+
return Boolean(host && host !== "vercel.com");
|
|
1064
|
+
});
|
|
1053
1065
|
const produccion = /\bProduction\s*:\s*(https?:\/\/[^\s\]"')>]+)/i.exec(
|
|
1054
1066
|
texto
|
|
1055
1067
|
)?.[1];
|
|
@@ -1065,8 +1077,11 @@ function redactarCredenciales(texto, env) {
|
|
|
1065
1077
|
}
|
|
1066
1078
|
return limpio;
|
|
1067
1079
|
}
|
|
1068
|
-
function correrPasoVercel(ej, paso, cwd, opciones) {
|
|
1069
|
-
const r = ej("vercel", paso,
|
|
1080
|
+
function correrPasoVercel(ej, paso, cwd, opciones, sha) {
|
|
1081
|
+
const r = ej("vercel", argumentosPasoVercel(paso, sha), {
|
|
1082
|
+
cwd,
|
|
1083
|
+
env: { ...opciones.env, VERCEL_GIT_COMMIT_SHA: sha }
|
|
1084
|
+
});
|
|
1070
1085
|
if (r.salida.trim() !== "") {
|
|
1071
1086
|
opciones.salida(redactarCredenciales(r.salida.trimEnd(), opciones.env));
|
|
1072
1087
|
}
|
|
@@ -1142,7 +1157,13 @@ function ejecutarDesplegar(opciones) {
|
|
|
1142
1157
|
);
|
|
1143
1158
|
return 0;
|
|
1144
1159
|
}
|
|
1145
|
-
const rPull = correrPasoVercel(
|
|
1160
|
+
const rPull = correrPasoVercel(
|
|
1161
|
+
ej,
|
|
1162
|
+
PASOS_VERCEL[0],
|
|
1163
|
+
rutaCarpeta,
|
|
1164
|
+
opciones,
|
|
1165
|
+
sha
|
|
1166
|
+
);
|
|
1146
1167
|
if (!rPull.ok) return rPull.codigo;
|
|
1147
1168
|
const cwdResuelto = path3__namespace.resolve(opciones.cwd);
|
|
1148
1169
|
const raizGit = ubicarEnRepo(rutaCarpeta, ej)?.raiz ?? ubicarEnRepo(cwdResuelto, ej)?.raiz;
|
|
@@ -1166,7 +1187,7 @@ function ejecutarDesplegar(opciones) {
|
|
|
1166
1187
|
const pasosRestantes = haySensibles ? [PASO_DEPLOY_REMOTO] : PASOS_VERCEL.slice(1);
|
|
1167
1188
|
let ultimoDeploy = rPull.resultado;
|
|
1168
1189
|
for (const paso of pasosRestantes) {
|
|
1169
|
-
const r = correrPasoVercel(ej, paso, rutaCarpeta, opciones);
|
|
1190
|
+
const r = correrPasoVercel(ej, paso, rutaCarpeta, opciones, sha);
|
|
1170
1191
|
if (!r.ok) return r.codigo;
|
|
1171
1192
|
ultimoDeploy = r.resultado;
|
|
1172
1193
|
}
|
|
@@ -1390,6 +1411,7 @@ exports.REFERENCIA_DEPLOYMENTS_V6 = REFERENCIA_DEPLOYMENTS_V6;
|
|
|
1390
1411
|
exports.TIMEOUT_POLL_DEPLOY_MS = TIMEOUT_POLL_DEPLOY_MS;
|
|
1391
1412
|
exports.USO = USO;
|
|
1392
1413
|
exports.VARIABLES_VERCEL = VARIABLES_VERCEL;
|
|
1414
|
+
exports.argumentosPasoVercel = argumentosPasoVercel;
|
|
1393
1415
|
exports.armarCapturaV6 = armarCapturaV6;
|
|
1394
1416
|
exports.calcularMinutosPorDia = calcularMinutosPorDia;
|
|
1395
1417
|
exports.capturar = capturar;
|