test fcm v1

This commit is contained in:
amel
2025-06-30 11:55:45 +08:00
parent 5230910ee2
commit a4c22dc6fb
6 changed files with 49 additions and 1 deletions

BIN
bun.lockb

Binary file not shown.

View File

@@ -41,11 +41,13 @@
"@tiptap/starter-kit": "^2.4.0",
"@types/bun": "^1.2.17",
"@types/busboy": "^1.5.4",
"@types/crypto-js": "^4.2.2",
"@types/lodash": "^4.17.6",
"@types/minimist": "^1.2.5",
"@types/multer": "^1.4.12",
"@types/web-push": "^3.6.3",
"busboy": "^1.6.0",
"crypto-js": "^4.2.0",
"dayjs": "^1.11.11",
"echarts": "^5.5.1",
"echarts-for-react": "^3.0.2",

View File

@@ -1,11 +1,18 @@
import admin from "firebase-admin";
import dotenv from "dotenv";
dotenv.config({
path: ".env"
});
import CryptoJS from "crypto-js";
const privateKey = "U2FsdGVkX1/zPGErdHO359FChVpjXGydZmqy9iPspWsrqDV/4ztGVen0J5kC+tp1awSJnmPAhqdUV11cPVgRgwopTMywhPmFJzZ03N3AohDPHhyQVHSaZHTiOROGDHzSwd3d7hT3ZyJjVB/d607xM5XbiUy56SMtCeWP7xLGqsrAZSlXouYn64Q/JfXWDJimSOVqoQWOBXc6hAcnNFHh5mCXLRMRfnBiMPe5uoS34Dshixke5LmbI7vi76USqElhUO1V/5vtlttealmBdPNEm9/ig4P8Sa6rvQR9faHXB0oRh9Jrt6r2PwGmXmHtX/VL/IqNDXsbN1WJw61r+c4+6ASeR7Ue8beg+H2wM+ZdnMPiFnpZhuMu3/Xiq4eVBQa4JCbjqNLzXQRGrOmoiJ2dhIBTuo1no9xDlDqxnnyhPYzPx72e7a1ROYqReSFJKmIrbim1WqJejg2zSziyHMBf0u+68h2A5Xm3Jx+qmXUNjXQupWlyqr752O6P8l4AOLq7xPNDuEaO5ECnf2NvhWHc5Hq/fPz7t6zGfxkhEcFDMpNA8i2hUzpQPD5olfFOlw9zhBOt3Kw16FrsPYofywQKksqtvRYQMwRIqnuS1fZ2dNqdwUuZ4LYRkbJkRkMWYQy5ScLDEcLZ8tyCwMf2p7Iftm3Y1iyMWDN+qIybDtYDbzDnn8gje5dI/B6NfCTdOqyUEnR1YTG1OQssXo1Bc4jLo2wntm6MWOY74U/e/XBK8rkFKzKj8zByIC4XW34QrJg8eKqt3lc3ICfagiI9THVcTS1eiE6RRDezTVmMlWn3jf2/XhpVni4ta9iP2UZljCeXOF4qAF5z3iay4pENJFg6Uqw4mH9kWoyWJllkHQXIPx+MpAuAj8psZwhfJZaE26rnIPodi91yXXVhfBHSWcBpAorCQ/xqWfzs22D6pEehPd2wrMwsmCnTVGN7K76Tbj36ls5Khz8iIRJPbdgTyH7lo00qsoMU1nA0cRA11iV2KuFBJCFXUch3mi1JEPpnJMLxiAxZkeTHYQ9MVHrlWCJMFt8Oi6fqRCUHrv3vIxTkqbV62Ly9KpPcAkd4/nNjLYXIOCpJDma9KBw8ii+qW74133H9piZCmG9Jy1A0fFLsGJxQtv0+qRD/DRPx454dQ4nlPtU3pNlhvUGohykw/RuIDX1ncUtAIu85td2zxQmBIeyroQerQcAaVTmRMjDeGJHSweYLt96jA4o9/et10+icV/DPiYPiTnuelU+lDACkavX0gQIOvqMphO/+a0deJ0yhDv98/PPBswiAc+j9ICLB6scy0YZi3L1LkRND2hccQTVKZwqfDXUt8F2zLP93XO0mvbf/DncTtAAqG2Tcu9MbGvgAItsx7+dJVZMXqH10nURqYLbXDdzVpHj5D24GBnzK272QJRdRVb6PrXhtexcXO3pDml3RUZ212u+b+JW0Q84g+9oszQ5BoITU7iMdkaSKHI4OCxIjzGcTatv6fTYGXqCQxSJiwnBJMcsVPJpRcoGKN0xB4P8xqY/Oucnj43UAQF8ZdiOlOPjv3z9mYfU6xt12QxCSHE9AkU0mBbRgmsQTZqeMLzoWlw3JDS5rE7PMrEojD1q+refpRLDKy+3pu/98MVz9l67FZvpzwbHlcixyFJyJUg043yl/ZGCQh6ydt6OcWavcrmEVc0WzqYNPaAYdMeq/eObiLnCO7lfEtaWpe9inTWXtMgVAA3xZxOGUCK+6n15vwrofqMPJ9JGVADIV5Xh8e1jvwpVVxda3V1Ant/Ku7iX4BN2lzsjiVh+vzaIAkP9dZbGeqOeko+Zxj3DbRFZ69LeWPlT0iy08dK2XeGWDnQmyvX5Elb2kCjl+KLvDsPhlSF72nETyCK9GN/F7yIkBeFtWTEDI7zQTXi2MvEc4IiyFwkMfr5lsrsBXTRbgfH1aV9VeWsKhdyy/R2F7Acooe2n9n/1AdJ3ArS2Y+QzEEsXFVh93ToznTaeW+hDeaqW/kNy0S9kz14BL4Ns72ThPHRfwsw6jgdmSYT1PxvzrYJnt5opTipYo9mrvcO9khvyIKX2RMmWuep/sAELyrCjD0rb0WJ3G8n51Q98nhRCM2N/zu9RBeI4eov3A6sy8uBeCcx8Jlli8+1KQTQi82qpPZGlZNOdoDcwsP3VPWJNR25t9i5JS8zzvUnjusAcPG57gMEMIHzxCFAI9cn9Xwba+vctXIKPtH54kwNK7CGk6VuG5FK23DqdM5ZL2fRBGlhBcuS4kJKqNJHc1Nox42UUG8u63xa4vnWbcZ6BeJk25cYcg+H0ueZ2T7vFh"
const decrypted = CryptoJS.AES.decrypt(privateKey, "amal").toString(CryptoJS.enc.Utf8);
// Inisialisasi admin (hanya sekali)
if (!admin.apps.length) {
admin.initializeApp({
credential: admin.credential.cert({
projectId: process.env.GOOGLE_PROJECT_ID,
privateKey: process.env.GOOGLE_PRIVATE_KEY?.replace(/\\n/g, '\n'),
privateKey: decrypted,
clientEmail: process.env.GOOGLE_CLIENT_EMAIL,
}),
});

31
x.yml Normal file
View File

@@ -0,0 +1,31 @@
name: "darmasaba"
namespace: "darmasaba-staging"
branch: "staging"
repo: "sistem-desa-mandiri"
env: |
DATABASE_URL="postgresql://bip:Production_123@localhost:5433/darmasaba-stg?schema=public"
URL="http://localhost:3000"
WS_APIKEY="eyJhbGciOiJIUzI1NiJ9.eyJ1c2VyIjp7ImlkIjoiY20wdnQ4bzFrMDAwMDEyenE1eXl1emd5YiIsIm5hbWUiOiJhbWFsaWEiLCJlbWFpbCI6ImFtYWxpYUBiaXAuY29tIiwiQXBpS2V5IjpbeyJpZCI6ImNtMHZ0OG8xcjAwMDIxMnpxZDVzejd3eTgiLCJuYW1lIjoiZGVmYXVsdCJ9XX0sImlhdCI6MTcyNTkzNTE5MiwiZXhwIjo0ODgxNjk1MTkyfQ.7U-HUnNBDmeq_6XXohiFZjFnh2rSzUPMHDdrUKOd7G4"
NEXT_PUBLIC_VAPID_PUBLIC_KEY=BBC6ml3Ro9eBdhSq_DPx0zQ0hBH4NvOeJbFXdQy3cZ-UyJ2m6V1RyO1XD9B08kshTdVNoGZeqBDKBPzpWgwRBNY
VAPID_PRIVATE_KEY=p9GfSmCRJe1_dzwKqe29HF81mTE2JwlrW4cXINnkI7c
WIBU_REALTIME_KEY="padahariminggukuturutayahkekotanaikdelmanistimewakududukdimuka"
FCM_KEY=BAWSIlqadurVCx6wm50KiMVwd01IosHo3g7731yhPmweVqUDu1zx0l2ytKL6DSOmbEDVxuBryNJKYLEXCRiLCos
GOOGLE_PROJECT_ID=mobile-darmasaba
GOOGLE_PRIVATE_KEY_ID=764e1207d5acf4db2eac539256c8f1bf397c7d8f
GOOGLE_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCwCU9PBpAbXsOl\ntb1syvWrmH3FSDRyI4oOVWZJRqYX+j44UTNfzTjYySpNy7x1lr91uOC2GGHJeFvT\nLg5er6uvzFvzwg42A8Rz4+aqxlUhvhNXYRyfaaP7tbui5X9GEmhKYzvYd6T/6z1u\njo7LE1tBaiB8eB69tSJidGcr90yXOsbvKFgaPkpvlrseNR/t0PYDUaXHsxdKvCHI\ntK13KxhJCJrU9+/W1Wwr+45WGfK9m+jLVuOEZT9dd3FUgDn/0CFzykZLA0iHRLjx\neczahlrlvLVCtUIJjHbmsjG8vLZyl6/puh1l2OkEZyADb6m7OOxFVTo5ADZvj4nD\nVCCirdMVAgMBAAECggEAMF0mbnJBpltnSkA/vkOWsmHPcCOx0QgFloGM/CXOXTkR\n3hwlDrWN4DWIi14ltXLIwFmeVzkkqJsKM19scEQ4WbC+NJ7Ek79+Ok7LYXDjE8Wq\nf6+9EukNtgqMdikySfilsYZI+2SHrw4czyKYhZ+YS0USjs/btkgtHbqYW+JyJvv4\nlXAGp3129kbOHTc6+DBq6tn4XiRMKUdBNtcRHe9k+zAIuwbeAdsl4bock1ADnMIv\n/Q4FfOua+nJl8MUpPCZDvz14az+3j/rUVkR/wgDqQirFNRfFfpEPNM2oXVSjp0oK\nTC8NEy5mN4aj0DYS8U2x8barsAFDr5N4L9JxTtdlgwKBgQDkXK9iieIe1/yJFDw6\ntHbQu/bl+t82DESapss62++6ckh2mo+IScvVg/rCwXIag7IRQO40BHWwYTrOwTbj\nD1VUamn6UaqJHpIjDj/SK+As3DumuOTcb+kbJq9TpjLGeR2hj0aKcFXAjL5+B+yr\nBt7fVsB2uhouS9aD68HV8azsxwKBgQDFV2yRKgSf11vNRsxtJekpZ7ruF4h8OZPA\nHcq1kMDPRJcuVD9XwG7RAEgxcErKKS6NrrT/2Iaq5r+P3owgxZ6yB5pabGGvsgcg\nqrvsVEjzETsrrDbp5IevwE/MTwplakr6vJBnfAyjqMbDQSGSZPp+6S8M5JtZhJDL\n9Pqy6yxNQwKBgEE9ZXGuWKZdKC11VXukAOnDOVcco9ZKDPNtwVPQb52BdshDgcv6\n4Tvfl606HMIMa7vYI/VCbOj17hoRQv/9anBScnJsEF9aF3/iW0NM+591T6li2ydK\n5Xq3Q5GPQqRHB7sXNpzoWOdIjkdtNiTqMpP1sch5hG9DhUZs/RSFFdUTAoGBALyV\nyD2NXu/1WVh5cQBZe1FDPMMtIBQ+3bB5h+8tDuTEEomGnyXX0s7OKy97tS0uX7us\nGnJo1IDblHMDZPwofnh5hYsmCdBiHCeeoYm+HhyS+e3JXIz2BKjy6g8/9ZpnEpI8\nwu7yAA4iSxfq1Q9Win/fjUQP71mDsvAGA9IZpbOLAoGBAK57RjNemVh3oNB5ZaQs\n45WzfmPPjKoDQdMYLtohHz9HhPxYFLuvlDc/9OcWFCz3tZHtyDrUtXvv+vX+rG4Y\nemxXkqdg3lYo7nayw772myJb2w6QIfGyuSRx/C1/phmPhp+UkHk7B+KdvWhpPmCC\nBufws2LSn5VZzivO6LrwSCfR\n-----END PRIVATE KEY-----\n"
GOOGLE_CLIENT_EMAIL=firebase-adminsdk-fbsvc@mobile-darmasaba.iam.gserviceaccount.com
GOOGLE_CLIENT_ID=105653213329235865762
GOOGLE_AUTH_URI=https://accounts.google.com/o/oauth2/auth
GOOGLE_TOKEN_URI=https://oauth2.googleapis.com/token
GOOGLE_AUTH_PROVIDER_CERT_URL=https://www.googleapis.com/oauth2/v1/certs
GOOGLE_CLIENT_CERT_URL=https://www.googleapis.com/robot/v1/metadata/x509/firebase-adminsdk-fbsvc%40mobile-darmasaba.iam.gserviceaccount.com
options:
dbPush: true
# dbSeed: true
build: true
# newConfig: true
# count: 1
# ports: null

1
xencrypt.txt Normal file
View File

@@ -0,0 +1 @@
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

7
xx.ts Normal file
View File

@@ -0,0 +1,7 @@
import CryptoJS from "crypto-js";
const dataSource = process.env.GOOGLE_PRIVATE_KEY!
const encrypt = CryptoJS.AES.encrypt(dataSource, "amal").toString();
Bun.write("xencrypt.txt", encrypt);