@voyantjs/legal 0.32.3 → 0.34.0

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.
@@ -9,7 +9,7 @@ export declare const contractsLinkable: {
9
9
  };
10
10
  export type { Contract, ContractAttachment, ContractNumberSeries, ContractSignature, ContractTemplate, ContractTemplateVersion, NewContract, NewContractAttachment, NewContractNumberSeries, NewContractSignature, NewContractTemplate, NewContractTemplateVersion, } from "./schema.js";
11
11
  export { contractAttachments, contractNumberSeries, contractSignatures, contracts, contractTemplates, contractTemplateVersions, } from "./schema.js";
12
- export { allocateContractNumber, contractsService, renderTemplate, validateTemplateVariables, } from "./service.js";
12
+ export { allocateContractNumber, ContractTemplateSyntaxError, contractsService, isContractTemplateSyntaxError, renderTemplate, validateContractTemplateBody, validateTemplateVariables, } from "./service.js";
13
13
  export type { ContractDocumentGeneratedEvent, ContractDocumentGeneratorContext, ContractDocumentRuntimeOptions, GeneratedContractDocumentArtifact, GeneratedContractDocumentRecord, StorageBackedContractDocumentGeneratorOptions, StorageBackedContractDocumentSerializer, StorageBackedContractDocumentUpload, } from "./service-documents.js";
14
14
  export { createPdfContractDocumentGenerator, createStorageBackedContractDocumentGenerator, defaultPdfContractDocumentSerializer, defaultStorageBackedContractDocumentSerializer, } from "./service-documents.js";
