@fluentcommerce/fc-connect-sdk 0.1.53 → 0.1.55
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/CHANGELOG.md +30 -2
- package/README.md +39 -0
- package/dist/cjs/auth/index.d.ts +3 -0
- package/dist/cjs/auth/index.js +13 -0
- package/dist/cjs/auth/profile-loader.d.ts +18 -0
- package/dist/cjs/auth/profile-loader.js +208 -0
- package/dist/cjs/client-factory.d.ts +4 -0
- package/dist/cjs/client-factory.js +10 -0
- package/dist/cjs/clients/fluent-client.js +13 -6
- package/dist/cjs/index.d.ts +3 -1
- package/dist/cjs/index.js +8 -2
- package/dist/cjs/utils/pagination-helpers.js +38 -2
- package/dist/cjs/versori/fluent-versori-client.js +11 -5
- package/dist/esm/auth/index.d.ts +3 -0
- package/dist/esm/auth/index.js +2 -0
- package/dist/esm/auth/profile-loader.d.ts +18 -0
- package/dist/esm/auth/profile-loader.js +169 -0
- package/dist/esm/client-factory.d.ts +4 -0
- package/dist/esm/client-factory.js +9 -0
- package/dist/esm/clients/fluent-client.js +13 -6
- package/dist/esm/index.d.ts +3 -1
- package/dist/esm/index.js +2 -1
- package/dist/esm/utils/pagination-helpers.js +38 -2
- package/dist/esm/versori/fluent-versori-client.js +11 -5
- package/dist/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/tsconfig.types.tsbuildinfo +1 -1
- package/dist/types/auth/index.d.ts +3 -0
- package/dist/types/auth/profile-loader.d.ts +18 -0
- package/dist/types/client-factory.d.ts +4 -0
- package/dist/types/index.d.ts +3 -1
- package/docs/00-START-HERE/EXPORT-VALIDATION.md +158 -158
- package/docs/00-START-HERE/cli-analyze-source-structure-guide.md +655 -655
- package/docs/00-START-HERE/cli-documentation-index.md +202 -202
- package/docs/00-START-HERE/cli-quick-reference.md +252 -252
- package/docs/00-START-HERE/decision-tree.md +552 -552
- package/docs/00-START-HERE/getting-started.md +1070 -1070
- package/docs/00-START-HERE/mapper-quick-decision-guide.md +235 -235
- package/docs/00-START-HERE/readme.md +237 -237
- package/docs/00-START-HERE/retailerid-configuration.md +404 -404
- package/docs/00-START-HERE/sdk-philosophy.md +794 -794
- package/docs/00-START-HERE/troubleshooting-quick-reference.md +1086 -1086
- package/docs/01-TEMPLATES/faq.md +686 -686
- package/docs/01-TEMPLATES/patterns/pattern-templates-guide.md +68 -68
- package/docs/01-TEMPLATES/patterns/patterns-csv-schema-validation-and-rejection-report.md +233 -233
- package/docs/01-TEMPLATES/patterns/patterns-custom-resolvers.md +407 -407
- package/docs/01-TEMPLATES/patterns/patterns-error-handling-retry.md +511 -511
- package/docs/01-TEMPLATES/patterns/patterns-field-mapping-universal.md +701 -701
- package/docs/01-TEMPLATES/patterns/patterns-large-file-splitting.md +1430 -1430
- package/docs/01-TEMPLATES/patterns/patterns-master-data-etl.md +2399 -2399
- package/docs/01-TEMPLATES/patterns/patterns-pagination-streaming.md +447 -447
- package/docs/01-TEMPLATES/patterns/patterns-state-duplicate-prevention.md +385 -385
- package/docs/01-TEMPLATES/readme.md +957 -957
- package/docs/01-TEMPLATES/standalone/standalone-asn-inbound-processing.md +1209 -1209
- package/docs/01-TEMPLATES/standalone/standalone-graphql-query-export.md +1140 -1140
- package/docs/01-TEMPLATES/standalone/standalone-graphql-to-parquet-partitioned-s3.md +432 -432
- package/docs/01-TEMPLATES/standalone/standalone-multi-channel-inventory-sync.md +1185 -1185
- package/docs/01-TEMPLATES/standalone/standalone-multi-source-aggregation.md +1462 -1462
- package/docs/01-TEMPLATES/standalone/standalone-s3-csv-batch-api.md +1390 -1390
- package/docs/01-TEMPLATES/standalone/standalone-s3-csv-inventory-to-batch.md +330 -330
- package/docs/01-TEMPLATES/standalone/standalone-scripts-guide.md +87 -87
- package/docs/01-TEMPLATES/standalone/standalone-sftp-xml-graphql.md +1444 -1444
- package/docs/01-TEMPLATES/standalone/standalone-webhook-payload-processing.md +688 -688
- package/docs/01-TEMPLATES/versori/business-examples/business-examples-dropship-order-routing.md +193 -193
- package/docs/01-TEMPLATES/versori/business-examples/business-examples-graphql-parquet-extraction.md +518 -518
- package/docs/01-TEMPLATES/versori/business-examples/business-examples-inter-location-transfers.md +2162 -2162
- package/docs/01-TEMPLATES/versori/business-examples/business-examples-pre-order-allocation.md +2226 -2226
- package/docs/01-TEMPLATES/versori/business-examples/business-scenarios-guide.md +87 -87
- package/docs/01-TEMPLATES/versori/patterns/versori-patterns-connection-validation-pattern.md +656 -656
- package/docs/01-TEMPLATES/versori/patterns/versori-patterns-dual-workflow-connector.md +835 -835
- package/docs/01-TEMPLATES/versori/patterns/versori-patterns-guide.md +108 -108
- package/docs/01-TEMPLATES/versori/patterns/versori-patterns-kv-state-management.md +1533 -1533
- package/docs/01-TEMPLATES/versori/patterns/versori-patterns-xml-response-patterns.md +1160 -1160
- package/docs/01-TEMPLATES/versori/versori-platform-guide.md +201 -201
- package/docs/01-TEMPLATES/versori/webhooks/template-webhook-asn-purchase-order.md +1906 -1906
- package/docs/01-TEMPLATES/versori/webhooks/template-webhook-dropship-routing.md +1074 -1074
- package/docs/01-TEMPLATES/versori/webhooks/template-webhook-flash-sale-reserve.md +1395 -1395
- package/docs/01-TEMPLATES/versori/webhooks/template-webhook-generic-xml-order.md +888 -888
- package/docs/01-TEMPLATES/versori/webhooks/template-webhook-payment-gateway-integration.md +2478 -2478
- package/docs/01-TEMPLATES/versori/webhooks/template-webhook-rma-returns-comprehensive.md +2240 -2240
- package/docs/01-TEMPLATES/versori/webhooks/template-webhook-xml-order-ingestion.md +2029 -2029
- package/docs/01-TEMPLATES/versori/webhooks/webhook-templates-guide.md +140 -140
- package/docs/01-TEMPLATES/versori/workflows/_examples/sample-data/inventory-mapping.json +20 -20
- package/docs/01-TEMPLATES/versori/workflows/_examples/sample-data/products_2025-01-22.csv +11 -11
- package/docs/01-TEMPLATES/versori/workflows/_examples/sample-data/sample-data-guide.md +34 -34
- package/docs/01-TEMPLATES/versori/workflows/_examples/workflow-examples-guide.md +36 -36
- package/docs/01-TEMPLATES/versori/workflows/extraction/extraction-modes-guide.md +1038 -1038
- package/docs/01-TEMPLATES/versori/workflows/extraction/extraction-workflows-guide.md +138 -138
- package/docs/01-TEMPLATES/versori/workflows/extraction/graphql-queries/graphql-extraction-guide.md +63 -63
- package/docs/01-TEMPLATES/versori/workflows/extraction/graphql-queries/template-extraction-fulfillments-to-sftp-csv.md +2062 -2062
- package/docs/01-TEMPLATES/versori/workflows/extraction/graphql-queries/template-extraction-fulfillments-to-sftp-xml.md +2294 -2294
- package/docs/01-TEMPLATES/versori/workflows/extraction/graphql-queries/template-extraction-inventory-positions-to-s3-csv.md +2461 -2461
- package/docs/01-TEMPLATES/versori/workflows/extraction/graphql-queries/template-extraction-inventory-positions-to-sftp-xml.md +2529 -2529
- package/docs/01-TEMPLATES/versori/workflows/extraction/graphql-queries/template-extraction-inventory-quantities-to-s3-csv.md +2464 -2464
- package/docs/01-TEMPLATES/versori/workflows/extraction/graphql-queries/template-extraction-inventory-quantities-to-s3-json.md +1959 -1959
- package/docs/01-TEMPLATES/versori/workflows/extraction/graphql-queries/template-extraction-orders-to-s3-csv.md +1953 -1953
- package/docs/01-TEMPLATES/versori/workflows/extraction/graphql-queries/template-extraction-orders-to-sftp-xml.md +2541 -2541
- package/docs/01-TEMPLATES/versori/workflows/extraction/graphql-queries/template-extraction-products-to-s3-json.md +2384 -2384
- package/docs/01-TEMPLATES/versori/workflows/extraction/graphql-queries/template-extraction-products-to-sftp-xml.md +2445 -2445
- package/docs/01-TEMPLATES/versori/workflows/extraction/graphql-queries/template-extraction-virtual-positions-to-s3-csv.md +2355 -2355
- package/docs/01-TEMPLATES/versori/workflows/extraction/graphql-queries/template-extraction-virtual-positions-to-s3-json.md +2042 -2042
- package/docs/01-TEMPLATES/versori/workflows/extraction/graphql-queries/template-extraction-virtual-positions-to-sftp-xml.md +2726 -2726
- package/docs/01-TEMPLATES/versori/workflows/ingestion/batch-api/batch-api-guide.md +206 -206
- package/docs/01-TEMPLATES/versori/workflows/ingestion/batch-api/template-ingestion-cycle-count-reconciliation.md +2030 -2030
- package/docs/01-TEMPLATES/versori/workflows/ingestion/batch-api/template-ingestion-multi-channel-inventory-sync.md +1882 -1882
- package/docs/01-TEMPLATES/versori/workflows/ingestion/batch-api/template-ingestion-s3-csv-inventory-batch.md +2827 -2827
- package/docs/01-TEMPLATES/versori/workflows/ingestion/batch-api/template-ingestion-s3-json-inventory-batch.md +1952 -1952
- package/docs/01-TEMPLATES/versori/workflows/ingestion/batch-api/template-ingestion-s3-xml-inventory-batch.md +3289 -3289
- package/docs/01-TEMPLATES/versori/workflows/ingestion/batch-api/template-ingestion-sftp-csv-inventory-batch.md +3064 -3064
- package/docs/01-TEMPLATES/versori/workflows/ingestion/batch-api/template-ingestion-sftp-json-inventory-batch.md +3238 -3238
- package/docs/01-TEMPLATES/versori/workflows/ingestion/batch-api/template-ingestion-sftp-xml-inventory-batch.md +2977 -2977
- package/docs/01-TEMPLATES/versori/workflows/ingestion/event-api/event-api-guide.md +321 -321
- package/docs/01-TEMPLATES/versori/workflows/ingestion/event-api/template-ingestion-payload-json-order-cancel-event.md +959 -959
- package/docs/01-TEMPLATES/versori/workflows/ingestion/event-api/template-ingestion-payload-xml-order-cancel-event.md +1170 -1170
- package/docs/01-TEMPLATES/versori/workflows/ingestion/event-api/template-ingestion-s3-csv-product-event.md +2312 -2312
- package/docs/01-TEMPLATES/versori/workflows/ingestion/event-api/template-ingestion-s3-json-product-event.md +2999 -2999
- package/docs/01-TEMPLATES/versori/workflows/ingestion/event-api/template-ingestion-s3-parquet-product-event.md +2836 -2836
- package/docs/01-TEMPLATES/versori/workflows/ingestion/event-api/template-ingestion-s3-xml-product-event.md +2395 -2395
- package/docs/01-TEMPLATES/versori/workflows/ingestion/event-api/template-ingestion-sftp-csv-product-event.md +2295 -2295
- package/docs/01-TEMPLATES/versori/workflows/ingestion/event-api/template-ingestion-sftp-json-product-event.md +2602 -2602
- package/docs/01-TEMPLATES/versori/workflows/ingestion/event-api/template-ingestion-sftp-parquet-product-event.md +2589 -2589
- package/docs/01-TEMPLATES/versori/workflows/ingestion/event-api/template-ingestion-sftp-xml-product-event.md +3578 -3578
- package/docs/01-TEMPLATES/versori/workflows/ingestion/graphql-mutations/graphql-mutations-guide.md +93 -93
- package/docs/01-TEMPLATES/versori/workflows/ingestion/graphql-mutations/template-ingestion-payload-json-order-update-graphql.md +1260 -1260
- package/docs/01-TEMPLATES/versori/workflows/ingestion/graphql-mutations/template-ingestion-payload-xml-order-update-graphql.md +1472 -1472
- package/docs/01-TEMPLATES/versori/workflows/ingestion/graphql-mutations/template-ingestion-s3-csv-control-graphql.md +2417 -2417
- package/docs/01-TEMPLATES/versori/workflows/ingestion/graphql-mutations/template-ingestion-s3-csv-location-graphql.md +2811 -2811
- package/docs/01-TEMPLATES/versori/workflows/ingestion/graphql-mutations/template-ingestion-s3-csv-price-graphql.md +2619 -2619
- package/docs/01-TEMPLATES/versori/workflows/ingestion/graphql-mutations/template-ingestion-s3-json-location-graphql.md +2807 -2807
- package/docs/01-TEMPLATES/versori/workflows/ingestion/graphql-mutations/template-ingestion-s3-xml-location-graphql.md +2373 -2373
- package/docs/01-TEMPLATES/versori/workflows/ingestion/graphql-mutations/template-ingestion-sftp-csv-control-graphql.md +2740 -2740
- package/docs/01-TEMPLATES/versori/workflows/ingestion/graphql-mutations/template-ingestion-sftp-csv-location-graphql.md +2760 -2760
- package/docs/01-TEMPLATES/versori/workflows/ingestion/graphql-mutations/template-ingestion-sftp-json-location-graphql.md +1710 -1710
- package/docs/01-TEMPLATES/versori/workflows/ingestion/ingestion-workflows-guide.md +136 -136
- package/docs/01-TEMPLATES/versori/workflows/rubix-webhooks/rubix-webhooks-guide.md +520 -520
- package/docs/01-TEMPLATES/versori/workflows/rubix-webhooks/template-webhook-rubix-fulfilment-to-sftp-xml-inline.md +1418 -1418
- package/docs/01-TEMPLATES/versori/workflows/rubix-webhooks/template-webhook-rubix-fulfilment-to-sftp-xml-universal-mapper.md +1785 -1785
- package/docs/01-TEMPLATES/versori/workflows/rubix-webhooks/template-webhook-rubix-order-attribute-update.md +824 -824
- package/docs/01-TEMPLATES/versori/workflows/workflows-overview-guide.md +646 -646
- package/docs/02-CORE-GUIDES/advanced-services/advanced-services-batch-archival.md +724 -724
- package/docs/02-CORE-GUIDES/advanced-services/advanced-services-job-tracker.md +627 -627
- package/docs/02-CORE-GUIDES/advanced-services/advanced-services-partial-batch-recovery.md +561 -561
- package/docs/02-CORE-GUIDES/advanced-services/advanced-services-quick-reference.md +367 -367
- package/docs/02-CORE-GUIDES/advanced-services/advanced-services-readme.md +407 -407
- package/docs/02-CORE-GUIDES/advanced-services/readme.md +49 -49
- package/docs/02-CORE-GUIDES/api-reference/api-reference-quick-reference.md +548 -548
- package/docs/02-CORE-GUIDES/api-reference/event-api-input-output-reference.md +702 -1171
- package/docs/02-CORE-GUIDES/api-reference/examples/client-initialization.ts +286 -286
- package/docs/02-CORE-GUIDES/api-reference/graphql-error-classification.md +337 -337
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-01-client-api.md +399 -482
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-03-authentication.md +199 -199
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-04-graphql-mapping.md +925 -925
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-05-services.md +1198 -1198
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-06-data-sources.md +1083 -1083
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-07-parsers.md +1097 -1097
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-08-pagination.md +513 -513
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-08-types.md +545 -597
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-09-error-handling.md +527 -527
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-09-webhook-validation.md +514 -514
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-10-extraction.md +557 -557
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-10-utilities.md +412 -412
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-11-cli-tools.md +423 -423
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-11-error-handling.md +716 -716
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-12-analyze-source-structure.md +518 -518
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-12-partial-responses.md +212 -212
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-12-testing.md +300 -300
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-13-resolver-builder.md +322 -322
- package/docs/02-CORE-GUIDES/api-reference/readme.md +279 -279
- package/docs/02-CORE-GUIDES/auto-pagination/auto-pagination-quick-reference.md +351 -351
- package/docs/02-CORE-GUIDES/auto-pagination/auto-pagination-readme.md +277 -277
- package/docs/02-CORE-GUIDES/auto-pagination/examples/auto-pagination-readme.md +178 -178
- package/docs/02-CORE-GUIDES/auto-pagination/examples/common-patterns.ts +351 -351
- package/docs/02-CORE-GUIDES/auto-pagination/examples/paginate-products.ts +384 -384
- package/docs/02-CORE-GUIDES/auto-pagination/examples/paginate-virtual-positions.ts +308 -308
- package/docs/02-CORE-GUIDES/auto-pagination/modules/auto-pagination-01-foundations.md +470 -470
- package/docs/02-CORE-GUIDES/auto-pagination/modules/auto-pagination-02-quick-start.md +713 -713
- package/docs/02-CORE-GUIDES/auto-pagination/modules/auto-pagination-03-configuration.md +754 -754
- package/docs/02-CORE-GUIDES/auto-pagination/modules/auto-pagination-04-advanced-patterns.md +732 -732
- package/docs/02-CORE-GUIDES/auto-pagination/modules/auto-pagination-05-sdk-integration.md +847 -847
- package/docs/02-CORE-GUIDES/auto-pagination/modules/auto-pagination-06-troubleshooting.md +359 -359
- package/docs/02-CORE-GUIDES/auto-pagination/modules/auto-pagination-07-api-reference.md +462 -462
- package/docs/02-CORE-GUIDES/auto-pagination/readme.md +54 -54
- package/docs/02-CORE-GUIDES/data-sources/data-sources-file-operations-error-handling.md +1487 -1487
- package/docs/02-CORE-GUIDES/data-sources/data-sources-quick-reference.md +836 -836
- package/docs/02-CORE-GUIDES/data-sources/data-sources-readme.md +276 -276
- package/docs/02-CORE-GUIDES/data-sources/data-sources-sftp-credential-access-security.md +553 -553
- package/docs/02-CORE-GUIDES/data-sources/examples/common-patterns.ts +409 -409
- package/docs/02-CORE-GUIDES/data-sources/examples/data-sources-readme.md +178 -178
- package/docs/02-CORE-GUIDES/data-sources/examples/s3-operations.ts +308 -308
- package/docs/02-CORE-GUIDES/data-sources/examples/sftp-operations.ts +371 -371
- package/docs/02-CORE-GUIDES/data-sources/modules/data-sources-01-foundations.md +735 -735
- package/docs/02-CORE-GUIDES/data-sources/modules/data-sources-02-s3-operations.md +1302 -1302
- package/docs/02-CORE-GUIDES/data-sources/modules/data-sources-03-sftp-operations.md +1379 -1379
- package/docs/02-CORE-GUIDES/data-sources/modules/data-sources-04-file-patterns.md +941 -941
- package/docs/02-CORE-GUIDES/data-sources/modules/data-sources-05-advanced-topics.md +813 -813
- package/docs/02-CORE-GUIDES/data-sources/modules/data-sources-06-integration-patterns.md +486 -486
- package/docs/02-CORE-GUIDES/data-sources/modules/data-sources-07-troubleshooting.md +387 -387
- package/docs/02-CORE-GUIDES/data-sources/modules/data-sources-08-api-reference.md +417 -417
- package/docs/02-CORE-GUIDES/data-sources/readme.md +77 -77
- package/docs/02-CORE-GUIDES/error-handling-guide.md +936 -936
- package/docs/02-CORE-GUIDES/extraction/examples/02-core-guides-extraction-readme.md +116 -116
- package/docs/02-CORE-GUIDES/extraction/examples/common-patterns.ts +428 -428
- package/docs/02-CORE-GUIDES/extraction/examples/extract-inventory-basic.ts +187 -187
- package/docs/02-CORE-GUIDES/extraction/extraction-quick-reference.md +596 -596
- package/docs/02-CORE-GUIDES/extraction/modules/02-core-guides-extraction-01-foundations.md +514 -514
- package/docs/02-CORE-GUIDES/extraction/modules/02-core-guides-extraction-02-basic-extraction.md +823 -823
- package/docs/02-CORE-GUIDES/extraction/modules/02-core-guides-extraction-03-parquet-processing.md +507 -507
- package/docs/02-CORE-GUIDES/extraction/modules/02-core-guides-extraction-04-data-enrichment.md +546 -546
- package/docs/02-CORE-GUIDES/extraction/modules/02-core-guides-extraction-05-transformation.md +494 -494
- package/docs/02-CORE-GUIDES/extraction/modules/02-core-guides-extraction-06-export-formats.md +458 -458
- package/docs/02-CORE-GUIDES/extraction/modules/02-core-guides-extraction-06-performance.md +138 -138
- package/docs/02-CORE-GUIDES/extraction/modules/02-core-guides-extraction-07-api-reference.md +148 -148
- package/docs/02-CORE-GUIDES/extraction/modules/02-core-guides-extraction-07-optimization.md +692 -692
- package/docs/02-CORE-GUIDES/extraction/modules/02-core-guides-extraction-08-extraction-orchestrator.md +1008 -1008
- package/docs/02-CORE-GUIDES/extraction/readme.md +151 -151
- package/docs/02-CORE-GUIDES/ingestion/examples/_simple-kv-store.ts +40 -40
- package/docs/02-CORE-GUIDES/ingestion/examples/error-recovery.ts +728 -728
- package/docs/02-CORE-GUIDES/ingestion/examples/event-driven.ts +501 -501
- package/docs/02-CORE-GUIDES/ingestion/examples/local-file-ingestion.ts +88 -88
- package/docs/02-CORE-GUIDES/ingestion/examples/parquet-ingestion.ts +117 -117
- package/docs/02-CORE-GUIDES/ingestion/examples/performance-optimized.ts +647 -647
- package/docs/02-CORE-GUIDES/ingestion/examples/s3-csv-ingestion.ts +169 -169
- package/docs/02-CORE-GUIDES/ingestion/examples/sftp-csv-ingestion.ts +134 -134
- package/docs/02-CORE-GUIDES/ingestion/ingestion-quick-reference.md +546 -546
- package/docs/02-CORE-GUIDES/ingestion/modules/02-core-guides-ingestion-01-introduction.md +626 -626
- package/docs/02-CORE-GUIDES/ingestion/modules/02-core-guides-ingestion-02-quick-start.md +658 -658
- package/docs/02-CORE-GUIDES/ingestion/modules/02-core-guides-ingestion-03-data-sources.md +1052 -1052
- package/docs/02-CORE-GUIDES/ingestion/modules/02-core-guides-ingestion-04-field-mapping.md +763 -763
- package/docs/02-CORE-GUIDES/ingestion/modules/02-core-guides-ingestion-05-advanced-parsers.md +676 -676
- package/docs/02-CORE-GUIDES/ingestion/modules/02-core-guides-ingestion-06-batch-api.md +1295 -1295
- package/docs/02-CORE-GUIDES/ingestion/modules/02-core-guides-ingestion-07-api-reference.md +138 -138
- package/docs/02-CORE-GUIDES/ingestion/modules/02-core-guides-ingestion-07-state-management.md +1037 -1037
- package/docs/02-CORE-GUIDES/ingestion/modules/02-core-guides-ingestion-08-performance-optimization.md +1349 -1349
- package/docs/02-CORE-GUIDES/ingestion/modules/02-core-guides-ingestion-09-best-practices.md +1893 -1893
- package/docs/02-CORE-GUIDES/ingestion/readme.md +160 -160
- package/docs/02-CORE-GUIDES/logging-guide.md +585 -585
- package/docs/02-CORE-GUIDES/mapping/error-handling-patterns.md +401 -401
- package/docs/02-CORE-GUIDES/mapping/examples/02-core-guides-mapping-readme.md +128 -128
- package/docs/02-CORE-GUIDES/mapping/examples/common-patterns.ts +273 -273
- package/docs/02-CORE-GUIDES/mapping/examples/csv-location-ingestion.json +36 -36
- package/docs/02-CORE-GUIDES/mapping/examples/csv-mapping.ts +242 -242
- package/docs/02-CORE-GUIDES/mapping/examples/graphql-to-parquet-extraction.json +36 -36
- package/docs/02-CORE-GUIDES/mapping/examples/json-mapping.ts +213 -213
- package/docs/02-CORE-GUIDES/mapping/examples/json-product-to-mutation.json +48 -48
- package/docs/02-CORE-GUIDES/mapping/examples/xml-mapping.ts +291 -291
- package/docs/02-CORE-GUIDES/mapping/examples/xml-order-to-mutation.json +45 -45
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/graphql-mutation-mapping-quick-reference.md +463 -463
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/graphql-mutation-mapping-readme.md +227 -227
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/modules/graphql-mutation-mapping-01-introduction.md +222 -222
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/modules/graphql-mutation-mapping-02-quick-start.md +351 -351
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/modules/graphql-mutation-mapping-03-schema-validation.md +569 -569
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/modules/graphql-mutation-mapping-04-mapping-patterns.md +471 -471
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/modules/graphql-mutation-mapping-05-configuration-reference.md +611 -611
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/modules/graphql-mutation-mapping-06-advanced-xpath.md +148 -148
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/modules/graphql-mutation-mapping-06-path-syntax.md +464 -464
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/modules/graphql-mutation-mapping-07-api-reference.md +94 -94
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/modules/graphql-mutation-mapping-07-array-handling.md +307 -307
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/modules/graphql-mutation-mapping-08-custom-resolvers.md +544 -544
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/modules/graphql-mutation-mapping-09-advanced-patterns.md +427 -427
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/modules/graphql-mutation-mapping-10-hooks-and-variables.md +336 -336
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/modules/graphql-mutation-mapping-11-error-handling.md +488 -488
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/modules/graphql-mutation-mapping-12-arguments-vs-nodes.md +383 -383
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/modules/graphql-mutation-mapping-13-best-practices.md +477 -477
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/readme.md +62 -62
- package/docs/02-CORE-GUIDES/mapping/mapping-format-decision-tree.md +480 -480
- package/docs/02-CORE-GUIDES/mapping/mapping-graphql-alias-batching-guide.md +820 -820
- package/docs/02-CORE-GUIDES/mapping/mapping-javascript-objects.md +2369 -2369
- package/docs/02-CORE-GUIDES/mapping/mapping-mapper-comparison-guide.md +682 -682
- package/docs/02-CORE-GUIDES/mapping/modules/02-core-guides-mapping-07-api-reference.md +1327 -1327
- package/docs/02-CORE-GUIDES/mapping/modules/02-core-guides-mapping-08-error-handling.md +1142 -1142
- package/docs/02-CORE-GUIDES/mapping/modules/mapping-04-use-cases.md +891 -891
- package/docs/02-CORE-GUIDES/mapping/modules/mapping-06-helpers-resolvers.md +1126 -1126
- package/docs/02-CORE-GUIDES/mapping/modules/mapping-06-sdk-resolvers.md +199 -199
- package/docs/02-CORE-GUIDES/mapping/modules/mapping-07-api-reference.md +1319 -1319
- package/docs/02-CORE-GUIDES/mapping/readme.md +178 -178
- package/docs/02-CORE-GUIDES/mapping/resolver-registration.md +410 -410
- package/docs/02-CORE-GUIDES/mapping/resolvers/examples/common-patterns.ts +226 -226
- package/docs/02-CORE-GUIDES/mapping/resolvers/examples/custom-resolvers.ts +227 -227
- package/docs/02-CORE-GUIDES/mapping/resolvers/examples/sdk-resolvers-usage.ts +203 -203
- package/docs/02-CORE-GUIDES/mapping/resolvers/mapping-resolvers-readme.md +274 -274
- package/docs/02-CORE-GUIDES/mapping/resolvers/mapping-resolvers-resolver-api-reference.md +679 -679
- package/docs/02-CORE-GUIDES/mapping/resolvers/mapping-resolvers-resolver-cookbook.md +826 -826
- package/docs/02-CORE-GUIDES/mapping/resolvers/mapping-resolvers-resolver-guide.md +1330 -1330
- package/docs/02-CORE-GUIDES/mapping/resolvers/mapping-resolvers-resolver-helpers-reference.md +1437 -1437
- package/docs/02-CORE-GUIDES/mapping/resolvers/mapping-resolvers-resolver-parameters-reference.md +553 -553
- package/docs/02-CORE-GUIDES/mapping/resolvers/mapping-resolvers-resolver-troubleshooting.md +854 -854
- package/docs/02-CORE-GUIDES/mapping/resolvers/readme.md +75 -75
- package/docs/02-CORE-GUIDES/parsers/examples/02-core-guides-parsers-readme.md +161 -161
- package/docs/02-CORE-GUIDES/parsers/examples/csv-parser-examples.ts +110 -110
- package/docs/02-CORE-GUIDES/parsers/examples/json-parser-examples.ts +33 -33
- package/docs/02-CORE-GUIDES/parsers/examples/parquet-parser-examples.ts +47 -47
- package/docs/02-CORE-GUIDES/parsers/examples/xml-parser-examples.ts +38 -38
- package/docs/02-CORE-GUIDES/parsers/modules/02-core-guides-parsers-01-foundations.md +355 -355
- package/docs/02-CORE-GUIDES/parsers/modules/02-core-guides-parsers-02-csv-parser.md +772 -772
- package/docs/02-CORE-GUIDES/parsers/modules/02-core-guides-parsers-03-json-parser.md +789 -789
- package/docs/02-CORE-GUIDES/parsers/modules/02-core-guides-parsers-04-xml-parser.md +857 -857
- package/docs/02-CORE-GUIDES/parsers/modules/02-core-guides-parsers-05-parquet-parser.md +603 -603
- package/docs/02-CORE-GUIDES/parsers/modules/02-core-guides-parsers-06-integration-patterns.md +702 -702
- package/docs/02-CORE-GUIDES/parsers/modules/02-core-guides-parsers-06-streaming.md +121 -121
- package/docs/02-CORE-GUIDES/parsers/modules/02-core-guides-parsers-07-api-reference.md +89 -89
- package/docs/02-CORE-GUIDES/parsers/modules/02-core-guides-parsers-07-troubleshooting.md +727 -727
- package/docs/02-CORE-GUIDES/parsers/parsers-quick-reference.md +482 -482
- package/docs/02-CORE-GUIDES/parsers/parsers-readme.md +258 -258
- package/docs/02-CORE-GUIDES/parsers/readme.md +65 -65
- package/docs/02-CORE-GUIDES/readme.md +194 -194
- package/docs/02-CORE-GUIDES/webhook-validation/examples/basic-validation.ts +108 -108
- package/docs/02-CORE-GUIDES/webhook-validation/examples/common-patterns.ts +316 -316
- package/docs/02-CORE-GUIDES/webhook-validation/examples/webhook-validation-readme.md +61 -61
- package/docs/02-CORE-GUIDES/webhook-validation/modules/webhook-validation-01-foundations.md +440 -440
- package/docs/02-CORE-GUIDES/webhook-validation/modules/webhook-validation-02-quick-start.md +525 -525
- package/docs/02-CORE-GUIDES/webhook-validation/modules/webhook-validation-03-versori-integration.md +741 -741
- package/docs/02-CORE-GUIDES/webhook-validation/modules/webhook-validation-04-platform-integration.md +629 -629
- package/docs/02-CORE-GUIDES/webhook-validation/modules/webhook-validation-05-configuration.md +535 -535
- package/docs/02-CORE-GUIDES/webhook-validation/modules/webhook-validation-06-error-handling.md +611 -611
- package/docs/02-CORE-GUIDES/webhook-validation/modules/webhook-validation-06-troubleshooting.md +124 -124
- package/docs/02-CORE-GUIDES/webhook-validation/modules/webhook-validation-07-api-reference.md +511 -511
- package/docs/02-CORE-GUIDES/webhook-validation/modules/webhook-validation-08-rubix-webhooks.md +590 -590
- package/docs/02-CORE-GUIDES/webhook-validation/modules/webhook-validation-09-rubix-event-vs-http-call.md +432 -432
- package/docs/02-CORE-GUIDES/webhook-validation/readme.md +239 -239
- package/docs/02-CORE-GUIDES/webhook-validation/webhook-validation-quick-reference.md +392 -392
- package/docs/03-PATTERN-GUIDES/connector-scenarios/connector-scenarios-quick-reference.md +498 -498
- package/docs/03-PATTERN-GUIDES/connector-scenarios/connector-scenarios-readme.md +313 -313
- package/docs/03-PATTERN-GUIDES/connector-scenarios/examples/common-patterns.ts +612 -612
- package/docs/03-PATTERN-GUIDES/connector-scenarios/examples/connector-scenarios-readme.md +253 -253
- package/docs/03-PATTERN-GUIDES/connector-scenarios/modules/connector-scenarios-01-foundations.md +452 -452
- package/docs/03-PATTERN-GUIDES/connector-scenarios/modules/connector-scenarios-02-simple-scenarios.md +681 -681
- package/docs/03-PATTERN-GUIDES/connector-scenarios/modules/connector-scenarios-03-intermediate-scenarios.md +637 -637
- package/docs/03-PATTERN-GUIDES/connector-scenarios/modules/connector-scenarios-04-advanced-scenarios.md +650 -650
- package/docs/03-PATTERN-GUIDES/connector-scenarios/modules/connector-scenarios-05-bidirectional-sync.md +233 -233
- package/docs/03-PATTERN-GUIDES/connector-scenarios/modules/connector-scenarios-06-production-patterns.md +442 -442
- package/docs/03-PATTERN-GUIDES/connector-scenarios/modules/connector-scenarios-07-reference.md +445 -445
- package/docs/03-PATTERN-GUIDES/connector-scenarios/readme.md +31 -31
- package/docs/03-PATTERN-GUIDES/enterprise-integration-patterns.md +1528 -1528
- package/docs/03-PATTERN-GUIDES/error-handling/comprehensive-error-handling-guide.md +1437 -1437
- package/docs/03-PATTERN-GUIDES/error-handling/error-handling-quick-reference.md +390 -390
- package/docs/03-PATTERN-GUIDES/error-handling/examples/common-patterns.ts +438 -438
- package/docs/03-PATTERN-GUIDES/error-handling/modules/error-handling-01-foundations.md +362 -362
- package/docs/03-PATTERN-GUIDES/error-handling/modules/error-handling-02-error-types.md +850 -850
- package/docs/03-PATTERN-GUIDES/error-handling/modules/error-handling-03-utf8-handling.md +456 -456
- package/docs/03-PATTERN-GUIDES/error-handling/modules/error-handling-04-error-scenarios.md +658 -658
- package/docs/03-PATTERN-GUIDES/error-handling/modules/error-handling-05-calling-patterns.md +671 -671
- package/docs/03-PATTERN-GUIDES/error-handling/modules/error-handling-06-retry-strategies.md +1034 -1034
- package/docs/03-PATTERN-GUIDES/error-handling/modules/error-handling-07-monitoring.md +653 -653
- package/docs/03-PATTERN-GUIDES/error-handling/modules/error-handling-08-api-reference.md +847 -847
- package/docs/03-PATTERN-GUIDES/error-handling/readme.md +36 -36
- package/docs/03-PATTERN-GUIDES/examples/__tests__/readme.md +40 -40
- package/docs/03-PATTERN-GUIDES/examples/__tests__/resolver-examples.test.js +282 -282
- package/docs/03-PATTERN-GUIDES/examples/test-data/03-pattern-guides-readme.md +110 -110
- package/docs/03-PATTERN-GUIDES/examples/test-data/canonical-inventory.json +123 -123
- package/docs/03-PATTERN-GUIDES/examples/test-data/canonical-order.json +171 -171
- package/docs/03-PATTERN-GUIDES/examples/test-data/readme.md +28 -28
- package/docs/03-PATTERN-GUIDES/extraction/extraction-readme.md +15 -15
- package/docs/03-PATTERN-GUIDES/extraction/readme.md +25 -25
- package/docs/03-PATTERN-GUIDES/file-operations/examples/common-patterns.ts +407 -407
- package/docs/03-PATTERN-GUIDES/file-operations/examples/file-operations-readme.md +142 -142
- package/docs/03-PATTERN-GUIDES/file-operations/file-operations-quick-reference.md +462 -462
- package/docs/03-PATTERN-GUIDES/file-operations/file-operations-readme.md +379 -379
- package/docs/03-PATTERN-GUIDES/file-operations/modules/file-operations-01-foundations.md +430 -430
- package/docs/03-PATTERN-GUIDES/file-operations/modules/file-operations-02-quick-start.md +484 -484
- package/docs/03-PATTERN-GUIDES/file-operations/modules/file-operations-03-s3-operations.md +507 -507
- package/docs/03-PATTERN-GUIDES/file-operations/modules/file-operations-04-sftp-operations.md +963 -963
- package/docs/03-PATTERN-GUIDES/file-operations/modules/file-operations-05-streaming-performance.md +503 -503
- package/docs/03-PATTERN-GUIDES/file-operations/modules/file-operations-06-archive-patterns.md +386 -386
- package/docs/03-PATTERN-GUIDES/file-operations/modules/file-operations-06-error-handling.md +117 -117
- package/docs/03-PATTERN-GUIDES/file-operations/modules/file-operations-07-api-reference.md +78 -78
- package/docs/03-PATTERN-GUIDES/file-operations/modules/file-operations-07-testing-troubleshooting.md +567 -567
- package/docs/03-PATTERN-GUIDES/file-operations/modules/file-operations-08-api-reference.md +1055 -1055
- package/docs/03-PATTERN-GUIDES/file-operations/readme.md +32 -32
- package/docs/03-PATTERN-GUIDES/ingestion/ingestion-readme.md +15 -15
- package/docs/03-PATTERN-GUIDES/ingestion/readme.md +25 -25
- package/docs/03-PATTERN-GUIDES/integration-patterns/examples/batch-processing.ts +130 -130
- package/docs/03-PATTERN-GUIDES/integration-patterns/examples/common-patterns.ts +360 -360
- package/docs/03-PATTERN-GUIDES/integration-patterns/examples/delta-sync.ts +130 -130
- package/docs/03-PATTERN-GUIDES/integration-patterns/examples/integration-patterns-readme.md +100 -100
- package/docs/03-PATTERN-GUIDES/integration-patterns/examples/real-time-webhook.ts +398 -398
- package/docs/03-PATTERN-GUIDES/integration-patterns/integration-patterns-quick-reference.md +962 -962
- package/docs/03-PATTERN-GUIDES/integration-patterns/integration-patterns-readme.md +134 -134
- package/docs/03-PATTERN-GUIDES/integration-patterns/modules/integration-patterns-01-real-time-processing.md +991 -991
- package/docs/03-PATTERN-GUIDES/integration-patterns/modules/integration-patterns-02-batch-processing.md +1547 -1547
- package/docs/03-PATTERN-GUIDES/integration-patterns/modules/integration-patterns-03-delta-sync.md +1108 -1108
- package/docs/03-PATTERN-GUIDES/integration-patterns/modules/integration-patterns-04-webhook-patterns.md +1181 -1181
- package/docs/03-PATTERN-GUIDES/integration-patterns/modules/integration-patterns-05-error-handling.md +1061 -1061
- package/docs/03-PATTERN-GUIDES/integration-patterns/modules/integration-patterns-06-advanced-integration-services.md +1547 -1547
- package/docs/03-PATTERN-GUIDES/integration-patterns/modules/integration-patterns-06-performance.md +109 -109
- package/docs/03-PATTERN-GUIDES/integration-patterns/modules/integration-patterns-07-api-reference.md +34 -34
- package/docs/03-PATTERN-GUIDES/integration-patterns/readme.md +30 -30
- package/docs/03-PATTERN-GUIDES/logging-minimal-mode.md +128 -128
- package/docs/03-PATTERN-GUIDES/multiple-connections/examples/common-patterns.ts +380 -380
- package/docs/03-PATTERN-GUIDES/multiple-connections/examples/multiple-connections-readme.md +139 -139
- package/docs/03-PATTERN-GUIDES/multiple-connections/examples/parallel-root-connections.ts +149 -149
- package/docs/03-PATTERN-GUIDES/multiple-connections/examples/real-world-scenarios.ts +405 -405
- package/docs/03-PATTERN-GUIDES/multiple-connections/modules/multiple-connections-01-foundations.md +378 -378
- package/docs/03-PATTERN-GUIDES/multiple-connections/modules/multiple-connections-02-quick-start.md +566 -566
- package/docs/03-PATTERN-GUIDES/multiple-connections/modules/multiple-connections-03-targeting-connections.md +659 -659
- package/docs/03-PATTERN-GUIDES/multiple-connections/modules/multiple-connections-04-parallel-queries.md +656 -656
- package/docs/03-PATTERN-GUIDES/multiple-connections/modules/multiple-connections-05-best-practices.md +624 -624
- package/docs/03-PATTERN-GUIDES/multiple-connections/modules/multiple-connections-06-api-reference.md +824 -824
- package/docs/03-PATTERN-GUIDES/multiple-connections/modules/multiple-connections-06-versori.md +119 -119
- package/docs/03-PATTERN-GUIDES/multiple-connections/modules/multiple-connections-07-api-reference.md +87 -87
- package/docs/03-PATTERN-GUIDES/multiple-connections/multiple-connections-quick-reference.md +353 -353
- package/docs/03-PATTERN-GUIDES/multiple-connections/multiple-connections-readme.md +270 -270
- package/docs/03-PATTERN-GUIDES/multiple-connections/readme.md +30 -30
- package/docs/03-PATTERN-GUIDES/pagination/pagination-readme.md +14 -14
- package/docs/03-PATTERN-GUIDES/pagination/readme.md +24 -24
- package/docs/03-PATTERN-GUIDES/parquet/examples/common-patterns.ts +180 -180
- package/docs/03-PATTERN-GUIDES/parquet/examples/read-parquet.ts +48 -48
- package/docs/03-PATTERN-GUIDES/parquet/examples/write-parquet.ts +65 -65
- package/docs/03-PATTERN-GUIDES/parquet/modules/03-pattern-guides-parquet-01-introduction.md +393 -393
- package/docs/03-PATTERN-GUIDES/parquet/modules/03-pattern-guides-parquet-02-quick-start.md +572 -572
- package/docs/03-PATTERN-GUIDES/parquet/modules/03-pattern-guides-parquet-03-reading-parquet.md +525 -525
- package/docs/03-PATTERN-GUIDES/parquet/modules/03-pattern-guides-parquet-04-writing-parquet.md +554 -554
- package/docs/03-PATTERN-GUIDES/parquet/modules/03-pattern-guides-parquet-05-graphql-extraction.md +405 -405
- package/docs/03-PATTERN-GUIDES/parquet/modules/03-pattern-guides-parquet-06-performance.md +104 -104
- package/docs/03-PATTERN-GUIDES/parquet/modules/03-pattern-guides-parquet-06-s3-integration.md +511 -511
- package/docs/03-PATTERN-GUIDES/parquet/modules/03-pattern-guides-parquet-07-api-reference.md +90 -90
- package/docs/03-PATTERN-GUIDES/parquet/modules/03-pattern-guides-parquet-07-performance-optimization.md +525 -525
- package/docs/03-PATTERN-GUIDES/parquet/modules/03-pattern-guides-parquet-08-best-practices.md +712 -712
- package/docs/03-PATTERN-GUIDES/parquet/parquet-quick-reference.md +683 -683
- package/docs/03-PATTERN-GUIDES/parquet/parquet-readme.md +248 -248
- package/docs/03-PATTERN-GUIDES/parquet/readme.md +32 -32
- package/docs/03-PATTERN-GUIDES/parsers/parsers-readme.md +12 -12
- package/docs/03-PATTERN-GUIDES/parsers/readme.md +24 -24
- package/docs/03-PATTERN-GUIDES/readme.md +159 -159
- package/docs/03-PATTERN-GUIDES/webhooks/readme.md +24 -24
- package/docs/03-PATTERN-GUIDES/webhooks/webhooks-readme.md +8 -8
- package/docs/04-REFERENCE/architecture/architecture-01-overview.md +427 -427
- package/docs/04-REFERENCE/architecture/architecture-02-client-architecture.md +424 -424
- package/docs/04-REFERENCE/architecture/architecture-03-data-flow.md +690 -690
- package/docs/04-REFERENCE/architecture/architecture-04-service-layer.md +834 -834
- package/docs/04-REFERENCE/architecture/architecture-05-integration-architecture.md +655 -655
- package/docs/04-REFERENCE/architecture/architecture-06-state-management.md +653 -653
- package/docs/04-REFERENCE/architecture/architecture-adding-new-data-sources.md +686 -686
- package/docs/04-REFERENCE/architecture/readme.md +279 -279
- package/docs/04-REFERENCE/platforms/deno/readme.md +117 -117
- package/docs/04-REFERENCE/platforms/nodejs/readme.md +146 -146
- package/docs/04-REFERENCE/platforms/readme.md +135 -135
- package/docs/04-REFERENCE/platforms/versori/modules/platforms-versori-01-introduction.md +398 -398
- package/docs/04-REFERENCE/platforms/versori/modules/platforms-versori-02-quick-start.md +560 -560
- package/docs/04-REFERENCE/platforms/versori/modules/platforms-versori-03-authentication.md +757 -757
- package/docs/04-REFERENCE/platforms/versori/modules/platforms-versori-04-workflows.md +2476 -2476
- package/docs/04-REFERENCE/platforms/versori/modules/platforms-versori-05-connections.md +1167 -1167
- package/docs/04-REFERENCE/platforms/versori/modules/platforms-versori-06-kv-storage.md +990 -990
- package/docs/04-REFERENCE/platforms/versori/modules/platforms-versori-06-state-management.md +121 -121
- package/docs/04-REFERENCE/platforms/versori/modules/platforms-versori-07-api-reference.md +68 -68
- package/docs/04-REFERENCE/platforms/versori/modules/platforms-versori-07-deployment.md +731 -731
- package/docs/04-REFERENCE/platforms/versori/modules/platforms-versori-08-best-practices.md +1111 -1111
- package/docs/04-REFERENCE/platforms/versori/modules/platforms-versori-09-signature-reference.md +766 -766
- package/docs/04-REFERENCE/platforms/versori/platforms-versori-readme.md +299 -299
- package/docs/04-REFERENCE/platforms/versori/platforms-versori-s3-sftp-configuration-guide.md +1425 -1425
- package/docs/04-REFERENCE/platforms/versori/platforms-versori-webhook-api-key-security.md +816 -816
- package/docs/04-REFERENCE/platforms/versori/platforms-versori-webhook-connection-security.md +681 -681
- package/docs/04-REFERENCE/platforms/versori/platforms-versori-workflow-task-types.md +708 -708
- package/docs/04-REFERENCE/platforms/versori/readme.md +108 -108
- package/docs/04-REFERENCE/readme.md +148 -148
- package/docs/04-REFERENCE/resolver-signature/examples/advanced-resolvers.ts +482 -482
- package/docs/04-REFERENCE/resolver-signature/examples/async-resolvers.ts +496 -496
- package/docs/04-REFERENCE/resolver-signature/examples/basic-resolvers.ts +343 -343
- package/docs/04-REFERENCE/resolver-signature/examples/resolver-signature-readme.md +188 -188
- package/docs/04-REFERENCE/resolver-signature/examples/testing-resolvers.ts +463 -463
- package/docs/04-REFERENCE/resolver-signature/modules/resolver-signature-01-foundations.md +286 -286
- package/docs/04-REFERENCE/resolver-signature/modules/resolver-signature-02-parameter-reference.md +643 -643
- package/docs/04-REFERENCE/resolver-signature/modules/resolver-signature-03-basic-examples.md +521 -521
- package/docs/04-REFERENCE/resolver-signature/modules/resolver-signature-04-advanced-patterns.md +739 -739
- package/docs/04-REFERENCE/resolver-signature/modules/resolver-signature-05-sdk-resolvers.md +531 -531
- package/docs/04-REFERENCE/resolver-signature/modules/resolver-signature-06-migration-guide.md +650 -650
- package/docs/04-REFERENCE/resolver-signature/modules/resolver-signature-06-testing.md +125 -125
- package/docs/04-REFERENCE/resolver-signature/modules/resolver-signature-07-api-reference.md +794 -794
- package/docs/04-REFERENCE/resolver-signature/readme.md +64 -64
- package/docs/04-REFERENCE/resolver-signature/resolver-signature-quick-reference.md +270 -270
- package/docs/04-REFERENCE/resolver-signature/resolver-signature-readme.md +351 -351
- package/docs/04-REFERENCE/schema/fluent-commerce-schema.json +764 -764
- package/docs/04-REFERENCE/schema/readme.md +141 -141
- package/docs/04-REFERENCE/testing/examples/04-reference-testing-readme.md +158 -158
- package/docs/04-REFERENCE/testing/examples/fluent-testing.ts +62 -62
- package/docs/04-REFERENCE/testing/examples/health-check.ts +155 -155
- package/docs/04-REFERENCE/testing/examples/integration-test.ts +119 -119
- package/docs/04-REFERENCE/testing/examples/performance-test.ts +183 -183
- package/docs/04-REFERENCE/testing/examples/s3-testing.ts +127 -127
- package/docs/04-REFERENCE/testing/modules/04-reference-testing-01-foundations.md +267 -267
- package/docs/04-REFERENCE/testing/modules/04-reference-testing-02-s3-testing.md +599 -599
- package/docs/04-REFERENCE/testing/modules/04-reference-testing-03-fluent-testing.md +589 -589
- package/docs/04-REFERENCE/testing/modules/04-reference-testing-04-integration-testing.md +699 -699
- package/docs/04-REFERENCE/testing/modules/04-reference-testing-05-debugging.md +478 -478
- package/docs/04-REFERENCE/testing/modules/04-reference-testing-06-cicd-integration.md +463 -463
- package/docs/04-REFERENCE/testing/modules/04-reference-testing-06-preflight-validation.md +131 -131
- package/docs/04-REFERENCE/testing/modules/04-reference-testing-07-best-practices.md +499 -499
- package/docs/04-REFERENCE/testing/modules/04-reference-testing-07-coverage-ci.md +165 -165
- package/docs/04-REFERENCE/testing/modules/04-reference-testing-08-api-reference.md +634 -634
- package/docs/04-REFERENCE/testing/readme.md +86 -86
- package/docs/04-REFERENCE/testing/testing-quick-reference.md +667 -667
- package/docs/04-REFERENCE/testing/testing-readme.md +286 -286
- package/docs/04-REFERENCE/troubleshooting/readme.md +144 -144
- package/docs/04-REFERENCE/troubleshooting/troubleshooting-deno-sftp-compatibility.md +392 -392
- package/docs/template-loading-matrix.md +242 -242
- package/package.json +5 -3
|
@@ -1,464 +1,464 @@
|
|
|
1
|
-
# Path Syntax
|
|
2
|
-
|
|
3
|
-
[← Back to GraphQL Mutation Mapping Guide](../graphql-mutation-mapping-readme.md)
|
|
4
|
-
|
|
5
|
-
**Module 6 of 13** | **Level**: Intermediate | **Time**: 15 minutes
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## Path Syntax Overview
|
|
10
|
-
|
|
11
|
-
**How it works:** XMLPathResolver automatically handles XML parser internals (`#text` wrappers, `@` attribute prefixes). You write natural paths - the SDK handles complexity.
|
|
12
|
-
|
|
13
|
-
## Naming Conventions for XML Attributes
|
|
14
|
-
|
|
15
|
-
**Choose ONE convention per project and use it consistently throughout your XML and mappings.**
|
|
16
|
-
|
|
17
|
-
### Recommended: Kebab-Case (XML Standard)
|
|
18
|
-
|
|
19
|
-
This is the most common convention in XML and SFCC integrations:
|
|
20
|
-
|
|
21
|
-
```xml
|
|
22
|
-
<order order-no="ORD-123" customer-id="CUST-456">
|
|
23
|
-
<line-item item-id="ITEM-001" product-ref="SKU-001" />
|
|
24
|
-
<shipping-address postal-code="62701" />
|
|
25
|
-
</order>
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
```json
|
|
29
|
-
{
|
|
30
|
-
"ref": { "source": "order@order-no" },
|
|
31
|
-
"customerId": { "source": "order@customer-id" },
|
|
32
|
-
"items": {
|
|
33
|
-
"source": "order.line-item",
|
|
34
|
-
"isArray": true,
|
|
35
|
-
"fields": {
|
|
36
|
-
"itemId": { "source": "$.@item-id" },
|
|
37
|
-
"productRef": { "source": "$.@product-ref" }
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
**✅ Pros:**
|
|
44
|
-
- XML industry standard
|
|
45
|
-
- Works well with SFCC, SAP, Oracle systems
|
|
46
|
-
- Easy to read in XML
|
|
47
|
-
- Matches most external API specs
|
|
48
|
-
|
|
49
|
-
### Alternative: CamelCase (Modern APIs)
|
|
50
|
-
|
|
51
|
-
Used by modern REST APIs and some e-commerce platforms:
|
|
52
|
-
|
|
53
|
-
```xml
|
|
54
|
-
<order orderNo="ORD-123" customerId="CUST-456">
|
|
55
|
-
<lineItem itemId="ITEM-001" productRef="SKU-001" />
|
|
56
|
-
<shippingAddress postalCode="62701" />
|
|
57
|
-
</order>
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
```json
|
|
61
|
-
{
|
|
62
|
-
"ref": { "source": "order@orderNo" },
|
|
63
|
-
"customerId": { "source": "order@customerId" },
|
|
64
|
-
"items": {
|
|
65
|
-
"source": "order.lineItem",
|
|
66
|
-
"isArray": true,
|
|
67
|
-
"fields": {
|
|
68
|
-
"itemId": { "source": "$.@itemId" },
|
|
69
|
-
"productRef": { "source": "$.@productRef" }
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
**✅ Pros:**
|
|
76
|
-
- Matches JavaScript/TypeScript conventions
|
|
77
|
-
- No need for quotes in JavaScript objects
|
|
78
|
-
- Easier to type (no hyphens)
|
|
79
|
-
|
|
80
|
-
### ⚠️ IMPORTANT: Never Mix Conventions
|
|
81
|
-
|
|
82
|
-
```json
|
|
83
|
-
// ❌ BAD - Inconsistent naming
|
|
84
|
-
{
|
|
85
|
-
"ref": { "source": "order@order-no" }, // kebab-case
|
|
86
|
-
"customerId": { "source": "order@customerId" }, // camelCase
|
|
87
|
-
"total": { "source": "order@OrderTotal" } // PascalCase
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
// ✅ GOOD - Consistent kebab-case throughout
|
|
91
|
-
{
|
|
92
|
-
"ref": { "source": "order@order-no" },
|
|
93
|
-
"customerId": { "source": "order@customer-id" },
|
|
94
|
-
"total": { "source": "order@order-total" }
|
|
95
|
-
}
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
**Best Practice**: If integrating with an existing system (like SFCC), match their naming convention. If building from scratch, choose kebab-case for XML standard compliance.
|
|
99
|
-
|
|
100
|
-
### XML Paths
|
|
101
|
-
|
|
102
|
-
```json
|
|
103
|
-
{
|
|
104
|
-
"sourceFormat": "xml",
|
|
105
|
-
"arguments": {
|
|
106
|
-
"input": {
|
|
107
|
-
"ref": "order@order-no", // Attribute
|
|
108
|
-
"email": "customer.customer-email", // Element
|
|
109
|
-
"sku": "product-lineitems.product-lineitem[0].product-id", // Array index
|
|
110
|
-
"allSkus": "product-lineitems.product-lineitem.*.product-id" // Wildcard
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
**XML Path Syntax Quick Reference:**
|
|
117
|
-
|
|
118
|
-
| Pattern | Example | Description |
|
|
119
|
-
|---------|---------|-------------|
|
|
120
|
-
| `element` | `order-date` | Get element value |
|
|
121
|
-
| `element@attr` | `order@order-no` | Get attribute value |
|
|
122
|
-
| `parent.child` | `customer.email` | Nested element |
|
|
123
|
-
| `array[0]` | `items[0].sku` | Array index |
|
|
124
|
-
| `array.*` | `items.*.sku` | All items |
|
|
125
|
-
| `element[attr=val]` | `item[type=product]` | Filter by attribute |
|
|
126
|
-
|
|
127
|
-
**Key Point:** No need to include `#text` in your paths. XMLPathResolver automatically handles XML parser internals.
|
|
128
|
-
|
|
129
|
-
## Versori Platform Compatibility
|
|
130
|
-
|
|
131
|
-
**XMLPathResolver now supports both raw XML strings AND pre-parsed objects** (like from Versori webhooks) with automatic detection:
|
|
132
|
-
|
|
133
|
-
```typescript
|
|
134
|
-
// Scenario 1: Raw XML string (standalone scripts)
|
|
135
|
-
const xmlString = '<order order-no="12345"><customer>John</customer></order>';
|
|
136
|
-
mapper.map(xmlString); // ✅ Auto-parses XML
|
|
137
|
-
|
|
138
|
-
// Scenario 2: Versori pre-parsed object (Versori webhooks)
|
|
139
|
-
const versoriData = { order: { $: { 'order-no': '12345' }, customer: 'John' } };
|
|
140
|
-
mapper.map(versoriData); // ✅ Handles $ attribute structure
|
|
141
|
-
|
|
142
|
-
// SAME mapping config works for BOTH!
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
**Attribute Format Support:**
|
|
146
|
-
- ✅ **Versori format**: `{ $: { 'order-no': '12345' } }` - Versori platform auto-parsing
|
|
147
|
-
- ✅ **Standard format**: `{ '@order-no': '12345' }` - SDK XMLParser output
|
|
148
|
-
- ✅ **User writes**: `order@order-no` - Works for all formats!
|
|
149
|
-
|
|
150
|
-
**Benefits:**
|
|
151
|
-
- Same mapping configuration works in Versori platform and standalone scripts
|
|
152
|
-
- Keep `sourceFormat: "xml"` accurate (source IS XML, even if pre-parsed)
|
|
153
|
-
- No need to convert objects back to strings for parsing
|
|
154
|
-
- Automatic detection - no configuration changes needed
|
|
155
|
-
|
|
156
|
-
## XML Attribute Access (CRITICAL)
|
|
157
|
-
|
|
158
|
-
When accessing XML attributes, use `@` **WITHOUT a dot before it**:
|
|
159
|
-
|
|
160
|
-
```json
|
|
161
|
-
{
|
|
162
|
-
"customerId": { "source": "customer@id" },
|
|
163
|
-
"orderId": { "source": "order@orderNumber" },
|
|
164
|
-
"itemRef": { "source": "lineItem@itemId" }
|
|
165
|
-
}
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
**Common Mistakes:**
|
|
169
|
-
- ❌ WRONG: `"customer.@id"` (extra dot breaks path)
|
|
170
|
-
- ❌ WRONG: `"customer['@id']"` (bracket notation not needed)
|
|
171
|
-
- ❌ WRONG: `"order.items.item.@id"` (dot before @ in nested path)
|
|
172
|
-
- ✅ CORRECT: `"customer@id"` (no dot before @)
|
|
173
|
-
- ✅ CORRECT: `"order.items.item@id"` (no dot before @, even in nested paths)
|
|
174
|
-
|
|
175
|
-
**Why:** The SDK's XMLPathResolver handles attribute access internally. Adding a dot before `@` treats `@attribute` as a nested element name instead of an XML attribute, causing path resolution to fail.
|
|
176
|
-
|
|
177
|
-
**Real-world examples across different systems:**
|
|
178
|
-
|
|
179
|
-
| System Type | Example XML | Correct Path | Wrong Path |
|
|
180
|
-
|-------------|-------------|--------------|------------|
|
|
181
|
-
| **E-commerce** | `<product sku="ABC-123">` | `product@sku` | `product.@sku` |
|
|
182
|
-
| **Orders** | `<order orderNumber="ORD-456">` | `order@orderNumber` | `order.@orderNumber` |
|
|
183
|
-
| **Inventory** | `<item id="ITEM-789">` | `item@id` | `item.@id` |
|
|
184
|
-
| **ERP** | `<material materialNumber="MAT-001">` | `material@materialNumber` | `material.@materialNumber` |
|
|
185
|
-
| **Invoices** | `<invoice invoiceId="INV-2024-001">` | `invoice@invoiceId` | `invoice.@invoiceId` |
|
|
186
|
-
| **POS** | `<transaction transactionId="TXN-12345">` | `transaction@transactionId` | `transaction.@transactionId` |
|
|
187
|
-
|
|
188
|
-
**XML Example with Multiple Attributes:**
|
|
189
|
-
```xml
|
|
190
|
-
<order orderNumber="ORD-12345" status="OPEN">
|
|
191
|
-
<customer customerId="CUST-001" tier="PREMIUM">
|
|
192
|
-
<email>customer@example.com</email>
|
|
193
|
-
</customer>
|
|
194
|
-
<items>
|
|
195
|
-
<item id="ITEM-1" sku="PROD-ABC">
|
|
196
|
-
<quantity>5</quantity>
|
|
197
|
-
</item>
|
|
198
|
-
</items>
|
|
199
|
-
</order>
|
|
200
|
-
```
|
|
201
|
-
|
|
202
|
-
**Correct Mapping Configuration:**
|
|
203
|
-
```json
|
|
204
|
-
{
|
|
205
|
-
"ref": { "source": "order@orderNumber" },
|
|
206
|
-
"status": { "source": "order@status" },
|
|
207
|
-
"customer.id": { "source": "order.customer@customerId" },
|
|
208
|
-
"customer.tier": { "source": "order.customer@tier" },
|
|
209
|
-
"customer.email": { "source": "order.customer.email" },
|
|
210
|
-
"items": {
|
|
211
|
-
"source": "order.items.item",
|
|
212
|
-
"isArray": true,
|
|
213
|
-
"fields": {
|
|
214
|
-
"ref": { "source": "$.@id" },
|
|
215
|
-
"sku": { "source": "$.@sku" },
|
|
216
|
-
"quantity": { "source": "$.quantity" }
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
```
|
|
221
|
-
|
|
222
|
-
**Key Takeaways:**
|
|
223
|
-
- **Attributes**: Use `@` directly → `element@attribute`
|
|
224
|
-
- **Nested elements**: Use `.` → `parent.child.grandchild`
|
|
225
|
-
- **Attributes in nested paths**: Dot up to element, then `@` → `parent.child@attribute`
|
|
226
|
-
- **Never combine**: `element.@attribute` will always fail
|
|
227
|
-
|
|
228
|
-
## Common Mistakes
|
|
229
|
-
|
|
230
|
-
### Mistake #1: Dot Before @ Symbol
|
|
231
|
-
|
|
232
|
-
```json
|
|
233
|
-
// ❌ WRONG - Extra dot before @
|
|
234
|
-
{
|
|
235
|
-
"orderId": { "source": "order.@id" },
|
|
236
|
-
"customerId": { "source": "customer.@customer-no" }
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
// ✅ CORRECT - No dot before @
|
|
240
|
-
{
|
|
241
|
-
"orderId": { "source": "order@id" },
|
|
242
|
-
"customerId": { "source": "customer@customer-no" }
|
|
243
|
-
}
|
|
244
|
-
```
|
|
245
|
-
|
|
246
|
-
**Why it fails**: The SDK treats `@id` as a nested element name, not an XML attribute.
|
|
247
|
-
|
|
248
|
-
### Mistake #2: Mixing Naming Conventions
|
|
249
|
-
|
|
250
|
-
```json
|
|
251
|
-
// ❌ INCONSISTENT - Mix of kebab-case and camelCase
|
|
252
|
-
{
|
|
253
|
-
"orderRef": { "source": "order@order-no" },
|
|
254
|
-
"customerId": { "source": "customer@customerId" }
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
// ✅ CONSISTENT - Choose one convention
|
|
258
|
-
{
|
|
259
|
-
"orderRef": { "source": "order@order-no" },
|
|
260
|
-
"customerId": { "source": "customer@customer-id" }
|
|
261
|
-
}
|
|
262
|
-
```
|
|
263
|
-
|
|
264
|
-
**Why it matters**: XML sources should use consistent attribute naming. Pick kebab-case (XML standard) or camelCase (modern APIs) and stick with it.
|
|
265
|
-
|
|
266
|
-
### Mistake #3: Forgetting Array Context Symbol
|
|
267
|
-
|
|
268
|
-
```json
|
|
269
|
-
// ❌ WRONG - Missing $ for relative path in array
|
|
270
|
-
{
|
|
271
|
-
"items": {
|
|
272
|
-
"source": "order.items.item",
|
|
273
|
-
"isArray": true,
|
|
274
|
-
"fields": {
|
|
275
|
-
"ref": { "source": "@id" } // Missing $ - will fail
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
|
|
280
|
-
// ✅ CORRECT - Use $ for current array item
|
|
281
|
-
{
|
|
282
|
-
"items": {
|
|
283
|
-
"source": "order.items.item",
|
|
284
|
-
"isArray": true,
|
|
285
|
-
"fields": {
|
|
286
|
-
"ref": { "source": "$.@id" } // $ means "current item"
|
|
287
|
-
}
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
```
|
|
291
|
-
|
|
292
|
-
**Why it fails**: Without `$.`, the mapper looks for `@id` at the root level, not in the current array item.
|
|
293
|
-
|
|
294
|
-
### Mistake #4: Incorrect Nested Path to Attribute
|
|
295
|
-
|
|
296
|
-
```xml
|
|
297
|
-
<order>
|
|
298
|
-
<customer customer-id="123">
|
|
299
|
-
<email>john@example.com</email>
|
|
300
|
-
</customer>
|
|
301
|
-
</order>
|
|
302
|
-
```
|
|
303
|
-
|
|
304
|
-
```json
|
|
305
|
-
// ❌ WRONG - Missing intermediate element
|
|
306
|
-
{
|
|
307
|
-
"customerId": { "source": "order@customer-id" }
|
|
308
|
-
}
|
|
309
|
-
|
|
310
|
-
// ✅ CORRECT - Include full path to element with attribute
|
|
311
|
-
{
|
|
312
|
-
"customerId": { "source": "order.customer@customer-id" }
|
|
313
|
-
}
|
|
314
|
-
```
|
|
315
|
-
|
|
316
|
-
**Why it fails**: The attribute `customer-id` is on the `<customer>` element, not `<order>`. Must specify full path.
|
|
317
|
-
|
|
318
|
-
### Mistake #5: Using Bracket Notation for Attributes
|
|
319
|
-
|
|
320
|
-
```json
|
|
321
|
-
// ❌ WRONG - Bracket notation not supported
|
|
322
|
-
{
|
|
323
|
-
"orderId": { "source": "order['@id']" }
|
|
324
|
-
}
|
|
325
|
-
|
|
326
|
-
// ✅ CORRECT - Use @ directly
|
|
327
|
-
{
|
|
328
|
-
"orderId": { "source": "order@id" }
|
|
329
|
-
}
|
|
330
|
-
```
|
|
331
|
-
|
|
332
|
-
**Why it fails**: The SDK's path resolver uses `@` syntax, not JavaScript bracket notation.
|
|
333
|
-
|
|
334
|
-
## JSON Paths
|
|
335
|
-
|
|
336
|
-
```json
|
|
337
|
-
{
|
|
338
|
-
"sourceFormat": "json",
|
|
339
|
-
"arguments": {
|
|
340
|
-
"input": {
|
|
341
|
-
"ref": "order.orderNo", // Property
|
|
342
|
-
"email": "customer.email", // Nested property
|
|
343
|
-
"sku": "productLineItems[0].productId", // Array index
|
|
344
|
-
"allSkus": "productLineItems.*.productId" // Wildcard
|
|
345
|
-
}
|
|
346
|
-
}
|
|
347
|
-
}
|
|
348
|
-
```
|
|
349
|
-
|
|
350
|
-
## Path Syntax Examples
|
|
351
|
-
|
|
352
|
-
### Basic Paths
|
|
353
|
-
|
|
354
|
-
**XML:**
|
|
355
|
-
```xml
|
|
356
|
-
<order>
|
|
357
|
-
<orderNumber>ORD-123</orderNumber>
|
|
358
|
-
<customer>
|
|
359
|
-
<email>customer@example.com</email>
|
|
360
|
-
</customer>
|
|
361
|
-
</order>
|
|
362
|
-
```
|
|
363
|
-
|
|
364
|
-
```json
|
|
365
|
-
{
|
|
366
|
-
"ref": { "source": "order.orderNumber" },
|
|
367
|
-
"email": { "source": "order.customer.email" }
|
|
368
|
-
}
|
|
369
|
-
```
|
|
370
|
-
|
|
371
|
-
**JSON:**
|
|
372
|
-
```json
|
|
373
|
-
{
|
|
374
|
-
"order": {
|
|
375
|
-
"orderNumber": "ORD-123",
|
|
376
|
-
"customer": {
|
|
377
|
-
"email": "customer@example.com"
|
|
378
|
-
}
|
|
379
|
-
}
|
|
380
|
-
}
|
|
381
|
-
```
|
|
382
|
-
|
|
383
|
-
```json
|
|
384
|
-
{
|
|
385
|
-
"ref": { "source": "order.orderNumber" },
|
|
386
|
-
"email": { "source": "order.customer.email" }
|
|
387
|
-
}
|
|
388
|
-
```
|
|
389
|
-
|
|
390
|
-
### Array Paths
|
|
391
|
-
|
|
392
|
-
**XML:**
|
|
393
|
-
```xml
|
|
394
|
-
<order>
|
|
395
|
-
<items>
|
|
396
|
-
<item>
|
|
397
|
-
<sku>PROD-1</sku>
|
|
398
|
-
<quantity>5</quantity>
|
|
399
|
-
</item>
|
|
400
|
-
<item>
|
|
401
|
-
<sku>PROD-2</sku>
|
|
402
|
-
<quantity>3</quantity>
|
|
403
|
-
</item>
|
|
404
|
-
</items>
|
|
405
|
-
</order>
|
|
406
|
-
```
|
|
407
|
-
|
|
408
|
-
```json
|
|
409
|
-
{
|
|
410
|
-
"firstSku": { "source": "order.items.item[0].sku" },
|
|
411
|
-
"allSkus": { "source": "order.items.item.*.sku" }
|
|
412
|
-
}
|
|
413
|
-
```
|
|
414
|
-
|
|
415
|
-
**JSON:**
|
|
416
|
-
```json
|
|
417
|
-
{
|
|
418
|
-
"order": {
|
|
419
|
-
"items": [
|
|
420
|
-
{ "sku": "PROD-1", "quantity": 5 },
|
|
421
|
-
{ "sku": "PROD-2", "quantity": 3 }
|
|
422
|
-
]
|
|
423
|
-
}
|
|
424
|
-
}
|
|
425
|
-
```
|
|
426
|
-
|
|
427
|
-
```json
|
|
428
|
-
{
|
|
429
|
-
"firstSku": { "source": "order.items[0].sku" },
|
|
430
|
-
"allSkus": { "source": "order.items.*.sku" }
|
|
431
|
-
}
|
|
432
|
-
```
|
|
433
|
-
|
|
434
|
-
### Attribute Paths (XML Only)
|
|
435
|
-
|
|
436
|
-
```xml
|
|
437
|
-
<order orderNumber="ORD-123" status="OPEN">
|
|
438
|
-
<customer customerId="CUST-001">
|
|
439
|
-
<name>John Doe</name>
|
|
440
|
-
</customer>
|
|
441
|
-
</order>
|
|
442
|
-
```
|
|
443
|
-
|
|
444
|
-
```json
|
|
445
|
-
{
|
|
446
|
-
"ref": { "source": "order@orderNumber" },
|
|
447
|
-
"status": { "source": "order@status" },
|
|
448
|
-
"customerId": { "source": "order.customer@customerId" },
|
|
449
|
-
"customerName": { "source": "order.customer.name" }
|
|
450
|
-
}
|
|
451
|
-
```
|
|
452
|
-
|
|
453
|
-
---
|
|
454
|
-
|
|
455
|
-
## Navigation
|
|
456
|
-
|
|
457
|
-
[← Previous: Configuration Reference](./graphql-mutation-mapping-05-configuration-reference.md) | [Back to Guide](../graphql-mutation-mapping-readme.md) | [Next: Array Handling →](./graphql-mutation-mapping-07-array-handling.md)
|
|
458
|
-
|
|
459
|
-
## Related Documentation
|
|
460
|
-
|
|
461
|
-
- [Module 07: Array Handling](./graphql-mutation-mapping-07-array-handling.md) - Array mapping patterns
|
|
462
|
-
- [Module 09: Advanced Patterns](./graphql-mutation-mapping-09-advanced-patterns.md) - Advanced path techniques
|
|
463
|
-
- [XMLPathResolver API Reference](../../../api-reference/modules/api-reference-04-graphql-mapping.md#xmlpathresolver) - Implementation details
|
|
464
|
-
- [JSONPathResolver API Reference](../../../api-reference/modules/api-reference-04-graphql-mapping.md#jsonpathresolver) - Implementation details
|
|
1
|
+
# Path Syntax
|
|
2
|
+
|
|
3
|
+
[← Back to GraphQL Mutation Mapping Guide](../graphql-mutation-mapping-readme.md)
|
|
4
|
+
|
|
5
|
+
**Module 6 of 13** | **Level**: Intermediate | **Time**: 15 minutes
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Path Syntax Overview
|
|
10
|
+
|
|
11
|
+
**How it works:** XMLPathResolver automatically handles XML parser internals (`#text` wrappers, `@` attribute prefixes). You write natural paths - the SDK handles complexity.
|
|
12
|
+
|
|
13
|
+
## Naming Conventions for XML Attributes
|
|
14
|
+
|
|
15
|
+
**Choose ONE convention per project and use it consistently throughout your XML and mappings.**
|
|
16
|
+
|
|
17
|
+
### Recommended: Kebab-Case (XML Standard)
|
|
18
|
+
|
|
19
|
+
This is the most common convention in XML and SFCC integrations:
|
|
20
|
+
|
|
21
|
+
```xml
|
|
22
|
+
<order order-no="ORD-123" customer-id="CUST-456">
|
|
23
|
+
<line-item item-id="ITEM-001" product-ref="SKU-001" />
|
|
24
|
+
<shipping-address postal-code="62701" />
|
|
25
|
+
</order>
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
```json
|
|
29
|
+
{
|
|
30
|
+
"ref": { "source": "order@order-no" },
|
|
31
|
+
"customerId": { "source": "order@customer-id" },
|
|
32
|
+
"items": {
|
|
33
|
+
"source": "order.line-item",
|
|
34
|
+
"isArray": true,
|
|
35
|
+
"fields": {
|
|
36
|
+
"itemId": { "source": "$.@item-id" },
|
|
37
|
+
"productRef": { "source": "$.@product-ref" }
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
**✅ Pros:**
|
|
44
|
+
- XML industry standard
|
|
45
|
+
- Works well with SFCC, SAP, Oracle systems
|
|
46
|
+
- Easy to read in XML
|
|
47
|
+
- Matches most external API specs
|
|
48
|
+
|
|
49
|
+
### Alternative: CamelCase (Modern APIs)
|
|
50
|
+
|
|
51
|
+
Used by modern REST APIs and some e-commerce platforms:
|
|
52
|
+
|
|
53
|
+
```xml
|
|
54
|
+
<order orderNo="ORD-123" customerId="CUST-456">
|
|
55
|
+
<lineItem itemId="ITEM-001" productRef="SKU-001" />
|
|
56
|
+
<shippingAddress postalCode="62701" />
|
|
57
|
+
</order>
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
```json
|
|
61
|
+
{
|
|
62
|
+
"ref": { "source": "order@orderNo" },
|
|
63
|
+
"customerId": { "source": "order@customerId" },
|
|
64
|
+
"items": {
|
|
65
|
+
"source": "order.lineItem",
|
|
66
|
+
"isArray": true,
|
|
67
|
+
"fields": {
|
|
68
|
+
"itemId": { "source": "$.@itemId" },
|
|
69
|
+
"productRef": { "source": "$.@productRef" }
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
**✅ Pros:**
|
|
76
|
+
- Matches JavaScript/TypeScript conventions
|
|
77
|
+
- No need for quotes in JavaScript objects
|
|
78
|
+
- Easier to type (no hyphens)
|
|
79
|
+
|
|
80
|
+
### ⚠️ IMPORTANT: Never Mix Conventions
|
|
81
|
+
|
|
82
|
+
```json
|
|
83
|
+
// ❌ BAD - Inconsistent naming
|
|
84
|
+
{
|
|
85
|
+
"ref": { "source": "order@order-no" }, // kebab-case
|
|
86
|
+
"customerId": { "source": "order@customerId" }, // camelCase
|
|
87
|
+
"total": { "source": "order@OrderTotal" } // PascalCase
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
// ✅ GOOD - Consistent kebab-case throughout
|
|
91
|
+
{
|
|
92
|
+
"ref": { "source": "order@order-no" },
|
|
93
|
+
"customerId": { "source": "order@customer-id" },
|
|
94
|
+
"total": { "source": "order@order-total" }
|
|
95
|
+
}
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
**Best Practice**: If integrating with an existing system (like SFCC), match their naming convention. If building from scratch, choose kebab-case for XML standard compliance.
|
|
99
|
+
|
|
100
|
+
### XML Paths
|
|
101
|
+
|
|
102
|
+
```json
|
|
103
|
+
{
|
|
104
|
+
"sourceFormat": "xml",
|
|
105
|
+
"arguments": {
|
|
106
|
+
"input": {
|
|
107
|
+
"ref": "order@order-no", // Attribute
|
|
108
|
+
"email": "customer.customer-email", // Element
|
|
109
|
+
"sku": "product-lineitems.product-lineitem[0].product-id", // Array index
|
|
110
|
+
"allSkus": "product-lineitems.product-lineitem.*.product-id" // Wildcard
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
**XML Path Syntax Quick Reference:**
|
|
117
|
+
|
|
118
|
+
| Pattern | Example | Description |
|
|
119
|
+
|---------|---------|-------------|
|
|
120
|
+
| `element` | `order-date` | Get element value |
|
|
121
|
+
| `element@attr` | `order@order-no` | Get attribute value |
|
|
122
|
+
| `parent.child` | `customer.email` | Nested element |
|
|
123
|
+
| `array[0]` | `items[0].sku` | Array index |
|
|
124
|
+
| `array.*` | `items.*.sku` | All items |
|
|
125
|
+
| `element[attr=val]` | `item[type=product]` | Filter by attribute |
|
|
126
|
+
|
|
127
|
+
**Key Point:** No need to include `#text` in your paths. XMLPathResolver automatically handles XML parser internals.
|
|
128
|
+
|
|
129
|
+
## Versori Platform Compatibility
|
|
130
|
+
|
|
131
|
+
**XMLPathResolver now supports both raw XML strings AND pre-parsed objects** (like from Versori webhooks) with automatic detection:
|
|
132
|
+
|
|
133
|
+
```typescript
|
|
134
|
+
// Scenario 1: Raw XML string (standalone scripts)
|
|
135
|
+
const xmlString = '<order order-no="12345"><customer>John</customer></order>';
|
|
136
|
+
mapper.map(xmlString); // ✅ Auto-parses XML
|
|
137
|
+
|
|
138
|
+
// Scenario 2: Versori pre-parsed object (Versori webhooks)
|
|
139
|
+
const versoriData = { order: { $: { 'order-no': '12345' }, customer: 'John' } };
|
|
140
|
+
mapper.map(versoriData); // ✅ Handles $ attribute structure
|
|
141
|
+
|
|
142
|
+
// SAME mapping config works for BOTH!
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
**Attribute Format Support:**
|
|
146
|
+
- ✅ **Versori format**: `{ $: { 'order-no': '12345' } }` - Versori platform auto-parsing
|
|
147
|
+
- ✅ **Standard format**: `{ '@order-no': '12345' }` - SDK XMLParser output
|
|
148
|
+
- ✅ **User writes**: `order@order-no` - Works for all formats!
|
|
149
|
+
|
|
150
|
+
**Benefits:**
|
|
151
|
+
- Same mapping configuration works in Versori platform and standalone scripts
|
|
152
|
+
- Keep `sourceFormat: "xml"` accurate (source IS XML, even if pre-parsed)
|
|
153
|
+
- No need to convert objects back to strings for parsing
|
|
154
|
+
- Automatic detection - no configuration changes needed
|
|
155
|
+
|
|
156
|
+
## XML Attribute Access (CRITICAL)
|
|
157
|
+
|
|
158
|
+
When accessing XML attributes, use `@` **WITHOUT a dot before it**:
|
|
159
|
+
|
|
160
|
+
```json
|
|
161
|
+
{
|
|
162
|
+
"customerId": { "source": "customer@id" },
|
|
163
|
+
"orderId": { "source": "order@orderNumber" },
|
|
164
|
+
"itemRef": { "source": "lineItem@itemId" }
|
|
165
|
+
}
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
**Common Mistakes:**
|
|
169
|
+
- ❌ WRONG: `"customer.@id"` (extra dot breaks path)
|
|
170
|
+
- ❌ WRONG: `"customer['@id']"` (bracket notation not needed)
|
|
171
|
+
- ❌ WRONG: `"order.items.item.@id"` (dot before @ in nested path)
|
|
172
|
+
- ✅ CORRECT: `"customer@id"` (no dot before @)
|
|
173
|
+
- ✅ CORRECT: `"order.items.item@id"` (no dot before @, even in nested paths)
|
|
174
|
+
|
|
175
|
+
**Why:** The SDK's XMLPathResolver handles attribute access internally. Adding a dot before `@` treats `@attribute` as a nested element name instead of an XML attribute, causing path resolution to fail.
|
|
176
|
+
|
|
177
|
+
**Real-world examples across different systems:**
|
|
178
|
+
|
|
179
|
+
| System Type | Example XML | Correct Path | Wrong Path |
|
|
180
|
+
|-------------|-------------|--------------|------------|
|
|
181
|
+
| **E-commerce** | `<product sku="ABC-123">` | `product@sku` | `product.@sku` |
|
|
182
|
+
| **Orders** | `<order orderNumber="ORD-456">` | `order@orderNumber` | `order.@orderNumber` |
|
|
183
|
+
| **Inventory** | `<item id="ITEM-789">` | `item@id` | `item.@id` |
|
|
184
|
+
| **ERP** | `<material materialNumber="MAT-001">` | `material@materialNumber` | `material.@materialNumber` |
|
|
185
|
+
| **Invoices** | `<invoice invoiceId="INV-2024-001">` | `invoice@invoiceId` | `invoice.@invoiceId` |
|
|
186
|
+
| **POS** | `<transaction transactionId="TXN-12345">` | `transaction@transactionId` | `transaction.@transactionId` |
|
|
187
|
+
|
|
188
|
+
**XML Example with Multiple Attributes:**
|
|
189
|
+
```xml
|
|
190
|
+
<order orderNumber="ORD-12345" status="OPEN">
|
|
191
|
+
<customer customerId="CUST-001" tier="PREMIUM">
|
|
192
|
+
<email>customer@example.com</email>
|
|
193
|
+
</customer>
|
|
194
|
+
<items>
|
|
195
|
+
<item id="ITEM-1" sku="PROD-ABC">
|
|
196
|
+
<quantity>5</quantity>
|
|
197
|
+
</item>
|
|
198
|
+
</items>
|
|
199
|
+
</order>
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
**Correct Mapping Configuration:**
|
|
203
|
+
```json
|
|
204
|
+
{
|
|
205
|
+
"ref": { "source": "order@orderNumber" },
|
|
206
|
+
"status": { "source": "order@status" },
|
|
207
|
+
"customer.id": { "source": "order.customer@customerId" },
|
|
208
|
+
"customer.tier": { "source": "order.customer@tier" },
|
|
209
|
+
"customer.email": { "source": "order.customer.email" },
|
|
210
|
+
"items": {
|
|
211
|
+
"source": "order.items.item",
|
|
212
|
+
"isArray": true,
|
|
213
|
+
"fields": {
|
|
214
|
+
"ref": { "source": "$.@id" },
|
|
215
|
+
"sku": { "source": "$.@sku" },
|
|
216
|
+
"quantity": { "source": "$.quantity" }
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
**Key Takeaways:**
|
|
223
|
+
- **Attributes**: Use `@` directly → `element@attribute`
|
|
224
|
+
- **Nested elements**: Use `.` → `parent.child.grandchild`
|
|
225
|
+
- **Attributes in nested paths**: Dot up to element, then `@` → `parent.child@attribute`
|
|
226
|
+
- **Never combine**: `element.@attribute` will always fail
|
|
227
|
+
|
|
228
|
+
## Common Mistakes
|
|
229
|
+
|
|
230
|
+
### Mistake #1: Dot Before @ Symbol
|
|
231
|
+
|
|
232
|
+
```json
|
|
233
|
+
// ❌ WRONG - Extra dot before @
|
|
234
|
+
{
|
|
235
|
+
"orderId": { "source": "order.@id" },
|
|
236
|
+
"customerId": { "source": "customer.@customer-no" }
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
// ✅ CORRECT - No dot before @
|
|
240
|
+
{
|
|
241
|
+
"orderId": { "source": "order@id" },
|
|
242
|
+
"customerId": { "source": "customer@customer-no" }
|
|
243
|
+
}
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
**Why it fails**: The SDK treats `@id` as a nested element name, not an XML attribute.
|
|
247
|
+
|
|
248
|
+
### Mistake #2: Mixing Naming Conventions
|
|
249
|
+
|
|
250
|
+
```json
|
|
251
|
+
// ❌ INCONSISTENT - Mix of kebab-case and camelCase
|
|
252
|
+
{
|
|
253
|
+
"orderRef": { "source": "order@order-no" },
|
|
254
|
+
"customerId": { "source": "customer@customerId" }
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
// ✅ CONSISTENT - Choose one convention
|
|
258
|
+
{
|
|
259
|
+
"orderRef": { "source": "order@order-no" },
|
|
260
|
+
"customerId": { "source": "customer@customer-id" }
|
|
261
|
+
}
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
**Why it matters**: XML sources should use consistent attribute naming. Pick kebab-case (XML standard) or camelCase (modern APIs) and stick with it.
|
|
265
|
+
|
|
266
|
+
### Mistake #3: Forgetting Array Context Symbol
|
|
267
|
+
|
|
268
|
+
```json
|
|
269
|
+
// ❌ WRONG - Missing $ for relative path in array
|
|
270
|
+
{
|
|
271
|
+
"items": {
|
|
272
|
+
"source": "order.items.item",
|
|
273
|
+
"isArray": true,
|
|
274
|
+
"fields": {
|
|
275
|
+
"ref": { "source": "@id" } // Missing $ - will fail
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
// ✅ CORRECT - Use $ for current array item
|
|
281
|
+
{
|
|
282
|
+
"items": {
|
|
283
|
+
"source": "order.items.item",
|
|
284
|
+
"isArray": true,
|
|
285
|
+
"fields": {
|
|
286
|
+
"ref": { "source": "$.@id" } // $ means "current item"
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
**Why it fails**: Without `$.`, the mapper looks for `@id` at the root level, not in the current array item.
|
|
293
|
+
|
|
294
|
+
### Mistake #4: Incorrect Nested Path to Attribute
|
|
295
|
+
|
|
296
|
+
```xml
|
|
297
|
+
<order>
|
|
298
|
+
<customer customer-id="123">
|
|
299
|
+
<email>john@example.com</email>
|
|
300
|
+
</customer>
|
|
301
|
+
</order>
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
```json
|
|
305
|
+
// ❌ WRONG - Missing intermediate element
|
|
306
|
+
{
|
|
307
|
+
"customerId": { "source": "order@customer-id" }
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
// ✅ CORRECT - Include full path to element with attribute
|
|
311
|
+
{
|
|
312
|
+
"customerId": { "source": "order.customer@customer-id" }
|
|
313
|
+
}
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
**Why it fails**: The attribute `customer-id` is on the `<customer>` element, not `<order>`. Must specify full path.
|
|
317
|
+
|
|
318
|
+
### Mistake #5: Using Bracket Notation for Attributes
|
|
319
|
+
|
|
320
|
+
```json
|
|
321
|
+
// ❌ WRONG - Bracket notation not supported
|
|
322
|
+
{
|
|
323
|
+
"orderId": { "source": "order['@id']" }
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
// ✅ CORRECT - Use @ directly
|
|
327
|
+
{
|
|
328
|
+
"orderId": { "source": "order@id" }
|
|
329
|
+
}
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
**Why it fails**: The SDK's path resolver uses `@` syntax, not JavaScript bracket notation.
|
|
333
|
+
|
|
334
|
+
## JSON Paths
|
|
335
|
+
|
|
336
|
+
```json
|
|
337
|
+
{
|
|
338
|
+
"sourceFormat": "json",
|
|
339
|
+
"arguments": {
|
|
340
|
+
"input": {
|
|
341
|
+
"ref": "order.orderNo", // Property
|
|
342
|
+
"email": "customer.email", // Nested property
|
|
343
|
+
"sku": "productLineItems[0].productId", // Array index
|
|
344
|
+
"allSkus": "productLineItems.*.productId" // Wildcard
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
## Path Syntax Examples
|
|
351
|
+
|
|
352
|
+
### Basic Paths
|
|
353
|
+
|
|
354
|
+
**XML:**
|
|
355
|
+
```xml
|
|
356
|
+
<order>
|
|
357
|
+
<orderNumber>ORD-123</orderNumber>
|
|
358
|
+
<customer>
|
|
359
|
+
<email>customer@example.com</email>
|
|
360
|
+
</customer>
|
|
361
|
+
</order>
|
|
362
|
+
```
|
|
363
|
+
|
|
364
|
+
```json
|
|
365
|
+
{
|
|
366
|
+
"ref": { "source": "order.orderNumber" },
|
|
367
|
+
"email": { "source": "order.customer.email" }
|
|
368
|
+
}
|
|
369
|
+
```
|
|
370
|
+
|
|
371
|
+
**JSON:**
|
|
372
|
+
```json
|
|
373
|
+
{
|
|
374
|
+
"order": {
|
|
375
|
+
"orderNumber": "ORD-123",
|
|
376
|
+
"customer": {
|
|
377
|
+
"email": "customer@example.com"
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
```
|
|
382
|
+
|
|
383
|
+
```json
|
|
384
|
+
{
|
|
385
|
+
"ref": { "source": "order.orderNumber" },
|
|
386
|
+
"email": { "source": "order.customer.email" }
|
|
387
|
+
}
|
|
388
|
+
```
|
|
389
|
+
|
|
390
|
+
### Array Paths
|
|
391
|
+
|
|
392
|
+
**XML:**
|
|
393
|
+
```xml
|
|
394
|
+
<order>
|
|
395
|
+
<items>
|
|
396
|
+
<item>
|
|
397
|
+
<sku>PROD-1</sku>
|
|
398
|
+
<quantity>5</quantity>
|
|
399
|
+
</item>
|
|
400
|
+
<item>
|
|
401
|
+
<sku>PROD-2</sku>
|
|
402
|
+
<quantity>3</quantity>
|
|
403
|
+
</item>
|
|
404
|
+
</items>
|
|
405
|
+
</order>
|
|
406
|
+
```
|
|
407
|
+
|
|
408
|
+
```json
|
|
409
|
+
{
|
|
410
|
+
"firstSku": { "source": "order.items.item[0].sku" },
|
|
411
|
+
"allSkus": { "source": "order.items.item.*.sku" }
|
|
412
|
+
}
|
|
413
|
+
```
|
|
414
|
+
|
|
415
|
+
**JSON:**
|
|
416
|
+
```json
|
|
417
|
+
{
|
|
418
|
+
"order": {
|
|
419
|
+
"items": [
|
|
420
|
+
{ "sku": "PROD-1", "quantity": 5 },
|
|
421
|
+
{ "sku": "PROD-2", "quantity": 3 }
|
|
422
|
+
]
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
```
|
|
426
|
+
|
|
427
|
+
```json
|
|
428
|
+
{
|
|
429
|
+
"firstSku": { "source": "order.items[0].sku" },
|
|
430
|
+
"allSkus": { "source": "order.items.*.sku" }
|
|
431
|
+
}
|
|
432
|
+
```
|
|
433
|
+
|
|
434
|
+
### Attribute Paths (XML Only)
|
|
435
|
+
|
|
436
|
+
```xml
|
|
437
|
+
<order orderNumber="ORD-123" status="OPEN">
|
|
438
|
+
<customer customerId="CUST-001">
|
|
439
|
+
<name>John Doe</name>
|
|
440
|
+
</customer>
|
|
441
|
+
</order>
|
|
442
|
+
```
|
|
443
|
+
|
|
444
|
+
```json
|
|
445
|
+
{
|
|
446
|
+
"ref": { "source": "order@orderNumber" },
|
|
447
|
+
"status": { "source": "order@status" },
|
|
448
|
+
"customerId": { "source": "order.customer@customerId" },
|
|
449
|
+
"customerName": { "source": "order.customer.name" }
|
|
450
|
+
}
|
|
451
|
+
```
|
|
452
|
+
|
|
453
|
+
---
|
|
454
|
+
|
|
455
|
+
## Navigation
|
|
456
|
+
|
|
457
|
+
[← Previous: Configuration Reference](./graphql-mutation-mapping-05-configuration-reference.md) | [Back to Guide](../graphql-mutation-mapping-readme.md) | [Next: Array Handling →](./graphql-mutation-mapping-07-array-handling.md)
|
|
458
|
+
|
|
459
|
+
## Related Documentation
|
|
460
|
+
|
|
461
|
+
- [Module 07: Array Handling](./graphql-mutation-mapping-07-array-handling.md) - Array mapping patterns
|
|
462
|
+
- [Module 09: Advanced Patterns](./graphql-mutation-mapping-09-advanced-patterns.md) - Advanced path techniques
|
|
463
|
+
- [XMLPathResolver API Reference](../../../api-reference/modules/api-reference-04-graphql-mapping.md#xmlpathresolver) - Implementation details
|
|
464
|
+
- [JSONPathResolver API Reference](../../../api-reference/modules/api-reference-04-graphql-mapping.md#jsonpathresolver) - Implementation details
|