@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,387 +1,387 @@
|
|
|
1
|
-
# Module 7: Troubleshooting
|
|
2
|
-
|
|
3
|
-
**Level:** Intermediate
|
|
4
|
-
**Category:** Debugging & Support
|
|
5
|
-
|
|
6
|
-
## Overview
|
|
7
|
-
|
|
8
|
-
Common data source issues and their solutions for S3 and SFTP integrations.
|
|
9
|
-
|
|
10
|
-
## Table of Contents
|
|
11
|
-
|
|
12
|
-
- [Connection Failures](#connection-failures)
|
|
13
|
-
- [Permission Errors](#permission-errors)
|
|
14
|
-
- [Memory Leaks](#memory-leaks)
|
|
15
|
-
- [Performance Bottlenecks](#performance-bottlenecks)
|
|
16
|
-
- [File Not Found Errors](#file-not-found-errors)
|
|
17
|
-
- [Timeout Issues](#timeout-issues)
|
|
18
|
-
- [Debug Mode](#debug-mode)
|
|
19
|
-
- [Common Error Messages](#common-error-messages)
|
|
20
|
-
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
## Connection Failures
|
|
24
|
-
|
|
25
|
-
### S3 Connection Issues
|
|
26
|
-
|
|
27
|
-
**Symptom:** `NetworkingError: getaddrinfo ENOTFOUND`
|
|
28
|
-
|
|
29
|
-
**Causes:**
|
|
30
|
-
- Invalid AWS region
|
|
31
|
-
- Network connectivity issues
|
|
32
|
-
- DNS resolution failures
|
|
33
|
-
|
|
34
|
-
**Solutions:**
|
|
35
|
-
```typescript
|
|
36
|
-
// Verify region
|
|
37
|
-
const s3 = new S3DataSource({
|
|
38
|
-
type: 'S3_CSV',
|
|
39
|
-
settings: {
|
|
40
|
-
region: 'us-east-1', // Verify correct region
|
|
41
|
-
bucket: 'my-bucket'
|
|
42
|
-
}
|
|
43
|
-
}, log);
|
|
44
|
-
|
|
45
|
-
// Test connection
|
|
46
|
-
try {
|
|
47
|
-
await s3.listFiles({ keyPrefix: 'test/' });
|
|
48
|
-
console.log('S3 connection successful');
|
|
49
|
-
} catch (error) {
|
|
50
|
-
console.error('S3 connection failed:', error);
|
|
51
|
-
}
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
### SFTP Connection Issues
|
|
55
|
-
|
|
56
|
-
**Symptom:** `Error: All configured authentication methods failed`
|
|
57
|
-
|
|
58
|
-
**Causes:**
|
|
59
|
-
- Wrong username/password
|
|
60
|
-
- Invalid private key
|
|
61
|
-
- Host key verification failure
|
|
62
|
-
|
|
63
|
-
**Solutions:**
|
|
64
|
-
```typescript
|
|
65
|
-
// Check credentials
|
|
66
|
-
const sftp = new SftpDataSource({
|
|
67
|
-
type: 'SFTP_CSV',
|
|
68
|
-
settings: {
|
|
69
|
-
host: 'sftp.example.com',
|
|
70
|
-
port: 22,
|
|
71
|
-
username: process.env.SFTP_USERNAME,
|
|
72
|
-
password: process.env.SFTP_PASSWORD
|
|
73
|
-
}
|
|
74
|
-
}, log);
|
|
75
|
-
|
|
76
|
-
// Test connection
|
|
77
|
-
try {
|
|
78
|
-
await sftp.listFiles({ remotePath: '/' });
|
|
79
|
-
console.log('SFTP connection successful');
|
|
80
|
-
} catch (error) {
|
|
81
|
-
console.error('SFTP connection failed:', error.message);
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
await sftp.dispose();
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
---
|
|
88
|
-
|
|
89
|
-
## Permission Errors
|
|
90
|
-
|
|
91
|
-
### S3 Access Denied
|
|
92
|
-
|
|
93
|
-
**Symptom:** `AccessDenied: Access Denied`
|
|
94
|
-
|
|
95
|
-
**Causes:**
|
|
96
|
-
- Missing IAM permissions
|
|
97
|
-
- Bucket policy restrictions
|
|
98
|
-
- Wrong AWS credentials
|
|
99
|
-
|
|
100
|
-
**Solutions:**
|
|
101
|
-
|
|
102
|
-
**Required IAM Permissions:**
|
|
103
|
-
```json
|
|
104
|
-
{
|
|
105
|
-
"Version": "2012-10-17",
|
|
106
|
-
"Statement": [
|
|
107
|
-
{
|
|
108
|
-
"Effect": "Allow",
|
|
109
|
-
"Action": [
|
|
110
|
-
"s3:ListBucket",
|
|
111
|
-
"s3:GetObject",
|
|
112
|
-
"s3:PutObject",
|
|
113
|
-
"s3:DeleteObject"
|
|
114
|
-
],
|
|
115
|
-
"Resource": [
|
|
116
|
-
"arn:aws:s3:::my-bucket",
|
|
117
|
-
"arn:aws:s3:::my-bucket/*"
|
|
118
|
-
]
|
|
119
|
-
}
|
|
120
|
-
]
|
|
121
|
-
}
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
**Verify Credentials:**
|
|
125
|
-
```typescript
|
|
126
|
-
console.log('Using AWS credentials:', {
|
|
127
|
-
accessKeyId: process.env.AWS_ACCESS_KEY_ID?.substring(0, 4) + '...',
|
|
128
|
-
region: process.env.AWS_REGION
|
|
129
|
-
});
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
### SFTP Permission Denied
|
|
133
|
-
|
|
134
|
-
**Symptom:** `Error: Permission denied`
|
|
135
|
-
|
|
136
|
-
**Causes:**
|
|
137
|
-
- Insufficient file permissions
|
|
138
|
-
- Wrong directory path
|
|
139
|
-
- User lacks access to path
|
|
140
|
-
|
|
141
|
-
**Solutions:**
|
|
142
|
-
```typescript
|
|
143
|
-
// Verify path exists
|
|
144
|
-
const files = await sftp.listFiles({ remotePath: '/' });
|
|
145
|
-
console.log('Root directory accessible:', files.length > 0);
|
|
146
|
-
|
|
147
|
-
// Check file permissions
|
|
148
|
-
await sftp.readFile({
|
|
149
|
-
remotePath: '/path',
|
|
150
|
-
filename: 'test.txt'
|
|
151
|
-
});
|
|
152
|
-
```
|
|
153
|
-
|
|
154
|
-
---
|
|
155
|
-
|
|
156
|
-
## Memory Leaks
|
|
157
|
-
|
|
158
|
-
### Undisposed Connections
|
|
159
|
-
|
|
160
|
-
**Symptom:** Memory usage grows over time
|
|
161
|
-
|
|
162
|
-
**Cause:** Not disposing data sources
|
|
163
|
-
|
|
164
|
-
**Solution:**
|
|
165
|
-
```typescript
|
|
166
|
-
// ✅ CORRECT: Always dispose
|
|
167
|
-
const s3 = new S3DataSource(config, log);
|
|
168
|
-
try {
|
|
169
|
-
await s3.listFiles({ keyPrefix: 'data/' });
|
|
170
|
-
} finally {
|
|
171
|
-
await s3.dispose(); // Always dispose!
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
// ✅ CORRECT: Use try-finally for SFTP too
|
|
175
|
-
const sftp = new SftpDataSource(config, log);
|
|
176
|
-
try {
|
|
177
|
-
await sftp.listFiles({ remotePath: '/data' });
|
|
178
|
-
} finally {
|
|
179
|
-
await sftp.dispose();
|
|
180
|
-
}
|
|
181
|
-
```
|
|
182
|
-
|
|
183
|
-
### Large File Accumulation
|
|
184
|
-
|
|
185
|
-
**Symptom:** Out of memory errors when processing large files
|
|
186
|
-
|
|
187
|
-
**Cause:** Loading entire files into memory
|
|
188
|
-
|
|
189
|
-
**Solution:** Use streaming
|
|
190
|
-
```typescript
|
|
191
|
-
// ❌ WRONG: Load entire file
|
|
192
|
-
const content = await s3.readFile('large-file.csv');
|
|
193
|
-
|
|
194
|
-
// ✅ CORRECT: Stream large files
|
|
195
|
-
const stream = await s3.readFileStream('large-file.csv');
|
|
196
|
-
for await (const chunk of stream) {
|
|
197
|
-
await processChunk(chunk);
|
|
198
|
-
}
|
|
199
|
-
```
|
|
200
|
-
|
|
201
|
-
---
|
|
202
|
-
|
|
203
|
-
## Performance Bottlenecks
|
|
204
|
-
|
|
205
|
-
### Slow File Listing
|
|
206
|
-
|
|
207
|
-
**Symptom:** `listFiles()` takes minutes
|
|
208
|
-
|
|
209
|
-
**Cause:** Too many files in bucket/directory
|
|
210
|
-
|
|
211
|
-
**Solution:** Use prefix filtering
|
|
212
|
-
```typescript
|
|
213
|
-
// ❌ SLOW: List entire bucket
|
|
214
|
-
const allFiles = await s3.listFiles({});
|
|
215
|
-
|
|
216
|
-
// ✅ FAST: Filter by prefix
|
|
217
|
-
const todayFiles = await s3.listFiles({
|
|
218
|
-
keyPrefix: `data/date=${new Date().toISOString().split('T')[0]}/`
|
|
219
|
-
});
|
|
220
|
-
```
|
|
221
|
-
|
|
222
|
-
### Sequential File Processing
|
|
223
|
-
|
|
224
|
-
**Symptom:** Processing many files takes hours
|
|
225
|
-
|
|
226
|
-
**Cause:** Processing files one at a time
|
|
227
|
-
|
|
228
|
-
**Solution:** Parallel processing
|
|
229
|
-
```typescript
|
|
230
|
-
// ✅ Process files in parallel
|
|
231
|
-
const files = await s3.listFiles({ keyPrefix: 'data/' });
|
|
232
|
-
|
|
233
|
-
const CONCURRENCY = 5;
|
|
234
|
-
for (let i = 0; i < files.length; i += CONCURRENCY) {
|
|
235
|
-
const chunk = files.slice(i, i + CONCURRENCY);
|
|
236
|
-
await Promise.all(chunk.map(file => processFile(file)));
|
|
237
|
-
}
|
|
238
|
-
```
|
|
239
|
-
|
|
240
|
-
---
|
|
241
|
-
|
|
242
|
-
## File Not Found Errors
|
|
243
|
-
|
|
244
|
-
### S3 NoSuchKey
|
|
245
|
-
|
|
246
|
-
**Symptom:** `NoSuchKey: The specified key does not exist`
|
|
247
|
-
|
|
248
|
-
**Cause:** File doesn't exist or wrong key
|
|
249
|
-
|
|
250
|
-
**Solution:**
|
|
251
|
-
```typescript
|
|
252
|
-
// Check if file exists
|
|
253
|
-
const files = await s3.listFiles({
|
|
254
|
-
keyPrefix: 'data/',
|
|
255
|
-
filePattern: 'inventory.csv'
|
|
256
|
-
});
|
|
257
|
-
|
|
258
|
-
if (files.length === 0) {
|
|
259
|
-
console.error('File not found');
|
|
260
|
-
} else {
|
|
261
|
-
const content = await s3.readFile(files[0].key);
|
|
262
|
-
}
|
|
263
|
-
```
|
|
264
|
-
|
|
265
|
-
### SFTP File Not Found
|
|
266
|
-
|
|
267
|
-
**Symptom:** `Error: No such file`
|
|
268
|
-
|
|
269
|
-
**Cause:** Wrong path or filename
|
|
270
|
-
|
|
271
|
-
**Solution:**
|
|
272
|
-
```typescript
|
|
273
|
-
// List directory contents
|
|
274
|
-
const files = await sftp.listFiles({ remotePath: '/data' });
|
|
275
|
-
console.log('Available files:', files.map(f => f.filename));
|
|
276
|
-
|
|
277
|
-
// Use exact filename from listing
|
|
278
|
-
if (files.length > 0) {
|
|
279
|
-
const content = await sftp.readFile({
|
|
280
|
-
remotePath: '/data',
|
|
281
|
-
filename: files[0].filename
|
|
282
|
-
});
|
|
283
|
-
}
|
|
284
|
-
```
|
|
285
|
-
|
|
286
|
-
---
|
|
287
|
-
|
|
288
|
-
## Timeout Issues
|
|
289
|
-
|
|
290
|
-
### S3 Request Timeout
|
|
291
|
-
|
|
292
|
-
**Symptom:** `RequestTimeout: Request did not complete within timeout`
|
|
293
|
-
|
|
294
|
-
**Cause:** Network issues or large file
|
|
295
|
-
|
|
296
|
-
**Solution:** Increase timeout
|
|
297
|
-
```typescript
|
|
298
|
-
const s3 = new S3DataSource({
|
|
299
|
-
type: 'S3_CSV',
|
|
300
|
-
settings: {
|
|
301
|
-
bucket: 'my-bucket',
|
|
302
|
-
region: 'us-east-1',
|
|
303
|
-
requestTimeout: 60000 // 60 seconds
|
|
304
|
-
}
|
|
305
|
-
}, log);
|
|
306
|
-
```
|
|
307
|
-
|
|
308
|
-
### SFTP Connection Timeout
|
|
309
|
-
|
|
310
|
-
**Symptom:** `Error: Timeout while connecting to server`
|
|
311
|
-
|
|
312
|
-
**Cause:** Slow network or server issues
|
|
313
|
-
|
|
314
|
-
**Solution:**
|
|
315
|
-
```typescript
|
|
316
|
-
const sftp = new SftpDataSource({
|
|
317
|
-
type: 'SFTP_CSV',
|
|
318
|
-
settings: {
|
|
319
|
-
host: 'sftp.example.com',
|
|
320
|
-
port: 22,
|
|
321
|
-
connectionTimeout: 30000 // 30 seconds
|
|
322
|
-
}
|
|
323
|
-
}, log);
|
|
324
|
-
```
|
|
325
|
-
|
|
326
|
-
---
|
|
327
|
-
|
|
328
|
-
## Debug Mode
|
|
329
|
-
|
|
330
|
-
Enable verbose logging to debug issues:
|
|
331
|
-
|
|
332
|
-
```typescript
|
|
333
|
-
import { createConsoleLogger, toStructuredLogger } from '@fluentcommerce/fc-connect-sdk';
|
|
334
|
-
|
|
335
|
-
const logger = toStructuredLogger(createConsoleLogger(), {
|
|
336
|
-
logLevel: 'debug' // Enable debug logs
|
|
337
|
-
});
|
|
338
|
-
|
|
339
|
-
const s3 = new S3DataSource(config, logger);
|
|
340
|
-
|
|
341
|
-
// Now all operations log detailed info
|
|
342
|
-
await s3.listFiles({ keyPrefix: 'data/' });
|
|
343
|
-
// DEBUG: Listing objects in bucket my-bucket with prefix data/
|
|
344
|
-
// DEBUG: Found 5 objects matching pattern
|
|
345
|
-
```
|
|
346
|
-
|
|
347
|
-
---
|
|
348
|
-
|
|
349
|
-
## Common Error Messages
|
|
350
|
-
|
|
351
|
-
### S3 Errors
|
|
352
|
-
|
|
353
|
-
| Error | Cause | Solution |
|
|
354
|
-
|-------|-------|----------|
|
|
355
|
-
| `NoSuchBucket` | Bucket doesn't exist | Verify bucket name |
|
|
356
|
-
| `AccessDenied` | Missing IAM permissions | Add required permissions |
|
|
357
|
-
| `InvalidBucketName` | Invalid bucket name | Use valid S3 bucket name |
|
|
358
|
-
| `SignatureDoesNotMatch` | Wrong AWS secret key | Verify credentials |
|
|
359
|
-
|
|
360
|
-
### SFTP Errors
|
|
361
|
-
|
|
362
|
-
| Error | Cause | Solution |
|
|
363
|
-
|-------|-------|----------|
|
|
364
|
-
| `All configured authentication methods failed` | Wrong credentials | Verify username/password |
|
|
365
|
-
| `Permission denied` | Insufficient permissions | Check file/directory permissions |
|
|
366
|
-
| `No such file` | File doesn't exist | Verify path and filename |
|
|
367
|
-
| `Connection timeout` | Network issues | Increase timeout, check network |
|
|
368
|
-
|
|
369
|
-
---
|
|
370
|
-
|
|
371
|
-
## See Also
|
|
372
|
-
|
|
373
|
-
**Related Modules:**
|
|
374
|
-
- [Module 01: Foundations](./data-sources-01-foundations.md) - Basic setup
|
|
375
|
-
- [Module 02: S3 Operations](./data-sources-02-s3-operations.md) - S3 API
|
|
376
|
-
- [Module 03: SFTP Operations](./data-sources-03-sftp-operations.md) - SFTP API
|
|
377
|
-
- [Module 05: Advanced Topics](./data-sources-05-advanced-topics.md) - Performance tuning
|
|
378
|
-
|
|
379
|
-
**Troubleshooting Guides:**
|
|
380
|
-
- [Quick Reference](../../../00-START-HERE/troubleshooting-quick-reference.md) - Common fixes
|
|
381
|
-
|
|
382
|
-
---
|
|
383
|
-
|
|
384
|
-
**Navigation:**
|
|
385
|
-
- [Back to Module List](./readme.md)
|
|
386
|
-
- [Previous: Module 06 - Integration Patterns](./data-sources-06-integration-patterns.md)
|
|
387
|
-
- [Next: Module 08 - API Reference](./data-sources-08-api-reference.md)
|
|
1
|
+
# Module 7: Troubleshooting
|
|
2
|
+
|
|
3
|
+
**Level:** Intermediate
|
|
4
|
+
**Category:** Debugging & Support
|
|
5
|
+
|
|
6
|
+
## Overview
|
|
7
|
+
|
|
8
|
+
Common data source issues and their solutions for S3 and SFTP integrations.
|
|
9
|
+
|
|
10
|
+
## Table of Contents
|
|
11
|
+
|
|
12
|
+
- [Connection Failures](#connection-failures)
|
|
13
|
+
- [Permission Errors](#permission-errors)
|
|
14
|
+
- [Memory Leaks](#memory-leaks)
|
|
15
|
+
- [Performance Bottlenecks](#performance-bottlenecks)
|
|
16
|
+
- [File Not Found Errors](#file-not-found-errors)
|
|
17
|
+
- [Timeout Issues](#timeout-issues)
|
|
18
|
+
- [Debug Mode](#debug-mode)
|
|
19
|
+
- [Common Error Messages](#common-error-messages)
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Connection Failures
|
|
24
|
+
|
|
25
|
+
### S3 Connection Issues
|
|
26
|
+
|
|
27
|
+
**Symptom:** `NetworkingError: getaddrinfo ENOTFOUND`
|
|
28
|
+
|
|
29
|
+
**Causes:**
|
|
30
|
+
- Invalid AWS region
|
|
31
|
+
- Network connectivity issues
|
|
32
|
+
- DNS resolution failures
|
|
33
|
+
|
|
34
|
+
**Solutions:**
|
|
35
|
+
```typescript
|
|
36
|
+
// Verify region
|
|
37
|
+
const s3 = new S3DataSource({
|
|
38
|
+
type: 'S3_CSV',
|
|
39
|
+
settings: {
|
|
40
|
+
region: 'us-east-1', // Verify correct region
|
|
41
|
+
bucket: 'my-bucket'
|
|
42
|
+
}
|
|
43
|
+
}, log);
|
|
44
|
+
|
|
45
|
+
// Test connection
|
|
46
|
+
try {
|
|
47
|
+
await s3.listFiles({ keyPrefix: 'test/' });
|
|
48
|
+
console.log('S3 connection successful');
|
|
49
|
+
} catch (error) {
|
|
50
|
+
console.error('S3 connection failed:', error);
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### SFTP Connection Issues
|
|
55
|
+
|
|
56
|
+
**Symptom:** `Error: All configured authentication methods failed`
|
|
57
|
+
|
|
58
|
+
**Causes:**
|
|
59
|
+
- Wrong username/password
|
|
60
|
+
- Invalid private key
|
|
61
|
+
- Host key verification failure
|
|
62
|
+
|
|
63
|
+
**Solutions:**
|
|
64
|
+
```typescript
|
|
65
|
+
// Check credentials
|
|
66
|
+
const sftp = new SftpDataSource({
|
|
67
|
+
type: 'SFTP_CSV',
|
|
68
|
+
settings: {
|
|
69
|
+
host: 'sftp.example.com',
|
|
70
|
+
port: 22,
|
|
71
|
+
username: process.env.SFTP_USERNAME,
|
|
72
|
+
password: process.env.SFTP_PASSWORD
|
|
73
|
+
}
|
|
74
|
+
}, log);
|
|
75
|
+
|
|
76
|
+
// Test connection
|
|
77
|
+
try {
|
|
78
|
+
await sftp.listFiles({ remotePath: '/' });
|
|
79
|
+
console.log('SFTP connection successful');
|
|
80
|
+
} catch (error) {
|
|
81
|
+
console.error('SFTP connection failed:', error.message);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
await sftp.dispose();
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## Permission Errors
|
|
90
|
+
|
|
91
|
+
### S3 Access Denied
|
|
92
|
+
|
|
93
|
+
**Symptom:** `AccessDenied: Access Denied`
|
|
94
|
+
|
|
95
|
+
**Causes:**
|
|
96
|
+
- Missing IAM permissions
|
|
97
|
+
- Bucket policy restrictions
|
|
98
|
+
- Wrong AWS credentials
|
|
99
|
+
|
|
100
|
+
**Solutions:**
|
|
101
|
+
|
|
102
|
+
**Required IAM Permissions:**
|
|
103
|
+
```json
|
|
104
|
+
{
|
|
105
|
+
"Version": "2012-10-17",
|
|
106
|
+
"Statement": [
|
|
107
|
+
{
|
|
108
|
+
"Effect": "Allow",
|
|
109
|
+
"Action": [
|
|
110
|
+
"s3:ListBucket",
|
|
111
|
+
"s3:GetObject",
|
|
112
|
+
"s3:PutObject",
|
|
113
|
+
"s3:DeleteObject"
|
|
114
|
+
],
|
|
115
|
+
"Resource": [
|
|
116
|
+
"arn:aws:s3:::my-bucket",
|
|
117
|
+
"arn:aws:s3:::my-bucket/*"
|
|
118
|
+
]
|
|
119
|
+
}
|
|
120
|
+
]
|
|
121
|
+
}
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
**Verify Credentials:**
|
|
125
|
+
```typescript
|
|
126
|
+
console.log('Using AWS credentials:', {
|
|
127
|
+
accessKeyId: process.env.AWS_ACCESS_KEY_ID?.substring(0, 4) + '...',
|
|
128
|
+
region: process.env.AWS_REGION
|
|
129
|
+
});
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### SFTP Permission Denied
|
|
133
|
+
|
|
134
|
+
**Symptom:** `Error: Permission denied`
|
|
135
|
+
|
|
136
|
+
**Causes:**
|
|
137
|
+
- Insufficient file permissions
|
|
138
|
+
- Wrong directory path
|
|
139
|
+
- User lacks access to path
|
|
140
|
+
|
|
141
|
+
**Solutions:**
|
|
142
|
+
```typescript
|
|
143
|
+
// Verify path exists
|
|
144
|
+
const files = await sftp.listFiles({ remotePath: '/' });
|
|
145
|
+
console.log('Root directory accessible:', files.length > 0);
|
|
146
|
+
|
|
147
|
+
// Check file permissions
|
|
148
|
+
await sftp.readFile({
|
|
149
|
+
remotePath: '/path',
|
|
150
|
+
filename: 'test.txt'
|
|
151
|
+
});
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## Memory Leaks
|
|
157
|
+
|
|
158
|
+
### Undisposed Connections
|
|
159
|
+
|
|
160
|
+
**Symptom:** Memory usage grows over time
|
|
161
|
+
|
|
162
|
+
**Cause:** Not disposing data sources
|
|
163
|
+
|
|
164
|
+
**Solution:**
|
|
165
|
+
```typescript
|
|
166
|
+
// ✅ CORRECT: Always dispose
|
|
167
|
+
const s3 = new S3DataSource(config, log);
|
|
168
|
+
try {
|
|
169
|
+
await s3.listFiles({ keyPrefix: 'data/' });
|
|
170
|
+
} finally {
|
|
171
|
+
await s3.dispose(); // Always dispose!
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
// ✅ CORRECT: Use try-finally for SFTP too
|
|
175
|
+
const sftp = new SftpDataSource(config, log);
|
|
176
|
+
try {
|
|
177
|
+
await sftp.listFiles({ remotePath: '/data' });
|
|
178
|
+
} finally {
|
|
179
|
+
await sftp.dispose();
|
|
180
|
+
}
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
### Large File Accumulation
|
|
184
|
+
|
|
185
|
+
**Symptom:** Out of memory errors when processing large files
|
|
186
|
+
|
|
187
|
+
**Cause:** Loading entire files into memory
|
|
188
|
+
|
|
189
|
+
**Solution:** Use streaming
|
|
190
|
+
```typescript
|
|
191
|
+
// ❌ WRONG: Load entire file
|
|
192
|
+
const content = await s3.readFile('large-file.csv');
|
|
193
|
+
|
|
194
|
+
// ✅ CORRECT: Stream large files
|
|
195
|
+
const stream = await s3.readFileStream('large-file.csv');
|
|
196
|
+
for await (const chunk of stream) {
|
|
197
|
+
await processChunk(chunk);
|
|
198
|
+
}
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
## Performance Bottlenecks
|
|
204
|
+
|
|
205
|
+
### Slow File Listing
|
|
206
|
+
|
|
207
|
+
**Symptom:** `listFiles()` takes minutes
|
|
208
|
+
|
|
209
|
+
**Cause:** Too many files in bucket/directory
|
|
210
|
+
|
|
211
|
+
**Solution:** Use prefix filtering
|
|
212
|
+
```typescript
|
|
213
|
+
// ❌ SLOW: List entire bucket
|
|
214
|
+
const allFiles = await s3.listFiles({});
|
|
215
|
+
|
|
216
|
+
// ✅ FAST: Filter by prefix
|
|
217
|
+
const todayFiles = await s3.listFiles({
|
|
218
|
+
keyPrefix: `data/date=${new Date().toISOString().split('T')[0]}/`
|
|
219
|
+
});
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
### Sequential File Processing
|
|
223
|
+
|
|
224
|
+
**Symptom:** Processing many files takes hours
|
|
225
|
+
|
|
226
|
+
**Cause:** Processing files one at a time
|
|
227
|
+
|
|
228
|
+
**Solution:** Parallel processing
|
|
229
|
+
```typescript
|
|
230
|
+
// ✅ Process files in parallel
|
|
231
|
+
const files = await s3.listFiles({ keyPrefix: 'data/' });
|
|
232
|
+
|
|
233
|
+
const CONCURRENCY = 5;
|
|
234
|
+
for (let i = 0; i < files.length; i += CONCURRENCY) {
|
|
235
|
+
const chunk = files.slice(i, i + CONCURRENCY);
|
|
236
|
+
await Promise.all(chunk.map(file => processFile(file)));
|
|
237
|
+
}
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
---
|
|
241
|
+
|
|
242
|
+
## File Not Found Errors
|
|
243
|
+
|
|
244
|
+
### S3 NoSuchKey
|
|
245
|
+
|
|
246
|
+
**Symptom:** `NoSuchKey: The specified key does not exist`
|
|
247
|
+
|
|
248
|
+
**Cause:** File doesn't exist or wrong key
|
|
249
|
+
|
|
250
|
+
**Solution:**
|
|
251
|
+
```typescript
|
|
252
|
+
// Check if file exists
|
|
253
|
+
const files = await s3.listFiles({
|
|
254
|
+
keyPrefix: 'data/',
|
|
255
|
+
filePattern: 'inventory.csv'
|
|
256
|
+
});
|
|
257
|
+
|
|
258
|
+
if (files.length === 0) {
|
|
259
|
+
console.error('File not found');
|
|
260
|
+
} else {
|
|
261
|
+
const content = await s3.readFile(files[0].key);
|
|
262
|
+
}
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
### SFTP File Not Found
|
|
266
|
+
|
|
267
|
+
**Symptom:** `Error: No such file`
|
|
268
|
+
|
|
269
|
+
**Cause:** Wrong path or filename
|
|
270
|
+
|
|
271
|
+
**Solution:**
|
|
272
|
+
```typescript
|
|
273
|
+
// List directory contents
|
|
274
|
+
const files = await sftp.listFiles({ remotePath: '/data' });
|
|
275
|
+
console.log('Available files:', files.map(f => f.filename));
|
|
276
|
+
|
|
277
|
+
// Use exact filename from listing
|
|
278
|
+
if (files.length > 0) {
|
|
279
|
+
const content = await sftp.readFile({
|
|
280
|
+
remotePath: '/data',
|
|
281
|
+
filename: files[0].filename
|
|
282
|
+
});
|
|
283
|
+
}
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
---
|
|
287
|
+
|
|
288
|
+
## Timeout Issues
|
|
289
|
+
|
|
290
|
+
### S3 Request Timeout
|
|
291
|
+
|
|
292
|
+
**Symptom:** `RequestTimeout: Request did not complete within timeout`
|
|
293
|
+
|
|
294
|
+
**Cause:** Network issues or large file
|
|
295
|
+
|
|
296
|
+
**Solution:** Increase timeout
|
|
297
|
+
```typescript
|
|
298
|
+
const s3 = new S3DataSource({
|
|
299
|
+
type: 'S3_CSV',
|
|
300
|
+
settings: {
|
|
301
|
+
bucket: 'my-bucket',
|
|
302
|
+
region: 'us-east-1',
|
|
303
|
+
requestTimeout: 60000 // 60 seconds
|
|
304
|
+
}
|
|
305
|
+
}, log);
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
### SFTP Connection Timeout
|
|
309
|
+
|
|
310
|
+
**Symptom:** `Error: Timeout while connecting to server`
|
|
311
|
+
|
|
312
|
+
**Cause:** Slow network or server issues
|
|
313
|
+
|
|
314
|
+
**Solution:**
|
|
315
|
+
```typescript
|
|
316
|
+
const sftp = new SftpDataSource({
|
|
317
|
+
type: 'SFTP_CSV',
|
|
318
|
+
settings: {
|
|
319
|
+
host: 'sftp.example.com',
|
|
320
|
+
port: 22,
|
|
321
|
+
connectionTimeout: 30000 // 30 seconds
|
|
322
|
+
}
|
|
323
|
+
}, log);
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
---
|
|
327
|
+
|
|
328
|
+
## Debug Mode
|
|
329
|
+
|
|
330
|
+
Enable verbose logging to debug issues:
|
|
331
|
+
|
|
332
|
+
```typescript
|
|
333
|
+
import { createConsoleLogger, toStructuredLogger } from '@fluentcommerce/fc-connect-sdk';
|
|
334
|
+
|
|
335
|
+
const logger = toStructuredLogger(createConsoleLogger(), {
|
|
336
|
+
logLevel: 'debug' // Enable debug logs
|
|
337
|
+
});
|
|
338
|
+
|
|
339
|
+
const s3 = new S3DataSource(config, logger);
|
|
340
|
+
|
|
341
|
+
// Now all operations log detailed info
|
|
342
|
+
await s3.listFiles({ keyPrefix: 'data/' });
|
|
343
|
+
// DEBUG: Listing objects in bucket my-bucket with prefix data/
|
|
344
|
+
// DEBUG: Found 5 objects matching pattern
|
|
345
|
+
```
|
|
346
|
+
|
|
347
|
+
---
|
|
348
|
+
|
|
349
|
+
## Common Error Messages
|
|
350
|
+
|
|
351
|
+
### S3 Errors
|
|
352
|
+
|
|
353
|
+
| Error | Cause | Solution |
|
|
354
|
+
|-------|-------|----------|
|
|
355
|
+
| `NoSuchBucket` | Bucket doesn't exist | Verify bucket name |
|
|
356
|
+
| `AccessDenied` | Missing IAM permissions | Add required permissions |
|
|
357
|
+
| `InvalidBucketName` | Invalid bucket name | Use valid S3 bucket name |
|
|
358
|
+
| `SignatureDoesNotMatch` | Wrong AWS secret key | Verify credentials |
|
|
359
|
+
|
|
360
|
+
### SFTP Errors
|
|
361
|
+
|
|
362
|
+
| Error | Cause | Solution |
|
|
363
|
+
|-------|-------|----------|
|
|
364
|
+
| `All configured authentication methods failed` | Wrong credentials | Verify username/password |
|
|
365
|
+
| `Permission denied` | Insufficient permissions | Check file/directory permissions |
|
|
366
|
+
| `No such file` | File doesn't exist | Verify path and filename |
|
|
367
|
+
| `Connection timeout` | Network issues | Increase timeout, check network |
|
|
368
|
+
|
|
369
|
+
---
|
|
370
|
+
|
|
371
|
+
## See Also
|
|
372
|
+
|
|
373
|
+
**Related Modules:**
|
|
374
|
+
- [Module 01: Foundations](./data-sources-01-foundations.md) - Basic setup
|
|
375
|
+
- [Module 02: S3 Operations](./data-sources-02-s3-operations.md) - S3 API
|
|
376
|
+
- [Module 03: SFTP Operations](./data-sources-03-sftp-operations.md) - SFTP API
|
|
377
|
+
- [Module 05: Advanced Topics](./data-sources-05-advanced-topics.md) - Performance tuning
|
|
378
|
+
|
|
379
|
+
**Troubleshooting Guides:**
|
|
380
|
+
- [Quick Reference](../../../00-START-HERE/troubleshooting-quick-reference.md) - Common fixes
|
|
381
|
+
|
|
382
|
+
---
|
|
383
|
+
|
|
384
|
+
**Navigation:**
|
|
385
|
+
- [Back to Module List](./readme.md)
|
|
386
|
+
- [Previous: Module 06 - Integration Patterns](./data-sources-06-integration-patterns.md)
|
|
387
|
+
- [Next: Module 08 - API Reference](./data-sources-08-api-reference.md)
|