@fluentcommerce/fc-connect-sdk 0.1.53 → 0.1.55
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +30 -2
- package/README.md +39 -0
- package/dist/cjs/auth/index.d.ts +3 -0
- package/dist/cjs/auth/index.js +13 -0
- package/dist/cjs/auth/profile-loader.d.ts +18 -0
- package/dist/cjs/auth/profile-loader.js +208 -0
- package/dist/cjs/client-factory.d.ts +4 -0
- package/dist/cjs/client-factory.js +10 -0
- package/dist/cjs/clients/fluent-client.js +13 -6
- package/dist/cjs/index.d.ts +3 -1
- package/dist/cjs/index.js +8 -2
- package/dist/cjs/utils/pagination-helpers.js +38 -2
- package/dist/cjs/versori/fluent-versori-client.js +11 -5
- package/dist/esm/auth/index.d.ts +3 -0
- package/dist/esm/auth/index.js +2 -0
- package/dist/esm/auth/profile-loader.d.ts +18 -0
- package/dist/esm/auth/profile-loader.js +169 -0
- package/dist/esm/client-factory.d.ts +4 -0
- package/dist/esm/client-factory.js +9 -0
- package/dist/esm/clients/fluent-client.js +13 -6
- package/dist/esm/index.d.ts +3 -1
- package/dist/esm/index.js +2 -1
- package/dist/esm/utils/pagination-helpers.js +38 -2
- package/dist/esm/versori/fluent-versori-client.js +11 -5
- package/dist/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/tsconfig.types.tsbuildinfo +1 -1
- package/dist/types/auth/index.d.ts +3 -0
- package/dist/types/auth/profile-loader.d.ts +18 -0
- package/dist/types/client-factory.d.ts +4 -0
- package/dist/types/index.d.ts +3 -1
- package/docs/00-START-HERE/EXPORT-VALIDATION.md +158 -158
- package/docs/00-START-HERE/cli-analyze-source-structure-guide.md +655 -655
- package/docs/00-START-HERE/cli-documentation-index.md +202 -202
- package/docs/00-START-HERE/cli-quick-reference.md +252 -252
- package/docs/00-START-HERE/decision-tree.md +552 -552
- package/docs/00-START-HERE/getting-started.md +1070 -1070
- package/docs/00-START-HERE/mapper-quick-decision-guide.md +235 -235
- package/docs/00-START-HERE/readme.md +237 -237
- package/docs/00-START-HERE/retailerid-configuration.md +404 -404
- package/docs/00-START-HERE/sdk-philosophy.md +794 -794
- package/docs/00-START-HERE/troubleshooting-quick-reference.md +1086 -1086
- package/docs/01-TEMPLATES/faq.md +686 -686
- package/docs/01-TEMPLATES/patterns/pattern-templates-guide.md +68 -68
- package/docs/01-TEMPLATES/patterns/patterns-csv-schema-validation-and-rejection-report.md +233 -233
- package/docs/01-TEMPLATES/patterns/patterns-custom-resolvers.md +407 -407
- package/docs/01-TEMPLATES/patterns/patterns-error-handling-retry.md +511 -511
- package/docs/01-TEMPLATES/patterns/patterns-field-mapping-universal.md +701 -701
- package/docs/01-TEMPLATES/patterns/patterns-large-file-splitting.md +1430 -1430
- package/docs/01-TEMPLATES/patterns/patterns-master-data-etl.md +2399 -2399
- package/docs/01-TEMPLATES/patterns/patterns-pagination-streaming.md +447 -447
- package/docs/01-TEMPLATES/patterns/patterns-state-duplicate-prevention.md +385 -385
- package/docs/01-TEMPLATES/readme.md +957 -957
- package/docs/01-TEMPLATES/standalone/standalone-asn-inbound-processing.md +1209 -1209
- package/docs/01-TEMPLATES/standalone/standalone-graphql-query-export.md +1140 -1140
- package/docs/01-TEMPLATES/standalone/standalone-graphql-to-parquet-partitioned-s3.md +432 -432
- package/docs/01-TEMPLATES/standalone/standalone-multi-channel-inventory-sync.md +1185 -1185
- package/docs/01-TEMPLATES/standalone/standalone-multi-source-aggregation.md +1462 -1462
- package/docs/01-TEMPLATES/standalone/standalone-s3-csv-batch-api.md +1390 -1390
- package/docs/01-TEMPLATES/standalone/standalone-s3-csv-inventory-to-batch.md +330 -330
- package/docs/01-TEMPLATES/standalone/standalone-scripts-guide.md +87 -87
- package/docs/01-TEMPLATES/standalone/standalone-sftp-xml-graphql.md +1444 -1444
- package/docs/01-TEMPLATES/standalone/standalone-webhook-payload-processing.md +688 -688
- package/docs/01-TEMPLATES/versori/business-examples/business-examples-dropship-order-routing.md +193 -193
- package/docs/01-TEMPLATES/versori/business-examples/business-examples-graphql-parquet-extraction.md +518 -518
- package/docs/01-TEMPLATES/versori/business-examples/business-examples-inter-location-transfers.md +2162 -2162
- package/docs/01-TEMPLATES/versori/business-examples/business-examples-pre-order-allocation.md +2226 -2226
- package/docs/01-TEMPLATES/versori/business-examples/business-scenarios-guide.md +87 -87
- package/docs/01-TEMPLATES/versori/patterns/versori-patterns-connection-validation-pattern.md +656 -656
- package/docs/01-TEMPLATES/versori/patterns/versori-patterns-dual-workflow-connector.md +835 -835
- package/docs/01-TEMPLATES/versori/patterns/versori-patterns-guide.md +108 -108
- package/docs/01-TEMPLATES/versori/patterns/versori-patterns-kv-state-management.md +1533 -1533
- package/docs/01-TEMPLATES/versori/patterns/versori-patterns-xml-response-patterns.md +1160 -1160
- package/docs/01-TEMPLATES/versori/versori-platform-guide.md +201 -201
- package/docs/01-TEMPLATES/versori/webhooks/template-webhook-asn-purchase-order.md +1906 -1906
- package/docs/01-TEMPLATES/versori/webhooks/template-webhook-dropship-routing.md +1074 -1074
- package/docs/01-TEMPLATES/versori/webhooks/template-webhook-flash-sale-reserve.md +1395 -1395
- package/docs/01-TEMPLATES/versori/webhooks/template-webhook-generic-xml-order.md +888 -888
- package/docs/01-TEMPLATES/versori/webhooks/template-webhook-payment-gateway-integration.md +2478 -2478
- package/docs/01-TEMPLATES/versori/webhooks/template-webhook-rma-returns-comprehensive.md +2240 -2240
- package/docs/01-TEMPLATES/versori/webhooks/template-webhook-xml-order-ingestion.md +2029 -2029
- package/docs/01-TEMPLATES/versori/webhooks/webhook-templates-guide.md +140 -140
- package/docs/01-TEMPLATES/versori/workflows/_examples/sample-data/inventory-mapping.json +20 -20
- package/docs/01-TEMPLATES/versori/workflows/_examples/sample-data/products_2025-01-22.csv +11 -11
- package/docs/01-TEMPLATES/versori/workflows/_examples/sample-data/sample-data-guide.md +34 -34
- package/docs/01-TEMPLATES/versori/workflows/_examples/workflow-examples-guide.md +36 -36
- package/docs/01-TEMPLATES/versori/workflows/extraction/extraction-modes-guide.md +1038 -1038
- package/docs/01-TEMPLATES/versori/workflows/extraction/extraction-workflows-guide.md +138 -138
- package/docs/01-TEMPLATES/versori/workflows/extraction/graphql-queries/graphql-extraction-guide.md +63 -63
- package/docs/01-TEMPLATES/versori/workflows/extraction/graphql-queries/template-extraction-fulfillments-to-sftp-csv.md +2062 -2062
- package/docs/01-TEMPLATES/versori/workflows/extraction/graphql-queries/template-extraction-fulfillments-to-sftp-xml.md +2294 -2294
- package/docs/01-TEMPLATES/versori/workflows/extraction/graphql-queries/template-extraction-inventory-positions-to-s3-csv.md +2461 -2461
- package/docs/01-TEMPLATES/versori/workflows/extraction/graphql-queries/template-extraction-inventory-positions-to-sftp-xml.md +2529 -2529
- package/docs/01-TEMPLATES/versori/workflows/extraction/graphql-queries/template-extraction-inventory-quantities-to-s3-csv.md +2464 -2464
- package/docs/01-TEMPLATES/versori/workflows/extraction/graphql-queries/template-extraction-inventory-quantities-to-s3-json.md +1959 -1959
- package/docs/01-TEMPLATES/versori/workflows/extraction/graphql-queries/template-extraction-orders-to-s3-csv.md +1953 -1953
- package/docs/01-TEMPLATES/versori/workflows/extraction/graphql-queries/template-extraction-orders-to-sftp-xml.md +2541 -2541
- package/docs/01-TEMPLATES/versori/workflows/extraction/graphql-queries/template-extraction-products-to-s3-json.md +2384 -2384
- package/docs/01-TEMPLATES/versori/workflows/extraction/graphql-queries/template-extraction-products-to-sftp-xml.md +2445 -2445
- package/docs/01-TEMPLATES/versori/workflows/extraction/graphql-queries/template-extraction-virtual-positions-to-s3-csv.md +2355 -2355
- package/docs/01-TEMPLATES/versori/workflows/extraction/graphql-queries/template-extraction-virtual-positions-to-s3-json.md +2042 -2042
- package/docs/01-TEMPLATES/versori/workflows/extraction/graphql-queries/template-extraction-virtual-positions-to-sftp-xml.md +2726 -2726
- package/docs/01-TEMPLATES/versori/workflows/ingestion/batch-api/batch-api-guide.md +206 -206
- package/docs/01-TEMPLATES/versori/workflows/ingestion/batch-api/template-ingestion-cycle-count-reconciliation.md +2030 -2030
- package/docs/01-TEMPLATES/versori/workflows/ingestion/batch-api/template-ingestion-multi-channel-inventory-sync.md +1882 -1882
- package/docs/01-TEMPLATES/versori/workflows/ingestion/batch-api/template-ingestion-s3-csv-inventory-batch.md +2827 -2827
- package/docs/01-TEMPLATES/versori/workflows/ingestion/batch-api/template-ingestion-s3-json-inventory-batch.md +1952 -1952
- package/docs/01-TEMPLATES/versori/workflows/ingestion/batch-api/template-ingestion-s3-xml-inventory-batch.md +3289 -3289
- package/docs/01-TEMPLATES/versori/workflows/ingestion/batch-api/template-ingestion-sftp-csv-inventory-batch.md +3064 -3064
- package/docs/01-TEMPLATES/versori/workflows/ingestion/batch-api/template-ingestion-sftp-json-inventory-batch.md +3238 -3238
- package/docs/01-TEMPLATES/versori/workflows/ingestion/batch-api/template-ingestion-sftp-xml-inventory-batch.md +2977 -2977
- package/docs/01-TEMPLATES/versori/workflows/ingestion/event-api/event-api-guide.md +321 -321
- package/docs/01-TEMPLATES/versori/workflows/ingestion/event-api/template-ingestion-payload-json-order-cancel-event.md +959 -959
- package/docs/01-TEMPLATES/versori/workflows/ingestion/event-api/template-ingestion-payload-xml-order-cancel-event.md +1170 -1170
- package/docs/01-TEMPLATES/versori/workflows/ingestion/event-api/template-ingestion-s3-csv-product-event.md +2312 -2312
- package/docs/01-TEMPLATES/versori/workflows/ingestion/event-api/template-ingestion-s3-json-product-event.md +2999 -2999
- package/docs/01-TEMPLATES/versori/workflows/ingestion/event-api/template-ingestion-s3-parquet-product-event.md +2836 -2836
- package/docs/01-TEMPLATES/versori/workflows/ingestion/event-api/template-ingestion-s3-xml-product-event.md +2395 -2395
- package/docs/01-TEMPLATES/versori/workflows/ingestion/event-api/template-ingestion-sftp-csv-product-event.md +2295 -2295
- package/docs/01-TEMPLATES/versori/workflows/ingestion/event-api/template-ingestion-sftp-json-product-event.md +2602 -2602
- package/docs/01-TEMPLATES/versori/workflows/ingestion/event-api/template-ingestion-sftp-parquet-product-event.md +2589 -2589
- package/docs/01-TEMPLATES/versori/workflows/ingestion/event-api/template-ingestion-sftp-xml-product-event.md +3578 -3578
- package/docs/01-TEMPLATES/versori/workflows/ingestion/graphql-mutations/graphql-mutations-guide.md +93 -93
- package/docs/01-TEMPLATES/versori/workflows/ingestion/graphql-mutations/template-ingestion-payload-json-order-update-graphql.md +1260 -1260
- package/docs/01-TEMPLATES/versori/workflows/ingestion/graphql-mutations/template-ingestion-payload-xml-order-update-graphql.md +1472 -1472
- package/docs/01-TEMPLATES/versori/workflows/ingestion/graphql-mutations/template-ingestion-s3-csv-control-graphql.md +2417 -2417
- package/docs/01-TEMPLATES/versori/workflows/ingestion/graphql-mutations/template-ingestion-s3-csv-location-graphql.md +2811 -2811
- package/docs/01-TEMPLATES/versori/workflows/ingestion/graphql-mutations/template-ingestion-s3-csv-price-graphql.md +2619 -2619
- package/docs/01-TEMPLATES/versori/workflows/ingestion/graphql-mutations/template-ingestion-s3-json-location-graphql.md +2807 -2807
- package/docs/01-TEMPLATES/versori/workflows/ingestion/graphql-mutations/template-ingestion-s3-xml-location-graphql.md +2373 -2373
- package/docs/01-TEMPLATES/versori/workflows/ingestion/graphql-mutations/template-ingestion-sftp-csv-control-graphql.md +2740 -2740
- package/docs/01-TEMPLATES/versori/workflows/ingestion/graphql-mutations/template-ingestion-sftp-csv-location-graphql.md +2760 -2760
- package/docs/01-TEMPLATES/versori/workflows/ingestion/graphql-mutations/template-ingestion-sftp-json-location-graphql.md +1710 -1710
- package/docs/01-TEMPLATES/versori/workflows/ingestion/ingestion-workflows-guide.md +136 -136
- package/docs/01-TEMPLATES/versori/workflows/rubix-webhooks/rubix-webhooks-guide.md +520 -520
- package/docs/01-TEMPLATES/versori/workflows/rubix-webhooks/template-webhook-rubix-fulfilment-to-sftp-xml-inline.md +1418 -1418
- package/docs/01-TEMPLATES/versori/workflows/rubix-webhooks/template-webhook-rubix-fulfilment-to-sftp-xml-universal-mapper.md +1785 -1785
- package/docs/01-TEMPLATES/versori/workflows/rubix-webhooks/template-webhook-rubix-order-attribute-update.md +824 -824
- package/docs/01-TEMPLATES/versori/workflows/workflows-overview-guide.md +646 -646
- package/docs/02-CORE-GUIDES/advanced-services/advanced-services-batch-archival.md +724 -724
- package/docs/02-CORE-GUIDES/advanced-services/advanced-services-job-tracker.md +627 -627
- package/docs/02-CORE-GUIDES/advanced-services/advanced-services-partial-batch-recovery.md +561 -561
- package/docs/02-CORE-GUIDES/advanced-services/advanced-services-quick-reference.md +367 -367
- package/docs/02-CORE-GUIDES/advanced-services/advanced-services-readme.md +407 -407
- package/docs/02-CORE-GUIDES/advanced-services/readme.md +49 -49
- package/docs/02-CORE-GUIDES/api-reference/api-reference-quick-reference.md +548 -548
- package/docs/02-CORE-GUIDES/api-reference/event-api-input-output-reference.md +702 -1171
- package/docs/02-CORE-GUIDES/api-reference/examples/client-initialization.ts +286 -286
- package/docs/02-CORE-GUIDES/api-reference/graphql-error-classification.md +337 -337
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-01-client-api.md +399 -482
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-03-authentication.md +199 -199
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-04-graphql-mapping.md +925 -925
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-05-services.md +1198 -1198
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-06-data-sources.md +1083 -1083
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-07-parsers.md +1097 -1097
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-08-pagination.md +513 -513
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-08-types.md +545 -597
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-09-error-handling.md +527 -527
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-09-webhook-validation.md +514 -514
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-10-extraction.md +557 -557
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-10-utilities.md +412 -412
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-11-cli-tools.md +423 -423
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-11-error-handling.md +716 -716
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-12-analyze-source-structure.md +518 -518
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-12-partial-responses.md +212 -212
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-12-testing.md +300 -300
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-13-resolver-builder.md +322 -322
- package/docs/02-CORE-GUIDES/api-reference/readme.md +279 -279
- package/docs/02-CORE-GUIDES/auto-pagination/auto-pagination-quick-reference.md +351 -351
- package/docs/02-CORE-GUIDES/auto-pagination/auto-pagination-readme.md +277 -277
- package/docs/02-CORE-GUIDES/auto-pagination/examples/auto-pagination-readme.md +178 -178
- package/docs/02-CORE-GUIDES/auto-pagination/examples/common-patterns.ts +351 -351
- package/docs/02-CORE-GUIDES/auto-pagination/examples/paginate-products.ts +384 -384
- package/docs/02-CORE-GUIDES/auto-pagination/examples/paginate-virtual-positions.ts +308 -308
- package/docs/02-CORE-GUIDES/auto-pagination/modules/auto-pagination-01-foundations.md +470 -470
- package/docs/02-CORE-GUIDES/auto-pagination/modules/auto-pagination-02-quick-start.md +713 -713
- package/docs/02-CORE-GUIDES/auto-pagination/modules/auto-pagination-03-configuration.md +754 -754
- package/docs/02-CORE-GUIDES/auto-pagination/modules/auto-pagination-04-advanced-patterns.md +732 -732
- package/docs/02-CORE-GUIDES/auto-pagination/modules/auto-pagination-05-sdk-integration.md +847 -847
- package/docs/02-CORE-GUIDES/auto-pagination/modules/auto-pagination-06-troubleshooting.md +359 -359
- package/docs/02-CORE-GUIDES/auto-pagination/modules/auto-pagination-07-api-reference.md +462 -462
- package/docs/02-CORE-GUIDES/auto-pagination/readme.md +54 -54
- package/docs/02-CORE-GUIDES/data-sources/data-sources-file-operations-error-handling.md +1487 -1487
- package/docs/02-CORE-GUIDES/data-sources/data-sources-quick-reference.md +836 -836
- package/docs/02-CORE-GUIDES/data-sources/data-sources-readme.md +276 -276
- package/docs/02-CORE-GUIDES/data-sources/data-sources-sftp-credential-access-security.md +553 -553
- package/docs/02-CORE-GUIDES/data-sources/examples/common-patterns.ts +409 -409
- package/docs/02-CORE-GUIDES/data-sources/examples/data-sources-readme.md +178 -178
- package/docs/02-CORE-GUIDES/data-sources/examples/s3-operations.ts +308 -308
- package/docs/02-CORE-GUIDES/data-sources/examples/sftp-operations.ts +371 -371
- package/docs/02-CORE-GUIDES/data-sources/modules/data-sources-01-foundations.md +735 -735
- package/docs/02-CORE-GUIDES/data-sources/modules/data-sources-02-s3-operations.md +1302 -1302
- package/docs/02-CORE-GUIDES/data-sources/modules/data-sources-03-sftp-operations.md +1379 -1379
- package/docs/02-CORE-GUIDES/data-sources/modules/data-sources-04-file-patterns.md +941 -941
- package/docs/02-CORE-GUIDES/data-sources/modules/data-sources-05-advanced-topics.md +813 -813
- package/docs/02-CORE-GUIDES/data-sources/modules/data-sources-06-integration-patterns.md +486 -486
- package/docs/02-CORE-GUIDES/data-sources/modules/data-sources-07-troubleshooting.md +387 -387
- package/docs/02-CORE-GUIDES/data-sources/modules/data-sources-08-api-reference.md +417 -417
- package/docs/02-CORE-GUIDES/data-sources/readme.md +77 -77
- package/docs/02-CORE-GUIDES/error-handling-guide.md +936 -936
- package/docs/02-CORE-GUIDES/extraction/examples/02-core-guides-extraction-readme.md +116 -116
- package/docs/02-CORE-GUIDES/extraction/examples/common-patterns.ts +428 -428
- package/docs/02-CORE-GUIDES/extraction/examples/extract-inventory-basic.ts +187 -187
- package/docs/02-CORE-GUIDES/extraction/extraction-quick-reference.md +596 -596
- package/docs/02-CORE-GUIDES/extraction/modules/02-core-guides-extraction-01-foundations.md +514 -514
- package/docs/02-CORE-GUIDES/extraction/modules/02-core-guides-extraction-02-basic-extraction.md +823 -823
- package/docs/02-CORE-GUIDES/extraction/modules/02-core-guides-extraction-03-parquet-processing.md +507 -507
- package/docs/02-CORE-GUIDES/extraction/modules/02-core-guides-extraction-04-data-enrichment.md +546 -546
- package/docs/02-CORE-GUIDES/extraction/modules/02-core-guides-extraction-05-transformation.md +494 -494
- package/docs/02-CORE-GUIDES/extraction/modules/02-core-guides-extraction-06-export-formats.md +458 -458
- package/docs/02-CORE-GUIDES/extraction/modules/02-core-guides-extraction-06-performance.md +138 -138
- package/docs/02-CORE-GUIDES/extraction/modules/02-core-guides-extraction-07-api-reference.md +148 -148
- package/docs/02-CORE-GUIDES/extraction/modules/02-core-guides-extraction-07-optimization.md +692 -692
- package/docs/02-CORE-GUIDES/extraction/modules/02-core-guides-extraction-08-extraction-orchestrator.md +1008 -1008
- package/docs/02-CORE-GUIDES/extraction/readme.md +151 -151
- package/docs/02-CORE-GUIDES/ingestion/examples/_simple-kv-store.ts +40 -40
- package/docs/02-CORE-GUIDES/ingestion/examples/error-recovery.ts +728 -728
- package/docs/02-CORE-GUIDES/ingestion/examples/event-driven.ts +501 -501
- package/docs/02-CORE-GUIDES/ingestion/examples/local-file-ingestion.ts +88 -88
- package/docs/02-CORE-GUIDES/ingestion/examples/parquet-ingestion.ts +117 -117
- package/docs/02-CORE-GUIDES/ingestion/examples/performance-optimized.ts +647 -647
- package/docs/02-CORE-GUIDES/ingestion/examples/s3-csv-ingestion.ts +169 -169
- package/docs/02-CORE-GUIDES/ingestion/examples/sftp-csv-ingestion.ts +134 -134
- package/docs/02-CORE-GUIDES/ingestion/ingestion-quick-reference.md +546 -546
- package/docs/02-CORE-GUIDES/ingestion/modules/02-core-guides-ingestion-01-introduction.md +626 -626
- package/docs/02-CORE-GUIDES/ingestion/modules/02-core-guides-ingestion-02-quick-start.md +658 -658
- package/docs/02-CORE-GUIDES/ingestion/modules/02-core-guides-ingestion-03-data-sources.md +1052 -1052
- package/docs/02-CORE-GUIDES/ingestion/modules/02-core-guides-ingestion-04-field-mapping.md +763 -763
- package/docs/02-CORE-GUIDES/ingestion/modules/02-core-guides-ingestion-05-advanced-parsers.md +676 -676
- package/docs/02-CORE-GUIDES/ingestion/modules/02-core-guides-ingestion-06-batch-api.md +1295 -1295
- package/docs/02-CORE-GUIDES/ingestion/modules/02-core-guides-ingestion-07-api-reference.md +138 -138
- package/docs/02-CORE-GUIDES/ingestion/modules/02-core-guides-ingestion-07-state-management.md +1037 -1037
- package/docs/02-CORE-GUIDES/ingestion/modules/02-core-guides-ingestion-08-performance-optimization.md +1349 -1349
- package/docs/02-CORE-GUIDES/ingestion/modules/02-core-guides-ingestion-09-best-practices.md +1893 -1893
- package/docs/02-CORE-GUIDES/ingestion/readme.md +160 -160
- package/docs/02-CORE-GUIDES/logging-guide.md +585 -585
- package/docs/02-CORE-GUIDES/mapping/error-handling-patterns.md +401 -401
- package/docs/02-CORE-GUIDES/mapping/examples/02-core-guides-mapping-readme.md +128 -128
- package/docs/02-CORE-GUIDES/mapping/examples/common-patterns.ts +273 -273
- package/docs/02-CORE-GUIDES/mapping/examples/csv-location-ingestion.json +36 -36
- package/docs/02-CORE-GUIDES/mapping/examples/csv-mapping.ts +242 -242
- package/docs/02-CORE-GUIDES/mapping/examples/graphql-to-parquet-extraction.json +36 -36
- package/docs/02-CORE-GUIDES/mapping/examples/json-mapping.ts +213 -213
- package/docs/02-CORE-GUIDES/mapping/examples/json-product-to-mutation.json +48 -48
- package/docs/02-CORE-GUIDES/mapping/examples/xml-mapping.ts +291 -291
- package/docs/02-CORE-GUIDES/mapping/examples/xml-order-to-mutation.json +45 -45
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/graphql-mutation-mapping-quick-reference.md +463 -463
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/graphql-mutation-mapping-readme.md +227 -227
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/modules/graphql-mutation-mapping-01-introduction.md +222 -222
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/modules/graphql-mutation-mapping-02-quick-start.md +351 -351
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/modules/graphql-mutation-mapping-03-schema-validation.md +569 -569
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/modules/graphql-mutation-mapping-04-mapping-patterns.md +471 -471
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/modules/graphql-mutation-mapping-05-configuration-reference.md +611 -611
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/modules/graphql-mutation-mapping-06-advanced-xpath.md +148 -148
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/modules/graphql-mutation-mapping-06-path-syntax.md +464 -464
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/modules/graphql-mutation-mapping-07-api-reference.md +94 -94
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/modules/graphql-mutation-mapping-07-array-handling.md +307 -307
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/modules/graphql-mutation-mapping-08-custom-resolvers.md +544 -544
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/modules/graphql-mutation-mapping-09-advanced-patterns.md +427 -427
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/modules/graphql-mutation-mapping-10-hooks-and-variables.md +336 -336
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/modules/graphql-mutation-mapping-11-error-handling.md +488 -488
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/modules/graphql-mutation-mapping-12-arguments-vs-nodes.md +383 -383
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/modules/graphql-mutation-mapping-13-best-practices.md +477 -477
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/readme.md +62 -62
- package/docs/02-CORE-GUIDES/mapping/mapping-format-decision-tree.md +480 -480
- package/docs/02-CORE-GUIDES/mapping/mapping-graphql-alias-batching-guide.md +820 -820
- package/docs/02-CORE-GUIDES/mapping/mapping-javascript-objects.md +2369 -2369
- package/docs/02-CORE-GUIDES/mapping/mapping-mapper-comparison-guide.md +682 -682
- package/docs/02-CORE-GUIDES/mapping/modules/02-core-guides-mapping-07-api-reference.md +1327 -1327
- package/docs/02-CORE-GUIDES/mapping/modules/02-core-guides-mapping-08-error-handling.md +1142 -1142
- package/docs/02-CORE-GUIDES/mapping/modules/mapping-04-use-cases.md +891 -891
- package/docs/02-CORE-GUIDES/mapping/modules/mapping-06-helpers-resolvers.md +1126 -1126
- package/docs/02-CORE-GUIDES/mapping/modules/mapping-06-sdk-resolvers.md +199 -199
- package/docs/02-CORE-GUIDES/mapping/modules/mapping-07-api-reference.md +1319 -1319
- package/docs/02-CORE-GUIDES/mapping/readme.md +178 -178
- package/docs/02-CORE-GUIDES/mapping/resolver-registration.md +410 -410
- package/docs/02-CORE-GUIDES/mapping/resolvers/examples/common-patterns.ts +226 -226
- package/docs/02-CORE-GUIDES/mapping/resolvers/examples/custom-resolvers.ts +227 -227
- package/docs/02-CORE-GUIDES/mapping/resolvers/examples/sdk-resolvers-usage.ts +203 -203
- package/docs/02-CORE-GUIDES/mapping/resolvers/mapping-resolvers-readme.md +274 -274
- package/docs/02-CORE-GUIDES/mapping/resolvers/mapping-resolvers-resolver-api-reference.md +679 -679
- package/docs/02-CORE-GUIDES/mapping/resolvers/mapping-resolvers-resolver-cookbook.md +826 -826
- package/docs/02-CORE-GUIDES/mapping/resolvers/mapping-resolvers-resolver-guide.md +1330 -1330
- package/docs/02-CORE-GUIDES/mapping/resolvers/mapping-resolvers-resolver-helpers-reference.md +1437 -1437
- package/docs/02-CORE-GUIDES/mapping/resolvers/mapping-resolvers-resolver-parameters-reference.md +553 -553
- package/docs/02-CORE-GUIDES/mapping/resolvers/mapping-resolvers-resolver-troubleshooting.md +854 -854
- package/docs/02-CORE-GUIDES/mapping/resolvers/readme.md +75 -75
- package/docs/02-CORE-GUIDES/parsers/examples/02-core-guides-parsers-readme.md +161 -161
- package/docs/02-CORE-GUIDES/parsers/examples/csv-parser-examples.ts +110 -110
- package/docs/02-CORE-GUIDES/parsers/examples/json-parser-examples.ts +33 -33
- package/docs/02-CORE-GUIDES/parsers/examples/parquet-parser-examples.ts +47 -47
- package/docs/02-CORE-GUIDES/parsers/examples/xml-parser-examples.ts +38 -38
- package/docs/02-CORE-GUIDES/parsers/modules/02-core-guides-parsers-01-foundations.md +355 -355
- package/docs/02-CORE-GUIDES/parsers/modules/02-core-guides-parsers-02-csv-parser.md +772 -772
- package/docs/02-CORE-GUIDES/parsers/modules/02-core-guides-parsers-03-json-parser.md +789 -789
- package/docs/02-CORE-GUIDES/parsers/modules/02-core-guides-parsers-04-xml-parser.md +857 -857
- package/docs/02-CORE-GUIDES/parsers/modules/02-core-guides-parsers-05-parquet-parser.md +603 -603
- package/docs/02-CORE-GUIDES/parsers/modules/02-core-guides-parsers-06-integration-patterns.md +702 -702
- package/docs/02-CORE-GUIDES/parsers/modules/02-core-guides-parsers-06-streaming.md +121 -121
- package/docs/02-CORE-GUIDES/parsers/modules/02-core-guides-parsers-07-api-reference.md +89 -89
- package/docs/02-CORE-GUIDES/parsers/modules/02-core-guides-parsers-07-troubleshooting.md +727 -727
- package/docs/02-CORE-GUIDES/parsers/parsers-quick-reference.md +482 -482
- package/docs/02-CORE-GUIDES/parsers/parsers-readme.md +258 -258
- package/docs/02-CORE-GUIDES/parsers/readme.md +65 -65
- package/docs/02-CORE-GUIDES/readme.md +194 -194
- package/docs/02-CORE-GUIDES/webhook-validation/examples/basic-validation.ts +108 -108
- package/docs/02-CORE-GUIDES/webhook-validation/examples/common-patterns.ts +316 -316
- package/docs/02-CORE-GUIDES/webhook-validation/examples/webhook-validation-readme.md +61 -61
- package/docs/02-CORE-GUIDES/webhook-validation/modules/webhook-validation-01-foundations.md +440 -440
- package/docs/02-CORE-GUIDES/webhook-validation/modules/webhook-validation-02-quick-start.md +525 -525
- package/docs/02-CORE-GUIDES/webhook-validation/modules/webhook-validation-03-versori-integration.md +741 -741
- package/docs/02-CORE-GUIDES/webhook-validation/modules/webhook-validation-04-platform-integration.md +629 -629
- package/docs/02-CORE-GUIDES/webhook-validation/modules/webhook-validation-05-configuration.md +535 -535
- package/docs/02-CORE-GUIDES/webhook-validation/modules/webhook-validation-06-error-handling.md +611 -611
- package/docs/02-CORE-GUIDES/webhook-validation/modules/webhook-validation-06-troubleshooting.md +124 -124
- package/docs/02-CORE-GUIDES/webhook-validation/modules/webhook-validation-07-api-reference.md +511 -511
- package/docs/02-CORE-GUIDES/webhook-validation/modules/webhook-validation-08-rubix-webhooks.md +590 -590
- package/docs/02-CORE-GUIDES/webhook-validation/modules/webhook-validation-09-rubix-event-vs-http-call.md +432 -432
- package/docs/02-CORE-GUIDES/webhook-validation/readme.md +239 -239
- package/docs/02-CORE-GUIDES/webhook-validation/webhook-validation-quick-reference.md +392 -392
- package/docs/03-PATTERN-GUIDES/connector-scenarios/connector-scenarios-quick-reference.md +498 -498
- package/docs/03-PATTERN-GUIDES/connector-scenarios/connector-scenarios-readme.md +313 -313
- package/docs/03-PATTERN-GUIDES/connector-scenarios/examples/common-patterns.ts +612 -612
- package/docs/03-PATTERN-GUIDES/connector-scenarios/examples/connector-scenarios-readme.md +253 -253
- package/docs/03-PATTERN-GUIDES/connector-scenarios/modules/connector-scenarios-01-foundations.md +452 -452
- package/docs/03-PATTERN-GUIDES/connector-scenarios/modules/connector-scenarios-02-simple-scenarios.md +681 -681
- package/docs/03-PATTERN-GUIDES/connector-scenarios/modules/connector-scenarios-03-intermediate-scenarios.md +637 -637
- package/docs/03-PATTERN-GUIDES/connector-scenarios/modules/connector-scenarios-04-advanced-scenarios.md +650 -650
- package/docs/03-PATTERN-GUIDES/connector-scenarios/modules/connector-scenarios-05-bidirectional-sync.md +233 -233
- package/docs/03-PATTERN-GUIDES/connector-scenarios/modules/connector-scenarios-06-production-patterns.md +442 -442
- package/docs/03-PATTERN-GUIDES/connector-scenarios/modules/connector-scenarios-07-reference.md +445 -445
- package/docs/03-PATTERN-GUIDES/connector-scenarios/readme.md +31 -31
- package/docs/03-PATTERN-GUIDES/enterprise-integration-patterns.md +1528 -1528
- package/docs/03-PATTERN-GUIDES/error-handling/comprehensive-error-handling-guide.md +1437 -1437
- package/docs/03-PATTERN-GUIDES/error-handling/error-handling-quick-reference.md +390 -390
- package/docs/03-PATTERN-GUIDES/error-handling/examples/common-patterns.ts +438 -438
- package/docs/03-PATTERN-GUIDES/error-handling/modules/error-handling-01-foundations.md +362 -362
- package/docs/03-PATTERN-GUIDES/error-handling/modules/error-handling-02-error-types.md +850 -850
- package/docs/03-PATTERN-GUIDES/error-handling/modules/error-handling-03-utf8-handling.md +456 -456
- package/docs/03-PATTERN-GUIDES/error-handling/modules/error-handling-04-error-scenarios.md +658 -658
- package/docs/03-PATTERN-GUIDES/error-handling/modules/error-handling-05-calling-patterns.md +671 -671
- package/docs/03-PATTERN-GUIDES/error-handling/modules/error-handling-06-retry-strategies.md +1034 -1034
- package/docs/03-PATTERN-GUIDES/error-handling/modules/error-handling-07-monitoring.md +653 -653
- package/docs/03-PATTERN-GUIDES/error-handling/modules/error-handling-08-api-reference.md +847 -847
- package/docs/03-PATTERN-GUIDES/error-handling/readme.md +36 -36
- package/docs/03-PATTERN-GUIDES/examples/__tests__/readme.md +40 -40
- package/docs/03-PATTERN-GUIDES/examples/__tests__/resolver-examples.test.js +282 -282
- package/docs/03-PATTERN-GUIDES/examples/test-data/03-pattern-guides-readme.md +110 -110
- package/docs/03-PATTERN-GUIDES/examples/test-data/canonical-inventory.json +123 -123
- package/docs/03-PATTERN-GUIDES/examples/test-data/canonical-order.json +171 -171
- package/docs/03-PATTERN-GUIDES/examples/test-data/readme.md +28 -28
- package/docs/03-PATTERN-GUIDES/extraction/extraction-readme.md +15 -15
- package/docs/03-PATTERN-GUIDES/extraction/readme.md +25 -25
- package/docs/03-PATTERN-GUIDES/file-operations/examples/common-patterns.ts +407 -407
- package/docs/03-PATTERN-GUIDES/file-operations/examples/file-operations-readme.md +142 -142
- package/docs/03-PATTERN-GUIDES/file-operations/file-operations-quick-reference.md +462 -462
- package/docs/03-PATTERN-GUIDES/file-operations/file-operations-readme.md +379 -379
- package/docs/03-PATTERN-GUIDES/file-operations/modules/file-operations-01-foundations.md +430 -430
- package/docs/03-PATTERN-GUIDES/file-operations/modules/file-operations-02-quick-start.md +484 -484
- package/docs/03-PATTERN-GUIDES/file-operations/modules/file-operations-03-s3-operations.md +507 -507
- package/docs/03-PATTERN-GUIDES/file-operations/modules/file-operations-04-sftp-operations.md +963 -963
- package/docs/03-PATTERN-GUIDES/file-operations/modules/file-operations-05-streaming-performance.md +503 -503
- package/docs/03-PATTERN-GUIDES/file-operations/modules/file-operations-06-archive-patterns.md +386 -386
- package/docs/03-PATTERN-GUIDES/file-operations/modules/file-operations-06-error-handling.md +117 -117
- package/docs/03-PATTERN-GUIDES/file-operations/modules/file-operations-07-api-reference.md +78 -78
- package/docs/03-PATTERN-GUIDES/file-operations/modules/file-operations-07-testing-troubleshooting.md +567 -567
- package/docs/03-PATTERN-GUIDES/file-operations/modules/file-operations-08-api-reference.md +1055 -1055
- package/docs/03-PATTERN-GUIDES/file-operations/readme.md +32 -32
- package/docs/03-PATTERN-GUIDES/ingestion/ingestion-readme.md +15 -15
- package/docs/03-PATTERN-GUIDES/ingestion/readme.md +25 -25
- package/docs/03-PATTERN-GUIDES/integration-patterns/examples/batch-processing.ts +130 -130
- package/docs/03-PATTERN-GUIDES/integration-patterns/examples/common-patterns.ts +360 -360
- package/docs/03-PATTERN-GUIDES/integration-patterns/examples/delta-sync.ts +130 -130
- package/docs/03-PATTERN-GUIDES/integration-patterns/examples/integration-patterns-readme.md +100 -100
- package/docs/03-PATTERN-GUIDES/integration-patterns/examples/real-time-webhook.ts +398 -398
- package/docs/03-PATTERN-GUIDES/integration-patterns/integration-patterns-quick-reference.md +962 -962
- package/docs/03-PATTERN-GUIDES/integration-patterns/integration-patterns-readme.md +134 -134
- package/docs/03-PATTERN-GUIDES/integration-patterns/modules/integration-patterns-01-real-time-processing.md +991 -991
- package/docs/03-PATTERN-GUIDES/integration-patterns/modules/integration-patterns-02-batch-processing.md +1547 -1547
- package/docs/03-PATTERN-GUIDES/integration-patterns/modules/integration-patterns-03-delta-sync.md +1108 -1108
- package/docs/03-PATTERN-GUIDES/integration-patterns/modules/integration-patterns-04-webhook-patterns.md +1181 -1181
- package/docs/03-PATTERN-GUIDES/integration-patterns/modules/integration-patterns-05-error-handling.md +1061 -1061
- package/docs/03-PATTERN-GUIDES/integration-patterns/modules/integration-patterns-06-advanced-integration-services.md +1547 -1547
- package/docs/03-PATTERN-GUIDES/integration-patterns/modules/integration-patterns-06-performance.md +109 -109
- package/docs/03-PATTERN-GUIDES/integration-patterns/modules/integration-patterns-07-api-reference.md +34 -34
- package/docs/03-PATTERN-GUIDES/integration-patterns/readme.md +30 -30
- package/docs/03-PATTERN-GUIDES/logging-minimal-mode.md +128 -128
- package/docs/03-PATTERN-GUIDES/multiple-connections/examples/common-patterns.ts +380 -380
- package/docs/03-PATTERN-GUIDES/multiple-connections/examples/multiple-connections-readme.md +139 -139
- package/docs/03-PATTERN-GUIDES/multiple-connections/examples/parallel-root-connections.ts +149 -149
- package/docs/03-PATTERN-GUIDES/multiple-connections/examples/real-world-scenarios.ts +405 -405
- package/docs/03-PATTERN-GUIDES/multiple-connections/modules/multiple-connections-01-foundations.md +378 -378
- package/docs/03-PATTERN-GUIDES/multiple-connections/modules/multiple-connections-02-quick-start.md +566 -566
- package/docs/03-PATTERN-GUIDES/multiple-connections/modules/multiple-connections-03-targeting-connections.md +659 -659
- package/docs/03-PATTERN-GUIDES/multiple-connections/modules/multiple-connections-04-parallel-queries.md +656 -656
- package/docs/03-PATTERN-GUIDES/multiple-connections/modules/multiple-connections-05-best-practices.md +624 -624
- package/docs/03-PATTERN-GUIDES/multiple-connections/modules/multiple-connections-06-api-reference.md +824 -824
- package/docs/03-PATTERN-GUIDES/multiple-connections/modules/multiple-connections-06-versori.md +119 -119
- package/docs/03-PATTERN-GUIDES/multiple-connections/modules/multiple-connections-07-api-reference.md +87 -87
- package/docs/03-PATTERN-GUIDES/multiple-connections/multiple-connections-quick-reference.md +353 -353
- package/docs/03-PATTERN-GUIDES/multiple-connections/multiple-connections-readme.md +270 -270
- package/docs/03-PATTERN-GUIDES/multiple-connections/readme.md +30 -30
- package/docs/03-PATTERN-GUIDES/pagination/pagination-readme.md +14 -14
- package/docs/03-PATTERN-GUIDES/pagination/readme.md +24 -24
- package/docs/03-PATTERN-GUIDES/parquet/examples/common-patterns.ts +180 -180
- package/docs/03-PATTERN-GUIDES/parquet/examples/read-parquet.ts +48 -48
- package/docs/03-PATTERN-GUIDES/parquet/examples/write-parquet.ts +65 -65
- package/docs/03-PATTERN-GUIDES/parquet/modules/03-pattern-guides-parquet-01-introduction.md +393 -393
- package/docs/03-PATTERN-GUIDES/parquet/modules/03-pattern-guides-parquet-02-quick-start.md +572 -572
- package/docs/03-PATTERN-GUIDES/parquet/modules/03-pattern-guides-parquet-03-reading-parquet.md +525 -525
- package/docs/03-PATTERN-GUIDES/parquet/modules/03-pattern-guides-parquet-04-writing-parquet.md +554 -554
- package/docs/03-PATTERN-GUIDES/parquet/modules/03-pattern-guides-parquet-05-graphql-extraction.md +405 -405
- package/docs/03-PATTERN-GUIDES/parquet/modules/03-pattern-guides-parquet-06-performance.md +104 -104
- package/docs/03-PATTERN-GUIDES/parquet/modules/03-pattern-guides-parquet-06-s3-integration.md +511 -511
- package/docs/03-PATTERN-GUIDES/parquet/modules/03-pattern-guides-parquet-07-api-reference.md +90 -90
- package/docs/03-PATTERN-GUIDES/parquet/modules/03-pattern-guides-parquet-07-performance-optimization.md +525 -525
- package/docs/03-PATTERN-GUIDES/parquet/modules/03-pattern-guides-parquet-08-best-practices.md +712 -712
- package/docs/03-PATTERN-GUIDES/parquet/parquet-quick-reference.md +683 -683
- package/docs/03-PATTERN-GUIDES/parquet/parquet-readme.md +248 -248
- package/docs/03-PATTERN-GUIDES/parquet/readme.md +32 -32
- package/docs/03-PATTERN-GUIDES/parsers/parsers-readme.md +12 -12
- package/docs/03-PATTERN-GUIDES/parsers/readme.md +24 -24
- package/docs/03-PATTERN-GUIDES/readme.md +159 -159
- package/docs/03-PATTERN-GUIDES/webhooks/readme.md +24 -24
- package/docs/03-PATTERN-GUIDES/webhooks/webhooks-readme.md +8 -8
- package/docs/04-REFERENCE/architecture/architecture-01-overview.md +427 -427
- package/docs/04-REFERENCE/architecture/architecture-02-client-architecture.md +424 -424
- package/docs/04-REFERENCE/architecture/architecture-03-data-flow.md +690 -690
- package/docs/04-REFERENCE/architecture/architecture-04-service-layer.md +834 -834
- package/docs/04-REFERENCE/architecture/architecture-05-integration-architecture.md +655 -655
- package/docs/04-REFERENCE/architecture/architecture-06-state-management.md +653 -653
- package/docs/04-REFERENCE/architecture/architecture-adding-new-data-sources.md +686 -686
- package/docs/04-REFERENCE/architecture/readme.md +279 -279
- package/docs/04-REFERENCE/platforms/deno/readme.md +117 -117
- package/docs/04-REFERENCE/platforms/nodejs/readme.md +146 -146
- package/docs/04-REFERENCE/platforms/readme.md +135 -135
- package/docs/04-REFERENCE/platforms/versori/modules/platforms-versori-01-introduction.md +398 -398
- package/docs/04-REFERENCE/platforms/versori/modules/platforms-versori-02-quick-start.md +560 -560
- package/docs/04-REFERENCE/platforms/versori/modules/platforms-versori-03-authentication.md +757 -757
- package/docs/04-REFERENCE/platforms/versori/modules/platforms-versori-04-workflows.md +2476 -2476
- package/docs/04-REFERENCE/platforms/versori/modules/platforms-versori-05-connections.md +1167 -1167
- package/docs/04-REFERENCE/platforms/versori/modules/platforms-versori-06-kv-storage.md +990 -990
- package/docs/04-REFERENCE/platforms/versori/modules/platforms-versori-06-state-management.md +121 -121
- package/docs/04-REFERENCE/platforms/versori/modules/platforms-versori-07-api-reference.md +68 -68
- package/docs/04-REFERENCE/platforms/versori/modules/platforms-versori-07-deployment.md +731 -731
- package/docs/04-REFERENCE/platforms/versori/modules/platforms-versori-08-best-practices.md +1111 -1111
- package/docs/04-REFERENCE/platforms/versori/modules/platforms-versori-09-signature-reference.md +766 -766
- package/docs/04-REFERENCE/platforms/versori/platforms-versori-readme.md +299 -299
- package/docs/04-REFERENCE/platforms/versori/platforms-versori-s3-sftp-configuration-guide.md +1425 -1425
- package/docs/04-REFERENCE/platforms/versori/platforms-versori-webhook-api-key-security.md +816 -816
- package/docs/04-REFERENCE/platforms/versori/platforms-versori-webhook-connection-security.md +681 -681
- package/docs/04-REFERENCE/platforms/versori/platforms-versori-workflow-task-types.md +708 -708
- package/docs/04-REFERENCE/platforms/versori/readme.md +108 -108
- package/docs/04-REFERENCE/readme.md +148 -148
- package/docs/04-REFERENCE/resolver-signature/examples/advanced-resolvers.ts +482 -482
- package/docs/04-REFERENCE/resolver-signature/examples/async-resolvers.ts +496 -496
- package/docs/04-REFERENCE/resolver-signature/examples/basic-resolvers.ts +343 -343
- package/docs/04-REFERENCE/resolver-signature/examples/resolver-signature-readme.md +188 -188
- package/docs/04-REFERENCE/resolver-signature/examples/testing-resolvers.ts +463 -463
- package/docs/04-REFERENCE/resolver-signature/modules/resolver-signature-01-foundations.md +286 -286
- package/docs/04-REFERENCE/resolver-signature/modules/resolver-signature-02-parameter-reference.md +643 -643
- package/docs/04-REFERENCE/resolver-signature/modules/resolver-signature-03-basic-examples.md +521 -521
- package/docs/04-REFERENCE/resolver-signature/modules/resolver-signature-04-advanced-patterns.md +739 -739
- package/docs/04-REFERENCE/resolver-signature/modules/resolver-signature-05-sdk-resolvers.md +531 -531
- package/docs/04-REFERENCE/resolver-signature/modules/resolver-signature-06-migration-guide.md +650 -650
- package/docs/04-REFERENCE/resolver-signature/modules/resolver-signature-06-testing.md +125 -125
- package/docs/04-REFERENCE/resolver-signature/modules/resolver-signature-07-api-reference.md +794 -794
- package/docs/04-REFERENCE/resolver-signature/readme.md +64 -64
- package/docs/04-REFERENCE/resolver-signature/resolver-signature-quick-reference.md +270 -270
- package/docs/04-REFERENCE/resolver-signature/resolver-signature-readme.md +351 -351
- package/docs/04-REFERENCE/schema/fluent-commerce-schema.json +764 -764
- package/docs/04-REFERENCE/schema/readme.md +141 -141
- package/docs/04-REFERENCE/testing/examples/04-reference-testing-readme.md +158 -158
- package/docs/04-REFERENCE/testing/examples/fluent-testing.ts +62 -62
- package/docs/04-REFERENCE/testing/examples/health-check.ts +155 -155
- package/docs/04-REFERENCE/testing/examples/integration-test.ts +119 -119
- package/docs/04-REFERENCE/testing/examples/performance-test.ts +183 -183
- package/docs/04-REFERENCE/testing/examples/s3-testing.ts +127 -127
- package/docs/04-REFERENCE/testing/modules/04-reference-testing-01-foundations.md +267 -267
- package/docs/04-REFERENCE/testing/modules/04-reference-testing-02-s3-testing.md +599 -599
- package/docs/04-REFERENCE/testing/modules/04-reference-testing-03-fluent-testing.md +589 -589
- package/docs/04-REFERENCE/testing/modules/04-reference-testing-04-integration-testing.md +699 -699
- package/docs/04-REFERENCE/testing/modules/04-reference-testing-05-debugging.md +478 -478
- package/docs/04-REFERENCE/testing/modules/04-reference-testing-06-cicd-integration.md +463 -463
- package/docs/04-REFERENCE/testing/modules/04-reference-testing-06-preflight-validation.md +131 -131
- package/docs/04-REFERENCE/testing/modules/04-reference-testing-07-best-practices.md +499 -499
- package/docs/04-REFERENCE/testing/modules/04-reference-testing-07-coverage-ci.md +165 -165
- package/docs/04-REFERENCE/testing/modules/04-reference-testing-08-api-reference.md +634 -634
- package/docs/04-REFERENCE/testing/readme.md +86 -86
- package/docs/04-REFERENCE/testing/testing-quick-reference.md +667 -667
- package/docs/04-REFERENCE/testing/testing-readme.md +286 -286
- package/docs/04-REFERENCE/troubleshooting/readme.md +144 -144
- package/docs/04-REFERENCE/troubleshooting/troubleshooting-deno-sftp-compatibility.md +392 -392
- package/docs/template-loading-matrix.md +242 -242
- package/package.json +5 -3
|
@@ -1,482 +1,399 @@
|
|
|
1
|
-
# Module 1: Client API
|
|
2
|
-
|
|
3
|
-
**Level:** Beginner
|
|
4
|
-
**Category:** Core
|
|
5
|
-
|
|
6
|
-
## Overview
|
|
7
|
-
|
|
8
|
-
The FluentClient is the main entry point for interacting with Fluent Commerce APIs. This module covers client creation, configuration, and all primary operations including GraphQL queries/mutations, event handling, and batch processing.
|
|
9
|
-
|
|
10
|
-
## Table of Contents
|
|
11
|
-
|
|
12
|
-
- [Client Creation](#client-creation)
|
|
13
|
-
- [GraphQL Operations](#graphql-operations)
|
|
14
|
-
- [Event Operations](#event-operations)
|
|
15
|
-
- [Job & Batch Operations](#job-batch-operations)
|
|
16
|
-
- [See Also](#see-also)
|
|
17
|
-
|
|
18
|
-
---
|
|
19
|
-
|
|
20
|
-
## FluentClient
|
|
21
|
-
|
|
22
|
-
The main client for interacting with Fluent Commerce APIs.
|
|
23
|
-
|
|
24
|
-
### Client Creation
|
|
25
|
-
|
|
26
|
-
#### createClient Function
|
|
27
|
-
|
|
28
|
-
Universal factory function that auto-detects the runtime environment.
|
|
29
|
-
|
|
30
|
-
```typescript
|
|
31
|
-
import { createClient } from '@fluentcommerce/fc-connect-sdk';
|
|
32
|
-
|
|
33
|
-
// Node.js environment with OAuth2
|
|
34
|
-
const client = await createClient({
|
|
35
|
-
config: {
|
|
36
|
-
baseUrl: 'https://api.fluentcommerce.com',
|
|
37
|
-
clientId: 'your-client-id',
|
|
38
|
-
clientSecret: 'your-client-secret',
|
|
39
|
-
username: 'your-username', // Optional - for password grant
|
|
40
|
-
password: 'your-password', // Optional - for password grant
|
|
41
|
-
},
|
|
42
|
-
});
|
|
43
|
-
|
|
44
|
-
// retailerId is optional on client config, but required in createJob payload or set via client.setRetailerId() beforehand
|
|
45
|
-
client.setRetailerId('your-retailer-id');
|
|
46
|
-
|
|
47
|
-
// Versori platform
|
|
48
|
-
const client = await createClient(ctx);
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
**Parameters:**
|
|
52
|
-
|
|
53
|
-
- `config: FluentClientConfig | VersoriContext` - Configuration object or Versori context
|
|
54
|
-
|
|
55
|
-
**Returns:**
|
|
56
|
-
|
|
57
|
-
- `Promise<FluentClient>` - Configured client instance
|
|
58
|
-
|
|
59
|
-
#### FluentClientConfig Interface
|
|
60
|
-
|
|
61
|
-
```typescript
|
|
62
|
-
interface FluentClientConfig {
|
|
63
|
-
baseUrl: string; // API endpoint
|
|
64
|
-
retailerId?: string; // Optional - only required for Job/Batch operations
|
|
65
|
-
clientId?: string; // OAuth2 client ID (required)
|
|
66
|
-
clientSecret?: string; // OAuth2 client secret (required)
|
|
67
|
-
username?: string; // OAuth2 username (optional - for password grant)
|
|
68
|
-
password?: string; // OAuth2 password (optional - for password grant)
|
|
69
|
-
timeout?: number; // Request timeout (ms)
|
|
70
|
-
retryAttempts?: number; // Retry count
|
|
71
|
-
retryDelay?: number; // Retry delay (ms)
|
|
72
|
-
/**
|
|
73
|
-
* Retry configuration with sensible defaults
|
|
74
|
-
* Override specific values as needed for fine-grained control
|
|
75
|
-
*/
|
|
76
|
-
retryConfig?: {
|
|
77
|
-
/** Maximum number of retry attempts for general requests (default: 3) */
|
|
78
|
-
maxRetries?: number;
|
|
79
|
-
/** Maximum number of retry attempts for authentication failures (default: 3) */
|
|
80
|
-
maxAuthRetries?: number;
|
|
81
|
-
/** Base delay in milliseconds before first retry (default: 1000) */
|
|
82
|
-
baseRetryDelayMs?: number;
|
|
83
|
-
/** Maximum delay in milliseconds for general retries (default: 10000) */
|
|
84
|
-
maxRetryDelayMs?: number;
|
|
85
|
-
/** Maximum delay in milliseconds for authentication retries (default: 5000) */
|
|
86
|
-
maxAuthRetryDelayMs?: number;
|
|
87
|
-
/** Token expiry buffer in seconds (default: 60) */
|
|
88
|
-
tokenExpiryBufferSeconds?: number;
|
|
89
|
-
};
|
|
90
|
-
}
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
**Note**: Logger is passed at the context level when calling `createClient({ config, logger })`, not inside the config object.
|
|
94
|
-
|
|
95
|
-
### GraphQL Operations
|
|
96
|
-
|
|
97
|
-
#### graphql Method
|
|
98
|
-
|
|
99
|
-
Execute a GraphQL query or mutation. Auto-detects operation type.
|
|
100
|
-
|
|
101
|
-
```typescript
|
|
102
|
-
async graphql<T = JsonValue>(payload: GraphQLPayload): Promise<GraphQLResponse<T>>
|
|
103
|
-
|
|
104
|
-
interface GraphQLPayload<T = Record<string, JsonValue>> {
|
|
105
|
-
query: string; // GraphQL query or mutation string
|
|
106
|
-
variables?: T; // Query/mutation variables (typed)
|
|
107
|
-
operationName?: string; // Optional operation name
|
|
108
|
-
pagination?: PaginationConfig; // Optional auto-pagination config
|
|
109
|
-
}
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
**Parameters:**
|
|
113
|
-
|
|
114
|
-
- `payload.query` - GraphQL query or mutation string
|
|
115
|
-
- `payload.variables` - Optional query/mutation variables
|
|
116
|
-
- `payload.pagination` - Optional auto-pagination configuration
|
|
117
|
-
|
|
118
|
-
**Returns:**
|
|
119
|
-
|
|
120
|
-
- `GraphQLResponse<T>` with data, errors, and extensions
|
|
121
|
-
|
|
122
|
-
**Example:**
|
|
123
|
-
|
|
124
|
-
```typescript
|
|
125
|
-
// Execute query
|
|
126
|
-
const result = await client.graphql({
|
|
127
|
-
query: `
|
|
128
|
-
query GetProducts($first: Int) {
|
|
129
|
-
products(first: $first) {
|
|
130
|
-
edges { node { id ref name } }
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
`,
|
|
134
|
-
variables: { first: 10 },
|
|
135
|
-
});
|
|
136
|
-
|
|
137
|
-
// Execute mutation (same method)
|
|
138
|
-
const result = await client.graphql({
|
|
139
|
-
query: `
|
|
140
|
-
mutation UpdateProduct($input: UpdateProductInput!) {
|
|
141
|
-
updateProduct(input: $input) {
|
|
142
|
-
id ref name
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
`,
|
|
146
|
-
variables: { input: { id: '123', name: 'Updated Product' } },
|
|
147
|
-
});
|
|
148
|
-
|
|
149
|
-
// With auto-pagination (forward pagination with cursor)
|
|
150
|
-
const result = await client.graphql({
|
|
151
|
-
query: `
|
|
152
|
-
query Products($first: Int!, $after: String) {
|
|
153
|
-
products(first: $first, after: $after) {
|
|
154
|
-
edges {
|
|
155
|
-
node { id ref name }
|
|
156
|
-
cursor
|
|
157
|
-
}
|
|
158
|
-
pageInfo {
|
|
159
|
-
hasNextPage
|
|
160
|
-
hasPreviousPage
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
`,
|
|
165
|
-
variables: { first: 50 }, // Page size
|
|
166
|
-
pagination: {
|
|
167
|
-
enabled: true,
|
|
168
|
-
maxPages: 10, // Fetch up to 10 pages (500 records)
|
|
169
|
-
maxRecords: 1000, // Or stop at 1000 records
|
|
170
|
-
delayMs: 100, // Wait 100ms between pages
|
|
171
|
-
},
|
|
172
|
-
});
|
|
173
|
-
```
|
|
174
|
-
|
|
175
|
-
> **Pagination Notes:**
|
|
176
|
-
> - Forward pagination (default): Uses `$first`/`$after` with `pageInfo.hasNextPage`
|
|
177
|
-
> - Backward pagination: Uses `$last`/`$before` with `pageInfo.hasPreviousPage` (set `pagination.direction='backward'`)
|
|
178
|
-
> - SDK automatically injects cursor values - do NOT include pagination variables in `variables` object
|
|
179
|
-
> - Always request `cursor` in `edges` and `pageInfo { hasNextPage hasPreviousPage }` in your query
|
|
180
|
-
|
|
181
|
-
#### query Helper Method
|
|
182
|
-
|
|
183
|
-
Convenience method that calls `graphql()` and returns just the data field.
|
|
184
|
-
|
|
185
|
-
```typescript
|
|
186
|
-
async query<T = JsonValue>(
|
|
187
|
-
queryOrPayload: string | GraphQLPayload,
|
|
188
|
-
variables?: Record<string, JsonValue>
|
|
189
|
-
): Promise<T | undefined>
|
|
190
|
-
```
|
|
191
|
-
|
|
192
|
-
**Example:**
|
|
193
|
-
|
|
194
|
-
```typescript
|
|
195
|
-
// Using string query
|
|
196
|
-
const orders = await client.graphql<{ orders: Order[] }>({
|
|
197
|
-
query: 'query { orders { id ref } }',
|
|
198
|
-
variables: {
|
|
199
|
-
status: 'ACTIVE',
|
|
200
|
-
},
|
|
201
|
-
});
|
|
202
|
-
|
|
203
|
-
// Using GraphQLPayload
|
|
204
|
-
const orders = await client.graphql({
|
|
205
|
-
query: 'query ($status: String) { orders(status: $status) { id ref } }',
|
|
206
|
-
variables: { status: 'ACTIVE' },
|
|
207
|
-
});
|
|
208
|
-
```
|
|
209
|
-
|
|
210
|
-
#### mutate Helper Method
|
|
211
|
-
|
|
212
|
-
Convenience method that calls `graphql()` and returns just the data field.
|
|
213
|
-
|
|
214
|
-
```typescript
|
|
215
|
-
async mutate<T = JsonValue>(
|
|
216
|
-
mutationOrPayload: string | GraphQLPayload,
|
|
217
|
-
variables?: Record<string, JsonValue>
|
|
218
|
-
): Promise<T | undefined>
|
|
219
|
-
```
|
|
220
|
-
|
|
221
|
-
**Example:**
|
|
222
|
-
|
|
223
|
-
```typescript
|
|
224
|
-
// Using string mutation
|
|
225
|
-
const result = await client.graphql<{ createOrder: { id: string } }>({
|
|
226
|
-
query: 'mutation { createOrder(input: { ref: "123" }) { id } }',
|
|
227
|
-
});
|
|
228
|
-
|
|
229
|
-
// Using GraphQLPayload
|
|
230
|
-
const result = await client.graphql({
|
|
231
|
-
query: 'mutation ($input: CreateOrderInput!) { createOrder(input: $input) { id } }',
|
|
232
|
-
variables: { input: { ref: '123' } },
|
|
233
|
-
});
|
|
234
|
-
```
|
|
235
|
-
|
|
236
|
-
### Event Operations
|
|
237
|
-
|
|
238
|
-
#### sendEvent Method
|
|
239
|
-
|
|
240
|
-
Send an event to Fluent Commerce.
|
|
241
|
-
|
|
242
|
-
```typescript
|
|
243
|
-
async sendEvent(event: FluentEvent, mode: FluentEventMode = 'async'): Promise<JsonValue>
|
|
244
|
-
|
|
245
|
-
type FluentEventMode = 'async' | 'sync';
|
|
246
|
-
```
|
|
247
|
-
|
|
248
|
-
#### Webhook Signature Validation (Fluent Rubix only)
|
|
249
|
-
|
|
250
|
-
> Note: This validation applies only to webhooks sent from Fluent Commerce Rubix workflows.
|
|
251
|
-
|
|
252
|
-
```typescript
|
|
253
|
-
import { WebhookValidationService, SignatureAlgorithm } from '@fluentcommerce/fc-connect-sdk';
|
|
254
|
-
|
|
255
|
-
const validator = new WebhookValidationService(
|
|
256
|
-
{ algorithm: SignatureAlgorithm.SHA512_WITH_RSA, strictValidation: true },
|
|
257
|
-
logger
|
|
258
|
-
);
|
|
259
|
-
|
|
260
|
-
const result = await validator.validateWebhookSignature(
|
|
261
|
-
JSON.stringify(requestBody),
|
|
262
|
-
headers['fluent-signature'],
|
|
263
|
-
process.env.FLUENT_WEBHOOK_PUBLIC_KEY!,
|
|
264
|
-
SignatureAlgorithm.SHA512_WITH_RSA
|
|
265
|
-
);
|
|
266
|
-
|
|
267
|
-
if (!result.isValid) throw new Error('Invalid Fluent webhook signature');
|
|
268
|
-
```
|
|
269
|
-
|
|
270
|
-
**Parameters:**
|
|
271
|
-
|
|
272
|
-
- `event` - Event payload (FluentEvent object)
|
|
273
|
-
- `mode` - Event mode: 'async' (default) or 'sync'
|
|
274
|
-
|
|
275
|
-
**Returns:**
|
|
276
|
-
|
|
277
|
-
- Event response data
|
|
278
|
-
|
|
279
|
-
**FluentEvent Interface:**
|
|
280
|
-
|
|
281
|
-
```typescript
|
|
282
|
-
interface FluentEvent {
|
|
283
|
-
name: string; // Event name
|
|
284
|
-
retailerId: string; // Retailer ID
|
|
285
|
-
entityType: string; // Entity type
|
|
286
|
-
entityRef?: string; // Entity reference
|
|
287
|
-
entityId?: string; // Entity ID
|
|
288
|
-
rootEntityType?: string; // Root entity type
|
|
289
|
-
rootEntityRef?: string; // Root entity reference
|
|
290
|
-
rootEntityId?: string; // Root entity ID
|
|
291
|
-
attributes?: Record<string, any>; // Event attributes
|
|
292
|
-
}
|
|
293
|
-
```
|
|
294
|
-
|
|
295
|
-
**Example:**
|
|
296
|
-
|
|
297
|
-
```typescript
|
|
298
|
-
const event = await client.sendEvent(
|
|
299
|
-
{
|
|
300
|
-
name: 'INVENTORY.UPDATED',
|
|
301
|
-
retailerId: 'retailer-123',
|
|
302
|
-
entityType: 'InventoryPosition',
|
|
303
|
-
entityRef: 'SKU-001',
|
|
304
|
-
attributes: {
|
|
305
|
-
quantity: 100,
|
|
306
|
-
location: 'DC-001',
|
|
307
|
-
},
|
|
308
|
-
},
|
|
309
|
-
'async'
|
|
310
|
-
);
|
|
311
|
-
```
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
```
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
-
|
|
393
|
-
-
|
|
394
|
-
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
Create a new job for batch processing.
|
|
401
|
-
|
|
402
|
-
```typescript
|
|
403
|
-
const job = await client.createJob(
|
|
404
|
-
payload: FluentJobPayload
|
|
405
|
-
): Promise<FluentJob>
|
|
406
|
-
```
|
|
407
|
-
|
|
408
|
-
**FluentJobPayload Interface:**
|
|
409
|
-
|
|
410
|
-
```typescript
|
|
411
|
-
interface FluentJobPayload {
|
|
412
|
-
name: string; // Job name
|
|
413
|
-
retailerId: string; // Retailer ID (required)
|
|
414
|
-
meta?: Record<string, any>; // Job metadata (optional)
|
|
415
|
-
}
|
|
416
|
-
```
|
|
417
|
-
|
|
418
|
-
#### sendBatch Method
|
|
419
|
-
|
|
420
|
-
Send batch data to a job.
|
|
421
|
-
|
|
422
|
-
```typescript
|
|
423
|
-
const batch = await client.sendBatch(
|
|
424
|
-
jobId: string,
|
|
425
|
-
payload: FluentBatchPayload
|
|
426
|
-
): Promise<FluentBatch>
|
|
427
|
-
```
|
|
428
|
-
|
|
429
|
-
**FluentBatchPayload Interface:**
|
|
430
|
-
|
|
431
|
-
```typescript
|
|
432
|
-
interface FluentBatchPayload {
|
|
433
|
-
action: string; // Batch action (typically 'UPSERT')
|
|
434
|
-
entityType: string; // Entity type (e.g., 'INVENTORY', 'PRODUCT')
|
|
435
|
-
source?: string; // REQUIRED: Source system identifier (e.g., 'CSV_IMPORT', 'SFTP_FEED')
|
|
436
|
-
event?: string; // REQUIRED: Event identifier (e.g., 'INVENTORY_UPDATE', 'PRODUCT_SYNC')
|
|
437
|
-
catalogueRef?: string; // Optional catalogue reference
|
|
438
|
-
conditions?: { // Optional filtering conditions
|
|
439
|
-
hasRelatedInventoryQuantities?: Array<{
|
|
440
|
-
type: string;
|
|
441
|
-
status: string;
|
|
442
|
-
}>;
|
|
443
|
-
};
|
|
444
|
-
entities: any[]; // Entity data array
|
|
445
|
-
}
|
|
446
|
-
```
|
|
447
|
-
|
|
448
|
-
**IMPORTANT:** While `source` and `event` are marked as optional in the TypeScript interface, they are **REQUIRED** by the Fluent API. Always include them in your batch payloads.
|
|
449
|
-
|
|
450
|
-
**Example:**
|
|
451
|
-
|
|
452
|
-
```typescript
|
|
453
|
-
// Create job
|
|
454
|
-
const job = await client.createJob({
|
|
455
|
-
name: 'My Job',
|
|
456
|
-
retailerId: 'your-retailer-id',
|
|
457
|
-
});
|
|
458
|
-
|
|
459
|
-
// Send batch - source and event are REQUIRED
|
|
460
|
-
const batch = await client.sendBatch(job.id, {
|
|
461
|
-
action: BatchAction.UPSERT,
|
|
462
|
-
entityType: EntityType.INVENTORY,
|
|
463
|
-
source: 'S3_CSV_IMPORT', // REQUIRED: Source system identifier
|
|
464
|
-
event: 'INVENTORY_UPDATE', // REQUIRED: Event identifier
|
|
465
|
-
entities: [
|
|
466
|
-
{ ref: 'SKU-001', qty: 100, locationRef: 'DC-001' },
|
|
467
|
-
{ ref: 'SKU-002', qty: 50, locationRef: 'DC-001' },
|
|
468
|
-
],
|
|
469
|
-
});
|
|
470
|
-
```
|
|
471
|
-
|
|
472
|
-
## See Also
|
|
473
|
-
|
|
474
|
-
- [Module 3: Authentication](./api-reference-03-authentication.md) - OAuth2 and auth providers
|
|
475
|
-
- [Module 4: GraphQL Mapping](./api-reference-04-graphql-mapping.md) - GraphQL mutation mapping
|
|
476
|
-
- [Module 5: Services](./api-reference-05-services.md) - Core SDK services
|
|
477
|
-
- [Module 8: Types](./api-reference-08-types.md) - Complete type definitions
|
|
478
|
-
- [Examples: Client Initialization](../examples/client-initialization.ts)
|
|
479
|
-
|
|
480
|
-
---
|
|
481
|
-
|
|
482
|
-
**[← API Reference Home](../api-reference-readme.md)** | **[Next: Authentication →](./api-reference-03-authentication.md)**
|
|
1
|
+
# Module 1: Client API
|
|
2
|
+
|
|
3
|
+
**Level:** Beginner
|
|
4
|
+
**Category:** Core
|
|
5
|
+
|
|
6
|
+
## Overview
|
|
7
|
+
|
|
8
|
+
The FluentClient is the main entry point for interacting with Fluent Commerce APIs. This module covers client creation, configuration, and all primary operations including GraphQL queries/mutations, event handling, and batch processing.
|
|
9
|
+
|
|
10
|
+
## Table of Contents
|
|
11
|
+
|
|
12
|
+
- [Client Creation](#client-creation)
|
|
13
|
+
- [GraphQL Operations](#graphql-operations)
|
|
14
|
+
- [Event Operations](#event-operations)
|
|
15
|
+
- [Job & Batch Operations](#job-batch-operations)
|
|
16
|
+
- [See Also](#see-also)
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## FluentClient
|
|
21
|
+
|
|
22
|
+
The main client for interacting with Fluent Commerce APIs.
|
|
23
|
+
|
|
24
|
+
### Client Creation
|
|
25
|
+
|
|
26
|
+
#### createClient Function
|
|
27
|
+
|
|
28
|
+
Universal factory function that auto-detects the runtime environment.
|
|
29
|
+
|
|
30
|
+
```typescript
|
|
31
|
+
import { createClient } from '@fluentcommerce/fc-connect-sdk';
|
|
32
|
+
|
|
33
|
+
// Node.js environment with OAuth2
|
|
34
|
+
const client = await createClient({
|
|
35
|
+
config: {
|
|
36
|
+
baseUrl: 'https://api.fluentcommerce.com',
|
|
37
|
+
clientId: 'your-client-id',
|
|
38
|
+
clientSecret: 'your-client-secret',
|
|
39
|
+
username: 'your-username', // Optional - for password grant
|
|
40
|
+
password: 'your-password', // Optional - for password grant
|
|
41
|
+
},
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
// retailerId is optional on client config, but required in createJob payload or set via client.setRetailerId() beforehand
|
|
45
|
+
client.setRetailerId('your-retailer-id');
|
|
46
|
+
|
|
47
|
+
// Versori platform
|
|
48
|
+
const client = await createClient(ctx);
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
**Parameters:**
|
|
52
|
+
|
|
53
|
+
- `config: FluentClientConfig | VersoriContext` - Configuration object or Versori context
|
|
54
|
+
|
|
55
|
+
**Returns:**
|
|
56
|
+
|
|
57
|
+
- `Promise<FluentClient>` - Configured client instance
|
|
58
|
+
|
|
59
|
+
#### FluentClientConfig Interface
|
|
60
|
+
|
|
61
|
+
```typescript
|
|
62
|
+
interface FluentClientConfig {
|
|
63
|
+
baseUrl: string; // API endpoint
|
|
64
|
+
retailerId?: string; // Optional - only required for Job/Batch operations
|
|
65
|
+
clientId?: string; // OAuth2 client ID (required)
|
|
66
|
+
clientSecret?: string; // OAuth2 client secret (required)
|
|
67
|
+
username?: string; // OAuth2 username (optional - for password grant)
|
|
68
|
+
password?: string; // OAuth2 password (optional - for password grant)
|
|
69
|
+
timeout?: number; // Request timeout (ms)
|
|
70
|
+
retryAttempts?: number; // Retry count
|
|
71
|
+
retryDelay?: number; // Retry delay (ms)
|
|
72
|
+
/**
|
|
73
|
+
* Retry configuration with sensible defaults
|
|
74
|
+
* Override specific values as needed for fine-grained control
|
|
75
|
+
*/
|
|
76
|
+
retryConfig?: {
|
|
77
|
+
/** Maximum number of retry attempts for general requests (default: 3) */
|
|
78
|
+
maxRetries?: number;
|
|
79
|
+
/** Maximum number of retry attempts for authentication failures (default: 3) */
|
|
80
|
+
maxAuthRetries?: number;
|
|
81
|
+
/** Base delay in milliseconds before first retry (default: 1000) */
|
|
82
|
+
baseRetryDelayMs?: number;
|
|
83
|
+
/** Maximum delay in milliseconds for general retries (default: 10000) */
|
|
84
|
+
maxRetryDelayMs?: number;
|
|
85
|
+
/** Maximum delay in milliseconds for authentication retries (default: 5000) */
|
|
86
|
+
maxAuthRetryDelayMs?: number;
|
|
87
|
+
/** Token expiry buffer in seconds (default: 60) */
|
|
88
|
+
tokenExpiryBufferSeconds?: number;
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
**Note**: Logger is passed at the context level when calling `createClient({ config, logger })`, not inside the config object.
|
|
94
|
+
|
|
95
|
+
### GraphQL Operations
|
|
96
|
+
|
|
97
|
+
#### graphql Method
|
|
98
|
+
|
|
99
|
+
Execute a GraphQL query or mutation. Auto-detects operation type.
|
|
100
|
+
|
|
101
|
+
```typescript
|
|
102
|
+
async graphql<T = JsonValue>(payload: GraphQLPayload): Promise<GraphQLResponse<T>>
|
|
103
|
+
|
|
104
|
+
interface GraphQLPayload<T = Record<string, JsonValue>> {
|
|
105
|
+
query: string; // GraphQL query or mutation string
|
|
106
|
+
variables?: T; // Query/mutation variables (typed)
|
|
107
|
+
operationName?: string; // Optional operation name
|
|
108
|
+
pagination?: PaginationConfig; // Optional auto-pagination config
|
|
109
|
+
}
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
**Parameters:**
|
|
113
|
+
|
|
114
|
+
- `payload.query` - GraphQL query or mutation string
|
|
115
|
+
- `payload.variables` - Optional query/mutation variables
|
|
116
|
+
- `payload.pagination` - Optional auto-pagination configuration
|
|
117
|
+
|
|
118
|
+
**Returns:**
|
|
119
|
+
|
|
120
|
+
- `GraphQLResponse<T>` with data, errors, and extensions
|
|
121
|
+
|
|
122
|
+
**Example:**
|
|
123
|
+
|
|
124
|
+
```typescript
|
|
125
|
+
// Execute query
|
|
126
|
+
const result = await client.graphql({
|
|
127
|
+
query: `
|
|
128
|
+
query GetProducts($first: Int) {
|
|
129
|
+
products(first: $first) {
|
|
130
|
+
edges { node { id ref name } }
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
`,
|
|
134
|
+
variables: { first: 10 },
|
|
135
|
+
});
|
|
136
|
+
|
|
137
|
+
// Execute mutation (same method)
|
|
138
|
+
const result = await client.graphql({
|
|
139
|
+
query: `
|
|
140
|
+
mutation UpdateProduct($input: UpdateProductInput!) {
|
|
141
|
+
updateProduct(input: $input) {
|
|
142
|
+
id ref name
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
`,
|
|
146
|
+
variables: { input: { id: '123', name: 'Updated Product' } },
|
|
147
|
+
});
|
|
148
|
+
|
|
149
|
+
// With auto-pagination (forward pagination with cursor)
|
|
150
|
+
const result = await client.graphql({
|
|
151
|
+
query: `
|
|
152
|
+
query Products($first: Int!, $after: String) {
|
|
153
|
+
products(first: $first, after: $after) {
|
|
154
|
+
edges {
|
|
155
|
+
node { id ref name }
|
|
156
|
+
cursor
|
|
157
|
+
}
|
|
158
|
+
pageInfo {
|
|
159
|
+
hasNextPage
|
|
160
|
+
hasPreviousPage
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
`,
|
|
165
|
+
variables: { first: 50 }, // Page size
|
|
166
|
+
pagination: {
|
|
167
|
+
enabled: true,
|
|
168
|
+
maxPages: 10, // Fetch up to 10 pages (500 records)
|
|
169
|
+
maxRecords: 1000, // Or stop at 1000 records
|
|
170
|
+
delayMs: 100, // Wait 100ms between pages
|
|
171
|
+
},
|
|
172
|
+
});
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
> **Pagination Notes:**
|
|
176
|
+
> - Forward pagination (default): Uses `$first`/`$after` with `pageInfo.hasNextPage`
|
|
177
|
+
> - Backward pagination: Uses `$last`/`$before` with `pageInfo.hasPreviousPage` (set `pagination.direction='backward'`)
|
|
178
|
+
> - SDK automatically injects cursor values - do NOT include pagination variables in `variables` object
|
|
179
|
+
> - Always request `cursor` in `edges` and `pageInfo { hasNextPage hasPreviousPage }` in your query
|
|
180
|
+
|
|
181
|
+
#### query Helper Method
|
|
182
|
+
|
|
183
|
+
Convenience method that calls `graphql()` and returns just the data field.
|
|
184
|
+
|
|
185
|
+
```typescript
|
|
186
|
+
async query<T = JsonValue>(
|
|
187
|
+
queryOrPayload: string | GraphQLPayload,
|
|
188
|
+
variables?: Record<string, JsonValue>
|
|
189
|
+
): Promise<T | undefined>
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
**Example:**
|
|
193
|
+
|
|
194
|
+
```typescript
|
|
195
|
+
// Using string query
|
|
196
|
+
const orders = await client.graphql<{ orders: Order[] }>({
|
|
197
|
+
query: 'query { orders { id ref } }',
|
|
198
|
+
variables: {
|
|
199
|
+
status: 'ACTIVE',
|
|
200
|
+
},
|
|
201
|
+
});
|
|
202
|
+
|
|
203
|
+
// Using GraphQLPayload
|
|
204
|
+
const orders = await client.graphql({
|
|
205
|
+
query: 'query ($status: String) { orders(status: $status) { id ref } }',
|
|
206
|
+
variables: { status: 'ACTIVE' },
|
|
207
|
+
});
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
#### mutate Helper Method
|
|
211
|
+
|
|
212
|
+
Convenience method that calls `graphql()` and returns just the data field.
|
|
213
|
+
|
|
214
|
+
```typescript
|
|
215
|
+
async mutate<T = JsonValue>(
|
|
216
|
+
mutationOrPayload: string | GraphQLPayload,
|
|
217
|
+
variables?: Record<string, JsonValue>
|
|
218
|
+
): Promise<T | undefined>
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
**Example:**
|
|
222
|
+
|
|
223
|
+
```typescript
|
|
224
|
+
// Using string mutation
|
|
225
|
+
const result = await client.graphql<{ createOrder: { id: string } }>({
|
|
226
|
+
query: 'mutation { createOrder(input: { ref: "123" }) { id } }',
|
|
227
|
+
});
|
|
228
|
+
|
|
229
|
+
// Using GraphQLPayload
|
|
230
|
+
const result = await client.graphql({
|
|
231
|
+
query: 'mutation ($input: CreateOrderInput!) { createOrder(input: $input) { id } }',
|
|
232
|
+
variables: { input: { ref: '123' } },
|
|
233
|
+
});
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
### Event Operations
|
|
237
|
+
|
|
238
|
+
#### sendEvent Method
|
|
239
|
+
|
|
240
|
+
Send an event to Fluent Commerce.
|
|
241
|
+
|
|
242
|
+
```typescript
|
|
243
|
+
async sendEvent(event: FluentEvent, mode: FluentEventMode = 'async'): Promise<JsonValue>
|
|
244
|
+
|
|
245
|
+
type FluentEventMode = 'async' | 'sync';
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
#### Webhook Signature Validation (Fluent Rubix only)
|
|
249
|
+
|
|
250
|
+
> Note: This validation applies only to webhooks sent from Fluent Commerce Rubix workflows.
|
|
251
|
+
|
|
252
|
+
```typescript
|
|
253
|
+
import { WebhookValidationService, SignatureAlgorithm } from '@fluentcommerce/fc-connect-sdk';
|
|
254
|
+
|
|
255
|
+
const validator = new WebhookValidationService(
|
|
256
|
+
{ algorithm: SignatureAlgorithm.SHA512_WITH_RSA, strictValidation: true },
|
|
257
|
+
logger
|
|
258
|
+
);
|
|
259
|
+
|
|
260
|
+
const result = await validator.validateWebhookSignature(
|
|
261
|
+
JSON.stringify(requestBody),
|
|
262
|
+
headers['fluent-signature'],
|
|
263
|
+
process.env.FLUENT_WEBHOOK_PUBLIC_KEY!,
|
|
264
|
+
SignatureAlgorithm.SHA512_WITH_RSA
|
|
265
|
+
);
|
|
266
|
+
|
|
267
|
+
if (!result.isValid) throw new Error('Invalid Fluent webhook signature');
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
**Parameters:**
|
|
271
|
+
|
|
272
|
+
- `event` - Event payload (FluentEvent object)
|
|
273
|
+
- `mode` - Event mode: 'async' (default) or 'sync'
|
|
274
|
+
|
|
275
|
+
**Returns:**
|
|
276
|
+
|
|
277
|
+
- Event response data
|
|
278
|
+
|
|
279
|
+
**FluentEvent Interface:**
|
|
280
|
+
|
|
281
|
+
```typescript
|
|
282
|
+
interface FluentEvent {
|
|
283
|
+
name: string; // Event name
|
|
284
|
+
retailerId: string; // Retailer ID
|
|
285
|
+
entityType: string; // Entity type
|
|
286
|
+
entityRef?: string; // Entity reference
|
|
287
|
+
entityId?: string; // Entity ID
|
|
288
|
+
rootEntityType?: string; // Root entity type
|
|
289
|
+
rootEntityRef?: string; // Root entity reference
|
|
290
|
+
rootEntityId?: string; // Root entity ID
|
|
291
|
+
attributes?: Record<string, any>; // Event attributes
|
|
292
|
+
}
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
**Example:**
|
|
296
|
+
|
|
297
|
+
```typescript
|
|
298
|
+
const event = await client.sendEvent(
|
|
299
|
+
{
|
|
300
|
+
name: 'INVENTORY.UPDATED',
|
|
301
|
+
retailerId: 'retailer-123',
|
|
302
|
+
entityType: 'InventoryPosition',
|
|
303
|
+
entityRef: 'SKU-001',
|
|
304
|
+
attributes: {
|
|
305
|
+
quantity: 100,
|
|
306
|
+
location: 'DC-001',
|
|
307
|
+
},
|
|
308
|
+
},
|
|
309
|
+
'async'
|
|
310
|
+
);
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
### Job & Batch Operations
|
|
314
|
+
|
|
315
|
+
#### createJob Method
|
|
316
|
+
|
|
317
|
+
Create a new job for batch processing.
|
|
318
|
+
|
|
319
|
+
```typescript
|
|
320
|
+
const job = await client.createJob(
|
|
321
|
+
payload: FluentJobPayload
|
|
322
|
+
): Promise<FluentJob>
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
**FluentJobPayload Interface:**
|
|
326
|
+
|
|
327
|
+
```typescript
|
|
328
|
+
interface FluentJobPayload {
|
|
329
|
+
name: string; // Job name
|
|
330
|
+
retailerId: string; // Retailer ID (required)
|
|
331
|
+
meta?: Record<string, any>; // Job metadata (optional)
|
|
332
|
+
}
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
#### sendBatch Method
|
|
336
|
+
|
|
337
|
+
Send batch data to a job.
|
|
338
|
+
|
|
339
|
+
```typescript
|
|
340
|
+
const batch = await client.sendBatch(
|
|
341
|
+
jobId: string,
|
|
342
|
+
payload: FluentBatchPayload
|
|
343
|
+
): Promise<FluentBatch>
|
|
344
|
+
```
|
|
345
|
+
|
|
346
|
+
**FluentBatchPayload Interface:**
|
|
347
|
+
|
|
348
|
+
```typescript
|
|
349
|
+
interface FluentBatchPayload {
|
|
350
|
+
action: string; // Batch action (typically 'UPSERT')
|
|
351
|
+
entityType: string; // Entity type (e.g., 'INVENTORY', 'PRODUCT')
|
|
352
|
+
source?: string; // REQUIRED: Source system identifier (e.g., 'CSV_IMPORT', 'SFTP_FEED')
|
|
353
|
+
event?: string; // REQUIRED: Event identifier (e.g., 'INVENTORY_UPDATE', 'PRODUCT_SYNC')
|
|
354
|
+
catalogueRef?: string; // Optional catalogue reference
|
|
355
|
+
conditions?: { // Optional filtering conditions
|
|
356
|
+
hasRelatedInventoryQuantities?: Array<{
|
|
357
|
+
type: string;
|
|
358
|
+
status: string;
|
|
359
|
+
}>;
|
|
360
|
+
};
|
|
361
|
+
entities: any[]; // Entity data array
|
|
362
|
+
}
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
**IMPORTANT:** While `source` and `event` are marked as optional in the TypeScript interface, they are **REQUIRED** by the Fluent API. Always include them in your batch payloads.
|
|
366
|
+
|
|
367
|
+
**Example:**
|
|
368
|
+
|
|
369
|
+
```typescript
|
|
370
|
+
// Create job
|
|
371
|
+
const job = await client.createJob({
|
|
372
|
+
name: 'My Job',
|
|
373
|
+
retailerId: 'your-retailer-id',
|
|
374
|
+
});
|
|
375
|
+
|
|
376
|
+
// Send batch - source and event are REQUIRED
|
|
377
|
+
const batch = await client.sendBatch(job.id, {
|
|
378
|
+
action: BatchAction.UPSERT,
|
|
379
|
+
entityType: EntityType.INVENTORY,
|
|
380
|
+
source: 'S3_CSV_IMPORT', // REQUIRED: Source system identifier
|
|
381
|
+
event: 'INVENTORY_UPDATE', // REQUIRED: Event identifier
|
|
382
|
+
entities: [
|
|
383
|
+
{ ref: 'SKU-001', qty: 100, locationRef: 'DC-001' },
|
|
384
|
+
{ ref: 'SKU-002', qty: 50, locationRef: 'DC-001' },
|
|
385
|
+
],
|
|
386
|
+
});
|
|
387
|
+
```
|
|
388
|
+
|
|
389
|
+
## See Also
|
|
390
|
+
|
|
391
|
+
- [Module 3: Authentication](./api-reference-03-authentication.md) - OAuth2 and auth providers
|
|
392
|
+
- [Module 4: GraphQL Mapping](./api-reference-04-graphql-mapping.md) - GraphQL mutation mapping
|
|
393
|
+
- [Module 5: Services](./api-reference-05-services.md) - Core SDK services
|
|
394
|
+
- [Module 8: Types](./api-reference-08-types.md) - Complete type definitions
|
|
395
|
+
- [Examples: Client Initialization](../examples/client-initialization.ts)
|
|
396
|
+
|
|
397
|
+
---
|
|
398
|
+
|
|
399
|
+
**[← API Reference Home](../api-reference-readme.md)** | **[Next: Authentication →](./api-reference-03-authentication.md)**
|