b6c2598710
CI / changes (pull_request) Successful in 2s
CI / unit (pull_request) Successful in 11s
CI / integration (pull_request) Successful in 26s
CI / ui (pull_request) Successful in 1m13s
CI / conformance (pull_request) Successful in 10s
CI / gate (pull_request) Successful in 0s
CI / deploy (pull_request) Failing after 16m19s
Robokassa moderation requires the public offer to list every digital good with its price. Move /offer/ off the static landing container to the render sidecar: it splices the live catalog price list (§4.4) into the owner-edited ui/legal/offer_ru.md and renders it with the shared ui/src/lib/offer.ts — one renderer, no drift, always matching the current catalog with no redeploy. - backend: /api/v1/internal/offer/pricing (internal, off the edge allow-list) projects the active catalog into two markdown tables — chip packs priced per rail (roubles / VK votes / Telegram Stars) and chip-priced values — through payments.Money so no float reaches the page. Cached in memory: warmed at boot, marked stale on every catalog mutation, so a served render issues no query. - renderer: GET /offer/ fetches the tables and substitutes them at the <#pricing_template#> marker, then renders; offer_ru.md is baked into the image and marked is bundled from ui. GET /offer -> 301. Only /offer/ is edge-exposed. - caddy: route /offer/ to the sidecar; drop the now-dead landing /offer/ handlers and the vite emit-offer plugin. - offer: fill §4.3 (the chip-payment wording) and drop the in-page back link. - landing footer: a feedback link (the offer's Telegram contact) beside the offer link. - docs (ARCHITECTURE, FUNCTIONAL +_ru, renderer README), CI /offer/ probe, unit + integration + node tests.
377 lines
11 KiB
YAML
377 lines
11 KiB
YAML
lockfileVersion: '9.0'
|
|
|
|
settings:
|
|
autoInstallPeers: true
|
|
excludeLinksFromLockfile: false
|
|
|
|
importers:
|
|
|
|
.:
|
|
dependencies:
|
|
marked:
|
|
specifier: ^18.0.5
|
|
version: 18.0.6
|
|
skia-canvas:
|
|
specifier: ^3.0.6
|
|
version: 3.0.8
|
|
devDependencies:
|
|
esbuild:
|
|
specifier: ^0.25.0
|
|
version: 0.25.12
|
|
|
|
packages:
|
|
|
|
'@esbuild/aix-ppc64@0.25.12':
|
|
resolution: {integrity: sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==}
|
|
engines: {node: '>=18'}
|
|
cpu: [ppc64]
|
|
os: [aix]
|
|
|
|
'@esbuild/android-arm64@0.25.12':
|
|
resolution: {integrity: sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==}
|
|
engines: {node: '>=18'}
|
|
cpu: [arm64]
|
|
os: [android]
|
|
|
|
'@esbuild/android-arm@0.25.12':
|
|
resolution: {integrity: sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==}
|
|
engines: {node: '>=18'}
|
|
cpu: [arm]
|
|
os: [android]
|
|
|
|
'@esbuild/android-x64@0.25.12':
|
|
resolution: {integrity: sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==}
|
|
engines: {node: '>=18'}
|
|
cpu: [x64]
|
|
os: [android]
|
|
|
|
'@esbuild/darwin-arm64@0.25.12':
|
|
resolution: {integrity: sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==}
|
|
engines: {node: '>=18'}
|
|
cpu: [arm64]
|
|
os: [darwin]
|
|
|
|
'@esbuild/darwin-x64@0.25.12':
|
|
resolution: {integrity: sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==}
|
|
engines: {node: '>=18'}
|
|
cpu: [x64]
|
|
os: [darwin]
|
|
|
|
'@esbuild/freebsd-arm64@0.25.12':
|
|
resolution: {integrity: sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==}
|
|
engines: {node: '>=18'}
|
|
cpu: [arm64]
|
|
os: [freebsd]
|
|
|
|
'@esbuild/freebsd-x64@0.25.12':
|
|
resolution: {integrity: sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==}
|
|
engines: {node: '>=18'}
|
|
cpu: [x64]
|
|
os: [freebsd]
|
|
|
|
'@esbuild/linux-arm64@0.25.12':
|
|
resolution: {integrity: sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==}
|
|
engines: {node: '>=18'}
|
|
cpu: [arm64]
|
|
os: [linux]
|
|
|
|
'@esbuild/linux-arm@0.25.12':
|
|
resolution: {integrity: sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==}
|
|
engines: {node: '>=18'}
|
|
cpu: [arm]
|
|
os: [linux]
|
|
|
|
'@esbuild/linux-ia32@0.25.12':
|
|
resolution: {integrity: sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==}
|
|
engines: {node: '>=18'}
|
|
cpu: [ia32]
|
|
os: [linux]
|
|
|
|
'@esbuild/linux-loong64@0.25.12':
|
|
resolution: {integrity: sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==}
|
|
engines: {node: '>=18'}
|
|
cpu: [loong64]
|
|
os: [linux]
|
|
|
|
'@esbuild/linux-mips64el@0.25.12':
|
|
resolution: {integrity: sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==}
|
|
engines: {node: '>=18'}
|
|
cpu: [mips64el]
|
|
os: [linux]
|
|
|
|
'@esbuild/linux-ppc64@0.25.12':
|
|
resolution: {integrity: sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==}
|
|
engines: {node: '>=18'}
|
|
cpu: [ppc64]
|
|
os: [linux]
|
|
|
|
'@esbuild/linux-riscv64@0.25.12':
|
|
resolution: {integrity: sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==}
|
|
engines: {node: '>=18'}
|
|
cpu: [riscv64]
|
|
os: [linux]
|
|
|
|
'@esbuild/linux-s390x@0.25.12':
|
|
resolution: {integrity: sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==}
|
|
engines: {node: '>=18'}
|
|
cpu: [s390x]
|
|
os: [linux]
|
|
|
|
'@esbuild/linux-x64@0.25.12':
|
|
resolution: {integrity: sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==}
|
|
engines: {node: '>=18'}
|
|
cpu: [x64]
|
|
os: [linux]
|
|
|
|
'@esbuild/netbsd-arm64@0.25.12':
|
|
resolution: {integrity: sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==}
|
|
engines: {node: '>=18'}
|
|
cpu: [arm64]
|
|
os: [netbsd]
|
|
|
|
'@esbuild/netbsd-x64@0.25.12':
|
|
resolution: {integrity: sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==}
|
|
engines: {node: '>=18'}
|
|
cpu: [x64]
|
|
os: [netbsd]
|
|
|
|
'@esbuild/openbsd-arm64@0.25.12':
|
|
resolution: {integrity: sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==}
|
|
engines: {node: '>=18'}
|
|
cpu: [arm64]
|
|
os: [openbsd]
|
|
|
|
'@esbuild/openbsd-x64@0.25.12':
|
|
resolution: {integrity: sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==}
|
|
engines: {node: '>=18'}
|
|
cpu: [x64]
|
|
os: [openbsd]
|
|
|
|
'@esbuild/openharmony-arm64@0.25.12':
|
|
resolution: {integrity: sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==}
|
|
engines: {node: '>=18'}
|
|
cpu: [arm64]
|
|
os: [openharmony]
|
|
|
|
'@esbuild/sunos-x64@0.25.12':
|
|
resolution: {integrity: sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==}
|
|
engines: {node: '>=18'}
|
|
cpu: [x64]
|
|
os: [sunos]
|
|
|
|
'@esbuild/win32-arm64@0.25.12':
|
|
resolution: {integrity: sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==}
|
|
engines: {node: '>=18'}
|
|
cpu: [arm64]
|
|
os: [win32]
|
|
|
|
'@esbuild/win32-ia32@0.25.12':
|
|
resolution: {integrity: sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==}
|
|
engines: {node: '>=18'}
|
|
cpu: [ia32]
|
|
os: [win32]
|
|
|
|
'@esbuild/win32-x64@0.25.12':
|
|
resolution: {integrity: sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==}
|
|
engines: {node: '>=18'}
|
|
cpu: [x64]
|
|
os: [win32]
|
|
|
|
agent-base@7.1.4:
|
|
resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==}
|
|
engines: {node: '>= 14'}
|
|
|
|
debug@4.4.3:
|
|
resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==}
|
|
engines: {node: '>=6.0'}
|
|
peerDependencies:
|
|
supports-color: '*'
|
|
peerDependenciesMeta:
|
|
supports-color:
|
|
optional: true
|
|
|
|
detect-libc@2.1.2:
|
|
resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==}
|
|
engines: {node: '>=8'}
|
|
|
|
esbuild@0.25.12:
|
|
resolution: {integrity: sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==}
|
|
engines: {node: '>=18'}
|
|
hasBin: true
|
|
|
|
follow-redirects@1.16.0:
|
|
resolution: {integrity: sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==}
|
|
engines: {node: '>=4.0'}
|
|
peerDependencies:
|
|
debug: '*'
|
|
peerDependenciesMeta:
|
|
debug:
|
|
optional: true
|
|
|
|
https-proxy-agent@7.0.6:
|
|
resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==}
|
|
engines: {node: '>= 14'}
|
|
|
|
marked@18.0.6:
|
|
resolution: {integrity: sha512-MrV5puXBfuiy6wl6DLaq3BtIJQAJToAd5zt/ZKhRfGRAuFPALE7/4Y7jnxRQoEgK/pBgurGqLyAuRgZ2xOjr6w==}
|
|
engines: {node: '>= 20'}
|
|
hasBin: true
|
|
|
|
ms@2.1.3:
|
|
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
|
|
|
|
parenthesis@3.1.8:
|
|
resolution: {integrity: sha512-KF/U8tk54BgQewkJPvB4s/US3VQY68BRDpH638+7O/n58TpnwiwnOtGIOsT2/i+M78s61BBpeC83STB88d8sqw==}
|
|
|
|
skia-canvas@3.0.8:
|
|
resolution: {integrity: sha512-FSYKxp8Ng2vOeeOBiyPhnn6ui6FirPJXMyjk4PKl8N/OWzVrkMawUgY9zubIWHMdYtyWFn0gfX3QlRwg6HBmdg==}
|
|
|
|
string-split-by@1.0.0:
|
|
resolution: {integrity: sha512-KaJKY+hfpzNyet/emP81PJA9hTVSfxNLS9SFTWxdCnnW1/zOOwiV248+EfoX7IQFcBaOp4G5YE6xTJMF+pLg6A==}
|
|
|
|
snapshots:
|
|
|
|
'@esbuild/aix-ppc64@0.25.12':
|
|
optional: true
|
|
|
|
'@esbuild/android-arm64@0.25.12':
|
|
optional: true
|
|
|
|
'@esbuild/android-arm@0.25.12':
|
|
optional: true
|
|
|
|
'@esbuild/android-x64@0.25.12':
|
|
optional: true
|
|
|
|
'@esbuild/darwin-arm64@0.25.12':
|
|
optional: true
|
|
|
|
'@esbuild/darwin-x64@0.25.12':
|
|
optional: true
|
|
|
|
'@esbuild/freebsd-arm64@0.25.12':
|
|
optional: true
|
|
|
|
'@esbuild/freebsd-x64@0.25.12':
|
|
optional: true
|
|
|
|
'@esbuild/linux-arm64@0.25.12':
|
|
optional: true
|
|
|
|
'@esbuild/linux-arm@0.25.12':
|
|
optional: true
|
|
|
|
'@esbuild/linux-ia32@0.25.12':
|
|
optional: true
|
|
|
|
'@esbuild/linux-loong64@0.25.12':
|
|
optional: true
|
|
|
|
'@esbuild/linux-mips64el@0.25.12':
|
|
optional: true
|
|
|
|
'@esbuild/linux-ppc64@0.25.12':
|
|
optional: true
|
|
|
|
'@esbuild/linux-riscv64@0.25.12':
|
|
optional: true
|
|
|
|
'@esbuild/linux-s390x@0.25.12':
|
|
optional: true
|
|
|
|
'@esbuild/linux-x64@0.25.12':
|
|
optional: true
|
|
|
|
'@esbuild/netbsd-arm64@0.25.12':
|
|
optional: true
|
|
|
|
'@esbuild/netbsd-x64@0.25.12':
|
|
optional: true
|
|
|
|
'@esbuild/openbsd-arm64@0.25.12':
|
|
optional: true
|
|
|
|
'@esbuild/openbsd-x64@0.25.12':
|
|
optional: true
|
|
|
|
'@esbuild/openharmony-arm64@0.25.12':
|
|
optional: true
|
|
|
|
'@esbuild/sunos-x64@0.25.12':
|
|
optional: true
|
|
|
|
'@esbuild/win32-arm64@0.25.12':
|
|
optional: true
|
|
|
|
'@esbuild/win32-ia32@0.25.12':
|
|
optional: true
|
|
|
|
'@esbuild/win32-x64@0.25.12':
|
|
optional: true
|
|
|
|
agent-base@7.1.4: {}
|
|
|
|
debug@4.4.3:
|
|
dependencies:
|
|
ms: 2.1.3
|
|
|
|
detect-libc@2.1.2: {}
|
|
|
|
esbuild@0.25.12:
|
|
optionalDependencies:
|
|
'@esbuild/aix-ppc64': 0.25.12
|
|
'@esbuild/android-arm': 0.25.12
|
|
'@esbuild/android-arm64': 0.25.12
|
|
'@esbuild/android-x64': 0.25.12
|
|
'@esbuild/darwin-arm64': 0.25.12
|
|
'@esbuild/darwin-x64': 0.25.12
|
|
'@esbuild/freebsd-arm64': 0.25.12
|
|
'@esbuild/freebsd-x64': 0.25.12
|
|
'@esbuild/linux-arm': 0.25.12
|
|
'@esbuild/linux-arm64': 0.25.12
|
|
'@esbuild/linux-ia32': 0.25.12
|
|
'@esbuild/linux-loong64': 0.25.12
|
|
'@esbuild/linux-mips64el': 0.25.12
|
|
'@esbuild/linux-ppc64': 0.25.12
|
|
'@esbuild/linux-riscv64': 0.25.12
|
|
'@esbuild/linux-s390x': 0.25.12
|
|
'@esbuild/linux-x64': 0.25.12
|
|
'@esbuild/netbsd-arm64': 0.25.12
|
|
'@esbuild/netbsd-x64': 0.25.12
|
|
'@esbuild/openbsd-arm64': 0.25.12
|
|
'@esbuild/openbsd-x64': 0.25.12
|
|
'@esbuild/openharmony-arm64': 0.25.12
|
|
'@esbuild/sunos-x64': 0.25.12
|
|
'@esbuild/win32-arm64': 0.25.12
|
|
'@esbuild/win32-ia32': 0.25.12
|
|
'@esbuild/win32-x64': 0.25.12
|
|
|
|
follow-redirects@1.16.0: {}
|
|
|
|
https-proxy-agent@7.0.6:
|
|
dependencies:
|
|
agent-base: 7.1.4
|
|
debug: 4.4.3
|
|
transitivePeerDependencies:
|
|
- supports-color
|
|
|
|
marked@18.0.6: {}
|
|
|
|
ms@2.1.3: {}
|
|
|
|
parenthesis@3.1.8: {}
|
|
|
|
skia-canvas@3.0.8:
|
|
dependencies:
|
|
detect-libc: 2.1.2
|
|
follow-redirects: 1.16.0
|
|
https-proxy-agent: 7.0.6
|
|
string-split-by: 1.0.0
|
|
transitivePeerDependencies:
|
|
- debug
|
|
- supports-color
|
|
|
|
string-split-by@1.0.0:
|
|
dependencies:
|
|
parenthesis: 3.1.8
|