@eco-foundation/api-schemas 0.2.0 → 0.4.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.
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.V1_ISSUE_CODE_PARAM = exports.PROBLEM_RESERVED_MEMBERS = exports.V1ProblemSchema = exports.V1SolverErrorSchema = exports.PROBLEM_CONTENT_TYPE = void 0;
3
+ exports.V1_ISSUE_CODE_PARAM = exports.PROBLEM_RESERVED_MEMBERS = exports.V1ProblemSchema = exports.V1ProblemFieldErrorSchema = exports.V1SolverErrorSchema = exports.PROBLEM_CONTENT_TYPE = void 0;
4
4
  exports.v1IssueParams = v1IssueParams;
5
5
  exports.v1ErrorCodeFromIssues = v1ErrorCodeFromIssues;
6
+ exports.fieldErrorsFromIssues = fieldErrorsFromIssues;
6
7
  exports.problemFromZodError = problemFromZodError;
7
8
  exports.problem = problem;
8
9
  const zod_1 = require("zod");
@@ -15,6 +16,10 @@ exports.V1SolverErrorSchema = zod_1.z.looseObject({
15
16
  code: zod_1.z.string().min(1).optional(),
16
17
  message: zod_1.z.string(),
17
18
  });
19
+ exports.V1ProblemFieldErrorSchema = zod_1.z.looseObject({
20
+ field: zod_1.z.string().min(1),
21
+ detail: zod_1.z.string().min(1),
22
+ });
18
23
  const CATALOG_BY_CODE = new Map(catalog_1.V1_ERROR_CATALOG.map((e) => [e.code, e]));
19
24
  exports.V1ProblemSchema = zod_1.z
20
25
  .looseObject({
@@ -29,6 +34,7 @@ exports.V1ProblemSchema = zod_1.z
29
34
  .regex(/^(eco-quotes|deposit-addresses):\d{4}$/)
30
35
  .optional(),
31
36
  solverErrors: zod_1.z.array(exports.V1SolverErrorSchema).optional(),
37
+ errors: zod_1.z.array(exports.V1ProblemFieldErrorSchema).optional(),
32
38
  })
