@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
|
-
# Resolver Signature Learning Path
|
|
2
|
-
|
|
3
|
-
> **Complete guide to the standard 4-parameter resolver signature**
|
|
4
|
-
> Progressive learning modules with real schema examples and verified code patterns
|
|
5
|
-
|
|
6
|
-
## ๐ What You'll Learn
|
|
7
|
-
|
|
8
|
-
This guide teaches you the standard resolver signature used across ALL mappers in the Fluent Connect SDK. By the end, you'll understand:
|
|
9
|
-
|
|
10
|
-
- โ
Why the 4-parameter signature is consistent across UniversalMapper AND GraphQLMutationMapper
|
|
11
|
-
- โ
What each parameter does and when to use it
|
|
12
|
-
- โ
How to write context-aware transformations using sourceData
|
|
13
|
-
- โ
How to leverage the ResolverHelpers utilities (54 helper functions)
|
|
14
|
-
- โ
How to migrate from old 3-arg resolvers to the new 4-arg pattern
|
|
15
|
-
- โ
Best practices for testing and production use
|
|
16
|
-
|
|
17
|
-
## ๐ฏ Learning Path Overview
|
|
18
|
-
|
|
19
|
-
This guide is organized into **7 progressive modules**. Follow them in order for the best learning experience:
|
|
20
|
-
|
|
21
|
-
| Module | Topic | Level |
|
|
22
|
-
|--------|-------|-------|
|
|
23
|
-
| [Module 1](./modules/resolver-signature-01-foundations.md) | **Foundations** - Standard signature, why 4 parameters, consistency | Beginner |
|
|
24
|
-
| [Module 2](./modules/resolver-signature-02-parameter-reference.md) | **Parameter Reference** - Detailed breakdown of each parameter | Beginner |
|
|
25
|
-
| [Module 3](./modules/resolver-signature-03-basic-examples.md) | **Basic Examples** - Simple transformations, string/number handling | Beginner |
|
|
26
|
-
| [Module 4](./modules/resolver-signature-04-advanced-patterns.md) | **Advanced Patterns** - Context-aware transformations, async resolvers | Advanced |
|
|
27
|
-
| [Module 5](./modules/resolver-signature-05-sdk-resolvers.md) | **SDK Resolvers** - How built-in resolvers use the signature | Intermediate |
|
|
28
|
-
| [Module 6](./modules/resolver-signature-06-migration-guide.md) | **Migration Guide** - Migrating from 3-arg to 4-arg, best practices | Intermediate |
|
|
29
|
-
| [Module 7](./modules/resolver-signature-07-api-reference.md) | **API Reference** - TypeScript types, ResolverHelpers interface, testing | Reference |
|
|
30
|
-
|
|
31
|
-
## ๐ Quick Navigation
|
|
32
|
-
|
|
33
|
-
### By Use Case
|
|
34
|
-
|
|
35
|
-
- **First time writing resolvers?** โ Start with [Module 1: Foundations](./modules/resolver-signature-01-foundations.md)
|
|
36
|
-
- **Need to understand parameters?** โ Jump to [Module 2: Parameter Reference](./modules/resolver-signature-02-parameter-reference.md)
|
|
37
|
-
- **Migrating old resolvers?** โ See [Module 6: Migration Guide](./modules/resolver-signature-06-migration-guide.md)
|
|
38
|
-
- **Need specific helper function?** โ Check [Module 7: API Reference](./modules/resolver-signature-07-api-reference.md)
|
|
39
|
-
- **Want code examples?** โ Browse [Examples Directory](./examples/)
|
|
40
|
-
|
|
41
|
-
### By Resolver Type
|
|
42
|
-
|
|
43
|
-
Different resolver types leverage parameters differently:
|
|
44
|
-
|
|
45
|
-
| Resolver Type | Primary Parameters | Complexity | Example |
|
|
46
|
-
|---------------|-------------------|------------|---------|
|
|
47
|
-
| Simple transformations | `value`, `helpers` | Low | [Basic String Transform](./examples/basic-resolvers.ts) |
|
|
48
|
-
| Context-aware | `value`, `sourceData`, `helpers` | Medium | [Price Calculation](./examples/advanced-resolvers.ts) |
|
|
49
|
-
| Configuration-driven | `value`, `config`, `helpers` | Medium | [Tax Rate Lookup](./examples/advanced-resolvers.ts) |
|
|
50
|
-
| Full context | All 4 parameters | High | [Complex Transform](./examples/advanced-resolvers.ts) |
|
|
51
|
-
| Async operations | All 4 + async | High | [API Enrichment](./examples/async-resolvers.ts) |
|
|
52
|
-
|
|
53
|
-
## ๐ Quick Reference
|
|
54
|
-
|
|
55
|
-
For quick lookups, see:
|
|
56
|
-
- [Quick Reference Cheat Sheet](../../02-CORE-GUIDES/advanced-services/advanced-services-quick-reference.md) - All parameters and helpers on one page
|
|
57
|
-
- [Common Patterns](./examples/basic-resolvers.ts) - Copy-paste ready snippets
|
|
58
|
-
- [Migration Checklist](./modules/resolver-signature-06-migration-guide.md#migration-checklist) - Step-by-step migration guide
|
|
59
|
-
|
|
60
|
-
## ๐ Prerequisites
|
|
61
|
-
|
|
62
|
-
Before starting this guide, you should:
|
|
63
|
-
|
|
64
|
-
1. โ
Have the SDK installed: `npm install @fluentcommerce/fc-connect-sdk`
|
|
65
|
-
2. โ
Understand basic TypeScript concepts (types, functions, async/await)
|
|
66
|
-
3. โ
Be familiar with UniversalMapper or GraphQLMutationMapper
|
|
67
|
-
4. โ
Have read the [Universal Mapping Guide](../../02-CORE-GUIDES/mapping/mapping-readme.md)
|
|
68
|
-
|
|
69
|
-
**New to the SDK?** Start with the [Getting Started Guide](../../00-START-HERE/getting-started.md) first.
|
|
70
|
-
|
|
71
|
-
## ๐ Key Concepts at a Glance
|
|
72
|
-
|
|
73
|
-
### The Standard Signature
|
|
74
|
-
|
|
75
|
-
```typescript
|
|
76
|
-
// โ
STANDARD 4-PARAMETER SIGNATURE
|
|
77
|
-
// Used by BOTH UniversalMapper AND GraphQLMutationMapper
|
|
78
|
-
type ResolverFunction = (
|
|
79
|
-
value: any, // The field value being transformed
|
|
80
|
-
sourceData: any, // Full source object for context
|
|
81
|
-
config: any, // Resolver-specific configuration
|
|
82
|
-
helpers: ResolverHelpers // SDK utilities (54 helper functions)
|
|
83
|
-
) => any | Promise<any>;
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
### Why This Matters
|
|
87
|
-
|
|
88
|
-
**Consistency Across Mappers:**
|
|
89
|
-
```typescript
|
|
90
|
-
// Same signature everywhere!
|
|
91
|
-
const customResolvers = {
|
|
92
|
-
// Works in UniversalMapper (CSV/JSON/Parquet/XML)
|
|
93
|
-
'custom.formatSKU': (value, sourceData, config, helpers) => {
|
|
94
|
-
return String(value).toUpperCase();
|
|
95
|
-
},
|
|
96
|
-
|
|
97
|
-
// Works in GraphQLMutationMapper (XML/JSON โ GraphQL)
|
|
98
|
-
'custom.calculateTax': (value, sourceData, config, helpers) => {
|
|
99
|
-
const taxRate = config.taxRate || 0.1;
|
|
100
|
-
return helpers.parseFloatSafe(value, 0) * (1 + taxRate);
|
|
101
|
-
}
|
|
102
|
-
};
|
|
103
|
-
|
|
104
|
-
// Use with UniversalMapper
|
|
105
|
-
const mapper1 = new UniversalMapper(mapping, { customResolvers });
|
|
106
|
-
|
|
107
|
-
// Use with GraphQLMutationMapper
|
|
108
|
-
const mapper2 = new GraphQLMutationMapper(mapping, { customResolvers });
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
### Before and After
|
|
112
|
-
|
|
113
|
-
```typescript
|
|
114
|
-
// โ OLD (3 parameters) - Will fail!
|
|
115
|
-
'custom.myResolver': (value, sourceData, helpers) => {
|
|
116
|
-
return helpers.get(sourceData, 'some.path');
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
// โ
NEW (4 parameters) - Correct!
|
|
120
|
-
'custom.myResolver': (value, sourceData, config, helpers) => {
|
|
121
|
-
return helpers.get(sourceData, 'some.path');
|
|
122
|
-
}
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
## ๐ฏ What Makes This Signature Powerful
|
|
126
|
-
|
|
127
|
-
### 1. Access to Source Context
|
|
128
|
-
```typescript
|
|
129
|
-
'custom.calculatePrice': (basePrice, sourceData, config, helpers) => {
|
|
130
|
-
// Access sibling fields from sourceData
|
|
131
|
-
const quantity = helpers.get(sourceData, 'quantity') || 1;
|
|
132
|
-
const discount = helpers.get(sourceData, 'discountPercent') || 0;
|
|
133
|
-
|
|
134
|
-
return basePrice * quantity * (1 - discount / 100);
|
|
135
|
-
}
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
### 2. Configuration-Driven Logic
|
|
139
|
-
```typescript
|
|
140
|
-
'custom.formatWithPrefix': (value, sourceData, config, helpers) => {
|
|
141
|
-
// Use config for business rules
|
|
142
|
-
const prefix = config.skuPrefix || 'SKU';
|
|
143
|
-
return `${prefix}-${value}`;
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
// Pass config via mapper
|
|
147
|
-
const mapper = new UniversalMapper(mapping, {
|
|
148
|
-
customResolvers,
|
|
149
|
-
context: { skuPrefix: 'PROD' } // Becomes 'config' parameter
|
|
150
|
-
});
|
|
151
|
-
```
|
|
152
|
-
|
|
153
|
-
### 3. Rich Utility Library
|
|
154
|
-
```typescript
|
|
155
|
-
'custom.safeTransform': (value, sourceData, config, helpers) => {
|
|
156
|
-
// Use helpers for safe operations
|
|
157
|
-
const numeric = helpers.parseFloatSafe(value, 0);
|
|
158
|
-
const formatted = helpers.formatCurrency(numeric, config.currency);
|
|
159
|
-
|
|
160
|
-
helpers.log.debug(`Transformed ${value} to ${formatted}`);
|
|
161
|
-
return formatted;
|
|
162
|
-
}
|
|
163
|
-
```
|
|
164
|
-
|
|
165
|
-
### 4. Async Operations
|
|
166
|
-
```typescript
|
|
167
|
-
'custom.enrichData': async (value, sourceData, config, helpers) => {
|
|
168
|
-
// Async API calls supported
|
|
169
|
-
if (!helpers.fluentClient) {
|
|
170
|
-
return value;
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
const result = await helpers.fluentClient.graphql({
|
|
174
|
-
query: `query { product(id: "${value}") { name } }`
|
|
175
|
-
});
|
|
176
|
-
|
|
177
|
-
return result.data.product;
|
|
178
|
-
}
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
## ๐ Module Details
|
|
182
|
-
|
|
183
|
-
### Module 1: Foundations
|
|
184
|
-
Learn why the 4-parameter signature exists and how it ensures consistency across all mappers.
|
|
185
|
-
|
|
186
|
-
**Key Topics:**
|
|
187
|
-
- Standard signature definition
|
|
188
|
-
- Why 4 parameters instead of 3
|
|
189
|
-
- Consistency across UniversalMapper and GraphQLMutationMapper
|
|
190
|
-
- Predictability and ease of use
|
|
191
|
-
|
|
192
|
-
**Time:** 10 minutes
|
|
193
|
-
|
|
194
|
-
### Module 2: Parameter Reference
|
|
195
|
-
Deep dive into each parameter with examples and use cases.
|
|
196
|
-
|
|
197
|
-
**Key Topics:**
|
|
198
|
-
- `value` - The extracted field value
|
|
199
|
-
- `sourceData` - Full source object access
|
|
200
|
-
- `config` - Business rules and configuration
|
|
201
|
-
- `helpers` - 54 utility functions
|
|
202
|
-
|
|
203
|
-
**Time:** 20 minutes
|
|
204
|
-
|
|
205
|
-
### Module 3: Basic Examples
|
|
206
|
-
Simple, practical examples to get started immediately.
|
|
207
|
-
|
|
208
|
-
**Key Topics:**
|
|
209
|
-
- String transformations
|
|
210
|
-
- Number parsing and formatting
|
|
211
|
-
- Date handling
|
|
212
|
-
- Safe fallback patterns
|
|
213
|
-
|
|
214
|
-
**Time:** 15 minutes
|
|
215
|
-
|
|
216
|
-
### Module 4: Advanced Patterns
|
|
217
|
-
Complex transformations using all 4 parameters.
|
|
218
|
-
|
|
219
|
-
**Key Topics:**
|
|
220
|
-
- Context-aware transformations
|
|
221
|
-
- Multi-field calculations
|
|
222
|
-
- Async resolvers with API calls
|
|
223
|
-
- Error handling patterns
|
|
224
|
-
|
|
225
|
-
**Time:** 30 minutes
|
|
226
|
-
|
|
227
|
-
### Module 5: SDK Resolvers
|
|
228
|
-
How built-in SDK resolvers use the 4-parameter signature.
|
|
229
|
-
|
|
230
|
-
**Key Topics:**
|
|
231
|
-
- SDK resolver implementation
|
|
232
|
-
- Why SDK resolvers follow the same pattern
|
|
233
|
-
- Understanding consistency
|
|
234
|
-
- Extending SDK resolvers
|
|
235
|
-
|
|
236
|
-
**Time:** 15 minutes
|
|
237
|
-
|
|
238
|
-
### Module 6: Migration Guide
|
|
239
|
-
Step-by-step guide to migrate from old 3-arg resolvers.
|
|
240
|
-
|
|
241
|
-
**Key Topics:**
|
|
242
|
-
- Migration checklist
|
|
243
|
-
- Common migration scenarios
|
|
244
|
-
- Breaking changes and fixes
|
|
245
|
-
- Testing migrated resolvers
|
|
246
|
-
|
|
247
|
-
**Time:** 20 minutes
|
|
248
|
-
|
|
249
|
-
### Module 7: API Reference
|
|
250
|
-
Complete TypeScript types, interfaces, and testing utilities.
|
|
251
|
-
|
|
252
|
-
**Key Topics:**
|
|
253
|
-
- `ResolverFunction` type definition
|
|
254
|
-
- `ResolverHelpers` interface (all 48+ functions)
|
|
255
|
-
- Testing resolver signatures
|
|
256
|
-
- Production best practices
|
|
257
|
-
|
|
258
|
-
**Time:** Reference (as needed)
|
|
259
|
-
|
|
260
|
-
## ๐งช Complete Working Example
|
|
261
|
-
|
|
262
|
-
```typescript
|
|
263
|
-
import { UniversalMapper } from '@fluentcommerce/fc-connect-sdk';
|
|
264
|
-
|
|
265
|
-
// Define custom resolvers using 4-parameter signature
|
|
266
|
-
const customResolvers = {
|
|
267
|
-
// Simple transformation
|
|
268
|
-
'custom.formatSKU': (value, sourceData, config, helpers) => {
|
|
269
|
-
const prefix = config.skuPrefix || 'SKU';
|
|
270
|
-
return `${prefix}-${String(value).toUpperCase()}`;
|
|
271
|
-
},
|
|
272
|
-
|
|
273
|
-
// Context-aware transformation
|
|
274
|
-
'custom.calculateTotal': (value, sourceData, config, helpers) => {
|
|
275
|
-
const quantity = helpers.get(sourceData, 'quantity') || 1;
|
|
276
|
-
const price = helpers.parseFloatSafe(value, 0);
|
|
277
|
-
const taxRate = config.taxRate || 0;
|
|
278
|
-
|
|
279
|
-
return price * quantity * (1 + taxRate);
|
|
280
|
-
},
|
|
281
|
-
|
|
282
|
-
// Async resolver
|
|
283
|
-
'custom.enrichProduct': async (sku, sourceData, config, helpers) => {
|
|
284
|
-
if (!helpers.fluentClient) {
|
|
285
|
-
return { sku };
|
|
286
|
-
}
|
|
287
|
-
|
|
288
|
-
try {
|
|
289
|
-
const result = await helpers.fluentClient.graphql({
|
|
290
|
-
query: `query { product(ref: "${sku}") { id name } }`
|
|
291
|
-
});
|
|
292
|
-
return result.data.product;
|
|
293
|
-
} catch (error) {
|
|
294
|
-
helpers.log.error('Product enrichment failed', error);
|
|
295
|
-
return { sku };
|
|
296
|
-
}
|
|
297
|
-
}
|
|
298
|
-
};
|
|
299
|
-
|
|
300
|
-
// Use with mapper
|
|
301
|
-
const mapper = new UniversalMapper(
|
|
302
|
-
{
|
|
303
|
-
fields: {
|
|
304
|
-
sku: { source: 'product_id', resolver: 'custom.formatSKU' },
|
|
305
|
-
total: { source: 'base_price', resolver: 'custom.calculateTotal' },
|
|
306
|
-
product: { source: 'sku', resolver: 'custom.enrichProduct' }
|
|
307
|
-
}
|
|
308
|
-
},
|
|
309
|
-
{
|
|
310
|
-
customResolvers,
|
|
311
|
-
context: { skuPrefix: 'PROD', taxRate: 0.1 },
|
|
312
|
-
fluentClient: myFluentClient,
|
|
313
|
-
logger: myLogger
|
|
314
|
-
}
|
|
315
|
-
);
|
|
316
|
-
|
|
317
|
-
// Transform data
|
|
318
|
-
const result = await mapper.map({
|
|
319
|
-
product_id: 'widget-001',
|
|
320
|
-
base_price: '19.99',
|
|
321
|
-
quantity: 5
|
|
322
|
-
});
|
|
323
|
-
|
|
324
|
-
console.log(result.data);
|
|
325
|
-
// {
|
|
326
|
-
// sku: 'PROD-WIDGET-001',
|
|
327
|
-
// total: 109.945, // 19.99 * 5 * 1.1
|
|
328
|
-
// product: { id: '123', name: 'Widget' }
|
|
329
|
-
// }
|
|
330
|
-
```
|
|
331
|
-
|
|
332
|
-
## โ
Key Takeaways
|
|
333
|
-
|
|
334
|
-
1. **Standard Signature** - Always `(value, sourceData, config, helpers) => any`
|
|
335
|
-
2. **Universal Application** - Works in UniversalMapper AND GraphQLMutationMapper
|
|
336
|
-
3. **Always 4 Parameters** - Even if you don't use all of them, include all 4
|
|
337
|
-
4. **Config = Context** - Pass via mapper options `context`, receive as 3rd param
|
|
338
|
-
5. **Helpers = Power** - 54 SDK utility functions + fluentClient + logger
|
|
339
|
-
6. **Consistency = Predictability** - Same pattern everywhere makes SDK easier to use
|
|
340
|
-
|
|
341
|
-
## ๐ฏ Next Steps
|
|
342
|
-
|
|
343
|
-
1. **Start Learning** โ Begin with [Module 1: Foundations](./modules/resolver-signature-01-foundations.md)
|
|
344
|
-
2. **Try Examples** โ Copy code from [Examples Directory](./examples/)
|
|
345
|
-
3. **Build Your Own** โ Create custom resolvers for your use case
|
|
346
|
-
4. **Test Thoroughly** โ Use patterns from [Module 7: API Reference](./modules/resolver-signature-07-api-reference.md)
|
|
347
|
-
5. **Deploy Confidently** โ Follow best practices from [Module 6: Migration Guide](./modules/resolver-signature-06-migration-guide.md)
|
|
348
|
-
|
|
349
|
-
---
|
|
350
|
-
|
|
351
|
-
**Ready to master resolver signatures?** Start with [Module 1: Foundations](./modules/resolver-signature-01-foundations.md) and progress through the learning path.
|
|
1
|
+
# Resolver Signature Learning Path
|
|
2
|
+
|
|
3
|
+
> **Complete guide to the standard 4-parameter resolver signature**
|
|
4
|
+
> Progressive learning modules with real schema examples and verified code patterns
|
|
5
|
+
|
|
6
|
+
## ๐ What You'll Learn
|
|
7
|
+
|
|
8
|
+
This guide teaches you the standard resolver signature used across ALL mappers in the Fluent Connect SDK. By the end, you'll understand:
|
|
9
|
+
|
|
10
|
+
- โ
Why the 4-parameter signature is consistent across UniversalMapper AND GraphQLMutationMapper
|
|
11
|
+
- โ
What each parameter does and when to use it
|
|
12
|
+
- โ
How to write context-aware transformations using sourceData
|
|
13
|
+
- โ
How to leverage the ResolverHelpers utilities (54 helper functions)
|
|
14
|
+
- โ
How to migrate from old 3-arg resolvers to the new 4-arg pattern
|
|
15
|
+
- โ
Best practices for testing and production use
|
|
16
|
+
|
|
17
|
+
## ๐ฏ Learning Path Overview
|
|
18
|
+
|
|
19
|
+
This guide is organized into **7 progressive modules**. Follow them in order for the best learning experience:
|
|
20
|
+
|
|
21
|
+
| Module | Topic | Level |
|
|
22
|
+
|--------|-------|-------|
|
|
23
|
+
| [Module 1](./modules/resolver-signature-01-foundations.md) | **Foundations** - Standard signature, why 4 parameters, consistency | Beginner |
|
|
24
|
+
| [Module 2](./modules/resolver-signature-02-parameter-reference.md) | **Parameter Reference** - Detailed breakdown of each parameter | Beginner |
|
|
25
|
+
| [Module 3](./modules/resolver-signature-03-basic-examples.md) | **Basic Examples** - Simple transformations, string/number handling | Beginner |
|
|
26
|
+
| [Module 4](./modules/resolver-signature-04-advanced-patterns.md) | **Advanced Patterns** - Context-aware transformations, async resolvers | Advanced |
|
|
27
|
+
| [Module 5](./modules/resolver-signature-05-sdk-resolvers.md) | **SDK Resolvers** - How built-in resolvers use the signature | Intermediate |
|
|
28
|
+
| [Module 6](./modules/resolver-signature-06-migration-guide.md) | **Migration Guide** - Migrating from 3-arg to 4-arg, best practices | Intermediate |
|
|
29
|
+
| [Module 7](./modules/resolver-signature-07-api-reference.md) | **API Reference** - TypeScript types, ResolverHelpers interface, testing | Reference |
|
|
30
|
+
|
|
31
|
+
## ๐ Quick Navigation
|
|
32
|
+
|
|
33
|
+
### By Use Case
|
|
34
|
+
|
|
35
|
+
- **First time writing resolvers?** โ Start with [Module 1: Foundations](./modules/resolver-signature-01-foundations.md)
|
|
36
|
+
- **Need to understand parameters?** โ Jump to [Module 2: Parameter Reference](./modules/resolver-signature-02-parameter-reference.md)
|
|
37
|
+
- **Migrating old resolvers?** โ See [Module 6: Migration Guide](./modules/resolver-signature-06-migration-guide.md)
|
|
38
|
+
- **Need specific helper function?** โ Check [Module 7: API Reference](./modules/resolver-signature-07-api-reference.md)
|
|
39
|
+
- **Want code examples?** โ Browse [Examples Directory](./examples/)
|
|
40
|
+
|
|
41
|
+
### By Resolver Type
|
|
42
|
+
|
|
43
|
+
Different resolver types leverage parameters differently:
|
|
44
|
+
|
|
45
|
+
| Resolver Type | Primary Parameters | Complexity | Example |
|
|
46
|
+
|---------------|-------------------|------------|---------|
|
|
47
|
+
| Simple transformations | `value`, `helpers` | Low | [Basic String Transform](./examples/basic-resolvers.ts) |
|
|
48
|
+
| Context-aware | `value`, `sourceData`, `helpers` | Medium | [Price Calculation](./examples/advanced-resolvers.ts) |
|
|
49
|
+
| Configuration-driven | `value`, `config`, `helpers` | Medium | [Tax Rate Lookup](./examples/advanced-resolvers.ts) |
|
|
50
|
+
| Full context | All 4 parameters | High | [Complex Transform](./examples/advanced-resolvers.ts) |
|
|
51
|
+
| Async operations | All 4 + async | High | [API Enrichment](./examples/async-resolvers.ts) |
|
|
52
|
+
|
|
53
|
+
## ๐ Quick Reference
|
|
54
|
+
|
|
55
|
+
For quick lookups, see:
|
|
56
|
+
- [Quick Reference Cheat Sheet](../../02-CORE-GUIDES/advanced-services/advanced-services-quick-reference.md) - All parameters and helpers on one page
|
|
57
|
+
- [Common Patterns](./examples/basic-resolvers.ts) - Copy-paste ready snippets
|
|
58
|
+
- [Migration Checklist](./modules/resolver-signature-06-migration-guide.md#migration-checklist) - Step-by-step migration guide
|
|
59
|
+
|
|
60
|
+
## ๐ Prerequisites
|
|
61
|
+
|
|
62
|
+
Before starting this guide, you should:
|
|
63
|
+
|
|
64
|
+
1. โ
Have the SDK installed: `npm install @fluentcommerce/fc-connect-sdk`
|
|
65
|
+
2. โ
Understand basic TypeScript concepts (types, functions, async/await)
|
|
66
|
+
3. โ
Be familiar with UniversalMapper or GraphQLMutationMapper
|
|
67
|
+
4. โ
Have read the [Universal Mapping Guide](../../02-CORE-GUIDES/mapping/mapping-readme.md)
|
|
68
|
+
|
|
69
|
+
**New to the SDK?** Start with the [Getting Started Guide](../../00-START-HERE/getting-started.md) first.
|
|
70
|
+
|
|
71
|
+
## ๐ Key Concepts at a Glance
|
|
72
|
+
|
|
73
|
+
### The Standard Signature
|
|
74
|
+
|
|
75
|
+
```typescript
|
|
76
|
+
// โ
STANDARD 4-PARAMETER SIGNATURE
|
|
77
|
+
// Used by BOTH UniversalMapper AND GraphQLMutationMapper
|
|
78
|
+
type ResolverFunction = (
|
|
79
|
+
value: any, // The field value being transformed
|
|
80
|
+
sourceData: any, // Full source object for context
|
|
81
|
+
config: any, // Resolver-specific configuration
|
|
82
|
+
helpers: ResolverHelpers // SDK utilities (54 helper functions)
|
|
83
|
+
) => any | Promise<any>;
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### Why This Matters
|
|
87
|
+
|
|
88
|
+
**Consistency Across Mappers:**
|
|
89
|
+
```typescript
|
|
90
|
+
// Same signature everywhere!
|
|
91
|
+
const customResolvers = {
|
|
92
|
+
// Works in UniversalMapper (CSV/JSON/Parquet/XML)
|
|
93
|
+
'custom.formatSKU': (value, sourceData, config, helpers) => {
|
|
94
|
+
return String(value).toUpperCase();
|
|
95
|
+
},
|
|
96
|
+
|
|
97
|
+
// Works in GraphQLMutationMapper (XML/JSON โ GraphQL)
|
|
98
|
+
'custom.calculateTax': (value, sourceData, config, helpers) => {
|
|
99
|
+
const taxRate = config.taxRate || 0.1;
|
|
100
|
+
return helpers.parseFloatSafe(value, 0) * (1 + taxRate);
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
// Use with UniversalMapper
|
|
105
|
+
const mapper1 = new UniversalMapper(mapping, { customResolvers });
|
|
106
|
+
|
|
107
|
+
// Use with GraphQLMutationMapper
|
|
108
|
+
const mapper2 = new GraphQLMutationMapper(mapping, { customResolvers });
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### Before and After
|
|
112
|
+
|
|
113
|
+
```typescript
|
|
114
|
+
// โ OLD (3 parameters) - Will fail!
|
|
115
|
+
'custom.myResolver': (value, sourceData, helpers) => {
|
|
116
|
+
return helpers.get(sourceData, 'some.path');
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
// โ
NEW (4 parameters) - Correct!
|
|
120
|
+
'custom.myResolver': (value, sourceData, config, helpers) => {
|
|
121
|
+
return helpers.get(sourceData, 'some.path');
|
|
122
|
+
}
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
## ๐ฏ What Makes This Signature Powerful
|
|
126
|
+
|
|
127
|
+
### 1. Access to Source Context
|
|
128
|
+
```typescript
|
|
129
|
+
'custom.calculatePrice': (basePrice, sourceData, config, helpers) => {
|
|
130
|
+
// Access sibling fields from sourceData
|
|
131
|
+
const quantity = helpers.get(sourceData, 'quantity') || 1;
|
|
132
|
+
const discount = helpers.get(sourceData, 'discountPercent') || 0;
|
|
133
|
+
|
|
134
|
+
return basePrice * quantity * (1 - discount / 100);
|
|
135
|
+
}
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### 2. Configuration-Driven Logic
|
|
139
|
+
```typescript
|
|
140
|
+
'custom.formatWithPrefix': (value, sourceData, config, helpers) => {
|
|
141
|
+
// Use config for business rules
|
|
142
|
+
const prefix = config.skuPrefix || 'SKU';
|
|
143
|
+
return `${prefix}-${value}`;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
// Pass config via mapper
|
|
147
|
+
const mapper = new UniversalMapper(mapping, {
|
|
148
|
+
customResolvers,
|
|
149
|
+
context: { skuPrefix: 'PROD' } // Becomes 'config' parameter
|
|
150
|
+
});
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
### 3. Rich Utility Library
|
|
154
|
+
```typescript
|
|
155
|
+
'custom.safeTransform': (value, sourceData, config, helpers) => {
|
|
156
|
+
// Use helpers for safe operations
|
|
157
|
+
const numeric = helpers.parseFloatSafe(value, 0);
|
|
158
|
+
const formatted = helpers.formatCurrency(numeric, config.currency);
|
|
159
|
+
|
|
160
|
+
helpers.log.debug(`Transformed ${value} to ${formatted}`);
|
|
161
|
+
return formatted;
|
|
162
|
+
}
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
### 4. Async Operations
|
|
166
|
+
```typescript
|
|
167
|
+
'custom.enrichData': async (value, sourceData, config, helpers) => {
|
|
168
|
+
// Async API calls supported
|
|
169
|
+
if (!helpers.fluentClient) {
|
|
170
|
+
return value;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
const result = await helpers.fluentClient.graphql({
|
|
174
|
+
query: `query { product(id: "${value}") { name } }`
|
|
175
|
+
});
|
|
176
|
+
|
|
177
|
+
return result.data.product;
|
|
178
|
+
}
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
## ๐ Module Details
|
|
182
|
+
|
|
183
|
+
### Module 1: Foundations
|
|
184
|
+
Learn why the 4-parameter signature exists and how it ensures consistency across all mappers.
|
|
185
|
+
|
|
186
|
+
**Key Topics:**
|
|
187
|
+
- Standard signature definition
|
|
188
|
+
- Why 4 parameters instead of 3
|
|
189
|
+
- Consistency across UniversalMapper and GraphQLMutationMapper
|
|
190
|
+
- Predictability and ease of use
|
|
191
|
+
|
|
192
|
+
**Time:** 10 minutes
|
|
193
|
+
|
|
194
|
+
### Module 2: Parameter Reference
|
|
195
|
+
Deep dive into each parameter with examples and use cases.
|
|
196
|
+
|
|
197
|
+
**Key Topics:**
|
|
198
|
+
- `value` - The extracted field value
|
|
199
|
+
- `sourceData` - Full source object access
|
|
200
|
+
- `config` - Business rules and configuration
|
|
201
|
+
- `helpers` - 54 utility functions
|
|
202
|
+
|
|
203
|
+
**Time:** 20 minutes
|
|
204
|
+
|
|
205
|
+
### Module 3: Basic Examples
|
|
206
|
+
Simple, practical examples to get started immediately.
|
|
207
|
+
|
|
208
|
+
**Key Topics:**
|
|
209
|
+
- String transformations
|
|
210
|
+
- Number parsing and formatting
|
|
211
|
+
- Date handling
|
|
212
|
+
- Safe fallback patterns
|
|
213
|
+
|
|
214
|
+
**Time:** 15 minutes
|
|
215
|
+
|
|
216
|
+
### Module 4: Advanced Patterns
|
|
217
|
+
Complex transformations using all 4 parameters.
|
|
218
|
+
|
|
219
|
+
**Key Topics:**
|
|
220
|
+
- Context-aware transformations
|
|
221
|
+
- Multi-field calculations
|
|
222
|
+
- Async resolvers with API calls
|
|
223
|
+
- Error handling patterns
|
|
224
|
+
|
|
225
|
+
**Time:** 30 minutes
|
|
226
|
+
|
|
227
|
+
### Module 5: SDK Resolvers
|
|
228
|
+
How built-in SDK resolvers use the 4-parameter signature.
|
|
229
|
+
|
|
230
|
+
**Key Topics:**
|
|
231
|
+
- SDK resolver implementation
|
|
232
|
+
- Why SDK resolvers follow the same pattern
|
|
233
|
+
- Understanding consistency
|
|
234
|
+
- Extending SDK resolvers
|
|
235
|
+
|
|
236
|
+
**Time:** 15 minutes
|
|
237
|
+
|
|
238
|
+
### Module 6: Migration Guide
|
|
239
|
+
Step-by-step guide to migrate from old 3-arg resolvers.
|
|
240
|
+
|
|
241
|
+
**Key Topics:**
|
|
242
|
+
- Migration checklist
|
|
243
|
+
- Common migration scenarios
|
|
244
|
+
- Breaking changes and fixes
|
|
245
|
+
- Testing migrated resolvers
|
|
246
|
+
|
|
247
|
+
**Time:** 20 minutes
|
|
248
|
+
|
|
249
|
+
### Module 7: API Reference
|
|
250
|
+
Complete TypeScript types, interfaces, and testing utilities.
|
|
251
|
+
|
|
252
|
+
**Key Topics:**
|
|
253
|
+
- `ResolverFunction` type definition
|
|
254
|
+
- `ResolverHelpers` interface (all 48+ functions)
|
|
255
|
+
- Testing resolver signatures
|
|
256
|
+
- Production best practices
|
|
257
|
+
|
|
258
|
+
**Time:** Reference (as needed)
|
|
259
|
+
|
|
260
|
+
## ๐งช Complete Working Example
|
|
261
|
+
|
|
262
|
+
```typescript
|
|
263
|
+
import { UniversalMapper } from '@fluentcommerce/fc-connect-sdk';
|
|
264
|
+
|
|
265
|
+
// Define custom resolvers using 4-parameter signature
|
|
266
|
+
const customResolvers = {
|
|
267
|
+
// Simple transformation
|
|
268
|
+
'custom.formatSKU': (value, sourceData, config, helpers) => {
|
|
269
|
+
const prefix = config.skuPrefix || 'SKU';
|
|
270
|
+
return `${prefix}-${String(value).toUpperCase()}`;
|
|
271
|
+
},
|
|
272
|
+
|
|
273
|
+
// Context-aware transformation
|
|
274
|
+
'custom.calculateTotal': (value, sourceData, config, helpers) => {
|
|
275
|
+
const quantity = helpers.get(sourceData, 'quantity') || 1;
|
|
276
|
+
const price = helpers.parseFloatSafe(value, 0);
|
|
277
|
+
const taxRate = config.taxRate || 0;
|
|
278
|
+
|
|
279
|
+
return price * quantity * (1 + taxRate);
|
|
280
|
+
},
|
|
281
|
+
|
|
282
|
+
// Async resolver
|
|
283
|
+
'custom.enrichProduct': async (sku, sourceData, config, helpers) => {
|
|
284
|
+
if (!helpers.fluentClient) {
|
|
285
|
+
return { sku };
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
try {
|
|
289
|
+
const result = await helpers.fluentClient.graphql({
|
|
290
|
+
query: `query { product(ref: "${sku}") { id name } }`
|
|
291
|
+
});
|
|
292
|
+
return result.data.product;
|
|
293
|
+
} catch (error) {
|
|
294
|
+
helpers.log.error('Product enrichment failed', error);
|
|
295
|
+
return { sku };
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
};
|
|
299
|
+
|
|
300
|
+
// Use with mapper
|
|
301
|
+
const mapper = new UniversalMapper(
|
|
302
|
+
{
|
|
303
|
+
fields: {
|
|
304
|
+
sku: { source: 'product_id', resolver: 'custom.formatSKU' },
|
|
305
|
+
total: { source: 'base_price', resolver: 'custom.calculateTotal' },
|
|
306
|
+
product: { source: 'sku', resolver: 'custom.enrichProduct' }
|
|
307
|
+
}
|
|
308
|
+
},
|
|
309
|
+
{
|
|
310
|
+
customResolvers,
|
|
311
|
+
context: { skuPrefix: 'PROD', taxRate: 0.1 },
|
|
312
|
+
fluentClient: myFluentClient,
|
|
313
|
+
logger: myLogger
|
|
314
|
+
}
|
|
315
|
+
);
|
|
316
|
+
|
|
317
|
+
// Transform data
|
|
318
|
+
const result = await mapper.map({
|
|
319
|
+
product_id: 'widget-001',
|
|
320
|
+
base_price: '19.99',
|
|
321
|
+
quantity: 5
|
|
322
|
+
});
|
|
323
|
+
|
|
324
|
+
console.log(result.data);
|
|
325
|
+
// {
|
|
326
|
+
// sku: 'PROD-WIDGET-001',
|
|
327
|
+
// total: 109.945, // 19.99 * 5 * 1.1
|
|
328
|
+
// product: { id: '123', name: 'Widget' }
|
|
329
|
+
// }
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
## โ
Key Takeaways
|
|
333
|
+
|
|
334
|
+
1. **Standard Signature** - Always `(value, sourceData, config, helpers) => any`
|
|
335
|
+
2. **Universal Application** - Works in UniversalMapper AND GraphQLMutationMapper
|
|
336
|
+
3. **Always 4 Parameters** - Even if you don't use all of them, include all 4
|
|
337
|
+
4. **Config = Context** - Pass via mapper options `context`, receive as 3rd param
|
|
338
|
+
5. **Helpers = Power** - 54 SDK utility functions + fluentClient + logger
|
|
339
|
+
6. **Consistency = Predictability** - Same pattern everywhere makes SDK easier to use
|
|
340
|
+
|
|
341
|
+
## ๐ฏ Next Steps
|
|
342
|
+
|
|
343
|
+
1. **Start Learning** โ Begin with [Module 1: Foundations](./modules/resolver-signature-01-foundations.md)
|
|
344
|
+
2. **Try Examples** โ Copy code from [Examples Directory](./examples/)
|
|
345
|
+
3. **Build Your Own** โ Create custom resolvers for your use case
|
|
346
|
+
4. **Test Thoroughly** โ Use patterns from [Module 7: API Reference](./modules/resolver-signature-07-api-reference.md)
|
|
347
|
+
5. **Deploy Confidently** โ Follow best practices from [Module 6: Migration Guide](./modules/resolver-signature-06-migration-guide.md)
|
|
348
|
+
|
|
349
|
+
---
|
|
350
|
+
|
|
351
|
+
**Ready to master resolver signatures?** Start with [Module 1: Foundations](./modules/resolver-signature-01-foundations.md) and progress through the learning path.
|