ksef-client-ts 0.5.1 → 0.5.2
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/README.md +4 -3
- package/dist/cli.js +762 -560
- package/dist/cli.js.map +1 -1
- package/dist/index.cjs +845 -738
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +27 -2
- package/dist/index.d.ts +27 -2
- package/dist/index.js +986 -882
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -134,6 +134,34 @@ var init_ksef_forbidden_error = __esm({
|
|
|
134
134
|
}
|
|
135
135
|
});
|
|
136
136
|
|
|
137
|
+
// src/errors/ksef-validation-error.ts
|
|
138
|
+
var ksef_validation_error_exports = {};
|
|
139
|
+
__export(ksef_validation_error_exports, {
|
|
140
|
+
KSeFValidationError: () => KSeFValidationError
|
|
141
|
+
});
|
|
142
|
+
var KSeFValidationError;
|
|
143
|
+
var init_ksef_validation_error = __esm({
|
|
144
|
+
"src/errors/ksef-validation-error.ts"() {
|
|
145
|
+
"use strict";
|
|
146
|
+
init_ksef_error();
|
|
147
|
+
KSeFValidationError = class _KSeFValidationError extends KSeFError {
|
|
148
|
+
details;
|
|
149
|
+
constructor(message, details = []) {
|
|
150
|
+
super(message);
|
|
151
|
+
this.name = "KSeFValidationError";
|
|
152
|
+
this.details = details;
|
|
153
|
+
}
|
|
154
|
+
static fromField(field, message) {
|
|
155
|
+
return new _KSeFValidationError(message, [{ field, message }]);
|
|
156
|
+
}
|
|
157
|
+
static fromMessages(messages2) {
|
|
158
|
+
const details = messages2.map((m) => ({ message: m }));
|
|
159
|
+
return new _KSeFValidationError(messages2.join("; "), details);
|
|
160
|
+
}
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
|
|
137
165
|
// src/config/environments.ts
|
|
138
166
|
var Environment;
|
|
139
167
|
var init_environments = __esm({
|
|
@@ -272,30 +300,6 @@ var init_retry_policy = __esm({
|
|
|
272
300
|
}
|
|
273
301
|
});
|
|
274
302
|
|
|
275
|
-
// src/errors/ksef-validation-error.ts
|
|
276
|
-
var KSeFValidationError;
|
|
277
|
-
var init_ksef_validation_error = __esm({
|
|
278
|
-
"src/errors/ksef-validation-error.ts"() {
|
|
279
|
-
"use strict";
|
|
280
|
-
init_ksef_error();
|
|
281
|
-
KSeFValidationError = class _KSeFValidationError extends KSeFError {
|
|
282
|
-
details;
|
|
283
|
-
constructor(message, details = []) {
|
|
284
|
-
super(message);
|
|
285
|
-
this.name = "KSeFValidationError";
|
|
286
|
-
this.details = details;
|
|
287
|
-
}
|
|
288
|
-
static fromField(field, message) {
|
|
289
|
-
return new _KSeFValidationError(message, [{ field, message }]);
|
|
290
|
-
}
|
|
291
|
-
static fromMessages(messages2) {
|
|
292
|
-
const details = messages2.map((m) => ({ message: m }));
|
|
293
|
-
return new _KSeFValidationError(messages2.join("; "), details);
|
|
294
|
-
}
|
|
295
|
-
};
|
|
296
|
-
}
|
|
297
|
-
});
|
|
298
|
-
|
|
299
303
|
// src/http/presigned-url-policy.ts
|
|
300
304
|
function defaultPresignedUrlPolicy() {
|
|
301
305
|
return {
|
|
@@ -2746,6 +2750,199 @@ var init_xml = __esm({
|
|
|
2746
2750
|
}
|
|
2747
2751
|
});
|
|
2748
2752
|
|
|
2753
|
+
// src/utils/zip.ts
|
|
2754
|
+
var zip_exports = {};
|
|
2755
|
+
__export(zip_exports, {
|
|
2756
|
+
createZip: () => createZip,
|
|
2757
|
+
unzip: () => unzip
|
|
2758
|
+
});
|
|
2759
|
+
import { ZipFile } from "yazl";
|
|
2760
|
+
import { fromBuffer } from "yauzl";
|
|
2761
|
+
async function createZip(entries) {
|
|
2762
|
+
return new Promise((resolve2, reject) => {
|
|
2763
|
+
const zipfile = new ZipFile();
|
|
2764
|
+
for (const entry of entries) {
|
|
2765
|
+
zipfile.addBuffer(Buffer.from(entry.content), entry.fileName);
|
|
2766
|
+
}
|
|
2767
|
+
const chunks = [];
|
|
2768
|
+
zipfile.outputStream.on("data", (chunk) => chunks.push(chunk));
|
|
2769
|
+
zipfile.outputStream.on("error", (err) => reject(err));
|
|
2770
|
+
zipfile.outputStream.on("end", () => resolve2(Buffer.concat(chunks)));
|
|
2771
|
+
zipfile.end();
|
|
2772
|
+
});
|
|
2773
|
+
}
|
|
2774
|
+
async function unzip(buffer, options = {}) {
|
|
2775
|
+
const limits2 = { ...DEFAULT_UNZIP_OPTIONS, ...options };
|
|
2776
|
+
return new Promise((resolve2, reject) => {
|
|
2777
|
+
fromBuffer(buffer, { lazyEntries: true }, (err, zipfile) => {
|
|
2778
|
+
if (err || !zipfile) {
|
|
2779
|
+
reject(err ?? new Error("Failed to open zip buffer"));
|
|
2780
|
+
return;
|
|
2781
|
+
}
|
|
2782
|
+
const files = /* @__PURE__ */ new Map();
|
|
2783
|
+
let totalUncompressed = 0;
|
|
2784
|
+
zipfile.readEntry();
|
|
2785
|
+
zipfile.on("entry", (entry) => {
|
|
2786
|
+
if (entry.fileName.endsWith("/")) {
|
|
2787
|
+
zipfile.readEntry();
|
|
2788
|
+
return;
|
|
2789
|
+
}
|
|
2790
|
+
if (limits2.maxFiles > 0 && files.size >= limits2.maxFiles) {
|
|
2791
|
+
reject(new Error("zip contains too many files"));
|
|
2792
|
+
return;
|
|
2793
|
+
}
|
|
2794
|
+
const uncompressedSize = entry.uncompressedSize ?? 0;
|
|
2795
|
+
const compressedSize = entry.compressedSize ?? 0;
|
|
2796
|
+
if (limits2.maxFileUncompressedSize > 0 && uncompressedSize > limits2.maxFileUncompressedSize) {
|
|
2797
|
+
reject(new Error("zip entry exceeds max_file_uncompressed_size"));
|
|
2798
|
+
return;
|
|
2799
|
+
}
|
|
2800
|
+
if (limits2.maxTotalUncompressedSize > 0) {
|
|
2801
|
+
totalUncompressed += uncompressedSize;
|
|
2802
|
+
if (totalUncompressed > limits2.maxTotalUncompressedSize) {
|
|
2803
|
+
reject(new Error("zip exceeds max_total_uncompressed_size"));
|
|
2804
|
+
return;
|
|
2805
|
+
}
|
|
2806
|
+
}
|
|
2807
|
+
if (limits2.maxCompressionRatio !== null) {
|
|
2808
|
+
if (compressedSize === 0 && uncompressedSize > 0) {
|
|
2809
|
+
reject(new Error("zip entry has suspicious compression metadata"));
|
|
2810
|
+
return;
|
|
2811
|
+
}
|
|
2812
|
+
if (compressedSize > 0 && uncompressedSize > 0) {
|
|
2813
|
+
const ratio = uncompressedSize / compressedSize;
|
|
2814
|
+
if (ratio > limits2.maxCompressionRatio) {
|
|
2815
|
+
reject(new Error("zip entry exceeds max_compression_ratio"));
|
|
2816
|
+
return;
|
|
2817
|
+
}
|
|
2818
|
+
}
|
|
2819
|
+
}
|
|
2820
|
+
zipfile.openReadStream(entry, (streamErr, stream) => {
|
|
2821
|
+
if (streamErr || !stream) {
|
|
2822
|
+
reject(streamErr ?? new Error("Failed to read zip entry"));
|
|
2823
|
+
return;
|
|
2824
|
+
}
|
|
2825
|
+
const chunks = [];
|
|
2826
|
+
stream.on("data", (chunk) => chunks.push(chunk));
|
|
2827
|
+
stream.on("error", (streamError) => reject(streamError));
|
|
2828
|
+
stream.on("end", () => {
|
|
2829
|
+
files.set(entry.fileName, Buffer.concat(chunks));
|
|
2830
|
+
zipfile.readEntry();
|
|
2831
|
+
});
|
|
2832
|
+
});
|
|
2833
|
+
});
|
|
2834
|
+
zipfile.on("end", () => resolve2(files));
|
|
2835
|
+
zipfile.on("error", (zipErr) => reject(zipErr));
|
|
2836
|
+
});
|
|
2837
|
+
});
|
|
2838
|
+
}
|
|
2839
|
+
var DEFAULT_UNZIP_OPTIONS;
|
|
2840
|
+
var init_zip = __esm({
|
|
2841
|
+
"src/utils/zip.ts"() {
|
|
2842
|
+
"use strict";
|
|
2843
|
+
DEFAULT_UNZIP_OPTIONS = {
|
|
2844
|
+
maxFiles: 1e4,
|
|
2845
|
+
maxTotalUncompressedSize: 2e9,
|
|
2846
|
+
maxFileUncompressedSize: 5e8,
|
|
2847
|
+
maxCompressionRatio: 200
|
|
2848
|
+
};
|
|
2849
|
+
}
|
|
2850
|
+
});
|
|
2851
|
+
|
|
2852
|
+
// src/validation/xml-to-object.ts
|
|
2853
|
+
import { DOMParser as DOMParser2 } from "@xmldom/xmldom";
|
|
2854
|
+
function xmlToObject(xml) {
|
|
2855
|
+
const errors = [];
|
|
2856
|
+
const doc = new DOMParser2({
|
|
2857
|
+
errorHandler: {
|
|
2858
|
+
warning: (_msg) => {
|
|
2859
|
+
},
|
|
2860
|
+
error: (msg) => errors.push(msg),
|
|
2861
|
+
fatalError: (msg) => errors.push(msg)
|
|
2862
|
+
}
|
|
2863
|
+
}).parseFromString(xml, "text/xml");
|
|
2864
|
+
if (errors.length > 0 || !doc || !doc.documentElement) {
|
|
2865
|
+
return { object: null, rootElement: null, namespace: null, errors };
|
|
2866
|
+
}
|
|
2867
|
+
const root = doc.documentElement;
|
|
2868
|
+
const rootName = getLocalName(root);
|
|
2869
|
+
const namespace = root.namespaceURI || null;
|
|
2870
|
+
const obj = elementToObject(root);
|
|
2871
|
+
return {
|
|
2872
|
+
object: typeof obj === "object" && obj !== null ? obj : { "#text": obj },
|
|
2873
|
+
rootElement: rootName,
|
|
2874
|
+
namespace,
|
|
2875
|
+
errors: []
|
|
2876
|
+
};
|
|
2877
|
+
}
|
|
2878
|
+
function getLocalName(node) {
|
|
2879
|
+
if (node.localName) return node.localName;
|
|
2880
|
+
const name = node.nodeName;
|
|
2881
|
+
const idx = name.indexOf(":");
|
|
2882
|
+
return idx === -1 ? name : name.substring(idx + 1);
|
|
2883
|
+
}
|
|
2884
|
+
function elementToObject(el) {
|
|
2885
|
+
const result = {};
|
|
2886
|
+
let hasChildElements = false;
|
|
2887
|
+
for (let i = 0; i < el.attributes.length; i++) {
|
|
2888
|
+
const a = el.attributes.item(i);
|
|
2889
|
+
if (!a) continue;
|
|
2890
|
+
const name = a.nodeName;
|
|
2891
|
+
if (name === "xmlns" || name.startsWith("xmlns:")) continue;
|
|
2892
|
+
const attrLocal = getLocalName(a);
|
|
2893
|
+
result[`@${attrLocal}`] = a.value;
|
|
2894
|
+
}
|
|
2895
|
+
const childCounts = /* @__PURE__ */ new Map();
|
|
2896
|
+
for (let i = 0; i < el.childNodes.length; i++) {
|
|
2897
|
+
const child = el.childNodes.item(i);
|
|
2898
|
+
if (!child || child.nodeType !== 1) continue;
|
|
2899
|
+
const name = getLocalName(child);
|
|
2900
|
+
childCounts.set(name, (childCounts.get(name) || 0) + 1);
|
|
2901
|
+
hasChildElements = true;
|
|
2902
|
+
}
|
|
2903
|
+
if (!hasChildElements) {
|
|
2904
|
+
const text = getTextContent(el);
|
|
2905
|
+
const hasAttrs = Object.keys(result).length > 0;
|
|
2906
|
+
if (hasAttrs) {
|
|
2907
|
+
result["#text"] = text;
|
|
2908
|
+
return result;
|
|
2909
|
+
}
|
|
2910
|
+
return text;
|
|
2911
|
+
}
|
|
2912
|
+
for (let i = 0; i < el.childNodes.length; i++) {
|
|
2913
|
+
const child = el.childNodes.item(i);
|
|
2914
|
+
if (!child || child.nodeType !== 1) continue;
|
|
2915
|
+
const name = getLocalName(child);
|
|
2916
|
+
const value = elementToObject(child);
|
|
2917
|
+
const count = childCounts.get(name) || 1;
|
|
2918
|
+
if (count > 1) {
|
|
2919
|
+
if (!Array.isArray(result[name])) {
|
|
2920
|
+
result[name] = [];
|
|
2921
|
+
}
|
|
2922
|
+
result[name].push(value);
|
|
2923
|
+
} else {
|
|
2924
|
+
result[name] = value;
|
|
2925
|
+
}
|
|
2926
|
+
}
|
|
2927
|
+
return result;
|
|
2928
|
+
}
|
|
2929
|
+
function getTextContent(el) {
|
|
2930
|
+
let text = "";
|
|
2931
|
+
for (let i = 0; i < el.childNodes.length; i++) {
|
|
2932
|
+
const child = el.childNodes.item(i);
|
|
2933
|
+
if (!child) continue;
|
|
2934
|
+
if (child.nodeType === 3 || child.nodeType === 4) {
|
|
2935
|
+
text += child.nodeValue || "";
|
|
2936
|
+
}
|
|
2937
|
+
}
|
|
2938
|
+
return text.trim();
|
|
2939
|
+
}
|
|
2940
|
+
var init_xml_to_object = __esm({
|
|
2941
|
+
"src/validation/xml-to-object.ts"() {
|
|
2942
|
+
"use strict";
|
|
2943
|
+
}
|
|
2944
|
+
});
|
|
2945
|
+
|
|
2749
2946
|
// src/validation/schemas/fa3.ts
|
|
2750
2947
|
var fa3_exports = {};
|
|
2751
2948
|
__export(fa3_exports, {
|
|
@@ -2760,18 +2957,18 @@ var init_fa3 = __esm({
|
|
|
2760
2957
|
TDataCzas = z.string();
|
|
2761
2958
|
TZnakowy = z.string().min(1).max(256);
|
|
2762
2959
|
TNaglowek = z.object({
|
|
2763
|
-
"KodFormularza": z.object({ "#text": TKodFormularza, "@kodSystemowy": z.literal("FA (3)"), "@wersjaSchemy": z.literal("1-0E") }),
|
|
2960
|
+
"KodFormularza": z.object({ "#text": TKodFormularza, "@kodSystemowy": z.literal("FA (3)"), "@wersjaSchemy": z.literal("1-0E") }).strict(),
|
|
2764
2961
|
"WariantFormularza": z.literal("3"),
|
|
2765
2962
|
"DataWytworzeniaFa": z.string(),
|
|
2766
2963
|
"SystemInfo": TZnakowy.optional()
|
|
2767
|
-
});
|
|
2964
|
+
}).strict();
|
|
2768
2965
|
TKodyKrajowUE = z.enum(["AT", "BE", "BG", "CY", "CZ", "DK", "EE", "FI", "FR", "DE", "EL", "HR", "HU", "IE", "IT", "LV", "LT", "LU", "MT", "NL", "PL", "PT", "RO", "SK", "SI", "ES", "SE", "XI"]);
|
|
2769
2966
|
TNrNIP = z.string().regex(/^[1-9]((\d[1-9])|([1-9]\d))\d{7}$/);
|
|
2770
2967
|
TZnakowy512 = z.string().min(1).max(512);
|
|
2771
2968
|
TPodmiot1 = z.object({
|
|
2772
2969
|
"NIP": TNrNIP,
|
|
2773
2970
|
"Nazwa": TZnakowy512
|
|
2774
|
-
});
|
|
2971
|
+
}).strict();
|
|
2775
2972
|
TKodKraju = z.enum(["AF", "AX", "AL", "DZ", "AD", "AO", "AI", "AQ", "AG", "AN", "SA", "AR", "AM", "AW", "AU", "AT", "AZ", "BS", "BH", "BD", "BB", "BE", "BZ", "BJ", "BM", "BT", "BY", "BO", "BQ", "BA", "BW", "BR", "BN", "IO", "BG", "BF", "BI", "XC", "CL", "CN", "HR", "CW", "CY", "TD", "ME", "DK", "DM", "DO", "DJ", "EG", "EC", "ER", "EE", "ET", "FK", "FJ", "PH", "FI", "FR", "TF", "GA", "GM", "GH", "GI", "GR", "GD", "GL", "GE", "GU", "GG", "GY", "GF", "GP", "GT", "GN", "GQ", "GW", "HT", "ES", "HN", "HK", "IN", "ID", "IQ", "IR", "IE", "IS", "IL", "JM", "JP", "YE", "JE", "JO", "KY", "KH", "CM", "CA", "QA", "KZ", "KE", "KG", "KI", "CO", "KM", "CG", "CD", "KP", "XK", "CR", "CU", "KW", "LA", "LS", "LB", "LR", "LY", "LI", "LT", "LV", "LU", "MK", "MG", "YT", "MO", "MW", "MV", "MY", "ML", "MT", "MP", "MA", "MQ", "MR", "MU", "MX", "XL", "FM", "UM", "MD", "MC", "MN", "MS", "MZ", "MM", "NA", "NR", "NP", "NL", "DE", "NE", "NG", "NI", "NU", "NF", "NO", "NC", "NZ", "PS", "OM", "PK", "PW", "PA", "PG", "PY", "PE", "PN", "PF", "PL", "GS", "PT", "PR", "CF", "CZ", "KR", "ZA", "RE", "RU", "RO", "RW", "EH", "BL", "KN", "LC", "MF", "VC", "SV", "WS", "AS", "SM", "SN", "RS", "SC", "SL", "SG", "SK", "SI", "SO", "LK", "PM", "US", "SZ", "SD", "SS", "SR", "SJ", "SH", "SY", "CH", "SE", "TJ", "TH", "TW", "TZ", "TG", "TK", "TO", "TT", "TN", "TR", "TM", "TV", "UG", "UA", "UY", "UZ", "VU", "WF", "VA", "HU", "VE", "GB", "VN", "IT", "TL", "CI", "BV", "CX", "IM", "SX", "CK", "VI", "VG", "HM", "CC", "MH", "FO", "SB", "ST", "TC", "ZM", "CV", "ZW", "AE", "XI"]);
|
|
2776
2973
|
TGLN = z.string().min(1).max(13);
|
|
2777
2974
|
TAdres = z.object({
|
|
@@ -2779,7 +2976,7 @@ var init_fa3 = __esm({
|
|
|
2779
2976
|
"AdresL1": TZnakowy512,
|
|
2780
2977
|
"AdresL2": TZnakowy512.optional(),
|
|
2781
2978
|
"GLN": TGLN.optional()
|
|
2782
|
-
});
|
|
2979
|
+
}).strict();
|
|
2783
2980
|
TAdresEmail = z.string().min(3).max(255).regex(/^(.)+@(.)+$/);
|
|
2784
2981
|
TNumerTelefonu = z.string().min(1).max(16);
|
|
2785
2982
|
TStatusInfoPodatnika = z.enum(["1", "2", "3", "4"]);
|
|
@@ -2794,7 +2991,7 @@ var init_fa3 = __esm({
|
|
|
2794
2991
|
"NrID": z.string().min(1).max(50).optional(),
|
|
2795
2992
|
"BrakID": TWybor1.optional(),
|
|
2796
2993
|
"Nazwa": TZnakowy512.optional()
|
|
2797
|
-
});
|
|
2994
|
+
}).strict();
|
|
2798
2995
|
TZnakowy50 = z.string().min(1).max(50);
|
|
2799
2996
|
TZnakowy20 = z.string().min(1).max(20);
|
|
2800
2997
|
TNIPIdWew = z.string().min(1).max(20).regex(/^[1-9]((\d[1-9])|([1-9]\d))\d{7}-\d{5}$/);
|
|
@@ -2807,7 +3004,7 @@ var init_fa3 = __esm({
|
|
|
2807
3004
|
"NrID": z.string().min(1).max(50).optional(),
|
|
2808
3005
|
"BrakID": TWybor1.optional(),
|
|
2809
3006
|
"Nazwa": TZnakowy512.optional()
|
|
2810
|
-
});
|
|
3007
|
+
}).strict();
|
|
2811
3008
|
TRolaPodmiotu3 = z.enum(["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11"]);
|
|
2812
3009
|
TProcentowy = z.coerce.number().min(0).max(100);
|
|
2813
3010
|
TRolaPodmiotuUpowaznionego = z.enum(["1", "2", "3"]);
|
|
@@ -2825,7 +3022,7 @@ var init_fa3 = __esm({
|
|
|
2825
3022
|
"NrWiersza": TNaturalny.optional(),
|
|
2826
3023
|
"Klucz": TZnakowy,
|
|
2827
3024
|
"Wartosc": TZnakowy
|
|
2828
|
-
});
|
|
3025
|
+
}).strict();
|
|
2829
3026
|
TKwotowy2 = z.string().regex(/^-?([1-9]\d{0,13}|0)(\.\d{1,8})?$/);
|
|
2830
3027
|
TStawkaPodatku = z.enum(["23", "22", "8", "7", "5", "4", "3", "0 KR", "0 WDT", "0 EX", "zw", "oo", "np I", "np II"]);
|
|
2831
3028
|
TGTU = z.enum(["GTU_01", "GTU_02", "GTU_03", "GTU_04", "GTU_05", "GTU_06", "GTU_07", "GTU_08", "GTU_09", "GTU_10", "GTU_11", "GTU_12", "GTU_13"]);
|
|
@@ -2840,7 +3037,7 @@ var init_fa3 = __esm({
|
|
|
2840
3037
|
"RachunekWlasnyBanku": TRachunekWlasnyBanku.optional(),
|
|
2841
3038
|
"NazwaBanku": TZnakowy.optional(),
|
|
2842
3039
|
"OpisRachunku": TZnakowy.optional()
|
|
2843
|
-
});
|
|
3040
|
+
}).strict();
|
|
2844
3041
|
TDataU = z.string();
|
|
2845
3042
|
TRodzajTransportu = z.enum(["1", "2", "3", "4", "5", "7", "8"]);
|
|
2846
3043
|
TLadunek = z.enum(["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20"]);
|
|
@@ -2861,13 +3058,13 @@ var init_fa3 = __esm({
|
|
|
2861
3058
|
"AdresL1": TZnakowy512,
|
|
2862
3059
|
"AdresL2": TZnakowy512.optional(),
|
|
2863
3060
|
"GLN": TGLN.optional()
|
|
2864
|
-
}).optional(),
|
|
3061
|
+
}).strict().optional(),
|
|
2865
3062
|
"DaneKontaktowe": z.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z.array(z.object({
|
|
2866
3063
|
"Email": TAdresEmail.optional(),
|
|
2867
3064
|
"Telefon": TNumerTelefonu.optional()
|
|
2868
|
-
})).min(0).max(3)).optional(),
|
|
3065
|
+
}).strict()).min(0).max(3)).optional(),
|
|
2869
3066
|
"StatusInfoPodatnika": TStatusInfoPodatnika.optional()
|
|
2870
|
-
}),
|
|
3067
|
+
}).strict(),
|
|
2871
3068
|
"Podmiot2": z.object({
|
|
2872
3069
|
"NrEORI": TZnakowy.optional(),
|
|
2873
3070
|
"DaneIdentyfikacyjne": TPodmiot2,
|
|
@@ -2876,12 +3073,12 @@ var init_fa3 = __esm({
|
|
|
2876
3073
|
"DaneKontaktowe": z.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z.array(z.object({
|
|
2877
3074
|
"Email": TAdresEmail.optional(),
|
|
2878
3075
|
"Telefon": TNumerTelefonu.optional()
|
|
2879
|
-
})).min(0).max(3)).optional(),
|
|
3076
|
+
}).strict()).min(0).max(3)).optional(),
|
|
2880
3077
|
"NrKlienta": TZnakowy.optional(),
|
|
2881
3078
|
"IDNabywcy": z.string().min(1).max(32).optional(),
|
|
2882
3079
|
"JST": z.enum(["1", "2"]),
|
|
2883
3080
|
"GV": z.enum(["1", "2"])
|
|
2884
|
-
}),
|
|
3081
|
+
}).strict(),
|
|
2885
3082
|
"Podmiot3": z.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z.array(z.object({
|
|
2886
3083
|
"IDNabywcy": z.string().min(1).max(32).optional(),
|
|
2887
3084
|
"NrEORI": TZnakowy.optional(),
|
|
@@ -2891,13 +3088,13 @@ var init_fa3 = __esm({
|
|
|
2891
3088
|
"DaneKontaktowe": z.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z.array(z.object({
|
|
2892
3089
|
"Email": TAdresEmail.optional(),
|
|
2893
3090
|
"Telefon": TNumerTelefonu.optional()
|
|
2894
|
-
})).min(0).max(3)).optional(),
|
|
3091
|
+
}).strict()).min(0).max(3)).optional(),
|
|
2895
3092
|
"Rola": TRolaPodmiotu3.optional(),
|
|
2896
3093
|
"RolaInna": TWybor1.optional(),
|
|
2897
3094
|
"OpisRoli": TZnakowy.optional(),
|
|
2898
3095
|
"Udzial": TProcentowy.optional(),
|
|
2899
3096
|
"NrKlienta": TZnakowy.optional()
|
|
2900
|
-
})).min(0).max(100)).optional(),
|
|
3097
|
+
}).strict()).min(0).max(100)).optional(),
|
|
2901
3098
|
"PodmiotUpowazniony": z.object({
|
|
2902
3099
|
"NrEORI": TZnakowy.optional(),
|
|
2903
3100
|
"DaneIdentyfikacyjne": TPodmiot1,
|
|
@@ -2906,9 +3103,9 @@ var init_fa3 = __esm({
|
|
|
2906
3103
|
"DaneKontaktowe": z.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z.array(z.object({
|
|
2907
3104
|
"EmailPU": TAdresEmail.optional(),
|
|
2908
3105
|
"TelefonPU": TNumerTelefonu.optional()
|
|
2909
|
-
})).min(0).max(3)).optional(),
|
|
3106
|
+
}).strict()).min(0).max(3)).optional(),
|
|
2910
3107
|
"RolaPU": TRolaPodmiotuUpowaznionego
|
|
2911
|
-
}).optional(),
|
|
3108
|
+
}).strict().optional(),
|
|
2912
3109
|
"Fa": z.object({
|
|
2913
3110
|
"KodWaluty": TKodWaluty,
|
|
2914
3111
|
"P_1": TDataT,
|
|
@@ -2919,7 +3116,7 @@ var init_fa3 = __esm({
|
|
|
2919
3116
|
"OkresFa": z.object({
|
|
2920
3117
|
"P_6_Od": TDataT,
|
|
2921
3118
|
"P_6_Do": TDataT
|
|
2922
|
-
}).optional(),
|
|
3119
|
+
}).strict().optional(),
|
|
2923
3120
|
"P_13_1": TKwotowy.optional(),
|
|
2924
3121
|
"P_14_1": TKwotowy.optional(),
|
|
2925
3122
|
"P_14_1W": TKwotowy.optional(),
|
|
@@ -2949,7 +3146,7 @@ var init_fa3 = __esm({
|
|
|
2949
3146
|
"P_17": TWybor1_2,
|
|
2950
3147
|
"P_18": TWybor1_2,
|
|
2951
3148
|
"P_18A": TWybor1_2,
|
|
2952
|
-
"Zwolnienie": z.union([z.object({ "P_19": TWybor1, "P_19A": TZnakowy.optional(), "P_19B": TZnakowy.optional(), "P_19C": TZnakowy.optional() }), z.object({ "P_19N": TWybor1 })]),
|
|
3149
|
+
"Zwolnienie": z.union([z.object({ "P_19": TWybor1, "P_19A": TZnakowy.optional(), "P_19B": TZnakowy.optional(), "P_19C": TZnakowy.optional() }).strict(), z.object({ "P_19N": TWybor1 }).strict()]),
|
|
2953
3150
|
"NoweSrodkiTransportu": z.union([z.object({ "P_22": TWybor1, "P_42_5": TWybor1_2, "NowySrodekTransportu": z.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z.array(z.object({
|
|
2954
3151
|
"P_22A": TDataT,
|
|
2955
3152
|
"P_NrWierszaNST": TNaturalny,
|
|
@@ -2968,10 +3165,10 @@ var init_fa3 = __esm({
|
|
|
2968
3165
|
"P_22C1": TZnakowy.optional(),
|
|
2969
3166
|
"P_22D": TZnakowy.optional(),
|
|
2970
3167
|
"P_22D1": TZnakowy.optional()
|
|
2971
|
-
})).min(1).max(1e4)) }), z.object({ "P_22N": TWybor1 })]),
|
|
3168
|
+
}).strict()).min(1).max(1e4)) }).strict(), z.object({ "P_22N": TWybor1 }).strict()]),
|
|
2972
3169
|
"P_23": TWybor1_2,
|
|
2973
|
-
"PMarzy": z.union([z.object({ "P_PMarzy": TWybor1, "P_PMarzy_2": TWybor1.optional(), "P_PMarzy_3_1": TWybor1.optional(), "P_PMarzy_3_2": TWybor1.optional(), "P_PMarzy_3_3": TWybor1.optional() }), z.object({ "P_PMarzyN": TWybor1 })])
|
|
2974
|
-
}),
|
|
3170
|
+
"PMarzy": z.union([z.object({ "P_PMarzy": TWybor1, "P_PMarzy_2": TWybor1.optional(), "P_PMarzy_3_1": TWybor1.optional(), "P_PMarzy_3_2": TWybor1.optional(), "P_PMarzy_3_3": TWybor1.optional() }).strict(), z.object({ "P_PMarzyN": TWybor1 }).strict()])
|
|
3171
|
+
}).strict(),
|
|
2975
3172
|
"RodzajFaktury": TRodzajFaktury,
|
|
2976
3173
|
"PrzyczynaKorekty": TZnakowy.optional(),
|
|
2977
3174
|
"TypKorekty": TTypKorekty.optional(),
|
|
@@ -2981,30 +3178,30 @@ var init_fa3 = __esm({
|
|
|
2981
3178
|
"NrKSeF": TWybor1.optional(),
|
|
2982
3179
|
"NrKSeFFaKorygowanej": TNumerKSeF.optional(),
|
|
2983
3180
|
"NrKSeFN": TWybor1.optional()
|
|
2984
|
-
})).min(1).max(5e4)).optional(),
|
|
3181
|
+
}).strict()).min(1).max(5e4)).optional(),
|
|
2985
3182
|
"OkresFaKorygowanej": TZnakowy.optional(),
|
|
2986
3183
|
"NrFaKorygowany": TZnakowy.optional(),
|
|
2987
3184
|
"Podmiot1K": z.object({
|
|
2988
3185
|
"PrefiksPodatnika": TKodyKrajowUE.optional(),
|
|
2989
3186
|
"DaneIdentyfikacyjne": TPodmiot1,
|
|
2990
3187
|
"Adres": TAdres
|
|
2991
|
-
}).optional(),
|
|
3188
|
+
}).strict().optional(),
|
|
2992
3189
|
"Podmiot2K": z.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z.array(z.object({
|
|
2993
3190
|
"DaneIdentyfikacyjne": TPodmiot2,
|
|
2994
3191
|
"Adres": TAdres.optional(),
|
|
2995
3192
|
"IDNabywcy": z.string().min(1).max(32).optional()
|
|
2996
|
-
})).min(0).max(101)).optional(),
|
|
3193
|
+
}).strict()).min(0).max(101)).optional(),
|
|
2997
3194
|
"P_15ZK": TKwotowy.optional(),
|
|
2998
3195
|
"KursWalutyZK": TIlosci.optional(),
|
|
2999
3196
|
"ZaliczkaCzesciowa": z.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z.array(z.object({
|
|
3000
3197
|
"P_6Z": TDataT,
|
|
3001
3198
|
"P_15Z": TKwotowy,
|
|
3002
3199
|
"KursWalutyZW": TIlosci.optional()
|
|
3003
|
-
})).min(0).max(31)).optional(),
|
|
3200
|
+
}).strict()).min(0).max(31)).optional(),
|
|
3004
3201
|
"FP": TWybor1.optional(),
|
|
3005
3202
|
"TP": TWybor1.optional(),
|
|
3006
3203
|
"DodatkowyOpis": z.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z.array(TKluczWartosc).min(0).max(1e4)).optional(),
|
|
3007
|
-
"FakturaZaliczkowa": z.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z.array(z.union([z.object({ "NrKSeFZN": TWybor1, "NrFaZaliczkowej": TZnakowy }), z.object({ "NrKSeFFaZaliczkowej": TNumerKSeF })])).min(0).max(100)).optional(),
|
|
3204
|
+
"FakturaZaliczkowa": z.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z.array(z.union([z.object({ "NrKSeFZN": TWybor1, "NrFaZaliczkowej": TZnakowy }).strict(), z.object({ "NrKSeFFaZaliczkowej": TNumerKSeF }).strict()])).min(0).max(100)).optional(),
|
|
3008
3205
|
"ZwrotAkcyzy": TWybor1.optional(),
|
|
3009
3206
|
"FaWiersz": z.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z.array(z.object({
|
|
3010
3207
|
"NrWierszaFa": TNaturalny,
|
|
@@ -3032,21 +3229,21 @@ var init_fa3 = __esm({
|
|
|
3032
3229
|
"Procedura": TOznaczenieProcedury.optional(),
|
|
3033
3230
|
"KursWaluty": TIlosci.optional(),
|
|
3034
3231
|
"StanPrzed": TWybor1.optional()
|
|
3035
|
-
})).min(0).max(1e4)).optional(),
|
|
3232
|
+
}).strict()).min(0).max(1e4)).optional(),
|
|
3036
3233
|
"Rozliczenie": z.object({
|
|
3037
3234
|
"Obciazenia": z.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z.array(z.object({
|
|
3038
3235
|
"Kwota": TKwotowy,
|
|
3039
3236
|
"Powod": TZnakowy
|
|
3040
|
-
})).min(0).max(100)).optional(),
|
|
3237
|
+
}).strict()).min(0).max(100)).optional(),
|
|
3041
3238
|
"SumaObciazen": TKwotowy.optional(),
|
|
3042
3239
|
"Odliczenia": z.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z.array(z.object({
|
|
3043
3240
|
"Kwota": TKwotowy,
|
|
3044
3241
|
"Powod": TZnakowy
|
|
3045
|
-
})).min(0).max(100)).optional(),
|
|
3242
|
+
}).strict()).min(0).max(100)).optional(),
|
|
3046
3243
|
"SumaOdliczen": TKwotowy.optional(),
|
|
3047
3244
|
"DoZaplaty": TKwotowy.optional(),
|
|
3048
3245
|
"DoRozliczenia": TKwotowy.optional()
|
|
3049
|
-
}).optional(),
|
|
3246
|
+
}).strict().optional(),
|
|
3050
3247
|
"Platnosc": z.object({
|
|
3051
3248
|
"Zaplacono": TWybor1.optional(),
|
|
3052
3249
|
"DataZaplaty": TData.optional(),
|
|
@@ -3057,15 +3254,15 @@ var init_fa3 = __esm({
|
|
|
3057
3254
|
"FormaPlatnosci": TFormaPlatnosci.optional(),
|
|
3058
3255
|
"PlatnoscInna": TWybor1.optional(),
|
|
3059
3256
|
"OpisPlatnosci": TZnakowy.optional()
|
|
3060
|
-
})).min(1).max(100)).optional(),
|
|
3257
|
+
}).strict()).min(1).max(100)).optional(),
|
|
3061
3258
|
"TerminPlatnosci": z.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z.array(z.object({
|
|
3062
3259
|
"Termin": TData.optional(),
|
|
3063
3260
|
"TerminOpis": z.object({
|
|
3064
3261
|
"Ilosc": z.coerce.number().int(),
|
|
3065
3262
|
"Jednostka": TZnakowy50,
|
|
3066
3263
|
"ZdarzeniePoczatkowe": TZnakowy
|
|
3067
|
-
}).optional()
|
|
3068
|
-
})).min(0).max(100)).optional(),
|
|
3264
|
+
}).strict().optional()
|
|
3265
|
+
}).strict()).min(0).max(100)).optional(),
|
|
3069
3266
|
"FormaPlatnosci": TFormaPlatnosci.optional(),
|
|
3070
3267
|
"PlatnoscInna": TWybor1.optional(),
|
|
3071
3268
|
"OpisPlatnosci": TZnakowy.optional(),
|
|
@@ -3074,19 +3271,19 @@ var init_fa3 = __esm({
|
|
|
3074
3271
|
"Skonto": z.object({
|
|
3075
3272
|
"WarunkiSkonta": TZnakowy,
|
|
3076
3273
|
"WysokoscSkonta": TZnakowy
|
|
3077
|
-
}).optional(),
|
|
3274
|
+
}).strict().optional(),
|
|
3078
3275
|
"LinkDoPlatnosci": z.string().min(1).max(512).regex(/^(https?):\/\/([a-zA-Z0-9][a-zA-Z0-9-]*\.)+[a-zA-Z]{2,}(:[0-9]{1,5})?(\/[^\s?#]*)?\?([^#\s]*&)?IPKSeF=[0-9]{3}[a-zA-Z0-9]{10}(&[^#\s]*)?(#.*)?$/).optional(),
|
|
3079
3276
|
"IPKSeF": z.string().min(1).max(13).regex(/^[0-9]{3}[a-zA-Z0-9]{10}$/).optional()
|
|
3080
|
-
}).optional(),
|
|
3277
|
+
}).strict().optional(),
|
|
3081
3278
|
"WarunkiTransakcji": z.object({
|
|
3082
3279
|
"Umowy": z.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z.array(z.object({
|
|
3083
3280
|
"DataUmowy": TDataU.optional(),
|
|
3084
3281
|
"NrUmowy": TZnakowy.optional()
|
|
3085
|
-
})).min(0).max(100)).optional(),
|
|
3282
|
+
}).strict()).min(0).max(100)).optional(),
|
|
3086
3283
|
"Zamowienia": z.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z.array(z.object({
|
|
3087
3284
|
"DataZamowienia": TDataU.optional(),
|
|
3088
3285
|
"NrZamowienia": TZnakowy.optional()
|
|
3089
|
-
})).min(0).max(100)).optional(),
|
|
3286
|
+
}).strict()).min(0).max(100)).optional(),
|
|
3090
3287
|
"NrPartiiTowaru": z.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z.array(TZnakowy).min(0).max(1e3)).optional(),
|
|
3091
3288
|
"WarunkiDostawy": TZnakowy.optional(),
|
|
3092
3289
|
"KursUmowny": TIlosci.optional(),
|
|
@@ -3098,7 +3295,7 @@ var init_fa3 = __esm({
|
|
|
3098
3295
|
"Przewoznik": z.object({
|
|
3099
3296
|
"DaneIdentyfikacyjne": TPodmiot2,
|
|
3100
3297
|
"AdresPrzewoznika": TAdres
|
|
3101
|
-
}).optional(),
|
|
3298
|
+
}).strict().optional(),
|
|
3102
3299
|
"NrZleceniaTransportu": TZnakowy.optional(),
|
|
3103
3300
|
"OpisLadunku": TLadunek.optional(),
|
|
3104
3301
|
"LadunekInny": TWybor1.optional(),
|
|
@@ -3109,9 +3306,9 @@ var init_fa3 = __esm({
|
|
|
3109
3306
|
"WysylkaZ": TAdres.optional(),
|
|
3110
3307
|
"WysylkaPrzez": z.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z.array(TAdres).min(0).max(20)).optional(),
|
|
3111
3308
|
"WysylkaDo": TAdres.optional()
|
|
3112
|
-
})).min(0).max(20)).optional(),
|
|
3309
|
+
}).strict()).min(0).max(20)).optional(),
|
|
3113
3310
|
"PodmiotPosredniczacy": TWybor1.optional()
|
|
3114
|
-
}).optional(),
|
|
3311
|
+
}).strict().optional(),
|
|
3115
3312
|
"Zamowienie": z.object({
|
|
3116
3313
|
"WartoscZamowienia": TKwotowy,
|
|
3117
3314
|
"ZamowienieWiersz": z.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z.array(z.object({
|
|
@@ -3135,24 +3332,24 @@ var init_fa3 = __esm({
|
|
|
3135
3332
|
"ProceduraZ": TOznaczenieProceduryZ.optional(),
|
|
3136
3333
|
"KwotaAkcyzyZ": TKwotowy.optional(),
|
|
3137
3334
|
"StanPrzedZ": TWybor1.optional()
|
|
3138
|
-
})).min(1).max(1e4))
|
|
3139
|
-
}).optional()
|
|
3140
|
-
}),
|
|
3335
|
+
}).strict()).min(1).max(1e4))
|
|
3336
|
+
}).strict().optional()
|
|
3337
|
+
}).strict(),
|
|
3141
3338
|
"Stopka": z.object({
|
|
3142
3339
|
"Informacje": z.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z.array(z.object({
|
|
3143
3340
|
"StopkaFaktury": TTekstowy.optional()
|
|
3144
|
-
})).min(0).max(3)).optional(),
|
|
3341
|
+
}).strict()).min(0).max(3)).optional(),
|
|
3145
3342
|
"Rejestry": z.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z.array(z.object({
|
|
3146
3343
|
"PelnaNazwa": TZnakowy.optional(),
|
|
3147
3344
|
"KRS": TNrKRS.optional(),
|
|
3148
3345
|
"REGON": TNrREGON.optional(),
|
|
3149
3346
|
"BDO": z.string().min(1).max(9).optional()
|
|
3150
|
-
})).min(0).max(100)).optional()
|
|
3151
|
-
}).optional(),
|
|
3347
|
+
}).strict()).min(0).max(100)).optional()
|
|
3348
|
+
}).strict().optional(),
|
|
3152
3349
|
"Zalacznik": z.object({
|
|
3153
3350
|
"BlokDanych": z.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z.array(z.any()).min(1).max(1e3))
|
|
3154
|
-
}).optional()
|
|
3155
|
-
});
|
|
3351
|
+
}).strict().optional()
|
|
3352
|
+
}).strict();
|
|
3156
3353
|
}
|
|
3157
3354
|
});
|
|
3158
3355
|
|
|
@@ -3170,18 +3367,18 @@ var init_fa2 = __esm({
|
|
|
3170
3367
|
TDataCzas2 = z2.string();
|
|
3171
3368
|
TZnakowy3 = z2.string().min(1).max(256);
|
|
3172
3369
|
TNaglowek2 = z2.object({
|
|
3173
|
-
"KodFormularza": z2.object({ "#text": TKodFormularza2, "@kodSystemowy": z2.literal("FA (2)"), "@wersjaSchemy": z2.literal("1-0E") }),
|
|
3370
|
+
"KodFormularza": z2.object({ "#text": TKodFormularza2, "@kodSystemowy": z2.literal("FA (2)"), "@wersjaSchemy": z2.literal("1-0E") }).strict(),
|
|
3174
3371
|
"WariantFormularza": z2.literal("2"),
|
|
3175
3372
|
"DataWytworzeniaFa": z2.string(),
|
|
3176
3373
|
"SystemInfo": TZnakowy3.optional()
|
|
3177
|
-
});
|
|
3374
|
+
}).strict();
|
|
3178
3375
|
TKodyKrajowUE2 = z2.enum(["AT", "BE", "BG", "CY", "CZ", "DK", "EE", "FI", "FR", "DE", "EL", "HR", "HU", "IE", "IT", "LV", "LT", "LU", "MT", "NL", "PL", "PT", "RO", "SK", "SI", "ES", "SE", "XI"]);
|
|
3179
3376
|
TNrNIP2 = z2.string().regex(/^[1-9]((\d[1-9])|([1-9]\d))\d{7}$/);
|
|
3180
3377
|
TZnakowy5122 = z2.string().min(1).max(512);
|
|
3181
3378
|
TPodmiot12 = z2.object({
|
|
3182
3379
|
"NIP": TNrNIP2,
|
|
3183
3380
|
"Nazwa": TZnakowy5122
|
|
3184
|
-
});
|
|
3381
|
+
}).strict();
|
|
3185
3382
|
TKodKraju2 = z2.enum(["AF", "AX", "AL", "DZ", "AD", "AO", "AI", "AQ", "AG", "AN", "SA", "AR", "AM", "AW", "AU", "AT", "AZ", "BS", "BH", "BD", "BB", "BE", "BZ", "BJ", "BM", "BT", "BY", "BO", "BQ", "BA", "BW", "BR", "BN", "IO", "BG", "BF", "BI", "XC", "CL", "CN", "HR", "CW", "CY", "TD", "ME", "DK", "DM", "DO", "DJ", "EG", "EC", "ER", "EE", "ET", "FK", "FJ", "PH", "FI", "FR", "TF", "GA", "GM", "GH", "GI", "GR", "GD", "GL", "GE", "GU", "GG", "GY", "GF", "GP", "GT", "GN", "GQ", "GW", "HT", "ES", "HN", "HK", "IN", "ID", "IQ", "IR", "IE", "IS", "IL", "JM", "JP", "YE", "JE", "JO", "KY", "KH", "CM", "CA", "QA", "KZ", "KE", "KG", "KI", "CO", "KM", "CG", "CD", "KP", "XK", "CR", "CU", "KW", "LA", "LS", "LB", "LR", "LY", "LI", "LT", "LV", "LU", "MK", "MG", "YT", "MO", "MW", "MV", "MY", "ML", "MT", "MP", "MA", "MQ", "MR", "MU", "MX", "XL", "FM", "UM", "MD", "MC", "MN", "MS", "MZ", "MM", "NA", "NR", "NP", "NL", "DE", "NE", "NG", "NI", "NU", "NF", "NO", "NC", "NZ", "PS", "OM", "PK", "PW", "PA", "PG", "PY", "PE", "PN", "PF", "PL", "GS", "PT", "PR", "CF", "CZ", "KR", "ZA", "RE", "RU", "RO", "RW", "EH", "BL", "KN", "LC", "MF", "VC", "SV", "WS", "AS", "SM", "SN", "RS", "SC", "SL", "SG", "SK", "SI", "SO", "LK", "PM", "US", "SZ", "SD", "SS", "SR", "SJ", "SH", "SY", "CH", "SE", "TJ", "TH", "TW", "TZ", "TG", "TK", "TO", "TT", "TN", "TR", "TM", "TV", "UG", "UA", "UY", "UZ", "VU", "WF", "VA", "HU", "VE", "GB", "VN", "IT", "TL", "CI", "BV", "CX", "IM", "SX", "CK", "VI", "VG", "HM", "CC", "MH", "FO", "SB", "ST", "TC", "ZM", "CV", "ZW", "AE", "XI"]);
|
|
3186
3383
|
TGLN2 = z2.string().min(1).max(13);
|
|
3187
3384
|
TAdres2 = z2.object({
|
|
@@ -3189,7 +3386,7 @@ var init_fa2 = __esm({
|
|
|
3189
3386
|
"AdresL1": TZnakowy5122,
|
|
3190
3387
|
"AdresL2": TZnakowy5122.optional(),
|
|
3191
3388
|
"GLN": TGLN2.optional()
|
|
3192
|
-
});
|
|
3389
|
+
}).strict();
|
|
3193
3390
|
TAdresEmail2 = z2.string().min(3).max(255).regex(/^(.)+@(.)+$/);
|
|
3194
3391
|
TNumerTelefonu2 = z2.string().min(1).max(16);
|
|
3195
3392
|
TStatusInfoPodatnika2 = z2.enum(["1", "2", "3", "4"]);
|
|
@@ -3204,7 +3401,7 @@ var init_fa2 = __esm({
|
|
|
3204
3401
|
"NrID": z2.string().min(1).max(50).regex(/^[a-zA-Z0-9]{1,50}$/).optional(),
|
|
3205
3402
|
"BrakID": TWybor12.optional(),
|
|
3206
3403
|
"Nazwa": TZnakowy5122.optional()
|
|
3207
|
-
});
|
|
3404
|
+
}).strict();
|
|
3208
3405
|
TZnakowy502 = z2.string().min(1).max(50);
|
|
3209
3406
|
TZnakowy202 = z2.string().min(1).max(20);
|
|
3210
3407
|
TNIPIdWew2 = z2.string().min(1).max(20).regex(/^[1-9]((\d[1-9])|([1-9]\d))\d{7}-\d{5}$/);
|
|
@@ -3217,7 +3414,7 @@ var init_fa2 = __esm({
|
|
|
3217
3414
|
"NrID": z2.string().min(1).max(50).regex(/^[a-zA-Z0-9]{1,50}$/).optional(),
|
|
3218
3415
|
"BrakID": TWybor12.optional(),
|
|
3219
3416
|
"Nazwa": TZnakowy5122.optional()
|
|
3220
|
-
});
|
|
3417
|
+
}).strict();
|
|
3221
3418
|
TRolaPodmiotu32 = z2.enum(["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"]);
|
|
3222
3419
|
TProcentowy2 = z2.coerce.number().min(0).max(100);
|
|
3223
3420
|
TRolaPodmiotuUpowaznionego2 = z2.enum(["1", "2", "3"]);
|
|
@@ -3235,7 +3432,7 @@ var init_fa2 = __esm({
|
|
|
3235
3432
|
"NrWiersza": TNaturalny2.optional(),
|
|
3236
3433
|
"Klucz": TZnakowy3,
|
|
3237
3434
|
"Wartosc": TZnakowy3
|
|
3238
|
-
});
|
|
3435
|
+
}).strict();
|
|
3239
3436
|
TKwotowy22 = z2.string().regex(/^-?([1-9]\d{0,13}|0)(\.\d{1,8})?$/);
|
|
3240
3437
|
TStawkaPodatku2 = z2.enum(["23", "22", "8", "7", "5", "4", "3", "0", "zw", "oo", "np"]);
|
|
3241
3438
|
TGTU2 = z2.enum(["GTU_01", "GTU_02", "GTU_03", "GTU_04", "GTU_05", "GTU_06", "GTU_07", "GTU_08", "GTU_09", "GTU_10", "GTU_11", "GTU_12", "GTU_13"]);
|
|
@@ -3250,7 +3447,7 @@ var init_fa2 = __esm({
|
|
|
3250
3447
|
"RachunekWlasnyBanku": TRachunekWlasnyBanku2.optional(),
|
|
3251
3448
|
"NazwaBanku": TZnakowy3.optional(),
|
|
3252
3449
|
"OpisRachunku": TZnakowy3.optional()
|
|
3253
|
-
});
|
|
3450
|
+
}).strict();
|
|
3254
3451
|
TRodzajTransportu2 = z2.enum(["1", "2", "3", "4", "5", "7", "8"]);
|
|
3255
3452
|
TLadunek2 = z2.enum(["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20"]);
|
|
3256
3453
|
TOznaczenieProceduryZ2 = z2.enum(["WSTO_EE", "IED", "TT_D", "B_SPV", "B_SPV_DOSTAWA", "B_MPV_PROWIZJA"]);
|
|
@@ -3269,13 +3466,13 @@ var init_fa2 = __esm({
|
|
|
3269
3466
|
"AdresL1": TZnakowy5122,
|
|
3270
3467
|
"AdresL2": TZnakowy5122.optional(),
|
|
3271
3468
|
"GLN": TGLN2.optional()
|
|
3272
|
-
}).optional(),
|
|
3469
|
+
}).strict().optional(),
|
|
3273
3470
|
"DaneKontaktowe": z2.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z2.array(z2.object({
|
|
3274
3471
|
"Email": TAdresEmail2.optional(),
|
|
3275
3472
|
"Telefon": TNumerTelefonu2.optional()
|
|
3276
|
-
})).min(0).max(3)).optional(),
|
|
3473
|
+
}).strict()).min(0).max(3)).optional(),
|
|
3277
3474
|
"StatusInfoPodatnika": TStatusInfoPodatnika2.optional()
|
|
3278
|
-
}),
|
|
3475
|
+
}).strict(),
|
|
3279
3476
|
"Podmiot2": z2.object({
|
|
3280
3477
|
"NrEORI": TZnakowy3.optional(),
|
|
3281
3478
|
"DaneIdentyfikacyjne": TPodmiot22,
|
|
@@ -3284,10 +3481,10 @@ var init_fa2 = __esm({
|
|
|
3284
3481
|
"DaneKontaktowe": z2.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z2.array(z2.object({
|
|
3285
3482
|
"Email": TAdresEmail2.optional(),
|
|
3286
3483
|
"Telefon": TNumerTelefonu2.optional()
|
|
3287
|
-
})).min(0).max(3)).optional(),
|
|
3484
|
+
}).strict()).min(0).max(3)).optional(),
|
|
3288
3485
|
"NrKlienta": TZnakowy3.optional(),
|
|
3289
3486
|
"IDNabywcy": z2.string().min(1).max(32).optional()
|
|
3290
|
-
}),
|
|
3487
|
+
}).strict(),
|
|
3291
3488
|
"Podmiot3": z2.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z2.array(z2.object({
|
|
3292
3489
|
"IDNabywcy": z2.string().min(1).max(32).optional(),
|
|
3293
3490
|
"NrEORI": TZnakowy3.optional(),
|
|
@@ -3297,13 +3494,13 @@ var init_fa2 = __esm({
|
|
|
3297
3494
|
"DaneKontaktowe": z2.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z2.array(z2.object({
|
|
3298
3495
|
"Email": TAdresEmail2.optional(),
|
|
3299
3496
|
"Telefon": TNumerTelefonu2.optional()
|
|
3300
|
-
})).min(0).max(3)).optional(),
|
|
3497
|
+
}).strict()).min(0).max(3)).optional(),
|
|
3301
3498
|
"Rola": TRolaPodmiotu32.optional(),
|
|
3302
3499
|
"RolaInna": TWybor12.optional(),
|
|
3303
3500
|
"OpisRoli": TZnakowy3.optional(),
|
|
3304
3501
|
"Udzial": TProcentowy2.optional(),
|
|
3305
3502
|
"NrKlienta": TZnakowy3.optional()
|
|
3306
|
-
})).min(0).max(100)).optional(),
|
|
3503
|
+
}).strict()).min(0).max(100)).optional(),
|
|
3307
3504
|
"PodmiotUpowazniony": z2.object({
|
|
3308
3505
|
"NrEORI": TZnakowy3.optional(),
|
|
3309
3506
|
"DaneIdentyfikacyjne": TPodmiot12,
|
|
@@ -3312,9 +3509,9 @@ var init_fa2 = __esm({
|
|
|
3312
3509
|
"DaneKontaktowe": z2.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z2.array(z2.object({
|
|
3313
3510
|
"EmailPU": TAdresEmail2.optional(),
|
|
3314
3511
|
"TelefonPU": TNumerTelefonu2.optional()
|
|
3315
|
-
})).min(0).max(3)).optional(),
|
|
3512
|
+
}).strict()).min(0).max(3)).optional(),
|
|
3316
3513
|
"RolaPU": TRolaPodmiotuUpowaznionego2
|
|
3317
|
-
}).optional(),
|
|
3514
|
+
}).strict().optional(),
|
|
3318
3515
|
"Fa": z2.object({
|
|
3319
3516
|
"KodWaluty": TKodWaluty2,
|
|
3320
3517
|
"P_1": TDataT2,
|
|
@@ -3325,7 +3522,7 @@ var init_fa2 = __esm({
|
|
|
3325
3522
|
"OkresFa": z2.object({
|
|
3326
3523
|
"P_6_Od": TDataT2,
|
|
3327
3524
|
"P_6_Do": TDataT2
|
|
3328
|
-
}).optional(),
|
|
3525
|
+
}).strict().optional(),
|
|
3329
3526
|
"P_13_1": TKwotowy3.optional(),
|
|
3330
3527
|
"P_14_1": TKwotowy3.optional(),
|
|
3331
3528
|
"P_14_1W": TKwotowy3.optional(),
|
|
@@ -3355,7 +3552,7 @@ var init_fa2 = __esm({
|
|
|
3355
3552
|
"P_17": TWybor1_22,
|
|
3356
3553
|
"P_18": TWybor1_22,
|
|
3357
3554
|
"P_18A": TWybor1_22,
|
|
3358
|
-
"Zwolnienie": z2.union([z2.object({ "P_19": TWybor12, "P_19A": TZnakowy3.optional(), "P_19B": TZnakowy3.optional(), "P_19C": TZnakowy3.optional() }), z2.object({ "P_19N": TWybor12 })]),
|
|
3555
|
+
"Zwolnienie": z2.union([z2.object({ "P_19": TWybor12, "P_19A": TZnakowy3.optional(), "P_19B": TZnakowy3.optional(), "P_19C": TZnakowy3.optional() }).strict(), z2.object({ "P_19N": TWybor12 }).strict()]),
|
|
3359
3556
|
"NoweSrodkiTransportu": z2.union([z2.object({ "P_22": TWybor12, "P_42_5": TWybor1_22, "NowySrodekTransportu": z2.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z2.array(z2.object({
|
|
3360
3557
|
"P_22A": TDataT2,
|
|
3361
3558
|
"P_NrWierszaNST": TNaturalny2,
|
|
@@ -3374,10 +3571,10 @@ var init_fa2 = __esm({
|
|
|
3374
3571
|
"P_22C1": TZnakowy3.optional(),
|
|
3375
3572
|
"P_22D": TZnakowy3.optional(),
|
|
3376
3573
|
"P_22D1": TZnakowy3.optional()
|
|
3377
|
-
})).min(1).max(1e4)) }), z2.object({ "P_22N": TWybor12 })]),
|
|
3574
|
+
}).strict()).min(1).max(1e4)) }).strict(), z2.object({ "P_22N": TWybor12 }).strict()]),
|
|
3378
3575
|
"P_23": TWybor1_22,
|
|
3379
|
-
"PMarzy": z2.union([z2.object({ "P_PMarzy": TWybor12, "P_PMarzy_2": TWybor12.optional(), "P_PMarzy_3_1": TWybor12.optional(), "P_PMarzy_3_2": TWybor12.optional(), "P_PMarzy_3_3": TWybor12.optional() }), z2.object({ "P_PMarzyN": TWybor12 })])
|
|
3380
|
-
}),
|
|
3576
|
+
"PMarzy": z2.union([z2.object({ "P_PMarzy": TWybor12, "P_PMarzy_2": TWybor12.optional(), "P_PMarzy_3_1": TWybor12.optional(), "P_PMarzy_3_2": TWybor12.optional(), "P_PMarzy_3_3": TWybor12.optional() }).strict(), z2.object({ "P_PMarzyN": TWybor12 }).strict()])
|
|
3577
|
+
}).strict(),
|
|
3381
3578
|
"RodzajFaktury": TRodzajFaktury2,
|
|
3382
3579
|
"PrzyczynaKorekty": TZnakowy3.optional(),
|
|
3383
3580
|
"TypKorekty": TTypKorekty2.optional(),
|
|
@@ -3387,30 +3584,30 @@ var init_fa2 = __esm({
|
|
|
3387
3584
|
"NrKSeF": TWybor12.optional(),
|
|
3388
3585
|
"NrKSeFFaKorygowanej": TNumerKSeF2.optional(),
|
|
3389
3586
|
"NrKSeFN": TWybor12.optional()
|
|
3390
|
-
})).min(1)).optional(),
|
|
3587
|
+
}).strict()).min(1)).optional(),
|
|
3391
3588
|
"OkresFaKorygowanej": TZnakowy3.optional(),
|
|
3392
3589
|
"NrFaKorygowany": TZnakowy3.optional(),
|
|
3393
3590
|
"Podmiot1K": z2.object({
|
|
3394
3591
|
"PrefiksPodatnika": TKodyKrajowUE2.optional(),
|
|
3395
3592
|
"DaneIdentyfikacyjne": TPodmiot12,
|
|
3396
3593
|
"Adres": TAdres2
|
|
3397
|
-
}).optional(),
|
|
3594
|
+
}).strict().optional(),
|
|
3398
3595
|
"Podmiot2K": z2.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z2.array(z2.object({
|
|
3399
3596
|
"DaneIdentyfikacyjne": TPodmiot22,
|
|
3400
3597
|
"Adres": TAdres2.optional(),
|
|
3401
3598
|
"IDNabywcy": z2.string().min(1).max(32).optional()
|
|
3402
|
-
})).min(0).max(101)).optional(),
|
|
3599
|
+
}).strict()).min(0).max(101)).optional(),
|
|
3403
3600
|
"P_15ZK": TKwotowy3.optional(),
|
|
3404
3601
|
"KursWalutyZK": TIlosci2.optional(),
|
|
3405
3602
|
"ZaliczkaCzesciowa": z2.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z2.array(z2.object({
|
|
3406
3603
|
"P_6Z": TDataT2,
|
|
3407
3604
|
"P_15Z": TKwotowy3,
|
|
3408
3605
|
"KursWalutyZW": TIlosci2.optional()
|
|
3409
|
-
})).min(0).max(31)).optional(),
|
|
3606
|
+
}).strict()).min(0).max(31)).optional(),
|
|
3410
3607
|
"FP": TWybor12.optional(),
|
|
3411
3608
|
"TP": TWybor12.optional(),
|
|
3412
3609
|
"DodatkowyOpis": z2.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z2.array(TKluczWartosc2).min(0).max(1e4)).optional(),
|
|
3413
|
-
"FakturaZaliczkowa": z2.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z2.array(z2.union([z2.object({ "NrKSeFZN": TWybor12, "NrFaZaliczkowej": TZnakowy3 }), z2.object({ "NrKSeFFaZaliczkowej": TNumerKSeF2 })])).min(0).max(100)).optional(),
|
|
3610
|
+
"FakturaZaliczkowa": z2.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z2.array(z2.union([z2.object({ "NrKSeFZN": TWybor12, "NrFaZaliczkowej": TZnakowy3 }).strict(), z2.object({ "NrKSeFFaZaliczkowej": TNumerKSeF2 }).strict()])).min(0).max(100)).optional(),
|
|
3414
3611
|
"ZwrotAkcyzy": TWybor12.optional(),
|
|
3415
3612
|
"FaWiersz": z2.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z2.array(z2.object({
|
|
3416
3613
|
"NrWierszaFa": TNaturalny2,
|
|
@@ -3438,21 +3635,21 @@ var init_fa2 = __esm({
|
|
|
3438
3635
|
"Procedura": TOznaczenieProcedury2.optional(),
|
|
3439
3636
|
"KursWaluty": TIlosci2.optional(),
|
|
3440
3637
|
"StanPrzed": TWybor12.optional()
|
|
3441
|
-
})).min(0).max(1e4)).optional(),
|
|
3638
|
+
}).strict()).min(0).max(1e4)).optional(),
|
|
3442
3639
|
"Rozliczenie": z2.object({
|
|
3443
3640
|
"Obciazenia": z2.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z2.array(z2.object({
|
|
3444
3641
|
"Kwota": TKwotowy3,
|
|
3445
3642
|
"Powod": TZnakowy3
|
|
3446
|
-
})).min(0).max(100)).optional(),
|
|
3643
|
+
}).strict()).min(0).max(100)).optional(),
|
|
3447
3644
|
"SumaObciazen": TKwotowy3.optional(),
|
|
3448
3645
|
"Odliczenia": z2.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z2.array(z2.object({
|
|
3449
3646
|
"Kwota": TKwotowy3,
|
|
3450
3647
|
"Powod": TZnakowy3
|
|
3451
|
-
})).min(0).max(100)).optional(),
|
|
3648
|
+
}).strict()).min(0).max(100)).optional(),
|
|
3452
3649
|
"SumaOdliczen": TKwotowy3.optional(),
|
|
3453
3650
|
"DoZaplaty": TKwotowy3.optional(),
|
|
3454
3651
|
"DoRozliczenia": TKwotowy3.optional()
|
|
3455
|
-
}).optional(),
|
|
3652
|
+
}).strict().optional(),
|
|
3456
3653
|
"Platnosc": z2.object({
|
|
3457
3654
|
"Zaplacono": TWybor12.optional(),
|
|
3458
3655
|
"DataZaplaty": TData2.optional(),
|
|
@@ -3460,11 +3657,11 @@ var init_fa2 = __esm({
|
|
|
3460
3657
|
"ZaplataCzesciowa": z2.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z2.array(z2.object({
|
|
3461
3658
|
"KwotaZaplatyCzesciowej": TKwotowy3,
|
|
3462
3659
|
"DataZaplatyCzesciowej": TData2
|
|
3463
|
-
})).min(1).max(100)).optional(),
|
|
3660
|
+
}).strict()).min(1).max(100)).optional(),
|
|
3464
3661
|
"TerminPlatnosci": z2.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z2.array(z2.object({
|
|
3465
3662
|
"Termin": TData2,
|
|
3466
3663
|
"TerminOpis": TZnakowy3.optional()
|
|
3467
|
-
})).min(0).max(100)).optional(),
|
|
3664
|
+
}).strict()).min(0).max(100)).optional(),
|
|
3468
3665
|
"FormaPlatnosci": TFormaPlatnosci2.optional(),
|
|
3469
3666
|
"PlatnoscInna": TWybor12.optional(),
|
|
3470
3667
|
"OpisPlatnosci": TZnakowy3.optional(),
|
|
@@ -3473,17 +3670,17 @@ var init_fa2 = __esm({
|
|
|
3473
3670
|
"Skonto": z2.object({
|
|
3474
3671
|
"WarunkiSkonta": TZnakowy3,
|
|
3475
3672
|
"WysokoscSkonta": TZnakowy3
|
|
3476
|
-
}).optional()
|
|
3477
|
-
}).optional(),
|
|
3673
|
+
}).strict().optional()
|
|
3674
|
+
}).strict().optional(),
|
|
3478
3675
|
"WarunkiTransakcji": z2.object({
|
|
3479
3676
|
"Umowy": z2.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z2.array(z2.object({
|
|
3480
3677
|
"DataUmowy": TData2.optional(),
|
|
3481
3678
|
"NrUmowy": TZnakowy3.optional()
|
|
3482
|
-
})).min(0).max(100)).optional(),
|
|
3679
|
+
}).strict()).min(0).max(100)).optional(),
|
|
3483
3680
|
"Zamowienia": z2.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z2.array(z2.object({
|
|
3484
3681
|
"DataZamowienia": TData2.optional(),
|
|
3485
3682
|
"NrZamowienia": TZnakowy3.optional()
|
|
3486
|
-
})).min(0).max(100)).optional(),
|
|
3683
|
+
}).strict()).min(0).max(100)).optional(),
|
|
3487
3684
|
"NrPartiiTowaru": z2.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z2.array(TZnakowy3).min(0).max(1e3)).optional(),
|
|
3488
3685
|
"WarunkiDostawy": TZnakowy3.optional(),
|
|
3489
3686
|
"KursUmowny": TIlosci2.optional(),
|
|
@@ -3495,7 +3692,7 @@ var init_fa2 = __esm({
|
|
|
3495
3692
|
"Przewoznik": z2.object({
|
|
3496
3693
|
"DaneIdentyfikacyjne": TPodmiot22,
|
|
3497
3694
|
"AdresPrzewoznika": TAdres2
|
|
3498
|
-
}).optional(),
|
|
3695
|
+
}).strict().optional(),
|
|
3499
3696
|
"NrZleceniaTransportu": TZnakowy3.optional(),
|
|
3500
3697
|
"OpisLadunku": TLadunek2.optional(),
|
|
3501
3698
|
"LadunekInny": TWybor12.optional(),
|
|
@@ -3506,9 +3703,9 @@ var init_fa2 = __esm({
|
|
|
3506
3703
|
"WysylkaZ": TAdres2.optional(),
|
|
3507
3704
|
"WysylkaPrzez": z2.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z2.array(TAdres2).min(0).max(20)).optional(),
|
|
3508
3705
|
"WysylkaDo": TAdres2.optional()
|
|
3509
|
-
})).min(0).max(20)).optional(),
|
|
3706
|
+
}).strict()).min(0).max(20)).optional(),
|
|
3510
3707
|
"PodmiotPosredniczacy": TWybor12.optional()
|
|
3511
|
-
}).optional(),
|
|
3708
|
+
}).strict().optional(),
|
|
3512
3709
|
"Zamowienie": z2.object({
|
|
3513
3710
|
"WartoscZamowienia": TKwotowy3,
|
|
3514
3711
|
"ZamowienieWiersz": z2.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z2.array(z2.object({
|
|
@@ -3532,21 +3729,21 @@ var init_fa2 = __esm({
|
|
|
3532
3729
|
"ProceduraZ": TOznaczenieProceduryZ2.optional(),
|
|
3533
3730
|
"KwotaAkcyzyZ": TKwotowy3.optional(),
|
|
3534
3731
|
"StanPrzedZ": TWybor12.optional()
|
|
3535
|
-
})).min(1).max(1e4))
|
|
3536
|
-
}).optional()
|
|
3537
|
-
}),
|
|
3732
|
+
}).strict()).min(1).max(1e4))
|
|
3733
|
+
}).strict().optional()
|
|
3734
|
+
}).strict(),
|
|
3538
3735
|
"Stopka": z2.object({
|
|
3539
3736
|
"Informacje": z2.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z2.array(z2.object({
|
|
3540
3737
|
"StopkaFaktury": TTekstowy2.optional()
|
|
3541
|
-
})).min(0).max(3)).optional(),
|
|
3738
|
+
}).strict()).min(0).max(3)).optional(),
|
|
3542
3739
|
"Rejestry": z2.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z2.array(z2.object({
|
|
3543
3740
|
"PelnaNazwa": TZnakowy3.optional(),
|
|
3544
3741
|
"KRS": TNrKRS2.optional(),
|
|
3545
3742
|
"REGON": TNrREGON2.optional(),
|
|
3546
3743
|
"BDO": z2.string().min(1).max(9).optional()
|
|
3547
|
-
})).min(0).max(100)).optional()
|
|
3548
|
-
}).optional()
|
|
3549
|
-
});
|
|
3744
|
+
}).strict()).min(0).max(100)).optional()
|
|
3745
|
+
}).strict().optional()
|
|
3746
|
+
}).strict();
|
|
3550
3747
|
}
|
|
3551
3748
|
});
|
|
3552
3749
|
|
|
@@ -3564,17 +3761,17 @@ var init_rr1_v11e = __esm({
|
|
|
3564
3761
|
TDataCzas3 = z3.string();
|
|
3565
3762
|
TZnakowy4 = z3.string().min(1).max(256);
|
|
3566
3763
|
TNaglowek3 = z3.object({
|
|
3567
|
-
"KodFormularza": z3.object({ "#text": TKodFormularza3, "@kodSystemowy": z3.literal("FA_RR (1)"), "@wersjaSchemy": z3.literal("1-1E") }),
|
|
3764
|
+
"KodFormularza": z3.object({ "#text": TKodFormularza3, "@kodSystemowy": z3.literal("FA_RR (1)"), "@wersjaSchemy": z3.literal("1-1E") }).strict(),
|
|
3568
3765
|
"WariantFormularza": z3.literal("1"),
|
|
3569
3766
|
"DataWytworzeniaFa": z3.string(),
|
|
3570
3767
|
"SystemInfo": TZnakowy4.optional()
|
|
3571
|
-
});
|
|
3768
|
+
}).strict();
|
|
3572
3769
|
TNrNIP3 = z3.string().regex(/^[1-9]((\d[1-9])|([1-9]\d))\d{7}$/);
|
|
3573
3770
|
TZnakowy5123 = z3.string().min(1).max(512);
|
|
3574
3771
|
TPodmiot13 = z3.object({
|
|
3575
3772
|
"NIP": TNrNIP3,
|
|
3576
3773
|
"Nazwa": TZnakowy5123
|
|
3577
|
-
});
|
|
3774
|
+
}).strict();
|
|
3578
3775
|
TKodKraju3 = z3.enum(["AF", "AX", "AL", "DZ", "AD", "AO", "AI", "AQ", "AG", "AN", "SA", "AR", "AM", "AW", "AU", "AT", "AZ", "BS", "BH", "BD", "BB", "BE", "BZ", "BJ", "BM", "BT", "BY", "BO", "BQ", "BA", "BW", "BR", "BN", "IO", "BG", "BF", "BI", "XC", "CL", "CN", "HR", "CW", "CY", "TD", "ME", "DK", "DM", "DO", "DJ", "EG", "EC", "ER", "EE", "ET", "FK", "FJ", "PH", "FI", "FR", "TF", "GA", "GM", "GH", "GI", "GR", "GD", "GL", "GE", "GU", "GG", "GY", "GF", "GP", "GT", "GN", "GQ", "GW", "HT", "ES", "HN", "HK", "IN", "ID", "IQ", "IR", "IE", "IS", "IL", "JM", "JP", "YE", "JE", "JO", "KY", "KH", "CM", "CA", "QA", "KZ", "KE", "KG", "KI", "CO", "KM", "CG", "CD", "KP", "XK", "CR", "CU", "KW", "LA", "LS", "LB", "LR", "LY", "LI", "LT", "LV", "LU", "MK", "MG", "YT", "MO", "MW", "MV", "MY", "ML", "MT", "MP", "MA", "MQ", "MR", "MU", "MX", "XL", "FM", "UM", "MD", "MC", "MN", "MS", "MZ", "MM", "NA", "NR", "NP", "NL", "DE", "NE", "NG", "NI", "NU", "NF", "NO", "NC", "NZ", "PS", "OM", "PK", "PW", "PA", "PG", "PY", "PE", "PN", "PF", "PL", "GS", "PT", "PR", "CF", "CZ", "KR", "ZA", "RE", "RU", "RO", "RW", "EH", "BL", "KN", "LC", "MF", "VC", "SV", "WS", "AS", "SM", "SN", "RS", "SC", "SL", "SG", "SK", "SI", "SO", "LK", "PM", "US", "SZ", "SD", "SS", "SR", "SJ", "SH", "SY", "CH", "SE", "TJ", "TH", "TW", "TZ", "TG", "TK", "TO", "TT", "TN", "TR", "TM", "TV", "UG", "UA", "UY", "UZ", "VU", "WF", "VA", "HU", "VE", "GB", "VN", "IT", "TL", "CI", "BV", "CX", "IM", "SX", "CK", "VI", "VG", "HM", "CC", "MH", "FO", "SB", "ST", "TC", "ZM", "CV", "ZW", "AE", "XI"]);
|
|
3579
3776
|
TGLN3 = z3.string().min(1).max(13);
|
|
3580
3777
|
TAdres3 = z3.object({
|
|
@@ -3582,7 +3779,7 @@ var init_rr1_v11e = __esm({
|
|
|
3582
3779
|
"AdresL1": TZnakowy5123,
|
|
3583
3780
|
"AdresL2": TZnakowy5123.optional(),
|
|
3584
3781
|
"GLN": TGLN3.optional()
|
|
3585
|
-
});
|
|
3782
|
+
}).strict();
|
|
3586
3783
|
TAdresEmail3 = z3.string().min(3).max(255).regex(/^(.)+@(.)+$/);
|
|
3587
3784
|
TNumerTelefonu3 = z3.string().min(1).max(16);
|
|
3588
3785
|
TStatusInfoPodatnika3 = z3.enum(["1", "2", "3", "4"]);
|
|
@@ -3594,7 +3791,7 @@ var init_rr1_v11e = __esm({
|
|
|
3594
3791
|
"IDWew": TNIPIdWew3.optional(),
|
|
3595
3792
|
"BrakID": TWybor13.optional(),
|
|
3596
3793
|
"Nazwa": TZnakowy5123
|
|
3597
|
-
});
|
|
3794
|
+
}).strict();
|
|
3598
3795
|
TRolaPodmiotu33 = z3.enum(["1", "2", "3", "5", "6", "7", "8", "9", "10", "11"]);
|
|
3599
3796
|
TKodWaluty3 = z3.enum(["AED", "AFN", "ALL", "AMD", "ANG", "AOA", "ARS", "AUD", "AWG", "AZN", "BAM", "BBD", "BDT", "BGN", "BHD", "BIF", "BMD", "BND", "BOB", "BOV", "BRL", "BSD", "BTN", "BWP", "BYN", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLF", "CLP", "CNY", "COP", "COU", "CRC", "CUC", "CUP", "CVE", "CZK", "DJF", "DKK", "DOP", "DZD", "EGP", "ERN", "ETB", "EUR", "FJD", "FKP", "GBP", "GEL", "GGP", "GHS", "GIP", "GMD", "GNF", "GTQ", "GYD", "HKD", "HNL", "HRK", "HTG", "HUF", "IDR", "ILS", "IMP", "INR", "IQD", "IRR", "ISK", "JEP", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LYD", "MAD", "MDL", "MGA", "MKD", "MMK", "MNT", "MOP", "MRU", "MUR", "MVR", "MWK", "MXN", "MXV", "MYR", "MZN", "NAD", "NGN", "NIO", "NOK", "NPR", "NZD", "OMR", "PAB", "PEN", "PGK", "PHP", "PKR", "PLN", "PYG", "QAR", "RON", "RSD", "RUB", "RWF", "SAR", "SBD", "SCR", "SDG", "SEK", "SGD", "SHP", "SLL", "SOS", "SRD", "SSP", "STN", "SVC", "SYP", "SZL", "THB", "TJS", "TMT", "TND", "TOP", "TRY", "TTD", "TWD", "TZS", "UAH", "UGX", "USD", "USN", "UYI", "UYU", "UYW", "UZS", "VES", "VND", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XCG", "XDR", "XOF", "XPD", "XPF", "XPT", "XSU", "XUA", "XXX", "YER", "ZAR", "ZMW", "ZWL"]);
|
|
3600
3797
|
TData3 = z3.string();
|
|
@@ -3608,7 +3805,7 @@ var init_rr1_v11e = __esm({
|
|
|
3608
3805
|
"NrWiersza": TNaturalny3.optional(),
|
|
3609
3806
|
"Klucz": TZnakowy4,
|
|
3610
3807
|
"Wartosc": TZnakowy4
|
|
3611
|
-
});
|
|
3808
|
+
}).strict();
|
|
3612
3809
|
TZnakowy503 = z3.string().min(1).max(50);
|
|
3613
3810
|
TIlosci3 = z3.string().regex(/^-?([1-9]\d{0,15}|0)(\.\d{1,6})?$/);
|
|
3614
3811
|
TKwotowy23 = z3.string().regex(/^-?([1-9]\d{0,13}|0)(\.\d{1,8})?$/);
|
|
@@ -3622,7 +3819,7 @@ var init_rr1_v11e = __esm({
|
|
|
3622
3819
|
"SWIFT": SWIFT_Type3.optional(),
|
|
3623
3820
|
"NazwaBanku": TZnakowy4.optional(),
|
|
3624
3821
|
"OpisRachunku": TZnakowy4.optional()
|
|
3625
|
-
});
|
|
3822
|
+
}).strict();
|
|
3626
3823
|
TTekstowy3 = z3.string().min(1).max(3500);
|
|
3627
3824
|
TNrKRS3 = z3.string().regex(/^\d{10}$/);
|
|
3628
3825
|
TNrREGON3 = z3.union([z3.string().regex(/^\d{9}$/), z3.string().regex(/^\d{14}$/)]);
|
|
@@ -3635,9 +3832,9 @@ var init_rr1_v11e = __esm({
|
|
|
3635
3832
|
"DaneKontaktowe": z3.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z3.array(z3.object({
|
|
3636
3833
|
"Email": TAdresEmail3.optional(),
|
|
3637
3834
|
"Telefon": TNumerTelefonu3.optional()
|
|
3638
|
-
})).min(0).max(3)).optional(),
|
|
3835
|
+
}).strict()).min(0).max(3)).optional(),
|
|
3639
3836
|
"NrKontrahenta": TZnakowy4.optional()
|
|
3640
|
-
}),
|
|
3837
|
+
}).strict(),
|
|
3641
3838
|
"Podmiot2": z3.object({
|
|
3642
3839
|
"DaneIdentyfikacyjne": TPodmiot13,
|
|
3643
3840
|
"Adres": TAdres3,
|
|
@@ -3645,9 +3842,9 @@ var init_rr1_v11e = __esm({
|
|
|
3645
3842
|
"DaneKontaktowe": z3.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z3.array(z3.object({
|
|
3646
3843
|
"Email": TAdresEmail3.optional(),
|
|
3647
3844
|
"Telefon": TNumerTelefonu3.optional()
|
|
3648
|
-
})).min(0).max(3)).optional(),
|
|
3845
|
+
}).strict()).min(0).max(3)).optional(),
|
|
3649
3846
|
"StatusInfoPodatnika": TStatusInfoPodatnika3.optional()
|
|
3650
|
-
}),
|
|
3847
|
+
}).strict(),
|
|
3651
3848
|
"Podmiot3": z3.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z3.array(z3.object({
|
|
3652
3849
|
"DaneIdentyfikacyjne": TPodmiot33,
|
|
3653
3850
|
"Adres": TAdres3.optional(),
|
|
@@ -3655,11 +3852,11 @@ var init_rr1_v11e = __esm({
|
|
|
3655
3852
|
"DaneKontaktowe": z3.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z3.array(z3.object({
|
|
3656
3853
|
"Email": TAdresEmail3.optional(),
|
|
3657
3854
|
"Telefon": TNumerTelefonu3.optional()
|
|
3658
|
-
})).min(0).max(3)).optional(),
|
|
3855
|
+
}).strict()).min(0).max(3)).optional(),
|
|
3659
3856
|
"Rola": TRolaPodmiotu33.optional(),
|
|
3660
3857
|
"RolaInna": TWybor13.optional(),
|
|
3661
3858
|
"OpisRoli": TZnakowy4.optional()
|
|
3662
|
-
})).min(0).max(100)).optional(),
|
|
3859
|
+
}).strict()).min(0).max(100)).optional(),
|
|
3663
3860
|
"FakturaRR": z3.object({
|
|
3664
3861
|
"KodWaluty": TKodWaluty3,
|
|
3665
3862
|
"P_1M": TZnakowy4.optional(),
|
|
@@ -3682,20 +3879,20 @@ var init_rr1_v11e = __esm({
|
|
|
3682
3879
|
"NrKSeF": TWybor13.optional(),
|
|
3683
3880
|
"NrKSeFFaKorygowanej": TNumerKSeF3.optional(),
|
|
3684
3881
|
"NrKSeFN": TWybor13.optional()
|
|
3685
|
-
})).min(1).max(5e4)).optional(),
|
|
3882
|
+
}).strict()).min(1).max(5e4)).optional(),
|
|
3686
3883
|
"NrFaKorygowany": TZnakowy4.optional(),
|
|
3687
3884
|
"Podmiot1K": z3.object({
|
|
3688
3885
|
"DaneIdentyfikacyjne": TPodmiot13,
|
|
3689
3886
|
"Adres": TAdres3
|
|
3690
|
-
}).optional(),
|
|
3887
|
+
}).strict().optional(),
|
|
3691
3888
|
"Podmiot2K": z3.object({
|
|
3692
3889
|
"DaneIdentyfikacyjne": TPodmiot13,
|
|
3693
3890
|
"Adres": TAdres3
|
|
3694
|
-
}).optional(),
|
|
3891
|
+
}).strict().optional(),
|
|
3695
3892
|
"DokumentZaplaty": z3.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z3.array(z3.object({
|
|
3696
3893
|
"NrDokumentu": TZnakowy4,
|
|
3697
3894
|
"DataDokumentu": TData3.optional()
|
|
3698
|
-
})).min(0).max(50)).optional(),
|
|
3895
|
+
}).strict()).min(0).max(50)).optional(),
|
|
3699
3896
|
"DodatkowyOpis": z3.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z3.array(TKluczWartosc3).min(0).max(1e4)).optional(),
|
|
3700
3897
|
"FakturaRRWiersz": z3.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z3.array(z3.object({
|
|
3701
3898
|
"NrWierszaFa": TNaturalny3,
|
|
@@ -3715,21 +3912,21 @@ var init_rr1_v11e = __esm({
|
|
|
3715
3912
|
"P_11": TKwotowy4,
|
|
3716
3913
|
"StanPrzed": TWybor13.optional(),
|
|
3717
3914
|
"KursWaluty": TIlosci3.optional()
|
|
3718
|
-
})).min(0).max(1e4)).optional(),
|
|
3915
|
+
}).strict()).min(0).max(1e4)).optional(),
|
|
3719
3916
|
"Rozliczenie": z3.object({
|
|
3720
3917
|
"Obciazenia": z3.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z3.array(z3.object({
|
|
3721
3918
|
"Kwota": TKwotowy4,
|
|
3722
3919
|
"Powod": TZnakowy4
|
|
3723
|
-
})).min(0).max(100)).optional(),
|
|
3920
|
+
}).strict()).min(0).max(100)).optional(),
|
|
3724
3921
|
"SumaObciazen": TKwotowy4.optional(),
|
|
3725
3922
|
"Odliczenia": z3.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z3.array(z3.object({
|
|
3726
3923
|
"Kwota": TKwotowy4,
|
|
3727
3924
|
"Powod": TZnakowy4
|
|
3728
|
-
})).min(0).max(100)).optional(),
|
|
3925
|
+
}).strict()).min(0).max(100)).optional(),
|
|
3729
3926
|
"SumaOdliczen": TKwotowy4.optional(),
|
|
3730
3927
|
"DoZaplaty": TKwotowy4.optional(),
|
|
3731
3928
|
"DoRozliczenia": TKwotowy4.optional()
|
|
3732
|
-
}).optional(),
|
|
3929
|
+
}).strict().optional(),
|
|
3733
3930
|
"Platnosc": z3.object({
|
|
3734
3931
|
"FormaPlatnosci": TFormaPlatnosci3.optional(),
|
|
3735
3932
|
"PlatnoscInna": TWybor13.optional(),
|
|
@@ -3738,20 +3935,20 @@ var init_rr1_v11e = __esm({
|
|
|
3738
3935
|
"RachunekBankowy2": z3.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z3.array(TRachunekBankowy3).min(0).max(3)).optional(),
|
|
3739
3936
|
"IPKSeF": z3.string().min(1).max(13).regex(/^[0-9]{3}[a-zA-Z0-9]{10}$/).optional(),
|
|
3740
3937
|
"LinkDoPlatnosci": z3.string().min(1).max(512).regex(/^(https?):\/\/([a-zA-Z0-9][a-zA-Z0-9-]*\.)+[a-zA-Z]{2,}(:[0-9]{1,5})?(\/[^\s?#]*)?\?([^#\s]*&)?IPKSeF=[0-9]{3}[a-zA-Z0-9]{10}(&[^#\s]*)?(#.*)?$/).optional()
|
|
3741
|
-
}).optional()
|
|
3742
|
-
}),
|
|
3938
|
+
}).strict().optional()
|
|
3939
|
+
}).strict(),
|
|
3743
3940
|
"Stopka": z3.object({
|
|
3744
3941
|
"Informacje": z3.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z3.array(z3.object({
|
|
3745
3942
|
"StopkaFaktury": TTekstowy3.optional()
|
|
3746
|
-
})).min(0).max(3)).optional(),
|
|
3943
|
+
}).strict()).min(0).max(3)).optional(),
|
|
3747
3944
|
"Rejestry": z3.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z3.array(z3.object({
|
|
3748
3945
|
"PelnaNazwa": TZnakowy4.optional(),
|
|
3749
3946
|
"KRS": TNrKRS3.optional(),
|
|
3750
3947
|
"REGON": TNrREGON3.optional(),
|
|
3751
3948
|
"BDO": z3.string().min(1).max(9).optional()
|
|
3752
|
-
})).min(0).max(100)).optional()
|
|
3753
|
-
}).optional()
|
|
3754
|
-
});
|
|
3949
|
+
}).strict()).min(0).max(100)).optional()
|
|
3950
|
+
}).strict().optional()
|
|
3951
|
+
}).strict();
|
|
3755
3952
|
}
|
|
3756
3953
|
});
|
|
3757
3954
|
|
|
@@ -3769,17 +3966,17 @@ var init_rr1_v10e = __esm({
|
|
|
3769
3966
|
TDataCzas4 = z4.string();
|
|
3770
3967
|
TZnakowy5 = z4.string().min(1).max(256);
|
|
3771
3968
|
TNaglowek4 = z4.object({
|
|
3772
|
-
"KodFormularza": z4.object({ "#text": TKodFormularza4, "@kodSystemowy": z4.literal("FA_RR(1)"), "@wersjaSchemy": z4.literal("1-0E") }),
|
|
3969
|
+
"KodFormularza": z4.object({ "#text": TKodFormularza4, "@kodSystemowy": z4.literal("FA_RR(1)"), "@wersjaSchemy": z4.literal("1-0E") }).strict(),
|
|
3773
3970
|
"WariantFormularza": z4.literal("1"),
|
|
3774
3971
|
"DataWytworzeniaFa": z4.string(),
|
|
3775
3972
|
"SystemInfo": TZnakowy5.optional()
|
|
3776
|
-
});
|
|
3973
|
+
}).strict();
|
|
3777
3974
|
TNrNIP4 = z4.string().regex(/^[1-9]((\d[1-9])|([1-9]\d))\d{7}$/);
|
|
3778
3975
|
TZnakowy5124 = z4.string().min(1).max(512);
|
|
3779
3976
|
TPodmiot14 = z4.object({
|
|
3780
3977
|
"NIP": TNrNIP4,
|
|
3781
3978
|
"Nazwa": TZnakowy5124
|
|
3782
|
-
});
|
|
3979
|
+
}).strict();
|
|
3783
3980
|
TKodKraju4 = z4.enum(["AF", "AX", "AL", "DZ", "AD", "AO", "AI", "AQ", "AG", "AN", "SA", "AR", "AM", "AW", "AU", "AT", "AZ", "BS", "BH", "BD", "BB", "BE", "BZ", "BJ", "BM", "BT", "BY", "BO", "BQ", "BA", "BW", "BR", "BN", "IO", "BG", "BF", "BI", "XC", "CL", "CN", "HR", "CW", "CY", "TD", "ME", "DK", "DM", "DO", "DJ", "EG", "EC", "ER", "EE", "ET", "FK", "FJ", "PH", "FI", "FR", "TF", "GA", "GM", "GH", "GI", "GR", "GD", "GL", "GE", "GU", "GG", "GY", "GF", "GP", "GT", "GN", "GQ", "GW", "HT", "ES", "HN", "HK", "IN", "ID", "IQ", "IR", "IE", "IS", "IL", "JM", "JP", "YE", "JE", "JO", "KY", "KH", "CM", "CA", "QA", "KZ", "KE", "KG", "KI", "CO", "KM", "CG", "CD", "KP", "XK", "CR", "CU", "KW", "LA", "LS", "LB", "LR", "LY", "LI", "LT", "LV", "LU", "MK", "MG", "YT", "MO", "MW", "MV", "MY", "ML", "MT", "MP", "MA", "MQ", "MR", "MU", "MX", "XL", "FM", "UM", "MD", "MC", "MN", "MS", "MZ", "MM", "NA", "NR", "NP", "NL", "DE", "NE", "NG", "NI", "NU", "NF", "NO", "NC", "NZ", "PS", "OM", "PK", "PW", "PA", "PG", "PY", "PE", "PN", "PF", "PL", "GS", "PT", "PR", "CF", "CZ", "KR", "ZA", "RE", "RU", "RO", "RW", "EH", "BL", "KN", "LC", "MF", "VC", "SV", "WS", "AS", "SM", "SN", "RS", "SC", "SL", "SG", "SK", "SI", "SO", "LK", "PM", "US", "SZ", "SD", "SS", "SR", "SJ", "SH", "SY", "CH", "SE", "TJ", "TH", "TW", "TZ", "TG", "TK", "TO", "TT", "TN", "TR", "TM", "TV", "UG", "UA", "UY", "UZ", "VU", "WF", "VA", "HU", "VE", "GB", "VN", "IT", "TL", "CI", "BV", "CX", "IM", "SX", "CK", "VI", "VG", "HM", "CC", "MH", "FO", "SB", "ST", "TC", "ZM", "CV", "ZW", "AE", "XI"]);
|
|
3784
3981
|
TGLN4 = z4.string().min(1).max(13);
|
|
3785
3982
|
TAdres4 = z4.object({
|
|
@@ -3787,7 +3984,7 @@ var init_rr1_v10e = __esm({
|
|
|
3787
3984
|
"AdresL1": TZnakowy5124,
|
|
3788
3985
|
"AdresL2": TZnakowy5124.optional(),
|
|
3789
3986
|
"GLN": TGLN4.optional()
|
|
3790
|
-
});
|
|
3987
|
+
}).strict();
|
|
3791
3988
|
TAdresEmail4 = z4.string().min(3).max(255).regex(/^(.)+@(.)+$/);
|
|
3792
3989
|
TNumerTelefonu4 = z4.string().min(1).max(16);
|
|
3793
3990
|
TStatusInfoPodatnika4 = z4.enum(["1", "2", "3", "4"]);
|
|
@@ -3799,7 +3996,7 @@ var init_rr1_v10e = __esm({
|
|
|
3799
3996
|
"IDWew": TNIPIdWew4.optional(),
|
|
3800
3997
|
"BrakID": TWybor14.optional(),
|
|
3801
3998
|
"Nazwa": TZnakowy5124
|
|
3802
|
-
});
|
|
3999
|
+
}).strict();
|
|
3803
4000
|
TRolaPodmiotu34 = z4.enum(["1", "2", "3", "5", "6", "7", "8", "9", "10", "11"]);
|
|
3804
4001
|
TKodWaluty4 = z4.enum(["AED", "AFN", "ALL", "AMD", "ANG", "AOA", "ARS", "AUD", "AWG", "AZN", "BAM", "BBD", "BDT", "BGN", "BHD", "BIF", "BMD", "BND", "BOB", "BOV", "BRL", "BSD", "BTN", "BWP", "BYN", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLF", "CLP", "CNY", "COP", "COU", "CRC", "CUC", "CUP", "CVE", "CZK", "DJF", "DKK", "DOP", "DZD", "EGP", "ERN", "ETB", "EUR", "FJD", "FKP", "GBP", "GEL", "GGP", "GHS", "GIP", "GMD", "GNF", "GTQ", "GYD", "HKD", "HNL", "HRK", "HTG", "HUF", "IDR", "ILS", "IMP", "INR", "IQD", "IRR", "ISK", "JEP", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LYD", "MAD", "MDL", "MGA", "MKD", "MMK", "MNT", "MOP", "MRU", "MUR", "MVR", "MWK", "MXN", "MXV", "MYR", "MZN", "NAD", "NGN", "NIO", "NOK", "NPR", "NZD", "OMR", "PAB", "PEN", "PGK", "PHP", "PKR", "PLN", "PYG", "QAR", "RON", "RSD", "RUB", "RWF", "SAR", "SBD", "SCR", "SDG", "SEK", "SGD", "SHP", "SLL", "SOS", "SRD", "SSP", "STN", "SVC", "SYP", "SZL", "THB", "TJS", "TMT", "TND", "TOP", "TRY", "TTD", "TWD", "TZS", "UAH", "UGX", "USD", "USN", "UYI", "UYU", "UYW", "UZS", "VES", "VND", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XCG", "XDR", "XOF", "XPD", "XPF", "XPT", "XSU", "XUA", "XXX", "YER", "ZAR", "ZMW", "ZWL"]);
|
|
3805
4002
|
TData4 = z4.string();
|
|
@@ -3813,7 +4010,7 @@ var init_rr1_v10e = __esm({
|
|
|
3813
4010
|
"NrWiersza": TNaturalny4.optional(),
|
|
3814
4011
|
"Klucz": TZnakowy5,
|
|
3815
4012
|
"Wartosc": TZnakowy5
|
|
3816
|
-
});
|
|
4013
|
+
}).strict();
|
|
3817
4014
|
TZnakowy504 = z4.string().min(1).max(50);
|
|
3818
4015
|
TIlosci4 = z4.string().regex(/^-?([1-9]\d{0,15}|0)(\.\d{1,6})?$/);
|
|
3819
4016
|
TKwotowy24 = z4.string().regex(/^-?([1-9]\d{0,13}|0)(\.\d{1,8})?$/);
|
|
@@ -3827,7 +4024,7 @@ var init_rr1_v10e = __esm({
|
|
|
3827
4024
|
"SWIFT": SWIFT_Type4.optional(),
|
|
3828
4025
|
"NazwaBanku": TZnakowy5.optional(),
|
|
3829
4026
|
"OpisRachunku": TZnakowy5.optional()
|
|
3830
|
-
});
|
|
4027
|
+
}).strict();
|
|
3831
4028
|
TTekstowy4 = z4.string().min(1).max(3500);
|
|
3832
4029
|
TNrKRS4 = z4.string().regex(/^\d{10}$/);
|
|
3833
4030
|
TNrREGON4 = z4.union([z4.string().regex(/^\d{9}$/), z4.string().regex(/^\d{14}$/)]);
|
|
@@ -3840,9 +4037,9 @@ var init_rr1_v10e = __esm({
|
|
|
3840
4037
|
"DaneKontaktowe": z4.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z4.array(z4.object({
|
|
3841
4038
|
"Email": TAdresEmail4.optional(),
|
|
3842
4039
|
"Telefon": TNumerTelefonu4.optional()
|
|
3843
|
-
})).min(0).max(3)).optional(),
|
|
4040
|
+
}).strict()).min(0).max(3)).optional(),
|
|
3844
4041
|
"NrKontrahenta": TZnakowy5.optional()
|
|
3845
|
-
}),
|
|
4042
|
+
}).strict(),
|
|
3846
4043
|
"Podmiot2": z4.object({
|
|
3847
4044
|
"DaneIdentyfikacyjne": TPodmiot14,
|
|
3848
4045
|
"Adres": TAdres4,
|
|
@@ -3850,9 +4047,9 @@ var init_rr1_v10e = __esm({
|
|
|
3850
4047
|
"DaneKontaktowe": z4.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z4.array(z4.object({
|
|
3851
4048
|
"Email": TAdresEmail4.optional(),
|
|
3852
4049
|
"Telefon": TNumerTelefonu4.optional()
|
|
3853
|
-
})).min(0).max(3)).optional(),
|
|
4050
|
+
}).strict()).min(0).max(3)).optional(),
|
|
3854
4051
|
"StatusInfoPodatnika": TStatusInfoPodatnika4.optional()
|
|
3855
|
-
}),
|
|
4052
|
+
}).strict(),
|
|
3856
4053
|
"Podmiot3": z4.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z4.array(z4.object({
|
|
3857
4054
|
"DaneIdentyfikacyjne": TPodmiot34,
|
|
3858
4055
|
"Adres": TAdres4.optional(),
|
|
@@ -3860,11 +4057,11 @@ var init_rr1_v10e = __esm({
|
|
|
3860
4057
|
"DaneKontaktowe": z4.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z4.array(z4.object({
|
|
3861
4058
|
"Email": TAdresEmail4.optional(),
|
|
3862
4059
|
"Telefon": TNumerTelefonu4.optional()
|
|
3863
|
-
})).min(0).max(3)).optional(),
|
|
4060
|
+
}).strict()).min(0).max(3)).optional(),
|
|
3864
4061
|
"Rola": TRolaPodmiotu34.optional(),
|
|
3865
4062
|
"RolaInna": TWybor14.optional(),
|
|
3866
4063
|
"OpisRoli": TZnakowy5.optional()
|
|
3867
|
-
})).min(0).max(100)).optional(),
|
|
4064
|
+
}).strict()).min(0).max(100)).optional(),
|
|
3868
4065
|
"FakturaRR": z4.object({
|
|
3869
4066
|
"KodWaluty": TKodWaluty4,
|
|
3870
4067
|
"P_1M": TZnakowy5.optional(),
|
|
@@ -3887,20 +4084,20 @@ var init_rr1_v10e = __esm({
|
|
|
3887
4084
|
"NrKSeF": TWybor14.optional(),
|
|
3888
4085
|
"NrKSeFFaKorygowanej": TNumerKSeF4.optional(),
|
|
3889
4086
|
"NrKSeFN": TWybor14.optional()
|
|
3890
|
-
})).min(1).max(5e4)).optional(),
|
|
4087
|
+
}).strict()).min(1).max(5e4)).optional(),
|
|
3891
4088
|
"NrFaKorygowany": TZnakowy5.optional(),
|
|
3892
4089
|
"Podmiot1K": z4.object({
|
|
3893
4090
|
"DaneIdentyfikacyjne": TPodmiot14,
|
|
3894
4091
|
"Adres": TAdres4
|
|
3895
|
-
}).optional(),
|
|
4092
|
+
}).strict().optional(),
|
|
3896
4093
|
"Podmiot2K": z4.object({
|
|
3897
4094
|
"DaneIdentyfikacyjne": TPodmiot14,
|
|
3898
4095
|
"Adres": TAdres4
|
|
3899
|
-
}).optional(),
|
|
4096
|
+
}).strict().optional(),
|
|
3900
4097
|
"DokumentZaplaty": z4.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z4.array(z4.object({
|
|
3901
4098
|
"NrDokumentu": TZnakowy5,
|
|
3902
4099
|
"DataDokumentu": TData4.optional()
|
|
3903
|
-
})).min(0).max(50)).optional(),
|
|
4100
|
+
}).strict()).min(0).max(50)).optional(),
|
|
3904
4101
|
"DodatkowyOpis": z4.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z4.array(TKluczWartosc4).min(0).max(1e4)).optional(),
|
|
3905
4102
|
"FakturaRRWiersz": z4.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z4.array(z4.object({
|
|
3906
4103
|
"NrWierszaFa": TNaturalny4,
|
|
@@ -3920,21 +4117,21 @@ var init_rr1_v10e = __esm({
|
|
|
3920
4117
|
"P_11": TKwotowy5,
|
|
3921
4118
|
"StanPrzed": TWybor14.optional(),
|
|
3922
4119
|
"KursWaluty": TIlosci4.optional()
|
|
3923
|
-
})).min(0).max(1e4)).optional(),
|
|
4120
|
+
}).strict()).min(0).max(1e4)).optional(),
|
|
3924
4121
|
"Rozliczenie": z4.object({
|
|
3925
4122
|
"Obciazenia": z4.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z4.array(z4.object({
|
|
3926
4123
|
"Kwota": TKwotowy5,
|
|
3927
4124
|
"Powod": TZnakowy5
|
|
3928
|
-
})).min(0).max(100)).optional(),
|
|
4125
|
+
}).strict()).min(0).max(100)).optional(),
|
|
3929
4126
|
"SumaObciazen": TKwotowy5.optional(),
|
|
3930
4127
|
"Odliczenia": z4.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z4.array(z4.object({
|
|
3931
4128
|
"Kwota": TKwotowy5,
|
|
3932
4129
|
"Powod": TZnakowy5
|
|
3933
|
-
})).min(0).max(100)).optional(),
|
|
4130
|
+
}).strict()).min(0).max(100)).optional(),
|
|
3934
4131
|
"SumaOdliczen": TKwotowy5.optional(),
|
|
3935
4132
|
"DoZaplaty": TKwotowy5.optional(),
|
|
3936
4133
|
"DoRozliczenia": TKwotowy5.optional()
|
|
3937
|
-
}).optional(),
|
|
4134
|
+
}).strict().optional(),
|
|
3938
4135
|
"Platnosc": z4.object({
|
|
3939
4136
|
"FormaPlatnosci": TFormaPlatnosci4.optional(),
|
|
3940
4137
|
"PlatnoscInna": TWybor14.optional(),
|
|
@@ -3943,20 +4140,20 @@ var init_rr1_v10e = __esm({
|
|
|
3943
4140
|
"RachunekBankowy2": z4.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z4.array(TRachunekBankowy4).min(0).max(3)).optional(),
|
|
3944
4141
|
"IPKSeF": z4.string().min(1).max(13).regex(/^[0-9]{3}[a-zA-Z0-9]{10}$/).optional(),
|
|
3945
4142
|
"LinkDoPlatnosci": z4.string().min(1).max(512).regex(/^(https?):\/\/([a-zA-Z0-9][a-zA-Z0-9-]*\.)+[a-zA-Z]{2,}(:[0-9]{1,5})?(\/[^\s?#]*)?\?([^#\s]*&)?IPKSeF=[0-9]{3}[a-zA-Z0-9]{10}(&[^#\s]*)?(#.*)?$/).optional()
|
|
3946
|
-
}).optional()
|
|
3947
|
-
}),
|
|
4143
|
+
}).strict().optional()
|
|
4144
|
+
}).strict(),
|
|
3948
4145
|
"Stopka": z4.object({
|
|
3949
4146
|
"Informacje": z4.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z4.array(z4.object({
|
|
3950
4147
|
"StopkaFaktury": TTekstowy4.optional()
|
|
3951
|
-
})).min(0).max(3)).optional(),
|
|
4148
|
+
}).strict()).min(0).max(3)).optional(),
|
|
3952
4149
|
"Rejestry": z4.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z4.array(z4.object({
|
|
3953
4150
|
"PelnaNazwa": TZnakowy5.optional(),
|
|
3954
4151
|
"KRS": TNrKRS4.optional(),
|
|
3955
4152
|
"REGON": TNrREGON4.optional(),
|
|
3956
4153
|
"BDO": z4.string().min(1).max(9).optional()
|
|
3957
|
-
})).min(0).max(100)).optional()
|
|
3958
|
-
}).optional()
|
|
3959
|
-
});
|
|
4154
|
+
}).strict()).min(0).max(100)).optional()
|
|
4155
|
+
}).strict().optional()
|
|
4156
|
+
}).strict();
|
|
3960
4157
|
}
|
|
3961
4158
|
});
|
|
3962
4159
|
|
|
@@ -4025,7 +4222,7 @@ var init_pef3 = __esm({
|
|
|
4025
4222
|
"WithholdingTaxTotal": z5.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z5.array(z5.any()).min(0)).optional(),
|
|
4026
4223
|
"LegalMonetaryTotal": z5.any(),
|
|
4027
4224
|
"InvoiceLine": z5.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z5.array(z5.any()).min(1))
|
|
4028
|
-
});
|
|
4225
|
+
}).strict();
|
|
4029
4226
|
PEF3Schema = InvoiceType;
|
|
4030
4227
|
}
|
|
4031
4228
|
});
|
|
@@ -4092,28 +4289,347 @@ var init_pef_kor3 = __esm({
|
|
|
4092
4289
|
"TaxTotal": z6.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z6.array(z6.any()).min(0)).optional(),
|
|
4093
4290
|
"LegalMonetaryTotal": z6.any(),
|
|
4094
4291
|
"CreditNoteLine": z6.preprocess((v) => Array.isArray(v) ? v : v == null ? [] : [v], z6.array(z6.any()).min(1))
|
|
4095
|
-
});
|
|
4292
|
+
}).strict();
|
|
4096
4293
|
PEF_KOR3Schema = CreditNoteType;
|
|
4097
4294
|
}
|
|
4098
4295
|
});
|
|
4099
4296
|
|
|
4100
|
-
// src/
|
|
4101
|
-
|
|
4102
|
-
|
|
4103
|
-
|
|
4104
|
-
|
|
4297
|
+
// src/validation/schemas/index.ts
|
|
4298
|
+
var SCHEMA_TYPES, NAMESPACE_MAP;
|
|
4299
|
+
var init_schemas = __esm({
|
|
4300
|
+
"src/validation/schemas/index.ts"() {
|
|
4301
|
+
"use strict";
|
|
4302
|
+
init_fa3();
|
|
4303
|
+
init_fa2();
|
|
4304
|
+
init_rr1_v11e();
|
|
4305
|
+
init_rr1_v10e();
|
|
4306
|
+
init_pef3();
|
|
4307
|
+
init_pef_kor3();
|
|
4308
|
+
SCHEMA_TYPES = ["FA3", "FA2", "RR1_V11E", "RR1_V10E", "PEF3", "PEF_KOR3"];
|
|
4309
|
+
NAMESPACE_MAP = {
|
|
4310
|
+
"http://crd.gov.pl/wzor/2025/06/25/13775/": "FA3",
|
|
4311
|
+
"http://crd.gov.pl/wzor/2023/06/29/12648/": "FA2",
|
|
4312
|
+
"http://crd.gov.pl/wzor/2026/03/06/14189/": "RR1_V11E",
|
|
4313
|
+
"http://crd.gov.pl/wzor/2026/02/17/14164/": "RR1_V10E",
|
|
4314
|
+
"urn:oasis:names:specification:ubl:schema:xsd:Invoice-2": "PEF3",
|
|
4315
|
+
"urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2": "PEF_KOR3"
|
|
4316
|
+
};
|
|
4105
4317
|
}
|
|
4106
|
-
|
|
4107
|
-
|
|
4108
|
-
|
|
4318
|
+
});
|
|
4319
|
+
|
|
4320
|
+
// src/validation/schema-registry.ts
|
|
4321
|
+
async function loadSchema(type) {
|
|
4322
|
+
const cached = schemaCache.get(type);
|
|
4323
|
+
if (cached) return cached;
|
|
4324
|
+
let mod;
|
|
4325
|
+
switch (type) {
|
|
4326
|
+
case "FA3":
|
|
4327
|
+
mod = await Promise.resolve().then(() => (init_fa3(), fa3_exports));
|
|
4328
|
+
break;
|
|
4329
|
+
case "FA2":
|
|
4330
|
+
mod = await Promise.resolve().then(() => (init_fa2(), fa2_exports));
|
|
4331
|
+
break;
|
|
4332
|
+
case "RR1_V11E":
|
|
4333
|
+
mod = await Promise.resolve().then(() => (init_rr1_v11e(), rr1_v11e_exports));
|
|
4334
|
+
break;
|
|
4335
|
+
case "RR1_V10E":
|
|
4336
|
+
mod = await Promise.resolve().then(() => (init_rr1_v10e(), rr1_v10e_exports));
|
|
4337
|
+
break;
|
|
4338
|
+
case "PEF3":
|
|
4339
|
+
mod = await Promise.resolve().then(() => (init_pef3(), pef3_exports));
|
|
4340
|
+
break;
|
|
4341
|
+
case "PEF_KOR3":
|
|
4342
|
+
mod = await Promise.resolve().then(() => (init_pef_kor3(), pef_kor3_exports));
|
|
4343
|
+
break;
|
|
4344
|
+
default:
|
|
4345
|
+
throw new Error(`Unknown schema type: ${type}`);
|
|
4109
4346
|
}
|
|
4110
|
-
|
|
4111
|
-
|
|
4112
|
-
|
|
4113
|
-
|
|
4114
|
-
}
|
|
4115
|
-
|
|
4116
|
-
|
|
4347
|
+
const exportName = `${type}Schema`;
|
|
4348
|
+
const schema = mod[exportName];
|
|
4349
|
+
if (!schema) {
|
|
4350
|
+
throw new Error(`Schema export "${exportName}" not found in module for type "${type}"`);
|
|
4351
|
+
}
|
|
4352
|
+
schemaCache.set(type, schema);
|
|
4353
|
+
return schema;
|
|
4354
|
+
}
|
|
4355
|
+
var ROOT_ELEMENT_MAP, schemaCache, SchemaRegistry;
|
|
4356
|
+
var init_schema_registry = __esm({
|
|
4357
|
+
"src/validation/schema-registry.ts"() {
|
|
4358
|
+
"use strict";
|
|
4359
|
+
init_schemas();
|
|
4360
|
+
ROOT_ELEMENT_MAP = {
|
|
4361
|
+
Invoice: "PEF3",
|
|
4362
|
+
CreditNote: "PEF_KOR3"
|
|
4363
|
+
};
|
|
4364
|
+
schemaCache = /* @__PURE__ */ new Map();
|
|
4365
|
+
SchemaRegistry = {
|
|
4366
|
+
/**
|
|
4367
|
+
* Get a Zod schema by type. Lazy-loads the module on first access.
|
|
4368
|
+
*/
|
|
4369
|
+
async get(type) {
|
|
4370
|
+
return loadSchema(type);
|
|
4371
|
+
},
|
|
4372
|
+
/**
|
|
4373
|
+
* List all available schema types.
|
|
4374
|
+
*/
|
|
4375
|
+
availableSchemas() {
|
|
4376
|
+
return ["FA3", "FA2", "RR1_V11E", "RR1_V10E", "PEF3", "PEF_KOR3"];
|
|
4377
|
+
},
|
|
4378
|
+
/**
|
|
4379
|
+
* Detect schema type from XML namespace URI and/or root element name.
|
|
4380
|
+
*
|
|
4381
|
+
* Detection priority:
|
|
4382
|
+
* 1. Namespace URI match (unique per FA/RR schemas)
|
|
4383
|
+
* 2. Root element name match (for PEF/PEF_KOR which use UBL namespaces)
|
|
4384
|
+
*/
|
|
4385
|
+
detect(namespace, rootElement) {
|
|
4386
|
+
if (namespace) {
|
|
4387
|
+
const byNs = NAMESPACE_MAP[namespace];
|
|
4388
|
+
if (byNs) return byNs;
|
|
4389
|
+
}
|
|
4390
|
+
if (rootElement) {
|
|
4391
|
+
const byRoot = ROOT_ELEMENT_MAP[rootElement];
|
|
4392
|
+
if (byRoot) return byRoot;
|
|
4393
|
+
}
|
|
4394
|
+
return null;
|
|
4395
|
+
}
|
|
4396
|
+
};
|
|
4397
|
+
}
|
|
4398
|
+
});
|
|
4399
|
+
|
|
4400
|
+
// src/validation/patterns.ts
|
|
4401
|
+
function isValidNip(value) {
|
|
4402
|
+
if (!Nip.test(value)) return false;
|
|
4403
|
+
let sum = 0;
|
|
4404
|
+
for (let i = 0; i < 9; i++) {
|
|
4405
|
+
sum += Number(value[i]) * NIP_WEIGHTS[i];
|
|
4406
|
+
}
|
|
4407
|
+
const checksum = sum % 11;
|
|
4408
|
+
return checksum !== 10 && checksum === Number(value[9]);
|
|
4409
|
+
}
|
|
4410
|
+
function isValidPesel(value) {
|
|
4411
|
+
if (!Pesel.test(value)) return false;
|
|
4412
|
+
let sum = 0;
|
|
4413
|
+
for (let i = 0; i < 10; i++) {
|
|
4414
|
+
sum += Number(value[i]) * PESEL_WEIGHTS[i];
|
|
4415
|
+
}
|
|
4416
|
+
const checksum = (10 - sum % 10) % 10;
|
|
4417
|
+
return checksum === Number(value[10]);
|
|
4418
|
+
}
|
|
4419
|
+
var NIP_PATTERN_CORE, VAT_UE_PATTERN_CORE, Nip, VatUe, NipVatUe, Pesel, NIP_WEIGHTS, PESEL_WEIGHTS;
|
|
4420
|
+
var init_patterns = __esm({
|
|
4421
|
+
"src/validation/patterns.ts"() {
|
|
4422
|
+
"use strict";
|
|
4423
|
+
NIP_PATTERN_CORE = "[1-9]((\\d[1-9])|([1-9]\\d))\\d{7}";
|
|
4424
|
+
VAT_UE_PATTERN_CORE = "(ATU\\d{8}|BE[01]{1}\\d{9}|BG\\d{9,10}|CY\\d{8}[A-Z]|CZ\\d{8,10}|DE\\d{9}|DK\\d{8}|EE\\d{9}|EL\\d{9}|ES([A-Z]\\d{8}|\\d{8}[A-Z]|[A-Z]\\d{7}[A-Z])|FI\\d{8}|FR[A-Z0-9]{2}\\d{9}|HR\\d{11}|HU\\d{8}|IE(\\d{7}[A-Z]{2}|\\d[A-Z0-9+*]\\d{5}[A-Z])|IT\\d{11}|LT(\\d{9}|\\d{12})|LU\\d{8}|LV\\d{11}|MT\\d{8}|NL[A-Z0-9+*]{12}|PT\\d{9}|RO\\d{2,10}|SE\\d{12}|SI\\d{8}|SK\\d{10}|XI((\\d{9}|\\d{12})|(GD|HA)\\d{3}))";
|
|
4425
|
+
Nip = new RegExp(`^${NIP_PATTERN_CORE}$`);
|
|
4426
|
+
VatUe = new RegExp(`^${VAT_UE_PATTERN_CORE}$`);
|
|
4427
|
+
NipVatUe = new RegExp(`^${NIP_PATTERN_CORE}-${VAT_UE_PATTERN_CORE}$`);
|
|
4428
|
+
Pesel = /^\d{2}(?:0[1-9]|1[0-2]|2[1-9]|3[0-2]|4[1-9]|5[0-2]|6[1-9]|7[0-2]|8[1-9]|9[0-2])\d{7}$/;
|
|
4429
|
+
NIP_WEIGHTS = [6, 5, 7, 2, 3, 4, 5, 6, 7];
|
|
4430
|
+
PESEL_WEIGHTS = [1, 3, 7, 9, 1, 3, 7, 9, 1, 3];
|
|
4431
|
+
}
|
|
4432
|
+
});
|
|
4433
|
+
|
|
4434
|
+
// src/validation/invoice-validator.ts
|
|
4435
|
+
var invoice_validator_exports = {};
|
|
4436
|
+
__export(invoice_validator_exports, {
|
|
4437
|
+
batchValidationDetails: () => batchValidationDetails,
|
|
4438
|
+
validate: () => validate,
|
|
4439
|
+
validateBatch: () => validateBatch,
|
|
4440
|
+
validateBusinessRules: () => validateBusinessRules,
|
|
4441
|
+
validateSchema: () => validateSchema,
|
|
4442
|
+
validateWellFormedness: () => validateWellFormedness
|
|
4443
|
+
});
|
|
4444
|
+
function validateWellFormedness(xml, _parsed) {
|
|
4445
|
+
if (!xml || !xml.trim()) {
|
|
4446
|
+
return {
|
|
4447
|
+
valid: false,
|
|
4448
|
+
schemaType: null,
|
|
4449
|
+
errors: [{ code: "MALFORMED_XML", message: "Empty XML input" }]
|
|
4450
|
+
};
|
|
4451
|
+
}
|
|
4452
|
+
const { object, rootElement, namespace, errors } = _parsed ?? xmlToObject(xml);
|
|
4453
|
+
if (errors.length > 0 || !object) {
|
|
4454
|
+
return {
|
|
4455
|
+
valid: false,
|
|
4456
|
+
schemaType: null,
|
|
4457
|
+
errors: errors.map((msg) => ({ code: "MALFORMED_XML", message: msg }))
|
|
4458
|
+
};
|
|
4459
|
+
}
|
|
4460
|
+
const schemaType = SchemaRegistry.detect(namespace, rootElement);
|
|
4461
|
+
return { valid: true, schemaType, errors: [] };
|
|
4462
|
+
}
|
|
4463
|
+
async function validateSchema(xml, options, _parsed) {
|
|
4464
|
+
const { object, rootElement, namespace, errors: parseErrors } = _parsed ?? xmlToObject(xml);
|
|
4465
|
+
if (parseErrors.length > 0 || !object) {
|
|
4466
|
+
return {
|
|
4467
|
+
valid: false,
|
|
4468
|
+
schemaType: null,
|
|
4469
|
+
errors: parseErrors.map((msg) => ({ code: "MALFORMED_XML", message: msg }))
|
|
4470
|
+
};
|
|
4471
|
+
}
|
|
4472
|
+
const schemaType = options?.schema ?? SchemaRegistry.detect(namespace, rootElement);
|
|
4473
|
+
if (!schemaType) {
|
|
4474
|
+
return {
|
|
4475
|
+
valid: false,
|
|
4476
|
+
schemaType: null,
|
|
4477
|
+
errors: [{
|
|
4478
|
+
code: "UNKNOWN_SCHEMA",
|
|
4479
|
+
message: `Cannot detect schema type from namespace "${namespace}" and root element "${rootElement}"`
|
|
4480
|
+
}]
|
|
4481
|
+
};
|
|
4482
|
+
}
|
|
4483
|
+
const schema = await SchemaRegistry.get(schemaType);
|
|
4484
|
+
const result = schema.safeParse(object);
|
|
4485
|
+
if (result.success) {
|
|
4486
|
+
return { valid: true, schemaType, errors: [] };
|
|
4487
|
+
}
|
|
4488
|
+
const prefix = rootElement ? `/${rootElement}/` : "/";
|
|
4489
|
+
const validationErrors = result.error.issues.map((issue) => {
|
|
4490
|
+
const zodPath = issue.path.join("/");
|
|
4491
|
+
const path9 = zodPath ? `${prefix}${zodPath}` : rootElement ? `/${rootElement}` : void 0;
|
|
4492
|
+
return {
|
|
4493
|
+
code: mapZodErrorCode(issue),
|
|
4494
|
+
message: issue.message,
|
|
4495
|
+
path: path9
|
|
4496
|
+
};
|
|
4497
|
+
});
|
|
4498
|
+
return { valid: false, schemaType, errors: validationErrors };
|
|
4499
|
+
}
|
|
4500
|
+
function mapZodErrorCode(issue) {
|
|
4501
|
+
switch (issue.code) {
|
|
4502
|
+
case "invalid_type":
|
|
4503
|
+
return issue.input === void 0 ? "MISSING_REQUIRED_ELEMENT" : "INVALID_VALUE";
|
|
4504
|
+
case "invalid_enum_value":
|
|
4505
|
+
// Zod v3
|
|
4506
|
+
case "invalid_value":
|
|
4507
|
+
return "INVALID_ENUM_VALUE";
|
|
4508
|
+
case "invalid_string":
|
|
4509
|
+
// Zod v3
|
|
4510
|
+
case "invalid_format":
|
|
4511
|
+
return "PATTERN_MISMATCH";
|
|
4512
|
+
case "too_big":
|
|
4513
|
+
return "MAX_OCCURS_EXCEEDED";
|
|
4514
|
+
case "unrecognized_keys":
|
|
4515
|
+
return "UNRECOGNIZED_KEY";
|
|
4516
|
+
default:
|
|
4517
|
+
return "SCHEMA_VALIDATION_ERROR";
|
|
4518
|
+
}
|
|
4519
|
+
}
|
|
4520
|
+
function validateBusinessRules(xml, _parsed) {
|
|
4521
|
+
const { object, rootElement, namespace, errors: parseErrors } = _parsed ?? xmlToObject(xml);
|
|
4522
|
+
if (parseErrors.length > 0 || !object) {
|
|
4523
|
+
return {
|
|
4524
|
+
valid: false,
|
|
4525
|
+
schemaType: null,
|
|
4526
|
+
errors: parseErrors.map((msg) => ({ code: "MALFORMED_XML", message: msg }))
|
|
4527
|
+
};
|
|
4528
|
+
}
|
|
4529
|
+
const schemaType = SchemaRegistry.detect(namespace, rootElement);
|
|
4530
|
+
const errors = [];
|
|
4531
|
+
collectNipPeselErrors(object, rootElement ? `/${rootElement}` : "", errors);
|
|
4532
|
+
collectDateErrors(object, rootElement, errors);
|
|
4533
|
+
return { valid: errors.length === 0, schemaType, errors };
|
|
4534
|
+
}
|
|
4535
|
+
function collectNipPeselErrors(obj, path9, errors) {
|
|
4536
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
4537
|
+
const currentPath = path9 ? `${path9}/${key}` : key;
|
|
4538
|
+
if (key === "NIP" && typeof value === "string") {
|
|
4539
|
+
if (!isValidNip(value)) {
|
|
4540
|
+
errors.push({
|
|
4541
|
+
code: "INVALID_NIP_CHECKSUM",
|
|
4542
|
+
message: `Invalid NIP checksum: ${value}`,
|
|
4543
|
+
path: currentPath
|
|
4544
|
+
});
|
|
4545
|
+
}
|
|
4546
|
+
} else if (key === "PESEL" && typeof value === "string") {
|
|
4547
|
+
if (!isValidPesel(value)) {
|
|
4548
|
+
errors.push({
|
|
4549
|
+
code: "INVALID_PESEL_CHECKSUM",
|
|
4550
|
+
message: `Invalid PESEL checksum: ${value}`,
|
|
4551
|
+
path: currentPath
|
|
4552
|
+
});
|
|
4553
|
+
}
|
|
4554
|
+
} else if (typeof value === "object" && value !== null) {
|
|
4555
|
+
if (Array.isArray(value)) {
|
|
4556
|
+
for (let i = 0; i < value.length; i++) {
|
|
4557
|
+
if (typeof value[i] === "object" && value[i] !== null) {
|
|
4558
|
+
collectNipPeselErrors(value[i], `${currentPath}/${i}`, errors);
|
|
4559
|
+
}
|
|
4560
|
+
}
|
|
4561
|
+
} else {
|
|
4562
|
+
collectNipPeselErrors(value, currentPath, errors);
|
|
4563
|
+
}
|
|
4564
|
+
}
|
|
4565
|
+
}
|
|
4566
|
+
}
|
|
4567
|
+
function getPolandLocalDate() {
|
|
4568
|
+
return new Intl.DateTimeFormat("sv-SE", { timeZone: "Europe/Warsaw" }).format(Date.now());
|
|
4569
|
+
}
|
|
4570
|
+
function collectDateErrors(obj, rootElement, errors) {
|
|
4571
|
+
const fa = obj["Fa"];
|
|
4572
|
+
if (!fa || typeof fa !== "object") return;
|
|
4573
|
+
const p1 = fa["P_1"];
|
|
4574
|
+
if (typeof p1 !== "string") return;
|
|
4575
|
+
const today = getPolandLocalDate();
|
|
4576
|
+
if (p1 > today) {
|
|
4577
|
+
const prefix = rootElement ? `/${rootElement}` : "";
|
|
4578
|
+
errors.push({
|
|
4579
|
+
code: "FUTURE_INVOICE_DATE",
|
|
4580
|
+
message: `Invoice date P_1 (${p1}) is in the future \u2014 KSeF rejects invoices with P_1 > today (${today})`,
|
|
4581
|
+
path: `${prefix}/Fa/P_1`
|
|
4582
|
+
});
|
|
4583
|
+
}
|
|
4584
|
+
}
|
|
4585
|
+
async function validate(xml, options) {
|
|
4586
|
+
const parsed = xml && xml.trim() ? xmlToObject(xml) : void 0;
|
|
4587
|
+
const l1 = validateWellFormedness(xml, parsed);
|
|
4588
|
+
if (!l1.valid) return l1;
|
|
4589
|
+
const l2 = await validateSchema(xml, options, parsed);
|
|
4590
|
+
if (!l2.valid) return l2;
|
|
4591
|
+
const l3 = validateBusinessRules(xml, parsed);
|
|
4592
|
+
return { ...l3, schemaType: l2.schemaType };
|
|
4593
|
+
}
|
|
4594
|
+
async function validateBatch(invoices2, options) {
|
|
4595
|
+
const results = [];
|
|
4596
|
+
for (const { fileName, xml } of invoices2) {
|
|
4597
|
+
results.push({ fileName, result: await validate(xml, options) });
|
|
4598
|
+
}
|
|
4599
|
+
return { valid: results.every((r) => r.result.valid), results };
|
|
4600
|
+
}
|
|
4601
|
+
function batchValidationDetails(batch) {
|
|
4602
|
+
return batch.results.filter((r) => !r.result.valid).flatMap((r) => r.result.errors.map((e) => ({
|
|
4603
|
+
field: e.path ? `${r.fileName}:${e.path}` : r.fileName,
|
|
4604
|
+
message: e.message
|
|
4605
|
+
})));
|
|
4606
|
+
}
|
|
4607
|
+
var init_invoice_validator = __esm({
|
|
4608
|
+
"src/validation/invoice-validator.ts"() {
|
|
4609
|
+
"use strict";
|
|
4610
|
+
init_xml_to_object();
|
|
4611
|
+
init_schema_registry();
|
|
4612
|
+
init_patterns();
|
|
4613
|
+
}
|
|
4614
|
+
});
|
|
4615
|
+
|
|
4616
|
+
// src/builders/batch-file.ts
|
|
4617
|
+
import * as crypto4 from "crypto";
|
|
4618
|
+
function splitBuffer(data, maxPartSize) {
|
|
4619
|
+
if (data.length <= maxPartSize) {
|
|
4620
|
+
return [data];
|
|
4621
|
+
}
|
|
4622
|
+
const parts = [];
|
|
4623
|
+
for (let offset = 0; offset < data.length; offset += maxPartSize) {
|
|
4624
|
+
parts.push(data.subarray(offset, Math.min(offset + maxPartSize, data.length)));
|
|
4625
|
+
}
|
|
4626
|
+
return parts;
|
|
4627
|
+
}
|
|
4628
|
+
function sha256Base64(data) {
|
|
4629
|
+
return crypto4.createHash("sha256").update(data).digest("base64");
|
|
4630
|
+
}
|
|
4631
|
+
var BATCH_MAX_PART_SIZE, BATCH_MAX_TOTAL_SIZE, BATCH_MAX_PARTS, BatchFileBuilder;
|
|
4632
|
+
var init_batch_file = __esm({
|
|
4117
4633
|
"src/builders/batch-file.ts"() {
|
|
4118
4634
|
"use strict";
|
|
4119
4635
|
init_ksef_validation_error();
|
|
@@ -4283,6 +4799,24 @@ __export(batch_session_workflow_exports, {
|
|
|
4283
4799
|
});
|
|
4284
4800
|
async function uploadBatch(client, zipData, options) {
|
|
4285
4801
|
await client.crypto.init();
|
|
4802
|
+
if (options?.validate) {
|
|
4803
|
+
const { unzip: unzip2 } = await Promise.resolve().then(() => (init_zip(), zip_exports));
|
|
4804
|
+
const { validateBatch: validateBatch2, batchValidationDetails: batchValidationDetails2 } = await Promise.resolve().then(() => (init_invoice_validator(), invoice_validator_exports));
|
|
4805
|
+
const { KSeFValidationError: KSeFValidationError2 } = await Promise.resolve().then(() => (init_ksef_validation_error(), ksef_validation_error_exports));
|
|
4806
|
+
const zipBuf = Buffer.isBuffer(zipData) ? zipData : Buffer.from(zipData.buffer, zipData.byteOffset, zipData.byteLength);
|
|
4807
|
+
const files = await unzip2(zipBuf);
|
|
4808
|
+
const invoices2 = [...files.entries()].filter(([name]) => name.endsWith(".xml")).map(([name, data]) => ({ fileName: name, xml: data.toString("utf-8") }));
|
|
4809
|
+
if (invoices2.length > 0) {
|
|
4810
|
+
const result2 = await validateBatch2(invoices2);
|
|
4811
|
+
if (!result2.valid) {
|
|
4812
|
+
const invalidCount = result2.results.filter((r) => !r.result.valid).length;
|
|
4813
|
+
throw new KSeFValidationError2(
|
|
4814
|
+
`Batch validation failed: ${invalidCount} of ${invoices2.length} invoices invalid`,
|
|
4815
|
+
batchValidationDetails2(result2)
|
|
4816
|
+
);
|
|
4817
|
+
}
|
|
4818
|
+
}
|
|
4819
|
+
}
|
|
4286
4820
|
const encData = client.crypto.getEncryptionData();
|
|
4287
4821
|
const formCode = options?.formCode ?? DEFAULT_FORM_CODE;
|
|
4288
4822
|
const encryptFn = (part) => client.crypto.encryptAES256(part, encData.cipherKey, encData.cipherIv);
|
|
@@ -4558,6 +5092,7 @@ init_ksef_rate_limit_error();
|
|
|
4558
5092
|
init_ksef_unauthorized_error();
|
|
4559
5093
|
init_ksef_forbidden_error();
|
|
4560
5094
|
init_ksef_api_error();
|
|
5095
|
+
init_ksef_validation_error();
|
|
4561
5096
|
import { consola as consola2 } from "consola";
|
|
4562
5097
|
async function withErrorHandler(fn) {
|
|
4563
5098
|
try {
|
|
@@ -4581,6 +5116,13 @@ async function withErrorHandler(fn) {
|
|
|
4581
5116
|
consola2.info("Hint: Check your permissions for this operation.");
|
|
4582
5117
|
process.exit(1);
|
|
4583
5118
|
}
|
|
5119
|
+
if (error instanceof KSeFValidationError) {
|
|
5120
|
+
consola2.error(error.message);
|
|
5121
|
+
for (const detail of error.details) {
|
|
5122
|
+
consola2.error(` ${detail.field ? `[${detail.field}] ` : ""}${detail.message}`);
|
|
5123
|
+
}
|
|
5124
|
+
process.exit(1);
|
|
5125
|
+
}
|
|
4584
5126
|
if (error instanceof KSeFApiError) {
|
|
4585
5127
|
consola2.error(`KSeF API error (HTTP ${error.statusCode}): ${error.message}`);
|
|
4586
5128
|
if (error.errorResponse?.exception?.exceptionDetailList) {
|
|
@@ -5681,11 +6223,8 @@ var FileHwmStore = class {
|
|
|
5681
6223
|
}
|
|
5682
6224
|
};
|
|
5683
6225
|
|
|
5684
|
-
// src/utils/zip.ts
|
|
5685
|
-
import { ZipFile } from "yazl";
|
|
5686
|
-
import { fromBuffer } from "yauzl";
|
|
5687
|
-
|
|
5688
6226
|
// src/workflows/invoice-export-workflow.ts
|
|
6227
|
+
init_zip();
|
|
5689
6228
|
init_polling();
|
|
5690
6229
|
async function doExport(client, filters, options) {
|
|
5691
6230
|
await client.crypto.init();
|
|
@@ -5841,6 +6380,7 @@ var exportIncremental = defineCommand4({
|
|
|
5841
6380
|
stateFile: { type: "string", description: "HWM state file path (default: ./ksef-hwm-state.json)" },
|
|
5842
6381
|
outputDir: { type: "string", description: "Output directory for exported parts (default: ./ksef-exports/)" },
|
|
5843
6382
|
maxIterations: { type: "string", description: "Max export iterations (default: 20)" },
|
|
6383
|
+
onlyMetadata: { type: "boolean", description: "Export metadata only (no invoice XML)" },
|
|
5844
6384
|
env: { type: "string", description: "Environment (test/demo/prod)" },
|
|
5845
6385
|
json: { type: "boolean", description: "Output as JSON" },
|
|
5846
6386
|
verbose: { type: "boolean", description: "Show HTTP request/response details" },
|
|
@@ -5875,6 +6415,7 @@ var exportIncremental = defineCommand4({
|
|
|
5875
6415
|
windowTo: to,
|
|
5876
6416
|
continuationPoints,
|
|
5877
6417
|
maxIterations,
|
|
6418
|
+
onlyMetadata: args.onlyMetadata,
|
|
5878
6419
|
store,
|
|
5879
6420
|
pollOptions: { intervalMs: 2e3 },
|
|
5880
6421
|
onIterationComplete: (iteration, iterResult) => {
|
|
@@ -5917,365 +6458,10 @@ var exportIncremental = defineCommand4({
|
|
|
5917
6458
|
}
|
|
5918
6459
|
});
|
|
5919
6460
|
|
|
5920
|
-
// src/validation/xml-to-object.ts
|
|
5921
|
-
import { DOMParser as DOMParser2 } from "@xmldom/xmldom";
|
|
5922
|
-
function xmlToObject(xml) {
|
|
5923
|
-
const errors = [];
|
|
5924
|
-
const doc = new DOMParser2({
|
|
5925
|
-
errorHandler: {
|
|
5926
|
-
warning: (_msg) => {
|
|
5927
|
-
},
|
|
5928
|
-
error: (msg) => errors.push(msg),
|
|
5929
|
-
fatalError: (msg) => errors.push(msg)
|
|
5930
|
-
}
|
|
5931
|
-
}).parseFromString(xml, "text/xml");
|
|
5932
|
-
if (errors.length > 0 || !doc || !doc.documentElement) {
|
|
5933
|
-
return { object: null, rootElement: null, namespace: null, errors };
|
|
5934
|
-
}
|
|
5935
|
-
const root = doc.documentElement;
|
|
5936
|
-
const rootName = getLocalName(root);
|
|
5937
|
-
const namespace = root.namespaceURI || null;
|
|
5938
|
-
const obj = elementToObject(root);
|
|
5939
|
-
return {
|
|
5940
|
-
object: typeof obj === "object" && obj !== null ? obj : { "#text": obj },
|
|
5941
|
-
rootElement: rootName,
|
|
5942
|
-
namespace,
|
|
5943
|
-
errors: []
|
|
5944
|
-
};
|
|
5945
|
-
}
|
|
5946
|
-
function getLocalName(node) {
|
|
5947
|
-
if (node.localName) return node.localName;
|
|
5948
|
-
const name = node.nodeName;
|
|
5949
|
-
const idx = name.indexOf(":");
|
|
5950
|
-
return idx === -1 ? name : name.substring(idx + 1);
|
|
5951
|
-
}
|
|
5952
|
-
function elementToObject(el) {
|
|
5953
|
-
const result = {};
|
|
5954
|
-
let hasChildElements = false;
|
|
5955
|
-
for (let i = 0; i < el.attributes.length; i++) {
|
|
5956
|
-
const a = el.attributes.item(i);
|
|
5957
|
-
if (!a) continue;
|
|
5958
|
-
const name = a.nodeName;
|
|
5959
|
-
if (name === "xmlns" || name.startsWith("xmlns:")) continue;
|
|
5960
|
-
const attrLocal = getLocalName(a);
|
|
5961
|
-
result[`@${attrLocal}`] = a.value;
|
|
5962
|
-
}
|
|
5963
|
-
const childCounts = /* @__PURE__ */ new Map();
|
|
5964
|
-
for (let i = 0; i < el.childNodes.length; i++) {
|
|
5965
|
-
const child = el.childNodes.item(i);
|
|
5966
|
-
if (!child || child.nodeType !== 1) continue;
|
|
5967
|
-
const name = getLocalName(child);
|
|
5968
|
-
childCounts.set(name, (childCounts.get(name) || 0) + 1);
|
|
5969
|
-
hasChildElements = true;
|
|
5970
|
-
}
|
|
5971
|
-
if (!hasChildElements) {
|
|
5972
|
-
const text = getTextContent(el);
|
|
5973
|
-
const hasAttrs = Object.keys(result).length > 0;
|
|
5974
|
-
if (hasAttrs) {
|
|
5975
|
-
result["#text"] = text;
|
|
5976
|
-
return result;
|
|
5977
|
-
}
|
|
5978
|
-
return text;
|
|
5979
|
-
}
|
|
5980
|
-
for (let i = 0; i < el.childNodes.length; i++) {
|
|
5981
|
-
const child = el.childNodes.item(i);
|
|
5982
|
-
if (!child || child.nodeType !== 1) continue;
|
|
5983
|
-
const name = getLocalName(child);
|
|
5984
|
-
const value = elementToObject(child);
|
|
5985
|
-
const count = childCounts.get(name) || 1;
|
|
5986
|
-
if (count > 1) {
|
|
5987
|
-
if (!Array.isArray(result[name])) {
|
|
5988
|
-
result[name] = [];
|
|
5989
|
-
}
|
|
5990
|
-
result[name].push(value);
|
|
5991
|
-
} else {
|
|
5992
|
-
result[name] = value;
|
|
5993
|
-
}
|
|
5994
|
-
}
|
|
5995
|
-
return result;
|
|
5996
|
-
}
|
|
5997
|
-
function getTextContent(el) {
|
|
5998
|
-
let text = "";
|
|
5999
|
-
for (let i = 0; i < el.childNodes.length; i++) {
|
|
6000
|
-
const child = el.childNodes.item(i);
|
|
6001
|
-
if (!child) continue;
|
|
6002
|
-
if (child.nodeType === 3 || child.nodeType === 4) {
|
|
6003
|
-
text += child.nodeValue || "";
|
|
6004
|
-
}
|
|
6005
|
-
}
|
|
6006
|
-
return text.trim();
|
|
6007
|
-
}
|
|
6008
|
-
|
|
6009
|
-
// src/validation/schemas/index.ts
|
|
6010
|
-
init_fa3();
|
|
6011
|
-
init_fa2();
|
|
6012
|
-
init_rr1_v11e();
|
|
6013
|
-
init_rr1_v10e();
|
|
6014
|
-
init_pef3();
|
|
6015
|
-
init_pef_kor3();
|
|
6016
|
-
var SCHEMA_TYPES = ["FA3", "FA2", "RR1_V11E", "RR1_V10E", "PEF3", "PEF_KOR3"];
|
|
6017
|
-
var NAMESPACE_MAP = {
|
|
6018
|
-
"http://crd.gov.pl/wzor/2025/06/25/13775/": "FA3",
|
|
6019
|
-
"http://crd.gov.pl/wzor/2023/06/29/12648/": "FA2",
|
|
6020
|
-
"http://crd.gov.pl/wzor/2026/03/06/14189/": "RR1_V11E",
|
|
6021
|
-
"http://crd.gov.pl/wzor/2026/02/17/14164/": "RR1_V10E",
|
|
6022
|
-
"urn:oasis:names:specification:ubl:schema:xsd:Invoice-2": "PEF3",
|
|
6023
|
-
"urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2": "PEF_KOR3"
|
|
6024
|
-
};
|
|
6025
|
-
|
|
6026
|
-
// src/validation/schema-registry.ts
|
|
6027
|
-
var ROOT_ELEMENT_MAP = {
|
|
6028
|
-
Invoice: "PEF3",
|
|
6029
|
-
CreditNote: "PEF_KOR3"
|
|
6030
|
-
};
|
|
6031
|
-
var schemaCache = /* @__PURE__ */ new Map();
|
|
6032
|
-
async function loadSchema(type) {
|
|
6033
|
-
const cached = schemaCache.get(type);
|
|
6034
|
-
if (cached) return cached;
|
|
6035
|
-
let mod;
|
|
6036
|
-
switch (type) {
|
|
6037
|
-
case "FA3":
|
|
6038
|
-
mod = await Promise.resolve().then(() => (init_fa3(), fa3_exports));
|
|
6039
|
-
break;
|
|
6040
|
-
case "FA2":
|
|
6041
|
-
mod = await Promise.resolve().then(() => (init_fa2(), fa2_exports));
|
|
6042
|
-
break;
|
|
6043
|
-
case "RR1_V11E":
|
|
6044
|
-
mod = await Promise.resolve().then(() => (init_rr1_v11e(), rr1_v11e_exports));
|
|
6045
|
-
break;
|
|
6046
|
-
case "RR1_V10E":
|
|
6047
|
-
mod = await Promise.resolve().then(() => (init_rr1_v10e(), rr1_v10e_exports));
|
|
6048
|
-
break;
|
|
6049
|
-
case "PEF3":
|
|
6050
|
-
mod = await Promise.resolve().then(() => (init_pef3(), pef3_exports));
|
|
6051
|
-
break;
|
|
6052
|
-
case "PEF_KOR3":
|
|
6053
|
-
mod = await Promise.resolve().then(() => (init_pef_kor3(), pef_kor3_exports));
|
|
6054
|
-
break;
|
|
6055
|
-
default:
|
|
6056
|
-
throw new Error(`Unknown schema type: ${type}`);
|
|
6057
|
-
}
|
|
6058
|
-
const exportName = `${type}Schema`;
|
|
6059
|
-
const schema = mod[exportName];
|
|
6060
|
-
if (!schema) {
|
|
6061
|
-
throw new Error(`Schema export "${exportName}" not found in module for type "${type}"`);
|
|
6062
|
-
}
|
|
6063
|
-
schemaCache.set(type, schema);
|
|
6064
|
-
return schema;
|
|
6065
|
-
}
|
|
6066
|
-
var SchemaRegistry = {
|
|
6067
|
-
/**
|
|
6068
|
-
* Get a Zod schema by type. Lazy-loads the module on first access.
|
|
6069
|
-
*/
|
|
6070
|
-
async get(type) {
|
|
6071
|
-
return loadSchema(type);
|
|
6072
|
-
},
|
|
6073
|
-
/**
|
|
6074
|
-
* List all available schema types.
|
|
6075
|
-
*/
|
|
6076
|
-
availableSchemas() {
|
|
6077
|
-
return ["FA3", "FA2", "RR1_V11E", "RR1_V10E", "PEF3", "PEF_KOR3"];
|
|
6078
|
-
},
|
|
6079
|
-
/**
|
|
6080
|
-
* Detect schema type from XML namespace URI and/or root element name.
|
|
6081
|
-
*
|
|
6082
|
-
* Detection priority:
|
|
6083
|
-
* 1. Namespace URI match (unique per FA/RR schemas)
|
|
6084
|
-
* 2. Root element name match (for PEF/PEF_KOR which use UBL namespaces)
|
|
6085
|
-
*/
|
|
6086
|
-
detect(namespace, rootElement) {
|
|
6087
|
-
if (namespace) {
|
|
6088
|
-
const byNs = NAMESPACE_MAP[namespace];
|
|
6089
|
-
if (byNs) return byNs;
|
|
6090
|
-
}
|
|
6091
|
-
if (rootElement) {
|
|
6092
|
-
const byRoot = ROOT_ELEMENT_MAP[rootElement];
|
|
6093
|
-
if (byRoot) return byRoot;
|
|
6094
|
-
}
|
|
6095
|
-
return null;
|
|
6096
|
-
}
|
|
6097
|
-
};
|
|
6098
|
-
|
|
6099
|
-
// src/validation/patterns.ts
|
|
6100
|
-
var NIP_PATTERN_CORE = "[1-9]((\\d[1-9])|([1-9]\\d))\\d{7}";
|
|
6101
|
-
var VAT_UE_PATTERN_CORE = "(ATU\\d{8}|BE[01]{1}\\d{9}|BG\\d{9,10}|CY\\d{8}[A-Z]|CZ\\d{8,10}|DE\\d{9}|DK\\d{8}|EE\\d{9}|EL\\d{9}|ES([A-Z]\\d{8}|\\d{8}[A-Z]|[A-Z]\\d{7}[A-Z])|FI\\d{8}|FR[A-Z0-9]{2}\\d{9}|HR\\d{11}|HU\\d{8}|IE(\\d{7}[A-Z]{2}|\\d[A-Z0-9+*]\\d{5}[A-Z])|IT\\d{11}|LT(\\d{9}|\\d{12})|LU\\d{8}|LV\\d{11}|MT\\d{8}|NL[A-Z0-9+*]{12}|PT\\d{9}|RO\\d{2,10}|SE\\d{12}|SI\\d{8}|SK\\d{10}|XI((\\d{9}|\\d{12})|(GD|HA)\\d{3}))";
|
|
6102
|
-
var Nip = new RegExp(`^${NIP_PATTERN_CORE}$`);
|
|
6103
|
-
var VatUe = new RegExp(`^${VAT_UE_PATTERN_CORE}$`);
|
|
6104
|
-
var NipVatUe = new RegExp(`^${NIP_PATTERN_CORE}-${VAT_UE_PATTERN_CORE}$`);
|
|
6105
|
-
var Pesel = /^\d{2}(?:0[1-9]|1[0-2]|2[1-9]|3[0-2]|4[1-9]|5[0-2]|6[1-9]|7[0-2]|8[1-9]|9[0-2])\d{7}$/;
|
|
6106
|
-
var NIP_WEIGHTS = [6, 5, 7, 2, 3, 4, 5, 6, 7];
|
|
6107
|
-
var PESEL_WEIGHTS = [1, 3, 7, 9, 1, 3, 7, 9, 1, 3];
|
|
6108
|
-
function isValidNip(value) {
|
|
6109
|
-
if (!Nip.test(value)) return false;
|
|
6110
|
-
let sum = 0;
|
|
6111
|
-
for (let i = 0; i < 9; i++) {
|
|
6112
|
-
sum += Number(value[i]) * NIP_WEIGHTS[i];
|
|
6113
|
-
}
|
|
6114
|
-
const checksum = sum % 11;
|
|
6115
|
-
return checksum !== 10 && checksum === Number(value[9]);
|
|
6116
|
-
}
|
|
6117
|
-
function isValidPesel(value) {
|
|
6118
|
-
if (!Pesel.test(value)) return false;
|
|
6119
|
-
let sum = 0;
|
|
6120
|
-
for (let i = 0; i < 10; i++) {
|
|
6121
|
-
sum += Number(value[i]) * PESEL_WEIGHTS[i];
|
|
6122
|
-
}
|
|
6123
|
-
const checksum = (10 - sum % 10) % 10;
|
|
6124
|
-
return checksum === Number(value[10]);
|
|
6125
|
-
}
|
|
6126
|
-
|
|
6127
|
-
// src/validation/invoice-validator.ts
|
|
6128
|
-
function validateWellFormedness(xml, _parsed) {
|
|
6129
|
-
if (!xml || !xml.trim()) {
|
|
6130
|
-
return {
|
|
6131
|
-
valid: false,
|
|
6132
|
-
schemaType: null,
|
|
6133
|
-
errors: [{ code: "MALFORMED_XML", message: "Empty XML input" }]
|
|
6134
|
-
};
|
|
6135
|
-
}
|
|
6136
|
-
const { object, rootElement, namespace, errors } = _parsed ?? xmlToObject(xml);
|
|
6137
|
-
if (errors.length > 0 || !object) {
|
|
6138
|
-
return {
|
|
6139
|
-
valid: false,
|
|
6140
|
-
schemaType: null,
|
|
6141
|
-
errors: errors.map((msg) => ({ code: "MALFORMED_XML", message: msg }))
|
|
6142
|
-
};
|
|
6143
|
-
}
|
|
6144
|
-
const schemaType = SchemaRegistry.detect(namespace, rootElement);
|
|
6145
|
-
return { valid: true, schemaType, errors: [] };
|
|
6146
|
-
}
|
|
6147
|
-
async function validateSchema(xml, options, _parsed) {
|
|
6148
|
-
const { object, rootElement, namespace, errors: parseErrors } = _parsed ?? xmlToObject(xml);
|
|
6149
|
-
if (parseErrors.length > 0 || !object) {
|
|
6150
|
-
return {
|
|
6151
|
-
valid: false,
|
|
6152
|
-
schemaType: null,
|
|
6153
|
-
errors: parseErrors.map((msg) => ({ code: "MALFORMED_XML", message: msg }))
|
|
6154
|
-
};
|
|
6155
|
-
}
|
|
6156
|
-
const schemaType = options?.schema ?? SchemaRegistry.detect(namespace, rootElement);
|
|
6157
|
-
if (!schemaType) {
|
|
6158
|
-
return {
|
|
6159
|
-
valid: false,
|
|
6160
|
-
schemaType: null,
|
|
6161
|
-
errors: [{
|
|
6162
|
-
code: "UNKNOWN_SCHEMA",
|
|
6163
|
-
message: `Cannot detect schema type from namespace "${namespace}" and root element "${rootElement}"`
|
|
6164
|
-
}]
|
|
6165
|
-
};
|
|
6166
|
-
}
|
|
6167
|
-
const schema = await SchemaRegistry.get(schemaType);
|
|
6168
|
-
const result = schema.safeParse(object);
|
|
6169
|
-
if (result.success) {
|
|
6170
|
-
return { valid: true, schemaType, errors: [] };
|
|
6171
|
-
}
|
|
6172
|
-
const prefix = rootElement ? `/${rootElement}/` : "/";
|
|
6173
|
-
const validationErrors = result.error.issues.map((issue) => {
|
|
6174
|
-
const zodPath = issue.path.join("/");
|
|
6175
|
-
const path9 = zodPath ? `${prefix}${zodPath}` : rootElement ? `/${rootElement}` : void 0;
|
|
6176
|
-
return {
|
|
6177
|
-
code: mapZodErrorCode(issue),
|
|
6178
|
-
message: issue.message,
|
|
6179
|
-
path: path9
|
|
6180
|
-
};
|
|
6181
|
-
});
|
|
6182
|
-
return { valid: false, schemaType, errors: validationErrors };
|
|
6183
|
-
}
|
|
6184
|
-
function mapZodErrorCode(issue) {
|
|
6185
|
-
switch (issue.code) {
|
|
6186
|
-
case "invalid_type":
|
|
6187
|
-
return issue.input === void 0 ? "MISSING_REQUIRED_ELEMENT" : "INVALID_VALUE";
|
|
6188
|
-
case "invalid_enum_value":
|
|
6189
|
-
// Zod v3
|
|
6190
|
-
case "invalid_value":
|
|
6191
|
-
return "INVALID_ENUM_VALUE";
|
|
6192
|
-
case "invalid_string":
|
|
6193
|
-
// Zod v3
|
|
6194
|
-
case "invalid_format":
|
|
6195
|
-
return "PATTERN_MISMATCH";
|
|
6196
|
-
case "too_big":
|
|
6197
|
-
return "MAX_OCCURS_EXCEEDED";
|
|
6198
|
-
default:
|
|
6199
|
-
return "SCHEMA_VALIDATION_ERROR";
|
|
6200
|
-
}
|
|
6201
|
-
}
|
|
6202
|
-
function validateBusinessRules(xml, _parsed) {
|
|
6203
|
-
const { object, rootElement, namespace, errors: parseErrors } = _parsed ?? xmlToObject(xml);
|
|
6204
|
-
if (parseErrors.length > 0 || !object) {
|
|
6205
|
-
return {
|
|
6206
|
-
valid: false,
|
|
6207
|
-
schemaType: null,
|
|
6208
|
-
errors: parseErrors.map((msg) => ({ code: "MALFORMED_XML", message: msg }))
|
|
6209
|
-
};
|
|
6210
|
-
}
|
|
6211
|
-
const schemaType = SchemaRegistry.detect(namespace, rootElement);
|
|
6212
|
-
const errors = [];
|
|
6213
|
-
collectNipPeselErrors(object, rootElement ? `/${rootElement}` : "", errors);
|
|
6214
|
-
collectDateErrors(object, rootElement, errors);
|
|
6215
|
-
return { valid: errors.length === 0, schemaType, errors };
|
|
6216
|
-
}
|
|
6217
|
-
function collectNipPeselErrors(obj, path9, errors) {
|
|
6218
|
-
for (const [key, value] of Object.entries(obj)) {
|
|
6219
|
-
const currentPath = path9 ? `${path9}/${key}` : key;
|
|
6220
|
-
if (key === "NIP" && typeof value === "string") {
|
|
6221
|
-
if (!isValidNip(value)) {
|
|
6222
|
-
errors.push({
|
|
6223
|
-
code: "INVALID_NIP_CHECKSUM",
|
|
6224
|
-
message: `Invalid NIP checksum: ${value}`,
|
|
6225
|
-
path: currentPath
|
|
6226
|
-
});
|
|
6227
|
-
}
|
|
6228
|
-
} else if (key === "PESEL" && typeof value === "string") {
|
|
6229
|
-
if (!isValidPesel(value)) {
|
|
6230
|
-
errors.push({
|
|
6231
|
-
code: "INVALID_PESEL_CHECKSUM",
|
|
6232
|
-
message: `Invalid PESEL checksum: ${value}`,
|
|
6233
|
-
path: currentPath
|
|
6234
|
-
});
|
|
6235
|
-
}
|
|
6236
|
-
} else if (typeof value === "object" && value !== null) {
|
|
6237
|
-
if (Array.isArray(value)) {
|
|
6238
|
-
for (let i = 0; i < value.length; i++) {
|
|
6239
|
-
if (typeof value[i] === "object" && value[i] !== null) {
|
|
6240
|
-
collectNipPeselErrors(value[i], `${currentPath}/${i}`, errors);
|
|
6241
|
-
}
|
|
6242
|
-
}
|
|
6243
|
-
} else {
|
|
6244
|
-
collectNipPeselErrors(value, currentPath, errors);
|
|
6245
|
-
}
|
|
6246
|
-
}
|
|
6247
|
-
}
|
|
6248
|
-
}
|
|
6249
|
-
function getPolandLocalDate() {
|
|
6250
|
-
return new Intl.DateTimeFormat("sv-SE", { timeZone: "Europe/Warsaw" }).format(Date.now());
|
|
6251
|
-
}
|
|
6252
|
-
function collectDateErrors(obj, rootElement, errors) {
|
|
6253
|
-
const fa = obj["Fa"];
|
|
6254
|
-
if (!fa || typeof fa !== "object") return;
|
|
6255
|
-
const p1 = fa["P_1"];
|
|
6256
|
-
if (typeof p1 !== "string") return;
|
|
6257
|
-
const today = getPolandLocalDate();
|
|
6258
|
-
if (p1 > today) {
|
|
6259
|
-
const prefix = rootElement ? `/${rootElement}` : "";
|
|
6260
|
-
errors.push({
|
|
6261
|
-
code: "FUTURE_INVOICE_DATE",
|
|
6262
|
-
message: `Invoice date P_1 (${p1}) is in the future \u2014 KSeF rejects invoices with P_1 > today (${today})`,
|
|
6263
|
-
path: `${prefix}/Fa/P_1`
|
|
6264
|
-
});
|
|
6265
|
-
}
|
|
6266
|
-
}
|
|
6267
|
-
async function validate(xml, options) {
|
|
6268
|
-
const parsed = xml && xml.trim() ? xmlToObject(xml) : void 0;
|
|
6269
|
-
const l1 = validateWellFormedness(xml, parsed);
|
|
6270
|
-
if (!l1.valid) return l1;
|
|
6271
|
-
const l2 = await validateSchema(xml, options, parsed);
|
|
6272
|
-
if (!l2.valid) return l2;
|
|
6273
|
-
const l3 = validateBusinessRules(xml, parsed);
|
|
6274
|
-
return { ...l3, schemaType: l2.schemaType };
|
|
6275
|
-
}
|
|
6276
|
-
|
|
6277
6461
|
// src/cli/commands/invoice.ts
|
|
6462
|
+
init_invoice_validator();
|
|
6278
6463
|
init_ksef_validation_error();
|
|
6464
|
+
init_schemas();
|
|
6279
6465
|
function getGlobalOpts4(args) {
|
|
6280
6466
|
return {
|
|
6281
6467
|
env: args.env,
|
|
@@ -6365,7 +6551,7 @@ var send = defineCommand5({
|
|
|
6365
6551
|
const stat = fs9.statSync(filePath);
|
|
6366
6552
|
if (args.stream) {
|
|
6367
6553
|
if (args.validate) {
|
|
6368
|
-
consola9.warn("--validate is
|
|
6554
|
+
consola9.warn("--validate is not supported in stream mode. Run `ksef invoice validate <path>` before sending, or remove --stream.");
|
|
6369
6555
|
}
|
|
6370
6556
|
if (!filePath.endsWith(".zip") || stat.isDirectory()) {
|
|
6371
6557
|
throw new Error("--stream requires a .zip file path.");
|
|
@@ -6392,9 +6578,6 @@ var send = defineCommand5({
|
|
|
6392
6578
|
return;
|
|
6393
6579
|
}
|
|
6394
6580
|
if (stat.isDirectory()) {
|
|
6395
|
-
if (args.validate) {
|
|
6396
|
-
consola9.warn("--validate is only supported for single-file sends, skipping validation.");
|
|
6397
|
-
}
|
|
6398
6581
|
const xmlFiles = fs9.readdirSync(filePath).filter((f) => f.endsWith(".xml")).map((f) => path6.join(filePath, f));
|
|
6399
6582
|
if (xmlFiles.length === 0) {
|
|
6400
6583
|
throw new Error(`No XML files found in ${filePath}`);
|
|
@@ -6405,11 +6588,28 @@ var send = defineCommand5({
|
|
|
6405
6588
|
if (!validateFormCodeForSession(formCode, "batch")) {
|
|
6406
6589
|
throw new Error(`Document type "${formCode.systemCode}" is not supported in batch sessions. PEF/PEF_KOR require online sessions.`);
|
|
6407
6590
|
}
|
|
6591
|
+
const fileBuffers = xmlFiles.map((file) => ({ file, content: fs9.readFileSync(file) }));
|
|
6592
|
+
if (args.validate) {
|
|
6593
|
+
const { validateBatch: validateBatch2, batchValidationDetails: batchValidationDetails2 } = await Promise.resolve().then(() => (init_invoice_validator(), invoice_validator_exports));
|
|
6594
|
+
const invoicesToValidate = fileBuffers.map(({ file, content }) => ({
|
|
6595
|
+
fileName: path6.basename(file),
|
|
6596
|
+
xml: content.toString("utf-8")
|
|
6597
|
+
}));
|
|
6598
|
+
if (!args.json) consola9.start(`Validating ${invoicesToValidate.length} invoices...`);
|
|
6599
|
+
const batchResult = await validateBatch2(invoicesToValidate);
|
|
6600
|
+
if (!batchResult.valid) {
|
|
6601
|
+
const invalidCount = batchResult.results.filter((r) => !r.result.valid).length;
|
|
6602
|
+
throw new KSeFValidationError(
|
|
6603
|
+
`Validation failed: ${invalidCount} of ${xmlFiles.length} invoices invalid`,
|
|
6604
|
+
batchValidationDetails2(batchResult)
|
|
6605
|
+
);
|
|
6606
|
+
}
|
|
6607
|
+
if (!args.json) consola9.success(`All ${xmlFiles.length} invoices valid.`);
|
|
6608
|
+
}
|
|
6408
6609
|
if (!args.json) consola9.start(`Sending ${xmlFiles.length} invoices via batch session...`);
|
|
6409
6610
|
await client.crypto.init();
|
|
6410
6611
|
const encryptionData = client.crypto.getEncryptionData();
|
|
6411
|
-
const parts =
|
|
6412
|
-
const content = fs9.readFileSync(file);
|
|
6612
|
+
const parts = fileBuffers.map(({ content }, i) => {
|
|
6413
6613
|
const metadata = client.crypto.getFileMetadata(new Uint8Array(content));
|
|
6414
6614
|
return {
|
|
6415
6615
|
data: content.buffer,
|
|
@@ -6417,7 +6617,7 @@ var send = defineCommand5({
|
|
|
6417
6617
|
ordinalNumber: i + 1
|
|
6418
6618
|
};
|
|
6419
6619
|
});
|
|
6420
|
-
const totalContent = Buffer.concat(
|
|
6620
|
+
const totalContent = Buffer.concat(fileBuffers.map(({ content }) => content));
|
|
6421
6621
|
const totalMetadata = client.crypto.getFileMetadata(new Uint8Array(totalContent));
|
|
6422
6622
|
const batchFileInfo = {
|
|
6423
6623
|
fileSize: totalMetadata.fileSize,
|
|
@@ -6572,6 +6772,7 @@ var exportCmd = defineCommand5({
|
|
|
6572
6772
|
meta: { name: "export", description: "Start invoice export" },
|
|
6573
6773
|
args: {
|
|
6574
6774
|
...QUERY_FILTER_ARGS,
|
|
6775
|
+
onlyMetadata: { type: "boolean", description: "Export metadata only (no invoice XML)" },
|
|
6575
6776
|
env: { type: "string", description: "Environment (test/demo/prod)" },
|
|
6576
6777
|
json: { type: "boolean", description: "Output as JSON" },
|
|
6577
6778
|
verbose: { type: "boolean", description: "Show HTTP request/response details" },
|
|
@@ -6587,7 +6788,7 @@ var exportCmd = defineCommand5({
|
|
|
6587
6788
|
const encryptionData = client.crypto.getEncryptionData();
|
|
6588
6789
|
const filters = buildQueryFilters(args);
|
|
6589
6790
|
const result = await client.invoices.exportInvoices(
|
|
6590
|
-
{ encryption: encryptionData.encryptionInfo, filters }
|
|
6791
|
+
{ encryption: encryptionData.encryptionInfo, filters, onlyMetadata: args.onlyMetadata }
|
|
6591
6792
|
);
|
|
6592
6793
|
if (args.json) {
|
|
6593
6794
|
outputResult(result, { json: true });
|
|
@@ -9006,6 +9207,7 @@ import * as path8 from "path";
|
|
|
9006
9207
|
import * as os5 from "os";
|
|
9007
9208
|
import { defineCommand as defineCommand16 } from "citty";
|
|
9008
9209
|
import { consola as consola14 } from "consola";
|
|
9210
|
+
init_patterns();
|
|
9009
9211
|
init_auth_xml_builder();
|
|
9010
9212
|
init_polling();
|
|
9011
9213
|
|