33
39
  .superRefine((body, ctx) => {
34
40
  const def = CATALOG_BY_CODE.get(body.code);
@@ -59,6 +65,7 @@ exports.PROBLEM_RESERVED_MEMBERS = [
59
65
  'instance',
60
66
  'legacyCode',
61
67
  'solverErrors',
68
+ 'errors',
62
69
  ];
63
70
  exports.V1_ISSUE_CODE_PARAM = 'v1ErrorCode';
64
71
  function v1IssueParams(code) {
@@ -79,15 +86,26 @@ const renderIssue = (issue) => {
79
86
  const path = issue.path.map((segment) => String(segment)).join('.');
80
87
  return path.length > 0 ? `${path}: ${issue.message}` : issue.message;
81
88
  };
89
+ function fieldErrorsFromIssues(issues) {
90
+ return issues
91
+ .slice(0, MAX_DETAIL_ISSUES)
92
+ .map((issue) => ({
93
+ field: issue.path.map((segment) => String(segment)).join('.'),
94
+ detail: issue.message,
95
+ }))
96
+ .filter((entry) => entry.field.length > 0 && entry.detail.length > 0);
97
+ }
82
98
  function problemFromZodError(error, opts = {}) {
83
99
  const issues = error.issues;
84
100
  const shown = issues.slice(0, MAX_DETAIL_ISSUES).map(renderIssue);
85
101
  const omitted = issues.length - shown.length;
86
102
  const rendered = [...shown, ...(omitted > 0 ? [`(+${omitted} more issues)`] : [])].join('; ');
87
103
  const detail = opts.detail ?? (rendered.length > 0 ? rendered : undefined);
104
+ const fieldErrors = opts.errors ?? fieldErrorsFromIssues(issues);
88
105
  return problem(v1ErrorCodeFromIssues(issues), {
89
106
  ...opts,
90
107
  ...(detail !== undefined ? { detail } : {}),
108
+ ...(fieldErrors !== undefined && fieldErrors.length > 0 ? { errors: fieldErrors } : {}),
91
109
  });
92
110
  }
93
111
  function problem(code, opts = {}) {
@@ -110,6 +128,7 @@ function problem(code, opts = {}) {
110
128
  ...(opts.instance !== undefined ? { instance: opts.instance } : {}),
111
129
  ...(opts.legacyCode !== undefined ? { legacyCode: opts.legacyCode } : {}),
112
130
  ...(opts.solverErrors !== undefined ? { solverErrors: opts.solverErrors } : {}),
131
+ ...(opts.errors !== undefined ? { errors: opts.errors } : {}),
113
132
  };
114
133
  }
115
134
  //# sourceMappingURL=problem.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"problem.js","sourceRoot":"","sources":["../../../src/v1/errors/problem.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"problem.js","sourceRoot":"","sources":["../../../src/v1/errors/problem.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,8 @@ export declare const HexBytes: z.ZodString;
6
6
  export type HexBytes = z.infer<typeof HexBytes>;
7
7
  export declare const Bytes32: z.ZodString;
8
8
  export type Bytes32 = z.infer<typeof Bytes32>;
9
+ export declare const Base64Bytes: z.ZodString;
10
+ export type Base64Bytes = z.infer<typeof Base64Bytes>;
9
11
  export declare const EvmAddress: z.ZodString;
10
12
  export declare const SvmAddress: z.ZodString;
11
13
  export declare const TvmAddress: z.ZodUnion<readonly [z.ZodString, z.ZodString]>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.tolerantEnum = exports.V1Id = exports.DepositAddressId = exports.GaslessJobRef = exports.GaslessId = exports.IntentId = exports.QuoteId = exports.DappId = exports.UnixSeconds = exports.MAX_UNIX_SECONDS = exports.ChainId = exports.ADDRESS_BY_CHAIN_TYPE = exports.AnyAddress = exports.TvmAddress = exports.SvmAddress = exports.EvmAddress = exports.Bytes32 = exports.HexBytes = exports.UintString = exports.MAX_UINT256 = void 0;
3
+ exports.tolerantEnum = exports.V1Id = exports.DepositAddressId = exports.GaslessJobRef = exports.GaslessId = exports.IntentId = exports.QuoteId = exports.DappId = exports.UnixSeconds = exports.MAX_UNIX_SECONDS = exports.ChainId = exports.ADDRESS_BY_CHAIN_TYPE = exports.AnyAddress = exports.TvmAddress = exports.SvmAddress = exports.EvmAddress = exports.Base64Bytes = exports.Bytes32 = exports.HexBytes = exports.UintString = exports.MAX_UINT256 = void 0;
4
4
  exports.isSameEvmAddress = isSameEvmAddress;
5
5
  exports.parseV1Id = parseV1Id;
6
6
  const zod_1 = require("zod");
@@ -16,6 +16,9 @@ exports.UintString = zod_1.z
16
16
  .refine(isWithinUint256, UINT256_CEILING_MESSAGE);
17
17
  exports.HexBytes = zod_1.z.string().regex(/^0x(?:[0-9a-fA-F]{2})*$/, '0x-prefixed hex bytes');
18
18
  exports.Bytes32 = zod_1.z.string().regex(/^0x[0-9a-fA-F]{64}$/, '0x-prefixed 32-byte hex');
19
+ exports.Base64Bytes = zod_1.z
20
+ .string()
21
+ .regex(/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/, 'standard base64 (padded, not URL-safe, no whitespace)');
19
22
  exports.EvmAddress = zod_1.z
20
23
  .string()
21
24
  .regex(/^0x[0-9a-fA-F]{40}$/, 'EVM address (0x + 20 bytes hex)');
@@ -1 +1 @@
1
- {"version":3,"file":"primitives.js","sourceRoot":"","sources":["../../src/v1/primitives.ts"],"names":[],"mappings":";;;AA0GA,4CAEC;AAoED,8BAOC;AAvLD,6BAAwB;AASX,QAAA,WAAW,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;AAE7C,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAC9B,MAAM,oBAAoB,GAAG,gBAAgB,CAAC;AAC9C,MAAM,uBAAuB,GAAG,uCAAuC,CAAC;AASxE,MAAM,eAAe,GAAG,CAAC,KAAa,EAAW,EAAE,CACjD,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,mBAAW,CAAC;AAqBtD,QAAA,UAAU,GAAG,OAAC;KACxB,MAAM,EAAE;KACR,KAAK,CAAC,oBAAoB,EAAE,iCAAiC,CAAC;KAC9D,GAAG,CAAC,kBAAkB,EAAE,uBAAuB,CAAC;KAChD,MAAM,CAAC,eAAe,EAAE,uBAAuB,CAAC,CAAC;AAIvC,QAAA,QAAQ,GAAG,OAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,yBAAyB,EAAE,uBAAuB,CAAC,CAAC;AAIhF,QAAA,OAAO,GAAG,OAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,qBAAqB,EAAE,yBAAyB,CAAC,CAAC;AAG7E,QAAA,UAAU,GAAG,OAAC;KACxB,MAAM,EAAE;KACR,KAAK,CAAC,qBAAqB,EAAE,iCAAiC,CAAC,CAAC;AACtD,QAAA,UAAU,GAAG,OAAC;KACxB,MAAM,EAAE;KACR,KAAK,CAAC,+BAA+B,EAAE,mCAAmC,CAAC,CAAC;AAElE,QAAA,UAAU,GAAG,OAAC,CAAC,KAAK,CAAC;IAChC,OAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,6BAA6B,EAAE,2BAA2B,CAAC;IAC5E,OAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,uBAAuB,EAAE,iCAAiC,CAAC;CAC7E,CAAC,CAAC;AA4BU,QAAA,UAAU,GAAG,OAAC,CAAC,KAAK,CAAC,CAAC,kBAAU,EAAE,kBAAU,EAAE,kBAAU,CAAC,CAAC,CAAC;AAG3D,QAAA,qBAAqB,GAAqD;IACrF,GAAG,EAAE,kBAAU;IACf,GAAG,EAAE,kBAAU;IACf,GAAG,EAAE,kBAAU;CAChB,CAAC;AAEF,SAAgB,gBAAgB,CAAC,CAAS,EAAE,CAAS;IACnD,OAAO,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;AAC7C,CAAC;AAGY,QAAA,OAAO,GAAG,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAInE,QAAA,gBAAgB,GAAG,UAAU,CAAC;AAE9B,QAAA,WAAW,GAAG,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,wBAAgB,CAAC,CAAC;AAInE,QAAA,MAAM,GAAG,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAEjD,MAAM,IAAI,GAAG,8DAA8D,CAAC;AAE5E,MAAM,SAAS,GAAG,cAAc,CAAC;AACpB,QAAA,OAAO,GAAG,OAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,UAAU,IAAI,GAAG,CAAC,EAAE,cAAc,CAAC,CAAC;AAC1E,QAAA,QAAQ,GAAG,OAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,4BAA4B,EAAE,eAAe,CAAC,CAAC;AAa3E,QAAA,SAAS,GAAG,OAAC;KACvB,MAAM,EAAE;KACR,KAAK,CAAC,IAAI,MAAM,CAAC,aAAa,IAAI,IAAI,SAAS,IAAI,CAAC,EAAE,gCAAgC,CAAC,CAAC;AAO9E,QAAA,aAAa,GAAG,OAAC;KAC3B,MAAM,EAAE;KACR,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI,SAAS,IAAI,CAAC,EAAE,wBAAwB,CAAC,CAAC;AAC9D,QAAA,gBAAgB,GAAG,OAAC;KAC9B,MAAM,EAAE;KACR,KAAK,CAAC,qCAAqC,EAAE,+BAA+B,CAAC,CAAC;AACpE,QAAA,IAAI,GAAG,OAAC,CAAC,KAAK,CAAC,CAAC,eAAO,EAAE,gBAAQ,EAAE,iBAAS,EAAE,wBAAgB,CAAC,CAAC,CAAC;AAQ9E,MAAM,UAAU,GAAuE;IACrF,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,eAAO,EAAE;IAClC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,gBAAQ,EAAE;IACpC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,iBAAS,EAAE;IACtC,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,wBAAgB,EAAE;CACtD,CAAC;AAQF,SAAgB,SAAS,CAAC,EAAU;IAClC,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;QAC1C,IAAI,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;YACjC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;QACpD,CAAC;IACH,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC;AAC/C,CAAC;AAQD,uCAA0C;AAAjC,wGAAA,YAAY,OAAA"}
1
+ {"version":3,"file":"primitives.js","sourceRoot":"","sources":["../../src/v1/primitives.ts"],"names":[],"mappings":"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"}
@@ -83,6 +83,18 @@ export type V1SolverIdentity = {
83
83
  name?: string;
84
84
  [extension: string]: unknown;
85
85
  };
86
+ export type V1SvmAccountMeta = {
87
+ pubkey: string;
88
+ isSigner: boolean;
89
+ isWritable: boolean;
90
+ [extension: string]: unknown;
91
+ };
92
+ export type V1SvmInstruction = {
93
+ programId: string;
94
+ accounts: V1SvmAccountMeta[];
95
+ data: string;
96
+ [extension: string]: unknown;
97
+ };
86
98
  export type V1FundingTransaction = {
87
99
  kind: 'evm';
88
100
  chainId: number;
@@ -93,7 +105,8 @@ export type V1FundingTransaction = {
93
105
  } | {
94
106
  kind: 'svm';
95
107
  chainId: number;
96
- serializedTransaction: string;
108
+ feePayer: string;
109
+ instructions: V1SvmInstruction[];
97
110
  [k: string]: unknown;
98
111
  };
99
112
  export type V1IntentTokenAmount = {
@@ -258,6 +271,15 @@ export type V1DepositAddress = {
258
271
  createdAt: number;
259
272
  [extension: string]: unknown;
260
273
  };
274
+ export type V1DepositAddressChainStatus = {
275
+ chainId: number;
276
+ source: boolean;
277
+ registration: 'registered' | 'unregistered';
278
+ [extension: string]: unknown;
279
+ };
280
+ export type V1DepositAddressCreateResponse = V1DepositAddress & {
281
+ chains: V1DepositAddressChainStatus[];
282
+ };
261
283
  export type V1ProblemBody = {
262
284
  type: string;
263
285
  title: string;
@@ -273,5 +295,10 @@ export type V1ProblemBody = {
273
295
  message: string;
274
296
  [extension: string]: unknown;
275
297
  }[];
298
+ errors?: {
299
+ field: string;
300
+ detail: string;
301
+ [extension: string]: unknown;
302
+ }[];
276
303
  [extension: string]: unknown;
277
304
  };
@@ -84,6 +84,16 @@
84
84
  "eco-quotes:1030"
85
85
  ]
86
86
  },
87
+ {
88
+ "code": "endpoint-not-found",
89
+ "status": 404,
90
+ "legacyCodes": []
91
+ },
92
+ {
93
+ "code": "method-not-allowed",
94
+ "status": 405,
95
+ "legacyCodes": []
96
+ },
87
97
  {
88
98
  "code": "signature-already-bound",
89
99
  "status": 409,
@@ -101,6 +111,16 @@
101
111
  "eco-quotes:1027"
102
112
  ]
103
113
  },
114
+ {
115
+ "code": "request-too-large",
116
+ "status": 413,
117
+ "legacyCodes": []
118
+ },
119
+ {
120
+ "code": "unsupported-media-type",
121
+ "status": 415,
122
+ "legacyCodes": []
123
+ },
104
124
  {
105
125
  "code": "no-route-found",
106
126
  "status": 422,
package/openapi/v1.json CHANGED
@@ -91,7 +91,8 @@
91
91
  "required": [
92
92
  "chainId",
93
93
  "token"
94
- ]
94
+ ],
95
+ "additionalProperties": false
95
96
  },
96
97
  "destination": {
97
98
  "type": "object",
@@ -226,14 +227,16 @@
226
227
  "target",
227
228
  "data",
228
229
  "value"
229
- ]
230
+ ],
231
+ "additionalProperties": false
230
232
  }
