@fluentcommerce/fc-connect-sdk 0.1.54 → 0.1.56
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/README.md +11 -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,355 +1,355 @@
|
|
|
1
|
-
# Module 1: Parser Foundations
|
|
2
|
-
|
|
3
|
-
**Level:** Beginner
|
|
4
|
-
**Estimated Time:** 15 minutes
|
|
5
|
-
|
|
6
|
-
## Overview
|
|
7
|
-
|
|
8
|
-
This module introduces the four parser services available in the Fluent Connect SDK and helps you understand when to use each one. You'll learn about data format characteristics, parser capabilities, and how to make the right choice for your integration.
|
|
9
|
-
|
|
10
|
-
## Learning Objectives
|
|
11
|
-
|
|
12
|
-
By the end of this module, you will:
|
|
13
|
-
- ✅ Understand the four parser types (CSV, JSON, XML, Parquet)
|
|
14
|
-
- ✅ Know which parser to use for different data sources
|
|
15
|
-
- ✅ Understand basic parser architecture and design patterns
|
|
16
|
-
- ✅ Recognize common use cases for each format
|
|
17
|
-
|
|
18
|
-
## What is a Parser?
|
|
19
|
-
|
|
20
|
-
A **parser** is a service that reads data in a specific format and converts it into structured JavaScript objects that you can work with programmatically.
|
|
21
|
-
|
|
22
|
-
```typescript
|
|
23
|
-
// Input: Raw data string in some format
|
|
24
|
-
const csvData = "sku,qty\nSKU001,100\nSKU002,50";
|
|
25
|
-
|
|
26
|
-
// Parser: Converts format → JavaScript objects
|
|
27
|
-
const parser = new CSVParserService();
|
|
28
|
-
const records = await parser.parse(csvData);
|
|
29
|
-
|
|
30
|
-
// Output: Structured data
|
|
31
|
-
console.log(records);
|
|
32
|
-
// [
|
|
33
|
-
// { sku: 'SKU001', qty: '100' },
|
|
34
|
-
// { sku: 'SKU002', qty: '50' }
|
|
35
|
-
// ]
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
## The Four SDK Parsers
|
|
39
|
-
|
|
40
|
-
### 1. CSV Parser (`CSVParserService`)
|
|
41
|
-
|
|
42
|
-
**Format:** Comma-Separated Values (tabular data)
|
|
43
|
-
|
|
44
|
-
**Characteristics:**
|
|
45
|
-
- ✅ Simple, universal format
|
|
46
|
-
- ✅ Row-based structure (each line is a record)
|
|
47
|
-
- ✅ Headers define column names
|
|
48
|
-
- ✅ Best for flat, tabular data
|
|
49
|
-
|
|
50
|
-
**Example:**
|
|
51
|
-
```csv
|
|
52
|
-
sku,name,qty,location
|
|
53
|
-
SKU001,Wireless Mouse,100,WH-01
|
|
54
|
-
SKU002,Keyboard,50,WH-01
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
**When to use:**
|
|
58
|
-
- Inventory feeds from warehouses
|
|
59
|
-
- Spreadsheet exports (Excel → CSV)
|
|
60
|
-
- Simple bulk data imports
|
|
61
|
-
- Cross-system compatibility needed
|
|
62
|
-
|
|
63
|
-
### 2. JSON Parser (`JSONParserService`)
|
|
64
|
-
|
|
65
|
-
**Format:** JavaScript Object Notation (nested structures)
|
|
66
|
-
|
|
67
|
-
**Characteristics:**
|
|
68
|
-
- ✅ Native JavaScript format
|
|
69
|
-
- ✅ Supports nested objects and arrays
|
|
70
|
-
- ✅ Type-aware (strings, numbers, booleans)
|
|
71
|
-
- ✅ Standard for APIs and modern systems
|
|
72
|
-
|
|
73
|
-
**Example:**
|
|
74
|
-
```json
|
|
75
|
-
{
|
|
76
|
-
"products": [
|
|
77
|
-
{
|
|
78
|
-
"sku": "SKU001",
|
|
79
|
-
"name": "Wireless Mouse",
|
|
80
|
-
"stock": {
|
|
81
|
-
"qty": 100,
|
|
82
|
-
"locations": ["WH-01", "WH-02"]
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
]
|
|
86
|
-
}
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
**When to use:**
|
|
90
|
-
- REST API responses
|
|
91
|
-
- Webhook payloads from Fluent or other systems
|
|
92
|
-
- Configuration files
|
|
93
|
-
- Modern e-commerce platform exports
|
|
94
|
-
|
|
95
|
-
### 3. XML Parser (`XMLParserService`)
|
|
96
|
-
|
|
97
|
-
**Format:** eXtensible Markup Language (hierarchical)
|
|
98
|
-
|
|
99
|
-
**Characteristics:**
|
|
100
|
-
- ✅ Hierarchical, tag-based structure
|
|
101
|
-
- ✅ Supports attributes and namespaces
|
|
102
|
-
- ✅ Self-describing with schemas
|
|
103
|
-
- ✅ Common in B2B and enterprise systems
|
|
104
|
-
|
|
105
|
-
**Example:**
|
|
106
|
-
```xml
|
|
107
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
108
|
-
<products>
|
|
109
|
-
<product id="P001">
|
|
110
|
-
<sku>SKU001</sku>
|
|
111
|
-
<name>Wireless Mouse</name>
|
|
112
|
-
<stock qty="100" location="WH-01"/>
|
|
113
|
-
</product>
|
|
114
|
-
</products>
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
**When to use:**
|
|
118
|
-
- EDI/B2B integrations
|
|
119
|
-
- Enterprise system exports
|
|
120
|
-
- SOAP API responses
|
|
121
|
-
- SFCC/Adobe Commerce order feeds
|
|
122
|
-
|
|
123
|
-
### 4. Parquet Parser (`ParquetParserService`)
|
|
124
|
-
|
|
125
|
-
**Format:** Apache Parquet (columnar binary)
|
|
126
|
-
|
|
127
|
-
**Characteristics:**
|
|
128
|
-
- ✅ Columnar storage format
|
|
129
|
-
- ✅ Highly compressed
|
|
130
|
-
- ✅ Optimized for analytics
|
|
131
|
-
- ✅ Efficient for large datasets
|
|
132
|
-
|
|
133
|
-
**Example:** (Binary format - not human-readable)
|
|
134
|
-
```
|
|
135
|
-
[Parquet file with columnar data]
|
|
136
|
-
Columns: sku, qty, location
|
|
137
|
-
Compressed: ~10:1 ratio
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
**When to use:**
|
|
141
|
-
- Large-scale data extraction to S3
|
|
142
|
-
- Analytics and reporting
|
|
143
|
-
- Data warehouse ingestion
|
|
144
|
-
- Memory-efficient processing of huge datasets
|
|
145
|
-
|
|
146
|
-
## Parser Comparison Table
|
|
147
|
-
|
|
148
|
-
| Feature | CSV | JSON | XML | Parquet |
|
|
149
|
-
|---------|-----|------|-----|---------|
|
|
150
|
-
| **Complexity** | Simple | Medium | Medium | Advanced |
|
|
151
|
-
| **Structure** | Flat (rows) | Nested | Hierarchical | Columnar |
|
|
152
|
-
| **Human-readable** | ✅ Yes | ✅ Yes | ✅ Yes | ❌ Binary |
|
|
153
|
-
| **File size** | Medium | Large | Large | Small (compressed) |
|
|
154
|
-
| **Parsing speed** | Fast | Fast | Medium | Fast (streaming) |
|
|
155
|
-
| **Nested data** | ❌ No | ✅ Yes | ✅ Yes | ✅ Yes |
|
|
156
|
-
| **Attributes** | ❌ No | N/A | ✅ Yes | N/A |
|
|
157
|
-
| **Streaming** | ✅ Yes | ✅ Yes (JSONL) | ✅ Yes | ✅ Yes |
|
|
158
|
-
| **Common sources** | Warehouses, Excel | APIs, Webhooks | EDI, B2B | Analytics, S3 |
|
|
159
|
-
|
|
160
|
-
## Decision Tree: Choosing the Right Parser
|
|
161
|
-
|
|
162
|
-
```
|
|
163
|
-
What is your data source?
|
|
164
|
-
│
|
|
165
|
-
├─ Modern API or webhook
|
|
166
|
-
│ └─ Use JSON Parser (JSONParserService)
|
|
167
|
-
│
|
|
168
|
-
├─ Spreadsheet or simple tabular file
|
|
169
|
-
│ └─ Use CSV Parser (CSVParserService)
|
|
170
|
-
│
|
|
171
|
-
├─ Enterprise system, EDI, or SFCC
|
|
172
|
-
│ └─ Use XML Parser (XMLParserService)
|
|
173
|
-
│
|
|
174
|
-
└─ Large-scale extraction or analytics
|
|
175
|
-
└─ Use Parquet Parser (ParquetParserService)
|
|
176
|
-
```
|
|
177
|
-
|
|
178
|
-
### Real-World Scenarios
|
|
179
|
-
|
|
180
|
-
**Scenario 1: Warehouse sends daily inventory file**
|
|
181
|
-
- Format: CSV (simple, universal)
|
|
182
|
-
- Parser: `CSVParserService`
|
|
183
|
-
- Why: Warehouse systems typically export flat CSV files
|
|
184
|
-
|
|
185
|
-
**Scenario 2: Webhook from Fluent Commerce**
|
|
186
|
-
- Format: JSON (API standard)
|
|
187
|
-
- Parser: `JSONParserService`
|
|
188
|
-
- Why: Modern APIs use JSON for structured data
|
|
189
|
-
|
|
190
|
-
**Scenario 3: SFCC order feed**
|
|
191
|
-
- Format: XML (industry standard)
|
|
192
|
-
- Parser: `XMLParserService`
|
|
193
|
-
- Why: SFCC uses XML for order exports
|
|
194
|
-
|
|
195
|
-
**Scenario 4: Extract 1M+ inventory positions to S3**
|
|
196
|
-
- Format: Parquet (efficient storage)
|
|
197
|
-
- Parser: `ParquetParserService`
|
|
198
|
-
- Why: Compressed columnar format saves storage and processing time
|
|
199
|
-
|
|
200
|
-
## Common Parser Architecture
|
|
201
|
-
|
|
202
|
-
All SDK parsers follow a consistent pattern:
|
|
203
|
-
|
|
204
|
-
### 1. Import the Parser
|
|
205
|
-
|
|
206
|
-
```typescript
|
|
207
|
-
import { CSVParserService, JSONParserService, XMLParserService, ParquetParserService } from '@fluentcommerce/fc-connect-sdk';
|
|
208
|
-
```
|
|
209
|
-
|
|
210
|
-
### 2. Create Parser Instance
|
|
211
|
-
|
|
212
|
-
```typescript
|
|
213
|
-
import { createConsoleLogger } from '@fluentcommerce/fc-connect-sdk';
|
|
214
|
-
|
|
215
|
-
const logger = createConsoleLogger();
|
|
216
|
-
|
|
217
|
-
const csvParser = new CSVParserService();
|
|
218
|
-
const jsonParser = new JSONParserService();
|
|
219
|
-
const xmlParser = new XMLParserService();
|
|
220
|
-
const parquetParser = new ParquetParserService(logger); // Logger required
|
|
221
|
-
```
|
|
222
|
-
|
|
223
|
-
### 3. Parse Data
|
|
224
|
-
|
|
225
|
-
```typescript
|
|
226
|
-
// All parsers expose a parse() method
|
|
227
|
-
const records = await csvParser.parse(csvContent);
|
|
228
|
-
const data = await jsonParser.parse(jsonContent);
|
|
229
|
-
const parsed = await xmlParser.parse(xmlContent);
|
|
230
|
-
const rows = await parquetParser.parse(parquetBuffer);
|
|
231
|
-
```
|
|
232
|
-
|
|
233
|
-
### 4. Process Results
|
|
234
|
-
|
|
235
|
-
```typescript
|
|
236
|
-
// Results are always JavaScript objects/arrays
|
|
237
|
-
for (const record of records) {
|
|
238
|
-
console.log(record.sku, record.qty);
|
|
239
|
-
}
|
|
240
|
-
```
|
|
241
|
-
|
|
242
|
-
## Design Principles
|
|
243
|
-
|
|
244
|
-
The SDK parsers are designed with these principles:
|
|
245
|
-
|
|
246
|
-
### 1. Consistency
|
|
247
|
-
|
|
248
|
-
All parsers expose similar methods:
|
|
249
|
-
- `parse()` - Parse data into memory
|
|
250
|
-
- `parseStreaming()` - Stream large files
|
|
251
|
-
- `validate()` - Validate data structure
|
|
252
|
-
|
|
253
|
-
### 2. Safety
|
|
254
|
-
|
|
255
|
-
Parsers include built-in protections:
|
|
256
|
-
- ✅ Type validation
|
|
257
|
-
- ✅ Error handling
|
|
258
|
-
- ✅ Memory limits
|
|
259
|
-
- ✅ Schema validation
|
|
260
|
-
|
|
261
|
-
### 3. Performance
|
|
262
|
-
|
|
263
|
-
Parsers are optimized for:
|
|
264
|
-
- ✅ Streaming large files
|
|
265
|
-
- ✅ Batch processing
|
|
266
|
-
- ✅ Lazy loading (Parquet)
|
|
267
|
-
- ✅ Memory efficiency
|
|
268
|
-
|
|
269
|
-
### 4. Integration
|
|
270
|
-
|
|
271
|
-
Parsers integrate seamlessly with:
|
|
272
|
-
- ✅ `UniversalMapper` for field transformations
|
|
273
|
-
- ✅ Batch API for Fluent ingestion
|
|
274
|
-
- ✅ S3 services for file operations
|
|
275
|
-
- ✅ State management for tracking
|
|
276
|
-
|
|
277
|
-
## Common Workflow Pattern
|
|
278
|
-
|
|
279
|
-
Typical parser usage in SDK integrations:
|
|
280
|
-
|
|
281
|
-
```typescript
|
|
282
|
-
import {
|
|
283
|
-
createClient,
|
|
284
|
-
CSVParserService,
|
|
285
|
-
UniversalMapper
|
|
286
|
-
} from '@fluentcommerce/fc-connect-sdk';
|
|
287
|
-
|
|
288
|
-
async function processInventoryFile(csvContent: string) {
|
|
289
|
-
// 1. Parse data
|
|
290
|
-
const parser = new CSVParserService();
|
|
291
|
-
const records = await parser.parse(csvContent);
|
|
292
|
-
|
|
293
|
-
// 2. Transform data
|
|
294
|
-
const mapper = new UniversalMapper(mappingConfig);
|
|
295
|
-
const result = await mapper.map(records);
|
|
296
|
-
|
|
297
|
-
// 3. Validate transformation
|
|
298
|
-
if (!result.success) {
|
|
299
|
-
throw new Error(`Mapping failed: ${result.errors.join(', ')}`);
|
|
300
|
-
}
|
|
301
|
-
|
|
302
|
-
// 4. Send to Fluent Commerce
|
|
303
|
-
const client = await createClient({ config });
|
|
304
|
-
const job = await client.createJob({
|
|
305
|
-
name: 'inventory-ingestion',
|
|
306
|
-
retailerId: config.config.retailerId
|
|
307
|
-
});
|
|
308
|
-
|
|
309
|
-
await client.sendBatch(job.id, {
|
|
310
|
-
action: 'UPSERT',
|
|
311
|
-
entityType: 'INVENTORY',
|
|
312
|
-
source: 'csv-import',
|
|
313
|
-
event: 'inventory.update',
|
|
314
|
-
entities: result.data
|
|
315
|
-
});
|
|
316
|
-
}
|
|
317
|
-
```
|
|
318
|
-
|
|
319
|
-
## Key Takeaways
|
|
320
|
-
|
|
321
|
-
- 🎯 **CSV Parser** - Simple, universal, best for flat tabular data
|
|
322
|
-
- 🎯 **JSON Parser** - Modern, nested, best for APIs and webhooks
|
|
323
|
-
- 🎯 **XML Parser** - Hierarchical, attributes, best for B2B and EDI
|
|
324
|
-
- 🎯 **Parquet Parser** - Columnar, compressed, best for large-scale extraction
|
|
325
|
-
- 🎯 All parsers follow consistent API patterns
|
|
326
|
-
- 🎯 Parsers integrate with UniversalMapper for transformations
|
|
327
|
-
- 🎯 Choose parser based on data source and structure
|
|
328
|
-
|
|
329
|
-
## Practice Exercise
|
|
330
|
-
|
|
331
|
-
**Challenge:** Identify which parser to use for these scenarios:
|
|
332
|
-
|
|
333
|
-
1. Your warehouse sends a daily `inventory.csv` file with columns: sku, qty, location
|
|
334
|
-
2. Shopify sends a webhook with JSON order data
|
|
335
|
-
3. Your enterprise WMS exports `orders.xml` with nested items
|
|
336
|
-
4. You need to extract 5 million inventory records to S3 for analytics
|
|
337
|
-
|
|
338
|
-
**Answers:**
|
|
339
|
-
1. CSV Parser - Simple tabular format
|
|
340
|
-
2. JSON Parser - Modern API webhook
|
|
341
|
-
3. XML Parser - Enterprise hierarchical format
|
|
342
|
-
4. Parquet Parser - Large-scale efficient extraction
|
|
343
|
-
|
|
344
|
-
## Next Steps
|
|
345
|
-
|
|
346
|
-
Now that you understand parser fundamentals, continue to:
|
|
347
|
-
- [Module 2: CSV Parser](./02-core-guides-parsers-02-csv-parser.md) - Learn CSV parsing in depth
|
|
348
|
-
- [Module 3: JSON Parser](./02-core-guides-parsers-03-json-parser.md) - Master JSON and JSONL
|
|
349
|
-
- [Module 4: XML Parser](./02-core-guides-parsers-04-xml-parser.md) - Handle XML transformations
|
|
350
|
-
- [Module 5: Parquet Parser](./02-core-guides-parsers-05-parquet-parser.md) - Work with columnar data
|
|
351
|
-
|
|
352
|
-
---
|
|
353
|
-
|
|
354
|
-
**Module 1 Complete!** ✅
|
|
355
|
-
Continue to [Module 2: CSV Parser →](./02-core-guides-parsers-02-csv-parser.md)
|
|
1
|
+
# Module 1: Parser Foundations
|
|
2
|
+
|
|
3
|
+
**Level:** Beginner
|
|
4
|
+
**Estimated Time:** 15 minutes
|
|
5
|
+
|
|
6
|
+
## Overview
|
|
7
|
+
|
|
8
|
+
This module introduces the four parser services available in the Fluent Connect SDK and helps you understand when to use each one. You'll learn about data format characteristics, parser capabilities, and how to make the right choice for your integration.
|
|
9
|
+
|
|
10
|
+
## Learning Objectives
|
|
11
|
+
|
|
12
|
+
By the end of this module, you will:
|
|
13
|
+
- ✅ Understand the four parser types (CSV, JSON, XML, Parquet)
|
|
14
|
+
- ✅ Know which parser to use for different data sources
|
|
15
|
+
- ✅ Understand basic parser architecture and design patterns
|
|
16
|
+
- ✅ Recognize common use cases for each format
|
|
17
|
+
|
|
18
|
+
## What is a Parser?
|
|
19
|
+
|
|
20
|
+
A **parser** is a service that reads data in a specific format and converts it into structured JavaScript objects that you can work with programmatically.
|
|
21
|
+
|
|
22
|
+
```typescript
|
|
23
|
+
// Input: Raw data string in some format
|
|
24
|
+
const csvData = "sku,qty\nSKU001,100\nSKU002,50";
|
|
25
|
+
|
|
26
|
+
// Parser: Converts format → JavaScript objects
|
|
27
|
+
const parser = new CSVParserService();
|
|
28
|
+
const records = await parser.parse(csvData);
|
|
29
|
+
|
|
30
|
+
// Output: Structured data
|
|
31
|
+
console.log(records);
|
|
32
|
+
// [
|
|
33
|
+
// { sku: 'SKU001', qty: '100' },
|
|
34
|
+
// { sku: 'SKU002', qty: '50' }
|
|
35
|
+
// ]
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## The Four SDK Parsers
|
|
39
|
+
|
|
40
|
+
### 1. CSV Parser (`CSVParserService`)
|
|
41
|
+
|
|
42
|
+
**Format:** Comma-Separated Values (tabular data)
|
|
43
|
+
|
|
44
|
+
**Characteristics:**
|
|
45
|
+
- ✅ Simple, universal format
|
|
46
|
+
- ✅ Row-based structure (each line is a record)
|
|
47
|
+
- ✅ Headers define column names
|
|
48
|
+
- ✅ Best for flat, tabular data
|
|
49
|
+
|
|
50
|
+
**Example:**
|
|
51
|
+
```csv
|
|
52
|
+
sku,name,qty,location
|
|
53
|
+
SKU001,Wireless Mouse,100,WH-01
|
|
54
|
+
SKU002,Keyboard,50,WH-01
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
**When to use:**
|
|
58
|
+
- Inventory feeds from warehouses
|
|
59
|
+
- Spreadsheet exports (Excel → CSV)
|
|
60
|
+
- Simple bulk data imports
|
|
61
|
+
- Cross-system compatibility needed
|
|
62
|
+
|
|
63
|
+
### 2. JSON Parser (`JSONParserService`)
|
|
64
|
+
|
|
65
|
+
**Format:** JavaScript Object Notation (nested structures)
|
|
66
|
+
|
|
67
|
+
**Characteristics:**
|
|
68
|
+
- ✅ Native JavaScript format
|
|
69
|
+
- ✅ Supports nested objects and arrays
|
|
70
|
+
- ✅ Type-aware (strings, numbers, booleans)
|
|
71
|
+
- ✅ Standard for APIs and modern systems
|
|
72
|
+
|
|
73
|
+
**Example:**
|
|
74
|
+
```json
|
|
75
|
+
{
|
|
76
|
+
"products": [
|
|
77
|
+
{
|
|
78
|
+
"sku": "SKU001",
|
|
79
|
+
"name": "Wireless Mouse",
|
|
80
|
+
"stock": {
|
|
81
|
+
"qty": 100,
|
|
82
|
+
"locations": ["WH-01", "WH-02"]
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
]
|
|
86
|
+
}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
**When to use:**
|
|
90
|
+
- REST API responses
|
|
91
|
+
- Webhook payloads from Fluent or other systems
|
|
92
|
+
- Configuration files
|
|
93
|
+
- Modern e-commerce platform exports
|
|
94
|
+
|
|
95
|
+
### 3. XML Parser (`XMLParserService`)
|
|
96
|
+
|
|
97
|
+
**Format:** eXtensible Markup Language (hierarchical)
|
|
98
|
+
|
|
99
|
+
**Characteristics:**
|
|
100
|
+
- ✅ Hierarchical, tag-based structure
|
|
101
|
+
- ✅ Supports attributes and namespaces
|
|
102
|
+
- ✅ Self-describing with schemas
|
|
103
|
+
- ✅ Common in B2B and enterprise systems
|
|
104
|
+
|
|
105
|
+
**Example:**
|
|
106
|
+
```xml
|
|
107
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
108
|
+
<products>
|
|
109
|
+
<product id="P001">
|
|
110
|
+
<sku>SKU001</sku>
|
|
111
|
+
<name>Wireless Mouse</name>
|
|
112
|
+
<stock qty="100" location="WH-01"/>
|
|
113
|
+
</product>
|
|
114
|
+
</products>
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
**When to use:**
|
|
118
|
+
- EDI/B2B integrations
|
|
119
|
+
- Enterprise system exports
|
|
120
|
+
- SOAP API responses
|
|
121
|
+
- SFCC/Adobe Commerce order feeds
|
|
122
|
+
|
|
123
|
+
### 4. Parquet Parser (`ParquetParserService`)
|
|
124
|
+
|
|
125
|
+
**Format:** Apache Parquet (columnar binary)
|
|
126
|
+
|
|
127
|
+
**Characteristics:**
|
|
128
|
+
- ✅ Columnar storage format
|
|
129
|
+
- ✅ Highly compressed
|
|
130
|
+
- ✅ Optimized for analytics
|
|
131
|
+
- ✅ Efficient for large datasets
|
|
132
|
+
|
|
133
|
+
**Example:** (Binary format - not human-readable)
|
|
134
|
+
```
|
|
135
|
+
[Parquet file with columnar data]
|
|
136
|
+
Columns: sku, qty, location
|
|
137
|
+
Compressed: ~10:1 ratio
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
**When to use:**
|
|
141
|
+
- Large-scale data extraction to S3
|
|
142
|
+
- Analytics and reporting
|
|
143
|
+
- Data warehouse ingestion
|
|
144
|
+
- Memory-efficient processing of huge datasets
|
|
145
|
+
|
|
146
|
+
## Parser Comparison Table
|
|
147
|
+
|
|
148
|
+
| Feature | CSV | JSON | XML | Parquet |
|
|
149
|
+
|---------|-----|------|-----|---------|
|
|
150
|
+
| **Complexity** | Simple | Medium | Medium | Advanced |
|
|
151
|
+
| **Structure** | Flat (rows) | Nested | Hierarchical | Columnar |
|
|
152
|
+
| **Human-readable** | ✅ Yes | ✅ Yes | ✅ Yes | ❌ Binary |
|
|
153
|
+
| **File size** | Medium | Large | Large | Small (compressed) |
|
|
154
|
+
| **Parsing speed** | Fast | Fast | Medium | Fast (streaming) |
|
|
155
|
+
| **Nested data** | ❌ No | ✅ Yes | ✅ Yes | ✅ Yes |
|
|
156
|
+
| **Attributes** | ❌ No | N/A | ✅ Yes | N/A |
|
|
157
|
+
| **Streaming** | ✅ Yes | ✅ Yes (JSONL) | ✅ Yes | ✅ Yes |
|
|
158
|
+
| **Common sources** | Warehouses, Excel | APIs, Webhooks | EDI, B2B | Analytics, S3 |
|
|
159
|
+
|
|
160
|
+
## Decision Tree: Choosing the Right Parser
|
|
161
|
+
|
|
162
|
+
```
|
|
163
|
+
What is your data source?
|
|
164
|
+
│
|
|
165
|
+
├─ Modern API or webhook
|
|
166
|
+
│ └─ Use JSON Parser (JSONParserService)
|
|
167
|
+
│
|
|
168
|
+
├─ Spreadsheet or simple tabular file
|
|
169
|
+
│ └─ Use CSV Parser (CSVParserService)
|
|
170
|
+
│
|
|
171
|
+
├─ Enterprise system, EDI, or SFCC
|
|
172
|
+
│ └─ Use XML Parser (XMLParserService)
|
|
173
|
+
│
|
|
174
|
+
└─ Large-scale extraction or analytics
|
|
175
|
+
└─ Use Parquet Parser (ParquetParserService)
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
### Real-World Scenarios
|
|
179
|
+
|
|
180
|
+
**Scenario 1: Warehouse sends daily inventory file**
|
|
181
|
+
- Format: CSV (simple, universal)
|
|
182
|
+
- Parser: `CSVParserService`
|
|
183
|
+
- Why: Warehouse systems typically export flat CSV files
|
|
184
|
+
|
|
185
|
+
**Scenario 2: Webhook from Fluent Commerce**
|
|
186
|
+
- Format: JSON (API standard)
|
|
187
|
+
- Parser: `JSONParserService`
|
|
188
|
+
- Why: Modern APIs use JSON for structured data
|
|
189
|
+
|
|
190
|
+
**Scenario 3: SFCC order feed**
|
|
191
|
+
- Format: XML (industry standard)
|
|
192
|
+
- Parser: `XMLParserService`
|
|
193
|
+
- Why: SFCC uses XML for order exports
|
|
194
|
+
|
|
195
|
+
**Scenario 4: Extract 1M+ inventory positions to S3**
|
|
196
|
+
- Format: Parquet (efficient storage)
|
|
197
|
+
- Parser: `ParquetParserService`
|
|
198
|
+
- Why: Compressed columnar format saves storage and processing time
|
|
199
|
+
|
|
200
|
+
## Common Parser Architecture
|
|
201
|
+
|
|
202
|
+
All SDK parsers follow a consistent pattern:
|
|
203
|
+
|
|
204
|
+
### 1. Import the Parser
|
|
205
|
+
|
|
206
|
+
```typescript
|
|
207
|
+
import { CSVParserService, JSONParserService, XMLParserService, ParquetParserService } from '@fluentcommerce/fc-connect-sdk';
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
### 2. Create Parser Instance
|
|
211
|
+
|
|
212
|
+
```typescript
|
|
213
|
+
import { createConsoleLogger } from '@fluentcommerce/fc-connect-sdk';
|
|
214
|
+
|
|
215
|
+
const logger = createConsoleLogger();
|
|
216
|
+
|
|
217
|
+
const csvParser = new CSVParserService();
|
|
218
|
+
const jsonParser = new JSONParserService();
|
|
219
|
+
const xmlParser = new XMLParserService();
|
|
220
|
+
const parquetParser = new ParquetParserService(logger); // Logger required
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
### 3. Parse Data
|
|
224
|
+
|
|
225
|
+
```typescript
|
|
226
|
+
// All parsers expose a parse() method
|
|
227
|
+
const records = await csvParser.parse(csvContent);
|
|
228
|
+
const data = await jsonParser.parse(jsonContent);
|
|
229
|
+
const parsed = await xmlParser.parse(xmlContent);
|
|
230
|
+
const rows = await parquetParser.parse(parquetBuffer);
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
### 4. Process Results
|
|
234
|
+
|
|
235
|
+
```typescript
|
|
236
|
+
// Results are always JavaScript objects/arrays
|
|
237
|
+
for (const record of records) {
|
|
238
|
+
console.log(record.sku, record.qty);
|
|
239
|
+
}
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
## Design Principles
|
|
243
|
+
|
|
244
|
+
The SDK parsers are designed with these principles:
|
|
245
|
+
|
|
246
|
+
### 1. Consistency
|
|
247
|
+
|
|
248
|
+
All parsers expose similar methods:
|
|
249
|
+
- `parse()` - Parse data into memory
|
|
250
|
+
- `parseStreaming()` - Stream large files
|
|
251
|
+
- `validate()` - Validate data structure
|
|
252
|
+
|
|
253
|
+
### 2. Safety
|
|
254
|
+
|
|
255
|
+
Parsers include built-in protections:
|
|
256
|
+
- ✅ Type validation
|
|
257
|
+
- ✅ Error handling
|
|
258
|
+
- ✅ Memory limits
|
|
259
|
+
- ✅ Schema validation
|
|
260
|
+
|
|
261
|
+
### 3. Performance
|
|
262
|
+
|
|
263
|
+
Parsers are optimized for:
|
|
264
|
+
- ✅ Streaming large files
|
|
265
|
+
- ✅ Batch processing
|
|
266
|
+
- ✅ Lazy loading (Parquet)
|
|
267
|
+
- ✅ Memory efficiency
|
|
268
|
+
|
|
269
|
+
### 4. Integration
|
|
270
|
+
|
|
271
|
+
Parsers integrate seamlessly with:
|
|
272
|
+
- ✅ `UniversalMapper` for field transformations
|
|
273
|
+
- ✅ Batch API for Fluent ingestion
|
|
274
|
+
- ✅ S3 services for file operations
|
|
275
|
+
- ✅ State management for tracking
|
|
276
|
+
|
|
277
|
+
## Common Workflow Pattern
|
|
278
|
+
|
|
279
|
+
Typical parser usage in SDK integrations:
|
|
280
|
+
|
|
281
|
+
```typescript
|
|
282
|
+
import {
|
|
283
|
+
createClient,
|
|
284
|
+
CSVParserService,
|
|
285
|
+
UniversalMapper
|
|
286
|
+
} from '@fluentcommerce/fc-connect-sdk';
|
|
287
|
+
|
|
288
|
+
async function processInventoryFile(csvContent: string) {
|
|
289
|
+
// 1. Parse data
|
|
290
|
+
const parser = new CSVParserService();
|
|
291
|
+
const records = await parser.parse(csvContent);
|
|
292
|
+
|
|
293
|
+
// 2. Transform data
|
|
294
|
+
const mapper = new UniversalMapper(mappingConfig);
|
|
295
|
+
const result = await mapper.map(records);
|
|
296
|
+
|
|
297
|
+
// 3. Validate transformation
|
|
298
|
+
if (!result.success) {
|
|
299
|
+
throw new Error(`Mapping failed: ${result.errors.join(', ')}`);
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
// 4. Send to Fluent Commerce
|
|
303
|
+
const client = await createClient({ config });
|
|
304
|
+
const job = await client.createJob({
|
|
305
|
+
name: 'inventory-ingestion',
|
|
306
|
+
retailerId: config.config.retailerId
|
|
307
|
+
});
|
|
308
|
+
|
|
309
|
+
await client.sendBatch(job.id, {
|
|
310
|
+
action: 'UPSERT',
|
|
311
|
+
entityType: 'INVENTORY',
|
|
312
|
+
source: 'csv-import',
|
|
313
|
+
event: 'inventory.update',
|
|
314
|
+
entities: result.data
|
|
315
|
+
});
|
|
316
|
+
}
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
## Key Takeaways
|
|
320
|
+
|
|
321
|
+
- 🎯 **CSV Parser** - Simple, universal, best for flat tabular data
|
|
322
|
+
- 🎯 **JSON Parser** - Modern, nested, best for APIs and webhooks
|
|
323
|
+
- 🎯 **XML Parser** - Hierarchical, attributes, best for B2B and EDI
|
|
324
|
+
- 🎯 **Parquet Parser** - Columnar, compressed, best for large-scale extraction
|
|
325
|
+
- 🎯 All parsers follow consistent API patterns
|
|
326
|
+
- 🎯 Parsers integrate with UniversalMapper for transformations
|
|
327
|
+
- 🎯 Choose parser based on data source and structure
|
|
328
|
+
|
|
329
|
+
## Practice Exercise
|
|
330
|
+
|
|
331
|
+
**Challenge:** Identify which parser to use for these scenarios:
|
|
332
|
+
|
|
333
|
+
1. Your warehouse sends a daily `inventory.csv` file with columns: sku, qty, location
|
|
334
|
+
2. Shopify sends a webhook with JSON order data
|
|
335
|
+
3. Your enterprise WMS exports `orders.xml` with nested items
|
|
336
|
+
4. You need to extract 5 million inventory records to S3 for analytics
|
|
337
|
+
|
|
338
|
+
**Answers:**
|
|
339
|
+
1. CSV Parser - Simple tabular format
|
|
340
|
+
2. JSON Parser - Modern API webhook
|
|
341
|
+
3. XML Parser - Enterprise hierarchical format
|
|
342
|
+
4. Parquet Parser - Large-scale efficient extraction
|
|
343
|
+
|
|
344
|
+
## Next Steps
|
|
345
|
+
|
|
346
|
+
Now that you understand parser fundamentals, continue to:
|
|
347
|
+
- [Module 2: CSV Parser](./02-core-guides-parsers-02-csv-parser.md) - Learn CSV parsing in depth
|
|
348
|
+
- [Module 3: JSON Parser](./02-core-guides-parsers-03-json-parser.md) - Master JSON and JSONL
|
|
349
|
+
- [Module 4: XML Parser](./02-core-guides-parsers-04-xml-parser.md) - Handle XML transformations
|
|
350
|
+
- [Module 5: Parquet Parser](./02-core-guides-parsers-05-parquet-parser.md) - Work with columnar data
|
|
351
|
+
|
|
352
|
+
---
|
|
353
|
+
|
|
354
|
+
**Module 1 Complete!** ✅
|
|
355
|
+
Continue to [Module 2: CSV Parser →](./02-core-guides-parsers-02-csv-parser.md)
|