spree_api 6.0.0.rc4 → 6.0.0.rc5
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.
- checksums.yaml +4 -4
- data/app/controllers/concerns/spree/api/v3/allowed_redirect_url.rb +27 -0
- data/app/controllers/concerns/spree/api/v3/cart_resolvable.rb +8 -2
- data/app/controllers/concerns/spree/api/v3/scoped_authorization.rb +6 -2
- data/app/controllers/spree/api/v3/admin/companies/addresses_controller.rb +7 -1
- data/app/controllers/spree/api/v3/admin/custom_fields_controller.rb +30 -8
- data/app/controllers/spree/api/v3/admin/customers/addresses_controller.rb +4 -0
- data/app/controllers/spree/api/v3/admin/customers_controller.rb +1 -6
- data/app/controllers/spree/api/v3/admin/gift_cards_controller.rb +1 -8
- data/app/controllers/spree/api/v3/admin/orders_controller.rb +11 -5
- data/app/controllers/spree/api/v3/admin/package_types_controller.rb +2 -3
- data/app/controllers/spree/api/v3/admin/products/variants_controller.rb +3 -4
- data/app/controllers/spree/api/v3/admin/products_controller.rb +5 -3
- data/app/controllers/spree/api/v3/admin/store_controller.rb +1 -1
- data/app/controllers/spree/api/v3/admin/variants_controller.rb +96 -1
- data/app/controllers/spree/api/v3/oauth/authorizations_controller.rb +17 -6
- data/app/controllers/spree/api/v3/resource_controller.rb +35 -5
- data/app/controllers/spree/api/v3/seller/package_types_controller.rb +2 -2
- data/app/controllers/spree/api/v3/seller/products_controller.rb +7 -61
- data/app/controllers/spree/api/v3/seller/resource_controller.rb +2 -6
- data/app/controllers/spree/api/v3/store/carts/addresses_controller.rb +53 -0
- data/app/controllers/spree/api/v3/store/carts_controller.rb +3 -3
- data/app/controllers/spree/api/v3/store/companies/addresses_controller.rb +4 -0
- data/app/controllers/spree/api/v3/store/customer/addresses_controller.rb +4 -0
- data/app/controllers/spree/api/v3/store/customer/data_requests_controller.rb +19 -1
- data/app/controllers/spree/api/v3/store/customer/password_resets_controller.rb +3 -14
- data/app/controllers/spree/api/v3/store/data_request_confirmations_controller.rb +23 -0
- data/app/controllers/spree/api/v3/store/data_requests_controller.rb +56 -0
- data/app/controllers/spree/api/v3/store/newsletter_subscribers_controller.rb +2 -11
- data/app/request_schemas/spree/api/v3/admin/variant_request_schema.rb +21 -0
- data/app/request_schemas/spree/api/v3/seller/price_request_schema.rb +20 -0
- data/app/request_schemas/spree/api/v3/seller/variant_request_schema.rb +19 -0
- data/app/request_schemas/spree/api/v3/variant_request_schema.rb +8 -13
- data/app/serializers/spree/api/v3/address_owner_serializer.rb +27 -0
- data/app/serializers/spree/api/v3/address_serializer.rb +5 -1
- data/app/serializers/spree/api/v3/admin/address_owner_serializer.rb +10 -0
- data/app/serializers/spree/api/v3/admin/address_serializer.rb +1 -10
- data/app/serializers/spree/api/v3/admin/api_key_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/admin/catalog_assignment_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/admin/catalog_price_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/admin/collection_rule_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/admin/collection_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/admin/commission_line_serializer.rb +2 -2
- data/app/serializers/spree/api/v3/admin/commission_rate_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/admin/consent_record_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/admin/email_template_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/admin/order_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/admin/package_type_serializer.rb +3 -3
- data/app/serializers/spree/api/v3/admin/permission_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/admin/price_list_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/admin/purchase_order_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/admin/seller_requirement_status_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/admin/seller_serializer.rb +2 -2
- data/app/serializers/spree/api/v3/admin/seller_transfer_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/admin/shipping_label_serializer.rb +3 -3
- data/app/serializers/spree/api/v3/admin/stock_location_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/admin/stock_receipt_item_serializer.rb +2 -2
- data/app/serializers/spree/api/v3/admin/stock_receipt_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/admin/stock_transfer_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/admin/store_serializer.rb +1 -0
- data/app/serializers/spree/api/v3/admin/tax_identifier_serializer.rb +2 -2
- data/app/serializers/spree/api/v3/admin/tax_line_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/admin/variant_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/base_serializer.rb +27 -5
- data/app/serializers/spree/api/v3/claim_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/collection_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/company_invitation_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/company_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/data_request_confirmation_requested_event_serializer.rb +28 -0
- data/app/serializers/spree/api/v3/data_request_event_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/data_request_serializer.rb +8 -4
- data/app/serializers/spree/api/v3/delivery_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/delivery_zone_member_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/discount_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/file_upload_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/fulfillment_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/media_event_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/media_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/option_type_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/order_group_serializer.rb +2 -2
- data/app/serializers/spree/api/v3/order_serializer.rb +4 -2
- data/app/serializers/spree/api/v3/payment_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/product_filter_availability_option_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/product_filter_option_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/seller/address_serializer.rb +3 -2
- data/app/serializers/spree/api/v3/seller/order_serializer.rb +3 -3
- data/app/serializers/spree/api/v3/seller/package_type_serializer.rb +3 -3
- data/app/serializers/spree/api/v3/seller/profile_serializer.rb +2 -2
- data/app/serializers/spree/api/v3/seller/requirement_status_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/seller/tax_identifier_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/seller/variant_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/shipping_label_event_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/stock_movement_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/stock_receipt_event_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/variant_serializer.rb +2 -2
- data/app/services/spree/api/v3/filter_table.rb +22 -3
- data/app/services/spree/api/v3/request_schema.rb +64 -17
- data/config/locales/en.yml +1 -0
- data/config/routes.rb +19 -11
- data/lib/spree/api/agent_write_schemas.rb +15 -3
- data/lib/spree/api/dependencies.rb +2 -2
- data/lib/spree/api/enum_types.rb +118 -0
- data/lib/spree/api/openapi/filter_documentation.rb +8 -1
- data/lib/spree/api/typelizer_generation.rb +5 -0
- data/lib/typelizer/open_enums.rb +40 -16
- metadata +17 -6
|
@@ -9,6 +9,11 @@ module Spree
|
|
|
9
9
|
def self.call(serializer_dirs)
|
|
10
10
|
serializer_dirs.each { |dir| Rails.autoloaders.main.eager_load_dir(dir.to_s) }
|
|
11
11
|
|
|
12
|
+
# Before the SDK types, so two serializers disagreeing on a list's
|
|
13
|
+
# values stop generation instead of one of them silently winning.
|
|
14
|
+
require Spree::Api::Engine.root.join('lib/spree/api/enum_types').to_s
|
|
15
|
+
Spree::Api::EnumTypes.new.write!(Spree::Api::Engine.root.join('../..'))
|
|
16
|
+
|
|
12
17
|
require 'typelizer/generator'
|
|
13
18
|
Typelizer::Generator.call(force: true)
|
|
14
19
|
|
data/lib/typelizer/open_enums.rb
CHANGED
|
@@ -8,23 +8,41 @@ module Typelizer
|
|
|
8
8
|
# from either still accepts an added value while every built-in value stays
|
|
9
9
|
# documented and autocompletable.
|
|
10
10
|
#
|
|
11
|
-
#
|
|
12
|
-
#
|
|
13
|
-
#
|
|
14
|
-
#
|
|
15
|
-
#
|
|
16
|
-
#
|
|
17
|
-
#
|
|
11
|
+
# Every named list is defined once, as values and type, in `@spree/core`, and
|
|
12
|
+
# each SDK's `Enums.ts` re-exports it through `@spree/sdk-core` instead of
|
|
13
|
+
# carrying a copy. {Spree::Api::EnumTypes} writes them there.
|
|
14
|
+
#
|
|
15
|
+
# A name in `CLOSED_LIST_NAMES` keeps its list closed — named only so it is
|
|
16
|
+
# defined once — and both contracts stay exactly what `enum:` alone gives.
|
|
17
|
+
# Shared code lists are closed too, but come from the API reference
|
|
18
|
+
# (`pnpm generate:code-lists`) rather than the serializers: nothing outside
|
|
19
|
+
# the standard can add a country, a currency or a unit, and markets only
|
|
20
|
+
# accept the locales `Spree::Locales::ALL` lists.
|
|
18
21
|
module OpenEnums
|
|
19
|
-
CLOSED_TYPE_NAMES = %w[CountryCode CurrencyCode LocaleCode].freeze
|
|
22
|
+
CLOSED_TYPE_NAMES = %w[CountryCode CurrencyCode LocaleCode WeightUnit DimensionUnit].freeze
|
|
23
|
+
|
|
24
|
+
CLOSED_LIST_NAMES = %w[
|
|
25
|
+
ApiKeyType CaptureMethod CatalogAssignableType CatalogPriceSource ClaimResolution
|
|
26
|
+
CollectionRuleMatchPolicy CollectionSortOrder CommissionKind CompanyInvitationStatus CompanyKind
|
|
27
|
+
ConsentSource DataRequestKind DeliveryStatus DeliveryZoneMemberType DiscountKind DocumentNumberFormat
|
|
28
|
+
EmailFont EmailTemplateKind FileUploadVisibility FulfillmentType MatchPolicy MediaType OptionTypeKind
|
|
29
|
+
OrderFulfillmentStatus OrderPaymentStatus OrderStatus PackageTypeKind PaymentSourceType
|
|
30
|
+
PayoutScheduleInterval PermissionKind PickupStockPolicy ProviderFailurePolicy PurchaseUnit
|
|
31
|
+
SellerRequirementState SellerTransferKind ShippingLabelFormat ShippingLabelOwnerType ShippingLabelSource
|
|
32
|
+
StockAvailability StockMovementKind StockReceiptLineType StockReceiptReceivableType
|
|
33
|
+
StockReceiptRejectionReason StorefrontAccess TaxIdentifierSource TaxIdentifierValidationStatus
|
|
34
|
+
TaxRemittance UnitSystem
|
|
35
|
+
].freeze
|
|
36
|
+
|
|
37
|
+
# @param name [String, nil] a list's `enum_type_name`
|
|
38
|
+
# @return [Boolean] whether the list is closed: no value outside it is valid
|
|
39
|
+
def self.closed?(name)
|
|
40
|
+
CLOSED_TYPE_NAMES.include?(name) || CLOSED_LIST_NAMES.include?(name)
|
|
41
|
+
end
|
|
20
42
|
|
|
21
43
|
module Property
|
|
22
44
|
def enum_definition(...)
|
|
23
|
-
|
|
24
|
-
return definition unless definition
|
|
25
|
-
return "type { #{enum_type_name} } from '@spree/sdk-core'" if CLOSED_TYPE_NAMES.include?(enum_type_name)
|
|
26
|
-
|
|
27
|
-
"#{definition} | (string & {})"
|
|
45
|
+
super && "type { #{enum_type_name} } from '@spree/sdk-core'"
|
|
28
46
|
end
|
|
29
47
|
|
|
30
48
|
# Typelizer skips rewriting a file whose digest is unchanged, and the
|
|
@@ -32,7 +50,7 @@ module Typelizer
|
|
|
32
50
|
# the re-export in makes a checkout that still carries the old inline
|
|
33
51
|
# list regenerate.
|
|
34
52
|
def fingerprint
|
|
35
|
-
return super unless
|
|
53
|
+
return super unless enum_type_name
|
|
36
54
|
|
|
37
55
|
[super, enum_definition].inspect
|
|
38
56
|
end
|
|
@@ -43,10 +61,16 @@ module Typelizer
|
|
|
43
61
|
|
|
44
62
|
def inline_schema(definition, property, openapi_version:)
|
|
45
63
|
return super unless property.enum_type_name && property.enum.is_a?(Array) && !property.multi
|
|
46
|
-
return super if
|
|
64
|
+
return super if OpenEnums.closed?(property.enum_type_name)
|
|
47
65
|
|
|
48
66
|
open = { anyOf: [{ type: :string, enum: property.enum.compact }, { type: :string }] }
|
|
49
|
-
|
|
67
|
+
# OpenAPI 3.0 ignores `nullable` beside `anyOf`, which is where
|
|
68
|
+
# Typelizer puts it, so the free-string branch carries it instead.
|
|
69
|
+
if property.nullable && !v31?(openapi_version)
|
|
70
|
+
open[:anyOf].last[:nullable] = true
|
|
71
|
+
else
|
|
72
|
+
apply_nullable(open, property, openapi_version: openapi_version)
|
|
73
|
+
end
|
|
50
74
|
apply_metadata(open, property)
|
|
51
75
|
open[:description] ||= OPEN_ENUM_DESCRIPTION
|
|
52
76
|
open
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: spree_api
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 6.0.0.
|
|
4
|
+
version: 6.0.0.rc5
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Vendo Connect Inc.
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-10-
|
|
11
|
+
date: 2026-10-22 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rswag-specs
|
|
@@ -44,14 +44,14 @@ dependencies:
|
|
|
44
44
|
requirements:
|
|
45
45
|
- - '='
|
|
46
46
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: 6.0.0.
|
|
47
|
+
version: 6.0.0.rc5
|
|
48
48
|
type: :runtime
|
|
49
49
|
prerelease: false
|
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
51
|
requirements:
|
|
52
52
|
- - '='
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
|
-
version: 6.0.0.
|
|
54
|
+
version: 6.0.0.rc5
|
|
55
55
|
description: Spree Commerce Store / Admin API and HTTP webhooks
|
|
56
56
|
email:
|
|
57
57
|
- hello@spreecommerce.org
|
|
@@ -75,6 +75,7 @@ files:
|
|
|
75
75
|
- app/controllers/concerns/spree/api/v3/admin/subclassed_resource.rb
|
|
76
76
|
- app/controllers/concerns/spree/api/v3/admin/validation_details.rb
|
|
77
77
|
- app/controllers/concerns/spree/api/v3/admin_authentication.rb
|
|
78
|
+
- app/controllers/concerns/spree/api/v3/allowed_redirect_url.rb
|
|
78
79
|
- app/controllers/concerns/spree/api/v3/api_key_authentication.rb
|
|
79
80
|
- app/controllers/concerns/spree/api/v3/authentication_strategies.rb
|
|
80
81
|
- app/controllers/concerns/spree/api/v3/bulk_operations.rb
|
|
@@ -328,6 +329,7 @@ files:
|
|
|
328
329
|
- app/controllers/spree/api/v3/store/account/companies_controller.rb
|
|
329
330
|
- app/controllers/spree/api/v3/store/auth_controller.rb
|
|
330
331
|
- app/controllers/spree/api/v3/store/base_controller.rb
|
|
332
|
+
- app/controllers/spree/api/v3/store/carts/addresses_controller.rb
|
|
331
333
|
- app/controllers/spree/api/v3/store/carts/discount_codes_controller.rb
|
|
332
334
|
- app/controllers/spree/api/v3/store/carts/fulfillments_controller.rb
|
|
333
335
|
- app/controllers/spree/api/v3/store/carts/gift_cards_controller.rb
|
|
@@ -363,7 +365,9 @@ files:
|
|
|
363
365
|
- app/controllers/spree/api/v3/store/customer/tax_identifiers_controller.rb
|
|
364
366
|
- app/controllers/spree/api/v3/store/customers_controller.rb
|
|
365
367
|
- app/controllers/spree/api/v3/store/data_feeds_controller.rb
|
|
368
|
+
- app/controllers/spree/api/v3/store/data_request_confirmations_controller.rb
|
|
366
369
|
- app/controllers/spree/api/v3/store/data_request_downloads_controller.rb
|
|
370
|
+
- app/controllers/spree/api/v3/store/data_requests_controller.rb
|
|
367
371
|
- app/controllers/spree/api/v3/store/delivery_methods_controller.rb
|
|
368
372
|
- app/controllers/spree/api/v3/store/digital_links_controller.rb
|
|
369
373
|
- app/controllers/spree/api/v3/store/locales_controller.rb
|
|
@@ -405,10 +409,13 @@ files:
|
|
|
405
409
|
- app/request_schemas/spree/api/v3/admin/promotion_rule_request_schema.rb
|
|
406
410
|
- app/request_schemas/spree/api/v3/admin/reason_request_schema.rb
|
|
407
411
|
- app/request_schemas/spree/api/v3/admin/tax_identifier_request_schema.rb
|
|
412
|
+
- app/request_schemas/spree/api/v3/admin/variant_request_schema.rb
|
|
408
413
|
- app/request_schemas/spree/api/v3/custom_field_value_request_schema.rb
|
|
409
414
|
- app/request_schemas/spree/api/v3/file_upload_request_schema.rb
|
|
410
415
|
- app/request_schemas/spree/api/v3/media_request_schema.rb
|
|
411
416
|
- app/request_schemas/spree/api/v3/price_request_schema.rb
|
|
417
|
+
- app/request_schemas/spree/api/v3/seller/price_request_schema.rb
|
|
418
|
+
- app/request_schemas/spree/api/v3/seller/variant_request_schema.rb
|
|
412
419
|
- app/request_schemas/spree/api/v3/stock_level_request_schema.rb
|
|
413
420
|
- app/request_schemas/spree/api/v3/store/address_request_schema.rb
|
|
414
421
|
- app/request_schemas/spree/api/v3/tax_identifier_request_schema.rb
|
|
@@ -416,8 +423,10 @@ files:
|
|
|
416
423
|
- app/request_schemas/spree/api/v3/variant_request_schema.rb
|
|
417
424
|
- app/serializers/concerns/spree/api/v3/admin/translatable.rb
|
|
418
425
|
- app/serializers/concerns/spree/api/v3/purchase_summary.rb
|
|
426
|
+
- app/serializers/spree/api/v3/address_owner_serializer.rb
|
|
419
427
|
- app/serializers/spree/api/v3/address_serializer.rb
|
|
420
428
|
- app/serializers/spree/api/v3/admin/actor_serializer.rb
|
|
429
|
+
- app/serializers/spree/api/v3/admin/address_owner_serializer.rb
|
|
421
430
|
- app/serializers/spree/api/v3/admin/address_serializer.rb
|
|
422
431
|
- app/serializers/spree/api/v3/admin/admin_user_serializer.rb
|
|
423
432
|
- app/serializers/spree/api/v3/admin/allowed_origin_serializer.rb
|
|
@@ -593,6 +602,7 @@ files:
|
|
|
593
602
|
- app/serializers/spree/api/v3/custom_field_serializer.rb
|
|
594
603
|
- app/serializers/spree/api/v3/customer_group_serializer.rb
|
|
595
604
|
- app/serializers/spree/api/v3/customer_serializer.rb
|
|
605
|
+
- app/serializers/spree/api/v3/data_request_confirmation_requested_event_serializer.rb
|
|
596
606
|
- app/serializers/spree/api/v3/data_request_event_serializer.rb
|
|
597
607
|
- app/serializers/spree/api/v3/data_request_serializer.rb
|
|
598
608
|
- app/serializers/spree/api/v3/delivery_method_serializer.rb
|
|
@@ -788,6 +798,7 @@ files:
|
|
|
788
798
|
- lib/spree/api/configuration.rb
|
|
789
799
|
- lib/spree/api/dependencies.rb
|
|
790
800
|
- lib/spree/api/engine.rb
|
|
801
|
+
- lib/spree/api/enum_types.rb
|
|
791
802
|
- lib/spree/api/extension_fields.rb
|
|
792
803
|
- lib/spree/api/middleware/request_size_limit.rb
|
|
793
804
|
- lib/spree/api/oauth.rb
|
|
@@ -812,9 +823,9 @@ licenses:
|
|
|
812
823
|
- BSD-3-Clause
|
|
813
824
|
metadata:
|
|
814
825
|
bug_tracker_uri: https://github.com/spree/spree/issues
|
|
815
|
-
changelog_uri: https://github.com/spree/spree/releases/tag/v6.0.0.
|
|
826
|
+
changelog_uri: https://github.com/spree/spree/releases/tag/v6.0.0.rc5
|
|
816
827
|
documentation_uri: https://docs.spreecommerce.org/
|
|
817
|
-
source_code_uri: https://github.com/spree/spree/tree/v6.0.0.
|
|
828
|
+
source_code_uri: https://github.com/spree/spree/tree/v6.0.0.rc5
|
|
818
829
|
post_install_message:
|
|
819
830
|
rdoc_options: []
|
|
820
831
|
require_paths:
|