231
233
  }
232
234
  },
233
235
  "required": [
234
236
  "chainId",
235
237
  "token"
236
- ]
238
+ ],
239
+ "additionalProperties": false
237
240
  },
238
241
  "funder": {
239
242
  "anyOf": [
@@ -316,7 +319,8 @@
316
319
  "allQuotes": {
317
320
  "type": "boolean"
318
321
  }
319
- }
322
+ },
323
+ "additionalProperties": false
320
324
  }
321
325
  },
322
326
  "required": [
@@ -324,7 +328,8 @@
324
328
  "source",
325
329
  "destination",
326
330
  "funder"
327
- ]
331
+ ],
332
+ "additionalProperties": false
328
333
  }
329
334
  }
330
335
  }
@@ -998,15 +1003,64 @@
998
1003
  "exclusiveMinimum": 0,
999
1004
  "maximum": 9007199254740991
1000
1005
  },
1001
- "serializedTransaction": {
1006
+ "feePayer": {
1002
1007
  "type": "string",
1003
- "minLength": 1
1008
+ "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$"
1009
+ },
1010
+ "instructions": {
1011
+ "minItems": 1,
1012
+ "type": "array",
1013
+ "items": {
1014
+ "type": "object",
1015
+ "properties": {
1016
+ "programId": {
1017
+ "type": "string",
1018
+ "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$"
1019
+ },
1020
+ "accounts": {
1021
+ "type": "array",
1022
+ "items": {
1023
+ "type": "object",
1024
+ "properties": {
1025
+ "pubkey": {
1026
+ "type": "string",
1027
+ "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$"
1028
+ },
1029
+ "isSigner": {
1030
+ "type": "boolean"
1031
+ },
1032
+ "isWritable": {
1033
+ "type": "boolean"
1034
+ }
1035
+ },
1036
+ "required": [
1037
+ "pubkey",
1038
+ "isSigner",
1039
+ "isWritable"
1040
+ ],
1041
+ "additionalProperties": {}
1042
+ }
1043
+ },
1044
+ "data": {
1045
+ "type": "string",
1046
+ "minLength": 1,
1047
+ "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$"
1048
+ }
1049
+ },
1050
+ "required": [
1051
+ "programId",
1052
+ "accounts",
1053
+ "data"
1054
+ ],
1055
+ "additionalProperties": {}
1056
+ }
1004
1057
  }
1005
1058
  },
