@stridge/openapi 0.3.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.
package/dist/types.d.ts CHANGED
@@ -372,6 +372,46 @@ export interface paths {
372
372
  patch?: never;
373
373
  trace?: never;
374
374
  };
375
+ "/routing-policies": {
376
+ parameters: {
377
+ query?: never;
378
+ header?: never;
379
+ path?: never;
380
+ cookie?: never;
381
+ };
382
+ /**
383
+ * List routing policies
384
+ * @description List the routing policies configured for your tenant, including the default policy. Read-only — create and edit policies from the dashboard.
385
+ */
386
+ get: operations["list-routing-policies"];
387
+ put?: never;
388
+ post?: never;
389
+ delete?: never;
390
+ options?: never;
391
+ head?: never;
392
+ patch?: never;
393
+ trace?: never;
394
+ };
395
+ "/routing-policies/{id}": {
396
+ parameters: {
397
+ query?: never;
398
+ header?: never;
399
+ path?: never;
400
+ cookie?: never;
401
+ };
402
+ /**
403
+ * Get a routing policy
404
+ * @description Fetch a single routing policy by id.
405
+ */
406
+ get: operations["get-routing-policy"];
407
+ put?: never;
408
+ post?: never;
409
+ delete?: never;
410
+ options?: never;
411
+ head?: never;
412
+ patch?: never;
413
+ trace?: never;
414
+ };
375
415
  }
376
416
  export type webhooks = Record<string, never>;
377
417
  export interface components {
@@ -523,6 +563,11 @@ export interface components {
523
563
  asset_symbol?: string;
524
564
  };
525
565
  }[];
566
+ /**
567
+ * @description Routing policy to attach to this UDA. Omit or send an empty string to attach the tenant's default policy. Per-UDA inline `routing_rules` still take precedence over the policy.
568
+ * @example rpol_2f8c1a9d4e5f6071
569
+ */
570
+ routing_policy_id?: string;
526
571
  };
527
572
  DepositAsset: {
528
573
  /** @example USDC */
@@ -711,6 +756,121 @@ export interface components {
711
756
  asset_decimals?: number;
712
757
  };
713
758
  }[];
