build: refresh release artifacts after dropping user-app
Rebuild API bundle, admin panel, and user-app-v2 for Dokploy copy-only deploy. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+36
-21
@@ -89477,7 +89477,7 @@ var require_customer_auth_service = __commonJS({
|
||||
const smsText = `<#> code is ${code}
|
||||
\u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u06CC\u06A9\u0628\u0627\u0631 \u0645\u0635\u0631\u0641 \u0634\u0645\u0627 \u062C\u0647\u062A \u0648\u0631\u0648\u062F \u0628\u0647 \u0627\u067E\u0644\u06CC\u06A9\u06CC\u0634\u0646 ${(0, brand_1.brandName)()} ${code} \u0645\u06CC \u0628\u0627\u0634\u062F
|
||||
aMo6iFyUQaY`;
|
||||
const result = await this.sms.send(mobile, smsText, { persist: false });
|
||||
const result = await this.sms.send(mobile, smsText);
|
||||
const devNoGateway = process.env.NODE_ENV !== "production" && !result.ok && result.error === "sms-not-configured";
|
||||
if (devNoGateway) {
|
||||
this.logger.log(`[dev] OTP for ${mobile}: ${code}`);
|
||||
@@ -89486,14 +89486,6 @@ aMo6iFyUQaY`;
|
||||
this.logger.error(`OTP SMS to ${mobile} failed: ${result.error ?? "unknown"}`);
|
||||
throw new common_12.HttpException("\u0627\u0631\u0633\u0627\u0644 \u067E\u06CC\u0627\u0645 \u06A9\u0648\u062A\u0627\u0647 \u062F\u0631 \u062D\u0627\u0644 \u062D\u0627\u0636\u0631 \u0645\u0645\u06A9\u0646 \u0646\u06CC\u0633\u062A. \u0644\u0637\u0641\u0627\u064B \u0686\u0646\u062F \u0644\u062D\u0638\u0647 \u0628\u0639\u062F \u062F\u0648\u0628\u0627\u0631\u0647 \u062A\u0644\u0627\u0634 \u06A9\u0646\u06CC\u062F.", common_12.HttpStatus.SERVICE_UNAVAILABLE);
|
||||
}
|
||||
await this.prisma.smsMessage.create({
|
||||
data: {
|
||||
audience: client_1.MessageAudience.SINGLE_NUMBER,
|
||||
recipients: mobile,
|
||||
body: "\u06A9\u062F \u06CC\u06A9\u0628\u0627\u0631 \u0645\u0635\u0631\u0641 \u0648\u0631\u0648\u062F (\u0645\u062A\u0646 \u067E\u06CC\u0627\u0645 \u062B\u0628\u062A \u0646\u0645\u06CC\u200C\u0634\u0648\u062F)",
|
||||
sentCount: 1
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
exports2.CustomerAuthService = CustomerAuthService;
|
||||
@@ -92126,10 +92118,12 @@ var require_orders_service = __commonJS({
|
||||
throw new common_12.NotFoundException(`Variant ${variant.id} not found`);
|
||||
const wagePercent = new client_1.Prisma.Decimal(quote ? quote.wagePercentSnapshot : item.wagePercent);
|
||||
const discountPercent = new client_1.Prisma.Decimal(quote ? quote.discountPercentSnapshot : item.discountPercent ?? 0);
|
||||
if (quote)
|
||||
this.warnOnPriceMismatch(variant.id, item, wagePercent, discountPercent);
|
||||
const netPercent = wagePercent.sub(discountPercent);
|
||||
const computedWeightGrams = rashWeight.mul(netPercent.div(100).add(1));
|
||||
const variantRial = new client_1.Prisma.Decimal(variant.rialWage ?? 0);
|
||||
const flatRialCharge2 = quotes ? variantRial : item.flatRialCharge != null ? new client_1.Prisma.Decimal(item.flatRialCharge) : variantRial;
|
||||
if (quote)
|
||||
this.warnOnPriceMismatch(variant.id, item, wagePercent, discountPercent, flatRialCharge2);
|
||||
return {
|
||||
productVariantId: variant.id,
|
||||
quantity: item.quantity,
|
||||
@@ -92137,8 +92131,7 @@ var require_orders_service = __commonJS({
|
||||
wagePercentSnapshot: wagePercent,
|
||||
discountPercentSnapshot: discountPercent,
|
||||
computedWeightGrams,
|
||||
// Legacy app: rial_pay is always 0 (cart.vue); only an operator sets one.
|
||||
flatRialCharge: new client_1.Prisma.Decimal(quotes ? 0 : item.flatRialCharge ?? 0)
|
||||
flatRialCharge: flatRialCharge2
|
||||
};
|
||||
}));
|
||||
const totalGoldWeightGrams = computedItems.reduce((sum, item) => sum.add(item.computedWeightGrams.mul(item.quantity)), new client_1.Prisma.Decimal(0));
|
||||
@@ -92201,11 +92194,11 @@ var require_orders_service = __commonJS({
|
||||
* mismatch means a stale app version, a promotion that expired between the
|
||||
* product page and checkout, or a tampered request.
|
||||
*
|
||||
* `flatRialCharge` is included because the app hardcodes 0 (cart.vue:179) and
|
||||
* only an operator ever sets one — anything non-zero from a customer is a
|
||||
* client that should not be sending it.
|
||||
* `flatRialCharge` is compared only when the client actually sent one. The
|
||||
* app cart omits it and the server copies variant.rialWage, so treating a
|
||||
* missing field as 0 would warn on every order that has a rial wage.
|
||||
*/
|
||||
warnOnPriceMismatch(variantId, sent, wagePercent, discountPercent) {
|
||||
warnOnPriceMismatch(variantId, sent, wagePercent, discountPercent, flatRialCharge) {
|
||||
const differs = [];
|
||||
if (!wagePercent.eq(sent.wagePercent)) {
|
||||
differs.push(`wagePercent sent=${sent.wagePercent} used=${wagePercent.toString()}`);
|
||||
@@ -92213,8 +92206,8 @@ var require_orders_service = __commonJS({
|
||||
if (!discountPercent.eq(sent.discountPercent ?? 0)) {
|
||||
differs.push(`discountPercent sent=${sent.discountPercent ?? 0} used=${discountPercent.toString()}`);
|
||||
}
|
||||
if ((sent.flatRialCharge ?? 0) !== 0) {
|
||||
differs.push(`flatRialCharge sent=${sent.flatRialCharge} used=0`);
|
||||
if (sent.flatRialCharge != null && !flatRialCharge.eq(sent.flatRialCharge)) {
|
||||
differs.push(`flatRialCharge sent=${sent.flatRialCharge} used=${flatRialCharge.toString()}`);
|
||||
}
|
||||
if (differs.length) {
|
||||
this.logger.warn(`Order pricing for variant ${variantId}: the server's figures are used, the client's are ignored \u2014 ${differs.join("; ")}`);
|
||||
@@ -95369,7 +95362,8 @@ var require_admin_orders_service = __commonJS({
|
||||
variant_title: it.productVariant.title,
|
||||
qty: it.quantity,
|
||||
grams: it.computedWeightGrams,
|
||||
rash: it.rashWeightGramsSnapshot
|
||||
rash: it.rashWeightGramsSnapshot,
|
||||
flatRialCharge: it.flatRialCharge
|
||||
}))
|
||||
};
|
||||
}
|
||||
@@ -95513,7 +95507,9 @@ var require_admin_orders_service = __commonJS({
|
||||
// negotiate a different one.
|
||||
wagePercent: Number(it.percent ?? variant.defaultWagePercent),
|
||||
discountPercent: Number(it.discount ?? 0),
|
||||
flatRialCharge: Number(it.rial_input ?? 0)
|
||||
// Omitted rial_input is left unset so createOrder copies variant.rialWage.
|
||||
// An explicit 0 stays 0: the operator cleared the charge.
|
||||
...it.rial_input != null ? { flatRialCharge: Number(it.rial_input) } : {}
|
||||
};
|
||||
}));
|
||||
const order = await this.orders.createOrder({
|
||||
@@ -103431,6 +103427,19 @@ var require_public_slider_controller = __commonJS({
|
||||
const value = await this.misc.getConst("mobile_main_slider");
|
||||
return Array.isArray(value) ? value : [];
|
||||
}
|
||||
/** Custom button on the profile dashboard (ثابتها → دکمه سفارشی). */
|
||||
async getCustomButton() {
|
||||
const value = await this.misc.getConst("custom_button");
|
||||
if (!value || typeof value !== "object" || Array.isArray(value)) {
|
||||
return { enabled: false, title: "", link: "" };
|
||||
}
|
||||
const row = value;
|
||||
return {
|
||||
enabled: Boolean(row.enabled),
|
||||
title: String(row.title ?? ""),
|
||||
link: String(row.link ?? "")
|
||||
};
|
||||
}
|
||||
};
|
||||
exports2.PublicSliderController = PublicSliderController;
|
||||
__decorate4([
|
||||
@@ -103439,6 +103448,12 @@ var require_public_slider_controller = __commonJS({
|
||||
__metadata3("design:paramtypes", []),
|
||||
__metadata3("design:returntype", Promise)
|
||||
], PublicSliderController.prototype, "getSlider", null);
|
||||
__decorate4([
|
||||
(0, common_12.Get)("custom-button"),
|
||||
__metadata3("design:type", Function),
|
||||
__metadata3("design:paramtypes", []),
|
||||
__metadata3("design:returntype", Promise)
|
||||
], PublicSliderController.prototype, "getCustomButton", null);
|
||||
exports2.PublicSliderController = PublicSliderController = __decorate4([
|
||||
(0, guards_1.Public)(),
|
||||
(0, common_12.Controller)("home"),
|
||||
|
||||
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
+17
@@ -0,0 +1,17 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -z "$NODE_PATH" ]; then
|
||||
export NODE_PATH="/mnt/e/tehran_taj/node_modules/.pnpm/prisma@5.22.0/node_modules/prisma/build/node_modules:/mnt/e/tehran_taj/node_modules/.pnpm/prisma@5.22.0/node_modules/prisma/node_modules:/mnt/e/tehran_taj/node_modules/.pnpm/prisma@5.22.0/node_modules:/mnt/e/tehran_taj/node_modules/.pnpm/node_modules"
|
||||
else
|
||||
export NODE_PATH="/mnt/e/tehran_taj/node_modules/.pnpm/prisma@5.22.0/node_modules/prisma/build/node_modules:/mnt/e/tehran_taj/node_modules/.pnpm/prisma@5.22.0/node_modules/prisma/node_modules:/mnt/e/tehran_taj/node_modules/.pnpm/prisma@5.22.0/node_modules:/mnt/e/tehran_taj/node_modules/.pnpm/node_modules:$NODE_PATH"
|
||||
fi
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../../../../../../prisma@5.22.0/node_modules/prisma/build/index.js" "$@"
|
||||
else
|
||||
exec node "$basedir/../../../../../../prisma@5.22.0/node_modules/prisma/build/index.js" "$@"
|
||||
fi
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
@SETLOCAL
|
||||
@IF NOT DEFINED NODE_PATH (
|
||||
@SET "NODE_PATH=E:\tehran_taj\node_modules\.pnpm\prisma@5.22.0\node_modules\prisma\build\node_modules;E:\tehran_taj\node_modules\.pnpm\prisma@5.22.0\node_modules\prisma\node_modules;E:\tehran_taj\node_modules\.pnpm\prisma@5.22.0\node_modules;E:\tehran_taj\node_modules\.pnpm\node_modules"
|
||||
) ELSE (
|
||||
@SET "NODE_PATH=E:\tehran_taj\node_modules\.pnpm\prisma@5.22.0\node_modules\prisma\build\node_modules;E:\tehran_taj\node_modules\.pnpm\prisma@5.22.0\node_modules\prisma\node_modules;E:\tehran_taj\node_modules\.pnpm\prisma@5.22.0\node_modules;E:\tehran_taj\node_modules\.pnpm\node_modules;%NODE_PATH%"
|
||||
)
|
||||
@IF EXIST "%~dp0\node.exe" (
|
||||
"%~dp0\node.exe" "%~dp0\..\..\..\..\..\..\prisma@5.22.0\node_modules\prisma\build\index.js" %*
|
||||
) ELSE (
|
||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
node "%~dp0\..\..\..\..\..\..\prisma@5.22.0\node_modules\prisma\build\index.js" %*
|
||||
)
|
||||
+41
@@ -0,0 +1,41 @@
|
||||
#!/usr/bin/env pwsh
|
||||
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
||||
|
||||
$exe=""
|
||||
$pathsep=":"
|
||||
$env_node_path=$env:NODE_PATH
|
||||
$new_node_path="E:\tehran_taj\node_modules\.pnpm\prisma@5.22.0\node_modules\prisma\build\node_modules;E:\tehran_taj\node_modules\.pnpm\prisma@5.22.0\node_modules\prisma\node_modules;E:\tehran_taj\node_modules\.pnpm\prisma@5.22.0\node_modules;E:\tehran_taj\node_modules\.pnpm\node_modules"
|
||||
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
||||
# Fix case when both the Windows and Linux builds of Node
|
||||
# are installed in the same directory
|
||||
$exe=".exe"
|
||||
$pathsep=";"
|
||||
} else {
|
||||
$new_node_path="/mnt/e/tehran_taj/node_modules/.pnpm/prisma@5.22.0/node_modules/prisma/build/node_modules:/mnt/e/tehran_taj/node_modules/.pnpm/prisma@5.22.0/node_modules/prisma/node_modules:/mnt/e/tehran_taj/node_modules/.pnpm/prisma@5.22.0/node_modules:/mnt/e/tehran_taj/node_modules/.pnpm/node_modules"
|
||||
}
|
||||
if ([string]::IsNullOrEmpty($env_node_path)) {
|
||||
$env:NODE_PATH=$new_node_path
|
||||
} else {
|
||||
$env:NODE_PATH="$new_node_path$pathsep$env_node_path"
|
||||
}
|
||||
|
||||
$ret=0
|
||||
if (Test-Path "$basedir/node$exe") {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "$basedir/node$exe" "$basedir/../../../../../../prisma@5.22.0/node_modules/prisma/build/index.js" $args
|
||||
} else {
|
||||
& "$basedir/node$exe" "$basedir/../../../../../../prisma@5.22.0/node_modules/prisma/build/index.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
} else {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "node$exe" "$basedir/../../../../../../prisma@5.22.0/node_modules/prisma/build/index.js" $args
|
||||
} else {
|
||||
& "node$exe" "$basedir/../../../../../../prisma@5.22.0/node_modules/prisma/build/index.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
}
|
||||
$env:NODE_PATH=$env_node_path
|
||||
exit $ret
|
||||
Reference in New Issue
Block a user