1006
1059
  "required": [
1007
1060
  "kind",
1008
1061
  "chainId",
1009
- "serializedTransaction"
1062
+ "feePayer",
1063
+ "instructions"
1010
1064
  ],
1011
1065
  "additionalProperties": {}
1012
1066
  }
@@ -2009,15 +2063,64 @@
2009
2063
  "exclusiveMinimum": 0,
2010
2064
  "maximum": 9007199254740991
2011
2065
  },
2012
- "serializedTransaction": {
2066
+ "feePayer": {
2013
2067
  "type": "string",
2014
- "minLength": 1
2068
+ "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$"
2069
+ },
2070
+ "instructions": {
2071
+ "minItems": 1,
2072
+ "type": "array",
2073
+ "items": {
2074
+ "type": "object",
2075
+ "properties": {
2076
+ "programId": {
2077
+ "type": "string",
2078
+ "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$"
2079
+ },
2080
+ "accounts": {
2081
+ "type": "array",
2082
+ "items": {
2083
+ "type": "object",
2084
+ "properties": {
2085
+ "pubkey": {
2086
+ "type": "string",
2087
+ "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$"
2088
+ },
2089
+ "isSigner": {
2090
+ "type": "boolean"
2091
+ },
2092
+ "isWritable": {
2093
+ "type": "boolean"
2094
+ }
2095
+ },
2096
+ "required": [
2097
+ "pubkey",
2098
+ "isSigner",
2099
+ "isWritable"
2100
+ ],
2101
+ "additionalProperties": {}
2102
+ }
2103
+ },
2104
+ "data": {
2105
+ "type": "string",
2106
+ "minLength": 1,
2107
+ "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$"
2108
+ }
2109
+ },
2110
+ "required": [
2111
+ "programId",
2112
+ "accounts",
2113
+ "data"
2114
+ ],
2115
+ "additionalProperties": {}
2116
+ }
2015
2117
  }
2016
2118
  },
