@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,235 +1,235 @@
|
|
|
1
|
-
# Mapper Quick Decision Guide
|
|
2
|
-
|
|
3
|
-
**⏱️ Read Time:** 2 minutes | **When:** Before starting any integration
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## 🎯 The Core Difference (One Sentence)
|
|
8
|
-
|
|
9
|
-
**GraphQLMutationMapper:** Both `map()` and `mapWithNodes()` return query + variables (ready to execute)
|
|
10
|
-
**UniversalMapper:** Only generates the variables (plain JavaScript objects) - you write the query manually
|
|
11
|
-
|
|
12
|
-
> ✅ **Fixed:** `mapWithNodes()` now returns `{ success, data, query, context, errors }` - consistent with `map()`! Both GraphQLMutationMapper methods return query + variables automatically.
|
|
13
|
-
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
## 📊 Complete Comparison Table
|
|
17
|
-
|
|
18
|
-
| Feature | GraphQLMutationMapper.map() | GraphQLMutationMapper.mapWithNodes() | UniversalMapper.map() |
|
|
19
|
-
|---------|----------------------------|-------------------------------------|----------------------|
|
|
20
|
-
| **Returns Query?** | ✅ Yes (auto-generated) | ✅ Yes (auto-generated) | ❌ No (you write it) |
|
|
21
|
-
| **Returns Variables?** | ✅ Yes (in `variables`) | ✅ Yes (in `data`) | ✅ Yes (in `data`) |
|
|
22
|
-
| **Custom Resolvers?** | ❌ No | ✅ Yes (primary use case) | ✅ Yes |
|
|
23
|
-
| **XML Nodes?** | ❌ No | ✅ Yes (extract nested XML) | ❌ No |
|
|
24
|
-
| **Steps to Execute** | 1 step: `await client.graphql(result)` | 1 step: `await client.graphql({ query: result.query, variables: result.variables })` | 2 steps: write query + `graphql()` |
|
|
25
|
-
| **Real-World Usage** | Simple JSON → GraphQL | ⚠️ **Most templates use this!** | CSV/Parquet → Any API |
|
|
26
|
-
| **Best For** | Simple transformations | Complex XML + custom logic | Maximum flexibility |
|
|
27
|
-
|
|
28
|
-
---
|
|
29
|
-
|
|
30
|
-
## 📊 Quick Decision Table
|
|
31
|
-
|
|
32
|
-
| Your Scenario | Use This | Why |
|
|
33
|
-
|--------------|----------|-----|
|
|
34
|
-
| **XML/JSON webhooks** (SFCC orders, EDI) → Fluent with custom resolvers | `GraphQLMutationMapper.mapWithNodes()` | Custom resolvers, XML nodes, context passing (returns query automatically) |
|
|
35
|
-
| **Simple JSON → GraphQL** (no custom resolvers) | `GraphQLMutationMapper.map()` | One-step execution, auto-generated query |
|
|
36
|
-
| **CSV/Parquet files** → Fluent (any API) | `UniversalMapper` | Flexible, works with GraphQL, Event API, or Batch API |
|
|
37
|
-
| **Bulk inventory** (CSV/Parquet) → Batch API | `UniversalMapper` + Batch API | Only way to use Batch API (inventory only) |
|
|
38
|
-
| **Need to trigger workflows** → Event API | `UniversalMapper` + Event API | Event API doesn't use GraphQL queries |
|
|
39
|
-
| **Simple field transforms** (rename, convert types) | `UniversalMapper` | Lightweight, no GraphQL needed |
|
|
40
|
-
|
|
41
|
-
---
|
|
42
|
-
|
|
43
|
-
## 🔍 What They Return
|
|
44
|
-
|
|
45
|
-
### GraphQLMutationMapper - Method 1: `map()` (Simple Pattern)
|
|
46
|
-
```typescript
|
|
47
|
-
const mapper = new GraphQLMutationMapper(config, logger, { fluentClient: client });
|
|
48
|
-
const result = await mapper.map(sourceData);
|
|
49
|
-
|
|
50
|
-
// result = {
|
|
51
|
-
// query: `mutation CreateOrder($input: CreateOrderInput!) { ... }`, // ✅ Auto-generated!
|
|
52
|
-
// variables: { input: { ref: "ORD-123", ... } }
|
|
53
|
-
// }
|
|
54
|
-
|
|
55
|
-
await client.graphql(result); // ✅ Ready to execute! (result has query + variables)
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
**Limitations:** No custom resolvers, no XML nodes extraction
|
|
59
|
-
|
|
60
|
-
---
|
|
61
|
-
|
|
62
|
-
### GraphQLMutationMapper - Method 2: `mapWithNodes()` (Advanced Pattern)
|
|
63
|
-
**⚠️ This is what templates actually use!**
|
|
64
|
-
|
|
65
|
-
```typescript
|
|
66
|
-
const mapper = new GraphQLMutationMapper(config, logger, { fluentClient: client });
|
|
67
|
-
const result = await mapper.mapWithNodes(xmlData, customResolvers, context);
|
|
68
|
-
|
|
69
|
-
// result = {
|
|
70
|
-
// success: true,
|
|
71
|
-
// data: { input: { ref: "ORD-123", ... } }, // ✅ GraphQL variables
|
|
72
|
-
// query: `mutation CreateOrder(...) { ... }`, // ✅ Auto-generated query!
|
|
73
|
-
// context: { /* parsed nodes */ },
|
|
74
|
-
// errors: []
|
|
75
|
-
// }
|
|
76
|
-
|
|
77
|
-
// Execute directly (one step - consistent with map()!)
|
|
78
|
-
await client.graphql({
|
|
79
|
-
query: result.query, // ← From mapWithNodes()
|
|
80
|
-
variables: result.variables // ← From mapWithNodes() (wrapped if fields pattern)
|
|
81
|
-
});
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
**Why templates use this:** Custom resolvers, XML node extraction, context passing
|
|
85
|
-
|
|
86
|
-
---
|
|
87
|
-
|
|
88
|
-
### UniversalMapper
|
|
89
|
-
```typescript
|
|
90
|
-
const mapper = new UniversalMapper(config);
|
|
91
|
-
const result = await mapper.map(sourceData);
|
|
92
|
-
|
|
93
|
-
// result = {
|
|
94
|
-
// success: true,
|
|
95
|
-
// data: { ref: "ORD-123", ... }, // ✅ Just the data
|
|
96
|
-
// errors: []
|
|
97
|
-
// }
|
|
98
|
-
|
|
99
|
-
// YOU write the GraphQL query
|
|
100
|
-
const mutation = `mutation CreateOrder($input: CreateOrderInput!) { ... }`;
|
|
101
|
-
await client.graphql({
|
|
102
|
-
query: mutation,
|
|
103
|
-
variables: result.variables // Already wrapped: { input: { ... } }
|
|
104
|
-
});
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
---
|
|
108
|
-
|
|
109
|
-
## ✅ When to Use GraphQLMutationMapper
|
|
110
|
-
|
|
111
|
-
### Use `map()` when:
|
|
112
|
-
- ✅ Simple JSON → GraphQL (no custom resolvers needed)
|
|
113
|
-
- ✅ Want **auto-generated GraphQL queries** (one-step execution)
|
|
114
|
-
- ✅ No XML nodes extraction needed
|
|
115
|
-
|
|
116
|
-
### Use `mapWithNodes()` when (⚠️ **Most templates use this!**):
|
|
117
|
-
- ✅ Processing **complex XML/JSON** (SFCC orders, EDI files, nested structures)
|
|
118
|
-
- ✅ Need **custom resolvers** (business logic, API calls)
|
|
119
|
-
- ✅ Need **XML node extraction** (nested/escaped XML segments)
|
|
120
|
-
- ✅ Need **context passing** (FluentClient, config, helpers)
|
|
121
|
-
- ✅ **Returns query automatically** (consistent with `map()` - 1 step!)
|
|
122
|
-
|
|
123
|
-
**Example use cases:**
|
|
124
|
-
- SFCC order ingestion (complex nested XML + custom resolvers)
|
|
125
|
-
- EDI 850 purchase orders → GraphQL (with custom validation)
|
|
126
|
-
- Complex JSON webhook payloads → GraphQL (with business logic)
|
|
127
|
-
|
|
128
|
-
---
|
|
129
|
-
|
|
130
|
-
## ✅ When to Use UniversalMapper
|
|
131
|
-
|
|
132
|
-
Use when:
|
|
133
|
-
- ✅ Processing **CSV or simple JSON** (inventory, products, locations)
|
|
134
|
-
- ✅ Want to **write your own GraphQL queries** (more control)
|
|
135
|
-
- ✅ Need to use **Event API** (trigger Rubix workflows)
|
|
136
|
-
- ✅ Need to use **Batch API** (bulk inventory updates)
|
|
137
|
-
- ✅ Want **flexibility** to use mapped data with multiple APIs
|
|
138
|
-
|
|
139
|
-
**Example use cases:**
|
|
140
|
-
- CSV inventory updates → Batch API
|
|
141
|
-
- CSV product catalog → Event API (triggers workflows)
|
|
142
|
-
- JSON location data → GraphQL mutations (your own queries)
|
|
143
|
-
- Parquet data warehouse → Any API
|
|
144
|
-
|
|
145
|
-
---
|
|
146
|
-
|
|
147
|
-
## 🚀 Key Insight: UniversalMapper is MORE Flexible
|
|
148
|
-
|
|
149
|
-
UniversalMapper can be used with **3 different APIs**, not just GraphQL:
|
|
150
|
-
|
|
151
|
-
```typescript
|
|
152
|
-
const mapper = new UniversalMapper(config);
|
|
153
|
-
const result = await mapper.map(csvRow);
|
|
154
|
-
|
|
155
|
-
// Option 1: GraphQL Mutations
|
|
156
|
-
await client.graphql({
|
|
157
|
-
query: yourMutation,
|
|
158
|
-
variables: result.variables // Already wrapped: { input: { ... } }
|
|
159
|
-
});
|
|
160
|
-
|
|
161
|
-
// Option 2: Event API (triggers Rubix workflows)
|
|
162
|
-
await client.sendEvent({
|
|
163
|
-
name: 'UPSERT_LOCATION',
|
|
164
|
-
attributes: result.data, // ✅ Same mapped data!
|
|
165
|
-
}, 'async');
|
|
166
|
-
|
|
167
|
-
// Option 3: Batch API (inventory only)
|
|
168
|
-
await client.sendBatch(jobId, {
|
|
169
|
-
entityType: 'INVENTORY',
|
|
170
|
-
entities: [result.data], // ✅ Same mapped data!
|
|
171
|
-
});
|
|
172
|
-
```
|
|
173
|
-
|
|
174
|
-
**GraphQLMutationMapper can ONLY be used with GraphQL mutations** (the query string is pre-built).
|
|
175
|
-
|
|
176
|
-
---
|
|
177
|
-
|
|
178
|
-
## 📝 Decision Flow
|
|
179
|
-
|
|
180
|
-
```
|
|
181
|
-
START: What are you building?
|
|
182
|
-
│
|
|
183
|
-
├─ XML/JSON webhook → Fluent?
|
|
184
|
-
│ └─ YES → Use GraphQLMutationMapper ✅
|
|
185
|
-
│
|
|
186
|
-
├─ CSV/Parquet → Fluent?
|
|
187
|
-
│ ├─ Need Batch API (inventory)? → UniversalMapper + Batch API ✅
|
|
188
|
-
│ ├─ Need Event API (workflows)? → UniversalMapper + Event API ✅
|
|
189
|
-
│ └─ Need GraphQL? → UniversalMapper + Manual GraphQL ✅
|
|
190
|
-
│
|
|
191
|
-
└─ Simple field transforms?
|
|
192
|
-
└─ YES → UniversalMapper ✅
|
|
193
|
-
```
|
|
194
|
-
|
|
195
|
-
---
|
|
196
|
-
|
|
197
|
-
## 🔑 The Bottom Line
|
|
198
|
-
|
|
199
|
-
| Mapper Method | Returns Query? | Returns Variables? | Steps to Execute |
|
|
200
|
-
|--------------|----------------|-------------------|------------------|
|
|
201
|
-
| **GraphQLMutationMapper.map()** | ✅ Yes (auto-generated) | ✅ Yes (in `variables`) | 1 step: `await client.graphql(result)` |
|
|
202
|
-
| **GraphQLMutationMapper.mapWithNodes()** | ✅ Yes (auto-generated) | ✅ Yes (in `variables`, unwrapped in `data`) | 1 step: `await client.graphql({ query: result.query, variables: result.variables })` |
|
|
203
|
-
| **UniversalMapper.map()** | ❌ No (you write it) | ✅ Yes (in `data`) | 2 steps: write query + `graphql()` |
|
|
204
|
-
|
|
205
|
-
**Key Insight:** Both `map()` and `mapWithNodes()` now return query + variables (consistent API!) - only UniversalMapper requires you to write the query manually.
|
|
206
|
-
|
|
207
|
-
**Analogy:**
|
|
208
|
-
- **GraphQLMutationMapper.map()** = Ordering a complete meal (ready to eat)
|
|
209
|
-
- **GraphQLMutationMapper.mapWithNodes()** = Ordering a complete meal with custom ingredients (ready to eat, but more complex)
|
|
210
|
-
- **UniversalMapper** = Getting ingredients from a grocery store (you cook everything yourself, maximum flexibility)
|
|
211
|
-
|
|
212
|
-
---
|
|
213
|
-
|
|
214
|
-
## 📚 Need More Details?
|
|
215
|
-
|
|
216
|
-
- **Complete Comparison:** [Mapper Comparison Guide](../02-CORE-GUIDES/mapping/mapping-mapper-comparison-guide.md) - Real-world scenario with code examples
|
|
217
|
-
- **GraphQLMutationMapper Guide:** [GraphQL Mutation Mapping](../02-CORE-GUIDES/mapping/graphql-mutation-mapping/)
|
|
218
|
-
- **UniversalMapper Guide:** [Universal Mapping](../02-CORE-GUIDES/mapping/)
|
|
219
|
-
|
|
220
|
-
---
|
|
221
|
-
|
|
222
|
-
## 💡 Pro Tip
|
|
223
|
-
|
|
224
|
-
**If you're starting fresh:**
|
|
225
|
-
1. Use **UniversalMapper** for maximum flexibility
|
|
226
|
-
2. Write simple GraphQL mutation strings
|
|
227
|
-
3. Switch to **GraphQLMutationMapper.mapWithNodes()** if:
|
|
228
|
-
- You need custom resolvers with context (FluentClient, config)
|
|
229
|
-
- You need XML node extraction
|
|
230
|
-
- You want auto-generated queries (now consistent with `map()`!)
|
|
231
|
-
|
|
232
|
-
**Important:** `mapWithNodes()` now returns the query automatically - making it consistent with `map()`! Both methods are now 1-step execution.
|
|
233
|
-
|
|
234
|
-
**Most SDK users prefer UniversalMapper + manual GraphQL** because it's easier to understand and debug!
|
|
235
|
-
|
|
1
|
+
# Mapper Quick Decision Guide
|
|
2
|
+
|
|
3
|
+
**⏱️ Read Time:** 2 minutes | **When:** Before starting any integration
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 🎯 The Core Difference (One Sentence)
|
|
8
|
+
|
|
9
|
+
**GraphQLMutationMapper:** Both `map()` and `mapWithNodes()` return query + variables (ready to execute)
|
|
10
|
+
**UniversalMapper:** Only generates the variables (plain JavaScript objects) - you write the query manually
|
|
11
|
+
|
|
12
|
+
> ✅ **Fixed:** `mapWithNodes()` now returns `{ success, data, query, context, errors }` - consistent with `map()`! Both GraphQLMutationMapper methods return query + variables automatically.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## 📊 Complete Comparison Table
|
|
17
|
+
|
|
18
|
+
| Feature | GraphQLMutationMapper.map() | GraphQLMutationMapper.mapWithNodes() | UniversalMapper.map() |
|
|
19
|
+
|---------|----------------------------|-------------------------------------|----------------------|
|
|
20
|
+
| **Returns Query?** | ✅ Yes (auto-generated) | ✅ Yes (auto-generated) | ❌ No (you write it) |
|
|
21
|
+
| **Returns Variables?** | ✅ Yes (in `variables`) | ✅ Yes (in `data`) | ✅ Yes (in `data`) |
|
|
22
|
+
| **Custom Resolvers?** | ❌ No | ✅ Yes (primary use case) | ✅ Yes |
|
|
23
|
+
| **XML Nodes?** | ❌ No | ✅ Yes (extract nested XML) | ❌ No |
|
|
24
|
+
| **Steps to Execute** | 1 step: `await client.graphql(result)` | 1 step: `await client.graphql({ query: result.query, variables: result.variables })` | 2 steps: write query + `graphql()` |
|
|
25
|
+
| **Real-World Usage** | Simple JSON → GraphQL | ⚠️ **Most templates use this!** | CSV/Parquet → Any API |
|
|
26
|
+
| **Best For** | Simple transformations | Complex XML + custom logic | Maximum flexibility |
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## 📊 Quick Decision Table
|
|
31
|
+
|
|
32
|
+
| Your Scenario | Use This | Why |
|
|
33
|
+
|--------------|----------|-----|
|
|
34
|
+
| **XML/JSON webhooks** (SFCC orders, EDI) → Fluent with custom resolvers | `GraphQLMutationMapper.mapWithNodes()` | Custom resolvers, XML nodes, context passing (returns query automatically) |
|
|
35
|
+
| **Simple JSON → GraphQL** (no custom resolvers) | `GraphQLMutationMapper.map()` | One-step execution, auto-generated query |
|
|
36
|
+
| **CSV/Parquet files** → Fluent (any API) | `UniversalMapper` | Flexible, works with GraphQL, Event API, or Batch API |
|
|
37
|
+
| **Bulk inventory** (CSV/Parquet) → Batch API | `UniversalMapper` + Batch API | Only way to use Batch API (inventory only) |
|
|
38
|
+
| **Need to trigger workflows** → Event API | `UniversalMapper` + Event API | Event API doesn't use GraphQL queries |
|
|
39
|
+
| **Simple field transforms** (rename, convert types) | `UniversalMapper` | Lightweight, no GraphQL needed |
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## 🔍 What They Return
|
|
44
|
+
|
|
45
|
+
### GraphQLMutationMapper - Method 1: `map()` (Simple Pattern)
|
|
46
|
+
```typescript
|
|
47
|
+
const mapper = new GraphQLMutationMapper(config, logger, { fluentClient: client });
|
|
48
|
+
const result = await mapper.map(sourceData);
|
|
49
|
+
|
|
50
|
+
// result = {
|
|
51
|
+
// query: `mutation CreateOrder($input: CreateOrderInput!) { ... }`, // ✅ Auto-generated!
|
|
52
|
+
// variables: { input: { ref: "ORD-123", ... } }
|
|
53
|
+
// }
|
|
54
|
+
|
|
55
|
+
await client.graphql(result); // ✅ Ready to execute! (result has query + variables)
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
**Limitations:** No custom resolvers, no XML nodes extraction
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
### GraphQLMutationMapper - Method 2: `mapWithNodes()` (Advanced Pattern)
|
|
63
|
+
**⚠️ This is what templates actually use!**
|
|
64
|
+
|
|
65
|
+
```typescript
|
|
66
|
+
const mapper = new GraphQLMutationMapper(config, logger, { fluentClient: client });
|
|
67
|
+
const result = await mapper.mapWithNodes(xmlData, customResolvers, context);
|
|
68
|
+
|
|
69
|
+
// result = {
|
|
70
|
+
// success: true,
|
|
71
|
+
// data: { input: { ref: "ORD-123", ... } }, // ✅ GraphQL variables
|
|
72
|
+
// query: `mutation CreateOrder(...) { ... }`, // ✅ Auto-generated query!
|
|
73
|
+
// context: { /* parsed nodes */ },
|
|
74
|
+
// errors: []
|
|
75
|
+
// }
|
|
76
|
+
|
|
77
|
+
// Execute directly (one step - consistent with map()!)
|
|
78
|
+
await client.graphql({
|
|
79
|
+
query: result.query, // ← From mapWithNodes()
|
|
80
|
+
variables: result.variables // ← From mapWithNodes() (wrapped if fields pattern)
|
|
81
|
+
});
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
**Why templates use this:** Custom resolvers, XML node extraction, context passing
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
### UniversalMapper
|
|
89
|
+
```typescript
|
|
90
|
+
const mapper = new UniversalMapper(config);
|
|
91
|
+
const result = await mapper.map(sourceData);
|
|
92
|
+
|
|
93
|
+
// result = {
|
|
94
|
+
// success: true,
|
|
95
|
+
// data: { ref: "ORD-123", ... }, // ✅ Just the data
|
|
96
|
+
// errors: []
|
|
97
|
+
// }
|
|
98
|
+
|
|
99
|
+
// YOU write the GraphQL query
|
|
100
|
+
const mutation = `mutation CreateOrder($input: CreateOrderInput!) { ... }`;
|
|
101
|
+
await client.graphql({
|
|
102
|
+
query: mutation,
|
|
103
|
+
variables: result.variables // Already wrapped: { input: { ... } }
|
|
104
|
+
});
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## ✅ When to Use GraphQLMutationMapper
|
|
110
|
+
|
|
111
|
+
### Use `map()` when:
|
|
112
|
+
- ✅ Simple JSON → GraphQL (no custom resolvers needed)
|
|
113
|
+
- ✅ Want **auto-generated GraphQL queries** (one-step execution)
|
|
114
|
+
- ✅ No XML nodes extraction needed
|
|
115
|
+
|
|
116
|
+
### Use `mapWithNodes()` when (⚠️ **Most templates use this!**):
|
|
117
|
+
- ✅ Processing **complex XML/JSON** (SFCC orders, EDI files, nested structures)
|
|
118
|
+
- ✅ Need **custom resolvers** (business logic, API calls)
|
|
119
|
+
- ✅ Need **XML node extraction** (nested/escaped XML segments)
|
|
120
|
+
- ✅ Need **context passing** (FluentClient, config, helpers)
|
|
121
|
+
- ✅ **Returns query automatically** (consistent with `map()` - 1 step!)
|
|
122
|
+
|
|
123
|
+
**Example use cases:**
|
|
124
|
+
- SFCC order ingestion (complex nested XML + custom resolvers)
|
|
125
|
+
- EDI 850 purchase orders → GraphQL (with custom validation)
|
|
126
|
+
- Complex JSON webhook payloads → GraphQL (with business logic)
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## ✅ When to Use UniversalMapper
|
|
131
|
+
|
|
132
|
+
Use when:
|
|
133
|
+
- ✅ Processing **CSV or simple JSON** (inventory, products, locations)
|
|
134
|
+
- ✅ Want to **write your own GraphQL queries** (more control)
|
|
135
|
+
- ✅ Need to use **Event API** (trigger Rubix workflows)
|
|
136
|
+
- ✅ Need to use **Batch API** (bulk inventory updates)
|
|
137
|
+
- ✅ Want **flexibility** to use mapped data with multiple APIs
|
|
138
|
+
|
|
139
|
+
**Example use cases:**
|
|
140
|
+
- CSV inventory updates → Batch API
|
|
141
|
+
- CSV product catalog → Event API (triggers workflows)
|
|
142
|
+
- JSON location data → GraphQL mutations (your own queries)
|
|
143
|
+
- Parquet data warehouse → Any API
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## 🚀 Key Insight: UniversalMapper is MORE Flexible
|
|
148
|
+
|
|
149
|
+
UniversalMapper can be used with **3 different APIs**, not just GraphQL:
|
|
150
|
+
|
|
151
|
+
```typescript
|
|
152
|
+
const mapper = new UniversalMapper(config);
|
|
153
|
+
const result = await mapper.map(csvRow);
|
|
154
|
+
|
|
155
|
+
// Option 1: GraphQL Mutations
|
|
156
|
+
await client.graphql({
|
|
157
|
+
query: yourMutation,
|
|
158
|
+
variables: result.variables // Already wrapped: { input: { ... } }
|
|
159
|
+
});
|
|
160
|
+
|
|
161
|
+
// Option 2: Event API (triggers Rubix workflows)
|
|
162
|
+
await client.sendEvent({
|
|
163
|
+
name: 'UPSERT_LOCATION',
|
|
164
|
+
attributes: result.data, // ✅ Same mapped data!
|
|
165
|
+
}, 'async');
|
|
166
|
+
|
|
167
|
+
// Option 3: Batch API (inventory only)
|
|
168
|
+
await client.sendBatch(jobId, {
|
|
169
|
+
entityType: 'INVENTORY',
|
|
170
|
+
entities: [result.data], // ✅ Same mapped data!
|
|
171
|
+
});
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
**GraphQLMutationMapper can ONLY be used with GraphQL mutations** (the query string is pre-built).
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
## 📝 Decision Flow
|
|
179
|
+
|
|
180
|
+
```
|
|
181
|
+
START: What are you building?
|
|
182
|
+
│
|
|
183
|
+
├─ XML/JSON webhook → Fluent?
|
|
184
|
+
│ └─ YES → Use GraphQLMutationMapper ✅
|
|
185
|
+
│
|
|
186
|
+
├─ CSV/Parquet → Fluent?
|
|
187
|
+
│ ├─ Need Batch API (inventory)? → UniversalMapper + Batch API ✅
|
|
188
|
+
│ ├─ Need Event API (workflows)? → UniversalMapper + Event API ✅
|
|
189
|
+
│ └─ Need GraphQL? → UniversalMapper + Manual GraphQL ✅
|
|
190
|
+
│
|
|
191
|
+
└─ Simple field transforms?
|
|
192
|
+
└─ YES → UniversalMapper ✅
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
## 🔑 The Bottom Line
|
|
198
|
+
|
|
199
|
+
| Mapper Method | Returns Query? | Returns Variables? | Steps to Execute |
|
|
200
|
+
|--------------|----------------|-------------------|------------------|
|
|
201
|
+
| **GraphQLMutationMapper.map()** | ✅ Yes (auto-generated) | ✅ Yes (in `variables`) | 1 step: `await client.graphql(result)` |
|
|
202
|
+
| **GraphQLMutationMapper.mapWithNodes()** | ✅ Yes (auto-generated) | ✅ Yes (in `variables`, unwrapped in `data`) | 1 step: `await client.graphql({ query: result.query, variables: result.variables })` |
|
|
203
|
+
| **UniversalMapper.map()** | ❌ No (you write it) | ✅ Yes (in `data`) | 2 steps: write query + `graphql()` |
|
|
204
|
+
|
|
205
|
+
**Key Insight:** Both `map()` and `mapWithNodes()` now return query + variables (consistent API!) - only UniversalMapper requires you to write the query manually.
|
|
206
|
+
|
|
207
|
+
**Analogy:**
|
|
208
|
+
- **GraphQLMutationMapper.map()** = Ordering a complete meal (ready to eat)
|
|
209
|
+
- **GraphQLMutationMapper.mapWithNodes()** = Ordering a complete meal with custom ingredients (ready to eat, but more complex)
|
|
210
|
+
- **UniversalMapper** = Getting ingredients from a grocery store (you cook everything yourself, maximum flexibility)
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
## 📚 Need More Details?
|
|
215
|
+
|
|
216
|
+
- **Complete Comparison:** [Mapper Comparison Guide](../02-CORE-GUIDES/mapping/mapping-mapper-comparison-guide.md) - Real-world scenario with code examples
|
|
217
|
+
- **GraphQLMutationMapper Guide:** [GraphQL Mutation Mapping](../02-CORE-GUIDES/mapping/graphql-mutation-mapping/)
|
|
218
|
+
- **UniversalMapper Guide:** [Universal Mapping](../02-CORE-GUIDES/mapping/)
|
|
219
|
+
|
|
220
|
+
---
|
|
221
|
+
|
|
222
|
+
## 💡 Pro Tip
|
|
223
|
+
|
|
224
|
+
**If you're starting fresh:**
|
|
225
|
+
1. Use **UniversalMapper** for maximum flexibility
|
|
226
|
+
2. Write simple GraphQL mutation strings
|
|
227
|
+
3. Switch to **GraphQLMutationMapper.mapWithNodes()** if:
|
|
228
|
+
- You need custom resolvers with context (FluentClient, config)
|
|
229
|
+
- You need XML node extraction
|
|
230
|
+
- You want auto-generated queries (now consistent with `map()`!)
|
|
231
|
+
|
|
232
|
+
**Important:** `mapWithNodes()` now returns the query automatically - making it consistent with `map()`! Both methods are now 1-step execution.
|
|
233
|
+
|
|
234
|
+
**Most SDK users prefer UniversalMapper + manual GraphQL** because it's easier to understand and debug!
|
|
235
|
+
|