sfcc-dev-mcp 1.0.19 → 1.0.21
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/clients/logs/index.d.ts +13 -0
- package/dist/clients/logs/index.d.ts.map +1 -0
- package/dist/clients/logs/index.js +15 -0
- package/dist/clients/logs/index.js.map +1 -0
- package/dist/clients/logs/log-analyzer.d.ts +55 -0
- package/dist/clients/logs/log-analyzer.d.ts.map +1 -0
- package/dist/clients/logs/log-analyzer.js +228 -0
- package/dist/clients/logs/log-analyzer.js.map +1 -0
- package/dist/clients/logs/log-client.d.ts +87 -0
- package/dist/clients/logs/log-client.d.ts.map +1 -0
- package/dist/clients/logs/log-client.js +418 -0
- package/dist/clients/logs/log-client.js.map +1 -0
- package/dist/clients/logs/log-constants.d.ts +37 -0
- package/dist/clients/logs/log-constants.d.ts.map +1 -0
- package/dist/clients/logs/log-constants.js +37 -0
- package/dist/clients/logs/log-constants.js.map +1 -0
- package/dist/clients/logs/log-file-discovery.d.ts +64 -0
- package/dist/clients/logs/log-file-discovery.d.ts.map +1 -0
- package/dist/clients/logs/log-file-discovery.js +249 -0
- package/dist/clients/logs/log-file-discovery.js.map +1 -0
- package/dist/clients/logs/log-file-reader.d.ts +55 -0
- package/dist/clients/logs/log-file-reader.d.ts.map +1 -0
- package/dist/clients/logs/log-file-reader.js +207 -0
- package/dist/clients/logs/log-file-reader.js.map +1 -0
- package/dist/clients/logs/log-formatter.d.ts +90 -0
- package/dist/clients/logs/log-formatter.d.ts.map +1 -0
- package/dist/clients/logs/log-formatter.js +189 -0
- package/dist/clients/logs/log-formatter.js.map +1 -0
- package/dist/clients/logs/log-processor.d.ts +91 -0
- package/dist/clients/logs/log-processor.d.ts.map +1 -0
- package/dist/clients/logs/log-processor.js +328 -0
- package/dist/clients/logs/log-processor.js.map +1 -0
- package/dist/clients/logs/log-types.d.ts +58 -0
- package/dist/clients/logs/log-types.d.ts.map +1 -0
- package/dist/clients/logs/log-types.js +8 -0
- package/dist/clients/logs/log-types.js.map +1 -0
- package/dist/clients/logs/webdav-client-manager.d.ts +28 -0
- package/dist/clients/logs/webdav-client-manager.d.ts.map +1 -0
- package/dist/clients/logs/webdav-client-manager.js +77 -0
- package/dist/clients/logs/webdav-client-manager.js.map +1 -0
- package/dist/docs/dw_customer/CustomerMgr.md +3 -3
- package/dist/docs/dw_customer/Wallet.md +25 -0
- package/dist/docs/dw_extensions.payments/SalesforceAdyenPaymentIntent.md +156 -0
- package/dist/docs/dw_extensions.payments/SalesforceAdyenSavedPaymentMethod.md +258 -0
- package/dist/docs/dw_extensions.payments/SalesforcePayPalOrder.md +36 -0
- package/dist/docs/dw_extensions.payments/SalesforcePaymentIntent.md +1 -1
- package/dist/docs/dw_extensions.payments/SalesforcePaymentsHooks.md +68 -1
- package/dist/docs/dw_extensions.payments/SalesforcePaymentsMerchantAccount.md +154 -0
- package/dist/docs/dw_extensions.payments/SalesforcePaymentsMerchantAccountPaymentMethod.md +96 -0
- package/dist/docs/dw_extensions.payments/SalesforcePaymentsMgr.md +311 -2
- package/dist/docs/dw_extensions.payments/SalesforcePaymentsSiteConfiguration.md +26 -0
- package/dist/docs/dw_extensions.payments/SalesforcePaymentsZone.md +458 -0
- package/dist/docs/dw_order/OrderMgr.md +3 -3
- package/dist/docs/dw_order.hooks/BasketMergeHooks.md +4 -4
- package/dist/docs/dw_order.hooks/CheckoutHooks.md +42 -0
- package/dist/utils/path-resolver.d.ts +5 -0
- package/dist/utils/path-resolver.d.ts.map +1 -1
- package/dist/utils/path-resolver.js +27 -5
- package/dist/utils/path-resolver.js.map +1 -1
- package/package.json +9 -3
- package/.github/ISSUE_TEMPLATE/bug_report.yml +0 -131
- package/.github/ISSUE_TEMPLATE/config.yml +0 -9
- package/.github/ISSUE_TEMPLATE/documentation.yml +0 -117
- package/.github/ISSUE_TEMPLATE/feature_request.yml +0 -151
- package/.github/ISSUE_TEMPLATE/question.yml +0 -102
- package/.github/PULL_REQUEST_TEMPLATE/bug_fix.md +0 -59
- package/.github/PULL_REQUEST_TEMPLATE/documentation.md +0 -48
- package/.github/PULL_REQUEST_TEMPLATE/new_tool.md +0 -55
- package/.github/agents/official-docs-researcher.agent.md +0 -56
- package/.github/dependabot.yml +0 -65
- package/.github/instructions/mcp-node-tests.instructions.md +0 -30
- package/.github/instructions/mcp-yml-tests.instructions.md +0 -27
- package/.github/pull_request_template.md +0 -103
- package/.github/skills/agent-authoring/SKILL.md +0 -66
- package/.github/skills/mcp-log-debugging/SKILL.md +0 -69
- package/.github/skills/mcp-programmatic-testing/SKILL.md +0 -142
- package/.github/skills/mcp-yaml-testing/SKILL.md +0 -136
- package/.github/skills/salesforce-developer-site-scraper/SKILL.md +0 -102
- package/.github/skills/salesforce-developer-site-scraper/scripts/scrape-to-markdown.js +0 -205
- package/.github/skills/salesforce-help-site-scraper/SKILL.md +0 -84
- package/.github/skills/salesforce-help-site-scraper/scripts/scrape-help-to-markdown.js +0 -212
- package/.github/skills/skill-authoring/SKILL.md +0 -228
- package/.github/skills/skill-authoring/references/PATTERNS.md +0 -384
- package/.github/workflows/ci.yml +0 -103
- package/.github/workflows/deploy-pages.yml +0 -59
- package/.github/workflows/publish.yml +0 -112
- package/.github/workflows/update-docs.yml +0 -182
- package/.husky/pre-commit +0 -2
- package/AGENTS.md +0 -638
- package/CONTRIBUTING.md +0 -323
- package/SECURITY.md +0 -148
- package/aegis.config.docs-only.json +0 -9
- package/aegis.config.json +0 -12
- package/aegis.config.with-dw.json +0 -15
- package/ai-instructions/AGENTS.md +0 -628
- package/ai-instructions/skills/sfcc-caching/SKILL.md +0 -89
- package/ai-instructions/skills/sfcc-cartridge-development/SKILL.md +0 -240
- package/ai-instructions/skills/sfcc-forms-development/SKILL.md +0 -261
- package/ai-instructions/skills/sfcc-forms-development/references/ARCHITECTURE-SGJC-SFRA.md +0 -143
- package/ai-instructions/skills/sfcc-forms-development/references/FORM-XML-CHEATSHEET.md +0 -127
- package/ai-instructions/skills/sfcc-fraud-prevention/SKILL.md +0 -95
- package/ai-instructions/skills/sfcc-hooks-registration/SKILL.md +0 -39
- package/ai-instructions/skills/sfcc-isml-development/SKILL.md +0 -370
- package/ai-instructions/skills/sfcc-isml-development/references/REMOTE-INCLUDES.md +0 -116
- package/ai-instructions/skills/sfcc-isml-development/references/SFRA-LAYOUTS.md +0 -50
- package/ai-instructions/skills/sfcc-isml-development/references/SFRA-PAGES-CART-ACCOUNT-AUTH.md +0 -45
- package/ai-instructions/skills/sfcc-isml-development/references/SFRA-PAGES-CATALOG.md +0 -85
- package/ai-instructions/skills/sfcc-isml-development/references/SFRA-STRUCTURE-COMPONENTS.md +0 -63
- package/ai-instructions/skills/sfcc-isml-development/references/UTILITIES-EXPRESSIONS.md +0 -159
- package/ai-instructions/skills/sfcc-isml-development/references/sfra-base-templates-architecture.md +0 -13
- package/ai-instructions/skills/sfcc-job-development/SKILL.md +0 -334
- package/ai-instructions/skills/sfcc-job-development/references/CHUNK-ORIENTED.md +0 -393
- package/ai-instructions/skills/sfcc-job-development/references/STEPTYPES-JSON.md +0 -271
- package/ai-instructions/skills/sfcc-job-development/references/TASK-ORIENTED.md +0 -257
- package/ai-instructions/skills/sfcc-localization/SKILL.md +0 -92
- package/ai-instructions/skills/sfcc-localization/references/CONTROLLERS.md +0 -63
- package/ai-instructions/skills/sfcc-localization/references/FORMATTING.md +0 -29
- package/ai-instructions/skills/sfcc-localization/references/FORMS-LOCALIZATION.md +0 -33
- package/ai-instructions/skills/sfcc-localization/references/JAVASCRIPT-LOCALIZATION.md +0 -41
- package/ai-instructions/skills/sfcc-localization/references/LOCALE-SWITCHING.md +0 -35
- package/ai-instructions/skills/sfcc-localization/references/PATTERNS.md +0 -740
- package/ai-instructions/skills/sfcc-localization/references/PROPERTIES-ENCODING.md +0 -25
- package/ai-instructions/skills/sfcc-localization/references/RESOURCE-BUNDLES.md +0 -67
- package/ai-instructions/skills/sfcc-localization/references/STATIC-FILES.md +0 -23
- package/ai-instructions/skills/sfcc-localization/references/TESTING.md +0 -21
- package/ai-instructions/skills/sfcc-localserviceregistry/SKILL.md +0 -374
- package/ai-instructions/skills/sfcc-logging/SKILL.md +0 -352
- package/ai-instructions/skills/sfcc-logging/references/LOG-FILES.md +0 -282
- package/ai-instructions/skills/sfcc-ocapi-hooks/SKILL.md +0 -350
- package/ai-instructions/skills/sfcc-ocapi-scapi-slas/SKILL.md +0 -108
- package/ai-instructions/skills/sfcc-page-designer/SKILL.md +0 -353
- package/ai-instructions/skills/sfcc-page-designer/references/ATTRIBUTE-TYPES.md +0 -436
- package/ai-instructions/skills/sfcc-page-designer/references/META-DEFINITIONS.md +0 -322
- package/ai-instructions/skills/sfcc-performance/SKILL.md +0 -424
- package/ai-instructions/skills/sfcc-platform-limits/SKILL.md +0 -89
- package/ai-instructions/skills/sfcc-scapi-custom-endpoints/SKILL.md +0 -237
- package/ai-instructions/skills/sfcc-scapi-custom-endpoints/references/AUTHENTICATION.md +0 -214
- package/ai-instructions/skills/sfcc-scapi-custom-endpoints/references/URL-MAPPING.md +0 -253
- package/ai-instructions/skills/sfcc-scapi-hooks/SKILL.md +0 -341
- package/ai-instructions/skills/sfcc-script-evaluation/SKILL.md +0 -380
- package/ai-instructions/skills/sfcc-security/SKILL.md +0 -394
- package/ai-instructions/skills/sfcc-sfra-client-side-js/SKILL.md +0 -270
- package/ai-instructions/skills/sfcc-sfra-client-side-js/references/AJAX-CSRF-VALIDATION.md +0 -285
- package/ai-instructions/skills/sfcc-sfra-client-side-js/references/BASE-MODULE-INDEX.md +0 -206
- package/ai-instructions/skills/sfcc-sfra-client-side-js/references/EXTENSION-PATTERNS.md +0 -165
- package/ai-instructions/skills/sfcc-sfra-client-side-js/references/PLUGIN-PATTERNS.md +0 -185
- package/ai-instructions/skills/sfcc-sfra-controllers/SKILL.md +0 -347
- package/ai-instructions/skills/sfcc-sfra-controllers/references/MIDDLEWARE-REFERENCE.md +0 -257
- package/ai-instructions/skills/sfcc-sfra-controllers/references/REMOTE-INCLUDES.md +0 -193
- package/ai-instructions/skills/sfcc-sfra-controllers/references/standard-sfra-controllers.md +0 -814
- package/ai-instructions/skills/sfcc-sfra-models/SKILL.md +0 -322
- package/ai-instructions/skills/sfcc-sfra-models/references/MODEL-PATTERNS.md +0 -530
- package/ai-instructions/skills/sfcc-sfra-models/references/MODEL-STRUCTURE.md +0 -234
- package/ai-instructions/skills/sfcc-sfra-models/references/TESTING-SECURITY.md +0 -417
- package/ai-instructions/skills/sfcc-sfra-scss/SKILL.md +0 -393
- package/ai-instructions/skills/sfcc-webdav-workflows/SKILL.md +0 -111
- package/docs/TopLevel/APIException.md +0 -68
- package/docs/TopLevel/Array.md +0 -897
- package/docs/TopLevel/ArrayBuffer.md +0 -79
- package/docs/TopLevel/BigInt.md +0 -132
- package/docs/TopLevel/Boolean.md +0 -62
- package/docs/TopLevel/ConversionError.md +0 -23
- package/docs/TopLevel/DataView.md +0 -352
- package/docs/TopLevel/Date.md +0 -924
- package/docs/TopLevel/ES6Iterator.md +0 -33
- package/docs/TopLevel/Error.md +0 -88
- package/docs/TopLevel/EvalError.md +0 -23
- package/docs/TopLevel/Fault.md +0 -87
- package/docs/TopLevel/Float32Array.md +0 -130
- package/docs/TopLevel/Float64Array.md +0 -130
- package/docs/TopLevel/Function.md +0 -105
- package/docs/TopLevel/Generator.md +0 -78
- package/docs/TopLevel/IOError.md +0 -62
- package/docs/TopLevel/Int16Array.md +0 -130
- package/docs/TopLevel/Int32Array.md +0 -130
- package/docs/TopLevel/Int8Array.md +0 -130
- package/docs/TopLevel/InternalError.md +0 -23
- package/docs/TopLevel/Iterable.md +0 -41
- package/docs/TopLevel/Iterator.md +0 -48
- package/docs/TopLevel/JSON.md +0 -162
- package/docs/TopLevel/Map.md +0 -216
- package/docs/TopLevel/Math.md +0 -913
- package/docs/TopLevel/Module.md +0 -45
- package/docs/TopLevel/Namespace.md +0 -96
- package/docs/TopLevel/Number.md +0 -417
- package/docs/TopLevel/Object.md +0 -641
- package/docs/TopLevel/QName.md +0 -96
- package/docs/TopLevel/RangeError.md +0 -23
- package/docs/TopLevel/ReferenceError.md +0 -23
- package/docs/TopLevel/RegExp.md +0 -109
- package/docs/TopLevel/Set.md +0 -165
- package/docs/TopLevel/StopIteration.md +0 -20
- package/docs/TopLevel/String.md +0 -1299
- package/docs/TopLevel/Symbol.md +0 -78
- package/docs/TopLevel/SyntaxError.md +0 -23
- package/docs/TopLevel/SystemError.md +0 -62
- package/docs/TopLevel/TypeError.md +0 -23
- package/docs/TopLevel/URIError.md +0 -23
- package/docs/TopLevel/Uint16Array.md +0 -130
- package/docs/TopLevel/Uint32Array.md +0 -130
- package/docs/TopLevel/Uint8Array.md +0 -130
- package/docs/TopLevel/Uint8ClampedArray.md +0 -130
- package/docs/TopLevel/WeakMap.md +0 -137
- package/docs/TopLevel/WeakSet.md +0 -92
- package/docs/TopLevel/XML.md +0 -937
- package/docs/TopLevel/XMLList.md +0 -484
- package/docs/TopLevel/XMLStreamError.md +0 -74
- package/docs/TopLevel/arguments.md +0 -34
- package/docs/TopLevel/global.md +0 -474
- package/docs/dw_campaign/ABTest.md +0 -47
- package/docs/dw_campaign/ABTestMgr.md +0 -70
- package/docs/dw_campaign/ABTestSegment.md +0 -96
- package/docs/dw_campaign/AmountDiscount.md +0 -51
- package/docs/dw_campaign/ApproachingDiscount.md +0 -124
- package/docs/dw_campaign/BonusChoiceDiscount.md +0 -146
- package/docs/dw_campaign/BonusDiscount.md +0 -48
- package/docs/dw_campaign/Campaign.md +0 -365
- package/docs/dw_campaign/CampaignMgr.md +0 -395
- package/docs/dw_campaign/CampaignStatusCodes.md +0 -48
- package/docs/dw_campaign/Coupon.md +0 -310
- package/docs/dw_campaign/CouponMgr.md +0 -144
- package/docs/dw_campaign/CouponRedemption.md +0 -94
- package/docs/dw_campaign/CouponStatusCodes.md +0 -86
- package/docs/dw_campaign/Discount.md +0 -226
- package/docs/dw_campaign/DiscountPlan.md +0 -282
- package/docs/dw_campaign/FixedPriceDiscount.md +0 -52
- package/docs/dw_campaign/FixedPriceShippingDiscount.md +0 -52
- package/docs/dw_campaign/FreeDiscount.md +0 -17
- package/docs/dw_campaign/FreeShippingDiscount.md +0 -17
- package/docs/dw_campaign/PercentageDiscount.md +0 -52
- package/docs/dw_campaign/PercentageOptionDiscount.md +0 -48
- package/docs/dw_campaign/PriceBookPriceDiscount.md +0 -47
- package/docs/dw_campaign/Promotion.md +0 -874
- package/docs/dw_campaign/PromotionMgr.md +0 -386
- package/docs/dw_campaign/PromotionPlan.md +0 -330
- package/docs/dw_campaign/SlotContent.md +0 -144
- package/docs/dw_campaign/SourceCodeGroup.md +0 -72
- package/docs/dw_campaign/SourceCodeInfo.md +0 -144
- package/docs/dw_campaign/SourceCodeStatusCodes.md +0 -36
- package/docs/dw_campaign/TotalFixedPriceDiscount.md +0 -47
- package/docs/dw_catalog/Catalog.md +0 -122
- package/docs/dw_catalog/CatalogMgr.md +0 -182
- package/docs/dw_catalog/Category.md +0 -1308
- package/docs/dw_catalog/CategoryAssignment.md +0 -192
- package/docs/dw_catalog/CategoryLink.md +0 -126
- package/docs/dw_catalog/PriceBook.md +0 -242
- package/docs/dw_catalog/PriceBookMgr.md +0 -204
- package/docs/dw_catalog/Product.md +0 -2593
- package/docs/dw_catalog/ProductActiveData.md +0 -1275
- package/docs/dw_catalog/ProductAttributeModel.md +0 -277
- package/docs/dw_catalog/ProductAvailabilityLevels.md +0 -142
- package/docs/dw_catalog/ProductAvailabilityModel.md +0 -380
- package/docs/dw_catalog/ProductInventoryList.md +0 -140
- package/docs/dw_catalog/ProductInventoryMgr.md +0 -117
- package/docs/dw_catalog/ProductInventoryRecord.md +0 -563
- package/docs/dw_catalog/ProductLink.md +0 -144
- package/docs/dw_catalog/ProductMgr.md +0 -138
- package/docs/dw_catalog/ProductOption.md +0 -214
- package/docs/dw_catalog/ProductOptionModel.md +0 -246
- package/docs/dw_catalog/ProductOptionValue.md +0 -123
- package/docs/dw_catalog/ProductPriceInfo.md +0 -172
- package/docs/dw_catalog/ProductPriceModel.md +0 -745
- package/docs/dw_catalog/ProductPriceTable.md +0 -134
- package/docs/dw_catalog/ProductSearchHit.md +0 -581
- package/docs/dw_catalog/ProductSearchModel.md +0 -2018
- package/docs/dw_catalog/ProductSearchRefinementDefinition.md +0 -97
- package/docs/dw_catalog/ProductSearchRefinementValue.md +0 -73
- package/docs/dw_catalog/ProductSearchRefinements.md +0 -216
- package/docs/dw_catalog/ProductVariationAttribute.md +0 -100
- package/docs/dw_catalog/ProductVariationAttributeValue.md +0 -238
- package/docs/dw_catalog/ProductVariationModel.md +0 -849
- package/docs/dw_catalog/Recommendation.md +0 -314
- package/docs/dw_catalog/SearchModel.md +0 -901
- package/docs/dw_catalog/SearchRefinementDefinition.md +0 -146
- package/docs/dw_catalog/SearchRefinementValue.md +0 -185
- package/docs/dw_catalog/SearchRefinements.md +0 -180
- package/docs/dw_catalog/SortingOption.md +0 -120
- package/docs/dw_catalog/SortingRule.md +0 -47
- package/docs/dw_catalog/Store.md +0 -562
- package/docs/dw_catalog/StoreGroup.md +0 -96
- package/docs/dw_catalog/StoreInventoryFilter.md +0 -74
- package/docs/dw_catalog/StoreInventoryFilterValue.md +0 -74
- package/docs/dw_catalog/StoreMgr.md +0 -236
- package/docs/dw_catalog/Variant.md +0 -859
- package/docs/dw_catalog/VariationGroup.md +0 -792
- package/docs/dw_content/Content.md +0 -534
- package/docs/dw_content/ContentMgr.md +0 -166
- package/docs/dw_content/ContentSearchModel.md +0 -682
- package/docs/dw_content/ContentSearchRefinementDefinition.md +0 -49
- package/docs/dw_content/ContentSearchRefinementValue.md +0 -17
- package/docs/dw_content/ContentSearchRefinements.md +0 -208
- package/docs/dw_content/Folder.md +0 -467
- package/docs/dw_content/Library.md +0 -121
- package/docs/dw_content/MarkupText.md +0 -88
- package/docs/dw_content/MediaFile.md +0 -317
- package/docs/dw_crypto/CertificateRef.md +0 -42
- package/docs/dw_crypto/CertificateUtils.md +0 -187
- package/docs/dw_crypto/Cipher.md +0 -530
- package/docs/dw_crypto/Encoding.md +0 -220
- package/docs/dw_crypto/JWE.md +0 -224
- package/docs/dw_crypto/JWEHeader.md +0 -172
- package/docs/dw_crypto/JWS.md +0 -264
- package/docs/dw_crypto/JWSHeader.md +0 -148
- package/docs/dw_crypto/KeyRef.md +0 -44
- package/docs/dw_crypto/Mac.md +0 -139
- package/docs/dw_crypto/MessageDigest.md +0 -175
- package/docs/dw_crypto/SecureRandom.md +0 -148
- package/docs/dw_crypto/Signature.md +0 -252
- package/docs/dw_crypto/WeakCipher.md +0 -538
- package/docs/dw_crypto/WeakMac.md +0 -121
- package/docs/dw_crypto/WeakMessageDigest.md +0 -163
- package/docs/dw_crypto/WeakSignature.md +0 -242
- package/docs/dw_crypto/X509Certificate.md +0 -193
- package/docs/dw_customer/AddressBook.md +0 -163
- package/docs/dw_customer/AgentUserMgr.md +0 -83
- package/docs/dw_customer/AgentUserStatusCodes.md +0 -96
- package/docs/dw_customer/AuthenticationStatus.md +0 -138
- package/docs/dw_customer/Credentials.md +0 -494
- package/docs/dw_customer/Customer.md +0 -571
- package/docs/dw_customer/CustomerActiveData.md +0 -552
- package/docs/dw_customer/CustomerAddress.md +0 -852
- package/docs/dw_customer/CustomerCDPData.md +0 -70
- package/docs/dw_customer/CustomerContextMgr.md +0 -64
- package/docs/dw_customer/CustomerGroup.md +0 -134
- package/docs/dw_customer/CustomerList.md +0 -71
- package/docs/dw_customer/CustomerMgr.md +0 -735
- package/docs/dw_customer/CustomerPasswordConstraints.md +0 -142
- package/docs/dw_customer/CustomerPaymentInstrument.md +0 -125
- package/docs/dw_customer/CustomerStatusCodes.md +0 -30
- package/docs/dw_customer/EncryptedObject.md +0 -18
- package/docs/dw_customer/ExternalProfile.md +0 -160
- package/docs/dw_customer/OrderHistory.md +0 -111
- package/docs/dw_customer/ProductList.md +0 -1000
- package/docs/dw_customer/ProductListItem.md +0 -504
- package/docs/dw_customer/ProductListItemPurchase.md +0 -145
- package/docs/dw_customer/ProductListMgr.md +0 -234
- package/docs/dw_customer/ProductListRegistrant.md +0 -193
- package/docs/dw_customer/Profile.md +0 -1128
- package/docs/dw_customer/Wallet.md +0 -118
- package/docs/dw_extensions.applepay/ApplePayHookResult.md +0 -209
- package/docs/dw_extensions.applepay/ApplePayHooks.md +0 -255
- package/docs/dw_extensions.facebook/FacebookFeedHooks.md +0 -47
- package/docs/dw_extensions.facebook/FacebookProduct.md +0 -1621
- package/docs/dw_extensions.paymentrequest/PaymentRequestHookResult.md +0 -159
- package/docs/dw_extensions.paymentrequest/PaymentRequestHooks.md +0 -160
- package/docs/dw_extensions.payments/SalesforceBancontactPaymentDetails.md +0 -79
- package/docs/dw_extensions.payments/SalesforceCardPaymentDetails.md +0 -103
- package/docs/dw_extensions.payments/SalesforceEpsPaymentDetails.md +0 -51
- package/docs/dw_extensions.payments/SalesforceIdealPaymentDetails.md +0 -51
- package/docs/dw_extensions.payments/SalesforceKlarnaPaymentDetails.md +0 -51
- package/docs/dw_extensions.payments/SalesforcePayPalOrder.md +0 -246
- package/docs/dw_extensions.payments/SalesforcePayPalOrderAddress.md +0 -191
- package/docs/dw_extensions.payments/SalesforcePayPalOrderPayer.md +0 -118
- package/docs/dw_extensions.payments/SalesforcePayPalPaymentDetails.md +0 -79
- package/docs/dw_extensions.payments/SalesforcePaymentDetails.md +0 -57
- package/docs/dw_extensions.payments/SalesforcePaymentIntent.md +0 -281
- package/docs/dw_extensions.payments/SalesforcePaymentMethod.md +0 -346
- package/docs/dw_extensions.payments/SalesforcePaymentRequest.md +0 -784
- package/docs/dw_extensions.payments/SalesforcePaymentsHooks.md +0 -45
- package/docs/dw_extensions.payments/SalesforcePaymentsMgr.md +0 -634
- package/docs/dw_extensions.payments/SalesforcePaymentsSiteConfiguration.md +0 -95
- package/docs/dw_extensions.payments/SalesforceSepaDebitPaymentDetails.md +0 -51
- package/docs/dw_extensions.payments/SalesforceVenmoPaymentDetails.md +0 -79
- package/docs/dw_extensions.pinterest/PinterestAvailability.md +0 -86
- package/docs/dw_extensions.pinterest/PinterestFeedHooks.md +0 -69
- package/docs/dw_extensions.pinterest/PinterestOrder.md +0 -232
- package/docs/dw_extensions.pinterest/PinterestOrderHooks.md +0 -45
- package/docs/dw_extensions.pinterest/PinterestProduct.md +0 -850
- package/docs/dw_io/CSVStreamReader.md +0 -80
- package/docs/dw_io/CSVStreamWriter.md +0 -60
- package/docs/dw_io/File.md +0 -614
- package/docs/dw_io/FileReader.md +0 -41
- package/docs/dw_io/FileWriter.md +0 -103
- package/docs/dw_io/InputStream.md +0 -34
- package/docs/dw_io/OutputStream.md +0 -34
- package/docs/dw_io/PrintWriter.md +0 -71
- package/docs/dw_io/RandomAccessFileReader.md +0 -173
- package/docs/dw_io/Reader.md +0 -274
- package/docs/dw_io/StringWriter.md +0 -81
- package/docs/dw_io/Writer.md +0 -92
- package/docs/dw_io/XMLIndentingStreamWriter.md +0 -112
- package/docs/dw_io/XMLStreamConstants.md +0 -114
- package/docs/dw_io/XMLStreamReader.md +0 -1043
- package/docs/dw_io/XMLStreamWriter.md +0 -572
- package/docs/dw_job/JobExecution.md +0 -107
- package/docs/dw_job/JobStepExecution.md +0 -151
- package/docs/dw_net/FTPClient.md +0 -699
- package/docs/dw_net/FTPFileInfo.md +0 -122
- package/docs/dw_net/HTTPClient.md +0 -831
- package/docs/dw_net/HTTPClientLoggingConfig.md +0 -296
- package/docs/dw_net/HTTPRequestPart.md +0 -206
- package/docs/dw_net/Mail.md +0 -551
- package/docs/dw_net/SFTPClient.md +0 -591
- package/docs/dw_net/SFTPFileInfo.md +0 -122
- package/docs/dw_net/WebDAVClient.md +0 -715
- package/docs/dw_net/WebDAVFileInfo.md +0 -184
- package/docs/dw_object/ActiveData.md +0 -75
- package/docs/dw_object/CustomAttributes.md +0 -16
- package/docs/dw_object/CustomObject.md +0 -73
- package/docs/dw_object/CustomObjectMgr.md +0 -291
- package/docs/dw_object/Extensible.md +0 -64
- package/docs/dw_object/ExtensibleObject.md +0 -68
- package/docs/dw_object/Note.md +0 -121
- package/docs/dw_object/ObjectAttributeDefinition.md +0 -481
- package/docs/dw_object/ObjectAttributeGroup.md +0 -170
- package/docs/dw_object/ObjectAttributeValueDefinition.md +0 -72
- package/docs/dw_object/ObjectTypeDefinition.md +0 -216
- package/docs/dw_object/PersistentObject.md +0 -94
- package/docs/dw_object/SimpleExtensible.md +0 -46
- package/docs/dw_object/SystemObjectMgr.md +0 -153
- package/docs/dw_order/AbstractItem.md +0 -244
- package/docs/dw_order/AbstractItemCtnr.md +0 -240
- package/docs/dw_order/Appeasement.md +0 -367
- package/docs/dw_order/AppeasementItem.md +0 -90
- package/docs/dw_order/Basket.md +0 -362
- package/docs/dw_order/BasketMgr.md +0 -418
- package/docs/dw_order/BonusDiscountLineItem.md +0 -248
- package/docs/dw_order/CouponLineItem.md +0 -272
- package/docs/dw_order/CreateAgentBasketLimitExceededException.md +0 -18
- package/docs/dw_order/CreateBasketFromOrderException.md +0 -26
- package/docs/dw_order/CreateCouponLineItemException.md +0 -26
- package/docs/dw_order/CreateOrderException.md +0 -18
- package/docs/dw_order/CreateTemporaryBasketLimitExceededException.md +0 -18
- package/docs/dw_order/GiftCertificate.md +0 -569
- package/docs/dw_order/GiftCertificateLineItem.md +0 -324
- package/docs/dw_order/GiftCertificateMgr.md +0 -197
- package/docs/dw_order/GiftCertificateStatusCodes.md +0 -60
- package/docs/dw_order/Invoice.md +0 -418
- package/docs/dw_order/InvoiceItem.md +0 -222
- package/docs/dw_order/LineItem.md +0 -532
- package/docs/dw_order/LineItemCtnr.md +0 -2431
- package/docs/dw_order/Order.md +0 -2567
- package/docs/dw_order/OrderAddress.md +0 -807
- package/docs/dw_order/OrderItem.md +0 -536
- package/docs/dw_order/OrderMgr.md +0 -535
- package/docs/dw_order/OrderPaymentInstrument.md +0 -220
- package/docs/dw_order/OrderProcessStatusCodes.md +0 -84
- package/docs/dw_order/PaymentCard.md +0 -217
- package/docs/dw_order/PaymentInstrument.md +0 -1462
- package/docs/dw_order/PaymentMethod.md +0 -242
- package/docs/dw_order/PaymentMgr.md +0 -117
- package/docs/dw_order/PaymentProcessor.md +0 -70
- package/docs/dw_order/PaymentStatusCodes.md +0 -42
- package/docs/dw_order/PaymentTransaction.md +0 -328
- package/docs/dw_order/PriceAdjustment.md +0 -640
- package/docs/dw_order/PriceAdjustmentLimitTypes.md +0 -38
- package/docs/dw_order/ProductLineItem.md +0 -1821
- package/docs/dw_order/ProductShippingCost.md +0 -96
- package/docs/dw_order/ProductShippingLineItem.md +0 -326
- package/docs/dw_order/ProductShippingModel.md +0 -125
- package/docs/dw_order/Return.md +0 -360
- package/docs/dw_order/ReturnCase.md +0 -400
- package/docs/dw_order/ReturnCaseItem.md +0 -373
- package/docs/dw_order/ReturnItem.md +0 -362
- package/docs/dw_order/Shipment.md +0 -1251
- package/docs/dw_order/ShipmentShippingCost.md +0 -46
- package/docs/dw_order/ShipmentShippingModel.md +0 -146
- package/docs/dw_order/ShippingLineItem.md +0 -278
- package/docs/dw_order/ShippingLocation.md +0 -366
- package/docs/dw_order/ShippingMethod.md +0 -266
- package/docs/dw_order/ShippingMgr.md +0 -158
- package/docs/dw_order/ShippingOrder.md +0 -561
- package/docs/dw_order/ShippingOrderItem.md +0 -355
- package/docs/dw_order/SumItem.md +0 -147
- package/docs/dw_order/TaxGroup.md +0 -143
- package/docs/dw_order/TaxItem.md +0 -74
- package/docs/dw_order/TaxMgr.md +0 -227
- package/docs/dw_order/TrackingInfo.md +0 -312
- package/docs/dw_order/TrackingRef.md +0 -113
- package/docs/dw_order.hooks/BasketMergeHooks.md +0 -42
- package/docs/dw_order.hooks/CalculateHooks.md +0 -77
- package/docs/dw_order.hooks/OrderHooks.md +0 -41
- package/docs/dw_order.hooks/PaymentHooks.md +0 -180
- package/docs/dw_order.hooks/ReturnHooks.md +0 -135
- package/docs/dw_order.hooks/ShippingOrderHooks.md +0 -245
- package/docs/dw_rpc/SOAPUtil.md +0 -465
- package/docs/dw_rpc/Stub.md +0 -289
- package/docs/dw_rpc/WebReference.md +0 -83
- package/docs/dw_suggest/BrandSuggestions.md +0 -17
- package/docs/dw_suggest/CategorySuggestions.md +0 -53
- package/docs/dw_suggest/ContentSuggestions.md +0 -53
- package/docs/dw_suggest/CustomSuggestions.md +0 -17
- package/docs/dw_suggest/ProductSuggestions.md +0 -53
- package/docs/dw_suggest/SearchPhraseSuggestions.md +0 -117
- package/docs/dw_suggest/SuggestModel.md +0 -403
- package/docs/dw_suggest/SuggestedCategory.md +0 -46
- package/docs/dw_suggest/SuggestedContent.md +0 -46
- package/docs/dw_suggest/SuggestedPhrase.md +0 -70
- package/docs/dw_suggest/SuggestedProduct.md +0 -47
- package/docs/dw_suggest/SuggestedTerm.md +0 -143
- package/docs/dw_suggest/SuggestedTerms.md +0 -132
- package/docs/dw_suggest/Suggestions.md +0 -179
- package/docs/dw_svc/FTPService.md +0 -118
- package/docs/dw_svc/FTPServiceDefinition.md +0 -69
- package/docs/dw_svc/HTTPFormService.md +0 -18
- package/docs/dw_svc/HTTPFormServiceDefinition.md +0 -18
- package/docs/dw_svc/HTTPService.md +0 -415
- package/docs/dw_svc/HTTPServiceDefinition.md +0 -303
- package/docs/dw_svc/LocalServiceRegistry.md +0 -43
- package/docs/dw_svc/Result.md +0 -303
- package/docs/dw_svc/SOAPService.md +0 -115
- package/docs/dw_svc/SOAPServiceDefinition.md +0 -17
- package/docs/dw_svc/Service.md +0 -295
- package/docs/dw_svc/ServiceCallback.md +0 -268
- package/docs/dw_svc/ServiceConfig.md +0 -120
- package/docs/dw_svc/ServiceCredential.md +0 -156
- package/docs/dw_svc/ServiceDefinition.md +0 -176
- package/docs/dw_svc/ServiceProfile.md +0 -168
- package/docs/dw_svc/ServiceRegistry.md +0 -109
- package/docs/dw_system/AgentUserStatusCodes.md +0 -21
- package/docs/dw_system/Cache.md +0 -102
- package/docs/dw_system/CacheMgr.md +0 -42
- package/docs/dw_system/HookMgr.md +0 -66
- package/docs/dw_system/InternalObject.md +0 -56
- package/docs/dw_system/JobProcessMonitor.md +0 -124
- package/docs/dw_system/Log.md +0 -237
- package/docs/dw_system/LogNDC.md +0 -88
- package/docs/dw_system/Logger.md +0 -263
- package/docs/dw_system/OrganizationPreferences.md +0 -18
- package/docs/dw_system/Pipeline.md +0 -73
- package/docs/dw_system/PipelineDictionary.md +0 -16
- package/docs/dw_system/RESTErrorResponse.md +0 -66
- package/docs/dw_system/RESTResponseMgr.md +0 -258
- package/docs/dw_system/RESTSuccessResponse.md +0 -39
- package/docs/dw_system/RemoteInclude.md +0 -74
- package/docs/dw_system/Request.md +0 -839
- package/docs/dw_system/RequestHooks.md +0 -59
- package/docs/dw_system/Response.md +0 -522
- package/docs/dw_system/SearchStatus.md +0 -151
- package/docs/dw_system/Session.md +0 -476
- package/docs/dw_system/Site.md +0 -585
- package/docs/dw_system/SitePreferences.md +0 -49
- package/docs/dw_system/Status.md +0 -273
- package/docs/dw_system/StatusItem.md +0 -273
- package/docs/dw_system/System.md +0 -200
- package/docs/dw_system/Transaction.md +0 -84
- package/docs/dw_util/ArrayList.md +0 -50
- package/docs/dw_util/Assert.md +0 -391
- package/docs/dw_util/BigInteger.md +0 -326
- package/docs/dw_util/Bytes.md +0 -252
- package/docs/dw_util/Calendar.md +0 -921
- package/docs/dw_util/Collection.md +0 -338
- package/docs/dw_util/Currency.md +0 -163
- package/docs/dw_util/DateUtils.md +0 -86
- package/docs/dw_util/Decimal.md +0 -438
- package/docs/dw_util/FilteringCollection.md +0 -93
- package/docs/dw_util/Geolocation.md +0 -271
- package/docs/dw_util/HashMap.md +0 -43
- package/docs/dw_util/HashSet.md +0 -46
- package/docs/dw_util/Iterator.md +0 -97
- package/docs/dw_util/LinkedHashMap.md +0 -43
- package/docs/dw_util/LinkedHashSet.md +0 -46
- package/docs/dw_util/List.md +0 -519
- package/docs/dw_util/Locale.md +0 -267
- package/docs/dw_util/Map.md +0 -313
- package/docs/dw_util/MapEntry.md +0 -70
- package/docs/dw_util/MappingKey.md +0 -76
- package/docs/dw_util/MappingMgr.md +0 -122
- package/docs/dw_util/PropertyComparator.md +0 -51
- package/docs/dw_util/SecureEncoder.md +0 -350
- package/docs/dw_util/SecureFilter.md +0 -350
- package/docs/dw_util/SeekableIterator.md +0 -176
- package/docs/dw_util/Set.md +0 -19
- package/docs/dw_util/SortedMap.md +0 -148
- package/docs/dw_util/SortedSet.md +0 -151
- package/docs/dw_util/StringUtils.md +0 -753
- package/docs/dw_util/Template.md +0 -88
- package/docs/dw_util/UUIDUtils.md +0 -38
- package/docs/dw_value/EnumValue.md +0 -92
- package/docs/dw_value/MimeEncodedText.md +0 -103
- package/docs/dw_value/Money.md +0 -610
- package/docs/dw_value/Quantity.md +0 -376
- package/docs/dw_web/CSRFProtection.md +0 -83
- package/docs/dw_web/ClickStream.md +0 -157
- package/docs/dw_web/ClickStreamEntry.md +0 -289
- package/docs/dw_web/Cookie.md +0 -396
- package/docs/dw_web/Cookies.md +0 -46
- package/docs/dw_web/Form.md +0 -74
- package/docs/dw_web/FormAction.md +0 -199
- package/docs/dw_web/FormElement.md +0 -220
- package/docs/dw_web/FormElementValidationResult.md +0 -157
- package/docs/dw_web/FormField.md +0 -603
- package/docs/dw_web/FormFieldOption.md +0 -238
- package/docs/dw_web/FormFieldOptions.md +0 -42
- package/docs/dw_web/FormGroup.md +0 -199
- package/docs/dw_web/FormList.md +0 -126
- package/docs/dw_web/FormListItem.md +0 -48
- package/docs/dw_web/Forms.md +0 -16
- package/docs/dw_web/HttpParameter.md +0 -513
- package/docs/dw_web/HttpParameterMap.md +0 -185
- package/docs/dw_web/LoopIterator.md +0 -261
- package/docs/dw_web/PageMetaData.md +0 -230
- package/docs/dw_web/PageMetaTag.md +0 -142
- package/docs/dw_web/PagingModel.md +0 -389
- package/docs/dw_web/Resource.md +0 -126
- package/docs/dw_web/URL.md +0 -213
- package/docs/dw_web/URLAction.md +0 -26
- package/docs/dw_web/URLParameter.md +0 -22
- package/docs/dw_web/URLRedirect.md +0 -71
- package/docs/dw_web/URLRedirectMgr.md +0 -73
- package/docs/dw_web/URLUtils.md +0 -1264
- package/docs/isml/isactivedatacontext.md +0 -382
- package/docs/isml/isactivedatahead.md +0 -566
- package/docs/isml/isanalyticsoff.md +0 -537
- package/docs/isml/isapplepay.md +0 -667
- package/docs/isml/isbreak.md +0 -687
- package/docs/isml/isbuynow.md +0 -682
- package/docs/isml/iscache.md +0 -802
- package/docs/isml/iscomment.md +0 -794
- package/docs/isml/iscomponent.md +0 -797
- package/docs/isml/iscontent.md +0 -594
- package/docs/isml/iscontinue.md +0 -563
- package/docs/isml/iscookie.md +0 -798
- package/docs/isml/isdecorate.md +0 -818
- package/docs/isml/isif.md +0 -737
- package/docs/isml/isinclude.md +0 -874
- package/docs/isml/isloop.md +0 -377
- package/docs/isml/ismodule.md +0 -844
- package/docs/isml/isnext.md +0 -672
- package/docs/isml/isobject.md +0 -760
- package/docs/isml/ispayment.md +0 -577
- package/docs/isml/ispaymentmessages.md +0 -664
- package/docs/isml/isprint.md +0 -875
- package/docs/isml/isredirect.md +0 -716
- package/docs/isml/isremove.md +0 -725
- package/docs/isml/isreplace.md +0 -783
- package/docs/isml/isscript.md +0 -859
- package/docs/isml/isselect.md +0 -908
- package/docs/isml/isset.md +0 -585
- package/docs/isml/isslot.md +0 -824
- package/docs/isml/isstatus.md +0 -711
- package/docs/sfra/account.md +0 -145
- package/docs/sfra/address.md +0 -84
- package/docs/sfra/billing.md +0 -90
- package/docs/sfra/cart.md +0 -134
- package/docs/sfra/categories.md +0 -124
- package/docs/sfra/content.md +0 -133
- package/docs/sfra/locale.md +0 -126
- package/docs/sfra/order.md +0 -219
- package/docs/sfra/payment.md +0 -131
- package/docs/sfra/price-default.md +0 -118
- package/docs/sfra/price-range.md +0 -77
- package/docs/sfra/price-tiered.md +0 -117
- package/docs/sfra/product-bundle.md +0 -164
- package/docs/sfra/product-full.md +0 -179
- package/docs/sfra/product-line-items.md +0 -147
- package/docs/sfra/product-search.md +0 -245
- package/docs/sfra/product-tile.md +0 -95
- package/docs/sfra/querystring.md +0 -240
- package/docs/sfra/render.md +0 -354
- package/docs/sfra/request.md +0 -210
- package/docs/sfra/response.md +0 -391
- package/docs/sfra/server.md +0 -375
- package/docs/sfra/shipping.md +0 -181
- package/docs/sfra/store.md +0 -145
- package/docs/sfra/stores.md +0 -190
- package/docs/sfra/totals.md +0 -184
- package/docs-site-v2/.vitepress/config.mts +0 -190
- package/docs-site-v2/.vitepress/theme/components/AssistantTabs.vue +0 -96
- package/docs-site-v2/.vitepress/theme/components/Callout.vue +0 -10
- package/docs-site-v2/.vitepress/theme/components/Collapsible.vue +0 -14
- package/docs-site-v2/.vitepress/theme/components/DwJsonBuilder.vue +0 -82
- package/docs-site-v2/.vitepress/theme/components/HomeSections.vue +0 -552
- package/docs-site-v2/.vitepress/theme/components/InstructionFilesTabs.vue +0 -87
- package/docs-site-v2/.vitepress/theme/components/ModeTabs.vue +0 -70
- package/docs-site-v2/.vitepress/theme/components/NewcomerCTA.vue +0 -14
- package/docs-site-v2/.vitepress/theme/components/QuickStartCards.vue +0 -20
- package/docs-site-v2/.vitepress/theme/components/QuickStartHero.vue +0 -20
- package/docs-site-v2/.vitepress/theme/components/SkillsList.vue +0 -48
- package/docs-site-v2/.vitepress/theme/components/ToolExplorer.vue +0 -85
- package/docs-site-v2/.vitepress/theme/custom.css +0 -1373
- package/docs-site-v2/.vitepress/theme/index.ts +0 -39
- package/docs-site-v2/data/skills.ts +0 -147
- package/docs-site-v2/data/tools.ts +0 -490
- package/docs-site-v2/development/index.md +0 -151
- package/docs-site-v2/examples/index.md +0 -333
- package/docs-site-v2/features/index.md +0 -144
- package/docs-site-v2/guide/ai-interfaces.md +0 -58
- package/docs-site-v2/guide/configuration.md +0 -208
- package/docs-site-v2/guide/index.md +0 -50
- package/docs-site-v2/index.md +0 -32
- package/docs-site-v2/package-lock.json +0 -2511
- package/docs-site-v2/package.json +0 -15
- package/docs-site-v2/public/404.html +0 -15
- package/docs-site-v2/public/android-chrome-192x192.png +0 -0
- package/docs-site-v2/public/android-chrome-512x512.png +0 -0
- package/docs-site-v2/public/apple-touch-icon.png +0 -0
- package/docs-site-v2/public/explain-product-pricing-methods-no-mcp.png +0 -0
- package/docs-site-v2/public/explain-product-pricing-methods.png +0 -0
- package/docs-site-v2/public/favicon-16x16.png +0 -0
- package/docs-site-v2/public/favicon-32x32.png +0 -0
- package/docs-site-v2/public/favicon.ico +0 -0
- package/docs-site-v2/public/index.css +0 -4174
- package/docs-site-v2/public/llms.txt +0 -44
- package/docs-site-v2/public/logo-dark.svg +0 -8
- package/docs-site-v2/public/logo.svg +0 -8
- package/docs-site-v2/public/robots.txt +0 -20
- package/docs-site-v2/public/site.webmanifest +0 -50
- package/docs-site-v2/public/sitemap.xml +0 -90
- package/docs-site-v2/script-debugger/index.md +0 -105
- package/docs-site-v2/scripts/generate-llms.js +0 -71
- package/docs-site-v2/scripts/generate-sitemap.js +0 -97
- package/docs-site-v2/security/index.md +0 -115
- package/docs-site-v2/skills/index.md +0 -40
- package/docs-site-v2/tools/index.md +0 -36
- package/docs-site-v2/troubleshooting/index.md +0 -204
- package/eslint.config.js +0 -139
- package/jest.config.js +0 -27
- package/memories/repo/docs-site-v2-build.json +0 -11
- package/scripts/convert-docs.js +0 -633
- package/scripts/validate-server-json.js +0 -68
- package/server.json +0 -20
- package/src/clients/agent-instructions-client.ts +0 -370
- package/src/clients/base/abstract-documentation-client.ts +0 -405
- package/src/clients/base/http-client.ts +0 -152
- package/src/clients/base/oauth-token.ts +0 -164
- package/src/clients/base/ocapi-auth-client.ts +0 -133
- package/src/clients/cartridge/cartridge-generation-client.ts +0 -302
- package/src/clients/cartridge/cartridge-structure.ts +0 -37
- package/src/clients/cartridge/cartridge-templates.ts +0 -246
- package/src/clients/cartridge/index.ts +0 -6
- package/src/clients/docs/class-content-parser.ts +0 -308
- package/src/clients/docs/class-name-resolver.ts +0 -99
- package/src/clients/docs/documentation-scanner.ts +0 -255
- package/src/clients/docs/index.ts +0 -16
- package/src/clients/docs/referenced-types-extractor.ts +0 -92
- package/src/clients/docs-client.ts +0 -393
- package/src/clients/isml-client.ts +0 -353
- package/src/clients/log-client.ts +0 -19
- package/src/clients/ocapi/code-versions-client.ts +0 -54
- package/src/clients/ocapi/site-preferences-client.ts +0 -106
- package/src/clients/ocapi/system-objects-client.ts +0 -148
- package/src/clients/ocapi-client.ts +0 -53
- package/src/clients/script-debugger/index.ts +0 -5
- package/src/clients/script-debugger/script-debugger-client.ts +0 -754
- package/src/clients/sfra-client.ts +0 -339
- package/src/config/configuration-factory.ts +0 -201
- package/src/config/dw-json-loader.ts +0 -248
- package/src/config/workspace-roots.ts +0 -540
- package/src/constants/index.ts +0 -1
- package/src/core/handlers/abstract-client-handler.ts +0 -85
- package/src/core/handlers/agent-instructions-handler.ts +0 -48
- package/src/core/handlers/base-handler.ts +0 -172
- package/src/core/handlers/cartridge-handler.ts +0 -38
- package/src/core/handlers/client-factory.ts +0 -140
- package/src/core/handlers/code-version-handler.ts +0 -43
- package/src/core/handlers/docs-handler.ts +0 -19
- package/src/core/handlers/isml-handler.ts +0 -19
- package/src/core/handlers/job-log-handler.ts +0 -39
- package/src/core/handlers/log-handler.ts +0 -39
- package/src/core/handlers/script-debugger-handler.ts +0 -46
- package/src/core/handlers/sfra-handler.ts +0 -23
- package/src/core/handlers/simple-client-handler.ts +0 -78
- package/src/core/handlers/system-object-handler.ts +0 -43
- package/src/core/handlers/validation-helpers.ts +0 -206
- package/src/core/instruction-advisor.ts +0 -122
- package/src/core/server.ts +0 -374
- package/src/core/tool-definitions.ts +0 -30
- package/src/core/tool-schemas/agent-instruction-tools.ts +0 -72
- package/src/core/tool-schemas/cartridge-tools.ts +0 -29
- package/src/core/tool-schemas/code-version-tools.ts +0 -28
- package/src/core/tool-schemas/documentation-tools.ts +0 -104
- package/src/core/tool-schemas/index.ts +0 -27
- package/src/core/tool-schemas/isml-tools.ts +0 -89
- package/src/core/tool-schemas/log-tools.ts +0 -196
- package/src/core/tool-schemas/script-debugger-tools.ts +0 -83
- package/src/core/tool-schemas/sfra-tools.ts +0 -65
- package/src/core/tool-schemas/shared-schemas.ts +0 -158
- package/src/core/tool-schemas/system-object-tools.ts +0 -127
- package/src/index.ts +0 -20
- package/src/main.ts +0 -161
- package/src/services/file-system-service.ts +0 -117
- package/src/services/index.ts +0 -11
- package/src/services/path-service.ts +0 -124
- package/src/tool-configs/agent-instructions-tool-config.ts +0 -83
- package/src/tool-configs/cartridge-tool-config.ts +0 -41
- package/src/tool-configs/code-version-tool-config.ts +0 -37
- package/src/tool-configs/docs-tool-config.ts +0 -103
- package/src/tool-configs/isml-tool-config.ts +0 -87
- package/src/tool-configs/job-log-tool-config.ts +0 -119
- package/src/tool-configs/log-tool-config.ts +0 -110
- package/src/tool-configs/script-debugger-tool-config.ts +0 -69
- package/src/tool-configs/sfra-tool-config.ts +0 -74
- package/src/tool-configs/system-object-tool-config.ts +0 -142
- package/src/types/types.ts +0 -125
- package/src/utils/cache.ts +0 -291
- package/src/utils/category-utils.ts +0 -70
- package/src/utils/log-tool-constants.ts +0 -95
- package/src/utils/logger.ts +0 -260
- package/src/utils/markdown-utils.ts +0 -280
- package/src/utils/ocapi-url-builder.ts +0 -48
- package/src/utils/path-resolver.ts +0 -69
- package/src/utils/path-validation.ts +0 -113
- package/src/utils/query-builder.ts +0 -84
- package/src/utils/utils.ts +0 -139
- package/src/utils/validator.ts +0 -162
- package/tests/__mocks__/docs-client.ts +0 -8
- package/tests/__mocks__/src/clients/base/http-client.js +0 -43
- package/tests/__mocks__/webdav.js +0 -14
- package/tests/base-handler.test.ts +0 -527
- package/tests/base-http-client.test.ts +0 -311
- package/tests/cache.test.ts +0 -453
- package/tests/cartridge-handler.test.ts +0 -290
- package/tests/class-content-parser.test.ts +0 -629
- package/tests/class-name-resolver.test.ts +0 -365
- package/tests/client-factory.test.ts +0 -280
- package/tests/code-version-handler.test.ts +0 -291
- package/tests/code-versions-client.test.ts +0 -156
- package/tests/config.test.ts +0 -285
- package/tests/configuration-factory.test.ts +0 -233
- package/tests/docs-handler.test.ts +0 -359
- package/tests/documentation-scanner.test.ts +0 -755
- package/tests/file-system-service.test.ts +0 -111
- package/tests/isml-client.test.ts +0 -463
- package/tests/isml-handler.test.ts +0 -375
- package/tests/job-log-handler.test.ts +0 -283
- package/tests/log-client.test.ts +0 -768
- package/tests/log-handler.test.ts +0 -365
- package/tests/log-processor.test.ts +0 -243
- package/tests/log-validation.test.ts +0 -149
- package/tests/logger.test.ts +0 -303
- package/tests/mcp/AGENTS.md +0 -162
- package/tests/mcp/README.md +0 -237
- package/tests/mcp/node/activate-code-version-advanced.full-mode.programmatic.test.js +0 -669
- package/tests/mcp/node/code-versions.full-mode.programmatic.test.js +0 -605
- package/tests/mcp/node/evaluate-script.full-mode.programmatic.test.js +0 -387
- package/tests/mcp/node/generate-cartridge-structure.docs-only.programmatic.test.js +0 -644
- package/tests/mcp/node/get-available-sfra-documents.programmatic.test.js +0 -274
- package/tests/mcp/node/get-isml-categories.programmatic.test.js +0 -278
- package/tests/mcp/node/get-isml-element.programmatic.test.js +0 -278
- package/tests/mcp/node/get-isml-elements-by-category.programmatic.test.js +0 -363
- package/tests/mcp/node/get-job-execution-summary.full-mode.programmatic.test.js +0 -432
- package/tests/mcp/node/get-job-log-entries.full-mode.programmatic.test.js +0 -488
- package/tests/mcp/node/get-latest-debug.full-mode.programmatic.test.js +0 -338
- package/tests/mcp/node/get-latest-error.full-mode.programmatic.test.js +0 -255
- package/tests/mcp/node/get-latest-info.full-mode.programmatic.test.js +0 -347
- package/tests/mcp/node/get-latest-job-log-files.full-mode.programmatic.test.js +0 -460
- package/tests/mcp/node/get-latest-warn.full-mode.programmatic.test.js +0 -454
- package/tests/mcp/node/get-log-file-contents.full-mode.programmatic.test.js +0 -381
- package/tests/mcp/node/get-sfcc-class-documentation.docs-only.programmatic.test.js +0 -371
- package/tests/mcp/node/get-sfcc-class-info.docs-only.programmatic.test.js +0 -1032
- package/tests/mcp/node/get-sfra-categories.docs-only.programmatic.test.js +0 -369
- package/tests/mcp/node/get-sfra-document.programmatic.test.js +0 -473
- package/tests/mcp/node/get-sfra-documents-by-category.docs-only.programmatic.test.js +0 -510
- package/tests/mcp/node/get-system-object-definition.full-mode.programmatic.test.js +0 -389
- package/tests/mcp/node/get-system-object-definitions.docs-only.programmatic.test.js +0 -300
- package/tests/mcp/node/get-system-object-definitions.full-mode.programmatic.test.js +0 -387
- package/tests/mcp/node/list-isml-elements.programmatic.test.js +0 -311
- package/tests/mcp/node/list-log-files.full-mode.programmatic.test.js +0 -150
- package/tests/mcp/node/list-sfcc-classes.docs-only.programmatic.test.js +0 -612
- package/tests/mcp/node/search-custom-object-attribute-definitions.full-mode.programmatic.test.js +0 -875
- package/tests/mcp/node/search-isml-elements.programmatic.test.js +0 -325
- package/tests/mcp/node/search-job-logs-by-name.full-mode.programmatic.test.js +0 -330
- package/tests/mcp/node/search-job-logs.full-mode.programmatic.test.js +0 -526
- package/tests/mcp/node/search-logs.full-mode.programmatic.test.js +0 -478
- package/tests/mcp/node/search-sfcc-classes.docs-only.programmatic.test.js +0 -334
- package/tests/mcp/node/search-sfcc-methods.docs-only.programmatic.test.js +0 -487
- package/tests/mcp/node/search-sfra-documentation.docs-only.programmatic.test.js +0 -563
- package/tests/mcp/node/search-site-preferences.full-mode.programmatic.test.js +0 -556
- package/tests/mcp/node/search-system-object-attribute-definitions.full-mode.programmatic.test.js +0 -744
- package/tests/mcp/node/search-system-object-attribute-groups.full-mode.programmatic.test.js +0 -657
- package/tests/mcp/node/summarize-logs.full-mode.programmatic.test.js +0 -357
- package/tests/mcp/node/tools.docs-only.programmatic.test.js +0 -515
- package/tests/mcp/node/tools.full-mode.programmatic.test.js +0 -154
- package/tests/mcp/test-fixtures/dw.json +0 -10
- package/tests/mcp/yaml/activate-code-version.docs-only.test.mcp.yml +0 -318
- package/tests/mcp/yaml/activate-code-version.full-mode.test.mcp.yml +0 -507
- package/tests/mcp/yaml/evaluate-script.full-mode.test.mcp.yml +0 -281
- package/tests/mcp/yaml/get-available-sfra-documents.docs-only.test.mcp.yml +0 -684
- package/tests/mcp/yaml/get-available-sfra-documents.full-mode.test.mcp.yml +0 -684
- package/tests/mcp/yaml/get-code-versions.docs-only.test.mcp.yml +0 -196
- package/tests/mcp/yaml/get-code-versions.full-mode.test.mcp.yml +0 -273
- package/tests/mcp/yaml/get-isml-categories.docs-only.test.mcp.yml +0 -330
- package/tests/mcp/yaml/get-isml-element.docs-only.test.mcp.yml +0 -294
- package/tests/mcp/yaml/get-isml-elements-by-category.docs-only.test.mcp.yml +0 -334
- package/tests/mcp/yaml/get-job-execution-summary.full-mode.test.mcp.yml +0 -148
- package/tests/mcp/yaml/get-job-log-entries.full-mode.test.mcp.yml +0 -284
- package/tests/mcp/yaml/get-latest-debug.full-mode.test.mcp.yml +0 -191
- package/tests/mcp/yaml/get-latest-error.full-mode.test.mcp.yml +0 -195
- package/tests/mcp/yaml/get-latest-info.full-mode.test.mcp.yml +0 -242
- package/tests/mcp/yaml/get-latest-job-log-files.full-mode.test.mcp.yml +0 -189
- package/tests/mcp/yaml/get-latest-warn.full-mode.test.mcp.yml +0 -182
- package/tests/mcp/yaml/get-log-file-contents.full-mode.test.mcp.yml +0 -256
- package/tests/mcp/yaml/get-sfcc-class-documentation.docs-only.test.mcp.yml +0 -2416
- package/tests/mcp/yaml/get-sfcc-class-documentation.full-mode.test.mcp.yml +0 -2416
- package/tests/mcp/yaml/get-sfcc-class-info.docs-only.test.mcp.yml +0 -1225
- package/tests/mcp/yaml/get-sfcc-class-info.full-mode.test.mcp.yml +0 -1225
- package/tests/mcp/yaml/get-sfra-categories.docs-only.test.mcp.yml +0 -452
- package/tests/mcp/yaml/get-sfra-categories.full-mode.test.mcp.yml +0 -452
- package/tests/mcp/yaml/get-sfra-document.docs-only.test.mcp.yml +0 -525
- package/tests/mcp/yaml/get-sfra-document.full-mode.test.mcp.yml +0 -525
- package/tests/mcp/yaml/get-sfra-documents-by-category.docs-only.test.mcp.yml +0 -507
- package/tests/mcp/yaml/get-sfra-documents-by-category.full-mode.test.mcp.yml +0 -507
- package/tests/mcp/yaml/get-system-object-definition.docs-only.test.mcp.yml +0 -208
- package/tests/mcp/yaml/get-system-object-definition.full-mode.test.mcp.yml +0 -191
- package/tests/mcp/yaml/get-system-object-definitions.docs-only.test.mcp.yml +0 -257
- package/tests/mcp/yaml/get-system-object-definitions.full-mode.test.mcp.yml +0 -517
- package/tests/mcp/yaml/get_latest_error.test.mcp.yml +0 -472
- package/tests/mcp/yaml/list-isml-elements.docs-only.test.mcp.yml +0 -212
- package/tests/mcp/yaml/list-log-files.full-mode.test.mcp.yml +0 -89
- package/tests/mcp/yaml/list-sfcc-classes.docs-only.test.mcp.yml +0 -511
- package/tests/mcp/yaml/list-sfcc-classes.full-mode.test.mcp.yml +0 -511
- package/tests/mcp/yaml/search-custom-object-attribute-definitions.docs-only.test.mcp.yml +0 -82
- package/tests/mcp/yaml/search-custom-object-attribute-definitions.test.mcp.yml +0 -387
- package/tests/mcp/yaml/search-isml-elements.docs-only.test.mcp.yml +0 -312
- package/tests/mcp/yaml/search-job-logs-by-name.full-mode.test.mcp.yml +0 -169
- package/tests/mcp/yaml/search-job-logs.full-mode.test.mcp.yml +0 -174
- package/tests/mcp/yaml/search-logs.full-mode.test.mcp.yml +0 -207
- package/tests/mcp/yaml/search-sfcc-classes.docs-only.test.mcp.yml +0 -1157
- package/tests/mcp/yaml/search-sfcc-classes.full-mode.test.mcp.yml +0 -1157
- package/tests/mcp/yaml/search-sfcc-methods.docs-only.test.mcp.yml +0 -723
- package/tests/mcp/yaml/search-sfcc-methods.full-mode.test.mcp.yml +0 -723
- package/tests/mcp/yaml/search-sfra-documentation.docs-only.test.mcp.yml +0 -427
- package/tests/mcp/yaml/search-sfra-documentation.full-mode.test.mcp.yml +0 -427
- package/tests/mcp/yaml/search-site-preferences.docs-only.test.mcp.yml +0 -295
- package/tests/mcp/yaml/search-site-preferences.full-mode.test.mcp.yml +0 -574
- package/tests/mcp/yaml/search-system-object-attribute-definitions.docs-only.test.mcp.yml +0 -168
- package/tests/mcp/yaml/search-system-object-attribute-definitions.full-mode.test.mcp.yml +0 -500
- package/tests/mcp/yaml/search-system-object-attribute-groups.docs-only.test.mcp.yml +0 -278
- package/tests/mcp/yaml/search-system-object-attribute-groups.full-mode.test.mcp.yml +0 -612
- package/tests/mcp/yaml/summarize-logs.full-mode.test.mcp.yml +0 -173
- package/tests/mcp/yaml/tools.docs-only.test.mcp.yml +0 -535
- package/tests/mcp/yaml/tools.full-mode.test.mcp.yml +0 -378
- package/tests/oauth-token.test.ts +0 -725
- package/tests/ocapi-auth-client.test.ts +0 -276
- package/tests/ocapi-client.test.ts +0 -242
- package/tests/path-service.test.ts +0 -96
- package/tests/query-builder.test.ts +0 -281
- package/tests/referenced-types-extractor.test.ts +0 -814
- package/tests/script-debugger-client.test.ts +0 -430
- package/tests/servers/sfcc-mock-server/README.md +0 -208
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/code-versions.json +0 -247
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/custom-object-attributes-customapi.json +0 -128
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/custom-object-attributes-globalsettings.json +0 -92
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/custom-object-attributes-versionhistory.json +0 -256
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/site-preferences-ccv.json +0 -275
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/site-preferences-fastforward.json +0 -123
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/site-preferences-sfra.json +0 -224
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/site-preferences-storefront.json +0 -447
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/site-preferences-system.json +0 -171
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-attribute-groups-campaign.json +0 -13
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-attribute-groups-category.json +0 -50
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-attribute-groups-order.json +0 -32
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-attribute-groups-product.json +0 -224
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-attribute-groups-sitepreferences.json +0 -62
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-attributes-customeraddress.json +0 -109
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-attributes-product-expanded.json +0 -183
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-attributes-product.json +0 -139
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-definition-category.json +0 -26
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-definition-customer.json +0 -26
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-definition-customeraddress.json +0 -26
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-definition-order.json +0 -26
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-definition-product.json +0 -26
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-definitions-old.json +0 -354
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-definitions.json +0 -172
- package/tests/servers/sfcc-mock-server/package-lock.json +0 -879
- package/tests/servers/sfcc-mock-server/package.json +0 -39
- package/tests/servers/sfcc-mock-server/scripts/setup-logs.js +0 -224
- package/tests/servers/sfcc-mock-server/server.js +0 -280
- package/tests/servers/sfcc-mock-server/src/app.js +0 -182
- package/tests/servers/sfcc-mock-server/src/config/server-config.js +0 -124
- package/tests/servers/sfcc-mock-server/src/middleware/auth.js +0 -101
- package/tests/servers/sfcc-mock-server/src/middleware/cors.js +0 -39
- package/tests/servers/sfcc-mock-server/src/middleware/logging.js +0 -124
- package/tests/servers/sfcc-mock-server/src/routes/cartridge-webdav.js +0 -258
- package/tests/servers/sfcc-mock-server/src/routes/ocapi/code-versions-handler.js +0 -184
- package/tests/servers/sfcc-mock-server/src/routes/ocapi/debugger-handler.js +0 -396
- package/tests/servers/sfcc-mock-server/src/routes/ocapi/oauth-handler.js +0 -36
- package/tests/servers/sfcc-mock-server/src/routes/ocapi/ocapi-error-utils.js +0 -221
- package/tests/servers/sfcc-mock-server/src/routes/ocapi/ocapi-utils.js +0 -440
- package/tests/servers/sfcc-mock-server/src/routes/ocapi/site-preferences-handler.js +0 -332
- package/tests/servers/sfcc-mock-server/src/routes/ocapi/system-objects-handler.js +0 -572
- package/tests/servers/sfcc-mock-server/src/routes/ocapi.js +0 -58
- package/tests/servers/sfcc-mock-server/src/routes/storefront.js +0 -86
- package/tests/servers/sfcc-mock-server/src/routes/webdav.js +0 -240
- package/tests/servers/sfcc-mock-server/src/utils/mock-data-loader.js +0 -84
- package/tests/servers/sfcc-mock-server/src/utils/webdav-xml.js +0 -121
- package/tests/servers/sfcc-mock-server-manager.ts +0 -280
- package/tests/sfcc-mock-server.test.ts +0 -423
- package/tests/site-preferences-client.test.ts +0 -358
- package/tests/system-objects-client.test.ts +0 -310
- package/tests/utils.test.ts +0 -477
- package/tests/validation-helpers.test.ts +0 -325
- package/tests/validator.test.ts +0 -416
- package/tests/workspace-roots.test.ts +0 -227
- package/tsconfig.json +0 -20
- package/tsconfig.test.json +0 -20
|
@@ -1,300 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* MCP Aegis - Programmatic Tests for get_system_object_definitions Tool (Docs-Only Mode)
|
|
3
|
-
*
|
|
4
|
-
* Tests that system object tools are NOT available in docs-only mode.
|
|
5
|
-
* This tool requires SFCC credentials and should not be available without them.
|
|
6
|
-
*
|
|
7
|
-
* Quick Test Commands:
|
|
8
|
-
* node --test tests/mcp/node/get-system-object-definitions.docs-only.programmatic.test.js
|
|
9
|
-
* npm test -- --grep "get_system_object_definitions.*Docs-Only"
|
|
10
|
-
*/
|
|
11
|
-
|
|
12
|
-
import { test, describe, before, after, beforeEach } from 'node:test';
|
|
13
|
-
import { strict as assert } from 'node:assert';
|
|
14
|
-
import { connect } from 'mcp-aegis';
|
|
15
|
-
|
|
16
|
-
describe('get_system_object_definitions Tool - Docs-Only Mode Programmatic Tests', () => {
|
|
17
|
-
let client;
|
|
18
|
-
|
|
19
|
-
before(async () => {
|
|
20
|
-
client = await connect('./aegis.config.docs-only.json');
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
after(async () => {
|
|
24
|
-
if (client?.connected) {
|
|
25
|
-
await client.disconnect();
|
|
26
|
-
}
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
beforeEach(() => {
|
|
30
|
-
// CRITICAL: Clear all buffers to prevent leaking into next tests
|
|
31
|
-
client.clearAllBuffers();
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
// ==================================================================================
|
|
35
|
-
// TOOL UNAVAILABILITY TESTS
|
|
36
|
-
// ==================================================================================
|
|
37
|
-
|
|
38
|
-
describe('Tool Unavailability in Docs-Only Mode', () => {
|
|
39
|
-
test('should NOT list get_system_object_definitions tool in docs-only mode', async () => {
|
|
40
|
-
const tools = await client.listTools();
|
|
41
|
-
|
|
42
|
-
assert.ok(Array.isArray(tools), 'Tools should be an array');
|
|
43
|
-
|
|
44
|
-
const toolNames = tools.map(tool => tool.name);
|
|
45
|
-
assert.ok(!toolNames.includes('get_system_object_definitions'),
|
|
46
|
-
'Should NOT include get_system_object_definitions tool in docs-only mode');
|
|
47
|
-
});
|
|
48
|
-
|
|
49
|
-
test('should NOT list any system object tools in docs-only mode', async () => {
|
|
50
|
-
const tools = await client.listTools();
|
|
51
|
-
const toolNames = tools.map(tool => tool.name);
|
|
52
|
-
|
|
53
|
-
const systemObjectTools = [
|
|
54
|
-
'get_system_object_definitions',
|
|
55
|
-
'get_system_object_definition',
|
|
56
|
-
'search_system_object_attribute_definitions',
|
|
57
|
-
'search_site_preferences',
|
|
58
|
-
'search_system_object_attribute_groups',
|
|
59
|
-
'search_custom_object_attribute_definitions'
|
|
60
|
-
];
|
|
61
|
-
|
|
62
|
-
systemObjectTools.forEach(toolName => {
|
|
63
|
-
assert.ok(!toolNames.includes(toolName),
|
|
64
|
-
`Should NOT include ${toolName} tool in docs-only mode`);
|
|
65
|
-
});
|
|
66
|
-
});
|
|
67
|
-
|
|
68
|
-
test('should have expected number of tools in docs-only mode', async () => {
|
|
69
|
-
const tools = await client.listTools();
|
|
70
|
-
|
|
71
|
-
// Should have documentation, SFRA, best practices, and cartridge tools
|
|
72
|
-
// but NOT system object, log, or code version tools
|
|
73
|
-
assert.ok(tools.length >= 10, 'Should have at least 10 tools available');
|
|
74
|
-
assert.ok(tools.length <= 20, 'Should not have too many tools (likely around 15)');
|
|
75
|
-
});
|
|
76
|
-
});
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
// ==================================================================================
|
|
81
|
-
// TOOL CALL BEHAVIOR - SHOULD RETURN ERROR
|
|
82
|
-
// ==================================================================================
|
|
83
|
-
|
|
84
|
-
describe('Tool Call Behavior - Configuration Error', () => {
|
|
85
|
-
test('should return configuration error when calling unlisted tool', async () => {
|
|
86
|
-
const result = await client.callTool('get_system_object_definitions', {});
|
|
87
|
-
|
|
88
|
-
assert.equal(result.isError, true, 'Should return error result');
|
|
89
|
-
assert.ok(result.content, 'Should have content');
|
|
90
|
-
assert.ok(Array.isArray(result.content), 'Content should be array');
|
|
91
|
-
assert.equal(result.content[0].type, 'text', 'Content should be text type');
|
|
92
|
-
|
|
93
|
-
const errorText = result.content[0].text;
|
|
94
|
-
assert.ok(errorText.includes('OCAPI client not configured') ||
|
|
95
|
-
errorText.includes('not configured') ||
|
|
96
|
-
errorText.includes('credentials'),
|
|
97
|
-
'Error should mention configuration/credentials issue');
|
|
98
|
-
});
|
|
99
|
-
|
|
100
|
-
test('should return proper error result structure for unlisted tool', async () => {
|
|
101
|
-
const result = await client.callTool('get_system_object_definitions', {});
|
|
102
|
-
|
|
103
|
-
assert.equal(result.isError, true, 'Should be error result');
|
|
104
|
-
assert.ok(Array.isArray(result.content), 'Content should be array');
|
|
105
|
-
assert.ok(result.content.length > 0, 'Should have error content');
|
|
106
|
-
assert.equal(result.content[0].type, 'text', 'Error content should be text');
|
|
107
|
-
});
|
|
108
|
-
|
|
109
|
-
test('should fail fast when calling unlisted tool with parameters', async () => {
|
|
110
|
-
const startTime = Date.now();
|
|
111
|
-
|
|
112
|
-
const result = await client.callTool('get_system_object_definitions', {
|
|
113
|
-
start: 0,
|
|
114
|
-
count: 10,
|
|
115
|
-
select: '(**)'
|
|
116
|
-
});
|
|
117
|
-
|
|
118
|
-
const duration = Date.now() - startTime;
|
|
119
|
-
|
|
120
|
-
assert.equal(result.isError, true, 'Should return error');
|
|
121
|
-
assert.ok(duration < 1000, 'Should fail quickly (under 1 second)');
|
|
122
|
-
|
|
123
|
-
const errorText = result.content[0].text;
|
|
124
|
-
assert.ok(errorText.includes('OCAPI client not configured') ||
|
|
125
|
-
errorText.includes('not configured') ||
|
|
126
|
-
errorText.includes('credentials'),
|
|
127
|
-
'Error should mention configuration issue');
|
|
128
|
-
});
|
|
129
|
-
|
|
130
|
-
test('should handle invalid parameters gracefully even in error mode', async () => {
|
|
131
|
-
const result = await client.callTool('get_system_object_definitions', {
|
|
132
|
-
invalidParam: 'test',
|
|
133
|
-
anotherInvalid: 123
|
|
134
|
-
});
|
|
135
|
-
|
|
136
|
-
assert.equal(result.isError, true, 'Should return error');
|
|
137
|
-
|
|
138
|
-
const errorText = result.content[0].text;
|
|
139
|
-
// Should mention configuration, not parameter validation
|
|
140
|
-
assert.ok(errorText.includes('OCAPI client not configured') ||
|
|
141
|
-
errorText.includes('not configured') ||
|
|
142
|
-
errorText.includes('credentials'),
|
|
143
|
-
'Should prioritize configuration error over parameter validation');
|
|
144
|
-
});
|
|
145
|
-
});
|
|
146
|
-
|
|
147
|
-
// ==================================================================================
|
|
148
|
-
// OTHER SYSTEM OBJECT TOOLS VERIFICATION
|
|
149
|
-
// ==================================================================================
|
|
150
|
-
|
|
151
|
-
describe('Other System Object Tools Unavailability', () => {
|
|
152
|
-
test('should NOT have get_system_object_definition tool', async () => {
|
|
153
|
-
const tools = await client.listTools();
|
|
154
|
-
const toolNames = tools.map(tool => tool.name);
|
|
155
|
-
|
|
156
|
-
assert.ok(!toolNames.includes('get_system_object_definition'),
|
|
157
|
-
'Should NOT include get_system_object_definition tool');
|
|
158
|
-
|
|
159
|
-
// Verify calling it also returns error
|
|
160
|
-
const result = await client.callTool('get_system_object_definition', {
|
|
161
|
-
objectType: 'Product'
|
|
162
|
-
});
|
|
163
|
-
|
|
164
|
-
assert.equal(result.isError, true, 'Should return configuration error');
|
|
165
|
-
});
|
|
166
|
-
|
|
167
|
-
test('should NOT have search_system_object_attribute_definitions tool', async () => {
|
|
168
|
-
const tools = await client.listTools();
|
|
169
|
-
const toolNames = tools.map(tool => tool.name);
|
|
170
|
-
|
|
171
|
-
assert.ok(!toolNames.includes('search_system_object_attribute_definitions'),
|
|
172
|
-
'Should NOT include search_system_object_attribute_definitions tool');
|
|
173
|
-
|
|
174
|
-
// Verify calling it also returns error
|
|
175
|
-
const result = await client.callTool('search_system_object_attribute_definitions', {
|
|
176
|
-
objectType: 'Product',
|
|
177
|
-
searchRequest: {
|
|
178
|
-
query: { match_all_query: {} }
|
|
179
|
-
}
|
|
180
|
-
});
|
|
181
|
-
|
|
182
|
-
assert.equal(result.isError, true, 'Should return configuration error');
|
|
183
|
-
});
|
|
184
|
-
|
|
185
|
-
test('should NOT have site preferences tools', async () => {
|
|
186
|
-
const tools = await client.listTools();
|
|
187
|
-
const toolNames = tools.map(tool => tool.name);
|
|
188
|
-
|
|
189
|
-
assert.ok(!toolNames.includes('search_site_preferences'),
|
|
190
|
-
'Should NOT include search_site_preferences tool');
|
|
191
|
-
|
|
192
|
-
// Verify calling it also returns error
|
|
193
|
-
const result = await client.callTool('search_site_preferences', {
|
|
194
|
-
groupId: 'SitePreferences',
|
|
195
|
-
instanceType: 'sandbox',
|
|
196
|
-
searchRequest: {
|
|
197
|
-
query: { match_all_query: {} }
|
|
198
|
-
}
|
|
199
|
-
});
|
|
200
|
-
|
|
201
|
-
assert.equal(result.isError, true, 'Should return configuration error');
|
|
202
|
-
});
|
|
203
|
-
});
|
|
204
|
-
|
|
205
|
-
// ==================================================================================
|
|
206
|
-
// CONSISTENCY TESTS
|
|
207
|
-
// ==================================================================================
|
|
208
|
-
|
|
209
|
-
describe('Consistency Tests', () => {
|
|
210
|
-
test('should consistently exclude system object tools across multiple calls', async () => {
|
|
211
|
-
const tools1 = await client.listTools();
|
|
212
|
-
const tools2 = await client.listTools();
|
|
213
|
-
|
|
214
|
-
const toolNames1 = tools1.map(tool => tool.name);
|
|
215
|
-
const toolNames2 = tools2.map(tool => tool.name);
|
|
216
|
-
|
|
217
|
-
assert.ok(!toolNames1.includes('get_system_object_definitions'),
|
|
218
|
-
'First call should exclude system object tools');
|
|
219
|
-
assert.ok(!toolNames2.includes('get_system_object_definitions'),
|
|
220
|
-
'Second call should exclude system object tools');
|
|
221
|
-
});
|
|
222
|
-
|
|
223
|
-
test('should maintain consistent tool exclusion on second call', async () => {
|
|
224
|
-
const tools = await client.listTools();
|
|
225
|
-
const toolNames = tools.map(tool => tool.name);
|
|
226
|
-
|
|
227
|
-
assert.ok(!toolNames.includes('get_system_object_definitions'),
|
|
228
|
-
'Should consistently exclude get_system_object_definitions');
|
|
229
|
-
});
|
|
230
|
-
|
|
231
|
-
test('should consistently return configuration error across multiple attempts', async () => {
|
|
232
|
-
const result1 = await client.callTool('get_system_object_definitions', {});
|
|
233
|
-
const result2 = await client.callTool('get_system_object_definitions', {});
|
|
234
|
-
|
|
235
|
-
assert.equal(result1.isError, true, 'First call should return error');
|
|
236
|
-
assert.equal(result2.isError, true, 'Second call should return error');
|
|
237
|
-
|
|
238
|
-
const error1 = result1.content[0].text;
|
|
239
|
-
const error2 = result2.content[0].text;
|
|
240
|
-
|
|
241
|
-
assert.ok(error1.includes('OCAPI client not configured') ||
|
|
242
|
-
error1.includes('not configured'),
|
|
243
|
-
'First error should mention configuration');
|
|
244
|
-
assert.ok(error2.includes('OCAPI client not configured') ||
|
|
245
|
-
error2.includes('not configured'),
|
|
246
|
-
'Second error should mention configuration');
|
|
247
|
-
});
|
|
248
|
-
|
|
249
|
-
test('should have consistent tool count in docs-only mode', async () => {
|
|
250
|
-
const tools1 = await client.listTools();
|
|
251
|
-
const tools2 = await client.listTools();
|
|
252
|
-
|
|
253
|
-
assert.equal(tools1.length, tools2.length,
|
|
254
|
-
'Tool count should be consistent between calls');
|
|
255
|
-
|
|
256
|
-
// Should have around 15 tools in docs-only mode
|
|
257
|
-
assert.ok(tools1.length >= 10, 'Should have reasonable number of tools');
|
|
258
|
-
assert.ok(tools1.length <= 20, 'Should not have excessive tools');
|
|
259
|
-
});
|
|
260
|
-
});
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
// ==================================================================================
|
|
265
|
-
// MODE IDENTIFICATION TESTS - FOCUSED ON SYSTEM OBJECT TOOLS
|
|
266
|
-
// ==================================================================================
|
|
267
|
-
|
|
268
|
-
describe('System Object Tools Mode Identification', () => {
|
|
269
|
-
test('should clearly identify system object tools unavailability in docs-only mode', async () => {
|
|
270
|
-
const tools = await client.listTools();
|
|
271
|
-
const toolNames = tools.map(tool => tool.name);
|
|
272
|
-
|
|
273
|
-
const hasSystemObjectTools = toolNames.includes('get_system_object_definitions');
|
|
274
|
-
const hasOtherSystemObjectTools = toolNames.includes('search_site_preferences');
|
|
275
|
-
|
|
276
|
-
assert.ok(!hasSystemObjectTools, 'Should NOT have get_system_object_definitions tool');
|
|
277
|
-
assert.ok(!hasOtherSystemObjectTools, 'Should NOT have other system object tools');
|
|
278
|
-
});
|
|
279
|
-
|
|
280
|
-
test('should exclude all system object tools in docs-only mode', async () => {
|
|
281
|
-
const tools = await client.listTools();
|
|
282
|
-
const toolNames = tools.map(tool => tool.name);
|
|
283
|
-
|
|
284
|
-
// System object tools that should NOT be available in docs-only mode
|
|
285
|
-
const systemObjectTools = [
|
|
286
|
-
'get_system_object_definitions',
|
|
287
|
-
'get_system_object_definition',
|
|
288
|
-
'search_system_object_attribute_definitions',
|
|
289
|
-
'search_site_preferences',
|
|
290
|
-
'search_system_object_attribute_groups',
|
|
291
|
-
'search_custom_object_attribute_definitions'
|
|
292
|
-
];
|
|
293
|
-
|
|
294
|
-
systemObjectTools.forEach(toolName => {
|
|
295
|
-
assert.ok(!toolNames.includes(toolName),
|
|
296
|
-
`Docs-only mode should NOT include system object tool: ${toolName}`);
|
|
297
|
-
});
|
|
298
|
-
});
|
|
299
|
-
});
|
|
300
|
-
});
|
|
@@ -1,387 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* MCP Aegis - Programmatic Tests for get_system_object_definitions Tool (Full Mode)
|
|
3
|
-
*
|
|
4
|
-
* These tests focus on complex business logic validation and dynamic test case generation
|
|
5
|
-
* that requires programmatic JavaScript/TypeScript logic. For basic functional testing,
|
|
6
|
-
* use the YAML-based tests which are more appropriate and maintainable.
|
|
7
|
-
*
|
|
8
|
-
* Quick Test Commands:
|
|
9
|
-
* node --test tests/mcp/node/get-system-object-definitions.full-mode.programmatic.test.js
|
|
10
|
-
* npm test -- --grep "get_system_object_definitions.*Full Mode"
|
|
11
|
-
*/
|
|
12
|
-
|
|
13
|
-
import { test, describe, before, after, beforeEach } from 'node:test';
|
|
14
|
-
import { strict as assert } from 'node:assert';
|
|
15
|
-
import { connect } from 'mcp-aegis';
|
|
16
|
-
|
|
17
|
-
describe('get_system_object_definitions Tool - Full Mode Programmatic Tests', () => {
|
|
18
|
-
let client;
|
|
19
|
-
|
|
20
|
-
before(async () => {
|
|
21
|
-
client = await connect('./aegis.config.with-dw.json');
|
|
22
|
-
});
|
|
23
|
-
|
|
24
|
-
after(async () => {
|
|
25
|
-
if (client?.connected) {
|
|
26
|
-
await client.disconnect();
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
beforeEach(() => {
|
|
31
|
-
// CRITICAL: Clear all buffers to prevent leaking into next tests
|
|
32
|
-
client.clearAllBuffers();
|
|
33
|
-
});
|
|
34
|
-
|
|
35
|
-
// Helper function for complex assertion logic
|
|
36
|
-
function assertValidMCPResponse(result) {
|
|
37
|
-
assert.ok(result.content, 'Should have content');
|
|
38
|
-
assert.ok(Array.isArray(result.content), 'Content should be array');
|
|
39
|
-
assert.equal(typeof result.isError, 'boolean', 'isError should be boolean');
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
function assertSFCCObjectStructure(obj) {
|
|
43
|
-
assert.ok(obj.object_type, 'Should have object_type');
|
|
44
|
-
assert.ok(obj._type, 'Should have _type');
|
|
45
|
-
assert.ok(typeof obj.object_type === 'string', 'object_type should be string');
|
|
46
|
-
assert.ok(obj._type.includes('object_type_definition'), '_type should indicate object type definition');
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
// ==================================================================================
|
|
50
|
-
// TOOL AVAILABILITY & SCHEMA VALIDATION
|
|
51
|
-
// ==================================================================================
|
|
52
|
-
|
|
53
|
-
describe('Tool Availability', () => {
|
|
54
|
-
test('should have proper tool discovery and schema validation', async () => {
|
|
55
|
-
const tools = await client.listTools();
|
|
56
|
-
|
|
57
|
-
assert.ok(Array.isArray(tools), 'Tools should be an array');
|
|
58
|
-
|
|
59
|
-
const tool = tools.find(t => t.name === 'get_system_object_definitions');
|
|
60
|
-
assert.ok(tool, 'Tool should be found');
|
|
61
|
-
assert.ok(tool.description.includes('system object definitions'), 'Description should mention system object definitions');
|
|
62
|
-
|
|
63
|
-
// Validate schema structure
|
|
64
|
-
assert.ok(tool.inputSchema, 'Tool should have input schema');
|
|
65
|
-
assert.equal(tool.inputSchema.type, 'object', 'Schema should be object type');
|
|
66
|
-
|
|
67
|
-
const properties = tool.inputSchema.properties;
|
|
68
|
-
assert.ok(properties, 'Schema should have properties');
|
|
69
|
-
|
|
70
|
-
// Dynamic validation of optional parameters
|
|
71
|
-
const expectedParams = ['count', 'start', 'select'];
|
|
72
|
-
expectedParams.forEach(param => {
|
|
73
|
-
if (properties[param]) {
|
|
74
|
-
assert.ok(properties[param].type, `Parameter ${param} should have type`);
|
|
75
|
-
}
|
|
76
|
-
});
|
|
77
|
-
|
|
78
|
-
// Verify all parameters are optional
|
|
79
|
-
assert.ok(!tool.inputSchema.required || tool.inputSchema.required.length === 0,
|
|
80
|
-
'All parameters should be optional');
|
|
81
|
-
});
|
|
82
|
-
});
|
|
83
|
-
|
|
84
|
-
// ==================================================================================
|
|
85
|
-
// CORE FUNCTIONALITY WITH DYNAMIC VALIDATION
|
|
86
|
-
// ==================================================================================
|
|
87
|
-
|
|
88
|
-
describe('Core Functionality', () => {
|
|
89
|
-
test('should retrieve and validate core SFCC object structure', async () => {
|
|
90
|
-
const result = await client.callTool('get_system_object_definitions', {});
|
|
91
|
-
|
|
92
|
-
assertValidMCPResponse(result);
|
|
93
|
-
assert.equal(result.isError, false, 'Should not return error');
|
|
94
|
-
|
|
95
|
-
const data = JSON.parse(result.content[0].text);
|
|
96
|
-
|
|
97
|
-
// Validate OCAPI response structure
|
|
98
|
-
assert.ok(data.data && Array.isArray(data.data), 'Should have data array');
|
|
99
|
-
assert.ok(typeof data.count === 'number', 'Should have count');
|
|
100
|
-
assert.ok(typeof data.total === 'number', 'Should have total');
|
|
101
|
-
assert.ok(data._v, 'Should have API version');
|
|
102
|
-
assert.ok(data._type, 'Should have type information');
|
|
103
|
-
|
|
104
|
-
// Dynamic validation - check for SFCC system objects
|
|
105
|
-
const objectTypes = data.data.map(obj => obj.object_type);
|
|
106
|
-
const expectedSystemTypes = ['Category', 'Catalog', 'Content', 'Basket', 'Campaign'];
|
|
107
|
-
const foundSystemTypes = expectedSystemTypes.filter(type => objectTypes.includes(type));
|
|
108
|
-
|
|
109
|
-
assert.ok(foundSystemTypes.length > 0,
|
|
110
|
-
`Should include SFCC system objects. Found: ${foundSystemTypes.join(', ')}, Available: ${objectTypes.slice(0,10).join(', ')}`);
|
|
111
|
-
|
|
112
|
-
// Validate each object structure
|
|
113
|
-
data.data.forEach((obj, index) => {
|
|
114
|
-
try {
|
|
115
|
-
assertSFCCObjectStructure(obj);
|
|
116
|
-
} catch (error) {
|
|
117
|
-
assert.fail(`Object at index ${index} failed validation: ${error.message}`);
|
|
118
|
-
}
|
|
119
|
-
});
|
|
120
|
-
});
|
|
121
|
-
|
|
122
|
-
test('should handle pagination with dynamic validation', async () => {
|
|
123
|
-
const smallPageResult = await client.callTool('get_system_object_definitions', { count: 3 });
|
|
124
|
-
assert.equal(smallPageResult.isError, false, 'Small page request should succeed');
|
|
125
|
-
|
|
126
|
-
const smallPageData = JSON.parse(smallPageResult.content[0].text);
|
|
127
|
-
|
|
128
|
-
// Dynamic pagination validation based on total count
|
|
129
|
-
if (smallPageData.total > 3) {
|
|
130
|
-
assert.ok(smallPageData.next, 'Should have next link when more data available');
|
|
131
|
-
assert.ok(smallPageData.data.length <= 3, 'Should not exceed requested count');
|
|
132
|
-
|
|
133
|
-
// Test second page
|
|
134
|
-
const secondPageResult = await client.callTool('get_system_object_definitions', {
|
|
135
|
-
start: 3,
|
|
136
|
-
count: 3
|
|
137
|
-
});
|
|
138
|
-
|
|
139
|
-
if (!secondPageResult.isError) {
|
|
140
|
-
const secondPageData = JSON.parse(secondPageResult.content[0].text);
|
|
141
|
-
assert.equal(secondPageData.start, 3, 'Second page should have correct start');
|
|
142
|
-
|
|
143
|
-
// Ensure no overlap between pages
|
|
144
|
-
const firstPageTypes = smallPageData.data.map(obj => obj.object_type);
|
|
145
|
-
const secondPageTypes = secondPageData.data.map(obj => obj.object_type);
|
|
146
|
-
const overlap = firstPageTypes.filter(type => secondPageTypes.includes(type));
|
|
147
|
-
assert.equal(overlap.length, 0, 'Pages should not have overlapping data');
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
});
|
|
151
|
-
|
|
152
|
-
test('should validate SFCC-specific metadata consistency', async () => {
|
|
153
|
-
const result = await client.callTool('get_system_object_definitions', {});
|
|
154
|
-
const data = JSON.parse(result.content[0].text);
|
|
155
|
-
|
|
156
|
-
// Validate SFCC OCAPI metadata (may vary by instance)
|
|
157
|
-
if (data._resource_state) {
|
|
158
|
-
assert.ok(typeof data._resource_state === 'string', 'Resource state should be string');
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
// Check for system vs custom object identification
|
|
162
|
-
const systemObjects = data.data.filter(obj =>
|
|
163
|
-
['Product', 'Customer', 'Order', 'Site', 'Category', 'Campaign'].includes(obj.object_type)
|
|
164
|
-
);
|
|
165
|
-
|
|
166
|
-
assert.ok(systemObjects.length > 0, 'Should include system objects');
|
|
167
|
-
|
|
168
|
-
// Validate that all objects have consistent typing
|
|
169
|
-
data.data.forEach(obj => {
|
|
170
|
-
assert.ok(obj._type, 'Each object should have _type');
|
|
171
|
-
assert.ok(obj.object_type, 'Each object should have object_type');
|
|
172
|
-
if (obj.object_type_id) {
|
|
173
|
-
assert.ok(typeof obj.object_type_id === 'string', 'object_type_id should be string');
|
|
174
|
-
}
|
|
175
|
-
});
|
|
176
|
-
});
|
|
177
|
-
});
|
|
178
|
-
|
|
179
|
-
// ==================================================================================
|
|
180
|
-
// DYNAMIC PARAMETER VALIDATION
|
|
181
|
-
// ==================================================================================
|
|
182
|
-
|
|
183
|
-
describe('Parameter Validation', () => {
|
|
184
|
-
test('should handle select parameter patterns with dynamic validation', async () => {
|
|
185
|
-
const selectPatterns = [
|
|
186
|
-
{ pattern: '(**)', description: 'wildcard all fields' },
|
|
187
|
-
{ pattern: 'data.object_type,count,total', description: 'specific field selection' },
|
|
188
|
-
{ pattern: 'data.(*),count', description: 'data wildcard with root fields' },
|
|
189
|
-
{ pattern: 'count,total,_v', description: 'root-level fields only' }
|
|
190
|
-
];
|
|
191
|
-
|
|
192
|
-
for (const { pattern, description } of selectPatterns) {
|
|
193
|
-
const result = await client.callTool('get_system_object_definitions', {
|
|
194
|
-
select: pattern,
|
|
195
|
-
count: 3 // Small count for efficiency
|
|
196
|
-
});
|
|
197
|
-
|
|
198
|
-
assert.equal(result.isError, false,
|
|
199
|
-
`Select pattern '${pattern}' (${description}) should not error`);
|
|
200
|
-
|
|
201
|
-
const data = JSON.parse(result.content[0].text);
|
|
202
|
-
assert.ok(data, `Should return valid data for pattern: ${pattern}`);
|
|
203
|
-
|
|
204
|
-
// Dynamic validation based on select pattern
|
|
205
|
-
if (pattern.includes('count')) {
|
|
206
|
-
assert.ok(typeof data.count === 'number',
|
|
207
|
-
`Should include count for pattern: ${pattern}`);
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
if (pattern.includes('data.object_type')) {
|
|
211
|
-
assert.ok(data.data, `Should have data array for pattern: ${pattern}`);
|
|
212
|
-
if (data.data.length > 0) {
|
|
213
|
-
assert.ok(data.data[0].object_type,
|
|
214
|
-
`Should include object_type for pattern: ${pattern}`);
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
});
|
|
219
|
-
|
|
220
|
-
test('should handle edge cases with type coercion', async () => {
|
|
221
|
-
const edgeCases = [
|
|
222
|
-
{ params: { start: '5', count: '3' }, description: 'string parameters' },
|
|
223
|
-
{ params: { start: 0, count: 1 }, description: 'minimum values' },
|
|
224
|
-
{ params: { start: 100 }, description: 'large start value' },
|
|
225
|
-
{ params: { count: 0 }, description: 'zero count', expectError: true }
|
|
226
|
-
];
|
|
227
|
-
|
|
228
|
-
for (const { params, description, expectError } of edgeCases) {
|
|
229
|
-
const result = await client.callTool('get_system_object_definitions', params);
|
|
230
|
-
|
|
231
|
-
if (expectError) {
|
|
232
|
-
// Zero count might be an error or return empty data
|
|
233
|
-
if (!result.isError) {
|
|
234
|
-
const data = JSON.parse(result.content[0].text);
|
|
235
|
-
assert.equal(data.count, 0, `Zero count should be handled: ${description}`);
|
|
236
|
-
assert.equal(data.data.length, 0, `Zero count should return empty data: ${description}`);
|
|
237
|
-
}
|
|
238
|
-
} else {
|
|
239
|
-
assert.equal(result.isError, false,
|
|
240
|
-
`Edge case should succeed: ${description}`);
|
|
241
|
-
|
|
242
|
-
const data = JSON.parse(result.content[0].text);
|
|
243
|
-
|
|
244
|
-
// Validate type coercion worked
|
|
245
|
-
if (params.start !== undefined) {
|
|
246
|
-
assert.equal(typeof data.start, 'number',
|
|
247
|
-
`Start should be coerced to number: ${description}`);
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
if (params.count !== undefined && params.count > 0) {
|
|
251
|
-
assert.ok(data.data.length <= params.count,
|
|
252
|
-
`Should respect count limit: ${description}`);
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
});
|
|
257
|
-
|
|
258
|
-
test('should handle invalid parameters gracefully', async () => {
|
|
259
|
-
const invalidCases = [
|
|
260
|
-
{ params: { start: -1 }, description: 'negative start' },
|
|
261
|
-
{ params: { count: -5 }, description: 'negative count' },
|
|
262
|
-
{ params: { select: 'invalid.field.path' }, description: 'invalid select path' },
|
|
263
|
-
{ params: { select: '' }, description: 'empty select' }
|
|
264
|
-
];
|
|
265
|
-
|
|
266
|
-
for (const { params, description } of invalidCases) {
|
|
267
|
-
const result = await client.callTool('get_system_object_definitions', params);
|
|
268
|
-
|
|
269
|
-
// Should either return error or handle gracefully
|
|
270
|
-
if (result.isError) {
|
|
271
|
-
assert.ok(result.content[0].text,
|
|
272
|
-
`Should have error message for: ${description}`);
|
|
273
|
-
} else {
|
|
274
|
-
// If not an error, should return valid structure
|
|
275
|
-
const data = JSON.parse(result.content[0].text);
|
|
276
|
-
assert.ok(data, `Should return valid data despite invalid params: ${description}`);
|
|
277
|
-
|
|
278
|
-
// Validate graceful handling (flexible validation)
|
|
279
|
-
if (params.start < 0 && typeof data.start === 'number') {
|
|
280
|
-
// SFCC API accepts negative start and preserves it in response
|
|
281
|
-
assert.ok(typeof data.start === 'number', `API should handle negative start: ${description}`);
|
|
282
|
-
}
|
|
283
|
-
|
|
284
|
-
if (params.count < 0 && typeof data.count === 'number') {
|
|
285
|
-
// SFCC API accepts negative count and returns valid data
|
|
286
|
-
assert.ok(data.count >= 0, `API should handle negative count gracefully: ${description}`);
|
|
287
|
-
}
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
});
|
|
291
|
-
});
|
|
292
|
-
|
|
293
|
-
// ==================================================================================
|
|
294
|
-
// INTEGRATION & CONSISTENCY VALIDATION
|
|
295
|
-
// ==================================================================================
|
|
296
|
-
|
|
297
|
-
describe('Integration & Consistency', () => {
|
|
298
|
-
test('should maintain consistency across parameter combinations', async () => {
|
|
299
|
-
const baseResult = await client.callTool('get_system_object_definitions', {});
|
|
300
|
-
const baseData = JSON.parse(baseResult.content[0].text);
|
|
301
|
-
|
|
302
|
-
const combinations = [
|
|
303
|
-
{ start: 0, count: 5 },
|
|
304
|
-
{ count: 10, select: 'data.object_type,count,total' },
|
|
305
|
-
{ start: 2, count: 3, select: 'data.(*),total' }
|
|
306
|
-
];
|
|
307
|
-
|
|
308
|
-
for (const params of combinations) {
|
|
309
|
-
const result = await client.callTool('get_system_object_definitions', params);
|
|
310
|
-
assert.equal(result.isError, false,
|
|
311
|
-
`Combination should succeed: ${JSON.stringify(params)}`);
|
|
312
|
-
|
|
313
|
-
const data = JSON.parse(result.content[0].text);
|
|
314
|
-
|
|
315
|
-
// Total should be consistent across calls
|
|
316
|
-
assert.equal(data.total, baseData.total,
|
|
317
|
-
`Total should be consistent for params: ${JSON.stringify(params)}`);
|
|
318
|
-
|
|
319
|
-
// API version should be consistent
|
|
320
|
-
if (data._v && baseData._v) {
|
|
321
|
-
assert.equal(data._v, baseData._v,
|
|
322
|
-
`API version should be consistent for params: ${JSON.stringify(params)}`);
|
|
323
|
-
}
|
|
324
|
-
}
|
|
325
|
-
});
|
|
326
|
-
|
|
327
|
-
test('should provide stable pagination behavior', async () => {
|
|
328
|
-
// Test pagination stability by requesting overlapping windows
|
|
329
|
-
const firstPage = await client.callTool('get_system_object_definitions', {
|
|
330
|
-
start: 0,
|
|
331
|
-
count: 5
|
|
332
|
-
});
|
|
333
|
-
|
|
334
|
-
const secondPage = await client.callTool('get_system_object_definitions', {
|
|
335
|
-
start: 3,
|
|
336
|
-
count: 5
|
|
337
|
-
});
|
|
338
|
-
|
|
339
|
-
if (!firstPage.isError && !secondPage.isError) {
|
|
340
|
-
const firstData = JSON.parse(firstPage.content[0].text);
|
|
341
|
-
const secondData = JSON.parse(secondPage.content[0].text);
|
|
342
|
-
|
|
343
|
-
// Check for expected overlap in stable sort
|
|
344
|
-
if (firstData.data.length >= 5 && secondData.data.length > 2) {
|
|
345
|
-
const firstPageLast2 = firstData.data.slice(3, 5).map(obj => obj.object_type);
|
|
346
|
-
const secondPageFirst2 = secondData.data.slice(0, 2).map(obj => obj.object_type);
|
|
347
|
-
|
|
348
|
-
assert.deepEqual(firstPageLast2, secondPageFirst2,
|
|
349
|
-
'Overlapping pagination should return consistent results');
|
|
350
|
-
}
|
|
351
|
-
}
|
|
352
|
-
});
|
|
353
|
-
|
|
354
|
-
test('should handle comprehensive SFCC business validation', async () => {
|
|
355
|
-
const result = await client.callTool('get_system_object_definitions', {});
|
|
356
|
-
const data = JSON.parse(result.content[0].text);
|
|
357
|
-
|
|
358
|
-
// Business rule validation for SFCC (flexible for different instances)
|
|
359
|
-
const systemObjectTypes = data.data.map(obj => obj.object_type);
|
|
360
|
-
const criticalSFCCTypes = ['Category', 'Catalog', 'Content', 'Basket', 'Campaign'];
|
|
361
|
-
|
|
362
|
-
// Check if SFCC instance has at least some critical system objects
|
|
363
|
-
const foundCriticalTypes = criticalSFCCTypes.filter(type => systemObjectTypes.includes(type));
|
|
364
|
-
assert.ok(foundCriticalTypes.length > 0,
|
|
365
|
-
`SFCC instance should include at least one critical system object. Found: ${foundCriticalTypes.join(', ')}, Available: ${systemObjectTypes.slice(0,5).join(', ')}`);
|
|
366
|
-
|
|
367
|
-
// Validate object type ID consistency for found objects
|
|
368
|
-
data.data.forEach(obj => {
|
|
369
|
-
if (obj.object_type_id) {
|
|
370
|
-
// Object type ID should be related to object type
|
|
371
|
-
assert.ok(typeof obj.object_type_id === 'string',
|
|
372
|
-
`object_type_id should be string for ${obj.object_type}`);
|
|
373
|
-
|
|
374
|
-
// Critical objects should have non-empty IDs if they exist
|
|
375
|
-
if (foundCriticalTypes.includes(obj.object_type)) {
|
|
376
|
-
assert.ok(obj.object_type_id.length > 0,
|
|
377
|
-
`System object ${obj.object_type} should have non-empty object_type_id`);
|
|
378
|
-
}
|
|
379
|
-
}
|
|
380
|
-
});
|
|
381
|
-
|
|
382
|
-
// Validate that we have a reasonable number of object types for an SFCC instance
|
|
383
|
-
assert.ok(data.total >= 1, 'SFCC instance should have at least 1 system object type');
|
|
384
|
-
assert.ok(data.total <= 200, 'SFCC instance should not have excessive object types');
|
|
385
|
-
});
|
|
386
|
-
});
|
|
387
|
-
});
|