2017
2119
  "required": [
2018
2120
  "kind",
2019
2121
  "chainId",
2020
- "serializedTransaction"
2122
+ "feePayer",
2123
+ "instructions"
2021
2124
  ],
2022
2125
  "additionalProperties": {}
2023
2126
  }
@@ -4079,6 +4182,35 @@
4079
4182
  ],
4080
4183
  "additionalProperties": {}
4081
4184
  }
4185
+ },
4186
+ "limits": {
4187
+ "type": "object",
4188
+ "properties": {
4189
+ "paging": {
4190
+ "type": "object",
4191
+ "properties": {
4192
+ "maxLimit": {
4193
+ "type": "integer",
4194
+ "minimum": 1,
4195
+ "maximum": 50
4196
+ },
4197
+ "defaultLimit": {
4198
+ "type": "integer",
4199
+ "minimum": 1,
4200
+ "maximum": 50
4201
+ }
4202
+ },
4203
+ "required": [
4204
+ "maxLimit",
4205
+ "defaultLimit"
4206
+ ],
4207
+ "additionalProperties": {}
4208
+ }
4209
+ },
4210
+ "required": [
4211
+ "paging"
4212
+ ],
4213
+ "additionalProperties": {}
4082
4214
  }
4083
4215
  },
4084
4216
  "required": [
@@ -4594,6 +4726,36 @@
4594
4726
  "type": "integer",
4595
4727
  "minimum": 0,
4596
4728
  "maximum": 4102444800
4729
+ },
4730
+ "chains": {
4731
+ "minItems": 1,
4732
+ "type": "array",
4733
+ "items": {
4734
+ "type": "object",
4735
+ "properties": {
4736
+ "chainId": {
4737
+ "type": "integer",
4738
+ "exclusiveMinimum": 0,
4739
+ "maximum": 9007199254740991
4740
+ },
4741
+ "source": {
4742
+ "type": "boolean"
4743
+ },
4744
+ "registration": {
4745
+ "type": "string",
4746
+ "enum": [
4747
+ "registered",
4748
+ "unregistered"
4749
+ ]
4750
+ }
4751
+ },
4752
+ "required": [
4753
+ "chainId",
4754
+ "source",
4755
+ "registration"
4756
+ ],
4757
+ "additionalProperties": {}
4758
+ }
4597
4759
  }
