@fluentcommerce/fc-connect-sdk 0.1.54 → 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 +12 -0
- package/dist/cjs/clients/fluent-client.js +13 -6
- package/dist/cjs/utils/pagination-helpers.js +38 -2
- package/dist/cjs/versori/fluent-versori-client.js +11 -5
- package/dist/esm/clients/fluent-client.js +13 -6
- 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/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 -520
- 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
- package/docs/02-CORE-GUIDES/api-reference/cli-profile-integration.md +0 -377
|
@@ -1,351 +1,351 @@
|
|
|
1
|
-
# Quick Start
|
|
2
|
-
|
|
3
|
-
[← Back to GraphQL Mutation Mapping Guide](../graphql-mutation-mapping-readme.md)
|
|
4
|
-
|
|
5
|
-
**Module 2 of 13** | **Level**: Beginner | **Time**: 10 minutes
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## Quick Start
|
|
10
|
-
|
|
11
|
-
### 1. Install SDK
|
|
12
|
-
|
|
13
|
-
```bash
|
|
14
|
-
npm install @fluentcommerce/fc-connect-sdk
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
### 2. Create Mapping Configuration
|
|
18
|
-
|
|
19
|
-
**Example: SFCC Order Ingestion** (from SFCC e-commerce platform → Fluent Commerce Order Management)
|
|
20
|
-
|
|
21
|
-
✅ **Validated against schema:** [`docs/schema/fluent-commerce-schema.json`](../../../../04-REFERENCE/schema/fluent-commerce-schema.json) → `Mutation.createOrder`
|
|
22
|
-
|
|
23
|
-
**Business Context:** Importing orders from SFCC storefront into Fluent Commerce for order fulfillment workflows.
|
|
24
|
-
|
|
25
|
-
#### Source XML Data
|
|
26
|
-
|
|
27
|
-
This is the typical SFCC order XML structure you'll receive:
|
|
28
|
-
|
|
29
|
-
```xml
|
|
30
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
31
|
-
<orders>
|
|
32
|
-
<order order-no="ORD-2025-001">
|
|
33
|
-
<order-date>2025-01-14T10:30:00Z</order-date>
|
|
34
|
-
<total currency="USD">151.17</total>
|
|
35
|
-
<customer customer-no="CUST-12345" customer-email="john.doe@example.com">
|
|
36
|
-
<customer-name>John Doe</customer-name>
|
|
37
|
-
</customer>
|
|
38
|
-
<items>
|
|
39
|
-
<item id="ITEM-001" sku="SKU-WM-001" qty="2" unitPrice="29.99">
|
|
40
|
-
<product-name>Wireless Mouse</product-name>
|
|
41
|
-
</item>
|
|
42
|
-
<item id="ITEM-002" sku="SKU-KB-001" qty="1" unitPrice="79.99">
|
|
43
|
-
<product-name>Mechanical Keyboard</product-name>
|
|
44
|
-
</item>
|
|
45
|
-
</items>
|
|
46
|
-
</order>
|
|
47
|
-
</orders>
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
**Key XML Features:**
|
|
51
|
-
|
|
52
|
-
- `order-no` is an **attribute** on `<order>` element → referenced as `order@order-no`
|
|
53
|
-
- `customer-no` and `customer-email` are **attributes** on `<customer>` → `order.customer@customer-no`
|
|
54
|
-
- `id`, `sku`, `qty`, `unitPrice` are **attributes** on `<item>` → `$.@id`, `$.@sku`, etc.
|
|
55
|
-
- `total` is an **element** with text content and a `currency` **attribute** → `order.total` and `order.total@currency`
|
|
56
|
-
|
|
57
|
-
#### Visual Path Reference
|
|
58
|
-
|
|
59
|
-
Here's how XML structure maps to path syntax:
|
|
60
|
-
|
|
61
|
-
```
|
|
62
|
-
XML Structure Mapping Path Syntax
|
|
63
|
-
═══════════════════════════════════════════════════════════════════════
|
|
64
|
-
|
|
65
|
-
<order order-no="ORD-123"> order@order-no
|
|
66
|
-
↑ ↑
|
|
67
|
-
XML attribute @ indicates attribute
|
|
68
|
-
|
|
69
|
-
<order-date>2025-01-14</order-date> order.order-date
|
|
70
|
-
↑ ↑
|
|
71
|
-
XML element . indicates nested element
|
|
72
|
-
|
|
73
|
-
<customer customer-no="CUST-123" order.customer@customer-no
|
|
74
|
-
customer-email="..."> ↑ ↑
|
|
75
|
-
↑ path to element @ for attribute
|
|
76
|
-
Attributes on nested element
|
|
77
|
-
|
|
78
|
-
<total currency="USD">151.17</total>
|
|
79
|
-
↑ ↑
|
|
80
|
-
order.total@currency (attribute)
|
|
81
|
-
order.total (element text)
|
|
82
|
-
|
|
83
|
-
<items>
|
|
84
|
-
<item id="ITEM-1" sku="SKU-001"> order.items.item (array source)
|
|
85
|
-
↑ ↑ ↓
|
|
86
|
-
$.@id $.@sku $ = current array item
|
|
87
|
-
↑ ↑
|
|
88
|
-
@ for attribute in array item relative path
|
|
89
|
-
</item>
|
|
90
|
-
</items>
|
|
91
|
-
</order>
|
|
92
|
-
|
|
93
|
-
Key Syntax Rules:
|
|
94
|
-
element → element name
|
|
95
|
-
element@attr → @ for XML attributes (NO dot before @)
|
|
96
|
-
parent.child → . for nested elements
|
|
97
|
-
$.@attr → $ for current item in arrays
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
#### Mapping Configuration
|
|
101
|
-
|
|
102
|
-
Now let's map this XML to Fluent Commerce's `createOrder` mutation:
|
|
103
|
-
|
|
104
|
-
```json
|
|
105
|
-
{
|
|
106
|
-
"version": "1.0",
|
|
107
|
-
"mutation": "createOrder",
|
|
108
|
-
"operationName": "CreateOrderFromSFCC",
|
|
109
|
-
"sourceFormat": "xml",
|
|
110
|
-
"returnFields": ["id", "ref", "status", "totalPrice"],
|
|
111
|
-
"comment": "✅ SFCC Order → Fluent Commerce Order Management - Real-world production integration",
|
|
112
|
-
|
|
113
|
-
"arguments": {
|
|
114
|
-
"input": {
|
|
115
|
-
"_type": "CreateOrderInput!",
|
|
116
|
-
|
|
117
|
-
"ref": {
|
|
118
|
-
"source": "order@order-no",
|
|
119
|
-
"required": true,
|
|
120
|
-
"comment": "✅ Maps to CreateOrderInput.ref (String! required) - Business reference (order number)"
|
|
121
|
-
},
|
|
122
|
-
|
|
123
|
-
"type": {
|
|
124
|
-
"value": "STANDARD",
|
|
125
|
-
"required": true,
|
|
126
|
-
"comment": "✅ Maps to CreateOrderInput.type (OrderType! enum required) - Order type (STANDARD | HD | CC | SALES)"
|
|
127
|
-
},
|
|
128
|
-
|
|
129
|
-
"retailer": {
|
|
130
|
-
"fields": {
|
|
131
|
-
"id": {
|
|
132
|
-
"value": "${FLUENT_RETAILER_ID}",
|
|
133
|
-
"required": true,
|
|
134
|
-
"comment": "✅ Maps to CreateOrderInput.retailer.id (ID! required)"
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
},
|
|
138
|
-
|
|
139
|
-
"customer": {
|
|
140
|
-
"fields": {
|
|
141
|
-
"ref": {
|
|
142
|
-
"source": "order.customer@customer-no",
|
|
143
|
-
"required": true,
|
|
144
|
-
"comment": "✅ Maps to CreateOrderInput.customer.ref (String! required) - Customer business reference"
|
|
145
|
-
},
|
|
146
|
-
"email": {
|
|
147
|
-
"source": "order.customer@customer-email",
|
|
148
|
-
"resolver": "sdk.lowercase",
|
|
149
|
-
"comment": "✅ Maps to CreateOrderInput.customer.email (String optional)"
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
},
|
|
153
|
-
|
|
154
|
-
"totalPrice": {
|
|
155
|
-
"source": "order.total",
|
|
156
|
-
"resolver": "sdk.parseFloat",
|
|
157
|
-
"required": true,
|
|
158
|
-
"comment": "✅ Maps to CreateOrderInput.totalPrice (Float! required)"
|
|
159
|
-
},
|
|
160
|
-
|
|
161
|
-
"currency": {
|
|
162
|
-
"source": "order.total@currency",
|
|
163
|
-
"defaultValue": "USD",
|
|
164
|
-
"required": true,
|
|
165
|
-
"comment": "✅ Maps to CreateOrderInput.currency (String! required)"
|
|
166
|
-
},
|
|
167
|
-
|
|
168
|
-
"items": {
|
|
169
|
-
"_array": true,
|
|
170
|
-
"_type": "[OrderItemInput]!",
|
|
171
|
-
"source": "order.items.item",
|
|
172
|
-
"comment": "✅ Maps to CreateOrderInput.items ([OrderItemInput]! required)",
|
|
173
|
-
|
|
174
|
-
"ref": {
|
|
175
|
-
"source": "$.@id",
|
|
176
|
-
"required": true,
|
|
177
|
-
"comment": "✅ Maps to OrderItemInput.ref (String! required) - Line item business reference"
|
|
178
|
-
},
|
|
179
|
-
"productRef": {
|
|
180
|
-
"source": "$.@sku",
|
|
181
|
-
"required": true,
|
|
182
|
-
"comment": "✅ Maps to OrderItemInput.productRef (String! required) - Product SKU reference"
|
|
183
|
-
},
|
|
184
|
-
"quantity": {
|
|
185
|
-
"source": "$.@qty",
|
|
186
|
-
"resolver": "sdk.parseInt",
|
|
187
|
-
"required": true,
|
|
188
|
-
"comment": "✅ Maps to OrderItemInput.quantity (Int! required)"
|
|
189
|
-
},
|
|
190
|
-
"price": {
|
|
191
|
-
"source": "$.@unitPrice",
|
|
192
|
-
"resolver": "sdk.parseFloat",
|
|
193
|
-
"required": true,
|
|
194
|
-
"comment": "✅ Maps to OrderItemInput.price (Float! required) - Unit price"
|
|
195
|
-
},
|
|
196
|
-
"totalPrice": {
|
|
197
|
-
"resolver": "custom.calculateItemTotal",
|
|
198
|
-
"required": true,
|
|
199
|
-
"comment": "✅ Maps to OrderItemInput.totalPrice (Float! required)"
|
|
200
|
-
},
|
|
201
|
-
"currency": {
|
|
202
|
-
"source": "order.total@currency",
|
|
203
|
-
"required": true,
|
|
204
|
-
"comment": "✅ Maps to OrderItemInput.currency (String! required)"
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
```
|
|
211
|
-
|
|
212
|
-
**Source Data:** See [`docs/03-PATTERN-GUIDES/examples/test-data/canonical-order.json`](../../../../03-PATTERN-GUIDES/examples/test-data/canonical-order.json) for complete SFCC order structure.
|
|
213
|
-
|
|
214
|
-
**Real-World Production Example:** `connectors/versori-sfcc-connector/mappings/sfcc-to-fluent-order-mapping.json` (at repository root, outside docs folder)
|
|
215
|
-
|
|
216
|
-
**This same structure works for:**
|
|
217
|
-
|
|
218
|
-
- `updateInventory` mutations with inventory XML/JSON
|
|
219
|
-
- `createCustomer` mutations with customer data
|
|
220
|
-
- `updateProduct` mutations with product feeds
|
|
221
|
-
- **ANY GraphQL mutation** with **ANY source data**
|
|
222
|
-
|
|
223
|
-
### 3. CLI: Generate Mapping Stubs and Validate
|
|
224
|
-
|
|
225
|
-
You can generate starter mappings and validate them against your schema using the CLI:
|
|
226
|
-
|
|
227
|
-
```bash
|
|
228
|
-
# Introspect your schema → outputs schema.json
|
|
229
|
-
npx fc-connect introspect-schema \
|
|
230
|
-
--endpoint https://YOUR_ACCOUNT.api.fluentcommerce.com/graphql \
|
|
231
|
-
--output schema.json
|
|
232
|
-
|
|
233
|
-
# Generate a mapping stub from a GraphQL mutation file
|
|
234
|
-
npx fc-connect generate-mutation-mapping \
|
|
235
|
-
--file mutation.graphql \
|
|
236
|
-
--output mapping.json
|
|
237
|
-
|
|
238
|
-
# Generate a mapping stub from a GraphQL query file
|
|
239
|
-
npx fc-connect generate-query-mapping \
|
|
240
|
-
--file query.graphql \
|
|
241
|
-
--output mapping.json
|
|
242
|
-
|
|
243
|
-
# Validate your mapping against the schema
|
|
244
|
-
npx fc-connect validate-schema \
|
|
245
|
-
--mapping mapping.json \
|
|
246
|
-
--schema schema.json
|
|
247
|
-
|
|
248
|
-
# Analyze coverage (which arguments/fields your mapping populates)
|
|
249
|
-
npx fc-connect analyze-coverage \
|
|
250
|
-
--mapping mapping.json \
|
|
251
|
-
--schema schema.json
|
|
252
|
-
```
|
|
253
|
-
|
|
254
|
-
### 3. Use in Code
|
|
255
|
-
|
|
256
|
-
```typescript
|
|
257
|
-
import { GraphQLMutationMapper, createClient } from '@fluentcommerce/fc-connect-sdk';
|
|
258
|
-
import mappingConfig from './mappings/sfcc-order-to-fluent.json';
|
|
259
|
-
|
|
260
|
-
// Create Fluent client (REQUIRED for execution)
|
|
261
|
-
const fluentClient = createClient({ baseUrl, clientId, clientSecret, logger });
|
|
262
|
-
|
|
263
|
-
// Initialize mapper (client parameter is optional but REQUIRED for execution)
|
|
264
|
-
const mapper = new GraphQLMutationMapper(mappingConfig, logger, { fluentClient: fluentClient });
|
|
265
|
-
|
|
266
|
-
// Step 1: Generate GraphQL mutation payload (mapper does NOT execute)
|
|
267
|
-
const payload = await mapper.map(xmlData);
|
|
268
|
-
// Returns: { query: string, variables: Record<string, any> }
|
|
269
|
-
|
|
270
|
-
// Step 2: Execute mutation (YOU must call client.graphql to execute)
|
|
271
|
-
const result = await fluentClient.graphql(payload);
|
|
272
|
-
// Returns: GraphQL response with data or errors
|
|
273
|
-
|
|
274
|
-
// Step 3: Access returned fields (specified in returnFields config)
|
|
275
|
-
const createdOrder = result.data.createOrder;
|
|
276
|
-
logger.info('Order created', {
|
|
277
|
-
orderId: createdOrder.id, // From returnFields: ["id", "ref", "status", "totalPrice"]
|
|
278
|
-
orderRef: createdOrder.ref, // From returnFields
|
|
279
|
-
status: createdOrder.status, // From returnFields
|
|
280
|
-
totalPrice: createdOrder.totalPrice // From returnFields
|
|
281
|
-
});
|
|
282
|
-
```
|
|
283
|
-
|
|
284
|
-
**With Custom Resolvers (Constructor Pattern - Recommended):**
|
|
285
|
-
|
|
286
|
-
```typescript
|
|
287
|
-
import { GraphQLMutationMapper, createClient } from '@fluentcommerce/fc-connect-sdk';
|
|
288
|
-
import mappingConfig from './mappings/sfcc-order-to-fluent.json';
|
|
289
|
-
|
|
290
|
-
const fluentClient = createClient({ baseUrl, clientId, clientSecret, logger });
|
|
291
|
-
|
|
292
|
-
// Define custom resolvers
|
|
293
|
-
const customResolvers = {
|
|
294
|
-
'custom.customerLookup': async (value, sourceData, config, helpers) => {
|
|
295
|
-
// Lookup customer by email
|
|
296
|
-
const customer = await fluentClient.graphql({
|
|
297
|
-
query: GET_CUSTOMER_BY_EMAIL,
|
|
298
|
-
variables: { email: value }
|
|
299
|
-
});
|
|
300
|
-
return customer?.data?.customer?.id || null;
|
|
301
|
-
}
|
|
302
|
-
};
|
|
303
|
-
|
|
304
|
-
// Initialize mapper with resolvers in constructor (consistent with UniversalMapper)
|
|
305
|
-
const mapper = new GraphQLMutationMapper(
|
|
306
|
-
mappingConfig,
|
|
307
|
-
logger,
|
|
308
|
-
{
|
|
309
|
-
customResolvers, // ✅ Resolvers in constructor (recommended)
|
|
310
|
-
fluentClient: fluentClient
|
|
311
|
-
}
|
|
312
|
-
);
|
|
313
|
-
|
|
314
|
-
// Use mapWithNodes when custom resolvers are needed
|
|
315
|
-
const result = await mapper.mapWithNodes(xmlData);
|
|
316
|
-
// Resolvers from constructor are automatically used
|
|
317
|
-
|
|
318
|
-
// Check success (errors are returned, not thrown)
|
|
319
|
-
if (!result.success) {
|
|
320
|
-
console.error('Mapping failed:', result.errors);
|
|
321
|
-
return;
|
|
322
|
-
}
|
|
323
|
-
|
|
324
|
-
// Execute mutation (query is auto-generated in result)
|
|
325
|
-
const mutationResult = await fluentClient.graphql({
|
|
326
|
-
query: result.query,
|
|
327
|
-
variables: result.variables // ✅ Use variables (wrapped if fields pattern)
|
|
328
|
-
});
|
|
329
|
-
|
|
330
|
-
// Access mapped fields directly (unwrapped)
|
|
331
|
-
const orderRef = result.data.ref; // ✅ Use data for direct field access
|
|
332
|
-
```
|
|
333
|
-
|
|
334
|
-
**Usage:** Custom resolvers should be passed in the constructor (consistent with `UniversalMapper`). Method call resolvers can override constructor resolvers for per-call customization.
|
|
335
|
-
```
|
|
336
|
-
|
|
337
|
-
**Important:** `GraphQLMutationMapper` generates GraphQL payloads but does **NOT** execute them. You must:
|
|
338
|
-
1. Pass `fluentClient` to mapper constructor (or provide via context in `mapWithNodes`)
|
|
339
|
-
2. Call `fluentClient.graphql(payload)` to execute the mutation
|
|
340
|
-
|
|
341
|
-
---
|
|
342
|
-
|
|
343
|
-
## Navigation
|
|
344
|
-
|
|
345
|
-
[← Back to Guide](../graphql-mutation-mapping-readme.md) | [Next: Schema Validation →](./graphql-mutation-mapping-03-schema-validation.md)
|
|
346
|
-
|
|
347
|
-
## Related Documentation
|
|
348
|
-
|
|
349
|
-
- [Module 01: Introduction](../../../ingestion/modules/02-core-guides-ingestion-01-introduction.md) - System overview and key features
|
|
350
|
-
- [Module 03: Schema Validation](./graphql-mutation-mapping-03-schema-validation.md) - Validate mapping configurations
|
|
351
|
-
- [Module 05: Configuration Reference](./graphql-mutation-mapping-05-configuration-reference.md) - Complete mapping configuration reference
|
|
1
|
+
# Quick Start
|
|
2
|
+
|
|
3
|
+
[← Back to GraphQL Mutation Mapping Guide](../graphql-mutation-mapping-readme.md)
|
|
4
|
+
|
|
5
|
+
**Module 2 of 13** | **Level**: Beginner | **Time**: 10 minutes
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Quick Start
|
|
10
|
+
|
|
11
|
+
### 1. Install SDK
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
npm install @fluentcommerce/fc-connect-sdk
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
### 2. Create Mapping Configuration
|
|
18
|
+
|
|
19
|
+
**Example: SFCC Order Ingestion** (from SFCC e-commerce platform → Fluent Commerce Order Management)
|
|
20
|
+
|
|
21
|
+
✅ **Validated against schema:** [`docs/schema/fluent-commerce-schema.json`](../../../../04-REFERENCE/schema/fluent-commerce-schema.json) → `Mutation.createOrder`
|
|
22
|
+
|
|
23
|
+
**Business Context:** Importing orders from SFCC storefront into Fluent Commerce for order fulfillment workflows.
|
|
24
|
+
|
|
25
|
+
#### Source XML Data
|
|
26
|
+
|
|
27
|
+
This is the typical SFCC order XML structure you'll receive:
|
|
28
|
+
|
|
29
|
+
```xml
|
|
30
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
31
|
+
<orders>
|
|
32
|
+
<order order-no="ORD-2025-001">
|
|
33
|
+
<order-date>2025-01-14T10:30:00Z</order-date>
|
|
34
|
+
<total currency="USD">151.17</total>
|
|
35
|
+
<customer customer-no="CUST-12345" customer-email="john.doe@example.com">
|
|
36
|
+
<customer-name>John Doe</customer-name>
|
|
37
|
+
</customer>
|
|
38
|
+
<items>
|
|
39
|
+
<item id="ITEM-001" sku="SKU-WM-001" qty="2" unitPrice="29.99">
|
|
40
|
+
<product-name>Wireless Mouse</product-name>
|
|
41
|
+
</item>
|
|
42
|
+
<item id="ITEM-002" sku="SKU-KB-001" qty="1" unitPrice="79.99">
|
|
43
|
+
<product-name>Mechanical Keyboard</product-name>
|
|
44
|
+
</item>
|
|
45
|
+
</items>
|
|
46
|
+
</order>
|
|
47
|
+
</orders>
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
**Key XML Features:**
|
|
51
|
+
|
|
52
|
+
- `order-no` is an **attribute** on `<order>` element → referenced as `order@order-no`
|
|
53
|
+
- `customer-no` and `customer-email` are **attributes** on `<customer>` → `order.customer@customer-no`
|
|
54
|
+
- `id`, `sku`, `qty`, `unitPrice` are **attributes** on `<item>` → `$.@id`, `$.@sku`, etc.
|
|
55
|
+
- `total` is an **element** with text content and a `currency` **attribute** → `order.total` and `order.total@currency`
|
|
56
|
+
|
|
57
|
+
#### Visual Path Reference
|
|
58
|
+
|
|
59
|
+
Here's how XML structure maps to path syntax:
|
|
60
|
+
|
|
61
|
+
```
|
|
62
|
+
XML Structure Mapping Path Syntax
|
|
63
|
+
═══════════════════════════════════════════════════════════════════════
|
|
64
|
+
|
|
65
|
+
<order order-no="ORD-123"> order@order-no
|
|
66
|
+
↑ ↑
|
|
67
|
+
XML attribute @ indicates attribute
|
|
68
|
+
|
|
69
|
+
<order-date>2025-01-14</order-date> order.order-date
|
|
70
|
+
↑ ↑
|
|
71
|
+
XML element . indicates nested element
|
|
72
|
+
|
|
73
|
+
<customer customer-no="CUST-123" order.customer@customer-no
|
|
74
|
+
customer-email="..."> ↑ ↑
|
|
75
|
+
↑ path to element @ for attribute
|
|
76
|
+
Attributes on nested element
|
|
77
|
+
|
|
78
|
+
<total currency="USD">151.17</total>
|
|
79
|
+
↑ ↑
|
|
80
|
+
order.total@currency (attribute)
|
|
81
|
+
order.total (element text)
|
|
82
|
+
|
|
83
|
+
<items>
|
|
84
|
+
<item id="ITEM-1" sku="SKU-001"> order.items.item (array source)
|
|
85
|
+
↑ ↑ ↓
|
|
86
|
+
$.@id $.@sku $ = current array item
|
|
87
|
+
↑ ↑
|
|
88
|
+
@ for attribute in array item relative path
|
|
89
|
+
</item>
|
|
90
|
+
</items>
|
|
91
|
+
</order>
|
|
92
|
+
|
|
93
|
+
Key Syntax Rules:
|
|
94
|
+
element → element name
|
|
95
|
+
element@attr → @ for XML attributes (NO dot before @)
|
|
96
|
+
parent.child → . for nested elements
|
|
97
|
+
$.@attr → $ for current item in arrays
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
#### Mapping Configuration
|
|
101
|
+
|
|
102
|
+
Now let's map this XML to Fluent Commerce's `createOrder` mutation:
|
|
103
|
+
|
|
104
|
+
```json
|
|
105
|
+
{
|
|
106
|
+
"version": "1.0",
|
|
107
|
+
"mutation": "createOrder",
|
|
108
|
+
"operationName": "CreateOrderFromSFCC",
|
|
109
|
+
"sourceFormat": "xml",
|
|
110
|
+
"returnFields": ["id", "ref", "status", "totalPrice"],
|
|
111
|
+
"comment": "✅ SFCC Order → Fluent Commerce Order Management - Real-world production integration",
|
|
112
|
+
|
|
113
|
+
"arguments": {
|
|
114
|
+
"input": {
|
|
115
|
+
"_type": "CreateOrderInput!",
|
|
116
|
+
|
|
117
|
+
"ref": {
|
|
118
|
+
"source": "order@order-no",
|
|
119
|
+
"required": true,
|
|
120
|
+
"comment": "✅ Maps to CreateOrderInput.ref (String! required) - Business reference (order number)"
|
|
121
|
+
},
|
|
122
|
+
|
|
123
|
+
"type": {
|
|
124
|
+
"value": "STANDARD",
|
|
125
|
+
"required": true,
|
|
126
|
+
"comment": "✅ Maps to CreateOrderInput.type (OrderType! enum required) - Order type (STANDARD | HD | CC | SALES)"
|
|
127
|
+
},
|
|
128
|
+
|
|
129
|
+
"retailer": {
|
|
130
|
+
"fields": {
|
|
131
|
+
"id": {
|
|
132
|
+
"value": "${FLUENT_RETAILER_ID}",
|
|
133
|
+
"required": true,
|
|
134
|
+
"comment": "✅ Maps to CreateOrderInput.retailer.id (ID! required)"
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
},
|
|
138
|
+
|
|
139
|
+
"customer": {
|
|
140
|
+
"fields": {
|
|
141
|
+
"ref": {
|
|
142
|
+
"source": "order.customer@customer-no",
|
|
143
|
+
"required": true,
|
|
144
|
+
"comment": "✅ Maps to CreateOrderInput.customer.ref (String! required) - Customer business reference"
|
|
145
|
+
},
|
|
146
|
+
"email": {
|
|
147
|
+
"source": "order.customer@customer-email",
|
|
148
|
+
"resolver": "sdk.lowercase",
|
|
149
|
+
"comment": "✅ Maps to CreateOrderInput.customer.email (String optional)"
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
},
|
|
153
|
+
|
|
154
|
+
"totalPrice": {
|
|
155
|
+
"source": "order.total",
|
|
156
|
+
"resolver": "sdk.parseFloat",
|
|
157
|
+
"required": true,
|
|
158
|
+
"comment": "✅ Maps to CreateOrderInput.totalPrice (Float! required)"
|
|
159
|
+
},
|
|
160
|
+
|
|
161
|
+
"currency": {
|
|
162
|
+
"source": "order.total@currency",
|
|
163
|
+
"defaultValue": "USD",
|
|
164
|
+
"required": true,
|
|
165
|
+
"comment": "✅ Maps to CreateOrderInput.currency (String! required)"
|
|
166
|
+
},
|
|
167
|
+
|
|
168
|
+
"items": {
|
|
169
|
+
"_array": true,
|
|
170
|
+
"_type": "[OrderItemInput]!",
|
|
171
|
+
"source": "order.items.item",
|
|
172
|
+
"comment": "✅ Maps to CreateOrderInput.items ([OrderItemInput]! required)",
|
|
173
|
+
|
|
174
|
+
"ref": {
|
|
175
|
+
"source": "$.@id",
|
|
176
|
+
"required": true,
|
|
177
|
+
"comment": "✅ Maps to OrderItemInput.ref (String! required) - Line item business reference"
|
|
178
|
+
},
|
|
179
|
+
"productRef": {
|
|
180
|
+
"source": "$.@sku",
|
|
181
|
+
"required": true,
|
|
182
|
+
"comment": "✅ Maps to OrderItemInput.productRef (String! required) - Product SKU reference"
|
|
183
|
+
},
|
|
184
|
+
"quantity": {
|
|
185
|
+
"source": "$.@qty",
|
|
186
|
+
"resolver": "sdk.parseInt",
|
|
187
|
+
"required": true,
|
|
188
|
+
"comment": "✅ Maps to OrderItemInput.quantity (Int! required)"
|
|
189
|
+
},
|
|
190
|
+
"price": {
|
|
191
|
+
"source": "$.@unitPrice",
|
|
192
|
+
"resolver": "sdk.parseFloat",
|
|
193
|
+
"required": true,
|
|
194
|
+
"comment": "✅ Maps to OrderItemInput.price (Float! required) - Unit price"
|
|
195
|
+
},
|
|
196
|
+
"totalPrice": {
|
|
197
|
+
"resolver": "custom.calculateItemTotal",
|
|
198
|
+
"required": true,
|
|
199
|
+
"comment": "✅ Maps to OrderItemInput.totalPrice (Float! required)"
|
|
200
|
+
},
|
|
201
|
+
"currency": {
|
|
202
|
+
"source": "order.total@currency",
|
|
203
|
+
"required": true,
|
|
204
|
+
"comment": "✅ Maps to OrderItemInput.currency (String! required)"
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
**Source Data:** See [`docs/03-PATTERN-GUIDES/examples/test-data/canonical-order.json`](../../../../03-PATTERN-GUIDES/examples/test-data/canonical-order.json) for complete SFCC order structure.
|
|
213
|
+
|
|
214
|
+
**Real-World Production Example:** `connectors/versori-sfcc-connector/mappings/sfcc-to-fluent-order-mapping.json` (at repository root, outside docs folder)
|
|
215
|
+
|
|
216
|
+
**This same structure works for:**
|
|
217
|
+
|
|
218
|
+
- `updateInventory` mutations with inventory XML/JSON
|
|
219
|
+
- `createCustomer` mutations with customer data
|
|
220
|
+
- `updateProduct` mutations with product feeds
|
|
221
|
+
- **ANY GraphQL mutation** with **ANY source data**
|
|
222
|
+
|
|
223
|
+
### 3. CLI: Generate Mapping Stubs and Validate
|
|
224
|
+
|
|
225
|
+
You can generate starter mappings and validate them against your schema using the CLI:
|
|
226
|
+
|
|
227
|
+
```bash
|
|
228
|
+
# Introspect your schema → outputs schema.json
|
|
229
|
+
npx fc-connect introspect-schema \
|
|
230
|
+
--endpoint https://YOUR_ACCOUNT.api.fluentcommerce.com/graphql \
|
|
231
|
+
--output schema.json
|
|
232
|
+
|
|
233
|
+
# Generate a mapping stub from a GraphQL mutation file
|
|
234
|
+
npx fc-connect generate-mutation-mapping \
|
|
235
|
+
--file mutation.graphql \
|
|
236
|
+
--output mapping.json
|
|
237
|
+
|
|
238
|
+
# Generate a mapping stub from a GraphQL query file
|
|
239
|
+
npx fc-connect generate-query-mapping \
|
|
240
|
+
--file query.graphql \
|
|
241
|
+
--output mapping.json
|
|
242
|
+
|
|
243
|
+
# Validate your mapping against the schema
|
|
244
|
+
npx fc-connect validate-schema \
|
|
245
|
+
--mapping mapping.json \
|
|
246
|
+
--schema schema.json
|
|
247
|
+
|
|
248
|
+
# Analyze coverage (which arguments/fields your mapping populates)
|
|
249
|
+
npx fc-connect analyze-coverage \
|
|
250
|
+
--mapping mapping.json \
|
|
251
|
+
--schema schema.json
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
### 3. Use in Code
|
|
255
|
+
|
|
256
|
+
```typescript
|
|
257
|
+
import { GraphQLMutationMapper, createClient } from '@fluentcommerce/fc-connect-sdk';
|
|
258
|
+
import mappingConfig from './mappings/sfcc-order-to-fluent.json';
|
|
259
|
+
|
|
260
|
+
// Create Fluent client (REQUIRED for execution)
|
|
261
|
+
const fluentClient = createClient({ baseUrl, clientId, clientSecret, logger });
|
|
262
|
+
|
|
263
|
+
// Initialize mapper (client parameter is optional but REQUIRED for execution)
|
|
264
|
+
const mapper = new GraphQLMutationMapper(mappingConfig, logger, { fluentClient: fluentClient });
|
|
265
|
+
|
|
266
|
+
// Step 1: Generate GraphQL mutation payload (mapper does NOT execute)
|
|
267
|
+
const payload = await mapper.map(xmlData);
|
|
268
|
+
// Returns: { query: string, variables: Record<string, any> }
|
|
269
|
+
|
|
270
|
+
// Step 2: Execute mutation (YOU must call client.graphql to execute)
|
|
271
|
+
const result = await fluentClient.graphql(payload);
|
|
272
|
+
// Returns: GraphQL response with data or errors
|
|
273
|
+
|
|
274
|
+
// Step 3: Access returned fields (specified in returnFields config)
|
|
275
|
+
const createdOrder = result.data.createOrder;
|
|
276
|
+
logger.info('Order created', {
|
|
277
|
+
orderId: createdOrder.id, // From returnFields: ["id", "ref", "status", "totalPrice"]
|
|
278
|
+
orderRef: createdOrder.ref, // From returnFields
|
|
279
|
+
status: createdOrder.status, // From returnFields
|
|
280
|
+
totalPrice: createdOrder.totalPrice // From returnFields
|
|
281
|
+
});
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
**With Custom Resolvers (Constructor Pattern - Recommended):**
|
|
285
|
+
|
|
286
|
+
```typescript
|
|
287
|
+
import { GraphQLMutationMapper, createClient } from '@fluentcommerce/fc-connect-sdk';
|
|
288
|
+
import mappingConfig from './mappings/sfcc-order-to-fluent.json';
|
|
289
|
+
|
|
290
|
+
const fluentClient = createClient({ baseUrl, clientId, clientSecret, logger });
|
|
291
|
+
|
|
292
|
+
// Define custom resolvers
|
|
293
|
+
const customResolvers = {
|
|
294
|
+
'custom.customerLookup': async (value, sourceData, config, helpers) => {
|
|
295
|
+
// Lookup customer by email
|
|
296
|
+
const customer = await fluentClient.graphql({
|
|
297
|
+
query: GET_CUSTOMER_BY_EMAIL,
|
|
298
|
+
variables: { email: value }
|
|
299
|
+
});
|
|
300
|
+
return customer?.data?.customer?.id || null;
|
|
301
|
+
}
|
|
302
|
+
};
|
|
303
|
+
|
|
304
|
+
// Initialize mapper with resolvers in constructor (consistent with UniversalMapper)
|
|
305
|
+
const mapper = new GraphQLMutationMapper(
|
|
306
|
+
mappingConfig,
|
|
307
|
+
logger,
|
|
308
|
+
{
|
|
309
|
+
customResolvers, // ✅ Resolvers in constructor (recommended)
|
|
310
|
+
fluentClient: fluentClient
|
|
311
|
+
}
|
|
312
|
+
);
|
|
313
|
+
|
|
314
|
+
// Use mapWithNodes when custom resolvers are needed
|
|
315
|
+
const result = await mapper.mapWithNodes(xmlData);
|
|
316
|
+
// Resolvers from constructor are automatically used
|
|
317
|
+
|
|
318
|
+
// Check success (errors are returned, not thrown)
|
|
319
|
+
if (!result.success) {
|
|
320
|
+
console.error('Mapping failed:', result.errors);
|
|
321
|
+
return;
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
// Execute mutation (query is auto-generated in result)
|
|
325
|
+
const mutationResult = await fluentClient.graphql({
|
|
326
|
+
query: result.query,
|
|
327
|
+
variables: result.variables // ✅ Use variables (wrapped if fields pattern)
|
|
328
|
+
});
|
|
329
|
+
|
|
330
|
+
// Access mapped fields directly (unwrapped)
|
|
331
|
+
const orderRef = result.data.ref; // ✅ Use data for direct field access
|
|
332
|
+
```
|
|
333
|
+
|
|
334
|
+
**Usage:** Custom resolvers should be passed in the constructor (consistent with `UniversalMapper`). Method call resolvers can override constructor resolvers for per-call customization.
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
**Important:** `GraphQLMutationMapper` generates GraphQL payloads but does **NOT** execute them. You must:
|
|
338
|
+
1. Pass `fluentClient` to mapper constructor (or provide via context in `mapWithNodes`)
|
|
339
|
+
2. Call `fluentClient.graphql(payload)` to execute the mutation
|
|
340
|
+
|
|
341
|
+
---
|
|
342
|
+
|
|
343
|
+
## Navigation
|
|
344
|
+
|
|
345
|
+
[← Back to Guide](../graphql-mutation-mapping-readme.md) | [Next: Schema Validation →](./graphql-mutation-mapping-03-schema-validation.md)
|
|
346
|
+
|
|
347
|
+
## Related Documentation
|
|
348
|
+
|
|
349
|
+
- [Module 01: Introduction](../../../ingestion/modules/02-core-guides-ingestion-01-introduction.md) - System overview and key features
|
|
350
|
+
- [Module 03: Schema Validation](./graphql-mutation-mapping-03-schema-validation.md) - Validate mapping configurations
|
|
351
|
+
- [Module 05: Configuration Reference](./graphql-mutation-mapping-05-configuration-reference.md) - Complete mapping configuration reference
|