@gruncellka/porto-data 0.3.0 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +215 -0
- package/LICENSE +199 -5
- package/README.md +53 -34
- package/index.d.ts +35 -18
- package/index.js +2 -1
- package/package.json +28 -8
- package/porto_data/formats/envelopes.json +120 -0
- package/porto_data/formats/layouts.json +288 -0
- package/porto_data/mappings.json +65 -10
- package/porto_data/metadata.json +662 -125
- package/porto_data/policy/jurisdictions.json +839 -0
- package/porto_data/policy/markets.json +75 -0
- package/porto_data/policy/restrictions.json +668 -0
- package/porto_data/providers/deutschepost/features.json +42 -0
- package/porto_data/providers/deutschepost/graph.json +203 -0
- package/porto_data/providers/deutschepost/limits.json +17 -0
- package/porto_data/providers/deutschepost/marks.json +71 -0
- package/porto_data/providers/deutschepost/prices/products.json +239 -0
- package/porto_data/providers/deutschepost/prices/services.json +51 -0
- package/porto_data/providers/deutschepost/products.json +197 -0
- package/porto_data/providers/deutschepost/services.json +88 -0
- package/porto_data/providers/deutschepost/weights.json +46 -0
- package/porto_data/providers/deutschepost/zones.json +231 -0
- package/porto_data/providers/laposte/features.json +42 -0
- package/porto_data/providers/laposte/graph.json +234 -0
- package/porto_data/providers/laposte/limits.json +17 -0
- package/porto_data/providers/laposte/marks.json +39 -0
- package/porto_data/providers/laposte/prices/products.json +947 -0
- package/porto_data/providers/laposte/prices/services.json +41 -0
- package/porto_data/providers/laposte/products.json +276 -0
- package/porto_data/providers/laposte/services.json +63 -0
- package/porto_data/providers/laposte/weights.json +38 -0
- package/porto_data/providers/laposte/zones.json +230 -0
- package/porto_data/providers/swisspost/features.json +21 -0
- package/porto_data/providers/swisspost/graph.json +212 -0
- package/porto_data/providers/swisspost/limits.json +17 -0
- package/porto_data/providers/swisspost/marks.json +41 -0
- package/porto_data/providers/swisspost/prices/products.json +347 -0
- package/porto_data/providers/swisspost/prices/services.json +31 -0
- package/porto_data/providers/swisspost/products.json +193 -0
- package/porto_data/providers/swisspost/rules.json +25 -0
- package/porto_data/providers/swisspost/services.json +40 -0
- package/porto_data/providers/swisspost/weights.json +38 -0
- package/porto_data/providers/swisspost/zones.json +223 -0
- package/porto_data/providers/ukrposhta/features.json +28 -0
- package/porto_data/providers/ukrposhta/graph.json +148 -0
- package/porto_data/providers/ukrposhta/limits.json +17 -0
- package/porto_data/providers/ukrposhta/marks.json +25 -0
- package/porto_data/providers/ukrposhta/prices/products.json +123 -0
- package/porto_data/providers/ukrposhta/prices/services.json +42 -0
- package/porto_data/providers/ukrposhta/products.json +74 -0
- package/porto_data/providers/ukrposhta/services.json +40 -0
- package/porto_data/providers/ukrposhta/weights.json +26 -0
- package/porto_data/providers/ukrposhta/zones.json +226 -0
- package/porto_data/providers.json +37 -0
- package/porto_data/schemas/envelopes.schema.json +120 -0
- package/porto_data/schemas/features.schema.json +66 -55
- package/porto_data/schemas/graph.schema.json +189 -0
- package/porto_data/schemas/jurisdictions.schema.json +116 -0
- package/porto_data/schemas/layouts.schema.json +156 -0
- package/porto_data/schemas/limits.schema.json +253 -0
- package/porto_data/schemas/mappings.schema.json +73 -0
- package/porto_data/schemas/markets.schema.json +186 -0
- package/porto_data/schemas/marks.schema.json +127 -0
- package/porto_data/schemas/metadata.schema.json +183 -0
- package/porto_data/schemas/porto_ids.schema.json +45 -0
- package/porto_data/schemas/product_prices.schema.json +126 -0
- package/porto_data/schemas/products.schema.json +338 -110
- package/porto_data/schemas/providers.schema.json +71 -0
- package/porto_data/schemas/restrictions.schema.json +175 -355
- package/porto_data/schemas/rules.schema.json +104 -0
- package/porto_data/schemas/service_prices.schema.json +116 -0
- package/porto_data/schemas/services.schema.json +113 -70
- package/porto_data/schemas/weights.schema.json +70 -0
- package/porto_data/schemas/zones.schema.json +78 -72
- package/porto_data/data/data_links.json +0 -148
- package/porto_data/data/dimensions.json +0 -158
- package/porto_data/data/features.json +0 -66
- package/porto_data/data/prices.json +0 -242
- package/porto_data/data/products.json +0 -84
- package/porto_data/data/restrictions.json +0 -795
- package/porto_data/data/services.json +0 -61
- package/porto_data/data/weight_tiers.json +0 -54
- package/porto_data/data/zones.json +0 -230
- package/porto_data/schemas/data_links.schema.json +0 -223
- package/porto_data/schemas/dimensions.schema.json +0 -215
- package/porto_data/schemas/prices.schema.json +0 -180
- package/porto_data/schemas/weight_tiers.schema.json +0 -70
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/gruncellka/porto-data/refs/heads/main/porto_data/schemas/graph.schema.json",
|
|
3
|
+
"file_type": "graph",
|
|
4
|
+
"provider": "laposte",
|
|
5
|
+
"unit": {
|
|
6
|
+
"weight": "g",
|
|
7
|
+
"dimension": "mm",
|
|
8
|
+
"price": "cents",
|
|
9
|
+
"currency": "EUR"
|
|
10
|
+
},
|
|
11
|
+
"dependencies": {
|
|
12
|
+
"products": {
|
|
13
|
+
"file": "products.json",
|
|
14
|
+
"depends_on": [
|
|
15
|
+
"zones.json",
|
|
16
|
+
"weights.json",
|
|
17
|
+
"formats/envelopes.json",
|
|
18
|
+
"services.json",
|
|
19
|
+
"features.json",
|
|
20
|
+
"marks.json"
|
|
21
|
+
],
|
|
22
|
+
"description": "Products require zones, weight tiers, canonical envelope format ids, services, features, and mark profiles"
|
|
23
|
+
},
|
|
24
|
+
"services": {
|
|
25
|
+
"file": "services.json",
|
|
26
|
+
"depends_on": [
|
|
27
|
+
"features.json"
|
|
28
|
+
],
|
|
29
|
+
"description": "Services require features"
|
|
30
|
+
},
|
|
31
|
+
"product_prices": {
|
|
32
|
+
"file": "prices/products.json",
|
|
33
|
+
"depends_on": [
|
|
34
|
+
"products.json",
|
|
35
|
+
"zones.json",
|
|
36
|
+
"weights.json"
|
|
37
|
+
],
|
|
38
|
+
"description": "Base postage grid; file providers/<id>/prices/products.json (file_type product_prices)"
|
|
39
|
+
},
|
|
40
|
+
"service_prices": {
|
|
41
|
+
"file": "prices/services.json",
|
|
42
|
+
"depends_on": [
|
|
43
|
+
"products.json",
|
|
44
|
+
"services.json",
|
|
45
|
+
"zones.json",
|
|
46
|
+
"weights.json"
|
|
47
|
+
],
|
|
48
|
+
"description": "Service surcharge amounts; file providers/<id>/prices/services.json (file_type service_prices)"
|
|
49
|
+
},
|
|
50
|
+
"zones": {
|
|
51
|
+
"file": "zones.json",
|
|
52
|
+
"depends_on": [
|
|
53
|
+
"policy/restrictions.json"
|
|
54
|
+
],
|
|
55
|
+
"description": "Zones may have restricted destinations"
|
|
56
|
+
},
|
|
57
|
+
"weights": {
|
|
58
|
+
"file": "weights.json",
|
|
59
|
+
"depends_on": [],
|
|
60
|
+
"description": "Weight brackets (tier ids) are standalone definitions"
|
|
61
|
+
},
|
|
62
|
+
"envelopes": {
|
|
63
|
+
"file": "formats/envelopes.json",
|
|
64
|
+
"depends_on": [],
|
|
65
|
+
"description": "Global envelope id catalog: physical front size (mm); international baseline (e.g. ISO 269); file formats/envelopes.json"
|
|
66
|
+
},
|
|
67
|
+
"envelope_layouts": {
|
|
68
|
+
"file": "formats/layouts.json",
|
|
69
|
+
"depends_on": [
|
|
70
|
+
"formats/envelopes.json"
|
|
71
|
+
],
|
|
72
|
+
"description": "Jurisdiction-keyed print/window layout (DE/CH/FR); file formats/layouts.json"
|
|
73
|
+
},
|
|
74
|
+
"jurisdictions": {
|
|
75
|
+
"file": "policy/jurisdictions.json",
|
|
76
|
+
"depends_on": [],
|
|
77
|
+
"description": "UN/EU membership sets for restriction framework jurisdiction resolution"
|
|
78
|
+
},
|
|
79
|
+
"markets": {
|
|
80
|
+
"file": "policy/markets.json",
|
|
81
|
+
"depends_on": [],
|
|
82
|
+
"description": "Country-level currency, VAT, and international quote currencies for providers.json country"
|
|
83
|
+
},
|
|
84
|
+
"restrictions": {
|
|
85
|
+
"file": "policy/restrictions.json",
|
|
86
|
+
"depends_on": [
|
|
87
|
+
"policy/jurisdictions.json",
|
|
88
|
+
"zones.json",
|
|
89
|
+
"products.json"
|
|
90
|
+
],
|
|
91
|
+
"description": "Global destination restrictions (bundled as policy/restrictions.json); optional cross-reference to zones and products"
|
|
92
|
+
},
|
|
93
|
+
"limits": {
|
|
94
|
+
"file": "limits.json",
|
|
95
|
+
"depends_on": [
|
|
96
|
+
"policy/restrictions.json"
|
|
97
|
+
],
|
|
98
|
+
"description": "Provider operational limits extend global restrictions after load"
|
|
99
|
+
},
|
|
100
|
+
"features": {
|
|
101
|
+
"file": "features.json",
|
|
102
|
+
"depends_on": [],
|
|
103
|
+
"description": "Features are standalone"
|
|
104
|
+
},
|
|
105
|
+
"marks": {
|
|
106
|
+
"file": "marks.json",
|
|
107
|
+
"depends_on": [],
|
|
108
|
+
"description": "Franking profile catalog: profiles[] (sizes); resolution in graph.edges.marks"
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
"services": [
|
|
112
|
+
"suivi_option",
|
|
113
|
+
"avis_de_reception_national",
|
|
114
|
+
"avis_de_reception_international"
|
|
115
|
+
],
|
|
116
|
+
"edges": {
|
|
117
|
+
"products": {
|
|
118
|
+
"lettre_verte": {
|
|
119
|
+
"zones": [
|
|
120
|
+
"domestic"
|
|
121
|
+
],
|
|
122
|
+
"weight_tiers": [
|
|
123
|
+
"W0020",
|
|
124
|
+
"W0100",
|
|
125
|
+
"W0250",
|
|
126
|
+
"W0500",
|
|
127
|
+
"W1000",
|
|
128
|
+
"W2000"
|
|
129
|
+
]
|
|
130
|
+
},
|
|
131
|
+
"lettre_verte_suivie": {
|
|
132
|
+
"zones": [
|
|
133
|
+
"domestic",
|
|
134
|
+
"zone_1_eu",
|
|
135
|
+
"zone_2_europe",
|
|
136
|
+
"world"
|
|
137
|
+
],
|
|
138
|
+
"weight_tiers": [
|
|
139
|
+
"W0020",
|
|
140
|
+
"W0100",
|
|
141
|
+
"W0250",
|
|
142
|
+
"W0500",
|
|
143
|
+
"W1000",
|
|
144
|
+
"W2000"
|
|
145
|
+
]
|
|
146
|
+
},
|
|
147
|
+
"lettre_services_plus": {
|
|
148
|
+
"zones": [
|
|
149
|
+
"domestic"
|
|
150
|
+
],
|
|
151
|
+
"weight_tiers": [
|
|
152
|
+
"W0020",
|
|
153
|
+
"W0100",
|
|
154
|
+
"W0250",
|
|
155
|
+
"W0500",
|
|
156
|
+
"W1000",
|
|
157
|
+
"W2000"
|
|
158
|
+
]
|
|
159
|
+
},
|
|
160
|
+
"lettre_recommandee_r_un": {
|
|
161
|
+
"zones": [
|
|
162
|
+
"domestic"
|
|
163
|
+
],
|
|
164
|
+
"weight_tiers": [
|
|
165
|
+
"W0020",
|
|
166
|
+
"W0050",
|
|
167
|
+
"W0100",
|
|
168
|
+
"W0250",
|
|
169
|
+
"W0500",
|
|
170
|
+
"W1000",
|
|
171
|
+
"W2000"
|
|
172
|
+
]
|
|
173
|
+
},
|
|
174
|
+
"lettre_recommandee_r_deux": {
|
|
175
|
+
"zones": [
|
|
176
|
+
"domestic"
|
|
177
|
+
],
|
|
178
|
+
"weight_tiers": [
|
|
179
|
+
"W0020",
|
|
180
|
+
"W0050",
|
|
181
|
+
"W0100",
|
|
182
|
+
"W0250",
|
|
183
|
+
"W0500",
|
|
184
|
+
"W1000",
|
|
185
|
+
"W2000"
|
|
186
|
+
]
|
|
187
|
+
},
|
|
188
|
+
"lettre_recommandee_r_trois": {
|
|
189
|
+
"zones": [
|
|
190
|
+
"domestic"
|
|
191
|
+
],
|
|
192
|
+
"weight_tiers": [
|
|
193
|
+
"W0020",
|
|
194
|
+
"W0050",
|
|
195
|
+
"W0100",
|
|
196
|
+
"W0250",
|
|
197
|
+
"W0500",
|
|
198
|
+
"W1000",
|
|
199
|
+
"W2000"
|
|
200
|
+
]
|
|
201
|
+
},
|
|
202
|
+
"lettre_recommandee_inter_r_un": {
|
|
203
|
+
"zones": [
|
|
204
|
+
"zone_1_eu",
|
|
205
|
+
"zone_2_europe",
|
|
206
|
+
"world"
|
|
207
|
+
],
|
|
208
|
+
"weight_tiers": [
|
|
209
|
+
"W0020",
|
|
210
|
+
"W0050",
|
|
211
|
+
"W0100",
|
|
212
|
+
"W0250",
|
|
213
|
+
"W0500",
|
|
214
|
+
"W1000",
|
|
215
|
+
"W2000"
|
|
216
|
+
]
|
|
217
|
+
}
|
|
218
|
+
},
|
|
219
|
+
"marks": {
|
|
220
|
+
"domestic": {
|
|
221
|
+
"profile": "domestic"
|
|
222
|
+
},
|
|
223
|
+
"zone_1_eu": {
|
|
224
|
+
"profile": "international"
|
|
225
|
+
},
|
|
226
|
+
"zone_2_europe": {
|
|
227
|
+
"profile": "international"
|
|
228
|
+
},
|
|
229
|
+
"world": {
|
|
230
|
+
"profile": "international"
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/gruncellka/porto-data/refs/heads/main/porto_data/schemas/limits.schema.json",
|
|
3
|
+
"file_type": "limits",
|
|
4
|
+
"provider": "laposte",
|
|
5
|
+
"unit": {
|
|
6
|
+
"country_code": "ISO 3166-1 alpha-2",
|
|
7
|
+
"date": "ISO 8601"
|
|
8
|
+
},
|
|
9
|
+
"context": {
|
|
10
|
+
"national": {
|
|
11
|
+
"description": "Letter-format products only (no colis). Letter destination gating: policy/restrictions.json + zones.json. limits[] only for La Poste–documented operational blocks on letters (citable source).",
|
|
12
|
+
"notes": "Do not mirror broad conflict lists here; add a row only when it changes letter acceptance or delivery for a destination you can reference."
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"limits": [],
|
|
16
|
+
"frameworks": {}
|
|
17
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/gruncellka/porto-data/refs/heads/main/porto_data/schemas/marks.schema.json",
|
|
3
|
+
"file_type": "marks",
|
|
4
|
+
"provider": "laposte",
|
|
5
|
+
"unit": {
|
|
6
|
+
"dimension": "mm"
|
|
7
|
+
},
|
|
8
|
+
"default_profile": "domestic",
|
|
9
|
+
"profiles": [
|
|
10
|
+
{
|
|
11
|
+
"id": "domestic",
|
|
12
|
+
"mark_type": "label",
|
|
13
|
+
"label": "Mon Timbre en ligne domestic",
|
|
14
|
+
"description": "MTEL stamp label for France and Outre-mer",
|
|
15
|
+
"scope_notes": "Nominal Avery L7159 label 63.5×33.9 mm; registered MTEL uses same stamp size (no separate profile until measured) plus paper liasse",
|
|
16
|
+
"size": {
|
|
17
|
+
"width": 64,
|
|
18
|
+
"height": 34
|
|
19
|
+
},
|
|
20
|
+
"mime_type": [
|
|
21
|
+
"application/pdf"
|
|
22
|
+
]
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"id": "international",
|
|
26
|
+
"mark_type": "label",
|
|
27
|
+
"label": "Mon Timbre en ligne international",
|
|
28
|
+
"description": "MTEL stamp label for international destinations",
|
|
29
|
+
"scope_notes": "Same label dimensions as domestic; international registered MTEL discontinued online",
|
|
30
|
+
"size": {
|
|
31
|
+
"width": 64,
|
|
32
|
+
"height": 34
|
|
33
|
+
},
|
|
34
|
+
"mime_type": [
|
|
35
|
+
"application/pdf"
|
|
36
|
+
]
|
|
37
|
+
}
|
|
38
|
+
]
|
|
39
|
+
}
|