4598
4760
  },
4599
4761
  "required": [
@@ -4604,7 +4766,8 @@
4604
4766
  "kind",
4605
4767
  "destinationAddress",
4606
4768
  "expiresAt",
4607
- "createdAt"
4769
+ "createdAt",
4770
+ "chains"
4608
4771
  ],
4609
4772
  "additionalProperties": {}
4610
4773
  }
@@ -4922,6 +5085,27 @@
4922
5085
  ],
4923
5086
  "additionalProperties": {}
4924
5087
  }
5088
+ },
5089
+ "errors": {
5090
+ "type": "array",
5091
+ "items": {
5092
+ "type": "object",
5093
+ "properties": {
5094
+ "field": {
5095
+ "type": "string",
5096
+ "minLength": 1
5097
+ },
5098
+ "detail": {
5099
+ "type": "string",
5100
+ "minLength": 1
5101
+ }
5102
+ },
5103
+ "required": [
5104
+ "field",
5105
+ "detail"
5106
+ ],
5107
+ "additionalProperties": {}
5108
+ }
4925
5109
  }
4926
5110
  },
4927
5111
  "required": [
@@ -5056,6 +5240,22 @@
5056
5240
  "eco-quotes:1030"
5057
5241
  ]
5058
5242
  },
5243
+ {
5244
+ "code": "endpoint-not-found",
5245
+ "status": 404,
5246
+ "title": "No /v1 endpoint exists at this path — check the path and the version segment",
5247
+ "type": "https://api.eco.com/v1/errors/endpoint-not-found",
5248
+ "audience": "all",
5249
+ "legacyCodes": []
5250
+ },
5251
+ {
5252
+ "code": "method-not-allowed",
5253
+ "status": 405,
5254
+ "title": "The HTTP method is not allowed on this path — check the method for this endpoint",
5255
+ "type": "https://api.eco.com/v1/errors/method-not-allowed",
5256
+ "audience": "all",
5257
+ "legacyCodes": []
5258
+ },
5059
5259
  {
5060
5260
  "code": "signature-already-bound",
5061
5261
  "status": 409,
@@ -5082,6 +5282,22 @@
5082
5282
  "eco-quotes:1027"
5083
5283
  ]
