@deepintel-ltd/farmpro-contracts 1.11.10 → 1.11.12
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/dist/routes/agents.routes.d.ts +509 -0
- package/dist/routes/agents.routes.d.ts.map +1 -1
- package/dist/routes/agents.routes.js +19 -1
- package/dist/routes/finance.routes.d.ts +360 -4
- package/dist/routes/finance.routes.d.ts.map +1 -1
- package/dist/routes/finance.routes.js +46 -3
- package/dist/routes/notifications.routes.d.ts +14 -14
- package/dist/routes/weather.routes.d.ts +9 -0
- package/dist/routes/weather.routes.d.ts.map +1 -1
- package/dist/schemas/agents.schemas.d.ts +198 -0
- package/dist/schemas/agents.schemas.d.ts.map +1 -1
- package/dist/schemas/agents.schemas.js +14 -0
- package/dist/schemas/notifications.schemas.d.ts +23 -23
- package/dist/schemas/notifications.schemas.d.ts.map +1 -1
- package/dist/schemas/notifications.schemas.js +1 -0
- package/dist/schemas/weather.schemas.d.ts +28 -0
- package/dist/schemas/weather.schemas.d.ts.map +1 -1
- package/dist/schemas/weather.schemas.js +3 -1
- package/package.json +1 -1
|
@@ -6965,18 +6965,26 @@ export declare const financeRouter: {
|
|
|
6965
6965
|
farmId: string;
|
|
6966
6966
|
}>;
|
|
6967
6967
|
summary: "Bulk import finance records";
|
|
6968
|
-
description: "Import expenses or revenue
|
|
6968
|
+
description: "Import expenses or revenue from an Excel file, or from previewed records JSON (multipart field `records`).";
|
|
6969
6969
|
method: "POST";
|
|
6970
6970
|
contentType: "multipart/form-data";
|
|
6971
6971
|
body: z.ZodObject<{
|
|
6972
|
-
type: z.ZodEnum<["expenses", "revenues"]>;
|
|
6973
|
-
file
|
|
6972
|
+
type: z.ZodEffects<z.ZodEnum<["expenses", "revenues"]>, "expenses" | "revenues", unknown>;
|
|
6973
|
+
/** Excel file upload (parsed on server when `records` is omitted). */
|
|
6974
|
+
file: z.ZodOptional<z.ZodUnknown>;
|
|
6975
|
+
/**
|
|
6976
|
+
* Optional JSON string of previewed/edited rows.
|
|
6977
|
+
* When present, server imports these instead of re-parsing the file.
|
|
6978
|
+
*/
|
|
6979
|
+
records: z.ZodOptional<z.ZodString>;
|
|
6974
6980
|
}, "strip", z.ZodTypeAny, {
|
|
6975
6981
|
type: "expenses" | "revenues";
|
|
6976
6982
|
file?: unknown;
|
|
6983
|
+
records?: string | undefined;
|
|
6977
6984
|
}, {
|
|
6978
|
-
type
|
|
6985
|
+
type?: unknown;
|
|
6979
6986
|
file?: unknown;
|
|
6987
|
+
records?: string | undefined;
|
|
6980
6988
|
}>;
|
|
6981
6989
|
path: "/farms/:farmId/finance/import";
|
|
6982
6990
|
responses: {
|
|
@@ -7302,6 +7310,354 @@ export declare const financeRouter: {
|
|
|
7302
7310
|
}>;
|
|
7303
7311
|
};
|
|
7304
7312
|
};
|
|
7313
|
+
mapFinanceImportColumns: {
|
|
7314
|
+
pathParams: z.ZodObject<{
|
|
7315
|
+
farmId: z.ZodString;
|
|
7316
|
+
}, "strip", z.ZodTypeAny, {
|
|
7317
|
+
farmId: string;
|
|
7318
|
+
}, {
|
|
7319
|
+
farmId: string;
|
|
7320
|
+
}>;
|
|
7321
|
+
summary: "AI-map Excel columns for finance import";
|
|
7322
|
+
description: "When rule-based header matching is uncertain, map spreadsheet headers to FarmPro finance fields using AI and sample rows.";
|
|
7323
|
+
method: "POST";
|
|
7324
|
+
body: z.ZodObject<{
|
|
7325
|
+
type: z.ZodEnum<["expenses", "revenues"]>;
|
|
7326
|
+
headers: z.ZodArray<z.ZodString, "many">;
|
|
7327
|
+
sampleRows: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>, "many">;
|
|
7328
|
+
}, "strip", z.ZodTypeAny, {
|
|
7329
|
+
type: "expenses" | "revenues";
|
|
7330
|
+
headers: string[];
|
|
7331
|
+
sampleRows: Record<string, unknown>[];
|
|
7332
|
+
}, {
|
|
7333
|
+
type: "expenses" | "revenues";
|
|
7334
|
+
headers: string[];
|
|
7335
|
+
sampleRows: Record<string, unknown>[];
|
|
7336
|
+
}>;
|
|
7337
|
+
path: "/farms/:farmId/finance/import/map-columns";
|
|
7338
|
+
responses: {
|
|
7339
|
+
200: z.ZodObject<{
|
|
7340
|
+
data: z.ZodObject<{
|
|
7341
|
+
type: z.ZodLiteral<"finance-import-column-map">;
|
|
7342
|
+
attributes: z.ZodObject<{
|
|
7343
|
+
mapping: z.ZodRecord<z.ZodString, z.ZodNullable<z.ZodString>>;
|
|
7344
|
+
confidence: z.ZodNumber;
|
|
7345
|
+
notes: z.ZodOptional<z.ZodString>;
|
|
7346
|
+
}, "strip", z.ZodTypeAny, {
|
|
7347
|
+
mapping: Record<string, string | null>;
|
|
7348
|
+
confidence: number;
|
|
7349
|
+
notes?: string | undefined;
|
|
7350
|
+
}, {
|
|
7351
|
+
mapping: Record<string, string | null>;
|
|
7352
|
+
confidence: number;
|
|
7353
|
+
notes?: string | undefined;
|
|
7354
|
+
}>;
|
|
7355
|
+
}, "strip", z.ZodTypeAny, {
|
|
7356
|
+
type: "finance-import-column-map";
|
|
7357
|
+
attributes: {
|
|
7358
|
+
mapping: Record<string, string | null>;
|
|
7359
|
+
confidence: number;
|
|
7360
|
+
notes?: string | undefined;
|
|
7361
|
+
};
|
|
7362
|
+
}, {
|
|
7363
|
+
type: "finance-import-column-map";
|
|
7364
|
+
attributes: {
|
|
7365
|
+
mapping: Record<string, string | null>;
|
|
7366
|
+
confidence: number;
|
|
7367
|
+
notes?: string | undefined;
|
|
7368
|
+
};
|
|
7369
|
+
}>;
|
|
7370
|
+
}, "strip", z.ZodTypeAny, {
|
|
7371
|
+
data: {
|
|
7372
|
+
type: "finance-import-column-map";
|
|
7373
|
+
attributes: {
|
|
7374
|
+
mapping: Record<string, string | null>;
|
|
7375
|
+
confidence: number;
|
|
7376
|
+
notes?: string | undefined;
|
|
7377
|
+
};
|
|
7378
|
+
};
|
|
7379
|
+
}, {
|
|
7380
|
+
data: {
|
|
7381
|
+
type: "finance-import-column-map";
|
|
7382
|
+
attributes: {
|
|
7383
|
+
mapping: Record<string, string | null>;
|
|
7384
|
+
confidence: number;
|
|
7385
|
+
notes?: string | undefined;
|
|
7386
|
+
};
|
|
7387
|
+
};
|
|
7388
|
+
}>;
|
|
7389
|
+
400: z.ZodObject<{
|
|
7390
|
+
errors: z.ZodArray<z.ZodObject<{
|
|
7391
|
+
id: z.ZodOptional<z.ZodString>;
|
|
7392
|
+
links: z.ZodOptional<z.ZodObject<{
|
|
7393
|
+
about: z.ZodOptional<z.ZodString>;
|
|
7394
|
+
}, "strip", z.ZodTypeAny, {
|
|
7395
|
+
about?: string | undefined;
|
|
7396
|
+
}, {
|
|
7397
|
+
about?: string | undefined;
|
|
7398
|
+
}>>;
|
|
7399
|
+
status: z.ZodOptional<z.ZodString>;
|
|
7400
|
+
code: z.ZodOptional<z.ZodString>;
|
|
7401
|
+
title: z.ZodOptional<z.ZodString>;
|
|
7402
|
+
detail: z.ZodOptional<z.ZodString>;
|
|
7403
|
+
source: z.ZodOptional<z.ZodObject<{
|
|
7404
|
+
pointer: z.ZodOptional<z.ZodString>;
|
|
7405
|
+
parameter: z.ZodOptional<z.ZodString>;
|
|
7406
|
+
}, "strip", z.ZodTypeAny, {
|
|
7407
|
+
pointer?: string | undefined;
|
|
7408
|
+
parameter?: string | undefined;
|
|
7409
|
+
}, {
|
|
7410
|
+
pointer?: string | undefined;
|
|
7411
|
+
parameter?: string | undefined;
|
|
7412
|
+
}>>;
|
|
7413
|
+
meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
7414
|
+
}, "strip", z.ZodTypeAny, {
|
|
7415
|
+
status?: string | undefined;
|
|
7416
|
+
code?: string | undefined;
|
|
7417
|
+
id?: string | undefined;
|
|
7418
|
+
links?: {
|
|
7419
|
+
about?: string | undefined;
|
|
7420
|
+
} | undefined;
|
|
7421
|
+
meta?: Record<string, unknown> | undefined;
|
|
7422
|
+
title?: string | undefined;
|
|
7423
|
+
detail?: string | undefined;
|
|
7424
|
+
source?: {
|
|
7425
|
+
pointer?: string | undefined;
|
|
7426
|
+
parameter?: string | undefined;
|
|
7427
|
+
} | undefined;
|
|
7428
|
+
}, {
|
|
7429
|
+
status?: string | undefined;
|
|
7430
|
+
code?: string | undefined;
|
|
7431
|
+
id?: string | undefined;
|
|
7432
|
+
links?: {
|
|
7433
|
+
about?: string | undefined;
|
|
7434
|
+
} | undefined;
|
|
7435
|
+
meta?: Record<string, unknown> | undefined;
|
|
7436
|
+
title?: string | undefined;
|
|
7437
|
+
detail?: string | undefined;
|
|
7438
|
+
source?: {
|
|
7439
|
+
pointer?: string | undefined;
|
|
7440
|
+
parameter?: string | undefined;
|
|
7441
|
+
} | undefined;
|
|
7442
|
+
}>, "many">;
|
|
7443
|
+
meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
7444
|
+
}, "strip", z.ZodTypeAny, {
|
|
7445
|
+
errors: {
|
|
7446
|
+
status?: string | undefined;
|
|
7447
|
+
code?: string | undefined;
|
|
7448
|
+
id?: string | undefined;
|
|
7449
|
+
links?: {
|
|
7450
|
+
about?: string | undefined;
|
|
7451
|
+
} | undefined;
|
|
7452
|
+
meta?: Record<string, unknown> | undefined;
|
|
7453
|
+
title?: string | undefined;
|
|
7454
|
+
detail?: string | undefined;
|
|
7455
|
+
source?: {
|
|
7456
|
+
pointer?: string | undefined;
|
|
7457
|
+
parameter?: string | undefined;
|
|
7458
|
+
} | undefined;
|
|
7459
|
+
}[];
|
|
7460
|
+
meta?: Record<string, unknown> | undefined;
|
|
7461
|
+
}, {
|
|
7462
|
+
errors: {
|
|
7463
|
+
status?: string | undefined;
|
|
7464
|
+
code?: string | undefined;
|
|
7465
|
+
id?: string | undefined;
|
|
7466
|
+
links?: {
|
|
7467
|
+
about?: string | undefined;
|
|
7468
|
+
} | undefined;
|
|
7469
|
+
meta?: Record<string, unknown> | undefined;
|
|
7470
|
+
title?: string | undefined;
|
|
7471
|
+
detail?: string | undefined;
|
|
7472
|
+
source?: {
|
|
7473
|
+
pointer?: string | undefined;
|
|
7474
|
+
parameter?: string | undefined;
|
|
7475
|
+
} | undefined;
|
|
7476
|
+
}[];
|
|
7477
|
+
meta?: Record<string, unknown> | undefined;
|
|
7478
|
+
}>;
|
|
7479
|
+
401: z.ZodObject<{
|
|
7480
|
+
errors: z.ZodArray<z.ZodObject<{
|
|
7481
|
+
id: z.ZodOptional<z.ZodString>;
|
|
7482
|
+
links: z.ZodOptional<z.ZodObject<{
|
|
7483
|
+
about: z.ZodOptional<z.ZodString>;
|
|
7484
|
+
}, "strip", z.ZodTypeAny, {
|
|
7485
|
+
about?: string | undefined;
|
|
7486
|
+
}, {
|
|
7487
|
+
about?: string | undefined;
|
|
7488
|
+
}>>;
|
|
7489
|
+
status: z.ZodOptional<z.ZodString>;
|
|
7490
|
+
code: z.ZodOptional<z.ZodString>;
|
|
7491
|
+
title: z.ZodOptional<z.ZodString>;
|
|
7492
|
+
detail: z.ZodOptional<z.ZodString>;
|
|
7493
|
+
source: z.ZodOptional<z.ZodObject<{
|
|
7494
|
+
pointer: z.ZodOptional<z.ZodString>;
|
|
7495
|
+
parameter: z.ZodOptional<z.ZodString>;
|
|
7496
|
+
}, "strip", z.ZodTypeAny, {
|
|
7497
|
+
pointer?: string | undefined;
|
|
7498
|
+
parameter?: string | undefined;
|
|
7499
|
+
}, {
|
|
7500
|
+
pointer?: string | undefined;
|
|
7501
|
+
parameter?: string | undefined;
|
|
7502
|
+
}>>;
|
|
7503
|
+
meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
7504
|
+
}, "strip", z.ZodTypeAny, {
|
|
7505
|
+
status?: string | undefined;
|
|
7506
|
+
code?: string | undefined;
|
|
7507
|
+
id?: string | undefined;
|
|
7508
|
+
links?: {
|
|
7509
|
+
about?: string | undefined;
|
|
7510
|
+
} | undefined;
|
|
7511
|
+
meta?: Record<string, unknown> | undefined;
|
|
7512
|
+
title?: string | undefined;
|
|
7513
|
+
detail?: string | undefined;
|
|
7514
|
+
source?: {
|
|
7515
|
+
pointer?: string | undefined;
|
|
7516
|
+
parameter?: string | undefined;
|
|
7517
|
+
} | undefined;
|
|
7518
|
+
}, {
|
|
7519
|
+
status?: string | undefined;
|
|
7520
|
+
code?: string | undefined;
|
|
7521
|
+
id?: string | undefined;
|
|
7522
|
+
links?: {
|
|
7523
|
+
about?: string | undefined;
|
|
7524
|
+
} | undefined;
|
|
7525
|
+
meta?: Record<string, unknown> | undefined;
|
|
7526
|
+
title?: string | undefined;
|
|
7527
|
+
detail?: string | undefined;
|
|
7528
|
+
source?: {
|
|
7529
|
+
pointer?: string | undefined;
|
|
7530
|
+
parameter?: string | undefined;
|
|
7531
|
+
} | undefined;
|
|
7532
|
+
}>, "many">;
|
|
7533
|
+
meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
7534
|
+
}, "strip", z.ZodTypeAny, {
|
|
7535
|
+
errors: {
|
|
7536
|
+
status?: string | undefined;
|
|
7537
|
+
code?: string | undefined;
|
|
7538
|
+
id?: string | undefined;
|
|
7539
|
+
links?: {
|
|
7540
|
+
about?: string | undefined;
|
|
7541
|
+
} | undefined;
|
|
7542
|
+
meta?: Record<string, unknown> | undefined;
|
|
7543
|
+
title?: string | undefined;
|
|
7544
|
+
detail?: string | undefined;
|
|
7545
|
+
source?: {
|
|
7546
|
+
pointer?: string | undefined;
|
|
7547
|
+
parameter?: string | undefined;
|
|
7548
|
+
} | undefined;
|
|
7549
|
+
}[];
|
|
7550
|
+
meta?: Record<string, unknown> | undefined;
|
|
7551
|
+
}, {
|
|
7552
|
+
errors: {
|
|
7553
|
+
status?: string | undefined;
|
|
7554
|
+
code?: string | undefined;
|
|
7555
|
+
id?: string | undefined;
|
|
7556
|
+
links?: {
|
|
7557
|
+
about?: string | undefined;
|
|
7558
|
+
} | undefined;
|
|
7559
|
+
meta?: Record<string, unknown> | undefined;
|
|
7560
|
+
title?: string | undefined;
|
|
7561
|
+
detail?: string | undefined;
|
|
7562
|
+
source?: {
|
|
7563
|
+
pointer?: string | undefined;
|
|
7564
|
+
parameter?: string | undefined;
|
|
7565
|
+
} | undefined;
|
|
7566
|
+
}[];
|
|
7567
|
+
meta?: Record<string, unknown> | undefined;
|
|
7568
|
+
}>;
|
|
7569
|
+
404: z.ZodObject<{
|
|
7570
|
+
errors: z.ZodArray<z.ZodObject<{
|
|
7571
|
+
id: z.ZodOptional<z.ZodString>;
|
|
7572
|
+
links: z.ZodOptional<z.ZodObject<{
|
|
7573
|
+
about: z.ZodOptional<z.ZodString>;
|
|
7574
|
+
}, "strip", z.ZodTypeAny, {
|
|
7575
|
+
about?: string | undefined;
|
|
7576
|
+
}, {
|
|
7577
|
+
about?: string | undefined;
|
|
7578
|
+
}>>;
|
|
7579
|
+
status: z.ZodOptional<z.ZodString>;
|
|
7580
|
+
code: z.ZodOptional<z.ZodString>;
|
|
7581
|
+
title: z.ZodOptional<z.ZodString>;
|
|
7582
|
+
detail: z.ZodOptional<z.ZodString>;
|
|
7583
|
+
source: z.ZodOptional<z.ZodObject<{
|
|
7584
|
+
pointer: z.ZodOptional<z.ZodString>;
|
|
7585
|
+
parameter: z.ZodOptional<z.ZodString>;
|
|
7586
|
+
}, "strip", z.ZodTypeAny, {
|
|
7587
|
+
pointer?: string | undefined;
|
|
7588
|
+
parameter?: string | undefined;
|
|
7589
|
+
}, {
|
|
7590
|
+
pointer?: string | undefined;
|
|
7591
|
+
parameter?: string | undefined;
|
|
7592
|
+
}>>;
|
|
7593
|
+
meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
7594
|
+
}, "strip", z.ZodTypeAny, {
|
|
7595
|
+
status?: string | undefined;
|
|
7596
|
+
code?: string | undefined;
|
|
7597
|
+
id?: string | undefined;
|
|
7598
|
+
links?: {
|
|
7599
|
+
about?: string | undefined;
|
|
7600
|
+
} | undefined;
|
|
7601
|
+
meta?: Record<string, unknown> | undefined;
|
|
7602
|
+
title?: string | undefined;
|
|
7603
|
+
detail?: string | undefined;
|
|
7604
|
+
source?: {
|
|
7605
|
+
pointer?: string | undefined;
|
|
7606
|
+
parameter?: string | undefined;
|
|
7607
|
+
} | undefined;
|
|
7608
|
+
}, {
|
|
7609
|
+
status?: string | undefined;
|
|
7610
|
+
code?: string | undefined;
|
|
7611
|
+
id?: string | undefined;
|
|
7612
|
+
links?: {
|
|
7613
|
+
about?: string | undefined;
|
|
7614
|
+
} | undefined;
|
|
7615
|
+
meta?: Record<string, unknown> | undefined;
|
|
7616
|
+
title?: string | undefined;
|
|
7617
|
+
detail?: string | undefined;
|
|
7618
|
+
source?: {
|
|
7619
|
+
pointer?: string | undefined;
|
|
7620
|
+
parameter?: string | undefined;
|
|
7621
|
+
} | undefined;
|
|
7622
|
+
}>, "many">;
|
|
7623
|
+
meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
7624
|
+
}, "strip", z.ZodTypeAny, {
|
|
7625
|
+
errors: {
|
|
7626
|
+
status?: string | undefined;
|
|
7627
|
+
code?: string | undefined;
|
|
7628
|
+
id?: string | undefined;
|
|
7629
|
+
links?: {
|
|
7630
|
+
about?: string | undefined;
|
|
7631
|
+
} | undefined;
|
|
7632
|
+
meta?: Record<string, unknown> | undefined;
|
|
7633
|
+
title?: string | undefined;
|
|
7634
|
+
detail?: string | undefined;
|
|
7635
|
+
source?: {
|
|
7636
|
+
pointer?: string | undefined;
|
|
7637
|
+
parameter?: string | undefined;
|
|
7638
|
+
} | undefined;
|
|
7639
|
+
}[];
|
|
7640
|
+
meta?: Record<string, unknown> | undefined;
|
|
7641
|
+
}, {
|
|
7642
|
+
errors: {
|
|
7643
|
+
status?: string | undefined;
|
|
7644
|
+
code?: string | undefined;
|
|
7645
|
+
id?: string | undefined;
|
|
7646
|
+
links?: {
|
|
7647
|
+
about?: string | undefined;
|
|
7648
|
+
} | undefined;
|
|
7649
|
+
meta?: Record<string, unknown> | undefined;
|
|
7650
|
+
title?: string | undefined;
|
|
7651
|
+
detail?: string | undefined;
|
|
7652
|
+
source?: {
|
|
7653
|
+
pointer?: string | undefined;
|
|
7654
|
+
parameter?: string | undefined;
|
|
7655
|
+
} | undefined;
|
|
7656
|
+
}[];
|
|
7657
|
+
meta?: Record<string, unknown> | undefined;
|
|
7658
|
+
}>;
|
|
7659
|
+
};
|
|
7660
|
+
};
|
|
7305
7661
|
financeMagicEntry: {
|
|
7306
7662
|
pathParams: z.ZodObject<{
|
|
7307
7663
|
farmId: z.ZodString;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"finance.routes.d.ts","sourceRoot":"","sources":["../../src/routes/finance.routes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAuCxB,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAibxB,CAAC"}
|
|
1
|
+
{"version":3,"file":"finance.routes.d.ts","sourceRoot":"","sources":["../../src/routes/finance.routes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAuCxB,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YA2RpB,sEAAsE;;YAEtE;;;eAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgMP,CAAC"}
|
|
@@ -259,8 +259,24 @@ export const financeRouter = c.router({
|
|
|
259
259
|
pathParams: z.object({ farmId: z.string().uuid() }),
|
|
260
260
|
contentType: 'multipart/form-data',
|
|
261
261
|
body: z.object({
|
|
262
|
-
|
|
263
|
-
|
|
262
|
+
// ts-rest's default multipart encoder JSON.stringifies strings → '"expenses"'. Accept both.
|
|
263
|
+
type: z.preprocess((value) => {
|
|
264
|
+
if (typeof value !== 'string')
|
|
265
|
+
return value;
|
|
266
|
+
const trimmed = value.trim();
|
|
267
|
+
if ((trimmed.startsWith('"') && trimmed.endsWith('"')) ||
|
|
268
|
+
(trimmed.startsWith("'") && trimmed.endsWith("'"))) {
|
|
269
|
+
return trimmed.slice(1, -1);
|
|
270
|
+
}
|
|
271
|
+
return trimmed;
|
|
272
|
+
}, z.enum(['expenses', 'revenues'])),
|
|
273
|
+
/** Excel file upload (parsed on server when `records` is omitted). */
|
|
274
|
+
file: z.unknown().optional(),
|
|
275
|
+
/**
|
|
276
|
+
* Optional JSON string of previewed/edited rows.
|
|
277
|
+
* When present, server imports these instead of re-parsing the file.
|
|
278
|
+
*/
|
|
279
|
+
records: z.string().optional(),
|
|
264
280
|
}),
|
|
265
281
|
responses: {
|
|
266
282
|
200: z.object({
|
|
@@ -278,7 +294,34 @@ export const financeRouter = c.router({
|
|
|
278
294
|
404: jsonApiErrorResponseSchema,
|
|
279
295
|
},
|
|
280
296
|
summary: 'Bulk import finance records',
|
|
281
|
-
description: 'Import expenses or revenue
|
|
297
|
+
description: 'Import expenses or revenue from an Excel file, or from previewed records JSON (multipart field `records`).',
|
|
298
|
+
},
|
|
299
|
+
mapFinanceImportColumns: {
|
|
300
|
+
method: 'POST',
|
|
301
|
+
path: '/farms/:farmId/finance/import/map-columns',
|
|
302
|
+
pathParams: z.object({ farmId: z.string().uuid() }),
|
|
303
|
+
body: z.object({
|
|
304
|
+
type: z.enum(['expenses', 'revenues']),
|
|
305
|
+
headers: z.array(z.string()).min(1),
|
|
306
|
+
sampleRows: z.array(z.record(z.unknown())).max(10),
|
|
307
|
+
}),
|
|
308
|
+
responses: {
|
|
309
|
+
200: z.object({
|
|
310
|
+
data: z.object({
|
|
311
|
+
type: z.literal('finance-import-column-map'),
|
|
312
|
+
attributes: z.object({
|
|
313
|
+
mapping: z.record(z.string().nullable()),
|
|
314
|
+
confidence: z.number(),
|
|
315
|
+
notes: z.string().optional(),
|
|
316
|
+
}),
|
|
317
|
+
}),
|
|
318
|
+
}),
|
|
319
|
+
400: jsonApiErrorResponseSchema,
|
|
320
|
+
401: jsonApiErrorResponseSchema,
|
|
321
|
+
404: jsonApiErrorResponseSchema,
|
|
322
|
+
},
|
|
323
|
+
summary: 'AI-map Excel columns for finance import',
|
|
324
|
+
description: 'When rule-based header matching is uncertain, map spreadsheet headers to FarmPro finance fields using AI and sample rows.',
|
|
282
325
|
},
|
|
283
326
|
financeMagicEntry: {
|
|
284
327
|
method: 'POST',
|
|
@@ -43,12 +43,12 @@ export declare const notificationsRouter: {
|
|
|
43
43
|
body: z.ZodString;
|
|
44
44
|
readAt: z.ZodNullable<z.ZodString>;
|
|
45
45
|
metadata: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
46
|
-
source: z.ZodEnum<["notification", "field_alert", "vendor_payment"]>;
|
|
46
|
+
source: z.ZodEnum<["notification", "field_alert", "vendor_payment", "weather_alert"]>;
|
|
47
47
|
createdAt: z.ZodString;
|
|
48
48
|
}, "strip", z.ZodTypeAny, {
|
|
49
49
|
type: "team" | "weather" | "field_alert" | "task" | "payment" | "system" | "subscription" | "camera";
|
|
50
50
|
title: string;
|
|
51
|
-
source: "field_alert" | "notification" | "vendor_payment";
|
|
51
|
+
source: "field_alert" | "notification" | "vendor_payment" | "weather_alert";
|
|
52
52
|
createdAt: string;
|
|
53
53
|
metadata: Record<string, unknown> | null;
|
|
54
54
|
body: string;
|
|
@@ -58,7 +58,7 @@ export declare const notificationsRouter: {
|
|
|
58
58
|
}, {
|
|
59
59
|
type: "team" | "weather" | "field_alert" | "task" | "payment" | "system" | "subscription" | "camera";
|
|
60
60
|
title: string;
|
|
61
|
-
source: "field_alert" | "notification" | "vendor_payment";
|
|
61
|
+
source: "field_alert" | "notification" | "vendor_payment" | "weather_alert";
|
|
62
62
|
createdAt: string;
|
|
63
63
|
metadata: Record<string, unknown> | null;
|
|
64
64
|
body: string;
|
|
@@ -75,7 +75,7 @@ export declare const notificationsRouter: {
|
|
|
75
75
|
attributes: {
|
|
76
76
|
type: "team" | "weather" | "field_alert" | "task" | "payment" | "system" | "subscription" | "camera";
|
|
77
77
|
title: string;
|
|
78
|
-
source: "field_alert" | "notification" | "vendor_payment";
|
|
78
|
+
source: "field_alert" | "notification" | "vendor_payment" | "weather_alert";
|
|
79
79
|
createdAt: string;
|
|
80
80
|
metadata: Record<string, unknown> | null;
|
|
81
81
|
body: string;
|
|
@@ -92,7 +92,7 @@ export declare const notificationsRouter: {
|
|
|
92
92
|
attributes: {
|
|
93
93
|
type: "team" | "weather" | "field_alert" | "task" | "payment" | "system" | "subscription" | "camera";
|
|
94
94
|
title: string;
|
|
95
|
-
source: "field_alert" | "notification" | "vendor_payment";
|
|
95
|
+
source: "field_alert" | "notification" | "vendor_payment" | "weather_alert";
|
|
96
96
|
createdAt: string;
|
|
97
97
|
metadata: Record<string, unknown> | null;
|
|
98
98
|
body: string;
|
|
@@ -135,7 +135,7 @@ export declare const notificationsRouter: {
|
|
|
135
135
|
attributes: {
|
|
136
136
|
type: "team" | "weather" | "field_alert" | "task" | "payment" | "system" | "subscription" | "camera";
|
|
137
137
|
title: string;
|
|
138
|
-
source: "field_alert" | "notification" | "vendor_payment";
|
|
138
|
+
source: "field_alert" | "notification" | "vendor_payment" | "weather_alert";
|
|
139
139
|
createdAt: string;
|
|
140
140
|
metadata: Record<string, unknown> | null;
|
|
141
141
|
body: string;
|
|
@@ -164,7 +164,7 @@ export declare const notificationsRouter: {
|
|
|
164
164
|
attributes: {
|
|
165
165
|
type: "team" | "weather" | "field_alert" | "task" | "payment" | "system" | "subscription" | "camera";
|
|
166
166
|
title: string;
|
|
167
|
-
source: "field_alert" | "notification" | "vendor_payment";
|
|
167
|
+
source: "field_alert" | "notification" | "vendor_payment" | "weather_alert";
|
|
168
168
|
createdAt: string;
|
|
169
169
|
metadata: Record<string, unknown> | null;
|
|
170
170
|
body: string;
|
|
@@ -488,12 +488,12 @@ export declare const notificationsRouter: {
|
|
|
488
488
|
body: z.ZodString;
|
|
489
489
|
readAt: z.ZodNullable<z.ZodString>;
|
|
490
490
|
metadata: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
491
|
-
source: z.ZodEnum<["notification", "field_alert", "vendor_payment"]>;
|
|
491
|
+
source: z.ZodEnum<["notification", "field_alert", "vendor_payment", "weather_alert"]>;
|
|
492
492
|
createdAt: z.ZodString;
|
|
493
493
|
}, "strip", z.ZodTypeAny, {
|
|
494
494
|
type: "team" | "weather" | "field_alert" | "task" | "payment" | "system" | "subscription" | "camera";
|
|
495
495
|
title: string;
|
|
496
|
-
source: "field_alert" | "notification" | "vendor_payment";
|
|
496
|
+
source: "field_alert" | "notification" | "vendor_payment" | "weather_alert";
|
|
497
497
|
createdAt: string;
|
|
498
498
|
metadata: Record<string, unknown> | null;
|
|
499
499
|
body: string;
|
|
@@ -503,7 +503,7 @@ export declare const notificationsRouter: {
|
|
|
503
503
|
}, {
|
|
504
504
|
type: "team" | "weather" | "field_alert" | "task" | "payment" | "system" | "subscription" | "camera";
|
|
505
505
|
title: string;
|
|
506
|
-
source: "field_alert" | "notification" | "vendor_payment";
|
|
506
|
+
source: "field_alert" | "notification" | "vendor_payment" | "weather_alert";
|
|
507
507
|
createdAt: string;
|
|
508
508
|
metadata: Record<string, unknown> | null;
|
|
509
509
|
body: string;
|
|
@@ -520,7 +520,7 @@ export declare const notificationsRouter: {
|
|
|
520
520
|
attributes: {
|
|
521
521
|
type: "team" | "weather" | "field_alert" | "task" | "payment" | "system" | "subscription" | "camera";
|
|
522
522
|
title: string;
|
|
523
|
-
source: "field_alert" | "notification" | "vendor_payment";
|
|
523
|
+
source: "field_alert" | "notification" | "vendor_payment" | "weather_alert";
|
|
524
524
|
createdAt: string;
|
|
525
525
|
metadata: Record<string, unknown> | null;
|
|
526
526
|
body: string;
|
|
@@ -537,7 +537,7 @@ export declare const notificationsRouter: {
|
|
|
537
537
|
attributes: {
|
|
538
538
|
type: "team" | "weather" | "field_alert" | "task" | "payment" | "system" | "subscription" | "camera";
|
|
539
539
|
title: string;
|
|
540
|
-
source: "field_alert" | "notification" | "vendor_payment";
|
|
540
|
+
source: "field_alert" | "notification" | "vendor_payment" | "weather_alert";
|
|
541
541
|
createdAt: string;
|
|
542
542
|
metadata: Record<string, unknown> | null;
|
|
543
543
|
body: string;
|
|
@@ -580,7 +580,7 @@ export declare const notificationsRouter: {
|
|
|
580
580
|
attributes: {
|
|
581
581
|
type: "team" | "weather" | "field_alert" | "task" | "payment" | "system" | "subscription" | "camera";
|
|
582
582
|
title: string;
|
|
583
|
-
source: "field_alert" | "notification" | "vendor_payment";
|
|
583
|
+
source: "field_alert" | "notification" | "vendor_payment" | "weather_alert";
|
|
584
584
|
createdAt: string;
|
|
585
585
|
metadata: Record<string, unknown> | null;
|
|
586
586
|
body: string;
|
|
@@ -609,7 +609,7 @@ export declare const notificationsRouter: {
|
|
|
609
609
|
attributes: {
|
|
610
610
|
type: "team" | "weather" | "field_alert" | "task" | "payment" | "system" | "subscription" | "camera";
|
|
611
611
|
title: string;
|
|
612
|
-
source: "field_alert" | "notification" | "vendor_payment";
|
|
612
|
+
source: "field_alert" | "notification" | "vendor_payment" | "weather_alert";
|
|
613
613
|
createdAt: string;
|
|
614
614
|
metadata: Record<string, unknown> | null;
|
|
615
615
|
body: string;
|