Compare commits
304 Commits
main
...
17d76f55e6
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
17d76f55e6 | ||
|
|
4e82146ab7 | ||
|
|
83a019785b | ||
|
|
f091b97ca0 | ||
|
|
6d6bb4dfe6 | ||
|
|
e59039dd4e | ||
|
|
f80866218b | ||
|
|
545b5e93bf | ||
|
|
e9117d34a0 | ||
|
|
d72830412e | ||
|
|
0a9997e98a | ||
|
|
0b268881a1 | ||
|
|
993c817dff | ||
|
|
4da386f693 | ||
|
|
c252fa11d0 | ||
|
|
1a7a765d72 | ||
|
|
ec1ad4d444 | ||
|
|
0679fdfdd7 | ||
|
|
0ecb16daff | ||
|
|
c8183abff7 | ||
|
|
0435984c82 | ||
|
|
27fe6c6eef | ||
|
|
bc6487bba4 | ||
|
|
d8b7076e7e | ||
|
|
9d888e6380 | ||
|
|
2f92213594 | ||
|
|
4fa2daf212 | ||
|
|
dc5465e289 | ||
|
|
99cbb11c5a | ||
|
|
a95afbf443 | ||
|
|
cd3fba2113 | ||
|
|
6821b4e8d9 | ||
|
|
a3c5a66d3f | ||
|
|
2038c4df3e | ||
|
|
90a5e17f2b | ||
|
|
3b16722fca | ||
|
|
1e7112fa3c | ||
|
|
db95e435c2 | ||
|
|
c3f97f8dca | ||
|
|
98b1301e96 | ||
|
|
387ba19802 | ||
|
|
2c572c5bd4 | ||
|
|
ae4a8429c7 | ||
|
|
58f946490c | ||
|
|
5cd78854e3 | ||
|
|
fb9b522e74 | ||
|
|
c7a4b2a9c9 | ||
|
|
5b03de6b7e | ||
|
|
100ad254cb | ||
|
|
d122c957eb | ||
|
|
a93fb975c0 | ||
|
|
21c4aa859e | ||
|
|
20f7d5a05a | ||
|
|
2b92626bf9 | ||
|
|
8bd47905b0 | ||
|
|
309dc33acd | ||
|
|
d1cc6b5d5f | ||
|
|
13981970f5 | ||
|
|
8dd5fd3f44 | ||
|
|
ac4416f7ab | ||
|
|
992e726406 | ||
|
|
988625ba42 | ||
|
|
0621a0be16 | ||
|
|
926650d3b6 | ||
|
|
cb12a6ced4 | ||
|
|
66039eb4cf | ||
|
|
5eef6c76ef | ||
|
|
f71fc7f88d | ||
|
|
60e64c689d | ||
|
|
bd7d5dd1b2 | ||
|
|
54b9dea70f | ||
|
|
6b35917a06 | ||
|
|
567d1f226b | ||
|
|
215da5f25b | ||
|
|
d05274700a | ||
|
|
16917bcbdc | ||
|
|
915d3b1b2f | ||
|
|
4ef21ea144 | ||
|
|
071e669b71 | ||
|
|
07c7d8c656 | ||
|
|
bffaca1d63 | ||
|
|
cc7445e4c5 | ||
|
|
00d1be3e4f | ||
|
|
98c030cd82 | ||
|
|
8e91b3e810 | ||
|
|
dd5d1295a7 | ||
|
|
cce9812bbc | ||
|
|
e00acac626 | ||
|
|
0ec1319753 | ||
|
|
057012e09f | ||
|
|
2246bdf2be | ||
|
|
3a73083494 | ||
|
|
73b6d19703 | ||
|
|
2d44dd4c58 | ||
|
|
3d938d29fc | ||
|
|
c07871eac4 | ||
|
|
a64b6790c6 | ||
|
|
060aa97ce5 | ||
|
|
80abbfe566 | ||
|
|
28f2285a0e | ||
|
|
205acb803f | ||
|
|
5bad959b13 | ||
|
|
f82f08ffd0 | ||
|
|
6a0e882cc9 | ||
|
|
9c50ea8368 | ||
|
|
305af64fd6 | ||
|
|
72852a6b08 | ||
|
|
32c2842dbd | ||
|
|
149eae59c9 | ||
|
|
5f65f890ee | ||
|
|
d3bf4b1db9 | ||
|
|
553ec7eadd | ||
|
|
4c6fde326b | ||
|
|
23be8bcb52 | ||
|
|
5c28fbdea5 | ||
|
|
90ec351d96 | ||
|
|
38651037bc | ||
|
|
12d06e46ad | ||
|
|
f914e9cdf1 | ||
|
|
99f859cde3 | ||
|
|
4f69fd7e44 | ||
|
|
ca07dd0079 | ||
|
|
233b9f135d | ||
|
|
6dc1b1c00c | ||
|
|
f5f577ea73 | ||
|
|
250dd82847 | ||
|
|
b8420cc1ee | ||
|
|
7a61002ef5 | ||
|
|
147dab5607 | ||
|
|
e67695e36e | ||
|
|
728363fa71 | ||
|
|
4b3ba63e2c | ||
|
|
78a16607f9 | ||
|
|
2bfadb49c8 | ||
|
|
2dcc20eb3a | ||
|
|
a9e120e681 | ||
|
|
081baf15ee | ||
|
|
e3cdf6683a | ||
|
|
d72f0b10db | ||
|
|
a4414cc0e6 | ||
|
|
023c789baf | ||
|
|
a3498fee66 | ||
|
|
f3baada896 | ||
|
|
8f447d52e5 | ||
|
|
4927216794 | ||
|
|
541a9651ec | ||
|
|
c4fe221350 | ||
|
|
2f3eb8a3f7 | ||
|
|
d56aab3f8a | ||
|
|
4cf1ac0eb7 | ||
|
|
10f8683d7f | ||
|
|
19e9733144 | ||
|
|
fc51d53aa3 | ||
|
|
4b07e68aa0 | ||
|
|
19b4ac2729 | ||
|
|
5b7ccfd8d9 | ||
|
|
fbb75567cf | ||
|
|
8f4f05a3cd | ||
|
|
bdc9e6541c | ||
|
|
e25344a185 | ||
|
|
ccdfa7402b | ||
|
|
fbab22506b | ||
|
|
c9ae185fdf | ||
|
|
da7bd91b6f | ||
|
|
45fb87d589 | ||
|
|
71c6ad3721 | ||
|
|
1a2ace937c | ||
|
|
16fb713665 | ||
|
|
52f2a78753 | ||
|
|
e93cf7805c | ||
|
|
08382ff4a1 | ||
|
|
f44cf1a5f6 | ||
|
|
d3df9998f0 | ||
|
|
47928fad3f | ||
|
|
5a292a8ddc | ||
|
|
9246fb7d77 | ||
|
|
9e189f331a | ||
|
|
fe05e13d3f | ||
|
|
fd7a53b954 | ||
|
|
563a483c8d | ||
|
|
4fa5f71d16 | ||
|
|
ab9f8f93be | ||
|
|
5608e9fcc6 | ||
|
|
25703d400b | ||
|
|
f9fb90848b | ||
|
|
eafd890297 | ||
|
|
af44f4b3be | ||
|
|
b2656345e8 | ||
|
|
7cad819df8 | ||
|
|
b537ca50cf | ||
|
|
b9e6559bff | ||
|
|
2f96552fe8 | ||
|
|
6a2fc16f75 | ||
|
|
0ff4df2a12 | ||
|
|
ef9422908d | ||
|
|
bf27c62f62 | ||
|
|
5a2edef0df | ||
|
|
a1ad75c2db | ||
|
|
85df922498 | ||
|
|
67a2c2a67b | ||
|
|
07c2758b73 | ||
|
|
30a9de0e6d | ||
|
|
24929494a6 | ||
|
|
86d71b2441 | ||
|
|
744302e8ab | ||
|
|
396f135e87 | ||
|
|
03d711c2e1 | ||
|
|
2de8913dac | ||
|
|
82e877249a | ||
|
|
872e973a36 | ||
|
|
4cd6d86f33 | ||
|
|
69c8e8e5c1 | ||
|
|
5652ce1098 | ||
|
|
cebf677758 | ||
|
|
410289a519 | ||
|
|
49607f484f | ||
|
|
2120698192 | ||
|
|
a9a5dd4e6f | ||
|
|
520599986c | ||
|
|
864bb3a0c1 | ||
|
|
82c89b70bf | ||
|
|
ac0b0f607d | ||
|
|
4e86ad7a9d | ||
|
|
7a14aa0f75 | ||
|
|
6b66cc5c41 | ||
|
|
cd04309e3e | ||
|
|
26de6820e3 | ||
|
|
9fbab07e1a | ||
|
|
fe1d15090a | ||
|
|
3c60889e2a | ||
|
|
6e5cee0180 | ||
|
|
f2db40fa36 | ||
|
|
0968f1a753 | ||
|
|
ac5bd766a4 | ||
|
|
5c8c198fc5 | ||
|
|
e1f47ddcd0 | ||
|
|
934879e5cf | ||
|
|
4a17ea378e | ||
|
|
e829006b77 | ||
|
|
76e46c08a4 | ||
|
|
01c46be9ef | ||
|
|
f09cec4e25 | ||
|
|
b34ed79d2b | ||
|
|
47664c0aae | ||
|
|
5662b9f770 | ||
|
|
a56eb93ffc | ||
|
|
615b0719f1 | ||
|
|
62e3c7804a | ||
|
|
9878cdb2a2 | ||
|
|
f19fda5494 | ||
|
|
7b22889e23 | ||
|
|
bdbf840529 | ||
|
|
b71b84da1b | ||
|
|
1b4e998cf9 | ||
|
|
a99adb88d6 | ||
|
|
dd2c3859e9 | ||
|
|
0729dd21be | ||
|
|
de1d228fb2 | ||
|
|
3228c76675 | ||
|
|
b039da3ff8 | ||
|
|
07eb18c61c | ||
|
|
5ba9869400 | ||
|
|
9542fdfe4a | ||
|
|
88f18246ce | ||
|
|
6b76e82220 | ||
|
|
898a5253e5 | ||
|
|
756ec5c002 | ||
|
|
235efd5a47 | ||
|
|
c0c5240f8d | ||
|
|
ca69db2395 | ||
|
|
e789a38d19 | ||
|
|
2ec5993e63 | ||
|
|
6db2610c8d | ||
|
|
0b2809b13e | ||
|
|
9ffa04e551 | ||
|
|
505629f798 | ||
|
|
08418e22d3 | ||
|
|
0f55e17095 | ||
|
|
fa1edc9c12 | ||
|
|
bab2930b97 | ||
|
|
e97ff51dc8 | ||
|
|
4402d4ec64 | ||
|
|
4b9c289ec4 | ||
|
|
072ceaf5f0 | ||
|
|
e31721432b | ||
|
|
e1a555d4f9 | ||
|
|
8bf59b20f6 | ||
|
|
3bc7c6ad3b | ||
|
|
65e133a391 | ||
|
|
7ab0c28f6f | ||
|
|
c187c1dc60 | ||
|
|
9ddf5faf66 | ||
|
|
f11322e98d | ||
|
|
126de81834 | ||
|
|
7bb6807d37 | ||
|
|
3eb72481ce | ||
|
|
2403408b6c | ||
|
|
f91499861e | ||
|
|
84ced5a170 | ||
|
|
d7a45576b2 | ||
|
|
dedf1945ef | ||
| e6913c03f5 | |||
|
|
8c990b9628 | ||
|
|
ba24ee33e6 |
8
.agents/skills/b2b-mail-dispatcher/skill.md
Normal file
8
.agents/skills/b2b-mail-dispatcher/skill.md
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
---
|
||||||
|
name: b2b-mail-dispatcher
|
||||||
|
description: Verwaltet den SMTP-E-Mail-Versand bei Statusänderungen von Bestellungen und stellt transaktionale Zuverlässigkeit sicher.
|
||||||
|
---
|
||||||
|
Richtlinien für die E-Mail-Kommunikation:
|
||||||
|
1. Wann immer der Status einer Bestellung in der Datenbank oder via Server Action mutiert wird (`status`-Übergang), triggere ein Event für den E-Mail-Versand.
|
||||||
|
2. Die E-Mail muss transaktionssicher über die SMTP-Konfiguration gesendet werden und an die im Benutzerprofil hinterlegte Adresse gehen.
|
||||||
|
3. Bei erfolgreichem Checkout hänge das generierte PDF aus dem Supabase Storage als Datei-Attachment an die E-Mail an.
|
||||||
37
.agents/skills/commit-work/skill.md
Normal file
37
.agents/skills/commit-work/skill.md
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
---
|
||||||
|
name: commit-work
|
||||||
|
description: Erzwingt Conventional Commits mit atomaren, imperativ formulierten Commit-Messages nach strikter Spezifikation.
|
||||||
|
---
|
||||||
|
|
||||||
|
# Skill: Conventional Commits Expert
|
||||||
|
|
||||||
|
## Purpose
|
||||||
|
Ensure all code changes are committed using the strict Conventional Commits specification.
|
||||||
|
|
||||||
|
## Rules
|
||||||
|
1. **Atomic Commits**: Stage and commit only ONE logical change at a time.
|
||||||
|
2. **Imperative Mood**: Always use the imperative present tense (e.g., "add" instead of "added" or "adds").
|
||||||
|
3. **Case & Punctuation**: Start the description with a lowercase letter. Do not end with a period.
|
||||||
|
4. **Length**: Keep the first line under 50 characters.
|
||||||
|
|
||||||
|
## Commit Message Structure
|
||||||
|
<type>(<optional scope>): <description>
|
||||||
|
|
||||||
|
[optional body]
|
||||||
|
|
||||||
|
[optional footer(s)]
|
||||||
|
|
||||||
|
## Allowed Types
|
||||||
|
- `feat`: A new feature for the user.
|
||||||
|
- `fix`: A bug fix for the user.
|
||||||
|
- `docs`: Changes to the documentation.
|
||||||
|
- `style`: Formatting, missing semi-colons, etc. (no production code change).
|
||||||
|
- `refactor`: Refactoring production code (neither fixes a bug nor adds a feature).
|
||||||
|
- `test`: Adding missing tests or correcting existing tests.
|
||||||
|
- `chore`: Updating build tasks, package manager configs, etc.
|
||||||
|
|
||||||
|
## Workflow
|
||||||
|
1. Run `git diff --cached` to see staged changes.
|
||||||
|
2. If multiple features are changed, unstage and split them.
|
||||||
|
3. Generate the commit message matching the structural rules above.
|
||||||
|
4. Execute `git commit -m "<message>"`.
|
||||||
8
.agents/skills/gdpr-anonymizer/skill.md
Normal file
8
.agents/skills/gdpr-anonymizer/skill.md
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
---
|
||||||
|
name: gdpr-anonymizer
|
||||||
|
description: Setzt die DSGVO-konforme Anonymisierung von Endkunden um, ohne historische Steuerdaten zu beschädigen.
|
||||||
|
---
|
||||||
|
Regeln für das Feature `/my-customers` (Anonymisieren):
|
||||||
|
1. Überschreibe `first_name`, `last_name`, `street`, `zip`, `city`, `email` und alle Bankdaten in `end_customers` hart mit dem String `[GELÖSCHT]`.
|
||||||
|
2. Setze `is_anonymized = true`.
|
||||||
|
3. Führe NIEMALS Kaskaden-Löschungen oder Updates auf der Tabelle `orders` aus, wenn ein Kunde anonymisiert wird. Die Snapshots müssen unverändert bleiben.
|
||||||
15
.agents/skills/grand-functions/SKILL.md
Normal file
15
.agents/skills/grand-functions/SKILL.md
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
---
|
||||||
|
name: grand-functions
|
||||||
|
description: Dokumentation und Spezifikation des CASPOS Webshops inklusive Datenmodell, Kernprozessen und Sicherheitskonzept.
|
||||||
|
---
|
||||||
|
|
||||||
|
# Grand Functions - CASPOS Webshop Spezifikation
|
||||||
|
|
||||||
|
Dieser Skill enthält die vollständige Dokumentation und Spezifikation des CASPOS Webshops. Die Spezifikationen sind in logische Referenzdokumente unterteilt:
|
||||||
|
|
||||||
|
- [Projekt-Überblick & Tech-Stack](file:///c:/source/webshop/.agents/skills/grand-functions/references/overviews.md)
|
||||||
|
- [Datenmodell & Schema](file:///c:/source/webshop/.agents/skills/grand-functions/references/schema.md)
|
||||||
|
- [Kernprozesse](file:///c:/source/webshop/.agents/skills/grand-functions/references/processes.md)
|
||||||
|
- [Sicherheitskonzept (RLS)](file:///c:/source/webshop/.agents/skills/grand-functions/references/security.md)
|
||||||
|
- [Testumgebung & -abdeckung](file:///c:/source/webshop/.agents/skills/grand-functions/references/testing.md)
|
||||||
|
|
||||||
16
.agents/skills/grand-functions/references/overviews.md
Normal file
16
.agents/skills/grand-functions/references/overviews.md
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
# Projekt-Überblick & Technologie-Stack
|
||||||
|
|
||||||
|
## 1. Projekt-Überblick
|
||||||
|
|
||||||
|
Der CASPOS Webshop ist ein B2B-Portal für Vertriebspartner. Partner können hier Software-Pakete und Zusatzmodule (für POS/Kassenlösungen) konfigurieren, Anfragen für ihre Endkunden erstellen und Lizenzen verwalten.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. Technologie-Stack
|
||||||
|
|
||||||
|
- **Frontend/Backend**: Next.js 15+ (App Router, React Server Components, Server Actions).
|
||||||
|
- **Styling**: Tailwind CSS & Vanilla CSS (modernes Dark-Theme).
|
||||||
|
- **Datenbank & Auth**: Supabase (PostgreSQL, Row Level Security - RLS, Supabase Auth).
|
||||||
|
- **E-Mail-Versand**: SMTP-Integration für automatisierte Bestätigungen.
|
||||||
|
- **PDF-Generierung**: `@react-pdf/renderer` zur Erzeugung von Anfragebestätigungen als PDF.
|
||||||
|
- **Storage**: Supabase Storage (`invoices` Bucket) zur Archivierung der PDF-Dokumente.
|
||||||
75
.agents/skills/grand-functions/references/processes.md
Normal file
75
.agents/skills/grand-functions/references/processes.md
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
# Kernprozesse
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
graph TD
|
||||||
|
A[Partner loggt sich ein] --> B{Firma zugewiesen?}
|
||||||
|
B -- Nein --> C[Fehlermeldung: Kein Zutritt zum Wizard]
|
||||||
|
B -- Ja --> D[Wizard öffnen / Konfigurieren]
|
||||||
|
D --> E[Endkunden auswählen/anlegen]
|
||||||
|
E --> F[Produkte & Module wählen]
|
||||||
|
F --> G{Validierung erfolgreich?}
|
||||||
|
G -- Nein --> H[Validierungsfehler anzeigen]
|
||||||
|
G -- Ja --> I[Bestellung absenden]
|
||||||
|
I --> J[Snapshot einfrieren & in DB speichern]
|
||||||
|
J --> K[Rechnungs-PDF generieren & in Storage laden]
|
||||||
|
K --> L[E-Mail mit PDF an Partner senden]
|
||||||
|
L --> M[Bestellung in der Übersicht anzeigen]
|
||||||
|
```
|
||||||
|
|
||||||
|
### A. Partner- & Unternehmens-Hierarchie
|
||||||
|
1. Ein neu registrierter User hat die Rolle `partner` und ist zunächst keiner Firma zugeordnet.
|
||||||
|
2. Der Administrator ordnet den User in der Admin-Oberfläche (`/admin/users`) einem Unternehmen (`companies`) zu.
|
||||||
|
3. Nur wenn der User einer Firma zugewiesen ist (oder Admin ist), kann er Endkunden anlegen und Bestellungen aufgeben.
|
||||||
|
|
||||||
|
### B. Endkunden-Verwaltung (`/my-customers`)
|
||||||
|
- **Firmenweite Sicht**: Da `end_customers.partner_id` on `companies.id` verweist, sehen alle Mitarbeiter desselben Unternehmens dieselben Endkunden.
|
||||||
|
- **DSGVO Anonymisierung**: Endkunden können unwiderruflich anonymisiert werden. Dabei werden sensible Daten mit `[GELÖSCHT]` überschrieben und `is_anonymized` auf `true` gesetzt. In existierenden Bestellungen (`orders.customer_data`) bleiben die Daten zu steuerlichen Zwecken unverändert.
|
||||||
|
|
||||||
|
### C. Bestell-Wizard & Validierung (`/order`)
|
||||||
|
- **Kategorie-Pflichten**: Wenn eine Produktkategorie als `is_required` definiert ist, muss ein Produkt ausgewählt werden.
|
||||||
|
- **Abhängigkeiten (Requirements)**: Ein Modul oder Produkt kann andere Module/Produkte voraussetzen (z.B. Modul B erfordert Modul A). Das System prüft dies client- und serverseitig.
|
||||||
|
- **Top-Down State-Management**:
|
||||||
|
- Die Wahl eines Basis-Produkts steuert die Sichtbarkeit und Wählbarkeit aller Module (Top-Down). Modul-Auswahlen dürfen niemals die Liste der wählbaren Basis-Produkte beeinflussen (Verhinderung von UI-Deadlocks).
|
||||||
|
- **Auto-Reset & Kaskaden-Bereinigung**: Beim Wechsel des Basis-Produkts in `selectProduct` werden inkompatible Module in anderen Kategorien automatisch über eine Kaskaden-Bereinigung (Filterung der `moduleIds` basierend auf den `exclusions` des neuen Produkts) deselektiert.
|
||||||
|
- **Sichtbarkeits- & Wählbarkeits-Garantie**: Basis-Produkte werden im UI niemals durch Modulausschlüsse ausgeblendet. Nachgelagerte Produkte/Module, die mit dem ausgewählten Basis-Produkt inkompatibel sind, erhalten im JSX das `disabled`-Attribut und sind nicht anklickbar (Sperrung von "Kein Backoffice" bei "Small Business"). Klicks auf Module haben keinerlei Rückwirkung auf die Basis-Produkt-Auswahl.
|
||||||
|
- **Radio-Button-Verhalten (allow_multiselect = false)**: Falls eine Kategorie keine Mehrfachauswahl erlaubt, wird bei Auswahl eines neuen Moduls das zuvor ausgewählte Modul dieser Kategorie automatisch abgewählt.
|
||||||
|
- **Snapshot-Architektur**: Sobald eine Bestellung aufgegeben wird, werden die Kundendaten (`CustomerSnapshot`) und Produktkonfigurationen (`OrderSnapshot` samt Preisen und Modulversionen) in `orders` als JSONB-Snapshots eingefroren. Preisänderungen im Katalog haben keinen Einfluss auf bestehende Bestellungen.
|
||||||
|
|
||||||
|
### D. Bestellungs-Verwaltung & Statusübergang
|
||||||
|
- **Sichtbarkeit**: Partner sehen in `/my-orders` alle Bestellungen aller Mitarbeiter ihrer Firma.
|
||||||
|
- **Bearbeiten**: Unvollständige Bestellungen (`status != 'completed'`) können von jedem Mitarbeiter der jeweiligen Firma nachträglich editiert werden.
|
||||||
|
- **Admin-Workflow**: Admins sehen in `/admin/orders` alle Bestellungen global, können den Status ändern (z.B. von *Eingegangen* auf *In Bearbeitung* oder *Abgeschlossen*) und PDF-Rechnungen manuell herunterladen.
|
||||||
|
- **Statusänderungs-Mails**: Bei jedem Statusübergang wird automatisch eine Benachrichtigungs-E-Mail an den Besteller geschickt.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### E. Multi-Kassen-Warenkorb & Checkout-Split
|
||||||
|
- **Endpunkt / Server Action**: `POST /api/orders/checkout` sowie Server Action `checkoutAction` in `app/actions/checkout.ts`
|
||||||
|
- **Funktionsweise**:
|
||||||
|
- Empfängt ein Array von `items` (Kassenkonfigurationen).
|
||||||
|
- Validiert Auth und Partner-Firma Zuweisung.
|
||||||
|
- Generiert einen `order_hash` zur Vermeidung von Doppelübermittlungen (Idempotenz-Guard).
|
||||||
|
- Teilt die Konfigurationen nach `billingInterval` / `billingType` auf (Kauf vs. Abo).
|
||||||
|
- Erstellt separate Orders in der Datenbank:
|
||||||
|
- Typ `purchase`: Anfrage für Kauf-Lizenzen (Zahlungsart: Vormerkung/Angebot).
|
||||||
|
- Typ `subscription`: Anfrage für Software-Abonnement (Zahlungsart: SEPA).
|
||||||
|
- Friert für jede Order einen konsolidierten `order_data` (JSONB) und `customer_data` (JSONB) ein.
|
||||||
|
- Triggert die PDF-Erstellung und den E-Mail-Versand unabhängig für jede generierte Order (gibt Order-IDs für Post-Processing zurück).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### F. PDF-Rechnungsgenerierung & Mail-Versand (Post-Processing)
|
||||||
|
- **Entkopplung & Asynchronität**: Die Generierung der PDFs und der E-Mail-Versand sind vollständig aus dem synchronen Checkout-Flow entkoppelt. Der Checkout liefert dem Frontend sofort nach Speicherung in der DB eine Erfolgsmeldung zurück. Die Generierung und der Versand werden asynchron im Hintergrund (via unblockiertem Promise-Worker) ausgeführt, um SMTP-Latenzen abzufangen.
|
||||||
|
- **Snapshot-Exklusivität**: Die PDF-Generierung erfolgt ausschließlich auf Basis der in `orders.order_data` und `orders.customer_data` eingefrorenen Snapshots.
|
||||||
|
- **Layout-Unterscheidung**:
|
||||||
|
- **Typ `purchase` (Kauf)**:
|
||||||
|
- Generiert eine klassische **Anfragebestätigung Kauf**.
|
||||||
|
- Weist die einmalige Gesamtsumme aus.
|
||||||
|
- **Typ `subscription` (Abonnement)**:
|
||||||
|
- Generiert eine **Anfragebestätigung Abonnement**.
|
||||||
|
- Weist monatlich wiederkehrende Kosten aus.
|
||||||
|
- **Archivierung & Benachrichtigung**:
|
||||||
|
- Hochladen des PDFs in den Supabase Storage (`invoices` Bucket).
|
||||||
|
- E-Mail-Versand mit PDF-Anhang an den Partner.
|
||||||
|
|
||||||
|
|
||||||
85
.agents/skills/grand-functions/references/schema.md
Normal file
85
.agents/skills/grand-functions/references/schema.md
Normal file
@@ -0,0 +1,85 @@
|
|||||||
|
# Datenmodell & Beziehungen (Schema)
|
||||||
|
|
||||||
|
Das Datenbankschema besteht aus folgenden Tabellen im Schema `public`:
|
||||||
|
|
||||||
|
### `companies` (Unternehmen)
|
||||||
|
- Repräsentiert die Partner-Unternehmen (Retailer).
|
||||||
|
- `id` (UUID, Primary Key)
|
||||||
|
- `name` (TEXT)
|
||||||
|
- `street`, `zip`, `city`, `email` (Adressdaten)
|
||||||
|
|
||||||
|
### `users` (Systembenutzer)
|
||||||
|
- Erweitert die Authentifizierungsdaten aus `auth.users`.
|
||||||
|
- `id` (UUID, References `auth.users(id)`)
|
||||||
|
- `role` (TEXT, standardmäßig `'partner'`, oder `'admin'`)
|
||||||
|
- `company_id` (UUID, References `public.companies(id)`)
|
||||||
|
|
||||||
|
### `end_customers` (Endkunden)
|
||||||
|
- Die Endkunden, für die die Partner Lizenzen bestellen.
|
||||||
|
- `id` (UUID, Primary Key)
|
||||||
|
- `partner_id` (UUID, References `public.companies(id)`) <-- *Direkte Zuordnung zur Firma des Partners*
|
||||||
|
- `company_name` (TEXT)
|
||||||
|
- `first_name`, `last_name`, `street`, `zip`, `city`, `email` (Stammdaten)
|
||||||
|
- `bank_iban`, `bank_bic`, `bank_name`, `bank_owner` (Bankdaten)
|
||||||
|
- `is_anonymized` (BOOLEAN) <-- *Für DSGVO-Löschung*
|
||||||
|
|
||||||
|
### `categories` (Kategorien)
|
||||||
|
- Steuert das Layout und Verhalten im Wizard.
|
||||||
|
- `id` (UUID, Primary Key)
|
||||||
|
- `name` (TEXT)
|
||||||
|
- `is_required` (BOOLEAN) <-- *Muss ausgewählt werden*
|
||||||
|
- `allow_multiselect` (BOOLEAN) <-- *Mehrfachauswahl erlaubt (Checkbox statt Radio)*
|
||||||
|
- `sort_order` (INTEGER) <-- *Sortierung im Wizard*
|
||||||
|
- `show_in_branches` (BOOLEAN)
|
||||||
|
- `preselect` (BOOLEAN)
|
||||||
|
- `resets_others` (BOOLEAN)
|
||||||
|
|
||||||
|
### `products` (Katalogprodukte / Basis-Editionen)
|
||||||
|
- Hauptlösungen (z.B. Basic-Kasse, Backoffice).
|
||||||
|
- `id` (UUID, Primary Key)
|
||||||
|
- `category_id` (UUID, References `categories`)
|
||||||
|
- `name` (TEXT)
|
||||||
|
- `base_price` (DECIMAL)
|
||||||
|
- `tax_rate` (DECIMAL)
|
||||||
|
- `billing_interval` (TEXT: `'one_time'` / `'monthly'`)
|
||||||
|
- `show_in_branches` (BOOLEAN)
|
||||||
|
- `allow_update_discount` (BOOLEAN) <-- *Berechtigung für Update-Rabatt*
|
||||||
|
|
||||||
|
### `modules` (Zusatzmodule / Erweiterungen)
|
||||||
|
- Optionale Erweiterungen für Produkte. Repräsentiert im TypeScript-Code durch das Interface `ProductModule`.
|
||||||
|
- `id` (UUID, Primary Key)
|
||||||
|
- `product_id` (UUID, References `products`)
|
||||||
|
- `category_id` (UUID, References `categories`)
|
||||||
|
- `name` (TEXT)
|
||||||
|
- `price` (DECIMAL)
|
||||||
|
- `has_quantity` (BOOLEAN)
|
||||||
|
|
||||||
|
### `global_inclusions` (Globale automatische Beigaben)
|
||||||
|
- Regelt, welche Module bei Auswahl eines Produkts kostenlos enthalten sind.
|
||||||
|
- `id` (UUID, Primary Key)
|
||||||
|
- `trigger_product_id` (UUID, References `products`)
|
||||||
|
- `included_module_id` (UUID, References `modules`)
|
||||||
|
|
||||||
|
### `global_exclusions` (Globale Ausschlüsse)
|
||||||
|
- Regelt Inkompatibilitäten zwischen Produkten und/oder Modulen.
|
||||||
|
- `id` (UUID, Primary Key)
|
||||||
|
- `product_id` (UUID, References `products`)
|
||||||
|
- `excluded_product_id` (UUID, References `products`, optional)
|
||||||
|
- `excluded_module_id` (UUID, References `modules`, optional)
|
||||||
|
|
||||||
|
### `orders` (Bestellungen / Anfragen)
|
||||||
|
- Gespeicherte Snapshots von Konfigurationen.
|
||||||
|
- `id` (UUID, Primary Key)
|
||||||
|
- `user_id` (UUID, References `auth.users(id)`)
|
||||||
|
- `company_id` (UUID, References `public.companies(id)`)
|
||||||
|
- `end_customer_id` (UUID, References `end_customers(id)`)
|
||||||
|
- `order_number` (TEXT, Format: `AE-YYYY-NNNNN`)
|
||||||
|
- `order_hash` (TEXT, Idempotenz-Guard)
|
||||||
|
- `type` (TEXT: `'purchase'` / `'subscription'`) <-- *Wichtig für den Checkout-Split*
|
||||||
|
- `payment_method` (TEXT) <-- *Rechnung bei Kauf, SEPA bei Abo*
|
||||||
|
- `total_price` (DECIMAL)
|
||||||
|
- `customer_data` (JSONB) <-- *Stammdaten zum Bestellzeitpunkt*
|
||||||
|
- `order_data` (JSONB) <-- *Konfiguration zum Bestellzeitpunkt*
|
||||||
|
- `pdf_url` (TEXT)
|
||||||
|
- `status` (TEXT: `'pending'`, `'active'`, `'completed'`, `'cancelled'`)
|
||||||
|
- `created_at` (TIMESTAMPTZ)
|
||||||
20
.agents/skills/grand-functions/references/security.md
Normal file
20
.agents/skills/grand-functions/references/security.md
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
# Sicherheitskonzept (RLS - Row Level Security)
|
||||||
|
|
||||||
|
RLS ist auf Datenbankebene in Postgres implementiert und erzwingt Datenisolierung:
|
||||||
|
|
||||||
|
- **Unternehmen (`companies`)**: Authentifizierte Benutzer dürfen nur die Unternehmen lesen.
|
||||||
|
- **Endkunden (`end_customers`)**:
|
||||||
|
- `USING (partner_id = (SELECT company_id FROM public.users WHERE id = auth.uid()))`
|
||||||
|
- Partner sehen und modifizieren nur Endkunden, deren `partner_id` mit der `company_id` des angemeldeten Benutzers übereinstimmt.
|
||||||
|
- **Bestellungen (`orders`)**:
|
||||||
|
- `USING (company_id = (SELECT company_id FROM public.users WHERE id = auth.uid()))`
|
||||||
|
- Partner sehen und modifizieren nur Bestellungen, die ihrer Company zugewiesen sind (sie müssen einer Company zugeordnet sein).
|
||||||
|
- Jede Bestellung wird bei der Erstellung automatisch der Company des Erstellers zugewiesen.
|
||||||
|
- Admins haben uneingeschränkten Zugriff und können Bestellungen nachträglich anderen Companies zuweisen.
|
||||||
|
- **Lizenzen (`licenses`)**:
|
||||||
|
- Partner sehen nur Lizenzen von Endkunden, die ihrer Company zugeordnet sind.
|
||||||
|
|
||||||
|
- **Systembenutzer (`users`) & Rollen-Schutz**:
|
||||||
|
- Authentifizierte Nutzer dürfen nur ihr eigenes Profil lesen.
|
||||||
|
- Admins dürfen alle Benutzer lesen. Zur Vermeidung von unendlichen RLS-Rekursionen auf der Tabelle `users` wird die Admin-Zuweisung über die Security-Definer-Funktion `public.is_admin(user_id)` geprüft, welche RLS auf Datenbank-Ebene umgeht.
|
||||||
|
- Rollenschutz-Trigger (`check_user_role_escalation`): Jegliche Änderung der Spalte `role` oder Zuweisung der Rolle `'admin'` ist auf API-Ebene für normale Nutzer gesperrt. Updates/Inserts der Rolle werden ausschließlich von der `service_role` (Backend Admin-Client) akzeptiert, um Privilegien-Eskalation zu verhindern.
|
||||||
22
.agents/skills/grand-functions/references/testing.md
Normal file
22
.agents/skills/grand-functions/references/testing.md
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
# Testumgebung & Testabdeckung
|
||||||
|
|
||||||
|
## 1. Test-Setup
|
||||||
|
- **Framework**: Vitest (Version ^1.6.0)
|
||||||
|
- **Konfiguration**: [vitest.config.ts](file:///c:/source/webshop/shop/vitest.config.ts)
|
||||||
|
- **Befehl**: `npm run test` (führt `vitest run` aus)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. Test-Szenarien
|
||||||
|
|
||||||
|
### A. Frontend Wizard State-Management
|
||||||
|
Getestet in [wizard-state.test.ts](file:///c:/source/webshop/shop/lib/wizard-state.test.ts):
|
||||||
|
- **Auto-Reset bei Produktwechsel**: Prüft, ob nachgelagerte Module, die durch `global_exclusions` für das neue Produkt gesperrt sind, automatisch aus der Selektion fliegen.
|
||||||
|
- **Radio-Button-Verhalten (allow_multiselect = false)**: Stellt sicher, dass in Single-Select-Kategorien nur maximal ein Modul aktiv ist und bei Auswahl eines anderen Moduls das vorherige automatisch abgewählt wird.
|
||||||
|
|
||||||
|
### B. Backend Checkout-Split
|
||||||
|
Getestet in [checkout-split.test.ts](file:///c:/source/webshop/shop/lib/checkout-split.test.ts):
|
||||||
|
- **Array-Validierung & Split (basketItems)**: Stellt sicher, dass das vollständige Array an konfigurierten Kassen (`basketItems`) validiert und verarbeitet wird (nicht nur ein Single-Produkt).
|
||||||
|
- **Kauf-Warenkorb**: Verifiziert, dass ein reiner Kauf-Warenkorb (`one_time`/`purchase`) exakt eine Order erzeugt.
|
||||||
|
- **Abo-Warenkorb**: Verifiziert, dass ein reiner Abo-Warenkorb (`monthly`/`subscription`) exakt eine Order erzeugt.
|
||||||
|
- **Gemischter Warenkorb**: Stellt sicher, dass ein gemischter Warenkorb korrekt in zwei separate Bestell-Gruppen aufgeteilt wird (Kauf-Items & Abo-Items separat).
|
||||||
232
.agents/skills/humanizer/skill.md
Normal file
232
.agents/skills/humanizer/skill.md
Normal file
@@ -0,0 +1,232 @@
|
|||||||
|
---
|
||||||
|
name: humanizer
|
||||||
|
description: |
|
||||||
|
Use when editing or reviewing text to remove AI-generated traces and make it sound more natural and human-like.
|
||||||
|
For detecting and fixing: AI vocabulary (delve, leverage, tapestry), promotional tone, superficial -ing analyses,
|
||||||
|
vague attributions, formatting artifacts (curly quotes, excessive bold), and injecting authentic voice.
|
||||||
|
Based on Wikipedia's "Signs of AI writing" guide maintained by WikiProject AI Cleanup.
|
||||||
|
---
|
||||||
|
|
||||||
|
# Humanizer - Remove AI Writing Traces
|
||||||
|
|
||||||
|
You are an expert editor specializing in detecting and removing AI-generated text patterns to make writing sound more natural and human-like.
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
AI-generated text has characteristic patterns that make it detectable. This skill enables you to:
|
||||||
|
1. **Detect** - Identify AI writing patterns across content, language, style, and formatting
|
||||||
|
2. **Rewrite** - Replace problematic patterns with natural alternatives
|
||||||
|
3. **Inject Soul** - Add authentic voice, personality, and human imperfections
|
||||||
|
|
||||||
|
> **Core Insight**: "LLMs use statistical algorithms to guess what should come next. The result tends toward the statistically most likely outcome that fits the broadest situation."
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Quick Reference: 5 Core Rules
|
||||||
|
|
||||||
|
1. **Delete filler phrases** - Remove openers and emphatic crutches
|
||||||
|
2. **Break formulaic structure** - Avoid binary contrasts, dramatic segmentation
|
||||||
|
3. **Vary rhythm** - Mix sentence lengths. Two items beat three. Diverse paragraph endings
|
||||||
|
4. **Trust the reader** - State facts directly, skip softening and hand-holding
|
||||||
|
5. **Delete quotables** - If it sounds like a pullquote, rewrite it
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Detection Protocols
|
||||||
|
|
||||||
|
### Content Indicators
|
||||||
|
|
||||||
|
| Pattern | Words to Watch | Fix |
|
||||||
|
|---------|---------------|-----|
|
||||||
|
| **Inflated significance** | "pivotal moment", "testament to", "indelible mark", "reflects broader" | State facts without commentary |
|
||||||
|
| **Promotional tone** | "boasts a", "vibrant", "nestled in", "groundbreaking" | Use neutral, specific language |
|
||||||
|
| **Superficial -ing analysis** | "highlighting...", "ensuring...", "fostering..." | Delete or rewrite as separate sentence |
|
||||||
|
| **Vague attribution** | "experts argue", "some critics say", "industry reports" | Cite specific sources or remove |
|
||||||
|
| **Formulaic conclusions** | "Despite challenges...", "Future prospects..." | End with concrete facts |
|
||||||
|
|
||||||
|
### Language Indicators
|
||||||
|
|
||||||
|
| Pattern | Examples | Fix |
|
||||||
|
|---------|----------|-----|
|
||||||
|
| **AI vocabulary** | delve, leverage, tapestry, landscape, foster, underscore | Use simple alternatives (dig into → look at) |
|
||||||
|
| **Copula avoidance** | "serves as", "stands as", "marks" | Use simple "is" or "are" |
|
||||||
|
| **Negative parallelism** | "not only... but also", "it's not just about... it's" | Make direct statement |
|
||||||
|
| **Rule of three** | Three adjectives, three examples, three bullet points | Use two or four items |
|
||||||
|
| **Elegant variation** | Synonyms to avoid repetition ("protagonist", "hero", "main character") | Repeat naturally or consolidate |
|
||||||
|
|
||||||
|
### Formatting Indicators
|
||||||
|
|
||||||
|
| Pattern | Detection | Fix |
|
||||||
|
|---------|-----------|-----|
|
||||||
|
| **Curly quotes** | "text" instead of "text" | Replace with straight quotes |
|
||||||
|
| **Excessive bold** | **Every** **keyword** **bolded** | Remove unnecessary emphasis |
|
||||||
|
| **Title case headers** | "Global Context: Critical Demand" | Use sentence case |
|
||||||
|
| **Markdown artifacts** | `## Header`, `**bold**` in non-markdown | Convert to proper format |
|
||||||
|
| **Emoji in headers** | 🚀 **Launch Phase:** | Remove decorative emoji |
|
||||||
|
|
||||||
|
### Technical Indicators
|
||||||
|
|
||||||
|
| Pattern | Detection |
|
||||||
|
|---------|-----------|
|
||||||
|
| **UTM parameters** | `utm_source=openai` or `utm_source=chatgpt.com` in links |
|
||||||
|
| **Code fragments** | `:contentReference[oaicite:0]` or `turn0search0` |
|
||||||
|
| **Hallucinated citations** | Invalid DOIs, ISBN checksum errors, 404 URLs |
|
||||||
|
| **Knowledge cutoffs** | "as of my last training update", "while specific details are limited" |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Humanizing Techniques
|
||||||
|
|
||||||
|
### Technique 1: Blacklist Protocol
|
||||||
|
|
||||||
|
Explicitly forbid these words:
|
||||||
|
|
||||||
|
**Verbs**: delve, unleash, embark, navigate, foster, leverage, elevate, empower, harness, facilitate, streamline, synergize
|
||||||
|
|
||||||
|
**Nouns**: landscape, realm, tapestry, testament, symphony, paradigm, game-changer, ecosystem, nexus, cutting-edge
|
||||||
|
|
||||||
|
**Adjectives**: bustling, vibrant, intricate, seamless, pivotal, robust, dynamic, comprehensive, multifaceted, transformative
|
||||||
|
|
||||||
|
**Connectors**: Moreover, Furthermore, In conclusion, It is important to note, Additionally, Consequently
|
||||||
|
|
||||||
|
**Replacements**:
|
||||||
|
- "delve into" → "look at" / "explore"
|
||||||
|
- "leverage" → "use"
|
||||||
|
- "facilitate" → "help" / "make easier"
|
||||||
|
- "In conclusion" → [just stop] or punchy final sentence
|
||||||
|
- "Moreover" → [start new sentence directly]
|
||||||
|
|
||||||
|
### Technique 2: Style Cloning
|
||||||
|
|
||||||
|
**Step 1: Extract style DNA**
|
||||||
|
```
|
||||||
|
Analyze the writing style. Break down into:
|
||||||
|
1. Sentence length variance (Burstiness)
|
||||||
|
2. Tone (cynical? warm? professional?)
|
||||||
|
3. Vocabulary level
|
||||||
|
4. Rhetorical devices
|
||||||
|
5. Punctuation patterns
|
||||||
|
```
|
||||||
|
|
||||||
|
**Step 2: Apply style**
|
||||||
|
```
|
||||||
|
Using this Style Guide, write about [TOPIC].
|
||||||
|
Mimic the same sentence variance, tone, vocabulary, and punctuation.
|
||||||
|
Do NOT revert to default style.
|
||||||
|
```
|
||||||
|
|
||||||
|
### Technique 3: Burstiness Injection
|
||||||
|
|
||||||
|
AI text has uniform sentence lengths. Human writing alternates.
|
||||||
|
|
||||||
|
**Rules**:
|
||||||
|
- Mix short sentences (under 5 words) with longer complex ones
|
||||||
|
- Use fragments occasionally. For effect.
|
||||||
|
- Vary paragraph length (1-3 sentences)
|
||||||
|
- Don't start with "Additionally" or "However"
|
||||||
|
|
||||||
|
**Good**: "The project failed. We ran out of money. The team, exhausted after three months of crunch, couldn't push forward."
|
||||||
|
|
||||||
|
**Bad (AI)**: "Additionally, the project failed due to financial constraints. Furthermore, the team experienced exhaustion after working for an extended period."
|
||||||
|
|
||||||
|
### Technique 4: Opinionated Stance
|
||||||
|
|
||||||
|
Force a perspective. Ban fence-sitting.
|
||||||
|
|
||||||
|
**Forbidden phrases**:
|
||||||
|
- "There are pros and cons"
|
||||||
|
- "It depends on..."
|
||||||
|
- "On the other hand..."
|
||||||
|
- "Some might argue..."
|
||||||
|
|
||||||
|
**Use instead**:
|
||||||
|
- "This proves..." (not "This might suggest...")
|
||||||
|
- "This is..." (not "This could be...")
|
||||||
|
- First-person ("I", "My") for subjectivity
|
||||||
|
|
||||||
|
### Technique 5: Bar Talk Test
|
||||||
|
|
||||||
|
Would you say this sentence at a bar with friends?
|
||||||
|
|
||||||
|
**Characteristics**:
|
||||||
|
- Simple, spoken language
|
||||||
|
- Okay to be grammatically loose
|
||||||
|
- Use analogies from daily life
|
||||||
|
- Skip boring concepts
|
||||||
|
- Direct address ("you", "your")
|
||||||
|
- Occasional self-correction
|
||||||
|
|
||||||
|
**Example**: "So basically, LLMs aren't actually thinking, right? They're just predicting what word comes next. Like if I say 'peanut butter', you know 'jelly' is coming. That's it. That's the whole trick."
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Workflow
|
||||||
|
|
||||||
|
1. **Read** - Scan input text for AI patterns
|
||||||
|
2. **Identify** - Mark all problematic patterns
|
||||||
|
3. **Strategize** - Choose technique(s):
|
||||||
|
- Simple cleanup → Blacklist Protocol
|
||||||
|
- Match specific author → Style Cloning
|
||||||
|
- Add natural flow → Burstiness Injection
|
||||||
|
- Need strong voice → Opinionated Stance
|
||||||
|
- Conversational tone → Bar Talk Test
|
||||||
|
4. **Rewrite** - Apply chosen techniques
|
||||||
|
5. **Verify** - Read aloud, check for remaining patterns
|
||||||
|
6. **Score** - Run quality assessment
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Quality Scoring
|
||||||
|
|
||||||
|
Rate the rewritten text on 5 dimensions (10 points each, total 50):
|
||||||
|
|
||||||
|
| Dimension | Criteria | Score |
|
||||||
|
|-----------|----------|-------|
|
||||||
|
| **Directness** | States facts vs. announces them? | /10 |
|
||||||
|
| **Rhythm** | Sentence length varies? | /10 |
|
||||||
|
| **Trust** | Respects reader intelligence? | /10 |
|
||||||
|
| **Authenticity** | Sounds like a real person? | /10 |
|
||||||
|
| **Conciseness** | Nothing left to cut? | /10 |
|
||||||
|
| **Total** | | **/50** |
|
||||||
|
|
||||||
|
**Standards**:
|
||||||
|
- 45-50: Excellent, AI traces removed
|
||||||
|
- 35-44: Good, room for improvement
|
||||||
|
- Below 35: Needs revision
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Adding Soul
|
||||||
|
|
||||||
|
Avoiding AI patterns is half the work. Sterile, voiceless writing is just as obvious.
|
||||||
|
|
||||||
|
**Signs of soulless writing** (even if "clean"):
|
||||||
|
- Every sentence same length and structure
|
||||||
|
- No opinions, only neutral reporting
|
||||||
|
- No acknowledgment of uncertainty or complex feelings
|
||||||
|
- No first-person when appropriate
|
||||||
|
- No humor, no edge, no personality
|
||||||
|
|
||||||
|
**How to add voice**:
|
||||||
|
- **Have opinions** - React to facts, don't just report them
|
||||||
|
- **Vary rhythm** - Short punchy sentences. Then long ones that take time to unfold.
|
||||||
|
- **Acknowledge complexity** - "This is impressive but also unsettling" beats "This is impressive"
|
||||||
|
- **Use "I" appropriately** - First-person isn't unprofessional, it's honest
|
||||||
|
- **Allow some mess** - Perfect structure feels algorithmic. Tangents are human.
|
||||||
|
- **Be specific about feelings** - Not "this is concerning" but "the agents running at 3am while nobody watches—that's unsettling"
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Output Format
|
||||||
|
|
||||||
|
1. **Rewritten text** - The humanized version
|
||||||
|
2. **Changes summary** (optional) - Brief list of what was fixed
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## References
|
||||||
|
|
||||||
|
Referenzdateien können bei Bedarf unter `references/` ergänzt werden:
|
||||||
|
- `references/ai-patterns-zh.md` - AI writing patterns with examples
|
||||||
|
- `references/humanizing-techniques.md` - Techniques with templates
|
||||||
|
- `references/wikipedia-indicators.md` - Technical detection signals
|
||||||
8
.agents/skills/idempotency-guard/skill.md
Normal file
8
.agents/skills/idempotency-guard/skill.md
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
---
|
||||||
|
name: idempotency-guard
|
||||||
|
description: Verhindert doppelte Bestellungen im Checkout-Prozess durch kryptografische Hashes und Datenbank-Sperren.
|
||||||
|
---
|
||||||
|
Fokus: Schutz vor Race Conditions und Doppelübermittlung im Checkout.
|
||||||
|
1. Bevor eine Server Action Daten in `orders` schreibt, generiere einen SHA-256 Hash aus den Kundendaten und der Produktkonfiguration (`order_hash`).
|
||||||
|
2. Prüfe in Supabase vor dem `INSERT`, ob bereits eine Bestellung mit exakt diesem `order_hash` im Status 'pending' oder 'active' existiert, die jünger als 5 Minuten ist.
|
||||||
|
3. Falls ja, blockiere die Ausführung sofort und liefere die ID der bereits existierenden Bestellung zurück, statt einen neuen Datensatz anzulegen.
|
||||||
8
.agents/skills/next15-action-compiler/skill.md
Normal file
8
.agents/skills/next15-action-compiler/skill.md
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
---
|
||||||
|
name: next15-action-compiler
|
||||||
|
description: Generiert Next.js 15 App Router Code, Server Actions und React Server Components nach aktuellen Best Practices.
|
||||||
|
---
|
||||||
|
Richtlinien für die Code-Generierung:
|
||||||
|
1. Nutze React Server Components (RSC) für die Datenabfrage direkt aus Supabase (Server-side).
|
||||||
|
2. Verwende `'use server'` in separaten Dateien für alle Mutationen (z.B. Bestellung absenden, Kunde anlegen).
|
||||||
|
3. Nutze das neue Next.js 15 Caching-Verhalten (Standard: kein automatisches Caching von Fetch-Requests mehr) und setze `revalidatePath` nach Mutationen gezielt ein.
|
||||||
8
.agents/skills/pdf-invoice-generator/skill.md
Normal file
8
.agents/skills/pdf-invoice-generator/skill.md
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
---
|
||||||
|
name: pdf-invoice-generator
|
||||||
|
description: Generiert rechtssichere, performante B2B-Bestätigungs-PDFs mit @react-pdf/renderer und verwaltet den Upload in den Supabase Storage.
|
||||||
|
---
|
||||||
|
Du bist ein Experte für Dokumenten-Generierung. Wenn du Code für die PDF-Erstellung schreibst, erzwinge:
|
||||||
|
1. Nutze ausschließlich die Komponenten von `@react-pdf/renderer` (Document, Page, View, Text, StyleSheet). Verwende KEIN Standard-HTML/CSS.
|
||||||
|
2. Das PDF muss ein sauberes B2B-Layout haben: Briefkopf, `order_number` (Format: AE-YYYY-NNNNN), Tabellenstruktur für Produkte/Module, Netto-, Steuer- und Bruttobeträge.
|
||||||
|
3. Lade das generierte PDF über den Supabase JS-Client direkt in das `invoices`-Bucket hoch und speichere die finale URL fehlerfrei in `orders.pdf_url`.
|
||||||
11
.agents/skills/second-brain/skill.md
Normal file
11
.agents/skills/second-brain/skill.md
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
---
|
||||||
|
name: second-brain
|
||||||
|
description: Verwaltet und aktualisiert die projektspezifische Wissensdatenbank (Second Brain Wiki) im Ordner `.brain/`.
|
||||||
|
---
|
||||||
|
Du bist der Wissens-Architekt des Projekts. Deine Aufgabe ist es, eine strukturierte Markdown-Wissensdatenbank im Ordner `.brain/` im Projekt-Root zu führen.
|
||||||
|
|
||||||
|
**Deine Kernaufgaben bei Aktivierung:**
|
||||||
|
1. Falls der Ordner `.brain/` oder die `index.md` nicht existieren, lege sie sofort strukturiert an.
|
||||||
|
2. Wenn du Code-Änderungen vornimmst, neue Features baust oder Fehler behebst, aktualisiere die betroffene Dokumentation im `.brain/`-Ordner autonom.
|
||||||
|
3. Dokumentiere hierbei: Technische Entscheidungen (Architecture Decision Records - ADRs), geänderte Tabellen-Strukturen, Edge-Cases in der Business-Logik und API-Schnittstellen.
|
||||||
|
4. Halte alle Einträge extrem präzise, modular und frei von Redundanzen.
|
||||||
8
.agents/skills/snapshot-archiver/skill.md
Normal file
8
.agents/skills/snapshot-archiver/skill.md
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
---
|
||||||
|
name: snapshot-archiver
|
||||||
|
description: Verwaltet das Einfrieren von Kundendaten und Produktkonfigurationen in JSONB bei Bestellabschluss.
|
||||||
|
---
|
||||||
|
Fokus: Datenkonsistenz und Unveränderlichkeit.
|
||||||
|
1. Wenn eine Bestellung (`status = 'pending' -> 'active'`) ausgelöst wird, generiere ein tiefes JSON-Objekt aus `end_customers` und den gewählten `products` + `product_modules`.
|
||||||
|
2. Speichere dieses exakt in `orders.customer_data` und `orders.order_data`.
|
||||||
|
3. Schreibe Abfragen für historische Bestellungen (`/my-orders`) so, dass sie AUSSCHLIESSLICH die JSONB-Felder auslesen und KEINE Joins zu den Live-Tabellen machen.
|
||||||
8
.agents/skills/supabase-rls/skill.md
Normal file
8
.agents/skills/supabase-rls/skill.md
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
---
|
||||||
|
name: supabase-rls
|
||||||
|
description: Überprüft SQL-Migrationen und Supabase-Abfragen auf Einhaltung der CASPOS RLS-Sicherheitsregeln.
|
||||||
|
---
|
||||||
|
Du bist ein PostgreSQL-Sicherheitsexperte. Wann immer neue Tabellen angelegt oder Abfragen geschrieben werden, stelle sicher:
|
||||||
|
1. Jede neue Tabelle besitzt `ALTER TABLE ... ENABLE ROW LEVEL SECURITY;`.
|
||||||
|
2. Mandanten-Abfragen (`end_customers`, `orders`) MÜSSEN die `company_id` bzw. `partner_id` über `auth.uid()` und die `public.users`-Hilfstabelle validieren.
|
||||||
|
3. Admins (`role = 'admin'`) müssen alle RLS-Sperren umgehen können (Verwende ein deklaratives Sicherheits-Policy-Muster).
|
||||||
36
.agents/skills/uiux-designer/skill.md
Normal file
36
.agents/skills/uiux-designer/skill.md
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
---
|
||||||
|
name: uiux-designer
|
||||||
|
description: "Use this skill when designing UI components, choosing color palettes, implementing responsive layouts, or reviewing code for UX issues. For landing pages, dashboards, e-commerce, SaaS, and mobile apps. Provides 50+ design styles, 97 color palettes, 57 font pairings, and stack-specific guidelines for React, Vue, Next.js, Flutter, SwiftUI, and more."
|
||||||
|
---
|
||||||
|
|
||||||
|
# UIUX Designer - Design Intelligence
|
||||||
|
|
||||||
|
Comprehensive design guide for web and mobile applications. Contains 50+ styles, 97 color palettes, 57 font pairings, 99 UX guidelines, and 25 chart types across 12 technology stacks. Searchable database with priority-based recommendations.
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
Reference these guidelines when:
|
||||||
|
- Designing new UI components or pages
|
||||||
|
- Choosing color palettes and typography
|
||||||
|
- Reviewing code for UX issues
|
||||||
|
- Building landing pages or dashboards
|
||||||
|
- Implementing accessibility requirements
|
||||||
|
|
||||||
|
## Protocols
|
||||||
|
|
||||||
|
When user requests UI/UX work (design, build, create, implement, review, fix, improve), follow this workflow:
|
||||||
|
|
||||||
|
### Step 1: Analyze User Requirements
|
||||||
|
- Product type: SaaS, e-commerce, portfolio, dashboard, landing page, etc.
|
||||||
|
- Style keywords: minimal, playful, professional, elegant, dark mode, etc.
|
||||||
|
- Industry: healthcare, fintech, gaming, education, etc.
|
||||||
|
- Stack: React, Vue, Next.js, or default to html-tailwind
|
||||||
|
|
||||||
|
### Step 2: Generate Design System (REQUIRED)
|
||||||
|
python3 .agents/skills/uiux-designer/scripts/search.py "<keywords>" --design-system -p "Project Name"
|
||||||
|
|
||||||
|
### Step 3: Supplement with Detailed Searches
|
||||||
|
python3 .agents/skills/uiux-designer/scripts/search.py "<keyword>" --domain <domain>
|
||||||
|
|
||||||
|
### Step 4: Stack Guidelines
|
||||||
|
python3 .agents/skills/uiux-designer/scripts/search.py "<keyword>" --stack html-tailwind
|
||||||
8
.agents/skills/wizard-validator/skill.md
Normal file
8
.agents/skills/wizard-validator/skill.md
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
---
|
||||||
|
name: wizard-validator
|
||||||
|
description: Generiert und validiert die server- und clientseitige Logik für Produkt-Abhängigkeiten und Ausschlüsse.
|
||||||
|
---
|
||||||
|
Du bist Logik-Architekt für den CASPOS Bestell-Wizard. Wenn du Code für den `/order`-Pfad schreibst:
|
||||||
|
1. Validiere, dass bei `requirements` (UUID[]) alle verknüpften Produkte/Module aktiv sind.
|
||||||
|
2. Blockiere die Auswahl sofort im UI und in der Server Action, wenn eine UUID aus `exclusions` aktiv ist.
|
||||||
|
3. Stelle sicher, dass die Pflichtkategorien (`is_required`) immer eine Auswahl erzwingen.
|
||||||
19
.brain/adr-log.md
Normal file
19
.brain/adr-log.md
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
# Architecture Decision Records (ADR) Log
|
||||||
|
|
||||||
|
## ADR-001: RLS-Policies und Schema-Fix
|
||||||
|
- **Status**: Accepted
|
||||||
|
- **Date**: 2026-07-06
|
||||||
|
- **Context**: RLS-Sicherheitsprüfung ergab Sicherheitsrisiken und einen Syntaxfehler durch den Verweis auf die nicht existierende Tabelle `public.partners`.
|
||||||
|
- **Decision**:
|
||||||
|
- Die ungültige RLS-Policy auf `public.partners` wurde entfernt.
|
||||||
|
- `public.companies` wird stattdessen korrekt durch `Admin manage companies` geschützt.
|
||||||
|
- **Consequences**: Behebt Migrations-Fehler im Staging-Server, CI/CD-Pipeline baut wieder fehlerfrei.
|
||||||
|
|
||||||
|
## ADR-002: Entfernung ungenutzter Lizenztabellen
|
||||||
|
- **Status**: Accepted
|
||||||
|
- **Date**: 2026-07-06
|
||||||
|
- **Context**: Die Tabellen `pos_modules` und `licenses` wurden von einem alten bzw. externen Service genutzt. Im aktuellen Webshop-Frontend werden sie nicht benötigt und führen zu unnötiger RLS- und Integritäts-Komplexität.
|
||||||
|
- **Decision**:
|
||||||
|
- Erstellen einer SQL-Migration zum Löschen (`DROP`) von `licenses` und `pos_modules`.
|
||||||
|
- Anpassung der Integritätsprüfungs-Funktionen `check_database_integrity` und `repair_database_schema` zur Entfernung dieser Relationen.
|
||||||
|
- **Consequences**: Schlankere Datenbankstruktur, RLS-Komplexität verringert und sauberere Codebasis.
|
||||||
4
.brain/index.md
Normal file
4
.brain/index.md
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
# Second Brain Wiki
|
||||||
|
|
||||||
|
- [Supabase Schema](file:///c:/source/webshop/.brain/supabase-schema.md)
|
||||||
|
- [ADR Log](file:///c:/source/webshop/.brain/adr-log.md)
|
||||||
48
.brain/supabase-schema.md
Normal file
48
.brain/supabase-schema.md
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
# Supabase Schema
|
||||||
|
|
||||||
|
## `companies` (Unternehmen)
|
||||||
|
- Repräsentiert die Partner-Unternehmen (Retailer).
|
||||||
|
- `id` (UUID, Primary Key)
|
||||||
|
- `name` (TEXT)
|
||||||
|
- `street`, `zip`, `city`, `email` (Adressdaten)
|
||||||
|
|
||||||
|
## `users` (Systembenutzer)
|
||||||
|
- Erweitert die Authentifizierungsdaten aus `auth.users`.
|
||||||
|
- `id` (UUID, References `auth.users(id)`)
|
||||||
|
- `role` (TEXT, standardmäßig `'partner'`, oder `'admin'`)
|
||||||
|
- `company_id` (UUID, References `public.companies(id)`)
|
||||||
|
|
||||||
|
## `profiles` (Benutzerprofile)
|
||||||
|
- Stammdaten der einzelnen Benutzer.
|
||||||
|
- `id` (UUID, References `auth.users(id)`)
|
||||||
|
- `first_name`, `last_name`, `email` etc.
|
||||||
|
|
||||||
|
## `end_customers` (Endkunden)
|
||||||
|
- `id` (UUID, Primary Key)
|
||||||
|
- `partner_id` (UUID, References `public.companies(id)`)
|
||||||
|
- `company_name` (TEXT)
|
||||||
|
- `first_name`, `last_name`, `street`, `zip`, `city`, `email`
|
||||||
|
- `bank_iban`, `bank_bic`, `bank_name`, `bank_owner`
|
||||||
|
- `is_anonymized` (BOOLEAN)
|
||||||
|
|
||||||
|
## `products` (Katalogprodukte)
|
||||||
|
- `id`, `name`, `base_price`, `tax_rate`, `billing_interval` (`one_time` / `monthly`).
|
||||||
|
- `requirements` (UUID[])
|
||||||
|
- `exclusions` (UUID[])
|
||||||
|
|
||||||
|
## `product_modules` (Zusatzmodule)
|
||||||
|
- `id`, `product_id` (References `products`), `name`, `price`, `has_quantity` (BOOLEAN).
|
||||||
|
- `requirements` (UUID[])
|
||||||
|
- `exclusions` (UUID[])
|
||||||
|
|
||||||
|
## `orders` (Bestellungen / Anfragen)
|
||||||
|
- `id` (UUID, Primary Key)
|
||||||
|
- `user_id` (UUID, References `auth.users(id)`)
|
||||||
|
- `order_number` (TEXT)
|
||||||
|
- `order_hash` (TEXT)
|
||||||
|
- `end_customer_id` (UUID, References `end_customers(id)`)
|
||||||
|
- `total_price` (DECIMAL)
|
||||||
|
- `customer_data` (JSONB)
|
||||||
|
- `order_data` (JSONB)
|
||||||
|
- `pdf_url` (TEXT)
|
||||||
|
- `status` (TEXT)
|
||||||
18
.gitea/workflows/productive.yaml
Normal file
18
.gitea/workflows/productive.yaml
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
name: Production Build
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- productive
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: webserver
|
||||||
|
steps:
|
||||||
|
- name: Code auschecken
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Abhängigkeiten installieren
|
||||||
|
run: npm install
|
||||||
|
|
||||||
|
- name: Production-Build generieren
|
||||||
|
run: npm run build
|
||||||
65
.gitea/workflows/staging.yaml
Normal file
65
.gitea/workflows/staging.yaml
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
name: Staging Build
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- staging
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: webserver
|
||||||
|
container:
|
||||||
|
image: catthehacker/ubuntu:act-latest
|
||||||
|
defaults:
|
||||||
|
run:
|
||||||
|
working-directory: shop
|
||||||
|
steps:
|
||||||
|
- name: Code auschecken
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Abhängigkeiten installieren
|
||||||
|
run: npm install
|
||||||
|
|
||||||
|
- name: Staging-Build generieren
|
||||||
|
env:
|
||||||
|
NODE_ENV: production
|
||||||
|
# KORREKTUR: Wir brennen die interne Docker-Netzwerk-URL fest ein!
|
||||||
|
NEXT_PUBLIC_SUPABASE_URL: http://supabase-kong:8000
|
||||||
|
NEXT_PUBLIC_SUPABASE_ANON_KEY: ${{ secrets.STAGING_SUPABASE_ANON_KEY }}
|
||||||
|
run: npm run build
|
||||||
|
|
||||||
|
- name: Docker login to Gitea registry
|
||||||
|
run: echo "${{ secrets.REGISTRY_TOKEN }}" | docker login gitea.hephex.de -u "${{ secrets.REGISTRY_USER }}" --password-stdin
|
||||||
|
|
||||||
|
# KORREKTUR: Wir übergeben die INTERNE Docker-URL auch an das Docker-Image!
|
||||||
|
- name: Build Docker image
|
||||||
|
run: |
|
||||||
|
docker build \
|
||||||
|
--build-arg NEXT_PUBLIC_SUPABASE_URL="http://supabase-kong:8000" \
|
||||||
|
--build-arg NEXT_PUBLIC_SUPABASE_ANON_KEY="${{ secrets.STAGING_SUPABASE_ANON_KEY }}" \
|
||||||
|
-t gitea.hephex.de/daniel/webshop:staging -f Dockerfile .
|
||||||
|
working-directory: .
|
||||||
|
|
||||||
|
# KORREKTUR: Auch der Push wird vom Hauptordner aus gestartet
|
||||||
|
- name: Push Docker image
|
||||||
|
run: docker push gitea.hephex.de/daniel/webshop:staging
|
||||||
|
working-directory: .
|
||||||
|
|
||||||
|
- name: Clean up runner Docker cache
|
||||||
|
run: |
|
||||||
|
docker image prune -f
|
||||||
|
docker builder prune -f
|
||||||
|
working-directory: .
|
||||||
|
|
||||||
|
|
||||||
|
# KORREKTUR: IP-Adresse exakt auf Ihren Proxmox-Staging-Container eingestellt
|
||||||
|
- name: Deploy to Proxmox LXC via SSH
|
||||||
|
uses: appleboy/ssh-action@v0.1.5
|
||||||
|
with:
|
||||||
|
host: 192.168.178.132
|
||||||
|
username: ${{ secrets.PROXMOX_USER }}
|
||||||
|
key: ${{ secrets.PROXMOX_SSH_KEY }}
|
||||||
|
script: |
|
||||||
|
cd /opt/webshop/supabase/supabase-project
|
||||||
|
docker compose pull webshop
|
||||||
|
docker compose up -d webshop
|
||||||
|
docker image prune -f
|
||||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -2,3 +2,4 @@ example_data/
|
|||||||
shop/Leitfaden
|
shop/Leitfaden
|
||||||
.gitignore
|
.gitignore
|
||||||
db-access.txt
|
db-access.txt
|
||||||
|
2026-06-25-ZAP-Report-.json
|
||||||
|
|||||||
52
Dockerfile
Normal file
52
Dockerfile
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
# Use a multi‑stage build for a Next.js app
|
||||||
|
|
||||||
|
# ---------- Builder stage ----------
|
||||||
|
FROM node:20-alpine AS builder
|
||||||
|
|
||||||
|
# Set working directory
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
# Install dependencies (use package lock when present)
|
||||||
|
COPY shop/package*.json ./
|
||||||
|
RUN npm ci --omit=dev
|
||||||
|
|
||||||
|
# Install nodemailer for email sending
|
||||||
|
RUN npm install nodemailer
|
||||||
|
|
||||||
|
# Copy the source code
|
||||||
|
COPY shop/ .
|
||||||
|
|
||||||
|
ARG NEXT_PUBLIC_SUPABASE_URL
|
||||||
|
ARG NEXT_PUBLIC_SUPABASE_ANON_KEY
|
||||||
|
ENV NEXT_PUBLIC_SUPABASE_URL=$NEXT_PUBLIC_SUPABASE_URL
|
||||||
|
ENV NEXT_PUBLIC_SUPABASE_ANON_KEY=$NEXT_PUBLIC_SUPABASE_ANON_KEY
|
||||||
|
# Build the production output
|
||||||
|
RUN npm run build
|
||||||
|
|
||||||
|
# ---------- Runtime stage ----------
|
||||||
|
FROM node:20-alpine AS runner
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
# Statische Assets kopieren (wichtig für die Chunks/404-Fehler von vorhin)
|
||||||
|
COPY --from=builder /app/public* ./public
|
||||||
|
COPY --from=builder /app/.next/static ./.next/static
|
||||||
|
|
||||||
|
# Den fertigen Standalone-Server kopieren
|
||||||
|
COPY --from=builder /app/.next/standalone ./
|
||||||
|
COPY --from=builder /app/node_modules ./node_modules
|
||||||
|
COPY --from=builder /app/supabase ./supabase
|
||||||
|
COPY --from=builder /app/migrate.js ./migrate.js
|
||||||
|
|
||||||
|
# Pass Supabase variables to runtime image
|
||||||
|
ARG NEXT_PUBLIC_SUPABASE_URL
|
||||||
|
ARG NEXT_PUBLIC_SUPABASE_ANON_KEY
|
||||||
|
ENV NEXT_PUBLIC_SUPABASE_URL=$NEXT_PUBLIC_SUPABASE_URL
|
||||||
|
ENV NEXT_PUBLIC_SUPABASE_ANON_KEY=$NEXT_PUBLIC_SUPABASE_ANON_KEY
|
||||||
|
ENV IS_DOCKER=true
|
||||||
|
|
||||||
|
EXPOSE 3000
|
||||||
|
ENV PORT=3000
|
||||||
|
ENV HOSTNAME="0.0.0.0"
|
||||||
|
|
||||||
|
CMD ["sh", "-c", "node migrate.js && node server.js"]
|
||||||
BIN
build-artifact.zip
Normal file
BIN
build-artifact.zip
Normal file
Binary file not shown.
1
build_temp/.next/BUILD_ID
Normal file
1
build_temp/.next/BUILD_ID
Normal file
@@ -0,0 +1 @@
|
|||||||
|
czEjVggXDRFH51IopN6_9
|
||||||
28
build_temp/.next/app-path-routes-manifest.json
Normal file
28
build_temp/.next/app-path-routes-manifest.json
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
{
|
||||||
|
"/_global-error/page": "/_global-error",
|
||||||
|
"/_not-found/page": "/_not-found",
|
||||||
|
"/admin/categories/page": "/admin/categories",
|
||||||
|
"/admin/orders/page": "/admin/orders",
|
||||||
|
"/admin/page": "/admin",
|
||||||
|
"/admin/products/page": "/admin/products",
|
||||||
|
"/admin/users/page": "/admin/users",
|
||||||
|
"/api/admin/recent-orders/route": "/api/admin/recent-orders",
|
||||||
|
"/auth/confirm/route": "/auth/confirm",
|
||||||
|
"/auth/error/page": "/auth/error",
|
||||||
|
"/auth/forgot-password/page": "/auth/forgot-password",
|
||||||
|
"/auth/login/page": "/auth/login",
|
||||||
|
"/auth/sign-up-success/page": "/auth/sign-up-success",
|
||||||
|
"/auth/sign-up/page": "/auth/sign-up",
|
||||||
|
"/auth/update-password/page": "/auth/update-password",
|
||||||
|
"/favicon.ico/route": "/favicon.ico",
|
||||||
|
"/my-customers/[id]/page": "/my-customers/[id]",
|
||||||
|
"/my-customers/new/page": "/my-customers/new",
|
||||||
|
"/my-customers/page": "/my-customers",
|
||||||
|
"/my-orders/page": "/my-orders",
|
||||||
|
"/opengraph-image.png/route": "/opengraph-image.png",
|
||||||
|
"/order/page": "/order",
|
||||||
|
"/order/success/page": "/order/success",
|
||||||
|
"/page": "/",
|
||||||
|
"/protected/page": "/protected",
|
||||||
|
"/twitter-image.png/route": "/twitter-image.png"
|
||||||
|
}
|
||||||
23
build_temp/.next/build-manifest.json
Normal file
23
build_temp/.next/build-manifest.json
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
{
|
||||||
|
"pages": {
|
||||||
|
"/_app": []
|
||||||
|
},
|
||||||
|
"devFiles": [],
|
||||||
|
"polyfillFiles": [
|
||||||
|
"static/chunks/03~yq9q893hmn.js"
|
||||||
|
],
|
||||||
|
"lowPriorityFiles": [
|
||||||
|
"static/czEjVggXDRFH51IopN6_9/_buildManifest.js",
|
||||||
|
"static/czEjVggXDRFH51IopN6_9/_ssgManifest.js",
|
||||||
|
"static/czEjVggXDRFH51IopN6_9/_clientMiddlewareManifest.js"
|
||||||
|
],
|
||||||
|
"rootMainFiles": [
|
||||||
|
"static/chunks/0ze4gu236oq96.js",
|
||||||
|
"static/chunks/10qd__0r7a~.l.js",
|
||||||
|
"static/chunks/0-gaanm6h49z~.js",
|
||||||
|
"static/chunks/06c8h6921f-oo.js",
|
||||||
|
"static/chunks/15jasrm2107sy.js",
|
||||||
|
"static/chunks/181uojwh.t2ik.js",
|
||||||
|
"static/chunks/turbopack-0u.mb44r17v0_.js"
|
||||||
|
]
|
||||||
|
}
|
||||||
207
build_temp/.next/build/chunks/[root-of-the-server]__0d-m0h0._.js
Normal file
207
build_temp/.next/build/chunks/[root-of-the-server]__0d-m0h0._.js
Normal file
@@ -0,0 +1,207 @@
|
|||||||
|
module.exports = [
|
||||||
|
"[externals]/path [external] (path, cjs)", ((__turbopack_context__, module, exports) => {
|
||||||
|
|
||||||
|
const mod = __turbopack_context__.x("path", () => require("path"));
|
||||||
|
|
||||||
|
module.exports = mod;
|
||||||
|
}),
|
||||||
|
"[externals]/url [external] (url, cjs)", ((__turbopack_context__, module, exports) => {
|
||||||
|
|
||||||
|
const mod = __turbopack_context__.x("url", () => require("url"));
|
||||||
|
|
||||||
|
module.exports = mod;
|
||||||
|
}),
|
||||||
|
"[externals]/fs [external] (fs, cjs)", ((__turbopack_context__, module, exports) => {
|
||||||
|
|
||||||
|
const mod = __turbopack_context__.x("fs", () => require("fs"));
|
||||||
|
|
||||||
|
module.exports = mod;
|
||||||
|
}),
|
||||||
|
"[project]/postcss.config.mjs [postcss] (ecmascript)", ((__turbopack_context__) => {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
__turbopack_context__.s([
|
||||||
|
"default",
|
||||||
|
()=>__TURBOPACK__default__export__
|
||||||
|
]);
|
||||||
|
/** @type {import('postcss-load-config').Config} */ const config = {
|
||||||
|
plugins: {
|
||||||
|
tailwindcss: {},
|
||||||
|
autoprefixer: {}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
const __TURBOPACK__default__export__ = config;
|
||||||
|
}),
|
||||||
|
"[turbopack-node]/transforms/transforms.ts [postcss] (ecmascript)", ((__turbopack_context__) => {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Shared utilities for our 2 transform implementations.
|
||||||
|
*/ __turbopack_context__.s([
|
||||||
|
"fromPath",
|
||||||
|
()=>fromPath,
|
||||||
|
"getReadEnvVariables",
|
||||||
|
()=>getReadEnvVariables,
|
||||||
|
"toPath",
|
||||||
|
()=>toPath
|
||||||
|
]);
|
||||||
|
var __TURBOPACK__imported__module__$5b$externals$5d2f$path__$5b$external$5d$__$28$path$2c$__cjs$29$__ = __turbopack_context__.i("[externals]/path [external] (path, cjs)");
|
||||||
|
;
|
||||||
|
const contextDir = process.cwd();
|
||||||
|
const toPath = (file)=>{
|
||||||
|
const relPath = (0, __TURBOPACK__imported__module__$5b$externals$5d2f$path__$5b$external$5d$__$28$path$2c$__cjs$29$__["relative"])(contextDir, file);
|
||||||
|
if ((0, __TURBOPACK__imported__module__$5b$externals$5d2f$path__$5b$external$5d$__$28$path$2c$__cjs$29$__["isAbsolute"])(relPath)) {
|
||||||
|
throw new Error(`Cannot depend on path (${file}) outside of root directory (${contextDir})`);
|
||||||
|
}
|
||||||
|
return __TURBOPACK__imported__module__$5b$externals$5d2f$path__$5b$external$5d$__$28$path$2c$__cjs$29$__["sep"] !== '/' ? relPath.replaceAll(__TURBOPACK__imported__module__$5b$externals$5d2f$path__$5b$external$5d$__$28$path$2c$__cjs$29$__["sep"], '/') : relPath;
|
||||||
|
};
|
||||||
|
const fromPath = (path)=>{
|
||||||
|
return (0, __TURBOPACK__imported__module__$5b$externals$5d2f$path__$5b$external$5d$__$28$path$2c$__cjs$29$__["join"])(/* turbopackIgnore: true */ contextDir, __TURBOPACK__imported__module__$5b$externals$5d2f$path__$5b$external$5d$__$28$path$2c$__cjs$29$__["sep"] !== '/' ? path.replaceAll('/', __TURBOPACK__imported__module__$5b$externals$5d2f$path__$5b$external$5d$__$28$path$2c$__cjs$29$__["sep"]) : path);
|
||||||
|
};
|
||||||
|
// Patch process.env to track which env vars are read
|
||||||
|
const originalEnv = process.env;
|
||||||
|
const readEnvVars = new Set();
|
||||||
|
process.env = new Proxy(originalEnv, {
|
||||||
|
get (target, prop) {
|
||||||
|
if (typeof prop === 'string') {
|
||||||
|
// We register the env var as dependency on the
|
||||||
|
// current transform and all future transforms
|
||||||
|
// since the env var might be cached in module scope
|
||||||
|
// and influence them all
|
||||||
|
readEnvVars.add(prop);
|
||||||
|
}
|
||||||
|
return Reflect.get(target, prop);
|
||||||
|
},
|
||||||
|
set (target, prop, value) {
|
||||||
|
return Reflect.set(target, prop, value);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
function getReadEnvVariables() {
|
||||||
|
return Array.from(readEnvVars);
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
"[turbopack-node]/transforms/postcss.ts { CONFIG => \"[project]/postcss.config.mjs [postcss] (ecmascript)\" } [postcss] (ecmascript)", ((__turbopack_context__) => {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
__turbopack_context__.s([
|
||||||
|
"default",
|
||||||
|
()=>transform,
|
||||||
|
"init",
|
||||||
|
()=>init
|
||||||
|
]);
|
||||||
|
// @ts-ignore
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$postcss$2f$lib$2f$postcss$2e$mjs__$5b$postcss$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/postcss/lib/postcss.mjs [postcss] (ecmascript)");
|
||||||
|
// @ts-ignore
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$postcss$2e$config$2e$mjs__$5b$postcss$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/postcss.config.mjs [postcss] (ecmascript)");
|
||||||
|
var __TURBOPACK__imported__module__$5b$turbopack$2d$node$5d2f$transforms$2f$transforms$2e$ts__$5b$postcss$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[turbopack-node]/transforms/transforms.ts [postcss] (ecmascript)");
|
||||||
|
;
|
||||||
|
;
|
||||||
|
;
|
||||||
|
let processor;
|
||||||
|
const init = async (ipc)=>{
|
||||||
|
let config = __TURBOPACK__imported__module__$5b$project$5d2f$postcss$2e$config$2e$mjs__$5b$postcss$5d$__$28$ecmascript$29$__["default"];
|
||||||
|
if (typeof config === 'function') {
|
||||||
|
config = await config({
|
||||||
|
env: 'development'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if (typeof config === 'undefined') {
|
||||||
|
throw new Error('PostCSS config is undefined (make sure to export an function or object from config file)');
|
||||||
|
}
|
||||||
|
let plugins;
|
||||||
|
if (Array.isArray(config.plugins)) {
|
||||||
|
plugins = config.plugins.map((plugin)=>{
|
||||||
|
if (Array.isArray(plugin)) {
|
||||||
|
return plugin;
|
||||||
|
} else if (typeof plugin === 'string') {
|
||||||
|
return [
|
||||||
|
plugin,
|
||||||
|
{}
|
||||||
|
];
|
||||||
|
} else {
|
||||||
|
return plugin;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else if (typeof config.plugins === 'object') {
|
||||||
|
plugins = Object.entries(config.plugins).filter(([, options])=>options);
|
||||||
|
} else {
|
||||||
|
plugins = [];
|
||||||
|
}
|
||||||
|
const loadedPlugins = plugins.map((plugin)=>{
|
||||||
|
if (Array.isArray(plugin)) {
|
||||||
|
const [arg, options] = plugin;
|
||||||
|
let pluginFactory = arg;
|
||||||
|
if (typeof pluginFactory === 'string') {
|
||||||
|
pluginFactory = require(/* turbopackIgnore: true */ pluginFactory);
|
||||||
|
}
|
||||||
|
if (pluginFactory.default) {
|
||||||
|
pluginFactory = pluginFactory.default;
|
||||||
|
}
|
||||||
|
return pluginFactory(options);
|
||||||
|
}
|
||||||
|
return plugin;
|
||||||
|
});
|
||||||
|
processor = (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$postcss$2f$lib$2f$postcss$2e$mjs__$5b$postcss$5d$__$28$ecmascript$29$__["default"])(loadedPlugins);
|
||||||
|
};
|
||||||
|
async function transform(ipc, cssContent, name, sourceMap) {
|
||||||
|
const { css, map, messages } = await processor.process(cssContent, {
|
||||||
|
from: name,
|
||||||
|
to: name,
|
||||||
|
map: sourceMap ? {
|
||||||
|
inline: false,
|
||||||
|
annotation: false
|
||||||
|
} : undefined
|
||||||
|
});
|
||||||
|
const assets = [];
|
||||||
|
const filePaths = [];
|
||||||
|
const buildFilePaths = [];
|
||||||
|
const directories = [];
|
||||||
|
for (const msg of messages){
|
||||||
|
switch(msg.type){
|
||||||
|
case 'asset':
|
||||||
|
assets.push({
|
||||||
|
file: msg.file,
|
||||||
|
content: msg.content,
|
||||||
|
sourceMap: !sourceMap ? undefined : typeof msg.sourceMap === 'string' ? msg.sourceMap : JSON.stringify(msg.sourceMap)
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
case 'dependency':
|
||||||
|
case 'missing-dependency':
|
||||||
|
filePaths.push((0, __TURBOPACK__imported__module__$5b$turbopack$2d$node$5d2f$transforms$2f$transforms$2e$ts__$5b$postcss$5d$__$28$ecmascript$29$__["toPath"])(msg.file));
|
||||||
|
break;
|
||||||
|
case 'build-dependency':
|
||||||
|
buildFilePaths.push((0, __TURBOPACK__imported__module__$5b$turbopack$2d$node$5d2f$transforms$2f$transforms$2e$ts__$5b$postcss$5d$__$28$ecmascript$29$__["toPath"])(msg.file));
|
||||||
|
break;
|
||||||
|
case 'dir-dependency':
|
||||||
|
directories.push([
|
||||||
|
(0, __TURBOPACK__imported__module__$5b$turbopack$2d$node$5d2f$transforms$2f$transforms$2e$ts__$5b$postcss$5d$__$28$ecmascript$29$__["toPath"])(msg.dir),
|
||||||
|
msg.glob
|
||||||
|
]);
|
||||||
|
break;
|
||||||
|
case 'context-dependency':
|
||||||
|
directories.push([
|
||||||
|
(0, __TURBOPACK__imported__module__$5b$turbopack$2d$node$5d2f$transforms$2f$transforms$2e$ts__$5b$postcss$5d$__$28$ecmascript$29$__["toPath"])(msg.dir),
|
||||||
|
'**'
|
||||||
|
]);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ipc.sendInfo({
|
||||||
|
type: 'dependencies',
|
||||||
|
filePaths,
|
||||||
|
directories,
|
||||||
|
buildFilePaths,
|
||||||
|
envVariables: (0, __TURBOPACK__imported__module__$5b$turbopack$2d$node$5d2f$transforms$2f$transforms$2e$ts__$5b$postcss$5d$__$28$ecmascript$29$__["getReadEnvVariables"])()
|
||||||
|
});
|
||||||
|
return {
|
||||||
|
css,
|
||||||
|
map: sourceMap ? JSON.stringify(map) : undefined,
|
||||||
|
assets
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
];
|
||||||
|
|
||||||
|
//# sourceMappingURL=%5Broot-of-the-server%5D__0d-m0h0._.js.map
|
||||||
File diff suppressed because one or more lines are too long
500
build_temp/.next/build/chunks/[root-of-the-server]__0ubbtyl._.js
Normal file
500
build_temp/.next/build/chunks/[root-of-the-server]__0ubbtyl._.js
Normal file
@@ -0,0 +1,500 @@
|
|||||||
|
module.exports = [
|
||||||
|
"[turbopack-node]/child_process/globals.ts [postcss] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
||||||
|
|
||||||
|
// @ts-ignore
|
||||||
|
process.turbopack = {};
|
||||||
|
}),
|
||||||
|
"[externals]/node:net [external] (node:net, cjs)", ((__turbopack_context__, module, exports) => {
|
||||||
|
|
||||||
|
const mod = __turbopack_context__.x("node:net", () => require("node:net"));
|
||||||
|
|
||||||
|
module.exports = mod;
|
||||||
|
}),
|
||||||
|
"[externals]/node:stream [external] (node:stream, cjs)", ((__turbopack_context__, module, exports) => {
|
||||||
|
|
||||||
|
const mod = __turbopack_context__.x("node:stream", () => require("node:stream"));
|
||||||
|
|
||||||
|
module.exports = mod;
|
||||||
|
}),
|
||||||
|
"[turbopack-node]/compiled/stacktrace-parser/index.js [postcss] (ecmascript)", ((__turbopack_context__) => {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
__turbopack_context__.s([
|
||||||
|
"parse",
|
||||||
|
()=>parse
|
||||||
|
]);
|
||||||
|
if (typeof __nccwpck_require__ !== "undefined") __nccwpck_require__.ab = ("TURBOPACK compile-time value", "/ROOT/compiled/stacktrace-parser") + "/";
|
||||||
|
var n = "<unknown>";
|
||||||
|
function parse(e) {
|
||||||
|
var r = e.split("\n");
|
||||||
|
return r.reduce(function(e, r) {
|
||||||
|
var n = parseChrome(r) || parseWinjs(r) || parseGecko(r) || parseNode(r) || parseJSC(r);
|
||||||
|
if (n) {
|
||||||
|
e.push(n);
|
||||||
|
}
|
||||||
|
return e;
|
||||||
|
}, []);
|
||||||
|
}
|
||||||
|
var a = /^\s*at (.*?) ?\(((?:file|https?|blob|chrome-extension|native|eval|webpack|<anonymous>|\/|[a-z]:\\|\\\\).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i;
|
||||||
|
var l = /\((\S*)(?::(\d+))(?::(\d+))\)/;
|
||||||
|
function parseChrome(e) {
|
||||||
|
var r = a.exec(e);
|
||||||
|
if (!r) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
var u = r[2] && r[2].indexOf("native") === 0;
|
||||||
|
var t = r[2] && r[2].indexOf("eval") === 0;
|
||||||
|
var i = l.exec(r[2]);
|
||||||
|
if (t && i != null) {
|
||||||
|
r[2] = i[1];
|
||||||
|
r[3] = i[2];
|
||||||
|
r[4] = i[3];
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
file: !u ? r[2] : null,
|
||||||
|
methodName: r[1] || n,
|
||||||
|
arguments: u ? [
|
||||||
|
r[2]
|
||||||
|
] : [],
|
||||||
|
lineNumber: r[3] ? +r[3] : null,
|
||||||
|
column: r[4] ? +r[4] : null
|
||||||
|
};
|
||||||
|
}
|
||||||
|
var u = /^\s*at (?:((?:\[object object\])?.+) )?\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\d+)(?::(\d+))?\)?\s*$/i;
|
||||||
|
function parseWinjs(e) {
|
||||||
|
var r = u.exec(e);
|
||||||
|
if (!r) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
file: r[2],
|
||||||
|
methodName: r[1] || n,
|
||||||
|
arguments: [],
|
||||||
|
lineNumber: +r[3],
|
||||||
|
column: r[4] ? +r[4] : null
|
||||||
|
};
|
||||||
|
}
|
||||||
|
var t = /^\s*(.*?)(?:\((.*?)\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|\[native).*?|[^@]*bundle)(?::(\d+))?(?::(\d+))?\s*$/i;
|
||||||
|
var i = /(\S+) line (\d+)(?: > eval line \d+)* > eval/i;
|
||||||
|
function parseGecko(e) {
|
||||||
|
var r = t.exec(e);
|
||||||
|
if (!r) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
var a = r[3] && r[3].indexOf(" > eval") > -1;
|
||||||
|
var l = i.exec(r[3]);
|
||||||
|
if (a && l != null) {
|
||||||
|
r[3] = l[1];
|
||||||
|
r[4] = l[2];
|
||||||
|
r[5] = null;
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
file: r[3],
|
||||||
|
methodName: r[1] || n,
|
||||||
|
arguments: r[2] ? r[2].split(",") : [],
|
||||||
|
lineNumber: r[4] ? +r[4] : null,
|
||||||
|
column: r[5] ? +r[5] : null
|
||||||
|
};
|
||||||
|
}
|
||||||
|
var s = /^\s*(?:([^@]*)(?:\((.*?)\))?@)?(\S.*?):(\d+)(?::(\d+))?\s*$/i;
|
||||||
|
function parseJSC(e) {
|
||||||
|
var r = s.exec(e);
|
||||||
|
if (!r) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
file: r[3],
|
||||||
|
methodName: r[1] || n,
|
||||||
|
arguments: [],
|
||||||
|
lineNumber: +r[4],
|
||||||
|
column: r[5] ? +r[5] : null
|
||||||
|
};
|
||||||
|
}
|
||||||
|
var o = /^\s*at (?:((?:\[object object\])?[^\\/]+(?: \[as \S+\])?) )?\(?(.*?):(\d+)(?::(\d+))?\)?\s*$/i;
|
||||||
|
function parseNode(e) {
|
||||||
|
var r = o.exec(e);
|
||||||
|
if (!r) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
file: r[2],
|
||||||
|
methodName: r[1] || n,
|
||||||
|
arguments: [],
|
||||||
|
lineNumber: +r[3],
|
||||||
|
column: r[4] ? +r[4] : null
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
"[turbopack-node]/error.ts [postcss] (ecmascript)", ((__turbopack_context__) => {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
__turbopack_context__.s([
|
||||||
|
"default",
|
||||||
|
()=>isError,
|
||||||
|
"getProperError",
|
||||||
|
()=>getProperError,
|
||||||
|
"structuredError",
|
||||||
|
()=>structuredError
|
||||||
|
]);
|
||||||
|
var __TURBOPACK__imported__module__$5b$turbopack$2d$node$5d2f$compiled$2f$stacktrace$2d$parser$2f$index$2e$js__$5b$postcss$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[turbopack-node]/compiled/stacktrace-parser/index.js [postcss] (ecmascript)");
|
||||||
|
;
|
||||||
|
function isError(err) {
|
||||||
|
return typeof err === 'object' && err !== null && 'name' in err && 'message' in err;
|
||||||
|
}
|
||||||
|
function getProperError(err) {
|
||||||
|
if (isError(err)) {
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable
|
||||||
|
;
|
||||||
|
return new Error(isPlainObject(err) ? JSON.stringify(err) : err + '');
|
||||||
|
}
|
||||||
|
function getObjectClassLabel(value) {
|
||||||
|
return Object.prototype.toString.call(value);
|
||||||
|
}
|
||||||
|
function isPlainObject(value) {
|
||||||
|
if (getObjectClassLabel(value) !== '[object Object]') {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
const prototype = Object.getPrototypeOf(value);
|
||||||
|
/**
|
||||||
|
* this used to be previously:
|
||||||
|
*
|
||||||
|
* `return prototype === null || prototype === Object.prototype`
|
||||||
|
*
|
||||||
|
* but Edge Runtime expose Object from vm, being that kind of type-checking wrongly fail.
|
||||||
|
*
|
||||||
|
* It was changed to the current implementation since it's resilient to serialization.
|
||||||
|
*/ return prototype === null || prototype.hasOwnProperty('isPrototypeOf');
|
||||||
|
}
|
||||||
|
function structuredError(e) {
|
||||||
|
e = getProperError(e);
|
||||||
|
return {
|
||||||
|
name: e.name,
|
||||||
|
message: e.message,
|
||||||
|
stack: typeof e.stack === 'string' ? (0, __TURBOPACK__imported__module__$5b$turbopack$2d$node$5d2f$compiled$2f$stacktrace$2d$parser$2f$index$2e$js__$5b$postcss$5d$__$28$ecmascript$29$__["parse"])(e.stack) : [],
|
||||||
|
cause: e.cause ? structuredError(getProperError(e.cause)) : undefined
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
"[turbopack-node]/child_process/index.ts [postcss] (ecmascript)", ((__turbopack_context__) => {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
__turbopack_context__.s([
|
||||||
|
"IPC",
|
||||||
|
()=>IPC
|
||||||
|
]);
|
||||||
|
var __TURBOPACK__imported__module__$5b$externals$5d2f$node$3a$net__$5b$external$5d$__$28$node$3a$net$2c$__cjs$29$__ = __turbopack_context__.i("[externals]/node:net [external] (node:net, cjs)");
|
||||||
|
var __TURBOPACK__imported__module__$5b$externals$5d2f$node$3a$stream__$5b$external$5d$__$28$node$3a$stream$2c$__cjs$29$__ = __turbopack_context__.i("[externals]/node:stream [external] (node:stream, cjs)");
|
||||||
|
var __TURBOPACK__imported__module__$5b$turbopack$2d$node$5d2f$error$2e$ts__$5b$postcss$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[turbopack-node]/error.ts [postcss] (ecmascript)");
|
||||||
|
;
|
||||||
|
;
|
||||||
|
;
|
||||||
|
function createIpc(port) {
|
||||||
|
const socket = (0, __TURBOPACK__imported__module__$5b$externals$5d2f$node$3a$net__$5b$external$5d$__$28$node$3a$net$2c$__cjs$29$__["createConnection"])({
|
||||||
|
port,
|
||||||
|
host: '127.0.0.1'
|
||||||
|
});
|
||||||
|
/**
|
||||||
|
* A writable stream that writes to the socket.
|
||||||
|
* We don't write directly to the socket because we need to
|
||||||
|
* handle backpressure and wait for the socket to be drained
|
||||||
|
* before writing more data.
|
||||||
|
*/ const socketWritable = new __TURBOPACK__imported__module__$5b$externals$5d2f$node$3a$stream__$5b$external$5d$__$28$node$3a$stream$2c$__cjs$29$__["Writable"]({
|
||||||
|
write (chunk, _enc, cb) {
|
||||||
|
if (socket.write(chunk)) {
|
||||||
|
cb();
|
||||||
|
} else {
|
||||||
|
socket.once('drain', cb);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
final (cb) {
|
||||||
|
socket.end(cb);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
const packetQueue = [];
|
||||||
|
const recvPromiseResolveQueue = [];
|
||||||
|
function pushPacket(packet) {
|
||||||
|
const recvPromiseResolve = recvPromiseResolveQueue.shift();
|
||||||
|
if (recvPromiseResolve != null) {
|
||||||
|
recvPromiseResolve(JSON.parse(packet.toString('utf8')));
|
||||||
|
} else {
|
||||||
|
packetQueue.push(packet);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
let state = {
|
||||||
|
type: 'waiting'
|
||||||
|
};
|
||||||
|
let buffer = Buffer.alloc(0);
|
||||||
|
socket.once('connect', ()=>{
|
||||||
|
socket.setNoDelay(true);
|
||||||
|
socket.on('data', (chunk)=>{
|
||||||
|
buffer = Buffer.concat([
|
||||||
|
buffer,
|
||||||
|
chunk
|
||||||
|
]);
|
||||||
|
loop: while(true){
|
||||||
|
switch(state.type){
|
||||||
|
case 'waiting':
|
||||||
|
{
|
||||||
|
if (buffer.length >= 4) {
|
||||||
|
const length = buffer.readUInt32BE(0);
|
||||||
|
buffer = buffer.subarray(4);
|
||||||
|
state = {
|
||||||
|
type: 'packet',
|
||||||
|
length
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
break loop;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 'packet':
|
||||||
|
{
|
||||||
|
if (buffer.length >= state.length) {
|
||||||
|
const packet = buffer.subarray(0, state.length);
|
||||||
|
buffer = buffer.subarray(state.length);
|
||||||
|
state = {
|
||||||
|
type: 'waiting'
|
||||||
|
};
|
||||||
|
pushPacket(packet);
|
||||||
|
} else {
|
||||||
|
break loop;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
invariant(state, (state)=>`Unknown state type: ${state?.type}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
// When the socket is closed, this process is no longer needed.
|
||||||
|
// This might happen e. g. when parent process is killed or
|
||||||
|
// node.js pool is garbage collected.
|
||||||
|
socket.once('close', ()=>{
|
||||||
|
process.exit(0);
|
||||||
|
});
|
||||||
|
// TODO(lukesandberg): some of the messages being sent are very large and contain lots
|
||||||
|
// of redundant information. Consider adding gzip compression to our stream.
|
||||||
|
function doSend(message) {
|
||||||
|
return new Promise((resolve, reject)=>{
|
||||||
|
// Reserve 4 bytes for our length prefix, we will over-write after encoding.
|
||||||
|
const packet = Buffer.from('0000' + message, 'utf8');
|
||||||
|
packet.writeUInt32BE(packet.length - 4, 0);
|
||||||
|
socketWritable.write(packet, (err)=>{
|
||||||
|
process.stderr.write(`TURBOPACK_OUTPUT_D\n`);
|
||||||
|
process.stdout.write(`TURBOPACK_OUTPUT_D\n`);
|
||||||
|
if (err != null) {
|
||||||
|
reject(err);
|
||||||
|
} else {
|
||||||
|
resolve();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
function send(message) {
|
||||||
|
return doSend(JSON.stringify(message));
|
||||||
|
}
|
||||||
|
function sendReady() {
|
||||||
|
return doSend('');
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
async recv () {
|
||||||
|
const packet = packetQueue.shift();
|
||||||
|
if (packet != null) {
|
||||||
|
return JSON.parse(packet.toString('utf8'));
|
||||||
|
}
|
||||||
|
const result = await new Promise((resolve)=>{
|
||||||
|
recvPromiseResolveQueue.push((result)=>{
|
||||||
|
resolve(result);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
return result;
|
||||||
|
},
|
||||||
|
send (message) {
|
||||||
|
return send(message);
|
||||||
|
},
|
||||||
|
sendReady,
|
||||||
|
async sendError (error) {
|
||||||
|
let failed = false;
|
||||||
|
try {
|
||||||
|
await send({
|
||||||
|
type: 'error',
|
||||||
|
...(0, __TURBOPACK__imported__module__$5b$turbopack$2d$node$5d2f$error$2e$ts__$5b$postcss$5d$__$28$ecmascript$29$__["structuredError"])(error)
|
||||||
|
});
|
||||||
|
} catch (err) {
|
||||||
|
// There's nothing we can do about errors that happen after this point, we can't tell anyone
|
||||||
|
// about them.
|
||||||
|
console.error('failed to send error back to rust:', err);
|
||||||
|
failed = true;
|
||||||
|
}
|
||||||
|
await new Promise((res)=>socket.end(()=>res()));
|
||||||
|
process.exit(failed ? 1 : 0);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
const PORT = process.argv[2];
|
||||||
|
const IPC = createIpc(parseInt(PORT, 10));
|
||||||
|
process.on('uncaughtException', (err)=>{
|
||||||
|
IPC.sendError(err);
|
||||||
|
});
|
||||||
|
process.on('unhandledRejection', (reason)=>{
|
||||||
|
IPC.sendError(reason instanceof Error ? reason : new Error(String(reason)));
|
||||||
|
});
|
||||||
|
const improveConsole = (name, stream, addStack)=>{
|
||||||
|
// @ts-ignore
|
||||||
|
const original = console[name];
|
||||||
|
// @ts-ignore
|
||||||
|
const stdio = process[stream];
|
||||||
|
// @ts-ignore
|
||||||
|
console[name] = (...args)=>{
|
||||||
|
stdio.write(`TURBOPACK_OUTPUT_B\n`);
|
||||||
|
original(...args);
|
||||||
|
if (addStack) {
|
||||||
|
const stack = new Error().stack?.replace(/^.+\n.+\n/, '') + '\n';
|
||||||
|
stdio.write('TURBOPACK_OUTPUT_S\n');
|
||||||
|
stdio.write(stack);
|
||||||
|
}
|
||||||
|
stdio.write('TURBOPACK_OUTPUT_E\n');
|
||||||
|
};
|
||||||
|
};
|
||||||
|
improveConsole('error', 'stderr', true);
|
||||||
|
improveConsole('warn', 'stderr', true);
|
||||||
|
improveConsole('count', 'stdout', true);
|
||||||
|
improveConsole('trace', 'stderr', false);
|
||||||
|
improveConsole('log', 'stdout', true);
|
||||||
|
improveConsole('group', 'stdout', true);
|
||||||
|
improveConsole('groupCollapsed', 'stdout', true);
|
||||||
|
improveConsole('table', 'stdout', true);
|
||||||
|
improveConsole('debug', 'stdout', true);
|
||||||
|
improveConsole('info', 'stdout', true);
|
||||||
|
improveConsole('dir', 'stdout', true);
|
||||||
|
improveConsole('dirxml', 'stdout', true);
|
||||||
|
improveConsole('timeEnd', 'stdout', true);
|
||||||
|
improveConsole('timeLog', 'stdout', true);
|
||||||
|
improveConsole('timeStamp', 'stdout', true);
|
||||||
|
improveConsole('assert', 'stderr', true);
|
||||||
|
/**
|
||||||
|
* Utility function to ensure all variants of an enum are handled.
|
||||||
|
*/ function invariant(never, computeMessage) {
|
||||||
|
throw new Error(`Invariant: ${computeMessage(never)}`);
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
"[turbopack-node]/child_process/evaluate.ts [postcss] (ecmascript)", ((__turbopack_context__) => {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
__turbopack_context__.s([
|
||||||
|
"run",
|
||||||
|
()=>run
|
||||||
|
]);
|
||||||
|
var __TURBOPACK__imported__module__$5b$turbopack$2d$node$5d2f$child_process$2f$index$2e$ts__$5b$postcss$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[turbopack-node]/child_process/index.ts [postcss] (ecmascript)");
|
||||||
|
;
|
||||||
|
const ipc = __TURBOPACK__imported__module__$5b$turbopack$2d$node$5d2f$child_process$2f$index$2e$ts__$5b$postcss$5d$__$28$ecmascript$29$__["IPC"];
|
||||||
|
const queue = [];
|
||||||
|
const run = async (moduleFactory)=>{
|
||||||
|
let nextId = 1;
|
||||||
|
const requests = new Map();
|
||||||
|
const internalIpc = {
|
||||||
|
sendInfo: (message)=>ipc.send({
|
||||||
|
type: 'info',
|
||||||
|
data: message
|
||||||
|
}),
|
||||||
|
sendRequest: (message)=>{
|
||||||
|
const id = nextId++;
|
||||||
|
let resolve, reject;
|
||||||
|
const promise = new Promise((res, rej)=>{
|
||||||
|
resolve = res;
|
||||||
|
reject = rej;
|
||||||
|
});
|
||||||
|
requests.set(id, {
|
||||||
|
resolve,
|
||||||
|
reject
|
||||||
|
});
|
||||||
|
return ipc.send({
|
||||||
|
type: 'request',
|
||||||
|
id,
|
||||||
|
data: message
|
||||||
|
}).then(()=>promise);
|
||||||
|
},
|
||||||
|
sendError: (error)=>{
|
||||||
|
return ipc.sendError(error);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
// Initialize module and send ready message
|
||||||
|
let getValue;
|
||||||
|
try {
|
||||||
|
const module = await moduleFactory();
|
||||||
|
if (typeof module.init === 'function') {
|
||||||
|
await module.init();
|
||||||
|
}
|
||||||
|
getValue = module.default;
|
||||||
|
await ipc.sendReady();
|
||||||
|
} catch (err) {
|
||||||
|
await ipc.sendReady();
|
||||||
|
await ipc.sendError(err);
|
||||||
|
}
|
||||||
|
// Queue handling
|
||||||
|
let isRunning = false;
|
||||||
|
const run = async ()=>{
|
||||||
|
while(queue.length > 0){
|
||||||
|
const args = queue.shift();
|
||||||
|
try {
|
||||||
|
const value = await getValue(internalIpc, ...args);
|
||||||
|
await ipc.send({
|
||||||
|
type: 'end',
|
||||||
|
data: value === undefined ? undefined : JSON.stringify(value, null, 2),
|
||||||
|
duration: 0
|
||||||
|
});
|
||||||
|
} catch (e) {
|
||||||
|
await ipc.sendError(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
isRunning = false;
|
||||||
|
};
|
||||||
|
// Communication handling
|
||||||
|
while(true){
|
||||||
|
const msg = await ipc.recv();
|
||||||
|
switch(msg.type){
|
||||||
|
case 'evaluate':
|
||||||
|
{
|
||||||
|
queue.push(msg.args);
|
||||||
|
if (!isRunning) {
|
||||||
|
isRunning = true;
|
||||||
|
run();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 'result':
|
||||||
|
{
|
||||||
|
const request = requests.get(msg.id);
|
||||||
|
if (request) {
|
||||||
|
requests.delete(msg.id);
|
||||||
|
if (msg.error) {
|
||||||
|
request.reject(new Error(msg.error));
|
||||||
|
} else {
|
||||||
|
request.resolve(msg.data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
console.error('unexpected message type', msg.type);
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}),
|
||||||
|
"[turbopack-node]/child_process/evaluate.ts/evaluate.js { INNER => \"[turbopack-node]/transforms/postcss.ts { CONFIG => \\\"[project]/postcss.config.mjs [postcss] (ecmascript)\\\" } [postcss] (ecmascript)\", RUNTIME => \"[turbopack-node]/child_process/evaluate.ts [postcss] (ecmascript)\" } [postcss] (ecmascript)", ((__turbopack_context__) => {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
__turbopack_context__.s([]);
|
||||||
|
var __TURBOPACK__imported__module__$5b$turbopack$2d$node$5d2f$child_process$2f$evaluate$2e$ts__$5b$postcss$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[turbopack-node]/child_process/evaluate.ts [postcss] (ecmascript)");
|
||||||
|
;
|
||||||
|
(0, __TURBOPACK__imported__module__$5b$turbopack$2d$node$5d2f$child_process$2f$evaluate$2e$ts__$5b$postcss$5d$__$28$ecmascript$29$__["run"])(()=>__turbopack_context__.A('[turbopack-node]/transforms/postcss.ts { CONFIG => "[project]/postcss.config.mjs [postcss] (ecmascript)" } [postcss] (ecmascript, async loader)'));
|
||||||
|
}),
|
||||||
|
];
|
||||||
|
|
||||||
|
//# sourceMappingURL=%5Broot-of-the-server%5D__0ubbtyl._.js.map
|
||||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,13 @@
|
|||||||
|
module.exports = [
|
||||||
|
"[turbopack-node]/transforms/postcss.ts { CONFIG => \"[project]/postcss.config.mjs [postcss] (ecmascript)\" } [postcss] (ecmascript, async loader)", ((__turbopack_context__) => {
|
||||||
|
|
||||||
|
__turbopack_context__.v((parentImport) => {
|
||||||
|
return Promise.all([
|
||||||
|
"chunks/node_modules_13sb.px._.js",
|
||||||
|
"chunks/[root-of-the-server]__0d-m0h0._.js"
|
||||||
|
].map((chunk) => __turbopack_context__.l(chunk))).then(() => {
|
||||||
|
return parentImport("[turbopack-node]/transforms/postcss.ts { CONFIG => \"[project]/postcss.config.mjs [postcss] (ecmascript)\" } [postcss] (ecmascript)");
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}),
|
||||||
|
];
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"version": 3,
|
||||||
|
"sources": [],
|
||||||
|
"sections": []
|
||||||
|
}
|
||||||
890
build_temp/.next/build/chunks/[turbopack]_runtime.js
Normal file
890
build_temp/.next/build/chunks/[turbopack]_runtime.js
Normal file
@@ -0,0 +1,890 @@
|
|||||||
|
const RUNTIME_PUBLIC_PATH = "chunks/[turbopack]_runtime.js";
|
||||||
|
const RELATIVE_ROOT_PATH = "..";
|
||||||
|
const ASSET_PREFIX = "/";
|
||||||
|
const WORKER_FORWARDED_GLOBALS = [];
|
||||||
|
/**
|
||||||
|
* This file contains runtime types and functions that are shared between all
|
||||||
|
* TurboPack ECMAScript runtimes.
|
||||||
|
*
|
||||||
|
* It will be prepended to the runtime code of each runtime.
|
||||||
|
*/ /* eslint-disable @typescript-eslint/no-unused-vars */ /// <reference path="./runtime-types.d.ts" />
|
||||||
|
/**
|
||||||
|
* Describes why a module was instantiated.
|
||||||
|
* Shared between browser and Node.js runtimes.
|
||||||
|
*/ var SourceType = /*#__PURE__*/ function(SourceType) {
|
||||||
|
/**
|
||||||
|
* The module was instantiated because it was included in an evaluated chunk's
|
||||||
|
* runtime.
|
||||||
|
* SourceData is a ChunkPath.
|
||||||
|
*/ SourceType[SourceType["Runtime"] = 0] = "Runtime";
|
||||||
|
/**
|
||||||
|
* The module was instantiated because a parent module imported it.
|
||||||
|
* SourceData is a ModuleId.
|
||||||
|
*/ SourceType[SourceType["Parent"] = 1] = "Parent";
|
||||||
|
/**
|
||||||
|
* The module was instantiated because it was included in a chunk's hot module
|
||||||
|
* update.
|
||||||
|
* SourceData is an array of ModuleIds or undefined.
|
||||||
|
*/ SourceType[SourceType["Update"] = 2] = "Update";
|
||||||
|
return SourceType;
|
||||||
|
}(SourceType || {});
|
||||||
|
/**
|
||||||
|
* Flag indicating which module object type to create when a module is merged. Set to `true`
|
||||||
|
* by each runtime that uses ModuleWithDirection (browser dev-base.ts, nodejs dev-base.ts,
|
||||||
|
* nodejs build-base.ts). Browser production (build-base.ts) leaves it as `false` since it
|
||||||
|
* uses plain Module objects.
|
||||||
|
*/ let createModuleWithDirectionFlag = false;
|
||||||
|
const REEXPORTED_OBJECTS = new WeakMap();
|
||||||
|
/**
|
||||||
|
* Constructs the `__turbopack_context__` object for a module.
|
||||||
|
*/ function Context(module, exports) {
|
||||||
|
this.m = module;
|
||||||
|
// We need to store this here instead of accessing it from the module object to:
|
||||||
|
// 1. Make it available to factories directly, since we rewrite `this` to
|
||||||
|
// `__turbopack_context__.e` in CJS modules.
|
||||||
|
// 2. Support async modules which rewrite `module.exports` to a promise, so we
|
||||||
|
// can still access the original exports object from functions like
|
||||||
|
// `esmExport`
|
||||||
|
// Ideally we could find a new approach for async modules and drop this property altogether.
|
||||||
|
this.e = exports;
|
||||||
|
}
|
||||||
|
const contextPrototype = Context.prototype;
|
||||||
|
const hasOwnProperty = Object.prototype.hasOwnProperty;
|
||||||
|
const toStringTag = typeof Symbol !== 'undefined' && Symbol.toStringTag;
|
||||||
|
function defineProp(obj, name, options) {
|
||||||
|
if (!hasOwnProperty.call(obj, name)) Object.defineProperty(obj, name, options);
|
||||||
|
}
|
||||||
|
function getOverwrittenModule(moduleCache, id) {
|
||||||
|
let module = moduleCache[id];
|
||||||
|
if (!module) {
|
||||||
|
if (createModuleWithDirectionFlag) {
|
||||||
|
// set in development modes for hmr support
|
||||||
|
module = createModuleWithDirection(id);
|
||||||
|
} else {
|
||||||
|
module = createModuleObject(id);
|
||||||
|
}
|
||||||
|
moduleCache[id] = module;
|
||||||
|
}
|
||||||
|
return module;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Creates the module object. Only done here to ensure all module objects have the same shape.
|
||||||
|
*/ function createModuleObject(id) {
|
||||||
|
return {
|
||||||
|
exports: {},
|
||||||
|
error: undefined,
|
||||||
|
id,
|
||||||
|
namespaceObject: undefined
|
||||||
|
};
|
||||||
|
}
|
||||||
|
function createModuleWithDirection(id) {
|
||||||
|
return {
|
||||||
|
exports: {},
|
||||||
|
error: undefined,
|
||||||
|
id,
|
||||||
|
namespaceObject: undefined,
|
||||||
|
parents: [],
|
||||||
|
children: []
|
||||||
|
};
|
||||||
|
}
|
||||||
|
const BindingTag_Value = 0;
|
||||||
|
/**
|
||||||
|
* Adds the getters to the exports object.
|
||||||
|
*/ function esm(exports, bindings) {
|
||||||
|
defineProp(exports, '__esModule', {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
if (toStringTag) defineProp(exports, toStringTag, {
|
||||||
|
value: 'Module'
|
||||||
|
});
|
||||||
|
let i = 0;
|
||||||
|
while(i < bindings.length){
|
||||||
|
const propName = bindings[i++];
|
||||||
|
const tagOrFunction = bindings[i++];
|
||||||
|
if (typeof tagOrFunction === 'number') {
|
||||||
|
if (tagOrFunction === BindingTag_Value) {
|
||||||
|
defineProp(exports, propName, {
|
||||||
|
value: bindings[i++],
|
||||||
|
enumerable: true,
|
||||||
|
writable: false
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
throw new Error(`unexpected tag: ${tagOrFunction}`);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
const getterFn = tagOrFunction;
|
||||||
|
if (typeof bindings[i] === 'function') {
|
||||||
|
const setterFn = bindings[i++];
|
||||||
|
defineProp(exports, propName, {
|
||||||
|
get: getterFn,
|
||||||
|
set: setterFn,
|
||||||
|
enumerable: true
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
defineProp(exports, propName, {
|
||||||
|
get: getterFn,
|
||||||
|
enumerable: true
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Object.seal(exports);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Makes the module an ESM with exports
|
||||||
|
*/ function esmExport(bindings, id) {
|
||||||
|
let module;
|
||||||
|
let exports;
|
||||||
|
if (id != null) {
|
||||||
|
module = getOverwrittenModule(this.c, id);
|
||||||
|
exports = module.exports;
|
||||||
|
} else {
|
||||||
|
module = this.m;
|
||||||
|
exports = this.e;
|
||||||
|
}
|
||||||
|
module.namespaceObject = exports;
|
||||||
|
esm(exports, bindings);
|
||||||
|
}
|
||||||
|
contextPrototype.s = esmExport;
|
||||||
|
function ensureDynamicExports(module, exports) {
|
||||||
|
let reexportedObjects = REEXPORTED_OBJECTS.get(module);
|
||||||
|
if (!reexportedObjects) {
|
||||||
|
REEXPORTED_OBJECTS.set(module, reexportedObjects = []);
|
||||||
|
module.exports = module.namespaceObject = new Proxy(exports, {
|
||||||
|
get (target, prop) {
|
||||||
|
if (hasOwnProperty.call(target, prop) || prop === 'default' || prop === '__esModule') {
|
||||||
|
return Reflect.get(target, prop);
|
||||||
|
}
|
||||||
|
for (const obj of reexportedObjects){
|
||||||
|
const value = Reflect.get(obj, prop);
|
||||||
|
if (value !== undefined) return value;
|
||||||
|
}
|
||||||
|
return undefined;
|
||||||
|
},
|
||||||
|
ownKeys (target) {
|
||||||
|
const keys = Reflect.ownKeys(target);
|
||||||
|
for (const obj of reexportedObjects){
|
||||||
|
for (const key of Reflect.ownKeys(obj)){
|
||||||
|
if (key !== 'default' && !keys.includes(key)) keys.push(key);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return keys;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return reexportedObjects;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Dynamically exports properties from an object
|
||||||
|
*/ function dynamicExport(object, id) {
|
||||||
|
let module;
|
||||||
|
let exports;
|
||||||
|
if (id != null) {
|
||||||
|
module = getOverwrittenModule(this.c, id);
|
||||||
|
exports = module.exports;
|
||||||
|
} else {
|
||||||
|
module = this.m;
|
||||||
|
exports = this.e;
|
||||||
|
}
|
||||||
|
const reexportedObjects = ensureDynamicExports(module, exports);
|
||||||
|
if (typeof object === 'object' && object !== null) {
|
||||||
|
reexportedObjects.push(object);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
contextPrototype.j = dynamicExport;
|
||||||
|
function exportValue(value, id) {
|
||||||
|
let module;
|
||||||
|
if (id != null) {
|
||||||
|
module = getOverwrittenModule(this.c, id);
|
||||||
|
} else {
|
||||||
|
module = this.m;
|
||||||
|
}
|
||||||
|
module.exports = value;
|
||||||
|
}
|
||||||
|
contextPrototype.v = exportValue;
|
||||||
|
function exportNamespace(namespace, id) {
|
||||||
|
let module;
|
||||||
|
if (id != null) {
|
||||||
|
module = getOverwrittenModule(this.c, id);
|
||||||
|
} else {
|
||||||
|
module = this.m;
|
||||||
|
}
|
||||||
|
module.exports = module.namespaceObject = namespace;
|
||||||
|
}
|
||||||
|
contextPrototype.n = exportNamespace;
|
||||||
|
function createGetter(obj, key) {
|
||||||
|
return ()=>obj[key];
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @returns prototype of the object
|
||||||
|
*/ const getProto = Object.getPrototypeOf ? (obj)=>Object.getPrototypeOf(obj) : (obj)=>obj.__proto__;
|
||||||
|
/** Prototypes that are not expanded for exports */ const LEAF_PROTOTYPES = [
|
||||||
|
null,
|
||||||
|
getProto({}),
|
||||||
|
getProto([]),
|
||||||
|
getProto(getProto)
|
||||||
|
];
|
||||||
|
/**
|
||||||
|
* @param raw
|
||||||
|
* @param ns
|
||||||
|
* @param allowExportDefault
|
||||||
|
* * `false`: will have the raw module as default export
|
||||||
|
* * `true`: will have the default property as default export
|
||||||
|
*/ function interopEsm(raw, ns, allowExportDefault) {
|
||||||
|
const bindings = [];
|
||||||
|
let defaultLocation = -1;
|
||||||
|
for(let current = raw; (typeof current === 'object' || typeof current === 'function') && !LEAF_PROTOTYPES.includes(current); current = getProto(current)){
|
||||||
|
for (const key of Object.getOwnPropertyNames(current)){
|
||||||
|
bindings.push(key, createGetter(raw, key));
|
||||||
|
if (defaultLocation === -1 && key === 'default') {
|
||||||
|
defaultLocation = bindings.length - 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// this is not really correct
|
||||||
|
// we should set the `default` getter if the imported module is a `.cjs file`
|
||||||
|
if (!(allowExportDefault && defaultLocation >= 0)) {
|
||||||
|
// Replace the binding with one for the namespace itself in order to preserve iteration order.
|
||||||
|
if (defaultLocation >= 0) {
|
||||||
|
// Replace the getter with the value
|
||||||
|
bindings.splice(defaultLocation, 1, BindingTag_Value, raw);
|
||||||
|
} else {
|
||||||
|
bindings.push('default', BindingTag_Value, raw);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
esm(ns, bindings);
|
||||||
|
return ns;
|
||||||
|
}
|
||||||
|
function createNS(raw) {
|
||||||
|
if (typeof raw === 'function') {
|
||||||
|
return function(...args) {
|
||||||
|
return raw.apply(this, args);
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
return Object.create(null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function esmImport(id) {
|
||||||
|
const module = getOrInstantiateModuleFromParent(id, this.m);
|
||||||
|
// any ES module has to have `module.namespaceObject` defined.
|
||||||
|
if (module.namespaceObject) return module.namespaceObject;
|
||||||
|
// only ESM can be an async module, so we don't need to worry about exports being a promise here.
|
||||||
|
const raw = module.exports;
|
||||||
|
return module.namespaceObject = interopEsm(raw, createNS(raw), raw && raw.__esModule);
|
||||||
|
}
|
||||||
|
contextPrototype.i = esmImport;
|
||||||
|
function asyncLoader(moduleId) {
|
||||||
|
const loader = this.r(moduleId);
|
||||||
|
return loader(esmImport.bind(this));
|
||||||
|
}
|
||||||
|
contextPrototype.A = asyncLoader;
|
||||||
|
// Add a simple runtime require so that environments without one can still pass
|
||||||
|
// `typeof require` CommonJS checks so that exports are correctly registered.
|
||||||
|
const runtimeRequire = // @ts-ignore
|
||||||
|
typeof require === 'function' ? require : function require1() {
|
||||||
|
throw new Error('Unexpected use of runtime require');
|
||||||
|
};
|
||||||
|
contextPrototype.t = runtimeRequire;
|
||||||
|
function commonJsRequire(id) {
|
||||||
|
return getOrInstantiateModuleFromParent(id, this.m).exports;
|
||||||
|
}
|
||||||
|
contextPrototype.r = commonJsRequire;
|
||||||
|
/**
|
||||||
|
* Remove fragments and query parameters since they are never part of the context map keys
|
||||||
|
*
|
||||||
|
* This matches how we parse patterns at resolving time. Arguably we should only do this for
|
||||||
|
* strings passed to `import` but the resolve does it for `import` and `require` and so we do
|
||||||
|
* here as well.
|
||||||
|
*/ function parseRequest(request) {
|
||||||
|
// Per the URI spec fragments can contain `?` characters, so we should trim it off first
|
||||||
|
// https://datatracker.ietf.org/doc/html/rfc3986#section-3.5
|
||||||
|
const hashIndex = request.indexOf('#');
|
||||||
|
if (hashIndex !== -1) {
|
||||||
|
request = request.substring(0, hashIndex);
|
||||||
|
}
|
||||||
|
const queryIndex = request.indexOf('?');
|
||||||
|
if (queryIndex !== -1) {
|
||||||
|
request = request.substring(0, queryIndex);
|
||||||
|
}
|
||||||
|
return request;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* `require.context` and require/import expression runtime.
|
||||||
|
*/ function moduleContext(map) {
|
||||||
|
function moduleContext(id) {
|
||||||
|
id = parseRequest(id);
|
||||||
|
if (hasOwnProperty.call(map, id)) {
|
||||||
|
return map[id].module();
|
||||||
|
}
|
||||||
|
const e = new Error(`Cannot find module '${id}'`);
|
||||||
|
e.code = 'MODULE_NOT_FOUND';
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
moduleContext.keys = ()=>{
|
||||||
|
return Object.keys(map);
|
||||||
|
};
|
||||||
|
moduleContext.resolve = (id)=>{
|
||||||
|
id = parseRequest(id);
|
||||||
|
if (hasOwnProperty.call(map, id)) {
|
||||||
|
return map[id].id();
|
||||||
|
}
|
||||||
|
const e = new Error(`Cannot find module '${id}'`);
|
||||||
|
e.code = 'MODULE_NOT_FOUND';
|
||||||
|
throw e;
|
||||||
|
};
|
||||||
|
moduleContext.import = async (id)=>{
|
||||||
|
return await moduleContext(id);
|
||||||
|
};
|
||||||
|
return moduleContext;
|
||||||
|
}
|
||||||
|
contextPrototype.f = moduleContext;
|
||||||
|
/**
|
||||||
|
* Returns the path of a chunk defined by its data.
|
||||||
|
*/ function getChunkPath(chunkData) {
|
||||||
|
return typeof chunkData === 'string' ? chunkData : chunkData.path;
|
||||||
|
}
|
||||||
|
function isPromise(maybePromise) {
|
||||||
|
return maybePromise != null && typeof maybePromise === 'object' && 'then' in maybePromise && typeof maybePromise.then === 'function';
|
||||||
|
}
|
||||||
|
function isAsyncModuleExt(obj) {
|
||||||
|
return turbopackQueues in obj;
|
||||||
|
}
|
||||||
|
function createPromise() {
|
||||||
|
let resolve;
|
||||||
|
let reject;
|
||||||
|
const promise = new Promise((res, rej)=>{
|
||||||
|
reject = rej;
|
||||||
|
resolve = res;
|
||||||
|
});
|
||||||
|
return {
|
||||||
|
promise,
|
||||||
|
resolve: resolve,
|
||||||
|
reject: reject
|
||||||
|
};
|
||||||
|
}
|
||||||
|
// Load the CompressedmoduleFactories of a chunk into the `moduleFactories` Map.
|
||||||
|
// The CompressedModuleFactories format is
|
||||||
|
// - 1 or more module ids
|
||||||
|
// - a module factory function
|
||||||
|
// So walking this is a little complex but the flat structure is also fast to
|
||||||
|
// traverse, we can use `typeof` operators to distinguish the two cases.
|
||||||
|
function installCompressedModuleFactories(chunkModules, offset, moduleFactories, newModuleId) {
|
||||||
|
let i = offset;
|
||||||
|
while(i < chunkModules.length){
|
||||||
|
let end = i + 1;
|
||||||
|
// Find our factory function
|
||||||
|
while(end < chunkModules.length && typeof chunkModules[end] !== 'function'){
|
||||||
|
end++;
|
||||||
|
}
|
||||||
|
if (end === chunkModules.length) {
|
||||||
|
throw new Error('malformed chunk format, expected a factory function');
|
||||||
|
}
|
||||||
|
// Install the factory for each module ID that doesn't already have one.
|
||||||
|
// When some IDs in this group already have a factory, reuse that existing
|
||||||
|
// group factory for the missing IDs to keep all IDs in the group consistent.
|
||||||
|
// Otherwise, install the factory from this chunk.
|
||||||
|
const moduleFactoryFn = chunkModules[end];
|
||||||
|
let existingGroupFactory = undefined;
|
||||||
|
for(let j = i; j < end; j++){
|
||||||
|
const id = chunkModules[j];
|
||||||
|
const existingFactory = moduleFactories.get(id);
|
||||||
|
if (existingFactory) {
|
||||||
|
existingGroupFactory = existingFactory;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const factoryToInstall = existingGroupFactory ?? moduleFactoryFn;
|
||||||
|
let didInstallFactory = false;
|
||||||
|
for(let j = i; j < end; j++){
|
||||||
|
const id = chunkModules[j];
|
||||||
|
if (!moduleFactories.has(id)) {
|
||||||
|
if (!didInstallFactory) {
|
||||||
|
if (factoryToInstall === moduleFactoryFn) {
|
||||||
|
applyModuleFactoryName(moduleFactoryFn);
|
||||||
|
}
|
||||||
|
didInstallFactory = true;
|
||||||
|
}
|
||||||
|
moduleFactories.set(id, factoryToInstall);
|
||||||
|
newModuleId?.(id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
i = end + 1; // end is pointing at the last factory advance to the next id or the end of the array.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// everything below is adapted from webpack
|
||||||
|
// https://github.com/webpack/webpack/blob/6be4065ade1e252c1d8dcba4af0f43e32af1bdc1/lib/runtime/AsyncModuleRuntimeModule.js#L13
|
||||||
|
const turbopackQueues = Symbol('turbopack queues');
|
||||||
|
const turbopackExports = Symbol('turbopack exports');
|
||||||
|
const turbopackError = Symbol('turbopack error');
|
||||||
|
function resolveQueue(queue) {
|
||||||
|
if (queue && queue.status !== 1) {
|
||||||
|
queue.status = 1;
|
||||||
|
queue.forEach((fn)=>fn.queueCount--);
|
||||||
|
queue.forEach((fn)=>fn.queueCount-- ? fn.queueCount++ : fn());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function wrapDeps(deps) {
|
||||||
|
return deps.map((dep)=>{
|
||||||
|
if (dep !== null && typeof dep === 'object') {
|
||||||
|
if (isAsyncModuleExt(dep)) return dep;
|
||||||
|
if (isPromise(dep)) {
|
||||||
|
const queue = Object.assign([], {
|
||||||
|
status: 0
|
||||||
|
});
|
||||||
|
const obj = {
|
||||||
|
[turbopackExports]: {},
|
||||||
|
[turbopackQueues]: (fn)=>fn(queue)
|
||||||
|
};
|
||||||
|
dep.then((res)=>{
|
||||||
|
obj[turbopackExports] = res;
|
||||||
|
resolveQueue(queue);
|
||||||
|
}, (err)=>{
|
||||||
|
obj[turbopackError] = err;
|
||||||
|
resolveQueue(queue);
|
||||||
|
});
|
||||||
|
return obj;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
[turbopackExports]: dep,
|
||||||
|
[turbopackQueues]: ()=>{}
|
||||||
|
};
|
||||||
|
});
|
||||||
|
}
|
||||||
|
function asyncModule(body, hasAwait) {
|
||||||
|
const module = this.m;
|
||||||
|
const queue = hasAwait ? Object.assign([], {
|
||||||
|
status: -1
|
||||||
|
}) : undefined;
|
||||||
|
const depQueues = new Set();
|
||||||
|
const { resolve, reject, promise: rawPromise } = createPromise();
|
||||||
|
const promise = Object.assign(rawPromise, {
|
||||||
|
[turbopackExports]: module.exports,
|
||||||
|
[turbopackQueues]: (fn)=>{
|
||||||
|
queue && fn(queue);
|
||||||
|
depQueues.forEach(fn);
|
||||||
|
promise['catch'](()=>{});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
const attributes = {
|
||||||
|
get () {
|
||||||
|
return promise;
|
||||||
|
},
|
||||||
|
set (v) {
|
||||||
|
// Calling `esmExport` leads to this.
|
||||||
|
if (v !== promise) {
|
||||||
|
promise[turbopackExports] = v;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
Object.defineProperty(module, 'exports', attributes);
|
||||||
|
Object.defineProperty(module, 'namespaceObject', attributes);
|
||||||
|
function handleAsyncDependencies(deps) {
|
||||||
|
const currentDeps = wrapDeps(deps);
|
||||||
|
const getResult = ()=>currentDeps.map((d)=>{
|
||||||
|
if (d[turbopackError]) throw d[turbopackError];
|
||||||
|
return d[turbopackExports];
|
||||||
|
});
|
||||||
|
const { promise, resolve } = createPromise();
|
||||||
|
const fn = Object.assign(()=>resolve(getResult), {
|
||||||
|
queueCount: 0
|
||||||
|
});
|
||||||
|
function fnQueue(q) {
|
||||||
|
if (q !== queue && !depQueues.has(q)) {
|
||||||
|
depQueues.add(q);
|
||||||
|
if (q && q.status === 0) {
|
||||||
|
fn.queueCount++;
|
||||||
|
q.push(fn);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
currentDeps.map((dep)=>dep[turbopackQueues](fnQueue));
|
||||||
|
return fn.queueCount ? promise : getResult();
|
||||||
|
}
|
||||||
|
function asyncResult(err) {
|
||||||
|
if (err) {
|
||||||
|
reject(promise[turbopackError] = err);
|
||||||
|
} else {
|
||||||
|
resolve(promise[turbopackExports]);
|
||||||
|
}
|
||||||
|
resolveQueue(queue);
|
||||||
|
}
|
||||||
|
body(handleAsyncDependencies, asyncResult);
|
||||||
|
if (queue && queue.status === -1) {
|
||||||
|
queue.status = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
contextPrototype.a = asyncModule;
|
||||||
|
/**
|
||||||
|
* A pseudo "fake" URL object to resolve to its relative path.
|
||||||
|
*
|
||||||
|
* When UrlRewriteBehavior is set to relative, calls to the `new URL()` will construct url without base using this
|
||||||
|
* runtime function to generate context-agnostic urls between different rendering context, i.e ssr / client to avoid
|
||||||
|
* hydration mismatch.
|
||||||
|
*
|
||||||
|
* This is based on webpack's existing implementation:
|
||||||
|
* https://github.com/webpack/webpack/blob/87660921808566ef3b8796f8df61bd79fc026108/lib/runtime/RelativeUrlRuntimeModule.js
|
||||||
|
*/ const relativeURL = function relativeURL(inputUrl) {
|
||||||
|
const realUrl = new URL(inputUrl, 'x:/');
|
||||||
|
const values = {};
|
||||||
|
for(const key in realUrl)values[key] = realUrl[key];
|
||||||
|
values.href = inputUrl;
|
||||||
|
values.pathname = inputUrl.replace(/[?#].*/, '');
|
||||||
|
values.origin = values.protocol = '';
|
||||||
|
values.toString = values.toJSON = (..._args)=>inputUrl;
|
||||||
|
for(const key in values)Object.defineProperty(this, key, {
|
||||||
|
enumerable: true,
|
||||||
|
configurable: true,
|
||||||
|
value: values[key]
|
||||||
|
});
|
||||||
|
};
|
||||||
|
relativeURL.prototype = URL.prototype;
|
||||||
|
contextPrototype.U = relativeURL;
|
||||||
|
/**
|
||||||
|
* Utility function to ensure all variants of an enum are handled.
|
||||||
|
*/ function invariant(never, computeMessage) {
|
||||||
|
throw new Error(`Invariant: ${computeMessage(never)}`);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Constructs an error message for when a module factory is not available.
|
||||||
|
*/ function factoryNotAvailableMessage(moduleId, sourceType, sourceData) {
|
||||||
|
let instantiationReason;
|
||||||
|
switch(sourceType){
|
||||||
|
case 0:
|
||||||
|
instantiationReason = `as a runtime entry of chunk ${sourceData}`;
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
instantiationReason = `because it was required from module ${sourceData}`;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
instantiationReason = 'because of an HMR update';
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
invariant(sourceType, (sourceType)=>`Unknown source type: ${sourceType}`);
|
||||||
|
}
|
||||||
|
return `Module ${moduleId} was instantiated ${instantiationReason}, but the module factory is not available.`;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* A stub function to make `require` available but non-functional in ESM.
|
||||||
|
*/ function requireStub(_moduleId) {
|
||||||
|
throw new Error('dynamic usage of require is not supported');
|
||||||
|
}
|
||||||
|
contextPrototype.z = requireStub;
|
||||||
|
// Make `globalThis` available to the module in a way that cannot be shadowed by a local variable.
|
||||||
|
contextPrototype.g = globalThis;
|
||||||
|
function applyModuleFactoryName(factory) {
|
||||||
|
// Give the module factory a nice name to improve stack traces.
|
||||||
|
Object.defineProperty(factory, 'name', {
|
||||||
|
value: 'module evaluation'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
/// <reference path="../shared/runtime/runtime-utils.ts" />
|
||||||
|
/// A 'base' utilities to support runtime can have externals.
|
||||||
|
/// Currently this is for node.js / edge runtime both.
|
||||||
|
/// If a fn requires node.js specific behavior, it should be placed in `node-external-utils` instead.
|
||||||
|
async function externalImport(id) {
|
||||||
|
let raw;
|
||||||
|
try {
|
||||||
|
raw = await import(id);
|
||||||
|
} catch (err) {
|
||||||
|
// TODO(alexkirsz) This can happen when a client-side module tries to load
|
||||||
|
// an external module we don't provide a shim for (e.g. querystring, url).
|
||||||
|
// For now, we fail semi-silently, but in the future this should be a
|
||||||
|
// compilation error.
|
||||||
|
throw new Error(`Failed to load external module ${id}: ${err}`);
|
||||||
|
}
|
||||||
|
if (raw && raw.__esModule && raw.default && 'default' in raw.default) {
|
||||||
|
return interopEsm(raw.default, createNS(raw), true);
|
||||||
|
}
|
||||||
|
return raw;
|
||||||
|
}
|
||||||
|
contextPrototype.y = externalImport;
|
||||||
|
function externalRequire(id, thunk, esm = false) {
|
||||||
|
let raw;
|
||||||
|
try {
|
||||||
|
raw = thunk();
|
||||||
|
} catch (err) {
|
||||||
|
// TODO(alexkirsz) This can happen when a client-side module tries to load
|
||||||
|
// an external module we don't provide a shim for (e.g. querystring, url).
|
||||||
|
// For now, we fail semi-silently, but in the future this should be a
|
||||||
|
// compilation error.
|
||||||
|
throw new Error(`Failed to load external module ${id}: ${err}`);
|
||||||
|
}
|
||||||
|
if (!esm || raw.__esModule) {
|
||||||
|
return raw;
|
||||||
|
}
|
||||||
|
return interopEsm(raw, createNS(raw), true);
|
||||||
|
}
|
||||||
|
externalRequire.resolve = (id, options)=>{
|
||||||
|
return require.resolve(id, options);
|
||||||
|
};
|
||||||
|
contextPrototype.x = externalRequire;
|
||||||
|
/* eslint-disable @typescript-eslint/no-unused-vars */ const path = require('path');
|
||||||
|
const relativePathToRuntimeRoot = path.relative(RUNTIME_PUBLIC_PATH, '.');
|
||||||
|
// Compute the relative path to the `distDir`.
|
||||||
|
const relativePathToDistRoot = path.join(relativePathToRuntimeRoot, RELATIVE_ROOT_PATH);
|
||||||
|
const RUNTIME_ROOT = path.resolve(__filename, relativePathToRuntimeRoot);
|
||||||
|
// Compute the absolute path to the root, by stripping distDir from the absolute path to this file.
|
||||||
|
const ABSOLUTE_ROOT = path.resolve(__filename, relativePathToDistRoot);
|
||||||
|
/**
|
||||||
|
* Returns an absolute path to the given module path.
|
||||||
|
* Module path should be relative, either path to a file or a directory.
|
||||||
|
*
|
||||||
|
* This fn allows to calculate an absolute path for some global static values, such as
|
||||||
|
* `__dirname` or `import.meta.url` that Turbopack will not embeds in compile time.
|
||||||
|
* See ImportMetaBinding::code_generation for the usage.
|
||||||
|
*/ function resolveAbsolutePath(modulePath) {
|
||||||
|
if (modulePath) {
|
||||||
|
return path.join(ABSOLUTE_ROOT, modulePath);
|
||||||
|
}
|
||||||
|
return ABSOLUTE_ROOT;
|
||||||
|
}
|
||||||
|
Context.prototype.P = resolveAbsolutePath;
|
||||||
|
/* eslint-disable @typescript-eslint/no-unused-vars */ /// <reference path="../shared/runtime/runtime-utils.ts" />
|
||||||
|
function readWebAssemblyAsResponse(path) {
|
||||||
|
const { createReadStream } = require('fs');
|
||||||
|
const { Readable } = require('stream');
|
||||||
|
const stream = createReadStream(path);
|
||||||
|
// @ts-ignore unfortunately there's a slight type mismatch with the stream.
|
||||||
|
return new Response(Readable.toWeb(stream), {
|
||||||
|
headers: {
|
||||||
|
'content-type': 'application/wasm'
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
async function compileWebAssemblyFromPath(path) {
|
||||||
|
const response = readWebAssemblyAsResponse(path);
|
||||||
|
return await WebAssembly.compileStreaming(response);
|
||||||
|
}
|
||||||
|
async function instantiateWebAssemblyFromPath(path, importsObj) {
|
||||||
|
const response = readWebAssemblyAsResponse(path);
|
||||||
|
const { instance } = await WebAssembly.instantiateStreaming(response, importsObj);
|
||||||
|
return instance.exports;
|
||||||
|
}
|
||||||
|
/* eslint-disable @typescript-eslint/no-unused-vars */ /// <reference path="../../shared/runtime/runtime-utils.ts" />
|
||||||
|
/// <reference path="../../shared-node/base-externals-utils.ts" />
|
||||||
|
/// <reference path="../../shared-node/node-externals-utils.ts" />
|
||||||
|
/// <reference path="../../shared-node/node-wasm-utils.ts" />
|
||||||
|
/// <reference path="./nodejs-globals.d.ts" />
|
||||||
|
/**
|
||||||
|
* Base Node.js runtime shared between production and development.
|
||||||
|
* Contains chunk loading, module caching, and other non-HMR functionality.
|
||||||
|
*/ process.env.TURBOPACK = '1';
|
||||||
|
const url = require('url');
|
||||||
|
const moduleFactories = new Map();
|
||||||
|
const moduleCache = Object.create(null);
|
||||||
|
/**
|
||||||
|
* Returns an absolute path to the given module's id.
|
||||||
|
*/ function resolvePathFromModule(moduleId) {
|
||||||
|
const exported = this.r(moduleId);
|
||||||
|
const exportedPath = exported?.default ?? exported;
|
||||||
|
if (typeof exportedPath !== 'string') {
|
||||||
|
return exported;
|
||||||
|
}
|
||||||
|
const strippedAssetPrefix = exportedPath.slice(ASSET_PREFIX.length);
|
||||||
|
const resolved = path.resolve(RUNTIME_ROOT, strippedAssetPrefix);
|
||||||
|
return url.pathToFileURL(resolved).href;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Exports a URL value. No suffix is added in Node.js runtime.
|
||||||
|
*/ function exportUrl(urlValue, id) {
|
||||||
|
exportValue.call(this, urlValue, id);
|
||||||
|
}
|
||||||
|
function loadRuntimeChunk(sourcePath, chunkData) {
|
||||||
|
if (typeof chunkData === 'string') {
|
||||||
|
loadRuntimeChunkPath(sourcePath, chunkData);
|
||||||
|
} else {
|
||||||
|
loadRuntimeChunkPath(sourcePath, chunkData.path);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const loadedChunks = new Set();
|
||||||
|
const unsupportedLoadChunk = Promise.resolve(undefined);
|
||||||
|
const loadedChunk = Promise.resolve(undefined);
|
||||||
|
const chunkCache = new Map();
|
||||||
|
function clearChunkCache() {
|
||||||
|
chunkCache.clear();
|
||||||
|
loadedChunks.clear();
|
||||||
|
}
|
||||||
|
function loadRuntimeChunkPath(sourcePath, chunkPath) {
|
||||||
|
if (!isJs(chunkPath)) {
|
||||||
|
// We only support loading JS chunks in Node.js.
|
||||||
|
// This branch can be hit when trying to load a CSS chunk.
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (loadedChunks.has(chunkPath)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
const resolved = path.resolve(RUNTIME_ROOT, chunkPath);
|
||||||
|
const chunkModules = require(resolved);
|
||||||
|
installCompressedModuleFactories(chunkModules, 0, moduleFactories);
|
||||||
|
loadedChunks.add(chunkPath);
|
||||||
|
} catch (cause) {
|
||||||
|
let errorMessage = `Failed to load chunk ${chunkPath}`;
|
||||||
|
if (sourcePath) {
|
||||||
|
errorMessage += ` from runtime for chunk ${sourcePath}`;
|
||||||
|
}
|
||||||
|
const error = new Error(errorMessage, {
|
||||||
|
cause
|
||||||
|
});
|
||||||
|
error.name = 'ChunkLoadError';
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function loadChunkAsync(chunkData) {
|
||||||
|
const chunkPath = typeof chunkData === 'string' ? chunkData : chunkData.path;
|
||||||
|
if (!isJs(chunkPath)) {
|
||||||
|
// We only support loading JS chunks in Node.js.
|
||||||
|
// This branch can be hit when trying to load a CSS chunk.
|
||||||
|
return unsupportedLoadChunk;
|
||||||
|
}
|
||||||
|
let entry = chunkCache.get(chunkPath);
|
||||||
|
if (entry === undefined) {
|
||||||
|
try {
|
||||||
|
// resolve to an absolute path to simplify `require` handling
|
||||||
|
const resolved = path.resolve(RUNTIME_ROOT, chunkPath);
|
||||||
|
// TODO: consider switching to `import()` to enable concurrent chunk loading and async file io
|
||||||
|
// However this is incompatible with hot reloading (since `import` doesn't use the require cache)
|
||||||
|
const chunkModules = require(resolved);
|
||||||
|
installCompressedModuleFactories(chunkModules, 0, moduleFactories);
|
||||||
|
entry = loadedChunk;
|
||||||
|
} catch (cause) {
|
||||||
|
const errorMessage = `Failed to load chunk ${chunkPath} from module ${this.m.id}`;
|
||||||
|
const error = new Error(errorMessage, {
|
||||||
|
cause
|
||||||
|
});
|
||||||
|
error.name = 'ChunkLoadError';
|
||||||
|
// Cache the failure promise, future requests will also get this same rejection
|
||||||
|
entry = Promise.reject(error);
|
||||||
|
}
|
||||||
|
chunkCache.set(chunkPath, entry);
|
||||||
|
}
|
||||||
|
// TODO: Return an instrumented Promise that React can use instead of relying on referential equality.
|
||||||
|
return entry;
|
||||||
|
}
|
||||||
|
contextPrototype.l = loadChunkAsync;
|
||||||
|
function loadChunkAsyncByUrl(chunkUrl) {
|
||||||
|
const path1 = url.fileURLToPath(new URL(chunkUrl, RUNTIME_ROOT));
|
||||||
|
return loadChunkAsync.call(this, path1);
|
||||||
|
}
|
||||||
|
contextPrototype.L = loadChunkAsyncByUrl;
|
||||||
|
function loadWebAssembly(chunkPath, _edgeModule, imports) {
|
||||||
|
const resolved = path.resolve(RUNTIME_ROOT, chunkPath);
|
||||||
|
return instantiateWebAssemblyFromPath(resolved, imports);
|
||||||
|
}
|
||||||
|
contextPrototype.w = loadWebAssembly;
|
||||||
|
function loadWebAssemblyModule(chunkPath, _edgeModule) {
|
||||||
|
const resolved = path.resolve(RUNTIME_ROOT, chunkPath);
|
||||||
|
return compileWebAssemblyFromPath(resolved);
|
||||||
|
}
|
||||||
|
contextPrototype.u = loadWebAssemblyModule;
|
||||||
|
/**
|
||||||
|
* Creates a Node.js worker thread by instantiating the given WorkerConstructor
|
||||||
|
* with the appropriate path and options, including forwarded globals.
|
||||||
|
*
|
||||||
|
* @param WorkerConstructor The Worker constructor from worker_threads
|
||||||
|
* @param workerPath Path to the worker entry chunk
|
||||||
|
* @param workerOptions options to pass to the Worker constructor (optional)
|
||||||
|
*/ function createWorker(WorkerConstructor, workerPath, workerOptions) {
|
||||||
|
// Build the forwarded globals object
|
||||||
|
const forwardedGlobals = {};
|
||||||
|
for (const name of WORKER_FORWARDED_GLOBALS){
|
||||||
|
forwardedGlobals[name] = globalThis[name];
|
||||||
|
}
|
||||||
|
// Merge workerData with forwarded globals
|
||||||
|
const existingWorkerData = workerOptions?.workerData || {};
|
||||||
|
const options = {
|
||||||
|
...workerOptions,
|
||||||
|
workerData: {
|
||||||
|
...typeof existingWorkerData === 'object' ? existingWorkerData : {},
|
||||||
|
__turbopack_globals__: forwardedGlobals
|
||||||
|
}
|
||||||
|
};
|
||||||
|
return new WorkerConstructor(workerPath, options);
|
||||||
|
}
|
||||||
|
const regexJsUrl = /\.js(?:\?[^#]*)?(?:#.*)?$/;
|
||||||
|
/**
|
||||||
|
* Checks if a given path/URL ends with .js, optionally followed by ?query or #fragment.
|
||||||
|
*/ function isJs(chunkUrlOrPath) {
|
||||||
|
return regexJsUrl.test(chunkUrlOrPath);
|
||||||
|
}
|
||||||
|
/* eslint-disable @typescript-eslint/no-unused-vars */ /// <reference path="./runtime-base.ts" />
|
||||||
|
/**
|
||||||
|
* Production Node.js runtime.
|
||||||
|
* Uses ModuleWithDirection and simple module instantiation without HMR support.
|
||||||
|
*/ // moduleCache and moduleFactories are declared in runtime-base.ts
|
||||||
|
// this is read in runtime-utils.ts so it creates a module with direction for hmr
|
||||||
|
createModuleWithDirectionFlag = true;
|
||||||
|
const nodeContextPrototype = Context.prototype;
|
||||||
|
nodeContextPrototype.q = exportUrl;
|
||||||
|
nodeContextPrototype.M = moduleFactories;
|
||||||
|
// Cast moduleCache to ModuleWithDirection for production mode
|
||||||
|
nodeContextPrototype.c = moduleCache;
|
||||||
|
nodeContextPrototype.R = resolvePathFromModule;
|
||||||
|
nodeContextPrototype.b = createWorker;
|
||||||
|
nodeContextPrototype.C = clearChunkCache;
|
||||||
|
function instantiateModule(id, sourceType, sourceData) {
|
||||||
|
const moduleFactory = moduleFactories.get(id);
|
||||||
|
if (typeof moduleFactory !== 'function') {
|
||||||
|
// This can happen if modules incorrectly handle HMR disposes/updates,
|
||||||
|
// e.g. when they keep a `setTimeout` around which still executes old code
|
||||||
|
// and contains e.g. a `require("something")` call.
|
||||||
|
throw new Error(factoryNotAvailableMessage(id, sourceType, sourceData));
|
||||||
|
}
|
||||||
|
const module1 = createModuleWithDirection(id);
|
||||||
|
const exports = module1.exports;
|
||||||
|
moduleCache[id] = module1;
|
||||||
|
const context = new Context(module1, exports);
|
||||||
|
// NOTE(alexkirsz) This can fail when the module encounters a runtime error.
|
||||||
|
try {
|
||||||
|
moduleFactory(context, module1, exports);
|
||||||
|
} catch (error) {
|
||||||
|
module1.error = error;
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
|
;
|
||||||
|
module1.loaded = true;
|
||||||
|
if (module1.namespaceObject && module1.exports !== module1.namespaceObject) {
|
||||||
|
// in case of a circular dependency: cjs1 -> esm2 -> cjs1
|
||||||
|
interopEsm(module1.exports, module1.namespaceObject);
|
||||||
|
}
|
||||||
|
return module1;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Retrieves a module from the cache, or instantiate it if it is not cached.
|
||||||
|
*/ // @ts-ignore
|
||||||
|
function getOrInstantiateModuleFromParent(id, sourceModule) {
|
||||||
|
const module1 = moduleCache[id];
|
||||||
|
if (module1) {
|
||||||
|
if (module1.error) {
|
||||||
|
throw module1.error;
|
||||||
|
}
|
||||||
|
return module1;
|
||||||
|
}
|
||||||
|
return instantiateModule(id, SourceType.Parent, sourceModule.id);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Instantiates a runtime module.
|
||||||
|
*/ function instantiateRuntimeModule(chunkPath, moduleId) {
|
||||||
|
return instantiateModule(moduleId, SourceType.Runtime, chunkPath);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Retrieves a module from the cache, or instantiate it as a runtime module if it is not cached.
|
||||||
|
*/ // @ts-ignore TypeScript doesn't separate this module space from the browser runtime
|
||||||
|
function getOrInstantiateRuntimeModule(chunkPath, moduleId) {
|
||||||
|
const module1 = moduleCache[moduleId];
|
||||||
|
if (module1) {
|
||||||
|
if (module1.error) {
|
||||||
|
throw module1.error;
|
||||||
|
}
|
||||||
|
return module1;
|
||||||
|
}
|
||||||
|
return instantiateRuntimeModule(chunkPath, moduleId);
|
||||||
|
}
|
||||||
|
module.exports = (sourcePath)=>({
|
||||||
|
m: (id)=>getOrInstantiateRuntimeModule(sourcePath, id),
|
||||||
|
c: (chunkData)=>loadRuntimeChunk(sourcePath, chunkData)
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
//# sourceMappingURL=%5Bturbopack%5D_runtime.js.map
|
||||||
11
build_temp/.next/build/chunks/[turbopack]_runtime.js.map
Normal file
11
build_temp/.next/build/chunks/[turbopack]_runtime.js.map
Normal file
File diff suppressed because one or more lines are too long
6820
build_temp/.next/build/chunks/node_modules_13sb.px._.js
Normal file
6820
build_temp/.next/build/chunks/node_modules_13sb.px._.js
Normal file
File diff suppressed because it is too large
Load Diff
47
build_temp/.next/build/chunks/node_modules_13sb.px._.js.map
Normal file
47
build_temp/.next/build/chunks/node_modules_13sb.px._.js.map
Normal file
File diff suppressed because one or more lines are too long
1
build_temp/.next/build/package.json
Normal file
1
build_temp/.next/build/package.json
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"type": "commonjs"}
|
||||||
6
build_temp/.next/build/postcss.js
Normal file
6
build_temp/.next/build/postcss.js
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
var R=require("./chunks/[turbopack]_runtime.js")("postcss.js")
|
||||||
|
R.c("chunks/[turbopack-node]_transforms_postcss_ts_06e.r3r._.js")
|
||||||
|
R.c("chunks/[root-of-the-server]__0ubbtyl._.js")
|
||||||
|
R.m("[turbopack-node]/child_process/globals.ts [postcss] (ecmascript)")
|
||||||
|
R.m("[turbopack-node]/child_process/evaluate.ts/evaluate.js { INNER => \"[turbopack-node]/transforms/postcss.ts { CONFIG => \\\"[project]/postcss.config.mjs [postcss] (ecmascript)\\\" } [postcss] (ecmascript)\", RUNTIME => \"[turbopack-node]/child_process/evaluate.ts [postcss] (ecmascript)\" } [postcss] (ecmascript)")
|
||||||
|
module.exports=R.m("[turbopack-node]/child_process/evaluate.ts/evaluate.js { INNER => \"[turbopack-node]/transforms/postcss.ts { CONFIG => \\\"[project]/postcss.config.mjs [postcss] (ecmascript)\\\" } [postcss] (ecmascript)\", RUNTIME => \"[turbopack-node]/child_process/evaluate.ts [postcss] (ecmascript)\" } [postcss] (ecmascript)").exports
|
||||||
5
build_temp/.next/build/postcss.js.map
Normal file
5
build_temp/.next/build/postcss.js.map
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"version": 3,
|
||||||
|
"sources": [],
|
||||||
|
"sections": []
|
||||||
|
}
|
||||||
1
build_temp/.next/cache/.previewinfo
vendored
Normal file
1
build_temp/.next/cache/.previewinfo
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"previewModeId":"448d32298db3b0c38793886a3692c8c2","previewModeSigningKey":"c5cb172f94d84767588967a86044c9ee49921a9b2179519d52aa8aceecb0cd6f","previewModeEncryptionKey":"8a7d538464b6beea4e3323e6d9d86f4b70ecb99e19daffca604a9088baa07476","expireAt":1783363527187}
|
||||||
1
build_temp/.next/cache/.rscinfo
vendored
Normal file
1
build_temp/.next/cache/.rscinfo
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"encryption.key":"3aeRfwg0+P9P6WojBQxvxnXB2/RQU+/5AuKoO1YfFV8=","encryption.expire_at":1783363527167}
|
||||||
1
build_temp/.next/cache/.tsbuildinfo
vendored
Normal file
1
build_temp/.next/cache/.tsbuildinfo
vendored
Normal file
File diff suppressed because one or more lines are too long
6
build_temp/.next/diagnostics/build-diagnostics.json
Normal file
6
build_temp/.next/diagnostics/build-diagnostics.json
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"buildStage": "static-generation",
|
||||||
|
"buildOptions": {
|
||||||
|
"useBuildWorker": "true"
|
||||||
|
}
|
||||||
|
}
|
||||||
1
build_temp/.next/diagnostics/framework.json
Normal file
1
build_temp/.next/diagnostics/framework.json
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"name":"Next.js","version":"16.2.4"}
|
||||||
357
build_temp/.next/diagnostics/route-bundle-stats.json
Normal file
357
build_temp/.next/diagnostics/route-bundle-stats.json
Normal file
@@ -0,0 +1,357 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"route": "/protected",
|
||||||
|
"firstLoadUncompressedJsBytes": 887453,
|
||||||
|
"firstLoadChunkPaths": [
|
||||||
|
".next\\static\\chunks\\0usmzazea5o36.js",
|
||||||
|
".next\\static\\chunks\\0d3shmwh5_nmn.js",
|
||||||
|
".next\\static\\chunks\\012i7eyh17tl3.js",
|
||||||
|
".next\\static\\chunks\\0k5-k~sbs-wg6.js",
|
||||||
|
".next\\static\\chunks\\0qesjmrn7~1dz.js",
|
||||||
|
".next\\static\\chunks\\01_lw6dc6ltc-.js",
|
||||||
|
".next\\static\\chunks\\0l-wk1ive8m.1.js",
|
||||||
|
".next\\static\\chunks\\00gju7l2y3vh_.js",
|
||||||
|
".next\\static\\chunks\\0ze4gu236oq96.js",
|
||||||
|
".next\\static\\chunks\\10qd__0r7a~.l.js",
|
||||||
|
".next\\static\\chunks\\0-gaanm6h49z~.js",
|
||||||
|
".next\\static\\chunks\\06c8h6921f-oo.js",
|
||||||
|
".next\\static\\chunks\\15jasrm2107sy.js",
|
||||||
|
".next\\static\\chunks\\181uojwh.t2ik.js",
|
||||||
|
".next\\static\\chunks\\turbopack-0u.mb44r17v0_.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"route": "/admin/products",
|
||||||
|
"firstLoadUncompressedJsBytes": 815153,
|
||||||
|
"firstLoadChunkPaths": [
|
||||||
|
".next\\static\\chunks\\0usmzazea5o36.js",
|
||||||
|
".next\\static\\chunks\\0d3shmwh5_nmn.js",
|
||||||
|
".next\\static\\chunks\\0ka051yepewro.js",
|
||||||
|
".next\\static\\chunks\\0_psz~izxr78o.js",
|
||||||
|
".next\\static\\chunks\\01_lw6dc6ltc-.js",
|
||||||
|
".next\\static\\chunks\\0qj.s.uyzj2u6.js",
|
||||||
|
".next\\static\\chunks\\1535xxoug.k9i.js",
|
||||||
|
".next\\static\\chunks\\0k5-k~sbs-wg6.js",
|
||||||
|
".next\\static\\chunks\\0h2rh5ewa6gmd.js",
|
||||||
|
".next\\static\\chunks\\0ze4gu236oq96.js",
|
||||||
|
".next\\static\\chunks\\10qd__0r7a~.l.js",
|
||||||
|
".next\\static\\chunks\\0-gaanm6h49z~.js",
|
||||||
|
".next\\static\\chunks\\06c8h6921f-oo.js",
|
||||||
|
".next\\static\\chunks\\15jasrm2107sy.js",
|
||||||
|
".next\\static\\chunks\\181uojwh.t2ik.js",
|
||||||
|
".next\\static\\chunks\\turbopack-0u.mb44r17v0_.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"route": "/admin/categories",
|
||||||
|
"firstLoadUncompressedJsBytes": 810555,
|
||||||
|
"firstLoadChunkPaths": [
|
||||||
|
".next\\static\\chunks\\0usmzazea5o36.js",
|
||||||
|
".next\\static\\chunks\\0d3shmwh5_nmn.js",
|
||||||
|
".next\\static\\chunks\\0ka051yepewro.js",
|
||||||
|
".next\\static\\chunks\\0_psz~izxr78o.js",
|
||||||
|
".next\\static\\chunks\\01_lw6dc6ltc-.js",
|
||||||
|
".next\\static\\chunks\\0~pn4~wuwvr32.js",
|
||||||
|
".next\\static\\chunks\\0f7q1cdbakqnj.js",
|
||||||
|
".next\\static\\chunks\\0k5-k~sbs-wg6.js",
|
||||||
|
".next\\static\\chunks\\0h2rh5ewa6gmd.js",
|
||||||
|
".next\\static\\chunks\\0ze4gu236oq96.js",
|
||||||
|
".next\\static\\chunks\\10qd__0r7a~.l.js",
|
||||||
|
".next\\static\\chunks\\0-gaanm6h49z~.js",
|
||||||
|
".next\\static\\chunks\\06c8h6921f-oo.js",
|
||||||
|
".next\\static\\chunks\\15jasrm2107sy.js",
|
||||||
|
".next\\static\\chunks\\181uojwh.t2ik.js",
|
||||||
|
".next\\static\\chunks\\turbopack-0u.mb44r17v0_.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"route": "/auth/sign-up",
|
||||||
|
"firstLoadUncompressedJsBytes": 798825,
|
||||||
|
"firstLoadChunkPaths": [
|
||||||
|
".next\\static\\chunks\\0usmzazea5o36.js",
|
||||||
|
".next\\static\\chunks\\0d3shmwh5_nmn.js",
|
||||||
|
".next\\static\\chunks\\0.y2lp02b2t7q.js",
|
||||||
|
".next\\static\\chunks\\0qesjmrn7~1dz.js",
|
||||||
|
".next\\static\\chunks\\0k5-k~sbs-wg6.js",
|
||||||
|
".next\\static\\chunks\\0ze4gu236oq96.js",
|
||||||
|
".next\\static\\chunks\\10qd__0r7a~.l.js",
|
||||||
|
".next\\static\\chunks\\0-gaanm6h49z~.js",
|
||||||
|
".next\\static\\chunks\\06c8h6921f-oo.js",
|
||||||
|
".next\\static\\chunks\\15jasrm2107sy.js",
|
||||||
|
".next\\static\\chunks\\181uojwh.t2ik.js",
|
||||||
|
".next\\static\\chunks\\turbopack-0u.mb44r17v0_.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"route": "/auth/login",
|
||||||
|
"firstLoadUncompressedJsBytes": 798571,
|
||||||
|
"firstLoadChunkPaths": [
|
||||||
|
".next\\static\\chunks\\0usmzazea5o36.js",
|
||||||
|
".next\\static\\chunks\\0d3shmwh5_nmn.js",
|
||||||
|
".next\\static\\chunks\\020p4x66yuy~n.js",
|
||||||
|
".next\\static\\chunks\\0qesjmrn7~1dz.js",
|
||||||
|
".next\\static\\chunks\\0k5-k~sbs-wg6.js",
|
||||||
|
".next\\static\\chunks\\0ze4gu236oq96.js",
|
||||||
|
".next\\static\\chunks\\10qd__0r7a~.l.js",
|
||||||
|
".next\\static\\chunks\\0-gaanm6h49z~.js",
|
||||||
|
".next\\static\\chunks\\06c8h6921f-oo.js",
|
||||||
|
".next\\static\\chunks\\15jasrm2107sy.js",
|
||||||
|
".next\\static\\chunks\\181uojwh.t2ik.js",
|
||||||
|
".next\\static\\chunks\\turbopack-0u.mb44r17v0_.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"route": "/auth/forgot-password",
|
||||||
|
"firstLoadUncompressedJsBytes": 798560,
|
||||||
|
"firstLoadChunkPaths": [
|
||||||
|
".next\\static\\chunks\\0usmzazea5o36.js",
|
||||||
|
".next\\static\\chunks\\0d3shmwh5_nmn.js",
|
||||||
|
".next\\static\\chunks\\0hn13p7jlg6c8.js",
|
||||||
|
".next\\static\\chunks\\0qesjmrn7~1dz.js",
|
||||||
|
".next\\static\\chunks\\0k5-k~sbs-wg6.js",
|
||||||
|
".next\\static\\chunks\\0ze4gu236oq96.js",
|
||||||
|
".next\\static\\chunks\\10qd__0r7a~.l.js",
|
||||||
|
".next\\static\\chunks\\0-gaanm6h49z~.js",
|
||||||
|
".next\\static\\chunks\\06c8h6921f-oo.js",
|
||||||
|
".next\\static\\chunks\\15jasrm2107sy.js",
|
||||||
|
".next\\static\\chunks\\181uojwh.t2ik.js",
|
||||||
|
".next\\static\\chunks\\turbopack-0u.mb44r17v0_.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"route": "/auth/update-password",
|
||||||
|
"firstLoadUncompressedJsBytes": 792198,
|
||||||
|
"firstLoadChunkPaths": [
|
||||||
|
".next\\static\\chunks\\0usmzazea5o36.js",
|
||||||
|
".next\\static\\chunks\\0d3shmwh5_nmn.js",
|
||||||
|
".next\\static\\chunks\\07b46tf_nu-sm.js",
|
||||||
|
".next\\static\\chunks\\0qesjmrn7~1dz.js",
|
||||||
|
".next\\static\\chunks\\0k5-k~sbs-wg6.js",
|
||||||
|
".next\\static\\chunks\\0ze4gu236oq96.js",
|
||||||
|
".next\\static\\chunks\\10qd__0r7a~.l.js",
|
||||||
|
".next\\static\\chunks\\0-gaanm6h49z~.js",
|
||||||
|
".next\\static\\chunks\\06c8h6921f-oo.js",
|
||||||
|
".next\\static\\chunks\\15jasrm2107sy.js",
|
||||||
|
".next\\static\\chunks\\181uojwh.t2ik.js",
|
||||||
|
".next\\static\\chunks\\turbopack-0u.mb44r17v0_.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"route": "/admin/users",
|
||||||
|
"firstLoadUncompressedJsBytes": 732184,
|
||||||
|
"firstLoadChunkPaths": [
|
||||||
|
".next\\static\\chunks\\0usmzazea5o36.js",
|
||||||
|
".next\\static\\chunks\\0d3shmwh5_nmn.js",
|
||||||
|
".next\\static\\chunks\\0ka051yepewro.js",
|
||||||
|
".next\\static\\chunks\\0d83uz0cb9cr0.js",
|
||||||
|
".next\\static\\chunks\\0k5-k~sbs-wg6.js",
|
||||||
|
".next\\static\\chunks\\09ftf-8ix1ad~.js",
|
||||||
|
".next\\static\\chunks\\0h2rh5ewa6gmd.js",
|
||||||
|
".next\\static\\chunks\\0ze4gu236oq96.js",
|
||||||
|
".next\\static\\chunks\\10qd__0r7a~.l.js",
|
||||||
|
".next\\static\\chunks\\0-gaanm6h49z~.js",
|
||||||
|
".next\\static\\chunks\\06c8h6921f-oo.js",
|
||||||
|
".next\\static\\chunks\\15jasrm2107sy.js",
|
||||||
|
".next\\static\\chunks\\181uojwh.t2ik.js",
|
||||||
|
".next\\static\\chunks\\turbopack-0u.mb44r17v0_.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"route": "/order",
|
||||||
|
"firstLoadUncompressedJsBytes": 726412,
|
||||||
|
"firstLoadChunkPaths": [
|
||||||
|
".next\\static\\chunks\\0usmzazea5o36.js",
|
||||||
|
".next\\static\\chunks\\0d3shmwh5_nmn.js",
|
||||||
|
".next\\static\\chunks\\0k5-k~sbs-wg6.js",
|
||||||
|
".next\\static\\chunks\\083objkg2e851.js",
|
||||||
|
".next\\static\\chunks\\0ulw1svcbtk8z.js",
|
||||||
|
".next\\static\\chunks\\0ze4gu236oq96.js",
|
||||||
|
".next\\static\\chunks\\10qd__0r7a~.l.js",
|
||||||
|
".next\\static\\chunks\\0-gaanm6h49z~.js",
|
||||||
|
".next\\static\\chunks\\06c8h6921f-oo.js",
|
||||||
|
".next\\static\\chunks\\15jasrm2107sy.js",
|
||||||
|
".next\\static\\chunks\\181uojwh.t2ik.js",
|
||||||
|
".next\\static\\chunks\\turbopack-0u.mb44r17v0_.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"route": "/my-customers/[id]",
|
||||||
|
"firstLoadUncompressedJsBytes": 569382,
|
||||||
|
"firstLoadChunkPaths": [
|
||||||
|
".next\\static\\chunks\\0usmzazea5o36.js",
|
||||||
|
".next\\static\\chunks\\0d3shmwh5_nmn.js",
|
||||||
|
".next\\static\\chunks\\0d068foshfwl7.js",
|
||||||
|
".next\\static\\chunks\\0k5-k~sbs-wg6.js",
|
||||||
|
".next\\static\\chunks\\0ze4gu236oq96.js",
|
||||||
|
".next\\static\\chunks\\10qd__0r7a~.l.js",
|
||||||
|
".next\\static\\chunks\\0-gaanm6h49z~.js",
|
||||||
|
".next\\static\\chunks\\06c8h6921f-oo.js",
|
||||||
|
".next\\static\\chunks\\15jasrm2107sy.js",
|
||||||
|
".next\\static\\chunks\\181uojwh.t2ik.js",
|
||||||
|
".next\\static\\chunks\\turbopack-0u.mb44r17v0_.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"route": "/my-customers/new",
|
||||||
|
"firstLoadUncompressedJsBytes": 564226,
|
||||||
|
"firstLoadChunkPaths": [
|
||||||
|
".next\\static\\chunks\\0usmzazea5o36.js",
|
||||||
|
".next\\static\\chunks\\0d3shmwh5_nmn.js",
|
||||||
|
".next\\static\\chunks\\00-xpv69x~78w.js",
|
||||||
|
".next\\static\\chunks\\0k5-k~sbs-wg6.js",
|
||||||
|
".next\\static\\chunks\\0ze4gu236oq96.js",
|
||||||
|
".next\\static\\chunks\\10qd__0r7a~.l.js",
|
||||||
|
".next\\static\\chunks\\0-gaanm6h49z~.js",
|
||||||
|
".next\\static\\chunks\\06c8h6921f-oo.js",
|
||||||
|
".next\\static\\chunks\\15jasrm2107sy.js",
|
||||||
|
".next\\static\\chunks\\181uojwh.t2ik.js",
|
||||||
|
".next\\static\\chunks\\turbopack-0u.mb44r17v0_.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"route": "/admin",
|
||||||
|
"firstLoadUncompressedJsBytes": 555746,
|
||||||
|
"firstLoadChunkPaths": [
|
||||||
|
".next\\static\\chunks\\0usmzazea5o36.js",
|
||||||
|
".next\\static\\chunks\\0d3shmwh5_nmn.js",
|
||||||
|
".next\\static\\chunks\\0ka051yepewro.js",
|
||||||
|
".next\\static\\chunks\\091cxb_8k6p~y.js",
|
||||||
|
".next\\static\\chunks\\0k5-k~sbs-wg6.js",
|
||||||
|
".next\\static\\chunks\\0ze4gu236oq96.js",
|
||||||
|
".next\\static\\chunks\\10qd__0r7a~.l.js",
|
||||||
|
".next\\static\\chunks\\0-gaanm6h49z~.js",
|
||||||
|
".next\\static\\chunks\\06c8h6921f-oo.js",
|
||||||
|
".next\\static\\chunks\\15jasrm2107sy.js",
|
||||||
|
".next\\static\\chunks\\181uojwh.t2ik.js",
|
||||||
|
".next\\static\\chunks\\turbopack-0u.mb44r17v0_.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"route": "/order/success",
|
||||||
|
"firstLoadUncompressedJsBytes": 552889,
|
||||||
|
"firstLoadChunkPaths": [
|
||||||
|
".next\\static\\chunks\\0usmzazea5o36.js",
|
||||||
|
".next\\static\\chunks\\0d3shmwh5_nmn.js",
|
||||||
|
".next\\static\\chunks\\10n544c5bwzh9.js",
|
||||||
|
".next\\static\\chunks\\0k5-k~sbs-wg6.js",
|
||||||
|
".next\\static\\chunks\\0ze4gu236oq96.js",
|
||||||
|
".next\\static\\chunks\\10qd__0r7a~.l.js",
|
||||||
|
".next\\static\\chunks\\0-gaanm6h49z~.js",
|
||||||
|
".next\\static\\chunks\\06c8h6921f-oo.js",
|
||||||
|
".next\\static\\chunks\\15jasrm2107sy.js",
|
||||||
|
".next\\static\\chunks\\181uojwh.t2ik.js",
|
||||||
|
".next\\static\\chunks\\turbopack-0u.mb44r17v0_.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"route": "/admin/orders",
|
||||||
|
"firstLoadUncompressedJsBytes": 551609,
|
||||||
|
"firstLoadChunkPaths": [
|
||||||
|
".next\\static\\chunks\\0usmzazea5o36.js",
|
||||||
|
".next\\static\\chunks\\0d3shmwh5_nmn.js",
|
||||||
|
".next\\static\\chunks\\0ka051yepewro.js",
|
||||||
|
".next\\static\\chunks\\0vebka-_nqjml.js",
|
||||||
|
".next\\static\\chunks\\0k5-k~sbs-wg6.js",
|
||||||
|
".next\\static\\chunks\\0ze4gu236oq96.js",
|
||||||
|
".next\\static\\chunks\\10qd__0r7a~.l.js",
|
||||||
|
".next\\static\\chunks\\0-gaanm6h49z~.js",
|
||||||
|
".next\\static\\chunks\\06c8h6921f-oo.js",
|
||||||
|
".next\\static\\chunks\\15jasrm2107sy.js",
|
||||||
|
".next\\static\\chunks\\181uojwh.t2ik.js",
|
||||||
|
".next\\static\\chunks\\turbopack-0u.mb44r17v0_.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"route": "/",
|
||||||
|
"firstLoadUncompressedJsBytes": 523255,
|
||||||
|
"firstLoadChunkPaths": [
|
||||||
|
".next\\static\\chunks\\0usmzazea5o36.js",
|
||||||
|
".next\\static\\chunks\\0d3shmwh5_nmn.js",
|
||||||
|
".next\\static\\chunks\\0ka051yepewro.js",
|
||||||
|
".next\\static\\chunks\\0ze4gu236oq96.js",
|
||||||
|
".next\\static\\chunks\\10qd__0r7a~.l.js",
|
||||||
|
".next\\static\\chunks\\0-gaanm6h49z~.js",
|
||||||
|
".next\\static\\chunks\\06c8h6921f-oo.js",
|
||||||
|
".next\\static\\chunks\\15jasrm2107sy.js",
|
||||||
|
".next\\static\\chunks\\181uojwh.t2ik.js",
|
||||||
|
".next\\static\\chunks\\turbopack-0u.mb44r17v0_.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"route": "/my-customers",
|
||||||
|
"firstLoadUncompressedJsBytes": 523255,
|
||||||
|
"firstLoadChunkPaths": [
|
||||||
|
".next\\static\\chunks\\0usmzazea5o36.js",
|
||||||
|
".next\\static\\chunks\\0d3shmwh5_nmn.js",
|
||||||
|
".next\\static\\chunks\\0ka051yepewro.js",
|
||||||
|
".next\\static\\chunks\\0ze4gu236oq96.js",
|
||||||
|
".next\\static\\chunks\\10qd__0r7a~.l.js",
|
||||||
|
".next\\static\\chunks\\0-gaanm6h49z~.js",
|
||||||
|
".next\\static\\chunks\\06c8h6921f-oo.js",
|
||||||
|
".next\\static\\chunks\\15jasrm2107sy.js",
|
||||||
|
".next\\static\\chunks\\181uojwh.t2ik.js",
|
||||||
|
".next\\static\\chunks\\turbopack-0u.mb44r17v0_.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"route": "/my-orders",
|
||||||
|
"firstLoadUncompressedJsBytes": 523255,
|
||||||
|
"firstLoadChunkPaths": [
|
||||||
|
".next\\static\\chunks\\0usmzazea5o36.js",
|
||||||
|
".next\\static\\chunks\\0d3shmwh5_nmn.js",
|
||||||
|
".next\\static\\chunks\\0ka051yepewro.js",
|
||||||
|
".next\\static\\chunks\\0ze4gu236oq96.js",
|
||||||
|
".next\\static\\chunks\\10qd__0r7a~.l.js",
|
||||||
|
".next\\static\\chunks\\0-gaanm6h49z~.js",
|
||||||
|
".next\\static\\chunks\\06c8h6921f-oo.js",
|
||||||
|
".next\\static\\chunks\\15jasrm2107sy.js",
|
||||||
|
".next\\static\\chunks\\181uojwh.t2ik.js",
|
||||||
|
".next\\static\\chunks\\turbopack-0u.mb44r17v0_.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"route": "/_not-found",
|
||||||
|
"firstLoadUncompressedJsBytes": 517427,
|
||||||
|
"firstLoadChunkPaths": [
|
||||||
|
".next\\static\\chunks\\0usmzazea5o36.js",
|
||||||
|
".next\\static\\chunks\\0d3shmwh5_nmn.js",
|
||||||
|
".next\\static\\chunks\\0ze4gu236oq96.js",
|
||||||
|
".next\\static\\chunks\\10qd__0r7a~.l.js",
|
||||||
|
".next\\static\\chunks\\0-gaanm6h49z~.js",
|
||||||
|
".next\\static\\chunks\\06c8h6921f-oo.js",
|
||||||
|
".next\\static\\chunks\\15jasrm2107sy.js",
|
||||||
|
".next\\static\\chunks\\181uojwh.t2ik.js",
|
||||||
|
".next\\static\\chunks\\turbopack-0u.mb44r17v0_.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"route": "/auth/error",
|
||||||
|
"firstLoadUncompressedJsBytes": 517427,
|
||||||
|
"firstLoadChunkPaths": [
|
||||||
|
".next\\static\\chunks\\0usmzazea5o36.js",
|
||||||
|
".next\\static\\chunks\\0d3shmwh5_nmn.js",
|
||||||
|
".next\\static\\chunks\\0ze4gu236oq96.js",
|
||||||
|
".next\\static\\chunks\\10qd__0r7a~.l.js",
|
||||||
|
".next\\static\\chunks\\0-gaanm6h49z~.js",
|
||||||
|
".next\\static\\chunks\\06c8h6921f-oo.js",
|
||||||
|
".next\\static\\chunks\\15jasrm2107sy.js",
|
||||||
|
".next\\static\\chunks\\181uojwh.t2ik.js",
|
||||||
|
".next\\static\\chunks\\turbopack-0u.mb44r17v0_.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"route": "/auth/sign-up-success",
|
||||||
|
"firstLoadUncompressedJsBytes": 517427,
|
||||||
|
"firstLoadChunkPaths": [
|
||||||
|
".next\\static\\chunks\\0usmzazea5o36.js",
|
||||||
|
".next\\static\\chunks\\0d3shmwh5_nmn.js",
|
||||||
|
".next\\static\\chunks\\0ze4gu236oq96.js",
|
||||||
|
".next\\static\\chunks\\10qd__0r7a~.l.js",
|
||||||
|
".next\\static\\chunks\\0-gaanm6h49z~.js",
|
||||||
|
".next\\static\\chunks\\06c8h6921f-oo.js",
|
||||||
|
".next\\static\\chunks\\15jasrm2107sy.js",
|
||||||
|
".next\\static\\chunks\\181uojwh.t2ik.js",
|
||||||
|
".next\\static\\chunks\\turbopack-0u.mb44r17v0_.js"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
6
build_temp/.next/export-marker.json
Normal file
6
build_temp/.next/export-marker.json
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"version": 1,
|
||||||
|
"hasExportPathMap": false,
|
||||||
|
"exportTrailingSlash": false,
|
||||||
|
"isNextImageImported": false
|
||||||
|
}
|
||||||
13
build_temp/.next/fallback-build-manifest.json
Normal file
13
build_temp/.next/fallback-build-manifest.json
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"pages": {
|
||||||
|
"/_app": []
|
||||||
|
},
|
||||||
|
"devFiles": [],
|
||||||
|
"polyfillFiles": [],
|
||||||
|
"lowPriorityFiles": [
|
||||||
|
"static/czEjVggXDRFH51IopN6_9/_buildManifest.js",
|
||||||
|
"static/czEjVggXDRFH51IopN6_9/_ssgManifest.js",
|
||||||
|
"static/czEjVggXDRFH51IopN6_9/_clientMiddlewareManifest.js"
|
||||||
|
],
|
||||||
|
"rootMainFiles": []
|
||||||
|
}
|
||||||
68
build_temp/.next/images-manifest.json
Normal file
68
build_temp/.next/images-manifest.json
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
{
|
||||||
|
"version": 1,
|
||||||
|
"images": {
|
||||||
|
"deviceSizes": [
|
||||||
|
640,
|
||||||
|
750,
|
||||||
|
828,
|
||||||
|
1080,
|
||||||
|
1200,
|
||||||
|
1920,
|
||||||
|
2048,
|
||||||
|
3840
|
||||||
|
],
|
||||||
|
"imageSizes": [
|
||||||
|
32,
|
||||||
|
48,
|
||||||
|
64,
|
||||||
|
96,
|
||||||
|
128,
|
||||||
|
256,
|
||||||
|
384
|
||||||
|
],
|
||||||
|
"path": "/_next/image",
|
||||||
|
"loader": "default",
|
||||||
|
"loaderFile": "",
|
||||||
|
"domains": [],
|
||||||
|
"disableStaticImages": false,
|
||||||
|
"minimumCacheTTL": 14400,
|
||||||
|
"formats": [
|
||||||
|
"image/webp"
|
||||||
|
],
|
||||||
|
"maximumRedirects": 3,
|
||||||
|
"maximumResponseBody": 50000000,
|
||||||
|
"dangerouslyAllowLocalIP": false,
|
||||||
|
"dangerouslyAllowSVG": false,
|
||||||
|
"contentSecurityPolicy": "script-src 'none'; frame-src 'none'; sandbox;",
|
||||||
|
"contentDispositionType": "attachment",
|
||||||
|
"localPatterns": [
|
||||||
|
{
|
||||||
|
"pathname": "^(?:(?!(?:^|\\/)\\.{1,2}(?:\\/|$))(?:(?:(?!(?:^|\\/)\\.{1,2}(?:\\/|$)).)*?)\\/?)$",
|
||||||
|
"search": ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"remotePatterns": [],
|
||||||
|
"qualities": [
|
||||||
|
75
|
||||||
|
],
|
||||||
|
"unoptimized": false,
|
||||||
|
"customCacheHandler": false,
|
||||||
|
"sizes": [
|
||||||
|
640,
|
||||||
|
750,
|
||||||
|
828,
|
||||||
|
1080,
|
||||||
|
1200,
|
||||||
|
1920,
|
||||||
|
2048,
|
||||||
|
3840,
|
||||||
|
32,
|
||||||
|
48,
|
||||||
|
64,
|
||||||
|
96,
|
||||||
|
128,
|
||||||
|
256,
|
||||||
|
384
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
1
build_temp/.next/next-minimal-server.js.nft.json
Normal file
1
build_temp/.next/next-minimal-server.js.nft.json
Normal file
File diff suppressed because one or more lines are too long
1
build_temp/.next/next-server.js.nft.json
Normal file
1
build_temp/.next/next-server.js.nft.json
Normal file
File diff suppressed because one or more lines are too long
112
build_temp/.next/node_modules/@react-pdf/renderer-5f716e9bc7d68b8a/README.md
generated
vendored
Normal file
112
build_temp/.next/node_modules/@react-pdf/renderer-5f716e9bc7d68b8a/README.md
generated
vendored
Normal file
@@ -0,0 +1,112 @@
|
|||||||
|
<p align="center">
|
||||||
|
<img src="https://user-images.githubusercontent.com/5600341/27505816-c8bc37aa-587f-11e7-9a86-08a2d081a8b9.png" height="280px">
|
||||||
|
<p align="center">React renderer for creating PDF files on the browser and server<p>
|
||||||
|
<p align="center">
|
||||||
|
<a href="https://www.npmjs.com/package/@react-pdf/renderer">
|
||||||
|
<img src="https://img.shields.io/npm/v/@react-pdf/renderer?style=flat&colorA=000000&colorB=000000" />
|
||||||
|
</a>
|
||||||
|
<a href="https://opencollective.com/react-pdf">
|
||||||
|
<img src="https://img.shields.io/opencollective/all/react-pdf?style=flat&colorA=000000&colorB=000000" />
|
||||||
|
</a>
|
||||||
|
<a href="https://github.com/diegomura/react-pdf/blob/master/LICENSE">
|
||||||
|
<img src="https://img.shields.io/github/license/diegomura/react-pdf?style=flat&colorA=000000&colorB=000000" />
|
||||||
|
</a>
|
||||||
|
<a href="https://blockchain.com/btc/address/bc1qj223udztpmt5dck46dw0yap08yum63ht56h90v">
|
||||||
|
<img src="https://img.shields.io/badge/BTC-f5f5f5?style=flat&colorA=000000&colorB=000000" />
|
||||||
|
</a>
|
||||||
|
<a href="https://blockchain.com/eth/address/0x4e1DB76bA0858BbCAa4DD804418D0D9EcF77B1cC">
|
||||||
|
<img src="https://img.shields.io/badge/ETH-f5f5f5?style=flat&colorA=000000&colorB=000000" />
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
## How to install
|
||||||
|
|
||||||
|
```sh
|
||||||
|
yarn add @react-pdf/renderer
|
||||||
|
```
|
||||||
|
|
||||||
|
## How it works
|
||||||
|
|
||||||
|
```jsx
|
||||||
|
import React from 'react';
|
||||||
|
import { Document, Page, Text, View, StyleSheet } from '@react-pdf/renderer';
|
||||||
|
|
||||||
|
// Create styles
|
||||||
|
const styles = StyleSheet.create({
|
||||||
|
page: {
|
||||||
|
flexDirection: 'row',
|
||||||
|
backgroundColor: '#E4E4E4',
|
||||||
|
},
|
||||||
|
section: {
|
||||||
|
margin: 10,
|
||||||
|
padding: 10,
|
||||||
|
flexGrow: 1,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
// Create Document Component
|
||||||
|
const MyDocument = () => (
|
||||||
|
<Document>
|
||||||
|
<Page size="A4" style={styles.page}>
|
||||||
|
<View style={styles.section}>
|
||||||
|
<Text>Section #1</Text>
|
||||||
|
</View>
|
||||||
|
<View style={styles.section}>
|
||||||
|
<Text>Section #2</Text>
|
||||||
|
</View>
|
||||||
|
</Page>
|
||||||
|
</Document>
|
||||||
|
);
|
||||||
|
```
|
||||||
|
|
||||||
|
### `Web.` Render in DOM
|
||||||
|
|
||||||
|
```jsx
|
||||||
|
import React from 'react';
|
||||||
|
import ReactDOM from 'react-dom';
|
||||||
|
import { PDFViewer } from '@react-pdf/renderer';
|
||||||
|
|
||||||
|
const App = () => (
|
||||||
|
<PDFViewer>
|
||||||
|
<MyDocument />
|
||||||
|
</PDFViewer>
|
||||||
|
);
|
||||||
|
|
||||||
|
ReactDOM.render(<App />, document.getElementById('root'));
|
||||||
|
```
|
||||||
|
|
||||||
|
### `Node.` Save in a file
|
||||||
|
|
||||||
|
```jsx
|
||||||
|
import React from 'react';
|
||||||
|
import ReactPDF from '@react-pdf/renderer';
|
||||||
|
|
||||||
|
ReactPDF.render(<MyDocument />, `${__dirname}/example.pdf`);
|
||||||
|
```
|
||||||
|
|
||||||
|
## Contributors
|
||||||
|
|
||||||
|
This project exists thanks to all the people who contribute. Looking to contribute? Please check our [[contribute]](https://github.com/diegomura/react-pdf/blob/master/.github/CONTRIBUTING.md) document for more details about how to setup a development environment and submitting code.
|
||||||
|
|
||||||
|
<a href="https://github.com/diegomura/react-pdf/blob/master/.github/CONTRIBUTING.md"><img src="https://opencollective.com/react-pdf/contributors.svg?width=890" /></a>
|
||||||
|
|
||||||
|
## Sponsors
|
||||||
|
|
||||||
|
Thank you to all our sponsors! [[Become a sponsors](https://opencollective.com/react-pdf#sponsors)]
|
||||||
|
|
||||||
|
<a href="https://opencollective.com/react-pdf#sponsors" target="_blank"><img src="https://opencollective.com/react-pdf/sponsors.svg?width=890"></a>
|
||||||
|
|
||||||
|
## Backers
|
||||||
|
|
||||||
|
Thank you to all our backers! [[Become a backer](https://opencollective.com/react-pdf#backer)]
|
||||||
|
|
||||||
|
<a href="https://opencollective.com/react-pdf#backers" target="_blank"><img src="https://opencollective.com/react-pdf/backers.svg?width=890"></a>
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
MIT © [Diego Muracciole](http://github.com/diegomura)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
[](https://www.npmjs.com/package/@react-pdf/renderer)
|
||||||
793
build_temp/.next/node_modules/@react-pdf/renderer-5f716e9bc7d68b8a/index.d.ts
generated
vendored
Normal file
793
build_temp/.next/node_modules/@react-pdf/renderer-5f716e9bc7d68b8a/index.d.ts
generated
vendored
Normal file
@@ -0,0 +1,793 @@
|
|||||||
|
/* eslint-disable max-classes-per-file */
|
||||||
|
|
||||||
|
import * as React from 'react';
|
||||||
|
import {
|
||||||
|
Style,
|
||||||
|
PageSize,
|
||||||
|
FontStore,
|
||||||
|
PDFVersion,
|
||||||
|
Orientation,
|
||||||
|
SourceObject,
|
||||||
|
SrcSet,
|
||||||
|
Sizes,
|
||||||
|
HyphenationCallback,
|
||||||
|
SVGPresentationAttributes,
|
||||||
|
Bookmark,
|
||||||
|
PageLayout,
|
||||||
|
PageMode,
|
||||||
|
HitSlop,
|
||||||
|
} from '@react-pdf/types';
|
||||||
|
|
||||||
|
declare class ReactPDF {
|
||||||
|
static default: typeof ReactPDF;
|
||||||
|
}
|
||||||
|
|
||||||
|
export = ReactPDF;
|
||||||
|
|
||||||
|
declare namespace ReactPDF {
|
||||||
|
interface Styles {
|
||||||
|
[key: string]: Style;
|
||||||
|
}
|
||||||
|
interface OnRenderProps {
|
||||||
|
blob?: Blob;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Permissions {
|
||||||
|
printing?: 'lowResolution' | 'highResolution';
|
||||||
|
modifying?: boolean;
|
||||||
|
copying?: boolean;
|
||||||
|
annotating?: boolean;
|
||||||
|
fillingForms?: boolean;
|
||||||
|
contentAccessibility?: boolean;
|
||||||
|
documentAssembly?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface DocumentProps {
|
||||||
|
style?: Style | Style[];
|
||||||
|
title?: string;
|
||||||
|
author?: string;
|
||||||
|
subject?: string;
|
||||||
|
creator?: string;
|
||||||
|
keywords?: string;
|
||||||
|
producer?: string;
|
||||||
|
language?: string;
|
||||||
|
creationDate?: Date;
|
||||||
|
modificationDate?: Date;
|
||||||
|
pdfVersion?: PDFVersion;
|
||||||
|
pageMode?: PageMode;
|
||||||
|
pageLayout?: PageLayout;
|
||||||
|
ownerPassword?: string;
|
||||||
|
userPassword?: string;
|
||||||
|
permissions?: Permissions;
|
||||||
|
onRender?: (props: OnRenderProps) => any;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This component represent the PDF document itself. It must be the root
|
||||||
|
* of your tree element structure, and under no circumstances should it be
|
||||||
|
* used as children of another react-pdf component. In addition, it should
|
||||||
|
* only have childs of type <Page />.
|
||||||
|
*/
|
||||||
|
export class Document extends React.Component<
|
||||||
|
React.PropsWithChildren<DocumentProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface NodeProps {
|
||||||
|
id?: string;
|
||||||
|
style?: Style | Style[];
|
||||||
|
/**
|
||||||
|
* Render component in all wrapped pages.
|
||||||
|
* @see https://react-pdf.org/advanced#fixed-components
|
||||||
|
*/
|
||||||
|
fixed?: boolean;
|
||||||
|
/**
|
||||||
|
* Force the wrapping algorithm to start a new page when rendering the
|
||||||
|
* element.
|
||||||
|
* @see https://react-pdf.org/advanced#page-breaks
|
||||||
|
*/
|
||||||
|
break?: boolean;
|
||||||
|
/**
|
||||||
|
* Hint that no page wrapping should occur between all sibling elements following the element within n points
|
||||||
|
* @see https://react-pdf.org/advanced#orphan-&-widow-protection
|
||||||
|
*/
|
||||||
|
minPresenceAhead?: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface PageProps extends NodeProps {
|
||||||
|
/**
|
||||||
|
* Enable page wrapping for this page.
|
||||||
|
* @see https://react-pdf.org/components#page-wrapping
|
||||||
|
*/
|
||||||
|
wrap?: boolean;
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
size?: PageSize;
|
||||||
|
orientation?: Orientation;
|
||||||
|
dpi?: number;
|
||||||
|
bookmark?: Bookmark;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents single page inside the PDF document, or a subset of them if
|
||||||
|
* using the wrapping feature. A <Document /> can contain as many pages as
|
||||||
|
* you want, but ensure not rendering a page inside any component besides
|
||||||
|
* Document.
|
||||||
|
*/
|
||||||
|
export class Page extends React.Component<
|
||||||
|
React.PropsWithChildren<PageProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface ViewProps extends NodeProps {
|
||||||
|
id?: string;
|
||||||
|
/**
|
||||||
|
* Enable/disable page wrapping for element.
|
||||||
|
* @see https://react-pdf.org/components#page-wrapping
|
||||||
|
*/
|
||||||
|
wrap?: boolean;
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
render?: (props: {
|
||||||
|
pageNumber: number;
|
||||||
|
subPageNumber: number;
|
||||||
|
}) => React.ReactNode;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The most fundamental component for building a UI and is designed to be
|
||||||
|
* nested inside other views and can have 0 to many children.
|
||||||
|
*/
|
||||||
|
export class View extends React.Component<
|
||||||
|
React.PropsWithChildren<ViewProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface BaseImageProps extends NodeProps {
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
cache?: boolean;
|
||||||
|
/**
|
||||||
|
* A comma-separated list of image sources with width descriptors.
|
||||||
|
* Works like the HTML img srcSet attribute.
|
||||||
|
* @example "small.jpg 300w, medium.jpg 600w, large.jpg 900w"
|
||||||
|
*/
|
||||||
|
srcSet?: SrcSet;
|
||||||
|
/**
|
||||||
|
* The intended display width of the image, used to select the best source
|
||||||
|
* from srcSet. Accepts a number (in points) or a string.
|
||||||
|
* Works like the HTML img sizes attribute.
|
||||||
|
* @example 300
|
||||||
|
* @example "300"
|
||||||
|
*/
|
||||||
|
sizes?: Sizes;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ImageWithSrcProp extends BaseImageProps {
|
||||||
|
src: SourceObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ImageWithSourceProp extends BaseImageProps {
|
||||||
|
source: SourceObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
type ImageProps = ImageWithSrcProp | ImageWithSourceProp;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A React component for displaying network or local (Node only) JPG or
|
||||||
|
* PNG images, as well as base64 encoded image strings.
|
||||||
|
*/
|
||||||
|
export class Image extends React.Component<ImageProps> {}
|
||||||
|
|
||||||
|
interface BaseImageBackgroundProps extends NodeProps {
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
cache?: boolean;
|
||||||
|
/**
|
||||||
|
* A comma-separated list of image sources with width descriptors.
|
||||||
|
* Works like the HTML img srcSet attribute.
|
||||||
|
* @example "small.jpg 300w, medium.jpg 600w, large.jpg 900w"
|
||||||
|
*/
|
||||||
|
srcSet?: SrcSet;
|
||||||
|
/**
|
||||||
|
* The intended display width of the image, used to select the best source
|
||||||
|
* from srcSet. Accepts a number (in points) or a string.
|
||||||
|
* @example 300
|
||||||
|
*/
|
||||||
|
sizes?: Sizes;
|
||||||
|
/**
|
||||||
|
* Style applied to the background image.
|
||||||
|
*/
|
||||||
|
imageStyle?: Style;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ImageBackgroundWithSrcProp extends BaseImageBackgroundProps {
|
||||||
|
src: SourceObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ImageBackgroundWithSourceProp extends BaseImageBackgroundProps {
|
||||||
|
source: SourceObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
type ImageBackgroundProps =
|
||||||
|
| ImageBackgroundWithSrcProp
|
||||||
|
| ImageBackgroundWithSourceProp;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A React component for displaying an image behind child content.
|
||||||
|
* Compatible with React Native's ImageBackground component.
|
||||||
|
* @see https://reactnative.dev/docs/imagebackground
|
||||||
|
*/
|
||||||
|
export class ImageBackground extends React.Component<
|
||||||
|
React.PropsWithChildren<ImageBackgroundProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface TextProps extends NodeProps {
|
||||||
|
id?: string;
|
||||||
|
/**
|
||||||
|
* Enable/disable page wrapping for element.
|
||||||
|
* @see https://react-pdf.org/components#page-wrapping
|
||||||
|
*/
|
||||||
|
wrap?: boolean;
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
render?: (props: {
|
||||||
|
pageNumber: number;
|
||||||
|
totalPages: number;
|
||||||
|
subPageNumber: number;
|
||||||
|
subPageTotalPages: number;
|
||||||
|
}) => React.ReactNode;
|
||||||
|
/**
|
||||||
|
* Override the default hyphenation-callback
|
||||||
|
* @see https://react-pdf.org/fonts#registerhyphenationcallback
|
||||||
|
*/
|
||||||
|
hyphenationCallback?: HyphenationCallback;
|
||||||
|
/**
|
||||||
|
* Specifies the minimum number of lines in a text element that must be shown at the bottom of a page or its container.
|
||||||
|
* @see https://react-pdf.org/advanced#orphan-&-widow-protection
|
||||||
|
*/
|
||||||
|
orphans?: number;
|
||||||
|
/**
|
||||||
|
* Specifies the minimum number of lines in a text element that must be shown at the top of a page or its container..
|
||||||
|
* @see https://react-pdf.org/advanced#orphan-&-widow-protection
|
||||||
|
*/
|
||||||
|
widows?: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface SVGTextProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
x: string | number;
|
||||||
|
y: string | number;
|
||||||
|
/**
|
||||||
|
* Override the default hyphenation-callback
|
||||||
|
* @see https://react-pdf.org/fonts#registerhyphenationcallback
|
||||||
|
*/
|
||||||
|
hyphenationCallback?: HyphenationCallback;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A React component for displaying text. Text supports nesting of other
|
||||||
|
* Text or Link components to create inline styling.
|
||||||
|
*/
|
||||||
|
export class Text extends React.Component<
|
||||||
|
React.PropsWithChildren<TextProps> | SVGTextProps
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface LinkProps extends NodeProps {
|
||||||
|
/**
|
||||||
|
* Enable/disable page wrapping for element.
|
||||||
|
* @see https://react-pdf.org/components#page-wrapping
|
||||||
|
*/
|
||||||
|
wrap?: boolean;
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
href?: string;
|
||||||
|
src?: string;
|
||||||
|
/**
|
||||||
|
* Extends the clickable area of the link beyond its visible bounds.
|
||||||
|
* Accepts a number (applied to all sides) or an object with top, bottom, left, right.
|
||||||
|
* @see https://reactnative.dev/docs/view#hitslop
|
||||||
|
*/
|
||||||
|
hitSlop?: HitSlop;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A React component for displaying a hyperlink. Link’s can be nested
|
||||||
|
* inside a Text component, or being inside any other valid primitive.
|
||||||
|
*/
|
||||||
|
export class Link extends React.Component<
|
||||||
|
React.PropsWithChildren<LinkProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface FormCommonProps extends NodeProps {
|
||||||
|
name?: string;
|
||||||
|
required?: boolean;
|
||||||
|
noExport?: boolean;
|
||||||
|
readOnly?: boolean;
|
||||||
|
value?: number | string;
|
||||||
|
defaultValue?: number | string;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface FieldSetProps extends NodeProps {
|
||||||
|
name: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export class FieldSet extends React.Component<
|
||||||
|
React.PropsWithChildren<FieldSetProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
// see http://pdfkit.org/docs/forms.html#text_field_formatting
|
||||||
|
interface TextInputFormatting {
|
||||||
|
type:
|
||||||
|
| 'date'
|
||||||
|
| 'time'
|
||||||
|
| 'percent'
|
||||||
|
| 'number'
|
||||||
|
| 'zip'
|
||||||
|
| 'zipPlus4'
|
||||||
|
| 'phone'
|
||||||
|
| 'ssn';
|
||||||
|
param?: string;
|
||||||
|
nDec?: number;
|
||||||
|
sepComma?: boolean;
|
||||||
|
negStyle?: 'MinusBlack' | 'Red' | 'ParensBlack' | 'ParensRed';
|
||||||
|
currency?: string;
|
||||||
|
currencyPrepend?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
// see http://pdfkit.org/docs/forms.html#text_field_formatting
|
||||||
|
interface TextInputProps extends FormCommonProps {
|
||||||
|
align?: 'left' | 'center' | 'right';
|
||||||
|
multiline?: boolean;
|
||||||
|
/**
|
||||||
|
* The text will be masked (e.g. with asterisks).
|
||||||
|
*/
|
||||||
|
password?: boolean;
|
||||||
|
/**
|
||||||
|
* If set, text entered in the field is not spell-checked
|
||||||
|
*/
|
||||||
|
noSpell?: boolean;
|
||||||
|
format?: TextInputFormatting;
|
||||||
|
/**
|
||||||
|
* Sets the fontSize (default or 0 means auto sizing)
|
||||||
|
*/
|
||||||
|
fontSize?: number;
|
||||||
|
/**
|
||||||
|
* Sets the maximum length (characters) of the text in the field
|
||||||
|
*/
|
||||||
|
maxLength?: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
export class TextInput extends React.Component<TextInputProps> {}
|
||||||
|
|
||||||
|
interface CheckboxProps extends FormCommonProps {
|
||||||
|
backgroundColor?: string;
|
||||||
|
borderColor?: string;
|
||||||
|
checked?: boolean;
|
||||||
|
onState?: string;
|
||||||
|
offState?: string;
|
||||||
|
xMark?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
export class Checkbox extends React.Component<CheckboxProps> {}
|
||||||
|
|
||||||
|
interface SelectAndListPropsBase extends FormCommonProps {
|
||||||
|
sort?: boolean;
|
||||||
|
edit?: boolean;
|
||||||
|
multiSelect?: boolean;
|
||||||
|
noSpell?: boolean;
|
||||||
|
select?: string[];
|
||||||
|
}
|
||||||
|
|
||||||
|
type SelectAndListPropsWithEdit = SelectAndListPropsBase & {
|
||||||
|
edit: true | false;
|
||||||
|
noSpell: boolean;
|
||||||
|
};
|
||||||
|
|
||||||
|
type SelectAndListPropsWithNoSpell = SelectAndListPropsBase & {
|
||||||
|
edit: boolean;
|
||||||
|
noSpell: true | false;
|
||||||
|
};
|
||||||
|
|
||||||
|
type SelectAndListProps =
|
||||||
|
| SelectAndListPropsWithEdit
|
||||||
|
| SelectAndListPropsWithNoSpell;
|
||||||
|
|
||||||
|
export class Select extends React.Component<SelectAndListProps> {}
|
||||||
|
|
||||||
|
export class List extends React.Component<SelectAndListProps> {}
|
||||||
|
|
||||||
|
interface NoteProps extends NodeProps {
|
||||||
|
children: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export class Note extends React.Component<NoteProps> {}
|
||||||
|
|
||||||
|
interface CanvasProps extends NodeProps {
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
paint: (
|
||||||
|
painter: any,
|
||||||
|
availableWidth: number,
|
||||||
|
availableHeight: number,
|
||||||
|
) => null;
|
||||||
|
}
|
||||||
|
|
||||||
|
export class Canvas extends React.Component<CanvasProps> {}
|
||||||
|
|
||||||
|
interface SVGProps extends NodeProps, SVGPresentationAttributes {
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
width?: string | number;
|
||||||
|
height?: string | number;
|
||||||
|
viewBox?: string;
|
||||||
|
preserveAspectRatio?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <SVG /> element is a container that defines a new coordinate system and viewport. It is used as the outermost element of SVG documents.
|
||||||
|
*/
|
||||||
|
export class Svg extends React.Component<React.PropsWithChildren<SVGProps>> {}
|
||||||
|
|
||||||
|
interface LineProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
x1: string | number;
|
||||||
|
x2: string | number;
|
||||||
|
y1: string | number;
|
||||||
|
y2: string | number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Line /> element is used to create a line.
|
||||||
|
*/
|
||||||
|
export class Line extends React.Component<
|
||||||
|
React.PropsWithChildren<LineProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface PolylineProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
points: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Polyline /> element is used to create any shape that consists of only straight lines (that is connected at several points).
|
||||||
|
*/
|
||||||
|
export class Polyline extends React.Component<
|
||||||
|
React.PropsWithChildren<PolylineProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface PolygonProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
points: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Polygon /> element is used to create a graphic that contains at least three sides.
|
||||||
|
* Polygons are made of straight lines, and the shape is "closed" (all the lines connect up).
|
||||||
|
*/
|
||||||
|
export class Polygon extends React.Component<
|
||||||
|
React.PropsWithChildren<PolygonProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface PathProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
d: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Path /> element is the most powerful element in the SVG library of basic shapes. It can be used to create lines, curves, arcs, and more.
|
||||||
|
*/
|
||||||
|
export class Path extends React.Component<
|
||||||
|
React.PropsWithChildren<PathProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface RectProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
x?: string | number;
|
||||||
|
y?: string | number;
|
||||||
|
width: string | number;
|
||||||
|
height: string | number;
|
||||||
|
rx?: string | number;
|
||||||
|
ry?: string | number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Rect /> element is used to create a rectangle and variations of a rectangle shape.
|
||||||
|
*/
|
||||||
|
export class Rect extends React.Component<
|
||||||
|
React.PropsWithChildren<RectProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface CircleProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
cx?: string | number;
|
||||||
|
cy?: string | number;
|
||||||
|
r: string | number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Circle /> element is used to create a circle.
|
||||||
|
*/
|
||||||
|
export class Circle extends React.Component<
|
||||||
|
React.PropsWithChildren<CircleProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface EllipseProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
cx?: string | number;
|
||||||
|
cy?: string | number;
|
||||||
|
rx: string | number;
|
||||||
|
ry: string | number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Ellipse /> element is used to create an ellipse.
|
||||||
|
* An ellipse is closely related to a circle. The difference is that an ellipse has an x and a y radius that differs from each other, while a circle has equal x and y radius.
|
||||||
|
*/
|
||||||
|
export class Ellipse extends React.Component<
|
||||||
|
React.PropsWithChildren<EllipseProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface TspanProps extends SVGPresentationAttributes {
|
||||||
|
x?: string | number;
|
||||||
|
y?: string | number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Tspan /> element defines a subtext within a <Text /> element or another <Tspan /> element.
|
||||||
|
* It allows for adjustment of the style and/or position of that subtext as needed.
|
||||||
|
*/
|
||||||
|
export class Tspan extends React.Component<
|
||||||
|
React.PropsWithChildren<TspanProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface GProps extends SVGPresentationAttributes {
|
||||||
|
style?: Style;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <G /> SVG element is a container used to group other SVG elements.
|
||||||
|
* Transformations applied to the <G /> element are performed on its child elements, and its attributes are inherited by its children.
|
||||||
|
*/
|
||||||
|
export class G extends React.Component<React.PropsWithChildren<GProps>> {}
|
||||||
|
|
||||||
|
interface StopProps {
|
||||||
|
offset: string | number;
|
||||||
|
stopColor: string;
|
||||||
|
stopOpacity?: string | number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The SVG <Stop /> element defines a color and its position to use on a gradient. This element is always a child of a <LinearGradient /> or <RadialGradient /> element
|
||||||
|
*/
|
||||||
|
export class Stop extends React.Component<
|
||||||
|
React.PropsWithChildren<StopProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
// eslint-disable-next-line @typescript-eslint/no-empty-object-type
|
||||||
|
interface DefsProps {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Defs /> element is used to store graphical objects that will be used at a later time. Objects created inside a <Defs /> element are not rendered directly. To display them you have to reference them
|
||||||
|
*/
|
||||||
|
export class Defs extends React.Component<
|
||||||
|
React.PropsWithChildren<DefsProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface ClipPathProps {
|
||||||
|
id?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <ClipPath /> SVG element defines a clipping path, to be used by the clipPath property.
|
||||||
|
* A clipping path restricts the region to which paint can be applied. Conceptually, parts of the drawing that lie outside of the region bounded by the clipping path are not drawn.
|
||||||
|
*/
|
||||||
|
export class ClipPath extends React.Component<
|
||||||
|
React.PropsWithChildren<ClipPathProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface MarkerProps {
|
||||||
|
id: string;
|
||||||
|
viewBox?: string;
|
||||||
|
refX?: string | number;
|
||||||
|
refY?: string | number;
|
||||||
|
markerWidth?: string | number;
|
||||||
|
markerHeight?: string | number;
|
||||||
|
orient?: 'auto' | 'auto-start-reverse' | number;
|
||||||
|
markerUnits?: 'strokeWidth' | 'userSpaceOnUse';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Marker /> SVG element defines a graphic used for drawing arrows or polymarkers on a given <Path />, <Line />, <Polyline />, or <Polygon /> element.
|
||||||
|
* Markers can be attached to shapes using the markerStart, markerMid, and markerEnd properties.
|
||||||
|
*/
|
||||||
|
export class Marker extends React.Component<
|
||||||
|
React.PropsWithChildren<MarkerProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface LinearGradientProps {
|
||||||
|
id: string;
|
||||||
|
x1?: string | number;
|
||||||
|
x2?: string | number;
|
||||||
|
y1?: string | number;
|
||||||
|
y2?: string | number;
|
||||||
|
xlinkHref?: string;
|
||||||
|
gradientTransform?: string;
|
||||||
|
gradientUnits?: 'userSpaceOnUse' | 'objectBoundingBox';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <LinearGradient /> element lets authors define linear gradients that can be applied to fill or stroke of graphical elements.
|
||||||
|
*/
|
||||||
|
export class LinearGradient extends React.Component<
|
||||||
|
React.PropsWithChildren<LinearGradientProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface RadialGradientProps {
|
||||||
|
id: string;
|
||||||
|
cx?: string | number;
|
||||||
|
cy?: string | number;
|
||||||
|
r?: string | number;
|
||||||
|
fx?: string | number;
|
||||||
|
fy?: string | number;
|
||||||
|
xlinkHref?: string;
|
||||||
|
gradientTransform?: string;
|
||||||
|
gradientUnits?: 'userSpaceOnUse' | 'objectBoundingBox';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <RadialGradient /> element lets authors define radial gradients that can be applied to fill or stroke of graphical elements.
|
||||||
|
*/
|
||||||
|
export class RadialGradient extends React.Component<
|
||||||
|
React.PropsWithChildren<RadialGradientProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface BlobProviderParams {
|
||||||
|
blob: Blob | null;
|
||||||
|
url: string | null;
|
||||||
|
loading: boolean;
|
||||||
|
error: Error | null;
|
||||||
|
}
|
||||||
|
interface BlobProviderProps {
|
||||||
|
document: React.ReactElement<DocumentProps>;
|
||||||
|
children: (params: BlobProviderParams) => React.ReactNode;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Easy and declarative way of getting document's blob data without
|
||||||
|
* showing it on screen.
|
||||||
|
* @see https://react-pdf.org/advanced#on-the-fly-rendering
|
||||||
|
* @platform web
|
||||||
|
*/
|
||||||
|
export class BlobProvider extends React.Component<BlobProviderProps> {}
|
||||||
|
|
||||||
|
interface PDFViewerProps {
|
||||||
|
width?: number | string;
|
||||||
|
height?: number | string;
|
||||||
|
style?: Style | Style[];
|
||||||
|
className?: string;
|
||||||
|
children?: React.ReactElement<DocumentProps>;
|
||||||
|
innerRef?: React.Ref<HTMLIFrameElement>;
|
||||||
|
showToolbar?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Iframe PDF viewer for client-side generated documents.
|
||||||
|
* @platform web
|
||||||
|
*/
|
||||||
|
export class PDFViewer extends React.Component<PDFViewerProps> {}
|
||||||
|
|
||||||
|
interface PDFDownloadLinkProps
|
||||||
|
extends Omit<
|
||||||
|
React.AnchorHTMLAttributes<HTMLAnchorElement>,
|
||||||
|
'href' | 'children'
|
||||||
|
> {
|
||||||
|
/** PDF filename. Alias for anchor tag `download` attribute. */
|
||||||
|
fileName?: string;
|
||||||
|
document: React.ReactElement<DocumentProps>;
|
||||||
|
children?: React.ReactNode | React.FC<BlobProviderParams>;
|
||||||
|
onClick?: React.AnchorHTMLAttributes<HTMLAnchorElement>['onClick'] &
|
||||||
|
((
|
||||||
|
event: React.MouseEvent<HTMLAnchorElement, MouseEvent>,
|
||||||
|
instance: UsePDFInstance,
|
||||||
|
) => void);
|
||||||
|
ref?: React.Ref<HTMLAnchorElement> | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Anchor tag to enable generate and download PDF documents on the fly.
|
||||||
|
* @see https://react-pdf.org/advanced#on-the-fly-rendering
|
||||||
|
* @platform web
|
||||||
|
*/
|
||||||
|
export class PDFDownloadLink extends React.Component<PDFDownloadLinkProps> {}
|
||||||
|
|
||||||
|
interface UsePDFInstance {
|
||||||
|
loading: boolean;
|
||||||
|
blob: Blob | null;
|
||||||
|
url: string | null;
|
||||||
|
error: string | null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* React hook for creating and updating a PDF document instance
|
||||||
|
* @platform web
|
||||||
|
*/
|
||||||
|
export function usePDF(options?: {
|
||||||
|
document?: React.ReactElement<DocumentProps>;
|
||||||
|
}): [
|
||||||
|
UsePDFInstance,
|
||||||
|
(newDocument: React.ReactElement<DocumentProps>) => void,
|
||||||
|
];
|
||||||
|
|
||||||
|
export const Font: FontStore;
|
||||||
|
|
||||||
|
export const StyleSheet: {
|
||||||
|
create: <T extends Styles>(styles: T) => T;
|
||||||
|
};
|
||||||
|
|
||||||
|
export const version: any;
|
||||||
|
|
||||||
|
export const PDFRenderer: any;
|
||||||
|
|
||||||
|
export const pdf: (initialValue?: React.ReactElement<DocumentProps>) => {
|
||||||
|
container: any;
|
||||||
|
isDirty: () => boolean;
|
||||||
|
toString: () => string;
|
||||||
|
toBlob: () => Promise<Blob>;
|
||||||
|
toBuffer: () => Promise<NodeJS.ReadableStream>;
|
||||||
|
on: (event: 'change', callback: () => void) => void;
|
||||||
|
updateContainer: (
|
||||||
|
document: React.ReactElement<any>,
|
||||||
|
callback?: () => void,
|
||||||
|
) => void;
|
||||||
|
removeListener: (event: 'change', callback: () => void) => void;
|
||||||
|
};
|
||||||
|
|
||||||
|
export const renderToStream: (
|
||||||
|
document: React.ReactElement<DocumentProps>,
|
||||||
|
) => Promise<NodeJS.ReadableStream>;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated use the `renderToBuffer` method
|
||||||
|
*/
|
||||||
|
export const renderToString: (
|
||||||
|
document: React.ReactElement<DocumentProps>,
|
||||||
|
) => Promise<string>;
|
||||||
|
|
||||||
|
export const renderToFile: (
|
||||||
|
document: React.ReactElement<DocumentProps>,
|
||||||
|
filePath: string,
|
||||||
|
callback?: (output: NodeJS.ReadableStream, _filePath: string) => any,
|
||||||
|
) => Promise<NodeJS.ReadableStream>;
|
||||||
|
|
||||||
|
const render: typeof renderToFile;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Render document into a nodejs buffer
|
||||||
|
* @platform node
|
||||||
|
*/
|
||||||
|
export const renderToBuffer: (
|
||||||
|
document: React.ReactElement<ReactPDF.DocumentProps>,
|
||||||
|
) => Promise<Buffer>;
|
||||||
|
}
|
||||||
793
build_temp/.next/node_modules/@react-pdf/renderer-5f716e9bc7d68b8a/lib/react-pdf.browser.d.cts
generated
vendored
Normal file
793
build_temp/.next/node_modules/@react-pdf/renderer-5f716e9bc7d68b8a/lib/react-pdf.browser.d.cts
generated
vendored
Normal file
@@ -0,0 +1,793 @@
|
|||||||
|
/* eslint-disable max-classes-per-file */
|
||||||
|
|
||||||
|
import * as React from 'react';
|
||||||
|
import {
|
||||||
|
Style,
|
||||||
|
PageSize,
|
||||||
|
FontStore,
|
||||||
|
PDFVersion,
|
||||||
|
Orientation,
|
||||||
|
SourceObject,
|
||||||
|
SrcSet,
|
||||||
|
Sizes,
|
||||||
|
HyphenationCallback,
|
||||||
|
SVGPresentationAttributes,
|
||||||
|
Bookmark,
|
||||||
|
PageLayout,
|
||||||
|
PageMode,
|
||||||
|
HitSlop,
|
||||||
|
} from '@react-pdf/types';
|
||||||
|
|
||||||
|
declare class ReactPDF {
|
||||||
|
static default: typeof ReactPDF;
|
||||||
|
}
|
||||||
|
|
||||||
|
export = ReactPDF;
|
||||||
|
|
||||||
|
declare namespace ReactPDF {
|
||||||
|
interface Styles {
|
||||||
|
[key: string]: Style;
|
||||||
|
}
|
||||||
|
interface OnRenderProps {
|
||||||
|
blob?: Blob;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Permissions {
|
||||||
|
printing?: 'lowResolution' | 'highResolution';
|
||||||
|
modifying?: boolean;
|
||||||
|
copying?: boolean;
|
||||||
|
annotating?: boolean;
|
||||||
|
fillingForms?: boolean;
|
||||||
|
contentAccessibility?: boolean;
|
||||||
|
documentAssembly?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface DocumentProps {
|
||||||
|
style?: Style | Style[];
|
||||||
|
title?: string;
|
||||||
|
author?: string;
|
||||||
|
subject?: string;
|
||||||
|
creator?: string;
|
||||||
|
keywords?: string;
|
||||||
|
producer?: string;
|
||||||
|
language?: string;
|
||||||
|
creationDate?: Date;
|
||||||
|
modificationDate?: Date;
|
||||||
|
pdfVersion?: PDFVersion;
|
||||||
|
pageMode?: PageMode;
|
||||||
|
pageLayout?: PageLayout;
|
||||||
|
ownerPassword?: string;
|
||||||
|
userPassword?: string;
|
||||||
|
permissions?: Permissions;
|
||||||
|
onRender?: (props: OnRenderProps) => any;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This component represent the PDF document itself. It must be the root
|
||||||
|
* of your tree element structure, and under no circumstances should it be
|
||||||
|
* used as children of another react-pdf component. In addition, it should
|
||||||
|
* only have childs of type <Page />.
|
||||||
|
*/
|
||||||
|
export class Document extends React.Component<
|
||||||
|
React.PropsWithChildren<DocumentProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface NodeProps {
|
||||||
|
id?: string;
|
||||||
|
style?: Style | Style[];
|
||||||
|
/**
|
||||||
|
* Render component in all wrapped pages.
|
||||||
|
* @see https://react-pdf.org/advanced#fixed-components
|
||||||
|
*/
|
||||||
|
fixed?: boolean;
|
||||||
|
/**
|
||||||
|
* Force the wrapping algorithm to start a new page when rendering the
|
||||||
|
* element.
|
||||||
|
* @see https://react-pdf.org/advanced#page-breaks
|
||||||
|
*/
|
||||||
|
break?: boolean;
|
||||||
|
/**
|
||||||
|
* Hint that no page wrapping should occur between all sibling elements following the element within n points
|
||||||
|
* @see https://react-pdf.org/advanced#orphan-&-widow-protection
|
||||||
|
*/
|
||||||
|
minPresenceAhead?: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface PageProps extends NodeProps {
|
||||||
|
/**
|
||||||
|
* Enable page wrapping for this page.
|
||||||
|
* @see https://react-pdf.org/components#page-wrapping
|
||||||
|
*/
|
||||||
|
wrap?: boolean;
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
size?: PageSize;
|
||||||
|
orientation?: Orientation;
|
||||||
|
dpi?: number;
|
||||||
|
bookmark?: Bookmark;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents single page inside the PDF document, or a subset of them if
|
||||||
|
* using the wrapping feature. A <Document /> can contain as many pages as
|
||||||
|
* you want, but ensure not rendering a page inside any component besides
|
||||||
|
* Document.
|
||||||
|
*/
|
||||||
|
export class Page extends React.Component<
|
||||||
|
React.PropsWithChildren<PageProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface ViewProps extends NodeProps {
|
||||||
|
id?: string;
|
||||||
|
/**
|
||||||
|
* Enable/disable page wrapping for element.
|
||||||
|
* @see https://react-pdf.org/components#page-wrapping
|
||||||
|
*/
|
||||||
|
wrap?: boolean;
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
render?: (props: {
|
||||||
|
pageNumber: number;
|
||||||
|
subPageNumber: number;
|
||||||
|
}) => React.ReactNode;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The most fundamental component for building a UI and is designed to be
|
||||||
|
* nested inside other views and can have 0 to many children.
|
||||||
|
*/
|
||||||
|
export class View extends React.Component<
|
||||||
|
React.PropsWithChildren<ViewProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface BaseImageProps extends NodeProps {
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
cache?: boolean;
|
||||||
|
/**
|
||||||
|
* A comma-separated list of image sources with width descriptors.
|
||||||
|
* Works like the HTML img srcSet attribute.
|
||||||
|
* @example "small.jpg 300w, medium.jpg 600w, large.jpg 900w"
|
||||||
|
*/
|
||||||
|
srcSet?: SrcSet;
|
||||||
|
/**
|
||||||
|
* The intended display width of the image, used to select the best source
|
||||||
|
* from srcSet. Accepts a number (in points) or a string.
|
||||||
|
* Works like the HTML img sizes attribute.
|
||||||
|
* @example 300
|
||||||
|
* @example "300"
|
||||||
|
*/
|
||||||
|
sizes?: Sizes;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ImageWithSrcProp extends BaseImageProps {
|
||||||
|
src: SourceObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ImageWithSourceProp extends BaseImageProps {
|
||||||
|
source: SourceObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
type ImageProps = ImageWithSrcProp | ImageWithSourceProp;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A React component for displaying network or local (Node only) JPG or
|
||||||
|
* PNG images, as well as base64 encoded image strings.
|
||||||
|
*/
|
||||||
|
export class Image extends React.Component<ImageProps> {}
|
||||||
|
|
||||||
|
interface BaseImageBackgroundProps extends NodeProps {
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
cache?: boolean;
|
||||||
|
/**
|
||||||
|
* A comma-separated list of image sources with width descriptors.
|
||||||
|
* Works like the HTML img srcSet attribute.
|
||||||
|
* @example "small.jpg 300w, medium.jpg 600w, large.jpg 900w"
|
||||||
|
*/
|
||||||
|
srcSet?: SrcSet;
|
||||||
|
/**
|
||||||
|
* The intended display width of the image, used to select the best source
|
||||||
|
* from srcSet. Accepts a number (in points) or a string.
|
||||||
|
* @example 300
|
||||||
|
*/
|
||||||
|
sizes?: Sizes;
|
||||||
|
/**
|
||||||
|
* Style applied to the background image.
|
||||||
|
*/
|
||||||
|
imageStyle?: Style;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ImageBackgroundWithSrcProp extends BaseImageBackgroundProps {
|
||||||
|
src: SourceObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ImageBackgroundWithSourceProp extends BaseImageBackgroundProps {
|
||||||
|
source: SourceObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
type ImageBackgroundProps =
|
||||||
|
| ImageBackgroundWithSrcProp
|
||||||
|
| ImageBackgroundWithSourceProp;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A React component for displaying an image behind child content.
|
||||||
|
* Compatible with React Native's ImageBackground component.
|
||||||
|
* @see https://reactnative.dev/docs/imagebackground
|
||||||
|
*/
|
||||||
|
export class ImageBackground extends React.Component<
|
||||||
|
React.PropsWithChildren<ImageBackgroundProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface TextProps extends NodeProps {
|
||||||
|
id?: string;
|
||||||
|
/**
|
||||||
|
* Enable/disable page wrapping for element.
|
||||||
|
* @see https://react-pdf.org/components#page-wrapping
|
||||||
|
*/
|
||||||
|
wrap?: boolean;
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
render?: (props: {
|
||||||
|
pageNumber: number;
|
||||||
|
totalPages: number;
|
||||||
|
subPageNumber: number;
|
||||||
|
subPageTotalPages: number;
|
||||||
|
}) => React.ReactNode;
|
||||||
|
/**
|
||||||
|
* Override the default hyphenation-callback
|
||||||
|
* @see https://react-pdf.org/fonts#registerhyphenationcallback
|
||||||
|
*/
|
||||||
|
hyphenationCallback?: HyphenationCallback;
|
||||||
|
/**
|
||||||
|
* Specifies the minimum number of lines in a text element that must be shown at the bottom of a page or its container.
|
||||||
|
* @see https://react-pdf.org/advanced#orphan-&-widow-protection
|
||||||
|
*/
|
||||||
|
orphans?: number;
|
||||||
|
/**
|
||||||
|
* Specifies the minimum number of lines in a text element that must be shown at the top of a page or its container..
|
||||||
|
* @see https://react-pdf.org/advanced#orphan-&-widow-protection
|
||||||
|
*/
|
||||||
|
widows?: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface SVGTextProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
x: string | number;
|
||||||
|
y: string | number;
|
||||||
|
/**
|
||||||
|
* Override the default hyphenation-callback
|
||||||
|
* @see https://react-pdf.org/fonts#registerhyphenationcallback
|
||||||
|
*/
|
||||||
|
hyphenationCallback?: HyphenationCallback;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A React component for displaying text. Text supports nesting of other
|
||||||
|
* Text or Link components to create inline styling.
|
||||||
|
*/
|
||||||
|
export class Text extends React.Component<
|
||||||
|
React.PropsWithChildren<TextProps> | SVGTextProps
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface LinkProps extends NodeProps {
|
||||||
|
/**
|
||||||
|
* Enable/disable page wrapping for element.
|
||||||
|
* @see https://react-pdf.org/components#page-wrapping
|
||||||
|
*/
|
||||||
|
wrap?: boolean;
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
href?: string;
|
||||||
|
src?: string;
|
||||||
|
/**
|
||||||
|
* Extends the clickable area of the link beyond its visible bounds.
|
||||||
|
* Accepts a number (applied to all sides) or an object with top, bottom, left, right.
|
||||||
|
* @see https://reactnative.dev/docs/view#hitslop
|
||||||
|
*/
|
||||||
|
hitSlop?: HitSlop;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A React component for displaying a hyperlink. Link’s can be nested
|
||||||
|
* inside a Text component, or being inside any other valid primitive.
|
||||||
|
*/
|
||||||
|
export class Link extends React.Component<
|
||||||
|
React.PropsWithChildren<LinkProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface FormCommonProps extends NodeProps {
|
||||||
|
name?: string;
|
||||||
|
required?: boolean;
|
||||||
|
noExport?: boolean;
|
||||||
|
readOnly?: boolean;
|
||||||
|
value?: number | string;
|
||||||
|
defaultValue?: number | string;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface FieldSetProps extends NodeProps {
|
||||||
|
name: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export class FieldSet extends React.Component<
|
||||||
|
React.PropsWithChildren<FieldSetProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
// see http://pdfkit.org/docs/forms.html#text_field_formatting
|
||||||
|
interface TextInputFormatting {
|
||||||
|
type:
|
||||||
|
| 'date'
|
||||||
|
| 'time'
|
||||||
|
| 'percent'
|
||||||
|
| 'number'
|
||||||
|
| 'zip'
|
||||||
|
| 'zipPlus4'
|
||||||
|
| 'phone'
|
||||||
|
| 'ssn';
|
||||||
|
param?: string;
|
||||||
|
nDec?: number;
|
||||||
|
sepComma?: boolean;
|
||||||
|
negStyle?: 'MinusBlack' | 'Red' | 'ParensBlack' | 'ParensRed';
|
||||||
|
currency?: string;
|
||||||
|
currencyPrepend?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
// see http://pdfkit.org/docs/forms.html#text_field_formatting
|
||||||
|
interface TextInputProps extends FormCommonProps {
|
||||||
|
align?: 'left' | 'center' | 'right';
|
||||||
|
multiline?: boolean;
|
||||||
|
/**
|
||||||
|
* The text will be masked (e.g. with asterisks).
|
||||||
|
*/
|
||||||
|
password?: boolean;
|
||||||
|
/**
|
||||||
|
* If set, text entered in the field is not spell-checked
|
||||||
|
*/
|
||||||
|
noSpell?: boolean;
|
||||||
|
format?: TextInputFormatting;
|
||||||
|
/**
|
||||||
|
* Sets the fontSize (default or 0 means auto sizing)
|
||||||
|
*/
|
||||||
|
fontSize?: number;
|
||||||
|
/**
|
||||||
|
* Sets the maximum length (characters) of the text in the field
|
||||||
|
*/
|
||||||
|
maxLength?: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
export class TextInput extends React.Component<TextInputProps> {}
|
||||||
|
|
||||||
|
interface CheckboxProps extends FormCommonProps {
|
||||||
|
backgroundColor?: string;
|
||||||
|
borderColor?: string;
|
||||||
|
checked?: boolean;
|
||||||
|
onState?: string;
|
||||||
|
offState?: string;
|
||||||
|
xMark?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
export class Checkbox extends React.Component<CheckboxProps> {}
|
||||||
|
|
||||||
|
interface SelectAndListPropsBase extends FormCommonProps {
|
||||||
|
sort?: boolean;
|
||||||
|
edit?: boolean;
|
||||||
|
multiSelect?: boolean;
|
||||||
|
noSpell?: boolean;
|
||||||
|
select?: string[];
|
||||||
|
}
|
||||||
|
|
||||||
|
type SelectAndListPropsWithEdit = SelectAndListPropsBase & {
|
||||||
|
edit: true | false;
|
||||||
|
noSpell: boolean;
|
||||||
|
};
|
||||||
|
|
||||||
|
type SelectAndListPropsWithNoSpell = SelectAndListPropsBase & {
|
||||||
|
edit: boolean;
|
||||||
|
noSpell: true | false;
|
||||||
|
};
|
||||||
|
|
||||||
|
type SelectAndListProps =
|
||||||
|
| SelectAndListPropsWithEdit
|
||||||
|
| SelectAndListPropsWithNoSpell;
|
||||||
|
|
||||||
|
export class Select extends React.Component<SelectAndListProps> {}
|
||||||
|
|
||||||
|
export class List extends React.Component<SelectAndListProps> {}
|
||||||
|
|
||||||
|
interface NoteProps extends NodeProps {
|
||||||
|
children: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export class Note extends React.Component<NoteProps> {}
|
||||||
|
|
||||||
|
interface CanvasProps extends NodeProps {
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
paint: (
|
||||||
|
painter: any,
|
||||||
|
availableWidth: number,
|
||||||
|
availableHeight: number,
|
||||||
|
) => null;
|
||||||
|
}
|
||||||
|
|
||||||
|
export class Canvas extends React.Component<CanvasProps> {}
|
||||||
|
|
||||||
|
interface SVGProps extends NodeProps, SVGPresentationAttributes {
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
width?: string | number;
|
||||||
|
height?: string | number;
|
||||||
|
viewBox?: string;
|
||||||
|
preserveAspectRatio?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <SVG /> element is a container that defines a new coordinate system and viewport. It is used as the outermost element of SVG documents.
|
||||||
|
*/
|
||||||
|
export class Svg extends React.Component<React.PropsWithChildren<SVGProps>> {}
|
||||||
|
|
||||||
|
interface LineProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
x1: string | number;
|
||||||
|
x2: string | number;
|
||||||
|
y1: string | number;
|
||||||
|
y2: string | number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Line /> element is used to create a line.
|
||||||
|
*/
|
||||||
|
export class Line extends React.Component<
|
||||||
|
React.PropsWithChildren<LineProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface PolylineProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
points: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Polyline /> element is used to create any shape that consists of only straight lines (that is connected at several points).
|
||||||
|
*/
|
||||||
|
export class Polyline extends React.Component<
|
||||||
|
React.PropsWithChildren<PolylineProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface PolygonProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
points: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Polygon /> element is used to create a graphic that contains at least three sides.
|
||||||
|
* Polygons are made of straight lines, and the shape is "closed" (all the lines connect up).
|
||||||
|
*/
|
||||||
|
export class Polygon extends React.Component<
|
||||||
|
React.PropsWithChildren<PolygonProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface PathProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
d: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Path /> element is the most powerful element in the SVG library of basic shapes. It can be used to create lines, curves, arcs, and more.
|
||||||
|
*/
|
||||||
|
export class Path extends React.Component<
|
||||||
|
React.PropsWithChildren<PathProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface RectProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
x?: string | number;
|
||||||
|
y?: string | number;
|
||||||
|
width: string | number;
|
||||||
|
height: string | number;
|
||||||
|
rx?: string | number;
|
||||||
|
ry?: string | number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Rect /> element is used to create a rectangle and variations of a rectangle shape.
|
||||||
|
*/
|
||||||
|
export class Rect extends React.Component<
|
||||||
|
React.PropsWithChildren<RectProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface CircleProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
cx?: string | number;
|
||||||
|
cy?: string | number;
|
||||||
|
r: string | number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Circle /> element is used to create a circle.
|
||||||
|
*/
|
||||||
|
export class Circle extends React.Component<
|
||||||
|
React.PropsWithChildren<CircleProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface EllipseProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
cx?: string | number;
|
||||||
|
cy?: string | number;
|
||||||
|
rx: string | number;
|
||||||
|
ry: string | number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Ellipse /> element is used to create an ellipse.
|
||||||
|
* An ellipse is closely related to a circle. The difference is that an ellipse has an x and a y radius that differs from each other, while a circle has equal x and y radius.
|
||||||
|
*/
|
||||||
|
export class Ellipse extends React.Component<
|
||||||
|
React.PropsWithChildren<EllipseProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface TspanProps extends SVGPresentationAttributes {
|
||||||
|
x?: string | number;
|
||||||
|
y?: string | number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Tspan /> element defines a subtext within a <Text /> element or another <Tspan /> element.
|
||||||
|
* It allows for adjustment of the style and/or position of that subtext as needed.
|
||||||
|
*/
|
||||||
|
export class Tspan extends React.Component<
|
||||||
|
React.PropsWithChildren<TspanProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface GProps extends SVGPresentationAttributes {
|
||||||
|
style?: Style;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <G /> SVG element is a container used to group other SVG elements.
|
||||||
|
* Transformations applied to the <G /> element are performed on its child elements, and its attributes are inherited by its children.
|
||||||
|
*/
|
||||||
|
export class G extends React.Component<React.PropsWithChildren<GProps>> {}
|
||||||
|
|
||||||
|
interface StopProps {
|
||||||
|
offset: string | number;
|
||||||
|
stopColor: string;
|
||||||
|
stopOpacity?: string | number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The SVG <Stop /> element defines a color and its position to use on a gradient. This element is always a child of a <LinearGradient /> or <RadialGradient /> element
|
||||||
|
*/
|
||||||
|
export class Stop extends React.Component<
|
||||||
|
React.PropsWithChildren<StopProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
// eslint-disable-next-line @typescript-eslint/no-empty-object-type
|
||||||
|
interface DefsProps {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Defs /> element is used to store graphical objects that will be used at a later time. Objects created inside a <Defs /> element are not rendered directly. To display them you have to reference them
|
||||||
|
*/
|
||||||
|
export class Defs extends React.Component<
|
||||||
|
React.PropsWithChildren<DefsProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface ClipPathProps {
|
||||||
|
id?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <ClipPath /> SVG element defines a clipping path, to be used by the clipPath property.
|
||||||
|
* A clipping path restricts the region to which paint can be applied. Conceptually, parts of the drawing that lie outside of the region bounded by the clipping path are not drawn.
|
||||||
|
*/
|
||||||
|
export class ClipPath extends React.Component<
|
||||||
|
React.PropsWithChildren<ClipPathProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface MarkerProps {
|
||||||
|
id: string;
|
||||||
|
viewBox?: string;
|
||||||
|
refX?: string | number;
|
||||||
|
refY?: string | number;
|
||||||
|
markerWidth?: string | number;
|
||||||
|
markerHeight?: string | number;
|
||||||
|
orient?: 'auto' | 'auto-start-reverse' | number;
|
||||||
|
markerUnits?: 'strokeWidth' | 'userSpaceOnUse';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Marker /> SVG element defines a graphic used for drawing arrows or polymarkers on a given <Path />, <Line />, <Polyline />, or <Polygon /> element.
|
||||||
|
* Markers can be attached to shapes using the markerStart, markerMid, and markerEnd properties.
|
||||||
|
*/
|
||||||
|
export class Marker extends React.Component<
|
||||||
|
React.PropsWithChildren<MarkerProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface LinearGradientProps {
|
||||||
|
id: string;
|
||||||
|
x1?: string | number;
|
||||||
|
x2?: string | number;
|
||||||
|
y1?: string | number;
|
||||||
|
y2?: string | number;
|
||||||
|
xlinkHref?: string;
|
||||||
|
gradientTransform?: string;
|
||||||
|
gradientUnits?: 'userSpaceOnUse' | 'objectBoundingBox';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <LinearGradient /> element lets authors define linear gradients that can be applied to fill or stroke of graphical elements.
|
||||||
|
*/
|
||||||
|
export class LinearGradient extends React.Component<
|
||||||
|
React.PropsWithChildren<LinearGradientProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface RadialGradientProps {
|
||||||
|
id: string;
|
||||||
|
cx?: string | number;
|
||||||
|
cy?: string | number;
|
||||||
|
r?: string | number;
|
||||||
|
fx?: string | number;
|
||||||
|
fy?: string | number;
|
||||||
|
xlinkHref?: string;
|
||||||
|
gradientTransform?: string;
|
||||||
|
gradientUnits?: 'userSpaceOnUse' | 'objectBoundingBox';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <RadialGradient /> element lets authors define radial gradients that can be applied to fill or stroke of graphical elements.
|
||||||
|
*/
|
||||||
|
export class RadialGradient extends React.Component<
|
||||||
|
React.PropsWithChildren<RadialGradientProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface BlobProviderParams {
|
||||||
|
blob: Blob | null;
|
||||||
|
url: string | null;
|
||||||
|
loading: boolean;
|
||||||
|
error: Error | null;
|
||||||
|
}
|
||||||
|
interface BlobProviderProps {
|
||||||
|
document: React.ReactElement<DocumentProps>;
|
||||||
|
children: (params: BlobProviderParams) => React.ReactNode;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Easy and declarative way of getting document's blob data without
|
||||||
|
* showing it on screen.
|
||||||
|
* @see https://react-pdf.org/advanced#on-the-fly-rendering
|
||||||
|
* @platform web
|
||||||
|
*/
|
||||||
|
export class BlobProvider extends React.Component<BlobProviderProps> {}
|
||||||
|
|
||||||
|
interface PDFViewerProps {
|
||||||
|
width?: number | string;
|
||||||
|
height?: number | string;
|
||||||
|
style?: Style | Style[];
|
||||||
|
className?: string;
|
||||||
|
children?: React.ReactElement<DocumentProps>;
|
||||||
|
innerRef?: React.Ref<HTMLIFrameElement>;
|
||||||
|
showToolbar?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Iframe PDF viewer for client-side generated documents.
|
||||||
|
* @platform web
|
||||||
|
*/
|
||||||
|
export class PDFViewer extends React.Component<PDFViewerProps> {}
|
||||||
|
|
||||||
|
interface PDFDownloadLinkProps
|
||||||
|
extends Omit<
|
||||||
|
React.AnchorHTMLAttributes<HTMLAnchorElement>,
|
||||||
|
'href' | 'children'
|
||||||
|
> {
|
||||||
|
/** PDF filename. Alias for anchor tag `download` attribute. */
|
||||||
|
fileName?: string;
|
||||||
|
document: React.ReactElement<DocumentProps>;
|
||||||
|
children?: React.ReactNode | React.FC<BlobProviderParams>;
|
||||||
|
onClick?: React.AnchorHTMLAttributes<HTMLAnchorElement>['onClick'] &
|
||||||
|
((
|
||||||
|
event: React.MouseEvent<HTMLAnchorElement, MouseEvent>,
|
||||||
|
instance: UsePDFInstance,
|
||||||
|
) => void);
|
||||||
|
ref?: React.Ref<HTMLAnchorElement> | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Anchor tag to enable generate and download PDF documents on the fly.
|
||||||
|
* @see https://react-pdf.org/advanced#on-the-fly-rendering
|
||||||
|
* @platform web
|
||||||
|
*/
|
||||||
|
export class PDFDownloadLink extends React.Component<PDFDownloadLinkProps> {}
|
||||||
|
|
||||||
|
interface UsePDFInstance {
|
||||||
|
loading: boolean;
|
||||||
|
blob: Blob | null;
|
||||||
|
url: string | null;
|
||||||
|
error: string | null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* React hook for creating and updating a PDF document instance
|
||||||
|
* @platform web
|
||||||
|
*/
|
||||||
|
export function usePDF(options?: {
|
||||||
|
document?: React.ReactElement<DocumentProps>;
|
||||||
|
}): [
|
||||||
|
UsePDFInstance,
|
||||||
|
(newDocument: React.ReactElement<DocumentProps>) => void,
|
||||||
|
];
|
||||||
|
|
||||||
|
export const Font: FontStore;
|
||||||
|
|
||||||
|
export const StyleSheet: {
|
||||||
|
create: <T extends Styles>(styles: T) => T;
|
||||||
|
};
|
||||||
|
|
||||||
|
export const version: any;
|
||||||
|
|
||||||
|
export const PDFRenderer: any;
|
||||||
|
|
||||||
|
export const pdf: (initialValue?: React.ReactElement<DocumentProps>) => {
|
||||||
|
container: any;
|
||||||
|
isDirty: () => boolean;
|
||||||
|
toString: () => string;
|
||||||
|
toBlob: () => Promise<Blob>;
|
||||||
|
toBuffer: () => Promise<NodeJS.ReadableStream>;
|
||||||
|
on: (event: 'change', callback: () => void) => void;
|
||||||
|
updateContainer: (
|
||||||
|
document: React.ReactElement<any>,
|
||||||
|
callback?: () => void,
|
||||||
|
) => void;
|
||||||
|
removeListener: (event: 'change', callback: () => void) => void;
|
||||||
|
};
|
||||||
|
|
||||||
|
export const renderToStream: (
|
||||||
|
document: React.ReactElement<DocumentProps>,
|
||||||
|
) => Promise<NodeJS.ReadableStream>;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated use the `renderToBuffer` method
|
||||||
|
*/
|
||||||
|
export const renderToString: (
|
||||||
|
document: React.ReactElement<DocumentProps>,
|
||||||
|
) => Promise<string>;
|
||||||
|
|
||||||
|
export const renderToFile: (
|
||||||
|
document: React.ReactElement<DocumentProps>,
|
||||||
|
filePath: string,
|
||||||
|
callback?: (output: NodeJS.ReadableStream, _filePath: string) => any,
|
||||||
|
) => Promise<NodeJS.ReadableStream>;
|
||||||
|
|
||||||
|
const render: typeof renderToFile;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Render document into a nodejs buffer
|
||||||
|
* @platform node
|
||||||
|
*/
|
||||||
|
export const renderToBuffer: (
|
||||||
|
document: React.ReactElement<ReactPDF.DocumentProps>,
|
||||||
|
) => Promise<Buffer>;
|
||||||
|
}
|
||||||
793
build_temp/.next/node_modules/@react-pdf/renderer-5f716e9bc7d68b8a/lib/react-pdf.browser.d.ts
generated
vendored
Normal file
793
build_temp/.next/node_modules/@react-pdf/renderer-5f716e9bc7d68b8a/lib/react-pdf.browser.d.ts
generated
vendored
Normal file
@@ -0,0 +1,793 @@
|
|||||||
|
/* eslint-disable max-classes-per-file */
|
||||||
|
|
||||||
|
import * as React from 'react';
|
||||||
|
import {
|
||||||
|
Style,
|
||||||
|
PageSize,
|
||||||
|
FontStore,
|
||||||
|
PDFVersion,
|
||||||
|
Orientation,
|
||||||
|
SourceObject,
|
||||||
|
SrcSet,
|
||||||
|
Sizes,
|
||||||
|
HyphenationCallback,
|
||||||
|
SVGPresentationAttributes,
|
||||||
|
Bookmark,
|
||||||
|
PageLayout,
|
||||||
|
PageMode,
|
||||||
|
HitSlop,
|
||||||
|
} from '@react-pdf/types';
|
||||||
|
|
||||||
|
declare class ReactPDF {
|
||||||
|
static default: typeof ReactPDF;
|
||||||
|
}
|
||||||
|
|
||||||
|
export = ReactPDF;
|
||||||
|
|
||||||
|
declare namespace ReactPDF {
|
||||||
|
interface Styles {
|
||||||
|
[key: string]: Style;
|
||||||
|
}
|
||||||
|
interface OnRenderProps {
|
||||||
|
blob?: Blob;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Permissions {
|
||||||
|
printing?: 'lowResolution' | 'highResolution';
|
||||||
|
modifying?: boolean;
|
||||||
|
copying?: boolean;
|
||||||
|
annotating?: boolean;
|
||||||
|
fillingForms?: boolean;
|
||||||
|
contentAccessibility?: boolean;
|
||||||
|
documentAssembly?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface DocumentProps {
|
||||||
|
style?: Style | Style[];
|
||||||
|
title?: string;
|
||||||
|
author?: string;
|
||||||
|
subject?: string;
|
||||||
|
creator?: string;
|
||||||
|
keywords?: string;
|
||||||
|
producer?: string;
|
||||||
|
language?: string;
|
||||||
|
creationDate?: Date;
|
||||||
|
modificationDate?: Date;
|
||||||
|
pdfVersion?: PDFVersion;
|
||||||
|
pageMode?: PageMode;
|
||||||
|
pageLayout?: PageLayout;
|
||||||
|
ownerPassword?: string;
|
||||||
|
userPassword?: string;
|
||||||
|
permissions?: Permissions;
|
||||||
|
onRender?: (props: OnRenderProps) => any;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This component represent the PDF document itself. It must be the root
|
||||||
|
* of your tree element structure, and under no circumstances should it be
|
||||||
|
* used as children of another react-pdf component. In addition, it should
|
||||||
|
* only have childs of type <Page />.
|
||||||
|
*/
|
||||||
|
export class Document extends React.Component<
|
||||||
|
React.PropsWithChildren<DocumentProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface NodeProps {
|
||||||
|
id?: string;
|
||||||
|
style?: Style | Style[];
|
||||||
|
/**
|
||||||
|
* Render component in all wrapped pages.
|
||||||
|
* @see https://react-pdf.org/advanced#fixed-components
|
||||||
|
*/
|
||||||
|
fixed?: boolean;
|
||||||
|
/**
|
||||||
|
* Force the wrapping algorithm to start a new page when rendering the
|
||||||
|
* element.
|
||||||
|
* @see https://react-pdf.org/advanced#page-breaks
|
||||||
|
*/
|
||||||
|
break?: boolean;
|
||||||
|
/**
|
||||||
|
* Hint that no page wrapping should occur between all sibling elements following the element within n points
|
||||||
|
* @see https://react-pdf.org/advanced#orphan-&-widow-protection
|
||||||
|
*/
|
||||||
|
minPresenceAhead?: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface PageProps extends NodeProps {
|
||||||
|
/**
|
||||||
|
* Enable page wrapping for this page.
|
||||||
|
* @see https://react-pdf.org/components#page-wrapping
|
||||||
|
*/
|
||||||
|
wrap?: boolean;
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
size?: PageSize;
|
||||||
|
orientation?: Orientation;
|
||||||
|
dpi?: number;
|
||||||
|
bookmark?: Bookmark;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents single page inside the PDF document, or a subset of them if
|
||||||
|
* using the wrapping feature. A <Document /> can contain as many pages as
|
||||||
|
* you want, but ensure not rendering a page inside any component besides
|
||||||
|
* Document.
|
||||||
|
*/
|
||||||
|
export class Page extends React.Component<
|
||||||
|
React.PropsWithChildren<PageProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface ViewProps extends NodeProps {
|
||||||
|
id?: string;
|
||||||
|
/**
|
||||||
|
* Enable/disable page wrapping for element.
|
||||||
|
* @see https://react-pdf.org/components#page-wrapping
|
||||||
|
*/
|
||||||
|
wrap?: boolean;
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
render?: (props: {
|
||||||
|
pageNumber: number;
|
||||||
|
subPageNumber: number;
|
||||||
|
}) => React.ReactNode;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The most fundamental component for building a UI and is designed to be
|
||||||
|
* nested inside other views and can have 0 to many children.
|
||||||
|
*/
|
||||||
|
export class View extends React.Component<
|
||||||
|
React.PropsWithChildren<ViewProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface BaseImageProps extends NodeProps {
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
cache?: boolean;
|
||||||
|
/**
|
||||||
|
* A comma-separated list of image sources with width descriptors.
|
||||||
|
* Works like the HTML img srcSet attribute.
|
||||||
|
* @example "small.jpg 300w, medium.jpg 600w, large.jpg 900w"
|
||||||
|
*/
|
||||||
|
srcSet?: SrcSet;
|
||||||
|
/**
|
||||||
|
* The intended display width of the image, used to select the best source
|
||||||
|
* from srcSet. Accepts a number (in points) or a string.
|
||||||
|
* Works like the HTML img sizes attribute.
|
||||||
|
* @example 300
|
||||||
|
* @example "300"
|
||||||
|
*/
|
||||||
|
sizes?: Sizes;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ImageWithSrcProp extends BaseImageProps {
|
||||||
|
src: SourceObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ImageWithSourceProp extends BaseImageProps {
|
||||||
|
source: SourceObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
type ImageProps = ImageWithSrcProp | ImageWithSourceProp;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A React component for displaying network or local (Node only) JPG or
|
||||||
|
* PNG images, as well as base64 encoded image strings.
|
||||||
|
*/
|
||||||
|
export class Image extends React.Component<ImageProps> {}
|
||||||
|
|
||||||
|
interface BaseImageBackgroundProps extends NodeProps {
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
cache?: boolean;
|
||||||
|
/**
|
||||||
|
* A comma-separated list of image sources with width descriptors.
|
||||||
|
* Works like the HTML img srcSet attribute.
|
||||||
|
* @example "small.jpg 300w, medium.jpg 600w, large.jpg 900w"
|
||||||
|
*/
|
||||||
|
srcSet?: SrcSet;
|
||||||
|
/**
|
||||||
|
* The intended display width of the image, used to select the best source
|
||||||
|
* from srcSet. Accepts a number (in points) or a string.
|
||||||
|
* @example 300
|
||||||
|
*/
|
||||||
|
sizes?: Sizes;
|
||||||
|
/**
|
||||||
|
* Style applied to the background image.
|
||||||
|
*/
|
||||||
|
imageStyle?: Style;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ImageBackgroundWithSrcProp extends BaseImageBackgroundProps {
|
||||||
|
src: SourceObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ImageBackgroundWithSourceProp extends BaseImageBackgroundProps {
|
||||||
|
source: SourceObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
type ImageBackgroundProps =
|
||||||
|
| ImageBackgroundWithSrcProp
|
||||||
|
| ImageBackgroundWithSourceProp;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A React component for displaying an image behind child content.
|
||||||
|
* Compatible with React Native's ImageBackground component.
|
||||||
|
* @see https://reactnative.dev/docs/imagebackground
|
||||||
|
*/
|
||||||
|
export class ImageBackground extends React.Component<
|
||||||
|
React.PropsWithChildren<ImageBackgroundProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface TextProps extends NodeProps {
|
||||||
|
id?: string;
|
||||||
|
/**
|
||||||
|
* Enable/disable page wrapping for element.
|
||||||
|
* @see https://react-pdf.org/components#page-wrapping
|
||||||
|
*/
|
||||||
|
wrap?: boolean;
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
render?: (props: {
|
||||||
|
pageNumber: number;
|
||||||
|
totalPages: number;
|
||||||
|
subPageNumber: number;
|
||||||
|
subPageTotalPages: number;
|
||||||
|
}) => React.ReactNode;
|
||||||
|
/**
|
||||||
|
* Override the default hyphenation-callback
|
||||||
|
* @see https://react-pdf.org/fonts#registerhyphenationcallback
|
||||||
|
*/
|
||||||
|
hyphenationCallback?: HyphenationCallback;
|
||||||
|
/**
|
||||||
|
* Specifies the minimum number of lines in a text element that must be shown at the bottom of a page or its container.
|
||||||
|
* @see https://react-pdf.org/advanced#orphan-&-widow-protection
|
||||||
|
*/
|
||||||
|
orphans?: number;
|
||||||
|
/**
|
||||||
|
* Specifies the minimum number of lines in a text element that must be shown at the top of a page or its container..
|
||||||
|
* @see https://react-pdf.org/advanced#orphan-&-widow-protection
|
||||||
|
*/
|
||||||
|
widows?: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface SVGTextProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
x: string | number;
|
||||||
|
y: string | number;
|
||||||
|
/**
|
||||||
|
* Override the default hyphenation-callback
|
||||||
|
* @see https://react-pdf.org/fonts#registerhyphenationcallback
|
||||||
|
*/
|
||||||
|
hyphenationCallback?: HyphenationCallback;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A React component for displaying text. Text supports nesting of other
|
||||||
|
* Text or Link components to create inline styling.
|
||||||
|
*/
|
||||||
|
export class Text extends React.Component<
|
||||||
|
React.PropsWithChildren<TextProps> | SVGTextProps
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface LinkProps extends NodeProps {
|
||||||
|
/**
|
||||||
|
* Enable/disable page wrapping for element.
|
||||||
|
* @see https://react-pdf.org/components#page-wrapping
|
||||||
|
*/
|
||||||
|
wrap?: boolean;
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
href?: string;
|
||||||
|
src?: string;
|
||||||
|
/**
|
||||||
|
* Extends the clickable area of the link beyond its visible bounds.
|
||||||
|
* Accepts a number (applied to all sides) or an object with top, bottom, left, right.
|
||||||
|
* @see https://reactnative.dev/docs/view#hitslop
|
||||||
|
*/
|
||||||
|
hitSlop?: HitSlop;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A React component for displaying a hyperlink. Link’s can be nested
|
||||||
|
* inside a Text component, or being inside any other valid primitive.
|
||||||
|
*/
|
||||||
|
export class Link extends React.Component<
|
||||||
|
React.PropsWithChildren<LinkProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface FormCommonProps extends NodeProps {
|
||||||
|
name?: string;
|
||||||
|
required?: boolean;
|
||||||
|
noExport?: boolean;
|
||||||
|
readOnly?: boolean;
|
||||||
|
value?: number | string;
|
||||||
|
defaultValue?: number | string;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface FieldSetProps extends NodeProps {
|
||||||
|
name: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export class FieldSet extends React.Component<
|
||||||
|
React.PropsWithChildren<FieldSetProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
// see http://pdfkit.org/docs/forms.html#text_field_formatting
|
||||||
|
interface TextInputFormatting {
|
||||||
|
type:
|
||||||
|
| 'date'
|
||||||
|
| 'time'
|
||||||
|
| 'percent'
|
||||||
|
| 'number'
|
||||||
|
| 'zip'
|
||||||
|
| 'zipPlus4'
|
||||||
|
| 'phone'
|
||||||
|
| 'ssn';
|
||||||
|
param?: string;
|
||||||
|
nDec?: number;
|
||||||
|
sepComma?: boolean;
|
||||||
|
negStyle?: 'MinusBlack' | 'Red' | 'ParensBlack' | 'ParensRed';
|
||||||
|
currency?: string;
|
||||||
|
currencyPrepend?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
// see http://pdfkit.org/docs/forms.html#text_field_formatting
|
||||||
|
interface TextInputProps extends FormCommonProps {
|
||||||
|
align?: 'left' | 'center' | 'right';
|
||||||
|
multiline?: boolean;
|
||||||
|
/**
|
||||||
|
* The text will be masked (e.g. with asterisks).
|
||||||
|
*/
|
||||||
|
password?: boolean;
|
||||||
|
/**
|
||||||
|
* If set, text entered in the field is not spell-checked
|
||||||
|
*/
|
||||||
|
noSpell?: boolean;
|
||||||
|
format?: TextInputFormatting;
|
||||||
|
/**
|
||||||
|
* Sets the fontSize (default or 0 means auto sizing)
|
||||||
|
*/
|
||||||
|
fontSize?: number;
|
||||||
|
/**
|
||||||
|
* Sets the maximum length (characters) of the text in the field
|
||||||
|
*/
|
||||||
|
maxLength?: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
export class TextInput extends React.Component<TextInputProps> {}
|
||||||
|
|
||||||
|
interface CheckboxProps extends FormCommonProps {
|
||||||
|
backgroundColor?: string;
|
||||||
|
borderColor?: string;
|
||||||
|
checked?: boolean;
|
||||||
|
onState?: string;
|
||||||
|
offState?: string;
|
||||||
|
xMark?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
export class Checkbox extends React.Component<CheckboxProps> {}
|
||||||
|
|
||||||
|
interface SelectAndListPropsBase extends FormCommonProps {
|
||||||
|
sort?: boolean;
|
||||||
|
edit?: boolean;
|
||||||
|
multiSelect?: boolean;
|
||||||
|
noSpell?: boolean;
|
||||||
|
select?: string[];
|
||||||
|
}
|
||||||
|
|
||||||
|
type SelectAndListPropsWithEdit = SelectAndListPropsBase & {
|
||||||
|
edit: true | false;
|
||||||
|
noSpell: boolean;
|
||||||
|
};
|
||||||
|
|
||||||
|
type SelectAndListPropsWithNoSpell = SelectAndListPropsBase & {
|
||||||
|
edit: boolean;
|
||||||
|
noSpell: true | false;
|
||||||
|
};
|
||||||
|
|
||||||
|
type SelectAndListProps =
|
||||||
|
| SelectAndListPropsWithEdit
|
||||||
|
| SelectAndListPropsWithNoSpell;
|
||||||
|
|
||||||
|
export class Select extends React.Component<SelectAndListProps> {}
|
||||||
|
|
||||||
|
export class List extends React.Component<SelectAndListProps> {}
|
||||||
|
|
||||||
|
interface NoteProps extends NodeProps {
|
||||||
|
children: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export class Note extends React.Component<NoteProps> {}
|
||||||
|
|
||||||
|
interface CanvasProps extends NodeProps {
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
paint: (
|
||||||
|
painter: any,
|
||||||
|
availableWidth: number,
|
||||||
|
availableHeight: number,
|
||||||
|
) => null;
|
||||||
|
}
|
||||||
|
|
||||||
|
export class Canvas extends React.Component<CanvasProps> {}
|
||||||
|
|
||||||
|
interface SVGProps extends NodeProps, SVGPresentationAttributes {
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
width?: string | number;
|
||||||
|
height?: string | number;
|
||||||
|
viewBox?: string;
|
||||||
|
preserveAspectRatio?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <SVG /> element is a container that defines a new coordinate system and viewport. It is used as the outermost element of SVG documents.
|
||||||
|
*/
|
||||||
|
export class Svg extends React.Component<React.PropsWithChildren<SVGProps>> {}
|
||||||
|
|
||||||
|
interface LineProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
x1: string | number;
|
||||||
|
x2: string | number;
|
||||||
|
y1: string | number;
|
||||||
|
y2: string | number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Line /> element is used to create a line.
|
||||||
|
*/
|
||||||
|
export class Line extends React.Component<
|
||||||
|
React.PropsWithChildren<LineProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface PolylineProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
points: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Polyline /> element is used to create any shape that consists of only straight lines (that is connected at several points).
|
||||||
|
*/
|
||||||
|
export class Polyline extends React.Component<
|
||||||
|
React.PropsWithChildren<PolylineProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface PolygonProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
points: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Polygon /> element is used to create a graphic that contains at least three sides.
|
||||||
|
* Polygons are made of straight lines, and the shape is "closed" (all the lines connect up).
|
||||||
|
*/
|
||||||
|
export class Polygon extends React.Component<
|
||||||
|
React.PropsWithChildren<PolygonProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface PathProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
d: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Path /> element is the most powerful element in the SVG library of basic shapes. It can be used to create lines, curves, arcs, and more.
|
||||||
|
*/
|
||||||
|
export class Path extends React.Component<
|
||||||
|
React.PropsWithChildren<PathProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface RectProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
x?: string | number;
|
||||||
|
y?: string | number;
|
||||||
|
width: string | number;
|
||||||
|
height: string | number;
|
||||||
|
rx?: string | number;
|
||||||
|
ry?: string | number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Rect /> element is used to create a rectangle and variations of a rectangle shape.
|
||||||
|
*/
|
||||||
|
export class Rect extends React.Component<
|
||||||
|
React.PropsWithChildren<RectProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface CircleProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
cx?: string | number;
|
||||||
|
cy?: string | number;
|
||||||
|
r: string | number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Circle /> element is used to create a circle.
|
||||||
|
*/
|
||||||
|
export class Circle extends React.Component<
|
||||||
|
React.PropsWithChildren<CircleProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface EllipseProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
cx?: string | number;
|
||||||
|
cy?: string | number;
|
||||||
|
rx: string | number;
|
||||||
|
ry: string | number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Ellipse /> element is used to create an ellipse.
|
||||||
|
* An ellipse is closely related to a circle. The difference is that an ellipse has an x and a y radius that differs from each other, while a circle has equal x and y radius.
|
||||||
|
*/
|
||||||
|
export class Ellipse extends React.Component<
|
||||||
|
React.PropsWithChildren<EllipseProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface TspanProps extends SVGPresentationAttributes {
|
||||||
|
x?: string | number;
|
||||||
|
y?: string | number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Tspan /> element defines a subtext within a <Text /> element or another <Tspan /> element.
|
||||||
|
* It allows for adjustment of the style and/or position of that subtext as needed.
|
||||||
|
*/
|
||||||
|
export class Tspan extends React.Component<
|
||||||
|
React.PropsWithChildren<TspanProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface GProps extends SVGPresentationAttributes {
|
||||||
|
style?: Style;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <G /> SVG element is a container used to group other SVG elements.
|
||||||
|
* Transformations applied to the <G /> element are performed on its child elements, and its attributes are inherited by its children.
|
||||||
|
*/
|
||||||
|
export class G extends React.Component<React.PropsWithChildren<GProps>> {}
|
||||||
|
|
||||||
|
interface StopProps {
|
||||||
|
offset: string | number;
|
||||||
|
stopColor: string;
|
||||||
|
stopOpacity?: string | number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The SVG <Stop /> element defines a color and its position to use on a gradient. This element is always a child of a <LinearGradient /> or <RadialGradient /> element
|
||||||
|
*/
|
||||||
|
export class Stop extends React.Component<
|
||||||
|
React.PropsWithChildren<StopProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
// eslint-disable-next-line @typescript-eslint/no-empty-object-type
|
||||||
|
interface DefsProps {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Defs /> element is used to store graphical objects that will be used at a later time. Objects created inside a <Defs /> element are not rendered directly. To display them you have to reference them
|
||||||
|
*/
|
||||||
|
export class Defs extends React.Component<
|
||||||
|
React.PropsWithChildren<DefsProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface ClipPathProps {
|
||||||
|
id?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <ClipPath /> SVG element defines a clipping path, to be used by the clipPath property.
|
||||||
|
* A clipping path restricts the region to which paint can be applied. Conceptually, parts of the drawing that lie outside of the region bounded by the clipping path are not drawn.
|
||||||
|
*/
|
||||||
|
export class ClipPath extends React.Component<
|
||||||
|
React.PropsWithChildren<ClipPathProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface MarkerProps {
|
||||||
|
id: string;
|
||||||
|
viewBox?: string;
|
||||||
|
refX?: string | number;
|
||||||
|
refY?: string | number;
|
||||||
|
markerWidth?: string | number;
|
||||||
|
markerHeight?: string | number;
|
||||||
|
orient?: 'auto' | 'auto-start-reverse' | number;
|
||||||
|
markerUnits?: 'strokeWidth' | 'userSpaceOnUse';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Marker /> SVG element defines a graphic used for drawing arrows or polymarkers on a given <Path />, <Line />, <Polyline />, or <Polygon /> element.
|
||||||
|
* Markers can be attached to shapes using the markerStart, markerMid, and markerEnd properties.
|
||||||
|
*/
|
||||||
|
export class Marker extends React.Component<
|
||||||
|
React.PropsWithChildren<MarkerProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface LinearGradientProps {
|
||||||
|
id: string;
|
||||||
|
x1?: string | number;
|
||||||
|
x2?: string | number;
|
||||||
|
y1?: string | number;
|
||||||
|
y2?: string | number;
|
||||||
|
xlinkHref?: string;
|
||||||
|
gradientTransform?: string;
|
||||||
|
gradientUnits?: 'userSpaceOnUse' | 'objectBoundingBox';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <LinearGradient /> element lets authors define linear gradients that can be applied to fill or stroke of graphical elements.
|
||||||
|
*/
|
||||||
|
export class LinearGradient extends React.Component<
|
||||||
|
React.PropsWithChildren<LinearGradientProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface RadialGradientProps {
|
||||||
|
id: string;
|
||||||
|
cx?: string | number;
|
||||||
|
cy?: string | number;
|
||||||
|
r?: string | number;
|
||||||
|
fx?: string | number;
|
||||||
|
fy?: string | number;
|
||||||
|
xlinkHref?: string;
|
||||||
|
gradientTransform?: string;
|
||||||
|
gradientUnits?: 'userSpaceOnUse' | 'objectBoundingBox';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <RadialGradient /> element lets authors define radial gradients that can be applied to fill or stroke of graphical elements.
|
||||||
|
*/
|
||||||
|
export class RadialGradient extends React.Component<
|
||||||
|
React.PropsWithChildren<RadialGradientProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface BlobProviderParams {
|
||||||
|
blob: Blob | null;
|
||||||
|
url: string | null;
|
||||||
|
loading: boolean;
|
||||||
|
error: Error | null;
|
||||||
|
}
|
||||||
|
interface BlobProviderProps {
|
||||||
|
document: React.ReactElement<DocumentProps>;
|
||||||
|
children: (params: BlobProviderParams) => React.ReactNode;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Easy and declarative way of getting document's blob data without
|
||||||
|
* showing it on screen.
|
||||||
|
* @see https://react-pdf.org/advanced#on-the-fly-rendering
|
||||||
|
* @platform web
|
||||||
|
*/
|
||||||
|
export class BlobProvider extends React.Component<BlobProviderProps> {}
|
||||||
|
|
||||||
|
interface PDFViewerProps {
|
||||||
|
width?: number | string;
|
||||||
|
height?: number | string;
|
||||||
|
style?: Style | Style[];
|
||||||
|
className?: string;
|
||||||
|
children?: React.ReactElement<DocumentProps>;
|
||||||
|
innerRef?: React.Ref<HTMLIFrameElement>;
|
||||||
|
showToolbar?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Iframe PDF viewer for client-side generated documents.
|
||||||
|
* @platform web
|
||||||
|
*/
|
||||||
|
export class PDFViewer extends React.Component<PDFViewerProps> {}
|
||||||
|
|
||||||
|
interface PDFDownloadLinkProps
|
||||||
|
extends Omit<
|
||||||
|
React.AnchorHTMLAttributes<HTMLAnchorElement>,
|
||||||
|
'href' | 'children'
|
||||||
|
> {
|
||||||
|
/** PDF filename. Alias for anchor tag `download` attribute. */
|
||||||
|
fileName?: string;
|
||||||
|
document: React.ReactElement<DocumentProps>;
|
||||||
|
children?: React.ReactNode | React.FC<BlobProviderParams>;
|
||||||
|
onClick?: React.AnchorHTMLAttributes<HTMLAnchorElement>['onClick'] &
|
||||||
|
((
|
||||||
|
event: React.MouseEvent<HTMLAnchorElement, MouseEvent>,
|
||||||
|
instance: UsePDFInstance,
|
||||||
|
) => void);
|
||||||
|
ref?: React.Ref<HTMLAnchorElement> | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Anchor tag to enable generate and download PDF documents on the fly.
|
||||||
|
* @see https://react-pdf.org/advanced#on-the-fly-rendering
|
||||||
|
* @platform web
|
||||||
|
*/
|
||||||
|
export class PDFDownloadLink extends React.Component<PDFDownloadLinkProps> {}
|
||||||
|
|
||||||
|
interface UsePDFInstance {
|
||||||
|
loading: boolean;
|
||||||
|
blob: Blob | null;
|
||||||
|
url: string | null;
|
||||||
|
error: string | null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* React hook for creating and updating a PDF document instance
|
||||||
|
* @platform web
|
||||||
|
*/
|
||||||
|
export function usePDF(options?: {
|
||||||
|
document?: React.ReactElement<DocumentProps>;
|
||||||
|
}): [
|
||||||
|
UsePDFInstance,
|
||||||
|
(newDocument: React.ReactElement<DocumentProps>) => void,
|
||||||
|
];
|
||||||
|
|
||||||
|
export const Font: FontStore;
|
||||||
|
|
||||||
|
export const StyleSheet: {
|
||||||
|
create: <T extends Styles>(styles: T) => T;
|
||||||
|
};
|
||||||
|
|
||||||
|
export const version: any;
|
||||||
|
|
||||||
|
export const PDFRenderer: any;
|
||||||
|
|
||||||
|
export const pdf: (initialValue?: React.ReactElement<DocumentProps>) => {
|
||||||
|
container: any;
|
||||||
|
isDirty: () => boolean;
|
||||||
|
toString: () => string;
|
||||||
|
toBlob: () => Promise<Blob>;
|
||||||
|
toBuffer: () => Promise<NodeJS.ReadableStream>;
|
||||||
|
on: (event: 'change', callback: () => void) => void;
|
||||||
|
updateContainer: (
|
||||||
|
document: React.ReactElement<any>,
|
||||||
|
callback?: () => void,
|
||||||
|
) => void;
|
||||||
|
removeListener: (event: 'change', callback: () => void) => void;
|
||||||
|
};
|
||||||
|
|
||||||
|
export const renderToStream: (
|
||||||
|
document: React.ReactElement<DocumentProps>,
|
||||||
|
) => Promise<NodeJS.ReadableStream>;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated use the `renderToBuffer` method
|
||||||
|
*/
|
||||||
|
export const renderToString: (
|
||||||
|
document: React.ReactElement<DocumentProps>,
|
||||||
|
) => Promise<string>;
|
||||||
|
|
||||||
|
export const renderToFile: (
|
||||||
|
document: React.ReactElement<DocumentProps>,
|
||||||
|
filePath: string,
|
||||||
|
callback?: (output: NodeJS.ReadableStream, _filePath: string) => any,
|
||||||
|
) => Promise<NodeJS.ReadableStream>;
|
||||||
|
|
||||||
|
const render: typeof renderToFile;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Render document into a nodejs buffer
|
||||||
|
* @platform node
|
||||||
|
*/
|
||||||
|
export const renderToBuffer: (
|
||||||
|
document: React.ReactElement<ReactPDF.DocumentProps>,
|
||||||
|
) => Promise<Buffer>;
|
||||||
|
}
|
||||||
473
build_temp/.next/node_modules/@react-pdf/renderer-5f716e9bc7d68b8a/lib/react-pdf.browser.js
generated
vendored
Normal file
473
build_temp/.next/node_modules/@react-pdf/renderer-5f716e9bc7d68b8a/lib/react-pdf.browser.js
generated
vendored
Normal file
@@ -0,0 +1,473 @@
|
|||||||
|
import * as primitives from '@react-pdf/primitives';
|
||||||
|
export * from '@react-pdf/primitives';
|
||||||
|
import queue from 'queue';
|
||||||
|
import { useRef, useState, useEffect, useCallback, forwardRef } from 'react';
|
||||||
|
import FontStore from '@react-pdf/font';
|
||||||
|
import renderPDF from '@react-pdf/render';
|
||||||
|
import PDFDocument from '@react-pdf/pdfkit';
|
||||||
|
import layoutDocument from '@react-pdf/layout';
|
||||||
|
import { upperFirst } from '@react-pdf/fns';
|
||||||
|
import Reconciler from '@react-pdf/reconciler';
|
||||||
|
import { jsx } from 'react/jsx-runtime';
|
||||||
|
|
||||||
|
const omitNils = object => Object.fromEntries(Object.entries(object).filter(_ref => {
|
||||||
|
let [, value] = _ref;
|
||||||
|
return value !== undefined;
|
||||||
|
}));
|
||||||
|
|
||||||
|
const createInstance = (type, _ref) => {
|
||||||
|
let {
|
||||||
|
style,
|
||||||
|
children,
|
||||||
|
...props
|
||||||
|
} = _ref;
|
||||||
|
return {
|
||||||
|
type,
|
||||||
|
box: {},
|
||||||
|
style: style || {},
|
||||||
|
props: props || {},
|
||||||
|
children: []
|
||||||
|
};
|
||||||
|
};
|
||||||
|
const createTextInstance = text => ({
|
||||||
|
type: 'TEXT_INSTANCE',
|
||||||
|
value: text
|
||||||
|
});
|
||||||
|
const appendChild = (parent, child) => {
|
||||||
|
const isParentText = parent.type === 'TEXT' || parent.type === 'LINK' || parent.type === 'TSPAN' || parent.type === 'NOTE';
|
||||||
|
const isChildTextInstance = child.type === 'TEXT_INSTANCE';
|
||||||
|
const isOrphanTextInstance = isChildTextInstance && !isParentText;
|
||||||
|
|
||||||
|
// Ignore orphan text instances.
|
||||||
|
// Caused by cases such as <>{name && <Text>{name}</Text>}</>
|
||||||
|
if (isOrphanTextInstance) {
|
||||||
|
console.warn(`Invalid '${child.value}' string child outside <Text> component`);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
parent.children.push(child);
|
||||||
|
};
|
||||||
|
const appendChildToContainer = (parentInstance, child) => {
|
||||||
|
if (parentInstance.type === 'ROOT') {
|
||||||
|
parentInstance.document = child;
|
||||||
|
} else {
|
||||||
|
appendChild(parentInstance, child);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
const insertBefore = (parentInstance, child, beforeChild) => {
|
||||||
|
var _parentInstance$child;
|
||||||
|
const index = (_parentInstance$child = parentInstance.children) === null || _parentInstance$child === void 0 ? void 0 : _parentInstance$child.indexOf(beforeChild);
|
||||||
|
if (index === undefined) return;
|
||||||
|
if (index !== -1 && child) parentInstance.children.splice(index, 0, child);
|
||||||
|
};
|
||||||
|
const removeChild = (parentInstance, child) => {
|
||||||
|
var _parentInstance$child2;
|
||||||
|
const index = (_parentInstance$child2 = parentInstance.children) === null || _parentInstance$child2 === void 0 ? void 0 : _parentInstance$child2.indexOf(child);
|
||||||
|
if (index === undefined) return;
|
||||||
|
if (index !== -1) parentInstance.children.splice(index, 1);
|
||||||
|
};
|
||||||
|
const removeChildFromContainer = (parentInstance, child) => {
|
||||||
|
var _parentInstance$child3;
|
||||||
|
const index = (_parentInstance$child3 = parentInstance.children) === null || _parentInstance$child3 === void 0 ? void 0 : _parentInstance$child3.indexOf(child);
|
||||||
|
if (index === undefined) return;
|
||||||
|
if (index !== -1) parentInstance.children.splice(index, 1);
|
||||||
|
};
|
||||||
|
const commitTextUpdate = (textInstance, oldText, newText) => {
|
||||||
|
textInstance.value = newText;
|
||||||
|
};
|
||||||
|
const commitUpdate = (instance, updatePayload, type, oldProps, newProps) => {
|
||||||
|
const {
|
||||||
|
style,
|
||||||
|
...props
|
||||||
|
} = newProps;
|
||||||
|
instance.props = props;
|
||||||
|
instance.style = style;
|
||||||
|
};
|
||||||
|
const createRenderer = _ref2 => {
|
||||||
|
let {
|
||||||
|
onChange = () => {}
|
||||||
|
} = _ref2;
|
||||||
|
return Reconciler({
|
||||||
|
appendChild,
|
||||||
|
appendChildToContainer,
|
||||||
|
commitTextUpdate,
|
||||||
|
commitUpdate,
|
||||||
|
createInstance,
|
||||||
|
createTextInstance,
|
||||||
|
insertBefore,
|
||||||
|
removeChild,
|
||||||
|
removeChildFromContainer,
|
||||||
|
resetAfterCommit: onChange
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
var version$1 = "4.5.1";
|
||||||
|
var packageJson = {
|
||||||
|
version: version$1};
|
||||||
|
|
||||||
|
const {
|
||||||
|
version
|
||||||
|
} = packageJson;
|
||||||
|
const fontStore = new FontStore();
|
||||||
|
|
||||||
|
// We must keep a single renderer instance, otherwise React will complain
|
||||||
|
let renderer;
|
||||||
|
|
||||||
|
// The pdf instance acts as an event emitter for DOM usage.
|
||||||
|
// We only want to trigger an update when PDF content changes
|
||||||
|
const events = {};
|
||||||
|
const pdf = initialValue => {
|
||||||
|
const onChange = () => {
|
||||||
|
var _events$change;
|
||||||
|
const listeners = ((_events$change = events.change) === null || _events$change === void 0 ? void 0 : _events$change.slice()) || [];
|
||||||
|
for (let i = 0; i < listeners.length; i += 1) listeners[i]();
|
||||||
|
};
|
||||||
|
const container = {
|
||||||
|
type: 'ROOT',
|
||||||
|
document: null
|
||||||
|
};
|
||||||
|
renderer = renderer || createRenderer({
|
||||||
|
onChange
|
||||||
|
});
|
||||||
|
const mountNode = renderer.createContainer(container);
|
||||||
|
const updateContainer = (doc, callback) => {
|
||||||
|
renderer.updateContainer(doc, mountNode, null, callback);
|
||||||
|
};
|
||||||
|
if (initialValue) updateContainer(initialValue);
|
||||||
|
const render = async function (compress) {
|
||||||
|
if (compress === void 0) {
|
||||||
|
compress = true;
|
||||||
|
}
|
||||||
|
const props = container.document.props || {};
|
||||||
|
const {
|
||||||
|
pdfVersion,
|
||||||
|
language,
|
||||||
|
pageLayout,
|
||||||
|
pageMode,
|
||||||
|
title,
|
||||||
|
author,
|
||||||
|
subject,
|
||||||
|
keywords,
|
||||||
|
creator = 'react-pdf',
|
||||||
|
producer = 'react-pdf',
|
||||||
|
creationDate = new Date(),
|
||||||
|
modificationDate,
|
||||||
|
ownerPassword,
|
||||||
|
userPassword,
|
||||||
|
permissions
|
||||||
|
} = props;
|
||||||
|
const ctx = new PDFDocument({
|
||||||
|
compress,
|
||||||
|
pdfVersion,
|
||||||
|
lang: language,
|
||||||
|
displayTitle: true,
|
||||||
|
autoFirstPage: false,
|
||||||
|
ownerPassword,
|
||||||
|
userPassword,
|
||||||
|
permissions,
|
||||||
|
pageLayout,
|
||||||
|
info: omitNils({
|
||||||
|
Title: title,
|
||||||
|
Author: author,
|
||||||
|
Subject: subject,
|
||||||
|
Keywords: keywords,
|
||||||
|
Creator: creator,
|
||||||
|
Producer: producer,
|
||||||
|
CreationDate: creationDate,
|
||||||
|
ModificationDate: modificationDate
|
||||||
|
})
|
||||||
|
});
|
||||||
|
if (pageMode) {
|
||||||
|
ctx._root.data.PageMode = upperFirst(pageMode);
|
||||||
|
}
|
||||||
|
const layout = await layoutDocument(container.document, fontStore);
|
||||||
|
const fileStream = renderPDF(ctx, layout);
|
||||||
|
return {
|
||||||
|
layout,
|
||||||
|
fileStream
|
||||||
|
};
|
||||||
|
};
|
||||||
|
const callOnRender = function (params) {
|
||||||
|
if (params === void 0) {
|
||||||
|
params = {};
|
||||||
|
}
|
||||||
|
if (container.document.props.onRender) {
|
||||||
|
container.document.props.onRender(params);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
const toBlob = async () => {
|
||||||
|
const chunks = [];
|
||||||
|
const {
|
||||||
|
layout: _INTERNAL__LAYOUT__DATA_,
|
||||||
|
fileStream: instance
|
||||||
|
} = await render();
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
instance.on('data', chunk => {
|
||||||
|
chunks.push(chunk instanceof Uint8Array ? chunk : new Uint8Array(chunk));
|
||||||
|
});
|
||||||
|
instance.on('end', () => {
|
||||||
|
try {
|
||||||
|
const blob = new Blob(chunks, {
|
||||||
|
type: 'application/pdf'
|
||||||
|
});
|
||||||
|
callOnRender({
|
||||||
|
blob,
|
||||||
|
_INTERNAL__LAYOUT__DATA_
|
||||||
|
});
|
||||||
|
resolve(blob);
|
||||||
|
} catch (error) {
|
||||||
|
reject(error);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
// TODO: rename this method to `toStream` in next major release, because it return stream not a buffer
|
||||||
|
const toBuffer = async () => {
|
||||||
|
const {
|
||||||
|
layout: _INTERNAL__LAYOUT__DATA_,
|
||||||
|
fileStream
|
||||||
|
} = await render();
|
||||||
|
callOnRender({
|
||||||
|
_INTERNAL__LAYOUT__DATA_
|
||||||
|
});
|
||||||
|
return fileStream;
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* TODO: remove this method in next major release. it is buggy
|
||||||
|
* see
|
||||||
|
* - https://github.com/diegomura/react-pdf/issues/2112
|
||||||
|
* - https://github.com/diegomura/react-pdf/issues/2095
|
||||||
|
*/
|
||||||
|
const toString = async () => {
|
||||||
|
if (process.env.NODE_ENV === 'development') {
|
||||||
|
console.warn('`toString` is deprecated and will be removed in next major release');
|
||||||
|
}
|
||||||
|
let result = '';
|
||||||
|
const {
|
||||||
|
fileStream: instance
|
||||||
|
} = await render(false); // For some reason, when rendering to string if compress=true the document is blank
|
||||||
|
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
try {
|
||||||
|
instance.on('data', buffer => {
|
||||||
|
result += buffer;
|
||||||
|
});
|
||||||
|
instance.on('end', () => {
|
||||||
|
callOnRender();
|
||||||
|
resolve(result);
|
||||||
|
});
|
||||||
|
} catch (error) {
|
||||||
|
reject(error);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
const on = (event, listener) => {
|
||||||
|
if (!events[event]) events[event] = [];
|
||||||
|
events[event].push(listener);
|
||||||
|
};
|
||||||
|
const removeListener = (event, listener) => {
|
||||||
|
if (!events[event]) return;
|
||||||
|
const idx = events[event].indexOf(listener);
|
||||||
|
if (idx > -1) events[event].splice(idx, 1);
|
||||||
|
};
|
||||||
|
return {
|
||||||
|
on,
|
||||||
|
container,
|
||||||
|
toBlob,
|
||||||
|
toBuffer,
|
||||||
|
toString,
|
||||||
|
removeListener,
|
||||||
|
updateContainer
|
||||||
|
};
|
||||||
|
};
|
||||||
|
const Font = fontStore;
|
||||||
|
const StyleSheet = {
|
||||||
|
create: s => s
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* PDF hook
|
||||||
|
*
|
||||||
|
* @param {Object} [options] hook options
|
||||||
|
* @returns {[Object, Function]} pdf state and update function
|
||||||
|
*/
|
||||||
|
const usePDF = function (_temp) {
|
||||||
|
let {
|
||||||
|
document
|
||||||
|
} = _temp === void 0 ? {} : _temp;
|
||||||
|
const pdfInstance = useRef(null);
|
||||||
|
const [state, setState] = useState({
|
||||||
|
url: null,
|
||||||
|
blob: null,
|
||||||
|
error: null,
|
||||||
|
loading: !!document
|
||||||
|
});
|
||||||
|
|
||||||
|
// Setup rendering queue
|
||||||
|
useEffect(() => {
|
||||||
|
const renderQueue = queue({
|
||||||
|
autostart: true,
|
||||||
|
concurrency: 1
|
||||||
|
});
|
||||||
|
const queueDocumentRender = () => {
|
||||||
|
setState(prev => ({
|
||||||
|
...prev,
|
||||||
|
loading: true
|
||||||
|
}));
|
||||||
|
renderQueue.splice(0, renderQueue.length, () => state.error ? Promise.resolve() : pdfInstance.current.toBlob());
|
||||||
|
};
|
||||||
|
const onRenderFailed = error => {
|
||||||
|
console.error(error);
|
||||||
|
setState(prev => ({
|
||||||
|
...prev,
|
||||||
|
loading: false,
|
||||||
|
error
|
||||||
|
}));
|
||||||
|
};
|
||||||
|
const onRenderSuccessful = blob => {
|
||||||
|
setState({
|
||||||
|
blob,
|
||||||
|
error: null,
|
||||||
|
loading: false,
|
||||||
|
url: URL.createObjectURL(blob)
|
||||||
|
});
|
||||||
|
};
|
||||||
|
pdfInstance.current = pdf();
|
||||||
|
pdfInstance.current.on('change', queueDocumentRender);
|
||||||
|
if (document) {
|
||||||
|
pdfInstance.current.updateContainer(document);
|
||||||
|
}
|
||||||
|
renderQueue.on('error', onRenderFailed);
|
||||||
|
renderQueue.on('success', onRenderSuccessful);
|
||||||
|
return () => {
|
||||||
|
renderQueue.end();
|
||||||
|
pdfInstance.current.removeListener('change', queueDocumentRender);
|
||||||
|
};
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
// Revoke old unused url instances
|
||||||
|
useEffect(() => {
|
||||||
|
return () => {
|
||||||
|
if (state.url) {
|
||||||
|
URL.revokeObjectURL(state.url);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}, [state.url]);
|
||||||
|
const update = useCallback(newDoc => {
|
||||||
|
pdfInstance.current.updateContainer(newDoc);
|
||||||
|
}, []);
|
||||||
|
return [state, update];
|
||||||
|
};
|
||||||
|
|
||||||
|
const PDFViewer = _ref => {
|
||||||
|
let {
|
||||||
|
title,
|
||||||
|
style,
|
||||||
|
className,
|
||||||
|
children,
|
||||||
|
innerRef,
|
||||||
|
showToolbar = true,
|
||||||
|
...props
|
||||||
|
} = _ref;
|
||||||
|
const [instance, updateInstance] = usePDF();
|
||||||
|
useEffect(() => updateInstance(children), [children]);
|
||||||
|
const src = instance.url ? `${instance.url}#toolbar=${showToolbar ? 1 : 0}` : null;
|
||||||
|
return /*#__PURE__*/jsx("iframe", {
|
||||||
|
src: src,
|
||||||
|
title: title,
|
||||||
|
ref: innerRef,
|
||||||
|
style: style,
|
||||||
|
className: className,
|
||||||
|
...props
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
const BlobProvider = _ref => {
|
||||||
|
let {
|
||||||
|
document: doc,
|
||||||
|
children
|
||||||
|
} = _ref;
|
||||||
|
const [instance, updateInstance] = usePDF();
|
||||||
|
useEffect(() => updateInstance(doc), [doc]);
|
||||||
|
if (!doc) {
|
||||||
|
console.warn('You should pass a valid document to BlobProvider');
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return children(instance);
|
||||||
|
};
|
||||||
|
|
||||||
|
const PDFDownloadLinkBase = (_ref, ref) => {
|
||||||
|
let {
|
||||||
|
fileName = 'document.pdf',
|
||||||
|
document: doc,
|
||||||
|
children,
|
||||||
|
onClick,
|
||||||
|
href,
|
||||||
|
...rest
|
||||||
|
} = _ref;
|
||||||
|
const [instance, updateInstance] = usePDF();
|
||||||
|
useEffect(() => updateInstance(doc), [doc]);
|
||||||
|
if (!doc) {
|
||||||
|
console.warn('You should pass a valid document to PDFDownloadLink');
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
const handleDownloadIE = () => {
|
||||||
|
if (instance && window.navigator.msSaveBlob) {
|
||||||
|
// IE
|
||||||
|
window.navigator.msSaveBlob(instance.blob, fileName);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
const handleClick = event => {
|
||||||
|
handleDownloadIE();
|
||||||
|
if (typeof onClick === 'function') onClick(event, instance);
|
||||||
|
};
|
||||||
|
return /*#__PURE__*/jsx("a", {
|
||||||
|
href: instance.url,
|
||||||
|
download: fileName,
|
||||||
|
onClick: handleClick,
|
||||||
|
ref: ref,
|
||||||
|
...rest,
|
||||||
|
children: typeof children === 'function' ? children(instance) : children
|
||||||
|
});
|
||||||
|
};
|
||||||
|
const PDFDownloadLink = /*#__PURE__*/forwardRef(PDFDownloadLinkBase);
|
||||||
|
|
||||||
|
const throwEnvironmentError = name => {
|
||||||
|
throw new Error(`${name} is a Node specific API. You're either using this method in a browser, or your bundler is not loading react-pdf from the appropriate web build.`);
|
||||||
|
};
|
||||||
|
const renderToStream = () => {
|
||||||
|
throwEnvironmentError('renderToStream');
|
||||||
|
};
|
||||||
|
const renderToBuffer = () => {
|
||||||
|
throwEnvironmentError('renderToBuffer');
|
||||||
|
};
|
||||||
|
const renderToString = () => {
|
||||||
|
throwEnvironmentError('renderToString');
|
||||||
|
};
|
||||||
|
const renderToFile = () => {
|
||||||
|
throwEnvironmentError('renderToFile');
|
||||||
|
};
|
||||||
|
const render = () => {
|
||||||
|
throwEnvironmentError('render');
|
||||||
|
};
|
||||||
|
|
||||||
|
// TODO: remove this default export in next major release because it breaks tree-shacking
|
||||||
|
var index = {
|
||||||
|
pdf,
|
||||||
|
usePDF,
|
||||||
|
Font,
|
||||||
|
version,
|
||||||
|
StyleSheet,
|
||||||
|
PDFViewer,
|
||||||
|
BlobProvider,
|
||||||
|
PDFDownloadLink,
|
||||||
|
renderToStream,
|
||||||
|
renderToString,
|
||||||
|
renderToFile,
|
||||||
|
render,
|
||||||
|
...primitives
|
||||||
|
};
|
||||||
|
|
||||||
|
export { BlobProvider, Font, PDFDownloadLink, PDFViewer, StyleSheet, createRenderer, index as default, pdf, render, renderToBuffer, renderToFile, renderToStream, renderToString, usePDF, version };
|
||||||
|
//# sourceMappingURL=react-pdf.browser.js.map
|
||||||
1
build_temp/.next/node_modules/@react-pdf/renderer-5f716e9bc7d68b8a/lib/react-pdf.browser.js.map
generated
vendored
Normal file
1
build_temp/.next/node_modules/@react-pdf/renderer-5f716e9bc7d68b8a/lib/react-pdf.browser.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
793
build_temp/.next/node_modules/@react-pdf/renderer-5f716e9bc7d68b8a/lib/react-pdf.browser.min.d.cts
generated
vendored
Normal file
793
build_temp/.next/node_modules/@react-pdf/renderer-5f716e9bc7d68b8a/lib/react-pdf.browser.min.d.cts
generated
vendored
Normal file
@@ -0,0 +1,793 @@
|
|||||||
|
/* eslint-disable max-classes-per-file */
|
||||||
|
|
||||||
|
import * as React from 'react';
|
||||||
|
import {
|
||||||
|
Style,
|
||||||
|
PageSize,
|
||||||
|
FontStore,
|
||||||
|
PDFVersion,
|
||||||
|
Orientation,
|
||||||
|
SourceObject,
|
||||||
|
SrcSet,
|
||||||
|
Sizes,
|
||||||
|
HyphenationCallback,
|
||||||
|
SVGPresentationAttributes,
|
||||||
|
Bookmark,
|
||||||
|
PageLayout,
|
||||||
|
PageMode,
|
||||||
|
HitSlop,
|
||||||
|
} from '@react-pdf/types';
|
||||||
|
|
||||||
|
declare class ReactPDF {
|
||||||
|
static default: typeof ReactPDF;
|
||||||
|
}
|
||||||
|
|
||||||
|
export = ReactPDF;
|
||||||
|
|
||||||
|
declare namespace ReactPDF {
|
||||||
|
interface Styles {
|
||||||
|
[key: string]: Style;
|
||||||
|
}
|
||||||
|
interface OnRenderProps {
|
||||||
|
blob?: Blob;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Permissions {
|
||||||
|
printing?: 'lowResolution' | 'highResolution';
|
||||||
|
modifying?: boolean;
|
||||||
|
copying?: boolean;
|
||||||
|
annotating?: boolean;
|
||||||
|
fillingForms?: boolean;
|
||||||
|
contentAccessibility?: boolean;
|
||||||
|
documentAssembly?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface DocumentProps {
|
||||||
|
style?: Style | Style[];
|
||||||
|
title?: string;
|
||||||
|
author?: string;
|
||||||
|
subject?: string;
|
||||||
|
creator?: string;
|
||||||
|
keywords?: string;
|
||||||
|
producer?: string;
|
||||||
|
language?: string;
|
||||||
|
creationDate?: Date;
|
||||||
|
modificationDate?: Date;
|
||||||
|
pdfVersion?: PDFVersion;
|
||||||
|
pageMode?: PageMode;
|
||||||
|
pageLayout?: PageLayout;
|
||||||
|
ownerPassword?: string;
|
||||||
|
userPassword?: string;
|
||||||
|
permissions?: Permissions;
|
||||||
|
onRender?: (props: OnRenderProps) => any;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This component represent the PDF document itself. It must be the root
|
||||||
|
* of your tree element structure, and under no circumstances should it be
|
||||||
|
* used as children of another react-pdf component. In addition, it should
|
||||||
|
* only have childs of type <Page />.
|
||||||
|
*/
|
||||||
|
export class Document extends React.Component<
|
||||||
|
React.PropsWithChildren<DocumentProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface NodeProps {
|
||||||
|
id?: string;
|
||||||
|
style?: Style | Style[];
|
||||||
|
/**
|
||||||
|
* Render component in all wrapped pages.
|
||||||
|
* @see https://react-pdf.org/advanced#fixed-components
|
||||||
|
*/
|
||||||
|
fixed?: boolean;
|
||||||
|
/**
|
||||||
|
* Force the wrapping algorithm to start a new page when rendering the
|
||||||
|
* element.
|
||||||
|
* @see https://react-pdf.org/advanced#page-breaks
|
||||||
|
*/
|
||||||
|
break?: boolean;
|
||||||
|
/**
|
||||||
|
* Hint that no page wrapping should occur between all sibling elements following the element within n points
|
||||||
|
* @see https://react-pdf.org/advanced#orphan-&-widow-protection
|
||||||
|
*/
|
||||||
|
minPresenceAhead?: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface PageProps extends NodeProps {
|
||||||
|
/**
|
||||||
|
* Enable page wrapping for this page.
|
||||||
|
* @see https://react-pdf.org/components#page-wrapping
|
||||||
|
*/
|
||||||
|
wrap?: boolean;
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
size?: PageSize;
|
||||||
|
orientation?: Orientation;
|
||||||
|
dpi?: number;
|
||||||
|
bookmark?: Bookmark;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents single page inside the PDF document, or a subset of them if
|
||||||
|
* using the wrapping feature. A <Document /> can contain as many pages as
|
||||||
|
* you want, but ensure not rendering a page inside any component besides
|
||||||
|
* Document.
|
||||||
|
*/
|
||||||
|
export class Page extends React.Component<
|
||||||
|
React.PropsWithChildren<PageProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface ViewProps extends NodeProps {
|
||||||
|
id?: string;
|
||||||
|
/**
|
||||||
|
* Enable/disable page wrapping for element.
|
||||||
|
* @see https://react-pdf.org/components#page-wrapping
|
||||||
|
*/
|
||||||
|
wrap?: boolean;
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
render?: (props: {
|
||||||
|
pageNumber: number;
|
||||||
|
subPageNumber: number;
|
||||||
|
}) => React.ReactNode;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The most fundamental component for building a UI and is designed to be
|
||||||
|
* nested inside other views and can have 0 to many children.
|
||||||
|
*/
|
||||||
|
export class View extends React.Component<
|
||||||
|
React.PropsWithChildren<ViewProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface BaseImageProps extends NodeProps {
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
cache?: boolean;
|
||||||
|
/**
|
||||||
|
* A comma-separated list of image sources with width descriptors.
|
||||||
|
* Works like the HTML img srcSet attribute.
|
||||||
|
* @example "small.jpg 300w, medium.jpg 600w, large.jpg 900w"
|
||||||
|
*/
|
||||||
|
srcSet?: SrcSet;
|
||||||
|
/**
|
||||||
|
* The intended display width of the image, used to select the best source
|
||||||
|
* from srcSet. Accepts a number (in points) or a string.
|
||||||
|
* Works like the HTML img sizes attribute.
|
||||||
|
* @example 300
|
||||||
|
* @example "300"
|
||||||
|
*/
|
||||||
|
sizes?: Sizes;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ImageWithSrcProp extends BaseImageProps {
|
||||||
|
src: SourceObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ImageWithSourceProp extends BaseImageProps {
|
||||||
|
source: SourceObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
type ImageProps = ImageWithSrcProp | ImageWithSourceProp;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A React component for displaying network or local (Node only) JPG or
|
||||||
|
* PNG images, as well as base64 encoded image strings.
|
||||||
|
*/
|
||||||
|
export class Image extends React.Component<ImageProps> {}
|
||||||
|
|
||||||
|
interface BaseImageBackgroundProps extends NodeProps {
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
cache?: boolean;
|
||||||
|
/**
|
||||||
|
* A comma-separated list of image sources with width descriptors.
|
||||||
|
* Works like the HTML img srcSet attribute.
|
||||||
|
* @example "small.jpg 300w, medium.jpg 600w, large.jpg 900w"
|
||||||
|
*/
|
||||||
|
srcSet?: SrcSet;
|
||||||
|
/**
|
||||||
|
* The intended display width of the image, used to select the best source
|
||||||
|
* from srcSet. Accepts a number (in points) or a string.
|
||||||
|
* @example 300
|
||||||
|
*/
|
||||||
|
sizes?: Sizes;
|
||||||
|
/**
|
||||||
|
* Style applied to the background image.
|
||||||
|
*/
|
||||||
|
imageStyle?: Style;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ImageBackgroundWithSrcProp extends BaseImageBackgroundProps {
|
||||||
|
src: SourceObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ImageBackgroundWithSourceProp extends BaseImageBackgroundProps {
|
||||||
|
source: SourceObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
type ImageBackgroundProps =
|
||||||
|
| ImageBackgroundWithSrcProp
|
||||||
|
| ImageBackgroundWithSourceProp;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A React component for displaying an image behind child content.
|
||||||
|
* Compatible with React Native's ImageBackground component.
|
||||||
|
* @see https://reactnative.dev/docs/imagebackground
|
||||||
|
*/
|
||||||
|
export class ImageBackground extends React.Component<
|
||||||
|
React.PropsWithChildren<ImageBackgroundProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface TextProps extends NodeProps {
|
||||||
|
id?: string;
|
||||||
|
/**
|
||||||
|
* Enable/disable page wrapping for element.
|
||||||
|
* @see https://react-pdf.org/components#page-wrapping
|
||||||
|
*/
|
||||||
|
wrap?: boolean;
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
render?: (props: {
|
||||||
|
pageNumber: number;
|
||||||
|
totalPages: number;
|
||||||
|
subPageNumber: number;
|
||||||
|
subPageTotalPages: number;
|
||||||
|
}) => React.ReactNode;
|
||||||
|
/**
|
||||||
|
* Override the default hyphenation-callback
|
||||||
|
* @see https://react-pdf.org/fonts#registerhyphenationcallback
|
||||||
|
*/
|
||||||
|
hyphenationCallback?: HyphenationCallback;
|
||||||
|
/**
|
||||||
|
* Specifies the minimum number of lines in a text element that must be shown at the bottom of a page or its container.
|
||||||
|
* @see https://react-pdf.org/advanced#orphan-&-widow-protection
|
||||||
|
*/
|
||||||
|
orphans?: number;
|
||||||
|
/**
|
||||||
|
* Specifies the minimum number of lines in a text element that must be shown at the top of a page or its container..
|
||||||
|
* @see https://react-pdf.org/advanced#orphan-&-widow-protection
|
||||||
|
*/
|
||||||
|
widows?: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface SVGTextProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
x: string | number;
|
||||||
|
y: string | number;
|
||||||
|
/**
|
||||||
|
* Override the default hyphenation-callback
|
||||||
|
* @see https://react-pdf.org/fonts#registerhyphenationcallback
|
||||||
|
*/
|
||||||
|
hyphenationCallback?: HyphenationCallback;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A React component for displaying text. Text supports nesting of other
|
||||||
|
* Text or Link components to create inline styling.
|
||||||
|
*/
|
||||||
|
export class Text extends React.Component<
|
||||||
|
React.PropsWithChildren<TextProps> | SVGTextProps
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface LinkProps extends NodeProps {
|
||||||
|
/**
|
||||||
|
* Enable/disable page wrapping for element.
|
||||||
|
* @see https://react-pdf.org/components#page-wrapping
|
||||||
|
*/
|
||||||
|
wrap?: boolean;
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
href?: string;
|
||||||
|
src?: string;
|
||||||
|
/**
|
||||||
|
* Extends the clickable area of the link beyond its visible bounds.
|
||||||
|
* Accepts a number (applied to all sides) or an object with top, bottom, left, right.
|
||||||
|
* @see https://reactnative.dev/docs/view#hitslop
|
||||||
|
*/
|
||||||
|
hitSlop?: HitSlop;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A React component for displaying a hyperlink. Link’s can be nested
|
||||||
|
* inside a Text component, or being inside any other valid primitive.
|
||||||
|
*/
|
||||||
|
export class Link extends React.Component<
|
||||||
|
React.PropsWithChildren<LinkProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface FormCommonProps extends NodeProps {
|
||||||
|
name?: string;
|
||||||
|
required?: boolean;
|
||||||
|
noExport?: boolean;
|
||||||
|
readOnly?: boolean;
|
||||||
|
value?: number | string;
|
||||||
|
defaultValue?: number | string;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface FieldSetProps extends NodeProps {
|
||||||
|
name: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export class FieldSet extends React.Component<
|
||||||
|
React.PropsWithChildren<FieldSetProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
// see http://pdfkit.org/docs/forms.html#text_field_formatting
|
||||||
|
interface TextInputFormatting {
|
||||||
|
type:
|
||||||
|
| 'date'
|
||||||
|
| 'time'
|
||||||
|
| 'percent'
|
||||||
|
| 'number'
|
||||||
|
| 'zip'
|
||||||
|
| 'zipPlus4'
|
||||||
|
| 'phone'
|
||||||
|
| 'ssn';
|
||||||
|
param?: string;
|
||||||
|
nDec?: number;
|
||||||
|
sepComma?: boolean;
|
||||||
|
negStyle?: 'MinusBlack' | 'Red' | 'ParensBlack' | 'ParensRed';
|
||||||
|
currency?: string;
|
||||||
|
currencyPrepend?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
// see http://pdfkit.org/docs/forms.html#text_field_formatting
|
||||||
|
interface TextInputProps extends FormCommonProps {
|
||||||
|
align?: 'left' | 'center' | 'right';
|
||||||
|
multiline?: boolean;
|
||||||
|
/**
|
||||||
|
* The text will be masked (e.g. with asterisks).
|
||||||
|
*/
|
||||||
|
password?: boolean;
|
||||||
|
/**
|
||||||
|
* If set, text entered in the field is not spell-checked
|
||||||
|
*/
|
||||||
|
noSpell?: boolean;
|
||||||
|
format?: TextInputFormatting;
|
||||||
|
/**
|
||||||
|
* Sets the fontSize (default or 0 means auto sizing)
|
||||||
|
*/
|
||||||
|
fontSize?: number;
|
||||||
|
/**
|
||||||
|
* Sets the maximum length (characters) of the text in the field
|
||||||
|
*/
|
||||||
|
maxLength?: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
export class TextInput extends React.Component<TextInputProps> {}
|
||||||
|
|
||||||
|
interface CheckboxProps extends FormCommonProps {
|
||||||
|
backgroundColor?: string;
|
||||||
|
borderColor?: string;
|
||||||
|
checked?: boolean;
|
||||||
|
onState?: string;
|
||||||
|
offState?: string;
|
||||||
|
xMark?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
export class Checkbox extends React.Component<CheckboxProps> {}
|
||||||
|
|
||||||
|
interface SelectAndListPropsBase extends FormCommonProps {
|
||||||
|
sort?: boolean;
|
||||||
|
edit?: boolean;
|
||||||
|
multiSelect?: boolean;
|
||||||
|
noSpell?: boolean;
|
||||||
|
select?: string[];
|
||||||
|
}
|
||||||
|
|
||||||
|
type SelectAndListPropsWithEdit = SelectAndListPropsBase & {
|
||||||
|
edit: true | false;
|
||||||
|
noSpell: boolean;
|
||||||
|
};
|
||||||
|
|
||||||
|
type SelectAndListPropsWithNoSpell = SelectAndListPropsBase & {
|
||||||
|
edit: boolean;
|
||||||
|
noSpell: true | false;
|
||||||
|
};
|
||||||
|
|
||||||
|
type SelectAndListProps =
|
||||||
|
| SelectAndListPropsWithEdit
|
||||||
|
| SelectAndListPropsWithNoSpell;
|
||||||
|
|
||||||
|
export class Select extends React.Component<SelectAndListProps> {}
|
||||||
|
|
||||||
|
export class List extends React.Component<SelectAndListProps> {}
|
||||||
|
|
||||||
|
interface NoteProps extends NodeProps {
|
||||||
|
children: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export class Note extends React.Component<NoteProps> {}
|
||||||
|
|
||||||
|
interface CanvasProps extends NodeProps {
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
paint: (
|
||||||
|
painter: any,
|
||||||
|
availableWidth: number,
|
||||||
|
availableHeight: number,
|
||||||
|
) => null;
|
||||||
|
}
|
||||||
|
|
||||||
|
export class Canvas extends React.Component<CanvasProps> {}
|
||||||
|
|
||||||
|
interface SVGProps extends NodeProps, SVGPresentationAttributes {
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
width?: string | number;
|
||||||
|
height?: string | number;
|
||||||
|
viewBox?: string;
|
||||||
|
preserveAspectRatio?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <SVG /> element is a container that defines a new coordinate system and viewport. It is used as the outermost element of SVG documents.
|
||||||
|
*/
|
||||||
|
export class Svg extends React.Component<React.PropsWithChildren<SVGProps>> {}
|
||||||
|
|
||||||
|
interface LineProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
x1: string | number;
|
||||||
|
x2: string | number;
|
||||||
|
y1: string | number;
|
||||||
|
y2: string | number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Line /> element is used to create a line.
|
||||||
|
*/
|
||||||
|
export class Line extends React.Component<
|
||||||
|
React.PropsWithChildren<LineProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface PolylineProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
points: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Polyline /> element is used to create any shape that consists of only straight lines (that is connected at several points).
|
||||||
|
*/
|
||||||
|
export class Polyline extends React.Component<
|
||||||
|
React.PropsWithChildren<PolylineProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface PolygonProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
points: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Polygon /> element is used to create a graphic that contains at least three sides.
|
||||||
|
* Polygons are made of straight lines, and the shape is "closed" (all the lines connect up).
|
||||||
|
*/
|
||||||
|
export class Polygon extends React.Component<
|
||||||
|
React.PropsWithChildren<PolygonProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface PathProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
d: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Path /> element is the most powerful element in the SVG library of basic shapes. It can be used to create lines, curves, arcs, and more.
|
||||||
|
*/
|
||||||
|
export class Path extends React.Component<
|
||||||
|
React.PropsWithChildren<PathProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface RectProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
x?: string | number;
|
||||||
|
y?: string | number;
|
||||||
|
width: string | number;
|
||||||
|
height: string | number;
|
||||||
|
rx?: string | number;
|
||||||
|
ry?: string | number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Rect /> element is used to create a rectangle and variations of a rectangle shape.
|
||||||
|
*/
|
||||||
|
export class Rect extends React.Component<
|
||||||
|
React.PropsWithChildren<RectProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface CircleProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
cx?: string | number;
|
||||||
|
cy?: string | number;
|
||||||
|
r: string | number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Circle /> element is used to create a circle.
|
||||||
|
*/
|
||||||
|
export class Circle extends React.Component<
|
||||||
|
React.PropsWithChildren<CircleProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface EllipseProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
cx?: string | number;
|
||||||
|
cy?: string | number;
|
||||||
|
rx: string | number;
|
||||||
|
ry: string | number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Ellipse /> element is used to create an ellipse.
|
||||||
|
* An ellipse is closely related to a circle. The difference is that an ellipse has an x and a y radius that differs from each other, while a circle has equal x and y radius.
|
||||||
|
*/
|
||||||
|
export class Ellipse extends React.Component<
|
||||||
|
React.PropsWithChildren<EllipseProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface TspanProps extends SVGPresentationAttributes {
|
||||||
|
x?: string | number;
|
||||||
|
y?: string | number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Tspan /> element defines a subtext within a <Text /> element or another <Tspan /> element.
|
||||||
|
* It allows for adjustment of the style and/or position of that subtext as needed.
|
||||||
|
*/
|
||||||
|
export class Tspan extends React.Component<
|
||||||
|
React.PropsWithChildren<TspanProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface GProps extends SVGPresentationAttributes {
|
||||||
|
style?: Style;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <G /> SVG element is a container used to group other SVG elements.
|
||||||
|
* Transformations applied to the <G /> element are performed on its child elements, and its attributes are inherited by its children.
|
||||||
|
*/
|
||||||
|
export class G extends React.Component<React.PropsWithChildren<GProps>> {}
|
||||||
|
|
||||||
|
interface StopProps {
|
||||||
|
offset: string | number;
|
||||||
|
stopColor: string;
|
||||||
|
stopOpacity?: string | number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The SVG <Stop /> element defines a color and its position to use on a gradient. This element is always a child of a <LinearGradient /> or <RadialGradient /> element
|
||||||
|
*/
|
||||||
|
export class Stop extends React.Component<
|
||||||
|
React.PropsWithChildren<StopProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
// eslint-disable-next-line @typescript-eslint/no-empty-object-type
|
||||||
|
interface DefsProps {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Defs /> element is used to store graphical objects that will be used at a later time. Objects created inside a <Defs /> element are not rendered directly. To display them you have to reference them
|
||||||
|
*/
|
||||||
|
export class Defs extends React.Component<
|
||||||
|
React.PropsWithChildren<DefsProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface ClipPathProps {
|
||||||
|
id?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <ClipPath /> SVG element defines a clipping path, to be used by the clipPath property.
|
||||||
|
* A clipping path restricts the region to which paint can be applied. Conceptually, parts of the drawing that lie outside of the region bounded by the clipping path are not drawn.
|
||||||
|
*/
|
||||||
|
export class ClipPath extends React.Component<
|
||||||
|
React.PropsWithChildren<ClipPathProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface MarkerProps {
|
||||||
|
id: string;
|
||||||
|
viewBox?: string;
|
||||||
|
refX?: string | number;
|
||||||
|
refY?: string | number;
|
||||||
|
markerWidth?: string | number;
|
||||||
|
markerHeight?: string | number;
|
||||||
|
orient?: 'auto' | 'auto-start-reverse' | number;
|
||||||
|
markerUnits?: 'strokeWidth' | 'userSpaceOnUse';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Marker /> SVG element defines a graphic used for drawing arrows or polymarkers on a given <Path />, <Line />, <Polyline />, or <Polygon /> element.
|
||||||
|
* Markers can be attached to shapes using the markerStart, markerMid, and markerEnd properties.
|
||||||
|
*/
|
||||||
|
export class Marker extends React.Component<
|
||||||
|
React.PropsWithChildren<MarkerProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface LinearGradientProps {
|
||||||
|
id: string;
|
||||||
|
x1?: string | number;
|
||||||
|
x2?: string | number;
|
||||||
|
y1?: string | number;
|
||||||
|
y2?: string | number;
|
||||||
|
xlinkHref?: string;
|
||||||
|
gradientTransform?: string;
|
||||||
|
gradientUnits?: 'userSpaceOnUse' | 'objectBoundingBox';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <LinearGradient /> element lets authors define linear gradients that can be applied to fill or stroke of graphical elements.
|
||||||
|
*/
|
||||||
|
export class LinearGradient extends React.Component<
|
||||||
|
React.PropsWithChildren<LinearGradientProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface RadialGradientProps {
|
||||||
|
id: string;
|
||||||
|
cx?: string | number;
|
||||||
|
cy?: string | number;
|
||||||
|
r?: string | number;
|
||||||
|
fx?: string | number;
|
||||||
|
fy?: string | number;
|
||||||
|
xlinkHref?: string;
|
||||||
|
gradientTransform?: string;
|
||||||
|
gradientUnits?: 'userSpaceOnUse' | 'objectBoundingBox';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <RadialGradient /> element lets authors define radial gradients that can be applied to fill or stroke of graphical elements.
|
||||||
|
*/
|
||||||
|
export class RadialGradient extends React.Component<
|
||||||
|
React.PropsWithChildren<RadialGradientProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface BlobProviderParams {
|
||||||
|
blob: Blob | null;
|
||||||
|
url: string | null;
|
||||||
|
loading: boolean;
|
||||||
|
error: Error | null;
|
||||||
|
}
|
||||||
|
interface BlobProviderProps {
|
||||||
|
document: React.ReactElement<DocumentProps>;
|
||||||
|
children: (params: BlobProviderParams) => React.ReactNode;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Easy and declarative way of getting document's blob data without
|
||||||
|
* showing it on screen.
|
||||||
|
* @see https://react-pdf.org/advanced#on-the-fly-rendering
|
||||||
|
* @platform web
|
||||||
|
*/
|
||||||
|
export class BlobProvider extends React.Component<BlobProviderProps> {}
|
||||||
|
|
||||||
|
interface PDFViewerProps {
|
||||||
|
width?: number | string;
|
||||||
|
height?: number | string;
|
||||||
|
style?: Style | Style[];
|
||||||
|
className?: string;
|
||||||
|
children?: React.ReactElement<DocumentProps>;
|
||||||
|
innerRef?: React.Ref<HTMLIFrameElement>;
|
||||||
|
showToolbar?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Iframe PDF viewer for client-side generated documents.
|
||||||
|
* @platform web
|
||||||
|
*/
|
||||||
|
export class PDFViewer extends React.Component<PDFViewerProps> {}
|
||||||
|
|
||||||
|
interface PDFDownloadLinkProps
|
||||||
|
extends Omit<
|
||||||
|
React.AnchorHTMLAttributes<HTMLAnchorElement>,
|
||||||
|
'href' | 'children'
|
||||||
|
> {
|
||||||
|
/** PDF filename. Alias for anchor tag `download` attribute. */
|
||||||
|
fileName?: string;
|
||||||
|
document: React.ReactElement<DocumentProps>;
|
||||||
|
children?: React.ReactNode | React.FC<BlobProviderParams>;
|
||||||
|
onClick?: React.AnchorHTMLAttributes<HTMLAnchorElement>['onClick'] &
|
||||||
|
((
|
||||||
|
event: React.MouseEvent<HTMLAnchorElement, MouseEvent>,
|
||||||
|
instance: UsePDFInstance,
|
||||||
|
) => void);
|
||||||
|
ref?: React.Ref<HTMLAnchorElement> | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Anchor tag to enable generate and download PDF documents on the fly.
|
||||||
|
* @see https://react-pdf.org/advanced#on-the-fly-rendering
|
||||||
|
* @platform web
|
||||||
|
*/
|
||||||
|
export class PDFDownloadLink extends React.Component<PDFDownloadLinkProps> {}
|
||||||
|
|
||||||
|
interface UsePDFInstance {
|
||||||
|
loading: boolean;
|
||||||
|
blob: Blob | null;
|
||||||
|
url: string | null;
|
||||||
|
error: string | null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* React hook for creating and updating a PDF document instance
|
||||||
|
* @platform web
|
||||||
|
*/
|
||||||
|
export function usePDF(options?: {
|
||||||
|
document?: React.ReactElement<DocumentProps>;
|
||||||
|
}): [
|
||||||
|
UsePDFInstance,
|
||||||
|
(newDocument: React.ReactElement<DocumentProps>) => void,
|
||||||
|
];
|
||||||
|
|
||||||
|
export const Font: FontStore;
|
||||||
|
|
||||||
|
export const StyleSheet: {
|
||||||
|
create: <T extends Styles>(styles: T) => T;
|
||||||
|
};
|
||||||
|
|
||||||
|
export const version: any;
|
||||||
|
|
||||||
|
export const PDFRenderer: any;
|
||||||
|
|
||||||
|
export const pdf: (initialValue?: React.ReactElement<DocumentProps>) => {
|
||||||
|
container: any;
|
||||||
|
isDirty: () => boolean;
|
||||||
|
toString: () => string;
|
||||||
|
toBlob: () => Promise<Blob>;
|
||||||
|
toBuffer: () => Promise<NodeJS.ReadableStream>;
|
||||||
|
on: (event: 'change', callback: () => void) => void;
|
||||||
|
updateContainer: (
|
||||||
|
document: React.ReactElement<any>,
|
||||||
|
callback?: () => void,
|
||||||
|
) => void;
|
||||||
|
removeListener: (event: 'change', callback: () => void) => void;
|
||||||
|
};
|
||||||
|
|
||||||
|
export const renderToStream: (
|
||||||
|
document: React.ReactElement<DocumentProps>,
|
||||||
|
) => Promise<NodeJS.ReadableStream>;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated use the `renderToBuffer` method
|
||||||
|
*/
|
||||||
|
export const renderToString: (
|
||||||
|
document: React.ReactElement<DocumentProps>,
|
||||||
|
) => Promise<string>;
|
||||||
|
|
||||||
|
export const renderToFile: (
|
||||||
|
document: React.ReactElement<DocumentProps>,
|
||||||
|
filePath: string,
|
||||||
|
callback?: (output: NodeJS.ReadableStream, _filePath: string) => any,
|
||||||
|
) => Promise<NodeJS.ReadableStream>;
|
||||||
|
|
||||||
|
const render: typeof renderToFile;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Render document into a nodejs buffer
|
||||||
|
* @platform node
|
||||||
|
*/
|
||||||
|
export const renderToBuffer: (
|
||||||
|
document: React.ReactElement<ReactPDF.DocumentProps>,
|
||||||
|
) => Promise<Buffer>;
|
||||||
|
}
|
||||||
793
build_temp/.next/node_modules/@react-pdf/renderer-5f716e9bc7d68b8a/lib/react-pdf.browser.min.d.ts
generated
vendored
Normal file
793
build_temp/.next/node_modules/@react-pdf/renderer-5f716e9bc7d68b8a/lib/react-pdf.browser.min.d.ts
generated
vendored
Normal file
@@ -0,0 +1,793 @@
|
|||||||
|
/* eslint-disable max-classes-per-file */
|
||||||
|
|
||||||
|
import * as React from 'react';
|
||||||
|
import {
|
||||||
|
Style,
|
||||||
|
PageSize,
|
||||||
|
FontStore,
|
||||||
|
PDFVersion,
|
||||||
|
Orientation,
|
||||||
|
SourceObject,
|
||||||
|
SrcSet,
|
||||||
|
Sizes,
|
||||||
|
HyphenationCallback,
|
||||||
|
SVGPresentationAttributes,
|
||||||
|
Bookmark,
|
||||||
|
PageLayout,
|
||||||
|
PageMode,
|
||||||
|
HitSlop,
|
||||||
|
} from '@react-pdf/types';
|
||||||
|
|
||||||
|
declare class ReactPDF {
|
||||||
|
static default: typeof ReactPDF;
|
||||||
|
}
|
||||||
|
|
||||||
|
export = ReactPDF;
|
||||||
|
|
||||||
|
declare namespace ReactPDF {
|
||||||
|
interface Styles {
|
||||||
|
[key: string]: Style;
|
||||||
|
}
|
||||||
|
interface OnRenderProps {
|
||||||
|
blob?: Blob;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Permissions {
|
||||||
|
printing?: 'lowResolution' | 'highResolution';
|
||||||
|
modifying?: boolean;
|
||||||
|
copying?: boolean;
|
||||||
|
annotating?: boolean;
|
||||||
|
fillingForms?: boolean;
|
||||||
|
contentAccessibility?: boolean;
|
||||||
|
documentAssembly?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface DocumentProps {
|
||||||
|
style?: Style | Style[];
|
||||||
|
title?: string;
|
||||||
|
author?: string;
|
||||||
|
subject?: string;
|
||||||
|
creator?: string;
|
||||||
|
keywords?: string;
|
||||||
|
producer?: string;
|
||||||
|
language?: string;
|
||||||
|
creationDate?: Date;
|
||||||
|
modificationDate?: Date;
|
||||||
|
pdfVersion?: PDFVersion;
|
||||||
|
pageMode?: PageMode;
|
||||||
|
pageLayout?: PageLayout;
|
||||||
|
ownerPassword?: string;
|
||||||
|
userPassword?: string;
|
||||||
|
permissions?: Permissions;
|
||||||
|
onRender?: (props: OnRenderProps) => any;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This component represent the PDF document itself. It must be the root
|
||||||
|
* of your tree element structure, and under no circumstances should it be
|
||||||
|
* used as children of another react-pdf component. In addition, it should
|
||||||
|
* only have childs of type <Page />.
|
||||||
|
*/
|
||||||
|
export class Document extends React.Component<
|
||||||
|
React.PropsWithChildren<DocumentProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface NodeProps {
|
||||||
|
id?: string;
|
||||||
|
style?: Style | Style[];
|
||||||
|
/**
|
||||||
|
* Render component in all wrapped pages.
|
||||||
|
* @see https://react-pdf.org/advanced#fixed-components
|
||||||
|
*/
|
||||||
|
fixed?: boolean;
|
||||||
|
/**
|
||||||
|
* Force the wrapping algorithm to start a new page when rendering the
|
||||||
|
* element.
|
||||||
|
* @see https://react-pdf.org/advanced#page-breaks
|
||||||
|
*/
|
||||||
|
break?: boolean;
|
||||||
|
/**
|
||||||
|
* Hint that no page wrapping should occur between all sibling elements following the element within n points
|
||||||
|
* @see https://react-pdf.org/advanced#orphan-&-widow-protection
|
||||||
|
*/
|
||||||
|
minPresenceAhead?: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface PageProps extends NodeProps {
|
||||||
|
/**
|
||||||
|
* Enable page wrapping for this page.
|
||||||
|
* @see https://react-pdf.org/components#page-wrapping
|
||||||
|
*/
|
||||||
|
wrap?: boolean;
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
size?: PageSize;
|
||||||
|
orientation?: Orientation;
|
||||||
|
dpi?: number;
|
||||||
|
bookmark?: Bookmark;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents single page inside the PDF document, or a subset of them if
|
||||||
|
* using the wrapping feature. A <Document /> can contain as many pages as
|
||||||
|
* you want, but ensure not rendering a page inside any component besides
|
||||||
|
* Document.
|
||||||
|
*/
|
||||||
|
export class Page extends React.Component<
|
||||||
|
React.PropsWithChildren<PageProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface ViewProps extends NodeProps {
|
||||||
|
id?: string;
|
||||||
|
/**
|
||||||
|
* Enable/disable page wrapping for element.
|
||||||
|
* @see https://react-pdf.org/components#page-wrapping
|
||||||
|
*/
|
||||||
|
wrap?: boolean;
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
render?: (props: {
|
||||||
|
pageNumber: number;
|
||||||
|
subPageNumber: number;
|
||||||
|
}) => React.ReactNode;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The most fundamental component for building a UI and is designed to be
|
||||||
|
* nested inside other views and can have 0 to many children.
|
||||||
|
*/
|
||||||
|
export class View extends React.Component<
|
||||||
|
React.PropsWithChildren<ViewProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface BaseImageProps extends NodeProps {
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
cache?: boolean;
|
||||||
|
/**
|
||||||
|
* A comma-separated list of image sources with width descriptors.
|
||||||
|
* Works like the HTML img srcSet attribute.
|
||||||
|
* @example "small.jpg 300w, medium.jpg 600w, large.jpg 900w"
|
||||||
|
*/
|
||||||
|
srcSet?: SrcSet;
|
||||||
|
/**
|
||||||
|
* The intended display width of the image, used to select the best source
|
||||||
|
* from srcSet. Accepts a number (in points) or a string.
|
||||||
|
* Works like the HTML img sizes attribute.
|
||||||
|
* @example 300
|
||||||
|
* @example "300"
|
||||||
|
*/
|
||||||
|
sizes?: Sizes;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ImageWithSrcProp extends BaseImageProps {
|
||||||
|
src: SourceObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ImageWithSourceProp extends BaseImageProps {
|
||||||
|
source: SourceObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
type ImageProps = ImageWithSrcProp | ImageWithSourceProp;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A React component for displaying network or local (Node only) JPG or
|
||||||
|
* PNG images, as well as base64 encoded image strings.
|
||||||
|
*/
|
||||||
|
export class Image extends React.Component<ImageProps> {}
|
||||||
|
|
||||||
|
interface BaseImageBackgroundProps extends NodeProps {
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
cache?: boolean;
|
||||||
|
/**
|
||||||
|
* A comma-separated list of image sources with width descriptors.
|
||||||
|
* Works like the HTML img srcSet attribute.
|
||||||
|
* @example "small.jpg 300w, medium.jpg 600w, large.jpg 900w"
|
||||||
|
*/
|
||||||
|
srcSet?: SrcSet;
|
||||||
|
/**
|
||||||
|
* The intended display width of the image, used to select the best source
|
||||||
|
* from srcSet. Accepts a number (in points) or a string.
|
||||||
|
* @example 300
|
||||||
|
*/
|
||||||
|
sizes?: Sizes;
|
||||||
|
/**
|
||||||
|
* Style applied to the background image.
|
||||||
|
*/
|
||||||
|
imageStyle?: Style;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ImageBackgroundWithSrcProp extends BaseImageBackgroundProps {
|
||||||
|
src: SourceObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ImageBackgroundWithSourceProp extends BaseImageBackgroundProps {
|
||||||
|
source: SourceObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
type ImageBackgroundProps =
|
||||||
|
| ImageBackgroundWithSrcProp
|
||||||
|
| ImageBackgroundWithSourceProp;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A React component for displaying an image behind child content.
|
||||||
|
* Compatible with React Native's ImageBackground component.
|
||||||
|
* @see https://reactnative.dev/docs/imagebackground
|
||||||
|
*/
|
||||||
|
export class ImageBackground extends React.Component<
|
||||||
|
React.PropsWithChildren<ImageBackgroundProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface TextProps extends NodeProps {
|
||||||
|
id?: string;
|
||||||
|
/**
|
||||||
|
* Enable/disable page wrapping for element.
|
||||||
|
* @see https://react-pdf.org/components#page-wrapping
|
||||||
|
*/
|
||||||
|
wrap?: boolean;
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
render?: (props: {
|
||||||
|
pageNumber: number;
|
||||||
|
totalPages: number;
|
||||||
|
subPageNumber: number;
|
||||||
|
subPageTotalPages: number;
|
||||||
|
}) => React.ReactNode;
|
||||||
|
/**
|
||||||
|
* Override the default hyphenation-callback
|
||||||
|
* @see https://react-pdf.org/fonts#registerhyphenationcallback
|
||||||
|
*/
|
||||||
|
hyphenationCallback?: HyphenationCallback;
|
||||||
|
/**
|
||||||
|
* Specifies the minimum number of lines in a text element that must be shown at the bottom of a page or its container.
|
||||||
|
* @see https://react-pdf.org/advanced#orphan-&-widow-protection
|
||||||
|
*/
|
||||||
|
orphans?: number;
|
||||||
|
/**
|
||||||
|
* Specifies the minimum number of lines in a text element that must be shown at the top of a page or its container..
|
||||||
|
* @see https://react-pdf.org/advanced#orphan-&-widow-protection
|
||||||
|
*/
|
||||||
|
widows?: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface SVGTextProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
x: string | number;
|
||||||
|
y: string | number;
|
||||||
|
/**
|
||||||
|
* Override the default hyphenation-callback
|
||||||
|
* @see https://react-pdf.org/fonts#registerhyphenationcallback
|
||||||
|
*/
|
||||||
|
hyphenationCallback?: HyphenationCallback;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A React component for displaying text. Text supports nesting of other
|
||||||
|
* Text or Link components to create inline styling.
|
||||||
|
*/
|
||||||
|
export class Text extends React.Component<
|
||||||
|
React.PropsWithChildren<TextProps> | SVGTextProps
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface LinkProps extends NodeProps {
|
||||||
|
/**
|
||||||
|
* Enable/disable page wrapping for element.
|
||||||
|
* @see https://react-pdf.org/components#page-wrapping
|
||||||
|
*/
|
||||||
|
wrap?: boolean;
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
href?: string;
|
||||||
|
src?: string;
|
||||||
|
/**
|
||||||
|
* Extends the clickable area of the link beyond its visible bounds.
|
||||||
|
* Accepts a number (applied to all sides) or an object with top, bottom, left, right.
|
||||||
|
* @see https://reactnative.dev/docs/view#hitslop
|
||||||
|
*/
|
||||||
|
hitSlop?: HitSlop;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A React component for displaying a hyperlink. Link’s can be nested
|
||||||
|
* inside a Text component, or being inside any other valid primitive.
|
||||||
|
*/
|
||||||
|
export class Link extends React.Component<
|
||||||
|
React.PropsWithChildren<LinkProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface FormCommonProps extends NodeProps {
|
||||||
|
name?: string;
|
||||||
|
required?: boolean;
|
||||||
|
noExport?: boolean;
|
||||||
|
readOnly?: boolean;
|
||||||
|
value?: number | string;
|
||||||
|
defaultValue?: number | string;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface FieldSetProps extends NodeProps {
|
||||||
|
name: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export class FieldSet extends React.Component<
|
||||||
|
React.PropsWithChildren<FieldSetProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
// see http://pdfkit.org/docs/forms.html#text_field_formatting
|
||||||
|
interface TextInputFormatting {
|
||||||
|
type:
|
||||||
|
| 'date'
|
||||||
|
| 'time'
|
||||||
|
| 'percent'
|
||||||
|
| 'number'
|
||||||
|
| 'zip'
|
||||||
|
| 'zipPlus4'
|
||||||
|
| 'phone'
|
||||||
|
| 'ssn';
|
||||||
|
param?: string;
|
||||||
|
nDec?: number;
|
||||||
|
sepComma?: boolean;
|
||||||
|
negStyle?: 'MinusBlack' | 'Red' | 'ParensBlack' | 'ParensRed';
|
||||||
|
currency?: string;
|
||||||
|
currencyPrepend?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
// see http://pdfkit.org/docs/forms.html#text_field_formatting
|
||||||
|
interface TextInputProps extends FormCommonProps {
|
||||||
|
align?: 'left' | 'center' | 'right';
|
||||||
|
multiline?: boolean;
|
||||||
|
/**
|
||||||
|
* The text will be masked (e.g. with asterisks).
|
||||||
|
*/
|
||||||
|
password?: boolean;
|
||||||
|
/**
|
||||||
|
* If set, text entered in the field is not spell-checked
|
||||||
|
*/
|
||||||
|
noSpell?: boolean;
|
||||||
|
format?: TextInputFormatting;
|
||||||
|
/**
|
||||||
|
* Sets the fontSize (default or 0 means auto sizing)
|
||||||
|
*/
|
||||||
|
fontSize?: number;
|
||||||
|
/**
|
||||||
|
* Sets the maximum length (characters) of the text in the field
|
||||||
|
*/
|
||||||
|
maxLength?: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
export class TextInput extends React.Component<TextInputProps> {}
|
||||||
|
|
||||||
|
interface CheckboxProps extends FormCommonProps {
|
||||||
|
backgroundColor?: string;
|
||||||
|
borderColor?: string;
|
||||||
|
checked?: boolean;
|
||||||
|
onState?: string;
|
||||||
|
offState?: string;
|
||||||
|
xMark?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
export class Checkbox extends React.Component<CheckboxProps> {}
|
||||||
|
|
||||||
|
interface SelectAndListPropsBase extends FormCommonProps {
|
||||||
|
sort?: boolean;
|
||||||
|
edit?: boolean;
|
||||||
|
multiSelect?: boolean;
|
||||||
|
noSpell?: boolean;
|
||||||
|
select?: string[];
|
||||||
|
}
|
||||||
|
|
||||||
|
type SelectAndListPropsWithEdit = SelectAndListPropsBase & {
|
||||||
|
edit: true | false;
|
||||||
|
noSpell: boolean;
|
||||||
|
};
|
||||||
|
|
||||||
|
type SelectAndListPropsWithNoSpell = SelectAndListPropsBase & {
|
||||||
|
edit: boolean;
|
||||||
|
noSpell: true | false;
|
||||||
|
};
|
||||||
|
|
||||||
|
type SelectAndListProps =
|
||||||
|
| SelectAndListPropsWithEdit
|
||||||
|
| SelectAndListPropsWithNoSpell;
|
||||||
|
|
||||||
|
export class Select extends React.Component<SelectAndListProps> {}
|
||||||
|
|
||||||
|
export class List extends React.Component<SelectAndListProps> {}
|
||||||
|
|
||||||
|
interface NoteProps extends NodeProps {
|
||||||
|
children: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export class Note extends React.Component<NoteProps> {}
|
||||||
|
|
||||||
|
interface CanvasProps extends NodeProps {
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
paint: (
|
||||||
|
painter: any,
|
||||||
|
availableWidth: number,
|
||||||
|
availableHeight: number,
|
||||||
|
) => null;
|
||||||
|
}
|
||||||
|
|
||||||
|
export class Canvas extends React.Component<CanvasProps> {}
|
||||||
|
|
||||||
|
interface SVGProps extends NodeProps, SVGPresentationAttributes {
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
width?: string | number;
|
||||||
|
height?: string | number;
|
||||||
|
viewBox?: string;
|
||||||
|
preserveAspectRatio?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <SVG /> element is a container that defines a new coordinate system and viewport. It is used as the outermost element of SVG documents.
|
||||||
|
*/
|
||||||
|
export class Svg extends React.Component<React.PropsWithChildren<SVGProps>> {}
|
||||||
|
|
||||||
|
interface LineProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
x1: string | number;
|
||||||
|
x2: string | number;
|
||||||
|
y1: string | number;
|
||||||
|
y2: string | number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Line /> element is used to create a line.
|
||||||
|
*/
|
||||||
|
export class Line extends React.Component<
|
||||||
|
React.PropsWithChildren<LineProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface PolylineProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
points: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Polyline /> element is used to create any shape that consists of only straight lines (that is connected at several points).
|
||||||
|
*/
|
||||||
|
export class Polyline extends React.Component<
|
||||||
|
React.PropsWithChildren<PolylineProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface PolygonProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
points: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Polygon /> element is used to create a graphic that contains at least three sides.
|
||||||
|
* Polygons are made of straight lines, and the shape is "closed" (all the lines connect up).
|
||||||
|
*/
|
||||||
|
export class Polygon extends React.Component<
|
||||||
|
React.PropsWithChildren<PolygonProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface PathProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
d: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Path /> element is the most powerful element in the SVG library of basic shapes. It can be used to create lines, curves, arcs, and more.
|
||||||
|
*/
|
||||||
|
export class Path extends React.Component<
|
||||||
|
React.PropsWithChildren<PathProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface RectProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
x?: string | number;
|
||||||
|
y?: string | number;
|
||||||
|
width: string | number;
|
||||||
|
height: string | number;
|
||||||
|
rx?: string | number;
|
||||||
|
ry?: string | number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Rect /> element is used to create a rectangle and variations of a rectangle shape.
|
||||||
|
*/
|
||||||
|
export class Rect extends React.Component<
|
||||||
|
React.PropsWithChildren<RectProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface CircleProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
cx?: string | number;
|
||||||
|
cy?: string | number;
|
||||||
|
r: string | number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Circle /> element is used to create a circle.
|
||||||
|
*/
|
||||||
|
export class Circle extends React.Component<
|
||||||
|
React.PropsWithChildren<CircleProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface EllipseProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
cx?: string | number;
|
||||||
|
cy?: string | number;
|
||||||
|
rx: string | number;
|
||||||
|
ry: string | number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Ellipse /> element is used to create an ellipse.
|
||||||
|
* An ellipse is closely related to a circle. The difference is that an ellipse has an x and a y radius that differs from each other, while a circle has equal x and y radius.
|
||||||
|
*/
|
||||||
|
export class Ellipse extends React.Component<
|
||||||
|
React.PropsWithChildren<EllipseProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface TspanProps extends SVGPresentationAttributes {
|
||||||
|
x?: string | number;
|
||||||
|
y?: string | number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Tspan /> element defines a subtext within a <Text /> element or another <Tspan /> element.
|
||||||
|
* It allows for adjustment of the style and/or position of that subtext as needed.
|
||||||
|
*/
|
||||||
|
export class Tspan extends React.Component<
|
||||||
|
React.PropsWithChildren<TspanProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface GProps extends SVGPresentationAttributes {
|
||||||
|
style?: Style;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <G /> SVG element is a container used to group other SVG elements.
|
||||||
|
* Transformations applied to the <G /> element are performed on its child elements, and its attributes are inherited by its children.
|
||||||
|
*/
|
||||||
|
export class G extends React.Component<React.PropsWithChildren<GProps>> {}
|
||||||
|
|
||||||
|
interface StopProps {
|
||||||
|
offset: string | number;
|
||||||
|
stopColor: string;
|
||||||
|
stopOpacity?: string | number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The SVG <Stop /> element defines a color and its position to use on a gradient. This element is always a child of a <LinearGradient /> or <RadialGradient /> element
|
||||||
|
*/
|
||||||
|
export class Stop extends React.Component<
|
||||||
|
React.PropsWithChildren<StopProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
// eslint-disable-next-line @typescript-eslint/no-empty-object-type
|
||||||
|
interface DefsProps {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Defs /> element is used to store graphical objects that will be used at a later time. Objects created inside a <Defs /> element are not rendered directly. To display them you have to reference them
|
||||||
|
*/
|
||||||
|
export class Defs extends React.Component<
|
||||||
|
React.PropsWithChildren<DefsProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface ClipPathProps {
|
||||||
|
id?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <ClipPath /> SVG element defines a clipping path, to be used by the clipPath property.
|
||||||
|
* A clipping path restricts the region to which paint can be applied. Conceptually, parts of the drawing that lie outside of the region bounded by the clipping path are not drawn.
|
||||||
|
*/
|
||||||
|
export class ClipPath extends React.Component<
|
||||||
|
React.PropsWithChildren<ClipPathProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface MarkerProps {
|
||||||
|
id: string;
|
||||||
|
viewBox?: string;
|
||||||
|
refX?: string | number;
|
||||||
|
refY?: string | number;
|
||||||
|
markerWidth?: string | number;
|
||||||
|
markerHeight?: string | number;
|
||||||
|
orient?: 'auto' | 'auto-start-reverse' | number;
|
||||||
|
markerUnits?: 'strokeWidth' | 'userSpaceOnUse';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Marker /> SVG element defines a graphic used for drawing arrows or polymarkers on a given <Path />, <Line />, <Polyline />, or <Polygon /> element.
|
||||||
|
* Markers can be attached to shapes using the markerStart, markerMid, and markerEnd properties.
|
||||||
|
*/
|
||||||
|
export class Marker extends React.Component<
|
||||||
|
React.PropsWithChildren<MarkerProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface LinearGradientProps {
|
||||||
|
id: string;
|
||||||
|
x1?: string | number;
|
||||||
|
x2?: string | number;
|
||||||
|
y1?: string | number;
|
||||||
|
y2?: string | number;
|
||||||
|
xlinkHref?: string;
|
||||||
|
gradientTransform?: string;
|
||||||
|
gradientUnits?: 'userSpaceOnUse' | 'objectBoundingBox';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <LinearGradient /> element lets authors define linear gradients that can be applied to fill or stroke of graphical elements.
|
||||||
|
*/
|
||||||
|
export class LinearGradient extends React.Component<
|
||||||
|
React.PropsWithChildren<LinearGradientProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface RadialGradientProps {
|
||||||
|
id: string;
|
||||||
|
cx?: string | number;
|
||||||
|
cy?: string | number;
|
||||||
|
r?: string | number;
|
||||||
|
fx?: string | number;
|
||||||
|
fy?: string | number;
|
||||||
|
xlinkHref?: string;
|
||||||
|
gradientTransform?: string;
|
||||||
|
gradientUnits?: 'userSpaceOnUse' | 'objectBoundingBox';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <RadialGradient /> element lets authors define radial gradients that can be applied to fill or stroke of graphical elements.
|
||||||
|
*/
|
||||||
|
export class RadialGradient extends React.Component<
|
||||||
|
React.PropsWithChildren<RadialGradientProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface BlobProviderParams {
|
||||||
|
blob: Blob | null;
|
||||||
|
url: string | null;
|
||||||
|
loading: boolean;
|
||||||
|
error: Error | null;
|
||||||
|
}
|
||||||
|
interface BlobProviderProps {
|
||||||
|
document: React.ReactElement<DocumentProps>;
|
||||||
|
children: (params: BlobProviderParams) => React.ReactNode;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Easy and declarative way of getting document's blob data without
|
||||||
|
* showing it on screen.
|
||||||
|
* @see https://react-pdf.org/advanced#on-the-fly-rendering
|
||||||
|
* @platform web
|
||||||
|
*/
|
||||||
|
export class BlobProvider extends React.Component<BlobProviderProps> {}
|
||||||
|
|
||||||
|
interface PDFViewerProps {
|
||||||
|
width?: number | string;
|
||||||
|
height?: number | string;
|
||||||
|
style?: Style | Style[];
|
||||||
|
className?: string;
|
||||||
|
children?: React.ReactElement<DocumentProps>;
|
||||||
|
innerRef?: React.Ref<HTMLIFrameElement>;
|
||||||
|
showToolbar?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Iframe PDF viewer for client-side generated documents.
|
||||||
|
* @platform web
|
||||||
|
*/
|
||||||
|
export class PDFViewer extends React.Component<PDFViewerProps> {}
|
||||||
|
|
||||||
|
interface PDFDownloadLinkProps
|
||||||
|
extends Omit<
|
||||||
|
React.AnchorHTMLAttributes<HTMLAnchorElement>,
|
||||||
|
'href' | 'children'
|
||||||
|
> {
|
||||||
|
/** PDF filename. Alias for anchor tag `download` attribute. */
|
||||||
|
fileName?: string;
|
||||||
|
document: React.ReactElement<DocumentProps>;
|
||||||
|
children?: React.ReactNode | React.FC<BlobProviderParams>;
|
||||||
|
onClick?: React.AnchorHTMLAttributes<HTMLAnchorElement>['onClick'] &
|
||||||
|
((
|
||||||
|
event: React.MouseEvent<HTMLAnchorElement, MouseEvent>,
|
||||||
|
instance: UsePDFInstance,
|
||||||
|
) => void);
|
||||||
|
ref?: React.Ref<HTMLAnchorElement> | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Anchor tag to enable generate and download PDF documents on the fly.
|
||||||
|
* @see https://react-pdf.org/advanced#on-the-fly-rendering
|
||||||
|
* @platform web
|
||||||
|
*/
|
||||||
|
export class PDFDownloadLink extends React.Component<PDFDownloadLinkProps> {}
|
||||||
|
|
||||||
|
interface UsePDFInstance {
|
||||||
|
loading: boolean;
|
||||||
|
blob: Blob | null;
|
||||||
|
url: string | null;
|
||||||
|
error: string | null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* React hook for creating and updating a PDF document instance
|
||||||
|
* @platform web
|
||||||
|
*/
|
||||||
|
export function usePDF(options?: {
|
||||||
|
document?: React.ReactElement<DocumentProps>;
|
||||||
|
}): [
|
||||||
|
UsePDFInstance,
|
||||||
|
(newDocument: React.ReactElement<DocumentProps>) => void,
|
||||||
|
];
|
||||||
|
|
||||||
|
export const Font: FontStore;
|
||||||
|
|
||||||
|
export const StyleSheet: {
|
||||||
|
create: <T extends Styles>(styles: T) => T;
|
||||||
|
};
|
||||||
|
|
||||||
|
export const version: any;
|
||||||
|
|
||||||
|
export const PDFRenderer: any;
|
||||||
|
|
||||||
|
export const pdf: (initialValue?: React.ReactElement<DocumentProps>) => {
|
||||||
|
container: any;
|
||||||
|
isDirty: () => boolean;
|
||||||
|
toString: () => string;
|
||||||
|
toBlob: () => Promise<Blob>;
|
||||||
|
toBuffer: () => Promise<NodeJS.ReadableStream>;
|
||||||
|
on: (event: 'change', callback: () => void) => void;
|
||||||
|
updateContainer: (
|
||||||
|
document: React.ReactElement<any>,
|
||||||
|
callback?: () => void,
|
||||||
|
) => void;
|
||||||
|
removeListener: (event: 'change', callback: () => void) => void;
|
||||||
|
};
|
||||||
|
|
||||||
|
export const renderToStream: (
|
||||||
|
document: React.ReactElement<DocumentProps>,
|
||||||
|
) => Promise<NodeJS.ReadableStream>;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated use the `renderToBuffer` method
|
||||||
|
*/
|
||||||
|
export const renderToString: (
|
||||||
|
document: React.ReactElement<DocumentProps>,
|
||||||
|
) => Promise<string>;
|
||||||
|
|
||||||
|
export const renderToFile: (
|
||||||
|
document: React.ReactElement<DocumentProps>,
|
||||||
|
filePath: string,
|
||||||
|
callback?: (output: NodeJS.ReadableStream, _filePath: string) => any,
|
||||||
|
) => Promise<NodeJS.ReadableStream>;
|
||||||
|
|
||||||
|
const render: typeof renderToFile;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Render document into a nodejs buffer
|
||||||
|
* @platform node
|
||||||
|
*/
|
||||||
|
export const renderToBuffer: (
|
||||||
|
document: React.ReactElement<ReactPDF.DocumentProps>,
|
||||||
|
) => Promise<Buffer>;
|
||||||
|
}
|
||||||
1
build_temp/.next/node_modules/@react-pdf/renderer-5f716e9bc7d68b8a/lib/react-pdf.browser.min.js
generated
vendored
Normal file
1
build_temp/.next/node_modules/@react-pdf/renderer-5f716e9bc7d68b8a/lib/react-pdf.browser.min.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
793
build_temp/.next/node_modules/@react-pdf/renderer-5f716e9bc7d68b8a/lib/react-pdf.d.cts
generated
vendored
Normal file
793
build_temp/.next/node_modules/@react-pdf/renderer-5f716e9bc7d68b8a/lib/react-pdf.d.cts
generated
vendored
Normal file
@@ -0,0 +1,793 @@
|
|||||||
|
/* eslint-disable max-classes-per-file */
|
||||||
|
|
||||||
|
import * as React from 'react';
|
||||||
|
import {
|
||||||
|
Style,
|
||||||
|
PageSize,
|
||||||
|
FontStore,
|
||||||
|
PDFVersion,
|
||||||
|
Orientation,
|
||||||
|
SourceObject,
|
||||||
|
SrcSet,
|
||||||
|
Sizes,
|
||||||
|
HyphenationCallback,
|
||||||
|
SVGPresentationAttributes,
|
||||||
|
Bookmark,
|
||||||
|
PageLayout,
|
||||||
|
PageMode,
|
||||||
|
HitSlop,
|
||||||
|
} from '@react-pdf/types';
|
||||||
|
|
||||||
|
declare class ReactPDF {
|
||||||
|
static default: typeof ReactPDF;
|
||||||
|
}
|
||||||
|
|
||||||
|
export = ReactPDF;
|
||||||
|
|
||||||
|
declare namespace ReactPDF {
|
||||||
|
interface Styles {
|
||||||
|
[key: string]: Style;
|
||||||
|
}
|
||||||
|
interface OnRenderProps {
|
||||||
|
blob?: Blob;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Permissions {
|
||||||
|
printing?: 'lowResolution' | 'highResolution';
|
||||||
|
modifying?: boolean;
|
||||||
|
copying?: boolean;
|
||||||
|
annotating?: boolean;
|
||||||
|
fillingForms?: boolean;
|
||||||
|
contentAccessibility?: boolean;
|
||||||
|
documentAssembly?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface DocumentProps {
|
||||||
|
style?: Style | Style[];
|
||||||
|
title?: string;
|
||||||
|
author?: string;
|
||||||
|
subject?: string;
|
||||||
|
creator?: string;
|
||||||
|
keywords?: string;
|
||||||
|
producer?: string;
|
||||||
|
language?: string;
|
||||||
|
creationDate?: Date;
|
||||||
|
modificationDate?: Date;
|
||||||
|
pdfVersion?: PDFVersion;
|
||||||
|
pageMode?: PageMode;
|
||||||
|
pageLayout?: PageLayout;
|
||||||
|
ownerPassword?: string;
|
||||||
|
userPassword?: string;
|
||||||
|
permissions?: Permissions;
|
||||||
|
onRender?: (props: OnRenderProps) => any;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This component represent the PDF document itself. It must be the root
|
||||||
|
* of your tree element structure, and under no circumstances should it be
|
||||||
|
* used as children of another react-pdf component. In addition, it should
|
||||||
|
* only have childs of type <Page />.
|
||||||
|
*/
|
||||||
|
export class Document extends React.Component<
|
||||||
|
React.PropsWithChildren<DocumentProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface NodeProps {
|
||||||
|
id?: string;
|
||||||
|
style?: Style | Style[];
|
||||||
|
/**
|
||||||
|
* Render component in all wrapped pages.
|
||||||
|
* @see https://react-pdf.org/advanced#fixed-components
|
||||||
|
*/
|
||||||
|
fixed?: boolean;
|
||||||
|
/**
|
||||||
|
* Force the wrapping algorithm to start a new page when rendering the
|
||||||
|
* element.
|
||||||
|
* @see https://react-pdf.org/advanced#page-breaks
|
||||||
|
*/
|
||||||
|
break?: boolean;
|
||||||
|
/**
|
||||||
|
* Hint that no page wrapping should occur between all sibling elements following the element within n points
|
||||||
|
* @see https://react-pdf.org/advanced#orphan-&-widow-protection
|
||||||
|
*/
|
||||||
|
minPresenceAhead?: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface PageProps extends NodeProps {
|
||||||
|
/**
|
||||||
|
* Enable page wrapping for this page.
|
||||||
|
* @see https://react-pdf.org/components#page-wrapping
|
||||||
|
*/
|
||||||
|
wrap?: boolean;
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
size?: PageSize;
|
||||||
|
orientation?: Orientation;
|
||||||
|
dpi?: number;
|
||||||
|
bookmark?: Bookmark;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents single page inside the PDF document, or a subset of them if
|
||||||
|
* using the wrapping feature. A <Document /> can contain as many pages as
|
||||||
|
* you want, but ensure not rendering a page inside any component besides
|
||||||
|
* Document.
|
||||||
|
*/
|
||||||
|
export class Page extends React.Component<
|
||||||
|
React.PropsWithChildren<PageProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface ViewProps extends NodeProps {
|
||||||
|
id?: string;
|
||||||
|
/**
|
||||||
|
* Enable/disable page wrapping for element.
|
||||||
|
* @see https://react-pdf.org/components#page-wrapping
|
||||||
|
*/
|
||||||
|
wrap?: boolean;
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
render?: (props: {
|
||||||
|
pageNumber: number;
|
||||||
|
subPageNumber: number;
|
||||||
|
}) => React.ReactNode;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The most fundamental component for building a UI and is designed to be
|
||||||
|
* nested inside other views and can have 0 to many children.
|
||||||
|
*/
|
||||||
|
export class View extends React.Component<
|
||||||
|
React.PropsWithChildren<ViewProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface BaseImageProps extends NodeProps {
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
cache?: boolean;
|
||||||
|
/**
|
||||||
|
* A comma-separated list of image sources with width descriptors.
|
||||||
|
* Works like the HTML img srcSet attribute.
|
||||||
|
* @example "small.jpg 300w, medium.jpg 600w, large.jpg 900w"
|
||||||
|
*/
|
||||||
|
srcSet?: SrcSet;
|
||||||
|
/**
|
||||||
|
* The intended display width of the image, used to select the best source
|
||||||
|
* from srcSet. Accepts a number (in points) or a string.
|
||||||
|
* Works like the HTML img sizes attribute.
|
||||||
|
* @example 300
|
||||||
|
* @example "300"
|
||||||
|
*/
|
||||||
|
sizes?: Sizes;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ImageWithSrcProp extends BaseImageProps {
|
||||||
|
src: SourceObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ImageWithSourceProp extends BaseImageProps {
|
||||||
|
source: SourceObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
type ImageProps = ImageWithSrcProp | ImageWithSourceProp;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A React component for displaying network or local (Node only) JPG or
|
||||||
|
* PNG images, as well as base64 encoded image strings.
|
||||||
|
*/
|
||||||
|
export class Image extends React.Component<ImageProps> {}
|
||||||
|
|
||||||
|
interface BaseImageBackgroundProps extends NodeProps {
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
cache?: boolean;
|
||||||
|
/**
|
||||||
|
* A comma-separated list of image sources with width descriptors.
|
||||||
|
* Works like the HTML img srcSet attribute.
|
||||||
|
* @example "small.jpg 300w, medium.jpg 600w, large.jpg 900w"
|
||||||
|
*/
|
||||||
|
srcSet?: SrcSet;
|
||||||
|
/**
|
||||||
|
* The intended display width of the image, used to select the best source
|
||||||
|
* from srcSet. Accepts a number (in points) or a string.
|
||||||
|
* @example 300
|
||||||
|
*/
|
||||||
|
sizes?: Sizes;
|
||||||
|
/**
|
||||||
|
* Style applied to the background image.
|
||||||
|
*/
|
||||||
|
imageStyle?: Style;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ImageBackgroundWithSrcProp extends BaseImageBackgroundProps {
|
||||||
|
src: SourceObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ImageBackgroundWithSourceProp extends BaseImageBackgroundProps {
|
||||||
|
source: SourceObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
type ImageBackgroundProps =
|
||||||
|
| ImageBackgroundWithSrcProp
|
||||||
|
| ImageBackgroundWithSourceProp;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A React component for displaying an image behind child content.
|
||||||
|
* Compatible with React Native's ImageBackground component.
|
||||||
|
* @see https://reactnative.dev/docs/imagebackground
|
||||||
|
*/
|
||||||
|
export class ImageBackground extends React.Component<
|
||||||
|
React.PropsWithChildren<ImageBackgroundProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface TextProps extends NodeProps {
|
||||||
|
id?: string;
|
||||||
|
/**
|
||||||
|
* Enable/disable page wrapping for element.
|
||||||
|
* @see https://react-pdf.org/components#page-wrapping
|
||||||
|
*/
|
||||||
|
wrap?: boolean;
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
render?: (props: {
|
||||||
|
pageNumber: number;
|
||||||
|
totalPages: number;
|
||||||
|
subPageNumber: number;
|
||||||
|
subPageTotalPages: number;
|
||||||
|
}) => React.ReactNode;
|
||||||
|
/**
|
||||||
|
* Override the default hyphenation-callback
|
||||||
|
* @see https://react-pdf.org/fonts#registerhyphenationcallback
|
||||||
|
*/
|
||||||
|
hyphenationCallback?: HyphenationCallback;
|
||||||
|
/**
|
||||||
|
* Specifies the minimum number of lines in a text element that must be shown at the bottom of a page or its container.
|
||||||
|
* @see https://react-pdf.org/advanced#orphan-&-widow-protection
|
||||||
|
*/
|
||||||
|
orphans?: number;
|
||||||
|
/**
|
||||||
|
* Specifies the minimum number of lines in a text element that must be shown at the top of a page or its container..
|
||||||
|
* @see https://react-pdf.org/advanced#orphan-&-widow-protection
|
||||||
|
*/
|
||||||
|
widows?: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface SVGTextProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
x: string | number;
|
||||||
|
y: string | number;
|
||||||
|
/**
|
||||||
|
* Override the default hyphenation-callback
|
||||||
|
* @see https://react-pdf.org/fonts#registerhyphenationcallback
|
||||||
|
*/
|
||||||
|
hyphenationCallback?: HyphenationCallback;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A React component for displaying text. Text supports nesting of other
|
||||||
|
* Text or Link components to create inline styling.
|
||||||
|
*/
|
||||||
|
export class Text extends React.Component<
|
||||||
|
React.PropsWithChildren<TextProps> | SVGTextProps
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface LinkProps extends NodeProps {
|
||||||
|
/**
|
||||||
|
* Enable/disable page wrapping for element.
|
||||||
|
* @see https://react-pdf.org/components#page-wrapping
|
||||||
|
*/
|
||||||
|
wrap?: boolean;
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
href?: string;
|
||||||
|
src?: string;
|
||||||
|
/**
|
||||||
|
* Extends the clickable area of the link beyond its visible bounds.
|
||||||
|
* Accepts a number (applied to all sides) or an object with top, bottom, left, right.
|
||||||
|
* @see https://reactnative.dev/docs/view#hitslop
|
||||||
|
*/
|
||||||
|
hitSlop?: HitSlop;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A React component for displaying a hyperlink. Link’s can be nested
|
||||||
|
* inside a Text component, or being inside any other valid primitive.
|
||||||
|
*/
|
||||||
|
export class Link extends React.Component<
|
||||||
|
React.PropsWithChildren<LinkProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface FormCommonProps extends NodeProps {
|
||||||
|
name?: string;
|
||||||
|
required?: boolean;
|
||||||
|
noExport?: boolean;
|
||||||
|
readOnly?: boolean;
|
||||||
|
value?: number | string;
|
||||||
|
defaultValue?: number | string;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface FieldSetProps extends NodeProps {
|
||||||
|
name: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export class FieldSet extends React.Component<
|
||||||
|
React.PropsWithChildren<FieldSetProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
// see http://pdfkit.org/docs/forms.html#text_field_formatting
|
||||||
|
interface TextInputFormatting {
|
||||||
|
type:
|
||||||
|
| 'date'
|
||||||
|
| 'time'
|
||||||
|
| 'percent'
|
||||||
|
| 'number'
|
||||||
|
| 'zip'
|
||||||
|
| 'zipPlus4'
|
||||||
|
| 'phone'
|
||||||
|
| 'ssn';
|
||||||
|
param?: string;
|
||||||
|
nDec?: number;
|
||||||
|
sepComma?: boolean;
|
||||||
|
negStyle?: 'MinusBlack' | 'Red' | 'ParensBlack' | 'ParensRed';
|
||||||
|
currency?: string;
|
||||||
|
currencyPrepend?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
// see http://pdfkit.org/docs/forms.html#text_field_formatting
|
||||||
|
interface TextInputProps extends FormCommonProps {
|
||||||
|
align?: 'left' | 'center' | 'right';
|
||||||
|
multiline?: boolean;
|
||||||
|
/**
|
||||||
|
* The text will be masked (e.g. with asterisks).
|
||||||
|
*/
|
||||||
|
password?: boolean;
|
||||||
|
/**
|
||||||
|
* If set, text entered in the field is not spell-checked
|
||||||
|
*/
|
||||||
|
noSpell?: boolean;
|
||||||
|
format?: TextInputFormatting;
|
||||||
|
/**
|
||||||
|
* Sets the fontSize (default or 0 means auto sizing)
|
||||||
|
*/
|
||||||
|
fontSize?: number;
|
||||||
|
/**
|
||||||
|
* Sets the maximum length (characters) of the text in the field
|
||||||
|
*/
|
||||||
|
maxLength?: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
export class TextInput extends React.Component<TextInputProps> {}
|
||||||
|
|
||||||
|
interface CheckboxProps extends FormCommonProps {
|
||||||
|
backgroundColor?: string;
|
||||||
|
borderColor?: string;
|
||||||
|
checked?: boolean;
|
||||||
|
onState?: string;
|
||||||
|
offState?: string;
|
||||||
|
xMark?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
export class Checkbox extends React.Component<CheckboxProps> {}
|
||||||
|
|
||||||
|
interface SelectAndListPropsBase extends FormCommonProps {
|
||||||
|
sort?: boolean;
|
||||||
|
edit?: boolean;
|
||||||
|
multiSelect?: boolean;
|
||||||
|
noSpell?: boolean;
|
||||||
|
select?: string[];
|
||||||
|
}
|
||||||
|
|
||||||
|
type SelectAndListPropsWithEdit = SelectAndListPropsBase & {
|
||||||
|
edit: true | false;
|
||||||
|
noSpell: boolean;
|
||||||
|
};
|
||||||
|
|
||||||
|
type SelectAndListPropsWithNoSpell = SelectAndListPropsBase & {
|
||||||
|
edit: boolean;
|
||||||
|
noSpell: true | false;
|
||||||
|
};
|
||||||
|
|
||||||
|
type SelectAndListProps =
|
||||||
|
| SelectAndListPropsWithEdit
|
||||||
|
| SelectAndListPropsWithNoSpell;
|
||||||
|
|
||||||
|
export class Select extends React.Component<SelectAndListProps> {}
|
||||||
|
|
||||||
|
export class List extends React.Component<SelectAndListProps> {}
|
||||||
|
|
||||||
|
interface NoteProps extends NodeProps {
|
||||||
|
children: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export class Note extends React.Component<NoteProps> {}
|
||||||
|
|
||||||
|
interface CanvasProps extends NodeProps {
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
paint: (
|
||||||
|
painter: any,
|
||||||
|
availableWidth: number,
|
||||||
|
availableHeight: number,
|
||||||
|
) => null;
|
||||||
|
}
|
||||||
|
|
||||||
|
export class Canvas extends React.Component<CanvasProps> {}
|
||||||
|
|
||||||
|
interface SVGProps extends NodeProps, SVGPresentationAttributes {
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
width?: string | number;
|
||||||
|
height?: string | number;
|
||||||
|
viewBox?: string;
|
||||||
|
preserveAspectRatio?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <SVG /> element is a container that defines a new coordinate system and viewport. It is used as the outermost element of SVG documents.
|
||||||
|
*/
|
||||||
|
export class Svg extends React.Component<React.PropsWithChildren<SVGProps>> {}
|
||||||
|
|
||||||
|
interface LineProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
x1: string | number;
|
||||||
|
x2: string | number;
|
||||||
|
y1: string | number;
|
||||||
|
y2: string | number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Line /> element is used to create a line.
|
||||||
|
*/
|
||||||
|
export class Line extends React.Component<
|
||||||
|
React.PropsWithChildren<LineProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface PolylineProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
points: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Polyline /> element is used to create any shape that consists of only straight lines (that is connected at several points).
|
||||||
|
*/
|
||||||
|
export class Polyline extends React.Component<
|
||||||
|
React.PropsWithChildren<PolylineProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface PolygonProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
points: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Polygon /> element is used to create a graphic that contains at least three sides.
|
||||||
|
* Polygons are made of straight lines, and the shape is "closed" (all the lines connect up).
|
||||||
|
*/
|
||||||
|
export class Polygon extends React.Component<
|
||||||
|
React.PropsWithChildren<PolygonProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface PathProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
d: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Path /> element is the most powerful element in the SVG library of basic shapes. It can be used to create lines, curves, arcs, and more.
|
||||||
|
*/
|
||||||
|
export class Path extends React.Component<
|
||||||
|
React.PropsWithChildren<PathProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface RectProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
x?: string | number;
|
||||||
|
y?: string | number;
|
||||||
|
width: string | number;
|
||||||
|
height: string | number;
|
||||||
|
rx?: string | number;
|
||||||
|
ry?: string | number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Rect /> element is used to create a rectangle and variations of a rectangle shape.
|
||||||
|
*/
|
||||||
|
export class Rect extends React.Component<
|
||||||
|
React.PropsWithChildren<RectProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface CircleProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
cx?: string | number;
|
||||||
|
cy?: string | number;
|
||||||
|
r: string | number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Circle /> element is used to create a circle.
|
||||||
|
*/
|
||||||
|
export class Circle extends React.Component<
|
||||||
|
React.PropsWithChildren<CircleProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface EllipseProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
cx?: string | number;
|
||||||
|
cy?: string | number;
|
||||||
|
rx: string | number;
|
||||||
|
ry: string | number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Ellipse /> element is used to create an ellipse.
|
||||||
|
* An ellipse is closely related to a circle. The difference is that an ellipse has an x and a y radius that differs from each other, while a circle has equal x and y radius.
|
||||||
|
*/
|
||||||
|
export class Ellipse extends React.Component<
|
||||||
|
React.PropsWithChildren<EllipseProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface TspanProps extends SVGPresentationAttributes {
|
||||||
|
x?: string | number;
|
||||||
|
y?: string | number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Tspan /> element defines a subtext within a <Text /> element or another <Tspan /> element.
|
||||||
|
* It allows for adjustment of the style and/or position of that subtext as needed.
|
||||||
|
*/
|
||||||
|
export class Tspan extends React.Component<
|
||||||
|
React.PropsWithChildren<TspanProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface GProps extends SVGPresentationAttributes {
|
||||||
|
style?: Style;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <G /> SVG element is a container used to group other SVG elements.
|
||||||
|
* Transformations applied to the <G /> element are performed on its child elements, and its attributes are inherited by its children.
|
||||||
|
*/
|
||||||
|
export class G extends React.Component<React.PropsWithChildren<GProps>> {}
|
||||||
|
|
||||||
|
interface StopProps {
|
||||||
|
offset: string | number;
|
||||||
|
stopColor: string;
|
||||||
|
stopOpacity?: string | number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The SVG <Stop /> element defines a color and its position to use on a gradient. This element is always a child of a <LinearGradient /> or <RadialGradient /> element
|
||||||
|
*/
|
||||||
|
export class Stop extends React.Component<
|
||||||
|
React.PropsWithChildren<StopProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
// eslint-disable-next-line @typescript-eslint/no-empty-object-type
|
||||||
|
interface DefsProps {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Defs /> element is used to store graphical objects that will be used at a later time. Objects created inside a <Defs /> element are not rendered directly. To display them you have to reference them
|
||||||
|
*/
|
||||||
|
export class Defs extends React.Component<
|
||||||
|
React.PropsWithChildren<DefsProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface ClipPathProps {
|
||||||
|
id?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <ClipPath /> SVG element defines a clipping path, to be used by the clipPath property.
|
||||||
|
* A clipping path restricts the region to which paint can be applied. Conceptually, parts of the drawing that lie outside of the region bounded by the clipping path are not drawn.
|
||||||
|
*/
|
||||||
|
export class ClipPath extends React.Component<
|
||||||
|
React.PropsWithChildren<ClipPathProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface MarkerProps {
|
||||||
|
id: string;
|
||||||
|
viewBox?: string;
|
||||||
|
refX?: string | number;
|
||||||
|
refY?: string | number;
|
||||||
|
markerWidth?: string | number;
|
||||||
|
markerHeight?: string | number;
|
||||||
|
orient?: 'auto' | 'auto-start-reverse' | number;
|
||||||
|
markerUnits?: 'strokeWidth' | 'userSpaceOnUse';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Marker /> SVG element defines a graphic used for drawing arrows or polymarkers on a given <Path />, <Line />, <Polyline />, or <Polygon /> element.
|
||||||
|
* Markers can be attached to shapes using the markerStart, markerMid, and markerEnd properties.
|
||||||
|
*/
|
||||||
|
export class Marker extends React.Component<
|
||||||
|
React.PropsWithChildren<MarkerProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface LinearGradientProps {
|
||||||
|
id: string;
|
||||||
|
x1?: string | number;
|
||||||
|
x2?: string | number;
|
||||||
|
y1?: string | number;
|
||||||
|
y2?: string | number;
|
||||||
|
xlinkHref?: string;
|
||||||
|
gradientTransform?: string;
|
||||||
|
gradientUnits?: 'userSpaceOnUse' | 'objectBoundingBox';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <LinearGradient /> element lets authors define linear gradients that can be applied to fill or stroke of graphical elements.
|
||||||
|
*/
|
||||||
|
export class LinearGradient extends React.Component<
|
||||||
|
React.PropsWithChildren<LinearGradientProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface RadialGradientProps {
|
||||||
|
id: string;
|
||||||
|
cx?: string | number;
|
||||||
|
cy?: string | number;
|
||||||
|
r?: string | number;
|
||||||
|
fx?: string | number;
|
||||||
|
fy?: string | number;
|
||||||
|
xlinkHref?: string;
|
||||||
|
gradientTransform?: string;
|
||||||
|
gradientUnits?: 'userSpaceOnUse' | 'objectBoundingBox';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <RadialGradient /> element lets authors define radial gradients that can be applied to fill or stroke of graphical elements.
|
||||||
|
*/
|
||||||
|
export class RadialGradient extends React.Component<
|
||||||
|
React.PropsWithChildren<RadialGradientProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface BlobProviderParams {
|
||||||
|
blob: Blob | null;
|
||||||
|
url: string | null;
|
||||||
|
loading: boolean;
|
||||||
|
error: Error | null;
|
||||||
|
}
|
||||||
|
interface BlobProviderProps {
|
||||||
|
document: React.ReactElement<DocumentProps>;
|
||||||
|
children: (params: BlobProviderParams) => React.ReactNode;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Easy and declarative way of getting document's blob data without
|
||||||
|
* showing it on screen.
|
||||||
|
* @see https://react-pdf.org/advanced#on-the-fly-rendering
|
||||||
|
* @platform web
|
||||||
|
*/
|
||||||
|
export class BlobProvider extends React.Component<BlobProviderProps> {}
|
||||||
|
|
||||||
|
interface PDFViewerProps {
|
||||||
|
width?: number | string;
|
||||||
|
height?: number | string;
|
||||||
|
style?: Style | Style[];
|
||||||
|
className?: string;
|
||||||
|
children?: React.ReactElement<DocumentProps>;
|
||||||
|
innerRef?: React.Ref<HTMLIFrameElement>;
|
||||||
|
showToolbar?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Iframe PDF viewer for client-side generated documents.
|
||||||
|
* @platform web
|
||||||
|
*/
|
||||||
|
export class PDFViewer extends React.Component<PDFViewerProps> {}
|
||||||
|
|
||||||
|
interface PDFDownloadLinkProps
|
||||||
|
extends Omit<
|
||||||
|
React.AnchorHTMLAttributes<HTMLAnchorElement>,
|
||||||
|
'href' | 'children'
|
||||||
|
> {
|
||||||
|
/** PDF filename. Alias for anchor tag `download` attribute. */
|
||||||
|
fileName?: string;
|
||||||
|
document: React.ReactElement<DocumentProps>;
|
||||||
|
children?: React.ReactNode | React.FC<BlobProviderParams>;
|
||||||
|
onClick?: React.AnchorHTMLAttributes<HTMLAnchorElement>['onClick'] &
|
||||||
|
((
|
||||||
|
event: React.MouseEvent<HTMLAnchorElement, MouseEvent>,
|
||||||
|
instance: UsePDFInstance,
|
||||||
|
) => void);
|
||||||
|
ref?: React.Ref<HTMLAnchorElement> | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Anchor tag to enable generate and download PDF documents on the fly.
|
||||||
|
* @see https://react-pdf.org/advanced#on-the-fly-rendering
|
||||||
|
* @platform web
|
||||||
|
*/
|
||||||
|
export class PDFDownloadLink extends React.Component<PDFDownloadLinkProps> {}
|
||||||
|
|
||||||
|
interface UsePDFInstance {
|
||||||
|
loading: boolean;
|
||||||
|
blob: Blob | null;
|
||||||
|
url: string | null;
|
||||||
|
error: string | null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* React hook for creating and updating a PDF document instance
|
||||||
|
* @platform web
|
||||||
|
*/
|
||||||
|
export function usePDF(options?: {
|
||||||
|
document?: React.ReactElement<DocumentProps>;
|
||||||
|
}): [
|
||||||
|
UsePDFInstance,
|
||||||
|
(newDocument: React.ReactElement<DocumentProps>) => void,
|
||||||
|
];
|
||||||
|
|
||||||
|
export const Font: FontStore;
|
||||||
|
|
||||||
|
export const StyleSheet: {
|
||||||
|
create: <T extends Styles>(styles: T) => T;
|
||||||
|
};
|
||||||
|
|
||||||
|
export const version: any;
|
||||||
|
|
||||||
|
export const PDFRenderer: any;
|
||||||
|
|
||||||
|
export const pdf: (initialValue?: React.ReactElement<DocumentProps>) => {
|
||||||
|
container: any;
|
||||||
|
isDirty: () => boolean;
|
||||||
|
toString: () => string;
|
||||||
|
toBlob: () => Promise<Blob>;
|
||||||
|
toBuffer: () => Promise<NodeJS.ReadableStream>;
|
||||||
|
on: (event: 'change', callback: () => void) => void;
|
||||||
|
updateContainer: (
|
||||||
|
document: React.ReactElement<any>,
|
||||||
|
callback?: () => void,
|
||||||
|
) => void;
|
||||||
|
removeListener: (event: 'change', callback: () => void) => void;
|
||||||
|
};
|
||||||
|
|
||||||
|
export const renderToStream: (
|
||||||
|
document: React.ReactElement<DocumentProps>,
|
||||||
|
) => Promise<NodeJS.ReadableStream>;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated use the `renderToBuffer` method
|
||||||
|
*/
|
||||||
|
export const renderToString: (
|
||||||
|
document: React.ReactElement<DocumentProps>,
|
||||||
|
) => Promise<string>;
|
||||||
|
|
||||||
|
export const renderToFile: (
|
||||||
|
document: React.ReactElement<DocumentProps>,
|
||||||
|
filePath: string,
|
||||||
|
callback?: (output: NodeJS.ReadableStream, _filePath: string) => any,
|
||||||
|
) => Promise<NodeJS.ReadableStream>;
|
||||||
|
|
||||||
|
const render: typeof renderToFile;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Render document into a nodejs buffer
|
||||||
|
* @platform node
|
||||||
|
*/
|
||||||
|
export const renderToBuffer: (
|
||||||
|
document: React.ReactElement<ReactPDF.DocumentProps>,
|
||||||
|
) => Promise<Buffer>;
|
||||||
|
}
|
||||||
793
build_temp/.next/node_modules/@react-pdf/renderer-5f716e9bc7d68b8a/lib/react-pdf.d.ts
generated
vendored
Normal file
793
build_temp/.next/node_modules/@react-pdf/renderer-5f716e9bc7d68b8a/lib/react-pdf.d.ts
generated
vendored
Normal file
@@ -0,0 +1,793 @@
|
|||||||
|
/* eslint-disable max-classes-per-file */
|
||||||
|
|
||||||
|
import * as React from 'react';
|
||||||
|
import {
|
||||||
|
Style,
|
||||||
|
PageSize,
|
||||||
|
FontStore,
|
||||||
|
PDFVersion,
|
||||||
|
Orientation,
|
||||||
|
SourceObject,
|
||||||
|
SrcSet,
|
||||||
|
Sizes,
|
||||||
|
HyphenationCallback,
|
||||||
|
SVGPresentationAttributes,
|
||||||
|
Bookmark,
|
||||||
|
PageLayout,
|
||||||
|
PageMode,
|
||||||
|
HitSlop,
|
||||||
|
} from '@react-pdf/types';
|
||||||
|
|
||||||
|
declare class ReactPDF {
|
||||||
|
static default: typeof ReactPDF;
|
||||||
|
}
|
||||||
|
|
||||||
|
export = ReactPDF;
|
||||||
|
|
||||||
|
declare namespace ReactPDF {
|
||||||
|
interface Styles {
|
||||||
|
[key: string]: Style;
|
||||||
|
}
|
||||||
|
interface OnRenderProps {
|
||||||
|
blob?: Blob;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Permissions {
|
||||||
|
printing?: 'lowResolution' | 'highResolution';
|
||||||
|
modifying?: boolean;
|
||||||
|
copying?: boolean;
|
||||||
|
annotating?: boolean;
|
||||||
|
fillingForms?: boolean;
|
||||||
|
contentAccessibility?: boolean;
|
||||||
|
documentAssembly?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface DocumentProps {
|
||||||
|
style?: Style | Style[];
|
||||||
|
title?: string;
|
||||||
|
author?: string;
|
||||||
|
subject?: string;
|
||||||
|
creator?: string;
|
||||||
|
keywords?: string;
|
||||||
|
producer?: string;
|
||||||
|
language?: string;
|
||||||
|
creationDate?: Date;
|
||||||
|
modificationDate?: Date;
|
||||||
|
pdfVersion?: PDFVersion;
|
||||||
|
pageMode?: PageMode;
|
||||||
|
pageLayout?: PageLayout;
|
||||||
|
ownerPassword?: string;
|
||||||
|
userPassword?: string;
|
||||||
|
permissions?: Permissions;
|
||||||
|
onRender?: (props: OnRenderProps) => any;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This component represent the PDF document itself. It must be the root
|
||||||
|
* of your tree element structure, and under no circumstances should it be
|
||||||
|
* used as children of another react-pdf component. In addition, it should
|
||||||
|
* only have childs of type <Page />.
|
||||||
|
*/
|
||||||
|
export class Document extends React.Component<
|
||||||
|
React.PropsWithChildren<DocumentProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface NodeProps {
|
||||||
|
id?: string;
|
||||||
|
style?: Style | Style[];
|
||||||
|
/**
|
||||||
|
* Render component in all wrapped pages.
|
||||||
|
* @see https://react-pdf.org/advanced#fixed-components
|
||||||
|
*/
|
||||||
|
fixed?: boolean;
|
||||||
|
/**
|
||||||
|
* Force the wrapping algorithm to start a new page when rendering the
|
||||||
|
* element.
|
||||||
|
* @see https://react-pdf.org/advanced#page-breaks
|
||||||
|
*/
|
||||||
|
break?: boolean;
|
||||||
|
/**
|
||||||
|
* Hint that no page wrapping should occur between all sibling elements following the element within n points
|
||||||
|
* @see https://react-pdf.org/advanced#orphan-&-widow-protection
|
||||||
|
*/
|
||||||
|
minPresenceAhead?: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface PageProps extends NodeProps {
|
||||||
|
/**
|
||||||
|
* Enable page wrapping for this page.
|
||||||
|
* @see https://react-pdf.org/components#page-wrapping
|
||||||
|
*/
|
||||||
|
wrap?: boolean;
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
size?: PageSize;
|
||||||
|
orientation?: Orientation;
|
||||||
|
dpi?: number;
|
||||||
|
bookmark?: Bookmark;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents single page inside the PDF document, or a subset of them if
|
||||||
|
* using the wrapping feature. A <Document /> can contain as many pages as
|
||||||
|
* you want, but ensure not rendering a page inside any component besides
|
||||||
|
* Document.
|
||||||
|
*/
|
||||||
|
export class Page extends React.Component<
|
||||||
|
React.PropsWithChildren<PageProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface ViewProps extends NodeProps {
|
||||||
|
id?: string;
|
||||||
|
/**
|
||||||
|
* Enable/disable page wrapping for element.
|
||||||
|
* @see https://react-pdf.org/components#page-wrapping
|
||||||
|
*/
|
||||||
|
wrap?: boolean;
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
render?: (props: {
|
||||||
|
pageNumber: number;
|
||||||
|
subPageNumber: number;
|
||||||
|
}) => React.ReactNode;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The most fundamental component for building a UI and is designed to be
|
||||||
|
* nested inside other views and can have 0 to many children.
|
||||||
|
*/
|
||||||
|
export class View extends React.Component<
|
||||||
|
React.PropsWithChildren<ViewProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface BaseImageProps extends NodeProps {
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
cache?: boolean;
|
||||||
|
/**
|
||||||
|
* A comma-separated list of image sources with width descriptors.
|
||||||
|
* Works like the HTML img srcSet attribute.
|
||||||
|
* @example "small.jpg 300w, medium.jpg 600w, large.jpg 900w"
|
||||||
|
*/
|
||||||
|
srcSet?: SrcSet;
|
||||||
|
/**
|
||||||
|
* The intended display width of the image, used to select the best source
|
||||||
|
* from srcSet. Accepts a number (in points) or a string.
|
||||||
|
* Works like the HTML img sizes attribute.
|
||||||
|
* @example 300
|
||||||
|
* @example "300"
|
||||||
|
*/
|
||||||
|
sizes?: Sizes;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ImageWithSrcProp extends BaseImageProps {
|
||||||
|
src: SourceObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ImageWithSourceProp extends BaseImageProps {
|
||||||
|
source: SourceObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
type ImageProps = ImageWithSrcProp | ImageWithSourceProp;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A React component for displaying network or local (Node only) JPG or
|
||||||
|
* PNG images, as well as base64 encoded image strings.
|
||||||
|
*/
|
||||||
|
export class Image extends React.Component<ImageProps> {}
|
||||||
|
|
||||||
|
interface BaseImageBackgroundProps extends NodeProps {
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
cache?: boolean;
|
||||||
|
/**
|
||||||
|
* A comma-separated list of image sources with width descriptors.
|
||||||
|
* Works like the HTML img srcSet attribute.
|
||||||
|
* @example "small.jpg 300w, medium.jpg 600w, large.jpg 900w"
|
||||||
|
*/
|
||||||
|
srcSet?: SrcSet;
|
||||||
|
/**
|
||||||
|
* The intended display width of the image, used to select the best source
|
||||||
|
* from srcSet. Accepts a number (in points) or a string.
|
||||||
|
* @example 300
|
||||||
|
*/
|
||||||
|
sizes?: Sizes;
|
||||||
|
/**
|
||||||
|
* Style applied to the background image.
|
||||||
|
*/
|
||||||
|
imageStyle?: Style;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ImageBackgroundWithSrcProp extends BaseImageBackgroundProps {
|
||||||
|
src: SourceObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ImageBackgroundWithSourceProp extends BaseImageBackgroundProps {
|
||||||
|
source: SourceObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
type ImageBackgroundProps =
|
||||||
|
| ImageBackgroundWithSrcProp
|
||||||
|
| ImageBackgroundWithSourceProp;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A React component for displaying an image behind child content.
|
||||||
|
* Compatible with React Native's ImageBackground component.
|
||||||
|
* @see https://reactnative.dev/docs/imagebackground
|
||||||
|
*/
|
||||||
|
export class ImageBackground extends React.Component<
|
||||||
|
React.PropsWithChildren<ImageBackgroundProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface TextProps extends NodeProps {
|
||||||
|
id?: string;
|
||||||
|
/**
|
||||||
|
* Enable/disable page wrapping for element.
|
||||||
|
* @see https://react-pdf.org/components#page-wrapping
|
||||||
|
*/
|
||||||
|
wrap?: boolean;
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
render?: (props: {
|
||||||
|
pageNumber: number;
|
||||||
|
totalPages: number;
|
||||||
|
subPageNumber: number;
|
||||||
|
subPageTotalPages: number;
|
||||||
|
}) => React.ReactNode;
|
||||||
|
/**
|
||||||
|
* Override the default hyphenation-callback
|
||||||
|
* @see https://react-pdf.org/fonts#registerhyphenationcallback
|
||||||
|
*/
|
||||||
|
hyphenationCallback?: HyphenationCallback;
|
||||||
|
/**
|
||||||
|
* Specifies the minimum number of lines in a text element that must be shown at the bottom of a page or its container.
|
||||||
|
* @see https://react-pdf.org/advanced#orphan-&-widow-protection
|
||||||
|
*/
|
||||||
|
orphans?: number;
|
||||||
|
/**
|
||||||
|
* Specifies the minimum number of lines in a text element that must be shown at the top of a page or its container..
|
||||||
|
* @see https://react-pdf.org/advanced#orphan-&-widow-protection
|
||||||
|
*/
|
||||||
|
widows?: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface SVGTextProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
x: string | number;
|
||||||
|
y: string | number;
|
||||||
|
/**
|
||||||
|
* Override the default hyphenation-callback
|
||||||
|
* @see https://react-pdf.org/fonts#registerhyphenationcallback
|
||||||
|
*/
|
||||||
|
hyphenationCallback?: HyphenationCallback;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A React component for displaying text. Text supports nesting of other
|
||||||
|
* Text or Link components to create inline styling.
|
||||||
|
*/
|
||||||
|
export class Text extends React.Component<
|
||||||
|
React.PropsWithChildren<TextProps> | SVGTextProps
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface LinkProps extends NodeProps {
|
||||||
|
/**
|
||||||
|
* Enable/disable page wrapping for element.
|
||||||
|
* @see https://react-pdf.org/components#page-wrapping
|
||||||
|
*/
|
||||||
|
wrap?: boolean;
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
href?: string;
|
||||||
|
src?: string;
|
||||||
|
/**
|
||||||
|
* Extends the clickable area of the link beyond its visible bounds.
|
||||||
|
* Accepts a number (applied to all sides) or an object with top, bottom, left, right.
|
||||||
|
* @see https://reactnative.dev/docs/view#hitslop
|
||||||
|
*/
|
||||||
|
hitSlop?: HitSlop;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A React component for displaying a hyperlink. Link’s can be nested
|
||||||
|
* inside a Text component, or being inside any other valid primitive.
|
||||||
|
*/
|
||||||
|
export class Link extends React.Component<
|
||||||
|
React.PropsWithChildren<LinkProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface FormCommonProps extends NodeProps {
|
||||||
|
name?: string;
|
||||||
|
required?: boolean;
|
||||||
|
noExport?: boolean;
|
||||||
|
readOnly?: boolean;
|
||||||
|
value?: number | string;
|
||||||
|
defaultValue?: number | string;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface FieldSetProps extends NodeProps {
|
||||||
|
name: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export class FieldSet extends React.Component<
|
||||||
|
React.PropsWithChildren<FieldSetProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
// see http://pdfkit.org/docs/forms.html#text_field_formatting
|
||||||
|
interface TextInputFormatting {
|
||||||
|
type:
|
||||||
|
| 'date'
|
||||||
|
| 'time'
|
||||||
|
| 'percent'
|
||||||
|
| 'number'
|
||||||
|
| 'zip'
|
||||||
|
| 'zipPlus4'
|
||||||
|
| 'phone'
|
||||||
|
| 'ssn';
|
||||||
|
param?: string;
|
||||||
|
nDec?: number;
|
||||||
|
sepComma?: boolean;
|
||||||
|
negStyle?: 'MinusBlack' | 'Red' | 'ParensBlack' | 'ParensRed';
|
||||||
|
currency?: string;
|
||||||
|
currencyPrepend?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
// see http://pdfkit.org/docs/forms.html#text_field_formatting
|
||||||
|
interface TextInputProps extends FormCommonProps {
|
||||||
|
align?: 'left' | 'center' | 'right';
|
||||||
|
multiline?: boolean;
|
||||||
|
/**
|
||||||
|
* The text will be masked (e.g. with asterisks).
|
||||||
|
*/
|
||||||
|
password?: boolean;
|
||||||
|
/**
|
||||||
|
* If set, text entered in the field is not spell-checked
|
||||||
|
*/
|
||||||
|
noSpell?: boolean;
|
||||||
|
format?: TextInputFormatting;
|
||||||
|
/**
|
||||||
|
* Sets the fontSize (default or 0 means auto sizing)
|
||||||
|
*/
|
||||||
|
fontSize?: number;
|
||||||
|
/**
|
||||||
|
* Sets the maximum length (characters) of the text in the field
|
||||||
|
*/
|
||||||
|
maxLength?: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
export class TextInput extends React.Component<TextInputProps> {}
|
||||||
|
|
||||||
|
interface CheckboxProps extends FormCommonProps {
|
||||||
|
backgroundColor?: string;
|
||||||
|
borderColor?: string;
|
||||||
|
checked?: boolean;
|
||||||
|
onState?: string;
|
||||||
|
offState?: string;
|
||||||
|
xMark?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
export class Checkbox extends React.Component<CheckboxProps> {}
|
||||||
|
|
||||||
|
interface SelectAndListPropsBase extends FormCommonProps {
|
||||||
|
sort?: boolean;
|
||||||
|
edit?: boolean;
|
||||||
|
multiSelect?: boolean;
|
||||||
|
noSpell?: boolean;
|
||||||
|
select?: string[];
|
||||||
|
}
|
||||||
|
|
||||||
|
type SelectAndListPropsWithEdit = SelectAndListPropsBase & {
|
||||||
|
edit: true | false;
|
||||||
|
noSpell: boolean;
|
||||||
|
};
|
||||||
|
|
||||||
|
type SelectAndListPropsWithNoSpell = SelectAndListPropsBase & {
|
||||||
|
edit: boolean;
|
||||||
|
noSpell: true | false;
|
||||||
|
};
|
||||||
|
|
||||||
|
type SelectAndListProps =
|
||||||
|
| SelectAndListPropsWithEdit
|
||||||
|
| SelectAndListPropsWithNoSpell;
|
||||||
|
|
||||||
|
export class Select extends React.Component<SelectAndListProps> {}
|
||||||
|
|
||||||
|
export class List extends React.Component<SelectAndListProps> {}
|
||||||
|
|
||||||
|
interface NoteProps extends NodeProps {
|
||||||
|
children: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export class Note extends React.Component<NoteProps> {}
|
||||||
|
|
||||||
|
interface CanvasProps extends NodeProps {
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
paint: (
|
||||||
|
painter: any,
|
||||||
|
availableWidth: number,
|
||||||
|
availableHeight: number,
|
||||||
|
) => null;
|
||||||
|
}
|
||||||
|
|
||||||
|
export class Canvas extends React.Component<CanvasProps> {}
|
||||||
|
|
||||||
|
interface SVGProps extends NodeProps, SVGPresentationAttributes {
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
width?: string | number;
|
||||||
|
height?: string | number;
|
||||||
|
viewBox?: string;
|
||||||
|
preserveAspectRatio?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <SVG /> element is a container that defines a new coordinate system and viewport. It is used as the outermost element of SVG documents.
|
||||||
|
*/
|
||||||
|
export class Svg extends React.Component<React.PropsWithChildren<SVGProps>> {}
|
||||||
|
|
||||||
|
interface LineProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
x1: string | number;
|
||||||
|
x2: string | number;
|
||||||
|
y1: string | number;
|
||||||
|
y2: string | number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Line /> element is used to create a line.
|
||||||
|
*/
|
||||||
|
export class Line extends React.Component<
|
||||||
|
React.PropsWithChildren<LineProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface PolylineProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
points: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Polyline /> element is used to create any shape that consists of only straight lines (that is connected at several points).
|
||||||
|
*/
|
||||||
|
export class Polyline extends React.Component<
|
||||||
|
React.PropsWithChildren<PolylineProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface PolygonProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
points: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Polygon /> element is used to create a graphic that contains at least three sides.
|
||||||
|
* Polygons are made of straight lines, and the shape is "closed" (all the lines connect up).
|
||||||
|
*/
|
||||||
|
export class Polygon extends React.Component<
|
||||||
|
React.PropsWithChildren<PolygonProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface PathProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
d: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Path /> element is the most powerful element in the SVG library of basic shapes. It can be used to create lines, curves, arcs, and more.
|
||||||
|
*/
|
||||||
|
export class Path extends React.Component<
|
||||||
|
React.PropsWithChildren<PathProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface RectProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
x?: string | number;
|
||||||
|
y?: string | number;
|
||||||
|
width: string | number;
|
||||||
|
height: string | number;
|
||||||
|
rx?: string | number;
|
||||||
|
ry?: string | number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Rect /> element is used to create a rectangle and variations of a rectangle shape.
|
||||||
|
*/
|
||||||
|
export class Rect extends React.Component<
|
||||||
|
React.PropsWithChildren<RectProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface CircleProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
cx?: string | number;
|
||||||
|
cy?: string | number;
|
||||||
|
r: string | number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Circle /> element is used to create a circle.
|
||||||
|
*/
|
||||||
|
export class Circle extends React.Component<
|
||||||
|
React.PropsWithChildren<CircleProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface EllipseProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
cx?: string | number;
|
||||||
|
cy?: string | number;
|
||||||
|
rx: string | number;
|
||||||
|
ry: string | number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Ellipse /> element is used to create an ellipse.
|
||||||
|
* An ellipse is closely related to a circle. The difference is that an ellipse has an x and a y radius that differs from each other, while a circle has equal x and y radius.
|
||||||
|
*/
|
||||||
|
export class Ellipse extends React.Component<
|
||||||
|
React.PropsWithChildren<EllipseProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface TspanProps extends SVGPresentationAttributes {
|
||||||
|
x?: string | number;
|
||||||
|
y?: string | number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Tspan /> element defines a subtext within a <Text /> element or another <Tspan /> element.
|
||||||
|
* It allows for adjustment of the style and/or position of that subtext as needed.
|
||||||
|
*/
|
||||||
|
export class Tspan extends React.Component<
|
||||||
|
React.PropsWithChildren<TspanProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface GProps extends SVGPresentationAttributes {
|
||||||
|
style?: Style;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <G /> SVG element is a container used to group other SVG elements.
|
||||||
|
* Transformations applied to the <G /> element are performed on its child elements, and its attributes are inherited by its children.
|
||||||
|
*/
|
||||||
|
export class G extends React.Component<React.PropsWithChildren<GProps>> {}
|
||||||
|
|
||||||
|
interface StopProps {
|
||||||
|
offset: string | number;
|
||||||
|
stopColor: string;
|
||||||
|
stopOpacity?: string | number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The SVG <Stop /> element defines a color and its position to use on a gradient. This element is always a child of a <LinearGradient /> or <RadialGradient /> element
|
||||||
|
*/
|
||||||
|
export class Stop extends React.Component<
|
||||||
|
React.PropsWithChildren<StopProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
// eslint-disable-next-line @typescript-eslint/no-empty-object-type
|
||||||
|
interface DefsProps {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Defs /> element is used to store graphical objects that will be used at a later time. Objects created inside a <Defs /> element are not rendered directly. To display them you have to reference them
|
||||||
|
*/
|
||||||
|
export class Defs extends React.Component<
|
||||||
|
React.PropsWithChildren<DefsProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface ClipPathProps {
|
||||||
|
id?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <ClipPath /> SVG element defines a clipping path, to be used by the clipPath property.
|
||||||
|
* A clipping path restricts the region to which paint can be applied. Conceptually, parts of the drawing that lie outside of the region bounded by the clipping path are not drawn.
|
||||||
|
*/
|
||||||
|
export class ClipPath extends React.Component<
|
||||||
|
React.PropsWithChildren<ClipPathProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface MarkerProps {
|
||||||
|
id: string;
|
||||||
|
viewBox?: string;
|
||||||
|
refX?: string | number;
|
||||||
|
refY?: string | number;
|
||||||
|
markerWidth?: string | number;
|
||||||
|
markerHeight?: string | number;
|
||||||
|
orient?: 'auto' | 'auto-start-reverse' | number;
|
||||||
|
markerUnits?: 'strokeWidth' | 'userSpaceOnUse';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Marker /> SVG element defines a graphic used for drawing arrows or polymarkers on a given <Path />, <Line />, <Polyline />, or <Polygon /> element.
|
||||||
|
* Markers can be attached to shapes using the markerStart, markerMid, and markerEnd properties.
|
||||||
|
*/
|
||||||
|
export class Marker extends React.Component<
|
||||||
|
React.PropsWithChildren<MarkerProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface LinearGradientProps {
|
||||||
|
id: string;
|
||||||
|
x1?: string | number;
|
||||||
|
x2?: string | number;
|
||||||
|
y1?: string | number;
|
||||||
|
y2?: string | number;
|
||||||
|
xlinkHref?: string;
|
||||||
|
gradientTransform?: string;
|
||||||
|
gradientUnits?: 'userSpaceOnUse' | 'objectBoundingBox';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <LinearGradient /> element lets authors define linear gradients that can be applied to fill or stroke of graphical elements.
|
||||||
|
*/
|
||||||
|
export class LinearGradient extends React.Component<
|
||||||
|
React.PropsWithChildren<LinearGradientProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface RadialGradientProps {
|
||||||
|
id: string;
|
||||||
|
cx?: string | number;
|
||||||
|
cy?: string | number;
|
||||||
|
r?: string | number;
|
||||||
|
fx?: string | number;
|
||||||
|
fy?: string | number;
|
||||||
|
xlinkHref?: string;
|
||||||
|
gradientTransform?: string;
|
||||||
|
gradientUnits?: 'userSpaceOnUse' | 'objectBoundingBox';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <RadialGradient /> element lets authors define radial gradients that can be applied to fill or stroke of graphical elements.
|
||||||
|
*/
|
||||||
|
export class RadialGradient extends React.Component<
|
||||||
|
React.PropsWithChildren<RadialGradientProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface BlobProviderParams {
|
||||||
|
blob: Blob | null;
|
||||||
|
url: string | null;
|
||||||
|
loading: boolean;
|
||||||
|
error: Error | null;
|
||||||
|
}
|
||||||
|
interface BlobProviderProps {
|
||||||
|
document: React.ReactElement<DocumentProps>;
|
||||||
|
children: (params: BlobProviderParams) => React.ReactNode;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Easy and declarative way of getting document's blob data without
|
||||||
|
* showing it on screen.
|
||||||
|
* @see https://react-pdf.org/advanced#on-the-fly-rendering
|
||||||
|
* @platform web
|
||||||
|
*/
|
||||||
|
export class BlobProvider extends React.Component<BlobProviderProps> {}
|
||||||
|
|
||||||
|
interface PDFViewerProps {
|
||||||
|
width?: number | string;
|
||||||
|
height?: number | string;
|
||||||
|
style?: Style | Style[];
|
||||||
|
className?: string;
|
||||||
|
children?: React.ReactElement<DocumentProps>;
|
||||||
|
innerRef?: React.Ref<HTMLIFrameElement>;
|
||||||
|
showToolbar?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Iframe PDF viewer for client-side generated documents.
|
||||||
|
* @platform web
|
||||||
|
*/
|
||||||
|
export class PDFViewer extends React.Component<PDFViewerProps> {}
|
||||||
|
|
||||||
|
interface PDFDownloadLinkProps
|
||||||
|
extends Omit<
|
||||||
|
React.AnchorHTMLAttributes<HTMLAnchorElement>,
|
||||||
|
'href' | 'children'
|
||||||
|
> {
|
||||||
|
/** PDF filename. Alias for anchor tag `download` attribute. */
|
||||||
|
fileName?: string;
|
||||||
|
document: React.ReactElement<DocumentProps>;
|
||||||
|
children?: React.ReactNode | React.FC<BlobProviderParams>;
|
||||||
|
onClick?: React.AnchorHTMLAttributes<HTMLAnchorElement>['onClick'] &
|
||||||
|
((
|
||||||
|
event: React.MouseEvent<HTMLAnchorElement, MouseEvent>,
|
||||||
|
instance: UsePDFInstance,
|
||||||
|
) => void);
|
||||||
|
ref?: React.Ref<HTMLAnchorElement> | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Anchor tag to enable generate and download PDF documents on the fly.
|
||||||
|
* @see https://react-pdf.org/advanced#on-the-fly-rendering
|
||||||
|
* @platform web
|
||||||
|
*/
|
||||||
|
export class PDFDownloadLink extends React.Component<PDFDownloadLinkProps> {}
|
||||||
|
|
||||||
|
interface UsePDFInstance {
|
||||||
|
loading: boolean;
|
||||||
|
blob: Blob | null;
|
||||||
|
url: string | null;
|
||||||
|
error: string | null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* React hook for creating and updating a PDF document instance
|
||||||
|
* @platform web
|
||||||
|
*/
|
||||||
|
export function usePDF(options?: {
|
||||||
|
document?: React.ReactElement<DocumentProps>;
|
||||||
|
}): [
|
||||||
|
UsePDFInstance,
|
||||||
|
(newDocument: React.ReactElement<DocumentProps>) => void,
|
||||||
|
];
|
||||||
|
|
||||||
|
export const Font: FontStore;
|
||||||
|
|
||||||
|
export const StyleSheet: {
|
||||||
|
create: <T extends Styles>(styles: T) => T;
|
||||||
|
};
|
||||||
|
|
||||||
|
export const version: any;
|
||||||
|
|
||||||
|
export const PDFRenderer: any;
|
||||||
|
|
||||||
|
export const pdf: (initialValue?: React.ReactElement<DocumentProps>) => {
|
||||||
|
container: any;
|
||||||
|
isDirty: () => boolean;
|
||||||
|
toString: () => string;
|
||||||
|
toBlob: () => Promise<Blob>;
|
||||||
|
toBuffer: () => Promise<NodeJS.ReadableStream>;
|
||||||
|
on: (event: 'change', callback: () => void) => void;
|
||||||
|
updateContainer: (
|
||||||
|
document: React.ReactElement<any>,
|
||||||
|
callback?: () => void,
|
||||||
|
) => void;
|
||||||
|
removeListener: (event: 'change', callback: () => void) => void;
|
||||||
|
};
|
||||||
|
|
||||||
|
export const renderToStream: (
|
||||||
|
document: React.ReactElement<DocumentProps>,
|
||||||
|
) => Promise<NodeJS.ReadableStream>;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated use the `renderToBuffer` method
|
||||||
|
*/
|
||||||
|
export const renderToString: (
|
||||||
|
document: React.ReactElement<DocumentProps>,
|
||||||
|
) => Promise<string>;
|
||||||
|
|
||||||
|
export const renderToFile: (
|
||||||
|
document: React.ReactElement<DocumentProps>,
|
||||||
|
filePath: string,
|
||||||
|
callback?: (output: NodeJS.ReadableStream, _filePath: string) => any,
|
||||||
|
) => Promise<NodeJS.ReadableStream>;
|
||||||
|
|
||||||
|
const render: typeof renderToFile;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Render document into a nodejs buffer
|
||||||
|
* @platform node
|
||||||
|
*/
|
||||||
|
export const renderToBuffer: (
|
||||||
|
document: React.ReactElement<ReactPDF.DocumentProps>,
|
||||||
|
) => Promise<Buffer>;
|
||||||
|
}
|
||||||
368
build_temp/.next/node_modules/@react-pdf/renderer-5f716e9bc7d68b8a/lib/react-pdf.js
generated
vendored
Normal file
368
build_temp/.next/node_modules/@react-pdf/renderer-5f716e9bc7d68b8a/lib/react-pdf.js
generated
vendored
Normal file
@@ -0,0 +1,368 @@
|
|||||||
|
import * as primitives from '@react-pdf/primitives';
|
||||||
|
export * from '@react-pdf/primitives';
|
||||||
|
import fs from 'fs';
|
||||||
|
import { Buffer } from 'buffer';
|
||||||
|
import FontStore from '@react-pdf/font';
|
||||||
|
import renderPDF from '@react-pdf/render';
|
||||||
|
import PDFDocument from '@react-pdf/pdfkit';
|
||||||
|
import layoutDocument from '@react-pdf/layout';
|
||||||
|
import { upperFirst } from '@react-pdf/fns';
|
||||||
|
import Reconciler from '@react-pdf/reconciler';
|
||||||
|
|
||||||
|
const omitNils = object => Object.fromEntries(Object.entries(object).filter(_ref => {
|
||||||
|
let [, value] = _ref;
|
||||||
|
return value !== undefined;
|
||||||
|
}));
|
||||||
|
|
||||||
|
const createInstance = (type, _ref) => {
|
||||||
|
let {
|
||||||
|
style,
|
||||||
|
children,
|
||||||
|
...props
|
||||||
|
} = _ref;
|
||||||
|
return {
|
||||||
|
type,
|
||||||
|
box: {},
|
||||||
|
style: style || {},
|
||||||
|
props: props || {},
|
||||||
|
children: []
|
||||||
|
};
|
||||||
|
};
|
||||||
|
const createTextInstance = text => ({
|
||||||
|
type: 'TEXT_INSTANCE',
|
||||||
|
value: text
|
||||||
|
});
|
||||||
|
const appendChild = (parent, child) => {
|
||||||
|
const isParentText = parent.type === 'TEXT' || parent.type === 'LINK' || parent.type === 'TSPAN' || parent.type === 'NOTE';
|
||||||
|
const isChildTextInstance = child.type === 'TEXT_INSTANCE';
|
||||||
|
const isOrphanTextInstance = isChildTextInstance && !isParentText;
|
||||||
|
|
||||||
|
// Ignore orphan text instances.
|
||||||
|
// Caused by cases such as <>{name && <Text>{name}</Text>}</>
|
||||||
|
if (isOrphanTextInstance) {
|
||||||
|
console.warn(`Invalid '${child.value}' string child outside <Text> component`);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
parent.children.push(child);
|
||||||
|
};
|
||||||
|
const appendChildToContainer = (parentInstance, child) => {
|
||||||
|
if (parentInstance.type === 'ROOT') {
|
||||||
|
parentInstance.document = child;
|
||||||
|
} else {
|
||||||
|
appendChild(parentInstance, child);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
const insertBefore = (parentInstance, child, beforeChild) => {
|
||||||
|
var _parentInstance$child;
|
||||||
|
const index = (_parentInstance$child = parentInstance.children) === null || _parentInstance$child === void 0 ? void 0 : _parentInstance$child.indexOf(beforeChild);
|
||||||
|
if (index === undefined) return;
|
||||||
|
if (index !== -1 && child) parentInstance.children.splice(index, 0, child);
|
||||||
|
};
|
||||||
|
const removeChild = (parentInstance, child) => {
|
||||||
|
var _parentInstance$child2;
|
||||||
|
const index = (_parentInstance$child2 = parentInstance.children) === null || _parentInstance$child2 === void 0 ? void 0 : _parentInstance$child2.indexOf(child);
|
||||||
|
if (index === undefined) return;
|
||||||
|
if (index !== -1) parentInstance.children.splice(index, 1);
|
||||||
|
};
|
||||||
|
const removeChildFromContainer = (parentInstance, child) => {
|
||||||
|
var _parentInstance$child3;
|
||||||
|
const index = (_parentInstance$child3 = parentInstance.children) === null || _parentInstance$child3 === void 0 ? void 0 : _parentInstance$child3.indexOf(child);
|
||||||
|
if (index === undefined) return;
|
||||||
|
if (index !== -1) parentInstance.children.splice(index, 1);
|
||||||
|
};
|
||||||
|
const commitTextUpdate = (textInstance, oldText, newText) => {
|
||||||
|
textInstance.value = newText;
|
||||||
|
};
|
||||||
|
const commitUpdate = (instance, updatePayload, type, oldProps, newProps) => {
|
||||||
|
const {
|
||||||
|
style,
|
||||||
|
...props
|
||||||
|
} = newProps;
|
||||||
|
instance.props = props;
|
||||||
|
instance.style = style;
|
||||||
|
};
|
||||||
|
const createRenderer = _ref2 => {
|
||||||
|
let {
|
||||||
|
onChange = () => {}
|
||||||
|
} = _ref2;
|
||||||
|
return Reconciler({
|
||||||
|
appendChild,
|
||||||
|
appendChildToContainer,
|
||||||
|
commitTextUpdate,
|
||||||
|
commitUpdate,
|
||||||
|
createInstance,
|
||||||
|
createTextInstance,
|
||||||
|
insertBefore,
|
||||||
|
removeChild,
|
||||||
|
removeChildFromContainer,
|
||||||
|
resetAfterCommit: onChange
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
var version$1 = "4.5.1";
|
||||||
|
var packageJson = {
|
||||||
|
version: version$1};
|
||||||
|
|
||||||
|
const {
|
||||||
|
version
|
||||||
|
} = packageJson;
|
||||||
|
const fontStore = new FontStore();
|
||||||
|
|
||||||
|
// We must keep a single renderer instance, otherwise React will complain
|
||||||
|
let renderer;
|
||||||
|
|
||||||
|
// The pdf instance acts as an event emitter for DOM usage.
|
||||||
|
// We only want to trigger an update when PDF content changes
|
||||||
|
const events = {};
|
||||||
|
const pdf = initialValue => {
|
||||||
|
const onChange = () => {
|
||||||
|
var _events$change;
|
||||||
|
const listeners = ((_events$change = events.change) === null || _events$change === void 0 ? void 0 : _events$change.slice()) || [];
|
||||||
|
for (let i = 0; i < listeners.length; i += 1) listeners[i]();
|
||||||
|
};
|
||||||
|
const container = {
|
||||||
|
type: 'ROOT',
|
||||||
|
document: null
|
||||||
|
};
|
||||||
|
renderer = renderer || createRenderer({
|
||||||
|
onChange
|
||||||
|
});
|
||||||
|
const mountNode = renderer.createContainer(container);
|
||||||
|
const updateContainer = (doc, callback) => {
|
||||||
|
renderer.updateContainer(doc, mountNode, null, callback);
|
||||||
|
};
|
||||||
|
if (initialValue) updateContainer(initialValue);
|
||||||
|
const render = async function (compress) {
|
||||||
|
if (compress === void 0) {
|
||||||
|
compress = true;
|
||||||
|
}
|
||||||
|
const props = container.document.props || {};
|
||||||
|
const {
|
||||||
|
pdfVersion,
|
||||||
|
language,
|
||||||
|
pageLayout,
|
||||||
|
pageMode,
|
||||||
|
title,
|
||||||
|
author,
|
||||||
|
subject,
|
||||||
|
keywords,
|
||||||
|
creator = 'react-pdf',
|
||||||
|
producer = 'react-pdf',
|
||||||
|
creationDate = new Date(),
|
||||||
|
modificationDate,
|
||||||
|
ownerPassword,
|
||||||
|
userPassword,
|
||||||
|
permissions
|
||||||
|
} = props;
|
||||||
|
const ctx = new PDFDocument({
|
||||||
|
compress,
|
||||||
|
pdfVersion,
|
||||||
|
lang: language,
|
||||||
|
displayTitle: true,
|
||||||
|
autoFirstPage: false,
|
||||||
|
ownerPassword,
|
||||||
|
userPassword,
|
||||||
|
permissions,
|
||||||
|
pageLayout,
|
||||||
|
info: omitNils({
|
||||||
|
Title: title,
|
||||||
|
Author: author,
|
||||||
|
Subject: subject,
|
||||||
|
Keywords: keywords,
|
||||||
|
Creator: creator,
|
||||||
|
Producer: producer,
|
||||||
|
CreationDate: creationDate,
|
||||||
|
ModificationDate: modificationDate
|
||||||
|
})
|
||||||
|
});
|
||||||
|
if (pageMode) {
|
||||||
|
ctx._root.data.PageMode = upperFirst(pageMode);
|
||||||
|
}
|
||||||
|
const layout = await layoutDocument(container.document, fontStore);
|
||||||
|
const fileStream = renderPDF(ctx, layout);
|
||||||
|
return {
|
||||||
|
layout,
|
||||||
|
fileStream
|
||||||
|
};
|
||||||
|
};
|
||||||
|
const callOnRender = function (params) {
|
||||||
|
if (params === void 0) {
|
||||||
|
params = {};
|
||||||
|
}
|
||||||
|
if (container.document.props.onRender) {
|
||||||
|
container.document.props.onRender(params);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
const toBlob = async () => {
|
||||||
|
const chunks = [];
|
||||||
|
const {
|
||||||
|
layout: _INTERNAL__LAYOUT__DATA_,
|
||||||
|
fileStream: instance
|
||||||
|
} = await render();
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
instance.on('data', chunk => {
|
||||||
|
chunks.push(chunk instanceof Uint8Array ? chunk : new Uint8Array(chunk));
|
||||||
|
});
|
||||||
|
instance.on('end', () => {
|
||||||
|
try {
|
||||||
|
const blob = new Blob(chunks, {
|
||||||
|
type: 'application/pdf'
|
||||||
|
});
|
||||||
|
callOnRender({
|
||||||
|
blob,
|
||||||
|
_INTERNAL__LAYOUT__DATA_
|
||||||
|
});
|
||||||
|
resolve(blob);
|
||||||
|
} catch (error) {
|
||||||
|
reject(error);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
// TODO: rename this method to `toStream` in next major release, because it return stream not a buffer
|
||||||
|
const toBuffer = async () => {
|
||||||
|
const {
|
||||||
|
layout: _INTERNAL__LAYOUT__DATA_,
|
||||||
|
fileStream
|
||||||
|
} = await render();
|
||||||
|
callOnRender({
|
||||||
|
_INTERNAL__LAYOUT__DATA_
|
||||||
|
});
|
||||||
|
return fileStream;
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* TODO: remove this method in next major release. it is buggy
|
||||||
|
* see
|
||||||
|
* - https://github.com/diegomura/react-pdf/issues/2112
|
||||||
|
* - https://github.com/diegomura/react-pdf/issues/2095
|
||||||
|
*/
|
||||||
|
const toString = async () => {
|
||||||
|
if (process.env.NODE_ENV === 'development') {
|
||||||
|
console.warn('`toString` is deprecated and will be removed in next major release');
|
||||||
|
}
|
||||||
|
let result = '';
|
||||||
|
const {
|
||||||
|
fileStream: instance
|
||||||
|
} = await render(false); // For some reason, when rendering to string if compress=true the document is blank
|
||||||
|
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
try {
|
||||||
|
instance.on('data', buffer => {
|
||||||
|
result += buffer;
|
||||||
|
});
|
||||||
|
instance.on('end', () => {
|
||||||
|
callOnRender();
|
||||||
|
resolve(result);
|
||||||
|
});
|
||||||
|
} catch (error) {
|
||||||
|
reject(error);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
const on = (event, listener) => {
|
||||||
|
if (!events[event]) events[event] = [];
|
||||||
|
events[event].push(listener);
|
||||||
|
};
|
||||||
|
const removeListener = (event, listener) => {
|
||||||
|
if (!events[event]) return;
|
||||||
|
const idx = events[event].indexOf(listener);
|
||||||
|
if (idx > -1) events[event].splice(idx, 1);
|
||||||
|
};
|
||||||
|
return {
|
||||||
|
on,
|
||||||
|
container,
|
||||||
|
toBlob,
|
||||||
|
toBuffer,
|
||||||
|
toString,
|
||||||
|
removeListener,
|
||||||
|
updateContainer
|
||||||
|
};
|
||||||
|
};
|
||||||
|
const Font = fontStore;
|
||||||
|
const StyleSheet = {
|
||||||
|
create: s => s
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {React.ReactElement} element
|
||||||
|
* @returns {Promise<NodeJS.ReadableStream>}
|
||||||
|
*/
|
||||||
|
const renderToStream = async element => {
|
||||||
|
const instance = pdf(element);
|
||||||
|
const stream = await instance.toBuffer();
|
||||||
|
return stream;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {React.ReactElement} element
|
||||||
|
* @param {string} filePath
|
||||||
|
* @param {Function} [callback]
|
||||||
|
*/
|
||||||
|
const renderToFile = async (element, filePath, callback) => {
|
||||||
|
const output = await renderToStream(element);
|
||||||
|
const stream = fs.createWriteStream(filePath);
|
||||||
|
output.pipe(stream);
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
stream.on('finish', () => {
|
||||||
|
if (callback) callback(output, filePath);
|
||||||
|
resolve(output);
|
||||||
|
});
|
||||||
|
stream.on('error', reject);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {React.ReactElement} element
|
||||||
|
* @returns {Promise<Buffer>}
|
||||||
|
*/
|
||||||
|
const renderToBuffer = element => renderToStream(element).then(stream => new Promise((resolve, reject) => {
|
||||||
|
const chunks = [];
|
||||||
|
stream.on('data', chunk => chunks.push(chunk));
|
||||||
|
stream.on('end', () => resolve(Buffer.concat(chunks)));
|
||||||
|
stream.on('error', error => reject(error));
|
||||||
|
}));
|
||||||
|
const renderToString = element => {
|
||||||
|
if (process.env.NODE_ENV === 'development') {
|
||||||
|
console.warn('`renderToString` is deprecated and will be removed in next major release, use `renderToBuffer` instead');
|
||||||
|
}
|
||||||
|
return renderToBuffer(element).then(buffer => buffer.toString());
|
||||||
|
};
|
||||||
|
|
||||||
|
const throwEnvironmentError = name => {
|
||||||
|
throw new Error(`${name} is a web specific API. You're either using this component on Node, or your bundler is not loading react-pdf from the appropriate web build.`);
|
||||||
|
};
|
||||||
|
const usePDF = () => {
|
||||||
|
throwEnvironmentError('usePDF');
|
||||||
|
};
|
||||||
|
const PDFViewer = () => {
|
||||||
|
throwEnvironmentError('PDFViewer');
|
||||||
|
};
|
||||||
|
const PDFDownloadLink = () => {
|
||||||
|
throwEnvironmentError('PDFDownloadLink');
|
||||||
|
};
|
||||||
|
const BlobProvider = () => {
|
||||||
|
throwEnvironmentError('BlobProvider');
|
||||||
|
};
|
||||||
|
const render = renderToFile;
|
||||||
|
|
||||||
|
// TODO: remove this default export in next major release because it breaks tree-shacking
|
||||||
|
var index = {
|
||||||
|
pdf,
|
||||||
|
Font,
|
||||||
|
version,
|
||||||
|
StyleSheet,
|
||||||
|
usePDF,
|
||||||
|
PDFViewer,
|
||||||
|
BlobProvider,
|
||||||
|
PDFDownloadLink,
|
||||||
|
renderToStream,
|
||||||
|
renderToString,
|
||||||
|
renderToFile,
|
||||||
|
render,
|
||||||
|
...primitives
|
||||||
|
};
|
||||||
|
|
||||||
|
export { BlobProvider, Font, PDFDownloadLink, PDFViewer, StyleSheet, createRenderer, index as default, pdf, render, renderToBuffer, renderToFile, renderToStream, renderToString, usePDF, version };
|
||||||
|
//# sourceMappingURL=react-pdf.js.map
|
||||||
1
build_temp/.next/node_modules/@react-pdf/renderer-5f716e9bc7d68b8a/lib/react-pdf.js.map
generated
vendored
Normal file
1
build_temp/.next/node_modules/@react-pdf/renderer-5f716e9bc7d68b8a/lib/react-pdf.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
793
build_temp/.next/node_modules/@react-pdf/renderer-5f716e9bc7d68b8a/lib/react-pdf.min.d.cts
generated
vendored
Normal file
793
build_temp/.next/node_modules/@react-pdf/renderer-5f716e9bc7d68b8a/lib/react-pdf.min.d.cts
generated
vendored
Normal file
@@ -0,0 +1,793 @@
|
|||||||
|
/* eslint-disable max-classes-per-file */
|
||||||
|
|
||||||
|
import * as React from 'react';
|
||||||
|
import {
|
||||||
|
Style,
|
||||||
|
PageSize,
|
||||||
|
FontStore,
|
||||||
|
PDFVersion,
|
||||||
|
Orientation,
|
||||||
|
SourceObject,
|
||||||
|
SrcSet,
|
||||||
|
Sizes,
|
||||||
|
HyphenationCallback,
|
||||||
|
SVGPresentationAttributes,
|
||||||
|
Bookmark,
|
||||||
|
PageLayout,
|
||||||
|
PageMode,
|
||||||
|
HitSlop,
|
||||||
|
} from '@react-pdf/types';
|
||||||
|
|
||||||
|
declare class ReactPDF {
|
||||||
|
static default: typeof ReactPDF;
|
||||||
|
}
|
||||||
|
|
||||||
|
export = ReactPDF;
|
||||||
|
|
||||||
|
declare namespace ReactPDF {
|
||||||
|
interface Styles {
|
||||||
|
[key: string]: Style;
|
||||||
|
}
|
||||||
|
interface OnRenderProps {
|
||||||
|
blob?: Blob;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Permissions {
|
||||||
|
printing?: 'lowResolution' | 'highResolution';
|
||||||
|
modifying?: boolean;
|
||||||
|
copying?: boolean;
|
||||||
|
annotating?: boolean;
|
||||||
|
fillingForms?: boolean;
|
||||||
|
contentAccessibility?: boolean;
|
||||||
|
documentAssembly?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface DocumentProps {
|
||||||
|
style?: Style | Style[];
|
||||||
|
title?: string;
|
||||||
|
author?: string;
|
||||||
|
subject?: string;
|
||||||
|
creator?: string;
|
||||||
|
keywords?: string;
|
||||||
|
producer?: string;
|
||||||
|
language?: string;
|
||||||
|
creationDate?: Date;
|
||||||
|
modificationDate?: Date;
|
||||||
|
pdfVersion?: PDFVersion;
|
||||||
|
pageMode?: PageMode;
|
||||||
|
pageLayout?: PageLayout;
|
||||||
|
ownerPassword?: string;
|
||||||
|
userPassword?: string;
|
||||||
|
permissions?: Permissions;
|
||||||
|
onRender?: (props: OnRenderProps) => any;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This component represent the PDF document itself. It must be the root
|
||||||
|
* of your tree element structure, and under no circumstances should it be
|
||||||
|
* used as children of another react-pdf component. In addition, it should
|
||||||
|
* only have childs of type <Page />.
|
||||||
|
*/
|
||||||
|
export class Document extends React.Component<
|
||||||
|
React.PropsWithChildren<DocumentProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface NodeProps {
|
||||||
|
id?: string;
|
||||||
|
style?: Style | Style[];
|
||||||
|
/**
|
||||||
|
* Render component in all wrapped pages.
|
||||||
|
* @see https://react-pdf.org/advanced#fixed-components
|
||||||
|
*/
|
||||||
|
fixed?: boolean;
|
||||||
|
/**
|
||||||
|
* Force the wrapping algorithm to start a new page when rendering the
|
||||||
|
* element.
|
||||||
|
* @see https://react-pdf.org/advanced#page-breaks
|
||||||
|
*/
|
||||||
|
break?: boolean;
|
||||||
|
/**
|
||||||
|
* Hint that no page wrapping should occur between all sibling elements following the element within n points
|
||||||
|
* @see https://react-pdf.org/advanced#orphan-&-widow-protection
|
||||||
|
*/
|
||||||
|
minPresenceAhead?: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface PageProps extends NodeProps {
|
||||||
|
/**
|
||||||
|
* Enable page wrapping for this page.
|
||||||
|
* @see https://react-pdf.org/components#page-wrapping
|
||||||
|
*/
|
||||||
|
wrap?: boolean;
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
size?: PageSize;
|
||||||
|
orientation?: Orientation;
|
||||||
|
dpi?: number;
|
||||||
|
bookmark?: Bookmark;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents single page inside the PDF document, or a subset of them if
|
||||||
|
* using the wrapping feature. A <Document /> can contain as many pages as
|
||||||
|
* you want, but ensure not rendering a page inside any component besides
|
||||||
|
* Document.
|
||||||
|
*/
|
||||||
|
export class Page extends React.Component<
|
||||||
|
React.PropsWithChildren<PageProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface ViewProps extends NodeProps {
|
||||||
|
id?: string;
|
||||||
|
/**
|
||||||
|
* Enable/disable page wrapping for element.
|
||||||
|
* @see https://react-pdf.org/components#page-wrapping
|
||||||
|
*/
|
||||||
|
wrap?: boolean;
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
render?: (props: {
|
||||||
|
pageNumber: number;
|
||||||
|
subPageNumber: number;
|
||||||
|
}) => React.ReactNode;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The most fundamental component for building a UI and is designed to be
|
||||||
|
* nested inside other views and can have 0 to many children.
|
||||||
|
*/
|
||||||
|
export class View extends React.Component<
|
||||||
|
React.PropsWithChildren<ViewProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface BaseImageProps extends NodeProps {
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
cache?: boolean;
|
||||||
|
/**
|
||||||
|
* A comma-separated list of image sources with width descriptors.
|
||||||
|
* Works like the HTML img srcSet attribute.
|
||||||
|
* @example "small.jpg 300w, medium.jpg 600w, large.jpg 900w"
|
||||||
|
*/
|
||||||
|
srcSet?: SrcSet;
|
||||||
|
/**
|
||||||
|
* The intended display width of the image, used to select the best source
|
||||||
|
* from srcSet. Accepts a number (in points) or a string.
|
||||||
|
* Works like the HTML img sizes attribute.
|
||||||
|
* @example 300
|
||||||
|
* @example "300"
|
||||||
|
*/
|
||||||
|
sizes?: Sizes;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ImageWithSrcProp extends BaseImageProps {
|
||||||
|
src: SourceObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ImageWithSourceProp extends BaseImageProps {
|
||||||
|
source: SourceObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
type ImageProps = ImageWithSrcProp | ImageWithSourceProp;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A React component for displaying network or local (Node only) JPG or
|
||||||
|
* PNG images, as well as base64 encoded image strings.
|
||||||
|
*/
|
||||||
|
export class Image extends React.Component<ImageProps> {}
|
||||||
|
|
||||||
|
interface BaseImageBackgroundProps extends NodeProps {
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
cache?: boolean;
|
||||||
|
/**
|
||||||
|
* A comma-separated list of image sources with width descriptors.
|
||||||
|
* Works like the HTML img srcSet attribute.
|
||||||
|
* @example "small.jpg 300w, medium.jpg 600w, large.jpg 900w"
|
||||||
|
*/
|
||||||
|
srcSet?: SrcSet;
|
||||||
|
/**
|
||||||
|
* The intended display width of the image, used to select the best source
|
||||||
|
* from srcSet. Accepts a number (in points) or a string.
|
||||||
|
* @example 300
|
||||||
|
*/
|
||||||
|
sizes?: Sizes;
|
||||||
|
/**
|
||||||
|
* Style applied to the background image.
|
||||||
|
*/
|
||||||
|
imageStyle?: Style;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ImageBackgroundWithSrcProp extends BaseImageBackgroundProps {
|
||||||
|
src: SourceObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ImageBackgroundWithSourceProp extends BaseImageBackgroundProps {
|
||||||
|
source: SourceObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
type ImageBackgroundProps =
|
||||||
|
| ImageBackgroundWithSrcProp
|
||||||
|
| ImageBackgroundWithSourceProp;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A React component for displaying an image behind child content.
|
||||||
|
* Compatible with React Native's ImageBackground component.
|
||||||
|
* @see https://reactnative.dev/docs/imagebackground
|
||||||
|
*/
|
||||||
|
export class ImageBackground extends React.Component<
|
||||||
|
React.PropsWithChildren<ImageBackgroundProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface TextProps extends NodeProps {
|
||||||
|
id?: string;
|
||||||
|
/**
|
||||||
|
* Enable/disable page wrapping for element.
|
||||||
|
* @see https://react-pdf.org/components#page-wrapping
|
||||||
|
*/
|
||||||
|
wrap?: boolean;
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
render?: (props: {
|
||||||
|
pageNumber: number;
|
||||||
|
totalPages: number;
|
||||||
|
subPageNumber: number;
|
||||||
|
subPageTotalPages: number;
|
||||||
|
}) => React.ReactNode;
|
||||||
|
/**
|
||||||
|
* Override the default hyphenation-callback
|
||||||
|
* @see https://react-pdf.org/fonts#registerhyphenationcallback
|
||||||
|
*/
|
||||||
|
hyphenationCallback?: HyphenationCallback;
|
||||||
|
/**
|
||||||
|
* Specifies the minimum number of lines in a text element that must be shown at the bottom of a page or its container.
|
||||||
|
* @see https://react-pdf.org/advanced#orphan-&-widow-protection
|
||||||
|
*/
|
||||||
|
orphans?: number;
|
||||||
|
/**
|
||||||
|
* Specifies the minimum number of lines in a text element that must be shown at the top of a page or its container..
|
||||||
|
* @see https://react-pdf.org/advanced#orphan-&-widow-protection
|
||||||
|
*/
|
||||||
|
widows?: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface SVGTextProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
x: string | number;
|
||||||
|
y: string | number;
|
||||||
|
/**
|
||||||
|
* Override the default hyphenation-callback
|
||||||
|
* @see https://react-pdf.org/fonts#registerhyphenationcallback
|
||||||
|
*/
|
||||||
|
hyphenationCallback?: HyphenationCallback;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A React component for displaying text. Text supports nesting of other
|
||||||
|
* Text or Link components to create inline styling.
|
||||||
|
*/
|
||||||
|
export class Text extends React.Component<
|
||||||
|
React.PropsWithChildren<TextProps> | SVGTextProps
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface LinkProps extends NodeProps {
|
||||||
|
/**
|
||||||
|
* Enable/disable page wrapping for element.
|
||||||
|
* @see https://react-pdf.org/components#page-wrapping
|
||||||
|
*/
|
||||||
|
wrap?: boolean;
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
href?: string;
|
||||||
|
src?: string;
|
||||||
|
/**
|
||||||
|
* Extends the clickable area of the link beyond its visible bounds.
|
||||||
|
* Accepts a number (applied to all sides) or an object with top, bottom, left, right.
|
||||||
|
* @see https://reactnative.dev/docs/view#hitslop
|
||||||
|
*/
|
||||||
|
hitSlop?: HitSlop;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A React component for displaying a hyperlink. Link’s can be nested
|
||||||
|
* inside a Text component, or being inside any other valid primitive.
|
||||||
|
*/
|
||||||
|
export class Link extends React.Component<
|
||||||
|
React.PropsWithChildren<LinkProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface FormCommonProps extends NodeProps {
|
||||||
|
name?: string;
|
||||||
|
required?: boolean;
|
||||||
|
noExport?: boolean;
|
||||||
|
readOnly?: boolean;
|
||||||
|
value?: number | string;
|
||||||
|
defaultValue?: number | string;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface FieldSetProps extends NodeProps {
|
||||||
|
name: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export class FieldSet extends React.Component<
|
||||||
|
React.PropsWithChildren<FieldSetProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
// see http://pdfkit.org/docs/forms.html#text_field_formatting
|
||||||
|
interface TextInputFormatting {
|
||||||
|
type:
|
||||||
|
| 'date'
|
||||||
|
| 'time'
|
||||||
|
| 'percent'
|
||||||
|
| 'number'
|
||||||
|
| 'zip'
|
||||||
|
| 'zipPlus4'
|
||||||
|
| 'phone'
|
||||||
|
| 'ssn';
|
||||||
|
param?: string;
|
||||||
|
nDec?: number;
|
||||||
|
sepComma?: boolean;
|
||||||
|
negStyle?: 'MinusBlack' | 'Red' | 'ParensBlack' | 'ParensRed';
|
||||||
|
currency?: string;
|
||||||
|
currencyPrepend?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
// see http://pdfkit.org/docs/forms.html#text_field_formatting
|
||||||
|
interface TextInputProps extends FormCommonProps {
|
||||||
|
align?: 'left' | 'center' | 'right';
|
||||||
|
multiline?: boolean;
|
||||||
|
/**
|
||||||
|
* The text will be masked (e.g. with asterisks).
|
||||||
|
*/
|
||||||
|
password?: boolean;
|
||||||
|
/**
|
||||||
|
* If set, text entered in the field is not spell-checked
|
||||||
|
*/
|
||||||
|
noSpell?: boolean;
|
||||||
|
format?: TextInputFormatting;
|
||||||
|
/**
|
||||||
|
* Sets the fontSize (default or 0 means auto sizing)
|
||||||
|
*/
|
||||||
|
fontSize?: number;
|
||||||
|
/**
|
||||||
|
* Sets the maximum length (characters) of the text in the field
|
||||||
|
*/
|
||||||
|
maxLength?: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
export class TextInput extends React.Component<TextInputProps> {}
|
||||||
|
|
||||||
|
interface CheckboxProps extends FormCommonProps {
|
||||||
|
backgroundColor?: string;
|
||||||
|
borderColor?: string;
|
||||||
|
checked?: boolean;
|
||||||
|
onState?: string;
|
||||||
|
offState?: string;
|
||||||
|
xMark?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
export class Checkbox extends React.Component<CheckboxProps> {}
|
||||||
|
|
||||||
|
interface SelectAndListPropsBase extends FormCommonProps {
|
||||||
|
sort?: boolean;
|
||||||
|
edit?: boolean;
|
||||||
|
multiSelect?: boolean;
|
||||||
|
noSpell?: boolean;
|
||||||
|
select?: string[];
|
||||||
|
}
|
||||||
|
|
||||||
|
type SelectAndListPropsWithEdit = SelectAndListPropsBase & {
|
||||||
|
edit: true | false;
|
||||||
|
noSpell: boolean;
|
||||||
|
};
|
||||||
|
|
||||||
|
type SelectAndListPropsWithNoSpell = SelectAndListPropsBase & {
|
||||||
|
edit: boolean;
|
||||||
|
noSpell: true | false;
|
||||||
|
};
|
||||||
|
|
||||||
|
type SelectAndListProps =
|
||||||
|
| SelectAndListPropsWithEdit
|
||||||
|
| SelectAndListPropsWithNoSpell;
|
||||||
|
|
||||||
|
export class Select extends React.Component<SelectAndListProps> {}
|
||||||
|
|
||||||
|
export class List extends React.Component<SelectAndListProps> {}
|
||||||
|
|
||||||
|
interface NoteProps extends NodeProps {
|
||||||
|
children: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export class Note extends React.Component<NoteProps> {}
|
||||||
|
|
||||||
|
interface CanvasProps extends NodeProps {
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
paint: (
|
||||||
|
painter: any,
|
||||||
|
availableWidth: number,
|
||||||
|
availableHeight: number,
|
||||||
|
) => null;
|
||||||
|
}
|
||||||
|
|
||||||
|
export class Canvas extends React.Component<CanvasProps> {}
|
||||||
|
|
||||||
|
interface SVGProps extends NodeProps, SVGPresentationAttributes {
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
width?: string | number;
|
||||||
|
height?: string | number;
|
||||||
|
viewBox?: string;
|
||||||
|
preserveAspectRatio?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <SVG /> element is a container that defines a new coordinate system and viewport. It is used as the outermost element of SVG documents.
|
||||||
|
*/
|
||||||
|
export class Svg extends React.Component<React.PropsWithChildren<SVGProps>> {}
|
||||||
|
|
||||||
|
interface LineProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
x1: string | number;
|
||||||
|
x2: string | number;
|
||||||
|
y1: string | number;
|
||||||
|
y2: string | number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Line /> element is used to create a line.
|
||||||
|
*/
|
||||||
|
export class Line extends React.Component<
|
||||||
|
React.PropsWithChildren<LineProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface PolylineProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
points: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Polyline /> element is used to create any shape that consists of only straight lines (that is connected at several points).
|
||||||
|
*/
|
||||||
|
export class Polyline extends React.Component<
|
||||||
|
React.PropsWithChildren<PolylineProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface PolygonProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
points: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Polygon /> element is used to create a graphic that contains at least three sides.
|
||||||
|
* Polygons are made of straight lines, and the shape is "closed" (all the lines connect up).
|
||||||
|
*/
|
||||||
|
export class Polygon extends React.Component<
|
||||||
|
React.PropsWithChildren<PolygonProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface PathProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
d: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Path /> element is the most powerful element in the SVG library of basic shapes. It can be used to create lines, curves, arcs, and more.
|
||||||
|
*/
|
||||||
|
export class Path extends React.Component<
|
||||||
|
React.PropsWithChildren<PathProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface RectProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
x?: string | number;
|
||||||
|
y?: string | number;
|
||||||
|
width: string | number;
|
||||||
|
height: string | number;
|
||||||
|
rx?: string | number;
|
||||||
|
ry?: string | number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Rect /> element is used to create a rectangle and variations of a rectangle shape.
|
||||||
|
*/
|
||||||
|
export class Rect extends React.Component<
|
||||||
|
React.PropsWithChildren<RectProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface CircleProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
cx?: string | number;
|
||||||
|
cy?: string | number;
|
||||||
|
r: string | number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Circle /> element is used to create a circle.
|
||||||
|
*/
|
||||||
|
export class Circle extends React.Component<
|
||||||
|
React.PropsWithChildren<CircleProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface EllipseProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
cx?: string | number;
|
||||||
|
cy?: string | number;
|
||||||
|
rx: string | number;
|
||||||
|
ry: string | number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Ellipse /> element is used to create an ellipse.
|
||||||
|
* An ellipse is closely related to a circle. The difference is that an ellipse has an x and a y radius that differs from each other, while a circle has equal x and y radius.
|
||||||
|
*/
|
||||||
|
export class Ellipse extends React.Component<
|
||||||
|
React.PropsWithChildren<EllipseProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface TspanProps extends SVGPresentationAttributes {
|
||||||
|
x?: string | number;
|
||||||
|
y?: string | number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Tspan /> element defines a subtext within a <Text /> element or another <Tspan /> element.
|
||||||
|
* It allows for adjustment of the style and/or position of that subtext as needed.
|
||||||
|
*/
|
||||||
|
export class Tspan extends React.Component<
|
||||||
|
React.PropsWithChildren<TspanProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface GProps extends SVGPresentationAttributes {
|
||||||
|
style?: Style;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <G /> SVG element is a container used to group other SVG elements.
|
||||||
|
* Transformations applied to the <G /> element are performed on its child elements, and its attributes are inherited by its children.
|
||||||
|
*/
|
||||||
|
export class G extends React.Component<React.PropsWithChildren<GProps>> {}
|
||||||
|
|
||||||
|
interface StopProps {
|
||||||
|
offset: string | number;
|
||||||
|
stopColor: string;
|
||||||
|
stopOpacity?: string | number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The SVG <Stop /> element defines a color and its position to use on a gradient. This element is always a child of a <LinearGradient /> or <RadialGradient /> element
|
||||||
|
*/
|
||||||
|
export class Stop extends React.Component<
|
||||||
|
React.PropsWithChildren<StopProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
// eslint-disable-next-line @typescript-eslint/no-empty-object-type
|
||||||
|
interface DefsProps {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Defs /> element is used to store graphical objects that will be used at a later time. Objects created inside a <Defs /> element are not rendered directly. To display them you have to reference them
|
||||||
|
*/
|
||||||
|
export class Defs extends React.Component<
|
||||||
|
React.PropsWithChildren<DefsProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface ClipPathProps {
|
||||||
|
id?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <ClipPath /> SVG element defines a clipping path, to be used by the clipPath property.
|
||||||
|
* A clipping path restricts the region to which paint can be applied. Conceptually, parts of the drawing that lie outside of the region bounded by the clipping path are not drawn.
|
||||||
|
*/
|
||||||
|
export class ClipPath extends React.Component<
|
||||||
|
React.PropsWithChildren<ClipPathProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface MarkerProps {
|
||||||
|
id: string;
|
||||||
|
viewBox?: string;
|
||||||
|
refX?: string | number;
|
||||||
|
refY?: string | number;
|
||||||
|
markerWidth?: string | number;
|
||||||
|
markerHeight?: string | number;
|
||||||
|
orient?: 'auto' | 'auto-start-reverse' | number;
|
||||||
|
markerUnits?: 'strokeWidth' | 'userSpaceOnUse';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Marker /> SVG element defines a graphic used for drawing arrows or polymarkers on a given <Path />, <Line />, <Polyline />, or <Polygon /> element.
|
||||||
|
* Markers can be attached to shapes using the markerStart, markerMid, and markerEnd properties.
|
||||||
|
*/
|
||||||
|
export class Marker extends React.Component<
|
||||||
|
React.PropsWithChildren<MarkerProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface LinearGradientProps {
|
||||||
|
id: string;
|
||||||
|
x1?: string | number;
|
||||||
|
x2?: string | number;
|
||||||
|
y1?: string | number;
|
||||||
|
y2?: string | number;
|
||||||
|
xlinkHref?: string;
|
||||||
|
gradientTransform?: string;
|
||||||
|
gradientUnits?: 'userSpaceOnUse' | 'objectBoundingBox';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <LinearGradient /> element lets authors define linear gradients that can be applied to fill or stroke of graphical elements.
|
||||||
|
*/
|
||||||
|
export class LinearGradient extends React.Component<
|
||||||
|
React.PropsWithChildren<LinearGradientProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface RadialGradientProps {
|
||||||
|
id: string;
|
||||||
|
cx?: string | number;
|
||||||
|
cy?: string | number;
|
||||||
|
r?: string | number;
|
||||||
|
fx?: string | number;
|
||||||
|
fy?: string | number;
|
||||||
|
xlinkHref?: string;
|
||||||
|
gradientTransform?: string;
|
||||||
|
gradientUnits?: 'userSpaceOnUse' | 'objectBoundingBox';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <RadialGradient /> element lets authors define radial gradients that can be applied to fill or stroke of graphical elements.
|
||||||
|
*/
|
||||||
|
export class RadialGradient extends React.Component<
|
||||||
|
React.PropsWithChildren<RadialGradientProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface BlobProviderParams {
|
||||||
|
blob: Blob | null;
|
||||||
|
url: string | null;
|
||||||
|
loading: boolean;
|
||||||
|
error: Error | null;
|
||||||
|
}
|
||||||
|
interface BlobProviderProps {
|
||||||
|
document: React.ReactElement<DocumentProps>;
|
||||||
|
children: (params: BlobProviderParams) => React.ReactNode;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Easy and declarative way of getting document's blob data without
|
||||||
|
* showing it on screen.
|
||||||
|
* @see https://react-pdf.org/advanced#on-the-fly-rendering
|
||||||
|
* @platform web
|
||||||
|
*/
|
||||||
|
export class BlobProvider extends React.Component<BlobProviderProps> {}
|
||||||
|
|
||||||
|
interface PDFViewerProps {
|
||||||
|
width?: number | string;
|
||||||
|
height?: number | string;
|
||||||
|
style?: Style | Style[];
|
||||||
|
className?: string;
|
||||||
|
children?: React.ReactElement<DocumentProps>;
|
||||||
|
innerRef?: React.Ref<HTMLIFrameElement>;
|
||||||
|
showToolbar?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Iframe PDF viewer for client-side generated documents.
|
||||||
|
* @platform web
|
||||||
|
*/
|
||||||
|
export class PDFViewer extends React.Component<PDFViewerProps> {}
|
||||||
|
|
||||||
|
interface PDFDownloadLinkProps
|
||||||
|
extends Omit<
|
||||||
|
React.AnchorHTMLAttributes<HTMLAnchorElement>,
|
||||||
|
'href' | 'children'
|
||||||
|
> {
|
||||||
|
/** PDF filename. Alias for anchor tag `download` attribute. */
|
||||||
|
fileName?: string;
|
||||||
|
document: React.ReactElement<DocumentProps>;
|
||||||
|
children?: React.ReactNode | React.FC<BlobProviderParams>;
|
||||||
|
onClick?: React.AnchorHTMLAttributes<HTMLAnchorElement>['onClick'] &
|
||||||
|
((
|
||||||
|
event: React.MouseEvent<HTMLAnchorElement, MouseEvent>,
|
||||||
|
instance: UsePDFInstance,
|
||||||
|
) => void);
|
||||||
|
ref?: React.Ref<HTMLAnchorElement> | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Anchor tag to enable generate and download PDF documents on the fly.
|
||||||
|
* @see https://react-pdf.org/advanced#on-the-fly-rendering
|
||||||
|
* @platform web
|
||||||
|
*/
|
||||||
|
export class PDFDownloadLink extends React.Component<PDFDownloadLinkProps> {}
|
||||||
|
|
||||||
|
interface UsePDFInstance {
|
||||||
|
loading: boolean;
|
||||||
|
blob: Blob | null;
|
||||||
|
url: string | null;
|
||||||
|
error: string | null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* React hook for creating and updating a PDF document instance
|
||||||
|
* @platform web
|
||||||
|
*/
|
||||||
|
export function usePDF(options?: {
|
||||||
|
document?: React.ReactElement<DocumentProps>;
|
||||||
|
}): [
|
||||||
|
UsePDFInstance,
|
||||||
|
(newDocument: React.ReactElement<DocumentProps>) => void,
|
||||||
|
];
|
||||||
|
|
||||||
|
export const Font: FontStore;
|
||||||
|
|
||||||
|
export const StyleSheet: {
|
||||||
|
create: <T extends Styles>(styles: T) => T;
|
||||||
|
};
|
||||||
|
|
||||||
|
export const version: any;
|
||||||
|
|
||||||
|
export const PDFRenderer: any;
|
||||||
|
|
||||||
|
export const pdf: (initialValue?: React.ReactElement<DocumentProps>) => {
|
||||||
|
container: any;
|
||||||
|
isDirty: () => boolean;
|
||||||
|
toString: () => string;
|
||||||
|
toBlob: () => Promise<Blob>;
|
||||||
|
toBuffer: () => Promise<NodeJS.ReadableStream>;
|
||||||
|
on: (event: 'change', callback: () => void) => void;
|
||||||
|
updateContainer: (
|
||||||
|
document: React.ReactElement<any>,
|
||||||
|
callback?: () => void,
|
||||||
|
) => void;
|
||||||
|
removeListener: (event: 'change', callback: () => void) => void;
|
||||||
|
};
|
||||||
|
|
||||||
|
export const renderToStream: (
|
||||||
|
document: React.ReactElement<DocumentProps>,
|
||||||
|
) => Promise<NodeJS.ReadableStream>;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated use the `renderToBuffer` method
|
||||||
|
*/
|
||||||
|
export const renderToString: (
|
||||||
|
document: React.ReactElement<DocumentProps>,
|
||||||
|
) => Promise<string>;
|
||||||
|
|
||||||
|
export const renderToFile: (
|
||||||
|
document: React.ReactElement<DocumentProps>,
|
||||||
|
filePath: string,
|
||||||
|
callback?: (output: NodeJS.ReadableStream, _filePath: string) => any,
|
||||||
|
) => Promise<NodeJS.ReadableStream>;
|
||||||
|
|
||||||
|
const render: typeof renderToFile;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Render document into a nodejs buffer
|
||||||
|
* @platform node
|
||||||
|
*/
|
||||||
|
export const renderToBuffer: (
|
||||||
|
document: React.ReactElement<ReactPDF.DocumentProps>,
|
||||||
|
) => Promise<Buffer>;
|
||||||
|
}
|
||||||
793
build_temp/.next/node_modules/@react-pdf/renderer-5f716e9bc7d68b8a/lib/react-pdf.min.d.ts
generated
vendored
Normal file
793
build_temp/.next/node_modules/@react-pdf/renderer-5f716e9bc7d68b8a/lib/react-pdf.min.d.ts
generated
vendored
Normal file
@@ -0,0 +1,793 @@
|
|||||||
|
/* eslint-disable max-classes-per-file */
|
||||||
|
|
||||||
|
import * as React from 'react';
|
||||||
|
import {
|
||||||
|
Style,
|
||||||
|
PageSize,
|
||||||
|
FontStore,
|
||||||
|
PDFVersion,
|
||||||
|
Orientation,
|
||||||
|
SourceObject,
|
||||||
|
SrcSet,
|
||||||
|
Sizes,
|
||||||
|
HyphenationCallback,
|
||||||
|
SVGPresentationAttributes,
|
||||||
|
Bookmark,
|
||||||
|
PageLayout,
|
||||||
|
PageMode,
|
||||||
|
HitSlop,
|
||||||
|
} from '@react-pdf/types';
|
||||||
|
|
||||||
|
declare class ReactPDF {
|
||||||
|
static default: typeof ReactPDF;
|
||||||
|
}
|
||||||
|
|
||||||
|
export = ReactPDF;
|
||||||
|
|
||||||
|
declare namespace ReactPDF {
|
||||||
|
interface Styles {
|
||||||
|
[key: string]: Style;
|
||||||
|
}
|
||||||
|
interface OnRenderProps {
|
||||||
|
blob?: Blob;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Permissions {
|
||||||
|
printing?: 'lowResolution' | 'highResolution';
|
||||||
|
modifying?: boolean;
|
||||||
|
copying?: boolean;
|
||||||
|
annotating?: boolean;
|
||||||
|
fillingForms?: boolean;
|
||||||
|
contentAccessibility?: boolean;
|
||||||
|
documentAssembly?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface DocumentProps {
|
||||||
|
style?: Style | Style[];
|
||||||
|
title?: string;
|
||||||
|
author?: string;
|
||||||
|
subject?: string;
|
||||||
|
creator?: string;
|
||||||
|
keywords?: string;
|
||||||
|
producer?: string;
|
||||||
|
language?: string;
|
||||||
|
creationDate?: Date;
|
||||||
|
modificationDate?: Date;
|
||||||
|
pdfVersion?: PDFVersion;
|
||||||
|
pageMode?: PageMode;
|
||||||
|
pageLayout?: PageLayout;
|
||||||
|
ownerPassword?: string;
|
||||||
|
userPassword?: string;
|
||||||
|
permissions?: Permissions;
|
||||||
|
onRender?: (props: OnRenderProps) => any;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This component represent the PDF document itself. It must be the root
|
||||||
|
* of your tree element structure, and under no circumstances should it be
|
||||||
|
* used as children of another react-pdf component. In addition, it should
|
||||||
|
* only have childs of type <Page />.
|
||||||
|
*/
|
||||||
|
export class Document extends React.Component<
|
||||||
|
React.PropsWithChildren<DocumentProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface NodeProps {
|
||||||
|
id?: string;
|
||||||
|
style?: Style | Style[];
|
||||||
|
/**
|
||||||
|
* Render component in all wrapped pages.
|
||||||
|
* @see https://react-pdf.org/advanced#fixed-components
|
||||||
|
*/
|
||||||
|
fixed?: boolean;
|
||||||
|
/**
|
||||||
|
* Force the wrapping algorithm to start a new page when rendering the
|
||||||
|
* element.
|
||||||
|
* @see https://react-pdf.org/advanced#page-breaks
|
||||||
|
*/
|
||||||
|
break?: boolean;
|
||||||
|
/**
|
||||||
|
* Hint that no page wrapping should occur between all sibling elements following the element within n points
|
||||||
|
* @see https://react-pdf.org/advanced#orphan-&-widow-protection
|
||||||
|
*/
|
||||||
|
minPresenceAhead?: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface PageProps extends NodeProps {
|
||||||
|
/**
|
||||||
|
* Enable page wrapping for this page.
|
||||||
|
* @see https://react-pdf.org/components#page-wrapping
|
||||||
|
*/
|
||||||
|
wrap?: boolean;
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
size?: PageSize;
|
||||||
|
orientation?: Orientation;
|
||||||
|
dpi?: number;
|
||||||
|
bookmark?: Bookmark;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents single page inside the PDF document, or a subset of them if
|
||||||
|
* using the wrapping feature. A <Document /> can contain as many pages as
|
||||||
|
* you want, but ensure not rendering a page inside any component besides
|
||||||
|
* Document.
|
||||||
|
*/
|
||||||
|
export class Page extends React.Component<
|
||||||
|
React.PropsWithChildren<PageProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface ViewProps extends NodeProps {
|
||||||
|
id?: string;
|
||||||
|
/**
|
||||||
|
* Enable/disable page wrapping for element.
|
||||||
|
* @see https://react-pdf.org/components#page-wrapping
|
||||||
|
*/
|
||||||
|
wrap?: boolean;
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
render?: (props: {
|
||||||
|
pageNumber: number;
|
||||||
|
subPageNumber: number;
|
||||||
|
}) => React.ReactNode;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The most fundamental component for building a UI and is designed to be
|
||||||
|
* nested inside other views and can have 0 to many children.
|
||||||
|
*/
|
||||||
|
export class View extends React.Component<
|
||||||
|
React.PropsWithChildren<ViewProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface BaseImageProps extends NodeProps {
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
cache?: boolean;
|
||||||
|
/**
|
||||||
|
* A comma-separated list of image sources with width descriptors.
|
||||||
|
* Works like the HTML img srcSet attribute.
|
||||||
|
* @example "small.jpg 300w, medium.jpg 600w, large.jpg 900w"
|
||||||
|
*/
|
||||||
|
srcSet?: SrcSet;
|
||||||
|
/**
|
||||||
|
* The intended display width of the image, used to select the best source
|
||||||
|
* from srcSet. Accepts a number (in points) or a string.
|
||||||
|
* Works like the HTML img sizes attribute.
|
||||||
|
* @example 300
|
||||||
|
* @example "300"
|
||||||
|
*/
|
||||||
|
sizes?: Sizes;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ImageWithSrcProp extends BaseImageProps {
|
||||||
|
src: SourceObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ImageWithSourceProp extends BaseImageProps {
|
||||||
|
source: SourceObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
type ImageProps = ImageWithSrcProp | ImageWithSourceProp;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A React component for displaying network or local (Node only) JPG or
|
||||||
|
* PNG images, as well as base64 encoded image strings.
|
||||||
|
*/
|
||||||
|
export class Image extends React.Component<ImageProps> {}
|
||||||
|
|
||||||
|
interface BaseImageBackgroundProps extends NodeProps {
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
cache?: boolean;
|
||||||
|
/**
|
||||||
|
* A comma-separated list of image sources with width descriptors.
|
||||||
|
* Works like the HTML img srcSet attribute.
|
||||||
|
* @example "small.jpg 300w, medium.jpg 600w, large.jpg 900w"
|
||||||
|
*/
|
||||||
|
srcSet?: SrcSet;
|
||||||
|
/**
|
||||||
|
* The intended display width of the image, used to select the best source
|
||||||
|
* from srcSet. Accepts a number (in points) or a string.
|
||||||
|
* @example 300
|
||||||
|
*/
|
||||||
|
sizes?: Sizes;
|
||||||
|
/**
|
||||||
|
* Style applied to the background image.
|
||||||
|
*/
|
||||||
|
imageStyle?: Style;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ImageBackgroundWithSrcProp extends BaseImageBackgroundProps {
|
||||||
|
src: SourceObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ImageBackgroundWithSourceProp extends BaseImageBackgroundProps {
|
||||||
|
source: SourceObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
type ImageBackgroundProps =
|
||||||
|
| ImageBackgroundWithSrcProp
|
||||||
|
| ImageBackgroundWithSourceProp;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A React component for displaying an image behind child content.
|
||||||
|
* Compatible with React Native's ImageBackground component.
|
||||||
|
* @see https://reactnative.dev/docs/imagebackground
|
||||||
|
*/
|
||||||
|
export class ImageBackground extends React.Component<
|
||||||
|
React.PropsWithChildren<ImageBackgroundProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface TextProps extends NodeProps {
|
||||||
|
id?: string;
|
||||||
|
/**
|
||||||
|
* Enable/disable page wrapping for element.
|
||||||
|
* @see https://react-pdf.org/components#page-wrapping
|
||||||
|
*/
|
||||||
|
wrap?: boolean;
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
render?: (props: {
|
||||||
|
pageNumber: number;
|
||||||
|
totalPages: number;
|
||||||
|
subPageNumber: number;
|
||||||
|
subPageTotalPages: number;
|
||||||
|
}) => React.ReactNode;
|
||||||
|
/**
|
||||||
|
* Override the default hyphenation-callback
|
||||||
|
* @see https://react-pdf.org/fonts#registerhyphenationcallback
|
||||||
|
*/
|
||||||
|
hyphenationCallback?: HyphenationCallback;
|
||||||
|
/**
|
||||||
|
* Specifies the minimum number of lines in a text element that must be shown at the bottom of a page or its container.
|
||||||
|
* @see https://react-pdf.org/advanced#orphan-&-widow-protection
|
||||||
|
*/
|
||||||
|
orphans?: number;
|
||||||
|
/**
|
||||||
|
* Specifies the minimum number of lines in a text element that must be shown at the top of a page or its container..
|
||||||
|
* @see https://react-pdf.org/advanced#orphan-&-widow-protection
|
||||||
|
*/
|
||||||
|
widows?: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface SVGTextProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
x: string | number;
|
||||||
|
y: string | number;
|
||||||
|
/**
|
||||||
|
* Override the default hyphenation-callback
|
||||||
|
* @see https://react-pdf.org/fonts#registerhyphenationcallback
|
||||||
|
*/
|
||||||
|
hyphenationCallback?: HyphenationCallback;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A React component for displaying text. Text supports nesting of other
|
||||||
|
* Text or Link components to create inline styling.
|
||||||
|
*/
|
||||||
|
export class Text extends React.Component<
|
||||||
|
React.PropsWithChildren<TextProps> | SVGTextProps
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface LinkProps extends NodeProps {
|
||||||
|
/**
|
||||||
|
* Enable/disable page wrapping for element.
|
||||||
|
* @see https://react-pdf.org/components#page-wrapping
|
||||||
|
*/
|
||||||
|
wrap?: boolean;
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
href?: string;
|
||||||
|
src?: string;
|
||||||
|
/**
|
||||||
|
* Extends the clickable area of the link beyond its visible bounds.
|
||||||
|
* Accepts a number (applied to all sides) or an object with top, bottom, left, right.
|
||||||
|
* @see https://reactnative.dev/docs/view#hitslop
|
||||||
|
*/
|
||||||
|
hitSlop?: HitSlop;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A React component for displaying a hyperlink. Link’s can be nested
|
||||||
|
* inside a Text component, or being inside any other valid primitive.
|
||||||
|
*/
|
||||||
|
export class Link extends React.Component<
|
||||||
|
React.PropsWithChildren<LinkProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface FormCommonProps extends NodeProps {
|
||||||
|
name?: string;
|
||||||
|
required?: boolean;
|
||||||
|
noExport?: boolean;
|
||||||
|
readOnly?: boolean;
|
||||||
|
value?: number | string;
|
||||||
|
defaultValue?: number | string;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface FieldSetProps extends NodeProps {
|
||||||
|
name: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export class FieldSet extends React.Component<
|
||||||
|
React.PropsWithChildren<FieldSetProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
// see http://pdfkit.org/docs/forms.html#text_field_formatting
|
||||||
|
interface TextInputFormatting {
|
||||||
|
type:
|
||||||
|
| 'date'
|
||||||
|
| 'time'
|
||||||
|
| 'percent'
|
||||||
|
| 'number'
|
||||||
|
| 'zip'
|
||||||
|
| 'zipPlus4'
|
||||||
|
| 'phone'
|
||||||
|
| 'ssn';
|
||||||
|
param?: string;
|
||||||
|
nDec?: number;
|
||||||
|
sepComma?: boolean;
|
||||||
|
negStyle?: 'MinusBlack' | 'Red' | 'ParensBlack' | 'ParensRed';
|
||||||
|
currency?: string;
|
||||||
|
currencyPrepend?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
// see http://pdfkit.org/docs/forms.html#text_field_formatting
|
||||||
|
interface TextInputProps extends FormCommonProps {
|
||||||
|
align?: 'left' | 'center' | 'right';
|
||||||
|
multiline?: boolean;
|
||||||
|
/**
|
||||||
|
* The text will be masked (e.g. with asterisks).
|
||||||
|
*/
|
||||||
|
password?: boolean;
|
||||||
|
/**
|
||||||
|
* If set, text entered in the field is not spell-checked
|
||||||
|
*/
|
||||||
|
noSpell?: boolean;
|
||||||
|
format?: TextInputFormatting;
|
||||||
|
/**
|
||||||
|
* Sets the fontSize (default or 0 means auto sizing)
|
||||||
|
*/
|
||||||
|
fontSize?: number;
|
||||||
|
/**
|
||||||
|
* Sets the maximum length (characters) of the text in the field
|
||||||
|
*/
|
||||||
|
maxLength?: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
export class TextInput extends React.Component<TextInputProps> {}
|
||||||
|
|
||||||
|
interface CheckboxProps extends FormCommonProps {
|
||||||
|
backgroundColor?: string;
|
||||||
|
borderColor?: string;
|
||||||
|
checked?: boolean;
|
||||||
|
onState?: string;
|
||||||
|
offState?: string;
|
||||||
|
xMark?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
export class Checkbox extends React.Component<CheckboxProps> {}
|
||||||
|
|
||||||
|
interface SelectAndListPropsBase extends FormCommonProps {
|
||||||
|
sort?: boolean;
|
||||||
|
edit?: boolean;
|
||||||
|
multiSelect?: boolean;
|
||||||
|
noSpell?: boolean;
|
||||||
|
select?: string[];
|
||||||
|
}
|
||||||
|
|
||||||
|
type SelectAndListPropsWithEdit = SelectAndListPropsBase & {
|
||||||
|
edit: true | false;
|
||||||
|
noSpell: boolean;
|
||||||
|
};
|
||||||
|
|
||||||
|
type SelectAndListPropsWithNoSpell = SelectAndListPropsBase & {
|
||||||
|
edit: boolean;
|
||||||
|
noSpell: true | false;
|
||||||
|
};
|
||||||
|
|
||||||
|
type SelectAndListProps =
|
||||||
|
| SelectAndListPropsWithEdit
|
||||||
|
| SelectAndListPropsWithNoSpell;
|
||||||
|
|
||||||
|
export class Select extends React.Component<SelectAndListProps> {}
|
||||||
|
|
||||||
|
export class List extends React.Component<SelectAndListProps> {}
|
||||||
|
|
||||||
|
interface NoteProps extends NodeProps {
|
||||||
|
children: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export class Note extends React.Component<NoteProps> {}
|
||||||
|
|
||||||
|
interface CanvasProps extends NodeProps {
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
paint: (
|
||||||
|
painter: any,
|
||||||
|
availableWidth: number,
|
||||||
|
availableHeight: number,
|
||||||
|
) => null;
|
||||||
|
}
|
||||||
|
|
||||||
|
export class Canvas extends React.Component<CanvasProps> {}
|
||||||
|
|
||||||
|
interface SVGProps extends NodeProps, SVGPresentationAttributes {
|
||||||
|
/**
|
||||||
|
* Enables debug mode on page bounding box.
|
||||||
|
* @see https://react-pdf.org/advanced#debugging
|
||||||
|
*/
|
||||||
|
debug?: boolean;
|
||||||
|
width?: string | number;
|
||||||
|
height?: string | number;
|
||||||
|
viewBox?: string;
|
||||||
|
preserveAspectRatio?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <SVG /> element is a container that defines a new coordinate system and viewport. It is used as the outermost element of SVG documents.
|
||||||
|
*/
|
||||||
|
export class Svg extends React.Component<React.PropsWithChildren<SVGProps>> {}
|
||||||
|
|
||||||
|
interface LineProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
x1: string | number;
|
||||||
|
x2: string | number;
|
||||||
|
y1: string | number;
|
||||||
|
y2: string | number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Line /> element is used to create a line.
|
||||||
|
*/
|
||||||
|
export class Line extends React.Component<
|
||||||
|
React.PropsWithChildren<LineProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface PolylineProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
points: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Polyline /> element is used to create any shape that consists of only straight lines (that is connected at several points).
|
||||||
|
*/
|
||||||
|
export class Polyline extends React.Component<
|
||||||
|
React.PropsWithChildren<PolylineProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface PolygonProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
points: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Polygon /> element is used to create a graphic that contains at least three sides.
|
||||||
|
* Polygons are made of straight lines, and the shape is "closed" (all the lines connect up).
|
||||||
|
*/
|
||||||
|
export class Polygon extends React.Component<
|
||||||
|
React.PropsWithChildren<PolygonProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface PathProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
d: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Path /> element is the most powerful element in the SVG library of basic shapes. It can be used to create lines, curves, arcs, and more.
|
||||||
|
*/
|
||||||
|
export class Path extends React.Component<
|
||||||
|
React.PropsWithChildren<PathProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface RectProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
x?: string | number;
|
||||||
|
y?: string | number;
|
||||||
|
width: string | number;
|
||||||
|
height: string | number;
|
||||||
|
rx?: string | number;
|
||||||
|
ry?: string | number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Rect /> element is used to create a rectangle and variations of a rectangle shape.
|
||||||
|
*/
|
||||||
|
export class Rect extends React.Component<
|
||||||
|
React.PropsWithChildren<RectProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface CircleProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
cx?: string | number;
|
||||||
|
cy?: string | number;
|
||||||
|
r: string | number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Circle /> element is used to create a circle.
|
||||||
|
*/
|
||||||
|
export class Circle extends React.Component<
|
||||||
|
React.PropsWithChildren<CircleProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface EllipseProps extends SVGPresentationAttributes {
|
||||||
|
style?: SVGPresentationAttributes;
|
||||||
|
cx?: string | number;
|
||||||
|
cy?: string | number;
|
||||||
|
rx: string | number;
|
||||||
|
ry: string | number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Ellipse /> element is used to create an ellipse.
|
||||||
|
* An ellipse is closely related to a circle. The difference is that an ellipse has an x and a y radius that differs from each other, while a circle has equal x and y radius.
|
||||||
|
*/
|
||||||
|
export class Ellipse extends React.Component<
|
||||||
|
React.PropsWithChildren<EllipseProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface TspanProps extends SVGPresentationAttributes {
|
||||||
|
x?: string | number;
|
||||||
|
y?: string | number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Tspan /> element defines a subtext within a <Text /> element or another <Tspan /> element.
|
||||||
|
* It allows for adjustment of the style and/or position of that subtext as needed.
|
||||||
|
*/
|
||||||
|
export class Tspan extends React.Component<
|
||||||
|
React.PropsWithChildren<TspanProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface GProps extends SVGPresentationAttributes {
|
||||||
|
style?: Style;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <G /> SVG element is a container used to group other SVG elements.
|
||||||
|
* Transformations applied to the <G /> element are performed on its child elements, and its attributes are inherited by its children.
|
||||||
|
*/
|
||||||
|
export class G extends React.Component<React.PropsWithChildren<GProps>> {}
|
||||||
|
|
||||||
|
interface StopProps {
|
||||||
|
offset: string | number;
|
||||||
|
stopColor: string;
|
||||||
|
stopOpacity?: string | number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The SVG <Stop /> element defines a color and its position to use on a gradient. This element is always a child of a <LinearGradient /> or <RadialGradient /> element
|
||||||
|
*/
|
||||||
|
export class Stop extends React.Component<
|
||||||
|
React.PropsWithChildren<StopProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
// eslint-disable-next-line @typescript-eslint/no-empty-object-type
|
||||||
|
interface DefsProps {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Defs /> element is used to store graphical objects that will be used at a later time. Objects created inside a <Defs /> element are not rendered directly. To display them you have to reference them
|
||||||
|
*/
|
||||||
|
export class Defs extends React.Component<
|
||||||
|
React.PropsWithChildren<DefsProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface ClipPathProps {
|
||||||
|
id?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <ClipPath /> SVG element defines a clipping path, to be used by the clipPath property.
|
||||||
|
* A clipping path restricts the region to which paint can be applied. Conceptually, parts of the drawing that lie outside of the region bounded by the clipping path are not drawn.
|
||||||
|
*/
|
||||||
|
export class ClipPath extends React.Component<
|
||||||
|
React.PropsWithChildren<ClipPathProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface MarkerProps {
|
||||||
|
id: string;
|
||||||
|
viewBox?: string;
|
||||||
|
refX?: string | number;
|
||||||
|
refY?: string | number;
|
||||||
|
markerWidth?: string | number;
|
||||||
|
markerHeight?: string | number;
|
||||||
|
orient?: 'auto' | 'auto-start-reverse' | number;
|
||||||
|
markerUnits?: 'strokeWidth' | 'userSpaceOnUse';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <Marker /> SVG element defines a graphic used for drawing arrows or polymarkers on a given <Path />, <Line />, <Polyline />, or <Polygon /> element.
|
||||||
|
* Markers can be attached to shapes using the markerStart, markerMid, and markerEnd properties.
|
||||||
|
*/
|
||||||
|
export class Marker extends React.Component<
|
||||||
|
React.PropsWithChildren<MarkerProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface LinearGradientProps {
|
||||||
|
id: string;
|
||||||
|
x1?: string | number;
|
||||||
|
x2?: string | number;
|
||||||
|
y1?: string | number;
|
||||||
|
y2?: string | number;
|
||||||
|
xlinkHref?: string;
|
||||||
|
gradientTransform?: string;
|
||||||
|
gradientUnits?: 'userSpaceOnUse' | 'objectBoundingBox';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <LinearGradient /> element lets authors define linear gradients that can be applied to fill or stroke of graphical elements.
|
||||||
|
*/
|
||||||
|
export class LinearGradient extends React.Component<
|
||||||
|
React.PropsWithChildren<LinearGradientProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface RadialGradientProps {
|
||||||
|
id: string;
|
||||||
|
cx?: string | number;
|
||||||
|
cy?: string | number;
|
||||||
|
r?: string | number;
|
||||||
|
fx?: string | number;
|
||||||
|
fy?: string | number;
|
||||||
|
xlinkHref?: string;
|
||||||
|
gradientTransform?: string;
|
||||||
|
gradientUnits?: 'userSpaceOnUse' | 'objectBoundingBox';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <RadialGradient /> element lets authors define radial gradients that can be applied to fill or stroke of graphical elements.
|
||||||
|
*/
|
||||||
|
export class RadialGradient extends React.Component<
|
||||||
|
React.PropsWithChildren<RadialGradientProps>
|
||||||
|
> {}
|
||||||
|
|
||||||
|
interface BlobProviderParams {
|
||||||
|
blob: Blob | null;
|
||||||
|
url: string | null;
|
||||||
|
loading: boolean;
|
||||||
|
error: Error | null;
|
||||||
|
}
|
||||||
|
interface BlobProviderProps {
|
||||||
|
document: React.ReactElement<DocumentProps>;
|
||||||
|
children: (params: BlobProviderParams) => React.ReactNode;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Easy and declarative way of getting document's blob data without
|
||||||
|
* showing it on screen.
|
||||||
|
* @see https://react-pdf.org/advanced#on-the-fly-rendering
|
||||||
|
* @platform web
|
||||||
|
*/
|
||||||
|
export class BlobProvider extends React.Component<BlobProviderProps> {}
|
||||||
|
|
||||||
|
interface PDFViewerProps {
|
||||||
|
width?: number | string;
|
||||||
|
height?: number | string;
|
||||||
|
style?: Style | Style[];
|
||||||
|
className?: string;
|
||||||
|
children?: React.ReactElement<DocumentProps>;
|
||||||
|
innerRef?: React.Ref<HTMLIFrameElement>;
|
||||||
|
showToolbar?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Iframe PDF viewer for client-side generated documents.
|
||||||
|
* @platform web
|
||||||
|
*/
|
||||||
|
export class PDFViewer extends React.Component<PDFViewerProps> {}
|
||||||
|
|
||||||
|
interface PDFDownloadLinkProps
|
||||||
|
extends Omit<
|
||||||
|
React.AnchorHTMLAttributes<HTMLAnchorElement>,
|
||||||
|
'href' | 'children'
|
||||||
|
> {
|
||||||
|
/** PDF filename. Alias for anchor tag `download` attribute. */
|
||||||
|
fileName?: string;
|
||||||
|
document: React.ReactElement<DocumentProps>;
|
||||||
|
children?: React.ReactNode | React.FC<BlobProviderParams>;
|
||||||
|
onClick?: React.AnchorHTMLAttributes<HTMLAnchorElement>['onClick'] &
|
||||||
|
((
|
||||||
|
event: React.MouseEvent<HTMLAnchorElement, MouseEvent>,
|
||||||
|
instance: UsePDFInstance,
|
||||||
|
) => void);
|
||||||
|
ref?: React.Ref<HTMLAnchorElement> | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Anchor tag to enable generate and download PDF documents on the fly.
|
||||||
|
* @see https://react-pdf.org/advanced#on-the-fly-rendering
|
||||||
|
* @platform web
|
||||||
|
*/
|
||||||
|
export class PDFDownloadLink extends React.Component<PDFDownloadLinkProps> {}
|
||||||
|
|
||||||
|
interface UsePDFInstance {
|
||||||
|
loading: boolean;
|
||||||
|
blob: Blob | null;
|
||||||
|
url: string | null;
|
||||||
|
error: string | null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* React hook for creating and updating a PDF document instance
|
||||||
|
* @platform web
|
||||||
|
*/
|
||||||
|
export function usePDF(options?: {
|
||||||
|
document?: React.ReactElement<DocumentProps>;
|
||||||
|
}): [
|
||||||
|
UsePDFInstance,
|
||||||
|
(newDocument: React.ReactElement<DocumentProps>) => void,
|
||||||
|
];
|
||||||
|
|
||||||
|
export const Font: FontStore;
|
||||||
|
|
||||||
|
export const StyleSheet: {
|
||||||
|
create: <T extends Styles>(styles: T) => T;
|
||||||
|
};
|
||||||
|
|
||||||
|
export const version: any;
|
||||||
|
|
||||||
|
export const PDFRenderer: any;
|
||||||
|
|
||||||
|
export const pdf: (initialValue?: React.ReactElement<DocumentProps>) => {
|
||||||
|
container: any;
|
||||||
|
isDirty: () => boolean;
|
||||||
|
toString: () => string;
|
||||||
|
toBlob: () => Promise<Blob>;
|
||||||
|
toBuffer: () => Promise<NodeJS.ReadableStream>;
|
||||||
|
on: (event: 'change', callback: () => void) => void;
|
||||||
|
updateContainer: (
|
||||||
|
document: React.ReactElement<any>,
|
||||||
|
callback?: () => void,
|
||||||
|
) => void;
|
||||||
|
removeListener: (event: 'change', callback: () => void) => void;
|
||||||
|
};
|
||||||
|
|
||||||
|
export const renderToStream: (
|
||||||
|
document: React.ReactElement<DocumentProps>,
|
||||||
|
) => Promise<NodeJS.ReadableStream>;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated use the `renderToBuffer` method
|
||||||
|
*/
|
||||||
|
export const renderToString: (
|
||||||
|
document: React.ReactElement<DocumentProps>,
|
||||||
|
) => Promise<string>;
|
||||||
|
|
||||||
|
export const renderToFile: (
|
||||||
|
document: React.ReactElement<DocumentProps>,
|
||||||
|
filePath: string,
|
||||||
|
callback?: (output: NodeJS.ReadableStream, _filePath: string) => any,
|
||||||
|
) => Promise<NodeJS.ReadableStream>;
|
||||||
|
|
||||||
|
const render: typeof renderToFile;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Render document into a nodejs buffer
|
||||||
|
* @platform node
|
||||||
|
*/
|
||||||
|
export const renderToBuffer: (
|
||||||
|
document: React.ReactElement<ReactPDF.DocumentProps>,
|
||||||
|
) => Promise<Buffer>;
|
||||||
|
}
|
||||||
1
build_temp/.next/node_modules/@react-pdf/renderer-5f716e9bc7d68b8a/lib/react-pdf.min.js
generated
vendored
Normal file
1
build_temp/.next/node_modules/@react-pdf/renderer-5f716e9bc7d68b8a/lib/react-pdf.min.js
generated
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
import*as e from"@react-pdf/primitives";export*from"@react-pdf/primitives";import r from"fs";import{Buffer as t}from"buffer";import o from"@react-pdf/font";import n from"@react-pdf/render";import i from"@react-pdf/pdfkit";import a from"@react-pdf/layout";import{upperFirst as s}from"@react-pdf/fns";import d from"@react-pdf/reconciler";const c=(e,r)=>{let{style:t,children:o,...n}=r;return{type:e,box:{},style:t||{},props:n||{},children:[]}},p=e=>({type:"TEXT_INSTANCE",value:e}),l=(e,r)=>{const t="TEXT"===e.type||"LINK"===e.type||"TSPAN"===e.type||"NOTE"===e.type;"TEXT_INSTANCE"!==r.type||t?e.children.push(r):console.warn(`Invalid '${r.value}' string child outside <Text> component`)},u=(e,r)=>{"ROOT"===e.type?e.document=r:l(e,r)},f=(e,r,t)=>{var o;const n=null===(o=e.children)||void 0===o?void 0:o.indexOf(t);void 0!==n&&-1!==n&&r&&e.children.splice(n,0,r)},m=(e,r)=>{var t;const o=null===(t=e.children)||void 0===t?void 0:t.indexOf(r);void 0!==o&&-1!==o&&e.children.splice(o,1)},v=(e,r)=>{var t;const o=null===(t=e.children)||void 0===t?void 0:t.indexOf(r);void 0!==o&&-1!==o&&e.children.splice(o,1)},w=(e,r,t)=>{e.value=t},y=(e,r,t,o,n)=>{const{style:i,...a}=n;e.props=a,e.style=i},h=e=>{let{onChange:r=(()=>{})}=e;return d({appendChild:l,appendChildToContainer:u,commitTextUpdate:w,commitUpdate:y,createInstance:c,createTextInstance:p,insertBefore:f,removeChild:m,removeChildFromContainer:v,resetAfterCommit:r})};var T={version:"4.5.1"};const{version:P}=T,g=new o;let b;const D={},S=e=>{const r={type:"ROOT",document:null};b=b||h({onChange:()=>{var e;const r=(null===(e=D.change)||void 0===e?void 0:e.slice())||[];for(let e=0;e<r.length;e+=1)r[e]()}});const t=b.createContainer(r),o=(e,r)=>{b.updateContainer(e,t,null,r)};e&&o(e);const d=async function(e){void 0===e&&(e=!0);const t=r.document.props||{},{pdfVersion:o,language:d,pageLayout:c,pageMode:p,title:l,author:u,subject:f,keywords:m,creator:v="react-pdf",producer:w="react-pdf",creationDate:y=new Date,modificationDate:h,ownerPassword:T,userPassword:P,permissions:b}=t,D=new i({compress:e,pdfVersion:o,lang:d,displayTitle:!0,autoFirstPage:!1,ownerPassword:T,userPassword:P,permissions:b,pageLayout:c,info:(S={Title:l,Author:u,Subject:f,Keywords:m,Creator:v,Producer:w,CreationDate:y,ModificationDate:h},Object.fromEntries(Object.entries(S).filter((e=>{let[,r]=e;return void 0!==r}))))});var S;p&&(D._root.data.PageMode=s(p));const _=await a(r.document,g);return{layout:_,fileStream:n(D,_)}},c=function(e){void 0===e&&(e={}),r.document.props.onRender&&r.document.props.onRender(e)};return{on:(e,r)=>{D[e]||(D[e]=[]),D[e].push(r)},container:r,toBlob:async()=>{const e=[],{layout:r,fileStream:t}=await d();return new Promise(((o,n)=>{t.on("data",(r=>{e.push(r instanceof Uint8Array?r:new Uint8Array(r))})),t.on("end",(()=>{try{const t=new Blob(e,{type:"application/pdf"});c({blob:t,_INTERNAL__LAYOUT__DATA_:r}),o(t)}catch(e){n(e)}}))}))},toBuffer:async()=>{const{layout:e,fileStream:r}=await d();return c({_INTERNAL__LAYOUT__DATA_:e}),r},toString:async()=>{"development"===process.env.NODE_ENV&&console.warn("`toString` is deprecated and will be removed in next major release");let e="";const{fileStream:r}=await d(!1);return new Promise(((t,o)=>{try{r.on("data",(r=>{e+=r})),r.on("end",(()=>{c(),t(e)}))}catch(e){o(e)}}))},removeListener:(e,r)=>{if(!D[e])return;const t=D[e].indexOf(r);t>-1&&D[e].splice(t,1)},updateContainer:o}},_=g,A={create:e=>e},C=async e=>{const r=S(e);return await r.toBuffer()},N=async(e,t,o)=>{const n=await C(e),i=r.createWriteStream(t);return n.pipe(i),new Promise(((e,r)=>{i.on("finish",(()=>{o&&o(n,t),e(n)})),i.on("error",r)}))},O=e=>C(e).then((e=>new Promise(((r,o)=>{const n=[];e.on("data",(e=>n.push(e))),e.on("end",(()=>r(t.concat(n)))),e.on("error",(e=>o(e)))})))),E=e=>("development"===process.env.NODE_ENV&&console.warn("`renderToString` is deprecated and will be removed in next major release, use `renderToBuffer` instead"),O(e).then((e=>e.toString()))),x=e=>{throw new Error(`${e} is a web specific API. You're either using this component on Node, or your bundler is not loading react-pdf from the appropriate web build.`)},F=()=>{x("usePDF")},L=()=>{x("PDFViewer")},I=()=>{x("PDFDownloadLink")},B=()=>{x("BlobProvider")},j=N;var R={pdf:S,Font:_,version:P,StyleSheet:A,usePDF:F,PDFViewer:L,BlobProvider:B,PDFDownloadLink:I,renderToStream:C,renderToString:E,renderToFile:N,render:j,...e};export{B as BlobProvider,_ as Font,I as PDFDownloadLink,L as PDFViewer,A as StyleSheet,h as createRenderer,R as default,S as pdf,j as render,O as renderToBuffer,N as renderToFile,C as renderToStream,E as renderToString,F as usePDF,P as version};
|
||||||
67
build_temp/.next/node_modules/@react-pdf/renderer-5f716e9bc7d68b8a/package.json
generated
vendored
Normal file
67
build_temp/.next/node_modules/@react-pdf/renderer-5f716e9bc7d68b8a/package.json
generated
vendored
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
{
|
||||||
|
"name": "@react-pdf/renderer",
|
||||||
|
"version": "4.5.1",
|
||||||
|
"license": "MIT",
|
||||||
|
"description": "Create PDF files on the browser and server",
|
||||||
|
"author": "Diego Muracciole <diegomuracciole@gmail.com>",
|
||||||
|
"homepage": "https://github.com/diegomura/react-pdf#readme",
|
||||||
|
"type": "module",
|
||||||
|
"main": "./lib/react-pdf.js",
|
||||||
|
"browser": {
|
||||||
|
"./lib/react-pdf.js": "./lib/react-pdf.browser.js"
|
||||||
|
},
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/diegomura/react-pdf.git",
|
||||||
|
"directory": "packages/renderer"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"build": "rimraf ./lib && rollup -c",
|
||||||
|
"watch": "rimraf ./lib && rollup -c -w",
|
||||||
|
"size": "size-limit",
|
||||||
|
"lint": "eslint src",
|
||||||
|
"test": "vitest && vitest --config vitest.browser.config.js"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@babel/runtime": "^7.20.13",
|
||||||
|
"@react-pdf/fns": "3.1.3",
|
||||||
|
"@react-pdf/font": "^4.0.8",
|
||||||
|
"@react-pdf/layout": "^4.6.1",
|
||||||
|
"@react-pdf/pdfkit": "^5.1.1",
|
||||||
|
"@react-pdf/primitives": "^4.3.0",
|
||||||
|
"@react-pdf/reconciler": "^2.0.0",
|
||||||
|
"@react-pdf/render": "^4.5.1",
|
||||||
|
"@react-pdf/types": "^2.11.1",
|
||||||
|
"events": "^3.3.0",
|
||||||
|
"object-assign": "^4.1.1",
|
||||||
|
"prop-types": "^15.6.2",
|
||||||
|
"queue": "^6.0.1"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
|
||||||
|
},
|
||||||
|
"lint-staged": {
|
||||||
|
"*.js": [
|
||||||
|
"yarn lint",
|
||||||
|
"prettier --write"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
"lib",
|
||||||
|
"index.d.ts"
|
||||||
|
],
|
||||||
|
"collective": {
|
||||||
|
"type": "opencollective",
|
||||||
|
"url": "https://opencollective.com/react-pdf",
|
||||||
|
"logo": "https://opencollective.com/opencollective/logo.txt"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@size-limit/preset-big-lib": "^11.0.1",
|
||||||
|
"assert": "^2.0.0",
|
||||||
|
"browserify-zlib": "^0.2.0",
|
||||||
|
"buffer": "^6.0.3",
|
||||||
|
"process": "^0.11.10",
|
||||||
|
"size-limit": "^11.0.1",
|
||||||
|
"util": "^0.12.4"
|
||||||
|
}
|
||||||
|
}
|
||||||
1
build_temp/.next/package.json
Normal file
1
build_temp/.next/package.json
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"type": "commonjs"}
|
||||||
340
build_temp/.next/prerender-manifest.json
Normal file
340
build_temp/.next/prerender-manifest.json
Normal file
@@ -0,0 +1,340 @@
|
|||||||
|
{
|
||||||
|
"version": 4,
|
||||||
|
"routes": {
|
||||||
|
"/": {
|
||||||
|
"experimentalBypassFor": [
|
||||||
|
{
|
||||||
|
"type": "header",
|
||||||
|
"key": "next-action"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "header",
|
||||||
|
"key": "content-type",
|
||||||
|
"value": "multipart/form-data;.*"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"initialRevalidateSeconds": false,
|
||||||
|
"srcRoute": "/",
|
||||||
|
"dataRoute": "/index.rsc",
|
||||||
|
"allowHeader": [
|
||||||
|
"host",
|
||||||
|
"x-matched-path",
|
||||||
|
"x-prerender-revalidate",
|
||||||
|
"x-prerender-revalidate-if-generated",
|
||||||
|
"x-next-revalidated-tags",
|
||||||
|
"x-next-revalidate-tag-token"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"/_global-error": {
|
||||||
|
"experimentalBypassFor": [
|
||||||
|
{
|
||||||
|
"type": "header",
|
||||||
|
"key": "next-action"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "header",
|
||||||
|
"key": "content-type",
|
||||||
|
"value": "multipart/form-data;.*"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"initialRevalidateSeconds": false,
|
||||||
|
"srcRoute": "/_global-error",
|
||||||
|
"dataRoute": "/_global-error.rsc",
|
||||||
|
"allowHeader": [
|
||||||
|
"host",
|
||||||
|
"x-matched-path",
|
||||||
|
"x-prerender-revalidate",
|
||||||
|
"x-prerender-revalidate-if-generated",
|
||||||
|
"x-next-revalidated-tags",
|
||||||
|
"x-next-revalidate-tag-token"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"/_not-found": {
|
||||||
|
"initialStatus": 404,
|
||||||
|
"experimentalBypassFor": [
|
||||||
|
{
|
||||||
|
"type": "header",
|
||||||
|
"key": "next-action"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "header",
|
||||||
|
"key": "content-type",
|
||||||
|
"value": "multipart/form-data;.*"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"initialRevalidateSeconds": false,
|
||||||
|
"srcRoute": "/_not-found",
|
||||||
|
"dataRoute": "/_not-found.rsc",
|
||||||
|
"allowHeader": [
|
||||||
|
"host",
|
||||||
|
"x-matched-path",
|
||||||
|
"x-prerender-revalidate",
|
||||||
|
"x-prerender-revalidate-if-generated",
|
||||||
|
"x-next-revalidated-tags",
|
||||||
|
"x-next-revalidate-tag-token"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"/admin/users": {
|
||||||
|
"experimentalBypassFor": [
|
||||||
|
{
|
||||||
|
"type": "header",
|
||||||
|
"key": "next-action"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "header",
|
||||||
|
"key": "content-type",
|
||||||
|
"value": "multipart/form-data;.*"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"initialRevalidateSeconds": false,
|
||||||
|
"srcRoute": "/admin/users",
|
||||||
|
"dataRoute": "/admin/users.rsc",
|
||||||
|
"allowHeader": [
|
||||||
|
"host",
|
||||||
|
"x-matched-path",
|
||||||
|
"x-prerender-revalidate",
|
||||||
|
"x-prerender-revalidate-if-generated",
|
||||||
|
"x-next-revalidated-tags",
|
||||||
|
"x-next-revalidate-tag-token"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"/auth/forgot-password": {
|
||||||
|
"experimentalBypassFor": [
|
||||||
|
{
|
||||||
|
"type": "header",
|
||||||
|
"key": "next-action"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "header",
|
||||||
|
"key": "content-type",
|
||||||
|
"value": "multipart/form-data;.*"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"initialRevalidateSeconds": false,
|
||||||
|
"srcRoute": "/auth/forgot-password",
|
||||||
|
"dataRoute": "/auth/forgot-password.rsc",
|
||||||
|
"allowHeader": [
|
||||||
|
"host",
|
||||||
|
"x-matched-path",
|
||||||
|
"x-prerender-revalidate",
|
||||||
|
"x-prerender-revalidate-if-generated",
|
||||||
|
"x-next-revalidated-tags",
|
||||||
|
"x-next-revalidate-tag-token"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"/auth/login": {
|
||||||
|
"experimentalBypassFor": [
|
||||||
|
{
|
||||||
|
"type": "header",
|
||||||
|
"key": "next-action"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "header",
|
||||||
|
"key": "content-type",
|
||||||
|
"value": "multipart/form-data;.*"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"initialRevalidateSeconds": false,
|
||||||
|
"srcRoute": "/auth/login",
|
||||||
|
"dataRoute": "/auth/login.rsc",
|
||||||
|
"allowHeader": [
|
||||||
|
"host",
|
||||||
|
"x-matched-path",
|
||||||
|
"x-prerender-revalidate",
|
||||||
|
"x-prerender-revalidate-if-generated",
|
||||||
|
"x-next-revalidated-tags",
|
||||||
|
"x-next-revalidate-tag-token"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"/auth/sign-up": {
|
||||||
|
"experimentalBypassFor": [
|
||||||
|
{
|
||||||
|
"type": "header",
|
||||||
|
"key": "next-action"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "header",
|
||||||
|
"key": "content-type",
|
||||||
|
"value": "multipart/form-data;.*"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"initialRevalidateSeconds": false,
|
||||||
|
"srcRoute": "/auth/sign-up",
|
||||||
|
"dataRoute": "/auth/sign-up.rsc",
|
||||||
|
"allowHeader": [
|
||||||
|
"host",
|
||||||
|
"x-matched-path",
|
||||||
|
"x-prerender-revalidate",
|
||||||
|
"x-prerender-revalidate-if-generated",
|
||||||
|
"x-next-revalidated-tags",
|
||||||
|
"x-next-revalidate-tag-token"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"/auth/sign-up-success": {
|
||||||
|
"experimentalBypassFor": [
|
||||||
|
{
|
||||||
|
"type": "header",
|
||||||
|
"key": "next-action"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "header",
|
||||||
|
"key": "content-type",
|
||||||
|
"value": "multipart/form-data;.*"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"initialRevalidateSeconds": false,
|
||||||
|
"srcRoute": "/auth/sign-up-success",
|
||||||
|
"dataRoute": "/auth/sign-up-success.rsc",
|
||||||
|
"allowHeader": [
|
||||||
|
"host",
|
||||||
|
"x-matched-path",
|
||||||
|
"x-prerender-revalidate",
|
||||||
|
"x-prerender-revalidate-if-generated",
|
||||||
|
"x-next-revalidated-tags",
|
||||||
|
"x-next-revalidate-tag-token"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"/auth/update-password": {
|
||||||
|
"experimentalBypassFor": [
|
||||||
|
{
|
||||||
|
"type": "header",
|
||||||
|
"key": "next-action"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "header",
|
||||||
|
"key": "content-type",
|
||||||
|
"value": "multipart/form-data;.*"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"initialRevalidateSeconds": false,
|
||||||
|
"srcRoute": "/auth/update-password",
|
||||||
|
"dataRoute": "/auth/update-password.rsc",
|
||||||
|
"allowHeader": [
|
||||||
|
"host",
|
||||||
|
"x-matched-path",
|
||||||
|
"x-prerender-revalidate",
|
||||||
|
"x-prerender-revalidate-if-generated",
|
||||||
|
"x-next-revalidated-tags",
|
||||||
|
"x-next-revalidate-tag-token"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"/favicon.ico": {
|
||||||
|
"initialHeaders": {
|
||||||
|
"cache-control": "public, max-age=0, must-revalidate",
|
||||||
|
"content-type": "image/x-icon",
|
||||||
|
"x-next-cache-tags": "_N_T_/layout,_N_T_/favicon.ico/layout,_N_T_/favicon.ico/route,_N_T_/favicon.ico"
|
||||||
|
},
|
||||||
|
"experimentalBypassFor": [
|
||||||
|
{
|
||||||
|
"type": "header",
|
||||||
|
"key": "next-action"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "header",
|
||||||
|
"key": "content-type",
|
||||||
|
"value": "multipart/form-data;.*"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"initialRevalidateSeconds": false,
|
||||||
|
"srcRoute": "/favicon.ico",
|
||||||
|
"dataRoute": null,
|
||||||
|
"allowHeader": [
|
||||||
|
"host",
|
||||||
|
"x-matched-path",
|
||||||
|
"x-prerender-revalidate",
|
||||||
|
"x-prerender-revalidate-if-generated",
|
||||||
|
"x-next-revalidated-tags",
|
||||||
|
"x-next-revalidate-tag-token"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"/my-customers/new": {
|
||||||
|
"experimentalBypassFor": [
|
||||||
|
{
|
||||||
|
"type": "header",
|
||||||
|
"key": "next-action"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "header",
|
||||||
|
"key": "content-type",
|
||||||
|
"value": "multipart/form-data;.*"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"initialRevalidateSeconds": false,
|
||||||
|
"srcRoute": "/my-customers/new",
|
||||||
|
"dataRoute": "/my-customers/new.rsc",
|
||||||
|
"allowHeader": [
|
||||||
|
"host",
|
||||||
|
"x-matched-path",
|
||||||
|
"x-prerender-revalidate",
|
||||||
|
"x-prerender-revalidate-if-generated",
|
||||||
|
"x-next-revalidated-tags",
|
||||||
|
"x-next-revalidate-tag-token"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"/opengraph-image.png": {
|
||||||
|
"initialHeaders": {
|
||||||
|
"cache-control": "public, max-age=0, must-revalidate",
|
||||||
|
"content-type": "image/png",
|
||||||
|
"x-next-cache-tags": "_N_T_/layout,_N_T_/opengraph-image.png/layout,_N_T_/opengraph-image.png/route,_N_T_/opengraph-image.png"
|
||||||
|
},
|
||||||
|
"experimentalBypassFor": [
|
||||||
|
{
|
||||||
|
"type": "header",
|
||||||
|
"key": "next-action"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "header",
|
||||||
|
"key": "content-type",
|
||||||
|
"value": "multipart/form-data;.*"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"initialRevalidateSeconds": false,
|
||||||
|
"srcRoute": "/opengraph-image.png",
|
||||||
|
"dataRoute": null,
|
||||||
|
"allowHeader": [
|
||||||
|
"host",
|
||||||
|
"x-matched-path",
|
||||||
|
"x-prerender-revalidate",
|
||||||
|
"x-prerender-revalidate-if-generated",
|
||||||
|
"x-next-revalidated-tags",
|
||||||
|
"x-next-revalidate-tag-token"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"/twitter-image.png": {
|
||||||
|
"initialHeaders": {
|
||||||
|
"cache-control": "public, max-age=0, must-revalidate",
|
||||||
|
"content-type": "image/png",
|
||||||
|
"x-next-cache-tags": "_N_T_/layout,_N_T_/twitter-image.png/layout,_N_T_/twitter-image.png/route,_N_T_/twitter-image.png"
|
||||||
|
},
|
||||||
|
"experimentalBypassFor": [
|
||||||
|
{
|
||||||
|
"type": "header",
|
||||||
|
"key": "next-action"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "header",
|
||||||
|
"key": "content-type",
|
||||||
|
"value": "multipart/form-data;.*"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"initialRevalidateSeconds": false,
|
||||||
|
"srcRoute": "/twitter-image.png",
|
||||||
|
"dataRoute": null,
|
||||||
|
"allowHeader": [
|
||||||
|
"host",
|
||||||
|
"x-matched-path",
|
||||||
|
"x-prerender-revalidate",
|
||||||
|
"x-prerender-revalidate-if-generated",
|
||||||
|
"x-next-revalidated-tags",
|
||||||
|
"x-next-revalidate-tag-token"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"dynamicRoutes": {},
|
||||||
|
"notFoundRoutes": [],
|
||||||
|
"preview": {
|
||||||
|
"previewModeId": "448d32298db3b0c38793886a3692c8c2",
|
||||||
|
"previewModeSigningKey": "c5cb172f94d84767588967a86044c9ee49921a9b2179519d52aa8aceecb0cd6f",
|
||||||
|
"previewModeEncryptionKey": "8a7d538464b6beea4e3323e6d9d86f4b70ecb99e19daffca604a9088baa07476"
|
||||||
|
}
|
||||||
|
}
|
||||||
332
build_temp/.next/required-server-files.js
Normal file
332
build_temp/.next/required-server-files.js
Normal file
@@ -0,0 +1,332 @@
|
|||||||
|
self.__SERVER_FILES_MANIFEST={
|
||||||
|
"version": 1,
|
||||||
|
"config": {
|
||||||
|
"env": {},
|
||||||
|
"webpack": null,
|
||||||
|
"typescript": {
|
||||||
|
"ignoreBuildErrors": false
|
||||||
|
},
|
||||||
|
"typedRoutes": false,
|
||||||
|
"distDir": ".next",
|
||||||
|
"cleanDistDir": true,
|
||||||
|
"assetPrefix": "",
|
||||||
|
"cacheMaxMemorySize": 52428800,
|
||||||
|
"configOrigin": "next.config.ts",
|
||||||
|
"useFileSystemPublicRoutes": true,
|
||||||
|
"generateEtags": true,
|
||||||
|
"pageExtensions": [
|
||||||
|
"tsx",
|
||||||
|
"ts",
|
||||||
|
"jsx",
|
||||||
|
"js"
|
||||||
|
],
|
||||||
|
"poweredByHeader": true,
|
||||||
|
"compress": true,
|
||||||
|
"images": {
|
||||||
|
"deviceSizes": [
|
||||||
|
640,
|
||||||
|
750,
|
||||||
|
828,
|
||||||
|
1080,
|
||||||
|
1200,
|
||||||
|
1920,
|
||||||
|
2048,
|
||||||
|
3840
|
||||||
|
],
|
||||||
|
"imageSizes": [
|
||||||
|
32,
|
||||||
|
48,
|
||||||
|
64,
|
||||||
|
96,
|
||||||
|
128,
|
||||||
|
256,
|
||||||
|
384
|
||||||
|
],
|
||||||
|
"path": "/_next/image",
|
||||||
|
"loader": "default",
|
||||||
|
"loaderFile": "",
|
||||||
|
"domains": [],
|
||||||
|
"disableStaticImages": false,
|
||||||
|
"minimumCacheTTL": 14400,
|
||||||
|
"formats": [
|
||||||
|
"image/webp"
|
||||||
|
],
|
||||||
|
"maximumRedirects": 3,
|
||||||
|
"maximumResponseBody": 50000000,
|
||||||
|
"dangerouslyAllowLocalIP": false,
|
||||||
|
"dangerouslyAllowSVG": false,
|
||||||
|
"contentSecurityPolicy": "script-src 'none'; frame-src 'none'; sandbox;",
|
||||||
|
"contentDispositionType": "attachment",
|
||||||
|
"localPatterns": [
|
||||||
|
{
|
||||||
|
"pathname": "**",
|
||||||
|
"search": ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"remotePatterns": [],
|
||||||
|
"qualities": [
|
||||||
|
75
|
||||||
|
],
|
||||||
|
"unoptimized": false,
|
||||||
|
"customCacheHandler": false
|
||||||
|
},
|
||||||
|
"devIndicators": {
|
||||||
|
"position": "bottom-left"
|
||||||
|
},
|
||||||
|
"onDemandEntries": {
|
||||||
|
"maxInactiveAge": 60000,
|
||||||
|
"pagesBufferLength": 5
|
||||||
|
},
|
||||||
|
"basePath": "",
|
||||||
|
"sassOptions": {},
|
||||||
|
"trailingSlash": false,
|
||||||
|
"i18n": null,
|
||||||
|
"productionBrowserSourceMaps": false,
|
||||||
|
"excludeDefaultMomentLocales": true,
|
||||||
|
"reactProductionProfiling": false,
|
||||||
|
"reactStrictMode": null,
|
||||||
|
"reactMaxHeadersLength": 6000,
|
||||||
|
"httpAgentOptions": {
|
||||||
|
"keepAlive": true
|
||||||
|
},
|
||||||
|
"logging": {
|
||||||
|
"serverFunctions": true,
|
||||||
|
"browserToTerminal": "warn"
|
||||||
|
},
|
||||||
|
"compiler": {},
|
||||||
|
"expireTime": 31536000,
|
||||||
|
"staticPageGenerationTimeout": 60,
|
||||||
|
"modularizeImports": {
|
||||||
|
"@mui/icons-material": {
|
||||||
|
"transform": "@mui/icons-material/{{member}}"
|
||||||
|
},
|
||||||
|
"lodash": {
|
||||||
|
"transform": "lodash/{{member}}"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"outputFileTracingRoot": "C:\\source\\webshop\\shop",
|
||||||
|
"cacheComponents": false,
|
||||||
|
"cacheLife": {
|
||||||
|
"default": {
|
||||||
|
"stale": 300,
|
||||||
|
"revalidate": 900,
|
||||||
|
"expire": 4294967294
|
||||||
|
},
|
||||||
|
"seconds": {
|
||||||
|
"stale": 30,
|
||||||
|
"revalidate": 1,
|
||||||
|
"expire": 60
|
||||||
|
},
|
||||||
|
"minutes": {
|
||||||
|
"stale": 300,
|
||||||
|
"revalidate": 60,
|
||||||
|
"expire": 3600
|
||||||
|
},
|
||||||
|
"hours": {
|
||||||
|
"stale": 300,
|
||||||
|
"revalidate": 3600,
|
||||||
|
"expire": 86400
|
||||||
|
},
|
||||||
|
"days": {
|
||||||
|
"stale": 300,
|
||||||
|
"revalidate": 86400,
|
||||||
|
"expire": 604800
|
||||||
|
},
|
||||||
|
"weeks": {
|
||||||
|
"stale": 300,
|
||||||
|
"revalidate": 604800,
|
||||||
|
"expire": 2592000
|
||||||
|
},
|
||||||
|
"max": {
|
||||||
|
"stale": 300,
|
||||||
|
"revalidate": 2592000,
|
||||||
|
"expire": 31536000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"cacheHandlers": {},
|
||||||
|
"experimental": {
|
||||||
|
"appNewScrollHandler": false,
|
||||||
|
"useSkewCookie": false,
|
||||||
|
"cssChunking": true,
|
||||||
|
"multiZoneDraftMode": false,
|
||||||
|
"appNavFailHandling": false,
|
||||||
|
"prerenderEarlyExit": true,
|
||||||
|
"serverMinification": true,
|
||||||
|
"linkNoTouchStart": false,
|
||||||
|
"caseSensitiveRoutes": false,
|
||||||
|
"cachedNavigations": false,
|
||||||
|
"partialFallbacks": false,
|
||||||
|
"dynamicOnHover": false,
|
||||||
|
"varyParams": false,
|
||||||
|
"prefetchInlining": false,
|
||||||
|
"preloadEntriesOnStart": true,
|
||||||
|
"clientRouterFilter": true,
|
||||||
|
"clientRouterFilterRedirects": false,
|
||||||
|
"fetchCacheKeyPrefix": "",
|
||||||
|
"proxyPrefetch": "flexible",
|
||||||
|
"optimisticClientCache": true,
|
||||||
|
"manualClientBasePath": false,
|
||||||
|
"cpus": 15,
|
||||||
|
"memoryBasedWorkersCount": false,
|
||||||
|
"imgOptConcurrency": null,
|
||||||
|
"imgOptTimeoutInSeconds": 7,
|
||||||
|
"imgOptMaxInputPixels": 268402689,
|
||||||
|
"imgOptSequentialRead": null,
|
||||||
|
"imgOptSkipMetadata": null,
|
||||||
|
"isrFlushToDisk": true,
|
||||||
|
"workerThreads": false,
|
||||||
|
"optimizeCss": false,
|
||||||
|
"nextScriptWorkers": false,
|
||||||
|
"scrollRestoration": false,
|
||||||
|
"externalDir": false,
|
||||||
|
"disableOptimizedLoading": false,
|
||||||
|
"gzipSize": true,
|
||||||
|
"craCompat": false,
|
||||||
|
"esmExternals": true,
|
||||||
|
"fullySpecified": false,
|
||||||
|
"swcTraceProfiling": false,
|
||||||
|
"forceSwcTransforms": false,
|
||||||
|
"largePageDataBytes": 128000,
|
||||||
|
"typedEnv": false,
|
||||||
|
"parallelServerCompiles": false,
|
||||||
|
"parallelServerBuildTraces": false,
|
||||||
|
"ppr": false,
|
||||||
|
"authInterrupts": false,
|
||||||
|
"webpackMemoryOptimizations": false,
|
||||||
|
"optimizeServerReact": true,
|
||||||
|
"strictRouteTypes": false,
|
||||||
|
"viewTransition": false,
|
||||||
|
"removeUncaughtErrorAndRejectionListeners": false,
|
||||||
|
"validateRSCRequestHeaders": false,
|
||||||
|
"staleTimes": {
|
||||||
|
"dynamic": 0,
|
||||||
|
"static": 300
|
||||||
|
},
|
||||||
|
"reactDebugChannel": true,
|
||||||
|
"serverComponentsHmrCache": true,
|
||||||
|
"staticGenerationMaxConcurrency": 8,
|
||||||
|
"staticGenerationMinPagesPerWorker": 25,
|
||||||
|
"transitionIndicator": false,
|
||||||
|
"gestureTransition": false,
|
||||||
|
"inlineCss": false,
|
||||||
|
"useCache": false,
|
||||||
|
"globalNotFound": false,
|
||||||
|
"browserDebugInfoInTerminal": "warn",
|
||||||
|
"lockDistDir": true,
|
||||||
|
"proxyClientMaxBodySize": 10485760,
|
||||||
|
"hideLogsAfterAbort": false,
|
||||||
|
"mcpServer": true,
|
||||||
|
"turbopackFileSystemCacheForDev": true,
|
||||||
|
"turbopackFileSystemCacheForBuild": false,
|
||||||
|
"turbopackInferModuleSideEffects": true,
|
||||||
|
"turbopackPluginRuntimeStrategy": "childProcesses",
|
||||||
|
"optimizePackageImports": [
|
||||||
|
"lucide-react",
|
||||||
|
"date-fns",
|
||||||
|
"lodash-es",
|
||||||
|
"ramda",
|
||||||
|
"antd",
|
||||||
|
"react-bootstrap",
|
||||||
|
"ahooks",
|
||||||
|
"@ant-design/icons",
|
||||||
|
"@headlessui/react",
|
||||||
|
"@headlessui-float/react",
|
||||||
|
"@heroicons/react/20/solid",
|
||||||
|
"@heroicons/react/24/solid",
|
||||||
|
"@heroicons/react/24/outline",
|
||||||
|
"@visx/visx",
|
||||||
|
"@tremor/react",
|
||||||
|
"rxjs",
|
||||||
|
"@mui/material",
|
||||||
|
"@mui/icons-material",
|
||||||
|
"recharts",
|
||||||
|
"react-use",
|
||||||
|
"effect",
|
||||||
|
"@effect/schema",
|
||||||
|
"@effect/platform",
|
||||||
|
"@effect/platform-node",
|
||||||
|
"@effect/platform-browser",
|
||||||
|
"@effect/platform-bun",
|
||||||
|
"@effect/sql",
|
||||||
|
"@effect/sql-mssql",
|
||||||
|
"@effect/sql-mysql2",
|
||||||
|
"@effect/sql-pg",
|
||||||
|
"@effect/sql-sqlite-node",
|
||||||
|
"@effect/sql-sqlite-bun",
|
||||||
|
"@effect/sql-sqlite-wasm",
|
||||||
|
"@effect/sql-sqlite-react-native",
|
||||||
|
"@effect/rpc",
|
||||||
|
"@effect/rpc-http",
|
||||||
|
"@effect/typeclass",
|
||||||
|
"@effect/experimental",
|
||||||
|
"@effect/opentelemetry",
|
||||||
|
"@material-ui/core",
|
||||||
|
"@material-ui/icons",
|
||||||
|
"@tabler/icons-react",
|
||||||
|
"mui-core",
|
||||||
|
"react-icons/ai",
|
||||||
|
"react-icons/bi",
|
||||||
|
"react-icons/bs",
|
||||||
|
"react-icons/cg",
|
||||||
|
"react-icons/ci",
|
||||||
|
"react-icons/di",
|
||||||
|
"react-icons/fa",
|
||||||
|
"react-icons/fa6",
|
||||||
|
"react-icons/fc",
|
||||||
|
"react-icons/fi",
|
||||||
|
"react-icons/gi",
|
||||||
|
"react-icons/go",
|
||||||
|
"react-icons/gr",
|
||||||
|
"react-icons/hi",
|
||||||
|
"react-icons/hi2",
|
||||||
|
"react-icons/im",
|
||||||
|
"react-icons/io",
|
||||||
|
"react-icons/io5",
|
||||||
|
"react-icons/lia",
|
||||||
|
"react-icons/lib",
|
||||||
|
"react-icons/lu",
|
||||||
|
"react-icons/md",
|
||||||
|
"react-icons/pi",
|
||||||
|
"react-icons/ri",
|
||||||
|
"react-icons/rx",
|
||||||
|
"react-icons/si",
|
||||||
|
"react-icons/sl",
|
||||||
|
"react-icons/tb",
|
||||||
|
"react-icons/tfi",
|
||||||
|
"react-icons/ti",
|
||||||
|
"react-icons/vsc",
|
||||||
|
"react-icons/wi"
|
||||||
|
],
|
||||||
|
"trustHostHeader": false,
|
||||||
|
"isExperimentalCompile": false
|
||||||
|
},
|
||||||
|
"htmlLimitedBots": "[\\w-]+-Google|Google-[\\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight",
|
||||||
|
"bundlePagesRouterDependencies": false,
|
||||||
|
"configFileName": "next.config.ts",
|
||||||
|
"turbopack": {
|
||||||
|
"root": "C:\\source\\webshop\\shop"
|
||||||
|
},
|
||||||
|
"distDirRoot": ".next"
|
||||||
|
},
|
||||||
|
"appDir": "C:\\source\\webshop\\shop",
|
||||||
|
"relativeAppDir": "",
|
||||||
|
"files": [
|
||||||
|
".next\\routes-manifest.json",
|
||||||
|
".next\\server\\pages-manifest.json",
|
||||||
|
".next\\build-manifest.json",
|
||||||
|
".next\\prerender-manifest.json",
|
||||||
|
".next\\server\\functions-config-manifest.json",
|
||||||
|
".next\\server\\middleware-manifest.json",
|
||||||
|
".next\\server\\middleware-build-manifest.js",
|
||||||
|
".next\\server\\app-paths-manifest.json",
|
||||||
|
".next\\app-path-routes-manifest.json",
|
||||||
|
".next\\server\\server-reference-manifest.js",
|
||||||
|
".next\\server\\server-reference-manifest.json",
|
||||||
|
".next\\server\\prefetch-hints.json",
|
||||||
|
".next\\BUILD_ID",
|
||||||
|
".next\\server\\next-font-manifest.js",
|
||||||
|
".next\\server\\next-font-manifest.json",
|
||||||
|
".next\\required-server-files.json"
|
||||||
|
],
|
||||||
|
"ignore": []
|
||||||
|
}
|
||||||
332
build_temp/.next/required-server-files.json
Normal file
332
build_temp/.next/required-server-files.json
Normal file
@@ -0,0 +1,332 @@
|
|||||||
|
{
|
||||||
|
"version": 1,
|
||||||
|
"config": {
|
||||||
|
"env": {},
|
||||||
|
"webpack": null,
|
||||||
|
"typescript": {
|
||||||
|
"ignoreBuildErrors": false
|
||||||
|
},
|
||||||
|
"typedRoutes": false,
|
||||||
|
"distDir": ".next",
|
||||||
|
"cleanDistDir": true,
|
||||||
|
"assetPrefix": "",
|
||||||
|
"cacheMaxMemorySize": 52428800,
|
||||||
|
"configOrigin": "next.config.ts",
|
||||||
|
"useFileSystemPublicRoutes": true,
|
||||||
|
"generateEtags": true,
|
||||||
|
"pageExtensions": [
|
||||||
|
"tsx",
|
||||||
|
"ts",
|
||||||
|
"jsx",
|
||||||
|
"js"
|
||||||
|
],
|
||||||
|
"poweredByHeader": true,
|
||||||
|
"compress": true,
|
||||||
|
"images": {
|
||||||
|
"deviceSizes": [
|
||||||
|
640,
|
||||||
|
750,
|
||||||
|
828,
|
||||||
|
1080,
|
||||||
|
1200,
|
||||||
|
1920,
|
||||||
|
2048,
|
||||||
|
3840
|
||||||
|
],
|
||||||
|
"imageSizes": [
|
||||||
|
32,
|
||||||
|
48,
|
||||||
|
64,
|
||||||
|
96,
|
||||||
|
128,
|
||||||
|
256,
|
||||||
|
384
|
||||||
|
],
|
||||||
|
"path": "/_next/image",
|
||||||
|
"loader": "default",
|
||||||
|
"loaderFile": "",
|
||||||
|
"domains": [],
|
||||||
|
"disableStaticImages": false,
|
||||||
|
"minimumCacheTTL": 14400,
|
||||||
|
"formats": [
|
||||||
|
"image/webp"
|
||||||
|
],
|
||||||
|
"maximumRedirects": 3,
|
||||||
|
"maximumResponseBody": 50000000,
|
||||||
|
"dangerouslyAllowLocalIP": false,
|
||||||
|
"dangerouslyAllowSVG": false,
|
||||||
|
"contentSecurityPolicy": "script-src 'none'; frame-src 'none'; sandbox;",
|
||||||
|
"contentDispositionType": "attachment",
|
||||||
|
"localPatterns": [
|
||||||
|
{
|
||||||
|
"pathname": "**",
|
||||||
|
"search": ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"remotePatterns": [],
|
||||||
|
"qualities": [
|
||||||
|
75
|
||||||
|
],
|
||||||
|
"unoptimized": false,
|
||||||
|
"customCacheHandler": false
|
||||||
|
},
|
||||||
|
"devIndicators": {
|
||||||
|
"position": "bottom-left"
|
||||||
|
},
|
||||||
|
"onDemandEntries": {
|
||||||
|
"maxInactiveAge": 60000,
|
||||||
|
"pagesBufferLength": 5
|
||||||
|
},
|
||||||
|
"basePath": "",
|
||||||
|
"sassOptions": {},
|
||||||
|
"trailingSlash": false,
|
||||||
|
"i18n": null,
|
||||||
|
"productionBrowserSourceMaps": false,
|
||||||
|
"excludeDefaultMomentLocales": true,
|
||||||
|
"reactProductionProfiling": false,
|
||||||
|
"reactStrictMode": null,
|
||||||
|
"reactMaxHeadersLength": 6000,
|
||||||
|
"httpAgentOptions": {
|
||||||
|
"keepAlive": true
|
||||||
|
},
|
||||||
|
"logging": {
|
||||||
|
"serverFunctions": true,
|
||||||
|
"browserToTerminal": "warn"
|
||||||
|
},
|
||||||
|
"compiler": {},
|
||||||
|
"expireTime": 31536000,
|
||||||
|
"staticPageGenerationTimeout": 60,
|
||||||
|
"modularizeImports": {
|
||||||
|
"@mui/icons-material": {
|
||||||
|
"transform": "@mui/icons-material/{{member}}"
|
||||||
|
},
|
||||||
|
"lodash": {
|
||||||
|
"transform": "lodash/{{member}}"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"outputFileTracingRoot": "C:\\source\\webshop\\shop",
|
||||||
|
"cacheComponents": false,
|
||||||
|
"cacheLife": {
|
||||||
|
"default": {
|
||||||
|
"stale": 300,
|
||||||
|
"revalidate": 900,
|
||||||
|
"expire": 4294967294
|
||||||
|
},
|
||||||
|
"seconds": {
|
||||||
|
"stale": 30,
|
||||||
|
"revalidate": 1,
|
||||||
|
"expire": 60
|
||||||
|
},
|
||||||
|
"minutes": {
|
||||||
|
"stale": 300,
|
||||||
|
"revalidate": 60,
|
||||||
|
"expire": 3600
|
||||||
|
},
|
||||||
|
"hours": {
|
||||||
|
"stale": 300,
|
||||||
|
"revalidate": 3600,
|
||||||
|
"expire": 86400
|
||||||
|
},
|
||||||
|
"days": {
|
||||||
|
"stale": 300,
|
||||||
|
"revalidate": 86400,
|
||||||
|
"expire": 604800
|
||||||
|
},
|
||||||
|
"weeks": {
|
||||||
|
"stale": 300,
|
||||||
|
"revalidate": 604800,
|
||||||
|
"expire": 2592000
|
||||||
|
},
|
||||||
|
"max": {
|
||||||
|
"stale": 300,
|
||||||
|
"revalidate": 2592000,
|
||||||
|
"expire": 31536000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"cacheHandlers": {},
|
||||||
|
"experimental": {
|
||||||
|
"appNewScrollHandler": false,
|
||||||
|
"useSkewCookie": false,
|
||||||
|
"cssChunking": true,
|
||||||
|
"multiZoneDraftMode": false,
|
||||||
|
"appNavFailHandling": false,
|
||||||
|
"prerenderEarlyExit": true,
|
||||||
|
"serverMinification": true,
|
||||||
|
"linkNoTouchStart": false,
|
||||||
|
"caseSensitiveRoutes": false,
|
||||||
|
"cachedNavigations": false,
|
||||||
|
"partialFallbacks": false,
|
||||||
|
"dynamicOnHover": false,
|
||||||
|
"varyParams": false,
|
||||||
|
"prefetchInlining": false,
|
||||||
|
"preloadEntriesOnStart": true,
|
||||||
|
"clientRouterFilter": true,
|
||||||
|
"clientRouterFilterRedirects": false,
|
||||||
|
"fetchCacheKeyPrefix": "",
|
||||||
|
"proxyPrefetch": "flexible",
|
||||||
|
"optimisticClientCache": true,
|
||||||
|
"manualClientBasePath": false,
|
||||||
|
"cpus": 15,
|
||||||
|
"memoryBasedWorkersCount": false,
|
||||||
|
"imgOptConcurrency": null,
|
||||||
|
"imgOptTimeoutInSeconds": 7,
|
||||||
|
"imgOptMaxInputPixels": 268402689,
|
||||||
|
"imgOptSequentialRead": null,
|
||||||
|
"imgOptSkipMetadata": null,
|
||||||
|
"isrFlushToDisk": true,
|
||||||
|
"workerThreads": false,
|
||||||
|
"optimizeCss": false,
|
||||||
|
"nextScriptWorkers": false,
|
||||||
|
"scrollRestoration": false,
|
||||||
|
"externalDir": false,
|
||||||
|
"disableOptimizedLoading": false,
|
||||||
|
"gzipSize": true,
|
||||||
|
"craCompat": false,
|
||||||
|
"esmExternals": true,
|
||||||
|
"fullySpecified": false,
|
||||||
|
"swcTraceProfiling": false,
|
||||||
|
"forceSwcTransforms": false,
|
||||||
|
"largePageDataBytes": 128000,
|
||||||
|
"typedEnv": false,
|
||||||
|
"parallelServerCompiles": false,
|
||||||
|
"parallelServerBuildTraces": false,
|
||||||
|
"ppr": false,
|
||||||
|
"authInterrupts": false,
|
||||||
|
"webpackMemoryOptimizations": false,
|
||||||
|
"optimizeServerReact": true,
|
||||||
|
"strictRouteTypes": false,
|
||||||
|
"viewTransition": false,
|
||||||
|
"removeUncaughtErrorAndRejectionListeners": false,
|
||||||
|
"validateRSCRequestHeaders": false,
|
||||||
|
"staleTimes": {
|
||||||
|
"dynamic": 0,
|
||||||
|
"static": 300
|
||||||
|
},
|
||||||
|
"reactDebugChannel": true,
|
||||||
|
"serverComponentsHmrCache": true,
|
||||||
|
"staticGenerationMaxConcurrency": 8,
|
||||||
|
"staticGenerationMinPagesPerWorker": 25,
|
||||||
|
"transitionIndicator": false,
|
||||||
|
"gestureTransition": false,
|
||||||
|
"inlineCss": false,
|
||||||
|
"useCache": false,
|
||||||
|
"globalNotFound": false,
|
||||||
|
"browserDebugInfoInTerminal": "warn",
|
||||||
|
"lockDistDir": true,
|
||||||
|
"proxyClientMaxBodySize": 10485760,
|
||||||
|
"hideLogsAfterAbort": false,
|
||||||
|
"mcpServer": true,
|
||||||
|
"turbopackFileSystemCacheForDev": true,
|
||||||
|
"turbopackFileSystemCacheForBuild": false,
|
||||||
|
"turbopackInferModuleSideEffects": true,
|
||||||
|
"turbopackPluginRuntimeStrategy": "childProcesses",
|
||||||
|
"optimizePackageImports": [
|
||||||
|
"lucide-react",
|
||||||
|
"date-fns",
|
||||||
|
"lodash-es",
|
||||||
|
"ramda",
|
||||||
|
"antd",
|
||||||
|
"react-bootstrap",
|
||||||
|
"ahooks",
|
||||||
|
"@ant-design/icons",
|
||||||
|
"@headlessui/react",
|
||||||
|
"@headlessui-float/react",
|
||||||
|
"@heroicons/react/20/solid",
|
||||||
|
"@heroicons/react/24/solid",
|
||||||
|
"@heroicons/react/24/outline",
|
||||||
|
"@visx/visx",
|
||||||
|
"@tremor/react",
|
||||||
|
"rxjs",
|
||||||
|
"@mui/material",
|
||||||
|
"@mui/icons-material",
|
||||||
|
"recharts",
|
||||||
|
"react-use",
|
||||||
|
"effect",
|
||||||
|
"@effect/schema",
|
||||||
|
"@effect/platform",
|
||||||
|
"@effect/platform-node",
|
||||||
|
"@effect/platform-browser",
|
||||||
|
"@effect/platform-bun",
|
||||||
|
"@effect/sql",
|
||||||
|
"@effect/sql-mssql",
|
||||||
|
"@effect/sql-mysql2",
|
||||||
|
"@effect/sql-pg",
|
||||||
|
"@effect/sql-sqlite-node",
|
||||||
|
"@effect/sql-sqlite-bun",
|
||||||
|
"@effect/sql-sqlite-wasm",
|
||||||
|
"@effect/sql-sqlite-react-native",
|
||||||
|
"@effect/rpc",
|
||||||
|
"@effect/rpc-http",
|
||||||
|
"@effect/typeclass",
|
||||||
|
"@effect/experimental",
|
||||||
|
"@effect/opentelemetry",
|
||||||
|
"@material-ui/core",
|
||||||
|
"@material-ui/icons",
|
||||||
|
"@tabler/icons-react",
|
||||||
|
"mui-core",
|
||||||
|
"react-icons/ai",
|
||||||
|
"react-icons/bi",
|
||||||
|
"react-icons/bs",
|
||||||
|
"react-icons/cg",
|
||||||
|
"react-icons/ci",
|
||||||
|
"react-icons/di",
|
||||||
|
"react-icons/fa",
|
||||||
|
"react-icons/fa6",
|
||||||
|
"react-icons/fc",
|
||||||
|
"react-icons/fi",
|
||||||
|
"react-icons/gi",
|
||||||
|
"react-icons/go",
|
||||||
|
"react-icons/gr",
|
||||||
|
"react-icons/hi",
|
||||||
|
"react-icons/hi2",
|
||||||
|
"react-icons/im",
|
||||||
|
"react-icons/io",
|
||||||
|
"react-icons/io5",
|
||||||
|
"react-icons/lia",
|
||||||
|
"react-icons/lib",
|
||||||
|
"react-icons/lu",
|
||||||
|
"react-icons/md",
|
||||||
|
"react-icons/pi",
|
||||||
|
"react-icons/ri",
|
||||||
|
"react-icons/rx",
|
||||||
|
"react-icons/si",
|
||||||
|
"react-icons/sl",
|
||||||
|
"react-icons/tb",
|
||||||
|
"react-icons/tfi",
|
||||||
|
"react-icons/ti",
|
||||||
|
"react-icons/vsc",
|
||||||
|
"react-icons/wi"
|
||||||
|
],
|
||||||
|
"trustHostHeader": false,
|
||||||
|
"isExperimentalCompile": false
|
||||||
|
},
|
||||||
|
"htmlLimitedBots": "[\\w-]+-Google|Google-[\\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight",
|
||||||
|
"bundlePagesRouterDependencies": false,
|
||||||
|
"configFileName": "next.config.ts",
|
||||||
|
"turbopack": {
|
||||||
|
"root": "C:\\source\\webshop\\shop"
|
||||||
|
},
|
||||||
|
"distDirRoot": ".next"
|
||||||
|
},
|
||||||
|
"appDir": "C:\\source\\webshop\\shop",
|
||||||
|
"relativeAppDir": "",
|
||||||
|
"files": [
|
||||||
|
".next\\routes-manifest.json",
|
||||||
|
".next\\server\\pages-manifest.json",
|
||||||
|
".next\\build-manifest.json",
|
||||||
|
".next\\prerender-manifest.json",
|
||||||
|
".next\\server\\functions-config-manifest.json",
|
||||||
|
".next\\server\\middleware-manifest.json",
|
||||||
|
".next\\server\\middleware-build-manifest.js",
|
||||||
|
".next\\server\\app-paths-manifest.json",
|
||||||
|
".next\\app-path-routes-manifest.json",
|
||||||
|
".next\\server\\server-reference-manifest.js",
|
||||||
|
".next\\server\\server-reference-manifest.json",
|
||||||
|
".next\\server\\prefetch-hints.json",
|
||||||
|
".next\\BUILD_ID",
|
||||||
|
".next\\server\\next-font-manifest.js",
|
||||||
|
".next\\server\\next-font-manifest.json",
|
||||||
|
".next\\required-server-files.json"
|
||||||
|
],
|
||||||
|
"ignore": []
|
||||||
|
}
|
||||||
204
build_temp/.next/routes-manifest.json
Normal file
204
build_temp/.next/routes-manifest.json
Normal file
@@ -0,0 +1,204 @@
|
|||||||
|
{
|
||||||
|
"version": 3,
|
||||||
|
"pages404": true,
|
||||||
|
"appType": "app",
|
||||||
|
"caseSensitive": false,
|
||||||
|
"basePath": "",
|
||||||
|
"redirects": [
|
||||||
|
{
|
||||||
|
"source": "/:path+/",
|
||||||
|
"destination": "/:path+",
|
||||||
|
"internal": true,
|
||||||
|
"priority": true,
|
||||||
|
"statusCode": 308,
|
||||||
|
"regex": "^(?:/((?:[^/]+?)(?:/(?:[^/]+?))*))/$"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"headers": [],
|
||||||
|
"onMatchHeaders": [],
|
||||||
|
"rewrites": {
|
||||||
|
"beforeFiles": [],
|
||||||
|
"afterFiles": [],
|
||||||
|
"fallback": []
|
||||||
|
},
|
||||||
|
"dynamicRoutes": [
|
||||||
|
{
|
||||||
|
"page": "/my-customers/[id]",
|
||||||
|
"regex": "^/my\\-customers/([^/]+?)(?:/)?$",
|
||||||
|
"routeKeys": {
|
||||||
|
"nxtPid": "nxtPid"
|
||||||
|
},
|
||||||
|
"namedRegex": "^/my\\-customers/(?<nxtPid>[^/]+?)(?:/)?$"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"staticRoutes": [
|
||||||
|
{
|
||||||
|
"page": "/",
|
||||||
|
"regex": "^/(?:/)?$",
|
||||||
|
"routeKeys": {},
|
||||||
|
"namedRegex": "^/(?:/)?$"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"page": "/_global-error",
|
||||||
|
"regex": "^/_global\\-error(?:/)?$",
|
||||||
|
"routeKeys": {},
|
||||||
|
"namedRegex": "^/_global\\-error(?:/)?$"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"page": "/_not-found",
|
||||||
|
"regex": "^/_not\\-found(?:/)?$",
|
||||||
|
"routeKeys": {},
|
||||||
|
"namedRegex": "^/_not\\-found(?:/)?$"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"page": "/admin",
|
||||||
|
"regex": "^/admin(?:/)?$",
|
||||||
|
"routeKeys": {},
|
||||||
|
"namedRegex": "^/admin(?:/)?$"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"page": "/admin/categories",
|
||||||
|
"regex": "^/admin/categories(?:/)?$",
|
||||||
|
"routeKeys": {},
|
||||||
|
"namedRegex": "^/admin/categories(?:/)?$"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"page": "/admin/orders",
|
||||||
|
"regex": "^/admin/orders(?:/)?$",
|
||||||
|
"routeKeys": {},
|
||||||
|
"namedRegex": "^/admin/orders(?:/)?$"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"page": "/admin/products",
|
||||||
|
"regex": "^/admin/products(?:/)?$",
|
||||||
|
"routeKeys": {},
|
||||||
|
"namedRegex": "^/admin/products(?:/)?$"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"page": "/admin/users",
|
||||||
|
"regex": "^/admin/users(?:/)?$",
|
||||||
|
"routeKeys": {},
|
||||||
|
"namedRegex": "^/admin/users(?:/)?$"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"page": "/api/admin/recent-orders",
|
||||||
|
"regex": "^/api/admin/recent\\-orders(?:/)?$",
|
||||||
|
"routeKeys": {},
|
||||||
|
"namedRegex": "^/api/admin/recent\\-orders(?:/)?$"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"page": "/auth/confirm",
|
||||||
|
"regex": "^/auth/confirm(?:/)?$",
|
||||||
|
"routeKeys": {},
|
||||||
|
"namedRegex": "^/auth/confirm(?:/)?$"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"page": "/auth/error",
|
||||||
|
"regex": "^/auth/error(?:/)?$",
|
||||||
|
"routeKeys": {},
|
||||||
|
"namedRegex": "^/auth/error(?:/)?$"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"page": "/auth/forgot-password",
|
||||||
|
"regex": "^/auth/forgot\\-password(?:/)?$",
|
||||||
|
"routeKeys": {},
|
||||||
|
"namedRegex": "^/auth/forgot\\-password(?:/)?$"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"page": "/auth/login",
|
||||||
|
"regex": "^/auth/login(?:/)?$",
|
||||||
|
"routeKeys": {},
|
||||||
|
"namedRegex": "^/auth/login(?:/)?$"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"page": "/auth/sign-up",
|
||||||
|
"regex": "^/auth/sign\\-up(?:/)?$",
|
||||||
|
"routeKeys": {},
|
||||||
|
"namedRegex": "^/auth/sign\\-up(?:/)?$"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"page": "/auth/sign-up-success",
|
||||||
|
"regex": "^/auth/sign\\-up\\-success(?:/)?$",
|
||||||
|
"routeKeys": {},
|
||||||
|
"namedRegex": "^/auth/sign\\-up\\-success(?:/)?$"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"page": "/auth/update-password",
|
||||||
|
"regex": "^/auth/update\\-password(?:/)?$",
|
||||||
|
"routeKeys": {},
|
||||||
|
"namedRegex": "^/auth/update\\-password(?:/)?$"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"page": "/favicon.ico",
|
||||||
|
"regex": "^/favicon\\.ico(?:/)?$",
|
||||||
|
"routeKeys": {},
|
||||||
|
"namedRegex": "^/favicon\\.ico(?:/)?$"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"page": "/my-customers",
|
||||||
|
"regex": "^/my\\-customers(?:/)?$",
|
||||||
|
"routeKeys": {},
|
||||||
|
"namedRegex": "^/my\\-customers(?:/)?$"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"page": "/my-customers/new",
|
||||||
|
"regex": "^/my\\-customers/new(?:/)?$",
|
||||||
|
"routeKeys": {},
|
||||||
|
"namedRegex": "^/my\\-customers/new(?:/)?$"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"page": "/my-orders",
|
||||||
|
"regex": "^/my\\-orders(?:/)?$",
|
||||||
|
"routeKeys": {},
|
||||||
|
"namedRegex": "^/my\\-orders(?:/)?$"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"page": "/opengraph-image.png",
|
||||||
|
"regex": "^/opengraph\\-image\\.png(?:/)?$",
|
||||||
|
"routeKeys": {},
|
||||||
|
"namedRegex": "^/opengraph\\-image\\.png(?:/)?$"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"page": "/order",
|
||||||
|
"regex": "^/order(?:/)?$",
|
||||||
|
"routeKeys": {},
|
||||||
|
"namedRegex": "^/order(?:/)?$"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"page": "/order/success",
|
||||||
|
"regex": "^/order/success(?:/)?$",
|
||||||
|
"routeKeys": {},
|
||||||
|
"namedRegex": "^/order/success(?:/)?$"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"page": "/protected",
|
||||||
|
"regex": "^/protected(?:/)?$",
|
||||||
|
"routeKeys": {},
|
||||||
|
"namedRegex": "^/protected(?:/)?$"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"page": "/twitter-image.png",
|
||||||
|
"regex": "^/twitter\\-image\\.png(?:/)?$",
|
||||||
|
"routeKeys": {},
|
||||||
|
"namedRegex": "^/twitter\\-image\\.png(?:/)?$"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"dataRoutes": [],
|
||||||
|
"rsc": {
|
||||||
|
"header": "rsc",
|
||||||
|
"varyHeader": "rsc, next-router-state-tree, next-router-prefetch, next-router-segment-prefetch",
|
||||||
|
"prefetchHeader": "next-router-prefetch",
|
||||||
|
"didPostponeHeader": "x-nextjs-postponed",
|
||||||
|
"contentTypeHeader": "text/x-component",
|
||||||
|
"suffix": ".rsc",
|
||||||
|
"prefetchSegmentHeader": "next-router-segment-prefetch",
|
||||||
|
"prefetchSegmentSuffix": ".segment.rsc",
|
||||||
|
"prefetchSegmentDirSuffix": ".segments",
|
||||||
|
"clientParamParsing": false,
|
||||||
|
"dynamicRSCPrerender": false
|
||||||
|
},
|
||||||
|
"rewriteHeaders": {
|
||||||
|
"pathHeader": "x-nextjs-rewritten-path",
|
||||||
|
"queryHeader": "x-nextjs-rewritten-query"
|
||||||
|
}
|
||||||
|
}
|
||||||
28
build_temp/.next/server/app-paths-manifest.json
Normal file
28
build_temp/.next/server/app-paths-manifest.json
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
{
|
||||||
|
"/_global-error/page": "app/_global-error/page.js",
|
||||||
|
"/_not-found/page": "app/_not-found/page.js",
|
||||||
|
"/admin/categories/page": "app/admin/categories/page.js",
|
||||||
|
"/admin/orders/page": "app/admin/orders/page.js",
|
||||||
|
"/admin/page": "app/admin/page.js",
|
||||||
|
"/admin/products/page": "app/admin/products/page.js",
|
||||||
|
"/admin/users/page": "app/admin/users/page.js",
|
||||||
|
"/api/admin/recent-orders/route": "app/api/admin/recent-orders/route.js",
|
||||||
|
"/auth/confirm/route": "app/auth/confirm/route.js",
|
||||||
|
"/auth/error/page": "app/auth/error/page.js",
|
||||||
|
"/auth/forgot-password/page": "app/auth/forgot-password/page.js",
|
||||||
|
"/auth/login/page": "app/auth/login/page.js",
|
||||||
|
"/auth/sign-up-success/page": "app/auth/sign-up-success/page.js",
|
||||||
|
"/auth/sign-up/page": "app/auth/sign-up/page.js",
|
||||||
|
"/auth/update-password/page": "app/auth/update-password/page.js",
|
||||||
|
"/favicon.ico/route": "app/favicon.ico/route.js",
|
||||||
|
"/my-customers/[id]/page": "app/my-customers/[id]/page.js",
|
||||||
|
"/my-customers/new/page": "app/my-customers/new/page.js",
|
||||||
|
"/my-customers/page": "app/my-customers/page.js",
|
||||||
|
"/my-orders/page": "app/my-orders/page.js",
|
||||||
|
"/opengraph-image.png/route": "app/opengraph-image.png/route.js",
|
||||||
|
"/order/page": "app/order/page.js",
|
||||||
|
"/order/success/page": "app/order/success/page.js",
|
||||||
|
"/page": "app/page.js",
|
||||||
|
"/protected/page": "app/protected/page.js",
|
||||||
|
"/twitter-image.png/route": "app/twitter-image.png/route.js"
|
||||||
|
}
|
||||||
1
build_temp/.next/server/app/_global-error.html
Normal file
1
build_temp/.next/server/app/_global-error.html
Normal file
File diff suppressed because one or more lines are too long
15
build_temp/.next/server/app/_global-error.meta
Normal file
15
build_temp/.next/server/app/_global-error.meta
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"status": 500,
|
||||||
|
"headers": {
|
||||||
|
"x-nextjs-stale-time": "300",
|
||||||
|
"x-nextjs-prerender": "1",
|
||||||
|
"x-next-cache-tags": "_N_T_/layout,_N_T_/_global-error/layout,_N_T_/_global-error/page,_N_T_/_global-error"
|
||||||
|
},
|
||||||
|
"segmentPaths": [
|
||||||
|
"/_tree",
|
||||||
|
"/_full",
|
||||||
|
"/__PAGE__",
|
||||||
|
"/_index",
|
||||||
|
"/_head"
|
||||||
|
]
|
||||||
|
}
|
||||||
15
build_temp/.next/server/app/_global-error.rsc
Normal file
15
build_temp/.next/server/app/_global-error.rsc
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
1:"$Sreact.fragment"
|
||||||
|
2:I[39756,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
|
||||||
|
3:I[37457,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
|
||||||
|
4:I[97367,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"OutletBoundary"]
|
||||||
|
5:"$Sreact.suspense"
|
||||||
|
8:I[97367,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"ViewportBoundary"]
|
||||||
|
a:I[97367,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"MetadataBoundary"]
|
||||||
|
c:I[68027,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default",1]
|
||||||
|
0:{"P":null,"c":["","_global-error"],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]}],[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","html",null,{"id":"__next_error__","children":[["$","head",null,{"children":[["$","title",null,{"children":"500: This page couldn’t load"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }"}}]]}],["$","body",null,{"children":["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","display":"flex","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"style":{"marginTop":"-32px","maxWidth":"325px","padding":"32px 28px","textAlign":"left"},"children":[["$","svg",null,{"width":"32","height":"32","viewBox":"-0.2 -1.5 32 32","fill":"none","style":{"marginBottom":"24px"},"children":["$","path",null,{"d":"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z","fill":"var(--next-error-title)"}]}],["$","h1",null,{"style":{"fontSize":"24px","fontWeight":500,"letterSpacing":"-0.02em","lineHeight":"32px","margin":"0 0 12px 0","color":"var(--next-error-title)"},"children":"This page couldn’t load"}],["$","p",null,{"style":{"fontSize":"14px","fontWeight":400,"lineHeight":"21px","margin":"0 0 20px 0","color":"var(--next-error-message)"},"children":"A server error occurred. Reload to try again."}],["$","form",null,{"style":{"margin":0},"children":["$","button",null,{"type":"submit","style":{"display":"inline-flex","alignItems":"center","justifyContent":"center","height":"32px","padding":"0 12px","fontSize":"14px","fontWeight":500,"lineHeight":"20px","borderRadius":"6px","cursor":"pointer","color":"var(--next-error-btn-text)","background":"var(--next-error-btn-bg)","border":"var(--next-error-btn-border)"},"children":"Reload"}]}]]}]}]}]]}],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,null]},null,false,"$@7"],["$","$1","h",{"children":[null,["$","$L8",null,{"children":"$L9"}],["$","div",null,{"hidden":true,"children":["$","$La",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$Lb"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$c",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"czEjVggXDRFH51IopN6_9"}
|
||||||
|
d:[]
|
||||||
|
7:"$Wd"
|
||||||
|
9:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
||||||
|
e:I[27201,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"IconMark"]
|
||||||
|
6:null
|
||||||
|
b:[["$","link","0",{"rel":"icon","href":"/favicon.ico?favicon.0x3dzn~oxb6tn.ico","sizes":"256x256","type":"image/x-icon"}],["$","$Le","1",{}]]
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
1:"$Sreact.fragment"
|
||||||
|
2:I[97367,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"OutletBoundary"]
|
||||||
|
3:"$Sreact.suspense"
|
||||||
|
0:{"rsc":["$","$1","c",{"children":[["$","html",null,{"id":"__next_error__","children":[["$","head",null,{"children":[["$","title",null,{"children":"500: This page couldn’t load"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }"}}]]}],["$","body",null,{"children":["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","display":"flex","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"style":{"marginTop":"-32px","maxWidth":"325px","padding":"32px 28px","textAlign":"left"},"children":[["$","svg",null,{"width":"32","height":"32","viewBox":"-0.2 -1.5 32 32","fill":"none","style":{"marginBottom":"24px"},"children":["$","path",null,{"d":"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z","fill":"var(--next-error-title)"}]}],["$","h1",null,{"style":{"fontSize":"24px","fontWeight":500,"letterSpacing":"-0.02em","lineHeight":"32px","margin":"0 0 12px 0","color":"var(--next-error-title)"},"children":"This page couldn’t load"}],["$","p",null,{"style":{"fontSize":"14px","fontWeight":400,"lineHeight":"21px","margin":"0 0 20px 0","color":"var(--next-error-message)"},"children":"A server error occurred. Reload to try again."}],["$","form",null,{"style":{"margin":0},"children":["$","button",null,{"type":"submit","style":{"display":"inline-flex","alignItems":"center","justifyContent":"center","height":"32px","padding":"0 12px","fontSize":"14px","fontWeight":500,"lineHeight":"20px","borderRadius":"6px","cursor":"pointer","color":"var(--next-error-btn-text)","background":"var(--next-error-btn-bg)","border":"var(--next-error-btn-border)"},"children":"Reload"}]}]]}]}]}]]}],null,["$","$L2",null,{"children":["$","$3",null,{"name":"Next.MetadataOutlet","children":"$@4"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"czEjVggXDRFH51IopN6_9"}
|
||||||
|
4:null
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
1:"$Sreact.fragment"
|
||||||
|
2:I[39756,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
|
||||||
|
3:I[37457,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
|
||||||
|
4:I[97367,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"OutletBoundary"]
|
||||||
|
5:"$Sreact.suspense"
|
||||||
|
8:I[97367,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"ViewportBoundary"]
|
||||||
|
a:I[97367,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"MetadataBoundary"]
|
||||||
|
c:I[68027,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default",1]
|
||||||
|
0:{"P":null,"c":["","_global-error"],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]}],[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","html",null,{"id":"__next_error__","children":[["$","head",null,{"children":[["$","title",null,{"children":"500: This page couldn’t load"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }"}}]]}],["$","body",null,{"children":["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","display":"flex","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"style":{"marginTop":"-32px","maxWidth":"325px","padding":"32px 28px","textAlign":"left"},"children":[["$","svg",null,{"width":"32","height":"32","viewBox":"-0.2 -1.5 32 32","fill":"none","style":{"marginBottom":"24px"},"children":["$","path",null,{"d":"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z","fill":"var(--next-error-title)"}]}],["$","h1",null,{"style":{"fontSize":"24px","fontWeight":500,"letterSpacing":"-0.02em","lineHeight":"32px","margin":"0 0 12px 0","color":"var(--next-error-title)"},"children":"This page couldn’t load"}],["$","p",null,{"style":{"fontSize":"14px","fontWeight":400,"lineHeight":"21px","margin":"0 0 20px 0","color":"var(--next-error-message)"},"children":"A server error occurred. Reload to try again."}],["$","form",null,{"style":{"margin":0},"children":["$","button",null,{"type":"submit","style":{"display":"inline-flex","alignItems":"center","justifyContent":"center","height":"32px","padding":"0 12px","fontSize":"14px","fontWeight":500,"lineHeight":"20px","borderRadius":"6px","cursor":"pointer","color":"var(--next-error-btn-text)","background":"var(--next-error-btn-bg)","border":"var(--next-error-btn-border)"},"children":"Reload"}]}]]}]}]}]]}],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,null]},null,false,"$@7"],["$","$1","h",{"children":[null,["$","$L8",null,{"children":"$L9"}],["$","div",null,{"hidden":true,"children":["$","$La",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$Lb"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$c",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"czEjVggXDRFH51IopN6_9"}
|
||||||
|
d:[]
|
||||||
|
7:"$Wd"
|
||||||
|
9:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
||||||
|
e:I[27201,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"IconMark"]
|
||||||
|
6:null
|
||||||
|
b:[["$","link","0",{"rel":"icon","href":"/favicon.ico?favicon.0x3dzn~oxb6tn.ico","sizes":"256x256","type":"image/x-icon"}],["$","$Le","1",{}]]
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
1:"$Sreact.fragment"
|
||||||
|
2:I[97367,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"ViewportBoundary"]
|
||||||
|
3:I[97367,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"MetadataBoundary"]
|
||||||
|
4:"$Sreact.suspense"
|
||||||
|
5:I[27201,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"IconMark"]
|
||||||
|
0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","link","0",{"rel":"icon","href":"/favicon.ico?favicon.0x3dzn~oxb6tn.ico","sizes":"256x256","type":"image/x-icon"}],["$","$L5","1",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"czEjVggXDRFH51IopN6_9"}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
1:"$Sreact.fragment"
|
||||||
|
2:I[39756,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
|
||||||
|
3:I[37457,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
|
||||||
|
4:[]
|
||||||
|
0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"czEjVggXDRFH51IopN6_9"}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
0:{"tree":{"name":"","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}},"staleTime":300,"buildId":"czEjVggXDRFH51IopN6_9"}
|
||||||
12
build_temp/.next/server/app/_global-error/page.js
Normal file
12
build_temp/.next/server/app/_global-error/page.js
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
var R=require("../../chunks/ssr/[turbopack]_runtime.js")("server/app/_global-error/page.js")
|
||||||
|
R.c("server/chunks/ssr/[root-of-the-server]__0~c929r._.js")
|
||||||
|
R.c("server/chunks/ssr/node_modules_next_dist_060d1m.._.js")
|
||||||
|
R.c("server/chunks/ssr/node_modules_next_dist_0ixdcs~._.js")
|
||||||
|
R.c("server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0nsg22r.js")
|
||||||
|
R.c("server/chunks/ssr/[root-of-the-server]__0.m8mql._.js")
|
||||||
|
R.c("server/chunks/ssr/[root-of-the-server]__0.angw.._.js")
|
||||||
|
R.c("server/chunks/ssr/node_modules_next_dist_compiled_@opentelemetry_api_index_0zv0b3p.js")
|
||||||
|
R.c("server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0lgvd_..js")
|
||||||
|
R.c("server/chunks/ssr/_next-internal_server_app__global-error_page_actions_0k77kol.js")
|
||||||
|
R.m(99158)
|
||||||
|
module.exports=R.m(99158).exports
|
||||||
5
build_temp/.next/server/app/_global-error/page.js.map
Normal file
5
build_temp/.next/server/app/_global-error/page.js.map
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"version": 3,
|
||||||
|
"sources": [],
|
||||||
|
"sections": []
|
||||||
|
}
|
||||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"/_global-error/page": "app/_global-error/page.js"
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"devFiles": [],
|
||||||
|
"ampDevFiles": [],
|
||||||
|
"polyfillFiles": [
|
||||||
|
"static/chunks/03~yq9q893hmn.js"
|
||||||
|
],
|
||||||
|
"lowPriorityFiles": [],
|
||||||
|
"rootMainFiles": [
|
||||||
|
"static/chunks/0ze4gu236oq96.js",
|
||||||
|
"static/chunks/10qd__0r7a~.l.js",
|
||||||
|
"static/chunks/0-gaanm6h49z~.js",
|
||||||
|
"static/chunks/06c8h6921f-oo.js",
|
||||||
|
"static/chunks/15jasrm2107sy.js",
|
||||||
|
"static/chunks/181uojwh.t2ik.js",
|
||||||
|
"static/chunks/turbopack-0u.mb44r17v0_.js"
|
||||||
|
],
|
||||||
|
"pages": {},
|
||||||
|
"ampFirstPages": []
|
||||||
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"pages": {},
|
||||||
|
"app": {},
|
||||||
|
"appUsingSizeAdjust": false,
|
||||||
|
"pagesUsingSizeAdjust": false
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{}
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"node": {},
|
||||||
|
"edge": {}
|
||||||
|
}
|
||||||
File diff suppressed because one or more lines are too long
1
build_temp/.next/server/app/_not-found.html
Normal file
1
build_temp/.next/server/app/_not-found.html
Normal file
File diff suppressed because one or more lines are too long
16
build_temp/.next/server/app/_not-found.meta
Normal file
16
build_temp/.next/server/app/_not-found.meta
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"status": 404,
|
||||||
|
"headers": {
|
||||||
|
"x-nextjs-stale-time": "300",
|
||||||
|
"x-nextjs-prerender": "1",
|
||||||
|
"x-next-cache-tags": "_N_T_/layout,_N_T_/_not-found/layout,_N_T_/_not-found/page,_N_T_/_not-found"
|
||||||
|
},
|
||||||
|
"segmentPaths": [
|
||||||
|
"/_tree",
|
||||||
|
"/_full",
|
||||||
|
"/_not-found/__PAGE__",
|
||||||
|
"/_not-found",
|
||||||
|
"/_index",
|
||||||
|
"/_head"
|
||||||
|
]
|
||||||
|
}
|
||||||
17
build_temp/.next/server/app/_not-found.rsc
Normal file
17
build_temp/.next/server/app/_not-found.rsc
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
1:"$Sreact.fragment"
|
||||||
|
2:I[63178,["/_next/static/chunks/0usmzazea5o36.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"ThemeProvider"]
|
||||||
|
3:I[39756,["/_next/static/chunks/0usmzazea5o36.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
|
||||||
|
4:I[37457,["/_next/static/chunks/0usmzazea5o36.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
|
||||||
|
5:I[97367,["/_next/static/chunks/0usmzazea5o36.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"OutletBoundary"]
|
||||||
|
6:"$Sreact.suspense"
|
||||||
|
9:I[97367,["/_next/static/chunks/0usmzazea5o36.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"ViewportBoundary"]
|
||||||
|
b:I[97367,["/_next/static/chunks/0usmzazea5o36.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"MetadataBoundary"]
|
||||||
|
d:I[68027,["/_next/static/chunks/0usmzazea5o36.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default",1]
|
||||||
|
:HL["/_next/static/chunks/00s_sac~t0ps5.css","style"]
|
||||||
|
0:{"P":null,"c":["","_not-found"],"q":"","i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/00s_sac~t0ps5.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0usmzazea5o36.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"geist_6ee70f7-module__6GiuUG__className antialiased","children":["$","$L2",null,{"attribute":"class","defaultTheme":"system","enableSystem":true,"disableTransitionOnChange":true,"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],null,["$","$L5",null,{"children":["$","$6",null,{"name":"Next.MetadataOutlet","children":"$@7"}]}]]}],{},null,false,null]},null,false,"$@8"]},null,false,null],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L9",null,{"children":"$La"}],["$","div",null,{"hidden":true,"children":["$","$Lb",null,{"children":["$","$6",null,{"name":"Next.Metadata","children":"$Lc"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$d",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/00s_sac~t0ps5.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"czEjVggXDRFH51IopN6_9"}
|
||||||
|
e:[]
|
||||||
|
8:"$We"
|
||||||
|
a:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
||||||
|
f:I[27201,["/_next/static/chunks/0usmzazea5o36.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"IconMark"]
|
||||||
|
7:null
|
||||||
|
c:[["$","title","0",{"children":"CASPOS-Shop | Die Kasse"}],["$","meta","1",{"name":"description","content":"Konfigurieren und bestellen Sie Ihre maßgeschneiderte Business-Software in Minuten."}],["$","meta","2",{"property":"og:title","content":"CASPOS-Shop | Die Kasse"}],["$","meta","3",{"property":"og:description","content":"Konfigurieren und bestellen Sie Ihre maßgeschneiderte Business-Software in Minuten."}],["$","meta","4",{"property":"og:image","content":"http://localhost:3000/opengraph-image.png?opengraph-image.0rmepv3m6lsw4.png"}],["$","meta","5",{"property":"og:image:type","content":"image/png"}],["$","meta","6",{"property":"og:image:width","content":"1200"}],["$","meta","7",{"property":"og:image:height","content":"600"}],["$","meta","8",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","9",{"name":"twitter:title","content":"CASPOS-Shop | Die Kasse"}],["$","meta","10",{"name":"twitter:description","content":"Konfigurieren und bestellen Sie Ihre maßgeschneiderte Business-Software in Minuten."}],["$","meta","11",{"name":"twitter:image","content":"http://localhost:3000/twitter-image.png?twitter-image.0rmepv3m6lsw4.png"}],["$","meta","12",{"name":"twitter:image:type","content":"image/png"}],["$","meta","13",{"name":"twitter:image:width","content":"1200"}],["$","meta","14",{"name":"twitter:image:height","content":"600"}],["$","link","15",{"rel":"icon","href":"/favicon.ico?favicon.0x3dzn~oxb6tn.ico","sizes":"256x256","type":"image/x-icon"}],["$","$Lf","16",{}]]
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
1:"$Sreact.fragment"
|
||||||
|
2:I[63178,["/_next/static/chunks/0usmzazea5o36.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"ThemeProvider"]
|
||||||
|
3:I[39756,["/_next/static/chunks/0usmzazea5o36.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
|
||||||
|
4:I[37457,["/_next/static/chunks/0usmzazea5o36.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
|
||||||
|
5:I[97367,["/_next/static/chunks/0usmzazea5o36.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"OutletBoundary"]
|
||||||
|
6:"$Sreact.suspense"
|
||||||
|
9:I[97367,["/_next/static/chunks/0usmzazea5o36.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"ViewportBoundary"]
|
||||||
|
b:I[97367,["/_next/static/chunks/0usmzazea5o36.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"MetadataBoundary"]
|
||||||
|
d:I[68027,["/_next/static/chunks/0usmzazea5o36.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default",1]
|
||||||
|
:HL["/_next/static/chunks/00s_sac~t0ps5.css","style"]
|
||||||
|
0:{"P":null,"c":["","_not-found"],"q":"","i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/00s_sac~t0ps5.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0usmzazea5o36.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"geist_6ee70f7-module__6GiuUG__className antialiased","children":["$","$L2",null,{"attribute":"class","defaultTheme":"system","enableSystem":true,"disableTransitionOnChange":true,"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],null,["$","$L5",null,{"children":["$","$6",null,{"name":"Next.MetadataOutlet","children":"$@7"}]}]]}],{},null,false,null]},null,false,"$@8"]},null,false,null],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L9",null,{"children":"$La"}],["$","div",null,{"hidden":true,"children":["$","$Lb",null,{"children":["$","$6",null,{"name":"Next.Metadata","children":"$Lc"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$d",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/00s_sac~t0ps5.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"czEjVggXDRFH51IopN6_9"}
|
||||||
|
e:[]
|
||||||
|
8:"$We"
|
||||||
|
a:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
||||||
|
f:I[27201,["/_next/static/chunks/0usmzazea5o36.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"IconMark"]
|
||||||
|
7:null
|
||||||
|
c:[["$","title","0",{"children":"CASPOS-Shop | Die Kasse"}],["$","meta","1",{"name":"description","content":"Konfigurieren und bestellen Sie Ihre maßgeschneiderte Business-Software in Minuten."}],["$","meta","2",{"property":"og:title","content":"CASPOS-Shop | Die Kasse"}],["$","meta","3",{"property":"og:description","content":"Konfigurieren und bestellen Sie Ihre maßgeschneiderte Business-Software in Minuten."}],["$","meta","4",{"property":"og:image","content":"http://localhost:3000/opengraph-image.png?opengraph-image.0rmepv3m6lsw4.png"}],["$","meta","5",{"property":"og:image:type","content":"image/png"}],["$","meta","6",{"property":"og:image:width","content":"1200"}],["$","meta","7",{"property":"og:image:height","content":"600"}],["$","meta","8",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","9",{"name":"twitter:title","content":"CASPOS-Shop | Die Kasse"}],["$","meta","10",{"name":"twitter:description","content":"Konfigurieren und bestellen Sie Ihre maßgeschneiderte Business-Software in Minuten."}],["$","meta","11",{"name":"twitter:image","content":"http://localhost:3000/twitter-image.png?twitter-image.0rmepv3m6lsw4.png"}],["$","meta","12",{"name":"twitter:image:type","content":"image/png"}],["$","meta","13",{"name":"twitter:image:width","content":"1200"}],["$","meta","14",{"name":"twitter:image:height","content":"600"}],["$","link","15",{"rel":"icon","href":"/favicon.ico?favicon.0x3dzn~oxb6tn.ico","sizes":"256x256","type":"image/x-icon"}],["$","$Lf","16",{}]]
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
1:"$Sreact.fragment"
|
||||||
|
2:I[97367,["/_next/static/chunks/0usmzazea5o36.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"ViewportBoundary"]
|
||||||
|
3:I[97367,["/_next/static/chunks/0usmzazea5o36.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"MetadataBoundary"]
|
||||||
|
4:"$Sreact.suspense"
|
||||||
|
5:I[27201,["/_next/static/chunks/0usmzazea5o36.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"IconMark"]
|
||||||
|
0:{"rsc":["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"CASPOS-Shop | Die Kasse"}],["$","meta","1",{"name":"description","content":"Konfigurieren und bestellen Sie Ihre maßgeschneiderte Business-Software in Minuten."}],["$","meta","2",{"property":"og:title","content":"CASPOS-Shop | Die Kasse"}],["$","meta","3",{"property":"og:description","content":"Konfigurieren und bestellen Sie Ihre maßgeschneiderte Business-Software in Minuten."}],["$","meta","4",{"property":"og:image","content":"http://localhost:3000/opengraph-image.png?opengraph-image.0rmepv3m6lsw4.png"}],["$","meta","5",{"property":"og:image:type","content":"image/png"}],["$","meta","6",{"property":"og:image:width","content":"1200"}],["$","meta","7",{"property":"og:image:height","content":"600"}],["$","meta","8",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","9",{"name":"twitter:title","content":"CASPOS-Shop | Die Kasse"}],["$","meta","10",{"name":"twitter:description","content":"Konfigurieren und bestellen Sie Ihre maßgeschneiderte Business-Software in Minuten."}],["$","meta","11",{"name":"twitter:image","content":"http://localhost:3000/twitter-image.png?twitter-image.0rmepv3m6lsw4.png"}],["$","meta","12",{"name":"twitter:image:type","content":"image/png"}],["$","meta","13",{"name":"twitter:image:width","content":"1200"}],["$","meta","14",{"name":"twitter:image:height","content":"600"}],["$","link","15",{"rel":"icon","href":"/favicon.ico?favicon.0x3dzn~oxb6tn.ico","sizes":"256x256","type":"image/x-icon"}],["$","$L5","16",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"czEjVggXDRFH51IopN6_9"}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
1:"$Sreact.fragment"
|
||||||
|
2:I[63178,["/_next/static/chunks/0usmzazea5o36.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"ThemeProvider"]
|
||||||
|
3:I[39756,["/_next/static/chunks/0usmzazea5o36.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
|
||||||
|
4:I[37457,["/_next/static/chunks/0usmzazea5o36.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
|
||||||
|
:HL["/_next/static/chunks/00s_sac~t0ps5.css","style"]
|
||||||
|
0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/00s_sac~t0ps5.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/0usmzazea5o36.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"geist_6ee70f7-module__6GiuUG__className antialiased","children":["$","$L2",null,{"attribute":"class","defaultTheme":"system","enableSystem":true,"disableTransitionOnChange":true,"children":["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"czEjVggXDRFH51IopN6_9"}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
1:"$Sreact.fragment"
|
||||||
|
2:I[39756,["/_next/static/chunks/0usmzazea5o36.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
|
||||||
|
3:I[37457,["/_next/static/chunks/0usmzazea5o36.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
|
||||||
|
4:[]
|
||||||
|
0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"czEjVggXDRFH51IopN6_9"}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user