15
15
  export type { CloudBrowserGoToOptions, CloudBrowserPdfInput, CloudBrowserPdfOptions, CloudBrowserRenderClient, CloudBrowserWaitUntil, CreateBrowserRenderedPdfContractDocumentSerializerOptions, } from "./service-documents-browser.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/contracts/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAExD,YAAY,EACV,yBAAyB,EACzB,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAA;AAErF,eAAO,MAAM,gBAAgB,EAAE,kBAK9B,CAAA;AAED,eAAO,MAAM,wBAAwB,EAAE,kBAKtC,CAAA;AAED,eAAO,MAAM,iBAAiB;;;CAG7B,CAAA;AAED,YAAY,EACV,QAAQ,EACR,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,uBAAuB,EACvB,WAAW,EACX,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACnB,0BAA0B,GAC3B,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,SAAS,EACT,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EAChB,cAAc,EACd,yBAAyB,GAC1B,MAAM,cAAc,CAAA;AACrB,YAAY,EACV,8BAA8B,EAC9B,gCAAgC,EAChC,8BAA8B,EAC9B,iCAAiC,EACjC,+BAA+B,EAC/B,6CAA6C,EAC7C,uCAAuC,EACvC,mCAAmC,GACpC,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EACL,kCAAkC,EAClC,4CAA4C,EAC5C,oCAAoC,EACpC,8CAA8C,GAC/C,MAAM,wBAAwB,CAAA;AAC/B,YAAY,EACV,uBAAuB,EACvB,oBAAoB,EACpB,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,EACrB,yDAAyD,GAC1D,MAAM,gCAAgC,CAAA;AACvC,OAAO,EACL,kDAAkD,EAClD,0BAA0B,GAC3B,MAAM,gCAAgC,CAAA;AACvC,YAAY,EACV,6BAA6B,EAC7B,gCAAgC,EAChC,kCAAkC,EAClC,4BAA4B,GAC7B,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACL,8BAA8B,EAC9B,+BAA+B,GAChC,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,iCAAiC,EACjC,mBAAmB,EACnB,6BAA6B,EAC7B,oBAAoB,EACpB,+BAA+B,EAC/B,mCAAmC,EACnC,yCAAyC,EACzC,qCAAqC,EACrC,8BAA8B,EAC9B,gCAAgC,EAChC,oBAAoB,EACpB,6BAA6B,EAC7B,4BAA4B,EAC5B,mCAAmC,EACnC,yBAAyB,EACzB,8BAA8B,EAC9B,gCAAgC,EAChC,oBAAoB,EACpB,4BAA4B,GAC7B,MAAM,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/contracts/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAExD,YAAY,EACV,yBAAyB,EACzB,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAA;AAErF,eAAO,MAAM,gBAAgB,EAAE,kBAK9B,CAAA;AAED,eAAO,MAAM,wBAAwB,EAAE,kBAKtC,CAAA;AAED,eAAO,MAAM,iBAAiB;;;CAG7B,CAAA;AAED,YAAY,EACV,QAAQ,EACR,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,uBAAuB,EACvB,WAAW,EACX,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACnB,0BAA0B,GAC3B,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,SAAS,EACT,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC3B,gBAAgB,EAChB,6BAA6B,EAC7B,cAAc,EACd,4BAA4B,EAC5B,yBAAyB,GAC1B,MAAM,cAAc,CAAA;AACrB,YAAY,EACV,8BAA8B,EAC9B,gCAAgC,EAChC,8BAA8B,EAC9B,iCAAiC,EACjC,+BAA+B,EAC/B,6CAA6C,EAC7C,uCAAuC,EACvC,mCAAmC,GACpC,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EACL,kCAAkC,EAClC,4CAA4C,EAC5C,oCAAoC,EACpC,8CAA8C,GAC/C,MAAM,wBAAwB,CAAA;AAC/B,YAAY,EACV,uBAAuB,EACvB,oBAAoB,EACpB,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,EACrB,yDAAyD,GAC1D,MAAM,gCAAgC,CAAA;AACvC,OAAO,EACL,kDAAkD,EAClD,0BAA0B,GAC3B,MAAM,gCAAgC,CAAA;AACvC,YAAY,EACV,6BAA6B,EAC7B,gCAAgC,EAChC,kCAAkC,EAClC,4BAA4B,GAC7B,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACL,8BAA8B,EAC9B,+BAA+B,GAChC,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,iCAAiC,EACjC,mBAAmB,EACnB,6BAA6B,EAC7B,oBAAoB,EACpB,+BAA+B,EAC/B,mCAAmC,EACnC,yCAAyC,EACzC,qCAAqC,EACrC,8BAA8B,EAC9B,gCAAgC,EAChC,oBAAoB,EACpB,6BAA6B,EAC7B,4BAA4B,EAC5B,mCAAmC,EACnC,yBAAyB,EACzB,8BAA8B,EAC9B,gCAAgC,EAChC,oBAAoB,EACpB,4BAA4B,GAC7B,MAAM,iBAAiB,CAAA"}
@@ -16,7 +16,7 @@ export const contractsLinkable = {
16
16
  contractTemplate: contractTemplateLinkable,
17
17
  };
18
18
  export { contractAttachments, contractNumberSeries, contractSignatures, contracts, contractTemplates, contractTemplateVersions, } from "./schema.js";
19
- export { allocateContractNumber, contractsService, renderTemplate, validateTemplateVariables, } from "./service.js";
19
+ export { allocateContractNumber, ContractTemplateSyntaxError, contractsService, isContractTemplateSyntaxError, renderTemplate, validateContractTemplateBody, validateTemplateVariables, } from "./service.js";
20
20
  export { createPdfContractDocumentGenerator, createStorageBackedContractDocumentGenerator, defaultPdfContractDocumentSerializer, defaultStorageBackedContractDocumentSerializer, } from "./service-documents.js";
21
21
  export { createBrowserRenderedPdfContractDocumentSerializer, defaultContractHtmlWrapper, } from "./service-documents-browser.js";
22
22
  export { contractTemplateLiquidSnippets, contractTemplateVariableCatalog, } from "./template-authoring.js";
@@ -1,7 +1,9 @@
1
1
  import type { EventBus } from "@voyantjs/core";
2
+ import type { StorageProvider } from "@voyantjs/storage";
2
3
  import type { ContractDocumentGenerator, ContractsRouteOptions } from "./routes.js";
