@medusajs/http-types-generator 2.13.6-preview-20260402101111
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +135 -0
- package/dist/__tests__/compatibility-checker.spec.d.ts +2 -0
- package/dist/__tests__/compatibility-checker.spec.d.ts.map +1 -0
- package/dist/__tests__/compatibility-checker.spec.js +231 -0
- package/dist/__tests__/compatibility-checker.spec.js.map +1 -0
- package/dist/__tests__/config.spec.d.ts +2 -0
- package/dist/__tests__/config.spec.d.ts.map +1 -0
- package/dist/__tests__/config.spec.js +78 -0
- package/dist/__tests__/config.spec.js.map +1 -0
- package/dist/__tests__/import-tracker.spec.d.ts +2 -0
- package/dist/__tests__/import-tracker.spec.d.ts.map +1 -0
- package/dist/__tests__/import-tracker.spec.js +25 -0
- package/dist/__tests__/import-tracker.spec.js.map +1 -0
- package/dist/__tests__/name-classifier.spec.d.ts +2 -0
- package/dist/__tests__/name-classifier.spec.d.ts.map +1 -0
- package/dist/__tests__/name-classifier.spec.js +77 -0
- package/dist/__tests__/name-classifier.spec.js.map +1 -0
- package/dist/__tests__/name-registry.spec.d.ts +2 -0
- package/dist/__tests__/name-registry.spec.d.ts.map +1 -0
- package/dist/__tests__/name-registry.spec.js +67 -0
- package/dist/__tests__/name-registry.spec.js.map +1 -0
- package/dist/__tests__/path-mapper.spec.d.ts +2 -0
- package/dist/__tests__/path-mapper.spec.d.ts.map +1 -0
- package/dist/__tests__/path-mapper.spec.js +98 -0
- package/dist/__tests__/path-mapper.spec.js.map +1 -0
- package/dist/__tests__/type-emitter.spec.d.ts +2 -0
- package/dist/__tests__/type-emitter.spec.d.ts.map +1 -0
- package/dist/__tests__/type-emitter.spec.js +173 -0
- package/dist/__tests__/type-emitter.spec.js.map +1 -0
- package/dist/__tests__/type-pipeline.spec.d.ts +2 -0
- package/dist/__tests__/type-pipeline.spec.d.ts.map +1 -0
- package/dist/__tests__/type-pipeline.spec.js +239 -0
- package/dist/__tests__/type-pipeline.spec.js.map +1 -0
- package/dist/__tests__/utils/ts-utils.d.ts +22 -0
- package/dist/__tests__/utils/ts-utils.d.ts.map +1 -0
- package/dist/__tests__/utils/ts-utils.js +66 -0
- package/dist/__tests__/utils/ts-utils.js.map +1 -0
- package/dist/commands/generate.d.ts +10 -0
- package/dist/commands/generate.d.ts.map +1 -0
- package/dist/commands/generate.js +215 -0
- package/dist/commands/generate.js.map +1 -0
- package/dist/commands/validate.d.ts +14 -0
- package/dist/commands/validate.d.ts.map +1 -0
- package/dist/commands/validate.js +201 -0
- package/dist/commands/validate.js.map +1 -0
- package/dist/config/index.d.ts +52 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +119 -0
- package/dist/config/index.js.map +1 -0
- package/dist/core/compatibility-checker.d.ts +92 -0
- package/dist/core/compatibility-checker.d.ts.map +1 -0
- package/dist/core/compatibility-checker.js +415 -0
- package/dist/core/compatibility-checker.js.map +1 -0
- package/dist/core/import-tracker.d.ts +11 -0
- package/dist/core/import-tracker.d.ts.map +1 -0
- package/dist/core/import-tracker.js +17 -0
- package/dist/core/import-tracker.js.map +1 -0
- package/dist/core/program-factory.d.ts +23 -0
- package/dist/core/program-factory.d.ts.map +1 -0
- package/dist/core/program-factory.js +80 -0
- package/dist/core/program-factory.js.map +1 -0
- package/dist/core/schema-extractor.d.ts +73 -0
- package/dist/core/schema-extractor.d.ts.map +1 -0
- package/dist/core/schema-extractor.js +205 -0
- package/dist/core/schema-extractor.js.map +1 -0
- package/dist/core/type-emitter.d.ts +73 -0
- package/dist/core/type-emitter.d.ts.map +1 -0
- package/dist/core/type-emitter.js +246 -0
- package/dist/core/type-emitter.js.map +1 -0
- package/dist/core/type-resolver.d.ts +64 -0
- package/dist/core/type-resolver.d.ts.map +1 -0
- package/dist/core/type-resolver.js +163 -0
- package/dist/core/type-resolver.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/dist/mapping/name-classifier.d.ts +34 -0
- package/dist/mapping/name-classifier.d.ts.map +1 -0
- package/dist/mapping/name-classifier.js +72 -0
- package/dist/mapping/name-classifier.js.map +1 -0
- package/dist/mapping/name-registry.d.ts +54 -0
- package/dist/mapping/name-registry.d.ts.map +1 -0
- package/dist/mapping/name-registry.js +251 -0
- package/dist/mapping/name-registry.js.map +1 -0
- package/dist/mapping/path-mapper.d.ts +62 -0
- package/dist/mapping/path-mapper.d.ts.map +1 -0
- package/dist/mapping/path-mapper.js +116 -0
- package/dist/mapping/path-mapper.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/utils/file-merger.d.ts +47 -0
- package/dist/utils/file-merger.d.ts.map +1 -0
- package/dist/utils/file-merger.js +164 -0
- package/dist/utils/file-merger.js.map +1 -0
- package/dist/utils/formatter.d.ts +12 -0
- package/dist/utils/formatter.d.ts.map +1 -0
- package/dist/utils/formatter.js +31 -0
- package/dist/utils/formatter.js.map +1 -0
- package/dist/utils/fs-helpers.d.ts +21 -0
- package/dist/utils/fs-helpers.d.ts.map +1 -0
- package/dist/utils/fs-helpers.js +42 -0
- package/dist/utils/fs-helpers.js.map +1 -0
- package/dist/utils/index-manager.d.ts +24 -0
- package/dist/utils/index-manager.d.ts.map +1 -0
- package/dist/utils/index-manager.js +95 -0
- package/dist/utils/index-manager.js.map +1 -0
- package/dist/utils/ts-helpers.d.ts +87 -0
- package/dist/utils/ts-helpers.d.ts.map +1 -0
- package/dist/utils/ts-helpers.js +216 -0
- package/dist/utils/ts-helpers.js.map +1 -0
- package/package.json +41 -0
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Static map of Zod validator export names → HTTP type interface names,
|
|
3
|
+
* for cases where the naming convention differs between the two.
|
|
4
|
+
*
|
|
5
|
+
* Most schemas follow the same name (AdminCreateProduct → AdminCreateProduct),
|
|
6
|
+
* but query/filter schemas often differ (AdminGetProductsParams → AdminProductListParams).
|
|
7
|
+
*
|
|
8
|
+
* When adding new validator schemas, prefer adding a `@http-type-name` JSDoc
|
|
9
|
+
* tag in the validator file instead of adding to this registry. This registry
|
|
10
|
+
* is only meant to remain backward-compatible with existing schemas that predate this tool.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* // packages/medusa/src/api/admin/products/validators.ts
|
|
15
|
+
* /** @http-type-name AdminProductListParams *\/
|
|
16
|
+
* export const AdminGetProductsParams = createFindParams(...)
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export declare const VALIDATOR_TO_HTTP_TYPE_NAME: Record<string, string>;
|
|
20
|
+
/**
|
|
21
|
+
* Domain-scoped name overrides: used when the same Zod export name appears
|
|
22
|
+
* in multiple validator files with different schemas. This is only
|
|
23
|
+
* meant to remain backward-compatible with existing schemas that predate this tool.
|
|
24
|
+
*
|
|
25
|
+
* Key format: routeDirName (as it appears in the API path, e.g. "exchanges")
|
|
26
|
+
* Value: map of Zod export name → HTTP type name (or "skip" to skip entirely)
|
|
27
|
+
*/
|
|
28
|
+
export declare const DOMAIN_SCOPED_OVERRIDES: Record<string, Record<string, string>>;
|
|
29
|
+
/**
|
|
30
|
+
* Reverse lookup: HTTP type name → validator export name.
|
|
31
|
+
* Used by the validate command to find the Zod schema for a given HTTP type.
|
|
32
|
+
*/
|
|
33
|
+
export declare const HTTP_TYPE_TO_VALIDATOR_NAME: Record<string, string>;
|
|
34
|
+
/**
|
|
35
|
+
* Resolves HTTP type names for validator export names and vice versa.
|
|
36
|
+
*/
|
|
37
|
+
export declare class NameRegistry {
|
|
38
|
+
/**
|
|
39
|
+
* Resolves the HTTP type name for a given validator export name.
|
|
40
|
+
* Falls back to the export name itself if no override is registered.
|
|
41
|
+
*
|
|
42
|
+
* @param exportName - The Zod validator export name.
|
|
43
|
+
* @param domain - Optional route directory name (e.g. "exchanges", "claims").
|
|
44
|
+
* When provided, domain-scoped overrides take precedence over global mappings.
|
|
45
|
+
* Returns "skip" if the export should be excluded from validation in this domain.
|
|
46
|
+
*/
|
|
47
|
+
static resolveHttpTypeName(exportName: string, domain?: string): string;
|
|
48
|
+
/**
|
|
49
|
+
* Resolves the validator export name for a given HTTP type name.
|
|
50
|
+
* Falls back to the HTTP type name itself if no mapping is registered.
|
|
51
|
+
*/
|
|
52
|
+
static resolveValidatorName(httpTypeName: string): string;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=name-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"name-registry.d.ts","sourceRoot":"","sources":["../../src/mapping/name-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,2BAA2B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA4N9D,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAoB1E,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,2BAA2B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAG5D,CAAA;AAEH;;GAEG;AACH,qBAAa,YAAY;IACvB;;;;;;;;OAQG;IACH,MAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM;IAUvE;;;OAGG;IACH,MAAM,CAAC,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;CAG1D"}
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NameRegistry = exports.HTTP_TYPE_TO_VALIDATOR_NAME = exports.DOMAIN_SCOPED_OVERRIDES = exports.VALIDATOR_TO_HTTP_TYPE_NAME = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Static map of Zod validator export names → HTTP type interface names,
|
|
6
|
+
* for cases where the naming convention differs between the two.
|
|
7
|
+
*
|
|
8
|
+
* Most schemas follow the same name (AdminCreateProduct → AdminCreateProduct),
|
|
9
|
+
* but query/filter schemas often differ (AdminGetProductsParams → AdminProductListParams).
|
|
10
|
+
*
|
|
11
|
+
* When adding new validator schemas, prefer adding a `@http-type-name` JSDoc
|
|
12
|
+
* tag in the validator file instead of adding to this registry. This registry
|
|
13
|
+
* is only meant to remain backward-compatible with existing schemas that predate this tool.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* // packages/medusa/src/api/admin/products/validators.ts
|
|
18
|
+
* /** @http-type-name AdminProductListParams *\/
|
|
19
|
+
* export const AdminGetProductsParams = createFindParams(...)
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
exports.VALIDATOR_TO_HTTP_TYPE_NAME = {
|
|
23
|
+
// ----------- customers -----------
|
|
24
|
+
AdminCustomersParams: "AdminCustomerFilters",
|
|
25
|
+
AdminCustomerAddressesParams: "AdminCustomerAddressFilters",
|
|
26
|
+
// ----------- products -----------
|
|
27
|
+
AdminGetProductsParams: "AdminProductListParams",
|
|
28
|
+
AdminGetProductOptionsParams: "AdminProductOptionParams",
|
|
29
|
+
AdminGetProductVariantsParams: "AdminProductVariantParams",
|
|
30
|
+
// Singular GET params (createSelectParams) for single-item fetches
|
|
31
|
+
AdminGetProductVariantParams: "AdminProductVariantParams",
|
|
32
|
+
AdminGetProductOptionParams: "AdminProductOptionParams",
|
|
33
|
+
// Payload schemas with different HTTP type names
|
|
34
|
+
AdminCreateVariantPrice: "AdminCreateProductVariantPrice",
|
|
35
|
+
AdminBatchImageVariant: "AdminBatchImageVariantRequest",
|
|
36
|
+
AdminBatchVariantImages: "AdminBatchVariantImagesRequest",
|
|
37
|
+
AdminImportProducts: "AdminImportProductsRequest",
|
|
38
|
+
// ----------- orders -----------
|
|
39
|
+
AdminGetOrdersParams: "AdminOrderFilters",
|
|
40
|
+
AdminGetOrdersOrderParams: "AdminGetOrderParams",
|
|
41
|
+
AdminGetOrdersOrderItemsParams: "AdminOrderItemsFilters",
|
|
42
|
+
AdminOrderChangesParams: "AdminOrderChangesFilters",
|
|
43
|
+
// Order action payloads with different HTTP type names
|
|
44
|
+
AdminOrderCreateFulfillment: "AdminCreateOrderFulfillment",
|
|
45
|
+
AdminOrderCreateShipment: "AdminCreateOrderShipment",
|
|
46
|
+
AdminOrderCancelFulfillment: "AdminCancelOrderFulfillment",
|
|
47
|
+
AdminTransferOrder: "AdminRequestOrderTransfer",
|
|
48
|
+
AdminCreateOrderCreditLines: "AdminCreateOrderCreditLine",
|
|
49
|
+
// ----------- returns -----------
|
|
50
|
+
AdminGetReturnParams: "AdminReturnFilters",
|
|
51
|
+
// ----------- return-reasons -----------
|
|
52
|
+
AdminGetReturnReasonsReturnReasonParams: "AdminReturnReasonParams",
|
|
53
|
+
AdminGetReturnReasonsParams: "AdminReturnReasonListParams",
|
|
54
|
+
// ----------- refund-reasons -----------
|
|
55
|
+
AdminCreatePaymentRefundReason: "AdminCreateRefundReason",
|
|
56
|
+
AdminUpdatePaymentRefundReason: "AdminUpdateRefundReason",
|
|
57
|
+
AdminGetRefundReasonsParams: "AdminRefundReasonListParams",
|
|
58
|
+
AdminGetRefundReasonParams: "AdminRefundReasonParams",
|
|
59
|
+
// ----------- carts -----------
|
|
60
|
+
StoreGetCartParams: "StoreCartParams",
|
|
61
|
+
// ----------- regions -----------
|
|
62
|
+
AdminGetRegionsParams: "AdminRegionFilters",
|
|
63
|
+
// ----------- shipping options -----------
|
|
64
|
+
AdminGetShippingOptionsParams: "AdminShippingOptionListParams",
|
|
65
|
+
AdminGetShippingOptionTypesParams: "AdminShippingOptionTypeListParams",
|
|
66
|
+
AdminCreateShippingOptionTypeObject: "AdminCreateShippingOptionType",
|
|
67
|
+
// ----------- shipping-profiles -----------
|
|
68
|
+
AdminGetShippingProfilesParams: "AdminShippingProfileListParams",
|
|
69
|
+
// ----------- collections -----------
|
|
70
|
+
AdminGetCollectionsParams: "AdminCollectionListParams",
|
|
71
|
+
StoreGetCollectionsParams: "StoreCollectionListParams",
|
|
72
|
+
StoreGetCollectionParams: "StoreCollectionParams",
|
|
73
|
+
// ----------- currencies -----------
|
|
74
|
+
AdminGetCurrenciesParams: "AdminCurrencyListParams",
|
|
75
|
+
StoreGetCurrenciesParams: "StoreGetCurrencyListParams",
|
|
76
|
+
// ----------- locales -----------
|
|
77
|
+
AdminGetLocalesParams: "AdminLocaleListParams",
|
|
78
|
+
// ----------- notifications -----------
|
|
79
|
+
AdminGetNotificationsParams: "AdminNotificationListParams",
|
|
80
|
+
// ----------- payments -----------
|
|
81
|
+
AdminGetPaymentsParams: "AdminPaymentFilters",
|
|
82
|
+
// ----------- product-categories -----------
|
|
83
|
+
AdminProductCategoriesParams: "AdminProductCategoryListParams",
|
|
84
|
+
StoreProductCategoriesParams: "StoreProductCategoryListParams",
|
|
85
|
+
// ----------- product-tags -----------
|
|
86
|
+
AdminGetProductTagsParams: "AdminProductTagListParams",
|
|
87
|
+
StoreProductTagsParams: "StoreProductTagListParams",
|
|
88
|
+
// ----------- product-types -----------
|
|
89
|
+
AdminGetProductTypesParams: "AdminProductTypeListParams",
|
|
90
|
+
StoreProductTypesParams: "StoreProductTypeListParams",
|
|
91
|
+
// ----------- product-variants -----------
|
|
92
|
+
StoreGetProductVariantsParams: "StoreProductVariantParams",
|
|
93
|
+
// ----------- price-preferences -----------
|
|
94
|
+
AdminGetPricePreferencesParams: "AdminPricePreferenceListParams",
|
|
95
|
+
// ----------- products -----------
|
|
96
|
+
StoreGetProductsParams: "StoreProductListParams",
|
|
97
|
+
// ----------- regions -----------
|
|
98
|
+
StoreGetRegionsParams: "StoreRegionFilters",
|
|
99
|
+
// ----------- shipping-options -----------
|
|
100
|
+
StoreGetShippingOptions: "StoreGetShippingOptionList",
|
|
101
|
+
// ----------- orders -----------
|
|
102
|
+
StoreGetOrdersParams: "StoreOrderFilters",
|
|
103
|
+
// ----------- customers (store) -----------
|
|
104
|
+
StoreGetCustomerAddressesParams: "StoreCustomerAddressFilters",
|
|
105
|
+
// ----------- price lists -----------
|
|
106
|
+
AdminGetPriceListsParams: "AdminPriceListListParams",
|
|
107
|
+
AdminGetPriceListParams: "AdminPriceListParams",
|
|
108
|
+
AdminGetPriceListPricesParams: "AdminPriceListPriceListParams",
|
|
109
|
+
// ----------- inventory items -----------
|
|
110
|
+
AdminGetInventoryItemsParams: "AdminInventoryItemsParams",
|
|
111
|
+
// ----------- sales-channels -----------
|
|
112
|
+
AdminGetSalesChannelsParams: "AdminSalesChannelListParams",
|
|
113
|
+
// ----------- stock-locations -----------
|
|
114
|
+
AdminGetStockLocationsParams: "AdminStockLocationListParams",
|
|
115
|
+
// ----------- reservations -----------
|
|
116
|
+
AdminGetReservationParams: "AdminReservationParams",
|
|
117
|
+
// ----------- stores -----------
|
|
118
|
+
AdminGetStoreParams: "AdminStoreParams",
|
|
119
|
+
AdminGetStoresParams: "AdminStoreListParams",
|
|
120
|
+
// ----------- tax-rates -----------
|
|
121
|
+
AdminGetTaxRatesParams: "AdminTaxRateListParams",
|
|
122
|
+
// ----------- tax-regions -----------
|
|
123
|
+
AdminGetTaxRegionParams: "AdminTaxRegionParams",
|
|
124
|
+
AdminGetTaxRegionsParams: "AdminTaxRegionListParams",
|
|
125
|
+
// ----------- users -----------
|
|
126
|
+
AdminGetUserParams: "AdminUserParams",
|
|
127
|
+
AdminGetUsersParams: "AdminUserListParams",
|
|
128
|
+
// ----------- file/uploads -----------
|
|
129
|
+
AdminUploadPreSignedUrl: "AdminUploadPreSignedUrlRequest",
|
|
130
|
+
// ----------- translations -----------
|
|
131
|
+
AdminGetTranslationsParams: "AdminTranslationsListParams",
|
|
132
|
+
AdminTranslationStatistics: "AdminTranslationStatisticsParams",
|
|
133
|
+
// ----------- draft-orders -----------
|
|
134
|
+
AdminGetDraftOrdersParams: "AdminDraftOrderListParams",
|
|
135
|
+
AdminGetDraftOrderParams: "AdminDraftOrderParams",
|
|
136
|
+
// ----------- exchanges -----------
|
|
137
|
+
AdminGetExchangeParams: "AdminExchangeListParams",
|
|
138
|
+
// ----------- fulfillment-providers -----------
|
|
139
|
+
AdminFulfillmentProvidersParams: "AdminGetFulfillmentProvidersParams",
|
|
140
|
+
// ----------- fulfillment-sets -----------
|
|
141
|
+
AdminFulfillmentSetParams: "AdminFulfillmentSetListParams",
|
|
142
|
+
// ----------- inventory-levels -----------
|
|
143
|
+
AdminGetInventoryLocationLevelsParams: "AdminInventoryLevelFilters",
|
|
144
|
+
// ----------- locales -----------
|
|
145
|
+
AdminGetLocaleParams: "AdminLocaleParams",
|
|
146
|
+
// ----------- payment-providers (store) -----------
|
|
147
|
+
StoreGetPaymentProvidersParams: "StorePaymentProviderFilters",
|
|
148
|
+
// ----------- currencies (admin) -----------
|
|
149
|
+
AdminGetCurrencyParams: "AdminCurrencyParams",
|
|
150
|
+
// ----------- products (store) -----------
|
|
151
|
+
StoreGetProductParams: "StoreProductParams",
|
|
152
|
+
// ----------- collections (single-item GET params) -----------
|
|
153
|
+
AdminGetCollectionParams: "AdminCollectionParams",
|
|
154
|
+
// ----------- notifications (single-item GET params) -----------
|
|
155
|
+
AdminGetNotificationParams: "AdminNotificationParams",
|
|
156
|
+
// ----------- product-tags (single-item GET params) -----------
|
|
157
|
+
AdminGetProductTagParams: "AdminProductTagParams",
|
|
158
|
+
// ----------- product-types (single-item GET params) -----------
|
|
159
|
+
AdminGetProductTypeParams: "AdminProductTypeParams",
|
|
160
|
+
// ----------- payment payloads with different HTTP type names -----------
|
|
161
|
+
AdminCreatePaymentCapture: "AdminCapturePayment",
|
|
162
|
+
AdminCreatePaymentRefund: "AdminRefundPayment",
|
|
163
|
+
AdminMarkPaymentCollectionPaid: "AdminMarkPaymentCollectionAsPaid",
|
|
164
|
+
// ----------- fulfillment payloads -----------
|
|
165
|
+
AdminCreateShipment: "AdminCreateFulfillmentShipment",
|
|
166
|
+
// ----------- invite payloads -----------
|
|
167
|
+
AdminInviteAccept: "AdminAcceptInvite",
|
|
168
|
+
// ----------- inventory level payloads -----------
|
|
169
|
+
AdminUpdateInventoryLocationLevel: "AdminUpdateInventoryLevel",
|
|
170
|
+
AdminCreateInventoryLocationLevel: "AdminBatchCreateInventoryItemLocationLevels",
|
|
171
|
+
AdminUpdateInventoryLocationLevelBatch: "AdminBatchUpdateInventoryItemLocationLevels",
|
|
172
|
+
AdminBatchInventoryItemLocationsLevel: "AdminBatchInventoryItemLocationLevels",
|
|
173
|
+
AdminBatchInventoryItemLevels: "AdminBatchInventoryItemsLocationLevels",
|
|
174
|
+
// ----------- cart (store) payloads -----------
|
|
175
|
+
StoreAddCartPromotions: "StoreCartAddPromotion",
|
|
176
|
+
StoreRemoveCartPromotions: "StoreCartRemovePromotion",
|
|
177
|
+
// ----------- order (store) payloads -----------
|
|
178
|
+
StoreDeclineOrderTransferRequest: "StoreDeclineOrderTransfer",
|
|
179
|
+
// ----------- payment (store) queries -----------
|
|
180
|
+
StoreGetPaymentCollectionParams: "StorePaymentCollectionFilters",
|
|
181
|
+
// ----------- payment-session (store) payloads -----------
|
|
182
|
+
StoreCreatePaymentSession: "StoreInitializePaymentSession",
|
|
183
|
+
// ----------- shipping-options (store) -----------
|
|
184
|
+
StoreGetShippingOptionsParams: "StoreGetShippingOptionList",
|
|
185
|
+
};
|
|
186
|
+
/**
|
|
187
|
+
* Domain-scoped name overrides: used when the same Zod export name appears
|
|
188
|
+
* in multiple validator files with different schemas. This is only
|
|
189
|
+
* meant to remain backward-compatible with existing schemas that predate this tool.
|
|
190
|
+
*
|
|
191
|
+
* Key format: routeDirName (as it appears in the API path, e.g. "exchanges")
|
|
192
|
+
* Value: map of Zod export name → HTTP type name (or "skip" to skip entirely)
|
|
193
|
+
*/
|
|
194
|
+
exports.DOMAIN_SCOPED_OVERRIDES = {
|
|
195
|
+
// The exchange, claim, and return validator files re-export AdminGetOrdersOrderParams
|
|
196
|
+
// and AdminGetOrdersParams with domain-specific filter fields. These must be mapped
|
|
197
|
+
// to the correct domain HTTP types, not the global order types.
|
|
198
|
+
// Note: domain keys here are the MAPPED names from path-mapper (singular/normalized).
|
|
199
|
+
exchange: {
|
|
200
|
+
AdminGetOrdersOrderParams: "AdminOrderExchangeListParams",
|
|
201
|
+
AdminGetOrdersParams: "AdminExchangeListParams",
|
|
202
|
+
},
|
|
203
|
+
claim: {
|
|
204
|
+
AdminGetOrdersOrderParams: "AdminClaimActionsParams",
|
|
205
|
+
AdminGetOrdersParams: "AdminClaimListParams",
|
|
206
|
+
},
|
|
207
|
+
return: {
|
|
208
|
+
// No matching single-select HTTP type for returns; skip it.
|
|
209
|
+
AdminGetOrdersOrderParams: "skip",
|
|
210
|
+
// Returns list uses AdminReturnFilters (already in global registry, but
|
|
211
|
+
// listing here explicitly to document the domain context).
|
|
212
|
+
AdminGetOrdersParams: "AdminReturnFilters",
|
|
213
|
+
},
|
|
214
|
+
};
|
|
215
|
+
/**
|
|
216
|
+
* Reverse lookup: HTTP type name → validator export name.
|
|
217
|
+
* Used by the validate command to find the Zod schema for a given HTTP type.
|
|
218
|
+
*/
|
|
219
|
+
exports.HTTP_TYPE_TO_VALIDATOR_NAME = Object.fromEntries(Object.entries(exports.VALIDATOR_TO_HTTP_TYPE_NAME).map(([k, v]) => [v, k]));
|
|
220
|
+
/**
|
|
221
|
+
* Resolves HTTP type names for validator export names and vice versa.
|
|
222
|
+
*/
|
|
223
|
+
class NameRegistry {
|
|
224
|
+
/**
|
|
225
|
+
* Resolves the HTTP type name for a given validator export name.
|
|
226
|
+
* Falls back to the export name itself if no override is registered.
|
|
227
|
+
*
|
|
228
|
+
* @param exportName - The Zod validator export name.
|
|
229
|
+
* @param domain - Optional route directory name (e.g. "exchanges", "claims").
|
|
230
|
+
* When provided, domain-scoped overrides take precedence over global mappings.
|
|
231
|
+
* Returns "skip" if the export should be excluded from validation in this domain.
|
|
232
|
+
*/
|
|
233
|
+
static resolveHttpTypeName(exportName, domain) {
|
|
234
|
+
if (domain) {
|
|
235
|
+
const domainOverride = exports.DOMAIN_SCOPED_OVERRIDES[domain]?.[exportName];
|
|
236
|
+
if (domainOverride !== undefined) {
|
|
237
|
+
return domainOverride;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
return exports.VALIDATOR_TO_HTTP_TYPE_NAME[exportName] ?? exportName;
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Resolves the validator export name for a given HTTP type name.
|
|
244
|
+
* Falls back to the HTTP type name itself if no mapping is registered.
|
|
245
|
+
*/
|
|
246
|
+
static resolveValidatorName(httpTypeName) {
|
|
247
|
+
return exports.HTTP_TYPE_TO_VALIDATOR_NAME[httpTypeName] ?? httpTypeName;
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
exports.NameRegistry = NameRegistry;
|
|
251
|
+
//# sourceMappingURL=name-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"name-registry.js","sourceRoot":"","sources":["../../src/mapping/name-registry.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;GAiBG;AACU,QAAA,2BAA2B,GAA2B;IACjE,oCAAoC;IACpC,oBAAoB,EAAE,sBAAsB;IAC5C,4BAA4B,EAAE,6BAA6B;IAE3D,mCAAmC;IACnC,sBAAsB,EAAE,wBAAwB;IAChD,4BAA4B,EAAE,0BAA0B;IACxD,6BAA6B,EAAE,2BAA2B;IAC1D,mEAAmE;IACnE,4BAA4B,EAAE,2BAA2B;IACzD,2BAA2B,EAAE,0BAA0B;IACvD,iDAAiD;IACjD,uBAAuB,EAAE,gCAAgC;IACzD,sBAAsB,EAAE,+BAA+B;IACvD,uBAAuB,EAAE,gCAAgC;IACzD,mBAAmB,EAAE,4BAA4B;IAEjD,iCAAiC;IACjC,oBAAoB,EAAE,mBAAmB;IACzC,yBAAyB,EAAE,qBAAqB;IAChD,8BAA8B,EAAE,wBAAwB;IACxD,uBAAuB,EAAE,0BAA0B;IACnD,uDAAuD;IACvD,2BAA2B,EAAE,6BAA6B;IAC1D,wBAAwB,EAAE,0BAA0B;IACpD,2BAA2B,EAAE,6BAA6B;IAC1D,kBAAkB,EAAE,2BAA2B;IAC/C,2BAA2B,EAAE,4BAA4B;IAEzD,kCAAkC;IAClC,oBAAoB,EAAE,oBAAoB;IAE1C,yCAAyC;IACzC,uCAAuC,EAAE,yBAAyB;IAClE,2BAA2B,EAAE,6BAA6B;IAE1D,yCAAyC;IACzC,8BAA8B,EAAE,yBAAyB;IACzD,8BAA8B,EAAE,yBAAyB;IACzD,2BAA2B,EAAE,6BAA6B;IAC1D,0BAA0B,EAAE,yBAAyB;IAErD,gCAAgC;IAChC,kBAAkB,EAAE,iBAAiB;IAErC,kCAAkC;IAClC,qBAAqB,EAAE,oBAAoB;IAE3C,2CAA2C;IAC3C,6BAA6B,EAAE,+BAA+B;IAC9D,iCAAiC,EAAE,mCAAmC;IACtE,mCAAmC,EAAE,+BAA+B;IAEpE,4CAA4C;IAC5C,8BAA8B,EAAE,gCAAgC;IAEhE,sCAAsC;IACtC,yBAAyB,EAAE,2BAA2B;IACtD,yBAAyB,EAAE,2BAA2B;IACtD,wBAAwB,EAAE,uBAAuB;IAEjD,qCAAqC;IACrC,wBAAwB,EAAE,yBAAyB;IACnD,wBAAwB,EAAE,4BAA4B;IAEtD,kCAAkC;IAClC,qBAAqB,EAAE,uBAAuB;IAE9C,wCAAwC;IACxC,2BAA2B,EAAE,6BAA6B;IAE1D,mCAAmC;IACnC,sBAAsB,EAAE,qBAAqB;IAE7C,6CAA6C;IAC7C,4BAA4B,EAAE,gCAAgC;IAC9D,4BAA4B,EAAE,gCAAgC;IAE9D,uCAAuC;IACvC,yBAAyB,EAAE,2BAA2B;IACtD,sBAAsB,EAAE,2BAA2B;IAEnD,wCAAwC;IACxC,0BAA0B,EAAE,4BAA4B;IACxD,uBAAuB,EAAE,4BAA4B;IAErD,2CAA2C;IAC3C,6BAA6B,EAAE,2BAA2B;IAE1D,4CAA4C;IAC5C,8BAA8B,EAAE,gCAAgC;IAEhE,mCAAmC;IACnC,sBAAsB,EAAE,wBAAwB;IAEhD,kCAAkC;IAClC,qBAAqB,EAAE,oBAAoB;IAE3C,2CAA2C;IAC3C,uBAAuB,EAAE,4BAA4B;IAErD,iCAAiC;IACjC,oBAAoB,EAAE,mBAAmB;IAEzC,4CAA4C;IAC5C,+BAA+B,EAAE,6BAA6B;IAE9D,sCAAsC;IACtC,wBAAwB,EAAE,0BAA0B;IACpD,uBAAuB,EAAE,sBAAsB;IAC/C,6BAA6B,EAAE,+BAA+B;IAE9D,0CAA0C;IAC1C,4BAA4B,EAAE,2BAA2B;IAEzD,yCAAyC;IACzC,2BAA2B,EAAE,6BAA6B;IAE1D,0CAA0C;IAC1C,4BAA4B,EAAE,8BAA8B;IAE5D,uCAAuC;IACvC,yBAAyB,EAAE,wBAAwB;IAEnD,iCAAiC;IACjC,mBAAmB,EAAE,kBAAkB;IACvC,oBAAoB,EAAE,sBAAsB;IAE5C,oCAAoC;IACpC,sBAAsB,EAAE,wBAAwB;IAEhD,sCAAsC;IACtC,uBAAuB,EAAE,sBAAsB;IAC/C,wBAAwB,EAAE,0BAA0B;IAEpD,gCAAgC;IAChC,kBAAkB,EAAE,iBAAiB;IACrC,mBAAmB,EAAE,qBAAqB;IAE1C,uCAAuC;IACvC,uBAAuB,EAAE,gCAAgC;IAEzD,uCAAuC;IACvC,0BAA0B,EAAE,6BAA6B;IACzD,0BAA0B,EAAE,kCAAkC;IAE9D,uCAAuC;IACvC,yBAAyB,EAAE,2BAA2B;IACtD,wBAAwB,EAAE,uBAAuB;IAEjD,oCAAoC;IACpC,sBAAsB,EAAE,yBAAyB;IAEjD,gDAAgD;IAChD,+BAA+B,EAAE,oCAAoC;IAErE,2CAA2C;IAC3C,yBAAyB,EAAE,+BAA+B;IAE1D,2CAA2C;IAC3C,qCAAqC,EAAE,4BAA4B;IAEnE,kCAAkC;IAClC,oBAAoB,EAAE,mBAAmB;IAEzC,oDAAoD;IACpD,8BAA8B,EAAE,6BAA6B;IAE7D,6CAA6C;IAC7C,sBAAsB,EAAE,qBAAqB;IAE7C,2CAA2C;IAC3C,qBAAqB,EAAE,oBAAoB;IAE3C,+DAA+D;IAC/D,wBAAwB,EAAE,uBAAuB;IAEjD,iEAAiE;IACjE,0BAA0B,EAAE,yBAAyB;IAErD,gEAAgE;IAChE,wBAAwB,EAAE,uBAAuB;IAEjD,iEAAiE;IACjE,yBAAyB,EAAE,wBAAwB;IAEnD,0EAA0E;IAC1E,yBAAyB,EAAE,qBAAqB;IAChD,wBAAwB,EAAE,oBAAoB;IAC9C,8BAA8B,EAAE,kCAAkC;IAElE,+CAA+C;IAC/C,mBAAmB,EAAE,gCAAgC;IAErD,0CAA0C;IAC1C,iBAAiB,EAAE,mBAAmB;IAEtC,mDAAmD;IACnD,iCAAiC,EAAE,2BAA2B;IAC9D,iCAAiC,EAAE,6CAA6C;IAChF,sCAAsC,EAAE,6CAA6C;IACrF,qCAAqC,EAAE,uCAAuC;IAC9E,6BAA6B,EAAE,wCAAwC;IAEvE,gDAAgD;IAChD,sBAAsB,EAAE,uBAAuB;IAC/C,yBAAyB,EAAE,0BAA0B;IAErD,iDAAiD;IACjD,gCAAgC,EAAE,2BAA2B;IAE7D,kDAAkD;IAClD,+BAA+B,EAAE,+BAA+B;IAEhE,2DAA2D;IAC3D,yBAAyB,EAAE,+BAA+B;IAE1D,mDAAmD;IACnD,6BAA6B,EAAE,4BAA4B;CAC5D,CAAA;AAED;;;;;;;GAOG;AACU,QAAA,uBAAuB,GAA2C;IAC7E,sFAAsF;IACtF,oFAAoF;IACpF,gEAAgE;IAChE,sFAAsF;IACtF,QAAQ,EAAE;QACR,yBAAyB,EAAE,8BAA8B;QACzD,oBAAoB,EAAE,yBAAyB;KAChD;IACD,KAAK,EAAE;QACL,yBAAyB,EAAE,yBAAyB;QACpD,oBAAoB,EAAE,sBAAsB;KAC7C;IACD,MAAM,EAAE;QACN,4DAA4D;QAC5D,yBAAyB,EAAE,MAAM;QACjC,wEAAwE;QACxE,2DAA2D;QAC3D,oBAAoB,EAAE,oBAAoB;KAC3C;CACF,CAAA;AAED;;;GAGG;AACU,QAAA,2BAA2B,GACtC,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,mCAA2B,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CACpE,CAAA;AAEH;;GAEG;AACH,MAAa,YAAY;IACvB;;;;;;;;OAQG;IACH,MAAM,CAAC,mBAAmB,CAAC,UAAkB,EAAE,MAAe;QAC5D,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,cAAc,GAAG,+BAAuB,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAA;YACpE,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;gBACjC,OAAO,cAAc,CAAA;YACvB,CAAC;QACH,CAAC;QACD,OAAO,mCAA2B,CAAC,UAAU,CAAC,IAAI,UAAU,CAAA;IAC9D,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,oBAAoB,CAAC,YAAoB;QAC9C,OAAO,mCAA2B,CAAC,YAAY,CAAC,IAAI,YAAY,CAAA;IAClE,CAAC;CACF;AA3BD,oCA2BC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
export interface PathMapping {
|
|
2
|
+
/** The API area (e.g. "admin", "store") */
|
|
3
|
+
area: string;
|
|
4
|
+
/** Domain name in kebab-case as it appears in the HTTP types directory. e.g. "product" */
|
|
5
|
+
domain: string;
|
|
6
|
+
/** Absolute path to the HTTP types directory for this domain+area */
|
|
7
|
+
outputDir: string;
|
|
8
|
+
/** Absolute path to the output payloads.ts file */
|
|
9
|
+
payloadsFile: string;
|
|
10
|
+
/** Absolute path to the output queries.ts file */
|
|
11
|
+
queriesFile: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Maps validator file paths to HTTP types output paths and resolves domain names.
|
|
15
|
+
*/
|
|
16
|
+
export declare class PathMapper {
|
|
17
|
+
/**
|
|
18
|
+
* Maps route directory names to HTTP types domain names only when the mapping
|
|
19
|
+
* cannot be derived by singularizing the last hyphen-segment.
|
|
20
|
+
*
|
|
21
|
+
* Most route dirs (e.g. "products" → "product", "sales-channels" → "sales-channel")
|
|
22
|
+
* are handled automatically by `singularizeRouteName`. Only entries with a
|
|
23
|
+
* fundamentally different domain belong here.
|
|
24
|
+
*
|
|
25
|
+
* This list is only meant to remain backward-compatible with existing schemas that predate this tool.
|
|
26
|
+
* When adding new validator schemas, prefer structuring the route and domain names
|
|
27
|
+
* to fit the automatic singularization logic and avoid adding to this registry.
|
|
28
|
+
*/
|
|
29
|
+
private static readonly ENTITY_NAME_OVERRIDES;
|
|
30
|
+
/**
|
|
31
|
+
* Derives the domain name from a route directory name by singularizing its
|
|
32
|
+
* last hyphen-separated segment (e.g. "sales-channels" → "sales-channel",
|
|
33
|
+
* "product-categories" → "product-category").
|
|
34
|
+
*/
|
|
35
|
+
private static singularizeRouteName;
|
|
36
|
+
/**
|
|
37
|
+
* Computes the PathMapping for a given validator file path.
|
|
38
|
+
*
|
|
39
|
+
* @param validatorFilePath - Absolute path to the validators.ts file.
|
|
40
|
+
* @returns PathMapping or undefined if the path cannot be mapped.
|
|
41
|
+
*/
|
|
42
|
+
static mapValidatorToHttpTypes(validatorFilePath: string): PathMapping | undefined;
|
|
43
|
+
/**
|
|
44
|
+
* Returns glob patterns for all validator files in the given area(s).
|
|
45
|
+
* Pass `"all"` to get globs for every configured area.
|
|
46
|
+
*/
|
|
47
|
+
static getValidatorGlobs(area: string): string[];
|
|
48
|
+
/**
|
|
49
|
+
* Returns the absolute path to the HTTP types directory for a given domain.
|
|
50
|
+
*/
|
|
51
|
+
static getHttpTypesDir(domain: string): string;
|
|
52
|
+
/**
|
|
53
|
+
* Resolves the HTTP types domain name for a given validator route directory name,
|
|
54
|
+
* applying overrides and singularization as needed.
|
|
55
|
+
*/
|
|
56
|
+
static resolveHttpDomain(routeDirName: string): string;
|
|
57
|
+
/**
|
|
58
|
+
* Filters a list of validator file paths to only those matching the given domain name.
|
|
59
|
+
*/
|
|
60
|
+
static filterValidatorsByDomain(files: string[], domain: string): string[];
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=path-mapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"path-mapper.d.ts","sourceRoot":"","sources":["../../src/mapping/path-mapper.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,WAAW;IAC1B,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAA;IACZ,0FAA0F;IAC1F,MAAM,EAAE,MAAM,CAAA;IACd,qEAAqE;IACrE,SAAS,EAAE,MAAM,CAAA;IACjB,mDAAmD;IACnD,YAAY,EAAE,MAAM,CAAA;IACpB,kDAAkD;IAClD,WAAW,EAAE,MAAM,CAAA;CACpB;AAED;;GAEG;AACH,qBAAa,UAAU;IACrB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAW5C;IAED;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAMnC;;;;;OAKG;IACH,MAAM,CAAC,uBAAuB,CAC5B,iBAAiB,EAAE,MAAM,GACxB,WAAW,GAAG,SAAS;IAuB1B;;;OAGG;IACH,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IAehD;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAI9C;;;OAGG;IACH,MAAM,CAAC,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAOtD;;OAEG;IACH,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE;CAO3E"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.PathMapper = void 0;
|
|
7
|
+
const path_1 = __importDefault(require("path"));
|
|
8
|
+
const pluralize_1 = __importDefault(require("pluralize"));
|
|
9
|
+
const fs_helpers_1 = require("../utils/fs-helpers");
|
|
10
|
+
const config_1 = require("../config");
|
|
11
|
+
/**
|
|
12
|
+
* Maps validator file paths to HTTP types output paths and resolves domain names.
|
|
13
|
+
*/
|
|
14
|
+
class PathMapper {
|
|
15
|
+
/**
|
|
16
|
+
* Derives the domain name from a route directory name by singularizing its
|
|
17
|
+
* last hyphen-separated segment (e.g. "sales-channels" → "sales-channel",
|
|
18
|
+
* "product-categories" → "product-category").
|
|
19
|
+
*/
|
|
20
|
+
static singularizeRouteName(routeDirName) {
|
|
21
|
+
const parts = routeDirName.split("-");
|
|
22
|
+
parts[parts.length - 1] = pluralize_1.default.singular(parts[parts.length - 1]);
|
|
23
|
+
return parts.join("-");
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Computes the PathMapping for a given validator file path.
|
|
27
|
+
*
|
|
28
|
+
* @param validatorFilePath - Absolute path to the validators.ts file.
|
|
29
|
+
* @returns PathMapping or undefined if the path cannot be mapped.
|
|
30
|
+
*/
|
|
31
|
+
static mapValidatorToHttpTypes(validatorFilePath) {
|
|
32
|
+
const normalized = validatorFilePath.replace(/\\/g, "/");
|
|
33
|
+
const pattern = new RegExp(config_1.Config.get().validatorPathPattern);
|
|
34
|
+
const match = normalized.match(pattern);
|
|
35
|
+
if (!match || !match[1] || !match[2]) {
|
|
36
|
+
return undefined;
|
|
37
|
+
}
|
|
38
|
+
const area = match[1];
|
|
39
|
+
const routeDirName = match[2];
|
|
40
|
+
const domain = PathMapper.resolveHttpDomain(routeDirName);
|
|
41
|
+
const outputDir = fs_helpers_1.FsHelpers.fromRoot(config_1.Config.get().outputBase, domain, area);
|
|
42
|
+
return {
|
|
43
|
+
area,
|
|
44
|
+
domain,
|
|
45
|
+
outputDir,
|
|
46
|
+
payloadsFile: path_1.default.join(outputDir, "payloads.ts"),
|
|
47
|
+
queriesFile: path_1.default.join(outputDir, "queries.ts"),
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Returns glob patterns for all validator files in the given area(s).
|
|
52
|
+
* Pass `"all"` to get globs for every configured area.
|
|
53
|
+
*/
|
|
54
|
+
static getValidatorGlobs(area) {
|
|
55
|
+
const globs = config_1.Config.get().validatorGlobs;
|
|
56
|
+
const root = fs_helpers_1.FsHelpers.fromRoot();
|
|
57
|
+
if (area === "all") {
|
|
58
|
+
return Object.values(globs).map((g) => path_1.default.join(root, g));
|
|
59
|
+
}
|
|
60
|
+
const pattern = globs[area];
|
|
61
|
+
if (!pattern) {
|
|
62
|
+
return [];
|
|
63
|
+
}
|
|
64
|
+
return [path_1.default.join(root, pattern)];
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Returns the absolute path to the HTTP types directory for a given domain.
|
|
68
|
+
*/
|
|
69
|
+
static getHttpTypesDir(domain) {
|
|
70
|
+
return fs_helpers_1.FsHelpers.fromRoot(config_1.Config.get().outputBase, domain);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Resolves the HTTP types domain name for a given validator route directory name,
|
|
74
|
+
* applying overrides and singularization as needed.
|
|
75
|
+
*/
|
|
76
|
+
static resolveHttpDomain(routeDirName) {
|
|
77
|
+
return (PathMapper.ENTITY_NAME_OVERRIDES[routeDirName] ??
|
|
78
|
+
PathMapper.singularizeRouteName(routeDirName));
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Filters a list of validator file paths to only those matching the given domain name.
|
|
82
|
+
*/
|
|
83
|
+
static filterValidatorsByDomain(files, domain) {
|
|
84
|
+
const pattern = new RegExp(config_1.Config.get().validatorPathPattern);
|
|
85
|
+
return files.filter((f) => {
|
|
86
|
+
const match = f.replace(/\\/g, "/").match(pattern);
|
|
87
|
+
return match && match[2] === domain;
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
exports.PathMapper = PathMapper;
|
|
92
|
+
/**
|
|
93
|
+
* Maps route directory names to HTTP types domain names only when the mapping
|
|
94
|
+
* cannot be derived by singularizing the last hyphen-segment.
|
|
95
|
+
*
|
|
96
|
+
* Most route dirs (e.g. "products" → "product", "sales-channels" → "sales-channel")
|
|
97
|
+
* are handled automatically by `singularizeRouteName`. Only entries with a
|
|
98
|
+
* fundamentally different domain belong here.
|
|
99
|
+
*
|
|
100
|
+
* This list is only meant to remain backward-compatible with existing schemas that predate this tool.
|
|
101
|
+
* When adding new validator schemas, prefer structuring the route and domain names
|
|
102
|
+
* to fit the automatic singularization logic and avoid adding to this registry.
|
|
103
|
+
*/
|
|
104
|
+
PathMapper.ENTITY_NAME_OVERRIDES = {
|
|
105
|
+
addresses: "customer", // part of customer
|
|
106
|
+
"auth-providers": "auth",
|
|
107
|
+
"inventory-items": "inventory",
|
|
108
|
+
"order-changes": "order", // part of order
|
|
109
|
+
"payment-collections": "payment",
|
|
110
|
+
plugins: "plugins", // intentionally stays plural
|
|
111
|
+
"product-variants": "product", // variants live under product
|
|
112
|
+
"stock-locations": "stock-locations", // intentionally stays plural
|
|
113
|
+
uploads: "file",
|
|
114
|
+
"workflows-executions": "workflow-execution", // both segments are plural
|
|
115
|
+
};
|
|
116
|
+
//# sourceMappingURL=path-mapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"path-mapper.js","sourceRoot":"","sources":["../../src/mapping/path-mapper.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAuB;AACvB,0DAAiC;AACjC,oDAA+C;AAC/C,sCAAkC;AAelC;;GAEG;AACH,MAAa,UAAU;IA0BrB;;;;OAIG;IACK,MAAM,CAAC,oBAAoB,CAAC,YAAoB;QACtD,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACrC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,mBAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAA;QACrE,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACxB,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,uBAAuB,CAC5B,iBAAyB;QAEzB,MAAM,UAAU,GAAG,iBAAiB,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QACxD,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,eAAM,CAAC,GAAG,EAAE,CAAC,oBAAoB,CAAC,CAAA;QAC7D,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAEvC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACrC,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;QACrB,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;QAC7B,MAAM,MAAM,GAAG,UAAU,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAA;QACzD,MAAM,SAAS,GAAG,sBAAS,CAAC,QAAQ,CAAC,eAAM,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;QAE3E,OAAO;YACL,IAAI;YACJ,MAAM;YACN,SAAS;YACT,YAAY,EAAE,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC;YACjD,WAAW,EAAE,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC;SAChD,CAAA;IACH,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,iBAAiB,CAAC,IAAY;QACnC,MAAM,KAAK,GAAG,eAAM,CAAC,GAAG,EAAE,CAAC,cAAc,CAAA;QACzC,MAAM,IAAI,GAAG,sBAAS,CAAC,QAAQ,EAAE,CAAA;QAEjC,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;YACnB,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;QAC5D,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,CAAA;QAC3B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,EAAE,CAAA;QACX,CAAC;QACD,OAAO,CAAC,cAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAA;IACnC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,MAAc;QACnC,OAAO,sBAAS,CAAC,QAAQ,CAAC,eAAM,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;IAC5D,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,iBAAiB,CAAC,YAAoB;QAC3C,OAAO,CACL,UAAU,CAAC,qBAAqB,CAAC,YAAY,CAAC;YAC9C,UAAU,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAC9C,CAAA;IACH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,wBAAwB,CAAC,KAAe,EAAE,MAAc;QAC7D,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,eAAM,CAAC,GAAG,EAAE,CAAC,oBAAoB,CAAC,CAAA;QAC7D,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YACxB,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YAClD,OAAO,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,MAAM,CAAA;QACrC,CAAC,CAAC,CAAA;IACJ,CAAC;;AAlHH,gCAmHC;AAlHC;;;;;;;;;;;GAWG;AACqB,gCAAqB,GAA2B;IACtE,SAAS,EAAE,UAAU,EAAE,mBAAmB;IAC1C,gBAAgB,EAAE,MAAM;IACxB,iBAAiB,EAAE,WAAW;IAC9B,eAAe,EAAE,OAAO,EAAE,gBAAgB;IAC1C,qBAAqB,EAAE,SAAS;IAChC,OAAO,EAAE,SAAS,EAAE,6BAA6B;IACjD,kBAAkB,EAAE,SAAS,EAAE,8BAA8B;IAC7D,iBAAiB,EAAE,iBAAiB,EAAE,6BAA6B;IACnE,OAAO,EAAE,MAAM;IACf,sBAAsB,EAAE,oBAAoB,EAAE,2BAA2B;CAC1E,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"root":["../src/index.ts","../src/__tests__/compatibility-checker.spec.ts","../src/__tests__/config.spec.ts","../src/__tests__/import-tracker.spec.ts","../src/__tests__/name-classifier.spec.ts","../src/__tests__/name-registry.spec.ts","../src/__tests__/path-mapper.spec.ts","../src/__tests__/type-emitter.spec.ts","../src/__tests__/type-pipeline.spec.ts","../src/__tests__/utils/ts-utils.ts","../src/commands/generate.ts","../src/commands/validate.ts","../src/config/index.ts","../src/core/compatibility-checker.ts","../src/core/import-tracker.ts","../src/core/program-factory.ts","../src/core/schema-extractor.ts","../src/core/type-emitter.ts","../src/core/type-resolver.ts","../src/mapping/name-classifier.ts","../src/mapping/name-registry.ts","../src/mapping/path-mapper.ts","../src/utils/file-merger.ts","../src/utils/formatter.ts","../src/utils/fs-helpers.ts","../src/utils/index-manager.ts","../src/utils/ts-helpers.ts"],"version":"5.9.3"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { EmittedInterface } from "../core/type-emitter";
|
|
2
|
+
import type { ImportTracker } from "../core/import-tracker";
|
|
3
|
+
export type MergeStatus = "created" | "updated" | "skipped" | "overwritten";
|
|
4
|
+
export interface MergeResult {
|
|
5
|
+
content: string;
|
|
6
|
+
status: MergeStatus;
|
|
7
|
+
/** Number of interfaces added (0 for skipped/overwritten) */
|
|
8
|
+
added: number;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Decides whether to create, merge, or overwrite a type file.
|
|
12
|
+
*/
|
|
13
|
+
export declare class FileMerger {
|
|
14
|
+
/**
|
|
15
|
+
* Decides whether to create, merge, or overwrite a type file.
|
|
16
|
+
*
|
|
17
|
+
* - File does not exist → create (write all interfaces)
|
|
18
|
+
* - File exists + `force` → overwrite (write all interfaces, replacing existing)
|
|
19
|
+
* - File exists, not `force` → merge: add only interfaces not already declared
|
|
20
|
+
*
|
|
21
|
+
* Returns the final file content plus a status code.
|
|
22
|
+
*/
|
|
23
|
+
resolveFileContent(file: string, interfaces: EmittedInterface[], importTracker: ImportTracker, force: boolean): Promise<MergeResult>;
|
|
24
|
+
/**
|
|
25
|
+
* Parses a named import line of the form:
|
|
26
|
+
* `import { A, B } from "source"`
|
|
27
|
+
* `import type { A, B } from "source"`
|
|
28
|
+
*
|
|
29
|
+
* Returns null for default imports, side-effect imports, or anything else.
|
|
30
|
+
*/
|
|
31
|
+
private parseImportLine;
|
|
32
|
+
/**
|
|
33
|
+
* Merges two sets of import lines, combining named imports for the same
|
|
34
|
+
* source so we never emit duplicate import statements.
|
|
35
|
+
*/
|
|
36
|
+
private mergeImportLines;
|
|
37
|
+
/**
|
|
38
|
+
* Scans `content` for `export interface Name ...` blocks and returns a map
|
|
39
|
+
* from interface name to the full block text.
|
|
40
|
+
*/
|
|
41
|
+
private extractInterfaceBlocks;
|
|
42
|
+
/**
|
|
43
|
+
* Extracts all `import ...` lines from the file content.
|
|
44
|
+
*/
|
|
45
|
+
private extractImportLines;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=file-merger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-merger.d.ts","sourceRoot":"","sources":["../../src/utils/file-merger.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAE5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAQ3D,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,aAAa,CAAA;AAE3E,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,WAAW,CAAA;IACnB,6DAA6D;IAC7D,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;GAEG;AACH,qBAAa,UAAU;IACrB;;;;;;;;OAQG;IACG,kBAAkB,CACtB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,gBAAgB,EAAE,EAC9B,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,WAAW,CAAC;IAyDvB;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;IAmBvB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IA0CxB;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IA8B9B;;OAEG;IACH,OAAO,CAAC,kBAAkB;CAK3B"}
|