5084
5284
  },
5285
+ {
5286
+ "code": "request-too-large",
5287
+ "status": 413,
5288
+ "title": "The request exceeds the maximum accepted size — reduce the body or the number of parameters",
5289
+ "type": "https://api.eco.com/v1/errors/request-too-large",
5290
+ "audience": "all",
5291
+ "legacyCodes": []
5292
+ },
5293
+ {
5294
+ "code": "unsupported-media-type",
5295
+ "status": 415,
5296
+ "title": "The request media type, charset, or content encoding is not supported — send application/json as unencoded utf-8",
5297
+ "type": "https://api.eco.com/v1/errors/unsupported-media-type",
5298
+ "audience": "all",
5299
+ "legacyCodes": []
5300
+ },
5085
5301
  {
5086
5302
  "code": "no-route-found",
5087
5303
  "status": 422,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eco-foundation/api-schemas",
3
- "version": "0.2.0",
3
+ "version": "0.4.0",
4
4
  "description": "Zod-first schemas, error catalog, golden fixtures, and generated OpenAPI 3.1 for the Eco /v1 API",
5
5
  "license": "MIT",
6
6
  "main": "./dist/index.js",
@@ -23,9 +23,11 @@
23
23
  "default": "./dist/testing/index.js"
24
24
  },
25
25
  "./openapi/v1.json": "./openapi/v1.json",
26
- "./fixtures/*": "./fixtures/*"
26
+ "./fixtures/*": "./fixtures/*",
27
+ "./package.json": "./package.json"
27
28
  },
28
29
  "files": [
30
+ "package.json",
29
31
  "dist",
30
32
  "v1",
31
33
  "openapi",
@@ -45,6 +47,11 @@
45
47
  "peerDependencies": {
46
48
  "zod": "^4.3.0"
47
49
  },
50
+ "peerDependenciesMeta": {
51
+ "zod": {
52
+ "optional": true
53
+ }
54
+ },
48
55
  "devDependencies": {
49
56
  "@types/jest": "^29.5.12",
50
57
  "@typescript-eslint/eslint-plugin": "^7.9.0",