3
4
  export type ContractsRouteRuntime = {
4
5
  documentGenerator?: ContractDocumentGenerator;
6
+ documentStorage?: StorageProvider | null;
5
7
  eventBus?: EventBus;
6
8
  };
7
9
  export declare const CONTRACTS_ROUTE_RUNTIME_CONTAINER_KEY = "providers.legal.contracts.runtime";
@@ -1 +1 @@
1
- {"version":3,"file":"route-runtime.d.ts","sourceRoot":"","sources":["../../src/contracts/route-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAE9C,OAAO,KAAK,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAEnF,MAAM,MAAM,qBAAqB,GAAG;IAClC,iBAAiB,CAAC,EAAE,yBAAyB,CAAA;IAC7C,QAAQ,CAAC,EAAE,QAAQ,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,qCAAqC,sCAAsC,CAAA;AAExF,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,OAAO,GAAE,qBAA0B,GAClC,qBAAqB,CAKvB"}
1
+ {"version":3,"file":"route-runtime.d.ts","sourceRoot":"","sources":["../../src/contracts/route-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAExD,OAAO,KAAK,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAEnF,MAAM,MAAM,qBAAqB,GAAG;IAClC,iBAAiB,CAAC,EAAE,yBAAyB,CAAA;IAC7C,eAAe,CAAC,EAAE,eAAe,GAAG,IAAI,CAAA;IACxC,QAAQ,CAAC,EAAE,QAAQ,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,qCAAqC,sCAAsC,CAAA;AAExF,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,OAAO,GAAE,qBAA0B,GAClC,qBAAqB,CAMvB"}
@@ -2,6 +2,7 @@ export const CONTRACTS_ROUTE_RUNTIME_CONTAINER_KEY = "providers.legal.contracts.
2
2
  export function buildContractsRouteRuntime(bindings, options = {}) {
3
3
  return {
4
4
  documentGenerator: options.resolveDocumentGenerator?.(bindings) ?? options.documentGenerator,
5
+ documentStorage: options.resolveDocumentStorage?.(bindings) ?? options.documentStorage,
5
6
  eventBus: options.resolveEventBus?.(bindings) ?? options.eventBus,
6
7
  };
7
8
  }
@@ -0,0 +1,19 @@
1
+ import type { Context } from "hono";
2
+ import { type RenderTemplateInput } from "./service-shared.js";
3
+ export declare function contractTemplateSyntaxResponse(c: Context, error: unknown): Response & import("hono").TypedResponse<{
4
+ error: string;
5
+ issues: {
6
+ message: string;
7
+ }[];
8
+ }, 400, "json">;
9
+ export declare function renderPreviewResponse(c: Context, input: RenderTemplateInput, extraData?: Record<string, unknown>): (Response & import("hono").TypedResponse<{
10
+ error: string;
11
+ issues: {
12
+ message: string;
13
+ }[];
14
+ }, 400, "json">) | (Response & import("hono").TypedResponse<{
15
+ data: {
16
+ rendered: string;
17
+ };
18
+ }, import("hono/utils/http-status").ContentfulStatusCode, "json">);
19
+ //# sourceMappingURL=route-template-preview.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route-template-preview.d.ts","sourceRoot":"","sources":["../../src/contracts/route-template-preview.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAGnC,OAAO,EAAiC,KAAK,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAE7F,wBAAgB,8BAA8B,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO;;;;;gBAYxE;AAED,wBAAgB,qBAAqB,CACnC,CAAC,EAAE,OAAO,EACV,KAAK,EAAE,mBAAmB,EAC1B,SAAS,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;;;;;;;;;mEAQxC"}
@@ -0,0 +1,20 @@
1
+ import { contractsService } from "./service.js";
2
+ import { isContractTemplateSyntaxError } from "./service-shared.js";
3
+ export function contractTemplateSyntaxResponse(c, error) {
4
+ if (!isContractTemplateSyntaxError(error)) {
5
+ throw error;
6
+ }
7
+ return c.json({
8
+ error: error.message,
9
+ issues: error.issues,
10
+ }, 400);
11
+ }
12
+ export function renderPreviewResponse(c, input, extraData = {}) {
13
+ try {
14
+ const rendered = contractsService.renderPreview(input);
15
+ return c.json({ data: { ...extraData, rendered } });
16
+ }
17
+ catch (error) {
18
+ return contractTemplateSyntaxResponse(c, error);
19
+ }
20
+ }
@@ -1,4 +1,5 @@
1
1
  import type { EventBus, ModuleContainer } from "@voyantjs/core";
2
+ import type { StorageProvider } from "@voyantjs/storage";
2
3
  import type { PostgresJsDatabase } from "drizzle-orm/postgres-js";
3
4
  import { contractsService } from "./service.js";
4
5
  type Env = {
@@ -14,6 +15,8 @@ export interface ContractsRouteOptions {
14
15
  documentGenerator?: ContractDocumentGenerator;
15
16
  resolveDocumentGenerator?: (bindings: Record<string, unknown>) => ContractDocumentGenerator | undefined;
16
17
  resolveDocumentDownloadUrl?: (bindings: Record<string, unknown>, storageKey: string) => Promise<string | null> | string | null;
18
+ documentStorage?: StorageProvider | null;
19
+ resolveDocumentStorage?: (bindings: Record<string, unknown>) => StorageProvider | null | undefined;
17
20
  eventBus?: EventBus;
18
21
  resolveEventBus?: (bindings: Record<string, unknown>) => EventBus | undefined;
19
22
  }
@@ -213,9 +216,12 @@ export declare function createContractsAdminRoutes(options?: ContractsRouteOptio
213
216
  };
214
217
  output: {
215
218
  error: string;
219
+ issues: {
220
+ message: string;
221
+ }[];
216
222
  };
217
223
  outputFormat: "json";
218
- status: 404;
224
+ status: 400;
219
225
  } | {
220
226
  input: {
221
227
  param: {
@@ -229,6 +235,17 @@ export declare function createContractsAdminRoutes(options?: ContractsRouteOptio
229
235
  };
230
236
  outputFormat: "json";
231
237
  status: import("hono/utils/http-status").ContentfulStatusCode;
238
+ } | {
239
+ input: {
240
+ param: {
241
+ id: string;
242
+ };
243
+ };
244
+ output: {
245
+ error: string;
246
+ };
247
+ outputFormat: "json";
248
+ status: 404;
232
249
  };
233
250
  };
234
251
  } & {
@@ -483,6 +500,10 @@ export declare function createContractsAdminRoutes(options?: ContractsRouteOptio
483
500
  input: {};
484
501
  output: {
485
502
  data: {
503
+ personFirstName: string | null;
504
+ personLastName: string | null;
505
+ personEmail: string | null;
506
+ personPhone: string | null;
486
507
  id: string;
487
508
  contractNumber: string | null;
488
509
  scope: "customer" | "partner" | "supplier" | "other" | "channel";
@@ -1039,9 +1060,12 @@ export declare function createContractsAdminRoutes(options?: ContractsRouteOptio
1039
1060
  };
1040
1061
  output: {
1041
1062
  error: string;
1063
+ issues: {
1064
+ message: string;
1065
+ }[];
1042
1066
  };
1043
1067
  outputFormat: "json";
1044
- status: 404;
1068
+ status: 400;
1045
1069
  } | {
1046
1070
  input: {
1047
1071
  param: {
@@ -1055,6 +1079,17 @@ export declare function createContractsAdminRoutes(options?: ContractsRouteOptio
1055
1079
  };
1056
1080
  outputFormat: "json";
1057
1081
  status: import("hono/utils/http-status").ContentfulStatusCode;
1082
+ } | {
1083
+ input: {
1084
+ param: {
1085
+ id: string;
1086
+ };
1087
+ };
1088
+ output: {
1089
+ error: string;
1090
+ };
1091
+ outputFormat: "json";
1092
+ status: 404;
1058
1093
  };
1059
1094
  };
1060
1095
  } & {
@@ -1309,6 +1344,37 @@ export declare function createContractsAdminRoutes(options?: ContractsRouteOptio
1309
1344
  status: 201;
1310
1345
  };
1311
1346
  };
1347
+ } & {
1348
+ "/:id/attachments/upload": {
1349
+ $post: {
1350
+ input: {
1351
+ param: {
1352
+ id: string;
1353
+ };
1354
+ };
1355
+ output: Promise<void>;
1356
+ outputFormat: "json";
1357
+ status: import("hono/utils/http-status").StatusCode;
1358
+ } | {
1359
+ input: {
1360
+ param: {
1361
+ id: string;
1362
+ };
1363
+ };
1364
+ output: {};
1365
+ outputFormat: string;
1366
+ status: import("hono/utils/http-status").StatusCode;
1367
+ } | {
1368
+ input: {
1369
+ param: {
1370
+ id: string;
1371
+ };
1372
+ };
1373
+ output: {};
1374
+ outputFormat: string;
1375
+ status: import("hono/utils/http-status").StatusCode;
1376
+ };
1377
+ };
1312
1378
  } & {
1313
1379
  "/attachments/:attachmentId": {
1314
1380
  $patch: {
@@ -1346,6 +1412,37 @@ export declare function createContractsAdminRoutes(options?: ContractsRouteOptio
1346
1412
  status: import("hono/utils/http-status").ContentfulStatusCode;
1347
1413
  };
1348
1414
  };
1415
+ } & {
1416
+ "/attachments/:attachmentId/upload": {
1417
+ $patch: {
1418
+ input: {
1419
+ param: {
1420
+ attachmentId: string;
1421
+ };
1422
+ };
1423
+ output: Promise<void>;
1424
+ outputFormat: "json";
1425
+ status: import("hono/utils/http-status").StatusCode;
1426
+ } | {
1427
+ input: {
1428
+ param: {
1429
+ attachmentId: string;
1430
+ };
1431
+ };
1432
+ output: {};
1433
+ outputFormat: string;
1434
+ status: import("hono/utils/http-status").StatusCode;
1435
+ } | {
1436
+ input: {
1437
+ param: {
1438
+ attachmentId: string;
1439
+ };
1440
+ };
1441
+ output: {};
1442
+ outputFormat: string;
1443
+ status: import("hono/utils/http-status").StatusCode;
1444
+ };
1445
+ };
1349
1446
  } & {
1350
1447
  "/attachments/:attachmentId/download": {
1351
1448
  $get: {
@@ -1604,9 +1701,12 @@ export declare const contractsAdminRoutes: import("hono/hono-base").HonoBase<Env
1604
1701
  };
1605
1702
  output: {
1606
1703
  error: string;
1704
+ issues: {
1705
+ message: string;
1706
+ }[];
1607
1707
  };
1608
1708
  outputFormat: "json";
1609
- status: 404;
1709
+ status: 400;
1610
1710
  } | {
1611
1711
  input: {
1612
1712
  param: {
@@ -1620,6 +1720,17 @@ export declare const contractsAdminRoutes: import("hono/hono-base").HonoBase<Env
1620
1720
  };
1621
1721
  outputFormat: "json";
1622
1722
  status: import("hono/utils/http-status").ContentfulStatusCode;
1723
+ } | {
1724
+ input: {
1725
+ param: {
1726
+ id: string;
1727
+ };
1728
+ };
1729
+ output: {
1730
+ error: string;
1731
+ };
1732
+ outputFormat: "json";
1733
+ status: 404;
1623
1734
  };
1624
1735
  };
1625
1736
  } & {
@@ -1874,6 +1985,10 @@ export declare const contractsAdminRoutes: import("hono/hono-base").HonoBase<Env
1874
1985
  input: {};
1875
1986
  output: {
1876
1987
  data: {
1988
+ personFirstName: string | null;
1989
+ personLastName: string | null;
1990
+ personEmail: string | null;
1991
+ personPhone: string | null;
1877
1992
  id: string;
1878
1993
  contractNumber: string | null;
1879
1994
  scope: "customer" | "partner" | "supplier" | "other" | "channel";
@@ -2430,9 +2545,12 @@ export declare const contractsAdminRoutes: import("hono/hono-base").HonoBase<Env
2430
2545
  };
2431
2546
  output: {
2432
2547
  error: string;
2548
+ issues: {
2549
+ message: string;
2550
+ }[];
2433
2551
  };
2434
2552
  outputFormat: "json";
2435
- status: 404;
2553
+ status: 400;
2436
2554
  } | {
2437
2555
  input: {
2438
2556
  param: {
@@ -2446,6 +2564,17 @@ export declare const contractsAdminRoutes: import("hono/hono-base").HonoBase<Env
2446
2564
  };
2447
2565
  outputFormat: "json";
2448
2566
  status: import("hono/utils/http-status").ContentfulStatusCode;
2567
+ } | {
2568
+ input: {
2569
+ param: {
2570
+ id: string;
2571
+ };
2572
+ };
2573
+ output: {
2574
+ error: string;
2575
+ };
2576
+ outputFormat: "json";
2577
+ status: 404;
2449
2578
  };
2450
2579
  };
2451
2580
  } & {
@@ -2700,6 +2829,37 @@ export declare const contractsAdminRoutes: import("hono/hono-base").HonoBase<Env
2700
2829
  status: 201;
2701
2830
  };
2702
2831
  };
2832
+ } & {
2833
+ "/:id/attachments/upload": {
2834
+ $post: {
2835
+ input: {
2836
+ param: {
2837
+ id: string;
2838
+ };
2839
+ };
2840
+ output: Promise<void>;
2841
+ outputFormat: "json";
2842
+ status: import("hono/utils/http-status").StatusCode;
2843
+ } | {
2844
+ input: {
2845
+ param: {
2846
+ id: string;
2847
+ };
2848
+ };
2849
+ output: {};
2850
+ outputFormat: string;
2851
+ status: import("hono/utils/http-status").StatusCode;
2852
+ } | {
2853
+ input: {
2854
+ param: {
2855
+ id: string;
2856
+ };
2857
+ };
2858
+ output: {};
2859
+ outputFormat: string;
2860
+ status: import("hono/utils/http-status").StatusCode;
2861
+ };
2862
+ };
2703
2863
  } & {
2704
2864
  "/attachments/:attachmentId": {
2705
2865
  $patch: {
@@ -2737,6 +2897,37 @@ export declare const contractsAdminRoutes: import("hono/hono-base").HonoBase<Env
2737
2897
  status: import("hono/utils/http-status").ContentfulStatusCode;
2738
2898
  };
2739
2899
  };
2900
+ } & {
2901
+ "/attachments/:attachmentId/upload": {
2902
+ $patch: {
2903
+ input: {
2904
+ param: {
2905
+ attachmentId: string;
2906
+ };
2907
+ };
2908
+ output: Promise<void>;
2909
+ outputFormat: "json";
2910
+ status: import("hono/utils/http-status").StatusCode;
2911
+ } | {
2912
+ input: {
2913
+ param: {
2914
+ attachmentId: string;
2915
+ };
2916
+ };
2917
+ output: {};
2918
+ outputFormat: string;
2919
+ status: import("hono/utils/http-status").StatusCode;
2920
+ } | {
2921
+ input: {
2922
+ param: {
2923
+ attachmentId: string;
2924
+ };
2925
+ };
2926
+ output: {};
2927
+ outputFormat: string;
2928
+ status: import("hono/utils/http-status").StatusCode;
2929
+ };
2930
+ };
2740
2931
  } & {
2741
2932
  "/attachments/:attachmentId/download": {
2742
2933
  $get: {
@@ -2840,9 +3031,12 @@ export declare function createContractsPublicRoutes(): import("hono/hono-base").
2840
3031
  };
2841
3032
  output: {
2842
3033
  error: string;
3034
+ issues: {
3035
+ message: string;
3036
+ }[];
2843
3037
  };
2844
3038
  outputFormat: "json";
2845
- status: 404;
3039
+ status: 400;
2846
3040
  } | {
2847
3041
  input: {
2848
3042
  param: {
@@ -2856,6 +3050,17 @@ export declare function createContractsPublicRoutes(): import("hono/hono-base").
2856
3050
  };
2857
3051
  outputFormat: "json";
2858
3052
  status: import("hono/utils/http-status").ContentfulStatusCode;
3053
+ } | {
3054
+ input: {
3055
+ param: {
3056
+ id: string;
3057
+ };
3058
+ };
3059
+ output: {
3060
+ error: string;
3061
+ };
3062
+ outputFormat: "json";
3063
+ status: 404;
2859
3064
  };
2860
3065
  };
2861
3066
  } & {
@@ -2868,9 +3073,12 @@ export declare function createContractsPublicRoutes(): import("hono/hono-base").
2868
3073
  };
2869
3074
  output: {
2870
3075
  error: string;
3076
+ issues: {
3077
+ message: string;
3078
+ }[];
2871
3079
  };
2872
3080
  outputFormat: "json";
2873
- status: 404;
3081
+ status: 400;
2874
3082
  } | {
2875
3083
  input: {
2876
3084
  param: {
@@ -2879,18 +3087,22 @@ export declare function createContractsPublicRoutes(): import("hono/hono-base").
2879
3087
  };
2880
3088
  output: {
2881
3089
  data: {
2882
- template: {
2883
- id: string;
2884
- slug: string;
2885
- name: string;
2886
- language: string;
2887
- scope: "customer" | "partner" | "supplier" | "other" | "channel";
2888
- };
2889
3090
  rendered: string;
2890
3091
  };
2891
3092
  };
2892
3093
  outputFormat: "json";
2893
3094
  status: import("hono/utils/http-status").ContentfulStatusCode;
3095
+ } | {
3096
+ input: {
3097
+ param: {
3098
+ slug: string;
3099
+ };
3100
+ };
3101
+ output: {
3102
+ error: string;
3103
+ };
3104
+ outputFormat: "json";
3105
+ status: 404;
2894
3106
  };
2895
3107
  };
2896
3108
  } & {
@@ -3041,9 +3253,12 @@ export declare const contractsPublicRoutes: import("hono/hono-base").HonoBase<En
3041
3253
  };
3042
3254
  output: {
3043
3255
  error: string;
3256
+ issues: {
3257
+ message: string;
3258
+ }[];
3044
3259
  };
3045
3260
  outputFormat: "json";
3046
- status: 404;
3261
+ status: 400;
3047
3262
  } | {
3048
3263
  input: {
3049
3264
  param: {
@@ -3057,6 +3272,17 @@ export declare const contractsPublicRoutes: import("hono/hono-base").HonoBase<En
3057
3272
  };
3058
3273
  outputFormat: "json";
3059
3274
  status: import("hono/utils/http-status").ContentfulStatusCode;
3275
+ } | {
3276
+ input: {
3277
+ param: {
3278
+ id: string;
3279
+ };
3280
+ };
3281
+ output: {
3282
+ error: string;
3283
+ };
3284
+ outputFormat: "json";
3285
+ status: 404;
3060
3286
  };
3061
3287
  };