759
+ /**
760
+ * @description The routing policy attached to this UDA, when set. Omitted for legacy UDAs that inherit the tenant default policy.
761
+ * @example rpol_2f8c1a9d4e5f6071
762
+ */
763
+ routing_policy_id?: string;
764
+ };
765
+ /** @description A tenant-scoped, ordered routing-policy. Rules are evaluated first-match-wins; an empty rule set falls through to the UDA's default destination. */
766
+ RoutingPolicy: {
767
+ /** @example rpol_2f8c1a9d4e5f6071 */
768
+ id?: string;
769
+ /** @example vip_tier */
770
+ name?: string;
771
+ /**
772
+ * @description Whether this is the tenant's default policy (one per tenant).
773
+ * @example false
774
+ */
775
+ is_default?: boolean;
776
+ /** @description Ordered, first-match-wins routing rules (dual form). */
777
+ rules?: {
778
+ match?: {
779
+ /** @example 60 */
780
+ source_network_id?: string;
781
+ /** @example USDT */
782
+ source_asset_symbol?: string;
783
+ /** @example 0xdAC17F958D2ee523a2206206994597C13D831ec7 */
784
+ source_token_address?: string;
785
+ };
786
+ destination?: {
787
+ /** @example 0x3a1f8b2c9d4e5f60718293a4b5c6d7e8f9012345 */
788
+ address?: string;
789
+ /** @example 60 */
790
+ network_id?: string;
791
+ /** @example 1 */
792
+ eip155_id?: string;
793
+ /** @example Ethereum */
794
+ network_name?: string;
795
+ /** @example USDC */
796
+ asset_symbol?: string;
797
+ /** @example 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 */
798
+ asset_address?: string;
799
+ /** @example 6 */
800
+ asset_decimals?: number;
801
+ };
802
+ }[];
803
+ /**
804
+ * Format: date-time
805
+ * @example 2026-05-20T14:03:12Z
806
+ */
807
+ created_at?: string;
808
+ /**
809
+ * Format: date-time
810
+ * @example 2026-05-20T14:03:12Z
811
+ */
812
+ updated_at?: string;
813
+ };
814
+ RoutingPolicyList: {
815
+ data?: {
816
+ /** @example rpol_2f8c1a9d4e5f6071 */
817
+ id?: string;
818
+ /** @example vip_tier */
819
+ name?: string;
820
+ /**
821
+ * @description Whether this is the tenant's default policy (one per tenant).
822
+ * @example false
823
+ */
824
+ is_default?: boolean;
825
+ /** @description Ordered, first-match-wins routing rules (dual form). */
826
+ rules?: {
827
+ match?: {
828
+ /** @example 60 */
829
+ source_network_id?: string;
830
+ /** @example USDT */
831
+ source_asset_symbol?: string;
832
+ /** @example 0xdAC17F958D2ee523a2206206994597C13D831ec7 */
833
+ source_token_address?: string;
834
+ };
835
+ destination?: {
836
+ /** @example 0x3a1f8b2c9d4e5f60718293a4b5c6d7e8f9012345 */
837
+ address?: string;
838
+ /** @example 60 */
839
+ network_id?: string;
840
+ /** @example 1 */
841
+ eip155_id?: string;
842
+ /** @example Ethereum */
843
+ network_name?: string;
844
+ /** @example USDC */
845
+ asset_symbol?: string;
846
+ /** @example 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 */
847
+ asset_address?: string;
848
+ /** @example 6 */
849
+ asset_decimals?: number;
850
+ };
851
+ }[];
852
+ /**
853
+ * Format: date-time
854
+ * @example 2026-05-20T14:03:12Z
855
+ */
856
+ created_at?: string;
857
+ /**
858
+ * Format: date-time
859
+ * @example 2026-05-20T14:03:12Z
860
+ */
861
+ updated_at?: string;
862
+ }[];
863
+ pagination?: {
864
+ /**
865
+ * @description Number of items in this page.
866
+ * @example 20
867
+ */
868
+ count?: number;
869
+ /** @example 50 */
870
+ limit?: number;
871
+ /** @example 0 */
872
+ offset?: number;
873
+ };
714
874
  };
715
875
  UDAAddressList: {
716
876
  data?: {
@@ -795,6 +955,11 @@ export interface components {
795
955
  asset_decimals?: number;
796
956
  };
797
957
  }[];
958
+ /**
959
+ * @description The routing policy attached to this UDA, when set. Omitted for legacy UDAs that inherit the tenant default policy.
960
+ * @example rpol_2f8c1a9d4e5f6071
961
+ */
962
+ routing_policy_id?: string;
798
963
  }[];
799
964
  pagination?: {
800
965
  /**
@@ -2316,6 +2481,11 @@ export interface operations {
2316
2481
  asset_decimals?: number;
2317
2482
  };
2318
2483
  }[];
2484
+ /**
2485
+ * @description The routing policy attached to this UDA, when set. Omitted for legacy UDAs that inherit the tenant default policy.
2486
+ * @example rpol_2f8c1a9d4e5f6071
2487
+ */
2488
+ routing_policy_id?: string;
2319
2489
  }[];
2320
2490
  pagination?: {
2321
2491
  /**
@@ -2480,6 +2650,11 @@ export interface operations {
2480
2650
  asset_symbol?: string;
2481
2651
  };
2482
2652
  }[];
2653
+ /**
2654
+ * @description Routing policy to attach to this UDA. Omit or send an empty string to attach the tenant's default policy. Per-UDA inline `routing_rules` still take precedence over the policy.
2655
+ * @example rpol_2f8c1a9d4e5f6071
2656
+ */
2657
+ routing_policy_id?: string;
2483
2658
  };
