@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,427 +1,427 @@
|
|
|
1
|
-
## SDK Philosophy
|
|
2
|
-
|
|
3
|
-
**Core Principle:** The SDK provides **building-block services**. YOU compose them into workflows.
|
|
4
|
-
|
|
5
|
-
### Primary Approach: Building Blocks (Recommended)
|
|
6
|
-
|
|
7
|
-
```typescript
|
|
8
|
-
// ✅ RECOMMENDED - Compose services yourself (maximum flexibility)
|
|
9
|
-
import { createClient, S3DataSource, CSVParserService } from '@fluentcommerce/fc-connect-sdk';
|
|
10
|
-
|
|
11
|
-
const client = await createClient({ config }, { logger });
|
|
12
|
-
const s3 = new S3DataSource(s3Config, logger);
|
|
13
|
-
const parser = new CSVParserService(logger);
|
|
14
|
-
|
|
15
|
-
// Build your workflow
|
|
16
|
-
const file = await s3.downloadFile('inventory.csv');
|
|
17
|
-
const records = await parser.parse(file.toString());
|
|
18
|
-
const mapped = records.map(record => ({ /* your mapping */ }));
|
|
19
|
-
await client.sendBatch(jobId, { items: mapped });
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
### Optional Convenience: Orchestrators (When Appropriate)
|
|
23
|
-
|
|
24
|
-
```typescript
|
|
25
|
-
// ✅ ALSO VALID - Use orchestrators for common patterns
|
|
26
|
-
import { ExtractionOrchestrator } from '@fluentcommerce/fc-connect-sdk';
|
|
27
|
-
|
|
28
|
-
const orchestrator = new ExtractionOrchestrator(client, logger);
|
|
29
|
-
await orchestrator.extractToCSV({
|
|
30
|
-
query: '...',
|
|
31
|
-
outputPath: 'inventory.csv'
|
|
32
|
-
});
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
### When to Use What
|
|
36
|
-
|
|
37
|
-
| Approach | Use When | Pros | Cons |
|
|
38
|
-
|----------|----------|------|------|
|
|
39
|
-
| **Building Blocks** | Custom workflows, unique requirements | Maximum flexibility, full control | More code to write |
|
|
40
|
-
| **Orchestrators** | Standard patterns, rapid prototyping | Less code, batteries included | Less flexibility |
|
|
41
|
-
|
|
42
|
-
**Recommendation:** Start with building blocks. Use orchestrators when you need a common pattern implemented quickly.
|
|
43
|
-
|
|
44
|
-
**Key Features:**
|
|
45
|
-
|
|
46
|
-
- **ExtractionOrchestrator**: Optional high-level service for GraphQL extraction (auto-pagination, path-based extraction, validation)
|
|
47
|
-
- **Versori client parity**: Strips internal fields, auto-paginates, aligned endpoints, retry/backoff, and `validateWebhook()`
|
|
48
|
-
- **Logging architecture**: Function-based utilities (`createConsoleLogger()`, `toStructuredLogger()`) for standalone environments
|
|
49
|
-
- **Core services**: JobTracker, PartialBatchRecovery, PreflightValidator, WebhookValidationService
|
|
50
|
-
- **SFTP enhancements**: Connection pooling, wait queues, improved retry logic, Deno compatibility
|
|
51
|
-
|
|
52
|
-
**See:** [SDK Philosophy](../../00-START-HERE/SDK-PHILOSOPHY.md) for design principles.
|
|
53
|
-
|
|
54
|
-
# FC Connect SDK - Architecture Overview
|
|
55
|
-
|
|
56
|
-
This document provides a high-level overview of the FC Connect SDK architecture, designed to help you understand how the SDK works and how to use it effectively.
|
|
57
|
-
|
|
58
|
-
## What is the FC Connect SDK?
|
|
59
|
-
|
|
60
|
-
The FC Connect SDK is a TypeScript library that helps you build integrations with Fluent Commerce. It handles the complexity of:
|
|
61
|
-
|
|
62
|
-
- Authentication and API communication
|
|
63
|
-
- Data transformation and mapping
|
|
64
|
-
- File processing (CSV, XML, JSON, Parquet)
|
|
65
|
-
- Batch operations and state management
|
|
66
|
-
- Multi-runtime support (Node.js, Deno, Versori)
|
|
67
|
-
- High-level extraction orchestration with auto-pagination
|
|
68
|
-
- Webhook signature validation
|
|
69
|
-
- Job tracking and partial batch recovery
|
|
70
|
-
- Pre-flight validation to save API quota
|
|
71
|
-
- SFTP connection pooling for better performance
|
|
72
|
-
|
|
73
|
-
## High-Level Architecture
|
|
74
|
-
|
|
75
|
-
```mermaid
|
|
76
|
-
graph TB
|
|
77
|
-
subgraph "Your Application"
|
|
78
|
-
APP[Your Integration Code]
|
|
79
|
-
end
|
|
80
|
-
|
|
81
|
-
subgraph "FC Connect SDK"
|
|
82
|
-
FACTORY[Client Factory<br/>Auto-detects runtime]
|
|
83
|
-
|
|
84
|
-
subgraph "Client Layer"
|
|
85
|
-
FC[FluentClient<br/>OAuth2]
|
|
86
|
-
FVC[FluentVersoriClient<br/>Platform Auth]
|
|
87
|
-
end
|
|
88
|
-
|
|
89
|
-
subgraph "Service Layer"
|
|
90
|
-
BATCH[Batch API Client]
|
|
91
|
-
MAPPER[Universal Mapper]
|
|
92
|
-
EXTRACT[Extraction Orchestrator]
|
|
93
|
-
STATE[State Service]
|
|
94
|
-
WEBHOOK[Webhook Validation]
|
|
95
|
-
JOBTRACK[Job Tracker]
|
|
96
|
-
PREFLIGHT[Preflight Validator]
|
|
97
|
-
end
|
|
98
|
-
|
|
99
|
-
subgraph "Data Layer"
|
|
100
|
-
DS[Data Sources<br/>S3, SFTP]
|
|
101
|
-
PARSERS[Parsers<br/>CSV, XML, JSON, Parquet]
|
|
102
|
-
end
|
|
103
|
-
|
|
104
|
-
subgraph "Orchestration"
|
|
105
|
-
INGEST[Ingestion Service<br/>Optional Helper]
|
|
106
|
-
end
|
|
107
|
-
end
|
|
108
|
-
|
|
109
|
-
subgraph "External Systems"
|
|
110
|
-
FLUENT[Fluent Commerce API]
|
|
111
|
-
S3[Amazon S3]
|
|
112
|
-
SFTP[SFTP Servers]
|
|
113
|
-
end
|
|
114
|
-
|
|
115
|
-
APP --> FACTORY
|
|
116
|
-
FACTORY --> FC
|
|
117
|
-
FACTORY --> FVC
|
|
118
|
-
FC --> BATCH
|
|
119
|
-
FVC --> BATCH
|
|
120
|
-
FC --> MAPPER
|
|
121
|
-
FVC --> MAPPER
|
|
122
|
-
FC --> EXTRACT
|
|
123
|
-
FVC --> EXTRACT
|
|
124
|
-
BATCH --> STATE
|
|
125
|
-
MAPPER --> PARSERS
|
|
126
|
-
EXTRACT --> DS
|
|
127
|
-
INGEST --> DS
|
|
128
|
-
INGEST --> PARSERS
|
|
129
|
-
INGEST --> MAPPER
|
|
130
|
-
INGEST --> BATCH
|
|
131
|
-
DS --> S3
|
|
132
|
-
DS --> SFTP
|
|
133
|
-
BATCH --> FLUENT
|
|
134
|
-
FC --> FLUENT
|
|
135
|
-
FVC --> FLUENT
|
|
136
|
-
|
|
137
|
-
style APP fill:#e1f5ff
|
|
138
|
-
style FACTORY fill:#fff4e6
|
|
139
|
-
style FC fill:#f3e5f5
|
|
140
|
-
style FVC fill:#f3e5f5
|
|
141
|
-
style FLUENT fill:#ffebee
|
|
142
|
-
style S3 fill:#ffebee
|
|
143
|
-
style SFTP fill:#ffebee
|
|
144
|
-
```
|
|
145
|
-
|
|
146
|
-
## Core Concepts
|
|
147
|
-
|
|
148
|
-
### 1. Universal Client Factory
|
|
149
|
-
|
|
150
|
-
The SDK automatically detects your runtime environment and creates the appropriate client:
|
|
151
|
-
|
|
152
|
-
```typescript
|
|
153
|
-
import { createClient } from '@fluentcommerce/fc-connect-sdk';
|
|
154
|
-
|
|
155
|
-
// Works in Node.js, Deno, or Versori - automatically detects context
|
|
156
|
-
const client = await createClient(ctx); // Pass context directly
|
|
157
|
-
```
|
|
158
|
-
|
|
159
|
-
**Supported Environments:**
|
|
160
|
-
|
|
161
|
-
- **Node.js/Deno**: Uses OAuth2 authentication
|
|
162
|
-
- **Versori Platform**: Uses platform-managed connections
|
|
163
|
-
|
|
164
|
-
### 2. Layered Architecture
|
|
165
|
-
|
|
166
|
-
The SDK is organized into clear layers:
|
|
167
|
-
|
|
168
|
-
```mermaid
|
|
169
|
-
graph LR
|
|
170
|
-
subgraph "Layer 1: Client"
|
|
171
|
-
CLIENT[Client Factory & Implementations]
|
|
172
|
-
end
|
|
173
|
-
|
|
174
|
-
subgraph "Layer 2: Services"
|
|
175
|
-
SERVICES[Batch, Mapping, Extraction,<br/>Transformation, State]
|
|
176
|
-
end
|
|
177
|
-
|
|
178
|
-
subgraph "Layer 3: Data"
|
|
179
|
-
DATA[Data Sources & Parsers]
|
|
180
|
-
end
|
|
181
|
-
|
|
182
|
-
subgraph "Layer 4: Optional Orchestration"
|
|
183
|
-
ORCHESTRATION[Optional High-level Services<br/>IngestionService, ExtractionOrchestrator]
|
|
184
|
-
end
|
|
185
|
-
|
|
186
|
-
CLIENT --> SERVICES
|
|
187
|
-
SERVICES --> DATA
|
|
188
|
-
ORCHESTRATION --> SERVICES
|
|
189
|
-
ORCHESTRATION --> DATA
|
|
190
|
-
|
|
191
|
-
style CLIENT fill:#e3f2fd
|
|
192
|
-
style SERVICES fill:#f3e5f5
|
|
193
|
-
style DATA fill:#fff3e0
|
|
194
|
-
style ORCHESTRATION fill:#e8f5e9
|
|
195
|
-
```
|
|
196
|
-
|
|
197
|
-
**Why Layers Matter:**
|
|
198
|
-
|
|
199
|
-
- **Flexibility**: Use low-level services for custom logic or optional high-level services (like IngestionService) for common patterns
|
|
200
|
-
- **Testability**: Each layer can be tested independently
|
|
201
|
-
- **Maintainability**: Clear separation of concerns
|
|
202
|
-
|
|
203
|
-
### 3. Universal Mapping Pattern
|
|
204
|
-
|
|
205
|
-
One mapping configuration works for ALL data transformations:
|
|
206
|
-
|
|
207
|
-
```mermaid
|
|
208
|
-
graph LR
|
|
209
|
-
CSV[CSV Ingestion] --> MAPPER[Universal Mapper]
|
|
210
|
-
XML[XML Transformation] --> MAPPER
|
|
211
|
-
JSON[JSON Extraction] --> MAPPER
|
|
212
|
-
PARQUET[Parquet Processing] --> MAPPER
|
|
213
|
-
|
|
214
|
-
MAPPER --> CONFIG{Mapping Config}
|
|
215
|
-
CONFIG --> FLUENT[Fluent Commerce]
|
|
216
|
-
|
|
217
|
-
style MAPPER fill:#fff4e6
|
|
218
|
-
style CONFIG fill:#e8f5e9
|
|
219
|
-
```
|
|
220
|
-
|
|
221
|
-
**Example Mapping:**
|
|
222
|
-
|
|
223
|
-
```typescript
|
|
224
|
-
const mappingConfig = {
|
|
225
|
-
fields: {
|
|
226
|
-
skuRef: { source: 'sku_id', required: true },
|
|
227
|
-
qty: { source: 'quantity', resolver: 'sdk.parseInt' },
|
|
228
|
-
expectedOn: { source: 'date', resolver: 'sdk.formatDate' },
|
|
229
|
-
},
|
|
230
|
-
};
|
|
231
|
-
```
|
|
232
|
-
|
|
233
|
-
This same configuration works whether you're:
|
|
234
|
-
|
|
235
|
-
- Processing CSV files from S3
|
|
236
|
-
- Transforming XML orders from SFCC
|
|
237
|
-
- Extracting data to Parquet
|
|
238
|
-
- Converting JSON to GraphQL mutations
|
|
239
|
-
|
|
240
|
-
## Design Principles
|
|
241
|
-
|
|
242
|
-
### 1. Stateless & Parallel-Safe
|
|
243
|
-
|
|
244
|
-
All SDK methods are stateless and can be called in parallel:
|
|
245
|
-
|
|
246
|
-
```typescript
|
|
247
|
-
// Safe to run in parallel - multiple GraphQL queries
|
|
248
|
-
await Promise.all([
|
|
249
|
-
client.graphql({
|
|
250
|
-
query: `query GetInventory($id: ID!) { inventoryPosition(id: $id) { id ref qty } }`,
|
|
251
|
-
variables: { id: 'inv-1' },
|
|
252
|
-
}),
|
|
253
|
-
client.graphql({
|
|
254
|
-
query: `query GetInventory($id: ID!) { inventoryPosition(id: $id) { id ref qty } }`,
|
|
255
|
-
variables: { id: 'inv-2' },
|
|
256
|
-
}),
|
|
257
|
-
client.graphql({
|
|
258
|
-
query: `query GetInventory($id: ID!) { inventoryPosition(id: $id) { id ref qty } }`,
|
|
259
|
-
variables: { id: 'inv-3' },
|
|
260
|
-
}),
|
|
261
|
-
]);
|
|
262
|
-
```
|
|
263
|
-
|
|
264
|
-
### 2. Streaming for Large Data
|
|
265
|
-
|
|
266
|
-
The SDK uses streaming to handle large files without memory issues:
|
|
267
|
-
|
|
268
|
-
```mermaid
|
|
269
|
-
graph LR
|
|
270
|
-
FILE[Large CSV File<br/>1GB] --> STREAM[Stream Parser]
|
|
271
|
-
STREAM --> CHUNK1[Chunk 1<br/>1000 rows]
|
|
272
|
-
STREAM --> CHUNK2[Chunk 2<br/>1000 rows]
|
|
273
|
-
STREAM --> CHUNK3[Chunk N<br/>1000 rows]
|
|
274
|
-
|
|
275
|
-
CHUNK1 --> BATCH1[Batch 1]
|
|
276
|
-
CHUNK2 --> BATCH2[Batch 2]
|
|
277
|
-
CHUNK3 --> BATCHN[Batch N]
|
|
278
|
-
|
|
279
|
-
BATCH1 --> API[Fluent API]
|
|
280
|
-
BATCH2 --> API
|
|
281
|
-
BATCHN --> API
|
|
282
|
-
|
|
283
|
-
style FILE fill:#ffebee
|
|
284
|
-
style STREAM fill:#e3f2fd
|
|
285
|
-
style API fill:#e8f5e9
|
|
286
|
-
```
|
|
287
|
-
|
|
288
|
-
### 3. Smart Error Handling
|
|
289
|
-
|
|
290
|
-
The SDK handles errors intelligently:
|
|
291
|
-
|
|
292
|
-
```mermaid
|
|
293
|
-
graph TD
|
|
294
|
-
ERROR{Error Type?}
|
|
295
|
-
ERROR -->|4xx Client Error| FAIL[Fail Fast<br/>No Retry]
|
|
296
|
-
ERROR -->|5xx Server Error| RETRY[Exponential Backoff<br/>Max 3 Retries]
|
|
297
|
-
ERROR -->|Network Error| RETRY
|
|
298
|
-
ERROR -->|Job Expired| RECREATE[Create New Job<br/>Auto-retry]
|
|
299
|
-
|
|
300
|
-
RETRY --> SUCCESS{Successful?}
|
|
301
|
-
SUCCESS -->|Yes| CONTINUE[Continue]
|
|
302
|
-
SUCCESS -->|No| FAIL
|
|
303
|
-
|
|
304
|
-
RECREATE --> CONTINUE
|
|
305
|
-
|
|
306
|
-
style FAIL fill:#ffebee
|
|
307
|
-
style RETRY fill:#fff3e0
|
|
308
|
-
style RECREATE fill:#e8f5e9
|
|
309
|
-
style CONTINUE fill:#e3f2fd
|
|
310
|
-
```
|
|
311
|
-
|
|
312
|
-
## Common Use Cases
|
|
313
|
-
|
|
314
|
-
### 1. Inventory Ingestion
|
|
315
|
-
|
|
316
|
-
Process CSV files from S3 and send to Fluent Commerce:
|
|
317
|
-
|
|
318
|
-
```mermaid
|
|
319
|
-
sequenceDiagram
|
|
320
|
-
participant S3
|
|
321
|
-
participant SDK
|
|
322
|
-
participant Fluent
|
|
323
|
-
|
|
324
|
-
SDK->>S3: List files
|
|
325
|
-
S3-->>SDK: file1.csv, file2.csv
|
|
326
|
-
SDK->>S3: Download file1.csv
|
|
327
|
-
S3-->>SDK: CSV data
|
|
328
|
-
SDK->>SDK: Parse & Map fields
|
|
329
|
-
SDK->>Fluent: Create batch job
|
|
330
|
-
Fluent-->>SDK: Job ID
|
|
331
|
-
SDK->>Fluent: Send batch 1
|
|
332
|
-
SDK->>Fluent: Send batch 2
|
|
333
|
-
SDK->>Fluent: Send batch N
|
|
334
|
-
SDK->>S3: Archive file1.csv
|
|
335
|
-
```
|
|
336
|
-
|
|
337
|
-
### 2. Data Extraction
|
|
338
|
-
|
|
339
|
-
Query Fluent Commerce and save results to S3:
|
|
340
|
-
|
|
341
|
-
```mermaid
|
|
342
|
-
sequenceDiagram
|
|
343
|
-
participant SDK
|
|
344
|
-
participant Fluent
|
|
345
|
-
participant S3
|
|
346
|
-
|
|
347
|
-
SDK->>Fluent: Execute GraphQL query
|
|
348
|
-
Fluent-->>SDK: Page 1 (100 items)
|
|
349
|
-
SDK->>Fluent: Fetch page 2
|
|
350
|
-
Fluent-->>SDK: Page 2 (100 items)
|
|
351
|
-
SDK->>SDK: Transform & Map data
|
|
352
|
-
SDK->>S3: Upload results.json
|
|
353
|
-
S3-->>SDK: Success
|
|
354
|
-
```
|
|
355
|
-
|
|
356
|
-
### 3. Order Transformation
|
|
357
|
-
|
|
358
|
-
Convert SFCC XML orders to Fluent GraphQL mutations:
|
|
359
|
-
|
|
360
|
-
```mermaid
|
|
361
|
-
sequenceDiagram
|
|
362
|
-
participant SFCC
|
|
363
|
-
participant SDK
|
|
364
|
-
participant Fluent
|
|
365
|
-
|
|
366
|
-
SFCC->>SDK: POST /webhook (XML order)
|
|
367
|
-
SDK->>SDK: Parse XML
|
|
368
|
-
SDK->>SDK: Apply mutation mapping
|
|
369
|
-
SDK->>Fluent: Execute createOrder mutation
|
|
370
|
-
Fluent-->>SDK: Order created
|
|
371
|
-
SDK-->>SFCC: 200 OK
|
|
372
|
-
```
|
|
373
|
-
|
|
374
|
-
## Multi-Runtime Support
|
|
375
|
-
|
|
376
|
-
The SDK works seamlessly across different runtimes:
|
|
377
|
-
|
|
378
|
-
```mermaid
|
|
379
|
-
graph TB
|
|
380
|
-
SDK[FC Connect SDK]
|
|
381
|
-
|
|
382
|
-
subgraph "Node.js"
|
|
383
|
-
NODE[OAuth2 Authentication]
|
|
384
|
-
NODE_ENV[Environment Variables]
|
|
385
|
-
end
|
|
386
|
-
|
|
387
|
-
subgraph "Deno"
|
|
388
|
-
DENO[OAuth2 Authentication]
|
|
389
|
-
DENO_ENV[Deno.env]
|
|
390
|
-
end
|
|
391
|
-
|
|
392
|
-
subgraph "Versori Platform"
|
|
393
|
-
VERSORI[Connection-based Auth]
|
|
394
|
-
VERSORI_KV[KV Storage]
|
|
395
|
-
VERSORI_LOG[Platform Logging]
|
|
396
|
-
end
|
|
397
|
-
|
|
398
|
-
SDK --> NODE
|
|
399
|
-
SDK --> DENO
|
|
400
|
-
SDK --> VERSORI
|
|
401
|
-
|
|
402
|
-
NODE --> FLUENT[Fluent Commerce API]
|
|
403
|
-
DENO --> FLUENT
|
|
404
|
-
VERSORI --> FLUENT
|
|
405
|
-
|
|
406
|
-
style SDK fill:#e3f2fd
|
|
407
|
-
style NODE fill:#f3e5f5
|
|
408
|
-
style DENO fill:#fff3e0
|
|
409
|
-
style VERSORI fill:#e8f5e9
|
|
410
|
-
style FLUENT fill:#ffebee
|
|
411
|
-
```
|
|
412
|
-
|
|
413
|
-
## Next Steps
|
|
414
|
-
|
|
415
|
-
Explore detailed architecture diagrams:
|
|
416
|
-
|
|
417
|
-
- [Client Architecture](./architecture-02-client-architecture.md) - Client creation and context detection
|
|
418
|
-
- [Data Flow](./architecture-03-data-flow.md) - Ingestion, extraction, and transformation flows
|
|
419
|
-
- [Service Layer](./architecture-04-service-layer.md) - Service organization and responsibilities
|
|
420
|
-
- [Integration Architecture](./architecture-05-integration-architecture.md) - External system integrations
|
|
421
|
-
- [State Management](./architecture-06-state-management.md) - Distributed state and deduplication
|
|
422
|
-
|
|
423
|
-
Or jump to practical guides:
|
|
424
|
-
|
|
425
|
-
- [Getting Started](../../00-START-HERE/getting-started.md)
|
|
426
|
-
- [Universal Mapping Guide](../../02-CORE-GUIDES/mapping/mapping-readme.md)
|
|
427
|
-
- [Use Cases](../../01-TEMPLATES/readme.md)
|
|
1
|
+
## SDK Philosophy
|
|
2
|
+
|
|
3
|
+
**Core Principle:** The SDK provides **building-block services**. YOU compose them into workflows.
|
|
4
|
+
|
|
5
|
+
### Primary Approach: Building Blocks (Recommended)
|
|
6
|
+
|
|
7
|
+
```typescript
|
|
8
|
+
// ✅ RECOMMENDED - Compose services yourself (maximum flexibility)
|
|
9
|
+
import { createClient, S3DataSource, CSVParserService } from '@fluentcommerce/fc-connect-sdk';
|
|
10
|
+
|
|
11
|
+
const client = await createClient({ config }, { logger });
|
|
12
|
+
const s3 = new S3DataSource(s3Config, logger);
|
|
13
|
+
const parser = new CSVParserService(logger);
|
|
14
|
+
|
|
15
|
+
// Build your workflow
|
|
16
|
+
const file = await s3.downloadFile('inventory.csv');
|
|
17
|
+
const records = await parser.parse(file.toString());
|
|
18
|
+
const mapped = records.map(record => ({ /* your mapping */ }));
|
|
19
|
+
await client.sendBatch(jobId, { items: mapped });
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
### Optional Convenience: Orchestrators (When Appropriate)
|
|
23
|
+
|
|
24
|
+
```typescript
|
|
25
|
+
// ✅ ALSO VALID - Use orchestrators for common patterns
|
|
26
|
+
import { ExtractionOrchestrator } from '@fluentcommerce/fc-connect-sdk';
|
|
27
|
+
|
|
28
|
+
const orchestrator = new ExtractionOrchestrator(client, logger);
|
|
29
|
+
await orchestrator.extractToCSV({
|
|
30
|
+
query: '...',
|
|
31
|
+
outputPath: 'inventory.csv'
|
|
32
|
+
});
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### When to Use What
|
|
36
|
+
|
|
37
|
+
| Approach | Use When | Pros | Cons |
|
|
38
|
+
|----------|----------|------|------|
|
|
39
|
+
| **Building Blocks** | Custom workflows, unique requirements | Maximum flexibility, full control | More code to write |
|
|
40
|
+
| **Orchestrators** | Standard patterns, rapid prototyping | Less code, batteries included | Less flexibility |
|
|
41
|
+
|
|
42
|
+
**Recommendation:** Start with building blocks. Use orchestrators when you need a common pattern implemented quickly.
|
|
43
|
+
|
|
44
|
+
**Key Features:**
|
|
45
|
+
|
|
46
|
+
- **ExtractionOrchestrator**: Optional high-level service for GraphQL extraction (auto-pagination, path-based extraction, validation)
|
|
47
|
+
- **Versori client parity**: Strips internal fields, auto-paginates, aligned endpoints, retry/backoff, and `validateWebhook()`
|
|
48
|
+
- **Logging architecture**: Function-based utilities (`createConsoleLogger()`, `toStructuredLogger()`) for standalone environments
|
|
49
|
+
- **Core services**: JobTracker, PartialBatchRecovery, PreflightValidator, WebhookValidationService
|
|
50
|
+
- **SFTP enhancements**: Connection pooling, wait queues, improved retry logic, Deno compatibility
|
|
51
|
+
|
|
52
|
+
**See:** [SDK Philosophy](../../00-START-HERE/SDK-PHILOSOPHY.md) for design principles.
|
|
53
|
+
|
|
54
|
+
# FC Connect SDK - Architecture Overview
|
|
55
|
+
|
|
56
|
+
This document provides a high-level overview of the FC Connect SDK architecture, designed to help you understand how the SDK works and how to use it effectively.
|
|
57
|
+
|
|
58
|
+
## What is the FC Connect SDK?
|
|
59
|
+
|
|
60
|
+
The FC Connect SDK is a TypeScript library that helps you build integrations with Fluent Commerce. It handles the complexity of:
|
|
61
|
+
|
|
62
|
+
- Authentication and API communication
|
|
63
|
+
- Data transformation and mapping
|
|
64
|
+
- File processing (CSV, XML, JSON, Parquet)
|
|
65
|
+
- Batch operations and state management
|
|
66
|
+
- Multi-runtime support (Node.js, Deno, Versori)
|
|
67
|
+
- High-level extraction orchestration with auto-pagination
|
|
68
|
+
- Webhook signature validation
|
|
69
|
+
- Job tracking and partial batch recovery
|
|
70
|
+
- Pre-flight validation to save API quota
|
|
71
|
+
- SFTP connection pooling for better performance
|
|
72
|
+
|
|
73
|
+
## High-Level Architecture
|
|
74
|
+
|
|
75
|
+
```mermaid
|
|
76
|
+
graph TB
|
|
77
|
+
subgraph "Your Application"
|
|
78
|
+
APP[Your Integration Code]
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
subgraph "FC Connect SDK"
|
|
82
|
+
FACTORY[Client Factory<br/>Auto-detects runtime]
|
|
83
|
+
|
|
84
|
+
subgraph "Client Layer"
|
|
85
|
+
FC[FluentClient<br/>OAuth2]
|
|
86
|
+
FVC[FluentVersoriClient<br/>Platform Auth]
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
subgraph "Service Layer"
|
|
90
|
+
BATCH[Batch API Client]
|
|
91
|
+
MAPPER[Universal Mapper]
|
|
92
|
+
EXTRACT[Extraction Orchestrator]
|
|
93
|
+
STATE[State Service]
|
|
94
|
+
WEBHOOK[Webhook Validation]
|
|
95
|
+
JOBTRACK[Job Tracker]
|
|
96
|
+
PREFLIGHT[Preflight Validator]
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
subgraph "Data Layer"
|
|
100
|
+
DS[Data Sources<br/>S3, SFTP]
|
|
101
|
+
PARSERS[Parsers<br/>CSV, XML, JSON, Parquet]
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
subgraph "Orchestration"
|
|
105
|
+
INGEST[Ingestion Service<br/>Optional Helper]
|
|
106
|
+
end
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
subgraph "External Systems"
|
|
110
|
+
FLUENT[Fluent Commerce API]
|
|
111
|
+
S3[Amazon S3]
|
|
112
|
+
SFTP[SFTP Servers]
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
APP --> FACTORY
|
|
116
|
+
FACTORY --> FC
|
|
117
|
+
FACTORY --> FVC
|
|
118
|
+
FC --> BATCH
|
|
119
|
+
FVC --> BATCH
|
|
120
|
+
FC --> MAPPER
|
|
121
|
+
FVC --> MAPPER
|
|
122
|
+
FC --> EXTRACT
|
|
123
|
+
FVC --> EXTRACT
|
|
124
|
+
BATCH --> STATE
|
|
125
|
+
MAPPER --> PARSERS
|
|
126
|
+
EXTRACT --> DS
|
|
127
|
+
INGEST --> DS
|
|
128
|
+
INGEST --> PARSERS
|
|
129
|
+
INGEST --> MAPPER
|
|
130
|
+
INGEST --> BATCH
|
|
131
|
+
DS --> S3
|
|
132
|
+
DS --> SFTP
|
|
133
|
+
BATCH --> FLUENT
|
|
134
|
+
FC --> FLUENT
|
|
135
|
+
FVC --> FLUENT
|
|
136
|
+
|
|
137
|
+
style APP fill:#e1f5ff
|
|
138
|
+
style FACTORY fill:#fff4e6
|
|
139
|
+
style FC fill:#f3e5f5
|
|
140
|
+
style FVC fill:#f3e5f5
|
|
141
|
+
style FLUENT fill:#ffebee
|
|
142
|
+
style S3 fill:#ffebee
|
|
143
|
+
style SFTP fill:#ffebee
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
## Core Concepts
|
|
147
|
+
|
|
148
|
+
### 1. Universal Client Factory
|
|
149
|
+
|
|
150
|
+
The SDK automatically detects your runtime environment and creates the appropriate client:
|
|
151
|
+
|
|
152
|
+
```typescript
|
|
153
|
+
import { createClient } from '@fluentcommerce/fc-connect-sdk';
|
|
154
|
+
|
|
155
|
+
// Works in Node.js, Deno, or Versori - automatically detects context
|
|
156
|
+
const client = await createClient(ctx); // Pass context directly
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
**Supported Environments:**
|
|
160
|
+
|
|
161
|
+
- **Node.js/Deno**: Uses OAuth2 authentication
|
|
162
|
+
- **Versori Platform**: Uses platform-managed connections
|
|
163
|
+
|
|
164
|
+
### 2. Layered Architecture
|
|
165
|
+
|
|
166
|
+
The SDK is organized into clear layers:
|
|
167
|
+
|
|
168
|
+
```mermaid
|
|
169
|
+
graph LR
|
|
170
|
+
subgraph "Layer 1: Client"
|
|
171
|
+
CLIENT[Client Factory & Implementations]
|
|
172
|
+
end
|
|
173
|
+
|
|
174
|
+
subgraph "Layer 2: Services"
|
|
175
|
+
SERVICES[Batch, Mapping, Extraction,<br/>Transformation, State]
|
|
176
|
+
end
|
|
177
|
+
|
|
178
|
+
subgraph "Layer 3: Data"
|
|
179
|
+
DATA[Data Sources & Parsers]
|
|
180
|
+
end
|
|
181
|
+
|
|
182
|
+
subgraph "Layer 4: Optional Orchestration"
|
|
183
|
+
ORCHESTRATION[Optional High-level Services<br/>IngestionService, ExtractionOrchestrator]
|
|
184
|
+
end
|
|
185
|
+
|
|
186
|
+
CLIENT --> SERVICES
|
|
187
|
+
SERVICES --> DATA
|
|
188
|
+
ORCHESTRATION --> SERVICES
|
|
189
|
+
ORCHESTRATION --> DATA
|
|
190
|
+
|
|
191
|
+
style CLIENT fill:#e3f2fd
|
|
192
|
+
style SERVICES fill:#f3e5f5
|
|
193
|
+
style DATA fill:#fff3e0
|
|
194
|
+
style ORCHESTRATION fill:#e8f5e9
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
**Why Layers Matter:**
|
|
198
|
+
|
|
199
|
+
- **Flexibility**: Use low-level services for custom logic or optional high-level services (like IngestionService) for common patterns
|
|
200
|
+
- **Testability**: Each layer can be tested independently
|
|
201
|
+
- **Maintainability**: Clear separation of concerns
|
|
202
|
+
|
|
203
|
+
### 3. Universal Mapping Pattern
|
|
204
|
+
|
|
205
|
+
One mapping configuration works for ALL data transformations:
|
|
206
|
+
|
|
207
|
+
```mermaid
|
|
208
|
+
graph LR
|
|
209
|
+
CSV[CSV Ingestion] --> MAPPER[Universal Mapper]
|
|
210
|
+
XML[XML Transformation] --> MAPPER
|
|
211
|
+
JSON[JSON Extraction] --> MAPPER
|
|
212
|
+
PARQUET[Parquet Processing] --> MAPPER
|
|
213
|
+
|
|
214
|
+
MAPPER --> CONFIG{Mapping Config}
|
|
215
|
+
CONFIG --> FLUENT[Fluent Commerce]
|
|
216
|
+
|
|
217
|
+
style MAPPER fill:#fff4e6
|
|
218
|
+
style CONFIG fill:#e8f5e9
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
**Example Mapping:**
|
|
222
|
+
|
|
223
|
+
```typescript
|
|
224
|
+
const mappingConfig = {
|
|
225
|
+
fields: {
|
|
226
|
+
skuRef: { source: 'sku_id', required: true },
|
|
227
|
+
qty: { source: 'quantity', resolver: 'sdk.parseInt' },
|
|
228
|
+
expectedOn: { source: 'date', resolver: 'sdk.formatDate' },
|
|
229
|
+
},
|
|
230
|
+
};
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
This same configuration works whether you're:
|
|
234
|
+
|
|
235
|
+
- Processing CSV files from S3
|
|
236
|
+
- Transforming XML orders from SFCC
|
|
237
|
+
- Extracting data to Parquet
|
|
238
|
+
- Converting JSON to GraphQL mutations
|
|
239
|
+
|
|
240
|
+
## Design Principles
|
|
241
|
+
|
|
242
|
+
### 1. Stateless & Parallel-Safe
|
|
243
|
+
|
|
244
|
+
All SDK methods are stateless and can be called in parallel:
|
|
245
|
+
|
|
246
|
+
```typescript
|
|
247
|
+
// Safe to run in parallel - multiple GraphQL queries
|
|
248
|
+
await Promise.all([
|
|
249
|
+
client.graphql({
|
|
250
|
+
query: `query GetInventory($id: ID!) { inventoryPosition(id: $id) { id ref qty } }`,
|
|
251
|
+
variables: { id: 'inv-1' },
|
|
252
|
+
}),
|
|
253
|
+
client.graphql({
|
|
254
|
+
query: `query GetInventory($id: ID!) { inventoryPosition(id: $id) { id ref qty } }`,
|
|
255
|
+
variables: { id: 'inv-2' },
|
|
256
|
+
}),
|
|
257
|
+
client.graphql({
|
|
258
|
+
query: `query GetInventory($id: ID!) { inventoryPosition(id: $id) { id ref qty } }`,
|
|
259
|
+
variables: { id: 'inv-3' },
|
|
260
|
+
}),
|
|
261
|
+
]);
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
### 2. Streaming for Large Data
|
|
265
|
+
|
|
266
|
+
The SDK uses streaming to handle large files without memory issues:
|
|
267
|
+
|
|
268
|
+
```mermaid
|
|
269
|
+
graph LR
|
|
270
|
+
FILE[Large CSV File<br/>1GB] --> STREAM[Stream Parser]
|
|
271
|
+
STREAM --> CHUNK1[Chunk 1<br/>1000 rows]
|
|
272
|
+
STREAM --> CHUNK2[Chunk 2<br/>1000 rows]
|
|
273
|
+
STREAM --> CHUNK3[Chunk N<br/>1000 rows]
|
|
274
|
+
|
|
275
|
+
CHUNK1 --> BATCH1[Batch 1]
|
|
276
|
+
CHUNK2 --> BATCH2[Batch 2]
|
|
277
|
+
CHUNK3 --> BATCHN[Batch N]
|
|
278
|
+
|
|
279
|
+
BATCH1 --> API[Fluent API]
|
|
280
|
+
BATCH2 --> API
|
|
281
|
+
BATCHN --> API
|
|
282
|
+
|
|
283
|
+
style FILE fill:#ffebee
|
|
284
|
+
style STREAM fill:#e3f2fd
|
|
285
|
+
style API fill:#e8f5e9
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
### 3. Smart Error Handling
|
|
289
|
+
|
|
290
|
+
The SDK handles errors intelligently:
|
|
291
|
+
|
|
292
|
+
```mermaid
|
|
293
|
+
graph TD
|
|
294
|
+
ERROR{Error Type?}
|
|
295
|
+
ERROR -->|4xx Client Error| FAIL[Fail Fast<br/>No Retry]
|
|
296
|
+
ERROR -->|5xx Server Error| RETRY[Exponential Backoff<br/>Max 3 Retries]
|
|
297
|
+
ERROR -->|Network Error| RETRY
|
|
298
|
+
ERROR -->|Job Expired| RECREATE[Create New Job<br/>Auto-retry]
|
|
299
|
+
|
|
300
|
+
RETRY --> SUCCESS{Successful?}
|
|
301
|
+
SUCCESS -->|Yes| CONTINUE[Continue]
|
|
302
|
+
SUCCESS -->|No| FAIL
|
|
303
|
+
|
|
304
|
+
RECREATE --> CONTINUE
|
|
305
|
+
|
|
306
|
+
style FAIL fill:#ffebee
|
|
307
|
+
style RETRY fill:#fff3e0
|
|
308
|
+
style RECREATE fill:#e8f5e9
|
|
309
|
+
style CONTINUE fill:#e3f2fd
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
## Common Use Cases
|
|
313
|
+
|
|
314
|
+
### 1. Inventory Ingestion
|
|
315
|
+
|
|
316
|
+
Process CSV files from S3 and send to Fluent Commerce:
|
|
317
|
+
|
|
318
|
+
```mermaid
|
|
319
|
+
sequenceDiagram
|
|
320
|
+
participant S3
|
|
321
|
+
participant SDK
|
|
322
|
+
participant Fluent
|
|
323
|
+
|
|
324
|
+
SDK->>S3: List files
|
|
325
|
+
S3-->>SDK: file1.csv, file2.csv
|
|
326
|
+
SDK->>S3: Download file1.csv
|
|
327
|
+
S3-->>SDK: CSV data
|
|
328
|
+
SDK->>SDK: Parse & Map fields
|
|
329
|
+
SDK->>Fluent: Create batch job
|
|
330
|
+
Fluent-->>SDK: Job ID
|
|
331
|
+
SDK->>Fluent: Send batch 1
|
|
332
|
+
SDK->>Fluent: Send batch 2
|
|
333
|
+
SDK->>Fluent: Send batch N
|
|
334
|
+
SDK->>S3: Archive file1.csv
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
### 2. Data Extraction
|
|
338
|
+
|
|
339
|
+
Query Fluent Commerce and save results to S3:
|
|
340
|
+
|
|
341
|
+
```mermaid
|
|
342
|
+
sequenceDiagram
|
|
343
|
+
participant SDK
|
|
344
|
+
participant Fluent
|
|
345
|
+
participant S3
|
|
346
|
+
|
|
347
|
+
SDK->>Fluent: Execute GraphQL query
|
|
348
|
+
Fluent-->>SDK: Page 1 (100 items)
|
|
349
|
+
SDK->>Fluent: Fetch page 2
|
|
350
|
+
Fluent-->>SDK: Page 2 (100 items)
|
|
351
|
+
SDK->>SDK: Transform & Map data
|
|
352
|
+
SDK->>S3: Upload results.json
|
|
353
|
+
S3-->>SDK: Success
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
### 3. Order Transformation
|
|
357
|
+
|
|
358
|
+
Convert SFCC XML orders to Fluent GraphQL mutations:
|
|
359
|
+
|
|
360
|
+
```mermaid
|
|
361
|
+
sequenceDiagram
|
|
362
|
+
participant SFCC
|
|
363
|
+
participant SDK
|
|
364
|
+
participant Fluent
|
|
365
|
+
|
|
366
|
+
SFCC->>SDK: POST /webhook (XML order)
|
|
367
|
+
SDK->>SDK: Parse XML
|
|
368
|
+
SDK->>SDK: Apply mutation mapping
|
|
369
|
+
SDK->>Fluent: Execute createOrder mutation
|
|
370
|
+
Fluent-->>SDK: Order created
|
|
371
|
+
SDK-->>SFCC: 200 OK
|
|
372
|
+
```
|
|
373
|
+
|
|
374
|
+
## Multi-Runtime Support
|
|
375
|
+
|
|
376
|
+
The SDK works seamlessly across different runtimes:
|
|
377
|
+
|
|
378
|
+
```mermaid
|
|
379
|
+
graph TB
|
|
380
|
+
SDK[FC Connect SDK]
|
|
381
|
+
|
|
382
|
+
subgraph "Node.js"
|
|
383
|
+
NODE[OAuth2 Authentication]
|
|
384
|
+
NODE_ENV[Environment Variables]
|
|
385
|
+
end
|
|
386
|
+
|
|
387
|
+
subgraph "Deno"
|
|
388
|
+
DENO[OAuth2 Authentication]
|
|
389
|
+
DENO_ENV[Deno.env]
|
|
390
|
+
end
|
|
391
|
+
|
|
392
|
+
subgraph "Versori Platform"
|
|
393
|
+
VERSORI[Connection-based Auth]
|
|
394
|
+
VERSORI_KV[KV Storage]
|
|
395
|
+
VERSORI_LOG[Platform Logging]
|
|
396
|
+
end
|
|
397
|
+
|
|
398
|
+
SDK --> NODE
|
|
399
|
+
SDK --> DENO
|
|
400
|
+
SDK --> VERSORI
|
|
401
|
+
|
|
402
|
+
NODE --> FLUENT[Fluent Commerce API]
|
|
403
|
+
DENO --> FLUENT
|
|
404
|
+
VERSORI --> FLUENT
|
|
405
|
+
|
|
406
|
+
style SDK fill:#e3f2fd
|
|
407
|
+
style NODE fill:#f3e5f5
|
|
408
|
+
style DENO fill:#fff3e0
|
|
409
|
+
style VERSORI fill:#e8f5e9
|
|
410
|
+
style FLUENT fill:#ffebee
|
|
411
|
+
```
|
|
412
|
+
|
|
413
|
+
## Next Steps
|
|
414
|
+
|
|
415
|
+
Explore detailed architecture diagrams:
|
|
416
|
+
|
|
417
|
+
- [Client Architecture](./architecture-02-client-architecture.md) - Client creation and context detection
|
|
418
|
+
- [Data Flow](./architecture-03-data-flow.md) - Ingestion, extraction, and transformation flows
|
|
419
|
+
- [Service Layer](./architecture-04-service-layer.md) - Service organization and responsibilities
|
|
420
|
+
- [Integration Architecture](./architecture-05-integration-architecture.md) - External system integrations
|
|
421
|
+
- [State Management](./architecture-06-state-management.md) - Distributed state and deduplication
|
|
422
|
+
|
|
423
|
+
Or jump to practical guides:
|
|
424
|
+
|
|
425
|
+
- [Getting Started](../../00-START-HERE/getting-started.md)
|
|
426
|
+
- [Universal Mapping Guide](../../02-CORE-GUIDES/mapping/mapping-readme.md)
|
|
427
|
+
- [Use Cases](../../01-TEMPLATES/readme.md)
|