3062
3288
  } & {
@@ -3069,9 +3295,12 @@ export declare const contractsPublicRoutes: import("hono/hono-base").HonoBase<En
3069
3295
  };
3070
3296
  output: {
3071
3297
  error: string;
3298
+ issues: {
3299
+ message: string;
3300
+ }[];
3072
3301
  };
3073
3302
  outputFormat: "json";
3074
- status: 404;
3303
+ status: 400;
3075
3304
  } | {
3076
3305
  input: {
3077
3306
  param: {
@@ -3080,18 +3309,22 @@ export declare const contractsPublicRoutes: import("hono/hono-base").HonoBase<En
3080
3309
  };
3081
3310
  output: {
3082
3311
  data: {
3083
- template: {
3084
- id: string;
3085
- slug: string;
3086
- name: string;
3087
- language: string;
3088
- scope: "customer" | "partner" | "supplier" | "other" | "channel";
3089
- };
3090
3312
  rendered: string;
3091
3313
  };
3092
3314
  };
3093
3315
  outputFormat: "json";
3094
3316
  status: import("hono/utils/http-status").ContentfulStatusCode;
3317
+ } | {
3318
+ input: {
3319
+ param: {
3320
+ slug: string;
3321
+ };
3322
+ };
3323
+ output: {
3324
+ error: string;
3325
+ };
3326
+ outputFormat: "json";
3327
+ status: 404;
3095
3328
  };
3096
3329
  };