2484
2659
  };
2485
2660
  };
@@ -2572,6 +2747,11 @@ export interface operations {
2572
2747
  asset_decimals?: number;
2573
2748
  };
2574
2749
  }[];
2750
+ /**
2751
+ * @description The routing policy attached to this UDA, when set. Omitted for legacy UDAs that inherit the tenant default policy.
2752
+ * @example rpol_2f8c1a9d4e5f6071
2753
+ */
2754
+ routing_policy_id?: string;
2575
2755
  };
2576
2756
  };
2577
2757
  };
@@ -2663,6 +2843,11 @@ export interface operations {
2663
2843
  asset_decimals?: number;
2664
2844
  };
2665
2845
  }[];
2846
+ /**
2847
+ * @description The routing policy attached to this UDA, when set. Omitted for legacy UDAs that inherit the tenant default policy.
2848
+ * @example rpol_2f8c1a9d4e5f6071
2849
+ */
2850
+ routing_policy_id?: string;
2666
2851
  };
2667
2852
  };
2668
2853
  };
@@ -5804,4 +5989,333 @@ export interface operations {
5804
5989
  };
5805
5990
  };
5806
5991
  };
5992
+ "list-routing-policies": {
5993
+ parameters: {
5994
+ query?: {
5995
+ /** @description Page size (default 50, max 200). */
5996
+ limit?: number;
5997
+ /** @description Number of items to skip (default 0). */
5998
+ offset?: number;
5999
+ };
6000
+ header?: never;
6001
+ path?: never;
6002
+ cookie?: never;
6003
+ };
6004
+ requestBody?: never;
6005
+ responses: {
6006
+ /** @description A page of routing policies. */
6007
+ 200: {
6008
+ headers: {
6009
+ [name: string]: unknown;
6010
+ };
6011
+ content: {
6012
+ "application/json": {
6013
+ data?: {
6014
+ /** @example rpol_2f8c1a9d4e5f6071 */
6015
+ id?: string;
6016
+ /** @example vip_tier */
6017
+ name?: string;
6018
+ /**
6019
+ * @description Whether this is the tenant's default policy (one per tenant).
6020
+ * @example false
6021
+ */
6022
+ is_default?: boolean;
6023
+ /** @description Ordered, first-match-wins routing rules (dual form). */
6024
+ rules?: {
6025
+ match?: {
6026
+ /** @example 60 */
6027
+ source_network_id?: string;
6028
+ /** @example USDT */
6029
+ source_asset_symbol?: string;
6030
+ /** @example 0xdAC17F958D2ee523a2206206994597C13D831ec7 */
6031
+ source_token_address?: string;
6032
+ };
6033
+ destination?: {
6034
+ /** @example 0x3a1f8b2c9d4e5f60718293a4b5c6d7e8f9012345 */
6035
+ address?: string;
6036
+ /** @example 60 */
6037
+ network_id?: string;
6038
+ /** @example 1 */
6039
+ eip155_id?: string;
6040
+ /** @example Ethereum */
6041
+ network_name?: string;
6042
+ /** @example USDC */
6043
+ asset_symbol?: string;
6044
+ /** @example 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 */
6045
+ asset_address?: string;
6046
+ /** @example 6 */
6047
+ asset_decimals?: number;
6048
+ };
6049
+ }[];
6050
+ /**
6051
+ * Format: date-time
6052
+ * @example 2026-05-20T14:03:12Z
6053
+ */
6054
+ created_at?: string;
6055
+ /**
6056
+ * Format: date-time
6057
+ * @example 2026-05-20T14:03:12Z
6058
+ */
6059
+ updated_at?: string;
6060
+ }[];
6061
+ pagination?: {
6062
+ /**
6063
+ * @description Number of items in this page.
6064
+ * @example 20
6065
+ */
6066
+ count?: number;
6067
+ /** @example 50 */
6068
+ limit?: number;
6069
+ /** @example 0 */
6070
+ offset?: number;
6071
+ };
6072
+ };
6073
+ };
6074
+ };
6075
+ /** @description The request was malformed or failed validation. */
6076
+ 400: {
6077
+ headers: {
6078
+ [name: string]: unknown;
6079
+ };
6080
+ content: {
6081
+ /**
6082
+ * @example {
6083
+ * "success": false,
6084
+ * "code": 400,
6085
+ * "error": "invalid request"
6086
+ * }
6087
+ */
6088
+ "application/json": {
6089
+ /** @example false */
6090
+ success: boolean;
6091
+ /**
6092
+ * @description HTTP status code echoed in the body.
6093
+ * @example 400
6094
+ */
6095
+ code?: number;
6096
+ /**
6097
+ * @description Human-readable error message.
6098
+ * @example invalid request
6099
+ */
6100
+ error: string;
6101
+ };
6102
+ };
6103
+ };
6104
+ /** @description The `X-API-Key` header is missing or invalid. */
6105
+ 401: {
6106
+ headers: {
6107
+ [name: string]: unknown;
6108
+ };
6109
+ content: {
6110
+ /**
6111
+ * @example {
6112
+ * "success": false,
6113
+ * "code": 401,
6114
+ * "error": "unauthenticated"
6115
+ * }
6116
+ */
6117
+ "application/json": {
6118
+ /** @example false */
6119
+ success: boolean;
6120
+ /**
6121
+ * @description HTTP status code echoed in the body.
6122
+ * @example 400
6123
+ */
6124
+ code?: number;
6125
+ /**
6126
+ * @description Human-readable error message.
6127
+ * @example invalid request
6128
+ */
6129
+ error: string;
6130
+ };
6131
+ };
6132
+ };
6133
+ /** @description An unexpected error occurred on the server. */
6134
+ 500: {
6135
+ headers: {
6136
+ [name: string]: unknown;
6137
+ };
6138
+ content: {
6139
+ /**
6140
+ * @example {
6141
+ * "success": false,
6142
+ * "code": 500,
6143
+ * "error": "internal server error"
6144
+ * }
6145
+ */
6146
+ "application/json": {
6147
+ /** @example false */
6148
+ success: boolean;
6149
+ /**
6150
+ * @description HTTP status code echoed in the body.
6151
+ * @example 400
6152
+ */
6153
+ code?: number;
6154
+ /**
6155
+ * @description Human-readable error message.
6156
+ * @example invalid request
6157
+ */
6158
+ error: string;
6159
+ };
6160
+ };
6161
+ };
6162
+ };
6163
+ };
6164
+ "get-routing-policy": {
6165
+ parameters: {
6166
+ query?: never;
6167
+ header?: never;
6168
+ path: {
6169
+ /** @description Routing policy id. */
6170
+ id: string;
6171
+ };
6172
+ cookie?: never;
6173
+ };
6174
+ requestBody?: never;
6175
+ responses: {
6176
+ /** @description The routing policy. */
6177
+ 200: {
6178
+ headers: {
6179
+ [name: string]: unknown;
6180
+ };
6181
+ content: {
6182
+ "application/json": {
6183
+ /** @example rpol_2f8c1a9d4e5f6071 */
6184
+ id?: string;
6185
+ /** @example vip_tier */
6186
+ name?: string;
6187
+ /**
6188
+ * @description Whether this is the tenant's default policy (one per tenant).
6189
+ * @example false
6190
+ */
6191
+ is_default?: boolean;
6192
+ /** @description Ordered, first-match-wins routing rules (dual form). */
6193
+ rules?: {
6194
+ match?: {
6195
+ /** @example 60 */
6196
+ source_network_id?: string;
6197
+ /** @example USDT */
6198
+ source_asset_symbol?: string;
6199
+ /** @example 0xdAC17F958D2ee523a2206206994597C13D831ec7 */
6200
+ source_token_address?: string;
6201
+ };
6202
+ destination?: {
6203
+ /** @example 0x3a1f8b2c9d4e5f60718293a4b5c6d7e8f9012345 */
6204
+ address?: string;
6205
+ /** @example 60 */
6206
+ network_id?: string;
6207
+ /** @example 1 */
6208
+ eip155_id?: string;
6209
+ /** @example Ethereum */
6210
+ network_name?: string;
6211
+ /** @example USDC */
6212
+ asset_symbol?: string;
6213
+ /** @example 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 */
6214
+ asset_address?: string;
6215
+ /** @example 6 */
6216
+ asset_decimals?: number;
6217
+ };
6218
+ }[];
6219
+ /**
6220
+ * Format: date-time
6221
+ * @example 2026-05-20T14:03:12Z
6222
+ */
6223
+ created_at?: string;
6224
+ /**
6225
+ * Format: date-time
6226
+ * @example 2026-05-20T14:03:12Z
6227
+ */
6228
+ updated_at?: string;
6229
+ };
6230
+ };
6231
+ };
6232
+ /** @description The `X-API-Key` header is missing or invalid. */
6233
+ 401: {
6234
+ headers: {
6235
+ [name: string]: unknown;
6236
+ };
6237
+ content: {
6238
+ /**
6239
+ * @example {
6240
+ * "success": false,
6241
+ * "code": 401,
6242
+ * "error": "unauthenticated"
6243
+ * }
6244
+ */
6245
+ "application/json": {
6246
+ /** @example false */
6247
+ success: boolean;
6248
+ /**
6249
+ * @description HTTP status code echoed in the body.
6250
+ * @example 400
6251
+ */
6252
+ code?: number;
6253
+ /**
6254
+ * @description Human-readable error message.
6255
+ * @example invalid request
6256
+ */
6257
+ error: string;
6258
+ };
6259
+ };
6260
+ };
6261
+ /** @description The requested resource does not exist. */
6262
+ 404: {
6263
+ headers: {
6264
+ [name: string]: unknown;
6265
+ };
6266
+ content: {
6267
+ /**
6268
+ * @example {
6269
+ * "success": false,
6270
+ * "code": 404,
6271
+ * "error": "not found"
6272
+ * }
6273
+ */
6274
+ "application/json": {
6275
+ /** @example false */
6276
+ success: boolean;
6277
+ /**
6278
+ * @description HTTP status code echoed in the body.
6279
+ * @example 400
6280
+ */
6281
+ code?: number;
6282
+ /**
6283
+ * @description Human-readable error message.
6284
+ * @example invalid request
6285
+ */
6286
+ error: string;
6287
+ };
6288
+ };
6289
+ };
6290
+ /** @description An unexpected error occurred on the server. */
6291
+ 500: {
6292
+ headers: {
6293
+ [name: string]: unknown;
6294
+ };
6295
+ content: {
6296
+ /**
6297
+ * @example {
6298
+ * "success": false,
6299
+ * "code": 500,
6300
+ * "error": "internal server error"
6301
+ * }
6302
+ */
6303
+ "application/json": {
6304
+ /** @example false */
6305
+ success: boolean;
6306
+ /**
6307
+ * @description HTTP status code echoed in the body.
6308
+ * @example 400
6309
+ */
6310
+ code?: number;
6311
+ /**
6312
+ * @description Human-readable error message.
6313
+ * @example invalid request
6314
+ */
6315
+ error: string;
6316
+ };
6317
+ };
6318
+ };
6319
+ };
6320
+ };
5807
6321
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stridge/openapi",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "description": "Public OpenAPI 3.1 specification for the Stridge API (UDA), with generated TypeScript types.",
5
5
  "type": "module",
6
6
  "license": "UNLICENSED",