3097
3330
  } & {
@@ -1 +1 @@
1
- {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/contracts/routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAE/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAQjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAoB/C,KAAK,GAAG,GAAG;IACT,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACjC,SAAS,EAAE;QACT,SAAS,EAAE,eAAe,CAAA;QAC1B,EAAE,EAAE,kBAAkB,CAAA;QACtB,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,CAAA;CACF,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG,UAAU,CAChD,OAAO,gBAAgB,CAAC,wBAAwB,CACjD,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAA;AAEjB,MAAM,WAAW,qBAAqB;IACpC,iBAAiB,CAAC,EAAE,yBAAyB,CAAA;IAC7C,wBAAwB,CAAC,EAAE,CACzB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC9B,yBAAyB,GAAG,SAAS,CAAA;IAC1C,0BAA0B,CAAC,EAAE,CAC3B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,UAAU,EAAE,MAAM,KACf,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,MAAM,GAAG,IAAI,CAAA;IAC3C,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,QAAQ,GAAG,SAAS,CAAA;CAC9E;AAkCD,wBAAgB,0BAA0B,CAAC,OAAO,GAAE,qBAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sCAgS7E;AAED,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qCAA+B,CAAA;AAEhE,wBAAgB,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBA8D1C;AAED,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAgC,CAAA;AAElE,MAAM,MAAM,oBAAoB,GAAG,OAAO,oBAAoB,CAAA;AAC9D,MAAM,MAAM,qBAAqB,GAAG,OAAO,qBAAqB,CAAA"}
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/contracts/routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAE/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAUjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAoB/C,KAAK,GAAG,GAAG;IACT,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACjC,SAAS,EAAE;QACT,SAAS,EAAE,eAAe,CAAA;QAC1B,EAAE,EAAE,kBAAkB,CAAA;QACtB,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,CAAA;CACF,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG,UAAU,CAChD,OAAO,gBAAgB,CAAC,wBAAwB,CACjD,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAA;AAEjB,MAAM,WAAW,qBAAqB;IACpC,iBAAiB,CAAC,EAAE,yBAAyB,CAAA;IAC7C,wBAAwB,CAAC,EAAE,CACzB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC9B,yBAAyB,GAAG,SAAS,CAAA;IAC1C,0BAA0B,CAAC,EAAE,CAC3B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,UAAU,EAAE,MAAM,KACf,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,MAAM,GAAG,IAAI,CAAA;IAC3C,eAAe,CAAC,EAAE,eAAe,GAAG,IAAI,CAAA;IACxC,sBAAsB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,eAAe,GAAG,IAAI,GAAG,SAAS,CAAA;IAClG,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,QAAQ,GAAG,SAAS,CAAA;CAC9E;AAkHD,wBAAgB,0BAA0B,CAAC,OAAO,GAAE,qBAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sCA6V7E;AAED,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qCAA+B,CAAA;AAEhE,wBAAgB,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBA6D1C;AAED,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAgC,CAAA;AAElE,MAAM,MAAM,oBAAoB,GAAG,OAAO,oBAAoB,CAAA;AAC9D,MAAM,MAAM,qBAAqB,GAAG,OAAO,qBAAqB,CAAA"}